vue2-client 1.6.39 → 1.6.41
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 +6 -0
- package/package.json +3 -3
- package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +279 -278
- package/src/base-client/components/common/XForm/XFormItem.vue +4 -6
- package/src/base-client/components/common/XImportExcel/XImportExcel.vue +132 -131
- package/src/config/CreateQueryConfig.js +307 -307
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue2-client",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.41",
|
|
4
4
|
"private": false,
|
|
5
5
|
"scripts": {
|
|
6
|
-
"serve": "vue-cli-service serve",
|
|
7
|
-
"build": "vue-cli-service build",
|
|
6
|
+
"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
|
|
7
|
+
"build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
|
|
8
8
|
"test:unit": "vue-cli-service test:unit",
|
|
9
9
|
"lint": "vue-cli-service lint",
|
|
10
10
|
"build:preview": "vue-cli-service build --mode preview",
|
|
@@ -1,278 +1,279 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="table-page-search-wrapper">
|
|
3
|
-
<a-form-model
|
|
4
|
-
v-if="loaded"
|
|
5
|
-
ref="selectForm"
|
|
6
|
-
:
|
|
7
|
-
:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
:
|
|
13
|
-
:
|
|
14
|
-
:
|
|
15
|
-
:
|
|
16
|
-
:
|
|
17
|
-
:
|
|
18
|
-
:
|
|
19
|
-
:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
</
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
import
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
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
|
-
let
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
case '
|
|
151
|
-
case '
|
|
152
|
-
|
|
153
|
-
let
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
this.
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
*
|
|
236
|
-
* @param
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
*
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
//
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
1
|
+
<template>
|
|
2
|
+
<div class="table-page-search-wrapper">
|
|
3
|
+
<a-form-model
|
|
4
|
+
v-if="loaded"
|
|
5
|
+
ref="selectForm"
|
|
6
|
+
:zIndex="1001"
|
|
7
|
+
:model="form"
|
|
8
|
+
:rules="rules">
|
|
9
|
+
<a-row :gutter="16">
|
|
10
|
+
<x-form-item
|
|
11
|
+
v-for="(item, index) in realJsonData"
|
|
12
|
+
:key="index"
|
|
13
|
+
:attr="item"
|
|
14
|
+
:disabled="itemDisabled(item)"
|
|
15
|
+
:files="files"
|
|
16
|
+
:form="form"
|
|
17
|
+
:images="images"
|
|
18
|
+
:service-name="serviceName"
|
|
19
|
+
:xl="12"
|
|
20
|
+
:xxl="8"
|
|
21
|
+
mode="新增/修改"
|
|
22
|
+
/>
|
|
23
|
+
</a-row>
|
|
24
|
+
</a-form-model>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
<script>
|
|
28
|
+
import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem'
|
|
29
|
+
import { formatDate } from '@vue2-client/utils/util'
|
|
30
|
+
import { mapState } from 'vuex'
|
|
31
|
+
import { post } from '@vue2-client/services/api'
|
|
32
|
+
|
|
33
|
+
export default {
|
|
34
|
+
name: 'XAddNativeForm',
|
|
35
|
+
components: {
|
|
36
|
+
XFormItem
|
|
37
|
+
},
|
|
38
|
+
data () {
|
|
39
|
+
return {
|
|
40
|
+
// 内容加载是否完成
|
|
41
|
+
loaded: false,
|
|
42
|
+
// 表单Model
|
|
43
|
+
form: {},
|
|
44
|
+
// 修改有文件得表单时使用
|
|
45
|
+
files: [],
|
|
46
|
+
images: [],
|
|
47
|
+
// 校验
|
|
48
|
+
rules: {}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
computed: {
|
|
52
|
+
// 过滤出用于新增/修改场景的表单项
|
|
53
|
+
realJsonData: function () {
|
|
54
|
+
return this.jsonData.filter(function (item) {
|
|
55
|
+
return item.addOrEdit && item.addOrEdit !== 'no' && item.addOrEdit !== 'silenceAdd' && item.addOrEdit !== 'version'
|
|
56
|
+
})
|
|
57
|
+
},
|
|
58
|
+
// 过滤出用于静默新增场景的表单项
|
|
59
|
+
silenceAddJsonData: function () {
|
|
60
|
+
return this.jsonData.filter(function (item) {
|
|
61
|
+
return item.addOrEdit === 'silenceAdd'
|
|
62
|
+
})
|
|
63
|
+
},
|
|
64
|
+
// 过滤出版本号表单项
|
|
65
|
+
versionJsonData: function () {
|
|
66
|
+
return this.jsonData.filter(function (item) {
|
|
67
|
+
return item.addOrEdit === 'version'
|
|
68
|
+
})
|
|
69
|
+
},
|
|
70
|
+
...mapState('account', { currUser: 'user' })
|
|
71
|
+
},
|
|
72
|
+
props: {
|
|
73
|
+
jsonData: {
|
|
74
|
+
type: Array,
|
|
75
|
+
default: () => {
|
|
76
|
+
return []
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
serviceName: {
|
|
80
|
+
type: String,
|
|
81
|
+
default: 'af-system'
|
|
82
|
+
},
|
|
83
|
+
// 业务类型
|
|
84
|
+
businessType: {
|
|
85
|
+
type: String,
|
|
86
|
+
default: ''
|
|
87
|
+
},
|
|
88
|
+
// 修改操作前查询出的业务数据
|
|
89
|
+
modifyModelData: {
|
|
90
|
+
type: Object,
|
|
91
|
+
default: () => {
|
|
92
|
+
return {}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
// 新增或修改业务是否执行中
|
|
96
|
+
loading: {
|
|
97
|
+
type: Boolean,
|
|
98
|
+
default: () => {
|
|
99
|
+
return false
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
// 固定新增表单
|
|
103
|
+
fixedAddForm: {
|
|
104
|
+
type: Object,
|
|
105
|
+
default: () => {
|
|
106
|
+
return {}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
watch: {
|
|
111
|
+
visible (rel) {
|
|
112
|
+
if (rel) {
|
|
113
|
+
this.formItemLoad()
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
mounted () {
|
|
118
|
+
this.formItemLoad()
|
|
119
|
+
},
|
|
120
|
+
methods: {
|
|
121
|
+
formItemLoad () {
|
|
122
|
+
const formData = Object.assign({}, this.fixedAddForm)
|
|
123
|
+
for (let i = 0; i < this.realJsonData.length; i++) {
|
|
124
|
+
const item = this.realJsonData[i]
|
|
125
|
+
formData[item.model] = undefined
|
|
126
|
+
// 处理表单校验情况
|
|
127
|
+
if (item.rule) {
|
|
128
|
+
this.rules[item.model] = []
|
|
129
|
+
const required = item.rule.required ? item.rule.required === true || item.rule.required === 'true' : false
|
|
130
|
+
let trigger
|
|
131
|
+
let message
|
|
132
|
+
if (required) {
|
|
133
|
+
switch (item.type) {
|
|
134
|
+
case 'select':
|
|
135
|
+
message = '请选择' + item.name
|
|
136
|
+
trigger = 'change'
|
|
137
|
+
break
|
|
138
|
+
default:
|
|
139
|
+
message = '请输入' + item.name
|
|
140
|
+
trigger = 'blur'
|
|
141
|
+
}
|
|
142
|
+
this.rules[item.model].push({
|
|
143
|
+
required: true,
|
|
144
|
+
message: message,
|
|
145
|
+
trigger: trigger
|
|
146
|
+
})
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
switch (item.rule.type) {
|
|
150
|
+
case 'number':
|
|
151
|
+
case 'integer':
|
|
152
|
+
case 'float':
|
|
153
|
+
let defaultValue
|
|
154
|
+
let message
|
|
155
|
+
switch (item.rule.type) {
|
|
156
|
+
case 'number':
|
|
157
|
+
message = '数字'
|
|
158
|
+
defaultValue = 0
|
|
159
|
+
break
|
|
160
|
+
case 'integer':
|
|
161
|
+
message = '整数'
|
|
162
|
+
defaultValue = 0
|
|
163
|
+
break
|
|
164
|
+
case 'float':
|
|
165
|
+
message = '小数'
|
|
166
|
+
defaultValue = 0.0
|
|
167
|
+
break
|
|
168
|
+
}
|
|
169
|
+
this.rules[item.model].push({
|
|
170
|
+
type: item.rule.type,
|
|
171
|
+
message: item.name + '必须为' + message,
|
|
172
|
+
transform: (value) => {
|
|
173
|
+
if (value && value.length !== 0) {
|
|
174
|
+
return Number(value)
|
|
175
|
+
} else {
|
|
176
|
+
return defaultValue
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
trigger: 'blur'
|
|
180
|
+
})
|
|
181
|
+
break
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
this.form = formData
|
|
186
|
+
if (this.modifyModelData.data) {
|
|
187
|
+
this.files = this.modifyModelData.files
|
|
188
|
+
this.images = this.modifyModelData.images
|
|
189
|
+
if (Object.keys(this.modifyModelData.data).length > 0) {
|
|
190
|
+
this.getModifyModelData()
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
this.loaded = true
|
|
194
|
+
},
|
|
195
|
+
itemDisabled (value) {
|
|
196
|
+
return (this.businessType === '新增' && value.addOrEdit === 'edit') ||
|
|
197
|
+
(this.businessType === '修改' && value.addOrEdit === 'add')
|
|
198
|
+
},
|
|
199
|
+
async onSubmit () {
|
|
200
|
+
this.$refs.selectForm.validate(async valid => {
|
|
201
|
+
for (const key of Object.keys(this.form)) {
|
|
202
|
+
if (this.form[key] === null || this.form[key] === '') {
|
|
203
|
+
this.form[key] = undefined
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const requestForm = Object.assign({}, this.form)
|
|
207
|
+
// 追加静默新增字段
|
|
208
|
+
if (this.businessType === '新增') {
|
|
209
|
+
for (const item of this.silenceAddJsonData) {
|
|
210
|
+
switch (item.silencePurpose) {
|
|
211
|
+
case 'createTime':
|
|
212
|
+
requestForm[item.model] = formatDate('now')
|
|
213
|
+
break
|
|
214
|
+
case 'operator':
|
|
215
|
+
requestForm[item.model] = this.currUser.name
|
|
216
|
+
break
|
|
217
|
+
case 'orgId':
|
|
218
|
+
requestForm[item.model] = this.currUser.orgid
|
|
219
|
+
break
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// 通过请求追加静默新增:自定义字段
|
|
223
|
+
for (const item of this.silenceAddJsonData.filter((item) => item.silencePurpose === 'customize')) {
|
|
224
|
+
requestForm[item.model] = await this.getSilenceSource(item.silenceSource, requestForm)
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
const data = {
|
|
228
|
+
valid: valid,
|
|
229
|
+
form: requestForm
|
|
230
|
+
}
|
|
231
|
+
this.$emit('onSubmit', data)
|
|
232
|
+
})
|
|
233
|
+
},
|
|
234
|
+
/**
|
|
235
|
+
* 获取通过logic静默新增的字段
|
|
236
|
+
* @param logicName logic名称
|
|
237
|
+
* @param requestParameters 请求参数
|
|
238
|
+
*/
|
|
239
|
+
async getSilenceSource (logicName, requestParameters) {
|
|
240
|
+
const result = await post('/api/' + this.serviceName + '/logic/' + logicName, requestParameters)
|
|
241
|
+
return result
|
|
242
|
+
},
|
|
243
|
+
/**
|
|
244
|
+
* 获取被修改记录数据
|
|
245
|
+
* @param modifyModelData 被修改记录的数据
|
|
246
|
+
*/
|
|
247
|
+
getModifyModelData () {
|
|
248
|
+
for (let i = 0; i < this.realJsonData.length; i++) {
|
|
249
|
+
if (['FilesId', 'Images'].includes(this.realJsonData[i])) {
|
|
250
|
+
// 附件需要跳过 因为会通过 modifyModelData中的files,images属性给upload赋值
|
|
251
|
+
// 新增修改表单每次提交时只会提交最新添加的文件
|
|
252
|
+
continue
|
|
253
|
+
}
|
|
254
|
+
const item = this.realJsonData[i]
|
|
255
|
+
if (this.modifyModelData.data[item.model] || this.modifyModelData.data[item.model] === 0) {
|
|
256
|
+
if (this.modifyModelData.data[item.model] instanceof Array) {
|
|
257
|
+
this.form[item.model] = this.modifyModelData.data[item.model]
|
|
258
|
+
} else {
|
|
259
|
+
this.form[item.model] = this.modifyModelData.data[item.model] + ''
|
|
260
|
+
}
|
|
261
|
+
} else {
|
|
262
|
+
this.form[item.model] = undefined
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// 追加版本号信息
|
|
266
|
+
for (const item of this.versionJsonData) {
|
|
267
|
+
if (!this.modifyModelData.data[item.model]) {
|
|
268
|
+
this.form[item.model] = 0
|
|
269
|
+
} else {
|
|
270
|
+
this.form[item.model] = this.modifyModelData.data[item.model] + ''
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
onClose () {
|
|
275
|
+
this.$emit('update:visible', false)
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
</script>
|
|
@@ -182,7 +182,7 @@
|
|
|
182
182
|
format="YYYY"
|
|
183
183
|
mode="year"
|
|
184
184
|
v-decorator="['year']"
|
|
185
|
-
placeholder="
|
|
185
|
+
placeholder="请选择年份"
|
|
186
186
|
:open="yearShowOne"
|
|
187
187
|
@openChange="openChangeOne"
|
|
188
188
|
@panelChange="panelChangeOne"/>
|
|
@@ -194,14 +194,12 @@
|
|
|
194
194
|
:xl="xl"
|
|
195
195
|
:xxl="xxl">
|
|
196
196
|
<a-form-model-item :ref="attr.model" :label="attr.name" :prop="attr.model">
|
|
197
|
-
<a-
|
|
198
|
-
v-if="mode === '查询'"
|
|
197
|
+
<a-date-picker
|
|
199
198
|
v-model="form[attr.model]"
|
|
200
199
|
:disabled="disabled"
|
|
201
|
-
:show-time="{ defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] }"
|
|
202
200
|
format="YYYY-MM-DD"
|
|
203
|
-
|
|
204
|
-
|
|
201
|
+
:show-time="false"
|
|
202
|
+
valueFormat="YYYY-MM-DD"/>
|
|
205
203
|
</a-form-model-item>
|
|
206
204
|
</x-form-col>
|
|
207
205
|
<!-- 文本域 -->
|