wk
2024-07-09 b77f2eb3717762c6638856ebe76812c8b1986b57
pages/doorkeeper-page/doorkeeper-index/exit-index.vue
@@ -1,25 +1,28 @@
<template>
      <view class="appointment">
         <view class="wait-collection"
            style="background: url('https://mx.jzeg.cn:9096/appimg/image/banner/diverbanner.png') no-repeat;background-size:contain">
         <view class="searchview">
            <u-search @change="change" :searchIconSize="40" placeholder="请输入车牌号" height="80" clearabled v-model="carNo" @search="search" @custom="custom" @clear="clear" >
            </u-search >
         </view>
         <uni-table border
            stripe
            emptyText="暂无更多数据">
            <uni-tr>
               <uni-th align="center">司机</uni-th>
               <uni-th align="center">产品</uni-th>
               <uni-th align="center">车牌号</uni-th>
               <uni-th align="center">产品</uni-th>
               <uni-th align="center">司机</uni-th>
               <uni-th align="center">手机号</uni-th>
               <uni-th align="center">空车出场   </uni-th>
               <uni-th align="center">操作</uni-th>
            </uni-tr>
            <uni-tr v-for="(item, index) in driverBillOfLoadingData"
               :key="item.id">
               <uni-td align="center">{{ item.driver  }}</uni-td>
               <uni-td align="center">{{ item.productName || '' }}</uni-td>
               <uni-td align="center">{{ item.carNo || '' }}</uni-td>
               <uni-td align="center">{{ item.productNames || '' }}</uni-td>
               <uni-td align="center">{{ item.driver  }}</uni-td>
               <uni-td align="center">{{ item.phone || '' }}</uni-td>
               <uni-td><u-button text="选择"
               <uni-td align="center">{{ item.isEmptyCar?item.isEmptyCar=='0'?'否':'是':'否'}}</uni-td>
               <uni-td><u-button text="检查"
                     type="primary"
                     @click="yuYueBtnClick(item)"></u-button></uni-td>
            </uni-tr>
@@ -30,15 +33,35 @@
            mode="center"
            round="10">
            <view class="receiverPopup">
               <uni-table border
                  stripe
                  type="selection"
                  @selection-change="selectionChange"
                  emptyText="暂无更多数据">
                  <uni-tr>
                     <uni-th align="center">检测项</uni-th>
                  </uni-tr>
                  <uni-tr v-for="(item, index) in inspectData"
                     :key="item.id">
                     <uni-td align="center">{{ item.title  }}</uni-td>
                  </uni-tr>
               </uni-table>
               <view class="receiverPopup__title"><text>确定检查完毕</text></view>
               <view class="receiverPopup__btn"><u-button text="确定"
                     type="primary"
                     @click="popClick"
                     :disabled="canClick"
                     :loading="ClickLoading"></u-button></view>
            </view>
         </u-popup>
         <tab-bar :current="1"></tab-bar>
         <view class="logoutModel">
            <u-modal :show="logoutShow"
               :title="logoutTitle"
               showCancelButton
               :content="logoutContent"
               @confirm="logoutConfirm"
               @cancel="logoutCancel"></u-modal>
         </view>
      </view>
</template>
@@ -50,8 +73,14 @@
         return {
            show: false, // 弹出全部领取提示
            driverBillOfLoadingData:[],
            inspectData:[],
            isAllSelected:false,
            form:{},
            carNo:'',
            logoutShow: false,
            logoutTitle: '提示',
            logoutContent: '是否检查完毕',
            previewImageSrc:"",
            ClickLoading:false
         }
      },
