diff --git a/common/js/request.js b/common/js/request.js index 738d592..f44727b 100644 --- a/common/js/request.js +++ b/common/js/request.js @@ -15,7 +15,7 @@ export default { // request 触发前拼接 url args.url = 'https://www.opsoul.com:8881' + args.url; // args.url = 'http://127.0.0.1:80' + args.url; - // args.url = 'http://192.168.2.50:80' + args.url; + // args.url = 'http://192.168.2.12:80' + args.url; if (!args.data) { args.data = {} @@ -536,6 +536,14 @@ export default { }) return res[1].data; }, + async qryProductDetail(params = {}) { + let res = await uni.request({ + url: '/goods/goods/app/detail', + method: 'POST', + data: params + }) + return res[1].data; + }, async updateGoodsStatus(params = {}) { let res = await uni.request({ url: '/goods/goods/app/updateStatus', diff --git a/pages/index/goods-manage.vue b/pages/index/goods-manage.vue index 61b3a06..2a19ef0 100644 --- a/pages/index/goods-manage.vue +++ b/pages/index/goods-manage.vue @@ -281,7 +281,7 @@ addEditGood(servItem) { let params = ''; if (servItem != null) { - params = '?goodId=' + servItem.id + params = '?goodId=' + servItem.goodsId } uni.navigateTo({ url: '/pages/my/new-serv' + params diff --git a/pages/my/new-serv.vue b/pages/my/new-serv.vue index 495554d..62686d5 100644 --- a/pages/my/new-serv.vue +++ b/pages/my/new-serv.vue @@ -19,10 +19,15 @@ 选择类目* - + :value="categoryMultiIndex" :range-key="'goodsCategoryName'" :range="categoryList"> + + @@ -34,7 +39,7 @@ {{item.goodsCategoryName}} - + ` --> - - 商品单位* - + + 商品单位* + + + + + 质保期 + + - 附加服务 - + 服务活动 + + + + + 服务时效 + + 上架区域* - + @@ -257,7 +281,8 @@ myUniCombox }, data() { - return { + return { + goodsId: null, formData: { servName: '', servDesc: '', @@ -285,7 +310,7 @@ regionList: [], regionMultiIndex: [0, 0], isShowAllSpecs: false, - productUnits: [{ + goodsUnitList: [{ code: 1, name: '台' }, { @@ -293,22 +318,46 @@ name: '件' }, { code: 3, - name: '套' - }, { - code: 4, name: '个' }, { - code: 5, - name: '平方' - }], - servHonorTitle: [{ - code: -1, - name: '无' + code: 4, + name: '套' }, { + code: 5, + name: '㎡' + }, { + code: 6, + name: '只' + }, { + code: 7, + name: '张' + }, { + code: 8, + name: '条' + }, { + code: 9, + name: '顶' + }, { + code: 10, + name: '支' + }, { + code: 11, + name: '根' + }], + servActivityList: [{ code: 1, name: '金牌服务' + }, { + code: 2, + name: '定制预售' + }, { + code: 3, + name: '特惠团购' + }, { + code: 4, + name: '分享0元购' }], - productProtectTimes: [{ + warrantyPeriodList: [{ code: 1, name: '15天' }, { @@ -317,6 +366,24 @@ }, { code: 3, name: '45天' + }, { + code: 4, + name: '3个月' + }, { + code: 5, + name: '6个月' + }, { + code: 6, + name: '12个月' + }], + expectDurationList: [{ + name: '12点前下单,预计当天下午上门/服务' + }, { + name: '17点前下单,预计次日上门/服务' + }, { + name: '现时下单,预计次日上门/服务' + }, { + name: '现时下单,预计后日上门/服务' }], curUserInfo: {}, bankCard: null, @@ -324,22 +391,98 @@ } }, onLoad(options) { - let goodId = null; if (options && options.goodId) { - goodId = options.goodId; + this.goodsId = options.goodId; } - this.loadData(goodId); + this.loadData(this.goodsId); }, methods: { async loadData(goodId) { this.sysInfo = uni.getSystemInfoSync(); - this.curUserInfo = this.$request.getCurUserInfo(); + this.curUserInfo = this.$request.getCurUserInfo(); + if (goodId) { + this.getCurGoodsInfo(goodId); + } this.checkBankAndCertify(); this.loadCategoryList(); this.loadRegionList(); // TODO 如果存在goodId说明是修改,需要查询good信息进行回显 // this.categoryList = await this.$api.data('categoryList'); // this.regionList = await this.$api.data('regionList'); + }, + async getCurGoodsInfo(goodsId) { + let res1 = await this.$request.qryProductDetail({ + goodsId: goodsId + }); + let goods = res1.data; + + // 选中规则转map + let chosenGoodsStandardMap = new Map(); + goods.goodsStandardList.forEach(o => { + chosenGoodsStandardMap.set(o.deptGoodsCategoryId, o); + }); + // 查询选中的第三级类目下的所有规格 + let res2 = await this.$request.listByStep({ + type: 1, + goodsCategoryId: goods.deptGoodsCategoryId + }); + let specsList = res2.data; + let newSpecsList = []; + specsList.forEach(o => { + if (chosenGoodsStandardMap.has(o.deptGoodsCategoryId)) { + o = chosenGoodsStandardMap.get(o.deptGoodsCategoryId); + o.checked = true; + } + newSpecsList.push(o); + }); + + // 选中地区转map + let chosenAreaMap = new Map(); + goods.goodsAreaList.forEach(o => { + chosenAreaMap.set(o.countryAreaId, o); + }); + // 查询选中的第二级区域下的第三级区域 + let res3 = await this.$request.areaListByStep({ + parentCode: goods.parentAreaId + }); + let areaList = res3.data; + let newAreaList = []; + areaList.forEach(o => { + if (chosenAreaMap.has(o.areaId)) { + o = chosenAreaMap.get(o.areaId); + o.checked = true; + } + newAreaList.push(o); + }); + + this.formData = { + servName: goods.goodsName, + servDesc: goods.goodsDesc, + categoryConcatName: goods.categoryConcatName, + deptGoodsCategoryId: goods.deptGoodsCategoryId, + specsList: newSpecsList, + goodsUnit: { + name: goods.goodsUnit + }, + warrantyPeriod: { + name: goods.warrantyPeriod + }, + servActivity: { + name: goods.servActivity + }, + expectDuration: { + name: goods.expectDuration + }, + areaConcatName: goods.areaConcatName, + districtList: newAreaList, + detailDesc: goods.remark, + areaDesc: goods.areaDesc, + coverImgList: [goods.goodsImgUrl], + imgList: goods.lbUrl, + descImgList: goods.detailUrl, + videoList: goods.goodsVideoUrl ? [goods.goodsVideoUrl] : [], + // status: 0, + } }, async checkBankAndCertify() { // 查询账户绑定信息 @@ -406,7 +549,8 @@ for (let i = 0; i < this.categoryList.length; i++) { chosenCategory.push(this.categoryList[i][this.categoryMultiIndex[i]]); } - this.formData.category = chosenCategory; + this.formData.category = chosenCategory; + this.formData.deptGoodsCategoryId = this.formData.category[this.formData.category.length - 1].goodsCategoryId; // 查询最后一级品类 let res = await this.$request.listByStep({ @@ -610,7 +754,7 @@ errMsg = '服务名称不能为空'; } else if (!data.servDesc) { errMsg = '服务描述不能为空'; - } else if (!data.category || !data.category.length) { + } else if ((!data.category || !data.category.length) && (!data.categoryConcatName)) { errMsg = '请选择类目'; } else if (!data.goodsStandardList || !data.goodsStandardList.length) { errMsg = '至少勾选一个规格'; @@ -712,15 +856,27 @@ let params = { goodsName: this.formData.servName, goodsDesc: this.formData.servDesc, - goodsUnit: this.formData.goodsUnit, - deptGoodsCategoryId: this.formData.category[this.formData.category.length - 1].goodsCategoryId, + goodsUnit: this.formData.goodsUnit.name, + warrantyPeriod: this.formData.warrantyPeriod.name, + servActivity: this.formData.servActivity.name, + expectDuration: this.formData.expectDuration.name, + deptGoodsCategoryId: this.formData.deptGoodsCategoryId, goodsStandardList: goodsStandardList, goodsAreaList: goodsAreaList, goodsImgUrl: this.formData.coverImgList[0], goodsImgsList: goodsImgsList, goodsVideoUrl: goodsVideoUrl, status: 0, - remark: this.formData.detailDesc + remark: this.formData.detailDesc, + areaDesc: this.formData.areaDesc + } + console.log(params) + if (this.goodsId) { + uni.showToast({ + icon: 'error', + title: '参数缺失' + }) + return; } let res = await this.$request.addGoods(params); if (res && res.code === 0) {