t20-common-lib 0.9.14 → 0.10.0

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.
Files changed (41) hide show
  1. package/package.json +64 -86
  2. package/packages/branch-bank-select/index.js +8 -8
  3. package/packages/branch-bank-select/src/main.vue +179 -179
  4. package/packages/common-collapse/index.js +8 -8
  5. package/packages/common-collapse/src/main.vue +147 -147
  6. package/packages/form-page/index.js +8 -8
  7. package/packages/form-page/src/main.vue +55 -55
  8. package/packages/input-number/index.js +8 -0
  9. package/packages/input-number/src/main.vue +184 -0
  10. package/packages/main-page/index.js +8 -8
  11. package/packages/main-page/src/main.vue +43 -43
  12. package/packages/multi-currency-statistics/index.js +8 -8
  13. package/packages/multi-currency-statistics/src/main.vue +229 -229
  14. package/packages/page-header/index.js +8 -8
  15. package/packages/page-header/src/main.vue +95 -95
  16. package/packages/statis-card/index.js +8 -8
  17. package/packages/statis-card/src/main.vue +250 -250
  18. package/packages/tab-page/index.js +8 -8
  19. package/packages/tab-page/src/main.vue +101 -101
  20. package/packages/tab-pane/index.js +8 -8
  21. package/packages/tab-pane/src/main.vue +185 -185
  22. package/packages/table-page/index.js +8 -8
  23. package/packages/table-page/src/main.vue +42 -42
  24. package/packages/theme-chalk/src/common/element-variables.scss +1045 -1045
  25. package/packages/theme-chalk/src/common/normalize.scss +869 -869
  26. package/packages/theme-chalk/src/index.scss +8 -8
  27. package/src/api/common.js +20 -20
  28. package/src/i18n.json +4 -4
  29. package/src/index.js +75 -71
  30. package/src/store/index.js +25 -25
  31. package/src/store/modules/user.js +42 -42
  32. package/src/utils/asciiWidth.js +107 -107
  33. package/src/utils/common.js +12 -12
  34. package/src/utils/date.js +43 -43
  35. package/src/utils/exportFile.js +6 -6
  36. package/src/utils/i18n/cn2hk.json +1270 -1270
  37. package/src/utils/i18n/index.js +69 -69
  38. package/src/utils/repairElementUI.js +141 -141
  39. package/src/utils/tableCellUtils.js +54 -54
  40. package/src/utils/tableheaderFilterpanel.vue +257 -257
  41. package/style/index.css +25 -25
