vue2-client 1.2.32-test1 → 1.2.34

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
@@ -1,65 +1,75 @@
1
- # Change Log
2
- > 所有关于本项目的变化都在该文档里。
3
-
4
- **##1.2.32 -2022-04-07 @朱子峰**
5
- - 功能修改:
6
- - [XFormTable]:新增判断,如果表名以##开始,则在查询时为其创建临时表
7
-
8
- **##1.2.30 -1.2.31 -2022-04-02 @张振宇**
9
- - 功能修改:
10
- - 查询配置页面bug修改
11
- - 表单配置页面bug修改
12
-
13
- **##1.2.28 -2022-03-29 @朱子峰**
14
- - 功能修改:
15
- - [Cookie]:去除自定义Cookie
16
-
17
- **##1.2.27 -2022-03-29 @朱子峰**
18
- - 功能新增:
19
- - [XAddNativeForm]:将XAddForm从模态框中抽取,用于页面直接展示Form
20
-
21
- **##1.2.25 -2022-03-26 @江超**
22
- - 功能修改:
23
- - [查询配置生成]:表单[新增/修改场景]增加[version(版本号)]类型
24
- - [api.js]:移除[跨域代理前缀]
25
- - 问题修复:
26
- - [查询配置生成]:修复修改已有查询配置时,部分数据显示状态不一致的问题
27
- - [设备详情页]:修复设备抄表记录,异常记录查询报错的问题
28
- - [XFormItem]:修复非懒加载搜索的下拉框显示问题
29
-
30
- **##1.2.20 - 1.2.24 -2022-03-25 @朱子峰**
31
- - 功能修改:
32
- - [工单关闭/开始处理]:工单关闭和开始处理时,不由id来进行判断,改由姓名进行判断是否为同一个人
33
-
34
- **##1.2.17 - 1.2.19 -2022-03-25 @朱子峰**
35
- - 问题修复:
36
- - [钉钉消息推送]:将类别字段从int修改为String,直接传字典中的值
37
- - 功能修改:
38
- - [问题描述]:如果用户没有填写描述,新增默认值:“该用户没有填写描述信息”
39
- - [问题描述]:展示问题描述时,按时间倒序展示,最新的信息显示在最上面
40
-
41
- **##1.2.16 -2022-03-25 @张振宇**
42
- - 功能修改:
43
- - [查询配置生成]:逻辑修改,取消选择组和顺序,用户新增数组字段时需要选择是否为根节点,根节点index为1,不是根节点得数据字段index默认为父节点index+1
44
-
45
- **##1.2.9 - 1.2.15 -2022-03-24 @江超**
46
- - 功能新增:
47
- - [查询配置生成]:下拉框表单选择业务逻辑作为数据源时,可以选择数据源加载方式
48
- - [XFormItem]:当数据源加载方式为懒加载搜索时,将渲染一个可以根据关键词实时查询的选择框
49
- - 问题修复:
50
- - [查询配置生成]:修复修改已有查询配置时,显示状态不一致的问题
51
- - [指令详情页]:修复操作记录查询报错的问题
52
-
53
- **##1.2.8 -2022-03-24 @江超**
54
- - 问题修复:
55
- - [登录页面]:修复登录后欢迎提示出现undefined的问题
56
- - [查询配置生成]:修复修改表单查询方式下拉框报错的问题
57
-
58
- **##1.2.7 -2022-03-24 @江超**
59
- - 功能新增:
60
- - [系统设置]:新增 [工单提交] 功能(submitTicket),用户在操作业务时如发现系统异常,可使用该功能反馈问题
61
- - [登录页面]:登陆人部门为 [用户工单登记] 时会直接跳转到[工单提交]页面(在基于新架构的营收全面使用时,会取消该限制,并将[工单提交]作为常驻功能)
62
-
63
- **##1.0.0 - 1.2.6 -2022-03-23 @陈栋扬**
64
- - 初始化:
65
- - 公共组件和配置抽取完成
1
+ # Change Log
2
+ > 所有关于本项目的变化都在该文档里。
3
+
4
+ **##1.2.34 -2022-04-11 @张振宇**
5
+ - 功能修改:
6
+ - 文件上传组件完善
7
+ - [request.js] post请求可以自定义请求头参数了
8
+ - [.eslint] 不限制json结尾的逗号了
9
+
10
+ **##1.2.33 -2022-04-11 @朱子峰**
11
+ - 功能修改:
12
+ - [XFormTable]:临时表数据插入BUG修复,增加不需要数据初始化的判断
13
+
14
+ **##1.2.32 -2022-04-07 @朱子峰**
15
+ - 功能修改:
16
+ - [XFormTable]:新增判断,如果表名以##开始,则在查询时为其创建临时表
17
+
18
+ **##1.2.30 -1.2.31 -2022-04-02 @张振宇**
19
+ - 功能修改:
20
+ - 查询配置页面bug修改
21
+ - 表单配置页面bug修改
22
+
23
+ **##1.2.28 -2022-03-29 @朱子峰**
24
+ - 功能修改:
25
+ - [Cookie]:去除自定义Cookie
26
+
27
+ **##1.2.27 -2022-03-29 @朱子峰**
28
+ - 功能新增:
29
+ - [XAddNativeForm]:将XAddForm从模态框中抽取,用于页面直接展示Form
30
+
31
+ **##1.2.25 -2022-03-26 @江超**
32
+ - 功能修改:
33
+ - [查询配置生成]:表单[新增/修改场景]增加[version(版本号)]类型
34
+ - [api.js]:移除[跨域代理前缀]
35
+ - 问题修复:
36
+ - [查询配置生成]:修复修改已有查询配置时,部分数据显示状态不一致的问题
37
+ - [设备详情页]:修复设备抄表记录,异常记录查询报错的问题
38
+ - [XFormItem]:修复非懒加载搜索的下拉框显示问题
39
+
40
+ **##1.2.20 - 1.2.24 -2022-03-25 @朱子峰**
41
+ - 功能修改:
42
+ - [工单关闭/开始处理]:工单关闭和开始处理时,不由id来进行判断,改由姓名进行判断是否为同一个人
43
+
44
+ **##1.2.17 - 1.2.19 -2022-03-25 @朱子峰**
45
+ - 问题修复:
46
+ - [钉钉消息推送]:将类别字段从int修改为String,直接传字典中的值
47
+ - 功能修改:
48
+ - [问题描述]:如果用户没有填写描述,新增默认值:“该用户没有填写描述信息”
49
+ - [问题描述]:展示问题描述时,按时间倒序展示,最新的信息显示在最上面
50
+
51
+ **##1.2.16 -2022-03-25 @张振宇**
52
+ - 功能修改:
53
+ - [查询配置生成]:逻辑修改,取消选择组和顺序,用户新增数组字段时需要选择是否为根节点,根节点index为1,不是根节点得数据字段index默认为父节点index+1
54
+
55
+ **##1.2.9 - 1.2.15 -2022-03-24 @江超**
56
+ - 功能新增:
57
+ - [查询配置生成]:下拉框表单选择业务逻辑作为数据源时,可以选择数据源加载方式
58
+ - [XFormItem]:当数据源加载方式为懒加载搜索时,将渲染一个可以根据关键词实时查询的选择框
59
+ - 问题修复:
60
+ - [查询配置生成]:修复修改已有查询配置时,显示状态不一致的问题
61
+ - [指令详情页]:修复操作记录查询报错的问题
62
+
63
+ **##1.2.8 -2022-03-24 @江超**
64
+ - 问题修复:
65
+ - [登录页面]:修复登录后欢迎提示出现undefined的问题
66
+ - [查询配置生成]:修复修改表单查询方式下拉框报错的问题
67
+
68
+ **##1.2.7 -2022-03-24 @江超**
69
+ - 功能新增:
70
+ - [系统设置]:新增 [工单提交] 功能(submitTicket),用户在操作业务时如发现系统异常,可使用该功能反馈问题
71
+ - [登录页面]:登陆人部门为 [用户工单登记] 时会直接跳转到[工单提交]页面(在基于新架构的营收全面使用时,会取消该限制,并将[工单提交]作为常驻功能)
72
+
73
+ **##1.0.0 - 1.2.6 -2022-03-23 @陈栋扬**
74
+ - 初始化:
75
+ - 公共组件和配置抽取完成
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.2.32-test1",
3
+ "version": "1.2.34",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -213,6 +213,7 @@
213
213
  </a-col>
