n20-common-lib 3.0.38 → 3.0.39
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 +2 -2
- package/src/assets/css/pagination.scss +1 -0
- package/src/assets/css/table.scss +1 -1
- package/src/components/FileUploadTable/FileUploadTableV3.vue +2 -2
- package/src/components/TableOperate/index.vue +27 -4
- package/src/components/TablePro/index.vue +24 -12
- package/src/utils/asciiWidth.js +1 -1
- package/src/utils/axios.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n20-common-lib",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.39",
|
|
4
4
|
"private": false,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve": "vue-cli-service serve",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"vue-router": "^3.5.2",
|
|
121
121
|
"vue-template-compiler": "^2.6.11",
|
|
122
122
|
"vuex": "^3.6.2",
|
|
123
|
-
"vxe-table": "3.20.
|
|
123
|
+
"vxe-table": "3.20.10",
|
|
124
124
|
"vxe-pc-ui": "3.13.2",
|
|
125
125
|
"webpack-bundle-analyzer": "^3.9.0",
|
|
126
126
|
"xlsx": "0.14.1",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
:on-success="(response, file, fileList) => onTypeUploadSuccess(response, file, fileList, group.item)"
|
|
47
47
|
:on-error="(err, file, fileList) => onTypeUploadError(err, file, fileList, group.item, index)"
|
|
48
48
|
>
|
|
49
|
-
<el-button slot="trigger" type="text" class="upload-trigger">去上传</el-button>
|
|
49
|
+
<el-button v-show="!readonly" slot="trigger" type="text" class="upload-trigger">去上传</el-button>
|
|
50
50
|
</Upload>
|
|
51
51
|
</div>
|
|
52
52
|
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
</div>
|
|
89
89
|
</div>
|
|
90
90
|
<div class="flex-box">
|
|
91
|
-
<div class="file-ai__card" v-if="AICheck" @click="AiCheck(row)">
|
|
91
|
+
<div class="file-ai__card" v-if="AICheck && !readonly" @click="AiCheck(row)">
|
|
92
92
|
<img class="file-ai_icon" src="./jytg.svg" alt="" />
|
|
93
93
|
<span class="file-ai_check">{{ $lc('AI 校验') }}</span>
|
|
94
94
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="el-table-set-size flex-box">
|
|
3
|
-
<div class="el-table-set-size-item m-r-0">
|
|
2
|
+
<div class="el-table-set-size flex-box" :style="{ '--hover-width': hoverWidth }">
|
|
3
|
+
<div v-if="showColumn" class="el-table-set-size-item m-r-0">
|
|
4
4
|
<i
|
|
5
5
|
v-title="$lc('设置显示列')"
|
|
6
6
|
class="v3-icon-system-solution pointer color-white"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
@click="$emit('visible-column')"
|
|
11
11
|
></i>
|
|
12
12
|
</div>
|
|
13
|
-
<div class="el-table-set-size-item m-r-0">
|
|
13
|
+
<div v-if="showSetsize" class="el-table-set-size-item m-r-0">
|
|
14
14
|
<el-dropdown @command="setSize">
|
|
15
15
|
<i
|
|
16
16
|
v-title="$lc('行高')"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
</el-dropdown-menu>
|
|
26
26
|
</el-dropdown>
|
|
27
27
|
</div>
|
|
28
|
-
<div class="el-table-set-size-item m-r-0">
|
|
28
|
+
<div v-if="hasExpand" class="el-table-set-size-item m-r-0">
|
|
29
29
|
<i
|
|
30
30
|
v-title="!isExpand ? $lc('展开分组') : $lc('折叠分组')"
|
|
31
31
|
class="pointer"
|
|
@@ -45,6 +45,14 @@
|
|
|
45
45
|
export default {
|
|
46
46
|
name: 'TableOperate',
|
|
47
47
|
props: {
|
|
48
|
+
showColumn: {
|
|
49
|
+
type: Boolean,
|
|
50
|
+
default: false
|
|
51
|
+
},
|
|
52
|
+
showSetsize: {
|
|
53
|
+
type: Boolean,
|
|
54
|
+
default: true
|
|
55
|
+
},
|
|
48
56
|
size: {
|
|
49
57
|
type: String,
|
|
50
58
|
default: 'small'
|
|
@@ -66,6 +74,21 @@ export default {
|
|
|
66
74
|
})
|
|
67
75
|
}
|
|
68
76
|
},
|
|
77
|
+
computed: {
|
|
78
|
+
// 是否显示展开/折叠按钮(配置了 treeConfig 才显示)
|
|
79
|
+
hasExpand() {
|
|
80
|
+
return !!(this.$attrs.treeConfig || this.$attrs['tree-config'])
|
|
81
|
+
},
|
|
82
|
+
// 当前可见操作项数量
|
|
83
|
+
activeItemCount() {
|
|
84
|
+
return [this.showColumn, this.showSetsize, this.hasExpand].filter(Boolean).length
|
|
85
|
+
},
|
|
86
|
+
// 根据可见项数动态计算宽度
|
|
87
|
+
hoverWidth() {
|
|
88
|
+
const widthMap = { 3: '112px', 2: '88px', 1: '40px', 0: '0px' }
|
|
89
|
+
return widthMap[this.activeItemCount] || '0px'
|
|
90
|
+
}
|
|
91
|
+
},
|
|
69
92
|
data() {
|
|
70
93
|
let _this = this
|
|
71
94
|
return {
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
}"
|
|
51
51
|
:merge-cells="mergeCells"
|
|
52
52
|
:row-class-name="getRowClassName"
|
|
53
|
-
v-bind="
|
|
53
|
+
v-bind="{ size, ...$attrs, ...sizeBind }"
|
|
54
54
|
v-on="$listeners"
|
|
55
55
|
@sort-change="(val) => customSortMethod(val)"
|
|
56
56
|
@filter-change="filterChange"
|
|
@@ -236,6 +236,8 @@
|
|
|
236
236
|
</vxe-table>
|
|
237
237
|
<!-- 操作列 -->
|
|
238
238
|
<tableOperate
|
|
239
|
+
:showColumn="showColumn"
|
|
240
|
+
:showSetsize="showSetsize"
|
|
239
241
|
:size="sizeC"
|
|
240
242
|
v-bind="$attrs"
|
|
241
243
|
@update:size="sizeUp"
|
|
@@ -380,9 +382,10 @@ export default {
|
|
|
380
382
|
return forbidSelect
|
|
381
383
|
}
|
|
382
384
|
},
|
|
385
|
+
// 是否显示显示列
|
|
383
386
|
showColumn: {
|
|
384
387
|
type: Boolean,
|
|
385
|
-
default:
|
|
388
|
+
default: true
|
|
386
389
|
},
|
|
387
390
|
// 数据更新时是否自动清空已选
|
|
388
391
|
clearSelect: {
|
|
@@ -468,10 +471,6 @@ export default {
|
|
|
468
471
|
type: String,
|
|
469
472
|
default: undefined
|
|
470
473
|
},
|
|
471
|
-
isExport: {
|
|
472
|
-
type: Boolean,
|
|
473
|
-
default: false
|
|
474
|
-
},
|
|
475
474
|
isFilter: {
|
|
476
475
|
type: Boolean,
|
|
477
476
|
default: false
|
|
@@ -510,8 +509,9 @@ export default {
|
|
|
510
509
|
hoverHeaderProp: null, // 当前悬停表头列的 prop
|
|
511
510
|
hoverIconKey: null, // 当前悬停的静态列头图标标识
|
|
512
511
|
isExpand: false,
|
|
512
|
+
isExport: false, // 是否导出
|
|
513
513
|
dialogVisible: false, // 显示列设置对话框
|
|
514
|
-
checkColumns:
|
|
514
|
+
checkColumns: this.columns.slice() // 显示列设置对话框中已选择的列(默认使用 columns prop)
|
|
515
515
|
}
|
|
516
516
|
},
|
|
517
517
|
computed: {
|
|
@@ -567,6 +567,10 @@ export default {
|
|
|
567
567
|
watch: {
|
|
568
568
|
columns() {
|
|
569
569
|
this.colsKey = this.colsKey + 1
|
|
570
|
+
// 没有 pageId 时,columns 变更同步更新 checkColumns
|
|
571
|
+
if (!this.pageId) {
|
|
572
|
+
this.checkColumns = this.columns.slice()
|
|
573
|
+
}
|
|
570
574
|
},
|
|
571
575
|
size(val) {
|
|
572
576
|
this.sizeC = val
|
|
@@ -581,7 +585,7 @@ export default {
|
|
|
581
585
|
},
|
|
582
586
|
activated() {
|
|
583
587
|
this.$refs.vxeTable.loadData(this.data)
|
|
584
|
-
if (this.pageId) {
|
|
588
|
+
if (this.showColumn && this.pageId) {
|
|
585
589
|
this.getColumns()
|
|
586
590
|
}
|
|
587
591
|
},
|
|
@@ -590,14 +594,17 @@ export default {
|
|
|
590
594
|
this.clearHoverTimers()
|
|
591
595
|
},
|
|
592
596
|
mounted() {
|
|
593
|
-
if (this.pageId) {
|
|
597
|
+
if (this.showColumn && this.pageId) {
|
|
594
598
|
this.getColumns()
|
|
595
599
|
}
|
|
596
600
|
},
|
|
597
601
|
methods: {
|
|
602
|
+
openExportColumn() {
|
|
603
|
+
this.dialogVisible = true
|
|
604
|
+
this.isExport = true
|
|
605
|
+
},
|
|
598
606
|
resizableChange({ resizeWidth, columnIndex }) {
|
|
599
607
|
this.checkColumns[columnIndex].width = resizeWidth
|
|
600
|
-
|
|
601
608
|
this.$refs.showColumn.saveColumns(this.checkColumns)
|
|
602
609
|
},
|
|
603
610
|
setColumns(list) {
|
|
@@ -608,8 +615,13 @@ export default {
|
|
|
608
615
|
}
|
|
609
616
|
},
|
|
610
617
|
async getColumns() {
|
|
611
|
-
|
|
612
|
-
|
|
618
|
+
try {
|
|
619
|
+
const columns = await this.$refs.showColumn.getColumns(this.pageId)
|
|
620
|
+
this.checkColumns = columns?.length ? columns : this.columns
|
|
621
|
+
} catch (err) {
|
|
622
|
+
// API 请求失败时回退到 columns prop
|
|
623
|
+
this.checkColumns = this.columns
|
|
624
|
+
}
|
|
613
625
|
},
|
|
614
626
|
/**
|
|
615
627
|
* 一键展开/折叠表格树形行(仅处理第一层级数据行)
|
package/src/utils/asciiWidth.js
CHANGED
package/src/utils/axios.js
CHANGED