n20-common-lib 1.3.9 → 1.3.12

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 (287) hide show
  1. package/nstc-g6/assets/svg/404.svg +1 -0
  2. package/nstc-g6/assets/svg/addFile.svg +32 -0
  3. package/nstc-g6/assets/svg/bug.svg +1 -0
  4. package/nstc-g6/assets/svg/chart.svg +1 -0
  5. package/nstc-g6/assets/svg/clipboard.svg +1 -0
  6. package/nstc-g6/assets/svg/component.svg +1 -0
  7. package/nstc-g6/assets/svg/dashboard.svg +1 -0
  8. package/nstc-g6/assets/svg/deleteFile.svg +28 -0
  9. package/nstc-g6/assets/svg/documentation.svg +1 -0
  10. package/nstc-g6/assets/svg/drag.svg +1 -0
  11. package/nstc-g6/assets/svg/edit.svg +1 -0
  12. package/nstc-g6/assets/svg/education.svg +1 -0
  13. package/nstc-g6/assets/svg/email.svg +1 -0
  14. package/nstc-g6/assets/svg/example.svg +1 -0
  15. package/nstc-g6/assets/svg/excel.svg +1 -0
  16. package/nstc-g6/assets/svg/exit-fullscreen.svg +1 -0
  17. package/nstc-g6/assets/svg/eye-open.svg +1 -0
  18. package/nstc-g6/assets/svg/eye.svg +1 -0
  19. package/nstc-g6/assets/svg/favorite.svg +1 -0
  20. package/nstc-g6/assets/svg/favorite_active.svg +1 -0
  21. package/nstc-g6/assets/svg/favorite_x400.svg +1 -0
  22. package/nstc-g6/assets/svg/favorite_x400_active.svg +1 -0
  23. package/nstc-g6/assets/svg/favorite_x400_blank.svg +1 -0
  24. package/nstc-g6/assets/svg/filter.svg +16 -0
  25. package/nstc-g6/assets/svg/filter@2x.png +0 -0
  26. package/nstc-g6/assets/svg/filterActive.svg +16 -0
  27. package/nstc-g6/assets/svg/filterClose@2x.png +0 -0
  28. package/nstc-g6/assets/svg/form.svg +1 -0
  29. package/nstc-g6/assets/svg/fullscreen.svg +1 -0
  30. package/nstc-g6/assets/svg/guide.svg +1 -0
  31. package/nstc-g6/assets/svg/hourglass.svg +19 -0
  32. package/nstc-g6/assets/svg/icon.svg +1 -0
  33. package/nstc-g6/assets/svg/international.svg +1 -0
  34. package/nstc-g6/assets/svg/language.svg +1 -0
  35. package/nstc-g6/assets/svg/left-dis.svg +1 -0
  36. package/nstc-g6/assets/svg/left.svg +1 -0
  37. package/nstc-g6/assets/svg/link.svg +1 -0
  38. package/nstc-g6/assets/svg/list.svg +1 -0
  39. package/nstc-g6/assets/svg/lock.svg +1 -0
  40. package/nstc-g6/assets/svg/message-t.svg +1 -0
  41. package/nstc-g6/assets/svg/money.svg +1 -0
  42. package/nstc-g6/assets/svg/money3.svg +1 -0
  43. package/nstc-g6/assets/svg/money4.svg +1 -0
  44. package/nstc-g6/assets/svg/moneyTwo.svg +1 -0
  45. package/nstc-g6/assets/svg/msg_white.svg +1 -0
  46. package/nstc-g6/assets/svg/nested.svg +1 -0
  47. package/nstc-g6/assets/svg/newsearch.svg +19 -0
  48. package/nstc-g6/assets/svg/password.svg +1 -0
  49. package/nstc-g6/assets/svg/pdf.svg +1 -0
  50. package/nstc-g6/assets/svg/people.svg +1 -0
  51. package/nstc-g6/assets/svg/peoples.svg +1 -0
  52. package/nstc-g6/assets/svg/phone.svg +1 -0
  53. package/nstc-g6/assets/svg/phone_msg.svg +1 -0
  54. package/nstc-g6/assets/svg/qq.svg +1 -0
  55. package/nstc-g6/assets/svg/right-dis.svg +1 -0
  56. package/nstc-g6/assets/svg/right.svg +1 -0
  57. package/nstc-g6/assets/svg/search.svg +1 -0
  58. package/nstc-g6/assets/svg/searchActive.svg +19 -0
  59. package/nstc-g6/assets/svg/shopping.svg +1 -0
  60. package/nstc-g6/assets/svg/size.svg +1 -0
  61. package/nstc-g6/assets/svg/skill.svg +1 -0
  62. package/nstc-g6/assets/svg/star.svg +1 -0
  63. package/nstc-g6/assets/svg/steam.svg +1 -0
  64. package/nstc-g6/assets/svg/tab.svg +1 -0
  65. package/nstc-g6/assets/svg/table.svg +1 -0
  66. package/nstc-g6/assets/svg/theme.svg +1 -0
  67. package/nstc-g6/assets/svg/tree-table.svg +1 -0
  68. package/nstc-g6/assets/svg/tree.svg +1 -0
  69. package/nstc-g6/assets/svg/user.svg +1 -0
  70. package/nstc-g6/assets/svg/wechat.svg +1 -0
  71. package/nstc-g6/assets/svg/z-left-2-dis.svg +1 -0
  72. package/nstc-g6/assets/svg/z-left-2.svg +1 -0
  73. package/nstc-g6/assets/svg/z-right-2-dis.svg +1 -0
  74. package/nstc-g6/assets/svg/z-right-2.svg +1 -0
  75. package/nstc-g6/assets/svg/z-right.svg +1 -0
  76. package/nstc-g6/assets/svg/zip.svg +1 -0
  77. package/nstc-g6/components/Calendar/index.js +8 -0
  78. package/nstc-g6/components/Calendar/src/basic/month-table.vue +129 -0
  79. package/nstc-g6/components/Calendar/src/basic/year-table.vue +126 -0
  80. package/nstc-g6/components/Calendar/src/main.vue +442 -0
  81. package/nstc-g6/components/DialogForm/index.js +8 -0
  82. package/nstc-g6/components/DialogForm/src/demo/index.vue +56 -0
  83. package/nstc-g6/components/DialogForm/src/main.vue +189 -0
  84. package/nstc-g6/components/Form/A_DEMO/component/originalForm.vue +281 -0
  85. package/nstc-g6/components/Form/A_DEMO/config/config_3.js +1222 -0
  86. package/nstc-g6/components/Form/A_DEMO/index.vue +803 -0
  87. package/nstc-g6/components/Form/AutocompleteCustom/index.vue +72 -0
  88. package/nstc-g6/components/Form/BusinessSpecific/InputMultiple.vue +191 -0
  89. package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +128 -0
  90. package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +233 -0
  91. package/nstc-g6/components/Form/BusinessSpecific/readme.md +7 -0
  92. package/nstc-g6/components/Form/CascaderCustom/index.vue +101 -0
  93. package/nstc-g6/components/Form/CheckboxCustom/index.vue +84 -0
  94. package/nstc-g6/components/Form/Component.vue +661 -0
  95. package/nstc-g6/components/Form/ComponentSecond.vue +650 -0
  96. package/nstc-g6/components/Form/DatepickerCustom/index.vue +130 -0
  97. package/nstc-g6/components/Form/InputAndDialog/index.js +15 -0
  98. package/nstc-g6/components/Form/InputAndDialog/src/main.vue +395 -0
  99. package/nstc-g6/components/Form/InputCustom/demo/index.vue +65 -0
  100. package/nstc-g6/components/Form/InputCustom/index.vue +307 -0
  101. package/nstc-g6/components/Form/IntervalinputCustom/demo/index.vue +31 -0
  102. package/nstc-g6/components/Form/IntervalinputCustom/index.vue +118 -0
  103. package/nstc-g6/components/Form/Item.vue +330 -0
  104. package/nstc-g6/components/Form/ItemSecond.vue +269 -0
  105. package/nstc-g6/components/Form/List.vue +146 -0
  106. package/nstc-g6/components/Form/ListSecond.vue +130 -0
  107. package/nstc-g6/components/Form/RadioCustom/index.vue +73 -0
  108. package/nstc-g6/components/Form/SelectAccount/index.js +15 -0
  109. package/nstc-g6/components/Form/SelectAccount/src/demo/index.vue +58 -0
  110. package/nstc-g6/components/Form/SelectAccount/src/main.vue +283 -0
  111. package/nstc-g6/components/Form/SelectAndDialog/index.js +15 -0
  112. package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +384 -0
  113. package/nstc-g6/components/Form/SelectCashFlow/index.js +15 -0
  114. package/nstc-g6/components/Form/SelectCashFlow/src/demo/index.vue +42 -0
  115. package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +126 -0
  116. package/nstc-g6/components/Form/SelectCustom/demo/index.vue +82 -0
  117. package/nstc-g6/components/Form/SelectCustom/index.vue +488 -0
  118. package/nstc-g6/components/Form/SelectSubject/index.js +15 -0
  119. package/nstc-g6/components/Form/SelectSubject/src/demo/index.vue +85 -0
  120. package/nstc-g6/components/Form/SelectSubject/src/main.vue +182 -0
  121. package/nstc-g6/components/Form/SelectindialogCustom/demo/index.vue +188 -0
  122. package/nstc-g6/components/Form/SelectindialogCustom/index.vue +650 -0
  123. package/nstc-g6/components/Form/SelectindialogCustom/install.js +7 -0
  124. package/nstc-g6/components/Form/TableRadioCustom/demo/index.vue +53 -0
  125. package/nstc-g6/components/Form/TableRadioCustom/index.vue +183 -0
  126. package/nstc-g6/components/Form/TextCustom/index.vue +38 -0
  127. package/nstc-g6/components/Form/UploadCustom/demo/index.vue +31 -0
  128. package/nstc-g6/components/Form/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  129. package/nstc-g6/components/Form/UploadCustom/index.vue +506 -0
  130. package/nstc-g6/components/Form/configs.js +191 -0
  131. package/nstc-g6/components/Form/configsSecond.js +161 -0
  132. package/nstc-g6/components/Form/index.js +8 -0
  133. package/nstc-g6/components/Form/index.scss +29 -0
  134. package/nstc-g6/components/Form/payeePersonSelect/index.js +15 -0
  135. package/nstc-g6/components/Form/payeePersonSelect/src/demo/index.vue +164 -0
  136. package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +185 -0
  137. package/nstc-g6/components/Form/readme.txt +4 -0
  138. package/nstc-g6/components/FormGroup/index.js +8 -0
  139. package/nstc-g6/components/FormGroup/src/demo/config.js +23 -0
  140. package/nstc-g6/components/FormGroup/src/demo/index.vue +85 -0
  141. package/nstc-g6/components/FormGroup/src/main.vue +639 -0
  142. package/nstc-g6/components/FormGroup/src/validate.js +23 -0
  143. package/nstc-g6/components/InputTag/InputTag.vue +270 -0
  144. package/nstc-g6/components/NstcApprovel/NstcApprovel.vue +24 -0
  145. package/nstc-g6/components/NstcBackToTop/NstcBackToTop.vue +150 -0
  146. package/nstc-g6/components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +123 -0
  147. package/nstc-g6/components/NstcCharts/NstcCharts.vue +162 -0
  148. package/nstc-g6/components/NstcCharts/define.js +74 -0
  149. package/nstc-g6/components/NstcCharts/mixins/resize.js +56 -0
  150. package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +152 -0
  151. package/nstc-g6/components/NstcConfirm/index.js +25 -0
  152. package/nstc-g6/components/NstcDialog/NstcDialog.vue +185 -0
  153. package/nstc-g6/components/NstcDialogForm/NstcDialogForm.vue +176 -0
  154. package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +280 -0
  155. package/nstc-g6/components/NstcDropdown/NstcDropdown.vue +52 -0
  156. package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +396 -0
  157. package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +591 -0
  158. package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +475 -0
  159. package/nstc-g6/components/NstcExcelCustomImport/img/upload@2x.png +0 -0
  160. package/nstc-g6/components/NstcExcelExport/NstcExcelExport.vue +145 -0
  161. package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +1074 -0
  162. package/nstc-g6/components/NstcExcelImport/img/upload@2x.png +0 -0
  163. package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +1166 -0
  164. package/nstc-g6/components/NstcExpandCollapse/NstcExpandCollapse.vue +130 -0
  165. package/nstc-g6/components/NstcExpandCollapse/index.scss +77 -0
  166. package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +989 -0
  167. package/nstc-g6/components/NstcFileUpload/img/addFile.svg +32 -0
  168. package/nstc-g6/components/NstcFileUpload/img/delete.svg +24 -0
  169. package/nstc-g6/components/NstcFileUpload/img/deleteFile.svg +28 -0
  170. package/nstc-g6/components/NstcFileUpload/img/download.svg +24 -0
  171. package/nstc-g6/components/NstcFileUpload/img/inputUpload.svg +30 -0
  172. package/nstc-g6/components/NstcFileUpload/img/look-diabled.svg +24 -0
  173. package/nstc-g6/components/NstcFileUpload/img/look.svg +24 -0
  174. package/nstc-g6/components/NstcForm/A_DEMO/component/originalForm.vue +281 -0
  175. package/nstc-g6/components/NstcForm/A_DEMO/config/config_3.js +1222 -0
  176. package/nstc-g6/components/NstcForm/A_DEMO/index.vue +796 -0
  177. package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +68 -0
  178. package/nstc-g6/components/NstcForm/BusinessSpecific/InputMultiple.vue +189 -0
  179. package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +128 -0
  180. package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +233 -0
  181. package/nstc-g6/components/NstcForm/BusinessSpecific/readme.md +7 -0
  182. package/nstc-g6/components/NstcForm/CascaderCustom/index.vue +101 -0
  183. package/nstc-g6/components/NstcForm/CheckboxCustom/index.vue +84 -0
  184. package/nstc-g6/components/NstcForm/Component.vue +684 -0
  185. package/nstc-g6/components/NstcForm/ComponentSecond.vue +650 -0
  186. package/nstc-g6/components/NstcForm/DatepickerCustom/index.vue +130 -0
  187. package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +389 -0
  188. package/nstc-g6/components/NstcForm/InputCustom/index.vue +314 -0
  189. package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +116 -0
  190. package/nstc-g6/components/NstcForm/Item.vue +327 -0
  191. package/nstc-g6/components/NstcForm/ItemSecond.vue +269 -0
  192. package/nstc-g6/components/NstcForm/List.vue +146 -0
  193. package/nstc-g6/components/NstcForm/ListSecond.vue +130 -0
  194. package/nstc-g6/components/NstcForm/RadioCustom/index.vue +73 -0
  195. package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +334 -0
  196. package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +377 -0
  197. package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +123 -0
  198. package/nstc-g6/components/NstcForm/SelectCustom/index.vue +460 -0
  199. package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +185 -0
  200. package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +648 -0
  201. package/nstc-g6/components/NstcForm/TableRadioCustom/index.vue +183 -0
  202. package/nstc-g6/components/NstcForm/TextCustom/index.vue +38 -0
  203. package/nstc-g6/components/NstcForm/UploadCustom/iconxitongshezhi-yichu.png +0 -0
  204. package/nstc-g6/components/NstcForm/UploadCustom/index.vue +500 -0
  205. package/nstc-g6/components/NstcForm/configs.js +191 -0
  206. package/nstc-g6/components/NstcForm/configsSecond.js +161 -0
  207. package/nstc-g6/components/NstcForm/index.js +8 -0
  208. package/nstc-g6/components/NstcForm/index.scss +29 -0
  209. package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +188 -0
  210. package/nstc-g6/components/NstcForm/readme.txt +4 -0
  211. package/nstc-g6/components/NstcPagination/NstcPagination.vue +428 -0
  212. package/nstc-g6/components/NstcPagination/setPageNum.png +0 -0
  213. package/nstc-g6/components/NstcPagination/setpagedefault.png +0 -0
  214. package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +70 -0
  215. package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +729 -0
  216. package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +676 -0
  217. package/nstc-g6/components/NstcSticky/NstcSticky.vue +97 -0
  218. package/nstc-g6/components/NstcSvgIcon/NstcSvgIcon.vue +72 -0
  219. package/nstc-g6/components/NstcTab/NstcTab.vue +80 -0
  220. package/nstc-g6/components/NstcTabWithBadge/NstcTabWithBadge.vue +45 -0
  221. package/nstc-g6/components/NstcTabWithBadge/index.scss +31 -0
  222. package/nstc-g6/components/NstcTable/ElTableColumnCustom/index.vue +292 -0
  223. package/nstc-g6/components/NstcTable/NstcTable.vue +460 -0
  224. package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +801 -0
  225. package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +186 -0
  226. package/nstc-g6/components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +330 -0
  227. package/nstc-g6/components/NstcUploadExcel/NstcUploadExcel.vue +145 -0
  228. package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +176 -0
  229. package/nstc-g6/components/Search/NstcSearch.vue +583 -0
  230. package/nstc-g6/components/Search/src/demo/index copy.vue +101 -0
  231. package/nstc-g6/components/Search/src/demo/index.vue +103 -0
  232. package/nstc-g6/components/Search/src/main copy.vue +607 -0
  233. package/nstc-g6/components/approvelTwo/main.vue +220 -0
  234. package/nstc-g6/components/approvelTwo/progress.vue +154 -0
  235. package/nstc-g6/directives/VCopy/index.js +60 -0
  236. package/nstc-g6/directives/VNstcNumber/index.js +14 -0
  237. package/nstc-g6/directives/VNstcNumber/temp.js +446 -0
  238. package/nstc-g6/index.js +193 -0
  239. package/nstc-g6/utils/auth.js +2 -0
  240. package/nstc-g6/utils/axios.js +2 -0
  241. package/nstc-g6/utils/dateAndValidator.js +649 -0
  242. package/nstc-g6/utils/debounce.js +40 -0
  243. package/nstc-g6/utils/parseTime.js +48 -0
  244. package/nstc-g6/utils/validate/index.js +7 -0
  245. package/nstc-g6/utils/vendor/Export2Excel.js +229 -0
  246. package/nstc-g6/utils/vendor/Export2Zip.js +24 -0
  247. package/nstc-g6/utils/vue-bus.js +5 -0
  248. package/package.json +9 -2
  249. package/src/assets/css/_coreLib.scss +9 -1
  250. package/src/assets/css/element-variables.scss +1 -1
  251. package/src/components/ChildRange/index.vue +2 -37
  252. package/src/components/ChildRange/style.scss +34 -0
  253. package/src/components/FileImport/index.vue +3 -1
  254. package/src/components/PageHeader/index.vue +2 -44
  255. package/src/components/PageHeader/style.scss +39 -0
  256. package/src/components/Search/index.vue +1 -97
  257. package/src/components/Search/style.scss +93 -0
  258. package/src/components/Table/ThSelectHeader.vue +2 -11
  259. package/src/components/Table/index.vue +4 -2
  260. package/src/directives/VTitle/index.js +14 -17
  261. package/style/css/normalize.scss +6 -6
  262. package/style/index.css +3 -3
  263. package/style/index.css.map +1 -1
  264. package/style/server-config.jsonc +527 -410
  265. package/treme/blue.css +3 -0
  266. package/treme/blue.umd.min.js +1 -0
  267. package/treme/css/normalize.scss +726 -0
  268. package/treme/fonts/element-icons.535877f5.woff +0 -0
  269. package/treme/fonts/element-icons.732389de.ttf +0 -0
  270. package/treme/fonts/iconfont.022f36c4.woff2 +0 -0
  271. package/treme/fonts/iconfont.4a1b2c93.woff +0 -0
  272. package/treme/fonts/iconfont.a9febaa2.ttf +0 -0
  273. package/treme/green.css +3 -0
  274. package/treme/green.umd.min.js +1 -0
  275. package/treme/lightBlue.css +3 -0
  276. package/treme/lightBlue.umd.min.js +1 -0
  277. package/treme/orange.css +3 -0
  278. package/treme/orange.umd.min.js +1 -0
  279. package/treme/pageDemo/demo-1.vue +131 -0
  280. package/treme/pageDemo/demo-2.vue +35 -0
  281. package/treme/pageDemo/demo-3.vue +22 -0
  282. package/treme/pageDemo/seeCode.js +20 -0
  283. package/treme/red.css +3 -0
  284. package/treme/red.umd.min.js +1 -0
  285. package/treme/server-config.jsonc +723 -0
  286. package/treme/yellow.css +3 -0
  287. package/treme/yellow.umd.min.js +1 -0
