n20-common-lib 1.3.35 → 1.3.38

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 +2 -2
  2. package/src/assets/css/_coreLib.scss +0 -1
  3. package/src/assets/css/alert.scss +2 -5
  4. package/src/assets/css/cl-form-item.scss +24 -10
  5. package/src/assets/css/el-button.scss +2 -1
  6. package/src/assets/css/normalize.scss +125 -5
  7. package/src/components/Anchor/AnchorItem.vue +1 -1
  8. package/src/components/Button/button-group.vue +0 -6
  9. package/src/components/DatePicker/index.vue +6 -0
  10. package/src/components/DatePicker/por.vue +2 -0
  11. package/src/components/ECharts/index.vue +0 -1
  12. package/src/components/FileImport/_index.vue +2 -194
  13. package/src/components/FileImport/index.vue +174 -2
  14. package/src/components/Filters/indexO.vue +14 -12
  15. package/src/components/FlowStep/index.vue +50 -27
  16. package/src/components/InputNumber/index.vue +6 -1
  17. package/src/components/InputNumber/numberRange.vue +17 -2
  18. package/src/components/LoginTemporary/index.vue +43 -32
  19. package/src/components/MoreTab/index.vue +1 -4
  20. package/src/components/PageHeader/index.vue +1 -1
  21. package/src/components/SecondaryTab/index.vue +0 -1
  22. package/src/components/SelectLazy/index.vue +2 -2
  23. package/src/components/Sifting/index.vue +1 -2
  24. package/src/components/Step/index.vue +0 -1
  25. package/src/components/TertiaryTab/index.vue +0 -1
  26. package/src/directives/VClickOutside/index.js +4 -4
  27. package/src/directives/VRuleKey/index.js +194 -0
  28. package/src/index.js +2 -0
  29. package/src/utils/repairElementUI.js +51 -1
  30. package/src/utils/tableheaderFilterpanel.vue +249 -0
  31. package/style/index.css +3 -3
  32. package/style/index.css.map +1 -1
  33. package/theme/blue.css +3 -3
  34. package/theme/green.css +3 -3
  35. package/theme/lightBlue.css +3 -3
  36. package/theme/orange.css +3 -3
  37. package/theme/purple.css +3 -3
  38. package/theme/red.css +3 -3
  39. package/theme/yellow.css +3 -3
  40. package/src/components/Search/index.vue +0 -485
  41. package/src/components/Search/style.scss +0 -93
