上架服务-选择品类 后台接口对接

This commit is contained in:
donqi 2022-05-16 22:52:59 +08:00
parent a48ce70a24
commit 85e2d3b54e
6 changed files with 325 additions and 215 deletions

View File

@ -1,5 +1,5 @@
export default { export default {
deptId: 1, deptId: 101,
initPageNum: 1, initPageNum: 1,
initPageSize: 5 initPageSize: 5
} }

View File

@ -1,14 +1,15 @@
import globalData from '@/common/js/globalData.js'; import globalData from '@/common/js/globalData.js';
export default { export default {
address: 'http://127.0.0.1:80', address: 'https://www.opsoul.com',
// 异步接口拦截 // 异步接口拦截
addInterceptor() { addInterceptor() {
uni.addInterceptor('request', { uni.addInterceptor('request', {
invoke(args) { invoke(args) {
// request 触发前拼接 url // request 触发前拼接 url
// args.url = 'http://www.opsoul.com' + args.url; // args.url = 'http://www.opsoul.com' + args.url;
args.url = this.address + args.url; args.url = 'https://www.opsoul.com' + args.url;
args.data.deptId = globalData.deptId
// console.log("停止触发"); // console.log("停止触发");
// return false; // return false;
}, },
@ -129,5 +130,13 @@ export default {
resObj = JSON.parse(resStr); resObj = JSON.parse(resStr);
} }
return resObj; return resObj;
},
async listByStep(params = {goodsCategoryId : null}) {
let res = await uni.request({
url: '/goods/deptcategory/listByStep',
method: 'POST',
data: params
})
return res[1].data;
} }
} }

View File

@ -1,7 +1,6 @@
{ {
"pages": [{ "pages": [{
// "path": "pages/index/index" "path": "pages/index/index"
"path": "pages/my/new-serv"
}], }],
"subPackages": [{ "subPackages": [{
"root": "pages/area-proxy/", "root": "pages/area-proxy/",
@ -26,6 +25,13 @@
}, { }, {
"path": "finish-order" "path": "finish-order"
}] }]
}, {
"root": "pages/my/",
"pages": [{
"path": "new-serv"
}, {
"path": "goods-manage"
}]
}], }],
"globalStyle": { "globalStyle": {
"navigationStyle": "custom", "navigationStyle": "custom",

View File

@ -10,150 +10,164 @@
<view class="cu-bar search bg-white"> <view class="cu-bar search bg-white">
<view class="search-form round"> <view class="search-form round">
<text class="cuIcon-search"></text> <text class="cuIcon-search"></text>
<input @confirm="searchTasks" :adjust-position="true" type="text" placeholder="输入搜索的内容" <input @confirm="searchTasks" :adjust-position="true" v-model="searchInputVal" type="text" placeholder="输入搜索的内容"
confirm-type="search"></input> confirm-type="search"></input>
</view> </view>
<view class="action"> <view class="action">
<button class="cu-btn bg-main-color shadow-blur round">搜索</button> <button class="cu-btn bg-main-color shadow-blur round" @click="searchTasks">搜索</button>
</view> </view>
</view> </view>
<!-- 条件筛选栏 --> <!-- 条件筛选栏 -->
<scroll-view scroll-x class="bg-white nav text-center" :scroll-with-animation="true" <scroll-view scroll-x class="bg-white nav text-center" :scroll-with-animation="true"
:scroll-left="scrollLeft"> :scroll-left="scrollLeft">
<view class="cu-item" <view class="cu-item" v-for="(item,index) in taskConditions" v-if="item.type !== 1" :key="index"
v-for="(item,index) in taskConditions" v-if="item.type !== 1" :key="index" @tap="tabSelect" :data-id="index"> @tap="tabSelect" :data-id="index">
<!-- 区域筛选picker --> <!-- 区域筛选picker -->
<picker v-if="item.code === 'area'" :mode="'multiSelector'" @change="regionChange" :value="areaMultiIndex" :range-key="'name'" :range="areaList"> <picker v-if="item.code === 'area'" :mode="'multiSelector'" @change="regionChange"
{{item.title}} :value="areaMultiIndex" :range-key="'name'" :range="areaList">
<text class="text-lg"><text class="cuIcon-triangledownfill"></text></text> {{item.title}}
</picker> <text class="text-lg"><text class="cuIcon-triangledownfill"></text></text>
<!-- 品类筛选picker --> </picker>
<picker v-else-if="item.code === 'category'" :mode="'multiSelector'" @change="categoryChange" :value="categoryMultiIndex" :range-key="'name'" :range="categoryList"> <!-- 品类筛选picker -->
{{item.title}} <picker v-else-if="item.code === 'category'" :mode="'multiSelector'" @change="categoryChange"
<text class="text-lg"><text class="cuIcon-triangledownfill"></text></text> :value="categoryMultiIndex" :range-key="'name'" :range="categoryList">
</picker> {{item.title}}
<text v-else> <text class="text-lg"><text class="cuIcon-triangledownfill"></text></text>
{{item.title}} </picker>
<text v-if="item.type === 0" class="text-lg"><text :class="item.value === 0 ? 'cuIcon-triangleupfill' : 'cuIcon-triangledownfill'"></text></text> <text v-else>
<text v-else class="text-lg"><text class="cuIcon-triangledownfill"></text></text> {{item.title}}
<text v-if="item.type === 0" class="text-lg"><text
:class="item.value === 0 ? 'cuIcon-triangleupfill' : 'cuIcon-triangledownfill'"></text></text>
<text v-else class="text-lg"><text class="cuIcon-triangledownfill"></text></text>
</text> </text>
</view> </view>
<view class="cu-item" v-else> <view class="cu-item" v-else>
<button class="cu-btn bg-grey round shadow-blur">{{item.title}}</button> <button class="cu-btn bg-grey round shadow-blur">{{item.title}}</button>
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
<!-- 任务单 --> <!-- 任务单 -->
<view class="margin-lr-sm margin-bottom-lg"> <view class="margin-lr-sm margin-bottom-lg">
<view v-for="(task, index) in tasks" class="padding bg-white margin-top-sm"> <view v-for="(task, index) in tasks" class="padding bg-white margin-top-sm">
<view class="flex justify-between"> <view class="flex justify-between">
<view class="text-lg text-bold text-cut" style="width: 70%;">{{task.title}}</view> <view class="text-lg text-bold text-cut" style="width: 70%;">{{task.title}}</view>
<view class="text-right"> <view class="text-right">
<view class="text-lg text-price text-red text-bold">{{task.price}}</view> <view class="text-lg text-price text-red text-bold">{{task.price}}</view>
<view v-if="task.expeditedPrice"> <view v-if="task.expeditedPrice">
<text>加急</text><text class="text-price text-red text-bold">{{task.expeditedPrice}}</text> <text>加急</text><text class="text-price text-red text-bold">{{task.expeditedPrice}}</text>
</view> </view>
</view> </view>
</view> </view>
<view class="flex justify-start"> <view class="flex justify-start">
<view v-for="(tagContent, index1) in task.tag" class='cu-tag margin-right-xs'>{{tagContent}}</view> <view v-for="(tagContent, index1) in task.tag" class='cu-tag margin-right-xs'>{{tagContent}}</view>
</view> </view>
<view class="margin-top-sm"> <view class="margin-top-sm">
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-locationfill"></text></text> <text class="text-main-color text-lg margin-right-xs"><text
<text>{{task.address}}</text> class="cuIcon-locationfill"></text></text>
</view> <text>{{task.address}}</text>
<view class="margin-top-sm"> </view>
<text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-timefill"></text></text> <view class="margin-top-sm">
<text>{{task.doorTime}}</text> <text class="text-main-color text-lg margin-right-xs"><text class="cuIcon-timefill"></text></text>
</view> <text>{{task.doorTime}}</text>
<view class="padding-top-sm flex justify-end"> </view>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur" data-modal="showForwardModal" @click="showModal($event, index)">转发</button> <view class="padding-top-sm flex justify-end">
<button class="cu-btn bg-main-color margin-right-xs shadow-blur" data-modal="showAddPriceModal" @click="showModal($event, index)">加价</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur" data-modal="showForwardModal"
<button class="cu-btn bg-main-color margin-right-xs shadow-blur" v-if="task.canQuote">报价</button> @click="showModal($event, index)">转发</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur" @click="showDemandDetail($event, index)">查看</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur" data-modal="showAddPriceModal"
<button class="cu-btn bg-main-color shadow-blur" data-take-modal="showTakeSuccessModal" data-certify-modal="showTakeCertifiedModal" @click="takeTask($event, index)">接单</button> @click="showModal($event, index)">加价</button>
</view> <button class="cu-btn bg-main-color margin-right-xs shadow-blur" v-if="task.canQuote">报价</button>
</view> <button class="cu-btn bg-main-color margin-right-xs shadow-blur"
</view> @click="showDemandDetail($event, index)">查看</button>
<button class="cu-btn bg-main-color shadow-blur" data-take-modal="showTakeSuccessModal"
<!-- 加价模态框 --> data-certify-modal="showTakeCertifiedModal" @click="takeTask($event, index)">接单</button>
<view class="cu-modal" :class="showAddPriceModal?'show':''"> </view>
<view class="cu-dialog"> </view>
<view class="cu-bar bg-white justify-end solid-bottom"> </view>
<view class="content">加价申请</view>
<view class="action" data-modal="showAddPriceModal" @tap="hideModal"> <!-- 加价模态框 -->
<text class="cuIcon-close text-red"></text> <view class="cu-modal" :class="showAddPriceModal?'show':''">
</view> <view class="cu-dialog">
</view> <view class="cu-bar bg-white justify-end solid-bottom">
<view class="padding-xl bg-white text-left"> <view class="content">加价申请</view>
<view class="flex justify-center align-center margin-top-sm"> <view class="action" data-modal="showAddPriceModal" @tap="hideModal">
<text>加价金额</text> <text class="cuIcon-close text-red"></text>
<input class="radius-input" type="digit"></input> </view>
<text></text> </view>
</view> <view class="padding-xl bg-white text-left">
<view class="margin-top-sm flex justify-center"> <view class="flex justify-center align-center margin-top-sm">
<textarea class="solid radius text-left padding-sm" maxlength="-1" name="comments" placeholder="加价原因备注"></textarea> <text>加价金额</text>
</view> <input class="radius-input" type="digit"></input>
</view> <text></text>
<view class="cu-bar bg-white solid-top"> </view>
<view class="action margin-0 flex-sub text-black" data-modal="showAddPriceModal" @tap="hideModal">取消</view> <view class="margin-top-sm flex justify-center">
<view class="action margin-0 flex-sub text-main-color solid-left" @tap="hideModal" data-modal="showAddPriceModal" <textarea class="solid radius text-left padding-sm" maxlength="-1" name="comments"
@click="applyAddPrice">立即提交</view> placeholder="加价原因备注"></textarea>
</view> </view>
</view> </view>
</view> <view class="cu-bar bg-white solid-top">
<!-- 推荐奖励模态框 --> <view class="action margin-0 flex-sub text-black" data-modal="showAddPriceModal" @tap="hideModal">取消
<view class="cu-modal" :class="showForwardModal?'show':''"> </view>
<view class="cu-dialog"> <view class="action margin-0 flex-sub text-main-color solid-left" @tap="hideModal"
<view class="cu-bar bg-white justify-end solid-bottom"> data-modal="showAddPriceModal" @click="applyAddPrice">立即提交</view>
<view class="content">推荐奖励</view> </view>
<view class="action" data-modal="showForwardModal" @tap="hideModal"> </view>
<text class="cuIcon-close text-red"></text> </view>
</view> <!-- 推荐奖励模态框 -->
</view> <view class="cu-modal" :class="showForwardModal?'show':''">
<view class="padding-xl bg-white"> <view class="cu-dialog">
<view>推荐转发有奖励按每个奖励链接计算累计200单每单一元合计200元进行持续奖励</view> <view class="cu-bar bg-white justify-end solid-bottom">
<view class="margin-top-sm">推荐本单另行奖励的金额如下</view> <view class="content">推荐奖励</view>
<view class="flex justify-center align-center margin-top-sm"> <view class="action" data-modal="showForwardModal" @tap="hideModal">
<text>奖励金额</text> <text class="cuIcon-close text-red"></text>
<input class="radius-input" type="digit"></input> </view>
<text></text> </view>
</view> <view class="padding-xl bg-white">
</view> <view>推荐转发有奖励按每个奖励链接计算累计200单每单一元合计200元进行持续奖励</view>
<view class="cu-bar bg-white solid-top"> <view class="margin-top-sm">推荐本单另行奖励的金额如下</view>
<view class="action margin-0 flex-sub text-black" data-modal="showForwardModal" @tap="hideModal">取消</view> <view class="flex justify-center align-center margin-top-sm">
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showForwardModal" @tap="hideModal" <text>奖励金额</text>
@click="forwardTask">立即推荐</view> <input class="radius-input" type="digit"></input>
</view> <text></text>
</view> </view>
</view> </view>
<!-- 接单认证模态框 --> <view class="cu-bar bg-white solid-top">
<view class="cu-modal" :class="showTakeCertifiedModal?'show':''"> <view class="action margin-0 flex-sub text-black" data-modal="showForwardModal" @tap="hideModal">取消
<view class="cu-dialog"> </view>
<view class="padding-xl"> <view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showForwardModal"
<view class="cuIcon-profile big-icon padding-tb text-main-color"></view> @tap="hideModal" @click="forwardTask">立即推荐</view>
<view>您还未进行认证</view> </view>
</view> </view>
<view class="cu-bar bg-white solid-top"> </view>
<view class="action margin-0 flex-sub text-black" data-modal="showTakeCertifiedModal" @tap="hideModal">以后认证</view> <!-- 接单认证模态框 -->
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showTakeCertifiedModal" @tap="hideModal" <view class="cu-modal" :class="showTakeCertifiedModal?'show':''">
@click="goToCertify">立即认证</view> <view class="cu-dialog">
</view> <view class="padding-xl">
</view> <view class="cuIcon-profile big-icon padding-tb text-main-color"></view>
</view> <view>您还未进行认证</view>
<!-- 接单成功模态框 --> </view>
<view class="cu-modal" :class="showTakeSuccessModal?'show':''"> <view class="cu-bar bg-white solid-top">
<view class="cu-dialog"> <view class="action margin-0 flex-sub text-black" data-modal="showTakeCertifiedModal"
<view class="padding-xl"> @tap="hideModal">以后认证</view>
<view class="cuIcon-roundcheck big-icon padding-tb text-main-color"></view> <view class="action margin-0 flex-sub text-main-color solid-left"
<view class="text-bold text-lg margin-bottom-sm">接单成功</view> data-modal="showTakeCertifiedModal" @tap="hideModal" @click="goToCertify">立即认证</view>
<view>请在30分钟内联系客户预约好上门时间并在订单中操作排单时间超时6倍将受平台处罚管理该订单佣金在完成任务24小时内计入您的账户</view> </view>
</view> </view>
<view class="cu-bar bg-white solid-top"> </view>
<view class="action margin-0 flex-sub text-black" data-modal="showTakeSuccessModal" @click="contactCustomer">联系客户</view> <!-- 接单成功模态框 -->
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showTakeSuccessModal" @tap="hideModal">继续接单</view> <view class="cu-modal" :class="showTakeSuccessModal?'show':''">
</view> <view class="cu-dialog">
</view> <view class="padding-xl">
<view class="cuIcon-roundcheck big-icon padding-tb text-main-color"></view>
<view class="text-bold text-lg margin-bottom-sm">接单成功</view>
<view>请在30分钟内联系客户预约好上门时间并在订单中操作排单时间超时6倍将受平台处罚管理该订单佣金在完成任务24小时内计入您的账户</view>
</view>
<view class="cu-bar bg-white solid-top">
<view class="action margin-0 flex-sub text-black" data-modal="showTakeSuccessModal"
@click="contactCustomer">联系客户</view>
<view class="action margin-0 flex-sub text-main-color solid-left" data-modal="showTakeSuccessModal"
@tap="hideModal">继续接单</view>
</view>
</view>
</view> </view>
</view> </view>
</template> </template>
@ -161,21 +175,43 @@
<script> <script>
export default { export default {
data() { data() {
return { return {
tabCur: 0, tabCur: 0,
scrollLeft: 0, scrollLeft: 0,
stickyTop: this.CustomBar, stickyTop: this.CustomBar,
taskConditions: [], // type: 0=1=order: 0=1=
tasks: [], taskConditions: [{
curTask: null, code: 'area',
takeCertify: false, title: '区域'
showAddPriceModal: false, }, {
showForwardModal: false, code: 'category',
showTakeCertifiedModal: false, title: '品类'
showTakeSuccessModal: false, }, {
areaList: [], code: 'distance',
areaMultiIndex: [0, 0, 0], title: '距离',
categoryList: [], type: 0,
value: 0,
}, {
code: 'time',
title: '时间',
type: 0,
value: 0,
}, {
code: 'reset',
type: 1,
title: '重置'
}],
searchInputVal: '',
tasks: [],
curTask: null,
takeCertify: false,
showAddPriceModal: false,
showForwardModal: false,
showTakeCertifiedModal: false,
showTakeSuccessModal: false,
areaList: [],
areaMultiIndex: [0, 0, 0],
categoryList: [],
categoryMultiIndex: [0, 0, 0] categoryMultiIndex: [0, 0, 0]
} }
}, },
@ -184,73 +220,82 @@
}, },
methods: { methods: {
async loadData() { async loadData() {
this.taskConditions = await this.$api.data('taskConditions'); this.tasks = await this.$api.data('tasks');
this.tasks = await this.$api.data('tasks'); this.takeCertify = await this.$api.data('takeCertify');
this.takeCertify = await this.$api.data('takeCertify'); this.areaList = await this.$api.data('areaList');
this.areaList = await this.$api.data('areaList');
this.categoryList = await this.$api.data('categoryList'); this.categoryList = await this.$api.data('categoryList');
}, },
tabSelect(e) { tabSelect(e) {
this.tabCur = e.currentTarget.dataset.id; this.tabCur = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 70; this.scrollLeft = (e.currentTarget.dataset.id - 1) * 70;
let conditionType = this.taskConditions[this.tabCur].type; let conditionType = this.taskConditions[this.tabCur].type;
let conditionCode = this.taskConditions[this.tabCur].code; let conditionCode = this.taskConditions[this.tabCur].code;
if (conditionType === 0) { if (conditionType === 0) {
// //
let orderVal = this.taskConditions[this.tabCur].value; let orderVal = this.taskConditions[this.tabCur].value;
this.taskConditions[this.tabCur].value = orderVal === 0 ? 1 : 0; this.taskConditions[this.tabCur].value = orderVal === 0 ? 1 : 0;
}
},
regionChange(e) {
this.areaMultiIndex = e.detail.value;
let chosenArea = [];
for(let i = 0; i < this.areaList.length; i++) {
chosenArea.push(this.areaList[i][this.areaMultiIndex[i]]);
} }
this.taskConditions[this.tabCur].value = chosenArea; this.searchTasks();
}, },
categoryChange(e) { searchTasks() {
this.categoryMultiIndex = e.detail.value; let qryObj = {};
let chosenCategory = []; this.taskConditions.forEach((condition) => {
for(let i = 0; i < this.categoryList.length; i++) { qryObj[condition.code] = condition.value;
chosenCategory.push(this.categoryList[i][this.categoryMultiIndex[i]]);
}
this.taskConditions[this.tabCur].value = chosenCategory;
},
showDemandDetail(e, taskIndex) {
let paramObj = {
orderId: this.tasks[taskIndex].id
}
uni.navigateTo({
url: '/pages/demand-center/demand-detail?paramObj=' + encodeURIComponent(JSON.stringify(paramObj))
}) })
}, qryObj.name = this.searchInputVal;
takeTask(e, taskIndex) { //TODO: tasks
if (this.takeCertify) { },
// regionChange(e) {
e.currentTarget.dataset.modal = e.currentTarget.dataset.takeModal; this.areaMultiIndex = e.detail.value;
this.showModal(e, taskIndex); let chosenArea = [];
} else { for (let i = 0; i < this.areaList.length; i++) {
// chosenArea.push(this.areaList[i][this.areaMultiIndex[i]]);
e.currentTarget.dataset.modal = e.currentTarget.dataset.certifyModal; }
this.showModal(e, taskIndex); this.taskConditions[this.tabCur].value = chosenArea;
} },
}, categoryChange(e) {
contactCustomer() { this.categoryMultiIndex = e.detail.value;
// let chosenCategory = [];
}, for (let i = 0; i < this.categoryList.length; i++) {
showModal(e, taskIndex) { chosenCategory.push(this.categoryList[i][this.categoryMultiIndex[i]]);
this.curTask = this.tasks[taskIndex]; }
this[e.currentTarget.dataset.modal] = true; this.taskConditions[this.tabCur].value = chosenCategory;
}, },
hideModal(e) { showDemandDetail(e, taskIndex) {
this.curTask = null; let paramObj = {
this[e.currentTarget.dataset.modal] = false; orderId: this.tasks[taskIndex].id
}
uni.navigateTo({
url: '/pages/demand-center/demand-detail?paramObj=' + encodeURIComponent(JSON.stringify(
paramObj))
})
},
takeTask(e, taskIndex) {
if (this.takeCertify) {
//
e.currentTarget.dataset.modal = e.currentTarget.dataset.takeModal;
this.showModal(e, taskIndex);
} else {
//
e.currentTarget.dataset.modal = e.currentTarget.dataset.certifyModal;
this.showModal(e, taskIndex);
}
},
contactCustomer() {
//
},
showModal(e, taskIndex) {
this.curTask = this.tasks[taskIndex];
this[e.currentTarget.dataset.modal] = true;
},
hideModal(e) {
this.curTask = null;
this[e.currentTarget.dataset.modal] = false;
} }
}, },
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

View File

@ -44,7 +44,7 @@
</view> </view>
</view> </view>
<view> <view>
<button class="cu-btn line-main-color margin-right-xs margin-top-sm" @click="editGood(good)">编辑</button> <button class="cu-btn line-main-color margin-right-xs margin-top-sm" @click="addEditGood(good)">编辑</button>
<button class="cu-btn line-main-color margin-right-xs margin-top-sm" @click="offGood(good)">下架</button> <button class="cu-btn line-main-color margin-right-xs margin-top-sm" @click="offGood(good)">下架</button>
<button class="cu-btn line-main-color margin-right-xs margin-top-sm" @click="copyGood(good)">复制</button> <button class="cu-btn line-main-color margin-right-xs margin-top-sm" @click="copyGood(good)">复制</button>
<button class="cu-btn line-main-color margin-right-xs margin-top-sm">优惠券</button> <button class="cu-btn line-main-color margin-right-xs margin-top-sm">优惠券</button>
@ -54,7 +54,7 @@
</view> </view>
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
<view class="cu-bar tabbar border shop fixed-bottom-bar bg-white"> <view class="cu-bar tabbar border shop fixed-bottom-bar bg-white">
<button class="cu-btn bg-main-color lg shadow-blur margin-left-xs">新增服务</button> <button class="cu-btn bg-main-color lg shadow-blur margin-left-xs" @click="addEditGood(null)">新增服务</button>
<button class="cu-btn bg-main-color lg shadow-blur">优惠券</button> <button class="cu-btn bg-main-color lg shadow-blur">优惠券</button>
<button class="cu-btn bg-main-color lg shadow-blur">暂停售卖</button> <button class="cu-btn bg-main-color lg shadow-blur">暂停售卖</button>
<button class="cu-btn bg-main-color lg shadow-blur margin-right-xs" data-modal="communityModal" @tap="showModal">社区</button> <button class="cu-btn bg-main-color lg shadow-blur margin-right-xs" data-modal="communityModal" @tap="showModal">社区</button>
@ -172,6 +172,15 @@
}, },
comfirmCommunity() { comfirmCommunity() {
},
addEditGood(servItem) {
let params = '';
if (servItem != null) {
params = '?goodId=' + servItem.id
}
uni.navigateTo({
url: '/pages/my/new-serv' + params
})
} }
}, },
} }

