n20-common-lib 1.2.0 → 1.2.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.
Files changed (188) hide show
  1. package/README.md +27 -20
  2. package/package.json +87 -87
  3. package/src/_qiankun/index.js +113 -113
  4. package/src/_qiankun/postMessage.js +48 -48
  5. package/src/assets/css/_coreLib.scss +35 -35
  6. package/src/assets/css/cl-anchor.scss +23 -23
  7. package/src/assets/css/cl-approve-card.scss +58 -58
  8. package/src/assets/css/cl-dialog.scss +99 -99
  9. package/src/assets/css/cl-drag-list.scss +22 -22
  10. package/src/assets/css/cl-empty.scss +10 -10
  11. package/src/assets/css/cl-expandable-pane.scss +27 -25
  12. package/src/assets/css/cl-expandable.scss +25 -23
  13. package/src/assets/css/cl-file-upload-table.scss +11 -11
  14. package/src/assets/css/cl-filter.scss +4 -4
  15. package/src/assets/css/cl-flow-step.scss +185 -185
  16. package/src/assets/css/cl-footer-box.scss +10 -10
  17. package/src/assets/css/cl-form-item.scss +331 -322
  18. package/src/assets/css/cl-general-card.scss +11 -11
  19. package/src/assets/css/cl-layout-aside.scss +88 -88
  20. package/src/assets/css/cl-layout-content.scss +16 -16
  21. package/src/assets/css/cl-layout-header.scss +73 -73
  22. package/src/assets/css/cl-layout-tabs.scss +87 -87
  23. package/src/assets/css/cl-layout.scss +97 -97
  24. package/src/assets/css/cl-login-temporary.scss +37 -37
  25. package/src/assets/css/cl-message.scss +75 -75
  26. package/src/assets/css/cl-more-tab.scss +98 -98
  27. package/src/assets/css/cl-nav-menu.scss +5 -5
  28. package/src/assets/css/cl-pagination.scss +65 -65
  29. package/src/assets/css/cl-secondary-tab.scss +39 -39
  30. package/src/assets/css/cl-showcolumn.scss +23 -23
  31. package/src/assets/css/cl-sifting.scss +51 -51
  32. package/src/assets/css/cl-statis.scss +42 -42
  33. package/src/assets/css/cl-step.scss +73 -73
  34. package/src/assets/css/cl-suspend.scss +19 -19
  35. package/src/assets/css/cl-tertiary-tab.scss +9 -9
  36. package/src/assets/css/cl-upload.scss +41 -41
  37. package/src/assets/css/cl-worn-pagination.scss +50 -50
  38. package/src/assets/css/el-button.scss +173 -169
  39. package/src/assets/css/el-table.scss +79 -79
  40. package/src/assets/css/element-variables.scss +1061 -1061
  41. package/src/assets/css/element.dev.scss +21 -21
  42. package/src/assets/css/font-icon.scss +26 -26
  43. package/src/assets/css/index.dev.scss +4 -4
  44. package/src/assets/css/index.scss +11 -11
  45. package/src/assets/css/normalize.scss +726 -723
  46. package/src/assets/css/rootvar.scss +139 -139
  47. package/src/assets/css/select.scss +25 -25
  48. package/src/assets/css/title-pop.scss +4 -4
  49. package/src/assets/getJsonc.js +50 -50
  50. package/src/assets/realUrl.js +12 -12
  51. package/src/components/Anchor/AnchorItem.vue +29 -29
  52. package/src/components/Anchor/index.vue +185 -185
  53. package/src/components/ApprovalButtons/index.vue +232 -232
  54. package/src/components/ApprovalCard/index.vue +128 -128
  55. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  56. package/src/components/ApprovalRecord/index.vue +59 -59
  57. package/src/components/Button/button-group.vue +150 -150
  58. package/src/components/Button/icon-group-button.vue +61 -61
  59. package/src/components/Button/index.vue +56 -56
  60. package/src/components/CascaderArea/index.vue +81 -0
  61. package/src/components/ContentLoading/index.vue +41 -41
  62. package/src/components/ContentNull/index.vue +19 -19
  63. package/src/components/DatePicker/index.vue +27 -27
  64. package/src/components/DatePicker/por.vue +169 -169
  65. package/src/components/Dialog/index.vue +26 -26
  66. package/src/components/Dialog/indexO.vue +116 -116
  67. package/src/components/DragList/index.vue +68 -68
  68. package/src/components/Empty/img/abnormal.svg +108 -108
  69. package/src/components/Empty/img/dispose.svg +71 -71
  70. package/src/components/Empty/img/empty.svg +57 -57
  71. package/src/components/Empty/img/general.svg +58 -58
  72. package/src/components/Empty/img/lock.svg +57 -57
  73. package/src/components/Empty/img/network.svg +59 -59
  74. package/src/components/Empty/img/relevant.svg +68 -68
  75. package/src/components/Empty/img/search.svg +72 -72
  76. package/src/components/Empty/index.vue +92 -92
  77. package/src/components/Expandable/index.vue +49 -49
  78. package/src/components/Expandable/main.vue +52 -52
  79. package/src/components/FileUploadTable/index.vue +484 -484
  80. package/src/components/Filters/index.vue +363 -358
  81. package/src/components/Filters/indexO.vue +104 -104
  82. package/src/components/FlowStep/index.vue +68 -68
  83. package/src/components/FooterBox/index.vue +21 -21
  84. package/src/components/GeneralCard/index.vue +15 -15
  85. package/src/components/InputNumber/index.vue +153 -153
  86. package/src/components/InputNumber/numberRange.vue +47 -47
  87. package/src/components/InputSearch/index.vue +75 -75
  88. package/src/components/Layout/AsideNav/index.vue +144 -144
  89. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  90. package/src/components/Layout/HeaderWrap/index.vue +333 -336
  91. package/src/components/Layout/HeaderWrap/noticePop.vue +300 -300
  92. package/src/components/Layout/SubContent/index.vue +131 -131
  93. package/src/components/Layout/TabsNav/index.vue +170 -170
  94. package/src/components/Layout/index.vue +529 -529
  95. package/src/components/Layout/utils.js +12 -12
  96. package/src/components/LoginTemporary/form.vue +537 -511
  97. package/src/components/LoginTemporary/index.vue +122 -122
  98. package/src/components/LoginTemporary/qrcode.vue +90 -90
  99. package/src/components/LoginTemporary/retrievePw.vue +28 -28
  100. package/src/components/LoginTemporary/utils.js +73 -73
  101. package/src/components/MicroApp/index.js +67 -67
  102. package/src/components/MicroFrame/index.vue +95 -95
  103. package/src/components/MoreTab/index.vue +232 -232
  104. package/src/components/NavMenu/index.vue +60 -60
  105. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +184 -184
  106. package/src/components/PageLayout/page.vue +15 -15
  107. package/src/components/Pagination/index.vue +96 -96
  108. package/src/components/SecondaryTab/index.vue +58 -58
  109. package/src/components/SelectLazy/index.vue +75 -75
  110. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  111. package/src/components/SelectTree/index.vue +208 -208
  112. package/src/components/ShowColumn/index.vue +204 -188
  113. package/src/components/Sifting/index.vue +99 -99
  114. package/src/components/Statis/index.vue +97 -97
  115. package/src/components/Statis/statisItem.vue +54 -54
  116. package/src/components/Statis/statisPopover.vue +55 -55
  117. package/src/components/Step/index.vue +38 -38
  118. package/src/components/Suspend/index.vue +72 -72
  119. package/src/components/Table/index.vue +170 -131
  120. package/src/components/Table/indexO.vue +149 -149
  121. package/src/components/Task/index.vue +26 -26
  122. package/src/components/TertiaryTab/index.vue +53 -53
  123. package/src/components/TimePicker/index.vue +28 -28
  124. package/src/components/Upload/index.vue +242 -242
  125. package/src/components/WornPagination/index.vue +73 -73
  126. package/src/directives/VClickOutside/index.js +19 -19
  127. package/src/directives/VHas/index.js +32 -27
  128. package/src/directives/VMove/index.js +42 -42
  129. package/src/directives/VTitle/index.js +56 -56
  130. package/src/directives/VTitle/tooltip.vue +21 -21
  131. package/src/index.js +218 -225
  132. package/src/plugins/CompatibleOld/index.js +57 -57
  133. package/src/plugins/Print/index.js +4 -4
  134. package/src/plugins/Print/print-js/.babelrc +12 -12
  135. package/src/plugins/Print/print-js/LICENSE +21 -21
  136. package/src/plugins/Print/print-js/README.md +98 -98
  137. package/src/plugins/Print/print-js/dist/print.css +96 -96
  138. package/src/plugins/Print/print-js/dist/print.js +990 -990
  139. package/src/plugins/Print/print-js/package.json +60 -60
  140. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  141. package/src/plugins/Print/print-js/src/index.js +10 -10
  142. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  143. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  144. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  145. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  146. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  147. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  148. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  149. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  150. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  151. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  152. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  153. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  154. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  155. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  156. package/src/plugins/Print/print.js +2 -2
  157. package/src/plugins/Print/print.scss +1 -1
  158. package/src/plugins/SetMenuTree/index.vue +41 -41
  159. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  160. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  161. package/src/plugins/SetMenuTree/utils.js +74 -74
  162. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  163. package/src/plugins/Sign/index.js +65 -65
  164. package/src/plugins/Sign/sign.js +1 -1
  165. package/src/plugins/setTabsForSub.js +2 -2
  166. package/src/utils/auth.js +53 -53
  167. package/src/utils/axios.js +203 -203
  168. package/src/utils/downloadBlob.js +19 -19
  169. package/src/utils/forEachs.js +16 -16
  170. package/src/utils/getScrollContainer.js +43 -43
  171. package/src/utils/i18n/cn2hk.json +1270 -1270
  172. package/src/utils/i18n/index.js +54 -54
  173. package/src/utils/list2tree.js +36 -36
  174. package/src/utils/msgboxPor.js +26 -26
  175. package/src/utils/print.js +161 -161
  176. package/src/utils/relaNo.js +69 -35
  177. package/src/utils/repairElementUI.js +66 -66
  178. package/src/utils/urlToGo.js +82 -82
  179. package/style/css/normalize.scss +726 -723
  180. package/style/index.css +2 -2
  181. package/style/index.css.map +1 -1
  182. package/style/pageDemo/demo-1.vue +131 -130
  183. package/style/pageDemo/demo-2.vue +35 -35
  184. package/style/pageDemo/demo-3.vue +22 -22
  185. package/style/pageDemo/seeCode.js +20 -20
  186. package/style/server-config.jsonc +596 -663
  187. package/src/components/NstcG6Components/NstcApprovel/NstcApprovel.vue +0 -13
  188. package/src/components/NstcG6Components/Progress/progress.vue +0 -134
