| | |
| | | import { reactive, toRefs, onMounted, defineComponent, ref } from 'vue'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import { userApi } from '/@/api/systemManage/user'; |
| | | import {verifyPhone, verifyPwd} from "/@/utils/toolsValidate"; |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface DeptData {} |
| | |
| | | name: 'user', |
| | | setup(props, context) { |
| | | const userRef = ref() |
| | | const checkPhone = (rule: any, value: any, callback: any) => { |
| | | if (value == '') { |
| | | return callback(new Error('该内容不能为空')) |
| | | } |
| | | setTimeout(() => { |
| | | if (!verifyPhone(value)) { |
| | | callback(new Error('手机号格式不正确')) |
| | | }else callback(); |
| | | }, 400) |
| | | } |
| | | let validatePwd = (rule: any, value: any, callback: any)=>{ |
| | | if(value === ''){ |
| | | callback(new Error('请输入密码')) |
| | | }else{ |
| | | if(!verifyPwd(value)){ |
| | | callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间')) |
| | | }else{ |
| | | callback() |
| | | } |
| | | } |
| | | } |
| | | const state = reactive<UserState>({ |
| | | title: '', |
| | | disabled: false, |
| | |
| | | roleIds: [{ required: true, message: '请选择用户角色', trigger: 'change' }], |
| | | depId: [{ required: true, message: '请选择部门', trigger: 'change' }], |
| | | positionIds: [{ required: true, message: '请选择职务', trigger: 'change' }], |
| | | phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }], |
| | | phone: [{ required: true, validator: checkPhone, trigger: 'blur' }], |
| | | type: [{ required: true, message: '请填写用户类型', trigger: 'blur' }], |
| | | gender: [{ required: true, message: '请选择性别', trigger: 'change' }], |
| | | password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }], |
| | | password: [{ required: true, validator: validatePwd, trigger: 'blur' }], |
| | | }, |
| | | departmentData: [], // 部门数据 |
| | | roleData: [], //角色数据 |
| | |
| | | { id: 3, name: '普通员工' } |
| | | ], |
| | | }); |
| | | |
| | | // 打开弹窗 |
| | | const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => { |
| | | state.isShowUserDialog = true; |
| | |
| | | }); |
| | | } |
| | | } else { |
| | | let res = await userApi().modUser(state.userForm); |
| | | const { roles, positions, ...data} = state.userForm |
| | | let res = await userApi().modUser(data); |
| | | if (res.data.code === '200') { |
| | | ElMessage({ |
| | | type: 'success', |