yangan
2024-09-12 75811022288e2c4832974a1586f442608706c30a
pages/driver-page/drvier-my/certifiCate/certifiCate.vue
@@ -36,6 +36,12 @@
               <view class="line detail-value">
                  司机:{{item.driverName}}
               </view>
               <view class="line detail-value">
                  押运员:{{item.supercargoInfo?getUserName(item.supercargoInfo):'无'}}
               </view>
               <view class="line detail-value">
                  {{item.startTime?item.startTime.slice(0,10):""}}-{{item.expirationTime?item.expirationTime.slice(0,10):""}}
               </view>
            </view>
         </view>
      </view>
@@ -49,7 +55,7 @@
               height="400px"></u--image>
         </u-popup>
      </view>
      <!-- 添加道路运输证 -->
      <!-- 添加剧毒运输证 -->
      <view class="editDriverPopup-container">
         <u-popup :show="editTranShow"
            mode="bottom"
@@ -84,7 +90,8 @@
                  <u-form-item labelWidth="20%"
                     label="产品"
                     ref="item1" 
                     prop='productId'>
                     prop='productName'
                     required>
                     <u--input placeholder="请输入产品"
                        v-model="tranSportForm.productName"
                        class="input"
@@ -93,7 +100,8 @@
                  <u-form-item labelWidth="20%"
                     label="客户"
                     ref="item1" 
                     prop='productId'>
                     prop='customerName'
                     required>
                     <u--input placeholder="请输入客户"
                        v-model="tranSportForm.customerName"
                        class="input"
@@ -121,13 +129,13 @@
                     label="运输证开始时间"
                     labelWidth="20%"
                     borderBottom>
                     <uni-datetime-picker v-model="tranSportForm.startTime" type="date" :start="minDate" />
                     <uni-datetime-picker v-model="tranSportForm.startTime" type="datetime"  />
                  </u-form-item>
                  <u-form-item prop="expirationTime"
                     label="运输证过期时间"
                     labelWidth="20%"
                     borderBottom>
                     <uni-datetime-picker v-model="tranSportForm.expirationTime" type="date" :start="minDate" />
                     <uni-datetime-picker v-model="tranSportForm.expirationTime" type="datetime" :start="minDate" />
                  </u-form-item>
                  <view class="adddelete"> 
                     <u-button text="添加驾驶员"
@@ -199,43 +207,10 @@
                  </u-form-item>
               </u--form>
               <view class="person-utils">
                  <u-button text="提交道路运输证"
                  <u-button text="提交剧毒运输证"
                     @click="updateRoad"
                     :disabled="upload"
                     type="primary"></u-button>
               </view>
            </view>
         </u-popup>
         <u-popup :closeable='true'
            :round="30"
            mode='bottom'
            :show="selfDeliverShow"
            @close="selfDeliverClose"
            @open="selfDeliverOpen">
            <view class="name-list-section">
               <view class="name-list_title">
                  选择客户
               </view>
               <view class="name-list_container">
                  <u-empty mode="data"
                     icon="http://cdn.uviewui.com/uview/empty/data.png"
                     text="暂无数据"
                     textSize="30"
                     iconSize="1000"
                     v-if="customerNameList.length===0"></u-empty>
                  <view class="name-list_container_item"
                     v-for="(item,index) in customerNameList" :key="index"
                     @click="selectCustomer(item)">
                     <view class="item-image">
                        <image src="https://mx.jzeg.cn:9096/appimg/image/banner/address.png"
                           mode="widthFix"
                           style="width: 18px;"></image>
                     </view>
                     <view class="item-customerName">
                        {{item.customerName}}
                     </view>
                  </view>
               </view>
            </view>
         </u-popup>