@@ -1,257 +1,257 @@
1
- <template>
2
- <transition name="el-zoom-in-top">
3
- <div
4
- v-if="multiple"
5
- v-show="showPopper"
6
- v-click-outside:capture="handleOutsideClick"
7
- class="el-table-filter p-a m-t"
8
- >
9
- <el-input
10
- v-model="searchVal"
11
- class="input-w m-b"
12
- :placeholder="'请输入' | $lc"
13
- clearable
14
- suffix-icon="el-icon-search"
15
- />
16
- <div>
17
- <el-checkbox v-model="allCheck" :label="true" :indeterminate="indeterminate"
18
- >{{ '全部' | $lc }}{{ filters | alltextF }}</el-checkbox
19
- >
20
- </div>
21
- <el-checkbox-group v-model="filteredValue" class="input-w p-b-s" style="max-height: 226px; overflow: auto">
22
- <template v-for="filter in filters">
23
- <el-checkbox
24
- v-if="filter.text.includes(searchVal)"
25
- :key="filter.value"
26
- class="m-t-s m-r-0"
27
- :label="filter.value"
28
- style="display: block"
29
- >
30
- <!-- v-title="filter.text" :show-overflow-tooltip="true" -->
31
- <span class="align-bottom">{{ filter.text }}</span>
32
- <span>{{ filter | countF }}</span>
33
- </el-checkbox>
34
- </template>
35
- </el-checkbox-group>
36
- <div class="flex-box flex-c m-t-s">
37
- <el-button
38
- type="primary"
39
- size="mini"
40
- @click="
41
- () => {
42
- filteredValue.length ? handleConfirm() : handleReset()
43
- }
44
- "
45
- >
46
- {{ '确认' | $lc }}
47
- </el-button>
48
- <el-button plain size="mini" @click="handleReset">{{ '清空' | $lc }}</el-button>
49
- </div>
50
- </div>
51
- <div v-else v-show="showPopper" v-click-outside:capture="handleOutsideClick" class="el-table-filter p-a m-t">
52
- <el-input
53
- v-model="searchVal"
54
- class="input-w m-b-ss"
55
- :placeholder="'请输入' | $lc"
56
- clearable
57
- suffix-icon="el-icon-search"
58
- />
59
- <ul class="el-table-filter__list">
60
- <li
61
- class="el-table-filter__list-item"
62
- :class="{
63
- 'is-active': filterValue === undefined || filterValue === null
64
- }"
65
- @click="handleSelect(null)"
66
- >
67
- {{ '全部' | $lc }}{{ filters | alltextF }}
68
- </li>
69
- </ul>
70
- <ul class="el-table-filter__list" style="max-height: 226px; overflow: auto">
71
- <template v-for="filter in filters">
72
- <li
73
- v-if="filter.text.includes(searchVal)"
74
- :key="filter.value"
75
- class="el-table-filter__list-item"
76
- :label="filter.value"
77
- :class="{ 'is-active': isActive(filter) }"
78
- @click="handleSelect(filter.value)"
79
- >
80
- <!-- v-title="filter.text" :show-overflow-tooltip="true" -->
81
- <span class="text-ellipsis align-bottom" style="display: inline-block; max-width: 12em">{{
82
- filter.text
83
- }}</span>
84
- <span>{{ filter | countF }}</span>
85
- </li>
86
- </template>
87
- </ul>
88
- </div>
89
- </transition>
90
- </template>
91
-
92
- <script>
93
- // import { $lc } from './i18n/index'
94
- import Popper from 'element-ui/lib/utils/vue-popper.js'
95
- export default {
96
- name: 'ElTableFilterPanelPor',
97
- filters: {
98
- countF(item) {
99
- if (item.count === undefined) {
100
- return ''
101
- } else {
102
- return ' (' + item.count + ')'
103
- }
104
- },
105
- alltextF(list = []) {
106
- if (list.some((c) => c.count !== undefined)) {
107
- let total = 0
108
- list.forEach((c) => {
109
- if (!isNaN(c.count)) {
110
- total = total + Number(c.count)
111
- }
112
- })
113
- return ' (' + total + ')'
114
- } else {
115
- return ''
116
- }
117
- }
118
- },
119
- mixins: [Popper],
120
- props: {
121
- placement: {
122
- type: String,
123
- default: 'bottom-end'
124
- }
125
- },
126
-
127
- data() {
128
- return {
129
- table: null,
130
- cell: null,
131
- column: null,
132
- searchVal: ''
133
- // allCheck: false
134
- }
135
- },
136
-
137
- computed: {
138
- filters() {
139
- return this.column && this.column.filters
140
- },
141
-
142
- filterValue: {
143
- get() {
144
- return (this.column.filteredValue || [])[0]
145
- },
146
- set(value) {
147
- if (this.filteredValue) {
148
- if (typeof value !== 'undefined' && value !== null) {
149
- this.filteredValue.splice(0, 1, value)
150
- } else {
151
- this.filteredValue.splice(0, 1)
152
- }
153
- }
154
- }
155
- },
156
-
157
- filteredValue: {
158
- get() {
159
- if (this.column) {
160
- return this.column.filteredValue || []
161
- }
162
- return []
163
- },
164
- set(value) {
165
- if (this.column) {
166
- this.column.filteredValue = value
167
- }
168
- }
169
- },
170
-
171
- allCheck: {
172
- get() {
173
- return this.filteredValue.length === 0 ? false : this.filteredValue.length === this.filters.length
174
- },
175
- set(val) {
176
- if (val) {
177
- this.filteredValue = this.filters.map((f) => f.value)
178
- } else {
179
- this.filteredValue = []
180
- }
181
- }
182
- },
183
-
184
- indeterminate() {
185
- return this.filteredValue.length > 0 && this.filteredValue.length !== this.filters.length
186
- },
187
-
188
- multiple() {
189
- if (this.column) {
190
- return this.column.filterMultiple
191
- }
192
- return true
193
- }
194
- },
195
-
196
- mounted() {
197
- this.popperElm = this.$el
198
- this.referenceElm = this.cell
199
- this.table.bodyWrapper.addEventListener('scroll', () => {
200
- this.updatePopper()
201
- })
202
-
203
- this.$watch('showPopper', (value) => {
204
- if (this.column) this.column.filterOpened = value
205
- if (value) this.searchVal = ''
206
- // if (value) {
207
- // Dropdown.open(this)
208
- // } else {
209
- // Dropdown.close(this)
210
- // }
211
- })
212
- },
213
-
214
- methods: {
215
- isActive(filter) {
216
- return filter.value === this.filterValue
217
- },
218
-
219
- handleOutsideClick() {
220
- setTimeout(() => {
221
- this.showPopper = false
222
- }, 16)
223
- },
224
-
225
- handleConfirm() {
226
- this.confirmFilter(this.filteredValue)
227
- this.handleOutsideClick()
228
- },
229
-
230
- handleReset() {
231
- this.filteredValue = []
232
- this.confirmFilter(this.filteredValue)
233
- this.handleOutsideClick()
234
- },
235
-
236
- handleSelect(filterValue) {
237
- this.filterValue = filterValue
238
-
239
- if (typeof filterValue !== 'undefined' && filterValue !== null) {
240
- this.confirmFilter(this.filteredValue)
241
- } else {
242
- this.confirmFilter([])
243
- }
244
-
245
- this.handleOutsideClick()
246
- },
247
-
248
- confirmFilter(filteredValue) {
249
- this.table.store.commit('filterChange', {
250
- column: this.column,
251
- values: filteredValue
252
- })
253
- this.table.store.updateAllSelected()
254
- }
255
- }
256
- }
257
- </script>
1
+ <template>
2
+ <transition name="el-zoom-in-top">
3
+ <div
4
+ v-if="multiple"
5
+ v-show="showPopper"
6
+ v-click-outside:capture="handleOutsideClick"
7
+ class="el-table-filter p-a m-t"
8
+ >
9
+ <el-input
10
+ v-model="searchVal"
11
+ class="input-w m-b"
12
+ :placeholder="'请输入' | $lc"
13
+ clearable
14
+ suffix-icon="el-icon-search"
15
+ />
16
+ <div>
17
+ <el-checkbox v-model="allCheck" :label="true" :indeterminate="indeterminate"
18
+ >{{ '全部' | $lc }}{{ filters | alltextF }}</el-checkbox
19
+ >
20
+ </div>
21
+ <el-checkbox-group v-model="filteredValue" class="input-w p-b-s" style="max-height: 226px; overflow: auto">
22
+ <template v-for="filter in filters">
23
+ <el-checkbox
24
+ v-if="filter.text.includes(searchVal)"
25
+ :key="filter.value"
26
+ class="m-t-s m-r-0"
27
+ :label="filter.value"
28
+ style="display: block"
29
+ >
30
+ <!-- v-title="filter.text" :show-overflow-tooltip="true" -->
31
+ <span class="align-bottom">{{ filter.text }}</span>
32
+ <span>{{ filter | countF }}</span>
33
+ </el-checkbox>
34
+ </template>
35
+ </el-checkbox-group>
36
+ <div class="flex-box flex-c m-t-s">
37
+ <el-button
38
+ type="primary"
39
+ size="mini"
40
+ @click="
41
+ () => {
42
+ filteredValue.length ? handleConfirm() : handleReset()
43
+ }
44
+ "
45
+ >
46
+ {{ '确认' | $lc }}
47
+ </el-button>
48
+ <el-button plain size="mini" @click="handleReset">{{ '清空' | $lc }}</el-button>
49
+ </div>
50
+ </div>
51
+ <div v-else v-show="showPopper" v-click-outside:capture="handleOutsideClick" class="el-table-filter p-a m-t">
52
+ <el-input
53
+ v-model="searchVal"
54
+ class="input-w m-b-ss"
55
+ :placeholder="'请输入' | $lc"
56
+ clearable
57
+ suffix-icon="el-icon-search"
58
+ />
59
+ <ul class="el-table-filter__list">
60
+ <li
61
+ class="el-table-filter__list-item"
62
+ :class="{
63
+ 'is-active': filterValue === undefined || filterValue === null
64
+ }"
65
+ @click="handleSelect(null)"
66
+ >
67
+ {{ '全部' | $lc }}{{ filters | alltextF }}
68
+ </li>
69
+ </ul>
70
+ <ul class="el-table-filter__list" style="max-height: 226px; overflow: auto">
71
+ <template v-for="filter in filters">
72
+ <li
73
+ v-if="filter.text.includes(searchVal)"
74
+ :key="filter.value"
75
+ class="el-table-filter__list-item"
76
+ :label="filter.value"
77
+ :class="{ 'is-active': isActive(filter) }"
78
+ @click="handleSelect(filter.value)"
79
+ >
80
+ <!-- v-title="filter.text" :show-overflow-tooltip="true" -->
81
+ <span class="text-ellipsis align-bottom" style="display: inline-block; max-width: 12em">{{
82
+ filter.text
83
+ }}</span>
84
+ <span>{{ filter | countF }}</span>
85
+ </li>
86
+ </template>
87
+ </ul>
88
+ </div>
89
+ </transition>
90
+ </template>
91
+
92
+ <script>
93
+ // import { $lc } from './i18n/index'
94
+ import Popper from 'element-ui/lib/utils/vue-popper.js'
95
+ export default {
96
+ name: 'ElTableFilterPanelPor',
97
+ filters: {
98
+ countF(item) {
99
+ if (item.count === undefined) {
100
+ return ''
101
+ } else {
102
+ return ' (' + item.count + ')'
103
+ }
104
+ },
105
+ alltextF(list = []) {
106
+ if (list.some((c) => c.count !== undefined)) {
107
+ let total = 0
108
+ list.forEach((c) => {
109
+ if (!isNaN(c.count)) {
110
+ total = total + Number(c.count)
111
+ }
112
+ })
113
+ return ' (' + total + ')'
114
+ } else {
115
+ return ''
116
+ }
117
+ }
118
+ },
119
+ mixins: [Popper],
120
+ props: {
121
+ placement: {
122
+ type: String,
123
+ default: 'bottom-end'
124
+ }
125
+ },
126
+
127
+ data() {
128
+ return {
129
+ table: null,
130
+ cell: null,
131
+ column: null,
132
+ searchVal: ''
133
+ // allCheck: false
134
+ }
135
+ },
136
+
137
+ computed: {
138
+ filters() {
139
+ return this.column && this.column.filters
140
+ },
141
+
142
+ filterValue: {
143
+ get() {
144
+ return (this.column.filteredValue || [])[0]
145
+ },
146
+ set(value) {
147
+ if (this.filteredValue) {
148
+ if (typeof value !== 'undefined' && value !== null) {
149
+ this.filteredValue.splice(0, 1, value)
150
+ } else {
151
+ this.filteredValue.splice(0, 1)
152
+ }
153
+ }
154
+ }
155
+ },
156
+
157
+ filteredValue: {
158
+ get() {
159
+ if (this.column) {
160
+ return this.column.filteredValue || []
161
+ }
162
+ return []
163
+ },
164
+ set(value) {
165
+ if (this.column) {
166
+ this.column.filteredValue = value
167
+ }
168
+ }
169
+ },
170
+
171
+ allCheck: {
172
+ get() {
173
+ return this.filteredValue.length === 0 ? false : this.filteredValue.length === this.filters.length
174
+ },
175
+ set(val) {
176
+ if (val) {
177
+ this.filteredValue = this.filters.map((f) => f.value)
178
+ } else {
179
+ this.filteredValue = []
180
+ }
181
+ }
182
+ },
183
+
184
+ indeterminate() {
185
+ return this.filteredValue.length > 0 && this.filteredValue.length !== this.filters.length
186
+ },
187
+
188
+ multiple() {
189
+ if (this.column) {
190
+ return this.column.filterMultiple
191
+ }
192
+ return true
193
+ }
194
+ },
195
+
196
+ mounted() {
197
+ this.popperElm = this.$el
198
+ this.referenceElm = this.cell
199
+ this.table.bodyWrapper.addEventListener('scroll', () => {
200
+ this.updatePopper()
201
+ })
202
+
203
+ this.$watch('showPopper', (value) => {
204
+ if (this.column) this.column.filterOpened = value
205
+ if (value) this.searchVal = ''
206
+ // if (value) {
207
+ // Dropdown.open(this)
208
+ // } else {
209
+ // Dropdown.close(this)
210
+ // }
211
+ })
212
+ },
213
+
214
+ methods: {
215
+ isActive(filter) {
216
+ return filter.value === this.filterValue
217
+ },
218
+
219
+ handleOutsideClick() {
220
+ setTimeout(() => {
221
+ this.showPopper = false
222
+ }, 16)
223
+ },
224
+
225
+ handleConfirm() {
226
+ this.confirmFilter(this.filteredValue)
227
+ this.handleOutsideClick()
228
+ },
229
+
230
+ handleReset() {
231
+ this.filteredValue = []
232
+ this.confirmFilter(this.filteredValue)
233
+ this.handleOutsideClick()
234
+ },
235
+
236
+ handleSelect(filterValue) {
237
+ this.filterValue = filterValue
238
+
239
+ if (typeof filterValue !== 'undefined' && filterValue !== null) {
240
+ this.confirmFilter(this.filteredValue)
241
+ } else {
242
+ this.confirmFilter([])
243
+ }
244
+
245
+ this.handleOutsideClick()
246
+ },
247
+
248
+ confirmFilter(filteredValue) {
249
+ this.table.store.commit('filterChange', {
250
+ column: this.column,
251
+ values: filteredValue
252
+ })
253
+ this.table.store.updateAllSelected()
254
+ }
255
+ }
256
+ }
257
+ </script>
package/style/index.css CHANGED
@@ -1,26 +1,26 @@
1
- .el-table__empty-block {
2
- position: sticky;
3
- width: 100% !important;
4
- left: 0 !important;
5
- }
6
- .n20-empty img {
7
- display: none !important;
8
- }
9
-
10
- @media only screen and (max-width: 1600px) {
11
- .col-span-24-custom .el-textarea {
12
- width: calc(50% + 8em + 224px) !important;
13
- }
14
- }
15
-
16
- @media only screen and (max-width: 1024px) {
17
- .col-span-24-custom .el-textarea {
18
- width: 100% !important;
19
- }
20
- }
21
-
22
- @media only screen and (min-width: 1601px) {
23
- .col-span-24-custom .el-textarea {
24
- width: calc(33.3% + 6em + 224px) !important;
25
- }
1
+ .el-table__empty-block {
2
+ position: sticky;
3
+ width: 100% !important;
4
+ left: 0 !important;
5
+ }
6
+ .n20-empty img {
7
+ display: none !important;
8
+ }
9
+
10
+ @media only screen and (max-width: 1600px) {
11
+ .col-span-24-custom .el-textarea {
12
+ width: calc(50% + 8em + 224px) !important;
13
+ }
14
+ }
15
+
16
+ @media only screen and (max-width: 1024px) {
17
+ .col-span-24-custom .el-textarea {
18
+ width: 100% !important;
19
+ }
20
+ }
21
+
22
+ @media only screen and (min-width: 1601px) {
23
+ .col-span-24-custom .el-textarea {
24
+ width: calc(33.3% + 6em + 224px) !important;
25
+ }
26
26
  }