n20-common-lib 1.2.45 → 1.3.1

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 (316) hide show
  1. package/g6.js +197 -0
  2. package/package.json +19 -3
  3. package/src/assets/css/_coreLib.scss +1 -0
  4. package/src/assets/css/alert.scss +31 -0
  5. package/src/assets/css/cl-anchor.scss +18 -9
  6. package/src/assets/css/cl-approve-card.scss +12 -2
  7. package/src/assets/css/cl-dialog.scss +16 -1
  8. package/src/assets/css/cl-drag-list.scss +4 -2
  9. package/src/assets/css/cl-expandable-pane.scss +15 -3
  10. package/src/assets/css/cl-expandable.scss +5 -2
  11. package/src/assets/css/cl-file-upload-table.scss +22 -1
  12. package/src/assets/css/cl-form-item.scss +102 -8
  13. package/src/assets/css/cl-message.scss +87 -2
  14. package/src/assets/css/cl-pagination.scss +3 -1
  15. package/src/assets/css/cl-showcolumn.scss +18 -1
  16. package/src/assets/css/cl-statis.scss +14 -1
  17. package/src/assets/css/cl-tertiary-tab.scss +4 -2
  18. package/src/assets/css/cl-upload.scss +7 -0
  19. package/src/assets/css/el-button.scss +24 -9
  20. package/src/assets/css/el-table.scss +18 -0
  21. package/src/assets/css/element.dev.scss +1 -0
  22. package/src/assets/css/font-icon.scss +0 -1
  23. package/src/assets/css/normalize.scss +6 -6
  24. package/src/assets/css/plain-text.scss +138 -0
  25. package/src/assets/css/title-pop.scss +20 -1
  26. package/src/assets/svg/404.svg +1 -0
  27. package/src/assets/svg/addFile.svg +32 -0
  28. package/src/assets/svg/bug.svg +1 -0
  29. package/src/assets/svg/chart.svg +1 -0
  30. package/src/assets/svg/clipboard.svg +1 -0
  31. package/src/assets/svg/component.svg +1 -0
  32. package/src/assets/svg/dashboard.svg +1 -0
  33. package/src/assets/svg/deleteFile.svg +28 -0
  34. package/src/assets/svg/documentation.svg +1 -0
  35. package/src/assets/svg/drag.svg +1 -0
  36. package/src/assets/svg/edit.svg +1 -0
  37. package/src/assets/svg/education.svg +1 -0
  38. package/src/assets/svg/email.svg +1 -0
  39. package/src/assets/svg/example.svg +1 -0
  40. package/src/assets/svg/excel.svg +1 -0
  41. package/src/assets/svg/exit-fullscreen.svg +1 -0
  42. package/src/assets/svg/eye-open.svg +1 -0
  43. package/src/assets/svg/eye.svg +1 -0
  44. package/src/assets/svg/favorite.svg +1 -0
  45. package/src/assets/svg/favorite_active.svg +1 -0
  46. package/src/assets/svg/favorite_x400.svg +1 -0
  47. package/src/assets/svg/favorite_x400_active.svg +1 -0
  48. package/src/assets/svg/favorite_x400_blank.svg +1 -0
  49. package/src/assets/svg/filter.svg +16 -0
  50. package/src/assets/svg/filter@2x.png +0 -0
  51. package/src/assets/svg/filterActive.svg +16 -0
  52. package/src/assets/svg/filterClose@2x.png +0 -0
  53. package/src/assets/svg/form.svg +1 -0
  54. package/src/assets/svg/fullscreen.svg +1 -0
  55. package/src/assets/svg/guide.svg +1 -0
  56. package/src/assets/svg/hourglass.svg +19 -0
  57. package/src/assets/svg/icon.svg +1 -0
  58. package/src/assets/svg/international.svg +1 -0
  59. package/src/assets/svg/language.svg +1 -0
  60. package/src/assets/svg/left-dis.svg +1 -0
  61. package/src/assets/svg/left.svg +1 -0
  62. package/src/assets/svg/link.svg +1 -0
  63. package/src/assets/svg/list.svg +1 -0
  64. package/src/assets/svg/lock.svg +1 -0
  65. package/src/assets/svg/message-t.svg +1 -0
  66. package/src/assets/svg/money.svg +1 -0
  67. package/src/assets/svg/money3.svg +1 -0
  68. package/src/assets/svg/money4.svg +1 -0
  69. package/src/assets/svg/moneyTwo.svg +1 -0
  70. package/src/assets/svg/msg_white.svg +1 -0
  71. package/src/assets/svg/nested.svg +1 -0
  72. package/src/assets/svg/newsearch.svg +19 -0
  73. package/src/assets/svg/password.svg +1 -0
  74. package/src/assets/svg/pdf.svg +1 -0
  75. package/src/assets/svg/people.svg +1 -0
  76. package/src/assets/svg/peoples.svg +1 -0
  77. package/src/assets/svg/phone.svg +1 -0
  78. package/src/assets/svg/phone_msg.svg +1 -0
  79. package/src/assets/svg/qq.svg +1 -0
  80. package/src/assets/svg/right-dis.svg +1 -0
  81. package/src/assets/svg/right.svg +1 -0
  82. package/src/assets/svg/search.svg +1 -0
  83. package/src/assets/svg/searchActive.svg +19 -0
  84. package/src/assets/svg/shopping.svg +1 -0
  85. package/src/assets/svg/size.svg +1 -0
  86. package/src/assets/svg/skill.svg +1 -0
  87. package/src/assets/svg/star.svg +1 -0
  88. package/src/assets/svg/steam.svg +1 -0
  89. package/src/assets/svg/tab.svg +1 -0
  90. package/src/assets/svg/table.svg +1 -0
  91. package/src/assets/svg/theme.svg +1 -0
  92. package/src/assets/svg/tree-table.svg +1 -0
  93. package/src/assets/svg/tree.svg +1 -0
  94. package/src/assets/svg/user.svg +1 -0
  95. package/src/assets/svg/wechat.svg +1 -0
  96. package/src/assets/svg/z-left-2-dis.svg +1 -0
  97. package/src/assets/svg/z-left-2.svg +1 -0
  98. package/src/assets/svg/z-right-2-dis.svg +1 -0
  99. package/src/assets/svg/z-right-2.svg +1 -0
  100. package/src/assets/svg/z-right.svg +1 -0
  101. package/src/assets/svg/zip.svg +1 -0
  102. package/src/components/ApprovalButtons/index.vue +16 -9
  103. package/src/components/ApprovalCard/index.vue +18 -14
  104. package/src/components/Button/button-group.vue +52 -48
  105. package/src/components/Button/icon-group-button.vue +2 -0
  106. package/src/components/ChildRange/index.vue +202 -0
  107. package/src/components/ECharts/define.js +74 -0
  108. package/src/components/ECharts/index.vue +163 -0
  109. package/src/components/ECharts/mixins/resize.js +56 -0
  110. package/src/components/Empty/img/400.svg +102 -0
  111. package/src/components/Empty/img/401.svg +102 -0
  112. package/src/components/Empty/img/403.svg +102 -0
  113. package/src/components/Empty/img/405.svg +102 -0
  114. package/src/components/Empty/img/901.svg +96 -0
  115. package/src/components/Empty/img/902.svg +96 -0
  116. package/src/components/Empty/img/903.svg +96 -0
  117. package/src/components/Empty/img/904.svg +96 -0
  118. package/src/components/Empty/img/905.svg +96 -0
  119. package/src/components/Empty/img/906.svg +96 -0
  120. package/src/components/Empty/img/907.svg +96 -0
  121. package/src/components/Empty/index.vue +55 -0
  122. package/src/components/Expandable/main.vue +4 -1
  123. package/src/components/FileImport/index.vue +201 -0
  124. package/src/components/FileUploadTable/index.vue +15 -10
  125. package/src/components/Filters/index.vue +2 -2
  126. package/src/components/Filters/indexO.vue +1 -1
  127. package/src/components/InputSearch/index.vue +1 -1
  128. package/src/components/NstcG6Components/Calendar/index.js +8 -0
  129. package/src/components/NstcG6Components/Calendar/src/basic/month-table.vue +129 -0
  130. package/src/components/NstcG6Components/Calendar/src/basic/year-table.vue +126 -0
  131. package/src/components/NstcG6Components/Calendar/src/main.vue +442 -0
  132. package/src/components/NstcG6Components/DialogForm/index.js +8 -0
  133. package/src/components/NstcG6Components/DialogForm/src/demo/index.vue +56 -0
  134. package/src/components/NstcG6Components/DialogForm/src/main.vue +189 -0
  135. package/src/components/NstcG6Components/Form/A_DEMO/component/originalForm.vue +281 -0
  136. package/src/components/NstcG6Components/Form/A_DEMO/config/config_3.js +1222 -0
  137. package/src/components/NstcG6Components/Form/A_DEMO/index.vue +803 -0
  138. package/src/components/NstcG6Components/Form/AutocompleteCustom/index.vue +72 -0
  139. package/src/components/NstcG6Components/Form/BusinessSpecific/InputMultiple.vue +191 -0
  140. package/src/components/NstcG6Components/Form/BusinessSpecific/InputWithUnit.vue +128 -0
  141. package/src/components/NstcG6Components/Form/BusinessSpecific/SelectTreeDialog.vue +233 -0
  142. package/src/components/NstcG6Components/Form/BusinessSpecific/readme.md +7 -0
  143. package/src/components/NstcG6Components/Form/CascaderCustom/index.vue +101 -0
  144. package/src/components/NstcG6Components/Form/CheckboxCustom/index.vue +84 -0
  145. package/src/components/NstcG6Components/Form/Component.vue +661 -0
  146. package/src/components/NstcG6Components/Form/ComponentSecond.vue +650 -0
  147. package/src/components/NstcG6Components/Form/DatepickerCustom/index.vue +130 -0
  148. package/src/components/NstcG6Components/Form/InputAndDialog/index.js +15 -0
  149. package/src/components/NstcG6Components/Form/InputAndDialog/src/main.vue +395 -0
  150. package/src/components/NstcG6Components/Form/InputCustom/demo/index.vue +65 -0
  151. package/src/components/NstcG6Components/Form/InputCustom/index.vue +307 -0
  152. package/src/components/NstcG6Components/Form/IntervalinputCustom/demo/index.vue +31 -0
  153. package/src/components/NstcG6Components/Form/IntervalinputCustom/index.vue +118 -0
  154. package/src/components/NstcG6Components/Form/Item.vue +330 -0
  155. package/src/components/NstcG6Components/Form/ItemSecond.vue +269 -0
  156. package/src/components/NstcG6Components/Form/List.vue +146 -0
  157. package/src/components/NstcG6Components/Form/ListSecond.vue +130 -0
  158. package/src/components/NstcG6Components/Form/RadioCustom/index.vue +73 -0
  159. package/src/components/NstcG6Components/Form/SelectAccount/index.js +15 -0
  160. package/src/components/NstcG6Components/Form/SelectAccount/src/demo/index.vue +58 -0
  161. package/src/components/NstcG6Components/Form/SelectAccount/src/main.vue +283 -0
  162. package/src/components/NstcG6Components/Form/SelectAndDialog/index.js +15 -0
  163. package/src/components/NstcG6Components/Form/SelectAndDialog/src/main.vue +384 -0
  164. package/src/components/NstcG6Components/Form/SelectCashFlow/index.js +15 -0
  165. package/src/components/NstcG6Components/Form/SelectCashFlow/src/demo/index.vue +42 -0
  166. package/src/components/NstcG6Components/Form/SelectCashFlow/src/main.vue +126 -0
  167. package/src/components/NstcG6Components/Form/SelectCustom/demo/index.vue +82 -0
  168. package/src/components/NstcG6Components/Form/SelectCustom/index.vue +488 -0
  169. package/src/components/NstcG6Components/Form/SelectSubject/index.js +15 -0
  170. package/src/components/NstcG6Components/Form/SelectSubject/src/demo/index.vue +85 -0
  171. package/src/components/NstcG6Components/Form/SelectSubject/src/main.vue +182 -0
  172. package/src/components/NstcG6Components/Form/SelectindialogCustom/demo/index.vue +188 -0
  173. package/src/components/NstcG6Components/Form/SelectindialogCustom/index.vue +650 -0
  174. package/src/components/NstcG6Components/Form/SelectindialogCustom/install.js +7 -0
  175. package/src/components/NstcG6Components/Form/TableRadioCustom/demo/index.vue +53 -0
  176. package/src/components/NstcG6Components/Form/TableRadioCustom/index.vue +183 -0
  177. package/src/components/NstcG6Components/Form/TextCustom/index.vue +38 -0
  178. package/src/components/NstcG6Components/Form/UploadCustom/demo/index.vue +31 -0
  179. package/src/components/NstcG6Components/Form/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  180. package/src/components/NstcG6Components/Form/UploadCustom/index.vue +506 -0
  181. package/src/components/NstcG6Components/Form/configs.js +191 -0
  182. package/src/components/NstcG6Components/Form/configsSecond.js +161 -0
  183. package/src/components/NstcG6Components/Form/index.js +8 -0
  184. package/src/components/NstcG6Components/Form/index.scss +29 -0
  185. package/src/components/NstcG6Components/Form/payeePersonSelect/index.js +15 -0
  186. package/src/components/NstcG6Components/Form/payeePersonSelect/src/demo/index.vue +164 -0
  187. package/src/components/NstcG6Components/Form/payeePersonSelect/src/main.vue +185 -0
  188. package/src/components/NstcG6Components/Form/readme.txt +4 -0
  189. package/src/components/NstcG6Components/FormGroup/index.js +8 -0
  190. package/src/components/NstcG6Components/FormGroup/src/demo/config.js +23 -0
  191. package/src/components/NstcG6Components/FormGroup/src/demo/index.vue +85 -0
  192. package/src/components/NstcG6Components/FormGroup/src/main.vue +639 -0
  193. package/src/components/NstcG6Components/FormGroup/src/validate.js +23 -0
  194. package/src/components/NstcG6Components/InputTag/InputTag.vue +270 -0
  195. package/src/components/NstcG6Components/NstcApprovel/NstcApprovel.vue +25 -0
  196. package/src/components/NstcG6Components/NstcBackToTop/NstcBackToTop.vue +150 -0
  197. package/src/components/NstcG6Components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +119 -0
  198. package/src/components/NstcG6Components/NstcCharts/NstcCharts.vue +162 -0
  199. package/src/components/NstcG6Components/NstcCharts/define.js +74 -0
  200. package/src/components/NstcG6Components/NstcCharts/mixins/resize.js +56 -0
  201. package/src/components/NstcG6Components/NstcConfirm/NstcConfirm.vue +153 -0
  202. package/src/components/NstcG6Components/NstcConfirm/index.js +25 -0
  203. package/src/components/NstcG6Components/NstcDialog/NstcDialog.vue +185 -0
  204. package/src/components/NstcG6Components/NstcDialogForm/NstcDialogForm.vue +176 -0
  205. package/src/components/NstcG6Components/NstcDialogTable/NstcDialogTable.vue +282 -0
  206. package/src/components/NstcG6Components/NstcDropdown/NstcDropdown.vue +52 -0
  207. package/src/components/NstcG6Components/NstcDropdownTree/NstcDropdownTree.vue +392 -0
  208. package/src/components/NstcG6Components/NstcElectronicFile/NstcElectronicFile.vue +591 -0
  209. package/src/components/NstcG6Components/NstcExcelCustomImport/NstcExcelCustomImport.vue +475 -0
  210. package/src/components/NstcG6Components/NstcExcelCustomImport/img/upload@2x.png +0 -0
  211. package/src/components/NstcG6Components/NstcExcelExport/NstcExcelExport.vue +145 -0
  212. package/src/components/NstcG6Components/NstcExcelImport/NstcExcelImport.vue +1051 -0
  213. package/src/components/NstcG6Components/NstcExcelImport/img/upload@2x.png +0 -0
  214. package/src/components/NstcG6Components/NstcExcelImportN/NstcExcelImportN.vue +1168 -0
  215. package/src/components/NstcG6Components/NstcExpandCollapse/NstcExpandCollapse.vue +130 -0
  216. package/src/components/NstcG6Components/NstcExpandCollapse/index.scss +77 -0
  217. package/src/components/NstcG6Components/NstcFileUpload/NstcFileUpload.vue +1011 -0
  218. package/src/components/NstcG6Components/NstcFileUpload/img/addFile.svg +32 -0
  219. package/src/components/NstcG6Components/NstcFileUpload/img/delete.svg +24 -0
  220. package/src/components/NstcG6Components/NstcFileUpload/img/deleteFile.svg +28 -0
  221. package/src/components/NstcG6Components/NstcFileUpload/img/download.svg +24 -0
  222. package/src/components/NstcG6Components/NstcFileUpload/img/inputUpload.svg +30 -0
  223. package/src/components/NstcG6Components/NstcFileUpload/img/look-diabled.svg +24 -0
  224. package/src/components/NstcG6Components/NstcFileUpload/img/look.svg +24 -0
  225. package/src/components/NstcG6Components/NstcForm/A_DEMO/component/originalForm.vue +281 -0
  226. package/src/components/NstcG6Components/NstcForm/A_DEMO/config/config_3.js +1222 -0
  227. package/src/components/NstcG6Components/NstcForm/A_DEMO/index.vue +796 -0
  228. package/src/components/NstcG6Components/NstcForm/AutocompleteCustom/index.vue +68 -0
  229. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/InputMultiple.vue +191 -0
  230. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/InputWithUnit.vue +128 -0
  231. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +233 -0
  232. package/src/components/NstcG6Components/NstcForm/BusinessSpecific/readme.md +7 -0
  233. package/src/components/NstcG6Components/NstcForm/CascaderCustom/index.vue +101 -0
  234. package/src/components/NstcG6Components/NstcForm/CheckboxCustom/index.vue +84 -0
  235. package/src/components/NstcG6Components/NstcForm/Component.vue +684 -0
  236. package/src/components/NstcG6Components/NstcForm/ComponentSecond.vue +650 -0
  237. package/src/components/NstcG6Components/NstcForm/DatepickerCustom/index.vue +130 -0
  238. package/src/components/NstcG6Components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +389 -0
  239. package/src/components/NstcG6Components/NstcForm/InputCustom/index.vue +314 -0
  240. package/src/components/NstcG6Components/NstcForm/IntervalInputCustom/index.vue +116 -0
  241. package/src/components/NstcG6Components/NstcForm/Item.vue +327 -0
  242. package/src/components/NstcG6Components/NstcForm/ItemSecond.vue +269 -0
  243. package/src/components/NstcG6Components/NstcForm/List.vue +146 -0
  244. package/src/components/NstcG6Components/NstcForm/ListSecond.vue +130 -0
  245. package/src/components/NstcG6Components/NstcForm/RadioCustom/index.vue +73 -0
  246. package/src/components/NstcG6Components/NstcForm/SelectAccount/NstcSelectAccount.vue +334 -0
  247. package/src/components/NstcG6Components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +382 -0
  248. package/src/components/NstcG6Components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +123 -0
  249. package/src/components/NstcG6Components/NstcForm/SelectCustom/index.vue +460 -0
  250. package/src/components/NstcG6Components/NstcForm/SelectSubject/NstcSelectSubject.vue +185 -0
  251. package/src/components/NstcG6Components/NstcForm/SelectindialogCustom/index.vue +650 -0
  252. package/src/components/NstcG6Components/NstcForm/TableRadioCustom/index.vue +183 -0
  253. package/src/components/NstcG6Components/NstcForm/TextCustom/index.vue +38 -0
  254. package/src/components/NstcG6Components/NstcForm/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  255. package/src/components/NstcG6Components/NstcForm/UploadCustom/index.vue +483 -0
  256. package/src/components/NstcG6Components/NstcForm/configs.js +191 -0
  257. package/src/components/NstcG6Components/NstcForm/configsSecond.js +161 -0
  258. package/src/components/NstcG6Components/NstcForm/index.js +8 -0
  259. package/src/components/NstcG6Components/NstcForm/index.scss +29 -0
  260. package/src/components/NstcG6Components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +188 -0
  261. package/src/components/NstcG6Components/NstcForm/readme.txt +4 -0
  262. package/src/components/NstcG6Components/NstcPagination/NstcPagination.vue +430 -0
  263. package/src/components/NstcG6Components/NstcPagination/setPageNum.png +0 -0
  264. package/src/components/NstcG6Components/NstcPagination/setpagedefault.png +0 -0
  265. package/src/components/NstcG6Components/NstcScreenFull/NstcScreenFull.vue +70 -0
  266. package/src/components/NstcG6Components/NstcSelectTree/NstcSelectTree.vue +729 -0
  267. package/src/components/NstcG6Components/NstcSelectTreeList/NstcSelectTreeList.vue +676 -0
  268. package/src/components/NstcG6Components/NstcSticky/NstcSticky.vue +97 -0
  269. package/src/components/NstcG6Components/NstcSvgIcon/NstcSvgIcon.vue +77 -0
  270. package/src/components/NstcG6Components/NstcTab/NstcTab.vue +80 -0
  271. package/src/components/NstcG6Components/NstcTabWithBadge/NstcTabWithBadge.vue +45 -0
  272. package/src/components/NstcG6Components/NstcTabWithBadge/index.scss +31 -0
  273. package/src/components/NstcG6Components/NstcTable/ElTableColumnCustom/index.vue +292 -0
  274. package/src/components/NstcG6Components/NstcTable/NstcTable.vue +460 -0
  275. package/src/components/NstcG6Components/NstcTableSet/NstcTableSet.vue +801 -0
  276. package/src/components/NstcG6Components/NstcThemePicker/NstcThemePicker.vue +186 -0
  277. package/src/components/NstcG6Components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +330 -0
  278. package/src/components/NstcG6Components/NstcUploadExcel/NstcUploadExcel.vue +145 -0
  279. package/src/components/NstcG6Components/NstcWorkBench/NstcWorkBench.vue +167 -0
  280. package/src/components/NstcG6Components/Search/NstcSearch.vue +591 -0
  281. package/src/components/NstcG6Components/Search/src/demo/index copy.vue +101 -0
  282. package/src/components/NstcG6Components/Search/src/demo/index.vue +103 -0
  283. package/src/components/NstcG6Components/Search/src/main copy.vue +607 -0
  284. package/src/components/NstcG6Components/approvelTwo/main.vue +220 -0
  285. package/src/components/NstcG6Components/approvelTwo/progress.vue +154 -0
  286. package/src/components/PageHeader/index.vue +80 -0
  287. package/src/components/PlainText/PlainTextItem.vue +17 -0
  288. package/src/components/PlainText/index.vue +12 -0
  289. package/src/components/Search/index.vue +593 -0
  290. package/src/components/SelectTree/index.vue +1 -0
  291. package/src/components/ShowColumn/index.vue +1 -1
  292. package/src/components/Stamp/images/accounts.png +0 -0
  293. package/src/components/Stamp/images/cancellation.png +0 -0
  294. package/src/components/Stamp/images/clinch.png +0 -0
  295. package/src/components/Stamp/images/conclude.png +0 -0
  296. package/src/components/Stamp/images/efficacy.png +0 -0
  297. package/src/components/Stamp/images/termination.png +0 -0
  298. package/src/components/Stamp/index.vue +75 -0
  299. package/src/components/Statis/statisPopover.vue +1 -0
  300. package/src/components/Table/ThSelectHeader.vue +133 -0
  301. package/src/components/Table/index.vue +53 -3
  302. package/src/components/Upload/index.vue +6 -2
  303. package/src/directives/VCopy/index.js +60 -0
  304. package/src/directives/VNstcNumber/index.js +14 -0
  305. package/src/directives/VNstcNumber/temp.js +446 -0
  306. package/src/index.js +28 -1
  307. package/src/utils/dateAndValidator.js +629 -0
  308. package/src/utils/debounce.js +40 -0
  309. package/src/utils/mapper_aims.js +810 -0
  310. package/src/utils/parseTime.js +48 -0
  311. package/src/utils/validate/index.js +7 -0
  312. package/src/utils/vendor/Export2Excel.js +229 -0
  313. package/src/utils/vendor/Export2Zip.js +24 -0
  314. package/src/utils/vue-bus.js +5 -0
  315. package/style/index.css +1 -1
  316. package/style/index.css.map +1 -1
@@ -0,0 +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
+ }