@@ -251,7 +226,12 @@
         return {
            minDate: this.getToday(),
            previewImageShow: false,
            supercargoList:[],
            supercargoList:[{
               driverName:"",
               driverIdcard:"",
               driverPhone:""
            }],
            userInfo: {},
            scoreDetailList: [],
            editTranShow:false,
            upload:false,
@@ -259,8 +239,6 @@
            BaseUrl,
            previewImageSrc: '',
            certificateData:[],
            userInfo: {},
            customerNameList:[],
            driverList:[{
               driverName:"",
               driverIdcard:""
@@ -271,24 +249,42 @@
               customerId:""
            },
            sportRules:{
               productName:{
                  type: 'string',
                  required: true,
                  message: '请填写产品名称',
                  trigger: ['blur', 'change']
               },
               customerName:{
                  type: 'string',
                  required: true,
                  message: '请填写客户名称',
                  trigger: ['blur', 'change']
               },
               certificateNo: {
                  type: 'string',
                  required: true,
                  message: '请填写运输证号',
                  trigger: ['blur', 'change']
               },
               expirationTime: {
               expirationTime: [{
                  type: 'string',
                  required: true,
                  message: '请选择运输证过期时间',
                  trigger: ['blur', 'change']
               },
               startTime:{
               },{
                  pattern: /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/,
                  message: '请选择开始时间'
               }],
               startTime:[{
                  type: 'string',
                  required: true,
                  message: '请选择运输证过期时间',
                  message: '请选择运输证开始时间',
                  trigger: ['blur', 'change']
               },
               },{
                  pattern: /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/,
                  message: '请选择开始时间'
               }],
               carNo: [{
                     type: 'string',
                     required: true,
@@ -314,17 +310,25 @@
      },
      onLoad() {
         this.getScoreDetail()
         this.$reqGet('getUserEntity').then(res => {
            this.userInfo = res.data;
            this.$reqGetId('getDriverListById', this.userInfo.userId).then(res => {
               this.certificateData = res.data;
            });
         });
         this.getData()
      },
      methods: {
         ...mapMutations(['changeisUploadimg']),
         beforeRead() {
            this.changeisUploadimg(true);
         },
         getData(){
            this.$reqGet('getUserEntity').then(res => {
               this.userInfo = res.data;
               this.tranSportForm.carNo=this.userInfo.carNo
               this.driverList[0]={
               driverName:this.userInfo.name,
               driverIdcard:this.userInfo.idCard
            }
               this.$reqGetId('getDriverListById', this.userInfo.userId).then(res => {
                  this.certificateData = res.data;
               });
            });
         },
         imageClick(data) {
            this.previewImageSrc = data;
@@ -346,7 +350,10 @@
           let year = now.getFullYear();
           let month = this.padStart(now.getMonth() + 1); // 月份是从0开始的
           let day = this.padStart(now.getDate());
           return `${year}-${month}-${day}`;
           let hour = this.padStart(now.getHours());
           let minute = this.padStart(now.getMinutes());
           let second = this.padStart(now.getSeconds());
           return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
         },
         padStart(value) {
           return value.toString().padStart(2, '0');
@@ -366,7 +373,6 @@
            });
         },
         editTranClick(){
            this.getShipToList()
            this.editTranShow = true;
         },
         editTranClose(){
@@ -377,21 +383,16 @@
            this.$refs.sportRef
               .validate()
               .then(res => {
                  if (this.tranSportForm.productName == '' ) {
                     uni.showToast({
                        title: '请选择产品!',
                        icon: 'error',
                        duration: 2000
                     });
                  }else if(this.tranSportForm.customerName == ''){
                     uni.showToast({
                        title: '请选择客户!',
                        icon: 'error',
                        duration: 2000
                     });
                  }
                  let submit=true
                  let idcardtext=/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
                  if(this.driverList.length>0){
                  if (this.fileList9.length==0) {
                     uni.showToast({
                        title: '请选择运输证!',
                        icon: 'error',
                        duration: 2000
                     });
                     submit=false
                  }else if(this.driverList.length>0){
                     this.driverList.forEach((item,index)=>{
                        if(!item.driverName){
                           uni.showToast({
@@ -399,19 +400,21 @@
                              icon: 'error',
                              duration: 2000
                           });
                        }
                        if(!item.driverIdcard){
                           submit=false
                        }else if(!item.driverIdcard){
                           uni.showToast({
                              title: `请填写驾驶身份证!`,
                              icon: 'error',
                              duration: 2000
                           });
                           submit=false
                        }else if(!idcardtext.test(item.driverIdcard)){
                           uni.showToast({
                              title: `请检验驾驶员身份证!`,
                              icon: 'error',
                              duration: 2000
                           });
                           submit=false
                        }
                     })
                  }
@@ -423,72 +426,86 @@
                              icon: 'error',
                              duration: 2000
                           });
                        }
                        if(!item.driverIdcard){
                           submit=false
                        }else if(!item.driverIdcard){
                           uni.showToast({
                              title: `请填写押运身份证!`,
                              icon: 'error',
                              duration: 2000
                           });
                           submit=false
                        }else if(!idcardtext.test(item.driverIdcard)){
                           uni.showToast({
                              title: `请检验押运身份证!`,
                              icon: 'error',
                              duration: 2000
                           });
                        }
                        if(!item.driverPhone){
                           submit=false
                        }else if(!item.driverPhone){
                           uni.showToast({
                              title: `请填写押运手机号!`,
                              icon: 'error',
                              duration: 2000
                           });
                           submit=false
                        }else if( !/^1[23456789]\d{9}$/.test(item.driverPhone)){
                           uni.showToast({
                              title: `请检验押运手机号!`,
                              icon: 'error',
                              duration: 2000
                           });
                           submit=false
                        }
                     })
                  }
                  let driverName=""
                  let driverIdcard=""
                  let supercargoInfo=''
                  driverName = this.driverList.map((item, index) => {
                          return item.driverName;
                        }).join(",");
                  driverIdcard = this.driverList.map((item, index) => {
                         return item.driverIdcard;
                        }).join(",");
                  supercargoInfo = this.supercargoList.map((item, index) => {
                      return item.driverName+ '|'+item.driverIdcard+"|"+item.driverPhone
                     }).join(",");
                     if(this.tranSportForm.startTime){
                        this.tranSportForm.startTime=this.tranSportForm.startTime+" 00:01"
                     if(submit){
                        let driverName=""
                        let driverIdcard=""
                        let supercargoInfo=''
                        driverName = this.driverList.map((item, index) => {
                                return item.driverName;
                              }).join(",");
                        driverIdcard = this.driverList.map((item, index) => {
                               return item.driverIdcard;
                              }).join(",");
                        supercargoInfo = this.supercargoList.map((item, index) => {
                            return item.driverName+ '|'+item.driverIdcard+"|"+item.driverPhone
                           }).join(",");
                        this.$reqPost('addJcroadtransport', {
                           userId:this.userInfo.userId,
                           ...this.tranSportForm,
                           driverName:driverName,
                           driverIdcard:driverIdcard,
                           supercargoInfo:supercargoInfo
                        }, 'json').then(res => {
                           if (res.code == 0) {
                              this.editTranShow = false;
                              this.$u.toast('提交成功');
                              this.tranSportForm={
                                 carNo:"",
                                 productId:"",
                                 customerId:""
                              }
                              this.driverList=[{
                                 driverName:"",
                                 driverIdcard:""
                              }]
                              this.supercargoList=[{
                                 driverName:"",
                                 driverIdcard:"",
                                 driverPhone:""
                              }]
                              this.fileList9=[]
                              this.getData();
                           } else {
                              uni.showToast({
                                 title: res.msg,
                                 icon: 'none',
                                 duration: 2000
                              });
                           }
                        })
                     }
                     if(this.tranSportForm.expirationTime){
                        this.tranSportForm.expirationTime=this.tranSportForm.expirationTime+" 23:55"
                     }
                  this.$reqPost('addJcroadtransport', {
                     userId:this.userInfo.userId,
                     ...this.tranSportForm,
                     driverName:driverName,
                     driverIdcard:driverIdcard,
                     supercargoInfo:supercargoInfo
                  }, 'json').then(res => {
                     if (res.code == 0) {
                        this.editTranShow = false;
                        this.$u.toast('提交成功');
                        this.init();
                     } else {
                        uni.showToast({
                           title: res.msg,
                           icon: 'none',
                           duration: 2000
                        });
                     }
                  })
               })
         },
         async afterRead(event) {
@@ -536,17 +553,6 @@
               });
            });
         },
         // 获取客户
         getShipToList() {
            this.$reqGet('getShipToList')
               .then(res => {
                  if (res.code == 0) {
                     this.customerNameList = res.data
                  }else {
                  this.$u.toast('加载失败')
               }
            })
         },
         getScoreDetail() {
            uni.showLoading({
               title: '加载中’'
@@ -570,10 +576,20 @@
            })
         },
         deleteSupercar(){
            this.supercargoList.splice(this.supercargoList.length - 1, 1)
            if(this.supercargoList.length>1){
               this.supercargoList.splice(this.supercargoList.length - 1, 1)
            }
         },
         deleteDriver(){
            this.driverList.splice(this.driverList.length - 1, 1);
            if(this.driverList.length>1){
               this.driverList.splice(this.driverList.length - 1, 1);
            }
         },
         getUserName(e){
            let data= e.split(',').map(item=>{
               return item.split("|")[0]
            }).join(',')
            return data
         }
      }
   }