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.
Files changed (45) hide show
  1. package/package.json +5 -4
  2. package/src/assets/css/cl-file-upload-table.scss +2 -2
  3. package/src/assets/css/cl-layout-header.scss +34 -5
  4. package/src/assets/css/cl-message.scss +55 -1
  5. package/src/assets/css/filter.scss +1 -1
  6. package/src/components/AdvancedFilter/formItemRender.vue +8 -4
  7. package/src/components/AdvancedFilter/index.vue +34 -13
  8. package/src/components/AdvancedFilter/utils.js +8 -0
  9. package/src/components/Anchor/index.vue +5 -1
  10. package/src/components/ApprovalButtons/showAppOpi.vue +1 -0
  11. package/src/components/DateSelect/index.vue +29 -4
  12. package/src/components/DragList/index.vue +6 -2
  13. package/src/components/ElectronicArchive/index.vue +766 -0
  14. package/src/components/FileImport/index.vue +6 -0
  15. package/src/components/FileUploadTable/index.vue +1 -1
  16. package/src/components/Filters/index.vue +1 -1
  17. package/src/components/InputNumber/numberRange.vue +2 -0
  18. package/src/components/Layout/HeaderWrap/changePwd.vue +16 -9
  19. package/src/components/Layout/HeaderWrap/index.vue +10 -0
  20. package/src/components/Layout/HeaderWrap/indexN.vue +19 -4
  21. package/src/components/LoginTemporary/form.vue +8 -0
  22. package/src/components/SelectDatePickerPro/index.vue +13 -13
  23. package/src/components/ShowColumn/index.vue +3 -3
  24. package/src/components/TablePro/filterContent.vue +279 -0
  25. package/src/components/TablePro/filterContent_tree.vue +172 -0
  26. package/src/components/TablePro/index.js +30 -0
  27. package/src/components/TablePro/index.vue +3 -2
  28. package/src/components/Tree/index.vue +6 -1
  29. package/src/components/Upload/index.vue +5 -0
  30. package/src/components/Upload/uploadMsg.vue +7 -5
  31. package/src/components/operatingStatus/index.vue +5 -3
  32. package/src/directives/watermark/index.js +69 -0
  33. package/src/i18n.json +3 -0
  34. package/src/index.js +117 -109
  35. package/src/utils/amountInWords.js +17 -100
  36. package/src/utils/numberPor.js +24 -27
  37. package/style/index.css +1 -1
  38. package/theme/blue.css +1 -1
  39. package/theme/cctcRed.css +1 -1
  40. package/theme/green.css +1 -1
  41. package/theme/lightBlue.css +1 -1
  42. package/theme/orange.css +1 -1
  43. package/theme/purple.css +1 -1
  44. package/theme/red.css +1 -1
  45. 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.2",
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
+ }
@@ -1,4 +1,4 @@
1
- .file-upload-table {
1
+ .file-upload-table,n20-ElectronicArchive {
2
2
  .el-table {
3
3
  border-top: $--tab-border-line;
4
4
  border-left: $--tab-border-line;
@@ -29,4 +29,4 @@
29
29
  .el-upload {
30
30
  display: block;
31
31
  }
32
- }
32
+ }
@@ -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
- .user-info-drop-menu-new.user-info-drop_height {
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
+ }
@@ -104,7 +104,7 @@
104
104
  }
105
105
 
106
106
  .el-input--suffix .el-input__inner {
107
- padding-right: 20px;
107
+ padding-right: 26px;
108
108
  }
109
109
  }
110
110
 
@@ -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 + 65) * 2
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]) + 40 + 100
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
- isClearable: (item.props && item.props.isClearable) ?? true,
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 = opts || []
134
+ item.options = data || []
131
135
  } else {
132
136
  item = this.GroupData.find((f) => f.value === id)
133
137
  if (item) {
134
- item.options = opts || []
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] ? this.prefixCls + '-active' : ''
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[item.value] = item.multiple ? [] : null
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[item.value] = null
187
+ this.$set(this.model, item.value, null)
188
+
180
189
  break
181
190
  case 'checkbox':
182
- this.model[item.value] = []
183
-
191
+ this.$set(this.model, item.value, [])
184
192
  break
185
193
  case 'numberrange':
186
- this.model[item.startValue] = null
187
- this.model[item.endValue] = null
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[item.startDate] = null
193
- this.model[item.endDate] = null
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('change', this.model)
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'
@@ -3,6 +3,7 @@
3
3
  <el-select
4
4
  v-model="approveMsgSlt"
5
5
  class="w-100p"
6
+ style="max-width: 80vw"
6
7
  clearable
7
8
  :multiple="multiple"
8
9
  collapse-tags
@@ -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 v-for="(item, index) in timing" :key="index" :label="item.label" :value="item.value" />
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.find((item) => item.label === this.selectType).value
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.selectType) {
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