马宇豪
2024-01-26 c694cffc8541d921e5256d33e14e3237454de950
src/views/system/user/component/userDialog.vue
@@ -93,6 +93,7 @@
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 {}
@@ -133,6 +134,27 @@
    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,
@@ -158,10 +180,10 @@
                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: [], //角色数据
@@ -176,6 +198,7 @@
                { id: 3, name: '普通员工' }
            ],
        });
        // 打开弹窗
        const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => {
            state.isShowUserDialog = true;
@@ -240,7 +263,8 @@
                            });
                        }
                    } 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',