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,648 @@
1
+ <template>
2
+ <div
3
+ :key="key"
4
+ :class="['select-in-dialog', { 'is-disabled': disabled }]"
5
+ :style="{ width: parseFloat(width) + 'px' }"
6
+ >
7
+ <div v-if="remote" class="select-in-dialog-result">
8
+ <SelectCustom
9
+ ref="selectCustom"
10
+ v-model="_value"
11
+ remote
12
+ filterable
13
+ option-value-is-object
14
+ :placeholder="placeholder"
15
+ :is-select-change-value.sync="isSelectChangeValue"
16
+ :value-key="valueKey"
17
+ :label-key="labelKey"
18
+ :multiple="multiple"
19
+ :clearable="clearable"
20
+ :disabled="disabled"
21
+ :http-method="httpMethod"
22
+ :url="url"
23
+ :query="query"
24
+ :query-params="queryParams"
25
+ :option-value-is-object="optionValueIsObject"
26
+ @clear="handleClear"
27
+ />
28
+ <i
29
+ class="el-icon-search select-in-dialog-result-remote-icon"
30
+ @click="!disabled && (dialogVisible = true) && handleSelectClick()"
31
+ ></i>
32
+ </div>
33
+ <div
34
+ v-else
35
+ class="select-in-dialog-result"
36
+ @click="!disabled && (dialogVisible = true) && handleSelectClick()"
37
+ >
38
+ <span :class="{ 'select-in-dialog-result-null': !resultLabel }">{{
39
+ resultLabel || '请选择'
40
+ }}</span>
41
+ <el-button
42
+ v-if="clearable && !disabled && hasValue"
43
+ type="text"
44
+ icon="el-icon-circle-close"
45
+ class="select-in-dialog-result-clear"
46
+ @click.stop="handleClear"
47
+ />
48
+ <i class="el-icon-search"></i>
49
+ </div>
50
+
51
+ <DialogCustom
52
+ v-model="dialogVisible"
53
+ :show-footer="multiple"
54
+ close-on-press-escape
55
+ close-on-click-modal
56
+ append-to-body
57
+ :title="title"
58
+ :footer-handlers="footerHandlers"
59
+ :width="dialogWidth"
60
+ @confirm="handleMultipleConfirm"
61
+ >
62
+ <slot v-if="!originalForm" name="form"></slot>
63
+ <NstcFormDialog
64
+ v-else-if="formConfig && formConfig.length"
65
+ ref="formCustom"
66
+ from="dialog"
67
+ :async-query.sync="asyncQuery"
68
+ :config="_formConfig"
69
+ :label-width="formLabelWidth"
70
+ @query="handleQuery"
71
+ />
72
+
73
+ <slot v-if="!originalTable" name="table"></slot>
74
+ <TableRadioCustom
75
+ v-else
76
+ v-model="_value"
77
+ :data="tableData"
78
+ :pagination.sync="pagination"
79
+ :show-pagination="showPagination"
80
+ :multiple="multiple"
81
+ :columns="columns"
82
+ :value-key="valueKey"
83
+ :label-key="labelKey"
84
+ @pagination-change="handlePaginationChange"
85
+ @change="handleTableChange"
86
+ @multiple-change="handleMultipleChange"
87
+ />
88
+ </DialogCustom>
89
+ </div>
90
+ </template>
91
+
92
+ <script>
93
+ import DialogCustom from '../../NstcDialog/NstcDialog'
94
+ import TableRadioCustom from '../TableRadioCustom/index'
95
+ import SelectCustom from '../SelectCustom/index'
96
+ import NstcFormDialog from '../ComponentSecond'
97
+
98
+ import axios from '../../../../src/utils/axios'
99
+
100
+ export default {
101
+ name: 'NstcSelectInDialog',
102
+
103
+ components: {
104
+ DialogCustom,
105
+ TableRadioCustom,
106
+ SelectCustom,
107
+ NstcFormDialog
108
+ },
109
+
110
+ props: {
111
+ // 双向绑定值,单选时为{ [valueKey]: 'xxx', [labelKey]: 'xxx' },多选时为[{ [valueKey]: 'xxx', [labelKey]: 'xxx' }, { [valueKey]: 'xxx', [labelKey]: 'xxx' },...]
112
+ value: {
113
+ type: [Object, Array, String],
114
+ default: null
115
+ },
116
+
117
+ width: {
118
+ type: [Number, String],
119
+ default: '224px'
120
+ },
121
+
122
+ // 是否多选
123
+ multiple: {
124
+ type: Boolean,
125
+ default: false
126
+ },
127
+
128
+ // 是否可清空
129
+ clearable: {
130
+ type: Boolean,
131
+ default: false
132
+ },
133
+
134
+ // 是否禁用
135
+ disabled: {
136
+ type: Boolean,
137
+ default: false
138
+ },
139
+
140
+ // 弹窗标题
141
+ title: {
142
+ type: String,
143
+ default: ''
144
+ },
145
+
146
+ // 弹窗表单配置项
147
+ formConfig: {
148
+ type: Array,
149
+ default: () => []
150
+ },
151
+
152
+ formLabelWidth: {
153
+ default: '80px',
154
+ type: [String, Number]
155
+ },
156
+
157
+ // 弹窗表单请求的url
158
+ url: {
159
+ type: String,
160
+ default: ''
161
+ },
162
+
163
+ // 弹窗表格列配置
164
+ columns: {
165
+ type: Array,
166
+ default: () => []
167
+ },
168
+
169
+ // 双向绑定值的valueKey,需对应到表格行数据的某个属性
170
+ valueKey: {
171
+ type: String,
172
+ default: 'key'
173
+ },
174
+
175
+ // 双向绑定值的labelKey,需对应到表格行数据的某个属性
176
+ labelKey: {
177
+ type: String,
178
+ default: ''
179
+ },
180
+
181
+ // 对请求参数的格式化
182
+ queryParamFormatter: {
183
+ type: Function,
184
+ default: undefined
185
+ },
186
+
187
+ // 对请求返回数据的格式化
188
+ queryDataFormatter: {
189
+ type: Function,
190
+ default: undefined
191
+ },
192
+
193
+ // 分页器是否展示
194
+ showPagination: {
195
+ default: false,
196
+ type: Boolean
197
+ },
198
+
199
+ // 是否支持远程搜索
200
+ remote: {
201
+ type: Boolean,
202
+ default: false
203
+ },
204
+
205
+ // 远程搜索传参的key
206
+ query: {
207
+ type: String,
208
+ default: 'query'
209
+ },
210
+
211
+ // 远程搜索的其他参数
212
+ queryParams: {
213
+ type: Object,
214
+ default: () => ({})
215
+ },
216
+
217
+ placeholder: {
218
+ type: String,
219
+ default: function () {
220
+ return '请选择'
221
+ }
222
+ },
223
+
224
+ // 如果该标志设置为true, 将缓存查询结果
225
+ cache: {
226
+ type: Boolean,
227
+ default: false
228
+ },
229
+
230
+ // 接收外部组件传来的表单默认值 (特殊)
231
+ account: {
232
+ type: String,
233
+ default: ''
234
+ },
235
+
236
+ // 弹框宽度
237
+ dialogWidth: {
238
+ type: String,
239
+ default: ''
240
+ },
241
+
242
+ // 请求方式
243
+ httpMethod: {
244
+ type: String,
245
+ default: 'post'
246
+ },
247
+
248
+ // 是否使用原始查询表单
249
+ originalForm: {
250
+ type: Boolean,
251
+ default: true
252
+ },
253
+
254
+ // 是否使用原始表格
255
+ originalTable: {
256
+ type: Boolean,
257
+ default: true
258
+ },
259
+ optionValueIsObject: {
260
+ type: Boolean,
261
+ default: false
262
+ },
263
+ // 表格数据选择的key
264
+ tableDataKey: {
265
+ type: String,
266
+ default: null
267
+ }
268
+ },
269
+
270
+ data() {
271
+ return {
272
+ key: `SelectindialogCustomID-${Math.random().toString(36).slice(2)}`,
273
+ hasInit: false,
274
+ isSelectChangeValue: false,
275
+ dialogVisible: false,
276
+ model: null,
277
+ asyncQuery: false,
278
+ loading: false,
279
+
280
+ tableData: [],
281
+ pagination: {
282
+ page: 1,
283
+ limit: 20,
284
+ total: 0
285
+ },
286
+
287
+ multipleSelected: [],
288
+ footerHandlers: {
289
+ confirm: {
290
+ text: '确认'
291
+ }
292
+ }
293
+ }
294
+ },
295
+
296
+ computed: {
297
+ resultLabel() {
298
+ return this.value
299
+ ? this.multiple
300
+ ? this.value.map((item) => item[this.labelKey]).join(',')
301
+ : this.value[this.labelKey] || ''
302
+ : ''
303
+ },
304
+
305
+ _formConfig() {
306
+ const _formConfig = this.formConfig.map((item) => {
307
+ if (Array.isArray(item)) {
308
+ return item.map((cItem) => ({
309
+ ...cItem,
310
+ clearable: true
311
+ }))
312
+ }
313
+
314
+ return {
315
+ ...item,
316
+ clearable: true
317
+ }
318
+ })
319
+
320
+ if (_formConfig[0] && _formConfig[0][0]) {
321
+ return [..._formConfig, [{ mold: 'querybutton' }]]
322
+ }
323
+
324
+ return [..._formConfig, { mold: 'querybutton' }]
325
+ },
326
+
327
+ _value: {
328
+ get() {
329
+ return this.value
330
+ },
331
+ set(val) {
332
+ const _val = val === '' ? null : val // 避免单选时el-select清空时将_value设为'',导致value的type校验错误
333
+ this.$emit('input', _val)
334
+
335
+ // let parent = this.$parent || this.$root
336
+ // let name = parent.$options.componentName
337
+ //
338
+ // while (parent && (!name || name !== 'ElFormItem')) {
339
+ // parent = parent.$parent
340
+ //
341
+ // if (parent) {
342
+ // name = parent.$options.componentName
343
+ // }
344
+ // }
345
+ //
346
+ // if (parent) {
347
+ // parent.$emit.apply(parent, ['el.form.change'].concat([value]))
348
+ // }
349
+ }
350
+ },
351
+
352
+ hasValue() {
353
+ return this.multiple
354
+ ? this._value && this._value.length
355
+ : this._value || this._value === 0
356
+ }
357
+ },
358
+
359
+ watch: {
360
+ _value: {
361
+ deep: true,
362
+ handler(val) {
363
+ if (this.isSelectChangeValue) {
364
+ this.isSelectChangeValue = false
365
+ } else {
366
+ this.setSelectOptions(val)
367
+ }
368
+ }
369
+ },
370
+
371
+ dialogVisible(val) {
372
+ if (this.$refs.formCustom) {
373
+ this.$refs.formCustom.resetFields()
374
+ }
375
+
376
+ const init =
377
+ (!this.formConfig || !this.formConfig.length) && !this.hasInit // 未初始化
378
+ const query = init || !this.cache // 不需要缓存
379
+ if (query && val) {
380
+ this.handleQuery()
381
+ }
382
+ }
383
+ },
384
+
385
+ mounted() {
386
+ this.setSelectOptions(this.value)
387
+ },
388
+
389
+ methods: {
390
+ handleClear() {
391
+ this.$nextTick(() => {
392
+ this._value = this.multiple ? [] : null
393
+ })
394
+ },
395
+
396
+ async handleQuery(model, initPage = true) {
397
+ console.log('initPage', initPage, this.loading)
398
+ if (this.loading) {
399
+ return ''
400
+ }
401
+ this.loading = true
402
+ console.log('__log_err', 11)
403
+ this.pagination.page = initPage.page || 1
404
+ try {
405
+ let param = {
406
+ ...this.queryParams
407
+ }
408
+
409
+ if (this.queryParamFormatter && model) {
410
+ const formatParam = await this.queryParamFormatter(
411
+ model,
412
+ this.pagination
413
+ )
414
+
415
+ param = {
416
+ ...param,
417
+ ...formatParam
418
+ }
419
+ // 如果没有分页
420
+ !param.pagination && (param.pagination = this.pagination)
421
+ } else {
422
+ if (this.showPagination) {
423
+ param = {
424
+ ...param,
425
+ ...model,
426
+ pagination: this.pagination
427
+ }
428
+ } else {
429
+ param = {
430
+ ...param,
431
+ ...model
432
+ }
433
+ }
434
+ }
435
+ console.log('查询参数', param)
436
+
437
+ const key = this.httpMethod === 'get' ? 'params' : 'data'
438
+ if (this.httpMethod === 'get' && param.pagination) {
439
+ param['page.current'] = param.pagination.page
440
+ param['page.size'] = param.pagination.limit
441
+ delete param.pagination
442
+ }
443
+ let res = []
444
+ await axios({
445
+ url: this.url,
446
+ method: this.httpMethod,
447
+ [key]: param
448
+ })
449
+ .then((data) => {
450
+ res = data
451
+ this.loading = false
452
+ console.log('__log_返回数据', data)
453
+ })
454
+ .catch(() => {
455
+ this.loading = false
456
+ })
457
+
458
+ let tableData = res.list || res
459
+
460
+ if (this.tableDataKey) {
461
+ tableData = tableData[this.tableDataKey]
462
+ }
463
+
464
+ // 后台报错时
465
+ if (!(tableData instanceof Array)) {
466
+ tableData = []
467
+ }
468
+
469
+ this.tableData = this.queryDataFormatter
470
+ ? await this.queryDataFormatter(tableData)
471
+ : tableData
472
+ this.hasInit = true
473
+ this.loading = false
474
+
475
+ if (this.showPagination) {
476
+ this.pagination.total = res.total
477
+ }
478
+ } catch (err) {
479
+ this.loading = false
480
+ console.error(err)
481
+ }
482
+ },
483
+
484
+ handlePaginationChange({ page }) {
485
+ this.$nextTick(() => {
486
+ this.$refs.formCustom.handleExpectQuery({
487
+ initPage: page === 1,
488
+ page
489
+ })
490
+ })
491
+ },
492
+
493
+ setSelectOptions(val) {
494
+ if (this.remote && val) {
495
+ let options
496
+
497
+ if (this.multiple) {
498
+ options = val.map((item) => {
499
+ return {
500
+ label: item[this.labelKey],
501
+ value: item
502
+ }
503
+ })
504
+ } else {
505
+ options = [
506
+ {
507
+ label: val[this.labelKey],
508
+ value: val
509
+ }
510
+ ]
511
+ }
512
+
513
+ this.$refs.selectCustom.setRemoteOptions(options)
514
+ }
515
+ },
516
+
517
+ handleMultipleChange(val) {
518
+ this.multipleSelected = val
519
+ },
520
+
521
+ handleMultipleConfirm() {
522
+ this._value = this.multipleSelected
523
+ },
524
+
525
+ async handleSelectClick() {
526
+ if (this.account) {
527
+ this._formConfig[0].default = this.account
528
+ this._formConfig[1].default = null
529
+ }
530
+ },
531
+
532
+ handleTableChange({ recordId, ...val }) {
533
+ this.dialogVisible = false
534
+ // console.log(recordId, val)
535
+ this.$emit('recordId-change', { recordId })
536
+ this.$emit('selectindialog-change', val)
537
+ }
538
+ }
539
+ }
540
+ </script>
541
+
542
+ <style lang="scss">
543
+ .select-in-dialog {
544
+ display: inline-block;
545
+ &.is-disabled &-result {
546
+ background-color: #f5f7fa;
547
+ .select-in-dialog-result-remote-icon {
548
+ cursor: not-allowed;
549
+ }
550
+ }
551
+ &-result {
552
+ width: 100%;
553
+ height: 29px;
554
+ border: 1px solid #ccc;
555
+ cursor: pointer;
556
+ background-color: #fff;
557
+ display: flex;
558
+ align-items: center;
559
+ border-radius: 5px;
560
+ overflow: hidden;
561
+ &:hover &-clear {
562
+ display: inline !important;
563
+ }
564
+ & > .el-select {
565
+ flex: 1;
566
+ height: 100%;
567
+ .el-input--suffix {
568
+ height: 100%;
569
+ margin: 0;
570
+ .el-input__suffix {
571
+ .el-input__suffix-inner {
572
+ height: 100%;
573
+ display: flex;
574
+ align-items: center;
575
+ position: relative;
576
+ .el-icon-circle-close {
577
+ width: 100%;
578
+ height: 100%;
579
+ display: block;
580
+ font-size: 16px;
581
+ position: relative;
582
+ &::before {
583
+ position: absolute;
584
+ top: 50%;
585
+ left: 10%;
586
+ transform: translate(-10%, -50%);
587
+ }
588
+ }
589
+ }
590
+ }
591
+ }
592
+ .el-input.is-focus {
593
+ .el-input__inner {
594
+ box-shadow: none;
595
+ }
596
+ }
597
+ .el-input__inner {
598
+ border-top-right-radius: 0;
599
+ border-bottom-right-radius: 0;
600
+ border: none;
601
+ height: 100%;
602
+ &:focus {
603
+ box-shadow: none;
604
+ }
605
+ }
606
+ .el-tag__close::before {
607
+ transform: translateX(-5.5px);
608
+ }
609
+ }
610
+ &-remote-icon {
611
+ border-left: 1px solid #ccc;
612
+ }
613
+ &-clear {
614
+ display: none !important;
615
+ color: #ccc !important;
616
+ &:hover {
617
+ color: #ccc !important;
618
+ }
619
+ }
620
+ & > span {
621
+ flex: 1;
622
+ display: inline-block;
623
+ overflow: hidden;
624
+ text-overflow: ellipsis;
625
+ padding: 0 15px;
626
+ }
627
+ .el-icon-search {
628
+ padding: 0 8px;
629
+ }
630
+ }
631
+ .select-in-dialog-result {
632
+ height: 32px;
633
+ .el-select .el-tag__close {
634
+ font-size: 14px;
635
+ &::before {
636
+ transform: none;
637
+ color: #fff;
638
+ }
639
+ }
640
+ }
641
+ .form-base-wrapper {
642
+ display: flex;
643
+ // flex-direction: column;
644
+ flex-wrap: wrap;
645
+ justify-content: space-between;
646
+ }
647
+ }
648
+ </style>