qingyiay
2023-05-17 05273ace3da665cb10c36ca0dac4413a8284302a
pages/driver-page/drvier-my/drvier-my.vue
@@ -145,18 +145,50 @@
         <u-popup :show="editDriverPopupShow" mode="bottom" @close="editDriverPopupClose" @open="editDriverPopupOpen" :closeable="true">
            <combined-title title="修改个人信息" style="margin-left:20rpx"></combined-title>
            <view class="editDriverPopup-container-box">
               <u--form labelPosition="left" :model="editUserInfo" ref="form1">
                  <u-form-item labelWidth="20%" label="姓名" ref="item1"><u--input v-model="editUserInfo.name" border="none" inputAlign="left"></u--input></u-form-item>
                  <u-form-item labelWidth="20%" label="身份证号" ref="item1"><u--input v-model="editUserInfo.idCard" border="none" inputAlign="left"></u--input></u-form-item>
                  <u-form-item labelWidth="20%" label="手机号" ref="item1"><u--input v-model="editUserInfo.phone" border="none" inputAlign="left"></u--input></u-form-item>
                  <u-form-item labelWidth="20%" label="车牌号" ref="item1"><u--input v-model="editUserInfo.carNo" border="none" inputAlign="left"></u--input></u-form-item>
                  <u-form-item labelWidth="20%" label="体重" ref="item1"><u--input v-model="editUserInfo.weight" border="none" inputAlign="left"></u--input></u-form-item>
                  <u-form-item labelWidth="20%" label="车轴数" ref="item1"><u--input v-model="editUserInfo.axleNum" border="none" inputAlign="left"></u--input></u-form-item>
                  <u-form-item labelWidth="25%" label="车辆照片" ref="item1">
                     <u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="250" height="150"></u-upload>
               <u--form labelPosition="left" :model="editUserInfo" ref="editRef">
                  <u-form-item labelWidth="20%" label="姓名" prop="name" required>
                     <u--input v-model="editUserInfo.name" border="none" inputAlign="left"></u--input>
                  </u-form-item>
                  <u-form-item labelWidth="25%" label="行驶证照片" ref="item1">
                     <u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="1" width="250" height="150"></u-upload>
                  <u-form-item labelWidth="20%" label="身份证号" prop="idCard" required>
                     <u--input v-model="editUserInfo.idCard" border="none" inputAlign="left"></u--input>
                  </u-form-item>
                  <u-form-item labelWidth="20%" label="手机号" prop="phone" required>
                     <u--input v-model="editUserInfo.phone" border="none" inputAlign="left"></u--input>
                  </u-form-item>
                  <u-form-item labelWidth="20%" label="车牌号" prop="carNo" required>
                     <u--input v-model="editUserInfo.carNo" border="none" inputAlign="left"></u--input>
                  </u-form-item>
                  <u-form-item labelWidth="20%" label="体重" prop="weight" required>
                     <u--input v-model="editUserInfo.weight" border="none" inputAlign="left" placeholder="体重以kg作为单位"></u--input>
                  </u-form-item>
                  <u-form-item labelWidth="20%" label="车轴数" prop="axleNum" required>
                     <u--input v-model="editUserInfo.axleNum" border="none" inputAlign="left"></u--input>
                  </u-form-item>
                  <u-form-item labelWidth="25%" label="车辆照片" @click="beforeRead" prop="carImg" required>
                     <u-upload
                        :fileList="fileList1"
                        @afterRead="afterRead"
                        @delete="deletePic"
                        name="1"
                        multiple
                        :maxCount="1"
                        width="250"
                        height="150"
                        :previewFullImage="true"
                     ></u-upload>
                  </u-form-item>
                  <u-form-item labelWidth="25%" label="行驶证照片" ref="item1" @click="beforeRead" prop="drivingImg" required>
                     <u-upload
                        :fileList="fileList2"
                        @afterRead="afterRead"
                        @delete="deletePic"
                        name="2"
                        multiple
                        :maxCount="1"
                        width="250"
                        height="150"
                        :previewFullImage="true"
                     ></u-upload>
                  </u-form-item>
               </u--form>
               <u-button text="提交" @click="updateUser" type="primary"></u-button>
