AddDialog.js 1.93 KB
import FormDialog from '@/components/FormDialog'
import consumerApi from '@/api/consumer'

const schema = [
  {
    key: 'realname',
    label: '客户名称',
    placeholder: '请输入客户名称'
  },
  {
    key: 'username',
    label: '登录账号',
    placeholder: '请输入登录账号'
  },
  {
    key: 'password',
    label: '登录密码',
    placeholder: '请输入登录密码',
    type: 'password'
  },
  {
    key: 'remark',
    label: '备注',
    placeholder: '请输入备注',
    type: 'textarea'
  }
]

const rules = {
  realname: [
    {
      required: true,
      message: '请输入客户名称',
      trigger: 'blur'
    },
    {
      min: 0,
      max: 25,
      message: '长度在不超过25个字符',
      trigger: 'blur'
    }
  ],
  username: [
    {
      required: true,
      message: '请输入登录账号',
      trigger: 'blur'
    },
    {
      min: 0,
      max: 25,
      message: '长度不超过25个字符',
      trigger: 'blur'
    }
  ],
  password: [
    {
      required: true,
      message: '请输入登录密码',
      trigger: 'blur'
    },
    {
      min: 6,
      max: 12,
      message: '长度在6到12个字符之间',
      trigger: 'blur'
    },
    {
      pattern: /^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])^[\x20-\xff]{6,12}$/,
      message: '必须含有大小写字母和数字',
      trigger: 'blur'
    }
  ],
  remark: [
    {
      min: 0,
      max: 255,
      message: '长度不超过255个字符',
      trigger: 'blur'
    }
  ]
}

export default {
  async show(onSubmitted) {
    FormDialog({
      title: '新增客户',
      schema,
      rules,
      submitSuccessMessage: '添加成功',
      async onSubmit(data) {
        let response = null
        try {
          response = await consumerApi.add(data)
          return response
        } catch (error) {
          return error?.response?.data
        } finally {
          onSubmitted(response?.data)
        }
      }
    })
  }
}