n20-common-lib 2.4.2 → 2.4.3
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": "n20-common-lib",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -56,7 +56,9 @@
|
|
|
56
56
|
"resize-detector": "*",
|
|
57
57
|
"strip-json-comments": "*",
|
|
58
58
|
"v-viewer": "*",
|
|
59
|
-
"vuedraggable": "*"
|
|
59
|
+
"vuedraggable": "*",
|
|
60
|
+
"vxe-table": "^3.6.17",
|
|
61
|
+
"xe-utils": "^3.5.11"
|
|
60
62
|
},
|
|
61
63
|
"devDependencies": {
|
|
62
64
|
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
|
|
@@ -94,8 +96,8 @@
|
|
|
94
96
|
"svg-url-loader": "^7.1.1",
|
|
95
97
|
"svgo": "1.2.0",
|
|
96
98
|
"swiper": "^8.4.5",
|
|
97
|
-
"url-loader": "^4.1.1",
|
|
98
99
|
"umy-table": "^1.1.8",
|
|
100
|
+
"url-loader": "^4.1.1",
|
|
99
101
|
"vue": "^2.6.11",
|
|
100
102
|
"vue-cli-plugin-axios": "~0.0.4",
|
|
101
103
|
"vue-grid-layout": "^2.3.12",
|
|
@@ -2,6 +2,7 @@ import numerify from 'numerify'
|
|
|
2
2
|
import dayjs from 'dayjs'
|
|
3
3
|
|
|
4
4
|
function tplFn(row, sc, mck, map = {}) {
|
|
5
|
+
console.log(row, sc, mck, map)
|
|
5
6
|
let str = ''
|
|
6
7
|
sc.forEach((s, i) => {
|
|
7
8
|
str += s
|
|
@@ -46,6 +47,7 @@ function tplFn(row, sc, mck, map = {}) {
|
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
export function colfF(colf, map) {
|
|
50
|
+
console.log(colf)
|
|
49
51
|
if (typeof colf !== 'string') return colf
|
|
50
52
|
let sc = colf.split(/{.+?}/g) || []
|
|
51
53
|
let mc = colf.match(/{.+?}/g) || []
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<vxe-table
|
|
3
|
+
ref="el-table"
|
|
4
|
+
:key="colsKey"
|
|
5
|
+
:class="{ 'cell-default-set--': cellDefault, 'clear-in-form-margin': clearInFormMargin }"
|
|
6
|
+
:header-cell-style="{ 'text-align': 'center' }"
|
|
7
|
+
:data="data"
|
|
8
|
+
:height="height"
|
|
9
|
+
v-bind="Object.assign({ size: size }, $attrs, sizeBind)"
|
|
10
|
+
v-on="$listeners"
|
|
11
|
+
>
|
|
12
|
+
<template v-for="(item, i) in columns">
|
|
13
|
+
<slot v-if="item.slotName" :name="item.slotName" :column="item"></slot>
|
|
14
|
+
<!-- <vxe-column v-else-if="item.render" :key="'vxe-table-' + i" v-bind="item">
|
|
15
|
+
<columnRender slot-scope="{ row, $index }" :c-render="item.render" :row="row" :index="$index" />
|
|
16
|
+
</vxe-column> -->
|
|
17
|
+
<vxe-column
|
|
18
|
+
v-else
|
|
19
|
+
:key="'vxe-table-' + i"
|
|
20
|
+
:formatter="item.formatter | colfF(item.formatterMap)"
|
|
21
|
+
:filters="item.filters | colftF(filtersMap)"
|
|
22
|
+
:title="item.label"
|
|
23
|
+
:field="item.prop"
|
|
24
|
+
v-bind="item"
|
|
25
|
+
/>
|
|
26
|
+
</template>
|
|
27
|
+
<tableSetSize :size="sizeC" @update:size="sizeUp" @resize="sizeSet" />
|
|
28
|
+
</vxe-table>
|
|
29
|
+
</template>
|
|
30
|
+
|
|
31
|
+
<script>
|
|
32
|
+
// import { $lc } from '../../utils/i18n/index'
|
|
33
|
+
import { colfF, colftF, colf_BD_F, colft_BD_F } from '../Table/filters'
|
|
34
|
+
|
|
35
|
+
import tableSetSize from '../TableSetSize/index.vue'
|
|
36
|
+
|
|
37
|
+
const columnRender = {
|
|
38
|
+
props: {
|
|
39
|
+
cRender: {
|
|
40
|
+
type: Function
|
|
41
|
+
},
|
|
42
|
+
row: {
|
|
43
|
+
type: Object
|
|
44
|
+
},
|
|
45
|
+
index: {
|
|
46
|
+
type: [Number, String]
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
render(h) {
|
|
50
|
+
return this.cRender(h, this.row, this.index)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default {
|
|
55
|
+
name: 'TablePro',
|
|
56
|
+
components: {
|
|
57
|
+
columnRender,
|
|
58
|
+
tableSetSize
|
|
59
|
+
},
|
|
60
|
+
filters: {
|
|
61
|
+
colfF,
|
|
62
|
+
colftF,
|
|
63
|
+
typeF(type) {
|
|
64
|
+
return type && type === 'selection' ? 'checkbox' : type
|
|
65
|
+
},
|
|
66
|
+
overflowF(item) {
|
|
67
|
+
return item.showOverflowTooltip || item['show-overflow-tooltip'] ? 'tooltip' : 'ellipsis'
|
|
68
|
+
},
|
|
69
|
+
colf_BD_F,
|
|
70
|
+
colft_BD_F,
|
|
71
|
+
colKey(item) {
|
|
72
|
+
let key = item.columnKey || item['column-key']
|
|
73
|
+
return key ? 'key@' + key : ''
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
props: {
|
|
77
|
+
bigData: {
|
|
78
|
+
type: Boolean,
|
|
79
|
+
default: false
|
|
80
|
+
},
|
|
81
|
+
column: {
|
|
82
|
+
type: Boolean,
|
|
83
|
+
default: false
|
|
84
|
+
},
|
|
85
|
+
data: {
|
|
86
|
+
type: Array,
|
|
87
|
+
default: undefined
|
|
88
|
+
},
|
|
89
|
+
columns: {
|
|
90
|
+
type: Array,
|
|
91
|
+
require: true,
|
|
92
|
+
default: () => []
|
|
93
|
+
},
|
|
94
|
+
filtersMap: {
|
|
95
|
+
type: Object,
|
|
96
|
+
default: () => ({})
|
|
97
|
+
},
|
|
98
|
+
pageObj: {
|
|
99
|
+
type: Object,
|
|
100
|
+
default: undefined
|
|
101
|
+
},
|
|
102
|
+
pageKey: {
|
|
103
|
+
type: Object,
|
|
104
|
+
default: undefined
|
|
105
|
+
},
|
|
106
|
+
height: {
|
|
107
|
+
type: [String, Number],
|
|
108
|
+
default: undefined
|
|
109
|
+
},
|
|
110
|
+
size: {
|
|
111
|
+
type: String,
|
|
112
|
+
default: 'small'
|
|
113
|
+
},
|
|
114
|
+
showSetsize: {
|
|
115
|
+
type: Boolean,
|
|
116
|
+
default: false
|
|
117
|
+
},
|
|
118
|
+
cellDefault: {
|
|
119
|
+
type: Boolean,
|
|
120
|
+
default: false
|
|
121
|
+
},
|
|
122
|
+
clearInFormMargin: {
|
|
123
|
+
type: Boolean,
|
|
124
|
+
default: false
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
data() {
|
|
128
|
+
let _this = this
|
|
129
|
+
return {
|
|
130
|
+
colsKey: 0,
|
|
131
|
+
sizeC: _this.size,
|
|
132
|
+
sizeBind: undefined
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
provide() {
|
|
136
|
+
let bigData = this.bigData
|
|
137
|
+
return {
|
|
138
|
+
bigData
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
watch: {
|
|
142
|
+
columns() {
|
|
143
|
+
this.colsKey = this.colsKey + 1
|
|
144
|
+
},
|
|
145
|
+
size(val) {
|
|
146
|
+
this.sizeC = val
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
mounted() {
|
|
150
|
+
console.log(this.data)
|
|
151
|
+
let inTable = this.$refs['el-table']
|
|
152
|
+
if (inTable) {
|
|
153
|
+
this.$refs['table'] = inTable
|
|
154
|
+
this.clearSelection = inTable.clearSelection
|
|
155
|
+
this.toggleRowSelection = inTable.toggleRowSelection
|
|
156
|
+
this.toggleAllSelection = inTable.toggleAllSelection
|
|
157
|
+
this.toggleRowExpansion = inTable.toggleRowExpansion
|
|
158
|
+
this.setCurrentRow = inTable.setCurrentRow
|
|
159
|
+
this.clearSort = inTable.clearSort
|
|
160
|
+
this.clearFilter = inTable.clearFilter
|
|
161
|
+
this.doLayout = inTable.doLayout
|
|
162
|
+
this.sort = inTable.sort
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
methods: {
|
|
166
|
+
bigFilter(arg) {
|
|
167
|
+
let filters = arg.filters || []
|
|
168
|
+
let elFilters = {}
|
|
169
|
+
filters.forEach((item) => {
|
|
170
|
+
let key = item.column.className
|
|
171
|
+
if (key && typeof key === 'string') {
|
|
172
|
+
let _key = key.split(',').find((s) => s.includes('key@'))
|
|
173
|
+
|
|
174
|
+
if (_key) _key = _key.replace('key@', '')
|
|
175
|
+
|
|
176
|
+
if (_key) key = _key
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
elFilters[key || item.property] = item.values
|
|
180
|
+
})
|
|
181
|
+
this.$emit('filter-change', elFilters, arg)
|
|
182
|
+
},
|
|
183
|
+
bigExpand(arg) {
|
|
184
|
+
this.$emit('expand-change', arg.row, arg.expanded, arg)
|
|
185
|
+
},
|
|
186
|
+
sizeUp(size) {
|
|
187
|
+
this.sizeC = size
|
|
188
|
+
this.$emit('update:size', size)
|
|
189
|
+
},
|
|
190
|
+
sizeSet(el) {
|
|
191
|
+
this.sizeBind = el
|
|
192
|
+
|
|
193
|
+
let inTable = this.$refs['el-table']
|
|
194
|
+
if (inTable) {
|
|
195
|
+
inTable.doLayout()
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
</script>
|
|
201
|
+
<style>
|
|
202
|
+
.cell-default-set-- .el-table__body .el-table__cell .cell:empty::before {
|
|
203
|
+
content: '--';
|
|
204
|
+
}
|
|
205
|
+
.clear-in-form-margin .el-table__body .el-table__cell .cell .el-form-item {
|
|
206
|
+
margin-bottom: 0;
|
|
207
|
+
}
|
|
208
|
+
</style>
|
package/src/index.js
CHANGED
|
@@ -50,6 +50,7 @@ import StatisPopover from './components/Statis/statisPopover.vue'
|
|
|
50
50
|
import Step from './components/Step/index.vue'
|
|
51
51
|
import Suspend from './components/Suspend/index.vue'
|
|
52
52
|
import Table from './components/Table/index.vue'
|
|
53
|
+
import TablePro from './components/TablePro/index.vue'
|
|
53
54
|
import TableOperate from './components/TableOperateColumn/OperateBtns.vue'
|
|
54
55
|
import TableOperateColumn from './components/TableOperateColumn/index.vue'
|
|
55
56
|
import TableSetSize from './components/TableSetSize'
|
|
@@ -155,6 +156,7 @@ const components = [
|
|
|
155
156
|
FooterBox,
|
|
156
157
|
Filters,
|
|
157
158
|
Table,
|
|
159
|
+
TablePro,
|
|
158
160
|
TableOperate,
|
|
159
161
|
TableOperateColumn,
|
|
160
162
|
TableSetSize,
|
|
@@ -295,6 +297,7 @@ export {
|
|
|
295
297
|
Step,
|
|
296
298
|
Suspend,
|
|
297
299
|
Table,
|
|
300
|
+
TablePro,
|
|
298
301
|
TableOperate,
|
|
299
302
|
TableOperateColumn,
|
|
300
303
|
TableSetSize,
|