n20-common-lib 1.3.46 → 1.3.49

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 (402) 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 +711 -711
  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 +328 -328
  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/mapper_aims.js +809 -809
  171. package/nstc-g6/utils/parseTime.js +48 -48
  172. package/nstc-g6/utils/validate/index.js +6 -6
  173. package/nstc-g6/utils/vendor/Export2Excel.js +229 -229
  174. package/nstc-g6/utils/vendor/Export2Zip.js +24 -24
  175. package/nstc-g6/utils/vue-bus.js +4 -4
  176. package/package.json +103 -103
  177. package/src/_qiankun/index.js +113 -113
  178. package/src/_qiankun/postMessage.js +24 -24
  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 -70
  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 +729 -729
  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/Anchor/AnchorItem.vue +30 -30
  232. package/src/components/Anchor/index.vue +208 -208
  233. package/src/components/ApprovalButtons/index.vue +240 -240
  234. package/src/components/ApprovalCard/index.vue +132 -132
  235. package/src/components/ApprovalRecord/approvalImg.vue +39 -39
  236. package/src/components/ApprovalRecord/approvalImgPro.vue +424 -424
  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 +79 -79
  253. package/src/components/ECharts/define.js +74 -74
  254. package/src/components/ECharts/index.vue +170 -170
  255. package/src/components/ECharts/mixins/resize.js +23 -23
  256. package/src/components/Empty/img/400.svg +101 -101
  257. package/src/components/Empty/img/401.svg +101 -101
  258. package/src/components/Empty/img/403.svg +101 -101
  259. package/src/components/Empty/img/405.svg +101 -101
  260. package/src/components/Empty/img/901.svg +95 -95
  261. package/src/components/Empty/img/902.svg +95 -95
  262. package/src/components/Empty/img/903.svg +95 -95
  263. package/src/components/Empty/img/904.svg +95 -95
  264. package/src/components/Empty/img/905.svg +95 -95
  265. package/src/components/Empty/img/906.svg +95 -95
  266. package/src/components/Empty/img/907.svg +95 -95
  267. package/src/components/Empty/img/abnormal.svg +108 -108
  268. package/src/components/Empty/img/dispose.svg +71 -71
  269. package/src/components/Empty/img/empty.svg +57 -57
  270. package/src/components/Empty/img/general.svg +58 -58
  271. package/src/components/Empty/img/lock.svg +57 -57
  272. package/src/components/Empty/img/network.svg +59 -59
  273. package/src/components/Empty/img/relevant.svg +68 -68
  274. package/src/components/Empty/img/search.svg +72 -72
  275. package/src/components/Empty/index.vue +147 -147
  276. package/src/components/EventBubble/demo/a.vue +29 -29
  277. package/src/components/EventBubble/demo/b.vue +12 -12
  278. package/src/components/EventBubble/demo/c.vue +18 -18
  279. package/src/components/EventBubble/index.vue +57 -57
  280. package/src/components/Expandable/index.vue +49 -49
  281. package/src/components/Expandable/main.vue +64 -64
  282. package/src/components/FileExportAsync/index.vue +191 -191
  283. package/src/components/FileImport/index.vue +108 -108
  284. package/src/components/FileUploadTable/index.vue +583 -583
  285. package/src/components/Filters/form-item-input.vue +185 -185
  286. package/src/components/Filters/index.vue +216 -216
  287. package/src/components/Filters/indexO.vue +106 -106
  288. package/src/components/FlowStep/index.vue +92 -92
  289. package/src/components/FooterBox/index.vue +21 -21
  290. package/src/components/GeneralCard/index.vue +15 -15
  291. package/src/components/InputNumber/index.vue +184 -184
  292. package/src/components/InputNumber/numberRange.vue +62 -62
  293. package/src/components/InputSearch/index.vue +79 -75
  294. package/src/components/Layout/AsideNav/index.vue +120 -120
  295. package/src/components/Layout/AsideNav/menuItem.vue +34 -34
  296. package/src/components/Layout/AsideNav/submenuTitle.vue +26 -26
  297. package/src/components/Layout/HeaderWrap/changePwd.vue +215 -215
  298. package/src/components/Layout/HeaderWrap/index.vue +412 -412
  299. package/src/components/Layout/HeaderWrap/noticePop.vue +316 -316
  300. package/src/components/Layout/SubContent/index.vue +127 -127
  301. package/src/components/Layout/TabsNav/index.vue +169 -169
  302. package/src/components/Layout/index.vue +518 -518
  303. package/src/components/Layout/utils.js +12 -12
  304. package/src/components/LoginTemporary/form.vue +581 -581
  305. package/src/components/LoginTemporary/index.vue +198 -198
  306. package/src/components/LoginTemporary/qrcode.vue +92 -92
  307. package/src/components/LoginTemporary/retrievePw.vue +375 -375
  308. package/src/components/LoginTemporary/utils.js +73 -73
  309. package/src/components/MicroApp/index.js +67 -67
  310. package/src/components/MicroFrame/index.vue +95 -95
  311. package/src/components/MoreTab/index.vue +229 -229
  312. package/src/components/NavMenu/index.vue +60 -60
  313. package/src/components/PageHeader/index.vue +39 -39
  314. package/src/components/PageHeader/style.scss +44 -44
  315. package/src/components/PageLayout/page.vue +15 -15
  316. package/src/components/Pagination/index.vue +165 -165
  317. package/src/components/SecondaryTab/index.vue +57 -57
  318. package/src/components/SelectLazy/index.vue +75 -75
  319. package/src/components/SelectTree/SelectTreeLazy.vue +241 -241
  320. package/src/components/SelectTree/index.vue +206 -206
  321. package/src/components/ShowColumn/index.vue +252 -252
  322. package/src/components/Sifting/index.vue +98 -98
  323. package/src/components/Stamp/index.vue +75 -75
  324. package/src/components/Statis/index.vue +113 -113
  325. package/src/components/Statis/statisItem.vue +65 -65
  326. package/src/components/Statis/statisPopover.vue +63 -63
  327. package/src/components/Step/index.vue +37 -37
  328. package/src/components/Suspend/index.vue +72 -72
  329. package/src/components/Table/filters.js +60 -60
  330. package/src/components/Table/index.vue +89 -89
  331. package/src/components/Table/indexO.vue +149 -149
  332. package/src/components/TableOperateColumn/OperateBtns.vue +86 -86
  333. package/src/components/TableOperateColumn/index.vue +26 -26
  334. package/src/components/Task/index.vue +26 -26
  335. package/src/components/TertiaryTab/index.vue +62 -62
  336. package/src/components/TimePicker/index.vue +28 -28
  337. package/src/components/Upload/index.vue +280 -280
  338. package/src/components/Upload/uploadMsg.vue +114 -114
  339. package/src/components/WornPagination/index.vue +73 -73
  340. package/src/directives/VClickOutside/index.js +27 -27
  341. package/src/directives/VHas/index.js +58 -58
  342. package/src/directives/VMove/index.js +42 -42
  343. package/src/directives/VRuleKey/index.js +201 -201
  344. package/src/directives/VTitle/index.js +109 -109
  345. package/src/index.js +265 -265
  346. package/src/plugins/CompatibleOld/index.js +11 -11
  347. package/src/plugins/Print/index.js +4 -4
  348. package/src/plugins/Print/print-js/.babelrc +12 -12
  349. package/src/plugins/Print/print-js/LICENSE +21 -21
  350. package/src/plugins/Print/print-js/README.md +98 -98
  351. package/src/plugins/Print/print-js/dist/print.css +96 -96
  352. package/src/plugins/Print/print-js/dist/print.js +990 -990
  353. package/src/plugins/Print/print-js/package.json +60 -60
  354. package/src/plugins/Print/print-js/src/index.d.ts +45 -45
  355. package/src/plugins/Print/print-js/src/index.js +10 -10
  356. package/src/plugins/Print/print-js/src/js/browser.js +33 -33
  357. package/src/plugins/Print/print-js/src/js/functions.js +103 -103
  358. package/src/plugins/Print/print-js/src/js/html.js +70 -70
  359. package/src/plugins/Print/print-js/src/js/image.js +48 -48
  360. package/src/plugins/Print/print-js/src/js/init.js +168 -168
  361. package/src/plugins/Print/print-js/src/js/json.js +109 -109
  362. package/src/plugins/Print/print-js/src/js/modal.js +62 -62
  363. package/src/plugins/Print/print-js/src/js/pdf.js +62 -62
  364. package/src/plugins/Print/print-js/src/js/print.js +102 -102
  365. package/src/plugins/Print/print-js/src/js/raw-html.js +15 -15
  366. package/src/plugins/Print/print-js/src/sass/index.scss +13 -13
  367. package/src/plugins/Print/print-js/src/sass/modules/_colors.scss +9 -9
  368. package/src/plugins/Print/print-js/src/sass/partials/_modal.scss +40 -40
  369. package/src/plugins/Print/print-js/src/sass/partials/_spinner.scss +45 -45
  370. package/src/plugins/Print/print.js +2 -2
  371. package/src/plugins/Print/print.scss +1 -1
  372. package/src/plugins/SetMenuTree/index.vue +41 -41
  373. package/src/plugins/SetMenuTree/logoIcon.vue +37 -37
  374. package/src/plugins/SetMenuTree/setmenutree.vue +427 -427
  375. package/src/plugins/SetMenuTree/utils.js +74 -74
  376. package/src/plugins/Sign/InfosecNetSignCNGAgent.min.js +2000 -2000
  377. package/src/plugins/Sign/bjca/XTXSAB.js +2395 -2395
  378. package/src/plugins/Sign/bjca/index.js +129 -129
  379. package/src/plugins/Sign/index.js +28 -28
  380. package/src/plugins/Sign/sign.js +108 -64
  381. package/src/plugins/setTabsForSub.js +2 -2
  382. package/src/utils/auth.js +56 -56
  383. package/src/utils/axios.js +205 -205
  384. package/src/utils/downloadBlob.js +19 -19
  385. package/src/utils/forEachs.js +16 -16
  386. package/src/utils/getScrollContainer.js +43 -43
  387. package/src/utils/handleTab.js +109 -109
  388. package/src/utils/i18n/cn2hk.json +1270 -1270
  389. package/src/utils/i18n/index.js +50 -50
  390. package/src/utils/importGlobal.js +16 -16
  391. package/src/utils/list2tree.js +36 -36
  392. package/src/utils/msgboxPor.js +26 -26
  393. package/src/utils/print.js +161 -161
  394. package/src/utils/relaNo.js +72 -72
  395. package/src/utils/repairElementUI.js +169 -169
  396. package/src/utils/tableheaderFilterpanel.vue +248 -248
  397. package/src/utils/theme.config.js +22 -22
  398. package/src/utils/theme.js +31 -31
  399. package/src/utils/toExcel.js +103 -103
  400. package/src/utils/urlToGo.js +82 -82
  401. package/src/utils/xls2json.js +44 -44
  402. package/src/utils/xlsx2json.js +28 -28
