n20-common-lib 1.1.98

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 (196) hide show
  1. package/README.md +27 -0
  2. package/package.json +87 -0
  3. package/src/_qiankun/index.js +113 -0
  4. package/src/_qiankun/postMessage.js +48 -0
  5. package/src/assets/css/_coreLib.scss +35 -0
  6. package/src/assets/css/cl-anchor.scss +24 -0
  7. package/src/assets/css/cl-approve-card.scss +58 -0
  8. package/src/assets/css/cl-dialog.scss +99 -0
  9. package/src/assets/css/cl-drag-list.scss +22 -0
  10. package/src/assets/css/cl-empty.scss +10 -0
  11. package/src/assets/css/cl-expandable-pane.scss +25 -0
  12. package/src/assets/css/cl-expandable.scss +23 -0
  13. package/src/assets/css/cl-file-upload-table.scss +11 -0
  14. package/src/assets/css/cl-filter.scss +4 -0
  15. package/src/assets/css/cl-flow-step.scss +186 -0
  16. package/src/assets/css/cl-footer-box.scss +10 -0
  17. package/src/assets/css/cl-form-item.scss +322 -0
  18. package/src/assets/css/cl-general-card.scss +12 -0
  19. package/src/assets/css/cl-layout-aside.scss +88 -0
  20. package/src/assets/css/cl-layout-content.scss +16 -0
  21. package/src/assets/css/cl-layout-header.scss +73 -0
  22. package/src/assets/css/cl-layout-tabs.scss +87 -0
  23. package/src/assets/css/cl-layout.scss +97 -0
  24. package/src/assets/css/cl-login-temporary.scss +37 -0
  25. package/src/assets/css/cl-message.scss +75 -0
  26. package/src/assets/css/cl-more-tab.scss +98 -0
  27. package/src/assets/css/cl-nav-menu.scss +5 -0
  28. package/src/assets/css/cl-pagination.scss +65 -0
  29. package/src/assets/css/cl-secondary-tab.scss +39 -0
  30. package/src/assets/css/cl-showcolumn.scss +23 -0
  31. package/src/assets/css/cl-sifting.scss +51 -0
  32. package/src/assets/css/cl-statis.scss +42 -0
  33. package/src/assets/css/cl-step.scss +73 -0
  34. package/src/assets/css/cl-suspend.scss +19 -0
  35. package/src/assets/css/cl-tertiary-tab.scss +9 -0
  36. package/src/assets/css/cl-upload.scss +41 -0
  37. package/src/assets/css/cl-worn-pagination.scss +50 -0
  38. package/src/assets/css/el-button.scss +169 -0
  39. package/src/assets/css/el-table.scss +79 -0
  40. package/src/assets/css/element-variables.scss +1061 -0
  41. package/src/assets/css/element.dev.scss +21 -0
  42. package/src/assets/css/font-icon.scss +26 -0
  43. package/src/assets/css/index.dev.scss +4 -0
  44. package/src/assets/css/index.scss +11 -0
  45. package/src/assets/css/normalize.scss +723 -0
  46. package/src/assets/css/rootvar.scss +139 -0
  47. package/src/assets/css/select.scss +26 -0
  48. package/src/assets/css/title-pop.scss +4 -0
  49. package/src/assets/getJsonc.js +50 -0
  50. package/src/assets/realUrl.js +12 -0
  51. package/src/components/Anchor/AnchorItem.vue +30 -0
  52. package/src/components/Anchor/index.vue +185 -0
  53. package/src/components/ApprovalButtons/index.vue +232 -0
  54. package/src/components/ApprovalCard/index.vue +128 -0
  55. package/src/components/ApprovalRecord/approvalImg.vue +39 -0
  56. package/src/components/ApprovalRecord/index.vue +59 -0
  57. package/src/components/Button/button-group.vue +150 -0
  58. package/src/components/Button/icon-group-button.vue +61 -0
  59. package/src/components/Button/index.vue +56 -0
  60. package/src/components/ContentLoading/index.vue +41 -0
  61. package/src/components/ContentNull/index.vue +19 -0
  62. package/src/components/DatePicker/index.vue +27 -0
  63. package/src/components/DatePicker/por.vue +169 -0
  64. package/src/components/Dialog/index.vue +26 -0
  65. package/src/components/Dialog/indexO.vue +116 -0
  66. package/src/components/DragList/index.vue +68 -0
  67. package/src/components/Empty/img/404.png +0 -0
  68. package/src/components/Empty/img/abnormal.svg +109 -0
  69. package/src/components/Empty/img/dispose.svg +72 -0
  70. package/src/components/Empty/img/empty.svg +58 -0
  71. package/src/components/Empty/img/general.svg +59 -0
  72. package/src/components/Empty/img/lock.svg +58 -0
  73. package/src/components/Empty/img/network.svg +60 -0
  74. package/src/components/Empty/img/relevant.svg +69 -0
  75. package/src/components/Empty/img/search.svg +73 -0
  76. package/src/components/Empty/index.vue +92 -0
  77. package/src/components/Expandable/index.vue +49 -0
  78. package/src/components/Expandable/main.vue +52 -0
  79. package/src/components/FileUploadTable/index.vue +484 -0
  80. package/src/components/Filters/index.vue +358 -0
  81. package/src/components/Filters/indexO.vue +104 -0
  82. package/src/components/FlowStep/index.vue +69 -0
  83. package/src/components/FooterBox/index.vue +21 -0
  84. package/src/components/GeneralCard/index.vue +15 -0
  85. package/src/components/InputNumber/index.vue +153 -0
  86. package/src/components/InputNumber/numberRange.vue +47 -0
  87. package/src/components/InputSearch/index.vue +75 -0
  88. package/src/components/Layout/AsideNav/index.vue +144 -0
  89. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -0
  90. package/src/components/Layout/HeaderWrap/index.vue +336 -0
  91. package/src/components/Layout/HeaderWrap/noticePop.vue +300 -0
  92. package/src/components/Layout/SubContent/index.vue +131 -0
  93. package/src/components/Layout/TabsNav/index.vue +170 -0
  94. package/src/components/Layout/index.vue +529 -0
  95. package/src/components/Layout/utils.js +12 -0
  96. package/src/components/LoginTemporary/form.vue +511 -0
  97. package/src/components/LoginTemporary/index.vue +122 -0
  98. package/src/components/LoginTemporary/qr.png +0 -0
  99. package/src/components/LoginTemporary/qrcode.vue +90 -0
  100. package/src/components/LoginTemporary/qrt.png +0 -0
  101. package/src/components/LoginTemporary/retrievePw.vue +28 -0
  102. package/src/components/LoginTemporary/utils.js +73 -0
  103. package/src/components/MicroApp/index.js +67 -0
  104. package/src/components/MicroFrame/index.vue +95 -0
  105. package/src/components/MoreTab/index.vue +232 -0
  106. package/src/components/NavMenu/index.vue +60 -0
  107. package/src/components/NstcG6Components/NstcApprovel/NstcApprovel.vue +13 -0
  108. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +185 -0
  109. package/src/components/NstcG6Components/Progress/progress.vue +134 -0
  110. package/src/components/PageLayout/page.vue +15 -0
  111. package/src/components/Pagination/index.vue +96 -0
  112. package/src/components/SecondaryTab/index.vue +58 -0
  113. package/src/components/SelectLazy/index.vue +75 -0
  114. package/src/components/SelectTree/SelectTreeLazy.vue +241 -0
  115. package/src/components/SelectTree/index.vue +208 -0
  116. package/src/components/ShowColumn/index.vue +188 -0
  117. package/src/components/Sifting/index.vue +99 -0
  118. package/src/components/Statis/index.vue +97 -0
  119. package/src/components/Statis/statisItem.vue +54 -0
  120. package/src/components/Statis/statisPopover.vue +55 -0
  121. package/src/components/Step/index.vue +38 -0
  122. package/src/components/Suspend/index.vue +72 -0
  123. package/src/components/Table/index.vue +131 -0
  124. package/src/components/Table/indexO.vue +149 -0
  125. package/src/components/Task/index.vue +26 -0
  126. package/src/components/TertiaryTab/index.vue +53 -0
  127. package/src/components/TimePicker/index.vue +28 -0
  128. package/src/components/Upload/index.vue +242 -0
  129. package/src/components/WornPagination/index.vue +73 -0
  130. package/src/directives/VClickOutside/index.js +19 -0
  131. package/src/directives/VDrag/index.js +72 -0
  132. package/src/directives/VHas/index.js +27 -0
  133. package/src/directives/VMove/index.js +42 -0
  134. package/src/directives/VTitle/index.js +56 -0
  135. package/src/directives/VTitle/tooltip.vue +21 -0
  136. package/src/index.js +225 -0
  137. package/src/plugins/CompatibleOld/index.js +57 -0
  138. package/src/plugins/Print/index.js +4 -0
  139. package/src/plugins/Print/print-js/.babelrc +12 -0
  140. package/src/plugins/Print/print-js/LICENSE +21 -0
  141. package/src/plugins/Print/print-js/README.md +98 -0
  142. package/src/plugins/Print/print-js/dist/print.css +97 -0
  143. package/src/plugins/Print/print-js/dist/print.js +991 -0
  144. package/src/plugins/Print/print-js/dist/print.map +1 -0
  145. package/src/plugins/Print/print-js/package.json +60 -0
  146. package/src/plugins/Print/print-js/src/index.d.ts +45 -0
  147. package/src/plugins/Print/print-js/src/index.js +10 -0
  148. package/src/plugins/Print/print-js/src/js/browser.js +33 -0
  149. package/src/plugins/Print/print-js/src/js/functions.js +103 -0
  150. package/src/plugins/Print/print-js/src/js/html.js +70 -0
  151. package/src/plugins/Print/print-js/src/js/image.js +48 -0
  152. package/src/plugins/Print/print-js/src/js/init.js +168 -0
  153. package/src/plugins/Print/print-js/src/js/json.js +109 -0
  154. package/src/plugins/Print/print-js/src/js/modal.js +62 -0
  155. package/src/plugins/Print/print-js/src/js/pdf.js +62 -0
  156. package/src/plugins/Print/print-js/src/js/print.js +102 -0
  157. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -0
  158. package/src/plugins/Print/print-js/src/sass/index.scss +14 -0
  159. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +10 -0
  160. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +41 -0
  161. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +46 -0
  162. package/src/plugins/Print/print.js +2 -0
  163. package/src/plugins/Print/print.scss +1 -0
  164. package/src/plugins/SetMenuTree/index.vue +41 -0
  165. package/src/plugins/SetMenuTree/logoIcon.vue +37 -0
  166. package/src/plugins/SetMenuTree/setmenutree.vue +427 -0
  167. package/src/plugins/SetMenuTree/utils.js +74 -0
  168. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -0
  169. package/src/plugins/Sign/index.js +65 -0
  170. package/src/plugins/Sign/sign.js +1 -0
  171. package/src/plugins/setTabsForSub.js +2 -0
  172. package/src/utils/auth.js +53 -0
  173. package/src/utils/axios.js +203 -0
  174. package/src/utils/downloadBlob.js +19 -0
  175. package/src/utils/forEachs.js +16 -0
  176. package/src/utils/getScrollContainer.js +43 -0
  177. package/src/utils/i18n/cn2hk.json +1270 -0
  178. package/src/utils/i18n/index.js +54 -0
  179. package/src/utils/list2tree.js +36 -0
  180. package/src/utils/msgboxPor.js +26 -0
  181. package/src/utils/print.js +161 -0
  182. package/src/utils/relaNo.js +35 -0
  183. package/src/utils/repairElementUI.js +66 -0
  184. package/src/utils/urlToGo.js +82 -0
  185. package/style/css/normalize.scss +723 -0
  186. package/style/fonts/element-icons.535877f5.woff +0 -0
  187. package/style/fonts/element-icons.732389de.ttf +0 -0
  188. package/style/index.css +3 -0
  189. package/style/index.css.map +1 -0
  190. package/style/index.umd.min.js +2 -0
  191. package/style/index.umd.min.js.map +1 -0
  192. package/style/pageDemo/demo-1.vue +130 -0
  193. package/style/pageDemo/demo-2.vue +35 -0
  194. package/style/pageDemo/demo-3.vue +22 -0
  195. package/style/pageDemo/seeCode.js +20 -0
  196. package/style/server-config.jsonc +663 -0