@@ -172,6 +204,7 @@
<script>
import { customerId, userInfo, redirectLogin } from '@/utils/status';
import { BaseUrl } from '@/api/publicInterface.js';
import { mapMutations } from 'vuex';
export default {
   data() {
      return {
@@ -191,6 +224,94 @@
            weight: '',
            userId: ''
         },
         rules: {
            name: {
               type: 'string',
               required: true,
               message: '请填写姓名',
               trigger: ['blur', 'change']
            },
            idCard: [
               {
                  type: 'string',
                  required: true,
                  message: '请输入身份证号',
                  trigger: ['blur', 'change']
               },
               {
                  pattern: /^([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]$/,
                  message: '身份证号格式不正确'
               }
            ],
            phone: [
               {
                  required: true,
                  message: '此项为必填项',
                  // blur和change事件触发检验
                  trigger: ['blur', 'change']
               },
               {
                  min: 11,
                  max: 11,
                  message: '请输入合法手机号'
               },
               {
                  validator: (rule, value, callback) => {
                     return uni.$u.test.mobile(value);
                  },
                  message: '手机号码格式不正确',
                  trigger: ['change', 'blur']
               }
            ],
            weight: {
               type: 'number',
               required: true,
               message: '请填写体重',
               trigger: ['blur', 'change']
            },
            carNo: [
               {
                  type: 'string',
                  required: true,
                  message: '请输入车牌号',
                  trigger: ['blur', 'change']
               },
               {
                  transform(value) {
                     return String(value);
                  },
                  validator: (rule, value, callback) => {
                     return uni.$u.test.carNo(value);
                  },
                  message: '请输入正确的车牌号',
                  trigger: ['change', 'blur']
               }
            ],
            axleNum: [
               {
                  transform(value) {
                     return Number(value);
                  },
                  validator: (rule, value, callback) => {
                     return value <= 10;
                  },
                  message: '请输入正确的车轴数',
                  trigger: ['change', 'blur']
               }
            ],
            carImg: {
               type: 'string',
               required: true,
               message: '请上传车辆图片',
               trigger: ['blur', 'change']
            },
            drivingImg: {
               type: 'string',
               required: true,
               message: '请上传行驶证照片',
               trigger: ['blur', 'change']
            }
         },
         src: '',
         fileList1: [],
         fileList2: [],
@@ -209,7 +330,11 @@
   onShow() {
      // this.init();
   },
   onReady() {
      this.$refs.editRef.setRules(this.rules);
   },
   methods: {
      ...mapMutations(['changeisUploadimg']),
      init() {
         this.getUserEntity();
      },
@@ -220,6 +345,18 @@
         this.$reqGet('getUserEntity').then(res => {
            uni.hideLoading();
            this.userInfo = res.data;
            uni.setStorageSync('carImg', this.userInfo.carImg);
            uni.setStorageSync('drivingImg', this.userInfo.drivingImg);
            if (this.fileList1.length == 0) {
               this.fileList1.push({
                  url: `${BaseUrl}${this.userInfo.carImg}`
               });
            }
            if (this.fileList2.length == 0) {
               this.fileList2.push({
                  url: `${BaseUrl}${this.userInfo.drivingImg}`
               });
            }
            Object.keys(this.editUserInfo).map(item => {
               if (res.data[item]) {
                  this.editUserInfo[item] = res.data[item];
@@ -243,8 +380,12 @@
            this.previewImageShow = true;
         });
      },
      beforeRead() {
         this.changeisUploadimg(true);
      },
      // 删除
      deletePic(event) {
         this.changeisUploadimg(true);
         this[`fileList${event.name}`].splice(event.index, 1);
      },
      // 新增图片
@@ -267,7 +408,7 @@
               1,
               Object.assign(item, {
                  status: 'success',
                  message: '',
                  message: '上传成功',
                  url: result
               })
            );
@@ -284,11 +425,14 @@
               //    user: 'test'
               // },
               success: res => {
                  resolve(JSON.parse(res.data).data.url);
                  if (num == 1) {
                     this.editUserInfo.carImg = JSON.parse(res.data).data.url;
                     uni.setStorageSync('carImg', JSON.parse(res.data).data.url);
                     resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                  } else if (num == 2) {
                     this.editUserInfo.drivingImg = JSON.parse(res.data).data.url;
                     uni.setStorageSync('drivingImg', JSON.parse(res.data).data.url);
                     resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                  }
               }
            });
@@ -314,6 +458,14 @@
      },
      // 修改用户信息
      updateUser() {
         this.editUserInfo = {
            ...this.editUserInfo,
            carImg: uni.getStorageSync('carImg'),
            drivingImg: uni.getStorageSync('drivingImg')
         };
         this.$refs.editRef
            .validate()
            .then(res => {
         this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
            console.log('更新数据', res);
            this.editDriverPopupShow = false;
@@ -327,6 +479,10 @@
                  duration: 2000
               });
            }
               });
            })
            .catch(err => {
               this.$u.toast('修改失败');
         });
      },
      logout() {
@@ -533,7 +689,7 @@
   .editDriverPopup-container {
      .u-popup {
         .u-transition {
            height: 95%;
            height: 75%;
            .u-popup__content {
               overflow: scroll !important;
               .editDriverPopup-container-box {