fix
Helius
2021-02-20 45fb4b11ad51bb38306765b11a6747402e382cee
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.stopPullDownRefresh();
            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 '已取消'
            }