Merge branch 'master' into Bulbasaur

master
pikachu1995@126.com 2023-03-22 08:43:05 +08:00
commit 64c61d5365
19 changed files with 168 additions and 79 deletions

View File

@ -59,7 +59,7 @@ export function withdrawalApply (params) {
}); });
} }
// 收藏商品、店铺 // 收藏商品
export function collectGoods (type, id) { export function collectGoods (type, id) {
return request({ return request({
url: `/buyer/member/collection/add/${type}/${id}`, url: `/buyer/member/collection/add/${type}/${id}`,
@ -68,7 +68,16 @@ export function collectGoods (type, id) {
}); });
} }
// 取消 收藏商品、店铺 // 收藏店铺
export function collectStore (type, id) {
return request({
url: `/buyer/member/storeCollection/add/${type}/${id}`,
method: Method.POST,
needToken: true
});
}
// 取消 收藏商品
export function cancelCollect (type, id) { export function cancelCollect (type, id) {
return request({ return request({
url: `/buyer/member/collection/delete/${type}/${id}`, url: `/buyer/member/collection/delete/${type}/${id}`,
@ -77,7 +86,16 @@ export function cancelCollect (type, id) {
}); });
} }
// 查看是否收藏 // 取消 收藏店铺
export function cancelStoreCollect (type, id) {
return request({
url: `/buyer/member/storeCollection/delete/${type}/${id}`,
method: Method.DELETE,
needToken: true
});
}
// 查看是否收藏商品
export function isCollection (type, goodsId) { export function isCollection (type, goodsId) {
return request({ return request({
url: `/buyer/member/collection/isCollection/${type}/${goodsId}`, url: `/buyer/member/collection/isCollection/${type}/${goodsId}`,
@ -86,7 +104,16 @@ export function isCollection (type, goodsId) {
}); });
} }
// 会员收藏列表 // 查看是否收藏店铺
export function isStoreCollection (type, goodsId) {
return request({
url: `/buyer/member/storeCollection/isCollection/${type}/${goodsId}`,
method: Method.GET,
needToken: true
});
}
// 会员收藏商品列表
export function collectList (params) { export function collectList (params) {
return request({ return request({
url: `/buyer/member/collection/${params.type}`, url: `/buyer/member/collection/${params.type}`,
@ -96,6 +123,16 @@ export function collectList (params) {
}); });
} }
// 会员收藏店铺列表
export function storeCollectList (params) {
return request({
url: `/buyer/member/storeCollection/${params.type}`,
method: Method.GET,
needToken: true,
params
});
}
// 单个商品评价 // 单个商品评价
export function goodsComment (params) { export function goodsComment (params) {
return request({ return request({

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -18,4 +18,5 @@ module.exports = {
aMapKey: "7f11113750315d8543daaf5c3ba353ca", //高德web端js申请的api key aMapKey: "7f11113750315d8543daaf5c3ba353ca", //高德web端js申请的api key
enableCDN: true, //生产环境 是否启用cdn加载 vue等js enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port: 10000, //端口 port: 10000, //端口
inputMaxLength:'140' //全局输入框默认最大输入长度字
}; };

View File

@ -10,8 +10,13 @@ import storage from "@/plugins/storage";
// 全局引入封装组件 // 全局引入封装组件
import {InstallAll} from "@/components/global.js"; import {InstallAll} from "@/components/global.js";
const { aMapSecurityJsCode, title } = require("@/config"); const {aMapSecurityJsCode, title, inputMaxLength} = require("@/config");
Vue.use(ViewUI);
const copyViewUi = {...ViewUI}
copyViewUi.Input.props.maxlength.default = inputMaxLength // 挂载最大输入值
Vue.use(copyViewUi);
Vue.use(InstallAll); Vue.use(InstallAll);
Vue.config.productionTip = false; Vue.config.productionTip = false;

View File

@ -44,9 +44,9 @@ import ShowGoods from "@/components/goodsDetail/ShowGoods";
import ShowGoodsDetail from "@/components/goodsDetail/ShowGoodsDetail"; import ShowGoodsDetail from "@/components/goodsDetail/ShowGoodsDetail";
import { goodsSkuDetail } from "@/api/goods"; import { goodsSkuDetail } from "@/api/goods";
import { import {
cancelCollect, cancelStoreCollect,
collectGoods, collectStore,
isCollection, isStoreCollection,
getGoodsDistribution, getGoodsDistribution,
} from "@/api/member"; } from "@/api/member";
import { getDetailById } from "@/api/shopentry"; import { getDetailById } from "@/api/shopentry";
@ -121,7 +121,7 @@ export default {
this.$set(this, "goodsMsg", res.result); this.$set(this, "goodsMsg", res.result);
// //
if (this.Cookies.getItem("userInfo")) { if (this.Cookies.getItem("userInfo")) {
isCollection("STORE", this.goodsMsg.data.storeId).then((res) => { isStoreCollection("STORE", this.goodsMsg.data.storeId).then((res) => {
if (res.success && res.result) { if (res.success && res.result) {
this.storeCollected = true; this.storeCollected = true;
} }
@ -159,13 +159,13 @@ export default {
async collect () { async collect () {
// //
if (this.storeCollected) { if (this.storeCollected) {
let cancel = await cancelCollect("STORE", this.goodsMsg.data.storeId); let cancel = await cancelStoreCollect("STORE", this.goodsMsg.data.storeId);
if (cancel.success) { if (cancel.success) {
this.$Message.success("已取消收藏"); this.$Message.success("已取消收藏");
this.storeCollected = false; this.storeCollected = false;
} }
} else { } else {
let collect = await collectGoods("STORE", this.goodsMsg.data.storeId); let collect = await collectStore("STORE", this.goodsMsg.data.storeId);
if (collect.code === 200) { if (collect.code === 200) {
this.storeCollected = true; this.storeCollected = true;
this.$Message.success("收藏店铺成功,可以前往个人中心我的收藏查看"); this.$Message.success("收藏店铺成功,可以前往个人中心我的收藏查看");

View File

@ -108,7 +108,7 @@
<script> <script>
import {getDetailById, getCateById} from "@/api/shopentry"; import {getDetailById, getCateById} from "@/api/shopentry";
import {cancelCollect, collectGoods, isCollection} from "@/api/member"; import {cancelStoreCollect, collectStore, isStoreCollection} from "@/api/member";
import {goodsList} from "@/api/goods"; import {goodsList} from "@/api/goods";
import Search from "@/components/Search"; import Search from "@/components/Search";
import ModelForm from "@/components/indexDecorate/ModelForm"; import ModelForm from "@/components/indexDecorate/ModelForm";
@ -296,13 +296,13 @@ export default {
async collect() { async collect() {
// //
if (this.storeCollected) { if (this.storeCollected) {
let cancel = await cancelCollect("STORE", this.storeMsg.storeId); let cancel = await cancelStoreCollect("STORE", this.storeMsg.storeId);
if (cancel.success) { if (cancel.success) {
this.$Message.success("已取消收藏"); this.$Message.success("已取消收藏");
this.storeCollected = false; this.storeCollected = false;
} }
} else { } else {
let collect = await collectGoods("STORE", this.storeMsg.storeId); let collect = await collectStore("STORE", this.storeMsg.storeId);
if (collect.code === 200) { if (collect.code === 200) {
this.storeCollected = true; this.storeCollected = true;
this.$Message.success("收藏店铺成功,可以前往个人中心我的收藏查看"); this.$Message.success("收藏店铺成功,可以前往个人中心我的收藏查看");

View File

@ -25,7 +25,7 @@
<Button size="small" type="primary" @click="buynow(item.skuId, item.goodsId)" v-if="params.type === 'GOODS'"></Button> <Button size="small" type="primary" @click="buynow(item.skuId, item.goodsId)" v-if="params.type === 'GOODS'"></Button>
<Button size="small" type="primary" @click="goShop(item.id)" v-else></Button> <Button size="small" type="primary" @click="goShop(item.id)" v-else></Button>
<Button size="small" v-if="params.type === 'GOODS'" @click="cancel(item.skuId)"></Button> <Button size="small" v-if="params.type === 'GOODS'" @click="cancel(item.skuId)"></Button>
<Button size="small" v-if="params.type === 'SHOP'" @click="cancel(item.id)"></Button> <Button size="small" v-if="params.type === 'STORE'" @click="cancelStore(item.id)"></Button>
</div> </div>
</div> </div>
</template> </template>
@ -36,7 +36,7 @@
</template> </template>
<script> <script>
import { collectList, cancelCollect } from '@/api/member.js' import { collectList, cancelCollect,storeCollectList,cancelStoreCollect} from '@/api/member.js'
export default { export default {
name: 'Favorites', name: 'Favorites',
props: { props: {
@ -66,10 +66,16 @@ export default {
if (res.success) this.list = res.result.records; if (res.success) this.list = res.result.records;
}) })
}, },
getStoreList () { //
this.spinShow = true
storeCollectList(this.params).then(res => {
this.spinShow = false
if (res.success) this.list = res.result.records;
})
},
change (index) { // tab change (index) { // tab
if (index === 0) { this.params.type = 'GOODS' } if (index === 0) { this.params.type = 'GOODS',this.getList()}
if (index === 1) { this.params.type = 'SHOP' } if (index === 1) { this.params.type = 'STORE',this.getStoreList()}
this.getList()
}, },
cancel (id) { // cancel (id) { //
let typeName = this.params.type === 'GOODS' ? '商品' : '店铺' let typeName = this.params.type === 'GOODS' ? '商品' : '店铺'
@ -85,6 +91,20 @@ export default {
} }
}); });
}, },
cancelStore (id) { //
let typeName = this.params.type === 'GOODS' ? '商品' : '店铺'
this.$Modal.confirm({
title: 'Title',
content: `<p>确定取消收藏该${typeName}吗?</p>`,
onOk: () => {
cancelStoreCollect(this.params.type, id).then(res => {
if (res.success) {
this.getStoreList();
}
})
}
});
},
buynow (skuId, goodsId) { // buynow (skuId, goodsId) { //
let url = this.$router.resolve({ let url = this.$router.resolve({
path: '/goodsDetail', path: '/goodsDetail',

View File

@ -11,4 +11,5 @@ module.exports = {
website: "https://www.pickmall.cn", //官网地址 website: "https://www.pickmall.cn", //官网地址
enableCDN: true, //生产环境 是否启用cdn加载 vue等js enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port: 10003, //端口 port: 10003, //端口
inputMaxLength:'140' //全局输入框默认最大输入长度字
}; };

View File

@ -23,8 +23,9 @@ import {md5} from '@/utils/md5.js';
// 打印 // 打印
import Print from 'vue-print-nb'; import Print from 'vue-print-nb';
Vue.use(Print); Vue.use(Print);
const { aMapSecurityJsCode } = require("@/config"); const {aMapSecurityJsCode, inputMaxLength} = require("@/config");
// 高德安全密钥 // 高德安全密钥
if (aMapSecurityJsCode) { if (aMapSecurityJsCode) {
window._AMapSecurityConfig = { window._AMapSecurityConfig = {
@ -44,16 +45,17 @@ Vue.prototype.wapLinkTo = function (goodsId, skuId) { // app端二维码
return `${WAP_URL}/pages/product/goods?id=${skuId}&goodsId=${goodsId}` return `${WAP_URL}/pages/product/goods?id=${skuId}&goodsId=${goodsId}`
}; };
Vue.use(ViewUI, {
i18n: (key, value) => i18n.t(key, value) const copyViewUi = {...ViewUI}
copyViewUi.Input.props.maxlength.default = inputMaxLength // 挂载最大输入值
Vue.use(copyViewUi, {
i18n: (key, value) => i18n.t(key, value),
}); });
Vue.component('liliDialog', liliDialog) Vue.component('liliDialog', liliDialog)
Vue.component('i18nBox', i18nBox) Vue.component('i18nBox', i18nBox)
// 挂载全局使用的方法 // 挂载全局使用的方法
Vue.prototype.getRequest = getRequest; Vue.prototype.getRequest = getRequest;
Vue.prototype.postRequest = postRequest; Vue.prototype.postRequest = postRequest;

View File

@ -14,7 +14,7 @@
<InputNumber :min="1" :max="365" style="width:100px;" v-model="form.distributionDay"></InputNumber> <InputNumber :min="1" :max="365" style="width:100px;" v-model="form.distributionDay"></InputNumber>
</FormItem> </FormItem>
<FormItem label="分销结算天数" prop="cashDay"> <FormItem label="分销结算天数" prop="cashDay">
<InputNumber :min="1" :max="365" style="width:100px;" v-model="form.cashDay"></InputNumber> <InputNumber :min="0" :max="365" style="width:100px;" v-model="form.cashDay"></InputNumber>
</FormItem> </FormItem>
<FormItem> <FormItem>
<Button type="primary" @click="submit"></Button> <Button type="primary" @click="submit"></Button>

View File

@ -465,10 +465,11 @@ export default {
// //
handleSubmitModal() { handleSubmitModal() {
debugger
const { nickName, sex, username, face, newPassword,id } = this.form; const { nickName, sex, username, face, newPassword,id } = this.form;
let time = new Date(this.form.birthday); let time = new Date(this.form.birthday);
let birthday = time ? let birthday = this.form.birthday=== undefined?'':
time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate() : ''; time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate();
let submit = { let submit = {
regionId: this.form.regionId, regionId: this.form.regionId,
region: this.form.region, region: this.form.region,

View File

@ -281,6 +281,9 @@ export default {
wechatFormDataEdit() { wechatFormDataEdit() {
this.$refs['wechatFormData'].validate((valid) => { this.$refs['wechatFormData'].validate((valid) => {
if (valid) { if (valid) {
if(!this.wechatFormData.updateTime){
this.wechatFormData.updateTime = ''
}
editWechatMessageTemplate(this.id, this.wechatFormData).then(res => { editWechatMessageTemplate(this.id, this.wechatFormData).then(res => {
if (res.message === 'success') { if (res.message === 'success') {
this.$Message.success('微信模板修改成功'); this.$Message.success('微信模板修改成功');

View File

@ -169,7 +169,7 @@ export default {
// //
openOrClose(row) { openOrClose(row) {
let name = "开启"; let name = "开启";
if (row.promotionStatus === "START") { if (row.promotionStatus === 'NEW' ||row.promotionStatus === "START") {
name = "关闭"; name = "关闭";
this.$Modal.confirm({ this.$Modal.confirm({
title: "提示", title: "提示",

View File

@ -87,7 +87,17 @@
<p class="item"> <p class="item">
<span class="label">店铺所在地</span> <span class="label">店铺所在地</span>
<span class="info"> <span class="info">
{{storeInfo.storeAddressPath || storeInfo.storeAddressDetail?storeInfo.storeAddressPath +storeInfo.storeAddressDetail:"暂未完善"}} <span>
{{
(storeInfo.storeAddressPath!==null && storeInfo.storeAddressPath!=='' && storeInfo.storeAddressPath!=="null" && storeInfo.storeAddressPath!==undefined )? storeInfo.storeAddressPath: ""
}}
</span>
<span>
{{
(storeInfo.storeAddressDetail!==null && storeInfo.storeAddressDetail!=='' && storeInfo.storeAddressDetail!=="null" && storeInfo.storeAddressDetail!==undefined )? storeInfo.storeAddressDetail:""
}}
</span>
{{(storeInfo.storeAddressPath!==null && storeInfo.storeAddressPath!=='' && storeInfo.storeAddressPath!=="null" && storeInfo.storeAddressPath!==undefined) || (storeInfo.storeAddressDetail!==null && storeInfo.storeAddressDetail!=='' && storeInfo.storeAddressDetail!=="null" && storeInfo.storeAddressDetail!==undefined )?"":"暂未完善"}}
</span> </span>
</p> </p>
<p class="item"> <p class="item">

View File

@ -342,11 +342,13 @@ export default {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
this.submitLoading = true; this.submitLoading = true;
if(JSON.stringify(this.form.versionUpdateDate).includes('T')){
const versionUpdateDate = this.$options.filters.unixToDate( const versionUpdateDate = this.$options.filters.unixToDate(
this.form.versionUpdateDate / 1000 this.form.versionUpdateDate / 1000
); );
this.form.versionUpdateDate = versionUpdateDate; this.form.versionUpdateDate = versionUpdateDate;
this.form.updateTime = versionUpdateDate; this.form.updateTime = versionUpdateDate;
}
if (this.modalType == 0) { if (this.modalType == 0) {
// id // id
delete this.form.id; delete this.form.id;

View File

@ -38,7 +38,7 @@ export const getCheckedOn = params =>{
//获取物流设置 //获取物流设置
export const getLogisticsSetting = () =>{ export const getLogisticsSetting = () =>{
return getRequest(`/other/logistics/setting`); return getRequest(`/other/logistics`);
} }
export const getShunFengFaceSheet = (url,headers) =>{ export const getShunFengFaceSheet = (url,headers) =>{

View File

@ -11,4 +11,5 @@ module.exports = {
website: "https://www.pickmall.cn", //官网地址 website: "https://www.pickmall.cn", //官网地址
enableCDN: true, //生产环境 是否启用cdn加载 vue等js enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port: 10002, //端口 port: 10002, //端口
inputMaxLength:'140' //全局输入框默认最大输入长度字
}; };

View File

@ -27,9 +27,11 @@ import VueLazyload from "vue-lazyload";
import * as filters from "@/utils/filters"; // global filter import * as filters from "@/utils/filters"; // global filter
import {md5} from "@/utils/md5.js"; import {md5} from "@/utils/md5.js";
const { aMapSecurityJsCode } = require("@/config");
const {aMapSecurityJsCode, inputMaxLength} = require("@/config");
// 打印 // 打印
import Print from 'vue-print-nb'; import Print from 'vue-print-nb';
Vue.use(Print); Vue.use(Print);
// 高德安全密钥 // 高德安全密钥
if (aMapSecurityJsCode) { if (aMapSecurityJsCode) {
@ -44,7 +46,11 @@ Vue.use(VueLazyload, {
loading: require("./assets/loading2.gif") loading: require("./assets/loading2.gif")
}); });
Vue.use(ViewUI);
const copyViewUi = {...ViewUI}
copyViewUi.Input.props.maxlength.default = inputMaxLength // 挂载最大输入值
Vue.use(copyViewUi);
Vue.component('liliDialog', liliDialog) Vue.component('liliDialog', liliDialog)
Vue.component('i18nBox', i18nBox) Vue.component('i18nBox', i18nBox)
Vue.component('liliDialog', liliDialog) Vue.component('liliDialog', liliDialog)

View File

@ -139,7 +139,7 @@ export default {
minWidth: 120, minWidth: 120,
sortable: true, sortable: true,
render: (h, params) => { render: (h, params) => {
if (params.row.selected === null || params.row.selected === "") { if (!params.row.selected) {
return h("div", [h("tag", {props: {color: "volcano"}}, "关闭")]); return h("div", [h("tag", {props: {color: "volcano"}}, "关闭")]);
} else { } else {
return h("div", [h("tag", {props: {color: "green"}}, "开启")]); return h("div", [h("tag", {props: {color: "green"}}, "开启")]);
@ -152,7 +152,7 @@ export default {
align: "center", align: "center",
width: 200, width: 200,
render: (h, params) => { render: (h, params) => {
if (params.row.selected === null) { if (!params.row.selected) {
return h("div", [ return h("div", [
h( h(
"Button", "Button",
@ -301,7 +301,7 @@ export default {
}, },
submit() { submit() {
if ( this.row.selected === null || this.row.selected === "") { if ( !this.row.selected) {
API_Shop.logisticsChecked( API_Shop.logisticsChecked(
this.row.logisticsId, this.row.logisticsId,
this.faceSheetForm this.faceSheetForm