n20-common-lib 1.3.38 → 1.3.41

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 (419) hide show
  1. package/README.md +2 -2
  2. package/g6.js +2 -2
  3. package/nstc-g6/assets/svg/addFile.svg +31 -31
  4. package/nstc-g6/assets/svg/deleteFile.svg +27 -27
  5. package/nstc-g6/assets/svg/filter.svg +15 -15
  6. package/nstc-g6/assets/svg/filterActive.svg +16 -16
  7. package/nstc-g6/assets/svg/hourglass.svg +18 -18
  8. package/nstc-g6/assets/svg/newsearch.svg +18 -18
  9. package/nstc-g6/assets/svg/searchActive.svg +18 -18
  10. package/nstc-g6/components/Calendar/index.js +8 -8
  11. package/nstc-g6/components/Calendar/src/basic/month-table.vue +129 -129
  12. package/nstc-g6/components/Calendar/src/basic/year-table.vue +126 -126
  13. package/nstc-g6/components/Calendar/src/main.vue +442 -442
  14. package/nstc-g6/components/DialogForm/index.js +8 -8
  15. package/nstc-g6/components/DialogForm/src/demo/index.vue +56 -56
  16. package/nstc-g6/components/DialogForm/src/main.vue +189 -189
  17. package/nstc-g6/components/Form/A_DEMO/component/originalForm.vue +280 -280
  18. package/nstc-g6/components/Form/A_DEMO/config/config_3.js +1222 -1222
  19. package/nstc-g6/components/Form/A_DEMO/index.vue +803 -803
  20. package/nstc-g6/components/Form/AutocompleteCustom/index.vue +72 -72
  21. package/nstc-g6/components/Form/BusinessSpecific/InputMultiple.vue +191 -191
  22. package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +128 -128
  23. package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +233 -233
  24. package/nstc-g6/components/Form/BusinessSpecific/readme.md +7 -7
  25. package/nstc-g6/components/Form/CascaderCustom/index.vue +101 -101
  26. package/nstc-g6/components/Form/CheckboxCustom/index.vue +84 -84
  27. package/nstc-g6/components/Form/Component.vue +661 -661
  28. package/nstc-g6/components/Form/ComponentSecond.vue +650 -650
  29. package/nstc-g6/components/Form/DatepickerCustom/index.vue +130 -130
  30. package/nstc-g6/components/Form/InputAndDialog/index.js +15 -15
  31. package/nstc-g6/components/Form/InputAndDialog/src/main.vue +394 -394
  32. package/nstc-g6/components/Form/InputCustom/demo/index.vue +65 -65
  33. package/nstc-g6/components/Form/InputCustom/index.vue +307 -307
  34. package/nstc-g6/components/Form/IntervalinputCustom/demo/index.vue +31 -31
  35. package/nstc-g6/components/Form/IntervalinputCustom/index.vue +118 -118
  36. package/nstc-g6/components/Form/Item.vue +330 -330
  37. package/nstc-g6/components/Form/ItemSecond.vue +269 -269
  38. package/nstc-g6/components/Form/List.vue +146 -146
  39. package/nstc-g6/components/Form/ListSecond.vue +130 -130
  40. package/nstc-g6/components/Form/RadioCustom/index.vue +73 -73
  41. package/nstc-g6/components/Form/SelectAccount/index.js +15 -15
  42. package/nstc-g6/components/Form/SelectAccount/src/demo/index.vue +57 -57
  43. package/nstc-g6/components/Form/SelectAccount/src/main.vue +282 -282
  44. package/nstc-g6/components/Form/SelectAndDialog/index.js +15 -15
  45. package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +383 -383
  46. package/nstc-g6/components/Form/SelectCashFlow/index.js +15 -15
  47. package/nstc-g6/components/Form/SelectCashFlow/src/demo/index.vue +41 -41
  48. package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +125 -125
  49. package/nstc-g6/components/Form/SelectCustom/demo/index.vue +82 -82
  50. package/nstc-g6/components/Form/SelectCustom/index.vue +488 -488
  51. package/nstc-g6/components/Form/SelectSubject/index.js +15 -15
  52. package/nstc-g6/components/Form/SelectSubject/src/demo/index.vue +84 -84
  53. package/nstc-g6/components/Form/SelectSubject/src/main.vue +181 -181
  54. package/nstc-g6/components/Form/SelectindialogCustom/demo/index.vue +188 -188
  55. package/nstc-g6/components/Form/SelectindialogCustom/index.vue +650 -650
  56. package/nstc-g6/components/Form/SelectindialogCustom/install.js +6 -6
  57. package/nstc-g6/components/Form/TableRadioCustom/demo/index.vue +53 -53
  58. package/nstc-g6/components/Form/TableRadioCustom/index.vue +183 -183
  59. package/nstc-g6/components/Form/TextCustom/index.vue +38 -38
  60. package/nstc-g6/components/Form/UploadCustom/demo/index.vue +31 -31
  61. package/nstc-g6/components/Form/UploadCustom/index.vue +506 -506
  62. package/nstc-g6/components/Form/configs.js +191 -191
  63. package/nstc-g6/components/Form/configsSecond.js +161 -161
  64. package/nstc-g6/components/Form/index.js +8 -8
  65. package/nstc-g6/components/Form/index.scss +29 -29
  66. package/nstc-g6/components/Form/payeePersonSelect/index.js +15 -15
  67. package/nstc-g6/components/Form/payeePersonSelect/src/demo/index.vue +163 -163
  68. package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +184 -184
  69. package/nstc-g6/components/Form/readme.txt +4 -4
  70. package/nstc-g6/components/FormGroup/index.js +8 -8
  71. package/nstc-g6/components/FormGroup/src/demo/config.js +23 -23
  72. package/nstc-g6/components/FormGroup/src/demo/index.vue +85 -85
  73. package/nstc-g6/components/FormGroup/src/main.vue +639 -639
  74. package/nstc-g6/components/FormGroup/src/validate.js +22 -22
  75. package/nstc-g6/components/InputTag/InputTag.vue +269 -269
  76. package/nstc-g6/components/NstcApprovel/NstcApprovel.vue +24 -24
  77. package/nstc-g6/components/NstcBackToTop/NstcBackToTop.vue +150 -150
  78. package/nstc-g6/components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +123 -123
  79. package/nstc-g6/components/NstcCharts/NstcCharts.vue +162 -162
  80. package/nstc-g6/components/NstcCharts/define.js +74 -74
  81. package/nstc-g6/components/NstcCharts/mixins/resize.js +56 -56
  82. package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +152 -152
  83. package/nstc-g6/components/NstcConfirm/index.js +24 -24
  84. package/nstc-g6/components/NstcDialog/NstcDialog.vue +184 -184
  85. package/nstc-g6/components/NstcDialogForm/NstcDialogForm.vue +175 -175
  86. package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +280 -280
  87. package/nstc-g6/components/NstcDropdown/NstcDropdown.vue +52 -52
  88. package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +396 -396
  89. package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +591 -591
  90. package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +475 -475
  91. package/nstc-g6/components/NstcExcelExport/NstcExcelExport.vue +145 -145
  92. package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +1074 -1074
  93. package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +1166 -1166
  94. package/nstc-g6/components/NstcExpandCollapse/NstcExpandCollapse.vue +130 -130
  95. package/nstc-g6/components/NstcExpandCollapse/index.scss +77 -77
  96. package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +989 -989
  97. package/nstc-g6/components/NstcFileUpload/img/addFile.svg +31 -31
  98. package/nstc-g6/components/NstcFileUpload/img/delete.svg +23 -23
  99. package/nstc-g6/components/NstcFileUpload/img/deleteFile.svg +27 -27
  100. package/nstc-g6/components/NstcFileUpload/img/download.svg +23 -23
  101. package/nstc-g6/components/NstcFileUpload/img/inputUpload.svg +29 -29
  102. package/nstc-g6/components/NstcFileUpload/img/look-diabled.svg +23 -23
  103. package/nstc-g6/components/NstcFileUpload/img/look.svg +23 -23
  104. package/nstc-g6/components/NstcForm/A_DEMO/component/originalForm.vue +280 -280
  105. package/nstc-g6/components/NstcForm/A_DEMO/config/config_3.js +1222 -1222
  106. package/nstc-g6/components/NstcForm/A_DEMO/index.vue +796 -796
  107. package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +68 -68
  108. package/nstc-g6/components/NstcForm/BusinessSpecific/InputMultiple.vue +189 -189
  109. package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +128 -128
  110. package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +233 -233
  111. package/nstc-g6/components/NstcForm/BusinessSpecific/readme.md +7 -7
  112. package/nstc-g6/components/NstcForm/CascaderCustom/index.vue +101 -101
  113. package/nstc-g6/components/NstcForm/CheckboxCustom/index.vue +84 -84
  114. package/nstc-g6/components/NstcForm/Component.vue +684 -684
  115. package/nstc-g6/components/NstcForm/ComponentSecond.vue +650 -650
  116. package/nstc-g6/components/NstcForm/DatepickerCustom/index.vue +130 -130
  117. package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +389 -389
  118. package/nstc-g6/components/NstcForm/InputCustom/index.vue +313 -313
  119. package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +111 -111
  120. package/nstc-g6/components/NstcForm/Item.vue +327 -327
  121. package/nstc-g6/components/NstcForm/ItemSecond.vue +269 -269
  122. package/nstc-g6/components/NstcForm/List.vue +146 -146
  123. package/nstc-g6/components/NstcForm/ListSecond.vue +130 -130
  124. package/nstc-g6/components/NstcForm/RadioCustom/index.vue +73 -73
  125. package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +334 -334
  126. package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +377 -377
  127. package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +122 -122
  128. package/nstc-g6/components/NstcForm/SelectCustom/index.vue +460 -460
  129. package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +184 -184
  130. package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +648 -648
  131. package/nstc-g6/components/NstcForm/TableRadioCustom/index.vue +183 -183
  132. package/nstc-g6/components/NstcForm/TextCustom/index.vue +38 -38
  133. package/nstc-g6/components/NstcForm/UploadCustom/index.vue +500 -500
  134. package/nstc-g6/components/NstcForm/configs.js +191 -191
  135. package/nstc-g6/components/NstcForm/configsSecond.js +161 -161
  136. package/nstc-g6/components/NstcForm/index.js +8 -8
  137. package/nstc-g6/components/NstcForm/index.scss +29 -29
  138. package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +187 -187
  139. package/nstc-g6/components/NstcForm/readme.txt +4 -4
  140. package/nstc-g6/components/NstcPagination/NstcPagination.vue +428 -428
  141. package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +70 -70
  142. package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +730 -730
  143. package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +677 -677
  144. package/nstc-g6/components/NstcSticky/NstcSticky.vue +97 -97
  145. package/nstc-g6/components/NstcSvgIcon/NstcSvgIcon.vue +72 -72
  146. package/nstc-g6/components/NstcTab/NstcTab.vue +80 -80
  147. package/nstc-g6/components/NstcTabWithBadge/NstcTabWithBadge.vue +45 -45
  148. package/nstc-g6/components/NstcTabWithBadge/index.scss +31 -31
  149. package/nstc-g6/components/NstcTable/ElTableColumnCustom/index.vue +292 -292
  150. package/nstc-g6/components/NstcTable/NstcTable.vue +460 -460
  151. package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +802 -802
  152. package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +186 -186
  153. package/nstc-g6/components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +330 -330
  154. package/nstc-g6/components/NstcUploadExcel/NstcUploadExcel.vue +145 -145
  155. package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +180 -180
  156. package/nstc-g6/components/Search/NstcSearch.vue +583 -583
  157. package/nstc-g6/components/Search/src/demo/index copy.vue +101 -101
  158. package/nstc-g6/components/Search/src/demo/index.vue +103 -103
  159. package/nstc-g6/components/Search/src/main copy.vue +607 -607
  160. package/nstc-g6/components/approvelTwo/main.vue +220 -220
  161. package/nstc-g6/components/approvelTwo/progress.vue +154 -154
  162. package/nstc-g6/directives/VCopy/index.js +59 -59
  163. package/nstc-g6/directives/VNstcNumber/index.js +14 -14
  164. package/nstc-g6/directives/VNstcNumber/temp.js +446 -446
  165. package/nstc-g6/index.js +193 -193
  166. package/nstc-g6/utils/auth.js +2 -2
  167. package/nstc-g6/utils/axios.js +2 -2
  168. package/nstc-g6/utils/dateAndValidator.js +649 -649
  169. package/nstc-g6/utils/debounce.js +40 -40
  170. package/nstc-g6/utils/parseTime.js +48 -48
  171. package/nstc-g6/utils/validate/index.js +6 -6
  172. package/nstc-g6/utils/vendor/Export2Excel.js +229 -229
  173. package/nstc-g6/utils/vendor/Export2Zip.js +24 -24
  174. package/nstc-g6/utils/vue-bus.js +4 -4
  175. package/package.json +116 -116
  176. package/src/_qiankun/index.js +113 -113
  177. package/src/_qiankun/postMessage.js +24 -24
  178. package/src/assets/.DS_Store +0 -0
  179. package/src/assets/css/_coreLib.scss +43 -43
  180. package/src/assets/css/alert.scss +28 -28
  181. package/src/assets/css/cl-anchor.scss +70 -32
  182. package/src/assets/css/cl-approve-card.scss +68 -68
  183. package/src/assets/css/cl-dialog.scss +113 -113
  184. package/src/assets/css/cl-drag-list.scss +24 -24
  185. package/src/assets/css/cl-empty.scss +10 -10
  186. package/src/assets/css/cl-expandable-pane.scss +37 -37
  187. package/src/assets/css/cl-expandable.scss +27 -27
  188. package/src/assets/css/cl-file-upload-table.scss +31 -31
  189. package/src/assets/css/cl-filter.scss +4 -4
  190. package/src/assets/css/cl-flow-step.scss +185 -185
  191. package/src/assets/css/cl-footer-box.scss +10 -10
  192. package/src/assets/css/cl-form-item.scss +725 -725
  193. package/src/assets/css/cl-general-card.scss +11 -11
  194. package/src/assets/css/cl-layout-aside.scss +92 -92
  195. package/src/assets/css/cl-layout-content.scss +16 -16
  196. package/src/assets/css/cl-layout-header.scss +89 -89
  197. package/src/assets/css/cl-layout-tabs.scss +87 -87
  198. package/src/assets/css/cl-layout.scss +97 -97
  199. package/src/assets/css/cl-login-temporary.scss +37 -37
  200. package/src/assets/css/cl-message.scss +159 -159
  201. package/src/assets/css/cl-more-tab.scss +98 -98
  202. package/src/assets/css/cl-nav-menu.scss +5 -5
  203. package/src/assets/css/cl-pagination.scss +130 -130
  204. package/src/assets/css/cl-secondary-tab.scss +53 -53
  205. package/src/assets/css/cl-showcolumn.scss +40 -40
  206. package/src/assets/css/cl-sifting.scss +51 -51
  207. package/src/assets/css/cl-statis.scss +54 -54
  208. package/src/assets/css/cl-step.scss +73 -73
  209. package/src/assets/css/cl-suspend.scss +19 -19
  210. package/src/assets/css/cl-tertiary-tab.scss +56 -56
  211. package/src/assets/css/cl-upload.scss +52 -52
  212. package/src/assets/css/cl-worn-pagination.scss +50 -50
  213. package/src/assets/css/el-button.scss +186 -186
  214. package/src/assets/css/el-table.scss +88 -88
  215. package/src/assets/css/element-variables.scss +1061 -1061
  216. package/src/assets/css/element.dev.scss +22 -22
  217. package/src/assets/css/font-icon.scss +26 -26
  218. package/src/assets/css/index.dev.scss +4 -4
  219. package/src/assets/css/index.scss +11 -11
  220. package/src/assets/css/normalize.scss +845 -845
  221. package/src/assets/css/plain-text.scss +36 -36
  222. package/src/assets/css/rootvar.scss +143 -143
  223. package/src/assets/css/select.scss +25 -25
  224. package/src/assets/css/title-pop.scss +23 -23
  225. package/src/assets/getJsonc.js +53 -50
  226. package/src/assets/iconFont/demo.css +539 -539
  227. package/src/assets/iconFont/demo_index.html +1614 -1614
  228. package/src/assets/iconFont/iconfont.css +263 -263
  229. package/src/assets/iconFont/iconfont.json +443 -443
  230. package/src/assets/realUrl.js +13 -12
  231. package/src/components/.DS_Store +0 -0
  232. package/src/components/Anchor/AnchorItem.vue +30 -30
  233. package/src/components/Anchor/index.vue +208 -185
  234. package/src/components/ApprovalButtons/index.vue +240 -240
  235. package/src/components/ApprovalCard/index.vue +132 -132
  236. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  237. package/src/components/ApprovalRecord/flowDialog.vue +47 -47
  238. package/src/components/ApprovalRecord/index.vue +63 -63
  239. package/src/components/Button/button-group.vue +148 -148
  240. package/src/components/Button/icon-group-button.vue +63 -63
  241. package/src/components/Button/index.vue +56 -56
  242. package/src/components/CascaderArea/index.vue +103 -103
  243. package/src/components/ChildRange/index.vue +169 -169
  244. package/src/components/ChildRange/style.scss +34 -34
  245. package/src/components/ContentLoading/index.vue +41 -41
  246. package/src/components/ContentNull/index.vue +19 -19
  247. package/src/components/DatePicker/index.vue +33 -33
  248. package/src/components/DatePicker/por.vue +171 -171
  249. package/src/components/Descriptions/index.vue +42 -42
  250. package/src/components/Dialog/index.vue +26 -26
  251. package/src/components/Dialog/indexO.vue +116 -116
  252. package/src/components/DragList/index.vue +75 -75
  253. package/src/components/ECharts/define.js +74 -74
  254. package/src/components/ECharts/index.vue +167 -167
  255. package/src/components/ECharts/mixins/resize.js +23 -23
  256. package/src/components/Empty/.DS_Store +0 -0
  257. package/src/components/Empty/img/.DS_Store +0 -0
  258. package/src/components/Empty/img/400.svg +101 -101
  259. package/src/components/Empty/img/401.svg +101 -101
  260. package/src/components/Empty/img/403.svg +101 -101
  261. package/src/components/Empty/img/405.svg +101 -101
  262. package/src/components/Empty/img/901.svg +95 -95
  263. package/src/components/Empty/img/902.svg +95 -95
  264. package/src/components/Empty/img/903.svg +95 -95
  265. package/src/components/Empty/img/904.svg +95 -95
  266. package/src/components/Empty/img/905.svg +95 -95
  267. package/src/components/Empty/img/906.svg +95 -95
  268. package/src/components/Empty/img/907.svg +95 -95
  269. package/src/components/Empty/img/abnormal.svg +108 -108
  270. package/src/components/Empty/img/dispose.svg +71 -71
  271. package/src/components/Empty/img/empty.svg +57 -57
  272. package/src/components/Empty/img/general.svg +58 -58
  273. package/src/components/Empty/img/lock.svg +57 -57
  274. package/src/components/Empty/img/network.svg +59 -59
  275. package/src/components/Empty/img/relevant.svg +68 -68
  276. package/src/components/Empty/img/search.svg +72 -72
  277. package/src/components/Empty/index.vue +147 -147
  278. package/src/components/EventBubble/demo/a.vue +29 -29
  279. package/src/components/EventBubble/demo/b.vue +12 -12
  280. package/src/components/EventBubble/demo/c.vue +18 -18
  281. package/src/components/EventBubble/index.vue +57 -57
  282. package/src/components/Expandable/index.vue +49 -49
  283. package/src/components/Expandable/main.vue +64 -64
  284. package/src/components/FileExportAsync/index.vue +191 -191
  285. package/src/components/FileImport/index.vue +108 -181
  286. package/src/components/FileUploadTable/index.vue +570 -562
  287. package/src/components/Filters/form-item-input.vue +185 -186
  288. package/src/components/Filters/index.vue +216 -216
  289. package/src/components/Filters/indexO.vue +106 -106
  290. package/src/components/FlowStep/index.vue +92 -92
  291. package/src/components/FooterBox/index.vue +21 -21
  292. package/src/components/GeneralCard/index.vue +15 -15
  293. package/src/components/InputNumber/index.vue +184 -184
  294. package/src/components/InputNumber/numberRange.vue +62 -62
  295. package/src/components/InputSearch/index.vue +75 -75
  296. package/src/components/Layout/.DS_Store +0 -0
  297. package/src/components/Layout/AsideNav/index.vue +120 -120
  298. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  299. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  300. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  301. package/src/components/Layout/HeaderWrap/index.vue +412 -418
  302. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  303. package/src/components/Layout/SubContent/index.vue +127 -127
  304. package/src/components/Layout/TabsNav/index.vue +169 -170
  305. package/src/components/Layout/index.vue +518 -518
  306. package/src/components/Layout/utils.js +12 -12
  307. package/src/components/LoginTemporary/form.vue +575 -575
  308. package/src/components/LoginTemporary/index.vue +193 -193
  309. package/src/components/LoginTemporary/qrcode.vue +90 -90
  310. package/src/components/LoginTemporary/retrievePw.vue +375 -372
  311. package/src/components/LoginTemporary/utils.js +73 -73
  312. package/src/components/MicroApp/index.js +67 -67
  313. package/src/components/MicroFrame/index.vue +95 -95
  314. package/src/components/MoreTab/index.vue +229 -229
  315. package/src/components/NavMenu/index.vue +60 -60
  316. package/src/components/PageHeader/index.vue +39 -36
  317. package/src/components/PageHeader/style.scss +44 -44
  318. package/src/components/PageLayout/page.vue +15 -15
  319. package/src/components/Pagination/index.vue +165 -165
  320. package/src/components/SecondaryTab/index.vue +57 -57
  321. package/src/components/SelectLazy/index.vue +75 -75
  322. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  323. package/src/components/SelectTree/index.vue +206 -206
  324. package/src/components/ShowColumn/index.vue +252 -252
  325. package/src/components/Sifting/index.vue +98 -98
  326. package/src/components/Stamp/index.vue +75 -75
  327. package/src/components/Statis/index.vue +111 -111
  328. package/src/components/Statis/statisItem.vue +60 -60
  329. package/src/components/Statis/statisPopover.vue +63 -63
  330. package/src/components/Step/index.vue +37 -37
  331. package/src/components/Suspend/index.vue +72 -72
  332. package/src/components/Table/ThSelectHeader.vue +128 -128
  333. package/src/components/Table/filters.js +60 -60
  334. package/src/components/Table/index.vue +136 -136
  335. package/src/components/Table/indexO.vue +149 -149
  336. package/src/components/TableOperateColumn/OperateBtns.vue +73 -73
  337. package/src/components/TableOperateColumn/index.vue +26 -26
  338. package/src/components/Task/index.vue +26 -26
  339. package/src/components/TertiaryTab/index.vue +62 -62
  340. package/src/components/TimePicker/index.vue +28 -28
  341. package/src/components/Upload/index.vue +280 -268
  342. package/src/components/Upload/uploadMsg.vue +114 -0
  343. package/src/components/WornPagination/index.vue +73 -73
  344. package/src/directives/VClickOutside/index.js +27 -19
  345. package/src/directives/VDrag/index.js +12 -8
  346. package/src/directives/VHas/index.js +58 -58
  347. package/src/directives/VMove/index.js +42 -42
  348. package/src/directives/VRuleKey/index.js +201 -194
  349. package/src/directives/VTitle/index.js +106 -106
  350. package/src/index.js +264 -264
  351. package/src/plugins/.DS_Store +0 -0
  352. package/src/plugins/CompatibleOld/index.js +11 -11
  353. package/src/plugins/Print/index.js +4 -4
  354. package/src/plugins/Print/print-js/.babelrc +12 -12
  355. package/src/plugins/Print/print-js/LICENSE +21 -21
  356. package/src/plugins/Print/print-js/README.md +98 -98
  357. package/src/plugins/Print/print-js/dist/print.css +96 -96
  358. package/src/plugins/Print/print-js/dist/print.js +990 -990
  359. package/src/plugins/Print/print-js/package.json +60 -60
  360. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  361. package/src/plugins/Print/print-js/src/index.js +10 -10
  362. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  363. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  364. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  365. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  366. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  367. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  368. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  369. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  370. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  371. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  372. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  373. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  374. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  375. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  376. package/src/plugins/Print/print.js +2 -2
  377. package/src/plugins/Print/print.scss +1 -1
  378. package/src/plugins/SetMenuTree/index.vue +41 -41
  379. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  380. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  381. package/src/plugins/SetMenuTree/utils.js +74 -74
  382. package/src/plugins/Sign/.DS_Store +0 -0
  383. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  384. package/src/plugins/Sign/bjca/XTXSAB.js +2395 -2395
  385. package/src/plugins/Sign/bjca/index.js +129 -129
  386. package/src/plugins/Sign/index.js +28 -28
  387. package/src/plugins/Sign/sign.js +64 -64
  388. package/src/plugins/setTabsForSub.js +2 -2
  389. package/src/utils/auth.js +56 -54
  390. package/src/utils/axios.js +205 -203
  391. package/src/utils/downloadBlob.js +19 -19
  392. package/src/utils/forEachs.js +16 -16
  393. package/src/utils/getScrollContainer.js +43 -43
  394. package/src/utils/handleTab.js +109 -109
  395. package/src/utils/i18n/cn2hk.json +1270 -1270
  396. package/src/utils/i18n/index.js +50 -50
  397. package/src/utils/list2tree.js +36 -36
  398. package/src/utils/mapper_aims.js +809 -809
  399. package/src/utils/msgboxPor.js +26 -26
  400. package/src/utils/print.js +161 -161
  401. package/src/utils/relaNo.js +72 -72
  402. package/src/utils/repairElementUI.js +169 -145
  403. package/src/utils/tableheaderFilterpanel.vue +248 -249
  404. package/src/utils/theme.config.js +22 -22
  405. package/src/utils/theme.js +31 -31
  406. package/src/utils/toExcel.js +95 -95
  407. package/src/utils/urlToGo.js +82 -82
  408. package/src/utils/xls2json.js +40 -40
  409. package/src/utils/xlsx2json.js +24 -24
  410. package/style/index.css +1 -1
  411. package/style/index.css.map +1 -1
  412. package/theme/blue.css +1 -1
  413. package/theme/green.css +1 -1
  414. package/theme/lightBlue.css +1 -1
  415. package/theme/orange.css +1 -1
  416. package/theme/purple.css +1 -1
  417. package/theme/red.css +1 -1
  418. package/theme/yellow.css +1 -1
  419. package/src/components/FileImport/_index.vue +0 -9
