sh-view 1.7.3 → 1.7.6

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.
@@ -7,7 +7,7 @@
7
7
  v-bind="queryFormConfig"
8
8
  :items="formItems"
9
9
  :data="data"
10
- :rules="rules"
10
+ :rules="valid ? formRules : {}"
11
11
  :valid-config="validConfig"
12
12
  @submit="onFormSubmit"
13
13
  @reset="onFormReset"
@@ -88,6 +88,9 @@ export default {
88
88
  transformitem: {
89
89
  type: Boolean,
90
90
  default: true
91
+ },
92
+ valid: {
93
+ type: Boolean
91
94
  }
92
95
  },
93
96
  emits: ['submit', 'reset', 'edit-closed', 'submit-invalid', 'collapsed'],
@@ -103,6 +106,8 @@ export default {
103
106
  formOriginItems: [],
104
107
  // 表单渲染项
105
108
  formItems: [],
109
+ // 表单校验规则
110
+ formRules: {},
106
111
  // 表格高级搜索默认配置
107
112
  formConfigDefault: {
108
113
  titleWidth: 100,
@@ -138,6 +143,13 @@ export default {
138
143
  },
139
144
  deep: true,
140
145
  immediate: false
146
+ },
147
+ rules: {
148
+ handler(newvalue, oldValue) {
149
+ this.initEditRules(newvalue)
150
+ },
151
+ deep: true,
152
+ immediate: true
141
153
  }
142
154
  },
