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,1222 +1,1222 @@
1
- import { amountFormat } from '@/filters'
2
- import { yesOrNo } from '@/utils/eumn'
3
- import store from '@/store'
4
- import Vue from 'vue'
5
-
6
- const domestic = '国内通行证'
7
-
8
- const isRequired = true
9
-
10
- // 开证日期
11
- let temp_date_issueDate = ''
12
- // 开证金额
13
- let temp_blAmount = ''
14
-
15
- // 当前开证模式
16
- let current_open_model = ''
17
- // 当前子母证类型
18
- let current_open_type = ''
19
- function getTime(date) {
20
- if (date) {
21
- return new Date(date).getTime()
22
- } else {
23
- return 0
24
- }
25
- }
26
-
27
- const config = [
28
- {
29
- formConfig: [
30
- {
31
- mold: 'input',
32
- name: '变更原因',
33
- prop: 'modifyReason',
34
- placeholder: '请输入',
35
- renderable: false,
36
- isRequired
37
- },
38
- {
39
- mold: 'datepicker',
40
- name: '变更时间',
41
- prop: 'modifyDate',
42
- placeholder: '请输入',
43
- default: '',
44
- renderable: false,
45
- isRequired
46
- }
47
- ]
48
- },
49
- {
50
- title: '信用证基本信息',
51
- formConfig: [
52
- [{
53
- mold: 'selectindialog',
54
- name: '申请单',
55
- prop: 'applyId',
56
- url: '/api/nstc-lcms/open/apply/query',
57
- title: '申请单列表',
58
- valueKey: 'applyId',
59
- labelKey: 'applyId',
60
- showPagination: false,
61
- clearable: true,
62
- columns: [
63
- {
64
- label: '申请单号',
65
- prop: 'applyId'
66
- },
67
- {
68
- label: '国内/国际信用证',
69
- prop: 'creditKindLabel'
70
- },
71
- {
72
- label: '开证人',
73
- prop: 'appName'
74
- },
75
- {
76
- label: '受益人',
77
- prop: 'beneName'
78
- },
79
- {
80
- label: '币种',
81
- prop: 'currencyName'
82
- },
83
- {
84
- label: '开证金额',
85
- prop: 'blAmount',
86
- formatter: function(row, column, cellValue, index) {
87
- console.log(index)
88
- return amountFormat(cellValue, 2) + ' 元'
89
- }
90
- },
91
- {
92
- label: '开证日期',
93
- prop: 'issueDate'
94
- },
95
- {
96
- label: '有效期',
97
- prop: 'dueDate'
98
- }
99
- ],
100
- async queryDataFormatter(data) {
101
- const keys = ['currency', 'CreditKind']
102
- const { lcms } = await store.dispatch('common/getEnums', { lcms: keys })
103
- function getLabel(arr, key) {
104
- const temp = arr.filter(i => { return i.value === key })
105
- return temp.length ? temp[0].label : ''
106
- }
107
- return data.map(i => {
108
- i[`currencyName`] = getLabel(lcms[`currency`], i[`currency`])
109
- i[`creditKindLabel`] = getLabel(lcms[`CreditKind`], i[`creditKind`])
110
- return i
111
- })
112
- },
113
- link: [
114
- 'creditKind', // 国内国际信用证
115
- 'creditType', // 信用证类型
116
- 'payDateType', // 兑用方式
117
- 'forwardPayDateDay', // 远期天数
118
- 'payType', // 即期/远期
119
- 'currency', // 币种
120
- 'blAmount', // 开证金额
121
- 'issueDate', // 开证日期
122
- 'floatProp', // 金额浮动比例
123
- 'dueDate', // 有效期
124
- 'advisingOpenBankName', // 通知行
125
- 'recourse', // 是否有追索权
126
- 'creditNature', // 是否可以撤销
127
- 'partialShipments', // 是否分装
128
- 'transhipment', // 是否转船
129
- 'endPlace', // 目的港
130
- 'startPlace', // 起运港
131
- 'outletid'
132
- ].map(prop => ({
133
- prop,
134
- handler: (val) => {
135
- if (!val || !val.applyId) {
136
- return {}
137
- } else if (['outletid'].includes(prop)) {
138
- // 特殊处理的
139
- return {
140
- default: {
141
- assId: val.outletid + '',
142
- assBankName: val[`outletName`],
143
- bankCode: val[`bank`]
144
- }
145
- }
146
- } else {
147
- return {
148
- default: val[prop]
149
- }
150
- }
151
- }
152
- }))
153
- }],
154
- [
155
- {
156
- mold: 'select',
157
- name: '国内/国际信用证',
158
- prop: 'creditKind',
159
- options: [],
160
- default: 'ILC',
161
- link: ['advisingBankName', 'openModel', 'creditType'].map(prop => ({
162
- prop,
163
- handler: async(val) => {
164
- if (prop === 'advisingBankName') {
165
- return {
166
- name: val === 'DLC' ? '转开/通知行' : '通知行'
167
- }
168
- } else if (prop === 'openModel') {
169
- return {
170
- renderable: val === 'ILC'
171
- }
172
- } else if (prop === 'creditType') {
173
- const { lcms: { CreditType }} = await store.dispatch('common/getEnums', { lcms: ['CreditType'] })
174
- CreditType[1].disabled = val === 'DLC'
175
- return {
176
- options: CreditType.filter(i => { return !i.disabled })
177
- }
178
- }
179
- }
180
- }))
181
- },
182
- {
183
- mold: 'select',
184
- name: '开证模式',
185
- prop: 'openModel',
186
- options: [],
187
- default: 3,
188
- isRequired,
189
- // renderable: false,
190
- link: [
191
- {
192
- mold: 'select',
193
- name: '母/子',
194
- prop: 'openType',
195
- width: 120,
196
- default: 0,
197
- isRequired,
198
- labelWidth: '84px',
199
- options: [
200
- { label: '母', value: 0 },
201
- { label: '子', value: 1 }
202
- ],
203
- // 这个函数只有link里面才有这样的函数
204
- change(val) {
205
- current_open_type = val
206
- },
207
- handler(val) {
208
- current_open_model = val
209
- return {
210
- renderable: val === 1
211
- }
212
- }
213
- }
214
- ]
215
- }
216
- ],
217
- [
218
- {
219
- mold: 'input',
220
- name: '信用证号',
221
- prop: 'blNo',
222
- isNotZh: true,
223
- isRequired
224
- },
225
- {
226
- mold: 'select',
227
- name: '开证方式',
228
- prop: 'openWay',
229
- options: [],
230
- default: 1,
231
- isRequired,
232
- link: [{
233
- mold: 'selectindialog',
234
- name: '代开申请人',
235
- prop: 'openInputor',
236
- width: 120,
237
- labelWidth: '1',
238
- handler(val) {
239
- return {
240
- renderable: val === 2
241
- }
242
- },
243
- url: '/api/nstc-lcms/open/relCorp/query',
244
- isRequired,
245
- labelKey: 'relCorpFullName',
246
- valueKey: 'relCorpId',
247
- formLabelWidth: 96,
248
- formConfig: [
249
- {
250
- mold: 'input',
251
- name: '单位名称',
252
- prop: 'relCorpFullName',
253
- width: '180px'
254
- },
255
- {
256
- mold: 'input',
257
- name: '组织编号',
258
- prop: 'relCorpNo',
259
- width: '180px'
260
- }
261
- ],
262
- columns: [
263
- {
264
- label: '组织编号',
265
- prop: 'relCorpNo'
266
- },
267
- {
268
- label: '单位中文名称',
269
- prop: 'relCorpFullName'
270
- },
271
- {
272
- label: '单位简称',
273
- prop: 'relCorpName'
274
- },
275
- {
276
- label: '单位类型',
277
- prop: 'relCorpType'
278
- }
279
- ]
280
- }]
281
- }
282
- ],
283
- [
284
- {
285
- mold: 'selectindialog',
286
- name: '开证行名称',
287
- title: '选择银行',
288
- prop: 'outletid',
289
- url: '/api/nstc-lcms/open/association/list/query',
290
- remote: true,
291
- clearable: true,
292
- valueKey: 'assId',
293
- labelKey: 'assBankName',
294
- formLabelWidth: 96,
295
- query: 'assBankName',
296
- isRequired,
297
- formConfig: [
298
- {
299
- mold: 'input',
300
- name: '网点编号',
301
- prop: 'assBankCode',
302
- width: '180px'
303
- },
304
- {
305
- mold: 'input',
306
- name: '网点名称',
307
- prop: 'assBankName',
308
- width: '180px'
309
- }
310
- ],
311
- columns: [
312
- {
313
- label: '网点编号',
314
- prop: 'assBankCode'
315
- },
316
- {
317
- label: '网点名称',
318
- prop: 'assBankName'
319
- }
320
- ]
321
- },
322
- {
323
- mold: 'select',
324
- name: '信用证类型',
325
- prop: 'creditType',
326
- options: [],
327
- default: 'DOCUMENTARY',
328
- isRequired
329
- }
330
- ],
331
- [
332
- {
333
- mold: 'select',
334
- name: '即期/远期',
335
- prop: 'payType',
336
- options: [],
337
- default: 'FORWARD',
338
- isRequired,
339
- link: [{
340
- mold: 'input',
341
- name: '远期天数',
342
- prop: 'forwardPayDateDay',
343
- numberRule: { max: 10000, min: 0, precision: 0 },
344
- class: ['nstc-rate-num', 'forward-date-box'],
345
- width: 120,
346
- unit: '天',
347
- isRequired,
348
- labelWidth: '50',
349
- handler(val) {
350
- return {
351
- renderable: val === 'FORWARD'
352
- }
353
- }
354
- }, {
355
- prop: 'payDateType',
356
- async handler(val) {
357
- let def = null
358
- let options = []
359
-
360
- if (val) {
361
- const { lcms: { PayDateType }} = await store.dispatch('common/getEnums', { lcms: ['PayDateType'] })
362
-
363
- if (val === 'FORWARD') {
364
- options = PayDateType.filter(item => !['due'].includes(item.value))
365
- } else {
366
- options = PayDateType.filter(item => !['delay', 'acceptance'].includes(item.value))
367
- }
368
- def = options[0].value
369
- }
370
-
371
- return {
372
- default: def,
373
- options
374
- }
375
- }
376
- }]
377
- },
378
- {
379
- mold: 'select',
380
- name: '兑用方式',
381
- prop: 'payDateType',
382
- options: [],
383
- default: 'negotiation',
384
- isRequired
385
- }
386
- ],
387
- [
388
- {
389
- mold: 'select',
390
- name: '币种',
391
- prop: 'currency',
392
- options: [],
393
- isRequired
394
- },
395
- {
396
- mold: 'input',
397
- name: '开证金额',
398
- prop: 'blAmount',
399
- placeholder: '请保留两位小数',
400
- numberRule: { min: 0, precision: 2, isMoney: true },
401
- type: 'number',
402
- isRequired,
403
- link: [{
404
- prop: 'issueFee',
405
- handler(val) {
406
- temp_blAmount = val
407
- return val
408
- }
409
- }]
410
- }
411
- ],
412
- [
413
- {
414
- mold: 'datepicker',
415
- name: '开证日期',
416
- prop: 'issueDate',
417
- isRequired,
418
- link: [
419
- {
420
- prop: 'dueDate',
421
- handler(val) {
422
- if (!val) {
423
- return {
424
- default: null
425
- }
426
- }
427
- temp_date_issueDate = val
428
- return {
429
- pickerOptions: {
430
- disabledDate(time) {
431
- return time.getTime() < new Date(val).getTime()
432
- }
433
- }
434
- }
435
- }
436
- },
437
- {
438
- prop: 'lastShipmentDate',
439
- handler(val) {
440
- console.log('set time')
441
- if (!val) {
442
- return {
443
- default: null
444
- }
445
- }
446
- return {
447
- pickerOptions: {
448
- disabledDate(time) {
449
- return time.getTime() < new Date(val).getTime()
450
- }
451
- }
452
- }
453
- }
454
- }
455
- ]
456
- },
457
- {
458
- mold: 'input',
459
- name: '金额浮动比例',
460
- prop: 'floatProp',
461
- placeholder: '请保留两位小数',
462
- numberRule: { max: 100, min: 0, precision: 2 },
463
- class: ['nstc-rate-num'],
464
- default: 0,
465
- unit: '%',
466
- isRequired
467
- }
468
- ],
469
- [
470
- {
471
- mold: 'datepicker',
472
- name: '有效期',
473
- prop: 'dueDate',
474
- isRequired,
475
- link: [
476
- {
477
- prop: 'lastShipmentDate',
478
- handler(val) {
479
- if (!val) {
480
- return {}
481
- }
482
- return {
483
- pickerOptions: {
484
- disabledDate(time) {
485
- const min = new Date(temp_date_issueDate).getTime()
486
- const max = new Date(val).getTime()
487
- const s = time.getTime()
488
- return temp_date_issueDate ? ((s < min) || (s > max)) : (s > max)
489
- }
490
- }
491
- }
492
- }
493
- }
494
- ]
495
- },
496
- {
497
- mold: 'input',
498
- name: '通知行',
499
- prop: 'advisingOpenBankName'
500
- }
501
- ],
502
- [
503
- {
504
- mold: 'radio',
505
- name: '是否有追索权',
506
- prop: 'recourse',
507
- options: yesOrNo,
508
- default: 1,
509
- isRequired
510
- },
511
- {
512
- mold: 'radio',
513
- name: '是否可撤销',
514
- prop: 'creditNature',
515
- options: [
516
- { label: '是', value: 'ALLOWUNDO' },
517
- { label: '否', value: 'NOTUNDO' }
518
- ],
519
- default: 'ALLOWUNDO',
520
- isRequired
521
- }
522
- ],
523
- [
524
- {
525
- mold: 'radio',
526
- name: '是否允许分装',
527
- prop: 'partialShipments',
528
- options: yesOrNo,
529
- default: 1,
530
- isRequired
531
- },
532
- {
533
- mold: 'radio',
534
- name: '是否允许转船',
535
- prop: 'transhipment',
536
- options: yesOrNo,
537
- default: 1,
538
- isRequired
539
- }
540
- ],
541
- [
542
- {
543
- mold: 'input',
544
- name: '目的港',
545
- prop: 'endPlace'
546
- },
547
- {
548
- mold: 'input',
549
- name: '起运港',
550
- prop: 'startPlace'
551
- }
552
- ],
553
- [
554
- {
555
- mold: 'datepicker',
556
- name: '最迟装运期',
557
- prop: 'lastShipmentDate',
558
- default: null,
559
- isRequired
560
- },
561
- {
562
- mold: 'input',
563
- name: '开证行电话',
564
- prop: 'appBankTel',
565
- maxLength: 11
566
- }
567
- ],
568
- [
569
- {
570
- mold: 'input',
571
- name: '开证行地址',
572
- prop: 'appBankAddr',
573
- maxLength: 96
574
- },
575
- {
576
- mold: 'input',
577
- name: '开证行邮编',
578
- prop: 'appBankPostCode',
579
- maxlength: 9
580
- }
581
- ],
582
- [
583
- {
584
- mold: 'input',
585
- name: '开证行传真',
586
- prop: 'appBankFax'
587
- },
588
- {
589
- mold: 'input',
590
- name: '转开/通知行号',
591
- prop: 'advisingOpenBankNo',
592
- maxLength: 7
593
- }
594
- ]
595
- ]
596
- },
597
- {
598
- title: '开证人/受益人信息',
599
- formConfig: [
600
- [
601
- {
602
- mold: 'selectindialog',
603
- title: '选择单位',
604
- name: '开证人-名称',
605
- prop: 'appNo',
606
- isRequired,
607
- remote: true,
608
- clearable: true,
609
- showPagination: true,
610
- placeholder: '请输入/选择',
611
- url: '/api/nstc-lcms/open/client/query',
612
- labelKey: 'cltName',
613
- valueKey: 'cltNo',
614
- query: 'cltName',
615
- queryParams: {
616
- cltNoFull: ''
617
- },
618
- formLabelWidth: 96,
619
- width: '290px',
620
- formConfig: [
621
- {
622
- mold: 'input',
623
- name: '单位编号',
624
- prop: 'cltNo',
625
- width: '180px'
626
- },
627
- {
628
- mold: 'input',
629
- name: '单位名称',
630
- prop: 'cltName',
631
- width: '180px'
632
- }
633
- ],
634
- columns: [
635
- {
636
- label: '单位编号',
637
- prop: 'cltNo'
638
- },
639
- {
640
- label: '单位名称',
641
- prop: 'cltName'
642
- }
643
- ],
644
- link: [{
645
- prop: 'appAccountNo',
646
- handler(val) {
647
- let queryParams = {}
648
-
649
- if (val) {
650
- queryParams.cltNo = val.cltNo
651
- // 通过bus将参数抛出去
652
- }
653
- Vue.prototype.$bus.$emit('import_lcms_register_search_bene', val ? val.cltNo : '')
654
-
655
- return {
656
- queryParams,
657
- disabled: !val
658
- }
659
- }
660
- }
661
- ]
662
- },
663
- {
664
- mold: 'selectindialog',
665
- title: '受益人',
666
- name: '受益人-名称',
667
- prop: 'beneNo',
668
- placeholder: '请输入/选择',
669
- url: '/api/nstc-lcms/open/relCorp/query',
670
- labelKey: 'relCorpFullName',
671
- valueKey: 'relCorpNo',
672
- query: 'relCorpFullName',
673
- queryParams: {
674
- cltNoFull: ''
675
- },
676
- isRequired,
677
- remote: true,
678
- clearable: true,
679
- showPagination: true,
680
- formLabelWidth: 96,
681
- formConfig: [
682
- {
683
- mold: 'input',
684
- name: '单位中文名称',
685
- prop: 'relCorpFullName',
686
- width: '180px'
687
- },
688
- {
689
- mold: 'input',
690
- name: '组织编号',
691
- prop: 'relCorpNo',
692
- width: '180px'
693
- }
694
- ],
695
- columns: [
696
- {
697
- label: '组织编号',
698
- prop: 'relCorpNo'
699
- },
700
- {
701
- label: '单位中文名称',
702
- prop: 'relCorpFullName'
703
- },
704
- {
705
- label: '单位简称',
706
- prop: 'relCorpName'
707
- },
708
- {
709
- label: '单位类型',
710
- prop: 'relCorpTypeName'
711
- }
712
- ],
713
- link: [{
714
- prop: 'beneAccountNo',
715
- handler(val) {
716
- let queryParams = {}
717
-
718
- if (val) {
719
- queryParams.relCorpId = val.relCorpId
720
- // 通过bus将参数抛出去
721
- }
722
- Vue.prototype.$bus.$emit('import_lcms_register_search_app', val ? val.cltNo : '')
723
-
724
- return {
725
- queryParams,
726
- disabled: !val
727
- }
728
- }
729
- }
730
- ],
731
- // 当开证模式前对背 且为母证, 表格里面只能选成员单位
732
- async queryDataFormatter(data) {
733
- if (+current_open_model === 1 && current_open_type === 1) {
734
- data = data.filter(i => {
735
- return +i[`relCorpType`] === 1
736
- })
737
- }
738
- return data
739
- }
740
- }
741
- ],
742
- [
743
- {
744
- mold: 'selectindialog',
745
- title: '账号选择',
746
- name: '开证人-账号',
747
- remote: true,
748
- clearable: true,
749
- prop: 'appAccountNo',
750
- placeholder: '请输入/选择',
751
- url: '/api/nstc-lcms/open/account/query',
752
- labelKey: 'accountNo',
753
- valueKey: 'accountId',
754
- query: 'accountNo',
755
- formLabelWidth: 96,
756
- showPagination: true,
757
- disabled: true,
758
- formConfig: [
759
- {
760
- mold: 'input',
761
- name: '账号',
762
- prop: 'accountNo',
763
- width: '180px'
764
- },
765
- {
766
- mold: 'select',
767
- name: '金融机构',
768
- prop: 'bankNo',
769
- options: [],
770
- width: '180px'
771
- }
772
- ],
773
- columns: [
774
- {
775
- label: '账号',
776
- prop: 'accountNo'
777
- },
778
- {
779
- label: '户名',
780
- prop: 'accountName'
781
- },
782
- {
783
- label: '助记名',
784
- prop: 'memoryName'
785
- },
786
- {
787
- label: '币种',
788
- prop: 'currencyName'
789
- },
790
- {
791
- label: '金融机构',
792
- prop: 'bankName'
793
- }
794
- ],
795
- link: [{
796
- prop: 'appBankNo',
797
- handler(val) {
798
- if (val) {
799
- const def = val ? val.bankNo : null
800
- return {
801
- default: def
802
- }
803
- }
804
- }
805
- }]
806
- },
807
- {
808
- mold: 'selectindialog',
809
- title: '账号选择',
810
- name: '受益人-账号',
811
- remote: true,
812
- clearable: true,
813
- prop: 'beneAccountNo',
814
- placeholder: '请输入/选择',
815
- url: '/api/nstc-lcms/open/relAccount/query',
816
- labelKey: 'accountNo',
817
- valueKey: 'relAccId',
818
- query: 'accountNo',
819
- formLabelWidth: 96,
820
- showPagination: true,
821
- disabled: true,
822
- formConfig: [
823
- {
824
- mold: 'input',
825
- name: '账号',
826
- prop: 'accountNo',
827
- width: '180px'
828
- },
829
- {
830
- mold: 'select',
831
- name: '金融机构',
832
- prop: 'bankNo',
833
- options: [],
834
- width: '180px'
835
- }
836
- ],
837
- columns: [
838
- {
839
- label: '账号',
840
- prop: 'accountNo'
841
- },
842
- {
843
- label: '户名',
844
- prop: 'accountName'
845
- },
846
- {
847
- label: '助记名',
848
- prop: 'memoryName'
849
- },
850
- {
851
- label: '币种',
852
- prop: 'currencyName'
853
- },
854
- {
855
- label: '金融机构',
856
- prop: 'bankName'
857
- }
858
- ],
859
- link: [{
860
- prop: 'beneOpenBankNo',
861
- handler(val) {
862
- const def = val ? val.bankNo : null
863
-
864
- return {
865
- default: def
866
- }
867
- }
868
- }]
869
- }
870
- ],
871
- [
872
- {
873
- mold: 'select',
874
- name: '开证人-开户行',
875
- prop: 'appBankNo',
876
- width: 294,
877
- filterable: true,
878
- disabled: true
879
- },
880
- {
881
- mold: 'select',
882
- name: '受益人-开户行',
883
- width: 294,
884
- filterable: true,
885
- prop: 'beneOpenBankNo',
886
- disabled: true
887
- }
888
- ],
889
- [
890
- {
891
- mold: 'input',
892
- name: '开证人-地址',
893
- prop: 'appAddr',
894
- renderable: false
895
- },
896
- {
897
- mold: 'input',
898
- name: '受益人-地址',
899
- prop: 'beneAddr',
900
- renderable: false
901
- }
902
- ],
903
- [
904
- {
905
- mold: 'input',
906
- name: '开证人-邮编',
907
- prop: 'appPostCode',
908
- renderable: false,
909
- maxlength: 9
910
- },
911
- {
912
- mold: 'input',
913
- name: '受益人-邮编',
914
- prop: 'benePostCode',
915
- renderable: false,
916
- maxlength: 9
917
- }
918
- ]
919
- ]
920
- },
921
- {
922
- title: '信用证业务信息',
923
- formConfig: [
924
- [
925
- {
926
- mold: 'input',
927
- name: '合同编号',
928
- prop: 'contractNo'
929
- },
930
- {
931
- mold: 'input',
932
- name: '合同金额',
933
- prop: 'contractAmount',
934
- numberRule: { min: 0, precision: 2, isMoney: true },
935
- isMoney: true
936
- }
937
- ],
938
- [
939
- {
940
- mold: 'input',
941
- name: '货物描述',
942
- prop: 'description',
943
- width: 836,
944
- isRequired
945
- }
946
- ],
947
- [
948
- {
949
- mold: 'input',
950
- name: '其他条款',
951
- prop: 'otherClause',
952
- width: 836
953
- }
954
- ]
955
- ]
956
- },
957
- {
958
- title: '开证成本',
959
- formConfig: [
960
- [
961
- {
962
- mold: 'input',
963
- name: '开证费率',
964
- prop: 'openRate',
965
- class: ['nstc-rate-num'],
966
- unit: '%',
967
- numberRule: { max: 100, min: 0, precision: 6 },
968
- link: [
969
- {
970
- prop: 'issueFee',
971
- handler(val) {
972
- return {
973
- default: temp_blAmount ? Number(temp_blAmount * val / 100).toFixed(2) : ''
974
- }
975
- }
976
- }
977
- ]
978
- },
979
- {
980
- mold: 'input',
981
- name: '开证手续费',
982
- prop: 'issueFee',
983
- numberRule: { min: 0, precision: 2, isMoney: true }
984
- }
985
- ],
986
- [
987
- {
988
- mold: 'input',
989
- name: '综合成本',
990
- prop: 'synCost',
991
- numberRule: { min: 0, precision: 2, isMoney: true },
992
- isRequired
993
- },
994
- {
995
- mold: 'input',
996
- name: '其他费用',
997
- numberRule: { min: 0, precision: 2, isMoney: true },
998
- prop: 'otherAmount'
999
- }
1000
- ]
1001
- ]
1002
- },
1003
- {
1004
- title: '预算现金流',
1005
- formConfig: [
1006
- [
1007
- {
1008
- mold: 'selectindialog',
1009
- name: '预算科目',
1010
- prop: 'budgetKmcode',
1011
- unit: '元',
1012
- formConfig: [
1013
- {
1014
- mold: 'input',
1015
- name: '单位编号',
1016
- prop: 'cltNo'
1017
- },
1018
- {
1019
- mold: 'intervalinput',
1020
- name: '单位名称',
1021
- prop: 'cltName'
1022
- }
1023
- ],
1024
- columns: [
1025
- {
1026
- label: '单位编号',
1027
- prop: 'cltNo'
1028
- },
1029
- {
1030
- label: '单位名称',
1031
- prop: 'cltName'
1032
- }
1033
- ]
1034
- },
1035
- {
1036
- mold: 'input',
1037
- name: '现金流',
1038
- prop: 'flowno'
1039
- }
1040
- ]
1041
- ]
1042
- }
1043
- ]
1044
-
1045
- const rules = config
1046
- .reduce((prev, next) => ([
1047
- ...prev,
1048
- ...next.formConfig
1049
- ]), [])
1050
- .reduce((prev, next) => ([
1051
- ...prev,
1052
- ...Array.isArray(next) ? next : [next]
1053
- ]), [])
1054
- .reduce((prev, next) => {
1055
- if (next.link) {
1056
- const links = next.link.filter(item => !!item.mold)
1057
-
1058
- return [
1059
- ...prev,
1060
- next,
1061
- ...links
1062
- ]
1063
- }
1064
-
1065
- return [
1066
- ...prev,
1067
- next
1068
- ]
1069
- }, [])
1070
- .filter(item => item.isRequired)
1071
- .reduce((res, curr) => {
1072
- const isInput = curr.mold === 'input' || (curr.prop === 'dueDate' || 'lastShipmentDate')
1073
-
1074
- return {
1075
- ...res,
1076
- [curr.prop]: {
1077
- required: true,
1078
- message: `请${isInput ? '输入' : '选择'}${curr.name}`,
1079
- trigger: isInput ? 'blur' : 'change'
1080
- // whitespace: isInput || undefined,
1081
- // ...isInput
1082
- // ? {
1083
- // transform(val) {
1084
- // return typeof val === 'string' ? val.trim() : val
1085
- // }
1086
- // }
1087
- // : {}
1088
- }
1089
- }
1090
- }, {})
1091
-
1092
- const paymentPlanColumns = [
1093
- {
1094
- width: 80,
1095
- label: '操作',
1096
- component: {
1097
- template: `<div>
1098
- <i
1099
- v-if="scope.row.addFlag"
1100
- class="el-icon-circle-plus-outline guarantee-icon"
1101
- style="margin-right: 10px"
1102
- @click.stop="addRepaymentPlan"
1103
- />
1104
- <i class="el-icon-delete guarantee-icon" @click="deleteRepaymentPlan(scope.$index)" />
1105
- </div>`, // <!-- v-if="scope.addFlag"-->
1106
- methods: {
1107
- addRepaymentPlan() {
1108
- this.$bus.$emit('addRepaymentPlan', {})
1109
- },
1110
- deleteRepaymentPlan(index) {
1111
- this.$bus.$emit('deleteRepaymentPlan', { index })
1112
- }
1113
- }
1114
- }
1115
- },
1116
- {
1117
- label: '付款计划编号',
1118
- minWidth: 100,
1119
- prop: 'creditPayNo'
1120
- },
1121
- {
1122
- label: '计划状态',
1123
- prop: 'planState',
1124
- formatter(row, column, val) {
1125
- return val ? '已执行' : '未执行'
1126
- }
1127
- },
1128
- {
1129
- label: '是否已关联到单',
1130
- minWidth: 110,
1131
- prop: 'isRelation',
1132
- formatter(row, column, val) {
1133
- return val === 1 ? '是' : '否'
1134
- }
1135
- },
1136
- {
1137
- label: '最迟装运日',
1138
- width: 150,
1139
- prop: 'latestShipmentDate',
1140
- component: {
1141
- template: `<el-date-picker
1142
- v-model='scope.row.latestShipmentDate'
1143
- :disabled="scope.row.disableFlag || scope.row.isEdit"
1144
- :pickerOptions="scope.row.pickerOptions"
1145
- value-format="yyyy-MM-dd"
1146
- style='width: 100%'
1147
- placeholder="请选择"
1148
- />`
1149
- }
1150
- },
1151
- {
1152
- label: '预计装运日',
1153
- width: 150,
1154
- prop: 'expectShipmentDate',
1155
- component: {
1156
- template: `<el-date-picker
1157
- v-model='scope.row.expectShipmentDate'
1158
- :disabled="!scope.row.latestShipmentDate || scope.row.isEdit"
1159
- :pickerOptions="pickerOptions(scope.row.issueDateTemp, scope.row.latestShipmentDate)"
1160
- value-format="yyyy-MM-dd"
1161
- style='width: 100%'
1162
- placeholder="请选择"
1163
- />`,
1164
- methods: {
1165
- pickerOptions(start, end) {
1166
- return {
1167
- disabledDate(time) {
1168
- const f = start ? time.getTime() < getTime(start) : false
1169
- const s = end ? time.getTime() > getTime(end) : false
1170
- return (f || s)
1171
- }
1172
- }
1173
- }
1174
- }
1175
- }
1176
- },
1177
- {
1178
- label: '预计付款日',
1179
- width: 150,
1180
- prop: 'expectPayDate',
1181
- component: {
1182
- template: `<el-date-picker
1183
- v-model='scope.row.expectPayDate'
1184
- :disabled="!scope.row.expectShipmentDate || scope.row.isEdit"
1185
- :pickerOptions="pickerOptions(scope.row.expectShipmentDate)"
1186
- value-format="yyyy-MM-dd"
1187
- style='width: 100%'
1188
- placeholder="请选择" />`,
1189
- methods: {
1190
- pickerOptions(val) {
1191
- return {
1192
- disabledDate(time) {
1193
- return time.getTime() < new Date(val).getTime()
1194
- }
1195
- }
1196
- }
1197
- }
1198
- }
1199
- },
1200
- {
1201
- label: '预计付款金额',
1202
- minWidth: 100,
1203
- prop: 'expectPayAmount',
1204
- component: {
1205
- template: `<el-input
1206
- v-model='scope.row.expectPayAmount'
1207
- v-nstc-number="{min:0,precision:2,isMoney:true}"
1208
- :disabled='scope.row.isEdit'
1209
- type="number"
1210
- class="nstc-amount-num"
1211
- placeholder="请输入"
1212
- />`
1213
- }
1214
- }
1215
- ]
1216
-
1217
- export {
1218
- domestic,
1219
- config,
1220
- rules,
1221
- paymentPlanColumns
1222
- }
1
+ import { amountFormat } from '@/filters'
2
+ import { yesOrNo } from '@/utils/eumn'
3
+ import store from '@/store'
4
+ import Vue from 'vue'
5
+
6
+ const domestic = '国内通行证'
7
+
8
+ const isRequired = true
9
+
10
+ // 开证日期
11
+ let temp_date_issueDate = ''
12
+ // 开证金额
13
+ let temp_blAmount = ''
14
+
15
+ // 当前开证模式
16
+ let current_open_model = ''
17
+ // 当前子母证类型
18
+ let current_open_type = ''
19
+ function getTime(date) {
20
+ if (date) {
21
+ return new Date(date).getTime()
22
+ } else {
23
+ return 0
24
+ }
25
+ }
26
+
27
+ const config = [
28
+ {
29
+ formConfig: [
30
+ {
31
+ mold: 'input',
32
+ name: '变更原因',
33
+ prop: 'modifyReason',
34
+ placeholder: '请输入',
35
+ renderable: false,
36
+ isRequired
37
+ },
38
+ {
39
+ mold: 'datepicker',
40
+ name: '变更时间',
41
+ prop: 'modifyDate',
42
+ placeholder: '请输入',
43
+ default: '',
44
+ renderable: false,
45
+ isRequired
46
+ }
47
+ ]
48
+ },
49
+ {
50
+ title: '信用证基本信息',
51
+ formConfig: [
52
+ [{
53
+ mold: 'selectindialog',
54
+ name: '申请单',
55
+ prop: 'applyId',
56
+ url: '/api/nstc-lcms/open/apply/query',
57
+ title: '申请单列表',
58
+ valueKey: 'applyId',
59
+ labelKey: 'applyId',
60
+ showPagination: false,
61
+ clearable: true,
62
+ columns: [
63
+ {
64
+ label: '申请单号',
65
+ prop: 'applyId'
66
+ },
67
+ {
68
+ label: '国内/国际信用证',
69
+ prop: 'creditKindLabel'
70
+ },
71
+ {
72
+ label: '开证人',
73
+ prop: 'appName'
74
+ },
75
+ {
76
+ label: '受益人',
77
+ prop: 'beneName'
78
+ },
79
+ {
80
+ label: '币种',
81
+ prop: 'currencyName'
82
+ },
83
+ {
84
+ label: '开证金额',
85
+ prop: 'blAmount',
86
+ formatter: function(row, column, cellValue, index) {
87
+ console.log(index)
88
+ return amountFormat(cellValue, 2) + ' 元'
89
+ }
90
+ },
91
+ {
92
+ label: '开证日期',
93
+ prop: 'issueDate'
94
+ },
95
+ {
96
+ label: '有效期',
97
+ prop: 'dueDate'
98
+ }
99
+ ],
100
+ async queryDataFormatter(data) {
101
+ const keys = ['currency', 'CreditKind']
102
+ const { lcms } = await store.dispatch('common/getEnums', { lcms: keys })
103
+ function getLabel(arr, key) {
104
+ const temp = arr.filter(i => { return i.value === key })
105
+ return temp.length ? temp[0].label : ''
106
+ }
107
+ return data.map(i => {
108
+ i[`currencyName`] = getLabel(lcms[`currency`], i[`currency`])
109
+ i[`creditKindLabel`] = getLabel(lcms[`CreditKind`], i[`creditKind`])
110
+ return i
111
+ })
112
+ },
113
+ link: [
114
+ 'creditKind', // 国内国际信用证
115
+ 'creditType', // 信用证类型
116
+ 'payDateType', // 兑用方式
117
+ 'forwardPayDateDay', // 远期天数
118
+ 'payType', // 即期/远期
119
+ 'currency', // 币种
120
+ 'blAmount', // 开证金额
121
+ 'issueDate', // 开证日期
122
+ 'floatProp', // 金额浮动比例
123
+ 'dueDate', // 有效期
124
+ 'advisingOpenBankName', // 通知行
125
+ 'recourse', // 是否有追索权
126
+ 'creditNature', // 是否可以撤销
127
+ 'partialShipments', // 是否分装
128
+ 'transhipment', // 是否转船
129
+ 'endPlace', // 目的港
130
+ 'startPlace', // 起运港
131
+ 'outletid'
132
+ ].map(prop => ({
133
+ prop,
134
+ handler: (val) => {
135
+ if (!val || !val.applyId) {
136
+ return {}
137
+ } else if (['outletid'].includes(prop)) {
138
+ // 特殊处理的
139
+ return {
140
+ default: {
141
+ assId: val.outletid + '',
142
+ assBankName: val[`outletName`],
143
+ bankCode: val[`bank`]
144
+ }
145
+ }
146
+ } else {
147
+ return {
148
+ default: val[prop]
149
+ }
150
+ }
151
+ }
152
+ }))
153
+ }],
154
+ [
155
+ {
156
+ mold: 'select',
157
+ name: '国内/国际信用证',
158
+ prop: 'creditKind',
159
+ options: [],
160
+ default: 'ILC',
161
+ link: ['advisingBankName', 'openModel', 'creditType'].map(prop => ({
162
+ prop,
163
+ handler: async(val) => {
164
+ if (prop === 'advisingBankName') {
165
+ return {
166
+ name: val === 'DLC' ? '转开/通知行' : '通知行'
167
+ }
168
+ } else if (prop === 'openModel') {
169
+ return {
170
+ renderable: val === 'ILC'
171
+ }
172
+ } else if (prop === 'creditType') {
173
+ const { lcms: { CreditType }} = await store.dispatch('common/getEnums', { lcms: ['CreditType'] })
174
+ CreditType[1].disabled = val === 'DLC'
175
+ return {
176
+ options: CreditType.filter(i => { return !i.disabled })
177
+ }
178
+ }
179
+ }
180
+ }))
181
+ },
182
+ {
183
+ mold: 'select',
184
+ name: '开证模式',
185
+ prop: 'openModel',
186
+ options: [],
187
+ default: 3,
188
+ isRequired,
189
+ // renderable: false,
190
+ link: [
191
+ {
192
+ mold: 'select',
193
+ name: '母/子',
194
+ prop: 'openType',
195
+ width: 120,
196
+ default: 0,
197
+ isRequired,
198
+ labelWidth: '84px',
199
+ options: [
200
+ { label: '母', value: 0 },
201
+ { label: '子', value: 1 }
202
+ ],
203
+ // 这个函数只有link里面才有这样的函数
204
+ change(val) {
205
+ current_open_type = val
206
+ },
207
+ handler(val) {
208
+ current_open_model = val
209
+ return {
210
+ renderable: val === 1
211
+ }
212
+ }
213
+ }
214
+ ]
215
+ }
216
+ ],
217
+ [
218
+ {
219
+ mold: 'input',
220
+ name: '信用证号',
221
+ prop: 'blNo',
222
+ isNotZh: true,
223
+ isRequired
224
+ },
225
+ {
226
+ mold: 'select',
227
+ name: '开证方式',
228
+ prop: 'openWay',
229
+ options: [],
230
+ default: 1,
231
+ isRequired,
232
+ link: [{
233
+ mold: 'selectindialog',
234
+ name: '代开申请人',
235
+ prop: 'openInputor',
236
+ width: 120,
237
+ labelWidth: '1',
238
+ handler(val) {
239
+ return {
240
+ renderable: val === 2
241
+ }
242
+ },
243
+ url: '/api/nstc-lcms/open/relCorp/query',
244
+ isRequired,
245
+ labelKey: 'relCorpFullName',
246
+ valueKey: 'relCorpId',
247
+ formLabelWidth: 96,
248
+ formConfig: [
249
+ {
250
+ mold: 'input',
251
+ name: '单位名称',
252
+ prop: 'relCorpFullName',
253
+ width: '180px'
254
+ },
255
+ {
256
+ mold: 'input',
257
+ name: '组织编号',
258
+ prop: 'relCorpNo',
259
+ width: '180px'
260
+ }
261
+ ],
262
+ columns: [
263
+ {
264
+ label: '组织编号',
265
+ prop: 'relCorpNo'
266
+ },
267
+ {
268
+ label: '单位中文名称',
269
+ prop: 'relCorpFullName'
270
+ },
271
+ {
272
+ label: '单位简称',
273
+ prop: 'relCorpName'
274
+ },
275
+ {
276
+ label: '单位类型',
277
+ prop: 'relCorpType'
278
+ }
279
+ ]
280
+ }]
281
+ }
282
+ ],
283
+ [
284
+ {
285
+ mold: 'selectindialog',
286
+ name: '开证行名称',
287
+ title: '选择银行',
288
+ prop: 'outletid',
289
+ url: '/api/nstc-lcms/open/association/list/query',
290
+ remote: true,
291
+ clearable: true,
292
+ valueKey: 'assId',
293
+ labelKey: 'assBankName',
294
+ formLabelWidth: 96,
295
+ query: 'assBankName',
296
+ isRequired,
297
+ formConfig: [
298
+ {
299
+ mold: 'input',
300
+ name: '网点编号',
301
+ prop: 'assBankCode',
302
+ width: '180px'
303
+ },
304
+ {
305
+ mold: 'input',
306
+ name: '网点名称',
307
+ prop: 'assBankName',
308
+ width: '180px'
309
+ }
310
+ ],
311
+ columns: [
312
+ {
313
+ label: '网点编号',
314
+ prop: 'assBankCode'
315
+ },
316
+ {
317
+ label: '网点名称',
318
+ prop: 'assBankName'
319
+ }
320
+ ]
321
+ },
322
+ {
323
+ mold: 'select',
324
+ name: '信用证类型',
325
+ prop: 'creditType',
326
+ options: [],
327
+ default: 'DOCUMENTARY',
328
+ isRequired
329
+ }
330
+ ],
331
+ [
332
+ {
333
+ mold: 'select',
334
+ name: '即期/远期',
335
+ prop: 'payType',
336
+ options: [],
337
+ default: 'FORWARD',
338
+ isRequired,
339
+ link: [{
340
+ mold: 'input',
341
+ name: '远期天数',
342
+ prop: 'forwardPayDateDay',
343
+ numberRule: { max: 10000, min: 0, precision: 0 },
344
+ class: ['nstc-rate-num', 'forward-date-box'],
345
+ width: 120,
346
+ unit: '天',
347
+ isRequired,
348
+ labelWidth: '50',
349
+ handler(val) {
350
+ return {
351
+ renderable: val === 'FORWARD'
352
+ }
353
+ }
354
+ }, {
355
+ prop: 'payDateType',
356
+ async handler(val) {
357
+ let def = null
358
+ let options = []
359
+
360
+ if (val) {
361
+ const { lcms: { PayDateType }} = await store.dispatch('common/getEnums', { lcms: ['PayDateType'] })
362
+
363
+ if (val === 'FORWARD') {
364
+ options = PayDateType.filter(item => !['due'].includes(item.value))
365
+ } else {
366
+ options = PayDateType.filter(item => !['delay', 'acceptance'].includes(item.value))
367
+ }
368
+ def = options[0].value
369
+ }
370
+
371
+ return {
372
+ default: def,
373
+ options
374
+ }
375
+ }
376
+ }]
377
+ },
378
+ {
379
+ mold: 'select',
380
+ name: '兑用方式',
381
+ prop: 'payDateType',
382
+ options: [],
383
+ default: 'negotiation',
384
+ isRequired
385
+ }
386
+ ],
387
+ [
388
+ {
389
+ mold: 'select',
390
+ name: '币种',
391
+ prop: 'currency',
392
+ options: [],
393
+ isRequired
394
+ },
395
+ {
396
+ mold: 'input',
397
+ name: '开证金额',
398
+ prop: 'blAmount',
399
+ placeholder: '请保留两位小数',
400
+ numberRule: { min: 0, precision: 2, isMoney: true },
401
+ type: 'number',
402
+ isRequired,
403
+ link: [{
404
+ prop: 'issueFee',
405
+ handler(val) {
406
+ temp_blAmount = val
407
+ return val
408
+ }
409
+ }]
410
+ }
411
+ ],
412
+ [
413
+ {
414
+ mold: 'datepicker',
415
+ name: '开证日期',
416
+ prop: 'issueDate',
417
+ isRequired,
418
+ link: [
419
+ {
420
+ prop: 'dueDate',
421
+ handler(val) {
422
+ if (!val) {
423
+ return {
424
+ default: null
425
+ }
426
+ }
427
+ temp_date_issueDate = val
428
+ return {
429
+ pickerOptions: {
430
+ disabledDate(time) {
431
+ return time.getTime() < new Date(val).getTime()
432
+ }
433
+ }
434
+ }
435
+ }
436
+ },
437
+ {
438
+ prop: 'lastShipmentDate',
439
+ handler(val) {
440
+ console.log('set time')
441
+ if (!val) {
442
+ return {
443
+ default: null
444
+ }
445
+ }
446
+ return {
447
+ pickerOptions: {
448
+ disabledDate(time) {
449
+ return time.getTime() < new Date(val).getTime()
450
+ }
451
+ }
452
+ }
453
+ }
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ mold: 'input',
459
+ name: '金额浮动比例',
460
+ prop: 'floatProp',
461
+ placeholder: '请保留两位小数',
462
+ numberRule: { max: 100, min: 0, precision: 2 },
463
+ class: ['nstc-rate-num'],
464
+ default: 0,
465
+ unit: '%',
466
+ isRequired
467
+ }
468
+ ],
469
+ [
470
+ {
471
+ mold: 'datepicker',
472
+ name: '有效期',
473
+ prop: 'dueDate',
474
+ isRequired,
475
+ link: [
476
+ {
477
+ prop: 'lastShipmentDate',
478
+ handler(val) {
479
+ if (!val) {
480
+ return {}
481
+ }
482
+ return {
483
+ pickerOptions: {
484
+ disabledDate(time) {
485
+ const min = new Date(temp_date_issueDate).getTime()
486
+ const max = new Date(val).getTime()
487
+ const s = time.getTime()
488
+ return temp_date_issueDate ? ((s < min) || (s > max)) : (s > max)
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+ ]
495
+ },
496
+ {
497
+ mold: 'input',
498
+ name: '通知行',
499
+ prop: 'advisingOpenBankName'
500
+ }
501
+ ],
502
+ [
503
+ {
504
+ mold: 'radio',
505
+ name: '是否有追索权',
506
+ prop: 'recourse',
507
+ options: yesOrNo,
508
+ default: 1,
509
+ isRequired
510
+ },
511
+ {
512
+ mold: 'radio',
513
+ name: '是否可撤销',
514
+ prop: 'creditNature',
515
+ options: [
516
+ { label: '是', value: 'ALLOWUNDO' },
517
+ { label: '否', value: 'NOTUNDO' }
518
+ ],
519
+ default: 'ALLOWUNDO',
520
+ isRequired
521
+ }
522
+ ],
523
+ [
524
+ {
525
+ mold: 'radio',
526
+ name: '是否允许分装',
527
+ prop: 'partialShipments',
528
+ options: yesOrNo,
529
+ default: 1,
530
+ isRequired
531
+ },
532
+ {
533
+ mold: 'radio',
534
+ name: '是否允许转船',
535
+ prop: 'transhipment',
536
+ options: yesOrNo,
537
+ default: 1,
538
+ isRequired
539
+ }
540
+ ],
541
+ [
542
+ {
543
+ mold: 'input',
544
+ name: '目的港',
545
+ prop: 'endPlace'
546
+ },
547
+ {
548
+ mold: 'input',
549
+ name: '起运港',
550
+ prop: 'startPlace'
551
+ }
552
+ ],
553
+ [
554
+ {
555
+ mold: 'datepicker',
556
+ name: '最迟装运期',
557
+ prop: 'lastShipmentDate',
558
+ default: null,
559
+ isRequired
560
+ },
561
+ {
562
+ mold: 'input',
563
+ name: '开证行电话',
564
+ prop: 'appBankTel',
565
+ maxLength: 11
566
+ }
567
+ ],
568
+ [
569
+ {
570
+ mold: 'input',
571
+ name: '开证行地址',
572
+ prop: 'appBankAddr',
573
+ maxLength: 96
574
+ },
575
+ {
576
+ mold: 'input',
577
+ name: '开证行邮编',
578
+ prop: 'appBankPostCode',
579
+ maxlength: 9
580
+ }
581
+ ],
582
+ [
583
+ {
584
+ mold: 'input',
585
+ name: '开证行传真',
586
+ prop: 'appBankFax'
587
+ },
588
+ {
589
+ mold: 'input',
590
+ name: '转开/通知行号',
591
+ prop: 'advisingOpenBankNo',
592
+ maxLength: 7
593
+ }
594
+ ]
595
+ ]
596
+ },
597
+ {
598
+ title: '开证人/受益人信息',
599
+ formConfig: [
600
+ [
601
+ {
602
+ mold: 'selectindialog',
603
+ title: '选择单位',
604
+ name: '开证人-名称',
605
+ prop: 'appNo',
606
+ isRequired,
607
+ remote: true,
608
+ clearable: true,
609
+ showPagination: true,
610
+ placeholder: '请输入/选择',
611
+ url: '/api/nstc-lcms/open/client/query',
612
+ labelKey: 'cltName',
613
+ valueKey: 'cltNo',
614
+ query: 'cltName',
615
+ queryParams: {
616
+ cltNoFull: ''
617
+ },
618
+ formLabelWidth: 96,
619
+ width: '290px',
620
+ formConfig: [
621
+ {
622
+ mold: 'input',
623
+ name: '单位编号',
624
+ prop: 'cltNo',
625
+ width: '180px'
626
+ },
627
+ {
628
+ mold: 'input',
629
+ name: '单位名称',
630
+ prop: 'cltName',
631
+ width: '180px'
632
+ }
633
+ ],
634
+ columns: [
635
+ {
636
+ label: '单位编号',
637
+ prop: 'cltNo'
638
+ },
639
+ {
640
+ label: '单位名称',
641
+ prop: 'cltName'
642
+ }
643
+ ],
644
+ link: [{
645
+ prop: 'appAccountNo',
646
+ handler(val) {
647
+ let queryParams = {}
648
+
649
+ if (val) {
650
+ queryParams.cltNo = val.cltNo
651
+ // 通过bus将参数抛出去
652
+ }
653
+ Vue.prototype.$bus.$emit('import_lcms_register_search_bene', val ? val.cltNo : '')
654
+
655
+ return {
656
+ queryParams,
657
+ disabled: !val
658
+ }
659
+ }
660
+ }
661
+ ]
662
+ },
663
+ {
664
+ mold: 'selectindialog',
665
+ title: '受益人',
666
+ name: '受益人-名称',
667
+ prop: 'beneNo',
668
+ placeholder: '请输入/选择',
669
+ url: '/api/nstc-lcms/open/relCorp/query',
670
+ labelKey: 'relCorpFullName',
671
+ valueKey: 'relCorpNo',
672
+ query: 'relCorpFullName',
673
+ queryParams: {
674
+ cltNoFull: ''
675
+ },
676
+ isRequired,
677
+ remote: true,
678
+ clearable: true,
679
+ showPagination: true,
680
+ formLabelWidth: 96,
681
+ formConfig: [
682
+ {
683
+ mold: 'input',
684
+ name: '单位中文名称',
685
+ prop: 'relCorpFullName',
686
+ width: '180px'
687
+ },
688
+ {
689
+ mold: 'input',
690
+ name: '组织编号',
691
+ prop: 'relCorpNo',
692
+ width: '180px'
693
+ }
694
+ ],
695
+ columns: [
696
+ {
697
+ label: '组织编号',
698
+ prop: 'relCorpNo'
699
+ },
700
+ {
701
+ label: '单位中文名称',
702
+ prop: 'relCorpFullName'
703
+ },
704
+ {
705
+ label: '单位简称',
706
+ prop: 'relCorpName'
707
+ },
708
+ {
709
+ label: '单位类型',
710
+ prop: 'relCorpTypeName'
711
+ }
712
+ ],
713
+ link: [{
714
+ prop: 'beneAccountNo',
715
+ handler(val) {
716
+ let queryParams = {}
717
+
718
+ if (val) {
719
+ queryParams.relCorpId = val.relCorpId
720
+ // 通过bus将参数抛出去
721
+ }
722
+ Vue.prototype.$bus.$emit('import_lcms_register_search_app', val ? val.cltNo : '')
723
+
724
+ return {
725
+ queryParams,
726
+ disabled: !val
727
+ }
728
+ }
729
+ }
730
+ ],
731
+ // 当开证模式前对背 且为母证, 表格里面只能选成员单位
732
+ async queryDataFormatter(data) {
733
+ if (+current_open_model === 1 && current_open_type === 1) {
734
+ data = data.filter(i => {
735
+ return +i[`relCorpType`] === 1
736
+ })
737
+ }
738
+ return data
739
+ }
740
+ }
741
+ ],
742
+ [
743
+ {
744
+ mold: 'selectindialog',
745
+ title: '账号选择',
746
+ name: '开证人-账号',
747
+ remote: true,
748
+ clearable: true,
749
+ prop: 'appAccountNo',
750
+ placeholder: '请输入/选择',
751
+ url: '/api/nstc-lcms/open/account/query',
752
+ labelKey: 'accountNo',
753
+ valueKey: 'accountId',
754
+ query: 'accountNo',
755
+ formLabelWidth: 96,
756
+ showPagination: true,
757
+ disabled: true,
758
+ formConfig: [
759
+ {
760
+ mold: 'input',
761
+ name: '账号',
762
+ prop: 'accountNo',
763
+ width: '180px'
764
+ },
765
+ {
766
+ mold: 'select',
767
+ name: '金融机构',
768
+ prop: 'bankNo',
769
+ options: [],
770
+ width: '180px'
771
+ }
772
+ ],
773
+ columns: [
774
+ {
775
+ label: '账号',
776
+ prop: 'accountNo'
777
+ },
778
+ {
779
+ label: '户名',
780
+ prop: 'accountName'
781
+ },
782
+ {
783
+ label: '助记名',
784
+ prop: 'memoryName'
785
+ },
786
+ {
787
+ label: '币种',
788
+ prop: 'currencyName'
789
+ },
790
+ {
791
+ label: '金融机构',
792
+ prop: 'bankName'
793
+ }
794
+ ],
795
+ link: [{
796
+ prop: 'appBankNo',
797
+ handler(val) {
798
+ if (val) {
799
+ const def = val ? val.bankNo : null
800
+ return {
801
+ default: def
802
+ }
803
+ }
804
+ }
805
+ }]
806
+ },
807
+ {
808
+ mold: 'selectindialog',
809
+ title: '账号选择',
810
+ name: '受益人-账号',
811
+ remote: true,
812
+ clearable: true,
813
+ prop: 'beneAccountNo',
814
+ placeholder: '请输入/选择',
815
+ url: '/api/nstc-lcms/open/relAccount/query',
816
+ labelKey: 'accountNo',
817
+ valueKey: 'relAccId',
818
+ query: 'accountNo',
819
+ formLabelWidth: 96,
820
+ showPagination: true,
821
+ disabled: true,
822
+ formConfig: [
823
+ {
824
+ mold: 'input',
825
+ name: '账号',
826
+ prop: 'accountNo',
827
+ width: '180px'
828
+ },
829
+ {
830
+ mold: 'select',
831
+ name: '金融机构',
832
+ prop: 'bankNo',
833
+ options: [],
834
+ width: '180px'
835
+ }
836
+ ],
837
+ columns: [
838
+ {
839
+ label: '账号',
840
+ prop: 'accountNo'
841
+ },
842
+ {
843
+ label: '户名',
844
+ prop: 'accountName'
845
+ },
846
+ {
847
+ label: '助记名',
848
+ prop: 'memoryName'
849
+ },
850
+ {
851
+ label: '币种',
852
+ prop: 'currencyName'
853
+ },
854
+ {
855
+ label: '金融机构',
856
+ prop: 'bankName'
857
+ }
858
+ ],
859
+ link: [{
860
+ prop: 'beneOpenBankNo',
861
+ handler(val) {
862
+ const def = val ? val.bankNo : null
863
+
864
+ return {
865
+ default: def
866
+ }
867
+ }
868
+ }]
869
+ }
870
+ ],
871
+ [
872
+ {
873
+ mold: 'select',
874
+ name: '开证人-开户行',
875
+ prop: 'appBankNo',
876
+ width: 294,
877
+ filterable: true,
878
+ disabled: true
879
+ },
880
+ {
881
+ mold: 'select',
882
+ name: '受益人-开户行',
883
+ width: 294,
884
+ filterable: true,
885
+ prop: 'beneOpenBankNo',
886
+ disabled: true
887
+ }
888
+ ],
889
+ [
890
+ {
891
+ mold: 'input',
892
+ name: '开证人-地址',
893
+ prop: 'appAddr',
894
+ renderable: false
895
+ },
896
+ {
897
+ mold: 'input',
898
+ name: '受益人-地址',
899
+ prop: 'beneAddr',
900
+ renderable: false
901
+ }
902
+ ],
903
+ [
904
+ {
905
+ mold: 'input',
906
+ name: '开证人-邮编',
907
+ prop: 'appPostCode',
908
+ renderable: false,
909
+ maxlength: 9
910
+ },
911
+ {
912
+ mold: 'input',
913
+ name: '受益人-邮编',
914
+ prop: 'benePostCode',
915
+ renderable: false,
916
+ maxlength: 9
917
+ }
918
+ ]
919
+ ]
920
+ },
921
+ {
922
+ title: '信用证业务信息',
923
+ formConfig: [
924
+ [
925
+ {
926
+ mold: 'input',
927
+ name: '合同编号',
928
+ prop: 'contractNo'
929
+ },
930
+ {
931
+ mold: 'input',
932
+ name: '合同金额',
933
+ prop: 'contractAmount',
934
+ numberRule: { min: 0, precision: 2, isMoney: true },
935
+ isMoney: true
936
+ }
937
+ ],
938
+ [
939
+ {
940
+ mold: 'input',
941
+ name: '货物描述',
942
+ prop: 'description',
943
+ width: 836,
944
+ isRequired
945
+ }
946
+ ],
947
+ [
948
+ {
949
+ mold: 'input',
950
+ name: '其他条款',
951
+ prop: 'otherClause',
952
+ width: 836
953
+ }
954
+ ]
955
+ ]
956
+ },
957
+ {
958
+ title: '开证成本',
959
+ formConfig: [
960
+ [
961
+ {
962
+ mold: 'input',
963
+ name: '开证费率',
964
+ prop: 'openRate',
965
+ class: ['nstc-rate-num'],
966
+ unit: '%',
967
+ numberRule: { max: 100, min: 0, precision: 6 },
968
+ link: [
969
+ {
970
+ prop: 'issueFee',
971
+ handler(val) {
972
+ return {
973
+ default: temp_blAmount ? Number(temp_blAmount * val / 100).toFixed(2) : ''
974
+ }
975
+ }
976
+ }
977
+ ]
978
+ },
979
+ {
980
+ mold: 'input',
981
+ name: '开证手续费',
982
+ prop: 'issueFee',
983
+ numberRule: { min: 0, precision: 2, isMoney: true }
984
+ }
985
+ ],
986
+ [
987
+ {
988
+ mold: 'input',
989
+ name: '综合成本',
990
+ prop: 'synCost',
991
+ numberRule: { min: 0, precision: 2, isMoney: true },
992
+ isRequired
993
+ },
994
+ {
995
+ mold: 'input',
996
+ name: '其他费用',
997
+ numberRule: { min: 0, precision: 2, isMoney: true },
998
+ prop: 'otherAmount'
999
+ }
1000
+ ]
1001
+ ]
1002
+ },
1003
+ {
1004
+ title: '预算现金流',
1005
+ formConfig: [
1006
+ [
1007
+ {
1008
+ mold: 'selectindialog',
1009
+ name: '预算科目',
1010
+ prop: 'budgetKmcode',
1011
+ unit: '元',
1012
+ formConfig: [
1013
+ {
1014
+ mold: 'input',
1015
+ name: '单位编号',
1016
+ prop: 'cltNo'
1017
+ },
1018
+ {
1019
+ mold: 'intervalinput',
1020
+ name: '单位名称',
1021
+ prop: 'cltName'
1022
+ }
1023
+ ],
1024
+ columns: [
1025
+ {
1026
+ label: '单位编号',
1027
+ prop: 'cltNo'
1028
+ },
1029
+ {
1030
+ label: '单位名称',
1031
+ prop: 'cltName'
1032
+ }
1033
+ ]
1034
+ },
1035
+ {
1036
+ mold: 'input',
1037
+ name: '现金流',
1038
+ prop: 'flowno'
1039
+ }
1040
+ ]
1041
+ ]
1042
+ }
1043
+ ]
1044
+
1045
+ const rules = config
1046
+ .reduce((prev, next) => ([
1047
+ ...prev,
1048
+ ...next.formConfig
1049
+ ]), [])
1050
+ .reduce((prev, next) => ([
1051
+ ...prev,
1052
+ ...Array.isArray(next) ? next : [next]
1053
+ ]), [])
1054
+ .reduce((prev, next) => {
1055
+ if (next.link) {
1056
+ const links = next.link.filter(item => !!item.mold)
1057
+
1058
+ return [
1059
+ ...prev,
1060
+ next,
1061
+ ...links
1062
+ ]
1063
+ }
1064
+
1065
+ return [
1066
+ ...prev,
1067
+ next
1068
+ ]
1069
+ }, [])
1070
+ .filter(item => item.isRequired)
1071
+ .reduce((res, curr) => {
1072
+ const isInput = curr.mold === 'input' || (curr.prop === 'dueDate' || 'lastShipmentDate')
1073
+
1074
+ return {
1075
+ ...res,
1076
+ [curr.prop]: {
1077
+ required: true,
1078
+ message: `请${isInput ? '输入' : '选择'}${curr.name}`,
1079
+ trigger: isInput ? 'blur' : 'change'
1080
+ // whitespace: isInput || undefined,
1081
+ // ...isInput
1082
+ // ? {
1083
+ // transform(val) {
1084
+ // return typeof val === 'string' ? val.trim() : val
1085
+ // }
1086
+ // }
1087
+ // : {}
1088
+ }
1089
+ }
1090
+ }, {})
1091
+
1092
+ const paymentPlanColumns = [
1093
+ {
1094
+ width: 80,
1095
+ label: '操作',
1096
+ component: {
1097
+ template: `<div>
1098
+ <i
1099
+ v-if="scope.row.addFlag"
1100
+ class="el-icon-circle-plus-outline guarantee-icon"
1101
+ style="margin-right: 10px"
1102
+ @click.stop="addRepaymentPlan"
1103
+ />
1104
+ <i class="el-icon-delete guarantee-icon" @click="deleteRepaymentPlan(scope.$index)" />
1105
+ </div>`, // <!-- v-if="scope.addFlag"-->
1106
+ methods: {
1107
+ addRepaymentPlan() {
1108
+ this.$bus.$emit('addRepaymentPlan', {})
1109
+ },
1110
+ deleteRepaymentPlan(index) {
1111
+ this.$bus.$emit('deleteRepaymentPlan', { index })
1112
+ }
1113
+ }
1114
+ }
1115
+ },
1116
+ {
1117
+ label: '付款计划编号',
1118
+ minWidth: 100,
1119
+ prop: 'creditPayNo'
1120
+ },
1121
+ {
1122
+ label: '计划状态',
1123
+ prop: 'planState',
1124
+ formatter(row, column, val) {
1125
+ return val ? '已执行' : '未执行'
1126
+ }
1127
+ },
1128
+ {
1129
+ label: '是否已关联到单',
1130
+ minWidth: 110,
1131
+ prop: 'isRelation',
1132
+ formatter(row, column, val) {
1133
+ return val === 1 ? '是' : '否'
1134
+ }
1135
+ },
1136
+ {
1137
+ label: '最迟装运日',
1138
+ width: 150,
1139
+ prop: 'latestShipmentDate',
1140
+ component: {
1141
+ template: `<el-date-picker
1142
+ v-model='scope.row.latestShipmentDate'
1143
+ :disabled="scope.row.disableFlag || scope.row.isEdit"
1144
+ :pickerOptions="scope.row.pickerOptions"
1145
+ value-format="yyyy-MM-dd"
1146
+ style='width: 100%'
1147
+ placeholder="请选择"
1148
+ />`
1149
+ }
1150
+ },
1151
+ {
1152
+ label: '预计装运日',
1153
+ width: 150,
1154
+ prop: 'expectShipmentDate',
1155
+ component: {
1156
+ template: `<el-date-picker
1157
+ v-model='scope.row.expectShipmentDate'
1158
+ :disabled="!scope.row.latestShipmentDate || scope.row.isEdit"
1159
+ :pickerOptions="pickerOptions(scope.row.issueDateTemp, scope.row.latestShipmentDate)"
1160
+ value-format="yyyy-MM-dd"
1161
+ style='width: 100%'
1162
+ placeholder="请选择"
1163
+ />`,
1164
+ methods: {
1165
+ pickerOptions(start, end) {
1166
+ return {
1167
+ disabledDate(time) {
1168
+ const f = start ? time.getTime() < getTime(start) : false
1169
+ const s = end ? time.getTime() > getTime(end) : false
1170
+ return (f || s)
1171
+ }
1172
+ }
1173
+ }
1174
+ }
1175
+ }
1176
+ },
1177
+ {
1178
+ label: '预计付款日',
1179
+ width: 150,
1180
+ prop: 'expectPayDate',
1181
+ component: {
1182
+ template: `<el-date-picker
1183
+ v-model='scope.row.expectPayDate'
1184
+ :disabled="!scope.row.expectShipmentDate || scope.row.isEdit"
1185
+ :pickerOptions="pickerOptions(scope.row.expectShipmentDate)"
1186
+ value-format="yyyy-MM-dd"
1187
+ style='width: 100%'
1188
+ placeholder="请选择" />`,
1189
+ methods: {
1190
+ pickerOptions(val) {
1191
+ return {
1192
+ disabledDate(time) {
1193
+ return time.getTime() < new Date(val).getTime()
1194
+ }
1195
+ }
1196
+ }
1197
+ }
1198
+ }
1199
+ },
1200
+ {
1201
+ label: '预计付款金额',
1202
+ minWidth: 100,
1203
+ prop: 'expectPayAmount',
1204
+ component: {
1205
+ template: `<el-input
1206
+ v-model='scope.row.expectPayAmount'
1207
+ v-nstc-number="{min:0,precision:2,isMoney:true}"
1208
+ :disabled='scope.row.isEdit'
1209
+ type="number"
1210
+ class="nstc-amount-num"
1211
+ placeholder="请输入"
1212
+ />`
1213
+ }
1214
+ }
1215
+ ]
1216
+
1217
+ export {
1218
+ domestic,
1219
+ config,
1220
+ rules,
1221
+ paymentPlanColumns
1222
+ }