wk
2024-07-11 fcd9dabadd792a13d22d89cf574d081038c98d32
pages/doorkeeper-page/doorkeeper-index/doorkeeper-index.vue
@@ -8,23 +8,68 @@
            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="检查"
                     type="primary"
                     @click="yuYueBtnClick(item)"></u-button></uni-td>
               <uni-td align="center">{{ item.startTime || '' }}-{{item.endTime || ""}}</uni-td>
               <uni-td>
                  <view class="buttons">
                     <u-button text="查看运输证"
                        type="primary"
                        class="buttonitem"
                        v-if="item.roadTransportId"
                        @click="lookRoad(item)"></u-button>
                     <u-button text="检查"
                        type="primary"
                        class="buttonitem"
                        @click="yuYueBtnClick(item)"></u-button>
                  </view>
               </uni-td>
            </uni-tr>
         </uni-table>
         <u-popup :show="imgshow"
            @close="closeimg"
            @open="openimg"
            mode="center"
            round="10">
            <view class="imgrPopup">
                  <u--image :showLoading="true"
                     :src="certificateImg != null ? BaseUrl + certificateImg : ''"
                     width="700rpx"
                     height="400rpx"
                     @click="imageClick(certificateImg)">
                     <view slot="error"
                        style="font-size: 24rpx;">加载失败</view>
                  </u--image>
                  <view class="driveruser">
                     <view>司机:{{ysData.driverName}}</view>
                  </view>
                  <view class="driveruser">
                     <view>押运员:{{ysData.supercargoInfo?ysData.supercargoInfo.split("|")[0]:null}}</view>
                     <view>手机号:{{ysData.supercargoInfo?ysData.supercargoInfo.split("|")[2]:null}}</view>
                  </view>
            </view>
         </u-popup>
         <view class="previewImage-container">
            <u-popup :show="previewImageShow"
               mode="center"
               @close="previewImageClose"
               @open="previewImageOpen">
               <u--image :src="previewImageSrc != null ? BaseUrl + previewImageSrc : ''"
                  width="400px"
                  height="400px"></u--image>
            </u-popup>
         </view>
         <u-popup :show="show"
            @close="close"
            @open="open"
@@ -51,10 +96,27 @@
                     :loading="ClickLoading"></u-button></view>
            </view>
         </u-popup>
         <view class="logoutModel">
            <u-modal :show="logoutShow"
               :title="logoutTitle"
               showCancelButton
               :content="logoutContent"
               @confirm="logoutConfirm"
               @cancel="logoutCancel"></u-modal>
         </view>
         <view class="falseModel">
            <u-modal :show="falseShow"
               :title="logoutTitle"
               showCancelButton
               :content="logoutContent"
               @confirm="falseConfirm"
               @cancel="falseCancel"></u-modal>
         </view>
      </view>
</template>
<script>
   import { BaseUrl } from '@/api/publicInterface.js';
   export default {
      components: {
      },
@@ -64,40 +126,144 @@
            driverBillOfLoadingData:[],
            inspectData:[],
            isAllSelected:false,
            form:{},
            form:{},
            BaseUrl,
            carNo:'',
            ClickLoading:false
            previewImageShow:false,
            imgshow:false,
            ClickLoading:false,
            certificateImg:"",
            logoutShow: false,
            falseShow:false,
            logoutTitle: '提示',
            logoutContent: '是否检查完毕',
            previewImageSrc:"",
            ysData:{}
         }
      },
      onShow() {
         this.init();
      },
      methods: {
         yuYueBtnClick(item){
            if(item.inspectedResult){
               this.inspectData=JSON.parse(item.inspectedResult)
               this.form=item
               this.show = true;
            }else{
               this.inspectData=[]
               this.form=item
         falseConfirm(){
            this.inspectData=[]
            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()
                  this.falseShow = false;
               } else {
                  uni.$u.toast(res.msg ? res.msg : '检查失败')
                  this.falseShow = false;
               }
            })
         },
         logoutConfirm() {
            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.logoutShow = false;
                     this.TaskCoalList()
                  } else {
                     uni.$u.toast(res.msg ? res.msg : '检查失败')
                     this.logoutShow = false;
                  }
               })
            }else{
               uni.$u.toast('必须全部检测')
            }
         },
         logoutCancel() {
            this.logoutShow = false;
         },
         falseCancel() {
            this.falseShow = false;
         },
         previewImageClose() {
            this.previewImageShow = false;
         },
         previewImageOpen() {},
         imageClick(data) {
            this.previewImageSrc = data;
            this.$nextTick(() => {
               this.previewImageShow = true;
            });
         },
         lookRoad(item){
            this.$reqGetId('getById', item.roadTransportId).then(res => {
               this.certificateImg=res.data.certificateImg
               this.ysData=res.data
               this.imgshow=true
            });
         },
         yuYueBtnClick(item){
            let char = "运输证";
            if (item.inspectedResult.includes(char)) {
               if(item.roadTransportId){
                  if(item.inspectedResult){
                     this.inspectData=JSON.parse(item.inspectedResult)
                     this.form=item
                     this.show = true;
                  }else{
                     this.inspectData=[]
                     this.form=item
                     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 : '检查失败')
                        }
                     })
                  }
               }else{
                  uni.$u.toast('该司机未上传运输证!')
               }
            } else {
               if(item.inspectedResult){
                  this.inspectData=JSON.parse(item.inspectedResult)
                  this.form=item
                  this.show = true;
               }else{
               this.falseShow = true;
                  this.form=item
               }
            }
         },
         selectionChange(items){
           const allIds = this.inspectData.map(item => item);
@@ -108,41 +274,18 @@
            this.TaskCoalList();
            this.form={}
            this.inspectData=[]
            this.certificateImg=""
         },
         popClick() {
               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('必须全部检测')
               }
            this.logoutShow = true;
         },
         open() {},
         close() {
            this.show = false;
         },
         openimg() {},
         closeimg() {
            this.imgshow = false;
         },
         // 司机首页列表
         TaskCoalList() {
@@ -165,17 +308,14 @@
            
         },
         change(res) {
            console.log(res)
         },
         search(res) {
            console.log(res)
            this.TaskCoalList()
         },
         clear(res) {
            this.carNo=""
         },
         custom(res) {
            console.log(res)
         }
      }
   };
@@ -187,6 +327,14 @@
      height: 200rpx;
      u-search{
         width: 100rpx;
      }
   }
   .imgrPopup{
      width: 700rpx;
      background-color: #ffffff;
      .driveruser{
         display: flex;
         justify-content: space-between
      }
   }
   .receiverPopup {
@@ -286,4 +434,11 @@
      position: relative;
      top: vww(-120);
   }
   .buttons{
      display: flex;
      justify-content: space-between;
      .buttonitem{
         width: 30%;
      }
   }
</style>