修改上架

This commit is contained in:
donqi 2023-02-12 04:15:15 +08:00
parent 2eec7295ed
commit 2714001875
3 changed files with 199 additions and 35 deletions

View File

@ -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',

View File

@ -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

View File

@ -20,9 +20,14 @@
<view class="title">选择类目<text class="text-red">*</text></view>
<picker :mode="'multiSelector'" @change="categoryChange" @columnchange="categoryColChange"
:value="categoryMultiIndex" :range-key="'goodsCategoryName'" :range="categoryList">
<input disabled class="line-input radius-input"
<input v-if="formData.category"
disabled class="line-input radius-input"
:value="formData.category && formData.category.length ? formData.category[0].goodsCategoryName + '-' + formData.category[1].goodsCategoryName + '-' + formData.category[2].goodsCategoryName : ''"
placeholder="请选择类目"></input>
placeholder="请选择类目" />
<input v-else-if="formData.categoryConcatName"
disabled class="line-input radius-input"
:value="formData.categoryConcatName"
placeholder="请选择类目" />
</picker>
</view>
<view v-if="formData.specsList && formData.specsList.length > 0">
@ -34,7 +39,7 @@
<checkbox style="transform:scale(1)" class="main-color margin-right-xs"
:value="index" :checked="item.checked"></checkbox>
<text>{{item.goodsCategoryName}}</text>
</view>
</view>`
<view class="flex-sub">
<input class="sm radius-input"
@input="inputSpecs($event, index, 'goodsStandardName')"
@ -104,14 +109,30 @@
</view>
<view class="cu-form-group solid-top">
<view class="title">商品单位<text class="text-red">*</text></view>
<input name="goodsUnit" v-model="formData.goodsUnit" placeholder="商品单位显示优先级低于规格单位"></input>
<my-uni-combox class="form-val-area" :candidates="goodsUnitList" placeholder="上方已填单位则以上方所填为准"
v-model="formData.goodsUnit">
</my-uni-combox>
</view>
<view class="cu-form-group solid-top">
<view class="title">质保期</view>
<my-uni-combox class="form-val-area" :candidates="warrantyPeriodList" placeholder="请选择"
v-model="formData.warrantyPeriod">
</my-uni-combox>
</view>
<view class="cu-form-group justify-start">
<!-- <checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="true"
:v-model="formData.isGoldenServ" :checked="formData.isGoldenServ"></checkbox> -->
<view class="title">附加服务</view>
<my-uni-combox class="form-val-area" :candidates="servHonorTitle" placeholder="请选择"
v-model="formData.servHonorTitle">
<view class="title">服务活动</view>
<my-uni-combox class="form-val-area" :candidates="servActivityList" placeholder="请选择"
v-model="formData.servActivity">
</my-uni-combox>
</view>
<view class="cu-form-group justify-start">
<!-- <checkbox style="transform:scale(1)" class="main-color margin-right-xs" :value="true"
:v-model="formData.isGoldenServ" :checked="formData.isGoldenServ"></checkbox> -->
<view class="title">服务时效</view>
<my-uni-combox class="form-val-area" :candidates="expectDurationList" placeholder="请选择"
v-model="formData.expectDuration">
</my-uni-combox>
</view>
<view class="solid-top">
@ -119,9 +140,12 @@
<view class="title">上架区域<text class="text-red">*</text></view>
<picker :mode="'multiSelector'" @change="regionChange" @columnchange="regionColChange"
:value="regionMultiIndex" :range-key="'areaName'" :range="regionList">
<input disabled class="line-input radius-input"
<input disabled class="line-input radius-input" v-if="formData.region"
:value="formData.region && formData.region.length ? formData.region[0].areaName + '-' + formData.region[1].areaName : ''"
placeholder="请选择区域"></input>
<input disabled class="line-input radius-input" v-else-if="formData.areaConcatName"
:value="formData.areaConcatName"
placeholder="请选择区域"></input>
</picker>
</view>
<view class="padding-lr bg-white">
@ -258,6 +282,7 @@
},
data() {
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,16 +391,18 @@
}
},
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();
if (goodId) {
this.getCurGoodsInfo(goodId);
}
this.checkBankAndCertify();
this.loadCategoryList();
this.loadRegionList();
@ -341,6 +410,80 @@
// 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() {
//
// let bankCardRes = await this.$request.getBindBankCardByWorkerId({
@ -407,6 +550,7 @@
chosenCategory.push(this.categoryList[i][this.categoryMultiIndex[i]]);
}
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) {