n20-common-lib 2.6.2 → 2.6.3-beta
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 +5 -4
- package/src/assets/css/cl-file-upload-table.scss +2 -2
- package/src/assets/css/cl-layout-header.scss +34 -5
- package/src/assets/css/cl-message.scss +55 -1
- package/src/assets/css/filter.scss +1 -1
- package/src/components/AdvancedFilter/formItemRender.vue +8 -4
- package/src/components/AdvancedFilter/index.vue +34 -13
- package/src/components/AdvancedFilter/utils.js +8 -0
- package/src/components/Anchor/index.vue +5 -1
- package/src/components/ApprovalButtons/showAppOpi.vue +1 -0
- package/src/components/DateSelect/index.vue +29 -4
- package/src/components/DragList/index.vue +6 -2
- package/src/components/ElectronicArchive/index.vue +766 -0
- package/src/components/FileImport/index.vue +6 -0
- package/src/components/FileUploadTable/index.vue +1 -1
- package/src/components/Filters/index.vue +1 -1
- package/src/components/InputNumber/numberRange.vue +2 -0
- package/src/components/Layout/HeaderWrap/changePwd.vue +16 -9
- package/src/components/Layout/HeaderWrap/index.vue +10 -0
- package/src/components/Layout/HeaderWrap/indexN.vue +19 -4
- package/src/components/LoginTemporary/form.vue +8 -0
- package/src/components/SelectDatePickerPro/index.vue +13 -13
- package/src/components/ShowColumn/index.vue +3 -3
- package/src/components/TablePro/filterContent.vue +279 -0
- package/src/components/TablePro/filterContent_tree.vue +172 -0
- package/src/components/TablePro/index.js +30 -0
- package/src/components/TablePro/index.vue +3 -2
- package/src/components/Tree/index.vue +6 -1
- package/src/components/Upload/index.vue +5 -0
- package/src/components/Upload/uploadMsg.vue +7 -5
- package/src/components/operatingStatus/index.vue +5 -3
- package/src/directives/watermark/index.js +69 -0
- package/src/i18n.json +3 -0
- package/src/index.js +117 -109
- package/src/utils/amountInWords.js +17 -100
- package/src/utils/numberPor.js +24 -27
- package/style/index.css +1 -1
- package/theme/blue.css +1 -1
- package/theme/cctcRed.css +1 -1
- package/theme/green.css +1 -1
- package/theme/lightBlue.css +1 -1
- package/theme/orange.css +1 -1
- package/theme/purple.css +1 -1
- package/theme/red.css +1 -1
- package/theme/yellow.css +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n20-common-lib",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.3-beta",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -54,15 +54,15 @@
|
|
|
54
54
|
"lz-string": "^1.4.4",
|
|
55
55
|
"normalize.css": "^8.0.1",
|
|
56
56
|
"numerify": "*",
|
|
57
|
+
"nzh": "^1.0.12",
|
|
57
58
|
"panzoom": "*",
|
|
58
59
|
"qrcode": "*",
|
|
59
60
|
"resize-detector": "*",
|
|
60
61
|
"strip-json-comments": "*",
|
|
61
|
-
"v-viewer": "
|
|
62
|
+
"v-viewer": "1.6.4",
|
|
62
63
|
"vuedraggable": "*"
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
65
|
-
"element-ui": "^2.15.14",
|
|
66
66
|
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
|
|
67
67
|
"@babel/plugin-transform-flow-comments": "^7.14.5",
|
|
68
68
|
"@vue/cli-plugin-babel": "~4.5.0",
|
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
"copy-webpack-plugin": "^6.4.1",
|
|
77
77
|
"core-js": "^3.6.5",
|
|
78
78
|
"echarts": "^5.3.3",
|
|
79
|
+
"element-ui": "^2.15.14",
|
|
79
80
|
"eslint": "^6.7.2",
|
|
80
81
|
"eslint-plugin-vue": "^6.2.2",
|
|
81
82
|
"exceljs": "^4.3.0",
|
|
@@ -116,4 +117,4 @@
|
|
|
116
117
|
"last 2 versions",
|
|
117
118
|
"not dead"
|
|
118
119
|
]
|
|
119
|
-
}
|
|
120
|
+
}
|
|
@@ -5,13 +5,16 @@ $--header-color: #3d4a57;
|
|
|
5
5
|
width: auto;
|
|
6
6
|
height: 26px;
|
|
7
7
|
}
|
|
8
|
+
|
|
8
9
|
.header-color {
|
|
9
10
|
color: var(--header-color, $--header-color);
|
|
10
11
|
}
|
|
12
|
+
|
|
11
13
|
.el-divider {
|
|
12
14
|
height: 26px;
|
|
13
15
|
background-color: var(--header-color, #dcdfe6);
|
|
14
16
|
}
|
|
17
|
+
|
|
15
18
|
.header-title {
|
|
16
19
|
margin: 0;
|
|
17
20
|
padding: 0;
|
|
@@ -19,14 +22,17 @@ $--header-color: #3d4a57;
|
|
|
19
22
|
font-weight: 600;
|
|
20
23
|
color: var(--header-color, #000000);
|
|
21
24
|
}
|
|
25
|
+
|
|
22
26
|
.set-user-drop {
|
|
23
27
|
margin-left: auto;
|
|
24
28
|
}
|
|
29
|
+
|
|
25
30
|
.set-user-btn {
|
|
26
31
|
margin-left: auto;
|
|
27
32
|
font-size: 20px;
|
|
28
33
|
cursor: pointer;
|
|
29
34
|
}
|
|
35
|
+
|
|
30
36
|
.news-btn {
|
|
31
37
|
font-size: 20px;
|
|
32
38
|
margin-left: 24px;
|
|
@@ -42,9 +48,11 @@ $--header-color: #3d4a57;
|
|
|
42
48
|
margin-right: 10px;
|
|
43
49
|
cursor: pointer;
|
|
44
50
|
}
|
|
51
|
+
|
|
45
52
|
.el-badge {
|
|
46
53
|
.el-badge__content {
|
|
47
54
|
line-height: 14px;
|
|
55
|
+
height: 14px;
|
|
48
56
|
}
|
|
49
57
|
}
|
|
50
58
|
}
|
|
@@ -53,26 +61,32 @@ $--header-color: #3d4a57;
|
|
|
53
61
|
.el-tabs__item {
|
|
54
62
|
width: 170px !important;
|
|
55
63
|
padding: 0;
|
|
64
|
+
|
|
56
65
|
.el-badge {
|
|
57
66
|
.el-badge__content {
|
|
58
67
|
line-height: 14px;
|
|
59
68
|
}
|
|
69
|
+
|
|
60
70
|
.el-badge__content.is-fixed {
|
|
61
71
|
top: 8px !important;
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
}
|
|
75
|
+
|
|
65
76
|
.notice-list {
|
|
66
77
|
height: 240px;
|
|
67
78
|
overflow-x: hidden;
|
|
68
79
|
overflow-y: auto;
|
|
69
80
|
}
|
|
81
|
+
|
|
70
82
|
.notice-item {
|
|
71
83
|
cursor: pointer;
|
|
84
|
+
|
|
72
85
|
&:hover {
|
|
73
86
|
color: $--color-primary;
|
|
74
87
|
}
|
|
75
88
|
}
|
|
89
|
+
|
|
76
90
|
.unread-notice {
|
|
77
91
|
color: var(--color-danger);
|
|
78
92
|
}
|
|
@@ -89,6 +103,7 @@ $--header-color: #3d4a57;
|
|
|
89
103
|
color: $--color-white;
|
|
90
104
|
border-radius: $--border-radius-base;
|
|
91
105
|
cursor: pointer;
|
|
106
|
+
|
|
92
107
|
&:hover {
|
|
93
108
|
transform: scale(1.05);
|
|
94
109
|
}
|
|
@@ -97,6 +112,7 @@ $--header-color: #3d4a57;
|
|
|
97
112
|
.header-hdyy {
|
|
98
113
|
color: $--header-color !important;
|
|
99
114
|
border-color: $--header-color !important;
|
|
115
|
+
|
|
100
116
|
&:hover {
|
|
101
117
|
color: $--color-primary !important;
|
|
102
118
|
border-color: $--color-primary !important;
|
|
@@ -105,19 +121,18 @@ $--header-color: #3d4a57;
|
|
|
105
121
|
|
|
106
122
|
.user-info-drop-menu-new {
|
|
107
123
|
width: 302px;
|
|
108
|
-
height: 492px;
|
|
124
|
+
// height: 492px;
|
|
109
125
|
padding: 0;
|
|
110
126
|
background: #ffffff;
|
|
111
127
|
border: none;
|
|
112
128
|
border-radius: 8px;
|
|
113
129
|
box-shadow: 0px 0px 20px 4px rgba(0, 0, 0, 0.2);
|
|
130
|
+
|
|
114
131
|
.el-dropdown-menu__item {
|
|
115
132
|
line-height: 37px;
|
|
116
133
|
}
|
|
117
134
|
}
|
|
118
|
-
|
|
119
|
-
height: 522px;
|
|
120
|
-
}
|
|
135
|
+
|
|
121
136
|
|
|
122
137
|
.uif-user-w {
|
|
123
138
|
box-sizing: border-box;
|
|
@@ -125,6 +140,7 @@ $--header-color: #3d4a57;
|
|
|
125
140
|
padding-top: 24px;
|
|
126
141
|
background-size: 100% 100%;
|
|
127
142
|
}
|
|
143
|
+
|
|
128
144
|
.uif-img-w {
|
|
129
145
|
width: 54px;
|
|
130
146
|
height: 54px;
|
|
@@ -137,6 +153,7 @@ $--header-color: #3d4a57;
|
|
|
137
153
|
width: 100%;
|
|
138
154
|
height: 100%;
|
|
139
155
|
}
|
|
156
|
+
|
|
140
157
|
._edit {
|
|
141
158
|
display: none;
|
|
142
159
|
|
|
@@ -153,12 +170,14 @@ $--header-color: #3d4a57;
|
|
|
153
170
|
left: 0;
|
|
154
171
|
top: 0;
|
|
155
172
|
}
|
|
173
|
+
|
|
156
174
|
&:hover {
|
|
157
175
|
._edit {
|
|
158
176
|
display: block;
|
|
159
177
|
}
|
|
160
178
|
}
|
|
161
179
|
}
|
|
180
|
+
|
|
162
181
|
.uif-name {
|
|
163
182
|
margin-top: 12px;
|
|
164
183
|
margin-bottom: 4px;
|
|
@@ -168,6 +187,7 @@ $--header-color: #3d4a57;
|
|
|
168
187
|
text-align: center;
|
|
169
188
|
color: #333333;
|
|
170
189
|
}
|
|
190
|
+
|
|
171
191
|
.uif-gs {
|
|
172
192
|
margin-bottom: 4px;
|
|
173
193
|
height: 17px;
|
|
@@ -176,6 +196,7 @@ $--header-color: #3d4a57;
|
|
|
176
196
|
text-align: center;
|
|
177
197
|
color: #333333;
|
|
178
198
|
}
|
|
199
|
+
|
|
179
200
|
.uif-js {
|
|
180
201
|
margin-bottom: 10px;
|
|
181
202
|
height: 17px;
|
|
@@ -184,12 +205,14 @@ $--header-color: #3d4a57;
|
|
|
184
205
|
text-align: center;
|
|
185
206
|
color: #333333;
|
|
186
207
|
}
|
|
208
|
+
|
|
187
209
|
.uif-by {
|
|
188
210
|
height: 17px;
|
|
189
211
|
line-height: 17px;
|
|
190
212
|
font-size: 12px;
|
|
191
213
|
text-align: center;
|
|
192
214
|
color: #999999;
|
|
215
|
+
|
|
193
216
|
._edit {
|
|
194
217
|
display: inline-block;
|
|
195
218
|
width: 12px;
|
|
@@ -199,12 +222,14 @@ $--header-color: #3d4a57;
|
|
|
199
222
|
opacity: 0;
|
|
200
223
|
cursor: pointer;
|
|
201
224
|
}
|
|
225
|
+
|
|
202
226
|
&:hover {
|
|
203
227
|
._edit {
|
|
204
228
|
opacity: 1;
|
|
205
229
|
}
|
|
206
230
|
}
|
|
207
231
|
}
|
|
232
|
+
|
|
208
233
|
.uif-ydn {
|
|
209
234
|
height: 17px;
|
|
210
235
|
line-height: 17px;
|
|
@@ -213,6 +238,7 @@ $--header-color: #3d4a57;
|
|
|
213
238
|
text-align: right;
|
|
214
239
|
color: #999999;
|
|
215
240
|
}
|
|
241
|
+
|
|
216
242
|
.uby-w {
|
|
217
243
|
box-sizing: border-box;
|
|
218
244
|
width: 406px;
|
|
@@ -222,11 +248,13 @@ $--header-color: #3d4a57;
|
|
|
222
248
|
box-shadow: 0px 0px 20px 4px rgba(0, 0, 0, 0.2);
|
|
223
249
|
padding: 26px 28px 14px;
|
|
224
250
|
}
|
|
251
|
+
|
|
225
252
|
.uby-h {
|
|
226
253
|
font-size: 16px;
|
|
227
254
|
font-weight: normal;
|
|
228
255
|
color: #333333;
|
|
229
256
|
}
|
|
257
|
+
|
|
230
258
|
.uby-h-icon {
|
|
231
259
|
display: inline-block;
|
|
232
260
|
width: 28px;
|
|
@@ -236,9 +264,10 @@ $--header-color: #3d4a57;
|
|
|
236
264
|
font-size: 28px;
|
|
237
265
|
color: $--color-primary;
|
|
238
266
|
}
|
|
267
|
+
|
|
239
268
|
.uby-b {
|
|
240
269
|
margin-top: 10px;
|
|
241
270
|
margin-left: 34px;
|
|
242
271
|
line-height: 20px;
|
|
243
272
|
color: #333333;
|
|
244
|
-
}
|
|
273
|
+
}
|
|
@@ -57,6 +57,60 @@
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
.ElectronicArchive_msgboxPor.el-message-box {
|
|
61
|
+
box-sizing: border-box;
|
|
62
|
+
padding: 32px 32px 24px;
|
|
63
|
+
|
|
64
|
+
.el-message-box__header {
|
|
65
|
+
padding: 0;
|
|
66
|
+
margin-bottom: 12px;
|
|
67
|
+
|
|
68
|
+
.n20-icon-xinxi {
|
|
69
|
+
color: #ffbf00;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.el-message-box__status.el-icon-warning {
|
|
73
|
+
color: #ffbf00;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.el-message-box__content {
|
|
78
|
+
padding: 0;
|
|
79
|
+
margin-top: 12px;
|
|
80
|
+
margin-bottom: 12px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.el-message-box__btns {
|
|
84
|
+
margin-top: 0;
|
|
85
|
+
padding-left: 0;
|
|
86
|
+
padding-right: 0;
|
|
87
|
+
display: flex;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
flex-direction: row-reverse;
|
|
90
|
+
|
|
91
|
+
.el-button.el-button--default:hover {
|
|
92
|
+
color: var(--color-primary);
|
|
93
|
+
background: #ffffff;
|
|
94
|
+
border-color: var(--color-primary);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.el-button.el-button--primary:hover {
|
|
98
|
+
background: var(--color-primary-hover);
|
|
99
|
+
color: #fff;
|
|
100
|
+
border-color: var(--color-primary-hover);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
& .el-button+.el-button {
|
|
104
|
+
margin-left: 0;
|
|
105
|
+
margin-right: 16px;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.el-message-box__headerbtn {
|
|
110
|
+
top: -15px;
|
|
111
|
+
right: -15px;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
60
114
|
.header-show-icon {
|
|
61
115
|
.el-message-box__title {
|
|
62
116
|
justify-content: flex-start;
|
|
@@ -157,4 +211,4 @@
|
|
|
157
211
|
|
|
158
212
|
.el-message-box__status.el-icon-info {
|
|
159
213
|
color: $--messagebox-warning-color;
|
|
160
|
-
}
|
|
214
|
+
}
|
|
@@ -85,6 +85,7 @@ export default {
|
|
|
85
85
|
case 'text':
|
|
86
86
|
case 'number':
|
|
87
87
|
case 'text':
|
|
88
|
+
case 'numberrange':
|
|
88
89
|
return $lc('请输入')
|
|
89
90
|
case 'select':
|
|
90
91
|
case 'search':
|
|
@@ -111,14 +112,14 @@ export default {
|
|
|
111
112
|
if (!type) {
|
|
112
113
|
return context.measureText(value).width * 1.4 + 55
|
|
113
114
|
}
|
|
114
|
-
return (context.measureText(value).width * 1.4 +
|
|
115
|
+
return (context.measureText(value).width * 1.4 + 100) * 2
|
|
115
116
|
}
|
|
116
117
|
|
|
117
118
|
const calcWidth = (value, type) => {
|
|
118
119
|
let W = null
|
|
119
120
|
if (!value) {
|
|
120
121
|
if (type) {
|
|
121
|
-
return w + 110 + 'px'
|
|
122
|
+
return Number(w) + 110 + 'px'
|
|
122
123
|
}
|
|
123
124
|
return w + 'px'
|
|
124
125
|
}
|
|
@@ -130,7 +131,7 @@ export default {
|
|
|
130
131
|
}
|
|
131
132
|
} else {
|
|
132
133
|
if (type) {
|
|
133
|
-
W = w ? w : asciiWidth(item.placeholder || typeEnum[item.type]) +
|
|
134
|
+
W = w ? w : asciiWidth(item.placeholder || typeEnum[item.type]) + 150
|
|
134
135
|
} else {
|
|
135
136
|
W = w ? w : asciiWidth(item.placeholder || typeEnum[item.type]) + 40
|
|
136
137
|
}
|
|
@@ -322,16 +323,18 @@ export default {
|
|
|
322
323
|
const inputRangeProps = {
|
|
323
324
|
startValue: form[item.startValue],
|
|
324
325
|
endValue: form[item.endValue],
|
|
325
|
-
|
|
326
|
+
|
|
326
327
|
// 将 props 对象中的属性应用到 inputRange 上
|
|
327
328
|
...item.props
|
|
328
329
|
}
|
|
329
330
|
elementDom = h('InputNumberRange', {
|
|
330
331
|
directives: [{ name: 'rule-key', value: 'startValue' }],
|
|
331
332
|
attrs: {
|
|
333
|
+
...item.props,
|
|
332
334
|
ruleField: true,
|
|
333
335
|
'rule-form': 'ruleValidate',
|
|
334
336
|
rules: item.rules,
|
|
337
|
+
isClearable: (item.props && item.props.isClearable) ?? true,
|
|
335
338
|
ruleErrorHide: item.ruleErrorHide
|
|
336
339
|
},
|
|
337
340
|
style: {
|
|
@@ -345,6 +348,7 @@ export default {
|
|
|
345
348
|
'update:end-value': (value) => {
|
|
346
349
|
this.$set(form, item.endValue, value)
|
|
347
350
|
},
|
|
351
|
+
clear: this.handleClear,
|
|
348
352
|
blur: this.handleBlur,
|
|
349
353
|
...item.on
|
|
350
354
|
},
|
|
@@ -52,7 +52,7 @@ import axios from '../../utils/axios.js'
|
|
|
52
52
|
import { $lc } from '../../utils/i18n/index.js'
|
|
53
53
|
import cloneDeep from 'lodash/cloneDeep'
|
|
54
54
|
import _debounce from 'lodash/debounce'
|
|
55
|
-
import { getOnlyKey } from './utils'
|
|
55
|
+
import { getOnlyKey, setOptionsMap, getOptionsMap } from './utils'
|
|
56
56
|
const prefixCls = 'n20-advanced-filter'
|
|
57
57
|
export default {
|
|
58
58
|
name: 'AdvancedFilter',
|
|
@@ -125,13 +125,17 @@ export default {
|
|
|
125
125
|
return getOnlyKey(this.onlyKey, data)
|
|
126
126
|
},
|
|
127
127
|
setOptions(id, opts) {
|
|
128
|
+
setOptionsMap(id, opts)
|
|
129
|
+
this.setChoices(id, opts)
|
|
130
|
+
},
|
|
131
|
+
setChoices(id, data) {
|
|
128
132
|
let item = this.GroupData.find((f) => f[this.onlyKey] === id)
|
|
129
133
|
if (item) {
|
|
130
|
-
item.options =
|
|
134
|
+
item.options = data || []
|
|
131
135
|
} else {
|
|
132
136
|
item = this.GroupData.find((f) => f.value === id)
|
|
133
137
|
if (item) {
|
|
134
|
-
item.options =
|
|
138
|
+
item.options = data || []
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
},
|
|
@@ -143,7 +147,11 @@ export default {
|
|
|
143
147
|
if (Array.isArray(this.model[item.value])) {
|
|
144
148
|
return this.model[item.value].length > 0 ? this.prefixCls + '-active' : ''
|
|
145
149
|
} else {
|
|
146
|
-
return this.model[item.value]
|
|
150
|
+
return this.model[item.value] !== null &&
|
|
151
|
+
this.model[item.value] !== undefined &&
|
|
152
|
+
this.model[item.value] !== ''
|
|
153
|
+
? this.prefixCls + '-active'
|
|
154
|
+
: ''
|
|
147
155
|
}
|
|
148
156
|
}
|
|
149
157
|
let flag = ''
|
|
@@ -165,7 +173,7 @@ export default {
|
|
|
165
173
|
handleClose(item) {
|
|
166
174
|
switch (item.type) {
|
|
167
175
|
case 'select':
|
|
168
|
-
this.model
|
|
176
|
+
this.$set(this.model, item.value, item.multiple ? [] : null)
|
|
169
177
|
break
|
|
170
178
|
case 'text':
|
|
171
179
|
case 'search':
|
|
@@ -176,22 +184,27 @@ export default {
|
|
|
176
184
|
case 'month':
|
|
177
185
|
case 'radio':
|
|
178
186
|
case 'week':
|
|
179
|
-
this.model
|
|
187
|
+
this.$set(this.model, item.value, null)
|
|
188
|
+
|
|
180
189
|
break
|
|
181
190
|
case 'checkbox':
|
|
182
|
-
this.model
|
|
183
|
-
|
|
191
|
+
this.$set(this.model, item.value, [])
|
|
184
192
|
break
|
|
185
193
|
case 'numberrange':
|
|
186
|
-
this.model
|
|
187
|
-
this.model
|
|
194
|
+
this.$set(this.model, item.startValue, null)
|
|
195
|
+
this.$set(this.model, item.endValue, null)
|
|
196
|
+
|
|
188
197
|
break
|
|
189
198
|
case 'daterange':
|
|
190
199
|
case 'datetimerange':
|
|
191
200
|
case ' monthrange':
|
|
192
|
-
this.model
|
|
193
|
-
this.model
|
|
201
|
+
this.$set(this.model, item.startDate, null)
|
|
202
|
+
this.$set(this.model, item.endDate, null)
|
|
194
203
|
break
|
|
204
|
+
case 'slot': {
|
|
205
|
+
this.$set(this.model, item.value, null)
|
|
206
|
+
break
|
|
207
|
+
}
|
|
195
208
|
}
|
|
196
209
|
let data = this.GroupData.filter((s) => {
|
|
197
210
|
return s.id !== item.id
|
|
@@ -201,7 +214,7 @@ export default {
|
|
|
201
214
|
this.getFilterList()
|
|
202
215
|
}
|
|
203
216
|
})
|
|
204
|
-
this.$emit('
|
|
217
|
+
this.$emit('clean', this.model)
|
|
205
218
|
},
|
|
206
219
|
cleared() {
|
|
207
220
|
this.$emit('clear')
|
|
@@ -288,6 +301,14 @@ export default {
|
|
|
288
301
|
this.checkList = this.GroupData.map((res) => res.id)
|
|
289
302
|
this.checkC = cloneDeep(this.checkList)
|
|
290
303
|
})
|
|
304
|
+
.finally(() => {
|
|
305
|
+
for (const key in getOptionsMap()) {
|
|
306
|
+
if (Object.hasOwnProperty.call(getOptionsMap(), key)) {
|
|
307
|
+
const data = getOptionsMap()[key]
|
|
308
|
+
this.setChoices(key, data)
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
})
|
|
291
312
|
}
|
|
292
313
|
}
|
|
293
314
|
}
|
|
@@ -2,3 +2,11 @@ export const getOnlyKey = (key, data) => {
|
|
|
2
2
|
if (!key) return Date.now().toString(36) + Math.random().toString(36).substr(2, 5)
|
|
3
3
|
return data[key]
|
|
4
4
|
}
|
|
5
|
+
let options = {}
|
|
6
|
+
export const setOptionsMap = (key, value) => {
|
|
7
|
+
options[key] = value
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const getOptionsMap = () => {
|
|
11
|
+
return options
|
|
12
|
+
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
:style="{ width: navWidth }"
|
|
8
8
|
@click="activitFn"
|
|
9
9
|
/>
|
|
10
|
-
<div ref="anchor-content" class="flex-item" style="height: 100%; overflow: auto">
|
|
10
|
+
<div ref="anchor-content" :class="['flex-item', parentClass]" style="height: 100%; overflow: auto">
|
|
11
11
|
<slot></slot>
|
|
12
12
|
</div>
|
|
13
13
|
<AnchorSidebar
|
|
@@ -40,6 +40,10 @@ export default {
|
|
|
40
40
|
type: String,
|
|
41
41
|
default: 'right'
|
|
42
42
|
},
|
|
43
|
+
parentClass: {
|
|
44
|
+
type: String,
|
|
45
|
+
default: undefined
|
|
46
|
+
},
|
|
43
47
|
navWidth: {
|
|
44
48
|
type: String,
|
|
45
49
|
default: '110px'
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="n20-date-select">
|
|
3
3
|
<el-select v-model="type" placeholder="请选择" style="width: 65px" @change="dateTypeSelectChange">
|
|
4
|
-
<el-option
|
|
4
|
+
<el-option
|
|
5
|
+
v-for="(item, index) in timing.filter((item) => selectList.includes(item.label))"
|
|
6
|
+
:key="index"
|
|
7
|
+
:label="item.label"
|
|
8
|
+
:value="item.value"
|
|
9
|
+
/>
|
|
5
10
|
</el-select>
|
|
6
11
|
<el-date-picker
|
|
7
12
|
v-if="type === 'day'"
|
|
@@ -91,7 +96,7 @@ export default {
|
|
|
91
96
|
},
|
|
92
97
|
selectList: {
|
|
93
98
|
type: Array,
|
|
94
|
-
default: () => []
|
|
99
|
+
default: () => ['日', '周', '月', '季', '年']
|
|
95
100
|
}
|
|
96
101
|
},
|
|
97
102
|
data() {
|
|
@@ -117,12 +122,14 @@ export default {
|
|
|
117
122
|
this.$emit('update:selectType', this.timing.find((item) => item.value === v).label)
|
|
118
123
|
},
|
|
119
124
|
get() {
|
|
120
|
-
return this.timing
|
|
125
|
+
return this.timing
|
|
126
|
+
.filter((item) => this.selectList.includes(item.label))
|
|
127
|
+
.find((item) => item.label === this.selectType).value
|
|
121
128
|
}
|
|
122
129
|
}
|
|
123
130
|
},
|
|
124
131
|
mounted() {
|
|
125
|
-
switch (this.
|
|
132
|
+
switch (this.type) {
|
|
126
133
|
case 'day':
|
|
127
134
|
this.day = [this.value.startDate, this.value.endDate]
|
|
128
135
|
break
|
|
@@ -141,6 +148,24 @@ export default {
|
|
|
141
148
|
}
|
|
142
149
|
},
|
|
143
150
|
methods: {
|
|
151
|
+
matchArrays(arrayA, arrayB) {
|
|
152
|
+
const hashTable = new Map()
|
|
153
|
+
for (const element of arrayA) {
|
|
154
|
+
if (hashTable.has(element)) {
|
|
155
|
+
hashTable.set(element, hashTable.get(element) + 1)
|
|
156
|
+
} else {
|
|
157
|
+
hashTable.set(element, 1)
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const result = []
|
|
161
|
+
for (const element of arrayB) {
|
|
162
|
+
if (hashTable.has(element.label) && hashTable.get(element.label) > 0) {
|
|
163
|
+
result.push(element)
|
|
164
|
+
hashTable.set(element.label, hashTable.get(element.label) - 1)
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return result
|
|
168
|
+
},
|
|
144
169
|
dateTypeSelectChange(value) {
|
|
145
170
|
this.$emit('update:selectType', this.timing.find((item) => item.value === value).label)
|
|
146
171
|
this.day = ''
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
<i class="n20-drag-icon n20-icon-tuodong"></i>
|
|
12
12
|
<slot :item="item" :index="index">
|
|
13
13
|
<span
|
|
14
|
-
@click="$emit('click', item)"
|
|
15
14
|
v-hover-tooltip:158="item[labelKey] || item"
|
|
16
15
|
class="text-ellipsis pointer color-primary"
|
|
16
|
+
@click="$emit('click', item)"
|
|
17
17
|
>{{ item[labelKey] || item }}</span
|
|
18
18
|
>
|
|
19
19
|
</slot>
|
|
20
20
|
<el-link
|
|
21
|
-
v-if="!disabled"
|
|
21
|
+
v-if="!disabled && !hideDelete"
|
|
22
22
|
class="n20-icon-shanchu"
|
|
23
23
|
:underline="false"
|
|
24
24
|
:disabled="inSC && item.checked"
|
|
@@ -44,6 +44,10 @@ export default {
|
|
|
44
44
|
type: String,
|
|
45
45
|
default: 'dragBox'
|
|
46
46
|
},
|
|
47
|
+
hideDelete: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: false
|
|
50
|
+
},
|
|
47
51
|
disabled: {
|
|
48
52
|
type: Boolean,
|
|
49
53
|
default: false
|