From 4b80c98ef5fda8d6358778f2efe8bb35cb20ccf9 Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Fri, 15 Jan 2021 16:18:21 +0800 Subject: [PATCH] gx --- hive-app/pages/workbench/serviceOrderList.vue | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 100 insertions(+), 19 deletions(-) diff --git a/hive-app/pages/workbench/serviceOrderList.vue b/hive-app/pages/workbench/serviceOrderList.vue index adf2219..0f7267f 100644 --- a/hive-app/pages/workbench/serviceOrderList.vue +++ b/hive-app/pages/workbench/serviceOrderList.vue @@ -42,7 +42,7 @@ </view> </view> - <view class="flex flex-v right"> + <view class="flex flex-v right" style="flex: 0 0 70px;"> <text class="gray mb-5">{{item.timeLength}}分钟</text> <text class="gray mt-5" v-for="(op, index) in item.projs">{{op.beautyName || '-'}}</text> <text class="mt-10" :class="item.status==7 || item.status==8?'gray':'blue'">{{item.status | formatStatus}}</text> @@ -53,6 +53,11 @@ v-if="isShowCancelBtn(item.status, item.projs, item.staffId)" @click.stop="cancelOrder(item.id)"> 取消 + </text> + <text class="blue-btn small-btn ml-10" + v-if="isShowOrder(item.status)" + @click.stop="confirmServiceOrder(item.id)"> + 确认预约 </text> <text class="blue-btn small-btn ml-10" v-if="isShowStartServiceBtn(item.status, item.projs)" @@ -67,6 +72,9 @@ </view> </navigator> <no-record :isShow="!list.length" txt="暂无服务单记录"></no-record> + <view v-if="list.length"> + <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more> + </view> </view> </view> </view> @@ -75,10 +83,12 @@ <script> import HTabs from "@/components/liuyuno-tabs/liuyuno-tabs.vue"; import searchBar from '../../components/searchBar/index.vue'; + import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'; export default { components: { HTabs, - searchBar + searchBar, + uniLoadMore }, data() { return { @@ -91,35 +101,64 @@ }, { state: 1, - name: '待预约' + name: '待确认' }, { state: 2, - name: '待配料' + name: '待排班' }, { state: 3, - name: '待服务' + name: '待配料' }, { state: 4, - name: '服务中' + name: '待服务' }, { state: 5, + name: '服务中' + }, + { + state: 6, name: '已完成' } ], list: [], - userId: '' + userId: '', + loadStatus: 'more', + pageNum: 1 } }, onLoad(options) { if(options.status){ this.orderStatus = Number(options.status); } + if(options.queryKey){ + this.queryKey = options.queryKey; + } this.loadList(); this.userId = this.$httpUtils.getRoleInfo().id; + // 判断权限 + // #ifdef APP-PLUS + if(!this.$utils.hasPermission('fwdgl.add')){ + let webView = this.$mp.page.$getAppWebview(); + webView.setTitleNViewButtonStyle(0, { + width: 0, + }); + } + // #endif + }, + onPullDownRefresh(){ + this.reloadData(); + let timer = setTimeout(function () { + uni.startPullDownRefresh(); + clearTimeout(timer); + timer = null; + }, 800); + }, + onReachBottom(){ + this.loadList() }, onNavigationBarButtonTap(Object){ if(Object.key === 'add'){ @@ -129,15 +168,31 @@ } }, methods:{ + reloadData(){ + this.list = []; + this.pageNum = 1; + this.loadStatus = 'more'; + this.loadList(); + }, loadList(){ + if(this.loadStatus!=='more'){ + return; + } this.$httpUtils.request('/api/serviceOrder/findServiceOrderList', { - pageNum: 1, - pageSize: 100, + pageNum: this.pageNum, + pageSize: 10, queryKey: this.queryKey, status: this.orderStatus }, 'POST').then((res) => { if(res.status == 200){ - this.list = res.rows; + let result = res.rows; + if(result.length < 10){ + this.loadStatus = 'noMore'; + } else { + this.pageNum ++ ; + this.loadStatus = 'more'; + } + this.list = this.list.concat(result); } }) }, @@ -145,36 +200,41 @@ isShowFooter(status, items, staffId){ return this.isShowCancelBtn(status, items, staffId) || this.isShowStartServiceBtn(status, items) || - this.isShowEndServiceBtn(status, items) + this.isShowEndServiceBtn(status, items) || + this.isShowOrder(status) }, // 是否显示取消按钮 isShowCancelBtn(status, items, staffId){ // 美疗师和下单顾问可以取消服务 let isEnable = (items.some((item) => item.id == this.userId)) || (this.userId == staffId); - return status != 5 && status != 6 && status != 7 && status != 8 && isEnable; + return status != 5 && status != 6 && status != 7 && status != 8 && isEnable && this.$utils.hasPermission('fwdgl.cancel'); + }, + // 是否显示确认预约 + isShowOrder(status){ + return status == 9 && this.$utils.hasPermission('fwdgl.qryy'); }, // 是否显示开始服务按钮 isShowStartServiceBtn(status, items){ // 只有美疗师本人才可以开始服务 let isEnable = items.some((item) => item.id == this.userId) - return status == 4 && isEnable; + return status == 4 && isEnable && this.$utils.hasPermission('fwdgl.begin'); }, // 是否显示结束服务按钮 isShowEndServiceBtn(status, items){ // 只有美疗师本人才可以开始服务 let isEnable = items.some((item) => item.id == this.userId) - return status == 5 && isEnable; + return status == 5 && isEnable && this.$utils.hasPermission('fwdgl.end'); }, search(val){ this.queryKey = val; - this.loadList(); + this.reloadData(); }, tabChange(index){ if(this.orderStatus === index){ return; } this.orderStatus = index; - this.loadList(); + this.reloadData(); }, // 取消订单 cancelOrder(id){ @@ -185,7 +245,26 @@ if (res.confirm) { this.$httpUtils.request('/api/serviceOrder/cancelService/'+id).then((res) => { if(res.status == 200){ - this.loadList() + this.reloadData() + } + this.$toast.info(res.info); + }) + } + } + }); + }, + // 确认预约 + confirmServiceOrder(id){ + uni.showModal({ + title: '提示', + content: '确认预约吗?', + success: (res) => { + if (res.confirm) { + this.$httpUtils.request('/api/serviceOrder/confirmServiceOrder', { + id:id + }, 'POST').then((res) => { + if(res.status == 200){ + this.reloadData() } this.$toast.info(res.info); }) @@ -202,7 +281,7 @@ if (res.confirm) { this.$httpUtils.request('/api/serviceOrder/startService/'+id).then((res) => { if(res.status == 200){ - this.loadList() + this.reloadData() } this.$toast.info(res.info); }) @@ -219,7 +298,7 @@ if (res.confirm) { this.$httpUtils.request('/api/serviceOrder/stopService/'+id).then((res) => { if(res.status == 200){ - this.loadList() + this.reloadData() } this.$toast.info(res.info); }) @@ -245,6 +324,8 @@ return '已完成' } else if(val == 7){ return '服务单结束' + } else if(val == 9){ + return '待确认' } else { return '已取消' } -- Gitblit v1.9.1