214
214
  <a-col :span="8">
215
215
  <a-form-model-item
216
+ v-if="!(item.formType === 'file' || item.formType === 'image')"
216
217
  label="数据字段名"
217
218
  prop="key">
218
219
  <a-input v-model="item.key" placeholder="请输入数据字段名" ref="key">
@@ -1300,6 +1301,7 @@ export default {
1300
1301
  if (item.formType === 'file' || item.formType === 'image') {
1301
1302
  this.item.accept = item.formType === 'file' ? ['*'] : ['.jpg,.jpeg,.ico,.gif,svg,.webp,.png,.bmp,.pjpeg,']
1302
1303
  this.item.resUploadMode = 'server'
1304
+ this.item.key = 'FilesId'
1303
1305
  this.dataModeArrayData = ['addOrEditForm']
1304
1306
  this.getStocks()
1305
1307
  } else {
@@ -33,7 +33,7 @@
33
33
 
34
34
  <script>
35
35
 
36
- import { post } from '@/services/api'
36
+ import { post } from '@vue2-client/services/api'
37
37
  import { mapState } from 'vuex'
38
38
 
39
39
  export default {
@@ -101,6 +101,10 @@ export default {
101
101
  fileInfo.response = res.data
102
102
  this.$message.error('上传失败!')
103
103
  }
104
+ }).catch((e) => {
105
+ fileInfo.status = 'error'
106
+ fileInfo.response = e
107
+ this.$message.error(`请求失败!${e}`)
104
108
  })
105
109
  },