143
155
  created() {
@@ -153,54 +165,66 @@ export default {
153
165
  },
154
166
  // 初始化表单字段
155
167
  initFormData() {
156
- const that = this
157
- let formItems = that.items.filter(item => item.search && item.search !== '0')
158
- that.$vUtils.eachTree(formItems, item => {
168
+ const { items, data, $vUtils } = this
169
+ let queryItems = items.filter(item => item.search && item.search !== '0')
170
+ $vUtils.eachTree(queryItems, item => {
159
171
  let renderProps = item.renderProps || item.itemRender?.props || {}
160
- if (!that.$vUtils.has(that.data, item.field)) {
161
- that.$vUtils.set(that.data, item.field, renderProps.defaultValue || null)
172
+ if (!$vUtils.isNone(renderProps?.defaultValue) && $vUtils.isNone($vUtils.get(data, item.field))) {
173
+ $vUtils.set(data, item.field, renderProps.defaultValue)
162
174
  }
163
175
  })
164
176
  },
165
177
  // 初始化搜索表单
166
178
  initFormItems() {
167
- const that = this
168
179
  let formItemsArr = [] // 表单项
169
- let formItems = that.items.filter(item => item.search && item.search !== '0')
180
+ let formItems = this.items.filter(item => item.search && item.search !== '0')
170
181
  if (this.transformitem) {
171
- let { itemsArr, itemsRules } = that.generateFormItem(formItems)
182
+ let { itemsArr, rules } = this.generateFormItem(formItems)
172
183
  formItemsArr = itemsArr
184
+ this.initEditRules(rules)
173
185
  } else {
174
186
  formItemsArr = formItems
187
+ this.initEditRules(this.rules)
175
188
  }
176
189
  formItemsArr.forEach(item => {
177
190
  item.visible = true
178
191
  item.itemRender.props.disabled = false
179
192
  })
180
- that.formOriginItems = formItemsArr
181
- that.formItems = formItemsArr
182
- if (formItemsArr.length > that.globalConfig.formToggleNum && that.globalConfig.formToggle) {
183
- that.formToggleBtnShow = true // 显示展开全部按钮
184
- that.formBtnCollapsed(false)
193
+ this.formOriginItems = formItemsArr
194
+ this.formItems = formItemsArr
195
+ if (formItemsArr.length > this.globalConfig.formToggleNum && this.globalConfig.formToggle) {
196
+ this.formToggleBtnShow = true // 显示展开全部按钮
197
+ this.formBtnCollapsed(false)
185
198
  }
186
199
  this.initFormData()
187
200
  },
201
+ // 初始化验证规则
202
+ initEditRules(rules) {
203
+ const { formRules, $vUtils } = this
204
+ if (rules && $vUtils.isPlainObject(rules)) {
205
+ Object.keys(rules).forEach(key => {
206
+ if (formRules[key]) {
207
+ formRules[key] = Array.from(new Set(formRules[key].concat(rules[key])))
208
+ } else {
209
+ formRules[key] = rules[key]
210
+ }
211
+ })
212
+ }
213
+ },
188
214
  // 表单展开全部/收起切换事件
189
215
  formBtnCollapsed(value) {
190
- const that = this
191
- that.formCollapsed = value
192
- that.formItems = value ? that.formOriginItems : that.formOriginItems.slice(0, that.globalConfig.formToggleNum)
216
+ this.formCollapsed = value
217
+ this.formItems = value ? this.formOriginItems : this.formOriginItems.slice(0, this.globalConfig.formToggleNum)
193
218
  this.$emit('collapsed', value)
194
219
  },
195
220
  // -------- 搜索
196
221
  async onFormSubmit() {
197
- let that = this
198
- let errMap = await that.queryFormRef().validate()
199
- let data = that.data
222
+ let { data } = this
223
+ let errMap = await this.queryFormRef().validate()
200
224
  if (!errMap) {
201
- that.$emit('submit', data)
225
+ this.$emit('submit', data)
202
226
  } else {
203
- that.onFormSubmitInvalid({ data, errMap })
227
+ this.onFormSubmitInvalid({ data, errMap })
204
228
  }
205
229
  },
206
230
  // 表单重置
@@ -223,31 +247,31 @@ export default {
223
247
  },
224
248
  // 自动生成表单渲染项
225
249
  generateFormItem(items = []) {
226
- const that = this
227
250
  let itemsArr = []
228
- let itemsRules = {}
229
- that.$vUtils.mapTree(items, ori => {
230
- let tar = Object.assign({}, that.itemConfigDefault, ori)
251
+ let rules = {}
252
+ const { itemConfigDefault, readonly, disabled, isTrue, getDefaultMessage, $vUtils } = this
253
+ $vUtils.eachTree(items, ori => {
254
+ let tar = Object.assign({}, itemConfigDefault, ori)
231
255
  let renderConfig = {
232
256
  name: ori.renderName || '$vInput',
233
257
  props: Object.assign({}, ori.renderProps || {})
234
258
  }
235
- if (that.readonly || that.disabled) {
259
+ if (readonly || disabled) {
236
260
  renderConfig.props.disabled = true
237
261
  }
238
262
  tar.itemRender = Object.assign({}, renderConfig, ori.itemRender || {})
239
263
  // 首先提取校验配置
240
- if (that.isTrue(ori['renderRequire'])) {
264
+ if (isTrue(ori['renderRequire'])) {
241
265
  // 若配置了校验参数则走校验参数,没配置则给默认校验条件
242
266
  if (ori['requireProps'] && Array.isArray(ori['requireProps']) && ori['requireProps'].length > 0) {
243
- itemsRules[ori['field']] = ori['requireProps']
267
+ rules[ori['field']] = ori['requireProps']
244
268
  } else {
245
269
  let dataType = 'string'
246
270
  let arrayType = ['$vCheckgroup', '$vUpload', '$vTable']
247
- if (arrayType.includes(ori['renderName']) || ((ori['renderName'] === '$vSelect' || ori['renderName'] === '$vTree') && that.isTrue(renderConfig.props.multiple))) {
271
+ if (arrayType.includes(ori['renderName']) || ((ori['renderName'] === '$vSelect' || ori['renderName'] === '$vTree') && isTrue(renderConfig.props.multiple))) {
248
272
  dataType = 'array'
249
273
  }
250
- itemsRules[ori['field']] = [{ required: true, message: that.getDefaultMessage(ori['renderName'], ori['title']), type: dataType }]
274
+ rules[ori['field']] = [{ required: true, message: getDefaultMessage(ori['renderName'], ori['title']), type: dataType }]
251
275
  }
252
276
  }
253
277
  // 表单不支持编辑渲染过滤
@@ -256,7 +280,7 @@ export default {
256
280
  itemsArr.push(tar)
257
281
  }
258
282
  })
259
- return { itemsArr, itemsRules }
283
+ return { itemsArr, rules }
260
284
  }
261
285
  }
262
286
  }
@@ -7,10 +7,9 @@ const vxeEvents = {
7
7
  },
8
8
  // 单选框变化
9
9
  onRadioChange(params) {
10
- const that = this
11
10
  var { row } = params
12
- that.selectionRows = [row]
13
- that.$emit('radio-change', that.selectionRows, params)
11
+ this.selectionRows = [row]
12
+ this.$emit('radio-change', this.selectionRows, params)
14
13
  },
15
14
  // 复选框变化
16
15
  onSelectionChange(params) {
@@ -63,15 +62,14 @@ const vxeEvents = {
63
62
  },
64
63
  // 只对 edit-config 配置时有效,单元格编辑状态下被关闭时会触发该事件
65
64
  async onEditClosed(params) {
66
- const that = this
67
65
  let { row, column } = params
68
66
  let { property, model, rname, rprops } = column
69
67
  if ((model.update || model.change) && rname) {
70
- let { rvalue, rtext } = that.$vUtils.formatRender(model.value, property, row, rname, rprops, that, true)
71
- that.$vUtils.set(row, column.property, rvalue)
68
+ let { rvalue, rtext } = this.$vUtils.formatRender(model.value, property, row, rname, rprops, this, true)
69
+ this.$vUtils.set(row, column.property, rvalue)
72
70
  model.change = false
73
71
  }
74
- that.$emit('edit-closed', params)
72
+ this.$emit('edit-closed', params)
75
73
  },
76
74
  // 只对 edit-config 配置时有效,单元格被激活编辑时会触发该事件
77
75
  async onEditActived(params) {
@@ -137,10 +135,9 @@ const vxeMethods = {
137
135
  // // vxe组件方法可通过 this.tableRef() 调用
138
136
  // 表格全选
139
137
  setSelectionAll() {
140
- const that = this
141
- that.isAllChecked = !that.isAllChecked
142
- that.tableRef().setAllCheckboxRow(that.isAllChecked)
143
- that.selectionRows = that.tableRef().getCheckboxRecords()
138
+ this.isAllChecked = !this.isAllChecked
139
+ this.tableRef().setAllCheckboxRow(this.isAllChecked)
140
+ this.selectionRows = this.tableRef().getCheckboxRecords()
144
141
  },
145
142
  // 表格打印、导出统一过滤列
146
143
  columnDefaultFilterMethod({ column, $columnIndex }) {
@@ -188,11 +185,11 @@ const vxeMethods = {
188
185
  },
189
186
  // 默认求底部绑定方法vxe
190
187
  tableFooterMethod({ columns, data }) {
191
- let that = this
188
+ const { footerCalculate, tableFooterCompute } = this
192
189
  let footerData = []
193
- let footerCalculateList = that.footerCalculate.calculate || []
190
+ let footerCalculateList = footerCalculate.calculate || []
194
191
  footerCalculateList.forEach(key => {
195
- footerData.push(that.tableFooterCompute(columns, data, key, that.footerCalculate[key]))
192
+ footerData.push(tableFooterCompute(columns, data, key, footerCalculate[key]))
196
193
  })
197
194
  return footerData
198
195
  },
@@ -230,8 +227,8 @@ const vxeMethods = {
230
227
  })
231
228
  },
232
229
  tableFooterSpanMethod({ $rowIndex, column, $columnIndex, data }) {
233
- let that = this
234
- let defaultColumns = that.columnsConfigDefault.filter(item => that.tableGlobalConfig[item.type])
230
+ const { columnsConfigDefault, tableGlobalConfig } = this
231
+ let defaultColumns = columnsConfigDefault.filter(item => tableGlobalConfig[item.type])
235
232
  let colspan = defaultColumns.length || 1
236
233
  if (column.type === 'seq') {
237
234
  return { rowspan: 1, colspan: colspan }
@@ -256,47 +253,46 @@ const shMethods = {
256
253
  },
257
254
  // 初始化生成新表头数据
258
255
  initTableColumns(columns = []) {
259
- let that = this
260
- let { columnsArr, columnsFlatArr, formItemsArr, rules } = that.getTransfarColumn(columns)
261
- that.tableColumnsFlat = columnsFlatArr
262
- that.tableFormItems = formItemsArr
263
- that.initEditRules(rules)
264
- if (!that.tableReverse) {
265
- that.tableColumnsFixed = that.$vUtils.clone(columnsArr, true)
256
+ let { columnsArr, columnsFlatArr, formItemsArr, rules } = this.getTransfarColumn(columns)
257
+ this.tableColumnsFlat = columnsFlatArr
258
+ this.tableFormItems = formItemsArr
259
+ this.initEditRules(rules)
260
+ if (!this.tableReverse) {
261
+ this.tableColumnsFixed = this.$vUtils.clone(columnsArr, true)
266
262
  } else {
267
- that.tableColumnsFixed = that.getReverseColumn(that.columns)
263
+ this.tableColumnsFixed = this.getReverseColumn(this.columns)
268
264
  }
269
265
  },
270
266
  // 初始化验证规则
271
267
  initEditRules(rules) {
272
- const that = this
273
- if (rules && that.$vUtils.isPlainObject(rules)) {
268
+ const { tableEditRules, $vUtils } = this
269
+ if (rules && $vUtils.isPlainObject(rules)) {
274
270
  Object.keys(rules).forEach(key => {
275
- if (that.tableEditRules[key]) {
276
- that.tableEditRules[key] = Array.from(new Set(that.tableEditRules[key].concat(rules[key])))
271
+ if (tableEditRules[key]) {
272
+ tableEditRules[key] = Array.from(new Set(tableEditRules[key].concat(rules[key])))
277
273
  } else {
278
- that.tableEditRules[key] = rules[key]
274
+ tableEditRules[key] = rules[key]
279
275
  }
280
276
  })
281
277
  }
282
278
  },
283
279
  // 初始化表头配置默认值
284
280
  initColsDefaultValue() {
285
- const that = this
281
+ const { tableColumnsFlat, dataSourse, $vUtils } = this
286
282
  let colsDefaultValue = {}
287
- that.$vUtils.eachTree(that.tableColumnsFlat, item => {
283
+ $vUtils.eachTree(tableColumnsFlat, item => {
288
284
  let renderObj = item.editRender || item.cellRender || {}
289
285
  let noRenderArr = ['$vGlobalOption']
290
- if (!noRenderArr.includes(renderObj.name) && !that.$vUtils.isNone(renderObj.props?.defaultValue)) {
291
- that.$vUtils.set(colsDefaultValue, item.field, renderObj.props?.defaultValue)
286
+ if (!noRenderArr.includes(renderObj.name) && !$vUtils.isNone(renderObj.props?.defaultValue)) {
287
+ $vUtils.set(colsDefaultValue, item.field, renderObj.props?.defaultValue)
292
288
  }
293
289
  })
294
- that.tableRowDefaultData = colsDefaultValue
295
- if (Array.isArray(that.dataSourse) && Object.keys(colsDefaultValue).length > 0) {
296
- that.dataSourse.forEach(row => {
290
+ this.tableRowDefaultData = colsDefaultValue
291
+ if (Array.isArray(dataSourse) && Object.keys(colsDefaultValue).length > 0) {
292
+ dataSourse.forEach(row => {
297
293
  Object.keys(colsDefaultValue).forEach(field => {
298
- if (that.$vUtils.isNone(that.$vUtils.get(row, field))) {
299
- that.$vUtils.set(row, field, that.$vUtils.get(colsDefaultValue, field))
294
+ if ($vUtils.isNone($vUtils.get(row, field))) {
295
+ $vUtils.set(row, field, $vUtils.get(colsDefaultValue, field))
300
296
  }
301
297
  })
302
298
  })
@@ -304,36 +300,36 @@ const shMethods = {
304
300
  },
305
301
  // 反转表格-反转表头及数据
306
302
  getReverseColumn(oriColumns) {
307
- const that = this
303
+ const { reverseConfig, disabled, columnObjDefault, dataSourse } = this
308
304
  let columns = []
309
- let columnsNum = that.reverseConfig.num
310
- let keyPrefix = that.reverseConfig.keyPrefix || 'reversePre'
311
- let titPrefix = that.reverseConfig.titPrefix || ''
312
- let valueRenderObj = that.disabled ? { cellRender: { name: '$vRowCell' } } : { editRender: { name: '$vRowCell' } }
305
+ let columnsNum = reverseConfig.num
306
+ let keyPrefix = reverseConfig.keyPrefix || 'reversePre'
307
+ let titPrefix = reverseConfig.titPrefix || ''
308
+ let valueRenderObj = disabled ? { cellRender: { name: '$vRowCell' } } : { editRender: { name: '$vRowCell' } }
313
309
  if (columnsNum) {
314
310
  for (let i = 1; i <= columnsNum; i++) {
315
311
  columns.push(
316
- Object.assign({ field: `${keyPrefix}title${i}`, title: `名称${i}` }, that.columnObjDefault),
317
- Object.assign({ field: `${keyPrefix}value${i}`, title: `数值${i}` }, that.columnObjDefault, valueRenderObj)
312
+ Object.assign({ field: `${keyPrefix}title${i}`, title: `名称${i}` }, columnObjDefault),
313
+ Object.assign({ field: `${keyPrefix}value${i}`, title: `数值${i}` }, columnObjDefault, valueRenderObj)
318
314
  )
319
315
  }
320
316
  } else {
321
- columns.push(Object.assign({ field: `${keyPrefix}title`, title: '名称', fixed: 'left' }, that.columnObjDefault))
322
- that.dataSourse.forEach((item, index) => {
323
- columns.push(Object.assign({ field: `${keyPrefix}value${index + 1}`, title: `${titPrefix}${index + 1}` }, that.columnObjDefault, valueRenderObj))
317
+ columns.push(Object.assign({ field: `${keyPrefix}title`, title: '名称', fixed: 'left' }, columnObjDefault))
318
+ dataSourse.forEach((item, index) => {
319
+ columns.push(Object.assign({ field: `${keyPrefix}value${index + 1}`, title: `${titPrefix}${index + 1}` }, columnObjDefault, valueRenderObj))
324
320
  })
325
321
  }
326
322
  return columns
327
323
  },
328
324
  // 反转表格-反转配置生成数据
329
325
  getReverseData(oriData = []) {
330
- const that = this
326
+ const { reverseConfig, columns, $vUtils } = this
331
327
  let data = []
332
- let columnsNum = that.reverseConfig.num
333
- let keyPrefix = that.reverseConfig.keyPrefix || 'reversePre'
328
+ let columnsNum = reverseConfig.num
329
+ let keyPrefix = reverseConfig.keyPrefix || 'reversePre'
334
330
  if (columnsNum) {
335
331
  // 将表头平均分组
336
- let chunkColumns = that.$vUtils.chunk(that.columns, columnsNum)
332
+ let chunkColumns = $vUtils.chunk(columns, columnsNum)
337
333
  chunkColumns.forEach((colGroup, colGroupIndex) => {
338
334
  let item = {}
339
335
  colGroup.forEach((column, columnIndex) => {
@@ -345,7 +341,7 @@ const shMethods = {
345
341
  data.push(item)
346
342
  })
347
343
  } else {
348
- data = that.columns.map(column => {
344
+ data = columns.map(column => {
349
345
  const item = { [`${keyPrefix}title`]: column.title }
350
346
  oriData.forEach((row, index) => {
351
347
  item[`${keyPrefix}value${index + 1}`] = row[column.field] || ''
@@ -359,12 +355,12 @@ const shMethods = {
359
355
  },
360
356
  // 转换生成新表头数据
361
357
  getTransfarColumn(oriArr = []) {
362
- let that = this
358
+ const { columnObjDefault, columnObj, tableGlobalConfig, isTrue, getDefaultMessage, turnColumnItemFilters, $vUtils } = this
363
359
  let columnsFlatArr = []
364
360
  let formItemsArr = []
365
361
  let rules = {}
366
- let columnsArr = that.$vUtils.mapTree(oriArr, ori => {
367
- let tar = Object.assign({}, that.columnObjDefault, that.columnObj, ori)
362
+ let columnsArr = $vUtils.mapTree(oriArr, ori => {
363
+ let tar = Object.assign({}, columnObjDefault, columnObj, ori)
368
364
  if (ori.children && ori.children.length > 0) {
369
365
  tar.sortable = false
370
366
  tar.filter = false
@@ -374,17 +370,17 @@ const shMethods = {
374
370
  props: Object.assign({}, ori.renderProps || {})
375
371
  }
376
372
  // 首先提取校验配置
377
- if (that.isTrue(tar['renderRequire'])) {
373
+ if (isTrue(tar['renderRequire'])) {
378
374
  // 若配置了校验参数则走校验参数,没配置则给默认校验条件
379
375
  if (tar['requireProps'] && Array.isArray(tar['requireProps']) && tar['requireProps'].length > 0) {
380
376
  rules[tar['field']] = tar['requireProps']
381
377
  } else {
382
378
  let dataType = 'string'
383
379
  let arrayType = ['$vCheckgroup', '$vUpload', '$vTable']
384
- if (arrayType.includes(ori['renderName']) || ((ori['renderName'] === '$vSelect' || ori['renderName'] === '$vTree') && that.isTrue(renderConfig.props.multiple))) {
380
+ if (arrayType.includes(ori['renderName']) || ((ori['renderName'] === '$vSelect' || ori['renderName'] === '$vTree') && isTrue(renderConfig.props.multiple))) {
385
381
  dataType = 'array'
386
382
  }
387
- rules[tar['field']] = [{ required: true, message: that.getDefaultMessage(tar['renderName'], tar['title']), type: dataType }]
383
+ rules[tar['field']] = [{ required: true, message: getDefaultMessage(tar['renderName'], tar['title']), type: dataType }]
388
384
  }
389
385
  }
390
386
  // 个性化设置
@@ -413,7 +409,7 @@ const shMethods = {
413
409
  tar.editRender = Object.assign({}, renderConfig, tar.editRender || {})
414
410
  }
415
411
  // 初始化表单查询配置
416
- if (that.tableGlobalConfig.search) {
412
+ if (tableGlobalConfig.search) {
417
413
  let editFixedNames = ['$vImg', '$vHref', '$vUpload']
418
414
  let formItem = Object.assign({}, tar)
419
415
  formItem.itemRender = Object.assign({}, renderConfig, tar.editRender || {}, tar.itemRender || {})
@@ -427,7 +423,7 @@ const shMethods = {
427
423
  }
428
424
  // 初始化过滤条件
429
425
  if (tar.filter === true || Number(tar.filter) === 1) {
430
- that.turnColumnItemFilters(tar, renderConfig.props)
426
+ turnColumnItemFilters(tar, renderConfig.props)
431
427
  }
432
428
  }
433
429
  columnsFlatArr.push(tar)
@@ -547,28 +543,24 @@ const shMethods = {
547
543
  }
548
544
  },
549
545
  // 自定义操作列点击事件
550
- handleGoptionClick(btnObj, dataObj) {
551
- const that = this
546
+ async handleGoptionClick(btnObj, dataObj) {
552
547
  if (btnObj.code === 'delete' || btnObj.idConfirm) {
553
- that.msgconfirm({
548
+ await this.msgconfirm({
554
549
  content: btnObj.ConfirmContent || `确定${btnObj.content}吗?`
555
- }).then(() => {
556
- that.$emit('globaloption', btnObj, dataObj)
557
550
  })
558
551
  } else {
559
- that.$emit('globaloption', btnObj, dataObj)
560
552
  }
553
+ this.$emit('globaloption', btnObj, dataObj)
561
554
  },
562
555
  // 新增行按钮
563
556
  async handleTableAddRow(rows, index = -1, isTool = false) {
564
- const that = this
565
- let tableRowDefaultData = Object.assign({}, that.tableRowDefaultData)
566
- let addRows = rows ? that.$vUtils.clone(rows, true) : tableRowDefaultData
567
- if (typeof that.onToolbarBtnAddBefore === 'function') {
568
- addRows = await that.onToolbarBtnAddBefore(addRows)
557
+ const { tableRowDefaultData, onToolbarBtnAddBefore, rowConfig, $vUtils, tableRef } = this
558
+ let addRows = rows ? $vUtils.clone(rows, true) : tableRowDefaultData
559
+ if (!isTool && typeof onToolbarBtnAddBefore === 'function') {
560
+ addRows = await onToolbarBtnAddBefore(addRows)
569
561
  }
570
562
  // 删除主键,以防排序冲突
571
- let mainKeyField = that.rowConfig?.keyField || '_XID'
563
+ let mainKeyField = rowConfig?.keyField || '_XID'
572
564
  if (Array.isArray(addRows)) {
573
565
  addRows.forEach(item => {
574
566
  delete item[mainKeyField]
@@ -576,30 +568,31 @@ const shMethods = {
576
568
  } else {
577
569
  delete addRows[mainKeyField]
578
570
  }
579
- let { row: newRow } = await that.tableRef().insertAt(addRows, index)
580
- await that.tableRef().setActiveRow(newRow)
581
- if (!isTool) that.$emit('toolbaroption', 'add', newRow, that.tableRef())
571
+ let { row: newRow } = await tableRef().insertAt(addRows, index)
572
+ await tableRef().setActiveRow(newRow)
573
+ if (!isTool) this.$emit('toolbaroption', 'add', newRow, tableRef())
582
574
  },
583
575
  // 删除行按钮
584
576
  async handleTableDeleteRow(rows, isTool = false) {
585
- const that = this
586
577
  let deleteRows = rows
587
578
  if (isTool) {
588
- let selectedRows = that.getSelectionData()
589
- if (selectedRows.length < 1) return that.msgwarning('请选择要删除的行!')
579
+ let selectedRows = this.getSelectionData()
580
+ if (selectedRows.length < 1) {
581
+ this.msgwarning('请选择要删除的行!')
582
+ return
583
+ }
590
584
  deleteRows = selectedRows
591
- await that.msgconfirm({ content: `确定删除吗?` })
592
- }
593
- if (typeof that.onToolbarBtnDeleteBefore === 'function') {
594
- let result = await that.onToolbarBtnDeleteBefore(deleteRows)
585
+ await this.msgconfirm({ content: `确定删除吗?` })
586
+ } else if (typeof this.onToolbarBtnDeleteBefore === 'function') {
587
+ let result = await this.onToolbarBtnDeleteBefore(deleteRows)
595
588
  if (!result) return
596
589
  }
597
- await that.tableRef().remove(deleteRows)
598
- if (that.selectionRows && that.selectionRows.length > 0) {
599
- let keyField = that.rowConfig.keyField || that.$vTableSetup.table.rowConfig.keyField
600
- that.selectionRows = that.selectionRows.filter(sr => !deleteRows.find(dr => dr[keyField] === sr[keyField]))
590
+ await this.tableRef().remove(deleteRows)
591
+ if (this.selectionRows && this.selectionRows.length > 0) {
592
+ let keyField = this.rowConfig.keyField || this.$vTableSetup.table.rowConfig.keyField
593
+ this.selectionRows = this.selectionRows.filter(sr => !deleteRows.find(dr => dr[keyField] === sr[keyField]))
601
594
  }
602
- if (!isTool) that.$emit('toolbaroption', 'delete', deleteRows, that.tableRef())
595
+ if (!isTool) this.$emit('toolbaroption', 'delete', deleteRows, this.tableRef())
603
596
  }
604
597
  }
605
598
 
@@ -104,12 +104,12 @@ export default {
104
104
  },
105
105
  rightBtns() {
106
106
  let rBtns = []
107
- let { rightConfig } = this
107
+ let { rightConfig, relation, leftActive } = this
108
108
  if (rightConfig && Array.isArray(rightConfig)) {
109
109
  rBtns = rightConfig
110
110
  }
111
- if (this.relation) {
112
- rBtns = rBtns.filter(item => item.code && item.code.split(',').includes(this.leftActive))
111
+ if (relation) {
112
+ rBtns = rBtns.filter(item => item.code && item.code.split(',').includes(leftActive))
113
113
  }
114
114
  return rBtns
115
115
  },
@@ -96,13 +96,12 @@ let vxeOptions = {
96
96
  return $$seq
97
97
  } else if (tablePage) {
98
98
  const { pagerConfig } = grid.props
99
- const pageStart = seqConfig?.startIndex || (pagerConfig.pageSize > 0 ? pagerConfig.pageSize : 50) * ((pagerConfig.currentPage > 0 ? pagerConfig.currentPage : 1) - 1)
100
- return !treeConfig || (treeConfig && ($seq === '' || $seq === undefined)) ? Number(pageStart) + seq : Number(pageStart) + Number($seq) + '.' + seq
101
- } else if (!tablePage && treeConfig) {
102
- return $seq === '' || $seq === undefined ? seq : $seq + '.' + seq
103
- } else {
104
- return seq === -1 ? $rowIndex + (seqConfig.startIndex || 1) : seq
99
+ const pageStart = seqConfig?.startIndex || (+pagerConfig.pageSize || 50) * ((+pagerConfig.currentPage || 1) - 1)
100
+ return treeConfig && $seq ? Number(pageStart) + Number($seq) + '.' + seq : Number(pageStart) + Number(seq)
101
+ } else if (treeConfig) {
102
+ return $seq ? $seq + '.' + seq : seq
105
103
  }
104
+ return seq === -1 ? $rowIndex + (seqConfig.startIndex || 1) : seq
106
105
  }
107
106
  },
108
107
  resizeConfig: {
@@ -1,63 +0,0 @@
1
- <template>
2
- <img :src="imgsrc" />
3
- </template>
4
-
5
- <script>
6
- export default {
7
- name: 'UImg',
8
- props: {
9
- src: {
10
- type: String
11
- },
12
- file: {
13
- type: Object
14
- },
15
- baseUrl: {
16
- type: String
17
- }
18
- },
19
- data() {
20
- return {
21
- imgsrc: ''
22
- }
23
- },
24
- watch: {
25
- file: {
26
- handler: function (val, oldVal) {
27
- this.initMounted()
28
- },
29
- immediate: false,
30
- deep: true
31
- }
32
- },
33
- mounted() {
34
- this.initMounted()
35
- },
36
- methods: {
37
- // 初始化渲染
38
- async initMounted() {
39
- if (!this.src) {
40
- this.imgsrc = this.file ? await this.getImagePreviewData(this.file) : ''
41
- } else {
42
- this.imgsrc = this.src.startsWith('http') ? this.src : this.baseUrl || this.$config.baseUrl.pro + this.src
43
- }
44
- },
45
- // 生成预览图片列表
46
- async getImagePreviewData(file) {
47
- let fileReader = new FileReader()
48
- return new Promise((resolve, reject) => {
49
- try {
50
- fileReader.readAsDataURL(file)
51
- fileReader.onload = function (e) {
52
- resolve(e.target.result)
53
- }
54
- } catch (e) {
55
- reject(e)
56
- }
57
- })
58
- }
59
- }
60
- }
61
- </script>
62
-
63
- <style scoped></style>