View File

@ -18,8 +18,8 @@
<view class="solid-top"> <view class="solid-top">
<view class="cu-form-group"> <view class="cu-form-group">
<view class="title">选择类目</view> <view class="title">选择类目</view>
<picker :mode="'multiSelector'" @change="categoryChange" :value="categoryMultiIndex" :range-key="'name'" :range="categoryList"> <picker :mode="'multiSelector'" @change="categoryChange" @columnchange="categoryColChange" :value="categoryMultiIndex" :range-key="'goodsCategoryName'" :range="categoryList">
<input class="line-input radius-input" :value="formData.category && formData.category.length ? formData.category[0].name + '-' + formData.category[1].name + '-' + formData.category[2].name : ''" <input 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>
</picker> </picker>
</view> </view>
@ -202,14 +202,33 @@
}] }]
} }
}, },
onLoad() { onLoad(options) {
this.loadData(); let goodId = null;
if (options && options.goodId) {
goodId = options.goodId;
}
this.loadData(goodId);
}, },
methods: { methods: {
async loadData() { async loadData(goodId) {
this.categoryList = await this.$api.data('categoryList'); this.loadCategoryList();
// TODO goodIdgood
// this.categoryList = await this.$api.data('categoryList');
this.regionList = await this.$api.data('regionList'); this.regionList = await this.$api.data('regionList');
}, },
async loadCategoryList(idArr) {
let typeList = await this.$request.listByStep();
typeList = typeList.data;
let col1Id = idArr ? idArr[0] : typeList[0].goodsCategoryId;
let subTypeList = await this.$request.listByStep({ goodsCategoryId: col1Id });
subTypeList = subTypeList.data;
let col2Id = idArr ? idArr[1] : subTypeList[0].goodsCategoryId;
let subSubTypeList = await this.$request.listByStep({ goodsCategoryId: col2Id });
subSubTypeList = subSubTypeList.data;
this.categoryList.push(typeList);
this.categoryList.push(subTypeList);
this.categoryList.push(subSubTypeList);
},
async categoryChange(e) { async categoryChange(e) {
this.categoryMultiIndex = e.detail.value; this.categoryMultiIndex = e.detail.value;
let chosenCategory = []; let chosenCategory = [];
@ -220,6 +239,28 @@
this.formData.specsList = await this.$api.data('specsList'); this.formData.specsList = await this.$api.data('specsList');
}, },
async categoryColChange(e) {
let colObj = e.detail;
if (colObj.column == 0) {
//
let subTypeList = await this.$request.listByStep({goodsCategoryId: this.categoryList[0][colObj.value].goodsCategoryId});
subTypeList = subTypeList.data;
let subSubTypeList = await this.$request.listByStep({ goodsCategoryId: subTypeList[0].goodsCategoryId });
subSubTypeList = subSubTypeList.data;
this.categoryList.pop();
this.categoryList.pop();
this.categoryList.push(subTypeList);
this.categoryList.push(subSubTypeList);
this.categoryMultiIndex = [colObj.value, 0, 0];
} else if (colObj.column == 1) {
//
let subSubTypeList = await this.$request.listByStep({ goodsCategoryId: this.categoryList[1][colObj.value].goodsCategoryId });
subSubTypeList = subSubTypeList.data;
this.categoryList.pop();
this.categoryList.push(subSubTypeList);
this.categoryMultiIndex = [this.categoryMultiIndex[0], colObj.value, 0];
}
},
async regionChange(e) { async regionChange(e) {
this.regionMultiIndex = e.detail.value; this.regionMultiIndex = e.detail.value;
let chosenRegion = []; let chosenRegion = [];