qingyiay
2023-05-17 05273ace3da665cb10c36ca0dac4413a8284302a
pages/driver-page/drvier-my/drvier-my.vue
@@ -3,7 +3,7 @@
      <view class="driver-banner">
         <view class="navgation">我的</view>
         <view class="avatar">
            <view class="avatar-imgage" style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/avatar.png')no-repeat;background-size: cover;"></view>
            <view class="avatar-imgage" style="background: url('https://mx.jzeg.cn:9095/appimg/image/banner/driverava.png')no-repeat;background-size: cover;"></view>
            <view class="avatar-name">{{ userInfo.name || '' }}</view>
            <view class="edit-button"><u-button type="primary" @click="editBtnClick" shape="circle" plain>编辑个人资料</u-button></view>
         </view>
@@ -16,8 +16,8 @@
                        <view class="label-text">身份证号</view>
                     </view>
                     <view class="information-value">
                        {{ userInfo.idCard }}
                        <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.idCard"></u-icon>
                        {{ userInfo.idCard || '' }}
                        <!-- <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.idCard"></u-icon> -->
                     </view>
                  </view>
                  <view class="information-line">
@@ -26,8 +26,8 @@
                        <view class="label-text">手机号</view>
                     </view>
                     <view class="information-value">
                        {{ userInfo.phone }}
                        <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.phone"></u-icon>
                        {{ userInfo.phone || '' }}
                        <!-- <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.phone"></u-icon> -->
                     </view>
                  </view>
                  <view class="information-line">
@@ -36,8 +36,8 @@
                        <view class="label-text">车牌号</view>
                     </view>
                     <view class="information-value">
                        {{ userInfo.carNo }}
                        <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.carNo"></u-icon>
                        {{ userInfo.carNo || '' }}
                        <!-- <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.carNo"></u-icon> -->
                     </view>
                  </view>
                  <view class="information-line">
@@ -46,8 +46,8 @@
                        <view class="label-text">车轴数</view>
                     </view>
                     <view class="information-value">
                        {{ userInfo.axleNum }}
                        <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.axleNum"></u-icon>
                        {{ userInfo.axleNum || '' }}
                        <!-- <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.axleNum"></u-icon> -->
                     </view>
                  </view>
                  <view class="information-line last">
@@ -56,8 +56,8 @@
                        <view class="label-text">体重</view>
                     </view>
                     <view class="information-value">
                        {{ userInfo.weight }}
                        <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.weight"></u-icon>
                        {{ userInfo.weight || '' }}
                        <!-- <u-icon name="arrow-right" color="#999999" size="30" v-if="userInfo.weight"></u-icon> -->
                     </view>
                  </view>
               </view>
@@ -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,20 +458,32 @@
      },
      // 修改用户信息
      updateUser() {
         this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
            console.log('更新数据', res);
            this.editDriverPopupShow = false;
            if (res.code == 0) {
               this.$u.toast('修改成功');
               this.init();
            } else {
               uni.showToast({
                  title: res.msg,
                  icon: 'none',
                  duration: 2000
         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;
                  if (res.code == 0) {
                     this.$u.toast('修改成功');
                     this.init();
                  } else {
                     uni.showToast({
                        title: res.msg,
                        icon: 'none',
                        duration: 2000
                     });
                  }
               });
            }
         });
            })
            .catch(err => {
               this.$u.toast('修改失败');
            });
      },
      logout() {
         this.logoutShow = true;
@@ -373,7 +529,6 @@
         width: 80rpx;
         height: 37rpx;
         font-size: 40rpx;
         font-family: Adobe Heiti Std;
         font-weight: normal;
         color: #ffffff;
         line-height: 69rpx;
@@ -394,17 +549,18 @@
            justify-content: center;
         }
         .avatar-name {
            width: 136rpx;
            width: 200rpx;
            display: flex;
            flex-wrap: wrap;
            height: 32rpx;
            font-size: 34rpx;
            font-family: Source Han Sans CN;
            font-weight: bold;
            color: #ffffff;
            margin-left: vww(17);
         }
         .edit-button {
            position: relative;
            left: vww(94);
            left: vww(73);
            top: vww(4);
         }
      }
@@ -442,7 +598,6 @@
                  .label-text {
                     width: 120rpx;
                     font-size: 30rpx;
                     font-family: Source Han Sans CN;
                     font-weight: 400;
                     color: #000000;
                     line-height: 85rpx;
@@ -452,7 +607,6 @@
                  min-width: vww(125);
                  @include flex;
                  font-size: 30rpx;
                  font-family: Source Han Sans CN;
                  font-weight: 400;
                  color: #000000;
                  line-height: 85rpx;
@@ -535,7 +689,7 @@
   .editDriverPopup-container {
      .u-popup {
         .u-transition {
            height: 95%;
            height: 75%;
            .u-popup__content {
               overflow: scroll !important;
               .editDriverPopup-container-box {