vue2-client 1.6.59-single → 1.6.61-single
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -19,6 +19,22 @@
|
|
|
19
19
|
:get-data-params="getDataParams"
|
|
20
20
|
/>
|
|
21
21
|
</a-row>
|
|
22
|
+
<a-row :gutter="16" v-for="(item, key) in simpleFormJsonData" :key="'row' + key">
|
|
23
|
+
<a-card :title="item.name" :bordered="false" size="small">
|
|
24
|
+
<x-form-item
|
|
25
|
+
v-for="(formItem, formItemIndex) in item.value"
|
|
26
|
+
:key="key + formItemIndex"
|
|
27
|
+
:attr="formItem"
|
|
28
|
+
:disabled="itemDisabled(formItem)"
|
|
29
|
+
:files="files"
|
|
30
|
+
:form="form"
|
|
31
|
+
:images="images"
|
|
32
|
+
:service-name="serviceName"
|
|
33
|
+
mode="新增/修改"
|
|
34
|
+
:get-data-params="getDataParams"
|
|
35
|
+
/>
|
|
36
|
+
</a-card>
|
|
37
|
+
</a-row>
|
|
22
38
|
</a-form-model>
|
|
23
39
|
</template>
|
|
24
40
|
<script>
|
|
@@ -28,283 +44,322 @@ import { mapState } from 'vuex'
|
|
|
28
44
|
import { post } from '@vue2-client/services/api'
|
|
29
45
|
|
|
30
46
|
export default {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
name: 'XAddNativeForm',
|
|
48
|
+
components: {
|
|
49
|
+
XFormItem
|
|
50
|
+
},
|
|
51
|
+
props: {
|
|
52
|
+
},
|
|
53
|
+
data () {
|
|
54
|
+
return {
|
|
55
|
+
// 预览模式
|
|
56
|
+
viewMode: false,
|
|
57
|
+
// 是否处理表单Key值
|
|
58
|
+
isHandleFormKey: true,
|
|
59
|
+
// 内容加载是否完成
|
|
60
|
+
loaded: false,
|
|
61
|
+
// 业务类型
|
|
62
|
+
businessType: '',
|
|
63
|
+
// 业务标题
|
|
64
|
+
title: '',
|
|
65
|
+
// 新增或修改业务是否执行中
|
|
66
|
+
loading: false,
|
|
67
|
+
// 表单Model
|
|
68
|
+
form: {},
|
|
69
|
+
// 表单项集合
|
|
70
|
+
formItems: [],
|
|
71
|
+
// 服务名称
|
|
72
|
+
serviceName: 'af-system',
|
|
73
|
+
// 修改有文件的表单时使用
|
|
74
|
+
files: [],
|
|
75
|
+
images: [],
|
|
76
|
+
// 校验
|
|
77
|
+
rules: {},
|
|
78
|
+
// 调用logic获取数据源的追加参数
|
|
79
|
+
getDataParams: {},
|
|
80
|
+
// 是否为临时表
|
|
81
|
+
isTableTemp: false,
|
|
82
|
+
// 动态简易表单集合
|
|
83
|
+
simpleFormJsonData: {}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
computed: {
|
|
87
|
+
businessTitle () {
|
|
88
|
+
return this.businessType + this.title
|
|
34
89
|
},
|
|
35
|
-
|
|
90
|
+
// 过滤出用于新增/修改场景的表单项
|
|
91
|
+
realJsonData: function () {
|
|
92
|
+
return this.formItems.filter((item) => {
|
|
93
|
+
return item.addOrEdit && item.addOrEdit !== 'no' && item.addOrEdit !== 'silenceAdd' && item.addOrEdit !== 'version' && !this.itemDisabled(item)
|
|
94
|
+
})
|
|
36
95
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
isHandleFormKey: true,
|
|
43
|
-
// 内容加载是否完成
|
|
44
|
-
loaded: false,
|
|
45
|
-
// 业务类型
|
|
46
|
-
businessType: '',
|
|
47
|
-
// 业务标题
|
|
48
|
-
title: '',
|
|
49
|
-
// 新增或修改业务是否执行中
|
|
50
|
-
loading: false,
|
|
51
|
-
// 表单Model
|
|
52
|
-
form: {},
|
|
53
|
-
// 表单项集合
|
|
54
|
-
formItems: [],
|
|
55
|
-
// 服务名称
|
|
56
|
-
serviceName: 'af-system',
|
|
57
|
-
// 修改有文件的表单时使用
|
|
58
|
-
files: [],
|
|
59
|
-
images: [],
|
|
60
|
-
// 校验
|
|
61
|
-
rules: {},
|
|
62
|
-
// 调用logic获取数据源的追加参数
|
|
63
|
-
getDataParams: {},
|
|
64
|
-
// 是否为临时表
|
|
65
|
-
isTableTemp: false,
|
|
66
|
-
}
|
|
96
|
+
// 过滤出用于静默新增场景的表单项
|
|
97
|
+
silenceAddJsonData: function () {
|
|
98
|
+
return this.formItems.filter(function (item) {
|
|
99
|
+
return item.addOrEdit === 'silenceAdd'
|
|
100
|
+
})
|
|
67
101
|
},
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
realJsonData: function () {
|
|
74
|
-
return this.formItems.filter((item) => {
|
|
75
|
-
return item.addOrEdit && item.addOrEdit !== 'no' && item.addOrEdit !== 'silenceAdd' && item.addOrEdit !== 'version' && !this.itemDisabled(item)
|
|
76
|
-
})
|
|
77
|
-
},
|
|
78
|
-
// 过滤出用于静默新增场景的表单项
|
|
79
|
-
silenceAddJsonData: function () {
|
|
80
|
-
return this.formItems.filter(function (item) {
|
|
81
|
-
return item.addOrEdit === 'silenceAdd'
|
|
82
|
-
})
|
|
83
|
-
},
|
|
84
|
-
// 过滤出版本号表单项
|
|
85
|
-
versionJsonData: function () {
|
|
86
|
-
return this.formItems.filter(function (item) {
|
|
87
|
-
return item.addOrEdit === 'version'
|
|
88
|
-
})
|
|
89
|
-
},
|
|
90
|
-
...mapState('account', { currUser: 'user' })
|
|
102
|
+
// 过滤出版本号表单项
|
|
103
|
+
versionJsonData: function () {
|
|
104
|
+
return this.formItems.filter(function (item) {
|
|
105
|
+
return item.addOrEdit === 'version'
|
|
106
|
+
})
|
|
91
107
|
},
|
|
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
|
-
case 'treeSelect':
|
|
123
|
-
case 'rangePicker':
|
|
124
|
-
case 'monthPicker':
|
|
125
|
-
case 'yearPicker':
|
|
126
|
-
case 'datePicker':
|
|
127
|
-
case 'file':
|
|
128
|
-
case 'image':
|
|
129
|
-
case 'citySelect':
|
|
130
|
-
case 'addressSearch':
|
|
131
|
-
case 'personSetting':
|
|
132
|
-
message = '请选择' + item.name
|
|
133
|
-
trigger = 'change'
|
|
134
|
-
break
|
|
135
|
-
default:
|
|
136
|
-
message = '请输入' + item.name
|
|
137
|
-
trigger = 'blur'
|
|
138
|
-
}
|
|
139
|
-
this.rules[item.model].push({
|
|
140
|
-
required: true,
|
|
141
|
-
message: message,
|
|
142
|
-
trigger: trigger
|
|
143
|
-
})
|
|
144
|
-
}
|
|
108
|
+
...mapState('account', { currUser: 'user' })
|
|
109
|
+
},
|
|
110
|
+
methods: {
|
|
111
|
+
init (params) {
|
|
112
|
+
const {
|
|
113
|
+
formItems, viewMode, isHandleFormKey = true, serviceName = 'af-system', isTableTemp = false, modifyModelData = {}, businessType, title, fixedAddForm = {}, getDataParams = {}, simpleFormJsonData = {}
|
|
114
|
+
} = params
|
|
115
|
+
this.loaded = false
|
|
116
|
+
this.formItems = JSON.parse(JSON.stringify(formItems))
|
|
117
|
+
this.viewMode = viewMode
|
|
118
|
+
this.isHandleFormKey = isHandleFormKey
|
|
119
|
+
this.serviceName = serviceName
|
|
120
|
+
this.businessType = businessType
|
|
121
|
+
this.title = title
|
|
122
|
+
this.getDataParams = getDataParams
|
|
123
|
+
this.simpleFormJsonData = simpleFormJsonData
|
|
124
|
+
this.isTableTemp = isTableTemp
|
|
125
|
+
// 设置普通表单项的相关参数
|
|
126
|
+
const formData = Object.assign({}, fixedAddForm)
|
|
127
|
+
for (let i = 0; i < this.realJsonData.length; i++) {
|
|
128
|
+
const item = this.realJsonData[i]
|
|
129
|
+
this.setFormProps(formData, item)
|
|
130
|
+
}
|
|
131
|
+
// 设置动态简易表单项的相关参数
|
|
132
|
+
for (const key in this.simpleFormJsonData) {
|
|
133
|
+
for (const item of this.simpleFormJsonData[key].value) {
|
|
134
|
+
item.model = key + '@' + item.model
|
|
135
|
+
this.setFormProps(formData, item)
|
|
136
|
+
}
|
|
137
|
+
}
|
|
145
138
|
|
|
139
|
+
this.form = formData
|
|
140
|
+
// 修改场景下对表单项赋值
|
|
141
|
+
if (modifyModelData && modifyModelData.data) {
|
|
142
|
+
this.files = modifyModelData.files
|
|
143
|
+
this.images = modifyModelData.images
|
|
144
|
+
if (Object.keys(modifyModelData.data).length > 0) {
|
|
145
|
+
this.getModifyModelData(modifyModelData)
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.loaded = true
|
|
149
|
+
},
|
|
150
|
+
setFormProps (formData, item) {
|
|
151
|
+
formData[item.model] = undefined
|
|
152
|
+
// 处理表单校验情况
|
|
153
|
+
if (item.rule) {
|
|
154
|
+
this.rules[item.model] = []
|
|
155
|
+
const required = item.rule.required ? item.rule.required === true || item.rule.required === 'true' : false
|
|
156
|
+
let trigger
|
|
157
|
+
let message
|
|
158
|
+
if (required) {
|
|
159
|
+
switch (item.type) {
|
|
160
|
+
case 'select':
|
|
161
|
+
case 'checkbox':
|
|
162
|
+
case 'radio':
|
|
163
|
+
case 'treeSelect':
|
|
164
|
+
case 'rangePicker':
|
|
165
|
+
case 'monthPicker':
|
|
166
|
+
case 'yearPicker':
|
|
167
|
+
case 'datePicker':
|
|
168
|
+
case 'file':
|
|
169
|
+
case 'image':
|
|
170
|
+
case 'citySelect':
|
|
171
|
+
case 'addressSearch':
|
|
172
|
+
case 'personSetting':
|
|
173
|
+
message = '请选择' + item.name
|
|
174
|
+
trigger = 'change'
|
|
175
|
+
break
|
|
176
|
+
default:
|
|
177
|
+
message = '请输入' + item.name
|
|
178
|
+
trigger = 'blur'
|
|
179
|
+
}
|
|
180
|
+
this.rules[item.model].push({
|
|
181
|
+
required: true,
|
|
182
|
+
message: message,
|
|
183
|
+
trigger: trigger
|
|
184
|
+
})
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
switch (item.rule.type) {
|
|
188
|
+
case 'number':
|
|
189
|
+
case 'integer':
|
|
190
|
+
case 'float':
|
|
191
|
+
let defaultValue
|
|
192
|
+
let message
|
|
146
193
|
switch (item.rule.type) {
|
|
147
194
|
case 'number':
|
|
195
|
+
message = '数字'
|
|
196
|
+
defaultValue = 0
|
|
197
|
+
break
|
|
148
198
|
case 'integer':
|
|
199
|
+
message = '整数'
|
|
200
|
+
defaultValue = 0
|
|
201
|
+
break
|
|
149
202
|
case 'float':
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
switch (item.rule.type) {
|
|
153
|
-
case 'number':
|
|
154
|
-
message = '数字'
|
|
155
|
-
defaultValue = 0
|
|
156
|
-
break
|
|
157
|
-
case 'integer':
|
|
158
|
-
message = '整数'
|
|
159
|
-
defaultValue = 0
|
|
160
|
-
break
|
|
161
|
-
case 'float':
|
|
162
|
-
message = '小数'
|
|
163
|
-
defaultValue = 0.0
|
|
164
|
-
break
|
|
165
|
-
}
|
|
166
|
-
this.rules[item.model].push({
|
|
167
|
-
type: item.rule.type,
|
|
168
|
-
message: item.name + '必须为' + message,
|
|
169
|
-
transform: (value) => {
|
|
170
|
-
if (value && value.length !== 0) {
|
|
171
|
-
return Number(value)
|
|
172
|
-
} else {
|
|
173
|
-
return defaultValue
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
trigger: 'blur'
|
|
177
|
-
})
|
|
203
|
+
message = '小数'
|
|
204
|
+
defaultValue = 0.0
|
|
178
205
|
break
|
|
179
206
|
}
|
|
180
|
-
|
|
207
|
+
this.rules[item.model].push({
|
|
208
|
+
type: item.rule.type,
|
|
209
|
+
message: item.name + '必须为' + message,
|
|
210
|
+
transform: (value) => {
|
|
211
|
+
if (value && value.length !== 0) {
|
|
212
|
+
return Number(value)
|
|
213
|
+
} else {
|
|
214
|
+
return defaultValue
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
trigger: 'blur'
|
|
218
|
+
})
|
|
219
|
+
break
|
|
181
220
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
itemDisabled (value) {
|
|
224
|
+
return (this.businessType === '新增' && value.addOrEdit === 'edit') ||
|
|
225
|
+
(this.businessType === '修改' && value.addOrEdit === 'add')
|
|
226
|
+
},
|
|
227
|
+
async onSubmit () {
|
|
228
|
+
this.$refs.selectForm.validate(async valid => {
|
|
229
|
+
// 验证未通过直接返回
|
|
230
|
+
if (!valid) {
|
|
231
|
+
return false
|
|
189
232
|
}
|
|
190
|
-
this.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
// 验证未通过直接返回
|
|
199
|
-
if (!valid) {
|
|
200
|
-
return false
|
|
201
|
-
}
|
|
202
|
-
if (this.viewMode) {
|
|
203
|
-
this.$message.info('预览模式禁止新增和修改')
|
|
204
|
-
return false
|
|
205
|
-
}
|
|
206
|
-
this.loading = true
|
|
207
|
-
for (const key of Object.keys(this.form)) {
|
|
208
|
-
if (this.form[key] === null || this.form[key] === '') {
|
|
209
|
-
this.form[key] = undefined
|
|
210
|
-
}
|
|
233
|
+
if (this.viewMode) {
|
|
234
|
+
this.$message.info('预览模式禁止新增和修改')
|
|
235
|
+
return false
|
|
236
|
+
}
|
|
237
|
+
this.loading = true
|
|
238
|
+
for (const key of Object.keys(this.form)) {
|
|
239
|
+
if (this.form[key] === null || this.form[key] === '') {
|
|
240
|
+
this.form[key] = undefined
|
|
211
241
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
// 通过请求追加静默新增:自定义字段
|
|
229
|
-
for (const item of this.silenceAddJsonData.filter((item) => item.silencePurpose === 'customize')) {
|
|
230
|
-
requestForm[item.model] = await this.getSilenceSource(item.silenceSource, requestForm)
|
|
242
|
+
}
|
|
243
|
+
const requestForm = Object.assign({}, this.form)
|
|
244
|
+
// 追加静默新增字段
|
|
245
|
+
if (this.businessType === '新增') {
|
|
246
|
+
for (const item of this.silenceAddJsonData) {
|
|
247
|
+
switch (item.silencePurpose) {
|
|
248
|
+
case 'createTime':
|
|
249
|
+
requestForm[item.model] = formatDate('now')
|
|
250
|
+
break
|
|
251
|
+
case 'operator':
|
|
252
|
+
requestForm[item.model] = this.currUser.name
|
|
253
|
+
break
|
|
254
|
+
case 'orgId':
|
|
255
|
+
requestForm[item.model] = this.currUser.orgid
|
|
256
|
+
break
|
|
231
257
|
}
|
|
232
258
|
}
|
|
233
|
-
//
|
|
234
|
-
|
|
235
|
-
this
|
|
236
|
-
valid: valid,
|
|
237
|
-
form: requestForm,
|
|
238
|
-
businessType: this.businessType
|
|
239
|
-
})
|
|
240
|
-
return
|
|
259
|
+
// 通过请求追加静默新增:自定义字段
|
|
260
|
+
for (const item of this.silenceAddJsonData.filter((item) => item.silencePurpose === 'customize')) {
|
|
261
|
+
requestForm[item.model] = await this.getSilenceSource(item.silenceSource, requestForm)
|
|
241
262
|
}
|
|
242
|
-
// 处理表单键问题
|
|
243
|
-
const realForm = {}
|
|
244
|
-
for (const key of Object.keys(requestForm)) {
|
|
245
|
-
const realKey = this.getRealKey(key)
|
|
246
|
-
realForm[realKey] = requestForm[key]
|
|
247
|
-
}
|
|
248
|
-
// 交由父级处理
|
|
249
|
-
this.$emit('onSubmit', {
|
|
250
|
-
businessType: this.businessType,
|
|
251
|
-
serviceName: this.serviceName,
|
|
252
|
-
realForm: realForm,
|
|
253
|
-
currUserName: this.currUser.name
|
|
254
|
-
})
|
|
255
|
-
})
|
|
256
|
-
},
|
|
257
|
-
/**
|
|
258
|
-
* 获取通过logic静默新增的字段
|
|
259
|
-
* @param logicName logic名称
|
|
260
|
-
* @param requestParameters 请求参数
|
|
261
|
-
*/
|
|
262
|
-
async getSilenceSource (logicName, requestParameters) {
|
|
263
|
-
const result = await post('/api/' + this.serviceName + '/logic/' + logicName, requestParameters)
|
|
264
|
-
return result
|
|
265
|
-
},
|
|
266
|
-
// 获取表单字段实际值
|
|
267
|
-
getRealKey (key) {
|
|
268
|
-
if (this.isHandleFormKey) {
|
|
269
|
-
return key.substring(key.indexOf('_') + 1)
|
|
270
|
-
} else {
|
|
271
|
-
return key
|
|
272
263
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
264
|
+
// 如果是临时表
|
|
265
|
+
if (this.isTableTemp) {
|
|
266
|
+
this.$emit('tempTableModify', {
|
|
267
|
+
valid: valid,
|
|
268
|
+
form: requestForm,
|
|
269
|
+
businessType: this.businessType
|
|
270
|
+
})
|
|
271
|
+
return
|
|
281
272
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
this.form[item.model] = modifyModelData.data[item.model] + ''
|
|
273
|
+
// 处理表单键问题
|
|
274
|
+
const realForm = {}
|
|
275
|
+
for (const key of Object.keys(requestForm)) {
|
|
276
|
+
const value = requestForm[key]
|
|
277
|
+
const extraFormKeyTagIndex = key.indexOf('@')
|
|
278
|
+
// 如果含有动态简易表单项,则将该项的值放入具体的动态表单配置字段中
|
|
279
|
+
if (extraFormKeyTagIndex !== -1) {
|
|
280
|
+
const extraFormKey = key.substring(0, extraFormKeyTagIndex)
|
|
281
|
+
const realKey = key.substring(extraFormKeyTagIndex + 1)
|
|
282
|
+
if (!realForm[extraFormKey]) {
|
|
283
|
+
realForm[extraFormKey] = {}
|
|
294
284
|
}
|
|
285
|
+
realForm[extraFormKey][realKey] = value
|
|
295
286
|
} else {
|
|
296
|
-
|
|
287
|
+
const realKey = this.getRealKey(key)
|
|
288
|
+
realForm[realKey] = value
|
|
297
289
|
}
|
|
298
290
|
}
|
|
299
|
-
//
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
291
|
+
// 交由父级处理
|
|
292
|
+
this.$emit('onSubmit', {
|
|
293
|
+
businessType: this.businessType,
|
|
294
|
+
serviceName: this.serviceName,
|
|
295
|
+
realForm: realForm,
|
|
296
|
+
currUserName: this.currUser.name
|
|
297
|
+
})
|
|
298
|
+
})
|
|
299
|
+
},
|
|
300
|
+
/**
|
|
301
|
+
* 获取通过logic静默新增的字段
|
|
302
|
+
* @param logicName logic名称
|
|
303
|
+
* @param requestParameters 请求参数
|
|
304
|
+
*/
|
|
305
|
+
async getSilenceSource (logicName, requestParameters) {
|
|
306
|
+
const result = await post('/api/' + this.serviceName + '/logic/' + logicName, requestParameters)
|
|
307
|
+
return result
|
|
308
|
+
},
|
|
309
|
+
// 获取表单字段实际值
|
|
310
|
+
getRealKey (key) {
|
|
311
|
+
if (this.isHandleFormKey) {
|
|
312
|
+
return key.substring(key.indexOf('_') + 1)
|
|
313
|
+
} else {
|
|
314
|
+
return key
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
/**
|
|
318
|
+
* 获取被修改记录数据
|
|
319
|
+
* @param modifyModelData 被修改记录的数据
|
|
320
|
+
*/
|
|
321
|
+
getModifyModelData (modifyModelData) {
|
|
322
|
+
if (modifyModelData.primaryKeyData) {
|
|
323
|
+
this.form = Object.assign(this.form, modifyModelData.primaryKeyData)
|
|
324
|
+
}
|
|
325
|
+
// 对动态简易表单项特殊处理
|
|
326
|
+
for (const key in modifyModelData.data) {
|
|
327
|
+
const realKey = this.getRealKey(key)
|
|
328
|
+
if (this.simpleFormJsonData[realKey]) {
|
|
329
|
+
const extraForm = JSON.parse(modifyModelData.data[key])
|
|
330
|
+
for (const key in extraForm) {
|
|
331
|
+
const model = realKey + '@' + key
|
|
332
|
+
this.form[model] = extraForm[key]
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
// 对普通表单项处理
|
|
337
|
+
for (let i = 0; i < this.realJsonData.length; i++) {
|
|
338
|
+
if (['FilesId', 'Images'].includes(this.realJsonData[i])) {
|
|
339
|
+
// 附件需要跳过 因为会通过 modifyModelData中的files,images属性给upload赋值
|
|
340
|
+
// 新增修改表单每次提交时只会提交最新添加的文件
|
|
341
|
+
continue
|
|
342
|
+
}
|
|
343
|
+
const item = this.realJsonData[i]
|
|
344
|
+
if (modifyModelData.data[item.model] || modifyModelData.data[item.model] === 0) {
|
|
345
|
+
if (modifyModelData.data[item.model] instanceof Array) {
|
|
346
|
+
this.form[item.model] = modifyModelData.data[item.model]
|
|
303
347
|
} else {
|
|
304
348
|
this.form[item.model] = modifyModelData.data[item.model] + ''
|
|
305
349
|
}
|
|
350
|
+
} else {
|
|
351
|
+
this.form[item.model] = undefined
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// 追加版本号信息
|
|
355
|
+
for (const item of this.versionJsonData) {
|
|
356
|
+
if (!modifyModelData.data[item.model]) {
|
|
357
|
+
this.form[item.model] = 0
|
|
358
|
+
} else {
|
|
359
|
+
this.form[item.model] = modifyModelData.data[item.model] + ''
|
|
306
360
|
}
|
|
307
361
|
}
|
|
308
362
|
}
|
|
309
363
|
}
|
|
364
|
+
}
|
|
310
365
|
</script>
|
|
@@ -284,9 +284,19 @@ export default {
|
|
|
284
284
|
this.$emit('afterQuery', result, requestParameters.conditionParams)
|
|
285
285
|
return result
|
|
286
286
|
},
|
|
287
|
+
/**
|
|
288
|
+
* 操作列事件
|
|
289
|
+
* @param record 本条数据
|
|
290
|
+
* @param actionType 操作类型
|
|
291
|
+
*/
|
|
287
292
|
action (record, actionType) {
|
|
288
293
|
this.$emit('action', record, record[this.getPrimaryKeyName()], actionType)
|
|
289
294
|
},
|
|
295
|
+
/**
|
|
296
|
+
* 选择列事件
|
|
297
|
+
* @param selectedRowKeys 被选择的列Key集合
|
|
298
|
+
* @param selectedRows 被选择的列集合
|
|
299
|
+
*/
|
|
290
300
|
onSelectChange (selectedRowKeys, selectedRows) {
|
|
291
301
|
this.selectedRowKeys = selectedRowKeys
|
|
292
302
|
this.selectedRows = selectedRows
|
|
@@ -314,12 +324,14 @@ export default {
|
|
|
314
324
|
refresh (bool) {
|
|
315
325
|
this.$refs.table.refresh(bool)
|
|
316
326
|
},
|
|
327
|
+
/**
|
|
328
|
+
* 格式化日期
|
|
329
|
+
* @param date 日期字符串
|
|
330
|
+
* @param format 格式化方式
|
|
331
|
+
*/
|
|
317
332
|
format (date, format) {
|
|
318
333
|
return formatDate(date, format)
|
|
319
334
|
},
|
|
320
|
-
showDrawer () {
|
|
321
|
-
this.visible = true
|
|
322
|
-
},
|
|
323
335
|
/**
|
|
324
336
|
* 获取主键列名称
|
|
325
337
|
*/
|
|
@@ -336,8 +348,7 @@ export default {
|
|
|
336
348
|
} else {
|
|
337
349
|
exportData = this.$refs.table.localDataSource
|
|
338
350
|
}
|
|
339
|
-
|
|
340
|
-
exportJson(tHeader, data, this.title + `数据_${new Date().toLocaleString()}`)
|
|
351
|
+
exportJson(tHeader, exportData.map(v => filterVal.map(j => v[j])), this.title + `数据_${new Date().toLocaleString()}`)
|
|
341
352
|
},
|
|
342
353
|
// 导出符合条件的数据
|
|
343
354
|
handleExportByQuery () {
|
|
@@ -365,7 +376,13 @@ export default {
|
|
|
365
376
|
// 编辑业务
|
|
366
377
|
edit (id) {
|
|
367
378
|
this.editLoading = true
|
|
368
|
-
|
|
379
|
+
this.getEditData(id).then(modifyModelData => {
|
|
380
|
+
this.$emit('edit', modifyModelData)
|
|
381
|
+
this.editLoading = false
|
|
382
|
+
})
|
|
383
|
+
},
|
|
384
|
+
// 获取被编辑的数据
|
|
385
|
+
getEditData (id) {
|
|
369
386
|
const requestParameters = {
|
|
370
387
|
queryParamsName: this.queryParamsName,
|
|
371
388
|
queryParams: this.queryParams,
|
|
@@ -385,13 +402,11 @@ export default {
|
|
|
385
402
|
this.$emit('tempTableEdit', requestParameters)
|
|
386
403
|
return
|
|
387
404
|
}
|
|
388
|
-
queryWithResource(requestParameters, this.serviceName).then(res => {
|
|
405
|
+
return queryWithResource(requestParameters, this.serviceName).then(res => {
|
|
389
406
|
// 将更新需要的主键值加入到primaryKeyData中
|
|
390
407
|
const primaryKeyData = {}
|
|
391
408
|
primaryKeyData[primaryKeyName] = this.selectId
|
|
392
|
-
|
|
393
|
-
this.$emit('edit', modifyModelData)
|
|
394
|
-
this.editLoading = false
|
|
409
|
+
return { data: res.data[0], primaryKeyData: primaryKeyData, images: res.images, files: res.files }
|
|
395
410
|
})
|
|
396
411
|
},
|
|
397
412
|
// 删除业务
|
|
@@ -429,9 +444,6 @@ export default {
|
|
|
429
444
|
importData () {
|
|
430
445
|
this.$refs.importExcel.importExcelHandleOpen()
|
|
431
446
|
},
|
|
432
|
-
formatJson (filterVal, jsonData) {
|
|
433
|
-
return jsonData.map(v => filterVal.map(j => v[j]))
|
|
434
|
-
},
|
|
435
447
|
// 初始化临时表
|
|
436
448
|
async initTempTable (json) {
|
|
437
449
|
await this.createTempTable(this.queryParamsJson)
|