import FormDialog from '@/components/FormDialog' import orderApi from '@/api/order' import TicketsInput from '../../../order/components/TicketsInput' import store from '@/store' import GoodsSelect from '@/views/components/GoodsSelect' import ConsumerSelect from '@/views/components/ConsumerSelect' const schema = [ { key: 'order_number', label: '订单编号', disabled: true }, { key: 'consumer_name', label: '客户名称', placeholder: '请选择客户', disabled: true, component: ConsumerSelect }, { key: 'commodity_id', label: '商品名称', placeholder: '请选择商品', component: GoodsSelect } ] let rules = { consumer_name: [ { required: true, message: '请输入客户名称', trigger: 'blur' } ], commodity_id: [ { required: true, message: '请选择商品名称', trigger: 'change' } ] } export default { async show(userType, data, onSubmitted) { // 订单状态为已收货时 , 显示合同票号 schema[2].props = { orderId: data.id } if (data.status === 'CREATE' || data.status === 'CONFIRM') { if (userType === 2) { schema[1].disabled = false schema[2].disabled = false rules = { consumer_name: [ { required: true, message: '请输入客户名称', trigger: 'blur' } ], commodity_id: [ { required: true, message: '请选择商品名称', trigger: 'change' } ] } } else { schema[1].disabled = true schema[2].disabled = true rules = {} } } else { schema[1].disabled = true schema[2].disabled = true rules = {} } if (schema.length > 4) { schema.splice(4, 1) } if (data.status === 'RECEIVE_GOODS') { schema.push({ key: 'receipt_number', label: '合同发票号', placeholder: '请输入合同发票号', component: TicketsInput }) rules.receipt_number = [ { required: true, trigger: 'blur', validator: (rule, value, callback) => { console.log('test') const str = '^[0-9a-zA-Z_]{1,}$' const exp = new RegExp(str) value.forEach(item => { if (item === '') { callback(new Error('请输入合同发票号')) } else if (!exp.exec(item)) { callback(new Error('合同发票号由字母、数字、下划线组成')) } else if (item.length > 50) { callback(new Error('合同发票号长度不超过50')) } }) callback() } } ] } else if (data.status === 'BILLING') { schema.push({ key: 'receipt_number', label: '合同发票号', component: TicketsInput, props: { disabled: true } }) } const orderStatusDict = store.getters.orderStatusDict FormDialog({ title: orderStatusDict[data.status]?.dialogTitle || '订单详情', schema, rules, data, confirmButtonText: orderStatusDict[data.status]?.confirmButtonText || '保 存', submitSuccessMessage: '编辑成功', async onSubmit(data) { console.log('编辑订单', data) try { return await orderApi.edit({ apiUser: localStorage.getItem('apiUser'), checkSum: localStorage.getItem('checkSum') }, data) } catch (error) { return error?.response?.data } finally { onSubmitted() } } }) } }