祖安之光
10 天以前 d85d9ae08781a5b0d9b7f854460d3f07d043595a
src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
@@ -21,6 +21,18 @@
            <el-radio :label="1">女</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="年龄:" prop="age" v-if="state.title !== '修改密码'">
          <el-input v-model.number.trim="state.form.age" type="number" :disabled="disabled" placeholder="请输入年龄"></el-input>
        </el-form-item>
        <el-form-item label="职称:" prop="positional" v-if="state.title !== '修改密码'">
          <el-input v-model.trim="state.form.positional" :disabled="disabled" placeholder="请输入职称"></el-input>
        </el-form-item>
        <el-form-item label="人员类别:"  prop="personType" v-if="state.title !== '修改密码'">
          <el-radio-group v-model="state.form.personType"  :disabled="disabled">
            <el-radio :label="1">技术</el-radio>
            <el-radio :label="2">管理</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="身份证号:"  prop="idCard" v-if="state.title !== '修改密码'">
          <el-input v-model.trim="state.form.idCard" :maxlength="18" :disabled="disabled" placeholder="请输入身份证号"></el-input>
        </el-form-item>
@@ -30,6 +42,14 @@
              type="date"
              value-format="YYYY-MM-DD"
              placeholder="请选择入职时间"
          />
        </el-form-item>
        <el-form-item label="离职时间:" prop="resignTime" v-if="state.title !== '修改密码'" >
          <el-date-picker
              v-model="state.form.resignTime"
              type="date"
              value-format="YYYY-MM-DD"
              placeholder="请选择离职时间"
          />
        </el-form-item>
        <el-form-item label="密码:" prop="password" v-if="state.title == '新增' || state.title == '修改密码'">
@@ -43,14 +63,15 @@
        </el-form-item>
        <el-form-item label="用户类型:" v-if="state.title !== '修改密码'" prop="userType">
          <el-radio-group v-model="state.form.userType"  :disabled="disabled" @change="changeType" v-if="state.title == '新增'">
            <el-radio :label="0">系统管理员</el-radio>
            <el-radio :label="1">企业管理员</el-radio>
            <el-radio :label="2">企业用户</el-radio>
<!--            <el-radio :label="3" v-if="!state.isAdmin">车间(岗位)级</el-radio>-->
            <el-radio :label="0" v-if="state.currentUserType == 0">系统管理员</el-radio>
            <el-radio :label="6" v-if="state.currentUserType == 0 || state.currentUserType == 6 ">企业管理员</el-radio>
            <el-radio :label="1" v-if="state.currentUserType == 0 || state.currentUserType == 6 || state.currentUserType ==1">企业用户</el-radio>
            <el-radio :label="2" v-if="state.currentUserType !== 3">部门级</el-radio>
            <el-radio :label="3">车间(岗位)级</el-radio>
<!--            <el-radio :label="4" v-if="state.currentUserType == 0">其他</el-radio>-->
          </el-radio-group>
          <span v-else-if="state.title == '查看'">{{state.currentUserType === 0 ? '管理员' : state.currentUserType === 1 ? '企业级' : state.currentUserType === 2 ? '部门级' : state.currentUserType === 3 ? '车间级' :'其他'}}</span>
          <span v-else-if="state.title == '编辑'">{{state.form.userType === 0 ? '管理员' : state.form.userType === 1 ? '企业级' : state.form.userType === 2 ? '部门级' : state.form.userType === 3 ? '车间级' :'其他'}}</span>
          <span v-else-if="state.title == '查看'">{{state.currentUserType === 0 ? '系统管理员' : state.currentUserType === 1 ? '企业用户' : state.currentUserType === 6 ? '企业管理员' : state.currentUserType === 2 ? '部门级' : state.currentUserType === 3 ? '车间级' :'其他'}}</span>
          <span v-else-if="state.title == '编辑'">{{state.form.userType === 0 ? '系统管理员' : state.form.userType === 1 ? '企业用户' : state.form.userType === 2 ? '部门级' : state.form.userType === 3 ? '车间级' :'其他'}}</span>
          <!--          <el-radio-group v-model="state.form.userType"  :disabled="disabled" @change="changeType" v-else-if="state.title == '编辑'">-->
<!--            <el-radio :label="0" v-if="state.currentUserType == 0">管理员</el-radio>-->
<!--            <el-radio :label="1" >企业级</el-radio>-->
@@ -103,7 +124,22 @@
        </el-form-item>
        <el-form-item label="部门:" prop="deptId" v-if="state.title !== '修改密码'">
        <el-form-item label="所属上级账号:" prop="companyName" v-if="showChild">
          <scorllSelect
              :disabled="disabled || state.title =='编辑'"
              ref="scrollRef"
              v-model="state.form.parentName"
              @getval = "getSelectUser"
              placeholder="请选择"
              clearable
              style="width: 45%;"
              filterable
              remote
              searchKey="username"
              :methods="getUser">
          </scorllSelect>
        </el-form-item>
        <el-form-item label="部门:" prop="deptId" v-if="state.title !== '修改密码' && state.form.userType !== 0">
          <el-select
              clearable
              v-model="state.form.deptId"
@@ -120,26 +156,11 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item label="职务:" prop="duty" v-if="state.title !== '修改密码'" >
        <el-form-item label="职务:" prop="duty" v-if="state.title !== '修改密码' && state.form.userType !== 0">
          <el-input v-model.trim="state.form.duty" :disabled="disabled" placeholder="请输入职务"></el-input>
        </el-form-item>
        <el-form-item label="专业:" prop="post" v-if="state.title !== '修改密码'" >
        <el-form-item label="专业:" prop="post" v-if="state.title !== '修改密码' && state.form.userType !== 0">
          <el-input v-model.trim="state.form.post" :disabled="disabled" placeholder="请输入专业"></el-input>
        </el-form-item>
        <el-form-item label="所属上级账号:" prop="companyName" v-if="showChild">
          <scorllSelect
              :disabled="disabled || state.title =='编辑'"
              ref="scrollRef"
              v-model="state.form.parentName"
              @getval = "getSelectUser"
              placeholder="请选择"
              clearable
              style="width: 45%;"
              filterable
              remote
              searchKey="username"
              :methods="getUser">
          </scorllSelect>
        </el-form-item>
      </el-form>
      <template #footer v-if="state.title !='查看'">
