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,176 @@
1
+ <template>
2
+ <NstcDialog v-model="dialogVisible"
3
+ v-bind="$attrs"
4
+ @confirm="handleConfirm"
5
+ @cancel="handleCancel">
6
+ <slot name="before" />
7
+ <NstcForm
8
+ ref="dialogForm"
9
+ v-model="formModel"
10
+ :reset.sync="reset"
11
+ :mount-and-query="false"
12
+ :config="formConfig"
13
+ :rules="rules"
14
+ :pureable="pureable"
15
+ :label-position="labelPosition"
16
+ :label-width="labelWidth"
17
+ :show-message="showMessage"
18
+ :validate-on-rule-change="validateOnRuleChange"
19
+ :mode="mode"
20
+ />
21
+ <slot name="after" />
22
+
23
+ </NstcDialog>
24
+ </template>
25
+
26
+ <script>
27
+ import NstcDialog from '../NstcDialog/NstcDialog'
28
+ import NstcForm from '../NstcForm/Component'
29
+ export default {
30
+ name: "NstcDialogForm",
31
+ components: {
32
+ NstcDialog,
33
+ NstcForm
34
+ },
35
+ inheritAttrs: false,
36
+ model: {
37
+ prop: 'formModel'
38
+ },
39
+
40
+ props: {
41
+ formModel: {
42
+ default: () => ({}),
43
+ type: Object
44
+ },
45
+
46
+ visible: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+
51
+ showMessage: {
52
+ type: Boolean,
53
+ default: true
54
+ },
55
+
56
+ formConfig: {
57
+ type: Array,
58
+ default: () => []
59
+ },
60
+
61
+ rules: {
62
+ type: Object,
63
+ default: null
64
+ },
65
+
66
+ labelPosition: {
67
+ type: String,
68
+ default: 'right'
69
+ },
70
+
71
+ labelWidth: {
72
+ type: [String, Number],
73
+ default: 80
74
+ },
75
+
76
+ resetAfterClose: {
77
+ type: Boolean,
78
+ default: true
79
+ },
80
+
81
+ // 是否是纯净模式 (删除 renderable === false 的item.prop对应model的值)
82
+ pureable: {
83
+ default: false,
84
+ type: Boolean
85
+ },
86
+
87
+ validateOnRuleChange: {
88
+ default: false,
89
+ type: Boolean
90
+ },
91
+
92
+ mode: {
93
+ default: 'horizontal',
94
+ validator: function(val) {
95
+ return ['horizontal', 'vertical'].includes(val)
96
+ }
97
+ }
98
+ },
99
+
100
+ data() {
101
+ return {
102
+ reset: false
103
+ }
104
+ },
105
+
106
+ computed: {
107
+ dialogVisible: {
108
+ get() {
109
+ return this.visible
110
+ },
111
+ set(val) {
112
+ this.$emit('update:visible', val)
113
+ }
114
+ }
115
+ },
116
+
117
+ watch: {
118
+ formModel: {
119
+ deep: true,
120
+ handler(val) {
121
+ this.$emit('input', val)
122
+ this.$emit('change', val)
123
+ }
124
+ }
125
+ },
126
+
127
+ methods: {
128
+ async handleConfirm() {
129
+ try {
130
+ if (this.rules) {
131
+ await this.$refs.dialogForm.validate()
132
+ }
133
+
134
+ if (this.$listeners.confirm) {
135
+ await this.$listeners.confirm(this.formModel) // $listeners.confirm 须返回Promise
136
+ }
137
+
138
+ await this.$nextTick()
139
+
140
+ this.handleReset()
141
+
142
+ return Promise.resolve()
143
+ } catch (err) {
144
+ return Promise.reject(err)
145
+ }
146
+ },
147
+
148
+ async handleCancel() {
149
+ try {
150
+ const model = JSON.parse(JSON.stringify(this.formModel))
151
+
152
+ this.$listeners.cancel && await this.$listeners.cancel(model) // $listeners.confirm 须返回Promise
153
+
154
+ this.handleReset()
155
+
156
+ return Promise.resolve()
157
+ } catch (err) {
158
+ return Promise.reject(err)
159
+ }
160
+ },
161
+
162
+ clearFormValidate() {
163
+ this.$refs.dialogForm.clearValidate()
164
+ },
165
+
166
+ handleReset() {
167
+ if (this.resetAfterClose) {
168
+ this.reset = true
169
+ this.$nextTick(() => {
170
+ this.$refs.dialogForm && this.$refs.dialogForm.clearValidate()
171
+ })
172
+ }
173
+ }
174
+ }
175
+ }
176
+ </script>
@@ -0,0 +1,280 @@
1
+ <template>
2
+ <el-dialog
3
+ v-drag
4
+ class="dialog-table"
5
+ :title="title"
6
+ :visible.sync="dialogVisible"
7
+ :width="width"
8
+ :close-on-click-modal="false"
9
+ :append-to-body="appendToBody"
10
+ >
11
+ <slot name="form"></slot>
12
+ <slot name="table">
13
+ <el-table
14
+ :data="tableData"
15
+ :row-key="rowKey"
16
+ border
17
+ :height="maxHeight"
18
+ @selection-change="handleSelectionChange"
19
+ @row-click="handleRowClick"
20
+ >
21
+ <el-table-column v-if="multiple" type="selection" :width="55" />
22
+ <el-table-column v-if="single" :width="55">
23
+ <template slot-scope="scope">
24
+ <el-radio
25
+ v-model="singleSelect"
26
+ class="row-radio"
27
+ :label="scope.row[rowKey]"
28
+ >
29
+ <i></i>
30
+ </el-radio>
31
+ </template>
32
+ </el-table-column>
33
+ <el-table-column
34
+ v-for="(column, idx) in columns"
35
+ :key="idx"
36
+ :label="column.label"
37
+ :width="column.width"
38
+ :align="column.align"
39
+ show-overflow-tooltip
40
+ >
41
+ <template slot-scope="scope"> {{ scope.row[column.prop] }} </template>
42
+ </el-table-column>
43
+ </el-table>
44
+ <nstc-pagination
45
+ v-model="pagination"
46
+ :page="pagination.current"
47
+ :page-size="pagination.size"
48
+ :total="pagination.total"
49
+ @pagination-change="paginationChange"
50
+ />
51
+ </slot>
52
+
53
+ <div slot="footer" class="btns">
54
+ <el-button type="primary" class="nstc-g6-common-btn-1" @click="onSubmit"
55
+ >确定</el-button
56
+ >
57
+ <el-button
58
+ class="nstc-g6-common-btn-3"
59
+ style="margin-left: 8px"
60
+ @click="closeDialog"
61
+ >取消</el-button
62
+ >
63
+ </div>
64
+ </el-dialog>
65
+ </template>
66
+
67
+ <script>
68
+ import NstcPagination from '../NstcPagination/NstcPagination'
69
+ export default {
70
+ name: 'NstcDialogTable',
71
+ components: {
72
+ NstcPagination
73
+ },
74
+ props: {
75
+ title: {
76
+ type: String,
77
+ default: ''
78
+ },
79
+ appendToBody: {
80
+ type: Boolean,
81
+ default: true
82
+ },
83
+ value: {
84
+ type: Boolean,
85
+ default: false
86
+ },
87
+ rowKey: {
88
+ type: String,
89
+ default: 'id'
90
+ },
91
+ columns: {
92
+ type: Array,
93
+ default: () => []
94
+ },
95
+ width: {
96
+ type: String,
97
+ default: '1000px'
98
+ },
99
+ maxHeight: {
100
+ type: String,
101
+ default: '300px'
102
+ },
103
+ multiple: {
104
+ type: Boolean,
105
+ default: false
106
+ },
107
+ single: {
108
+ type: Boolean,
109
+ default: false
110
+ },
111
+ queryApi: {
112
+ type: Function,
113
+ default: () => {}
114
+ },
115
+ formatParams: {
116
+ type: Function,
117
+ default: (p) => p
118
+ },
119
+ formatData: {
120
+ type: Function,
121
+ default: (d) => d
122
+ },
123
+ warning: {
124
+ type: String,
125
+ default: '请选择数据'
126
+ },
127
+ selectRowKey: String
128
+ },
129
+ data() {
130
+ return {
131
+ tableData: [],
132
+ singleSelect: '',
133
+ selectRowIds: [],
134
+ pagination: {
135
+ size: 20,
136
+ current: 1,
137
+ total: 0
138
+ }
139
+ }
140
+ },
141
+ computed: {
142
+ dialogVisible: {
143
+ get() {
144
+ return this.value
145
+ },
146
+ set(val) {
147
+ this.$emit('input', val)
148
+ }
149
+ },
150
+ showPagination() {
151
+ return this.pagination.total > this.pagination.size
152
+ }
153
+ },
154
+ methods: {
155
+ queryData(eventname) {
156
+ this.tableData = []
157
+ this.setPagination(0)
158
+ if (eventname && eventname == 'searchbtn') {
159
+ this.pagination.current = 1
160
+ }
161
+ let params = this.formatParams(this.pagination)
162
+ Promise.resolve(this.queryApi(params)).then((res) => {
163
+ let { data, total } = this.formatData(res)
164
+ this.tableData = data
165
+ this.setPagination(total)
166
+ this.setCurrentRow()
167
+ })
168
+ },
169
+
170
+ handleSelectionChange(rows) {
171
+ if (this.multiple) {
172
+ const rowIds = []
173
+ rows.forEach((item) => {
174
+ rowIds.push(item[this.rowKey])
175
+ })
176
+ this.selectRowIds = Object.freeze(rowIds)
177
+ }
178
+ },
179
+
180
+ handleRowClick(row) {
181
+ this.singleSelect = row[this.rowKey]
182
+ },
183
+
184
+ onSubmit() {
185
+ let result = []
186
+ let row = {}
187
+ if (this.multiple) {
188
+ result = this.selectRowIds
189
+ }
190
+ if (this.single) {
191
+ let select = this.singleSelect
192
+ result = select ? [select] : []
193
+ }
194
+ if (result.length > 0) {
195
+ row = this.tableData.find(
196
+ (item) => item[this.rowKey] === this.singleSelect
197
+ )
198
+ this.$emit('comfirm', result, row)
199
+ this.closeDialog()
200
+ } else {
201
+ this.$message.warning(this.warning)
202
+ }
203
+ },
204
+
205
+ closeDialog() {
206
+ this.dialogVisible = false
207
+ this.selectRowIds = []
208
+ this.singleSelect = ''
209
+ this.tableData = []
210
+ },
211
+
212
+ async paginationChange(val) {
213
+ const { limit, page } = val
214
+ if (this.pagination.size == limit && this.pagination.current == page) {
215
+ return
216
+ }
217
+ this.pagination.size = limit
218
+ this.pagination.current = page
219
+ this.queryData()
220
+ },
221
+
222
+ setPagination(total) {
223
+ this.pagination.total = total || 0
224
+ },
225
+
226
+ setCurrentRow() {
227
+ let selectRowId = this.selectRowKey
228
+ if (this.single) {
229
+ let rowKey = this.rowKey
230
+ let data = this.tableData
231
+ let val = selectRowId
232
+ if (selectRowId) {
233
+ let row = data.find((item) => item[rowKey] == selectRowId)
234
+ if (row) {
235
+ val = row[rowKey]
236
+ }
237
+ }
238
+ this.singleSelect = val
239
+ }
240
+ }
241
+ }
242
+ }
243
+ </script>
244
+
245
+ <!-- <style lang="scss" scoped>
246
+ .dialog-table .el-dialog {
247
+ position: relative;
248
+ overflow: hidden;
249
+ }
250
+ .dialog-table ::v-deep .el-dialog__body {
251
+ padding-bottom: 0 !important;
252
+ }
253
+ .dialog-table .el-table.el-table--border {
254
+ border-bottom: none;
255
+ }
256
+ .dialog-table .el-table.el-table--border::before {
257
+ height: 1px;
258
+ }
259
+
260
+ .dialog-table .el-dialog__body {
261
+ margin-bottom: 35px;
262
+ }
263
+ .dialog-table .el-dialog__footer {
264
+ position: absolute;
265
+ bottom: 0;
266
+ width: 100%;
267
+ border-radius: 0px 0px 4px 4px;
268
+ background: #fff;
269
+ }
270
+ // .dialog-table ::v-deep .el-table__body tr:last-child td {
271
+ // border-bottom: none;
272
+ // }
273
+ .dialog-table .el-dialog__footer .btns {
274
+ display: flex;
275
+ justify-content: center;
276
+ }
277
+ .row-radio ::v-deep .el-radio__label {
278
+ padding: 0;
279
+ }
280
+ </style> -->
@@ -0,0 +1,52 @@
1
+ <!--
2
+ 功能: 表格里面的弹框
3
+ 作者: nstc
4
+ 创建时间: 2021-02-04
5
+ -->
6
+ <template>
7
+ <el-dropdown
8
+ v-bind="$attrs"
9
+ v-on="$listeners"
10
+ >
11
+ <slot />
12
+ <el-dropdown-menu slot="dropdown">
13
+ <el-dropdown-item
14
+ v-for="(item,index) in options"
15
+ :key="index"
16
+ v-bind="item"
17
+ :command="item"
18
+ >
19
+ {{ item.label }}
20
+ </el-dropdown-item>
21
+ </el-dropdown-menu>
22
+ </el-dropdown>
23
+ </template>
24
+
25
+ <script>
26
+ export default {
27
+ name: 'NstcDropdown',
28
+
29
+ inheritAttrs: false,
30
+
31
+ props: {
32
+ options: {
33
+ type: Array,
34
+ default: () => []
35
+ }
36
+ },
37
+
38
+ data() {
39
+ return {}
40
+ },
41
+
42
+ created() {},
43
+
44
+ methods: {
45
+ handleClick() {},
46
+
47
+ handleCommand() {}
48
+ }
49
+ }
50
+ </script>
51
+
52
+