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.2",
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",
@@ -1,7 +1,7 @@
1
1
  <script>
2
2
  import ExpandablePane from './main.vue'
3
3
  export default {
4
- ...ExpandablePane,
5
- name: 'Expandable'
4
+ name: 'Expandable',
5
+ extends: ExpandablePane
6
6
  }
7
7
  </script>
@@ -50,8 +50,11 @@ export default {
50
50
  }
51
51
  },
52
52
  watch: {
53
- defaultExpand(val) {
54
- this.expand = val
53
+ defaultExpand: {
54
+ handler(val) {
55
+ this.expand = val
56
+ },
57
+ immediate: true
55
58
  }
56
59
  },
57
60
  methods: {
@@ -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,10 @@
1
+ import vxeTable from 'vxe-table'
2
+ import 'vxe-table/lib/style.css'
3
+
4
+ function install(Vue) {
5
+ Vue.use(vxeTable)
6
+ }
7
+
8
+ export default {
9
+ install
10
+ }
@@ -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,