106
110
  // 删除文件
@@ -1,337 +1,338 @@
1
- <template>
2
- <a-modal
3
- :title="businessTitle"
4
- :visible="visible"
5
- :width="1000"
6
- @cancel="onClose"
7
- okText="提交"
8
- :confirm-loading="loading"
9
- :zIndex="1001"
10
- @ok="onSubmit">
11
- <div class="table-page-search-wrapper">
12
- <a-form-model
13
- v-if="loaded"
14
- ref="selectForm"
15
- :model="form"
16
- :rules="rules">
17
- <a-row :gutter="16">
18
- <x-form-item
19
- v-for="(item, index) in realJsonData"
20
- mode="新增/修改"
21
- :attr="item"
22
- :form="form"
23
- :key="index"
24
- :disabled="itemDisabled(item)"
25
- :xl="12"
26
- :xxl="8"
27
- />
28
- <div v-for="group in realJsonSelectsData" :key="group[0].group">
29
- <x-form-col v-for="groupItem in group" :key="groupItem.group + groupItem.groupIndex" :xl="12" :xxl="8">
30
- <a-form-model-item :label="groupItem.name" :disabled="itemDisabled(groupItem)">
31
- <a-select v-model="form[groupItem.model]" :disabled="itemDisabledPlus(groupItem.group,groupItem.groupIndex)" :allowClear="true" @change="selectsItemCheck(groupItem.group,groupItem.groupIndex,form[groupItem.model],group)" placeholder="请选择">
32
- <template v-for="option in SelectsArray[groupItem.group][groupItem.groupIndex]">
33
- <a-select-option :key="option.label" :value="option.value">
34
- {{ option.label }}
35
- </a-select-option>
36
- </template>
37
- </a-select>
38
- </a-form-model-item>
39
- </x-form-col>
40
- </div>
41
- </a-row>
42
- </a-form-model>
43
- </div>
44
- </a-modal>
45
- </template>
46
- <script>
47
- import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem'
48
- import { formatDate } from '@vue2-client/utils/util'
49
- import { mapState } from 'vuex'
50
- import { post } from '@vue2-client/services/api'
51
-
52
- export default {
53
- name: 'XAddForm',
54
- components: {
55
- XFormItem
56
- },
57
- data () {
58
- return {
59
- // 内容加载是否完成
60
- loaded: false,
61
- // 表单Model
62
- form: undefined,
63
- // 多层下拉框组 数据储存
64
- SelectsArray: {},
65
- // 多层下拉框组 各组数量
66
- SelectsNumber: {},
67
- // 校验
68
- rules: {},
69
- // 图标样式
70
- iconStyle: {
71
- position: 'relative',
72
- top: '1px'
73
- }
74
- }
75
- },
76
- computed: {
77
- // 过滤出用于新增/修改场景的表单项
78
- realJsonData: function () {
79
- return this.jsonData.filter(function (item) {
80
- return item.addOrEdit && item.addOrEdit !== 'no' && item.addOrEdit !== 'silenceAdd' && !item.group
81
- })
82
- },
83
- // 过滤出多个下拉框分组级联得数据
84
- realJsonSelectsData: function () {
85
- const Selectsata = this.jsonData.filter(item => !item.isOnlyAddOrEdit && item.group)
86
- const groupName = [...new Set(Selectsata.map(item => item.group))]
87
- // 初始化数据组
88
- groupName.forEach(item => {
89
- this.SelectsArray[item] = []
90
- })
91
- return groupName.map(groupName => {
92
- const SelectsItem = Selectsata.filter(item => {
93
- if (item.groupIndex === 1) {
94
- if (item.keyName.substring(0, 6) === 'logic@') {
95
- // 请求logic
96
- post('/webmeterapi/' + item.keyName.substring(6), {}).then(res => {
97
- this.SelectsArray[item.group][item.groupIndex] = res
98
- })
99
- } else {
100
- this.SelectsArray[item.group][item.groupIndex] = JSON.parse(item.keyName)
101
- }
102
- }
103
- return item.group === groupName
104
- }
105
- )
106
- this.SelectsNumber[groupName] = SelectsItem.length ? SelectsItem.length : 0
107
- return SelectsItem
108
- })
109
- },
110
- // 过滤出用于静默新增场景的表单项
111
- silenceAddJsonData: function () {
112
- return this.jsonData.filter(function (item) {
113
- return item.addOrEdit === 'silenceAdd'
114
- })
115
- },
116
- // 过滤出版本号表单项
117
- versionJsonData: function () {
118
- return this.jsonData.filter(function (item) {
119
- return item.addOrEdit === 'version'
120
- })
121
- },
122
- ...mapState('account', { currUser: 'user' })
123
- },
124
- props: {
125
- jsonData: {
126
- type: Array,
127
- default: () => {
128
- return []
129
- }
130
- },
131
- // 是否显示模态框
132
- visible: {
133
- type: Boolean,
134
- default: () => {
135
- return false
136
- }
137
- },
138
- // 业务类型
139
- businessType: {
140
- type: String,
141
- default: ''
142
- },
143
- // 业务标题
144
- businessTitle: {
145
- type: String,
146
- default: ''
147
- },
148
- // 修改操作前查询出的业务数据
149
- modifyModelData: {
150
- type: Object,
151
- default: () => {
152
- return {}
153
- }
154
- },
155
- // 新增或修改业务是否执行中
156
- loading: {
157
- type: Boolean,
158
- default: () => {
159
- return false
160
- }
161
- },
162
- // 固定新增表单
163
- fixedAddForm: {
164
- type: Object,
165
- default: () => {
166
- return {}
167
- }
168
- }
169
- },
170
- watch: {
171
- visible (rel) {
172
- if (rel) {
173
- this.formItemLoad()
174
- }
175
- }
176
- },
177
- mounted () {
178
- this.formItemLoad()
179
- },
180
- methods: {
181
- selectsItemCheck (groupName, index, value, group) {
182
- const tem = { }
183
- // 获取当前下拉框子下拉框的数据
184
- this.SelectsArray[groupName][index + 1] = this.SelectsArray[groupName][index].filter(item => item.value === value)[0].children
185
- // 清空子下拉框的子们的数据
186
- for (let i = index; i < this.SelectsNumber[groupName]; i++) {
187
- tem[group[i].model] = undefined
188
- }
189
- this.form = Object.assign({}, this.form, tem)
190
- // 清空子下拉框的子们的数据源
191
- for (let i = index + 2; i <= this.SelectsNumber[groupName]; i++) {
192
- this.SelectsArray[groupName][i] = []
193
- }
194
- },
195
- formItemLoad () {
196
- const formData = Object.assign({}, this.fixedAddForm)
197
- for (let i = 0; i < this.realJsonData.length; i++) {
198
- const item = this.realJsonData[i]
199
- formData[item.model] = undefined
200
- // 处理表单校验情况
201
- if (item.rule) {
202
- this.rules[item.model] = []
203
- const required = item.rule.required ? item.rule.required === true || item.rule.required === 'true' : false
204
- let trigger
205
- let message
206
- if (required) {
207
- switch (item.type) {
208
- case 'select':
209
- message = '请选择' + item.name
210
- trigger = 'change'
211
- break
212
- default:
213
- message = '请输入' + item.name
214
- trigger = 'blur'
215
- }
216
- this.rules[item.model].push({
217
- required: true,
218
- message: message,
219
- trigger: trigger
220
- })
221
- }
222
-
223
- switch (item.rule.type) {
224
- case 'number':
225
- case 'integer':
226
- case 'float':
227
- let defaultValue
228
- let message
229
- switch (item.rule.type) {
230
- case 'number':
231
- message = '数字'
232
- defaultValue = 0
233
- break
234
- case 'integer':
235
- message = '整数'
236
- defaultValue = 0
237
- break
238
- case 'float':
239
- message = '小数'
240
- defaultValue = 0.0
241
- break
242
- }
243
- this.rules[item.model].push({
244
- type: item.rule.type,
245
- message: item.name + '必须为' + message,
246
- transform: (value) => {
247
- if (value && value.length !== 0) {
248
- return Number(value)
249
- } else {
250
- return defaultValue
251
- }
252
- },
253
- trigger: 'blur'
254
- })
255
- break
256
- }
257
- }
258
- }
259
- this.form = formData
260
- if (Object.keys(this.modifyModelData).length > 0) {
261
- this.getModifyModelData()
262
- }
263
- this.loaded = true
264
- },
265
- itemDisabled (value) {
266
- return (this.businessType === '新增' && value.addOrEdit === 'edit') ||
267
- (this.businessType === '修改' && value.addOrEdit === 'add')
268
- },
269
- itemDisabledPlus (group, index) {
270
- return (!this.SelectsArray[group][index]) || (this.SelectsArray[group][index] && this.SelectsArray[group][index].length === 0)
271
- },
272
- resetForm () {
273
- this.$refs.selectForm.resetFields()
274
- },
275
- async onSubmit () {
276
- this.$refs.selectForm.validate(async valid => {
277
- for (const key of Object.keys(this.form)) {
278
- if (this.form[key] === null || this.form[key] === '') {
279
- this.form[key] = undefined
280
- }
281
- }
282
- const requestParameters = Object.assign({}, this.form)
283
- // 追加静默新增字段
284
- if (this.businessType === '新增') {
285
- for (const item of this.silenceAddJsonData) {
286
- switch (item.silencePurpose) {
287
- case 'createTime':
288
- requestParameters[item.model] = formatDate('now')
289
- break
290
- case 'operator':
291
- requestParameters[item.model] = this.currUser.name
292
- break
293
- case 'orgId':
294
- requestParameters[item.model] = this.currUser.orgid
295
- break
296
- }
297
- }
298
- // 通过请求追加静默新增:自定义字段
299
- for (const item of this.silenceAddJsonData.filter((item) => item.silencePurpose === 'customize')) {
300
- requestParameters[item.model] = await this.getSilenceSource(item.silenceSource, requestParameters)
301
- }
302
- }
303
- const data = {
304
- valid: valid,
305
- form: requestParameters
306
- }
307
- this.$emit('onSubmit', data)
308
- })
309
- },
310
- async getSilenceSource (silenceSource, requestParameters) {
311
- const result = await post('/webmeterapi/' + silenceSource, requestParameters)
312
- return result
313
- },
314
- getModifyModelData () {
315
- for (let i = 0; i < this.realJsonData.length; i++) {
316
- const item = this.realJsonData[i]
317
- if (this.modifyModelData[item.model] || this.modifyModelData[item.model] === 0) {
318
- this.form[item.model] = this.modifyModelData[item.model] + ''
319
- } else {
320
- this.form[item.model] = undefined
321
- }
322
- }
323
- // 追加版本号信息
324
- for (const item of this.versionJsonData) {
325
- if (!this.modifyModelData[item.model]) {
326
- this.form[item.model] = 0
327
- } else {
328
- this.form[item.model] = this.modifyModelData[item.model] + ''
329
- }
330
- }
331
- },
332
- onClose () {
333
- this.$emit('update:visible', false)
334
- }
335
- }
336
- }
337
- </script>
1
+ <template>
2
+ <a-modal
3
+ :title="businessTitle"
4
+ :visible="visible"
5
+ :width="1000"
6
+ @cancel="onClose"
7
+ okText="提交"
8
+ :destroyOnClose="true"
9
+ :confirm-loading="loading"
10
+ :zIndex="1001"
11
+ @ok="onSubmit">
12
+ <div class="table-page-search-wrapper">
13
+ <a-form-model
14
+ v-if="loaded"
15
+ ref="selectForm"
16
+ :model="form"
17
+ :rules="rules">
18
+ <a-row :gutter="16">
19
+ <x-form-item
20
+ v-for="(item, index) in realJsonData"
21
+ mode="新增/修改"
22
+ :attr="item"
23
+ :form="form"
24
+ :key="index"
25
+ :disabled="itemDisabled(item)"
26
+ :xl="12"
27
+ :xxl="8"
28
+ />
29
+ <div v-for="group in realJsonSelectsData" :key="group[0].group">
30
+ <x-form-col v-for="groupItem in group" :key="groupItem.group + groupItem.groupIndex" :xl="12" :xxl="8">
31
+ <a-form-model-item :label="groupItem.name" :disabled="itemDisabled(groupItem)">
32
+ <a-select v-model="form[groupItem.model]" :disabled="itemDisabledPlus(groupItem.group,groupItem.groupIndex)" :allowClear="true" @change="selectsItemCheck(groupItem.group,groupItem.groupIndex,form[groupItem.model],group)" placeholder="请选择">
33
+ <template v-for="option in SelectsArray[groupItem.group][groupItem.groupIndex]">
34
+ <a-select-option :key="option.label" :value="option.value">
35
+ {{ option.label }}
36
+ </a-select-option>
37
+ </template>
38
+ </a-select>
39
+ </a-form-model-item>
40
+ </x-form-col>
41
+ </div>
42
+ </a-row>
43
+ </a-form-model>
44
+ </div>
45
+ </a-modal>
46
+ </template>
47
+ <script>
48
+ import XFormItem from '@vue2-client/base-client/components/common/XForm/XFormItem'
49
+ import { formatDate } from '@vue2-client/utils/util'
50
+ import { mapState } from 'vuex'
51
+ import { post } from '@vue2-client/services/api'
52
+
53
+ export default {
54
+ name: 'XAddForm',
55
+ components: {
56
+ XFormItem
57
+ },
58
+ data () {
59
+ return {
60
+ // 内容加载是否完成
61
+ loaded: false,
62
+ // 表单Model
63
+ form: undefined,
64
+ // 多层下拉框组 数据储存
65
+ SelectsArray: {},
66
+ // 多层下拉框组 各组数量
67
+ SelectsNumber: {},
68
+ // 校验
69
+ rules: {},
70
+ // 图标样式
71
+ iconStyle: {
72
+ position: 'relative',
73
+ top: '1px'
74
+ }
75
+ }
76
+ },
77
+ computed: {
78
+ // 过滤出用于新增/修改场景的表单项
79
+ realJsonData: function () {
80
+ return this.jsonData.filter(function (item) {
81
+ return item.addOrEdit && item.addOrEdit !== 'no' && item.addOrEdit !== 'silenceAdd' && !item.group
82
+ })
83
+ },
84
+ // 过滤出多个下拉框分组级联得数据
85
+ realJsonSelectsData: function () {
86
+ const Selectsata = this.jsonData.filter(item => !item.isOnlyAddOrEdit && item.group)
87
+ const groupName = [...new Set(Selectsata.map(item => item.group))]
88
+ // 初始化数据组
89
+ groupName.forEach(item => {
90
+ this.SelectsArray[item] = []
91
+ })
92
+ return groupName.map(groupName => {
93
+ const SelectsItem = Selectsata.filter(item => {
94
+ if (item.groupIndex === 1) {
95
+ if (item.keyName.substring(0, 6) === 'logic@') {
96
+ // 请求logic
97
+ post('/webmeterapi/' + item.keyName.substring(6), {}).then(res => {
98
+ this.SelectsArray[item.group][item.groupIndex] = res
99
+ })
100
+ } else {
101
+ this.SelectsArray[item.group][item.groupIndex] = JSON.parse(item.keyName)
102
+ }
103
+ }
104
+ return item.group === groupName
105
+ }
106
+ )
107
+ this.SelectsNumber[groupName] = SelectsItem.length ? SelectsItem.length : 0
108
+ return SelectsItem
109
+ })
110
+ },
111
+ // 过滤出用于静默新增场景的表单项
112
+ silenceAddJsonData: function () {
113
+ return this.jsonData.filter(function (item) {
114
+ return item.addOrEdit === 'silenceAdd'
115
+ })
116
+ },
117
+ // 过滤出版本号表单项
118
+ versionJsonData: function () {
119
+ return this.jsonData.filter(function (item) {
120
+ return item.addOrEdit === 'version'
121
+ })
122
+ },
123
+ ...mapState('account', { currUser: 'user' })
124
+ },
125
+ props: {
126
+ jsonData: {
127
+ type: Array,
128
+ default: () => {
129
+ return []
130
+ }
131
+ },
132
+ // 是否显示模态框
133
+ visible: {
134
+ type: Boolean,
135
+ default: () => {
136
+ return false
137
+ }
138
+ },
139
+ // 业务类型
140
+ businessType: {
141
+ type: String,
142
+ default: ''
143
+ },
144
+ // 业务标题
145
+ businessTitle: {
146
+ type: String,
147
+ default: ''
148
+ },
149
+ // 修改操作前查询出的业务数据
150
+ modifyModelData: {
151
+ type: Object,
152
+ default: () => {
153
+ return {}
154
+ }
155
+ },
156
+ // 新增或修改业务是否执行中
157
+ loading: {
158
+ type: Boolean,
159
+ default: () => {
160
+ return false
161
+ }
162
+ },
163
+ // 固定新增表单
164
+ fixedAddForm: {
165
+ type: Object,
166
+ default: () => {
167
+ return {}
168
+ }
169
+ }
170
+ },
171
+ watch: {
172
+ visible (rel) {
173
+ if (rel) {
174
+ this.formItemLoad()
175
+ }
176
+ }
177
+ },
178
+ mounted () {
179
+ this.formItemLoad()
180
+ },
181
+ methods: {
182
+ selectsItemCheck (groupName, index, value, group) {
183
+ const tem = { }
184
+ // 获取当前下拉框子下拉框的数据
185
+ this.SelectsArray[groupName][index + 1] = this.SelectsArray[groupName][index].filter(item => item.value === value)[0].children
186
+ // 清空子下拉框的子们的数据
187
+ for (let i = index; i < this.SelectsNumber[groupName]; i++) {
188
+ tem[group[i].model] = undefined
189
+ }
190
+ this.form = Object.assign({}, this.form, tem)
191
+ // 清空子下拉框的子们的数据源
192
+ for (let i = index + 2; i <= this.SelectsNumber[groupName]; i++) {
193
+ this.SelectsArray[groupName][i] = []
194
+ }
195
+ },
196
+ formItemLoad () {
197
+ const formData = Object.assign({}, this.fixedAddForm)
198
+ for (let i = 0; i < this.realJsonData.length; i++) {
199
+ const item = this.realJsonData[i]
200
+ formData[item.model] = undefined
201
+ // 处理表单校验情况
202
+ if (item.rule) {
203
+ this.rules[item.model] = []
204
+ const required = item.rule.required ? item.rule.required === true || item.rule.required === 'true' : false
205
+ let trigger
206
+ let message
207
+ if (required) {
208
+ switch (item.type) {
209
+ case 'select':
210
+ message = '请选择' + item.name
211
+ trigger = 'change'
212
+ break
213
+ default:
214
+ message = '请输入' + item.name
215
+ trigger = 'blur'
216
+ }
217
+ this.rules[item.model].push({
218
+ required: true,
219
+ message: message,
220
+ trigger: trigger
221
+ })
222
+ }
223
+
224
+ switch (item.rule.type) {
225
+ case 'number':
226
+ case 'integer':
227
+ case 'float':
228
+ let defaultValue
229
+ let message
230
+ switch (item.rule.type) {
231
+ case 'number':
232
+ message = '数字'
233
+ defaultValue = 0
234
+ break
235
+ case 'integer':
236
+ message = '整数'
237
+ defaultValue = 0
238
+ break
239
+ case 'float':
240
+ message = '小数'
241
+ defaultValue = 0.0
242
+ break
243
+ }
244
+ this.rules[item.model].push({
245
+ type: item.rule.type,
246
+ message: item.name + '必须为' + message,
247
+ transform: (value) => {
248
+ if (value && value.length !== 0) {
249
+ return Number(value)
250
+ } else {
251
+ return defaultValue
252
+ }
253
+ },
254
+ trigger: 'blur'
255
+ })
256
+ break
257
+ }
258
+ }
259
+ }
260
+ this.form = formData
261
+ if (Object.keys(this.modifyModelData).length > 0) {
262
+ this.getModifyModelData()
263
+ }
264
+ this.loaded = true
265
+ },
266
+ itemDisabled (value) {
267
+ return (this.businessType === '新增' && value.addOrEdit === 'edit') ||
268
+ (this.businessType === '修改' && value.addOrEdit === 'add')
269
+ },
270
+ itemDisabledPlus (group, index) {
271
+ return (!this.SelectsArray[group][index]) || (this.SelectsArray[group][index] && this.SelectsArray[group][index].length === 0)
272
+ },
273
+ resetForm () {
274
+ this.$refs.selectForm.resetFields()
275
+ },
276
+ async onSubmit () {
277
+ this.$refs.selectForm.validate(async valid => {
278
+ for (const key of Object.keys(this.form)) {
279
+ if (this.form[key] === null || this.form[key] === '') {
280
+ this.form[key] = undefined
281
+ }
282
+ }
283
+ const requestParameters = Object.assign({}, this.form)
284
+ // 追加静默新增字段
285
+ if (this.businessType === '新增') {
286
+ for (const item of this.silenceAddJsonData) {
287
+ switch (item.silencePurpose) {
288
+ case 'createTime':
289
+ requestParameters[item.model] = formatDate('now')
290
+ break
291
+ case 'operator':
292
+ requestParameters[item.model] = this.currUser.name
293
+ break
294
+ case 'orgId':
295
+ requestParameters[item.model] = this.currUser.orgid
296
+ break
297
+ }
298
+ }
299
+ // 通过请求追加静默新增:自定义字段
300
+ for (const item of this.silenceAddJsonData.filter((item) => item.silencePurpose === 'customize')) {
301
+ requestParameters[item.model] = await this.getSilenceSource(item.silenceSource, requestParameters)
302
+ }
303
+ }
304
+ const data = {
305
+ valid: valid,
306
+ form: requestParameters
307
+ }
308
+ this.$emit('onSubmit', data)
309
+ })
310
+ },
311
+ async getSilenceSource (silenceSource, requestParameters) {
312
+ const result = await post('/webmeterapi/' + silenceSource, requestParameters)
313
+ return result
314
+ },
315
+ getModifyModelData () {
316
+ for (let i = 0; i < this.realJsonData.length; i++) {
317
+ const item = this.realJsonData[i]
318
+ if (this.modifyModelData[item.model] || this.modifyModelData[item.model] === 0) {
319
+ this.form[item.model] = this.modifyModelData[item.model] + ''
320
+ } else {
321
+ this.form[item.model] = undefined
322
+ }
323
+ }
324
+ // 追加版本号信息
325
+ for (const item of this.versionJsonData) {
326
+ if (!this.modifyModelData[item.model]) {
327
+ this.form[item.model] = 0
328
+ } else {
329
+ this.form[item.model] = this.modifyModelData[item.model] + ''
330
+ }
331
+ }
332
+ },
333
+ onClose () {
334
+ this.$emit('update:visible', false)
335
+ }
336
+ }
337
+ }
338
+ </script>
@@ -409,8 +409,8 @@ export default {
409
409
  const tableName = defineJson.tableName
410
410
  const params = {}
411
411
  params.define = defineJson.column
412
- params.applyId = 4
413
- params.stepName = '用户受理'
412
+ params.applyId = defineJson.applyId
413
+ params.stepName = defineJson.stepName
414
414
  params.tableName = tableName
415
415
  return post(ApplyInstallApi.insertDataToTempTable, {
416
416
  tempTableData: params
@@ -87,3 +87,8 @@ export default {
87
87
 
88
88
  > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
89
89
  >
90
+ > 本组件已支持临时表的创建,当表名以##(两个井号)开头,则认为在创建临时表。
91
+ >
92
+ > 临时表会在连接断开时自动销毁
93
+ >
94
+ > 临时表仅做展示数据用,增,改,删,需要传入对应的自定义事件。自定义处理方式