@@ -1,639 +1,639 @@
1
- <template>
2
- <div class="form-group-custom">
3
- <div class="form-group-custom-body">
4
- <div class="form-group-custom-body-ap" v-if="anchorPoint">
5
- <el-tabs v-model="activeName" :tab-position="tabPosition" @tab-click="tabClickAction">
6
- <el-tab-pane
7
- v-for="(item,index) in anchorPointArr.filter(item => item.title)"
8
- :key="index"
9
- :label="item.name || item.title"
10
- />
11
- </el-tabs>
12
- </div>
13
- <div :class="{ 'form-group-custom-body-form': true, 'form-group-custom-body-form-anchor-point': anchorPoint}">
14
- <slot name="before" />
15
-
16
- <div
17
- v-for="(form,index) in innerConfig"
18
- :key="index"
19
- :class="['form-group-item', { 'is-upload': getIsUpload(form) }]"
20
- >
21
- <template v-if="form.renderable !== false">
22
- <a :id="`nstc-form-group-${form.anchorPoint}`" />
23
- <ExpandCollapse
24
- v-if="form.title"
25
- :is-can-collapse="isCanCollapse"
26
- >
27
- <NstcForm
28
- :ref="`formCustom${index}`"
29
- v-model="model[index]"
30
- :reset.sync="form.formReset"
31
- :config="form.formConfig"
32
- :mount-and-query="false"
33
- :rules="rules"
34
- :disabled="disabled"
35
- pureable
36
- :label-width="labelWidth"
37
- :show-mode="showMode"
38
- />
39
- <template v-slot:title>
40
- <template v-if="typeof form.title === 'object'">
41
- <component :is="compile(form.title.component, form, model[index])" v-if="'template' in form.title.component" />
42
- <component :is="form.title.component" v-else />
43
- </template>
44
-
45
- <span v-else>{{ form.title }}</span>
46
- </template>
47
- </ExpandCollapse>
48
- <NstcForm
49
- v-else
50
- :ref="`formCustom${index}`"
51
- v-model="model[index]"
52
- :reset.sync="form.formReset"
53
- :config="form.formConfig"
54
- :mount-and-query="false"
55
- :rules="rules"
56
- :disabled="disabled"
57
- pureable
58
- :label-width="labelWidth"
59
- :show-mode="showMode"
60
- />
61
- </template>
62
- </div>
63
-
64
- <slot name="after" />
65
- </div>
66
- </div>
67
-
68
- <div
69
- v-if="customSubmit"
70
- :class="[
71
- isFix ? 'form-group-footer form-group-footer-form' : 'form-group-footer' ]"
72
- >
73
- <slot name="submit" />
74
- </div>
75
-
76
- <div
77
- v-if="!customSubmit &&showFooter"
78
- :class="[
79
- isFix ? 'form-group-footer form-group-footer-form' : 'form-group-footer' ]"
80
- >
81
- <el-button
82
- v-if="handlers.submit"
83
- type="primary"
84
- :loading="loading.submit"
85
- :class="handlers.submit.className || ''"
86
- @click="handleQuery('submit')"
87
- >
88
- {{ handlers.submit.label }}
89
- </el-button>
90
- <el-button
91
- v-if="handlers.save"
92
- :loading="loading.save"
93
- :class="handlers.save.className || ''"
94
- @click="handleQuery('save')"
95
- >
96
- {{ handlers.save.label }}
97
- </el-button>
98
- <el-button
99
- v-if="handlers.reset"
100
- class="assist-button"
101
- @click="handleReset"
102
- :class="handlers.reset.className || ''"
103
- >
104
- {{ handlers.reset.label }}
105
- </el-button>
106
- <el-button
107
- v-if="handlers.cancel"
108
- @click="handleCancel('cancel')"
109
- >
110
- {{ handlers.cancel.label }}
111
- </el-button>
112
- </div>
113
- </div>
114
- </template>
115
-
116
- <script>
117
- import Vue from 'vue'
118
- import NstcForm from '../../NstcForm/Component'
119
- import ExpandCollapse from '^/ExpandCollapse/src/main'
120
-
121
- // 引入特殊检验
122
- import { validInputWithUnit } from './validate'
123
-
124
- export default {
125
- name: 'NstcFormGroup',
126
-
127
- components: {
128
- NstcForm,
129
- ExpandCollapse
130
- },
131
-
132
- props: {
133
- config: {
134
- type: Array,
135
- default: () => []
136
- },
137
-
138
- handlers: {
139
- type: Object,
140
- default: function () {
141
- return {
142
- submit: {
143
- label: '提交',
144
- isShow: true,
145
- className: 'nstc-g6-common-btn-1'
146
- },
147
- save: {
148
- label: '保存',
149
- isShow: true,
150
- className: 'nstc-g6-common-btn-1'
151
- },
152
- reset: {
153
- label: '重置',
154
- isShow: true,
155
- className: 'nstc-g6-common-btn-4 nstc-g6-common-btn-size-b'
156
- }
157
- // cancel: { // 针对弹窗嵌套的表单
158
- // label: '取消'
159
- // }
160
- }
161
- }
162
- },
163
-
164
- labelWidth: {
165
- default: '80px',
166
- type: [String, Number]
167
- },
168
- // activeName 高亮值
169
- activeName: {
170
- type: String,
171
- default: '0'
172
- },
173
- disabled: {
174
- type: Boolean,
175
- default: false
176
- },
177
-
178
- showFooter: {
179
- type: Boolean,
180
- default: true
181
- },
182
-
183
- // 是否可以折叠
184
- isCanCollapse: {
185
- type: Boolean,
186
- default: true
187
- },
188
-
189
- // 是否 fix 提交框
190
- isFix: {
191
- type: Boolean,
192
- default: false
193
- },
194
-
195
- // 是否显示锚点
196
- anchorPoint: {
197
- type: Boolean,
198
- default: false
199
- },
200
-
201
- addAnchorPoint: {
202
- type: Array,
203
- default: () => {
204
- return []
205
- }
206
- },
207
-
208
- // 自定义提交
209
- customSubmit: {
210
- type: Boolean,
211
- default: false
212
- },
213
-
214
- // 显示模式
215
- showMode: {
216
- type: String,
217
- default: ''
218
- },
219
-
220
- // 重置
221
- reset:{
222
- type: Boolean,
223
- default: false
224
- }
225
- },
226
-
227
- data() {
228
- return {
229
- model: [],
230
- innerConfig: [],
231
-
232
- loading: {
233
- submit: false,
234
- save: false
235
- },
236
-
237
- rules: undefined,
238
-
239
- // 特殊组件校验规则
240
- // validateObj: {
241
- // inputwithunit: validInputWithUnit
242
- // },
243
- validateObj: {
244
- inputwithunit: validInputWithUnit
245
- },
246
- // 表单配置更新
247
- renderFormConfig: false,
248
-
249
- tabPosition: 'left',
250
- anchorPointArr: []
251
- }
252
- },
253
-
254
- computed: {
255
- getIsUpload() {
256
- return form => {
257
- return form.formConfig && form.formConfig[0] &&
258
- (form.formConfig[0].mold === 'nstcupload' || form.formConfig[0].length && form.formConfig[0][0].mold === 'nstcupload')
259
- }
260
- },
261
- },
262
-
263
- watch: {
264
- model: {
265
- deep: true,
266
- handler(val) {
267
- this.$emit('change', val)
268
- }
269
- },
270
-
271
- config: {
272
- immediate: true,
273
- deep: true,
274
- handler(val,oldValue) {
275
- this.$bus.$emit('nstc_custom_form_config_update', val)
276
- if (val !== oldValue) {
277
- this.init(val)
278
- }
279
- }
280
- }
281
- },
282
-
283
- mounted() {
284
- this.formInit()
285
- this.getRules()
286
- },
287
-
288
- methods: {
289
- async handleQuery(action) {
290
- try {
291
- // console.log('00')
292
- this.loading[action] = true
293
- // 动态更新 formCustom 的 config 文件时 form[0]可能为空
294
- this.rules && await Promise.all(Object.values(this.$refs).map(form => form[0] && form[0].validate()))
295
- // console.log('11')
296
-
297
- if (this.$listeners.query) {
298
- // console.log('22')
299
- // this.$listeners.query需返回promise
300
- await this.$listeners.query(JSON.parse(JSON.stringify(this.model)), action)
301
- // console.log('33')
302
- }
303
- // console.log('444',err,JSON.parse(JSON.stringify(this.model)),action,form)
304
- } catch (err) {
305
- console.log(err)
306
- this.$message({
307
- type: 'warning',
308
- message: '请确认表单信息'
309
- })
310
- // this.$confirm('', '请确认表单信息', {
311
- // type: 'warning' // success info warning error
312
- // // showCancelButton: false,
313
- // // showConfirmButton: false,
314
- // // center: true
315
- // })
316
- } finally {
317
- this.loading[action] = false
318
- }
319
- },
320
-
321
- /**
322
- * 取消 - 针对弹窗嵌套的表单
323
- */
324
- handleCancel() {
325
- this.$bus.$emit('dialog-cancel', false)
326
- },
327
-
328
- async triggerQuery(action) {
329
- try {
330
- this.loading[action] = true
331
- this.rules && await Promise.all(Object.values(this.$refs).map(form => form[0].validate()))
332
- // if (this.$listeners.query) {
333
- // // this.$listeners.query需返回promise
334
- // await this.$listeners.query(JSON.parse(JSON.stringify(this.model)), action)
335
- // }
336
- return true
337
- } catch (err) {
338
- this.$message({
339
- type: 'warning',
340
- message: '请确认表单信息'
341
- })
342
- // this.$confirm('', '请确认表单信息', {
343
- // type: 'warning' // success info warning error
344
- // // showCancelButton: false,
345
- // // showConfirmButton: false,
346
- // // center: true
347
- // })
348
- this.loading[action] = false
349
- return false
350
- } finally {
351
- this.loading[action] = false
352
- }
353
- },
354
-
355
- async handleReset() {
356
- this.innerConfig.forEach(item => { item.formReset = true })
357
- await this.$nextTick()
358
- Object.values(this.$refs).forEach(form => form[0] && form[0].clearValidate())
359
-
360
- if (this.$listeners.reset) {
361
- await this.$listeners.reset(JSON.parse(JSON.stringify(this.model)))
362
- }
363
- },
364
-
365
- setModel(index, model) {
366
- Object.keys(model).map(k => {
367
- this.$set(this.model[index], k, model[k])
368
- })
369
- },
370
-
371
- init(config) {
372
- this.innerConfig = []
373
- if (this.model.length !== config.length) {
374
- this.model = config.map(() => ({}))
375
- }
376
- this.getRules()
377
- this.$nextTick(() => {
378
- this.innerConfig = config.map(item => ({
379
- ...item,
380
- formReset: false,
381
- anchorPoint: `ap-${Math.random()
382
- .toString(36)
383
- .slice(2)}`
384
- }))
385
- this.anchorPointArr = this.innerConfig.map(item => ({
386
- title: item.name || item.title,
387
- anchorPoint: item[`anchorPoint`]
388
- }))
389
- // anchorPointArr 表示右侧描点数组
390
- this.anchorPointArr = this.anchorPointArr.concat(this.addAnchorPoint)
391
- this.$bus.$emit('nstc_custom_form_anchorPointArr', this.anchorPointArr)
392
- })
393
- },
394
-
395
- compile(component, form, model) {
396
- const template = Vue.compile(component.template)
397
- const data = {
398
- data() {
399
- return Object.assign({}, component.data, { form, model })
400
- }
401
- }
402
-
403
- return Object.assign({}, template, component, data)
404
- },
405
-
406
- /**
407
- * 动态设置表单高度
408
- */
409
- formInit() {
410
- if (this.showFooter && this.isFix) {
411
- // 如果有提交按钮
412
- let dom = document.querySelector('.form-group-custom')
413
- dom.style.cssText = 'min-height:' + (document.body.clientHeight - 212) + 'px'
414
- }
415
- },
416
-
417
- /**
418
- * 获取表单验证规则
419
- */
420
- getRules() {
421
- const that = this
422
- const tempConfig = JSON.parse(JSON.stringify(this.config))
423
- this.rules = {}
424
- this.rules = tempConfig
425
- .reduce((prev, next) => ([
426
- ...prev,
427
- ...next.formConfig
428
- ]), [])
429
- .reduce((prev, next) => ([
430
- ...prev,
431
- ...Array.isArray(next) ? next : [next]
432
- ]), [])
433
- .reduce((prev, next) => {
434
- if (next.link) {
435
- const links = next.link.filter(item => !!item.mold)
436
-
437
- return [
438
- ...prev,
439
- next,
440
- ...links
441
- ]
442
- }
443
-
444
- return [
445
- ...prev,
446
- next
447
- ]
448
- }, [])
449
- .filter(item => item.isRequired)
450
- .reduce((res, curr) => {
451
- const isInput = (curr.mold === 'input') || (curr.prop === 'dueDate' || curr.prop ==='lastShipmentDate')
452
-
453
- // 自定义校验
454
- const hasSpecificValid = that.validateObj[curr.mold]
455
- return {
456
- ...res,
457
- [curr.prop]: {
458
- required: true,
459
- [`${hasSpecificValid ? 'nstc-': ''}message`]: `请${isInput ? '输入' : '选择'}${curr.name}`,
460
- trigger: isInput ? 'blur' : 'change',
461
- ...(hasSpecificValid ? { validator: hasSpecificValid } : {})
462
- // whitespace: isInput || undefined,
463
- // ...isInput
464
- // ? {
465
- // transform(val) {
466
- // return typeof val === 'string' ? val.trim() : val
467
- // }
468
- // }
469
- // : {}
470
- }
471
- }
472
- }, {})
473
- },
474
-
475
- /**
476
- * 锚点切换
477
- */
478
- tabClickAction(vmEl) {
479
- this.activeName = vmEl.index
480
- const anchorPoint = this.anchorPointArr[vmEl.index].anchorPoint
481
- const el = document.querySelector(`#nstc-form-group-${anchorPoint}`)
482
- el && el.scrollIntoView(true)
483
- if (!el) {
484
- let wEl = document.getElementById(`#nstc-form-group-${anchorPoint}`)
485
- wEl && wEl.scrollIntoView(true)
486
- }
487
- // eslint-disable-next-line no-debugger
488
- // debugger
489
- }
490
- }
491
- }
492
- </script>
493
-
494
- <style lang="scss">
495
- // .form-group-custom-wrap {
496
- // height: ;
497
- // }
498
- .form-group-custom {
499
- background-color: #fff;
500
- border-radius: 10px;
501
- padding-bottom: 30px;
502
- height: 100%;
503
- &-body{
504
- display: flex;
505
- flex-direction: row;
506
- height: 100%;
507
- &-ap{
508
- width: 152px;
509
- margin-right: 20px;
510
- .el-tabs__header{
511
- width: 100%;
512
- }
513
- }
514
- &-form{
515
- flex: 1;
516
- overflow-y: auto;
517
- }
518
- &-form-anchor-point {
519
- .form-group-item:nth-child(1) {
520
- margin-top: 0;
521
- padding-top: 0!important;
522
- }
523
- }
524
- }
525
- .expand-collapse-header,
526
- .expand-collapse-header-collapse {
527
- display: flex;
528
- > span {
529
- font-weight: bold;
530
- font-size: 14px;
531
- }
532
- > i {
533
- color: #F5F5F5;
534
- // margin-left: 19px;
535
- }
536
- &::after{
537
- content: '';
538
- flex: 1;
539
- }
540
- }
541
- .expand-collapse .form-base-wrapper {
542
- display: block;
543
- }
544
- .expand-collapse .form-base-wrapper .form-group,
545
- .form-base-wrapper {
546
- width: 100%;
547
- .form-item {
548
- width: 400px;
549
- }
550
- .form-item:nth-child(1) {
551
- margin-left: calc((50% - 400px)* 0.64);
552
- }
553
- .form-item:nth-child(2) {
554
- margin-left: calc((50% - 400px)* 0.745);
555
- }
556
- }
557
- .form-custom {
558
- display: flex;
559
- justify-content: center;
560
- }
561
- .form-base-wrapper {
562
- //min-width: 1300px;
563
- }
564
- .form-group {
565
- &-item {
566
- & + .form-group-item {
567
- // border-top: 1px solid rgba(228, 228, 228, .91);
568
- }
569
- &:first-child {
570
- padding-top: 20px;
571
- }
572
- &.is-upload {
573
- .form-base-wrapper {
574
- width: 100%;
575
- .nstc-upload-box {
576
- width: 100%;
577
- }
578
- }
579
- }
580
- }
581
- &-footer {
582
- margin-top: 70px;
583
- text-align: center;
584
- }
585
- }
586
-
587
- .form-group-footer-form {
588
- position: fixed;
589
- bottom: 0;
590
- border-radius: 0px 0px 5px 5px;
591
- width: 100%;
592
- height: 61px;
593
- transition: width 0.3s;
594
- background-color: #fff;
595
- box-shadow: 0px -2px 6px 0px rgba(92,100,113,0.11);
596
- .sider-close {
597
- background-color: #fff;
598
- width: calc(100% - 103px) !important;
599
- }
600
- z-index: 999;
601
- }
602
- .form-group-footer {
603
- .el-button {
604
- margin: 14px 20px 0px 0px;
605
- width: 90px;
606
- height: 34px;
607
- padding: 8px 12px;
608
- font-size: 14px;
609
- border-radius: 5px;
610
- }
611
- }
612
- .form-item-text {
613
- margin-left: 20px;
614
- .el-form-item__label {
615
- text-align: left;
616
- font-size: 14px;
617
- }
618
- .el-form-item {
619
- margin-bottom: 3px;
620
- }
621
- }
622
-
623
- .el-button--primary {
624
- background-color: #007aff;
625
- border: 1px solid #007aff;
626
- }
627
- .el-button--default {
628
- border: 1px solid #007aff;
629
- color: #007aff;
630
- }
631
- .assist-button {
632
- background: #fff;
633
- border: 1px solid #dcdfe6;
634
- color: #606266;
635
- }
636
-
637
- }
638
-
639
- </style>
1
+ <template>
2
+ <div class="form-group-custom">
3
+ <div class="form-group-custom-body">
4
+ <div class="form-group-custom-body-ap" v-if="anchorPoint">
5
+ <el-tabs v-model="activeName" :tab-position="tabPosition" @tab-click="tabClickAction">
6
+ <el-tab-pane
7
+ v-for="(item,index) in anchorPointArr.filter(item => item.title)"
8
+ :key="index"
9
+ :label="item.name || item.title"
10
+ />
11
+ </el-tabs>
12
+ </div>
13
+ <div :class="{ 'form-group-custom-body-form': true, 'form-group-custom-body-form-anchor-point': anchorPoint}">
14
+ <slot name="before" />
15
+
16
+ <div
17
+ v-for="(form,index) in innerConfig"
18
+ :key="index"
19
+ :class="['form-group-item', { 'is-upload': getIsUpload(form) }]"
20
+ >
21
+ <template v-if="form.renderable !== false">
22
+ <a :id="`nstc-form-group-${form.anchorPoint}`" />
23
+ <ExpandCollapse
24
+ v-if="form.title"
25
+ :is-can-collapse="isCanCollapse"
26
+ >
27
+ <NstcForm
28
+ :ref="`formCustom${index}`"
29
+ v-model="model[index]"
30
+ :reset.sync="form.formReset"
31
+ :config="form.formConfig"
32
+ :mount-and-query="false"
33
+ :rules="rules"
34
+ :disabled="disabled"
35
+ pureable
36
+ :label-width="labelWidth"
37
+ :show-mode="showMode"
38
+ />
39
+ <template v-slot:title>
40
+ <template v-if="typeof form.title === 'object'">
41
+ <component :is="compile(form.title.component, form, model[index])" v-if="'template' in form.title.component" />
42
+ <component :is="form.title.component" v-else />
43
+ </template>
44
+
45
+ <span v-else>{{ form.title }}</span>
46
+ </template>
47
+ </ExpandCollapse>
48
+ <NstcForm
49
+ v-else
50
+ :ref="`formCustom${index}`"
51
+ v-model="model[index]"
52
+ :reset.sync="form.formReset"
53
+ :config="form.formConfig"
54
+ :mount-and-query="false"
55
+ :rules="rules"
56
+ :disabled="disabled"
57
+ pureable
58
+ :label-width="labelWidth"
59
+ :show-mode="showMode"
60
+ />
61
+ </template>
62
+ </div>
63
+
64
+ <slot name="after" />
65
+ </div>
66
+ </div>
67
+
68
+ <div
69
+ v-if="customSubmit"
70
+ :class="[
71
+ isFix ? 'form-group-footer form-group-footer-form' : 'form-group-footer' ]"
72
+ >
73
+ <slot name="submit" />
74
+ </div>
75
+
76
+ <div
77
+ v-if="!customSubmit &&showFooter"
78
+ :class="[
79
+ isFix ? 'form-group-footer form-group-footer-form' : 'form-group-footer' ]"
80
+ >
81
+ <el-button
82
+ v-if="handlers.submit"
83
+ type="primary"
84
+ :loading="loading.submit"
85
+ :class="handlers.submit.className || ''"
86
+ @click="handleQuery('submit')"
87
+ >
88
+ {{ handlers.submit.label }}
89
+ </el-button>
90
+ <el-button
91
+ v-if="handlers.save"
92
+ :loading="loading.save"
93
+ :class="handlers.save.className || ''"
94
+ @click="handleQuery('save')"
95
+ >
96
+ {{ handlers.save.label }}
97
+ </el-button>
98
+ <el-button
99
+ v-if="handlers.reset"
100
+ class="assist-button"
101
+ @click="handleReset"
102
+ :class="handlers.reset.className || ''"
103
+ >
104
+ {{ handlers.reset.label }}
105
+ </el-button>
106
+ <el-button
107
+ v-if="handlers.cancel"
108
+ @click="handleCancel('cancel')"
109
+ >
110
+ {{ handlers.cancel.label }}
111
+ </el-button>
112
+ </div>
113
+ </div>
114
+ </template>
115
+
116
+ <script>
117
+ import Vue from 'vue'
118
+ import NstcForm from '../../NstcForm/Component'
119
+ import ExpandCollapse from '^/ExpandCollapse/src/main'
120
+
121
+ // 引入特殊检验
122
+ import { validInputWithUnit } from './validate'
123
+
124
+ export default {
125
+ name: 'NstcFormGroup',
126
+
127
+ components: {
128
+ NstcForm,
129
+ ExpandCollapse
130
+ },
131
+
132
+ props: {
133
+ config: {
134
+ type: Array,
135
+ default: () => []
136
+ },
137
+
138
+ handlers: {
139
+ type: Object,
140
+ default: function () {
141
+ return {
142
+ submit: {
143
+ label: '提交',
144
+ isShow: true,
145
+ className: 'nstc-g6-common-btn-1'
146
+ },
147
+ save: {
148
+ label: '保存',
149
+ isShow: true,
150
+ className: 'nstc-g6-common-btn-1'
151
+ },
152
+ reset: {
153
+ label: '重置',
154
+ isShow: true,
155
+ className: 'nstc-g6-common-btn-4 nstc-g6-common-btn-size-b'
156
+ }
157
+ // cancel: { // 针对弹窗嵌套的表单
158
+ // label: '取消'
159
+ // }
160
+ }
161
+ }
162
+ },
163
+
164
+ labelWidth: {
165
+ default: '80px',
166
+ type: [String, Number]
167
+ },
168
+ // activeName 高亮值
169
+ activeName: {
170
+ type: String,
171
+ default: '0'
172
+ },
173
+ disabled: {
174
+ type: Boolean,
175
+ default: false
176
+ },
177
+
178
+ showFooter: {
179
+ type: Boolean,
180
+ default: true
181
+ },
182
+
183
+ // 是否可以折叠
184
+ isCanCollapse: {
185
+ type: Boolean,
186
+ default: true
187
+ },
188
+
189
+ // 是否 fix 提交框
190
+ isFix: {
191
+ type: Boolean,
192
+ default: false
193
+ },
194
+
195
+ // 是否显示锚点
196
+ anchorPoint: {
197
+ type: Boolean,
198
+ default: false
199
+ },
200
+
201
+ addAnchorPoint: {
202
+ type: Array,
203
+ default: () => {
204
+ return []
205
+ }
206
+ },
207
+
208
+ // 自定义提交
209
+ customSubmit: {
210
+ type: Boolean,
211
+ default: false
212
+ },
213
+
214
+ // 显示模式
215
+ showMode: {
216
+ type: String,
217
+ default: ''
218
+ },
219
+
220
+ // 重置
221
+ reset:{
222
+ type: Boolean,
223
+ default: false
224
+ }
225
+ },
226
+
227
+ data() {
228
+ return {
229
+ model: [],
230
+ innerConfig: [],
231
+
232
+ loading: {
233
+ submit: false,
234
+ save: false
235
+ },
236
+
237
+ rules: undefined,
238
+
239
+ // 特殊组件校验规则
240
+ // validateObj: {
241
+ // inputwithunit: validInputWithUnit
242
+ // },
243
+ validateObj: {
244
+ inputwithunit: validInputWithUnit
245
+ },
246
+ // 表单配置更新
247
+ renderFormConfig: false,
248
+
249
+ tabPosition: 'left',
250
+ anchorPointArr: []
251
+ }
252
+ },
253
+
254
+ computed: {
255
+ getIsUpload() {
256
+ return form => {
257
+ return form.formConfig && form.formConfig[0] &&
258
+ (form.formConfig[0].mold === 'nstcupload' || form.formConfig[0].length && form.formConfig[0][0].mold === 'nstcupload')
259
+ }
260
+ },
261
+ },
262
+
263
+ watch: {
264
+ model: {
265
+ deep: true,
266
+ handler(val) {
267
+ this.$emit('change', val)
268
+ }
269
+ },
270
+
271
+ config: {
272
+ immediate: true,
273
+ deep: true,
274
+ handler(val,oldValue) {
275
+ this.$bus.$emit('nstc_custom_form_config_update', val)
276
+ if (val !== oldValue) {
277
+ this.init(val)
278
+ }
279
+ }
280
+ }
281
+ },
282
+
283
+ mounted() {
284
+ this.formInit()
285
+ this.getRules()
286
+ },
287
+
288
+ methods: {
289
+ async handleQuery(action) {
290
+ try {
291
+ // console.log('00')
292
+ this.loading[action] = true
293
+ // 动态更新 formCustom 的 config 文件时 form[0]可能为空
294
+ this.rules && await Promise.all(Object.values(this.$refs).map(form => form[0] && form[0].validate()))
295
+ // console.log('11')
296
+
297
+ if (this.$listeners.query) {
298
+ // console.log('22')
299
+ // this.$listeners.query需返回promise
300
+ await this.$listeners.query(JSON.parse(JSON.stringify(this.model)), action)
301
+ // console.log('33')
302
+ }
303
+ // console.log('444',err,JSON.parse(JSON.stringify(this.model)),action,form)
304
+ } catch (err) {
305
+ console.log(err)
306
+ this.$message({
307
+ type: 'warning',
308
+ message: '请确认表单信息'
309
+ })
310
+ // this.$confirm('', '请确认表单信息', {
311
+ // type: 'warning' // success info warning error
312
+ // // showCancelButton: false,
313
+ // // showConfirmButton: false,
314
+ // // center: true
315
+ // })
316
+ } finally {
317
+ this.loading[action] = false
318
+ }
319
+ },
320
+
321
+ /**
322
+ * 取消 - 针对弹窗嵌套的表单
323
+ */
324
+ handleCancel() {
325
+ this.$bus.$emit('dialog-cancel', false)
326
+ },
327
+
328
+ async triggerQuery(action) {
329
+ try {
330
+ this.loading[action] = true
331
+ this.rules && await Promise.all(Object.values(this.$refs).map(form => form[0].validate()))
332
+ // if (this.$listeners.query) {
333
+ // // this.$listeners.query需返回promise
334
+ // await this.$listeners.query(JSON.parse(JSON.stringify(this.model)), action)
335
+ // }
336
+ return true
337
+ } catch (err) {
338
+ this.$message({
339
+ type: 'warning',
340
+ message: '请确认表单信息'
341
+ })
342
+ // this.$confirm('', '请确认表单信息', {
343
+ // type: 'warning' // success info warning error
344
+ // // showCancelButton: false,
345
+ // // showConfirmButton: false,
346
+ // // center: true
347
+ // })
348
+ this.loading[action] = false
349
+ return false
350
+ } finally {
351
+ this.loading[action] = false
352
+ }
353
+ },
354
+
355
+ async handleReset() {
356
+ this.innerConfig.forEach(item => { item.formReset = true })
357
+ await this.$nextTick()
358
+ Object.values(this.$refs).forEach(form => form[0] && form[0].clearValidate())
359
+
360
+ if (this.$listeners.reset) {
361
+ await this.$listeners.reset(JSON.parse(JSON.stringify(this.model)))
362
+ }
363
+ },
364
+
365
+ setModel(index, model) {
366
+ Object.keys(model).map(k => {
367
+ this.$set(this.model[index], k, model[k])
368
+ })
369
+ },
370
+
371
+ init(config) {
372
+ this.innerConfig = []
373
+ if (this.model.length !== config.length) {
374
+ this.model = config.map(() => ({}))
375
+ }
376
+ this.getRules()
377
+ this.$nextTick(() => {
378
+ this.innerConfig = config.map(item => ({
379
+ ...item,
380
+ formReset: false,
381
+ anchorPoint: `ap-${Math.random()
382
+ .toString(36)
383
+ .slice(2)}`
384
+ }))
385
+ this.anchorPointArr = this.innerConfig.map(item => ({
386
+ title: item.name || item.title,
387
+ anchorPoint: item[`anchorPoint`]
388
+ }))
389
+ // anchorPointArr 表示右侧描点数组
390
+ this.anchorPointArr = this.anchorPointArr.concat(this.addAnchorPoint)
391
+ this.$bus.$emit('nstc_custom_form_anchorPointArr', this.anchorPointArr)
392
+ })
393
+ },
394
+
395
+ compile(component, form, model) {
396
+ const template = Vue.compile(component.template)
397
+ const data = {
398
+ data() {
399
+ return Object.assign({}, component.data, { form, model })
400
+ }
401
+ }
402
+
403
+ return Object.assign({}, template, component, data)
404
+ },
405
+
406
+ /**
407
+ * 动态设置表单高度
408
+ */
409
+ formInit() {
410
+ if (this.showFooter && this.isFix) {
411
+ // 如果有提交按钮
412
+ let dom = document.querySelector('.form-group-custom')
413
+ dom.style.cssText = 'min-height:' + (document.body.clientHeight - 212) + 'px'
414
+ }
415
+ },
416
+
417
+ /**
418
+ * 获取表单验证规则
419
+ */
420
+ getRules() {
421
+ const that = this
422
+ const tempConfig = JSON.parse(JSON.stringify(this.config))
423
+ this.rules = {}
424
+ this.rules = tempConfig
425
+ .reduce((prev, next) => ([
426
+ ...prev,
427
+ ...next.formConfig
428
+ ]), [])
429
+ .reduce((prev, next) => ([
430
+ ...prev,
431
+ ...Array.isArray(next) ? next : [next]
432
+ ]), [])
433
+ .reduce((prev, next) => {
434
+ if (next.link) {
435
+ const links = next.link.filter(item => !!item.mold)
436
+
437
+ return [
438
+ ...prev,
439
+ next,
440
+ ...links
441
+ ]
442
+ }
443
+
444
+ return [
445
+ ...prev,
446
+ next
447
+ ]
448
+ }, [])
449
+ .filter(item => item.isRequired)
450
+ .reduce((res, curr) => {
451
+ const isInput = (curr.mold === 'input') || (curr.prop === 'dueDate' || curr.prop ==='lastShipmentDate')
452
+
453
+ // 自定义校验
454
+ const hasSpecificValid = that.validateObj[curr.mold]
455
+ return {
456
+ ...res,
457
+ [curr.prop]: {
458
+ required: true,
459
+ [`${hasSpecificValid ? 'nstc-': ''}message`]: `请${isInput ? '输入' : '选择'}${curr.name}`,
460
+ trigger: isInput ? 'blur' : 'change',
461
+ ...(hasSpecificValid ? { validator: hasSpecificValid } : {})
462
+ // whitespace: isInput || undefined,
463
+ // ...isInput
464
+ // ? {
465
+ // transform(val) {
466
+ // return typeof val === 'string' ? val.trim() : val
467
+ // }
468
+ // }
469
+ // : {}
470
+ }
471
+ }
472
+ }, {})
473
+ },
474
+
475
+ /**
476
+ * 锚点切换
477
+ */
478
+ tabClickAction(vmEl) {
479
+ this.activeName = vmEl.index
480
+ const anchorPoint = this.anchorPointArr[vmEl.index].anchorPoint
481
+ const el = document.querySelector(`#nstc-form-group-${anchorPoint}`)
482
+ el && el.scrollIntoView(true)
483
+ if (!el) {
484
+ let wEl = document.getElementById(`#nstc-form-group-${anchorPoint}`)
485
+ wEl && wEl.scrollIntoView(true)
486
+ }
487
+ // eslint-disable-next-line no-debugger
488
+ // debugger
489
+ }
490
+ }
491
+ }
492
+ </script>
493
+
494
+ <style lang="scss">
495
+ // .form-group-custom-wrap {
496
+ // height: ;
497
+ // }
498
+ .form-group-custom {
499
+ background-color: #fff;
500
+ border-radius: 10px;
501
+ padding-bottom: 30px;
502
+ height: 100%;
503
+ &-body{
504
+ display: flex;
505
+ flex-direction: row;
506
+ height: 100%;
507
+ &-ap{
508
+ width: 152px;
509
+ margin-right: 20px;
510
+ .el-tabs__header{
511
+ width: 100%;
512
+ }
513
+ }
514
+ &-form{
515
+ flex: 1;
516
+ overflow-y: auto;
517
+ }
518
+ &-form-anchor-point {
519
+ .form-group-item:nth-child(1) {
520
+ margin-top: 0;
521
+ padding-top: 0!important;
522
+ }
523
+ }
524
+ }
525
+ .expand-collapse-header,
526
+ .expand-collapse-header-collapse {
527
+ display: flex;
528
+ > span {
529
+ font-weight: bold;
530
+ font-size: 14px;
531
+ }
532
+ > i {
533
+ color: #F5F5F5;
534
+ // margin-left: 19px;
535
+ }
536
+ &::after{
537
+ content: '';
538
+ flex: 1;
539
+ }
540
+ }
541
+ .expand-collapse .form-base-wrapper {
542
+ display: block;
543
+ }
544
+ .expand-collapse .form-base-wrapper .form-group,
545
+ .form-base-wrapper {
546
+ width: 100%;
547
+ .form-item {
548
+ width: 400px;
549
+ }
550
+ .form-item:nth-child(1) {
551
+ margin-left: calc((50% - 400px)* 0.64);
552
+ }
553
+ .form-item:nth-child(2) {
554
+ margin-left: calc((50% - 400px)* 0.745);
555
+ }
556
+ }
557
+ .form-custom {
558
+ display: flex;
559
+ justify-content: center;
560
+ }
561
+ .form-base-wrapper {
562
+ //min-width: 1300px;
563
+ }
564
+ .form-group {
565
+ &-item {
566
+ & + .form-group-item {
567
+ // border-top: 1px solid rgba(228, 228, 228, .91);
568
+ }
569
+ &:first-child {
570
+ padding-top: 20px;
571
+ }
572
+ &.is-upload {
573
+ .form-base-wrapper {
574
+ width: 100%;
575
+ .nstc-upload-box {
576
+ width: 100%;
577
+ }
578
+ }
579
+ }
580
+ }
581
+ &-footer {
582
+ margin-top: 70px;
583
+ text-align: center;
584
+ }
585
+ }
586
+
587
+ .form-group-footer-form {
588
+ position: fixed;
589
+ bottom: 0;
590
+ border-radius: 0px 0px 5px 5px;
591
+ width: 100%;
592
+ height: 61px;
593
+ transition: width 0.3s;
594
+ background-color: #fff;
595
+ box-shadow: 0px -2px 6px 0px rgba(92,100,113,0.11);
596
+ .sider-close {
597
+ background-color: #fff;
598
+ width: calc(100% - 103px) !important;
599
+ }
600
+ z-index: 999;
601
+ }
602
+ .form-group-footer {
603
+ .el-button {
604
+ margin: 14px 20px 0px 0px;
605
+ width: 90px;
606
+ height: 34px;
607
+ padding: 8px 12px;
608
+ font-size: 14px;
609
+ border-radius: 5px;
610
+ }
611
+ }
612
+ .form-item-text {
613
+ margin-left: 20px;
614
+ .el-form-item__label {
615
+ text-align: left;
616
+ font-size: 14px;
617
+ }
618
+ .el-form-item {
619
+ margin-bottom: 3px;
620
+ }
621
+ }
622
+
623
+ .el-button--primary {
624
+ background-color: #007aff;
625
+ border: 1px solid #007aff;
626
+ }
627
+ .el-button--default {
628
+ border: 1px solid #007aff;
629
+ color: #007aff;
630
+ }
631
+ .assist-button {
632
+ background: #fff;
633
+ border: 1px solid #dcdfe6;
634
+ color: #606266;
635
+ }
636
+
637
+ }
638
+
639
+ </style>