@@ -0,0 +1,358 @@
1
+ <template>
2
+ <el-popover
3
+ v-model="showPop"
4
+ trigger="manual"
5
+ :width="width"
6
+ title="筛选"
7
+ placement="bottom-end"
8
+ @show="showPopC = true"
9
+ @after-leave="
10
+ showPopC = false
11
+ showMore = false
12
+ "
13
+ >
14
+ <template slot="reference">
15
+ <el-button
16
+ icon="n20-icon-iconfontshaixuan"
17
+ plain
18
+ onlyicon
19
+ size="mini"
20
+ @click="clickBtn"
21
+ />
22
+ </template>
23
+
24
+ <el-form
25
+ v-if="showPopC"
26
+ v-click-outside="clickOut"
27
+ class="n20-filter p-a-s p-b-0"
28
+ :label-width="labelWidth"
29
+ @submit.native.prevent
30
+ >
31
+ <el-form-item v-for="(item, i) in minList" :key="i" :label="item.label">
32
+ <slot v-if="item.slotName" :name="item.slotName"></slot>
33
+ <el-input
34
+ v-else-if="item.type === 'text' || item.type === undefined"
35
+ v-model="form[item.value]"
36
+ :clearable="item | clearableF"
37
+ style="width: 100%"
38
+ v-bind="item.props"
39
+ v-on="item.on"
40
+ />
41
+ <el-select
42
+ v-else-if="item.type === 'select'"
43
+ v-model="form[item.value]"
44
+ :clearable="item | clearableF"
45
+ :multiple="item.multiple"
46
+ style="width: 100%"
47
+ v-bind="item.props"
48
+ v-on="item.on"
49
+ >
50
+ <template
51
+ v-if="item.props && item.props.labelKey && item.props.valueKey"
52
+ >
53
+ <el-option
54
+ v-for="(c, i) in item.options"
55
+ :key="i"
56
+ :label="c[item.props.labelKey]"
57
+ :value="c[item.props.valueKey]"
58
+ :disabled="c.disabled"
59
+ />
60
+ </template>
61
+ <template v-else>
62
+ <el-option
63
+ v-for="c in item.options"
64
+ :key="c.value + '_' + c.label"
65
+ :label="c.label"
66
+ :value="c.value"
67
+ :disabled="c.disabled"
68
+ />
69
+ </template>
70
+ </el-select>
71
+ <inputNumber
72
+ v-else-if="item.type === 'number'"
73
+ v-model="form[item.value]"
74
+ style="width: 100%"
75
+ v-bind="item.props"
76
+ v-on="item.on"
77
+ />
78
+ <inputNumberRange
79
+ v-else-if="item.type === 'numberrange'"
80
+ :start-value.sync="form[item.startValue]"
81
+ :end-value.sync="form[item.endValue]"
82
+ style="width: 100%"
83
+ v-bind="item.props"
84
+ v-on="item.on"
85
+ />
86
+ <datePickerPor
87
+ v-else-if="item.type === 'date'"
88
+ v-model="form[item.value]"
89
+ type="date"
90
+ :clearable="item | clearableF"
91
+ style="width: 100%"
92
+ v-bind="item.props"
93
+ v-on="item.on"
94
+ />
95
+ <datePickerPor
96
+ v-else-if="item.type === 'daterange'"
97
+ type="daterange"
98
+ :start-date.sync="form[item.startDate]"
99
+ :end-date.sync="form[item.endDate]"
100
+ :clearable="item | clearableF"
101
+ style="width: 100%"
102
+ v-bind="item.props"
103
+ v-on="item.on"
104
+ />
105
+ <el-checkbox-group
106
+ v-else-if="item.type === 'checkbox'"
107
+ v-model="form[item.value]"
108
+ v-bind="item.props"
109
+ v-on="item.on"
110
+ >
111
+ <el-checkbox
112
+ v-for="c in item.options"
113
+ :key="c.value"
114
+ :label="c.value"
115
+ :disabled="c.disabled"
116
+ >{{ c.label }}</el-checkbox
117
+ >
118
+ </el-checkbox-group>
119
+ <el-radio-group
120
+ v-else-if="item.type === 'radio'"
121
+ v-model="form[item.value]"
122
+ v-bind="item.props"
123
+ v-on="item.on"
124
+ >
125
+ <el-radio
126
+ v-for="c in item.options"
127
+ :key="c.value"
128
+ :label="c.value"
129
+ :disabled="c.disabled"
130
+ >{{ c.label }}</el-radio
131
+ >
132
+ </el-radio-group>
133
+ </el-form-item>
134
+ <template v-if="filterList.length > defaultShow">
135
+ <div :style="{ paddingLeft: labelWidth }">
136
+ <el-button
137
+ class="p-t-0 m-b-s color-primary"
138
+ type="text"
139
+ @click="showMore = !showMore"
140
+ ><span>更多条件</span
141
+ ><i
142
+ :class="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
143
+ ></i
144
+ ></el-button>
145
+ </div>
146
+ <el-collapse-transition>
147
+ <div v-if="showMore">
148
+ <el-form-item
149
+ v-for="(item, i) in moreList"
150
+ :key="i"
151
+ :label="item.label"
152
+ >
153
+ <slot v-if="item.slotName" :name="item.slotName"></slot>
154
+ <el-input
155
+ v-else-if="item.type === 'text' || item.type === undefined"
156
+ v-model="form[item.value]"
157
+ :clearable="item | clearableF"
158
+ style="width: 100%"
159
+ v-bind="item.props"
160
+ v-on="item.on"
161
+ />
162
+ <el-select
163
+ v-else-if="item.type === 'select'"
164
+ v-model="form[item.value]"
165
+ :clearable="item | clearableF"
166
+ :multiple="item.multiple"
167
+ style="width: 100%"
168
+ v-bind="item.props"
169
+ v-on="item.on"
170
+ >
171
+ <template
172
+ v-if="
173
+ item.props && item.props.labelKey && item.props.valueKey
174
+ "
175
+ >
176
+ <el-option
177
+ v-for="(c, i) in item.options"
178
+ :key="i"
179
+ :label="c[item.props.labelKey]"
180
+ :value="c[item.props.valueKey]"
181
+ :disabled="c.disabled"
182
+ />
183
+ </template>
184
+ <template v-else>
185
+ <el-option
186
+ v-for="c in item.options"
187
+ :key="c.value + '_' + c.label"
188
+ :label="c.label"
189
+ :value="c.value"
190
+ :disabled="c.disabled"
191
+ />
192
+ </template>
193
+ </el-select>
194
+ <inputNumber
195
+ v-else-if="item.type === 'number'"
196
+ v-model="form[item.value]"
197
+ style="width: 100%"
198
+ v-bind="item.props"
199
+ v-on="item.on"
200
+ />
201
+ <inputNumberRange
202
+ v-else-if="item.type === 'numberrange'"
203
+ :start-value.sync="form[item.startValue]"
204
+ :end-value.sync="form[item.endValue]"
205
+ style="width: 100%"
206
+ v-bind="item.props"
207
+ v-on="item.on"
208
+ />
209
+ <datePickerPor
210
+ v-else-if="item.type === 'date'"
211
+ v-model="form[item.value]"
212
+ type="date"
213
+ :clearable="item | clearableF"
214
+ style="width: 100%"
215
+ v-bind="item.props"
216
+ v-on="item.on"
217
+ />
218
+ <datePickerPor
219
+ v-else-if="item.type === 'daterange'"
220
+ type="daterange"
221
+ :start-date.sync="form[item.startDate]"
222
+ :end-date.sync="form[item.endDate]"
223
+ :clearable="item | clearableF"
224
+ style="width: 100%"
225
+ v-bind="item.props"
226
+ v-on="item.on"
227
+ />
228
+ <el-checkbox-group
229
+ v-else-if="item.type === 'checkbox'"
230
+ v-model="form[item.value]"
231
+ v-bind="item.props"
232
+ v-on="item.on"
233
+ >
234
+ <el-checkbox
235
+ v-for="c in item.options"
236
+ :key="c.value"
237
+ :label="c.value"
238
+ :disabled="c.disabled"
239
+ >{{ c.label }}</el-checkbox
240
+ >
241
+ </el-checkbox-group>
242
+ <el-radio-group
243
+ v-else-if="item.type === 'radio'"
244
+ v-model="form[item.value]"
245
+ v-bind="item.props"
246
+ v-on="item.on"
247
+ >
248
+ <el-radio
249
+ v-for="c in item.options"
250
+ :key="c.value"
251
+ :label="c.value"
252
+ :disabled="c.disabled"
253
+ >{{ c.label }}</el-radio
254
+ >
255
+ </el-radio-group>
256
+ </el-form-item>
257
+ </div>
258
+ </el-collapse-transition>
259
+ </template>
260
+ <footerBox class="text-c">
261
+ <el-button type="primary" @click="filter">筛选</el-button>
262
+ <el-button plain @click="clear">重置</el-button>
263
+ </footerBox>
264
+ </el-form>
265
+ </el-popover>
266
+ </template>
267
+
268
+ <script>
269
+ import inputNumber from '../InputNumber/index.vue'
270
+ import inputNumberRange from '../InputNumber/numberRange.vue'
271
+ import datePickerPor from '../DatePicker/por.vue'
272
+ import footerBox from '../FooterBox/index.vue'
273
+ export default {
274
+ name: 'Filters',
275
+ components: {
276
+ inputNumber,
277
+ inputNumberRange,
278
+ datePickerPor,
279
+ footerBox
280
+ },
281
+ filters: {
282
+ clearableF(item) {
283
+ if (item.props && item.props.clearable === false) {
284
+ return false
285
+ } else {
286
+ return true
287
+ }
288
+ }
289
+ },
290
+ props: {
291
+ width: {
292
+ type: Number,
293
+ default: 310
294
+ },
295
+ defaultShow: {
296
+ type: Number,
297
+ default: 5
298
+ },
299
+ filterList: {
300
+ type: Array,
301
+ default: () => []
302
+ },
303
+ form: {
304
+ type: Object,
305
+ default: () => ({})
306
+ },
307
+ labelWidth: {
308
+ type: [String, Number],
309
+ default: '5em'
310
+ }
311
+ },
312
+ data() {
313
+ return {
314
+ showPop: false,
315
+ showPopC: false,
316
+ showMore: false
317
+ }
318
+ },
319
+ computed: {
320
+ minList() {
321
+ return this.filterList.slice(0, this.defaultShow)
322
+ },
323
+ moreList() {
324
+ return this.filterList.slice(this.defaultShow)
325
+ }
326
+ },
327
+ methods: {
328
+ clear() {
329
+ this.$emit('clear')
330
+ },
331
+ filter() {
332
+ this.$emit('filter')
333
+ this.$nextTick(() => {
334
+ this.showPop = false
335
+ })
336
+ },
337
+ clickBtn() {
338
+ if (!this.showPop) {
339
+ setTimeout(() => {
340
+ this.showPop = true
341
+ }, 60)
342
+ }
343
+ },
344
+ clickOut() {
345
+ let elPoppers = []
346
+ document
347
+ .querySelectorAll('.el-popper,.el-dialog__wrapper')
348
+ .forEach((e) => {
349
+ e.style.display !== 'none' && elPoppers.push(e)
350
+ })
351
+
352
+ if (elPoppers.length <= 1) {
353
+ this.showPop = false
354
+ }
355
+ }
356
+ }
357
+ }
358
+ </script>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <el-popover
3
+ :width="width"
4
+ placement="bottom-end"
5
+ title="筛选"
6
+ v-model="showPop"
7
+ @after-leave="
8
+ showMore = false
9
+ "
10
+ trigger="manual"
11
+ >
12
+ <span slot="reference">
13
+ <el-button @click="clickBtn" icon="n20-icon-iconfontshaixuan" plain onlyicon size="mini"
14
+ /></span>
15
+
16
+ <div class="n20-filter p-a-s" v-click-outside="clickOut">
17
+ <slot></slot>
18
+ <el-button
19
+ v-if="$slots.more"
20
+ class="p-t-0 m-b-s"
21
+ type="text"
22
+ @click="showMore = !showMore"
23
+ ><span>{{ showMore ? '收起' : '更多' }}条件</span
24
+ ><i :class="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"></i
25
+ ></el-button>
26
+ <el-collapse-transition v-if="$slots.more">
27
+ <div v-show="showMore">
28
+ <slot name="more"></slot>
29
+ </div>
30
+ </el-collapse-transition>
31
+ </div>
32
+ <div class="text-c m-t m-b">
33
+ <slot name="actions">
34
+ <el-button
35
+ size="mini"
36
+ type="primary"
37
+ style="width: 76px"
38
+ @click="filter"
39
+ >
40
+ {{ filterText }}
41
+ </el-button>
42
+ <el-button size="mini" plain style="width: 76px" @click="clear">
43
+ {{ clearText }}
44
+ </el-button>
45
+ </slot>
46
+ </div>
47
+ </el-popover>
48
+ </template>
49
+
50
+ <script>
51
+ export default {
52
+ name: 'FiltersO',
53
+ props: {
54
+ clearText: {
55
+ type: String,
56
+ default: '重置'
57
+ },
58
+ filterText: {
59
+ type: String,
60
+ default: '筛选'
61
+ },
62
+ width: {
63
+ type: Number,
64
+ default: 310
65
+ }
66
+ },
67
+ data() {
68
+ return {
69
+ showMore: false,
70
+ showPop:false
71
+ }
72
+ },
73
+ mounted() {},
74
+ methods: {
75
+ clear() {
76
+ this.$emit('clear')
77
+ },
78
+ filter() {
79
+ this.showPop = false
80
+ this.$emit('filter')
81
+ },
82
+ clickBtn() {
83
+ if (!this.showPop) {
84
+ setTimeout(() => {
85
+ this.showPop = true
86
+ }, 60)
87
+ }
88
+ },
89
+ clickOut() {
90
+ let elPoppers = []
91
+ document
92
+ .querySelectorAll('.el-popper,.el-dialog__wrapper')
93
+ .forEach((e) => {
94
+ e.style.display !== 'none' && elPoppers.push(e)
95
+ })
96
+
97
+ if (elPoppers.length <= 1) {
98
+ this.showPop = false
99
+ }
100
+ }
101
+ }
102
+ }
103
+ </script>
104
+
@@ -0,0 +1,69 @@
1
+ <template>
2
+ <div class="n20-steps-area">
3
+ <div class="n20-steps">
4
+ <div
5
+ :class="['n20-steps-item',
6
+ { 'finished': current > n,
7
+ 'process': current === n && n !== totalSteps,
8
+ 'last-process': current === totalSteps && n === totalSteps,
9
+ 'middle-wait': current < n && n !== totalSteps,
10
+ 'last-wait': current < n && n === totalSteps,
11
+ }
12
+ ]"
13
+ v-for="n in totalSteps"
14
+ :key="n"
15
+ @click="onChange(n)">
16
+ <div class="n20-steps-icon">
17
+ <span :class="['n20-u-icon',{'n20-icon-danxuankuang-yixuanzhong': current === n && n !== totalSteps|| current === totalSteps && n === totalSteps},]" v-if="current<=n"></span>
18
+ <span class="n20-u-icon n20-icon-fankui-chenggongkongxin" v-else></span>
19
+ </div>
20
+ <div class="n20-steps-content">
21
+ <div class="n20-steps-title">{{ stepsLabel[n-1] || 'S ' + n }}</div>
22
+ <div class="n20-steps-description">{{ stepsDesc[n-1] || 'Desc ' + n }}</div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </template>
28
+ <script>
29
+ export default {
30
+ name: 'FlowStep',
31
+ props: {
32
+ stepsLabel: { // 步骤title数组
33
+ type: Array,
34
+ default: () => {
35
+ return []
36
+ }
37
+ },
38
+ stepsDesc: { // 步骤description数组
39
+ type: Array,
40
+ default: () => {
41
+ return []
42
+ }
43
+ },
44
+ totalSteps: { // 总的步骤数
45
+ type: Number,
46
+ default: 3
47
+ },
48
+ currentStep: { // 当前选中的步骤
49
+ type: Number,
50
+ default: 1
51
+ }
52
+ },
53
+ data () {
54
+ return {
55
+ // 若当前选中步骤超过总步骤数,则默认选择步骤1
56
+ current: this.currentStep > this.totalSteps ? 1 : this.currentStep
57
+ }
58
+ },
59
+ methods: {
60
+ onChange (index) { // 点击切换选择步骤
61
+ console.log('index:', index)
62
+ if (this.current !== index) {
63
+ this.current = index
64
+ this.$emit('change', index)
65
+ }
66
+ }
67
+ }
68
+ }
69
+ </script>
@@ -0,0 +1,21 @@
1
+ <template>
2
+ <div class="n20-footer-box">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'FooterBox',
10
+ mounted() {
11
+ if (this.$el.parentNode) {
12
+ this.$el.parentNode.classList.add('n20-footer-parent')
13
+ }
14
+ },
15
+ beforeDestroy() {
16
+ if (this.$el.parentNode) {
17
+ this.$el.parentNode.classList.remove('n20-footer-parent')
18
+ }
19
+ }
20
+ }
21
+ </script>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div class="general-card">
3
+ <div class="card-top">
4
+ <slot name="title"></slot>
5
+ <slot name="day"></slot>
6
+ </div>
7
+ <slot name="content"></slot>
8
+ </div>
9
+ </template>
10
+
11
+ <script>
12
+ export default {
13
+ name: 'GeneralCard'
14
+ }
15
+ </script>