Alan
2021-02-19 3f447114eb5b0102c8d8d46d4a75be7eacf64f3a
src/views/febs/system/user/Edit.vue
@@ -11,15 +11,23 @@
      <el-form-item :label="$t('table.user.username')" prop="username">
        <el-input v-model="user.username" :readonly="user.userId === '' ? false : 'readonly'" />
      </el-form-item>
      <el-form-item v-show="user.userId === ''" :label="$t('table.user.password')" prop="password">
        <el-tooltip class="item" effect="dark" :content="$t('tips.defaultPassword')" placement="top-start">
          <el-input value="1234qwer" type="password" readonly />
        </el-tooltip>
      <el-form-item label="员工姓名" prop="nickName">
        <el-select v-model="user.nickName" filterable placeholder="" style="width:100%" @change="nickName">
          <el-option
            v-for="item in baseinfo"
            :key="item.certificateNumb"
            :label="item.empName"
            :value="String(item.certificateNumb)"
          >
            <span style="float: left">{{ item.certificateNumb }}</span>
            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.empName }}</span>
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item :label="$t('table.user.email')" prop="email">
        <el-input v-model="user.email" />
      <el-form-item label="身份证号" prop="certificateNumb">
        <el-input v-model="user.certificateNumb" />
      </el-form-item>
      <el-form-item :label="$t('table.user.mobile')" prop="mobile">
      <el-form-item label="手机号码" prop="mobile">
        <el-input v-model="user.mobile" />
      </el-form-item>
      <el-form-item :label="$t('table.user.dept')" prop="deptId">
@@ -32,6 +40,15 @@
          style="width:100%"
        />
      </el-form-item>
      <el-form-item v-show="user.userId === ''" :label="$t('table.user.password')" prop="password">
        <el-tooltip class="item" effect="dark" :content="$t('tips.defaultPassword')" placement="top-start">
          <el-input value="1234qwer" type="password" readonly />
        </el-tooltip>
      </el-form-item>
      <el-form-item :label="$t('table.user.email')" prop="email">
        <el-input v-model="user.email" />
      </el-form-item>
      <el-form-item :label="$t('table.user.role')" prop="roleId">
        <el-select v-model="user.roleId" multiple value="" placeholder="" style="width:100%">
          <el-option
@@ -39,7 +56,10 @@
            :key="item.roleId"
            :label="item.roleName"
            :value="String(item.roleId)"
          />
          >
            <span style="float: left">{{ item.roleId }}</span>
            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.roleName }}</span>
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item :label="$t('table.user.dataPermission')" prop="deptIds">
@@ -54,13 +74,6 @@
          highlight-current
          style="border: 1px solid #DCDFE6;border-radius: 3px;padding: 6px;"
        />
      </el-form-item>
      <el-form-item :label="$t('table.user.sex')" prop="sex">
        <el-select v-model="user.sex" value="" placeholder="" style="width:100%">
          <el-option value="0" :label="$t('common.sex.male') " />
          <el-option value="1" :label="$t('common.sex.female') " />
          <el-option value="2" :label="$t('common.sex.secret') " />
        </el-select>
      </el-form-item>
      <el-form-item :label="$t('table.user.status')" prop="status">
        <el-radio-group v-model="user.status">
@@ -106,6 +119,7 @@
      width: this.initWidth(),
      depts: [],
      roles: [],
      baseinfo: [],
      deptTree: [],
      rules: {
        username: [
@@ -153,6 +167,7 @@
  mounted() {
    this.initDept()
    this.initRoles()
    this.initBaseinfo()
    window.onresize = () => {
      return (() => {
        this.width = this.initWidth()
@@ -160,10 +175,20 @@
    }
  },
  methods: {
    nickName(data) {
      this.user.certificateNumb = data
      for (let i = 0; i < this.baseinfo.length; i++) {
        if (this.baseinfo[i].certificateNumb === data) {
          this.user.nickName = this.baseinfo[i].empName
        }
      }
    },
    initUser() {
      return {
        userId: '',
        username: '',
        certificateNumb: '',
        nickName: '',
        password: '1234qwer',
        email: '',
        mobile: '',
@@ -211,6 +236,17 @@
        })
      })
    },
    initBaseinfo() {
      this.$get('hr/empBaseInfo/options').then((r) => {
        this.baseinfo = r.data.data
      }).catch((error) => {
        console.error(error)
        this.$message({
          message: this.$t('tips.getDataFail'),
          type: 'error'
        })
      })
    },
    setUser(val) {
      this.user = { ...val }
      this.user.deptIds && (this.user.deptIdsArr = this.user.deptIds.split(','))