@@ -1,153 +1,153 @@
1
- <template>
2
- <div class="n20-num-w">
3
- <el-input
4
- v-if="showStr"
5
- class="n20-stc"
6
- :class="{ 'n20-num--rate': type === 'rate' }"
7
- :value="valueStr"
8
- :disabled="disabled"
9
- :placeholder="$attrs.placeholder"
10
- @focus="focusFn"
11
- />
12
- <el-input-number
13
- v-else
14
- ref="input-number"
15
- class="n20-num"
16
- :class="{ 'n20-num--rate': type === 'rate' }"
17
- :controls="false"
18
- v-bind="$attrs"
19
- :value="valueNum"
20
- v-on="listeners"
21
- @blur="blurFn"
22
- @change="changeFn"
23
- />
24
- <span v-if="type === 'rate'" class="el-input__suffix">
25
- <span class="el-input__icon" style="display: inline-block">{{
26
- suffix
27
- }}</span>
28
- </span>
29
- </div>
30
- </template>
31
-
32
- <script>
33
- import numerify from 'numerify'
34
- export default {
35
- name: 'InputNumber',
36
- props: {
37
- value: {
38
- type: [Number, String],
39
- default: undefined
40
- },
41
- type: {
42
- type: String,
43
- default: 'money',
44
- validator(v) {
45
- return ['money', 'rate'].includes(v)
46
- }
47
- },
48
- disabled: {
49
- type: Boolean,
50
- default: undefined
51
- },
52
- clearable: {
53
- type: Boolean,
54
- default: false
55
- },
56
- dNum: {
57
- type: Number,
58
- default: undefined
59
- },
60
- format: {
61
- type: String,
62
- default: undefined
63
- },
64
- suffix: {
65
- type: String,
66
- default: '%'
67
- }
68
- },
69
- data() {
70
- this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
71
- return {
72
- valueStr: '',
73
- valueNum: undefined,
74
- showStr: true
75
- }
76
- },
77
- watch: {
78
- value: {
79
- handler(val) {
80
- if (val && typeof val === 'string' && val.includes(',')) {
81
- return this.$emit('input', Number(val.replace(/,/g, '')))
82
- }
83
- this.valueStr = this.num2str(val)
84
- },
85
- immediate: true
86
- }
87
- },
88
- methods: {
89
- num2str(val = '') {
90
- if (val === '' || val === null) {
91
- return ''
92
- }
93
- switch (this.type) {
94
- case 'rate':
95
- return numerify(val, this.format || '0.00[00]')
96
- case 'money':
97
- default:
98
- return numerify(val, this.format || '0,0.00')
99
- }
100
- },
101
- focusFn() {
102
- if (!this.disabled) {
103
- this.showStr = false
104
- this.valueNum =
105
- this.value === null || this.value === '' ? undefined : this.value
106
- this.$nextTick(() => {
107
- this.$refs['input-number'].focus()
108
- })
109
- }
110
- },
111
- blurFn() {
112
- this.showStr = true
113
- },
114
- changeFn(val) {
115
- if (!val && val !== 0) {
116
- return this.$emit('input', val)
117
- }
118
-
119
- switch (this.type) {
120
- case 'rate':
121
- {
122
- let varStr = val.toString() + '.'
123
- let varDLen = varStr.length - varStr.indexOf('.') - 1
124
- let dNum = this.dNum !== undefined ? this.dNum : 4
125
- let nVar = Number(val.toFixed(Math.min(varDLen, dNum)))
126
- if (this.valueNum === nVar) {
127
- this.valueNum = 0
128
- }
129
- this.$nextTick(() => {
130
- this.valueNum = nVar
131
- this.$emit('input', nVar)
132
- })
133
- }
134
- break
135
- case 'money':
136
- default:
137
- {
138
- let dNum = this.dNum !== undefined ? this.dNum : 2
139
- let nVar = Number(val.toFixed(dNum))
140
- if (this.valueNum === nVar) {
141
- this.valueNum = 0
142
- }
143
- this.$nextTick(() => {
144
- this.valueNum = nVar
145
- this.$emit('input', nVar)
146
- })
147
- }
148
- break
149
- }
150
- }
151
- }
152
- }
153
- </script>
1
+ <template>
2
+ <div class="n20-num-w">
3
+ <el-input
4
+ v-if="showStr"
5
+ class="n20-stc"
6
+ :class="{ 'n20-num--rate': type === 'rate' }"
7
+ :value="valueStr"
8
+ :disabled="disabled"
9
+ :placeholder="$attrs.placeholder"
10
+ @focus="focusFn"
11
+ />
12
+ <el-input-number
13
+ v-else
14
+ ref="input-number"
15
+ class="n20-num"
16
+ :class="{ 'n20-num--rate': type === 'rate' }"
17
+ :controls="false"
18
+ v-bind="$attrs"
19
+ :value="valueNum"
20
+ v-on="listeners"
21
+ @blur="blurFn"
22
+ @change="changeFn"
23
+ />
24
+ <span v-if="type === 'rate'" class="el-input__suffix">
25
+ <span class="el-input__icon" style="display: inline-block">{{
26
+ suffix
27
+ }}</span>
28
+ </span>
29
+ </div>
30
+ </template>
31
+
32
+ <script>
33
+ import numerify from 'numerify'
34
+ export default {
35
+ name: 'InputNumber',
36
+ props: {
37
+ value: {
38
+ type: [Number, String],
39
+ default: undefined
40
+ },
41
+ type: {
42
+ type: String,
43
+ default: 'money',
44
+ validator(v) {
45
+ return ['money', 'rate'].includes(v)
46
+ }
47
+ },
48
+ disabled: {
49
+ type: Boolean,
50
+ default: undefined
51
+ },
52
+ clearable: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ dNum: {
57
+ type: Number,
58
+ default: undefined
59
+ },
60
+ format: {
61
+ type: String,
62
+ default: undefined
63
+ },
64
+ suffix: {
65
+ type: String,
66
+ default: '%'
67
+ }
68
+ },
69
+ data() {
70
+ this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
71
+ return {
72
+ valueStr: '',
73
+ valueNum: undefined,
74
+ showStr: true
75
+ }
76
+ },
77
+ watch: {
78
+ value: {
79
+ handler(val) {
80
+ if (val && typeof val === 'string' && val.includes(',')) {
81
+ return this.$emit('input', Number(val.replace(/,/g, '')))
82
+ }
83
+ this.valueStr = this.num2str(val)
84
+ },
85
+ immediate: true
86
+ }
87
+ },
88
+ methods: {
89
+ num2str(val = '') {
90
+ if (val === '' || val === null) {
91
+ return ''
92
+ }
93
+ switch (this.type) {
94
+ case 'rate':
95
+ return numerify(val, this.format || '0.00[00]')
96
+ case 'money':
97
+ default:
98
+ return numerify(val, this.format || '0,0.00')
99
+ }
100
+ },
101
+ focusFn() {
102
+ if (!this.disabled) {
103
+ this.showStr = false
104
+ this.valueNum =
105
+ this.value === null || this.value === '' ? undefined : this.value
106
+ this.$nextTick(() => {
107
+ this.$refs['input-number'].focus()
108
+ })
109
+ }
110
+ },
111
+ blurFn() {
112
+ this.showStr = true
113
+ },
114
+ changeFn(val) {
115
+ if (!val && val !== 0) {
116
+ return this.$emit('input', val)
117
+ }
118
+
119
+ switch (this.type) {
120
+ case 'rate':
121
+ {
122
+ let varStr = val.toString() + '.'
123
+ let varDLen = varStr.length - varStr.indexOf('.') - 1
124
+ let dNum = this.dNum !== undefined ? this.dNum : 4
125
+ let nVar = Number(val.toFixed(Math.min(varDLen, dNum)))
126
+ if (this.valueNum === nVar) {
127
+ this.valueNum = 0
128
+ }
129
+ this.$nextTick(() => {
130
+ this.valueNum = nVar
131
+ this.$emit('input', nVar)
132
+ })
133
+ }
134
+ break
135
+ case 'money':
136
+ default:
137
+ {
138
+ let dNum = this.dNum !== undefined ? this.dNum : 2
139
+ let nVar = Number(val.toFixed(dNum))
140
+ if (this.valueNum === nVar) {
141
+ this.valueNum = 0
142
+ }
143
+ this.$nextTick(() => {
144
+ this.valueNum = nVar
145
+ this.$emit('input', nVar)
146
+ })
147
+ }
148
+ break
149
+ }
150
+ }
151
+ }
152
+ }
153
+ </script>
@@ -1,47 +1,47 @@
1
- <template>
2
- <div class="n20-num-w">
3
- <inputNumber
4
- v-bind="$attrs"
5
- :value="startValue"
6
- :max="endValue || endValue === 0 ? endValue : $attrs.max"
7
- :type="type"
8
- style="width: calc(50% - 8px)"
9
- @input="(val) => $emit('update:start-value', val)"
10
- />
11
- <span class="numbre-range text-c" style="display: inline-block; width: 16px"
12
- >-</span
13
- >
14
- <inputNumber
15
- v-bind="$attrs"
16
- :value="endValue"
17
- :min="startValue || startValue === 0 ? startValue : $attrs.min"
18
- :type="type"
19
- style="width: calc(50% - 8px)"
20
- @input="(val) => $emit('update:end-value', val)"
21
- />
22
- </div>
23
- </template>
24
-
25
- <script>
26
- import inputNumber from './index.vue'
27
- export default {
28
- name: 'InputNumberRange',
29
- components: {
30
- inputNumber
31
- },
32
- props: {
33
- startValue: {
34
- type: [String, Number],
35
- default: undefined
36
- },
37
- endValue: {
38
- type: [String, Number],
39
- default: undefined
40
- },
41
- type: {
42
- type: String,
43
- default: 'money'
44
- }
45
- }
46
- }
47
- </script>
1
+ <template>
2
+ <div class="n20-num-w">
3
+ <inputNumber
4
+ v-bind="$attrs"
5
+ :value="startValue"
6
+ :max="endValue || endValue === 0 ? endValue : $attrs.max"
7
+ :type="type"
8
+ style="width: calc(50% - 8px)"
9
+ @input="(val) => $emit('update:start-value', val)"
10
+ />
11
+ <span class="numbre-range text-c" style="display: inline-block; width: 16px"
12
+ >-</span
13
+ >
14
+ <inputNumber
15
+ v-bind="$attrs"
16
+ :value="endValue"
17
+ :min="startValue || startValue === 0 ? startValue : $attrs.min"
18
+ :type="type"
19
+ style="width: calc(50% - 8px)"
20
+ @input="(val) => $emit('update:end-value', val)"
21
+ />
22
+ </div>
23
+ </template>
24
+
25
+ <script>
26
+ import inputNumber from './index.vue'
27
+ export default {
28
+ name: 'InputNumberRange',
29
+ components: {
30
+ inputNumber
31
+ },
32
+ props: {
33
+ startValue: {
34
+ type: [String, Number],
35
+ default: undefined
36
+ },
37
+ endValue: {
38
+ type: [String, Number],
39
+ default: undefined
40
+ },
41
+ type: {
42
+ type: String,
43
+ default: 'money'
44
+ }
45
+ }
46
+ }
47
+ </script>
@@ -1,75 +1,75 @@
1
- <template>
2
- <el-input
3
- v-if="!select"
4
- v-bind="$attrs"
5
- :value="value"
6
- v-on="$listeners"
7
- @change="searchFn"
8
- >
9
- <i
10
- slot="suffix"
11
- class="is-search el-input__icon el-icon-search"
12
- @click.stop="searchFn"
13
- ></i>
14
- </el-input>
15
- <div v-else class="n20-input-search">
16
- <el-select
17
- ref="input-search"
18
- v-bind="$attrs"
19
- :value="value"
20
- :filterable="select"
21
- :multiple="multiple"
22
- :allow-create="true"
23
- v-on="$listeners"
24
- @change="changeFn"
25
- @visible-change="visibleChangeFn"
26
- >
27
- <slot></slot>
28
- </el-select>
29
- <span class="el-input__suffix">
30
- <span
31
- class="is-search el-input__icon el-icon-search"
32
- @click.stop="searchFn"
33
- ></span>
34
- </span>
35
- </div>
36
- </template>
37
-
38
- <script>
39
- export default {
40
- name: 'InputSearch',
41
- props: {
42
- value: {
43
- type: [String, Number, Object, Array],
44
- default: undefined
45
- },
46
- select: {
47
- type: Boolean,
48
- default: false
49
- },
50
- multiple: {
51
- type: Boolean,
52
- default: false
53
- }
54
- },
55
- data() {
56
- this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
57
- return {}
58
- },
59
- methods: {
60
- visibleChangeFn(val) {
61
- if (val && !this.$refs['input-search']['multiple']) {
62
- this.$refs['input-search']['selectedLabel'] =
63
- this.$refs['input-search']['currentPlaceholder']
64
- }
65
- },
66
- changeFn(val) {
67
- this.$emit('input', val)
68
- this.$emit('change', val)
69
- },
70
- searchFn() {
71
- this.$emit('search', this.value)
72
- }
73
- }
74
- }
75
- </script>
1
+ <template>
2
+ <el-input
3
+ v-if="!select"
4
+ v-bind="$attrs"
5
+ :value="value"
6
+ v-on="$listeners"
7
+ @change="searchFn"
8
+ >
9
+ <i
10
+ slot="suffix"
11
+ class="is-search el-input__icon el-icon-search"
12
+ @click.stop="searchFn"
13
+ ></i>
14
+ </el-input>
15
+ <div v-else class="n20-input-search">
16
+ <el-select
17
+ ref="input-search"
18
+ v-bind="$attrs"
19
+ :value="value"
20
+ :filterable="select"
21
+ :multiple="multiple"
22
+ :allow-create="true"
23
+ v-on="$listeners"
24
+ @change="changeFn"
25
+ @visible-change="visibleChangeFn"
26
+ >
27
+ <slot></slot>
28
+ </el-select>
29
+ <span class="el-input__suffix">
30
+ <span
31
+ class="is-search el-input__icon el-icon-search"
32
+ @click.stop="searchFn"
33
+ ></span>
34
+ </span>
35
+ </div>
36
+ </template>
37
+
38
+ <script>
39
+ export default {
40
+ name: 'InputSearch',
41
+ props: {
42
+ value: {
43
+ type: [String, Number, Object, Array],
44
+ default: undefined
45
+ },
46
+ select: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ multiple: {
51
+ type: Boolean,
52
+ default: false
53
+ }
54
+ },
55
+ data() {
56
+ this.listeners = Object.assign({}, this.$listeners, { input: () => {} })
57
+ return {}
58
+ },
59
+ methods: {
60
+ visibleChangeFn(val) {
61
+ if (val && !this.$refs['input-search']['multiple']) {
62
+ this.$refs['input-search']['selectedLabel'] =
63
+ this.$refs['input-search']['currentPlaceholder']
64
+ }
65
+ },
66
+ changeFn(val) {
67
+ this.$emit('input', val)
68
+ this.$emit('change', val)
69
+ },
70
+ searchFn() {
71
+ this.$emit('search', this.value)
72
+ }
73
+ }
74
+ }
75
+ </script>