@@ -1,684 +1,684 @@
1
- <template>
2
- <el-form
3
- :id="formID"
4
- :key="formID"
5
- :ref="formID"
6
- :model="model"
7
- :label-width="innerLabelWidth"
8
- :label-position="labelPosition"
9
- :rules="rules"
10
- :show-message="showMessage"
11
- v-bind="$attrs"
12
- :class="['form-custom', `form-custom-${mode}`]"
13
- v-on="$listeners"
14
- @submit.native.prevent
15
- >
16
- <!-- 常规查询 -->
17
- <BaseList
18
- v-model="model"
19
- :config="normalConfig"
20
- :resets.sync="resets"
21
- :loading="queryLoading"
22
- :disableds="disableds"
23
- :popper-class="computedPopperClass"
24
- :form-data="formData"
25
- :show-mode="showMode"
26
- @after-leave="(val) => $emit('after-leave', val)"
27
- @query-click="handleExpectQuery"
28
- @add-click="$emit('add-click')"
29
- @other-click="$emit('other-click')"
30
- @enter-click="handleExpectQuery"
31
- @tree-node-click="
32
- (prop, data, node) => $emit('tree-node-click', prop, data, node)
33
- "
34
- />
35
-
36
- <div
37
- v-if="isVertical && queryBtn"
38
- :class="[`form-item`, `form-item-button`]"
39
- >
40
- <el-button
41
- v-bind="queryBtn"
42
- :loading="queryLoading"
43
- :disabled="disableds.querybutton"
44
- @click="handleExpectQuery"
45
- >
46
- {{ queryBtn.name || '查询' }}
47
- </el-button>
48
- </div>
49
- </el-form>
50
- </template>
51
-
52
- <script>
53
- // 注: 支持的类型 请查看configs.js
54
- import BaseList from './List'
55
-
56
- import { SUPPORT_TYPE, getDefaultValue } from './configs'
57
-
58
- const deepEquals = (a, b) => {
59
- if (Array.isArray(a) && Array.isArray(b)) {
60
- if (a.length !== b.length) {
61
- return false
62
- }
63
-
64
- for (let i = 0; i < a.length; i++) {
65
- if (a[i] !== b[i]) {
66
- return false
67
- }
68
- }
69
-
70
- return true
71
- }
72
-
73
- return a === b
74
- }
75
- export default {
76
- name: 'NstcForm',
77
-
78
- components: {
79
- BaseList
80
- },
81
-
82
- inheritAttrs: false,
83
-
84
- props: {
85
- formData: {
86
- type: Object,
87
- default: () => ({})
88
- },
89
- from: {
90
- type: String,
91
- default: null
92
- },
93
- config: {
94
- type: Array,
95
- default: () => []
96
- },
97
-
98
- popperClass: {
99
- type: String,
100
- default: ''
101
- },
102
-
103
- reset: {
104
- type: Boolean,
105
- default: false
106
- },
107
-
108
- // 组件加载完成时, 执行一次默认查询
109
- mountAndQuery: {
110
- type: Boolean,
111
- default: true
112
- },
113
-
114
- // 用于表单异步时 手动触发查询
115
- asyncQuery: {
116
- default: false,
117
- type: Boolean
118
- },
119
-
120
- // 样式 : 水平 | 垂直
121
- mode: {
122
- default: 'horizontal',
123
- validator: function (val) {
124
- return ['horizontal', 'vertical'].includes(val)
125
- }
126
- },
127
-
128
- // 是否是纯净模式 (删除 renderable === false 的item.prop对应model的值)
129
- pureable: {
130
- default: false,
131
- type: Boolean
132
- },
133
-
134
- value: {
135
- default: () => ({}),
136
- type: Object
137
- },
138
-
139
- showMessage: {
140
- type: Boolean,
141
- default: true
142
- },
143
-
144
- disabled: {
145
- type: Boolean,
146
- default: false
147
- },
148
-
149
- labelPosition: {
150
- type: String,
151
- default: 'right'
152
- },
153
-
154
- labelWidth: {
155
- default: '136px',
156
- type: [String, Number]
157
- },
158
-
159
- rules: {
160
- type: Object,
161
- default: undefined
162
- },
163
-
164
- // 显示模式
165
- showMode: {
166
- type: String,
167
- default: ''
168
- }
169
- },
170
-
171
- data() {
172
- return {
173
- resets: {},
174
-
175
- disableds: {
176
- querybutton: false
177
- },
178
-
179
- formID: `formID-${Math.random().toString(36).slice(2)}`,
180
-
181
- linkItems: [],
182
- unwatchers: [],
183
-
184
- queryBtn: null,
185
-
186
- normalConfig: [],
187
-
188
- uploadKeys: new Set([]),
189
-
190
- isRendering: false,
191
- queryLoading: false,
192
- innerMountAndQuery: false,
193
- isInit: true
194
- }
195
- },
196
-
197
- computed: {
198
- model: {
199
- get() {
200
- return this.value
201
- },
202
- set(val) {
203
- this.$emit('input', val)
204
- this.$emit('change', val)
205
- }
206
- },
207
-
208
- isVertical() {
209
- return this.mode === 'vertical'
210
- },
211
-
212
- computedPopperClass() {
213
- return (
214
- this.isVertical ? ['form-custom-popper input-w', this.popperClass] : []
215
- ).join(' ')
216
- },
217
-
218
- innerLabelWidth() {
219
- return (this.labelWidth + '').replace(/px/, '') + 'px'
220
- }
221
- },
222
-
223
- watch: {
224
- config: {
225
- deep: true,
226
- immediate: true,
227
- handler: function (newVal) {
228
- if (!this.isRendering && newVal.length) {
229
- this.init()
230
- }
231
- }
232
- },
233
-
234
- value: {
235
- deep: true,
236
- immediate: true,
237
- handler: function (newVal) {
238
- if (
239
- !this.isEmptyObject(newVal) &&
240
- !this.isRendering &&
241
- this.innerMountAndQuery
242
- ) {
243
- this.innerMountAndQuery = false
244
- this.handleExpectQuery()
245
- }
246
- }
247
- },
248
-
249
- reset(newVal) {
250
- console.log('__log_reset', newVal)
251
- if (newVal) {
252
- this.init()
253
- console.log('__log_reset', newVal)
254
-
255
- // temporary hack
256
- this.setResets(true)
257
-
258
- this.$emit('update:reset', false)
259
- }
260
- },
261
-
262
- disabled(newVal, oldVal) {
263
- if (newVal !== oldVal) {
264
- this.setDisableds(newVal)
265
-
266
- this.$emit('disabled')
267
- }
268
- },
269
-
270
- asyncQuery(newVal) {
271
- if (newVal) {
272
- this.$nextTick(() => {
273
- this.handleExpectQuery()
274
- this.$emit('update:asyncQuery', false)
275
- })
276
- }
277
- }
278
- },
279
-
280
- created() {
281
- // this.innerMountAndQuery = this.mountAndQuery;
282
- },
283
-
284
- methods: {
285
- init() {
286
- if (!this.isRendering) {
287
- this.isRendering = true
288
-
289
- this.clearValidate()
290
-
291
- this.uploadKeys.clear()
292
-
293
- this.disableds = {
294
- querybutton: this.disabled
295
- }
296
-
297
- const { querybutton, normalItems = [] } = this.separateAdvanceAndNormal(
298
- this.config
299
- )
300
- this.normalConfig = normalItems
301
-
302
- this.generateFormModel(normalItems)
303
-
304
- this.queryBtn = querybutton
305
-
306
- this.generateLink()
307
-
308
- this.innerMountAndQuery = this.mountAndQuery
309
-
310
- this.isInit = false
311
-
312
- this.isRendering = false
313
- }
314
- },
315
-
316
- generateFormModel(config) {
317
- if (Array.isArray(config)) {
318
- config.forEach((item) => {
319
- if (Array.isArray(item)) {
320
- this.generateFormModel(item)
321
- } else {
322
- if (!item.mold) {
323
- throw Error(
324
- `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
325
- 'querybutton'
326
- ).join('|')}`
327
- )
328
- }
329
-
330
- item.mold = item.mold.toLowerCase()
331
-
332
- this.setModel(item)
333
-
334
- if (item.link) {
335
- this.linkItems.push(item)
336
- }
337
- }
338
- })
339
- } else {
340
- if (!Object.keys(config).length) {
341
- return
342
- }
343
-
344
- if (!config.mold) {
345
- throw Error(
346
- `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
347
- 'querybutton'
348
- ).join('|')}`
349
- )
350
- }
351
-
352
- config.mold = config.mold.toLowerCase()
353
-
354
- this.setModel(config)
355
- }
356
- },
357
-
358
- generateLink() {
359
- while (this.unwatchers.length) {
360
- this.unwatchers.pop()()
361
- }
362
-
363
- this.linkItems.map((item) => {
364
- this.setWatchers(item)
365
- })
366
-
367
- this.linkItems = []
368
- },
369
-
370
- /**
371
- * item
372
- * setValue,(第二个参数)
373
- */
374
- setModel(item) {
375
- let { prop, mold } = item
376
-
377
- if (this.pureable) {
378
- // 纯净模式
379
- if (item.renderable === false) {
380
- this.$delete(this.model, prop)
381
- return
382
- }
383
- }
384
-
385
- prop = prop || mold
386
-
387
- const matchedResult = getDefaultValue(item)
388
-
389
- if (matchedResult !== null) {
390
- if (!(this.isInit && this.model[prop] !== undefined)) {
391
- this.$set(this.model, prop, matchedResult.value)
392
- // this.$set(this.model, prop, (setValue ? this.model[prop] : matchedResult.value) || matchedResult.value);
393
- }
394
-
395
- this.$set(this.resets, prop, false)
396
- this.$set(this.disableds, prop, this.disabled || item.disabled)
397
- }
398
- },
399
-
400
- setWatchers(item) {
401
- const { link, prop: itemProp } = item
402
- let isOneToLinkAll = false
403
- let links
404
- let isComplex
405
-
406
- if (Array.isArray(link)) {
407
- links = link
408
- isOneToLinkAll = links.every((item) => item.mold)
409
- isComplex = !!(
410
- links.find((item) => item.mold) && links.find((item) => !item.mold)
411
- )
412
- } else {
413
- links = [link]
414
- }
415
-
416
- links.forEach((link) =>
417
- this.setSingleLinkWatch(
418
- link,
419
- itemProp,
420
- isOneToLinkAll,
421
- isComplex,
422
- link.mold
423
- )
424
- )
425
- },
426
-
427
- setSingleLinkWatch(
428
- link,
429
- itemProp,
430
- isOneToLinkAll,
431
- isComplex,
432
- isModelEverGenerated
433
- ) {
434
- const { prop, handler, mold } = link
435
-
436
- if (!this.isFunc(handler)) {
437
- return
438
- }
439
-
440
- let targetProp, watchedProp
441
-
442
- if (isOneToLinkAll) {
443
- this.generateFormModel(link)
444
- targetProp = itemProp
445
- watchedProp = prop
446
- } else if (isComplex) {
447
- if (isModelEverGenerated) {
448
- this.generateFormModel(link)
449
- }
450
- targetProp = itemProp
451
- watchedProp = prop
452
- } else {
453
- if (mold) {
454
- this.generateFormModel(link)
455
- targetProp = prop
456
- watchedProp = itemProp
457
- } else {
458
- targetProp = itemProp
459
- watchedProp = prop
460
- }
461
- }
462
-
463
- const unwatcher = this.$watch(`model.${targetProp}`, {
464
- immediate: true,
465
- deep: true,
466
- handler: async function (newVal, oldVal) {
467
- if (watchedProp) {
468
- if (!deepEquals(newVal, oldVal)) {
469
- const defaultAndOptions = await handler(newVal)
470
-
471
- const newItem = {
472
- prop: watchedProp,
473
- ...defaultAndOptions
474
- }
475
-
476
- this.replaceOptions(newItem)
477
- }
478
- }
479
- }
480
- })
481
-
482
- this.unwatchers.push(unwatcher)
483
- },
484
-
485
- replaceOptions({ prop, ...pramas }, config) {
486
- let finded = false
487
-
488
- const replaceOptionsHelper = ({ prop, pramas }, config) => {
489
- if (finded) {
490
- return
491
- }
492
-
493
- const tConfig = config || this.normalConfig
494
-
495
- tConfig.forEach((item, idx) => {
496
- if (Array.isArray(item)) {
497
- replaceOptionsHelper(
498
- {
499
- prop,
500
- pramas
501
- },
502
- item
503
- )
504
- } else if (
505
- Array.isArray(item.link) &&
506
- !(item.prop === prop && item.mold)
507
- ) {
508
- replaceOptionsHelper(
509
- {
510
- prop,
511
- pramas
512
- },
513
- item.link
514
- )
515
- } else {
516
- if (item.prop === prop && item.mold) {
517
- finded = true
518
- const newItem = { ...item, ...pramas }
519
-
520
- tConfig.splice(idx, 1, newItem)
521
-
522
- if (newItem.mold) {
523
- this.setModel(newItem, true)
524
- }
525
- }
526
- }
527
- })
528
- }
529
-
530
- replaceOptionsHelper({ prop, pramas }, config)
531
- },
532
-
533
- setResets(val = false, prop = null) {
534
- if (prop) {
535
- this.resets[prop] = val
536
- } else {
537
- Object.keys(this.resets).forEach((key) => {
538
- this.resets[key] = val
539
- })
540
- }
541
- this.$nextTick(() => {
542
- this.resetFields()
543
- })
544
- },
545
-
546
- setDisableds(val = false, prop = null) {
547
- if (prop) {
548
- this.disableds[prop] = val
549
- } else {
550
- Object.keys(this.disableds).forEach((key) => {
551
- this.disableds[key] = val
552
- })
553
- }
554
- },
555
-
556
- separateAdvanceAndNormal(config = this.config) {
557
- const isVertical = this.isVertical
558
-
559
- const reducer = (config) =>
560
- config.reduce(
561
- (prev, item) => {
562
- if (Array.isArray(item)) {
563
- const { normalItems, ...rest } = reducer(item)
564
-
565
- normalItems.length && prev.normalItems.push(normalItems)
566
-
567
- return {
568
- ...prev,
569
- ...rest
570
- }
571
- } else {
572
- const { mold } = item
573
- // if (mold === "upload") {
574
- // this.uploadKeys.add(prop);
575
- // }
576
-
577
- if (isVertical) {
578
- if (mold === 'querybutton') {
579
- prev[mold] = item
580
- } else {
581
- prev.normalItems.push(item)
582
- }
583
- } else {
584
- prev.normalItems.push(item)
585
- }
586
- }
587
-
588
- return prev
589
- },
590
- {
591
- normalItems: []
592
- }
593
- )
594
-
595
- return reducer(config)
596
- },
597
-
598
- isFunc(callBack) {
599
- return callBack && typeof callBack === 'function'
600
- },
601
-
602
- isEmptyObject(obj) {
603
- const isObj =
604
- Object.prototype.toString.call(obj).toLowerCase() !== '[object object]'
605
- return !Object.keys(isObj ? {} : obj).length
606
- },
607
-
608
- async handleExpectQuery(config) {
609
- this.queryLoading = true
610
-
611
- try {
612
- if (this.$listeners.query) {
613
- await this.validate()
614
-
615
- let model
616
-
617
- if (this.uploadKeys.size) {
618
- model = this.convertModelToFormData(this.model)
619
- config = {
620
- headers: {
621
- 'Content-Type': 'multipart/form-data'
622
- },
623
- ...config
624
- }
625
- } else {
626
- model = JSON.parse(JSON.stringify(this.model))
627
- }
628
-
629
- await this.$listeners.query(model, config)
630
- } else {
631
- throw new Error(
632
- 'must specify @query event when there is a query button'
633
- )
634
- }
635
- } catch (err) {
636
- console.error('form custom error -> handleExpectQuery:', err)
637
- } finally {
638
- this.queryLoading = false
639
- }
640
- },
641
-
642
- convertModelToFormData(model) {
643
- const fd = new FormData()
644
- Object.entries(model).forEach(([key, value]) => {
645
- fd.append(
646
- key,
647
- value instanceof window.FormData ? value.get(key) : value
648
- )
649
- })
650
- return fd
651
- },
652
-
653
- clearValidate() {
654
- if (this.rules && this.$refs[this.formID]) {
655
- this.$refs[this.formID] && this.$refs[this.formID].clearValidate()
656
- }
657
- },
658
-
659
- resetFields() {
660
- console.log('__log_formID', this.formID, this.$refs[this.formID])
661
- this.$refs[this.formID] && this.$refs[this.formID].resetFields()
662
- },
663
-
664
- validate() {
665
- if (this.rules && this.$refs[this.formID]) {
666
- return this.$refs[this.formID].validate()
667
- }
668
-
669
- return Promise.resolve()
670
- },
671
-
672
- /**
673
- * 生成formId
674
- */
675
- createFormId() {
676
- return `formID-${Math.random().toString(36).slice(2)}`
677
- }
678
- }
679
- }
680
- </script>
681
-
682
- <style lang="scss">
683
- @import 'index';
684
- </style>
1
+ <template>
2
+ <el-form
3
+ :id="formID"
4
+ :key="formID"
5
+ :ref="formID"
6
+ :model="model"
7
+ :label-width="innerLabelWidth"
8
+ :label-position="labelPosition"
9
+ :rules="rules"
10
+ :show-message="showMessage"
11
+ v-bind="$attrs"
12
+ :class="['form-custom', `form-custom-${mode}`]"
13
+ v-on="$listeners"
14
+ @submit.native.prevent
15
+ >
16
+ <!-- 常规查询 -->
17
+ <BaseList
18
+ v-model="model"
19
+ :config="normalConfig"
20
+ :resets.sync="resets"
21
+ :loading="queryLoading"
22
+ :disableds="disableds"
23
+ :popper-class="computedPopperClass"
24
+ :form-data="formData"
25
+ :show-mode="showMode"
26
+ @after-leave="(val) => $emit('after-leave', val)"
27
+ @query-click="handleExpectQuery"
28
+ @add-click="$emit('add-click')"
29
+ @other-click="$emit('other-click')"
30
+ @enter-click="handleExpectQuery"
31
+ @tree-node-click="
32
+ (prop, data, node) => $emit('tree-node-click', prop, data, node)
33
+ "
34
+ />
35
+
36
+ <div
37
+ v-if="isVertical && queryBtn"
38
+ :class="[`form-item`, `form-item-button`]"
39
+ >
40
+ <el-button
41
+ v-bind="queryBtn"
42
+ :loading="queryLoading"
43
+ :disabled="disableds.querybutton"
44
+ @click="handleExpectQuery"
45
+ >
46
+ {{ queryBtn.name || '查询' }}
47
+ </el-button>
48
+ </div>
49
+ </el-form>
50
+ </template>
51
+
52
+ <script>
53
+ // 注: 支持的类型 请查看configs.js
54
+ import BaseList from './List'
55
+
56
+ import { SUPPORT_TYPE, getDefaultValue } from './configs'
57
+
58
+ const deepEquals = (a, b) => {
59
+ if (Array.isArray(a) && Array.isArray(b)) {
60
+ if (a.length !== b.length) {
61
+ return false
62
+ }
63
+
64
+ for (let i = 0; i < a.length; i++) {
65
+ if (a[i] !== b[i]) {
66
+ return false
67
+ }
68
+ }
69
+
70
+ return true
71
+ }
72
+
73
+ return a === b
74
+ }
75
+ export default {
76
+ name: 'NstcForm',
77
+
78
+ components: {
79
+ BaseList
80
+ },
81
+
82
+ inheritAttrs: false,
83
+
84
+ props: {
85
+ formData: {
86
+ type: Object,
87
+ default: () => ({})
88
+ },
89
+ from: {
90
+ type: String,
91
+ default: null
92
+ },
93
+ config: {
94
+ type: Array,
95
+ default: () => []
96
+ },
97
+
98
+ popperClass: {
99
+ type: String,
100
+ default: ''
101
+ },
102
+
103
+ reset: {
104
+ type: Boolean,
105
+ default: false
106
+ },
107
+
108
+ // 组件加载完成时, 执行一次默认查询
109
+ mountAndQuery: {
110
+ type: Boolean,
111
+ default: true
112
+ },
113
+
114
+ // 用于表单异步时 手动触发查询
115
+ asyncQuery: {
116
+ default: false,
117
+ type: Boolean
118
+ },
119
+
120
+ // 样式 : 水平 | 垂直
121
+ mode: {
122
+ default: 'horizontal',
123
+ validator: function (val) {
124
+ return ['horizontal', 'vertical'].includes(val)
125
+ }
126
+ },
127
+
128
+ // 是否是纯净模式 (删除 renderable === false 的item.prop对应model的值)
129
+ pureable: {
130
+ default: false,
131
+ type: Boolean
132
+ },
133
+
134
+ value: {
135
+ default: () => ({}),
136
+ type: Object
137
+ },
138
+
139
+ showMessage: {
140
+ type: Boolean,
141
+ default: true
142
+ },
143
+
144
+ disabled: {
145
+ type: Boolean,
146
+ default: false
147
+ },
148
+
149
+ labelPosition: {
150
+ type: String,
151
+ default: 'right'
152
+ },
153
+
154
+ labelWidth: {
155
+ default: '136px',
156
+ type: [String, Number]
157
+ },
158
+
159
+ rules: {
160
+ type: Object,
161
+ default: undefined
162
+ },
163
+
164
+ // 显示模式
165
+ showMode: {
166
+ type: String,
167
+ default: ''
168
+ }
169
+ },
170
+
171
+ data() {
172
+ return {
173
+ resets: {},
174
+
175
+ disableds: {
176
+ querybutton: false
177
+ },
178
+
179
+ formID: `formID-${Math.random().toString(36).slice(2)}`,
180
+
181
+ linkItems: [],
182
+ unwatchers: [],
183
+
184
+ queryBtn: null,
185
+
186
+ normalConfig: [],
187
+
188
+ uploadKeys: new Set([]),
189
+
190
+ isRendering: false,
191
+ queryLoading: false,
192
+ innerMountAndQuery: false,
193
+ isInit: true
194
+ }
195
+ },
196
+
197
+ computed: {
198
+ model: {
199
+ get() {
200
+ return this.value
201
+ },
202
+ set(val) {
203
+ this.$emit('input', val)
204
+ this.$emit('change', val)
205
+ }
206
+ },
207
+
208
+ isVertical() {
209
+ return this.mode === 'vertical'
210
+ },
211
+
212
+ computedPopperClass() {
213
+ return (
214
+ this.isVertical ? ['form-custom-popper input-w', this.popperClass] : []
215
+ ).join(' ')
216
+ },
217
+
218
+ innerLabelWidth() {
219
+ return (this.labelWidth + '').replace(/px/, '') + 'px'
220
+ }
221
+ },
222
+
223
+ watch: {
224
+ config: {
225
+ deep: true,
226
+ immediate: true,
227
+ handler: function (newVal) {
228
+ if (!this.isRendering && newVal.length) {
229
+ this.init()
230
+ }
231
+ }
232
+ },
233
+
234
+ value: {
235
+ deep: true,
236
+ immediate: true,
237
+ handler: function (newVal) {
238
+ if (
239
+ !this.isEmptyObject(newVal) &&
240
+ !this.isRendering &&
241
+ this.innerMountAndQuery
242
+ ) {
243
+ this.innerMountAndQuery = false
244
+ this.handleExpectQuery()
245
+ }
246
+ }
247
+ },
248
+
249
+ reset(newVal) {
250
+ console.log('__log_reset', newVal)
251
+ if (newVal) {
252
+ this.init()
253
+ console.log('__log_reset', newVal)
254
+
255
+ // temporary hack
256
+ this.setResets(true)
257
+
258
+ this.$emit('update:reset', false)
259
+ }
260
+ },
261
+
262
+ disabled(newVal, oldVal) {
263
+ if (newVal !== oldVal) {
264
+ this.setDisableds(newVal)
265
+
266
+ this.$emit('disabled')
267
+ }
268
+ },
269
+
270
+ asyncQuery(newVal) {
271
+ if (newVal) {
272
+ this.$nextTick(() => {
273
+ this.handleExpectQuery()
274
+ this.$emit('update:asyncQuery', false)
275
+ })
276
+ }
277
+ }
278
+ },
279
+
280
+ created() {
281
+ // this.innerMountAndQuery = this.mountAndQuery;
282
+ },
283
+
284
+ methods: {
285
+ init() {
286
+ if (!this.isRendering) {
287
+ this.isRendering = true
288
+
289
+ this.clearValidate()
290
+
291
+ this.uploadKeys.clear()
292
+
293
+ this.disableds = {
294
+ querybutton: this.disabled
295
+ }
296
+
297
+ const { querybutton, normalItems = [] } = this.separateAdvanceAndNormal(
298
+ this.config
299
+ )
300
+ this.normalConfig = normalItems
301
+
302
+ this.generateFormModel(normalItems)
303
+
304
+ this.queryBtn = querybutton
305
+
306
+ this.generateLink()
307
+
308
+ this.innerMountAndQuery = this.mountAndQuery
309
+
310
+ this.isInit = false
311
+
312
+ this.isRendering = false
313
+ }
314
+ },
315
+
316
+ generateFormModel(config) {
317
+ if (Array.isArray(config)) {
318
+ config.forEach((item) => {
319
+ if (Array.isArray(item)) {
320
+ this.generateFormModel(item)
321
+ } else {
322
+ if (!item.mold) {
323
+ throw Error(
324
+ `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
325
+ 'querybutton'
326
+ ).join('|')}`
327
+ )
328
+ }
329
+
330
+ item.mold = item.mold.toLowerCase()
331
+
332
+ this.setModel(item)
333
+
334
+ if (item.link) {
335
+ this.linkItems.push(item)
336
+ }
337
+ }
338
+ })
339
+ } else {
340
+ if (!Object.keys(config).length) {
341
+ return
342
+ }
343
+
344
+ if (!config.mold) {
345
+ throw Error(
346
+ `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
347
+ 'querybutton'
348
+ ).join('|')}`
349
+ )
350
+ }
351
+
352
+ config.mold = config.mold.toLowerCase()
353
+
354
+ this.setModel(config)
355
+ }
356
+ },
357
+
358
+ generateLink() {
359
+ while (this.unwatchers.length) {
360
+ this.unwatchers.pop()()
361
+ }
362
+
363
+ this.linkItems.map((item) => {
364
+ this.setWatchers(item)
365
+ })
366
+
367
+ this.linkItems = []
368
+ },
369
+
370
+ /**
371
+ * item
372
+ * setValue,(第二个参数)
373
+ */
374
+ setModel(item) {
375
+ let { prop, mold } = item
376
+
377
+ if (this.pureable) {
378
+ // 纯净模式
379
+ if (item.renderable === false) {
380
+ this.$delete(this.model, prop)
381
+ return
382
+ }
383
+ }
384
+
385
+ prop = prop || mold
386
+
387
+ const matchedResult = getDefaultValue(item)
388
+
389
+ if (matchedResult !== null) {
390
+ if (!(this.isInit && this.model[prop] !== undefined)) {
391
+ this.$set(this.model, prop, matchedResult.value)
392
+ // this.$set(this.model, prop, (setValue ? this.model[prop] : matchedResult.value) || matchedResult.value);
393
+ }
394
+
395
+ this.$set(this.resets, prop, false)
396
+ this.$set(this.disableds, prop, this.disabled || item.disabled)
397
+ }
398
+ },
399
+
400
+ setWatchers(item) {
401
+ const { link, prop: itemProp } = item
402
+ let isOneToLinkAll = false
403
+ let links
404
+ let isComplex
405
+
406
+ if (Array.isArray(link)) {
407
+ links = link
408
+ isOneToLinkAll = links.every((item) => item.mold)
409
+ isComplex = !!(
410
+ links.find((item) => item.mold) && links.find((item) => !item.mold)
411
+ )
412
+ } else {
413
+ links = [link]
414
+ }
415
+
416
+ links.forEach((link) =>
417
+ this.setSingleLinkWatch(
418
+ link,
419
+ itemProp,
420
+ isOneToLinkAll,
421
+ isComplex,
422
+ link.mold
423
+ )
424
+ )
425
+ },
426
+
427
+ setSingleLinkWatch(
428
+ link,
429
+ itemProp,
430
+ isOneToLinkAll,
431
+ isComplex,
432
+ isModelEverGenerated
433
+ ) {
434
+ const { prop, handler, mold } = link
435
+
436
+ if (!this.isFunc(handler)) {
437
+ return
438
+ }
439
+
440
+ let targetProp, watchedProp
441
+
442
+ if (isOneToLinkAll) {
443
+ this.generateFormModel(link)
444
+ targetProp = itemProp
445
+ watchedProp = prop
446
+ } else if (isComplex) {
447
+ if (isModelEverGenerated) {
448
+ this.generateFormModel(link)
449
+ }
450
+ targetProp = itemProp
451
+ watchedProp = prop
452
+ } else {
453
+ if (mold) {
454
+ this.generateFormModel(link)
455
+ targetProp = prop
456
+ watchedProp = itemProp
457
+ } else {
458
+ targetProp = itemProp
459
+ watchedProp = prop
460
+ }
461
+ }
462
+
463
+ const unwatcher = this.$watch(`model.${targetProp}`, {
464
+ immediate: true,
465
+ deep: true,
466
+ handler: async function (newVal, oldVal) {
467
+ if (watchedProp) {
468
+ if (!deepEquals(newVal, oldVal)) {
469
+ const defaultAndOptions = await handler(newVal)
470
+
471
+ const newItem = {
472
+ prop: watchedProp,
473
+ ...defaultAndOptions
474
+ }
475
+
476
+ this.replaceOptions(newItem)
477
+ }
478
+ }
479
+ }
480
+ })
481
+
482
+ this.unwatchers.push(unwatcher)
483
+ },
484
+
485
+ replaceOptions({ prop, ...pramas }, config) {
486
+ let finded = false
487
+
488
+ const replaceOptionsHelper = ({ prop, pramas }, config) => {
489
+ if (finded) {
490
+ return
491
+ }
492
+
493
+ const tConfig = config || this.normalConfig
494
+
495
+ tConfig.forEach((item, idx) => {
496
+ if (Array.isArray(item)) {
497
+ replaceOptionsHelper(
498
+ {
499
+ prop,
500
+ pramas
501
+ },
502
+ item
503
+ )
504
+ } else if (
505
+ Array.isArray(item.link) &&
506
+ !(item.prop === prop && item.mold)
507
+ ) {
508
+ replaceOptionsHelper(
509
+ {
510
+ prop,
511
+ pramas
512
+ },
513
+ item.link
514
+ )
515
+ } else {
516
+ if (item.prop === prop && item.mold) {
517
+ finded = true
518
+ const newItem = { ...item, ...pramas }
519
+
520
+ tConfig.splice(idx, 1, newItem)
521
+
522
+ if (newItem.mold) {
523
+ this.setModel(newItem, true)
524
+ }
525
+ }
526
+ }
527
+ })
528
+ }
529
+
530
+ replaceOptionsHelper({ prop, pramas }, config)
531
+ },
532
+
533
+ setResets(val = false, prop = null) {
534
+ if (prop) {
535
+ this.resets[prop] = val
536
+ } else {
537
+ Object.keys(this.resets).forEach((key) => {
538
+ this.resets[key] = val
539
+ })
540
+ }
541
+ this.$nextTick(() => {
542
+ this.resetFields()
543
+ })
544
+ },
545
+
546
+ setDisableds(val = false, prop = null) {
547
+ if (prop) {
548
+ this.disableds[prop] = val
549
+ } else {
550
+ Object.keys(this.disableds).forEach((key) => {
551
+ this.disableds[key] = val
552
+ })
553
+ }
554
+ },
555
+
556
+ separateAdvanceAndNormal(config = this.config) {
557
+ const isVertical = this.isVertical
558
+
559
+ const reducer = (config) =>
560
+ config.reduce(
561
+ (prev, item) => {
562
+ if (Array.isArray(item)) {
563
+ const { normalItems, ...rest } = reducer(item)
564
+
565
+ normalItems.length && prev.normalItems.push(normalItems)
566
+
567
+ return {
568
+ ...prev,
569
+ ...rest
570
+ }
571
+ } else {
572
+ const { mold } = item
573
+ // if (mold === "upload") {
574
+ // this.uploadKeys.add(prop);
575
+ // }
576
+
577
+ if (isVertical) {
578
+ if (mold === 'querybutton') {
579
+ prev[mold] = item
580
+ } else {
581
+ prev.normalItems.push(item)
582
+ }
583
+ } else {
584
+ prev.normalItems.push(item)
585
+ }
586
+ }
587
+
588
+ return prev
589
+ },
590
+ {
591
+ normalItems: []
592
+ }
593
+ )
594
+
595
+ return reducer(config)
596
+ },
597
+
598
+ isFunc(callBack) {
599
+ return callBack && typeof callBack === 'function'
600
+ },
601
+
602
+ isEmptyObject(obj) {
603
+ const isObj =
604
+ Object.prototype.toString.call(obj).toLowerCase() !== '[object object]'
605
+ return !Object.keys(isObj ? {} : obj).length
606
+ },
607
+
608
+ async handleExpectQuery(config) {
609
+ this.queryLoading = true
610
+
611
+ try {
612
+ if (this.$listeners.query) {
613
+ await this.validate()
614
+
615
+ let model
616
+
617
+ if (this.uploadKeys.size) {
618
+ model = this.convertModelToFormData(this.model)
619
+ config = {
620
+ headers: {
621
+ 'Content-Type': 'multipart/form-data'
622
+ },
623
+ ...config
624
+ }
625
+ } else {
626
+ model = JSON.parse(JSON.stringify(this.model))
627
+ }
628
+
629
+ await this.$listeners.query(model, config)
630
+ } else {
631
+ throw new Error(
632
+ 'must specify @query event when there is a query button'
633
+ )
634
+ }
635
+ } catch (err) {
636
+ console.error('form custom error -> handleExpectQuery:', err)
637
+ } finally {
638
+ this.queryLoading = false
639
+ }
640
+ },
641
+
642
+ convertModelToFormData(model) {
643
+ const fd = new FormData()
644
+ Object.entries(model).forEach(([key, value]) => {
645
+ fd.append(
646
+ key,
647
+ value instanceof window.FormData ? value.get(key) : value
648
+ )
649
+ })
650
+ return fd
651
+ },
652
+
653
+ clearValidate() {
654
+ if (this.rules && this.$refs[this.formID]) {
655
+ this.$refs[this.formID] && this.$refs[this.formID].clearValidate()
656
+ }
657
+ },
658
+
659
+ resetFields() {
660
+ console.log('__log_formID', this.formID, this.$refs[this.formID])
661
+ this.$refs[this.formID] && this.$refs[this.formID].resetFields()
662
+ },
663
+
664
+ validate() {
665
+ if (this.rules && this.$refs[this.formID]) {
666
+ return this.$refs[this.formID].validate()
667
+ }
668
+
669
+ return Promise.resolve()
670
+ },
671
+
672
+ /**
673
+ * 生成formId
674
+ */
675
+ createFormId() {
676
+ return `formID-${Math.random().toString(36).slice(2)}`
677
+ }
678
+ }
679
+ }
680
+ </script>
681
+
682
+ <style lang="scss">
683
+ @import 'index';
684
+ </style>