three-trees-ui 1.0.69 → 1.0.71

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-trees-ui",
3
- "version": "1.0.69",
3
+ "version": "1.0.71",
4
4
  "publicPath": "/ui",
5
5
  "author": "hotent",
6
6
  "private": false,
@@ -35,16 +35,6 @@
35
35
  type: String,
36
36
  default: '子表数据',
37
37
  },
38
- exportMaxRow: {
39
- type: [String, Number],
40
- },
41
- exportField: {
42
- // 禁止导出的字段集合
43
- type: String,
44
- },
45
- exportFieldTransformData: {
46
- type: String,
47
- },
48
38
  },
49
39
  computed: {
50
40
  columns: function() {
@@ -57,46 +47,6 @@
57
47
  }
58
48
  },
59
49
  methods: {
60
- async sqlChange(config, value = '') {
61
- return new Promise((resolve) => {
62
- let sqlStr = config.relevancyValue
63
- ? config.relevancyValue.replace(/{val}/g, value)
64
- : ''
65
- sqlStr = sqlStr ? sqlStr.replace(/\n/g, '') : ''
66
- let params = {
67
- dsName: config.dataSource,
68
- sql: sqlStr,
69
- }
70
- this.$requestConfig.getValueBySql(params).then((res) => {
71
- resolve(res)
72
- })
73
- })
74
- },
75
- transformFieldData(data) {
76
- return new Promise(async (resolve) => {
77
- let fieldTransformData = JSON.parse(
78
- decode(this.exportFieldTransformData)
79
- )
80
- for (let i = 0; i < data.length; i++) {
81
- for (let j = 0; j < fieldTransformData.length; j++) {
82
- if (fieldTransformData[j].relevancyType == 'value') {
83
- data[i][fieldTransformData[j].field] =
84
- fieldTransformData[j].relevancyValue
85
- } else {
86
- // 动态时 请求接口修改数据
87
- let result = await this.sqlChange(
88
- fieldTransformData[j],
89
- data[i][fieldTransformData[j].field]
90
- )
91
- if (result) {
92
- data[i][fieldTransformData[j].field] = result
93
- }
94
- }
95
- }
96
- }
97
- resolve(data)
98
- })
99
- },
100
50
  // 配置的数据字典 导出时翻译为汉字
101
51
  changeDictionary(data) {
102
52
  return new Promise(async (resolve, reject) => {
@@ -126,18 +76,10 @@
126
76
  },
127
77
  changeRowKey(rows) {
128
78
  var exportData = []
129
- let exportFieldArr = null
130
- if (this.exportField) {
131
- exportFieldArr = this.exportField.split(',')
132
- }
133
79
  rows.forEach((row) => {
134
80
  var exportRow = {}
135
81
  this.columns.forEach((col) => {
136
- if (
137
- col.ctrlType != 'suntable' &&
138
- (!exportFieldArr ||
139
- (exportFieldArr && !exportFieldArr.includes(col.name)))
140
- ) {
82
+ if (col.ctrlType != 'suntable') {
141
83
  exportRow[col.desc] = row[col.name]
142
84
  }
143
85
  })
@@ -145,25 +87,6 @@
145
87
  })
146
88
  return exportData
147
89
  },
148
- getConfirmValue(rows, count) {
149
- return new Promise((resolve) => {
150
- this.$confirm(
151
- `导出数据量超出导出限制【${count}】,将导出${count}条,是否继续?`,
152
- '提示',
153
- {
154
- confirmButtonText: '确定',
155
- cancelButtonText: '取消',
156
- type: 'warning',
157
- }
158
- )
159
- .then(() => {
160
- resolve(rows.slice(0, count))
161
- })
162
- .catch(() => {
163
- resolve(false)
164
- })
165
- })
166
- },
167
90
  handleCommand(type) {
168
91
  const pInst = utils.getOnlineFormInstance(this)
169
92
  SubPagination.exportData(
@@ -174,20 +97,6 @@
174
97
  )
175
98
  .then(async (data) => {
176
99
  data = JSON.parse(JSON.stringify(data))
177
- if (this.exportMaxRow && Number(this.exportMaxRow) < data.length) {
178
- let result = await this.getConfirmValue(
179
- data,
180
- Number(this.exportMaxRow)
181
- )
182
- if (result === false) {
183
- return
184
- }
185
- data = result
186
- }
187
-
188
- if (this.exportFieldTransformData) {
189
- data = await this.transformFieldData(data)
190
- }
191
100
  // 导出时 字典转换
192
101
  await this.changeDictionary(data)
193
102
  let exportData = this.changeRowKey(data)
@@ -102,45 +102,6 @@
102
102
  type: String,
103
103
  required: true,
104
104
  },
105
- importMaxRow: {
106
- type: [String, Number],
107
- default: null,
108
- },
109
- templateType: {
110
- // 导入模板类型 default 系统默认 custom 自定义
111
- type: String,
112
- default: 'default',
113
- },
114
- customTemplate: {
115
- // 自定义的导入模板文件
116
- type: String,
117
- default: '',
118
- },
119
- importTransform: {
120
- // 是否有转换字段
121
- type: String,
122
- default: '0',
123
- },
124
- importModes: {
125
- // 导入模式选项显示
126
- type: String,
127
- default: 'append,override,merge',
128
- },
129
- fieldTransformData: {
130
- // 转换字段配置
131
- type: String,
132
- default: '',
133
- },
134
- conditionRule: {
135
- // 条件模式配置
136
- type: String,
137
- default: '',
138
- },
139
- conditionType: {
140
- // 条件模式配置
141
- type: String,
142
- default: 'cover',
143
- },
144
105
  },
145
106
  data() {
146
107
  return {
@@ -149,6 +110,11 @@
149
110
  showRowData: false,
150
111
  mergeFunc: null,
151
112
  mode: 'append',
113
+ modeOptions: [
114
+ { mode: 'append', desc: '追加导入' },
115
+ { mode: 'override', desc: '覆盖导入' },
116
+ { mode: 'merge', desc: '合并导入', disabled: true },
117
+ ],
152
118
  cacheDicData: {}, // 缓存字典数据
153
119
  }
154
120
  },
@@ -156,30 +122,6 @@
156
122
  columns: function() {
157
123
  return eval(decode(this.dataColumns))
158
124
  },
159
- modeOptions() {
160
- let options = [
161
- { mode: 'append', desc: '追加导入' },
162
- { mode: 'override', desc: '覆盖导入' },
163
- { mode: 'merge', desc: '合并导入' },
164
- { mode: 'condition', desc: '条件导入' },
165
- ]
166
- return options.filter((k) => {
167
- return this.importModes.includes(k.mode)
168
- })
169
- },
170
- conditionConfig() {
171
- let config = {}
172
- if (this.conditionRule) {
173
- config = JSON.parse(decode(this.conditionRule))
174
- config.conditionArr.forEach((k) => {
175
- k.exportField = this.getNameByDesc(k.exportField)
176
- })
177
- }
178
- return {
179
- conditionType: this.conditionType,
180
- ...config,
181
- }
182
- },
183
125
  },
184
126
  watch: {
185
127
  dialogVisible: {
@@ -197,7 +139,7 @@
197
139
  handler: function(newVal) {
198
140
  if (newVal) {
199
141
  // 如果有导入合并的代码,则允许选择合并导入模式
200
- // this.$set(this.modeOptions[2], 'disabled', false)
142
+ this.$set(this.modeOptions[2], 'disabled', false)
201
143
  // 并设置默认为 合并导入
202
144
  this.mode = 'merge'
203
145
  // 解码合并的代码
@@ -214,9 +156,6 @@
214
156
  }
215
157
  },
216
158
  mounted() {
217
- if (this.importModes) {
218
- this.mode = this.importModes.split(',')[0]
219
- }
220
159
  // 初始化导入时需要的参数
221
160
  const pInst = utils.getOnlineFormInstance(this)
222
161
  let formUid = pInst && pInst._uid ? pInst._uid : ''
@@ -231,52 +170,10 @@
231
170
  SubPagination._map.set(instKey, pInst)
232
171
  }
233
172
  },
234
- destroyed() {
235
- SubPagination.clear(this.dataSubname, this)
236
- },
173
+ // destroyed() {
174
+ // SubPagination.clear(this.dataSubname, this)
175
+ // },
237
176
  methods: {
238
- transformFieldData(data) {
239
- return new Promise(async (resolve) => {
240
- if (this.importTransform === '0') {
241
- resolve(data)
242
- return
243
- }
244
- let fieldTransformData = JSON.parse(decode(this.fieldTransformData))
245
- for (let i = 0; i < data.length; i++) {
246
- for (let j = 0; j < fieldTransformData.length; j++) {
247
- if (fieldTransformData[j].relevancyType == 'value') {
248
- data[i][fieldTransformData[j].field] =
249
- fieldTransformData[j].relevancyValue
250
- } else {
251
- // 动态时 请求接口修改数据
252
- let result = await this.sqlChange(
253
- fieldTransformData[j],
254
- data[i][fieldTransformData[j].field]
255
- )
256
- if (result) {
257
- data[i][fieldTransformData[j].field] = result
258
- }
259
- }
260
- }
261
- }
262
- resolve(data)
263
- })
264
- },
265
- async sqlChange(config, value = '') {
266
- return new Promise((resolve) => {
267
- let sqlStr = config.relevancyValue
268
- ? config.relevancyValue.replace(/{val}/g, value)
269
- : ''
270
- sqlStr = sqlStr ? sqlStr.replace(/\n/g, '') : ''
271
- let params = {
272
- dsName: config.dataSource,
273
- sql: sqlStr,
274
- }
275
- this.$requestConfig.getValueBySql(params).then((res) => {
276
- resolve(res)
277
- })
278
- })
279
- },
280
177
  changeDictionary(data) {
281
178
  return new Promise(async (resolve) => {
282
179
  for (let i = 0; i < data.length; i++) {
@@ -317,28 +214,6 @@
317
214
  },
318
215
  //子表模板导出
319
216
  exportFormSub() {
320
- // 如果是自定义模板
321
- if (this.templateType == 'custom' && this.customTemplate) {
322
- let file = JSON.parse(decode(this.customTemplate))[0]
323
- this.$requestConfig
324
- .download(file.response.fileId)
325
- .then(({ data, headers }) => {
326
- if (data && headers) {
327
- // 附件下载
328
- const fileName = decodeURIComponent(
329
- headers['content-disposition']
330
- .split(';')[1]
331
- .split('filename=')[1]
332
- )
333
- const blob = new Blob([data])
334
- saveAs(blob, fileName)
335
- }
336
- })
337
- .catch((err) => {
338
- this.$message.error(`附件下载失败:${err}`)
339
- })
340
- return
341
- }
342
217
  let columns = this.columns.filter((item) => {
343
218
  return !(
344
219
  item.ctrlType &&
@@ -388,7 +263,6 @@
388
263
  let count = this.importRows.length
389
264
  if (count > maxRowInt && maxRowInt != 0) {
390
265
  this.$message.error('子表数据已超过最大行数【' + maxRowInt + '】')
391
- this.$refs.selectFile.value = ''
392
266
  return
393
267
  }
394
268
  } else if (this.mode == 'append') {
@@ -416,16 +290,13 @@
416
290
  }
417
291
  }
418
292
  }
419
- const pInst = utils.getOnlineFormInstance(this.$parent.$parent)
420
293
  let importRows = await this.changeDictionary(this.importRows)
421
- // 导入如果有数据转换的此处做转换
422
- importRows = await this.transformFieldData(importRows)
294
+ const pInst = utils.getOnlineFormInstance(this.$parent.$parent)
423
295
  SubPagination.importData(
424
296
  this.dataSubname,
425
297
  importRows,
426
298
  this.mode,
427
299
  this.mergeFunc,
428
- this.conditionConfig,
429
300
  pInst
430
301
  )
431
302
  .then(() => {
@@ -433,7 +304,6 @@
433
304
  this.dialogVisible = false
434
305
  })
435
306
  .catch((err) => {
436
- this.$refs.selectFile.value = ''
437
307
  this.$message.error(`数据导入失败:${err}`)
438
308
  })
439
309
  },
@@ -442,43 +312,10 @@
442
312
  return
443
313
  }
444
314
  this.importRows = []
445
- this.readWorkbookFromLocalFile(m.target.files[0], async (rows) => {
446
- if (this.importMaxRow) {
447
- let count = rows.length
448
- if (count > parseInt(this.importMaxRow)) {
449
- let result = await this.getConfirmValue(
450
- rows,
451
- parseInt(this.importMaxRow)
452
- )
453
- if (result === false) {
454
- this.$refs.selectFile.value = ''
455
- return
456
- }
457
- rows = result
458
- }
459
- }
315
+ this.readWorkbookFromLocalFile(m.target.files[0], (rows) => {
460
316
  this.importRows = this.changeRowKey(rows)
461
317
  })
462
318
  },
463
- getConfirmValue(rows, count) {
464
- return new Promise((resolve) => {
465
- this.$confirm(
466
- `导入数据量已超过最大限制,将默认导入前【${count}】条,是否继续?`,
467
- '提示',
468
- {
469
- confirmButtonText: '确定',
470
- cancelButtonText: '取消',
471
- type: 'warning',
472
- }
473
- )
474
- .then(() => {
475
- resolve(rows.slice(0, count))
476
- })
477
- .catch(() => {
478
- resolve(false)
479
- })
480
- })
481
- },
482
319
  // 读取本地excel文件
483
320
  readWorkbookFromLocalFile(file, callback) {
484
321
  const reader = new FileReader()
@@ -106,9 +106,9 @@
106
106
  mounted() {
107
107
  this.paginationChange()
108
108
  },
109
- destroyed() {
110
- SubPagination.clear(this.dataSubname, this)
111
- },
109
+ // destroyed() {
110
+ // SubPagination.clear(this.dataSubname, this)
111
+ // },
112
112
  methods: {
113
113
  paginationChange() {
114
114
  // 分页变化时,以dataPath为key设置到公共的js对象中
@@ -845,5 +845,5 @@ const Formulas = {
845
845
  Formulas.install = (Vue) => {
846
846
  Vue.prototype.$Formulas = Formulas
847
847
  }
848
- window.FormMath = Formulas
848
+
849
849
  export { formula, Formulas }