EditDialog.js
3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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()
}
}
})
}
}