EditDialog.js 1.74 KB
import FormDialog from '@/components/FormDialog'
import consumerApi from '@/api/consumer'

const formItem = (row) => {
  return [
    {
      key: 'realname',
      label: '客户名称',
      placeholder: '请输入客户名称',
      disabled: row.orderCount > 0
    },
    {
      type: 'tip',
      message: '该客户存在订单未完成,不可修改客户名称',
      hidden: row.orderCount === 0
    },
    {
      key: 'username',
      label: '登录账号',
      placeholder: '请输入登录账号'
    },
    {
      key: 'remark',
      label: '备注',
      placeholder: '请输入备注',
      type: 'textarea'
    }
  ]
}
let schema = []
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'
    }
  ],
  remark: [
    {
      min: 0,
      max: 255,
      message: '长度不超过255个字符',
      trigger: 'blur'
    }
  ]
}
export default {
  async show(data, onSubmitted) {
    schema = formItem(data).filter(item => item.hidden !== true)
    console.log('schema', schema)
    FormDialog({
      title: '编辑客户',
      schema,
      rules,
      data,
      submitSuccessMessage: '编辑成功',
      async onSubmit(data) {
        try {
          return await consumerApi.edit(data.userid, data)
        } catch (error) {
          return error?.response?.data
        } finally {
          onSubmitted()
        }
      }
    })
  }
}