n20-common-lib 1.3.40 → 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 (417) 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 -53
  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 -13
  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 -108
  286. package/src/components/FileUploadTable/index.vue +570 -570
  287. package/src/components/Filters/form-item-input.vue +185 -185
  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 -412
  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 -169
  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 -375
  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 -39
  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 -280
  342. package/src/components/Upload/uploadMsg.vue +114 -114
  343. package/src/components/WornPagination/index.vue +73 -73
  344. package/src/directives/VClickOutside/index.js +27 -27
  345. package/src/directives/VHas/index.js +58 -58
  346. package/src/directives/VMove/index.js +42 -42
  347. package/src/directives/VRuleKey/index.js +201 -201
  348. package/src/directives/VTitle/index.js +106 -106
  349. package/src/index.js +264 -264
  350. package/src/plugins/.DS_Store +0 -0
  351. package/src/plugins/CompatibleOld/index.js +11 -11
  352. package/src/plugins/Print/index.js +4 -4
  353. package/src/plugins/Print/print-js/.babelrc +12 -12
  354. package/src/plugins/Print/print-js/LICENSE +21 -21
  355. package/src/plugins/Print/print-js/README.md +98 -98
  356. package/src/plugins/Print/print-js/dist/print.css +96 -96
  357. package/src/plugins/Print/print-js/dist/print.js +990 -990
  358. package/src/plugins/Print/print-js/package.json +60 -60
  359. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  360. package/src/plugins/Print/print-js/src/index.js +10 -10
  361. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  362. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  363. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  364. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  365. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  366. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  367. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  368. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  369. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  370. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  371. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  372. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  373. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  374. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  375. package/src/plugins/Print/print.js +2 -2
  376. package/src/plugins/Print/print.scss +1 -1
  377. package/src/plugins/SetMenuTree/index.vue +41 -41
  378. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  379. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  380. package/src/plugins/SetMenuTree/utils.js +74 -74
  381. package/src/plugins/Sign/.DS_Store +0 -0
  382. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  383. package/src/plugins/Sign/bjca/XTXSAB.js +2395 -2395
  384. package/src/plugins/Sign/bjca/index.js +129 -129
  385. package/src/plugins/Sign/index.js +28 -28
  386. package/src/plugins/Sign/sign.js +64 -64
  387. package/src/plugins/setTabsForSub.js +2 -2
  388. package/src/utils/auth.js +56 -56
  389. package/src/utils/axios.js +205 -205
  390. package/src/utils/downloadBlob.js +19 -19
  391. package/src/utils/forEachs.js +16 -16
  392. package/src/utils/getScrollContainer.js +43 -43
  393. package/src/utils/handleTab.js +109 -109
  394. package/src/utils/i18n/cn2hk.json +1270 -1270
  395. package/src/utils/i18n/index.js +50 -50
  396. package/src/utils/list2tree.js +36 -36
  397. package/src/utils/mapper_aims.js +809 -809
  398. package/src/utils/msgboxPor.js +26 -26
  399. package/src/utils/print.js +161 -161
  400. package/src/utils/relaNo.js +72 -72
  401. package/src/utils/repairElementUI.js +169 -169
  402. package/src/utils/tableheaderFilterpanel.vue +248 -248
  403. package/src/utils/theme.config.js +22 -22
  404. package/src/utils/theme.js +31 -31
  405. package/src/utils/toExcel.js +95 -95
  406. package/src/utils/urlToGo.js +82 -82
  407. package/src/utils/xls2json.js +40 -40
  408. package/src/utils/xlsx2json.js +24 -24
  409. package/style/index.css +1 -1
  410. package/style/index.css.map +1 -1
  411. package/theme/blue.css +1 -1
  412. package/theme/green.css +1 -1
  413. package/theme/lightBlue.css +1 -1
  414. package/theme/orange.css +1 -1
  415. package/theme/purple.css +1 -1
  416. package/theme/red.css +1 -1
  417. package/theme/yellow.css +1 -1
