Quellcode durchsuchen

个人信息修改,修改密码页面调整,H5标题修改,关于我们功能的隐藏

lidie vor 2 Jahren
Ursprung
Commit
f9b14ef568

+ 14 - 0
src/api/platform/org/user.js

@@ -1,6 +1,20 @@
 import request from '@/utils/request'
 import { ORG_URL, OAUTH2_URL } from '@/api/baseUrl'
 
+/**
+ * 修改个人信息
+ * @param {*} params
+ */
+// http://dev1.local/ibps/platform/v3/employee/update
+export function changeUserInfo(params) {
+  return request({
+    url: ORG_URL() + '/employee/update',
+    method: 'post',
+    isLoading: true,
+    data: params
+  })
+}
+
 /**
  *修改密码
  * @param {*} params

+ 3 - 3
src/locales/zh-CN.json

@@ -62,8 +62,8 @@
 			"makeSure": "您确定执行该操作吗?",
 			"success": "操作成功"
 		},
-		"platform": "金通智慧实验室信息管理系统",
-		"welcome": "欢迎使用 金通智慧实验室信息管理系统"
+		"platform": "医学实验室检验服务平台",
+		"welcome": "欢迎使用 医学实验室检验服务平台"
 	},
 	"components": {
 		"autoNumber": {
@@ -223,4 +223,4 @@
 		"url": "请输入正确的url地址",
 		"zip": "请输入正确邮政编码."
 	}
-}
+}

+ 116 - 82
src/views/platform/my/change-password.vue

@@ -1,58 +1,33 @@
 <template lang="html">
   <div class="ibps-fixed-top my-pwd">
     <van-sticky>
-      <van-nav-bar
-        :title="generateTitle()"
-        :left-text="$t('common.button.back')"
-        left-arrow
-        fixed
-        @click-left="onBack"
-      />
+      <van-nav-bar :title="generateTitle()" :left-text="$t('common.button.back')" left-arrow fixed
+        @click-left="onBack" />
     </van-sticky>
+
+    <!-- 头像 -->
+    <div class="photo">
+      <img :src="avatar">
+    </div>
+
     <div class="divider" />
-    <van-form @submit="onSave" @failed="onFailed">
+    <van-form @submit="onSave" @failed="onFailed" class="submitStyle">
       <van-cell-group>
-        <van-field
-          v-model="form.primitivePassword"
-          :label="$t('platform.my.change-password.primitivePassword')"
+        <van-field v-model="form.primitivePassword" :label="$t('platform.my.change-password.primitivePassword')"
           :placeholder="$t('platform.my.change-password.primitivePasswordPlaceholder')"
           :rules="[{ required: true, message: $t('platform.my.change-password.primitivePasswordPlaceholder') }]"
-          type="password"
-          name="my.primitivePassword"
-          :size="size"
-          autocomplete="off"
-          required
-          clearable
-        />
-        <van-field
-          v-model="form.newPassword"
-          :label="$t('platform.my.change-password.newPassword')"
+          type="password" name="my.primitivePassword" :size="size" autocomplete="off" required clearable />
+        <van-field v-model="form.newPassword" :label="$t('platform.my.change-password.newPassword')"
           :placeholder="$t('platform.my.change-password.newPasswordPlaceholder')"
           :rules="[{ required: true, message: $t('platform.my.change-password.newPasswordPlaceholder') }]"
-          type="password"
-          name="my.newPassword"
-          :size="size"
-          autocomplete="off"
-          required
-          clearable
-        />
-        <van-field
-          v-model="form.repeatPassword"
-          :label="$t('platform.my.change-password.repeatPassword')"
-          :placeholder="$t('platform.my.change-password.repeatPasswordPlaceholder')"
-          :rules="[{ required: true, message: $t('platform.my.change-password.newPasswordPlaceholder') },
+          type="password" name="my.newPassword" :size="size" autocomplete="off" required clearable />
+        <van-field v-model="form.repeatPassword" :label="$t('platform.my.change-password.repeatPassword')"
+          :placeholder="$t('platform.my.change-password.repeatPasswordPlaceholder')" :rules="[{ required: true, message: $t('platform.my.change-password.newPasswordPlaceholder') },
                    { validator :repeatValidator,message:$t('platform.my.change-password.repeatErrorMessage') }
-          ]"
-          type="password"
-          name="my.repeatPassword"
-          :size="size"
-          autocomplete="off"
-          required
-          clearable
-        />
+          ]" type="password" name="my.repeatPassword" :size="size" autocomplete="off" required clearable />
       </van-cell-group>
-      <div style="margin: 8px 0;border:0">
-        <van-button type="default" block size="large" native-type="submit">
+      <div style="margin: 10px 0;border:0">
+        <van-button block size="large" native-type="submit" color="	#1E90FF">
           {{ $t('common.button.save') }}
         </van-button>
       </div>
@@ -61,57 +36,116 @@
 </template>
 
 <script>
-import { changePassword } from '@/api/platform/org/user'
-import navbar from '@/mixins/navbar'
+  import { changePassword } from '@/api/platform/org/user'
+  import navbar from '@/mixins/navbar'
+  import defaultImage from '@/assets/images/logo/lc.png'
+  import { mapState } from 'vuex'
+  import { getFile } from '@/utils/image'
 
-export default {
-  mixins: [navbar],
-  data() {
-    return {
-      form: {
-        primitivePassword: '',
-        newPassword: '',
-        repeatPassword: ''
+  export default {
+    mixins: [navbar],
+    data() {
+      return {
+        form: {
+          primitivePassword: '',
+          newPassword: '',
+          repeatPassword: ''
+        },
+        size: 'large'
+      }
+    },
+    computed: {
+      ...mapState('ibps/user', [
+        'info'
+      ]),
+      // 获取用户头像
+      avatar() {
+        let str = "/file/getImage?attachmentId="
+        // const photo = this.info && this.info.employee ? this.info.employee.photo : null
+        const photo = this.info && this.info.employee ? (this.info.employee.photo == '' ? this.info.employee.photo : (str + this.info.employee.photo)) : null
+        if (this.$utils.isEmpty(photo)) {
+          return this.errorImage
+        }
+        return getFile(photo)
+      },
+      errorImage() {
+        return defaultImage
       },
-      size: 'large'
-    }
-  },
-  methods: {
-    repeatValidator(val) {
-      return this.form.newPassword === val
     },
-    updatePassWord() {
-      this.form['userIds'] = [this.$store.getters.userId]
-      changePassword(this.form).then(response => {
+    methods: {
+      repeatValidator(val) {
+        return this.form.newPassword === val
+      },
+      updatePassWord() {
+        this.form['userIds'] = [this.$store.getters.userId]
+        changePassword(this.form).then(response => {
+          this.$notify({
+            type: 'success',
+            message: this.$t('platform.my.change-password.success')
+          })
+          this.$router.push({ name: 'my' })
+        }).catch(e => {
+          console.error(e.cause)
+        })
+      },
+      onSave() {
+        this.updatePassWord()
+      },
+      onFailed() {
         this.$notify({
-          type: 'success',
-          message: this.$t('platform.my.change-password.success')
+          type: 'danger',
+          message: this.$t('common.formError')
         })
-        this.$router.push({ name: 'my' })
-      }).catch(e => {
-        console.error(e.cause)
-      })
-    },
-    onSave() {
-      this.updatePassWord()
-    },
-    onFailed() {
-      this.$notify({
-        type: 'danger',
-        message: this.$t('common.formError')
-      })
+      }
     }
   }
-}
 </script>
 <style lang="scss" scoped>
-  .my-pwd{
+  .my-pwd {
     min-height: calc(100vh - 46px);
     background: #f8f8f8;
   }
-  .divider{
-    height:8px;
+
+  .divider {
+    height: 8px;
     background: #f8f8f8;
   }
 
-</style>
+  .photo {
+    width: 25%;
+    height: 25%;
+    margin: auto;
+    padding-top: 15%;
+    box-sizing: border-box;
+
+
+    img {
+      width: 100%;
+      border-radius: 50%;
+      box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.4);
+    }
+  }
+
+  .submitStyle {
+    width: 96%;
+    margin: auto;
+
+    .van-cell-group {
+      box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.1);
+      border-radius: 4%;
+      padding: 0 1%;
+
+      .van-field {
+
+
+        ::v-deep .van-field__label {
+          color: #6f6f70;
+        }
+
+        ::v-deep .van-field__control::-webkit-input-placeholder {
+          color: #828283;
+        }
+      }
+    }
+  }
+</style>

+ 105 - 102
src/views/platform/my/index.vue

@@ -1,9 +1,7 @@
 <template>
   <div class="my  ibps-fixed-bottom">
     <van-sticky>
-      <van-nav-bar
-        :title="generateTitle()"
-      />
+      <van-nav-bar :title="generateTitle()" />
     </van-sticky>
     <div class="ibps-cell-wrapper ibps-top-wrapper">
 
@@ -22,12 +20,7 @@
           <van-tag plain size="large" type="primary">{{ position }}</van-tag>
         </template>
       </van-card> -->
-      <van-card
-        :thumb="avatar"
-        :desc="org||$t('common.company')"
-        centered
-        @click="userInfo()"
-      >
+      <van-card :thumb="avatar" :desc="org||$t('common.company')" centered @click="userInfo()">
         <div slot="title" class="ibps-user-title">
           <span class="ibps-user-title__name">{{ userName }}</span>
           <van-tag v-if="position" plain :size="size" type="primary">{{ position }}</van-tag>
@@ -46,13 +39,13 @@
     <div class="divider" />
     <van-cell-group>
       <!-- <van-cell :title="$t('platform.my.help')" icon="question" is-link :size="size" @click="help" /> -->
-      <van-cell :title="$t('platform.my.about')" icon-prefix="ibps-icon" icon="logo" is-link :size="size" @click="about" />
+      <!-- <van-cell :title="$t('platform.my.about')" icon-prefix="ibps-icon" icon="logo" is-link :size="size"
+        @click="about" /> -->
       <switch-environment v-if="$nodeEnv === 'development'" />
 
     </van-cell-group>
 
-    <!-- <div class="divider" /> -->
-
+    <!-- 退出登录 -->
     <van-cell-group>
       <van-row type="flex" justify="center" class="ibps-cell-wrapper">
         <van-col span="24">
@@ -65,126 +58,137 @@
   </div>
 </template>
 <script>
-import { mapState } from 'vuex'
-import defaultImage from '@/assets/images/logo/lc.png'
-import { getFile } from '@/utils/image'
-// import LcCard from '@/components/LcCard'
-import LangSelect from './lang-select'
-import SwitchEnvironment from '@/views/system/switch-environment'
-import navbar from '@/mixins/navbar'
-
-export default {
-  components: {
-    LangSelect,
-    SwitchEnvironment
-  },
-  mixins: [navbar],
-  data() {
-    const { first = '', second = '' } = this.$store.getters.level
-    const { deptList = [] } = this.$store.getters
-    // const { userId, userList = [], deptList = [], menus, userInfo } = this.$store.getters
-    const t1 = deptList.find(i => i.positionId === first) || {}
-    const t2 = deptList.find(i => i.positionId === second) || {}
-    const locationName = second ? t1.positionName + t2.positionName : t1.positionName
-    return {
-      defaultImage: defaultImage,
-      size: 'large',
-      positionList: [],
-      locationName
-    }
-  },
-  computed: {
-    ...mapState('ibps/user', [
-      'info'
-    ]),
-    avatar() {
-      const photo = this.info && this.info.employee ? this.info.employee.photo : null
-      if (this.$utils.isEmpty(photo)) {
-        return this.errorImage
-      }
-      return getFile(photo)
-    },
-    errorImage() {
-      return defaultImage
-    },
-    userName() {
-      return this.info && this.info.user ? this.info.user.fullname : ''
+  import { mapState } from 'vuex'
+  import defaultImage from '@/assets/images/logo/lc.png'
+  import { getFile } from '@/utils/image'
+  // import LcCard from '@/components/LcCard'
+  import LangSelect from './lang-select'
+  import SwitchEnvironment from '@/views/system/switch-environment'
+  import navbar from '@/mixins/navbar'
+
+  export default {
+    components: {
+      LangSelect,
+      SwitchEnvironment
     },
-    org() {
-      return this.locationName
+    mixins: [navbar],
+    data() {
+      const { first = '', second = '' } = this.$store.getters.level
+      const { userId, userList = [], deptList = [], menus, userInfo } = this.$store.getters
+      const t1 = deptList.find(i => i.positionId === first) || {}
+      const t2 = deptList.find(i => i.positionId === second) || {}
+      console.log(first, second, deptList)
+      const locationName = second ? t1.positionName + t2.positionName : t1.positionName
+      return {
+        defaultImage: defaultImage,
+        size: 'large',
+        positionList: [],
+        locationName
+      }
     },
-    position() {
-      const positions = this.info && this.info.positions ? this.info.positions : null
-      const pos = []
-      if (this.$utils.isNotEmpty(positions)) {
-        for (var i = 0; i < positions.length; i++) {
-          pos.push(positions[i].name)
+    computed: {
+      ...mapState('ibps/user', [
+        'info'
+      ]),
+      avatar() {
+        let str = "/file/getImage?attachmentId="
+        // const photo = this.info && this.info.employee ? (str + this.info.employee.photo) : null
+        const photo = this.info && this.info.employee ? (this.info.employee.photo == '' ? this.info.employee.photo : (str + this.info.employee.photo)) : null
+        if (this.$utils.isEmpty(photo)) {
+          return this.errorImage
         }
+        return getFile(photo)
+      },
+      errorImage() {
+        return defaultImage
+      },
+      userName() {
+        return this.info && this.info.user ? this.info.user.fullname : ''
+      },
+      org() {
+        console.log(this.locationName, 'this.locationNamethis.locationName')
+        return this.locationName
+      },
+      position() {
+        const positions = this.info && this.info.positions ? this.info.positions : null
+        const pos = []
+        if (this.$utils.isNotEmpty(positions)) {
+          for (var i = 0; i < positions.length; i++) {
+            pos.push(positions[i].name)
+          }
+        }
+        return pos.join(',')
       }
-      return pos.join(',')
-    }
-  },
-  methods: {
-    userInfo() {
-      this.$router.push({ name: 'userInfo' })
     },
-    logout() {
-      this.$dialog.confirm({
-        title: this.$t('common.dialog.title'),
-        message: this.$t('platform.my.logoutMessage')
-      }).then(() => {
-        this.$store.dispatch('ibps/account/logout', { vm: this }).then(() => {
-          this.$router.push({ path: '/refresh' })
-        })
-      }).catch(() => {
+    methods: {
+      userInfo() {
+        this.$router.push({ name: 'userInfo' })
+      },
+      logout() {
+        this.$dialog.confirm({
+          title: this.$t('common.dialog.title'),
+          message: this.$t('platform.my.logoutMessage')
+        }).then(() => {
+          this.$store.dispatch('ibps/account/logout', { vm: this }).then(() => {
+            this.$router.push({ path: '/refresh' })
+          })
+        }).catch(() => {
 
-      })
-    },
-    about() {
-      this.$router.push({ path: '/my/aboutUs' })
-    },
-    help() {
-      this.$router.push({ path: '/my/help' })
-    },
-    switchEnvironment() {
+        })
+      },
+      about() {
+        this.$router.push({ path: '/my/aboutUs' })
+      },
+      help() {
+        this.$router.push({ path: '/my/help' })
+      },
+      switchEnvironment() {
 
+      }
     }
   }
-}
 </script>
 <style lang="scss" scoped>
-  .divider{
-    height:8px;
+  .divider {
+    height: 8px;
     background: #f8f8f8;
   }
-  .my{
+
+  .my {
     min-height: calc(100vh - 55px);
     background: #f8f8f8;
-    .ibps-top-wrapper{
+
+    .ibps-top-wrapper {
       padding-top: 0;
-      .ibps-user-title{
+
+      .ibps-user-title {
         display: flex;
         align-items: center;
         margin: 10px 0 6px 0;
-        .ibps-user-title__name{
-          font-size:20px;
+
+        .ibps-user-title__name {
+          font-size: 20px;
           margin-right: 15px;
           color: #333333;
           font-weight: bold;
         }
       }
-      .ibps-user-desc{
+
+      .ibps-user-desc {
         font-size: 14px;
         color: #333333;
       }
     }
-    .van-card{
+
+    .van-card {
       background-color: #fff;
-      .van-card__header{
+
+      .van-card__header {
         display: flex;
         align-items: center;
       }
-      .van-card__thumb{
+
+      .van-card__thumb {
         width: 58px;
         height: 58px;
         margin-right: 17px;
@@ -192,5 +196,4 @@ export default {
     }
 
   }
-</style>
-
+</style>

+ 181 - 95
src/views/platform/my/user-info.vue

@@ -1,120 +1,206 @@
 <template>
   <div class="ibps-fixed-top my-user-info">
-    <van-nav-bar
-      :title="generateTitle()"
-      :left-text="$t('common.button.back')"
-      left-arrow
-      fixed
-      @click-left="onBack"
-    />
+    <van-nav-bar :title="generateTitle()" :left-text="$t('common.button.back')" left-arrow fixed @click-left="onBack" />
     <van-cell-group v-if="loading">
       <div class="divider" />
-      <van-cell>
+
+      <van-field label="头像" :size="size" class="photoPic">
+        <template #right-icon>
+          <van-uploader :deletable="false" :preview-full-image="false" :after-read="afterRead">
+            <van-image v-show="$utils.isNotEmpty(employee)" :src="getImage(employee.photo)" width="50" height="50"
+              round></van-image>
+          </van-uploader>
+        </template>
+      </van-field>
+
+      <!-- <van-cell>
         <div slot="title" class="ibps-swipe-button ibps-flex-c my-user-info_size">
           头像
         </div>
-        <van-image
-          v-show="$utils.isNotEmpty(employee)"
-          slot="right-icon"
-          :src="getPhotoImage(employee.photo)"
-          :error-icon="defaultImage"
-          width="50"
-          height="50"
-          round
-        />
-      </van-cell>
-      <van-cell :value="employee.name" title="姓名" :size="size" :value-class="className" :title-class="tClassName" />
-      <van-cell :value="employee.gender|sexFilter" title="性别" :size="size" :value-class="className" :title-class="tClassName" />
-      <van-cell :value="employee.account" title="登录账号" :size="size" :value-class="className" :title-class="tClassName" />
-      <van-cell :value="employee.wcAccount" title="微信账号" :size="size" :value-class="className" :title-class="tClassName" />
-      <van-cell :value="employee.orgName" title="部门" :size="size" :value-class="className" :title-class="tClassName" />
+        <van-image v-show="$utils.isNotEmpty(employee)" slot="right-icon" :src="getImage(employee.photo)"
+          :error-icon="defaultImage" width="50" height="50" round />
+      </van-cell> -->
+      <van-cell :value="employee.orgName" title="单位名称" :size="size" :value-class="className"
+        :title-class="tClassName" />
+      <van-field label="客户姓名" :size="size" clearable v-model="employee.name" />
+      <van-field label="性别" :size="size" clearable v-model="employee.gender=='male'?'男':'女'" />
+      <van-field label="手机号" :size="size" clearable v-model="employee.mobile" />
+      <van-field label="邮箱" :size="size" clearable v-model="employee.qq" />
+      <van-field label="地址" :size="size" clearable v-model="employee.address" />
       <van-cell :value="employee.position" title="岗位" :size="size" :value-class="className" :title-class="tClassName" />
     </van-cell-group>
+    <div style="border:0;width: 96%;margin:10px auto;">
+      <van-button block size="large" @click="updateInfu" color="#1E90FF">保存</van-button>
+    </div>
   </div>
 </template>
 
 <script>
-import { load } from '@/api/platform/org/employee'
-import { getFile } from '@/utils/image'
-import defaultImage from '@/assets/images/logo/lc.png'
-import navbar from '@/mixins/navbar'
-
-export default {
-  filters: {
-    sexFilter(sex) {
-      if (sex === 'male') {
-        return '男'
-      } else if (sex === 'female') {
-        return '女'
-      } else {
-        return ''
+  import { changeUserInfo } from '@/api/platform/org/user'
+  import { load } from '@/api/platform/org/employee'
+  import { getFile } from '@/utils/image'
+  import defaultImage from '@/assets/images/logo/lc.png'
+  import navbar from '@/mixins/navbar'
+  import { uploadFile, getImage } from "@/api/platform/file/attachment";
+
+  export default {
+    filters: {
+      sexFilter(sex) {
+        if (sex === 'male') {
+          return '男'
+        } else if (sex === 'female') {
+          return '女'
+        } else {
+          return ''
+        }
       }
-    }
-  },
-  mixins: [navbar],
-  data() {
-    return {
-      loading: false,
-      employee: {
-        name: '',
-        gender: '',
-        account: '',
-        wcAccount: '',
-        org: '',
-        position: '',
-        photo: ''
+    },
+    mixins: [navbar],
+    data() {
+      return {
+        trueFile: null,
+        imgId: '',
+        loading: false,
+        employee: {
+          name: '',
+          gender: '',
+          wcAccount: '',
+          account: '',
+          mobile: '',
+          orgName: '',
+          qq: '',
+          address: '',
+          // wcAccount: '',
+          org: '',
+          position: '',
+          photo: ''
+        },
+        defaultImage: defaultImage,
+        size: 'large',
+        className: 'my-user-info_size',
+        tClassName: 'ibps-flex-c'
+      }
+    },
+    created() {
+      this.loading = false
+      // 获取用户信息
+      load({
+        employeeId: this.$store.getters.userId
+      }).then(response => {
+        this.loading = true
+        const data = response.data
+        const variables = response.variables
+        // 设置用户信息
+        this.employee = data || {}
+        const pos = []
+
+
+        if (this.employee.photo == '') {
+          this.getPhotoImage(this.employee.photo)
+        }
+
+        const positions = variables ? variables.partyPositions : []
+        if (this.$utils.isNotEmpty(positions)) {
+          for (var i = 0; i < positions.length; i++) {
+            pos.push(positions[i].name)
+          }
+        }
+        this.employee.position = pos.join(',')
+      }).catch(e => {
+        this.loading = true
+        console.error(e)
+      })
+    },
+
+    methods: {
+      getPhotoImage(photo) {
+        if (this.$utils.isNotEmpty(photo)) {
+          return getFile(photo)
+        } else {
+          return defaultImage
+        }
       },
-      defaultImage: defaultImage,
-      size: 'large',
-      className: 'my-user-info_size',
-      tClassName: 'ibps-flex-c'
-    }
-  },
-  created() {
-    this.loading = false
-    // 获取用户信息
-    load({
-      employeeId: this.$store.getters.userId
-    }).then(response => {
-      this.loading = true
-      const data = response.data
-      const variables = response.variables
-      // 设置用户信息
-      this.employee = data || {}
-      const pos = []
-      const positions = variables ? variables.partyPositions : []
-      if (this.$utils.isNotEmpty(positions)) {
-        for (var i = 0; i < positions.length; i++) {
-          pos.push(positions[i].name)
+      // 更换头像
+      afterRead(file) {
+        this.trueFile = file.file
+        uploadFile(file.file).then(res => {
+          console.log(res);
+          let url = getImage(res.data.id)
+          console.log(url);
+          this.employee.photo = res.data.id
+          console.log(this.employee.photo);
+
+        })
+
+      },
+      updateInfu() {
+        console.log(this.uploader);
+        console.log("个人信息进入保存阶段");
+        console.log("保存的详细信息为", this.employee);
+
+
+
+
+
+        let arr = {
+          attrValueVoList: [],
+          positionVoList: [],
+          roleVoList: [],
+          userGroupPoList: [],
+          partyEmployeePo: this.employee,
+          user: this.employee
         }
+
+        console.log(arr);
+
+        changeUserInfo(arr).then(res2 => {
+          console.log("res", res2);
+        }).catch(err => {
+          console.log("输出错误信息", err);
+        })
+
+
+
+      },
+      getImage(id) {
+        if (id == '') {
+          return defaultImage
+        }
+        return getImage(id)
       }
-      this.employee.position = pos.join(',')
-    }).catch(e => {
-      this.loading = true
-      console.error(e)
-    })
-  },
-  methods: {
-    getPhotoImage(photo) {
-      if (this.$utils.isNotEmpty(photo)) {
-        return getFile(photo)
-      } else {
-        return defaultImage
-      }
-    }
-  }
+    },
+
 
-}
+  }
 </script>
 <style lang="scss" scoped>
-  .my-user-info{
-    .my-user-info_size{
+  .my-user-info {
+    .my-user-info_size {
       font-size: 16px;
     }
-    .divider{
-      height:8px;
+
+    .divider {
+      height: 8px;
       background: #f8f8f8;
     }
-  }
 
-</style>
+    ::v-deep .photoPic .van-field__label {
+
+      padding-top: 5%;
+      box-sizing: border-box;
+
+    }
+
+    ::v-deep .van-field__label {
+      color: #313131;
+
+    }
+
+
+    ::v-deep .van-field__control {
+      text-align: right;
+      color: #999999;
+      font-size: 16px;
+    }
+  }
+</style>