@@ -59,33 +88,74 @@
         this.init();
      },
      methods: {
         logoutConfirm() {
            uni.showLoading({ title: '加载中...' });
            this.$reqPost('addCheckLog',{
                        carNo:this.form.carNo,
                        taskId:this.form.id,
                        taskcode:this.form.code,
                     }, 'json').then(res => {
               if (res.code === 0) {
                  uni.$u.toast('检查成功')
                  this.form={}
                  this.ClickLoading = false;
                  this.TaskCoalList()
                  this.logoutShow = false;
               } else {
                  uni.$u.toast(res.msg ? res.msg : '检查失败')
                  this.logoutShow = false;
               }
            })
         },
         logoutCancel() {
            this.logoutShow = false;
         },
         yuYueBtnClick(item){
            this.logoutShow = true;
            this.inspectData=[]
            this.form=item
            this.show = true;
         },
         selectionChange(items){
           const allIds = this.inspectData.map(item => item);
           this.isAllSelected = items?.detail.index.length === allIds.length
         },
         init() {
            this.isAllSelected=false
            this.TaskCoalList();
            this.form={}
            this.inspectData=[]
         },
         popClick() {
               this.ClickLoading = true;
               uni.showLoading({ title: '加载中...' });
               this.$reqPost('addCheckLog',{
                           carNo:this.form.carNo,
                           taskId:this.form.id,
                           taskcode:this.form.code,
                        }, 'json').then(res => {
                  if (res.code === 0) {
                     uni.$u.toast('检查成功')
                     this.form={}
                     this.ClickLoading = false;
                     this.show = false;
                     this.TaskCoalList()
                  } else {
                     uni.$u.toast(res.msg ? res.msg : '检查失败')
                  }
               })
               if(this.isAllSelected==true){
                  this.ClickLoading = true;
                  this.inspectData=this.inspectData.map(item=>{
                     return {
                        ...item,
                        valve:"通过"
                     }
                  })
                  uni.showLoading({ title: '加载中...' });
                  this.$reqPost('addCheckLog',{
                              carNo:this.form.carNo,
                              taskId:this.form.id,
                              taskcode:this.form.code,
                              inspectedResult:JSON.stringify(this.inspectData)
                           }, 'json').then(res => {
                     if (res.code === 0) {
                        uni.$u.toast('检查成功')
                        this.form={}
                        this.ClickLoading = false;
                        this.inspectData=[]
                        this.show = false;
                        this.TaskCoalList()
                     } else {
                        uni.$u.toast(res.msg ? res.msg : '检查失败')
                     }
                  })
               }else{
                  uni.$u.toast('必须全部检测')
               }
         },
         open() {},
         close() {
@@ -96,17 +166,46 @@
            uni.showLoading({
               title: '加载中...'
            });
            this.$reqGet('getCheckTaskCoal',{flag:1}).then(res => {
               uni.hideLoading();
               this.driverBillOfLoadingData = res.data;
            });
            if(!this.carNo){
               this.$reqGet('getCheckTaskCoal',{flag:1}).then(res => {
                  uni.hideLoading();
                  this.driverBillOfLoadingData = res.data;
               });
            }else{
               this.$reqGet('getCheckTaskCoal',{flag:1,carNo:this.carNo}).then(res => {
                  uni.hideLoading();
                  this.driverBillOfLoadingData = res.data;
               });
            }
            
         },
         change(res) {
            console.log(res)
         },
         search(res) {
            console.log(res)
            this.TaskCoalList()
         },
         clear(res) {
            this.carNo=""
         },
         custom(res) {
            console.log(res)
         }
      }
   };
</script>
<style lang="scss" scoped>
   .searchview{
      margin: 20rpx 0;
      height: 200rpx;
      u-search{
         width: 100rpx;
      }
   }
   .receiverPopup {
      height: vww(110);
      width: 300rpx;
@@ -127,10 +226,6 @@
         }
      }
   }
   .wait-collection {
         width: 100%;
         height: 600rpx;
      }
   ::v-deep.appointment {
      .appointment-description {
         margin: vww(8) 0;
@@ -203,4 +298,9 @@
         }
      }
   }
   .wait-appointment,
   .Reserved {
      position: relative;
      top: vww(-120);
   }
</style>