@@ -1,650 +1,650 @@
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
- :from="from"
25
- @after-leave="val => $emit('after-leave', val)"
26
- @query-click="handleExpectQuery"
27
- @add-click="$emit('add-click')"
28
- @other-click="$emit('other-click')"
29
- @enter-click="handleExpectQuery"
30
- />
31
-
32
- <div
33
- v-if="isVertical && queryBtn"
34
- :class="[
35
- `form-item`,
36
- `form-item-button`
37
- ]"
38
- >
39
- <el-button
40
- v-bind="queryBtn"
41
- :loading="queryLoading"
42
- :disabled="disableds.querybutton"
43
- @click="handleExpectQuery"
44
- >
45
- {{ queryBtn.name || '查询' }}
46
- </el-button>
47
- </div>
48
- </el-form>
49
- </template>
50
-
51
- <script>
52
- // 注: 支持的类型 请查看configs.js
53
- import BaseList from './ListSecond'
54
-
55
- import { SUPPORT_TYPE, getDefaultValue } from './configsSecond'
56
-
57
- const deepEquals = (a, b) => {
58
- if (Array.isArray(a) && Array.isArray(b)) {
59
- if (a.length !== b.length) {
60
- return false
61
- }
62
-
63
- for (let i = 0; i < a.length; i++) {
64
- if (a[i] !== b[i]) {
65
- return false
66
- }
67
- }
68
-
69
- return true
70
- }
71
-
72
- return a === b
73
- }
74
- export default {
75
- name: 'NstcForm',
76
-
77
- components: {
78
- BaseList
79
- },
80
-
81
- inheritAttrs: false,
82
-
83
- props: {
84
- from: {
85
- type: String,
86
- default: null
87
- },
88
- config: {
89
- type: Array,
90
- default: () => []
91
- },
92
-
93
- popperClass: {
94
- type: String,
95
- default: ''
96
- },
97
-
98
- reset: {
99
- type: Boolean,
100
- default: false
101
- },
102
-
103
- // 组件加载完成时, 执行一次默认查询
104
- mountAndQuery: {
105
- type: Boolean,
106
- default: true
107
- },
108
-
109
- // 用于表单异步时 手动触发查询
110
- asyncQuery: {
111
- default: false,
112
- type: Boolean
113
- },
114
-
115
- // 样式 : 水平 | 垂直
116
- mode: {
117
- default: 'horizontal',
118
- validator: function(val) {
119
- return ['horizontal', 'vertical'].includes(val)
120
- }
121
- },
122
-
123
- // 是否是纯净模式 (删除 renderable === false 的item.prop对应model的值)
124
- pureable: {
125
- default: false,
126
- type: Boolean
127
- },
128
-
129
- value: {
130
- default: () => ({}),
131
- type: Object
132
- },
133
-
134
- showMessage: {
135
- type: Boolean,
136
- default: true
137
- },
138
-
139
- disabled: {
140
- type: Boolean,
141
- default: false
142
- },
143
-
144
- labelPosition: {
145
- type: String,
146
- default: 'right'
147
- },
148
-
149
- labelWidth: {
150
- default: '136px',
151
- type: [String, Number]
152
- },
153
-
154
- rules: {
155
- type: Object,
156
- default: undefined
157
- }
158
- },
159
-
160
- data() {
161
- return {
162
- resets: {},
163
-
164
- disableds: {
165
- querybutton: false
166
- },
167
-
168
- formID: `formID-${Math.random()
169
- .toString(36)
170
- .slice(2)}`,
171
-
172
- linkItems: [],
173
- unwatchers: [],
174
-
175
- queryBtn: null,
176
-
177
- normalConfig: [],
178
-
179
- uploadKeys: new Set([]),
180
-
181
- isRendering: false,
182
- queryLoading: false,
183
- innerMountAndQuery: false,
184
- isInit: true
185
- }
186
- },
187
-
188
- computed: {
189
- model: {
190
- get() {
191
- return this.value
192
- },
193
- set(val) {
194
- this.$emit('input', val)
195
- this.$emit('change', val)
196
- }
197
- },
198
-
199
- isVertical() {
200
- return this.mode === 'vertical'
201
- },
202
-
203
- computedPopperClass() {
204
- return (this.isVertical ? ['form-custom-popper', this.popperClass] : []).join(' ')
205
- },
206
-
207
- innerLabelWidth() {
208
- return (this.labelWidth + '').replace(/px/, '') + 'px'
209
- }
210
-
211
- },
212
-
213
- watch: {
214
- config: {
215
- deep: true,
216
- immediate: true,
217
- handler: function(newVal, oldVal) {
218
- if (!this.isRendering && newVal !== oldVal && newVal.length) {
219
- this.init()
220
- }
221
- }
222
- },
223
-
224
- value: {
225
- deep: true,
226
- immediate: true,
227
- handler: function(newVal) {
228
- if (!this.isEmptyObject(newVal) && !this.isRendering && this.innerMountAndQuery) {
229
- this.innerMountAndQuery = false
230
- this.handleExpectQuery()
231
- }
232
- }
233
- },
234
-
235
- reset(newVal) {
236
- console.log('__log_reset', newVal)
237
- if (newVal) {
238
- this.init()
239
- console.log('__log_reset', newVal)
240
-
241
- // temporary hack
242
- this.setResets(true)
243
-
244
- this.$emit('update:reset', false)
245
- }
246
- },
247
-
248
- disabled(newVal, oldVal) {
249
- if (newVal !== oldVal) {
250
- this.setDisableds(newVal)
251
-
252
- this.$emit('disabled')
253
- }
254
- },
255
-
256
- asyncQuery(newVal) {
257
- if (newVal) {
258
- this.$nextTick(() => {
259
- this.handleExpectQuery()
260
- this.$emit('update:asyncQuery', false)
261
- })
262
- }
263
- }
264
- },
265
-
266
- created() {
267
- // this.innerMountAndQuery = this.mountAndQuery;
268
- },
269
-
270
- methods: {
271
- init() {
272
- if (!this.isRendering) {
273
- this.isRendering = true
274
-
275
- this.clearValidate()
276
-
277
- this.uploadKeys.clear()
278
-
279
- this.disableds = {
280
- querybutton: this.disabled
281
- }
282
-
283
- const {
284
- querybutton,
285
- normalItems = []
286
- } = this.separateAdvanceAndNormal(this.config)
287
-
288
- this.normalConfig = normalItems
289
-
290
- this.generateFormModel(normalItems)
291
-
292
- this.queryBtn = querybutton
293
-
294
- this.generateLink()
295
-
296
- this.innerMountAndQuery = this.mountAndQuery
297
-
298
- this.isInit = false
299
-
300
- this.isRendering = false
301
- }
302
- },
303
-
304
- generateFormModel(config) {
305
- if (Array.isArray(config)) {
306
- config.forEach(item => {
307
- if (Array.isArray(item)) {
308
- this.generateFormModel(item)
309
- } else {
310
- if (!item.mold) {
311
- throw Error(
312
- `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
313
- 'querybutton'
314
- ).join('|')}`
315
- )
316
- }
317
-
318
- item.mold = item.mold.toLowerCase()
319
-
320
- this.setModel(item)
321
-
322
- if (item.link) {
323
- this.linkItems.push(item)
324
- }
325
- }
326
- })
327
- } else {
328
- if (!Object.keys(config).length) {
329
- return
330
- }
331
-
332
- if (!config.mold) {
333
- throw Error(
334
- `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
335
- 'querybutton'
336
- ).join('|')}`
337
- )
338
- }
339
-
340
- config.mold = config.mold.toLowerCase()
341
-
342
- this.setModel(config)
343
- }
344
- },
345
-
346
- generateLink() {
347
- while (this.unwatchers.length) {
348
- this.unwatchers.pop()()
349
- }
350
-
351
- this.linkItems.map(item => {
352
- this.setWatchers(item)
353
- })
354
-
355
- this.linkItems = []
356
- },
357
-
358
- /**
359
- * item
360
- * setValue,(第二个参数)
361
- */
362
- setModel(item) {
363
- let { prop, mold } = item
364
-
365
- if (this.pureable) { // 纯净模式
366
- if (item.renderable === false) {
367
- this.$delete(this.model, prop)
368
- return
369
- }
370
- }
371
-
372
- prop = prop || mold
373
-
374
- const matchedResult = getDefaultValue(item)
375
-
376
- if (matchedResult !== null) {
377
- if (!(this.isInit && this.model[prop] !== undefined)) {
378
- this.$set(this.model, prop, matchedResult.value)
379
- // this.$set(this.model, prop, (setValue ? this.model[prop] : matchedResult.value) || matchedResult.value);
380
- }
381
-
382
- this.$set(this.resets, prop, false)
383
- this.$set(this.disableds, prop, this.disabled || item.disabled)
384
- }
385
- },
386
-
387
- setWatchers(item) {
388
- const { link, prop: itemProp } = item
389
- let isOneToLinkAll = false
390
- let links; let isComplex
391
-
392
- if (Array.isArray(link)) {
393
- links = link
394
- isOneToLinkAll = links.every(item => item.mold)
395
- isComplex = !!(links.find(item => item.mold) && links.find(item => !item.mold))
396
- } else {
397
- links = [link]
398
- }
399
-
400
- links.forEach(link =>
401
- this.setSingleLinkWatch(link, itemProp, isOneToLinkAll, isComplex, link.mold)
402
- )
403
- },
404
-
405
- setSingleLinkWatch(link, itemProp, isOneToLinkAll, isComplex, isModelEverGenerated) {
406
- const { prop, handler, mold } = link
407
-
408
- if (!this.isFunc(handler)) {
409
- return
410
- }
411
-
412
- let targetProp, watchedProp
413
-
414
- if (isOneToLinkAll) {
415
- this.generateFormModel(link)
416
- targetProp = itemProp
417
- watchedProp = prop
418
- } else if (isComplex) {
419
- if (isModelEverGenerated) {
420
- this.generateFormModel(link)
421
- }
422
- targetProp = itemProp
423
- watchedProp = prop
424
- } else {
425
- if (mold) {
426
- this.generateFormModel(link)
427
- targetProp = prop
428
- watchedProp = itemProp
429
- } else {
430
- targetProp = itemProp
431
- watchedProp = prop
432
- }
433
- }
434
-
435
- const unwatcher = this.$watch(`model.${targetProp}`, {
436
- immediate: true,
437
- deep: true,
438
- handler: async function(newVal, oldVal) {
439
- if (watchedProp) {
440
- if (!deepEquals(newVal, oldVal)) {
441
- const defaultAndOptions = await handler(newVal)
442
-
443
- const newItem = {
444
- prop: watchedProp,
445
- ...defaultAndOptions
446
- }
447
-
448
- this.replaceOptions(newItem)
449
- }
450
- }
451
- }
452
- })
453
-
454
- this.unwatchers.push(unwatcher)
455
- },
456
-
457
- replaceOptions({ prop, ...pramas }, config) {
458
- let finded = false
459
-
460
- const replaceOptionsHelper = ({ prop, pramas }, config) => {
461
- if (finded) {
462
- return
463
- }
464
-
465
- const tConfig = config || this.normalConfig
466
-
467
- tConfig.forEach((item, idx) => {
468
- if (Array.isArray(item)) {
469
- replaceOptionsHelper(
470
- {
471
- prop,
472
- pramas
473
- },
474
- item
475
- )
476
- } else if (Array.isArray(item.link) && !(item.prop === prop && item.mold)) {
477
- replaceOptionsHelper(
478
- {
479
- prop,
480
- pramas
481
- },
482
- item.link
483
- )
484
- } else {
485
- if (item.prop === prop && item.mold) {
486
- finded = true
487
- const newItem = { ...item, ...pramas }
488
-
489
- tConfig.splice(idx, 1, newItem)
490
-
491
- if (newItem.mold) {
492
- this.setModel(newItem, true)
493
- }
494
- }
495
- }
496
- })
497
- }
498
-
499
- replaceOptionsHelper({ prop, pramas }, config)
500
- },
501
-
502
- setResets(val = false, prop = null) {
503
- if (prop) {
504
- this.resets[prop] = val
505
- } else {
506
- Object.keys(this.resets).forEach(key => {
507
- this.resets[key] = val
508
- })
509
- }
510
- this.$nextTick(() => {
511
- this.resetFields()
512
- })
513
- },
514
-
515
- setDisableds(val = false, prop = null) {
516
- if (prop) {
517
- this.disableds[prop] = val
518
- } else {
519
- Object.keys(this.disableds).forEach(key => {
520
- this.disableds[key] = val
521
- })
522
- }
523
- },
524
-
525
- separateAdvanceAndNormal(config = this.config) {
526
- const isVertical = this.isVertical
527
-
528
- const reducer = config => config.reduce(
529
- (prev, item) => {
530
- if (Array.isArray(item)) {
531
- const { normalItems, ...rest } = reducer(item)
532
-
533
- normalItems.length && prev.normalItems.push(normalItems)
534
-
535
- return {
536
- ...prev,
537
- ...rest
538
- }
539
- } else {
540
- const { mold } = item
541
- // if (mold === "upload") {
542
- // this.uploadKeys.add(prop);
543
- // }
544
-
545
- if (isVertical) {
546
- if (mold === 'querybutton') {
547
- prev[mold] = item
548
- } else {
549
- prev.normalItems.push(item)
550
- }
551
- } else {
552
- prev.normalItems.push(item)
553
- }
554
- }
555
-
556
- return prev
557
- },
558
- {
559
- normalItems: []
560
- }
561
- )
562
-
563
- return reducer(config)
564
- },
565
-
566
- isFunc(callBack) {
567
- return callBack && typeof callBack === 'function'
568
- },
569
-
570
- isEmptyObject(obj) {
571
- const isObj = Object.prototype.toString.call(obj).toLowerCase() !== '[object object]'
572
- return !Object.keys(isObj ? {} : obj).length
573
- },
574
-
575
- async handleExpectQuery(config) {
576
- this.queryLoading = true
577
-
578
- try {
579
- if (this.$listeners.query) {
580
- await this.validate()
581
-
582
- let model
583
-
584
- if (this.uploadKeys.size) {
585
- model = this.convertModelToFormData(this.model)
586
- config = {
587
- headers: {
588
- 'Content-Type': 'multipart/form-data'
589
- },
590
- ...config
591
- }
592
- } else {
593
- model = JSON.parse(JSON.stringify(this.model))
594
- }
595
-
596
- await this.$listeners.query(model, config)
597
- } else {
598
- throw new Error(
599
- 'must specify @query event when there is a query button'
600
- )
601
- }
602
- } catch (err) {
603
- console.error('form custom error -> handleExpectQuery:', err)
604
- } finally {
605
- this.queryLoading = false
606
- }
607
- },
608
-
609
- convertModelToFormData(model) {
610
- const fd = new FormData()
611
- Object.entries(model).forEach(([key, value]) => {
612
- fd.append(key, value instanceof window.FormData ? value.get(key) : value)
613
- })
614
- return fd
615
- },
616
-
617
- clearValidate() {
618
- if (this.rules && this.$refs[this.formID]) {
619
- this.$refs[this.formID] && this.$refs[this.formID].clearValidate()
620
- }
621
- },
622
-
623
- resetFields() {
624
- console.log('__log_formID', this.formID, this.$refs[this.formID])
625
- this.$refs[this.formID] && this.$refs[this.formID].resetFields()
626
- },
627
-
628
- validate() {
629
- if (this.rules && this.$refs[this.formID]) {
630
- return this.$refs[this.formID].validate()
631
- }
632
-
633
- return Promise.resolve()
634
- },
635
-
636
- /**
637
- * 生成formId
638
- */
639
- createFormId() {
640
- return `formID-${Math.random()
641
- .toString(36)
642
- .slice(2)}`
643
- }
644
- }
645
- }
646
- </script>
647
-
648
- <style lang="scss">
649
- @import "index";
650
- </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
+ :from="from"
25
+ @after-leave="val => $emit('after-leave', val)"
26
+ @query-click="handleExpectQuery"
27
+ @add-click="$emit('add-click')"
28
+ @other-click="$emit('other-click')"
29
+ @enter-click="handleExpectQuery"
30
+ />
31
+
32
+ <div
33
+ v-if="isVertical && queryBtn"
34
+ :class="[
35
+ `form-item`,
36
+ `form-item-button`
37
+ ]"
38
+ >
39
+ <el-button
40
+ v-bind="queryBtn"
41
+ :loading="queryLoading"
42
+ :disabled="disableds.querybutton"
43
+ @click="handleExpectQuery"
44
+ >
45
+ {{ queryBtn.name || '查询' }}
46
+ </el-button>
47
+ </div>
48
+ </el-form>
49
+ </template>
50
+
51
+ <script>
52
+ // 注: 支持的类型 请查看configs.js
53
+ import BaseList from './ListSecond'
54
+
55
+ import { SUPPORT_TYPE, getDefaultValue } from './configsSecond'
56
+
57
+ const deepEquals = (a, b) => {
58
+ if (Array.isArray(a) && Array.isArray(b)) {
59
+ if (a.length !== b.length) {
60
+ return false
61
+ }
62
+
63
+ for (let i = 0; i < a.length; i++) {
64
+ if (a[i] !== b[i]) {
65
+ return false
66
+ }
67
+ }
68
+
69
+ return true
70
+ }
71
+
72
+ return a === b
73
+ }
74
+ export default {
75
+ name: 'NstcForm',
76
+
77
+ components: {
78
+ BaseList
79
+ },
80
+
81
+ inheritAttrs: false,
82
+
83
+ props: {
84
+ from: {
85
+ type: String,
86
+ default: null
87
+ },
88
+ config: {
89
+ type: Array,
90
+ default: () => []
91
+ },
92
+
93
+ popperClass: {
94
+ type: String,
95
+ default: ''
96
+ },
97
+
98
+ reset: {
99
+ type: Boolean,
100
+ default: false
101
+ },
102
+
103
+ // 组件加载完成时, 执行一次默认查询
104
+ mountAndQuery: {
105
+ type: Boolean,
106
+ default: true
107
+ },
108
+
109
+ // 用于表单异步时 手动触发查询
110
+ asyncQuery: {
111
+ default: false,
112
+ type: Boolean
113
+ },
114
+
115
+ // 样式 : 水平 | 垂直
116
+ mode: {
117
+ default: 'horizontal',
118
+ validator: function(val) {
119
+ return ['horizontal', 'vertical'].includes(val)
120
+ }
121
+ },
122
+
123
+ // 是否是纯净模式 (删除 renderable === false 的item.prop对应model的值)
124
+ pureable: {
125
+ default: false,
126
+ type: Boolean
127
+ },
128
+
129
+ value: {
130
+ default: () => ({}),
131
+ type: Object
132
+ },
133
+
134
+ showMessage: {
135
+ type: Boolean,
136
+ default: true
137
+ },
138
+
139
+ disabled: {
140
+ type: Boolean,
141
+ default: false
142
+ },
143
+
144
+ labelPosition: {
145
+ type: String,
146
+ default: 'right'
147
+ },
148
+
149
+ labelWidth: {
150
+ default: '136px',
151
+ type: [String, Number]
152
+ },
153
+
154
+ rules: {
155
+ type: Object,
156
+ default: undefined
157
+ }
158
+ },
159
+
160
+ data() {
161
+ return {
162
+ resets: {},
163
+
164
+ disableds: {
165
+ querybutton: false
166
+ },
167
+
168
+ formID: `formID-${Math.random()
169
+ .toString(36)
170
+ .slice(2)}`,
171
+
172
+ linkItems: [],
173
+ unwatchers: [],
174
+
175
+ queryBtn: null,
176
+
177
+ normalConfig: [],
178
+
179
+ uploadKeys: new Set([]),
180
+
181
+ isRendering: false,
182
+ queryLoading: false,
183
+ innerMountAndQuery: false,
184
+ isInit: true
185
+ }
186
+ },
187
+
188
+ computed: {
189
+ model: {
190
+ get() {
191
+ return this.value
192
+ },
193
+ set(val) {
194
+ this.$emit('input', val)
195
+ this.$emit('change', val)
196
+ }
197
+ },
198
+
199
+ isVertical() {
200
+ return this.mode === 'vertical'
201
+ },
202
+
203
+ computedPopperClass() {
204
+ return (this.isVertical ? ['form-custom-popper', this.popperClass] : []).join(' ')
205
+ },
206
+
207
+ innerLabelWidth() {
208
+ return (this.labelWidth + '').replace(/px/, '') + 'px'
209
+ }
210
+
211
+ },
212
+
213
+ watch: {
214
+ config: {
215
+ deep: true,
216
+ immediate: true,
217
+ handler: function(newVal, oldVal) {
218
+ if (!this.isRendering && newVal !== oldVal && newVal.length) {
219
+ this.init()
220
+ }
221
+ }
222
+ },
223
+
224
+ value: {
225
+ deep: true,
226
+ immediate: true,
227
+ handler: function(newVal) {
228
+ if (!this.isEmptyObject(newVal) && !this.isRendering && this.innerMountAndQuery) {
229
+ this.innerMountAndQuery = false
230
+ this.handleExpectQuery()
231
+ }
232
+ }
233
+ },
234
+
235
+ reset(newVal) {
236
+ console.log('__log_reset', newVal)
237
+ if (newVal) {
238
+ this.init()
239
+ console.log('__log_reset', newVal)
240
+
241
+ // temporary hack
242
+ this.setResets(true)
243
+
244
+ this.$emit('update:reset', false)
245
+ }
246
+ },
247
+
248
+ disabled(newVal, oldVal) {
249
+ if (newVal !== oldVal) {
250
+ this.setDisableds(newVal)
251
+
252
+ this.$emit('disabled')
253
+ }
254
+ },
255
+
256
+ asyncQuery(newVal) {
257
+ if (newVal) {
258
+ this.$nextTick(() => {
259
+ this.handleExpectQuery()
260
+ this.$emit('update:asyncQuery', false)
261
+ })
262
+ }
263
+ }
264
+ },
265
+
266
+ created() {
267
+ // this.innerMountAndQuery = this.mountAndQuery;
268
+ },
269
+
270
+ methods: {
271
+ init() {
272
+ if (!this.isRendering) {
273
+ this.isRendering = true
274
+
275
+ this.clearValidate()
276
+
277
+ this.uploadKeys.clear()
278
+
279
+ this.disableds = {
280
+ querybutton: this.disabled
281
+ }
282
+
283
+ const {
284
+ querybutton,
285
+ normalItems = []
286
+ } = this.separateAdvanceAndNormal(this.config)
287
+
288
+ this.normalConfig = normalItems
289
+
290
+ this.generateFormModel(normalItems)
291
+
292
+ this.queryBtn = querybutton
293
+
294
+ this.generateLink()
295
+
296
+ this.innerMountAndQuery = this.mountAndQuery
297
+
298
+ this.isInit = false
299
+
300
+ this.isRendering = false
301
+ }
302
+ },
303
+
304
+ generateFormModel(config) {
305
+ if (Array.isArray(config)) {
306
+ config.forEach(item => {
307
+ if (Array.isArray(item)) {
308
+ this.generateFormModel(item)
309
+ } else {
310
+ if (!item.mold) {
311
+ throw Error(
312
+ `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
313
+ 'querybutton'
314
+ ).join('|')}`
315
+ )
316
+ }
317
+
318
+ item.mold = item.mold.toLowerCase()
319
+
320
+ this.setModel(item)
321
+
322
+ if (item.link) {
323
+ this.linkItems.push(item)
324
+ }
325
+ }
326
+ })
327
+ } else {
328
+ if (!Object.keys(config).length) {
329
+ return
330
+ }
331
+
332
+ if (!config.mold) {
333
+ throw Error(
334
+ `Each config's child must has a 'mold' prop, it could be ${SUPPORT_TYPE.concat(
335
+ 'querybutton'
336
+ ).join('|')}`
337
+ )
338
+ }
339
+
340
+ config.mold = config.mold.toLowerCase()
341
+
342
+ this.setModel(config)
343
+ }
344
+ },
345
+
346
+ generateLink() {
347
+ while (this.unwatchers.length) {
348
+ this.unwatchers.pop()()
349
+ }
350
+
351
+ this.linkItems.map(item => {
352
+ this.setWatchers(item)
353
+ })
354
+
355
+ this.linkItems = []
356
+ },
357
+
358
+ /**
359
+ * item
360
+ * setValue,(第二个参数)
361
+ */
362
+ setModel(item) {
363
+ let { prop, mold } = item
364
+
365
+ if (this.pureable) { // 纯净模式
366
+ if (item.renderable === false) {
367
+ this.$delete(this.model, prop)
368
+ return
369
+ }
370
+ }
371
+
372
+ prop = prop || mold
373
+
374
+ const matchedResult = getDefaultValue(item)
375
+
376
+ if (matchedResult !== null) {
377
+ if (!(this.isInit && this.model[prop] !== undefined)) {
378
+ this.$set(this.model, prop, matchedResult.value)
379
+ // this.$set(this.model, prop, (setValue ? this.model[prop] : matchedResult.value) || matchedResult.value);
380
+ }
381
+
382
+ this.$set(this.resets, prop, false)
383
+ this.$set(this.disableds, prop, this.disabled || item.disabled)
384
+ }
385
+ },
386
+
387
+ setWatchers(item) {
388
+ const { link, prop: itemProp } = item
389
+ let isOneToLinkAll = false
390
+ let links; let isComplex
391
+
392
+ if (Array.isArray(link)) {
393
+ links = link
394
+ isOneToLinkAll = links.every(item => item.mold)
395
+ isComplex = !!(links.find(item => item.mold) && links.find(item => !item.mold))
396
+ } else {
397
+ links = [link]
398
+ }
399
+
400
+ links.forEach(link =>
401
+ this.setSingleLinkWatch(link, itemProp, isOneToLinkAll, isComplex, link.mold)
402
+ )
403
+ },
404
+
405
+ setSingleLinkWatch(link, itemProp, isOneToLinkAll, isComplex, isModelEverGenerated) {
406
+ const { prop, handler, mold } = link
407
+
408
+ if (!this.isFunc(handler)) {
409
+ return
410
+ }
411
+
412
+ let targetProp, watchedProp
413
+
414
+ if (isOneToLinkAll) {
415
+ this.generateFormModel(link)
416
+ targetProp = itemProp
417
+ watchedProp = prop
418
+ } else if (isComplex) {
419
+ if (isModelEverGenerated) {
420
+ this.generateFormModel(link)
421
+ }
422
+ targetProp = itemProp
423
+ watchedProp = prop
424
+ } else {
425
+ if (mold) {
426
+ this.generateFormModel(link)
427
+ targetProp = prop
428
+ watchedProp = itemProp
429
+ } else {
430
+ targetProp = itemProp
431
+ watchedProp = prop
432
+ }
433
+ }
434
+
435
+ const unwatcher = this.$watch(`model.${targetProp}`, {
436
+ immediate: true,
437
+ deep: true,
438
+ handler: async function(newVal, oldVal) {
439
+ if (watchedProp) {
440
+ if (!deepEquals(newVal, oldVal)) {
441
+ const defaultAndOptions = await handler(newVal)
442
+
443
+ const newItem = {
444
+ prop: watchedProp,
445
+ ...defaultAndOptions
446
+ }
447
+
448
+ this.replaceOptions(newItem)
449
+ }
450
+ }
451
+ }
452
+ })
453
+
454
+ this.unwatchers.push(unwatcher)
455
+ },
456
+
457
+ replaceOptions({ prop, ...pramas }, config) {
458
+ let finded = false
459
+
460
+ const replaceOptionsHelper = ({ prop, pramas }, config) => {
461
+ if (finded) {
462
+ return
463
+ }
464
+
465
+ const tConfig = config || this.normalConfig
466
+
467
+ tConfig.forEach((item, idx) => {
468
+ if (Array.isArray(item)) {
469
+ replaceOptionsHelper(
470
+ {
471
+ prop,
472
+ pramas
473
+ },
474
+ item
475
+ )
476
+ } else if (Array.isArray(item.link) && !(item.prop === prop && item.mold)) {
477
+ replaceOptionsHelper(
478
+ {
479
+ prop,
480
+ pramas
481
+ },
482
+ item.link
483
+ )
484
+ } else {
485
+ if (item.prop === prop && item.mold) {
486
+ finded = true
487
+ const newItem = { ...item, ...pramas }
488
+
489
+ tConfig.splice(idx, 1, newItem)
490
+
491
+ if (newItem.mold) {
492
+ this.setModel(newItem, true)
493
+ }
494
+ }
495
+ }
496
+ })
497
+ }
498
+
499
+ replaceOptionsHelper({ prop, pramas }, config)
500
+ },
501
+
502
+ setResets(val = false, prop = null) {
503
+ if (prop) {
504
+ this.resets[prop] = val
505
+ } else {
506
+ Object.keys(this.resets).forEach(key => {
507
+ this.resets[key] = val
508
+ })
509
+ }
510
+ this.$nextTick(() => {
511
+ this.resetFields()
512
+ })
513
+ },
514
+
515
+ setDisableds(val = false, prop = null) {
516
+ if (prop) {
517
+ this.disableds[prop] = val
518
+ } else {
519
+ Object.keys(this.disableds).forEach(key => {
520
+ this.disableds[key] = val
521
+ })
522
+ }
523
+ },
524
+
525
+ separateAdvanceAndNormal(config = this.config) {
526
+ const isVertical = this.isVertical
527
+
528
+ const reducer = config => config.reduce(
529
+ (prev, item) => {
530
+ if (Array.isArray(item)) {
531
+ const { normalItems, ...rest } = reducer(item)
532
+
533
+ normalItems.length && prev.normalItems.push(normalItems)
534
+
535
+ return {
536
+ ...prev,
537
+ ...rest
538
+ }
539
+ } else {
540
+ const { mold } = item
541
+ // if (mold === "upload") {
542
+ // this.uploadKeys.add(prop);
543
+ // }
544
+
545
+ if (isVertical) {
546
+ if (mold === 'querybutton') {
547
+ prev[mold] = item
548
+ } else {
549
+ prev.normalItems.push(item)
550
+ }
551
+ } else {
552
+ prev.normalItems.push(item)
553
+ }
554
+ }
555
+
556
+ return prev
557
+ },
558
+ {
559
+ normalItems: []
560
+ }
561
+ )
562
+
563
+ return reducer(config)
564
+ },
565
+
566
+ isFunc(callBack) {
567
+ return callBack && typeof callBack === 'function'
568
+ },
569
+
570
+ isEmptyObject(obj) {
571
+ const isObj = Object.prototype.toString.call(obj).toLowerCase() !== '[object object]'
572
+ return !Object.keys(isObj ? {} : obj).length
573
+ },
574
+
575
+ async handleExpectQuery(config) {
576
+ this.queryLoading = true
577
+
578
+ try {
579
+ if (this.$listeners.query) {
580
+ await this.validate()
581
+
582
+ let model
583
+
584
+ if (this.uploadKeys.size) {
585
+ model = this.convertModelToFormData(this.model)
586
+ config = {
587
+ headers: {
588
+ 'Content-Type': 'multipart/form-data'
589
+ },
590
+ ...config
591
+ }
592
+ } else {
593
+ model = JSON.parse(JSON.stringify(this.model))
594
+ }
595
+
596
+ await this.$listeners.query(model, config)
597
+ } else {
598
+ throw new Error(
599
+ 'must specify @query event when there is a query button'
600
+ )
601
+ }
602
+ } catch (err) {
603
+ console.error('form custom error -> handleExpectQuery:', err)
604
+ } finally {
605
+ this.queryLoading = false
606
+ }
607
+ },
608
+
609
+ convertModelToFormData(model) {
610
+ const fd = new FormData()
611
+ Object.entries(model).forEach(([key, value]) => {
612
+ fd.append(key, value instanceof window.FormData ? value.get(key) : value)
613
+ })
614
+ return fd
615
+ },
616
+
617
+ clearValidate() {
618
+ if (this.rules && this.$refs[this.formID]) {
619
+ this.$refs[this.formID] && this.$refs[this.formID].clearValidate()
620
+ }
621
+ },
622
+
623
+ resetFields() {
624
+ console.log('__log_formID', this.formID, this.$refs[this.formID])
625
+ this.$refs[this.formID] && this.$refs[this.formID].resetFields()
626
+ },
627
+
628
+ validate() {
629
+ if (this.rules && this.$refs[this.formID]) {
630
+ return this.$refs[this.formID].validate()
631
+ }
632
+
633
+ return Promise.resolve()
634
+ },
635
+
636
+ /**
637
+ * 生成formId
638
+ */
639
+ createFormId() {
640
+ return `formID-${Math.random()
641
+ .toString(36)
642
+ .slice(2)}`
643
+ }
644
+ }
645
+ }
646
+ </script>
647
+
648
+ <style lang="scss">
649
+ @import "index";
650
+ </style>