sh-view 1.7.5 → 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,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>
@@ -1,100 +0,0 @@
1
- <template>
2
- <template v-if="uploadList.length > 0">
3
- <div v-for="(item, index) in uploadList" :key="index" class="sh-upload-list" :style="upStyles" :class="upClass">
4
- <div v-if="listType === 'card'" class="list-file-card">
5
- <u-img v-if="type === 'img'" :src="item.url" :file="item"></u-img>
6
- <div v-else class="file-title">{{ item.name }}</div>
7
- <div class="list-file-cover">
8
- <sh-icon v-if="preview" type="ios-eye-outline" title="查看文件" size="18" @click="handleFilePreviewView(item)" />
9
- <sh-icon v-if="!disabled" type="ios-trash-outline" title="删除文件" size="18" @click="handleFileRemove(item)" />
10
- </div>
11
- </div>
12
- <div v-else class="list-file-item">
13
- <div class="file-title">{{ item.name }}</div>
14
- <div class="file-action">
15
- <span v-if="preview" class="file-action-item"><sh-icon type="ios-eye-outline" title="查看文件" size="18" @click="handleFilePreviewView(item)" /></span>
16
- <span v-if="!disabled" class="file-action-item"><sh-icon type="ios-trash-outline" title="删除文件" size="18" @click="handleFileRemove(item)" /></span>
17
- </div>
18
- </div>
19
- </div>
20
- </template>
21
- <sh-modal v-if="previewModal" v-model="previewModal" title="预览查看" height="100%" readonly @close="handleFilePreviewCancel">
22
- <template v-if="type === 'file'">
23
- <sh-preview :url="previewFile.url"></sh-preview>
24
- </template>
25
- <template v-else-if="isFormData && type === 'img'">
26
- <u-img :src="previewFile && previewFile.url" :file="previewFile" style="max-width: 100%; margin: auto; display: block"></u-img>
27
- </template>
28
- </sh-modal>
29
- </template>
30
-
31
- <script>
32
- import UImg from './u-img.vue'
33
- export default {
34
- name: 'UList',
35
- components: {
36
- UImg
37
- },
38
- props: {
39
- uploadList: {
40
- type: Array,
41
- default() {
42
- return []
43
- }
44
- },
45
- type: {
46
- type: String,
47
- default: 'img' // file 上传图片还是文件
48
- },
49
- listType: {
50
- type: String,
51
- default: 'list' // list 附件列表展示类型
52
- },
53
- isFormData: Boolean,
54
- disabled: Boolean,
55
- preview: Boolean,
56
- upStyles: {
57
- type: Object,
58
- default() {
59
- return {}
60
- }
61
- },
62
- upClass: {
63
- type: [Array, Object],
64
- default() {
65
- return {}
66
- }
67
- }
68
- },
69
- emits: ['delete'],
70
- data() {
71
- return {
72
- previewFile: null,
73
- previewModal: false
74
- }
75
- },
76
- methods: {
77
- // 文件预览
78
- handleFilePreviewView(obj) {
79
- if (this.isFormData || this.type === 'file') {
80
- this.previewFile = obj
81
- this.previewModal = true
82
- } else {
83
- this.$ImagePreview.show({
84
- previewList: [obj.url]
85
- })
86
- }
87
- },
88
- // 文件预览取消
89
- handleFilePreviewCancel() {
90
- this.previewModal = false
91
- },
92
- // 文件删除
93
- handleFileRemove(data) {
94
- this.$emit('delete', data)
95
- }
96
- }
97
- }
98
- </script>
99
-
100
- <style scoped lang="scss"></style>