@@ -0,0 +1,249 @@
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="请输入"
13
+ clearable
14
+ suffix-icon="el-icon-search"
15
+ />
16
+ <div>
17
+ <el-scrollbar>
18
+ <el-checkbox
19
+ v-model="allCheck"
20
+ :label="true"
21
+ :indeterminate="filteredValue.length > 0"
22
+ @change="allChange"
23
+ >{{ filters | alltextF }}</el-checkbox
24
+ >
25
+ <el-checkbox-group v-model="filteredValue" class="flex-column">
26
+ <template v-for="filter in filters">
27
+ <el-checkbox
28
+ v-if="filter.text.includes(searchVal)"
29
+ :key="filter.value"
30
+ class="m-t-s"
31
+ :label="filter.value"
32
+ >{{ filter | textF }}</el-checkbox
33
+ >
34
+ </template>
35
+ </el-checkbox-group>
36
+ </el-scrollbar>
37
+ </div>
38
+ <div class="flex-box flex-c m-t-m">
39
+ <el-button
40
+ type="primary"
41
+ size="mini"
42
+ @click="
43
+ () => {
44
+ filteredValue.length ? handleConfirm() : handleReset()
45
+ }
46
+ "
47
+ >
48
+ 确认
49
+ </el-button>
50
+ <el-button plain size="mini" @click="handleReset">清空</el-button>
51
+ </div>
52
+ </div>
53
+ <div
54
+ v-else
55
+ v-show="showPopper"
56
+ v-click-outside:capture="handleOutsideClick"
57
+ class="el-table-filter p-a m-t"
58
+ >
59
+ <el-input
60
+ v-model="searchVal"
61
+ class="input-w m-b-ss"
62
+ placeholder="请输入"
63
+ clearable
64
+ suffix-icon="el-icon-search"
65
+ />
66
+ <ul class="el-table-filter__list">
67
+ <li
68
+ class="el-table-filter__list-item"
69
+ :class="{
70
+ 'is-active': filterValue === undefined || filterValue === null
71
+ }"
72
+ @click="handleSelect(null)"
73
+ >
74
+ {{ filters | alltextF }}
75
+ </li>
76
+ <template v-for="filter in filters">
77
+ <li
78
+ v-if="filter.text.includes(searchVal)"
79
+ :key="filter.value"
80
+ class="el-table-filter__list-item"
81
+ :label="filter.value"
82
+ :class="{ 'is-active': isActive(filter) }"
83
+ @click="handleSelect(filter.value)"
84
+ >
85
+ {{ filter | textF }}
86
+ </li>
87
+ </template>
88
+ </ul>
89
+ </div>
90
+ </transition>
91
+ </template>
92
+
93
+ <script>
94
+ import Popper from 'element-ui/lib/utils/vue-popper.js'
95
+ export default {
96
+ name: 'ElTableFilterPanelPor',
97
+ filters: {
98
+ textF(item) {
99
+ if (item.count === undefined) {
100
+ return item.text
101
+ } else {
102
+ return item.text + ' (' + 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
+ console.log(this.filteredValue, 567)
149
+ if (typeof value !== 'undefined' && value !== null) {
150
+ this.filteredValue.splice(0, 1, value)
151
+ } else {
152
+ this.filteredValue.splice(0, 1)
153
+ }
154
+ }
155
+ }
156
+ },
157
+
158
+ filteredValue: {
159
+ get() {
160
+ if (this.column) {
161
+ return this.column.filteredValue || []
162
+ }
163
+ return []
164
+ },
165
+ set(value) {
166
+ if (this.column) {
167
+ this.column.filteredValue = value
168
+ }
169
+ }
170
+ },
171
+
172
+ multiple() {
173
+ if (this.column) {
174
+ return this.column.filterMultiple
175
+ }
176
+ return true
177
+ }
178
+ },
179
+
180
+ mounted() {
181
+ this.popperElm = this.$el
182
+ this.referenceElm = this.cell
183
+ this.table.bodyWrapper.addEventListener('scroll', () => {
184
+ this.updatePopper()
185
+ })
186
+
187
+ this.$watch('showPopper', (value) => {
188
+ if (this.column) this.column.filterOpened = value
189
+ if (value) this.searchVal = ''
190
+ // if (value) {
191
+ // Dropdown.open(this)
192
+ // } else {
193
+ // Dropdown.close(this)
194
+ // }
195
+ })
196
+ },
197
+
198
+ methods: {
199
+ isActive(filter) {
200
+ return filter.value === this.filterValue
201
+ },
202
+
203
+ handleOutsideClick() {
204
+ setTimeout(() => {
205
+ this.showPopper = false
206
+ }, 16)
207
+ },
208
+
209
+ handleConfirm() {
210
+ this.confirmFilter(this.filteredValue)
211
+ this.handleOutsideClick()
212
+ },
213
+
214
+ handleReset() {
215
+ this.filteredValue = []
216
+ this.confirmFilter(this.filteredValue)
217
+ this.handleOutsideClick()
218
+ },
219
+
220
+ handleSelect(filterValue) {
221
+ this.filterValue = filterValue
222
+
223
+ if (typeof filterValue !== 'undefined' && filterValue !== null) {
224
+ this.confirmFilter(this.filteredValue)
225
+ } else {
226
+ this.confirmFilter([])
227
+ }
228
+
229
+ this.handleOutsideClick()
230
+ },
231
+
232
+ confirmFilter(filteredValue) {
233
+ this.table.store.commit('filterChange', {
234
+ column: this.column,
235
+ values: filteredValue
236
+ })
237
+ this.table.store.updateAllSelected()
238
+ },
239
+
240
+ allChange(val) {
241
+ if (val) {
242
+ this.filteredValue = this.filters.map((f) => f.value)
243
+ } else {
244
+ this.filteredValue = []
245
+ }
246
+ }
247
+ }
248
+ }
249
+ </script>