1、未约未排及搁置单查询主单加子单的混合单

2、监控单过滤掉全派给自己的主单
3、子单的售后情况不在除售后单栏外的其他状态栏展示
4、进入售后中,超时中的监控单都带一个“监”字
This commit is contained in:
donqi 2022-11-01 23:53:43 +08:00
parent dbb4dd13a3
commit 630f68b135
3 changed files with 113 additions and 50 deletions

View File

@ -13,8 +13,8 @@ export default {
}) })
let userInfo = _this.getCurUserInfo(); let userInfo = _this.getCurUserInfo();
// request 触发前拼接 url // request 触发前拼接 url
// args.url = 'https://www.opsoul.com:8881' + args.url; args.url = 'https://www.opsoul.com:8881' + args.url;
args.url = 'http://127.0.0.1:80' + 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.50:80' + args.url;
if (!args.data) { if (!args.data) {
@ -448,6 +448,14 @@ export default {
}) })
return res[1].data; return res[1].data;
}, },
async qryMixAfterList(params = {}) {
let res = await uni.request({
url: '/order/app/mix/after/list',
method: 'POST',
data: params
})
return res[1].data;
},
async updateOrder(params = {}) { async updateOrder(params = {}) {
let res = await uni.request({ let res = await uni.request({
url: '/order/master/editOrderMaster', url: '/order/master/editOrderMaster',

View File

@ -5,6 +5,10 @@
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : "100",
"transformPx" : false, "transformPx" : false,
"networkTimeout": {
"request": 600000,
"uploadFile": 600000
},
"app-plus" : { "app-plus" : {
/* 5+App */ /* 5+App */
"usingComponents" : true, "usingComponents" : true,
@ -52,7 +56,8 @@
"appid" : "wx105ce607b514ff2a", "appid" : "wx105ce607b514ff2a",
"setting" : { "setting" : {
"urlCheck" : false, "urlCheck" : false,
"minified" : true "minified" : true,
"postcss" : true
}, },
"usingComponents" : true, "usingComponents" : true,
"permission" : { "permission" : {

View File

@ -8,8 +8,8 @@
</cu-custom> </cu-custom>
<view class="sticky-bar" :style="[{top: stickyTop + 'px'}]"> <view class="sticky-bar" :style="[{top: stickyTop + 'px'}]">
<!-- 条件筛选栏 --> <!-- 条件筛选栏 -->
<view class="padding bg-white solid-bottom"> <view class="padding-tb bg-white solid-bottom">
<view class="flex justify-start align-center"> <view class="flex justify-start align-center padding-lr">
<text class="margin-right-xs inline-lable">全部</text> <text class="margin-right-xs inline-lable">全部</text>
<!-- <my-uni-combox class="inline-combox margin-right-xs" :candidates="stateList" placeholder="请选择" <!-- <my-uni-combox class="inline-combox margin-right-xs" :candidates="stateList" placeholder="请选择"
v-model="formData.state"></my-uni-combox> v-model="formData.state"></my-uni-combox>
@ -26,21 +26,30 @@
placeholder="请选择品类"></input> placeholder="请选择品类"></input>
</picker> </picker>
</view> </view>
<view class="flex justify-between align-center margin-top-xs"> <view class="flex justify-between align-center margin-top-xs padding-left">
<input class="line-input radius-input margin-right-sm" v-model="formData.orderKeywords" <view class="flex justify-between align-center" style="flex-basis: 55%;">
placeholder="请输入订单关键字"></input> <input class="line-input radius-input margin-right-sm" v-model="formData.orderKeywords"
<view class="text-xl text-bold"> placeholder="请输入订单关键字"></input>
<text class="cuIcon-search margin-right-sm" @click="searchOrder"></text> <view class="text-xl text-bold">
<text class="cuIcon-refresh" @click="resetConditions"></text> <text class="cuIcon-search margin-right-sm" @click="searchOrder"></text>
<text class="cuIcon-refresh" @click="resetConditions"></text>
</view>
</view>
<view class="cu-list grid no-border col-2 padding-top-sm bg-white" style="flex-basis: 42%;">
<view class="cu-item" :class="index==stateCur?'bg-main-color light cur':''" v-for="(item,index) in stateList" :key="index" :data-id="index" @tap="statusSelect" v-if="item.code > 103">
<view class="margin-bottom-xs">{{item.name}}</view>
<view v-if="item.code === 105">({{orderStatistics.monitoredOrderNum}})</view>
<view v-else-if="item.code === 104">({{orderStatistics.shelvedOrderNum}})</view>
<view v-else>(0)</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<!-- 状态分类tab --> <!-- 状态分类tab -->
<view class="cu-list grid no-border col-5 padding-top-sm bg-white"> <view class="cu-list grid no-border col-5 padding-top-sm bg-white">
<view class="cu-item" :class="index==stateCur?'bg-main-color light cur':''" v-for="(item,index) in stateList" :key="index" :data-id="index" @tap="statusSelect"> <view class="cu-item" :class="index==stateCur?'bg-main-color light cur':''" v-for="(item,index) in stateList" :key="index" :data-id="index" @tap="statusSelect" v-if="item.code <= 103">
<view class="margin-bottom-xs">{{item.name}}</view> <view class="margin-bottom-xs">{{item.name}}</view>
<view v-if="item.code === 0">({{orderStatistics.newOrderNum}})</view> <view v-if="item.code === 0">({{orderStatistics.newOrderNum}})</view>
<!-- <view v-else-if="item.code === 100">{{orderStatistics.}}</view> -->
<view v-else-if="item.code === 101">({{orderStatistics.tomorrowOrderNum}})</view> <view v-else-if="item.code === 101">({{orderStatistics.tomorrowOrderNum}})</view>
<view v-else-if="item.code === 102">({{orderStatistics.todayOrderNum}})</view> <view v-else-if="item.code === 102">({{orderStatistics.todayOrderNum}})</view>
<view v-else-if="item.code === 103">({{orderStatistics.overTimeOrderNum}})</view> <view v-else-if="item.code === 103">({{orderStatistics.overTimeOrderNum}})</view>
@ -76,8 +85,8 @@
<text v-else-if="item.code === 2">({{orderStatistics.waitServOrderNum}})</text> <text v-else-if="item.code === 2">({{orderStatistics.waitServOrderNum}})</text>
<text v-else-if="item.code === 3">({{orderStatistics.servingOrderNum}})</text> <text v-else-if="item.code === 3">({{orderStatistics.servingOrderNum}})</text>
<text v-else-if="item.code === 4">({{orderStatistics.waitSureOrderNum}})</text> <text v-else-if="item.code === 4">({{orderStatistics.waitSureOrderNum}})</text>
<text v-else-if="item.code === 5"></text> <text v-else-if="item.code === 5">({{orderStatistics.finishedOrderNum}})</text>
<text v-else-if="item.other === 0">{{orderStatistics.afterServiceNum}}</text> <text v-else-if="item.other === 0">({{orderStatistics.afterListNum}})</text>
<text v-else>(0)</text> <text v-else>(0)</text>
</view> </view>
</scroll-view> </scroll-view>
@ -87,7 +96,8 @@
<view class="flex justify-between"> <view class="flex justify-between">
<view class="text-lg text-bold text-cut">{{order.goodsName}}</view> <view class="text-lg text-bold text-cut">{{order.goodsName}}</view>
<!-- 不同状态订单使用不同角标 --> <!-- 不同状态订单使用不同角标 -->
<view v-if="order.orderStatus === 0" class="right-tag padding-lr-sm padding-tb-xs bg-cyan"></view> <view v-if="([2, 5].indexOf(stateCur) >= 0 || tabCur === 4) && order.orderDetailId == null" class="right-tag padding-lr-sm padding-tb-xs bg-orange"></view>
<view v-else-if="order.orderStatus === 0" class="right-tag padding-lr-sm padding-tb-xs bg-cyan"></view>
<view v-else-if="order.orderStatus === 1" class="right-tag padding-lr-sm padding-tb-xs bg-main-color"></view> <view v-else-if="order.orderStatus === 1" class="right-tag padding-lr-sm padding-tb-xs bg-main-color"></view>
<view v-else-if="order.orderStatus === 2" class="right-tag padding-lr-sm padding-tb-xs bg-yellow"></view> <view v-else-if="order.orderStatus === 2" class="right-tag padding-lr-sm padding-tb-xs bg-yellow"></view>
<view v-else-if="order.orderStatus === 3" class="right-tag padding-lr-sm padding-tb-xs bg-purple"></view> <view v-else-if="order.orderStatus === 3" class="right-tag padding-lr-sm padding-tb-xs bg-purple"></view>
@ -106,7 +116,7 @@
<view v-else-if="order.orderStatus === 2" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未上门</view> <view v-else-if="order.orderStatus === 2" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未上门</view>
<view v-else-if="order.orderStatus === 3" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未完单</view> <view v-else-if="order.orderStatus === 3" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未完单</view>
</view> </view>
<view class="float-left" v-if="order.orderTimeoutRecords" v-for="(timeoutRecord, recordIndex) in order.orderTimeoutRecords"> <view class="float-left" v-else-if="order.orderTimeoutRecords" v-for="(timeoutRecord, recordIndex) in order.orderTimeoutRecords">
<view v-if="timeoutRecord.orderStatus === 0" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未接单</view> <view v-if="timeoutRecord.orderStatus === 0" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未接单</view>
<view v-else-if="timeoutRecord.orderStatus === 1" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未预约</view> <view v-else-if="timeoutRecord.orderStatus === 1" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未预约</view>
<view v-else-if="timeoutRecord.orderStatus === 2" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未上门</view> <view v-else-if="timeoutRecord.orderStatus === 2" class='cu-tag margin-right-xs radius line-red margin-top-xs'>超时未上门</view>
@ -206,7 +216,7 @@
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)">修改时间</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm" data-modal="showEditTimeArrangeModal" @tap="showModal($event, order)">修改时间</button>
<button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm">立即上门</button> <button class="cu-btn bg-main-color margin-right-xs shadow-blur margin-top-sm">立即上门</button>
</view> --> </view> -->
<view v-if="order.afterServiceRecordList && order.afterServiceRecordList.length" class="bg-white margin-top-sm"> <view v-if="order.afterServiceRecordList && order.afterServiceRecordList.length && order.orderDetailId != null" class="bg-white margin-top-sm">
<view v-for="(afterServiceRecord, afterServiceRecordIndex) in order.afterServiceRecordList"> <view v-for="(afterServiceRecord, afterServiceRecordIndex) in order.afterServiceRecordList">
<view v-if="afterServiceRecord.createBy == 1" class="padding-tb solid-top"> <view v-if="afterServiceRecord.createBy == 1" class="padding-tb solid-top">
<view class='cu-tag bg-main-color radius light'>售后发起中</view> <view class='cu-tag bg-main-color radius light'>售后发起中</view>
@ -339,8 +349,8 @@
<text>备注{{order.customerRemark}}</text> <text>备注{{order.customerRemark}}</text>
</view> </view>
</view> </view>
<view :class="tabCur !== 4 ? 'cu-tabbar-height' : ''"></view> <load-status-bar v-show="tabCur === 5 || (stateCur != null && stateList[stateCur].code === 105)" ref="loadStatusBar" @loadMore="loadMasterOrderPage"></load-status-bar>
<load-status-bar v-show="tabCur === 4 || tabCur === 5" ref="loadStatusBar" @loadMore="loadMasterOrderPage"></load-status-bar> <view v-show="tabCur !== 5 && stateCur !== 0" class="cu-tabbar-height"></view>
<!-- 模态框 --> <!-- 模态框 -->
<time-arrange :show="showTimeArrangeModal" :data="curOrder" :curDate="curDate" @showArrangeFailTime="showArrangeFailTime" @editServTime="editServTime"></time-arrange> <time-arrange :show="showTimeArrangeModal" :data="curOrder" :curDate="curDate" @showArrangeFailTime="showArrangeFailTime" @editServTime="editServTime"></time-arrange>
<time-arrange-fail :show="showArrangeFailTimeModal" :data="curOrder"></time-arrange-fail> <time-arrange-fail :show="showArrangeFailTimeModal" :data="curOrder"></time-arrange-fail>
@ -412,6 +422,12 @@
categoryList: [], categoryList: [],
categoryMultiIndex: [0, 0, 0], categoryMultiIndex: [0, 0, 0],
stateList: [{ stateList: [{
code: 105,
name: '监控单'
}, {
code: 104,
name: '搁置单'
}, {
code: 103, code: 103,
name: '超时单' name: '超时单'
}, { }, {
@ -529,37 +545,82 @@
this.loadOrderStatistics(); this.loadOrderStatistics();
}, },
async loadMasterOrderPage(params = {}) { async loadMasterOrderPage(params = {}) {
params.pageSize = this.$globalData.initPageSize; //
params.pageNum = this.pageNum; params.shelveStatus = 0;
params.goodsName = this.formData.orderKeywords; params.goodsName = this.formData.orderKeywords;
params.countryId = this.formData.area && this.formData.area.length > 2 ? this.formData.area[2].areaId : null; params.countryId = this.formData.area && this.formData.area.length > 2 ? this.formData.area[2].areaId : null;
params.goodsCategoryId = this.formData.category && this.formData.category.length > 2 ? this.formData.category[2].goodsCategoryId : null; params.goodsCategoryId = this.formData.category && this.formData.category.length > 2 ? this.formData.category[2].goodsCategoryId : null;
//
if (this.tabCur != null) { if (this.tabCur != null) {
params.orderStatus = this.subStateList[this.tabCur].code; params.orderStatus = this.subStateList[this.tabCur].code;
} else if (this.stateCur != null) { } else if (this.stateCur != null && (this.stateList[this.stateCur].code === 0 || this.stateList[this.stateCur].code === 100)) {
params.orderStatus = this.stateList[this.stateCur].code; params.orderStatus = this.stateList[this.stateCur].code;
} }
//
if ((this.stateCur != null && this.stateList[this.stateCur].code === 105) || this.tabCur === 5) {
params.pageSize = this.$globalData.initPageSize;
params.pageNum = this.pageNum;
} else {
params.pageSize = 10000;
params.pageNum = 1;
}
//
let date = new Date(); let date = new Date();
if (this.stateCur === 1) { if (this.stateCur != null) {
// if (this.stateList[this.stateCur].code === 102) {
params.pageSize = 999; //
params.pageNum = 1; params.orderStatus = 2;
params.orderStatus = 2; params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 00:00:00",
params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 00:00:00", params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 23:59:59"
params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + " 23:59:59" } else if (this.stateList[this.stateCur].code === 101) {
} else if (this.stateCur === 2) { //
// params.orderStatus = 2;
params.pageSize = 999; params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 00:00:00",
params.pageNum = 1; params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 23:59:59"
params.orderStatus = 2; } else if (this.stateList[this.stateCur].code === 104) {
params.expectTimeStart = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 00:00:00", //
params.expectTimeEnd = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1) + " 23:59:59" params.shelveStatus = 1;
} else if (this.stateList[this.stateCur].code === 105) {
//
// params.orderStatuses = "2,3,4,5";
params.filterOnlyServOrder = true;
}
} }
try { try {
let res = null; let res = null;
// //
if (this.tabCur === 4 || this.tabCur === 5 || this.stateCur === 1 || this.stateCur === 2) { if (this.stateCur != null && [105].indexOf(this.stateList[this.stateCur].code) >= 0) {
// //
this.$refs.loadStatusBar.showLoading();
res = await this.$request.qryMasterOrderPage(params);
if (res && res.rows) {
let rowsLength = res.rows.length;
if (rowsLength > 0) {
this.orderList = this.orderList.concat(res.rows);
this.pageNum++;
if (rowsLength === params.pageSize) {
this.$refs.loadStatusBar.showLoadMore();
return;
}
}
}
this.$refs.loadStatusBar.showLoadOver();
} else if ((this.stateCur != null && [104, 103, 100, 0].indexOf(this.stateList[this.stateCur].code) >= 0) || [0, 4].indexOf(this.tabCur) >= 0) {
let funName = "qryMixOrderList";
//
if (this.stateCur != null && this.stateList[this.stateCur].code === 103) {
//
params.orderStatus = null;
params.isOverTime = true;
} else if (this.tabCur === 4) {
funName = "qryMixAfterList";
}
res = await this.$request[funName](params);
if (res && res.data) {
this.orderList = res.data;
}
} else {
//
this.$refs.loadStatusBar.showLoading(); this.$refs.loadStatusBar.showLoading();
let funName = "qryDetailOrderPage"; let funName = "qryDetailOrderPage";
if (this.tabCur === 4) { if (this.tabCur === 4) {
@ -578,17 +639,6 @@
} }
} }
this.$refs.loadStatusBar.showLoadOver(); this.$refs.loadStatusBar.showLoadOver();
} else {
//
if (this.stateCur === 0) {
//
params.orderStatus = null;
params.isOverTime = true;
}
res = await this.$request.qryMixOrderList(params);
if (res && res.data) {
this.orderList = res.data;
}
} }
} catch (e) { } catch (e) {
console.error(e) console.error(e)