@@ -265,10 +286,14 @@
    companyName: '',
    parentId: null,
    entryTime: '',
    resignTime: '',
    idCard: '',
    deptId: null,
    duty: '',
    post: ''
    post: '',
    age: null,
    personType: null,
    positional: ''
  },
  formRules:{
    name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
@@ -277,12 +302,13 @@
    username: [{ required: true, message: '请选择用户名', trigger: 'blur' }],
    password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
    confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }],
    phone: [{ validator: validateUserPhone, trigger: 'blur' }],
    // phone: [{ validator: validateUserPhone, trigger: 'blur' }],
    userType: [{ required: true, message: '请选择用户类型', trigger: 'blur' }],
    idCard: [{ validator: verifyId, trigger: 'blur' }],
    // idCard: [{ validator: verifyId, trigger: 'blur' }],
    entryTime: [{ required: true, message: '请选择入职时间', trigger: 'blur' }],
    // duty: [{ required: true, message: '请输入职务', trigger: 'blur' }],
    // post: [{ required: true, message: '请输入专业', trigger: 'blur' }]
    age: [{ required: true, message: '请输入年龄', trigger: 'blur' }],
    personType: [{ required: true, message: '请选择人员类别', trigger: 'blur' }],
    positional: [{ required: true, message: '请输入职称', trigger: 'blur' }]
  },
  companyList: [],
  userList: [],
@@ -436,7 +462,7 @@
const onSubmit = async () => {
  const valid = await superRef.value.validate();
  if(valid){
    if((state.form.userType ===1 && state.form.companyId ===null) || ((state.form.userType ===2 ||state.form.userType ===3) && (state.form.parentId ===null ||state.form.companyId===null))){
    if((state.form.userType ===2 ||state.form.userType ===3) && (state.form.parentId ===null ||state.form.companyId===null)){
      ElMessage.warning('请选择所属父级账号')
      return;
    }
@@ -468,8 +494,13 @@
        parentId: data.parentId,
        idCard: data.idCard,
        entryTime: data.entryTime,
        resignTime: data.resignTime,
        duty: data.duty,
        post: data.post
        post: data.post,
        companyName: data.companyName,
        age: data.age,
        personType: data.personType,
        positional: data.positional
      }
      const res = await editUser(param)
@@ -512,28 +543,37 @@
  state.form.companyId = null;
  state.form.companyName = '';
  //当前是管理员级用户
  console.log(state.currentUserType,'type')
  if(state.currentUserType === 0){
    if(state.form.userType === 0){
      showCompany.value = false;
      showChild.value = false;
    }else {
      showCompany.value = true;
      showChild.value = false;
      if(state.form.userType === 3){
        showChild.value = true
      }else{
        showChild.value = false;
      }
    }
  }else{
    state.form.companyId = userInfo.value.companyId;
    state.form.companyName = userInfo.value.companyName
    showCompany.value = true
  }
  //当前是企业级/其他用户选择部门
  if((state.currentUserType === 1 && state.form.userType === 2) || (state.currentUserType === 4 && state.form.userType === 2)){
  if((state.currentUserType === 1 && state.form.userType === 2) || (state.currentUserType === 4 && state.form.userType === 2) || (state.currentUserType === 6 && state.form.userType === 2)){
    state.form.parentId = userInfo.value.id;
    state.form.companyName = userInfo.value.companyName
    state.form.companyId = userInfo.value.companyId;
    showChild.value = false;
    showCompany.value = true;
    // showCompany.value = true;
  } //当前是企业级/其他用户选择车间
  else if((state.currentUserType === 1 && state.form.userType === 3) || (state.currentUserType === 4 && state.form.userType === 3)){
  } else if((state.currentUserType === 1 && state.form.userType === 3) || (state.currentUserType === 4 && state.form.userType === 3)|| (state.currentUserType === 6 && state.form.userType === 3)){
    state.form.companyName = userInfo.value.companyName
    state.form.companyId = userInfo.value.companyId;
    showCompany.value = true;
    // showCompany.value = true;
    showChild.value = true;
    const param = {
      userType: 2,
@@ -548,22 +588,9 @@
    state.form.parentId = userInfo.value.id;
    state.form.companyName = userInfo.value.companyName
    state.form.companyId = userInfo.value.companyId;
    showCompany.value = true;
    // showCompany.value = true;
    showChild.value = false;
  }
  // if(state.isAdmin){
  //   state.form.companyId = null;
  //   state.form.companyName = '';
  // }
  // state.form.parentId = null;
  // state.form.parentName = '';
  // if(state.form.userType === 2 || state.form.userType === 3 ){
  //   const param = {
  //     userType: state.form.userType-1,
  //     companyId: state.form.companyId,
  //   }
  //   scrollRef.value.getList(param,'change');
  // }
}
const handleClose = () => {
@@ -577,7 +604,17 @@
    userType: null,
    sex: 0,
    companyId: null,
    parentId: null
    companyName: '',
    parentId: null,
    entryTime: '',
    resignTime: '',
    idCard: '',
    deptId: null,
    duty: '',
    post: '',
    age: null,
    personType: null,
    positional: ''
  }
  showCompany.value = false;
  showChild.value = false;