Crunchy
2025-01-13 01d423865ae5eddf91f35c8526f5683c3b430870
src/const/crud/admin/user.js
@@ -16,9 +16,8 @@
 */
import {getDetails} from '@/api/admin/user'
var validateUsername = (rule, value, callback) => {
  getDetails(value).then(response => {
    getDetails(value).then((response) => {
    if (window.boxType === 'edit') callback()
    const result = response.data.data
    if (result !== null) {
@@ -39,7 +38,8 @@
  delBtn: false,
  align: 'center',
  addBtn: false,
  column: [{
    column: [
        {
    fixed: true,
    label: 'id',
    prop: 'userId',
@@ -47,7 +47,8 @@
    hide: true,
    editDisabled: true,
    addDisplay: false
  }, {
        },
        {
    fixed: true,
    label: '用户名',
    prop: 'username',
@@ -55,7 +56,8 @@
    slot: true,
    search: true,
    span: 24,
    rules: [{
            rules: [
                {
      required: true,
      message: '请输入用户名'
    },
@@ -67,87 +69,126 @@
      },
      {validator: validateUsername, trigger: 'blur'}
    ]
  }, {
        },
        {
    label: '密码',
    prop: 'password',
    type: 'password',
    value: '',
    hide: true,
            slot: true,
            formslot: true,
    span: 24,
    rules: [{
      min: 6,
      max: 20,
            rules: [
                {
      required: true,
      message: '长度在 6 到 20 个字符',
                    message: '请输入密码',
      trigger: 'blur'
    }]
  }, {
                },
                {
                    validator: (rule, value, callback) => {
                        let strength = 0
                        if (value.length >= 8) strength++
                        if (/\d/.test(value)) strength++
                        if (/[a-z]/.test(value)) strength++
                        if (/[A-Z]/.test(value)) strength++
                        if (/[!@#$%^&*]/.test(value)) strength++
                        if (strength < 4) {
                            callback(new Error('密码强度不够,请确保密码包含:大小写字母、数字和特殊字符,且长度不少于8位'))
                        } else {
                            callback()
                        }
                    },
                    trigger: 'blur'
                }
            ]
        },
        {
    label: '所属分组',
    prop: 'deptId',
    formslot: true,
    slot: true,
    span: 24,
    hide: true,
    dataType:"number",
    rules: [{
            dataType: 'number',
            rules: [
                {
      required: true,
      message: '请选择部门',
      trigger: 'change'
    }]
  }, {
                }
            ]
        },
        {
    label: '员工',
    prop: 'staffInfo',
    formslot: true,
    span: 24,
    rules: [{
            rules: [
                {
      required: true,
      message: '请选择员工',
      trigger: 'change'
    }]
  }, {
                }
            ]
        },
        {
    label: '手机号',
    prop: 'phone',
    type: 'tel',
    value: '',
    span: 24,
    rules: [{
            rules: [
                {
      min: 11,
      max: 11,
      message: '长度在 11 个字符',
      trigger: 'blur'
    }]
  }, {
                }
            ]
        },
        {
    label: '角色',
    prop: 'role',
    formslot: true,
    slot: true,
    overHidden: true,
    span: 24,
    rules: [{
            rules: [
                {
      required: true,
      message: '请选择角色',
      trigger: 'change'
    }]
  }, {
                    trigger: 'blur'
                }
            ]
        },
        {
    label: '状态',
    prop: 'lockFlag',
    type: 'radio',
    slot: true,
    border:true,
    span: 24,
    rules: [{
            rules: [
                {
      required: true,
      message: '请选择状态',
      trigger: 'change'
    }],
    dicData: [{
                    trigger: 'blur'
                }
            ],
            dicData: [
                {
      label: '有效',
      value: '0'
    }, {
                },
                {
      label: '锁定',
      value: '9'
    }]
  }, {
                }
            ]
        },
        {
    width: 180,
    label: '创建时间',
    prop: 'createTime',
@@ -157,5 +198,6 @@
    editDisabled: true,
    addDisplay: false,
    span: 24
  }]
        }
    ]
}