@@ -0,0 +1,460 @@
1
+ <template>
2
+ <div>
3
+ <el-select
4
+ v-model="_value"
5
+ v-nstc-lazy-load="lazyLoadAction"
6
+ v-bind="$attrs"
7
+ class="input-w"
8
+ :style="{ width: parseFloat(width ? width : 224) + 'px' }"
9
+ :placeholder="placeholder || '请选择'"
10
+ :loading="loading"
11
+ :remote="remote"
12
+ :remote-method="remoteMethod"
13
+ :collapse-tags="collapseTags"
14
+ :multiple="multiple"
15
+ :filterable="filterable"
16
+ :allow-create="allowCreate"
17
+ :default-first-option="defaultFirstOption"
18
+ :value-key="valueKey"
19
+ :is-cache="isCache"
20
+ :clearable="clearable"
21
+ v-on="$listeners"
22
+ @blur="selectBlur"
23
+ @visible-change="visibleChange"
24
+ @focus="selectFocus"
25
+ >
26
+ <template v-for="item in _options">
27
+ <el-option-group v-if="item.children" :key="item.label" v-bind="item">
28
+ <el-option
29
+ v-for="child in item.children"
30
+ :key="`${item.label}-${JSON.stringify(child.value)}`"
31
+ v-bind="child"
32
+ />
33
+ </el-option-group>
34
+ <el-option v-else :key="JSON.stringify(item.value)" v-bind="item">
35
+ <div v-if="useCustomTemplate === 1">
36
+ <span style="float: left; margin-right: 6px">{{ item.value }}</span>
37
+ <span style="float: right; color: #8492a6; font-size: 13px">{{
38
+ item.label
39
+ }}</span>
40
+ </div>
41
+ </el-option>
42
+ </template>
43
+ <template v-for="(_, slotName) in $slots" v-slot:[slotName]>
44
+ <slot :name="slotName"></slot>
45
+ </template>
46
+ </el-select>
47
+ </div>
48
+ </template>
49
+
50
+ <script>
51
+ import axios from '../../../../src/utils/axios'
52
+
53
+ export default {
54
+ name: 'SelectCustom',
55
+
56
+ directives: {
57
+ 'nstc-lazy-load': {
58
+ bind(el, binding) {
59
+ const SELECTWRAP_DOM = el.querySelector(
60
+ '.el-select-dropdown .el-select-dropdown__wrap'
61
+ )
62
+ SELECTWRAP_DOM.addEventListener('scroll', function () {
63
+ const condition =
64
+ this.scrollHeight - this.scrollTop <= this.clientHeight
65
+ console.log('condition', condition)
66
+ if (condition) {
67
+ binding.value()
68
+ }
69
+ })
70
+ }
71
+ }
72
+ },
73
+
74
+ inheritAttrs: false,
75
+
76
+ props: {
77
+ value: {
78
+ type: [String, Number, Boolean, Array, Object],
79
+ default: null
80
+ },
81
+
82
+ width: {
83
+ type: [String, Number],
84
+ default: ''
85
+ },
86
+
87
+ options: {
88
+ type: [Array, String],
89
+ default: () => []
90
+ },
91
+
92
+ collapseTags: {
93
+ type: Boolean,
94
+ default: true
95
+ },
96
+
97
+ remote: {
98
+ type: Boolean,
99
+ default: false
100
+ },
101
+
102
+ url: {
103
+ type: String,
104
+ default: ''
105
+ },
106
+
107
+ multiple: {
108
+ type: Boolean,
109
+ default: false
110
+ },
111
+
112
+ filterable: {
113
+ type: Boolean,
114
+ default: false
115
+ },
116
+
117
+ allowCreate: {
118
+ type: Boolean,
119
+ default: false
120
+ },
121
+
122
+ defaultFirstOption: {
123
+ type: Boolean,
124
+ default: false
125
+ },
126
+
127
+ reserveKeyword: {
128
+ type: Boolean,
129
+ default: false
130
+ },
131
+
132
+ query: {
133
+ type: String,
134
+ default: 'query'
135
+ },
136
+
137
+ // 远程搜索的其他参数
138
+ params: {
139
+ type: Object,
140
+ default: () => ({})
141
+ },
142
+
143
+ valueKey: {
144
+ type: String,
145
+ default: 'value'
146
+ },
147
+
148
+ labelKey: {
149
+ type: String,
150
+ default: 'label'
151
+ },
152
+
153
+ // 返回的值是不是对象
154
+ optionValueIsObject: {
155
+ type: Boolean,
156
+ default: false
157
+ },
158
+
159
+ isSelectChangeValue: {
160
+ type: Boolean,
161
+ default: false
162
+ },
163
+
164
+ placeholder: {
165
+ type: String,
166
+ default: function () {
167
+ return '请选择'
168
+ }
169
+ },
170
+
171
+ httpMethod: {
172
+ type: String,
173
+ default: 'get'
174
+ },
175
+
176
+ queryDataFormatter: {
177
+ type: Function,
178
+ default: (data) => {
179
+ return data
180
+ }
181
+ },
182
+
183
+ useCustomTemplate: {
184
+ type: Number,
185
+ default: -1
186
+ },
187
+
188
+ template: {
189
+ type: String,
190
+ default: ''
191
+ },
192
+
193
+ // 是否添加懒加载
194
+ lazyLoad: {
195
+ type: Boolean,
196
+ default: false
197
+ },
198
+
199
+ pageMode: {
200
+ type: String,
201
+ default: 'common' // common 公共模式; special: 特殊模式
202
+ },
203
+
204
+ pageCurrentKey: {
205
+ type: String,
206
+ default: 'current'
207
+ },
208
+
209
+ pageSizeKey: {
210
+ type: String,
211
+ default: 'size'
212
+ },
213
+
214
+ pageSize: {
215
+ type: Number,
216
+ default: 20
217
+ },
218
+
219
+ clearable: {
220
+ type: Boolean,
221
+ default: true
222
+ },
223
+ // 返回数据取值
224
+ resProp: {
225
+ type: String,
226
+ default: ''
227
+ },
228
+ // 是否缓存远程查询option
229
+ isCache: {
230
+ type: Boolean,
231
+ default: false
232
+ },
233
+ // 是否初始化请求
234
+ isInitRequest: {
235
+ type: Boolean,
236
+ default: false
237
+ }
238
+ },
239
+
240
+ data() {
241
+ return {
242
+ showUp: false,
243
+ showIcon: true,
244
+ loading: false,
245
+ remoteOptions: [],
246
+ queryStr: null,
247
+ paginationObj: {
248
+ 'page.current': 1,
249
+ 'page.size': 20
250
+ }
251
+ }
252
+ },
253
+
254
+ computed: {
255
+ _value: {
256
+ get() {
257
+ return this.value
258
+ },
259
+ set(val) {
260
+ this.$emit('update:isSelectChangeValue', true)
261
+
262
+ this.$nextTick(() => {
263
+ this.$emit('input', val)
264
+ })
265
+ }
266
+ },
267
+
268
+ remoteMethod() {
269
+ return this.remote
270
+ ? (query) => {
271
+ this.queryStr = query
272
+ this.remoteOptions = []
273
+ this.getList()
274
+ }
275
+ : undefined
276
+ },
277
+
278
+ _options: {
279
+ get() {
280
+ // return this.remote ? this.remoteOptions : this.options;
281
+
282
+ if (this.url) {
283
+ return this.remoteOptions
284
+ } else {
285
+ if (Array.isArray(this.options)) {
286
+ return this.options
287
+ } else {
288
+ try {
289
+ return JSON.parse(this.options)
290
+ } catch (error) {
291
+ return []
292
+ }
293
+ }
294
+ }
295
+ },
296
+ set(val) {
297
+ return val
298
+ }
299
+ }
300
+ },
301
+ watch: {
302
+ isInitRequest: {
303
+ handler(val) {
304
+ if (val) {
305
+ this.remoteOptions = []
306
+ this.getList()
307
+ }
308
+ },
309
+ immediate: true
310
+ },
311
+ url: {
312
+ immediate: true,
313
+ handler(val) {
314
+ if (val) {
315
+ this.getList()
316
+ }
317
+ }
318
+ }
319
+ },
320
+ created() {
321
+ this.$bus.$on('nstc_custom_form_config_update', (formData) => {
322
+ console.log('监听到的全局事件', formData)
323
+ })
324
+ },
325
+ beforeDestroy() {
326
+ this.$bus.$off('nstc_custom_form_config_update')
327
+ },
328
+
329
+ methods: {
330
+ mouseenter() {
331
+ this._value && (this.showIcon = false)
332
+ },
333
+ mouseleave() {
334
+ this.showIcon = true
335
+ },
336
+ setRemoteOptions(options) {
337
+ this.remoteOptions = options
338
+ },
339
+
340
+ /**
341
+ * 懒加载
342
+ */
343
+ lazyLoadAction() {
344
+ if (this.lazyLoad) {
345
+ this.paginationObj['page.current']++
346
+ this.getList()
347
+ }
348
+ },
349
+
350
+ /**
351
+ * 获取下拉列表
352
+ */
353
+ async getList() {
354
+ this.loading = true
355
+ try {
356
+ // 构建请求的体
357
+ let key = this.httpMethod.toLowerCase() === 'post' ? 'data' : 'params'
358
+ this._options = []
359
+ let keyParams = this.lazyLoad
360
+ ? {
361
+ [this.query]: this.queryStr,
362
+ ...this.paginationObj,
363
+ ...this.params
364
+ }
365
+ : {
366
+ [this.query]: this.queryStr,
367
+ ...this.params
368
+ }
369
+ let remoteOptions = await axios({
370
+ url: this.url,
371
+ method: this.httpMethod,
372
+ [key]: keyParams,
373
+ loading: false
374
+ })
375
+
376
+ console.log(this.resProp, remoteOptions)
377
+
378
+ if (this.resProp && this.resProp !== '' && this.resProp !== null) {
379
+ remoteOptions = remoteOptions[this.resProp] || remoteOptions
380
+ } else {
381
+ remoteOptions = remoteOptions[`list`] || remoteOptions
382
+ }
383
+
384
+ // remoteOptions = remoteOptions[`list`] || remoteOptions;
385
+ if (!Array.isArray(remoteOptions)) {
386
+ remoteOptions = remoteOptions[Object.keys(remoteOptions)[0]]
387
+ }
388
+ // 返回数据格式化
389
+ this.queryDataFormatter &&
390
+ (remoteOptions = await this.queryDataFormatter(remoteOptions))
391
+ console.log(remoteOptions, 'remoteOptions', this.remoteOptions)
392
+ !remoteOptions.length && (this.remoteOptions = []) //未查出数据,需要把下拉值置空
393
+ console.log(this.remoteOptions)
394
+ if (this.lazyLoad) {
395
+ const temp = remoteOptions.map((item) => {
396
+ const label = item[this.labelKey ? this.labelKey : 'label']
397
+ const value = item[this.valueKey ? this.valueKey : 'value']
398
+ return {
399
+ value: this.optionValueIsObject
400
+ ? { ...item, label, value }
401
+ : value,
402
+ label
403
+ }
404
+ })
405
+ this.remoteOptions = this.remoteOptions.concat(temp)
406
+ } else {
407
+ this.remoteOptions = remoteOptions.map((item) => {
408
+ const label = item[this.labelKey ? this.labelKey : 'label']
409
+ const value = item[this.valueKey ? this.valueKey : 'value']
410
+ return {
411
+ value: this.optionValueIsObject
412
+ ? { ...item, label, value }
413
+ : value,
414
+ label
415
+ }
416
+ })
417
+ }
418
+ } catch (err) {
419
+ console.error(err)
420
+ } finally {
421
+ this.loading = false
422
+ }
423
+ },
424
+ visibleChange(val) {
425
+ this.showUp = val
426
+ },
427
+ /**
428
+ * 失去焦点
429
+ */
430
+ selectBlur() {
431
+ if (this.lazyLoad) {
432
+ this.paginationObj['page.current']++
433
+ }
434
+ },
435
+
436
+ /**
437
+ * 获取焦点
438
+ */
439
+ selectFocus() {
440
+ this.queryStr = null
441
+ if (!this.isCache && this.url && this._options.length < 1) {
442
+ this.remoteOptions = []
443
+ this.getList()
444
+ } else if (this.isCache && this.url) {
445
+ this.remoteOptions = []
446
+ this.getList()
447
+ }
448
+ }
449
+ }
450
+ }
451
+ </script>
452
+
453
+ <style scoped>
454
+ .remote {
455
+ position: relative;
456
+ left: -24px;
457
+ display: inline-block;
458
+ height: 100%;
459
+ }
460
+ </style>
@@ -0,0 +1,185 @@
1
+ <!--
2
+ * @Author: your name
3
+ * @Date: 2022-01-13 11:06:47
4
+ * @LastEditTime: 2022-01-13 17:11:38
5
+ * @LastEditors: Please set LastEditors
6
+ * @Description: 科目选择
7
+ * @FilePath: NstcSelectSubject.vue
8
+ -->
9
+ <template>
10
+ <SelectAndDialog v-model="_value" ref="select" v-bind="bindProps" :table-form="formSearch" :format-data="formatData"
11
+ :format-params="formatParams" @show-dialog="onShowDialog">
12
+ <div class="form-wrap">
13
+ <el-form inline :model="formSearch">
14
+ <el-form-item :label="chMapper.subjectNoLabel">
15
+ <el-input
16
+ :placeholder="chMapper.plcInput"
17
+ v-model="formSearch.km"
18
+ maxlength="60"
19
+ clearable
20
+ >
21
+ </el-input>
22
+ </el-form-item>
23
+ <el-form-item :label="chMapper.subjectNameLabel">
24
+ <el-input
25
+ :placeholder="chMapper.plcInput"
26
+ v-model="formSearch.kmName"
27
+ maxlength="60"
28
+ clearable
29
+ >
30
+ </el-input>
31
+ </el-form-item>
32
+ <el-form-item>
33
+ <el-button type="primary" class="nstc-g6-common-btn-1" @click="searchClick">查询
34
+ </el-button>
35
+ <el-button style="margin-left:8px;" class="nstc-g6-common-btn-3" @click="queryReset">重置
36
+ </el-button>
37
+ </el-form-item>
38
+ </el-form>
39
+ </div>
40
+ </SelectAndDialog>
41
+ </template>
42
+
43
+ <script>
44
+ import SelectAndDialog from "../SelectAndDialog/NstcSelectAndDialog.vue";
45
+
46
+ export default {
47
+ name: "NstcSelectSubject",
48
+ components: {SelectAndDialog},
49
+ props: {
50
+ value: [String, Object],
51
+ queryConf: {
52
+ type: Object,
53
+ default: () => {
54
+ }
55
+ },
56
+ chMapper: {
57
+ type: Object,
58
+ default: () => ({
59
+ title: "选择科目",
60
+ plcInput: "请输入",
61
+ plcSelect: "请选择",
62
+ noselectmsg: "请选择科目",
63
+ subjectNoLabel: "科目编号",
64
+ subjectNameLabel: "科目名称",
65
+ balanceDirectionlabel: "余额方向",
66
+ }),
67
+ },
68
+ disabled: {
69
+ type: Boolean,
70
+ default: false
71
+ }
72
+ },
73
+ data() {
74
+ return {
75
+ showText: "",
76
+ formSearch: {
77
+ km: "",
78
+ kmName: "",
79
+ },
80
+ showDialog: false,
81
+ columns: [],
82
+ options: [],
83
+ inputHovering: false,
84
+ remoteQuery: "",
85
+ bindProps: {},
86
+ };
87
+ },
88
+ wacth: {
89
+ 'queryConf.defaultParam': {
90
+ handler(val) {
91
+ this.$refs.select.queryAllData();
92
+ // this.queryAllData();
93
+ },
94
+ deep: true
95
+ }
96
+ },
97
+ computed: {
98
+ _value: {
99
+ set(val) {
100
+ this.$emit("input", val);
101
+ },
102
+ get() {
103
+ return this.value;
104
+ },
105
+ },
106
+ },
107
+ created() {
108
+ let props = {
109
+ columns: [
110
+ {prop: "km", label: this.chMapper.subjectNoLabel, align: "center"},
111
+ {prop: "kmName", label: this.chMapper.subjectNameLabel, align: "center"},
112
+ {prop: "dirName", label: this.chMapper.balanceDirectionlabel, align: "center"},
113
+ ],
114
+ url: this.queryConf.url || "/api/nstc-tss/1.0/remote/list",
115
+ httpMethod: this.queryConf.httpMethod || "POST",
116
+ params: this.queryConf.defaultParam || {},
117
+ rowKey: "km",
118
+ valueKey: "km",
119
+ labelKey: "km",
120
+ disabled: this.disabled,
121
+ chMapper: this.chMapper
122
+ };
123
+ this.bindProps = props;
124
+ },
125
+ mounted() {
126
+ },
127
+ methods: {
128
+ formatParams(params) {
129
+ console.log(params, '----------params')
130
+ let size = 20;
131
+ let current = 1;
132
+ if (params["page.size"]) {
133
+ size = params["page.size"];
134
+ current = params["page.current"];
135
+ }
136
+ if (params.page && params.page.size) {
137
+ size = params.page.size;
138
+ current = params.page.current;
139
+ }
140
+ let page = {"pageSize": size, "pageNo": current};
141
+ if (params.diabledValue && !(params.brNo)) {
142
+ params.brNo = params.diabledValue
143
+ }
144
+ return {...params, ...page};
145
+ },
146
+ formatData(res) {
147
+ let data = [],
148
+ total = 0;
149
+ if (res && !res.total && Array.isArray(res)) {
150
+ data = res;
151
+ total = res.length;
152
+ } else if (res && res.total && res.list) {
153
+ data = res.list || [];
154
+ total = res.total;
155
+ }
156
+ return {data, total};
157
+ },
158
+
159
+
160
+ onShowDialog() {
161
+ this.queryReset();
162
+ },
163
+
164
+ searchClick() {
165
+ this.$refs.select.queryTableData();
166
+ },
167
+
168
+ queryReset() {
169
+ this.formSearch = {
170
+ km: "",
171
+ kmName: "",
172
+ };
173
+ },
174
+ },
175
+ };
176
+ </script>
177
+
178
+ <style>
179
+ .search-btn {
180
+ color: #c0c4cc;
181
+ position: absolute;
182
+ right: 5px;
183
+ top: -1px;
184
+ }
185
+ </style>