ylyx-cli 1.0.16 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +313 -276
  2. package/bin/ylyx.js +176 -168
  3. package/lib/config.js +325 -283
  4. package/lib/deploy.js +509 -529
  5. package/lib/environments.js +111 -0
  6. package/lib/generator.js +192 -192
  7. package/lib/index.js +113 -113
  8. package/lib/interactive.js +87 -87
  9. package/lib/remote.js +179 -179
  10. package/lib/template.js +174 -174
  11. package/lib/utils.js +148 -148
  12. package/package.json +61 -59
  13. package/templates/react-app/files/.gitignore +22 -0
  14. package/templates/react-app/files/README.md +23 -23
  15. package/templates/react-app/files/package.json +28 -28
  16. package/templates/react-app/files/public/index.html +11 -11
  17. package/templates/react-app/files/src/App.css +15 -15
  18. package/templates/react-app/files/src/App.js +15 -15
  19. package/templates/react-app/files/src/index.css +10 -10
  20. package/templates/react-app/files/src/index.js +11 -11
  21. package/templates/react-app/template.json +11 -11
  22. package/templates/react-component/files/Component.module.css +5 -5
  23. package/templates/react-component/files/Component.tsx +31 -31
  24. package/templates/react-component/files/index.ts +2 -2
  25. package/templates/react-component/template.json +48 -48
  26. package/templates/vue-app/files/.editorconfig +14 -14
  27. package/templates/vue-app/files/.env.development +21 -21
  28. package/templates/vue-app/files/.env.production +18 -18
  29. package/templates/vue-app/files/.eslintignore +5 -5
  30. package/templates/vue-app/files/.eslintrc.js +267 -267
  31. package/templates/vue-app/files/.gitignore +24 -0
  32. package/templates/vue-app/files/.prettierignore +11 -11
  33. package/templates/vue-app/files/.travis.yml +5 -5
  34. package/templates/vue-app/files/.vscode/extensions.json +7 -7
  35. package/templates/vue-app/files/.vscode/settings.json +39 -39
  36. package/templates/vue-app/files/LICENSE +191 -191
  37. package/templates/vue-app/files/README.md +87 -87
  38. package/templates/vue-app/files/babel.config.js +11 -11
  39. package/templates/vue-app/files/jest.config.js +24 -24
  40. package/templates/vue-app/files/package.json +136 -136
  41. package/templates/vue-app/files/plopfile.js +7 -7
  42. package/templates/vue-app/files/postcss.config.js +5 -5
  43. package/templates/vue-app/files/public/default.js +25 -25
  44. package/templates/vue-app/files/public/index.html +26 -26
  45. package/templates/vue-app/files/src/App.vue +54 -54
  46. package/templates/vue-app/files/src/api/bigDataV/index.js +198 -198
  47. package/templates/vue-app/files/src/api/data.js +42 -42
  48. package/templates/vue-app/files/src/api/dataArchive/index.js +186 -186
  49. package/templates/vue-app/files/src/api/generator/genConfig.js +16 -16
  50. package/templates/vue-app/files/src/api/generator/generator.js +32 -32
  51. package/templates/vue-app/files/src/api/indexManagement/index.js +39 -39
  52. package/templates/vue-app/files/src/api/institutionMonitor/index.js +396 -396
  53. package/templates/vue-app/files/src/api/institutionSet/index.js +120 -120
  54. package/templates/vue-app/files/src/api/login.js +44 -44
  55. package/templates/vue-app/files/src/api/selfStatistics/index.js +50 -50
  56. package/templates/vue-app/files/src/api/system/code.js +15 -15
  57. package/templates/vue-app/files/src/api/system/dict.js +34 -34
  58. package/templates/vue-app/files/src/api/system/dictDetail.js +52 -52
  59. package/templates/vue-app/files/src/api/system/equipment.js +35 -35
  60. package/templates/vue-app/files/src/api/system/examManage.js +49 -49
  61. package/templates/vue-app/files/src/api/system/examProject.js +48 -48
  62. package/templates/vue-app/files/src/api/system/hosModel.js +35 -35
  63. package/templates/vue-app/files/src/api/system/hospital.js +88 -88
  64. package/templates/vue-app/files/src/api/system/job.js +40 -40
  65. package/templates/vue-app/files/src/api/system/menu.js +67 -67
  66. package/templates/vue-app/files/src/api/system/model.js +42 -42
  67. package/templates/vue-app/files/src/api/system/risConfig.js +9 -9
  68. package/templates/vue-app/files/src/api/system/role.js +64 -64
  69. package/templates/vue-app/files/src/api/system/sysSet.js +19 -19
  70. package/templates/vue-app/files/src/api/system/timing.js +41 -41
  71. package/templates/vue-app/files/src/api/system/user.js +121 -121
  72. package/templates/vue-app/files/src/api/tools/alipay.js +25 -25
  73. package/templates/vue-app/files/src/api/tools/email.js +24 -24
  74. package/templates/vue-app/files/src/api/tools/localStorage.js +27 -27
  75. package/templates/vue-app/files/src/api/tools/qiniu.js +40 -40
  76. package/templates/vue-app/files/src/assets/css/font-awesome.css +2342 -2342
  77. package/templates/vue-app/files/src/assets/css/font-awesome.min.css +2336 -2336
  78. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.svg +2671 -2671
  79. package/templates/vue-app/files/src/assets/icons/index.js +9 -9
  80. package/templates/vue-app/files/src/assets/icons/svg/hospital.svg +1 -1
  81. package/templates/vue-app/files/src/assets/icons/svg/hospital1.svg +1 -1
  82. package/templates/vue-app/files/src/assets/icons/svg/loginOne.svg +35 -35
  83. package/templates/vue-app/files/src/assets/icons/svg/loginOneWhite.svg +19 -19
  84. package/templates/vue-app/files/src/assets/icons/svg/loginOr.svg +93 -93
  85. package/templates/vue-app/files/src/assets/icons/svg/loginUp.svg +96 -96
  86. package/templates/vue-app/files/src/assets/icons/svg/monitor.svg +1 -1
  87. package/templates/vue-app/files/src/assets/icons/svg/offline.svg +1 -1
  88. package/templates/vue-app/files/src/assets/icons/svg/online.svg +1 -1
  89. package/templates/vue-app/files/src/assets/icons/svg/system.svg +1 -1
  90. package/templates/vue-app/files/src/assets/icons/svgo.yml +21 -21
  91. package/templates/vue-app/files/src/assets/styles/btn.scss +103 -103
  92. package/templates/vue-app/files/src/assets/styles/eladmin.scss +124 -124
  93. package/templates/vue-app/files/src/assets/styles/element-ui.scss +217 -217
  94. package/templates/vue-app/files/src/assets/styles/element-variables.scss +31 -31
  95. package/templates/vue-app/files/src/assets/styles/global.scss +73 -73
  96. package/templates/vue-app/files/src/assets/styles/index.scss +220 -220
  97. package/templates/vue-app/files/src/assets/styles/mixin.scss +60 -60
  98. package/templates/vue-app/files/src/assets/styles/publicStyle.scss +224 -224
  99. package/templates/vue-app/files/src/assets/styles/sidebar.scss +239 -239
  100. package/templates/vue-app/files/src/assets/styles/transition.scss +48 -48
  101. package/templates/vue-app/files/src/assets/styles/variables.scss +44 -44
  102. package/templates/vue-app/files/src/common/flexible.js +145 -145
  103. package/templates/vue-app/files/src/components/Breadcrumb/index.vue +87 -87
  104. package/templates/vue-app/files/src/components/Crud/CRUD.operation.vue +248 -248
  105. package/templates/vue-app/files/src/components/Crud/Pagination.vue +20 -20
  106. package/templates/vue-app/files/src/components/Crud/RR.operation.vue +39 -39
  107. package/templates/vue-app/files/src/components/Crud/UD.operation.vue +106 -106
  108. package/templates/vue-app/files/src/components/Crud/crud.js +907 -907
  109. package/templates/vue-app/files/src/components/Crud/user/UR.operation.vue +154 -154
  110. package/templates/vue-app/files/src/components/DateRangePicker/index.vue +42 -42
  111. package/templates/vue-app/files/src/components/DateRangePickerProhibitNext/index.vue +42 -42
  112. package/templates/vue-app/files/src/components/DateRangePickerProhibitTodayNext/index.vue +48 -48
  113. package/templates/vue-app/files/src/components/Dict/Dict.js +31 -31
  114. package/templates/vue-app/files/src/components/Dict/index.js +29 -29
  115. package/templates/vue-app/files/src/components/Doc/index.vue +16 -16
  116. package/templates/vue-app/files/src/components/Echarts/BarChart.vue +115 -115
  117. package/templates/vue-app/files/src/components/Echarts/Category.vue +768 -768
  118. package/templates/vue-app/files/src/components/Echarts/Funnel.vue +120 -120
  119. package/templates/vue-app/files/src/components/Echarts/Gauge.vue +74 -74
  120. package/templates/vue-app/files/src/components/Echarts/Graph.vue +101 -101
  121. package/templates/vue-app/files/src/components/Echarts/HeatMap.vue +301 -301
  122. package/templates/vue-app/files/src/components/Echarts/Line3D.vue +110 -110
  123. package/templates/vue-app/files/src/components/Echarts/PieChart.vue +84 -84
  124. package/templates/vue-app/files/src/components/Echarts/Point.vue +161 -161
  125. package/templates/vue-app/files/src/components/Echarts/RadarChart.vue +123 -123
  126. package/templates/vue-app/files/src/components/Echarts/Rich.vue +160 -160
  127. package/templates/vue-app/files/src/components/Echarts/Sankey.vue +114 -114
  128. package/templates/vue-app/files/src/components/Echarts/Scatter.vue +192 -192
  129. package/templates/vue-app/files/src/components/Echarts/Sunburst.vue +127 -127
  130. package/templates/vue-app/files/src/components/Echarts/ThemeRiver.vue +233 -233
  131. package/templates/vue-app/files/src/components/Echarts/WordCloud.vue +201 -201
  132. package/templates/vue-app/files/src/components/GithubCorner/index.vue +55 -55
  133. package/templates/vue-app/files/src/components/Hamburger/index.vue +44 -44
  134. package/templates/vue-app/files/src/components/HeaderSearch/index.vue +196 -196
  135. package/templates/vue-app/files/src/components/IconSelect/index.vue +74 -74
  136. package/templates/vue-app/files/src/components/IconSelect/requireIcons.js +10 -10
  137. package/templates/vue-app/files/src/components/Iframe/index.vue +30 -30
  138. package/templates/vue-app/files/src/components/JavaEdit/index.vue +78 -78
  139. package/templates/vue-app/files/src/components/Pagination/index.vue +100 -100
  140. package/templates/vue-app/files/src/components/PanThumb/index.vue +149 -149
  141. package/templates/vue-app/files/src/components/ParentView/index.vue +3 -3
  142. package/templates/vue-app/files/src/components/Permission/index.js +13 -13
  143. package/templates/vue-app/files/src/components/Permission/permission.js +21 -21
  144. package/templates/vue-app/files/src/components/RightPanel/index.vue +149 -149
  145. package/templates/vue-app/files/src/components/Screenfull/index.vue +60 -60
  146. package/templates/vue-app/files/src/components/SizeSelect/index.vue +60 -60
  147. package/templates/vue-app/files/src/components/SvgIcon/index.vue +66 -66
  148. package/templates/vue-app/files/src/components/ThemePicker/index.vue +177 -177
  149. package/templates/vue-app/files/src/components/UploadExcel/index.vue +149 -149
  150. package/templates/vue-app/files/src/components/WaterMark/setWaterMark.js +68 -68
  151. package/templates/vue-app/files/src/components/WaterMark/waterMark.vue +69 -69
  152. package/templates/vue-app/files/src/components/Xgplayer/index.vue +49 -49
  153. package/templates/vue-app/files/src/components/YamlEdit/index.vue +81 -81
  154. package/templates/vue-app/files/src/layout/components/AppMain.vue +67 -67
  155. package/templates/vue-app/files/src/layout/components/Navbar.vue +209 -209
  156. package/templates/vue-app/files/src/layout/components/Settings/index.vue +125 -125
  157. package/templates/vue-app/files/src/layout/components/Sidebar/FixiOSBug.js +26 -26
  158. package/templates/vue-app/files/src/layout/components/Sidebar/Item.vue +29 -29
  159. package/templates/vue-app/files/src/layout/components/Sidebar/Link.vue +35 -35
  160. package/templates/vue-app/files/src/layout/components/Sidebar/Logo.vue +93 -93
  161. package/templates/vue-app/files/src/layout/components/Sidebar/SidebarItem.vue +104 -104
  162. package/templates/vue-app/files/src/layout/components/Sidebar/index.vue +79 -79
  163. package/templates/vue-app/files/src/layout/components/TagsView/ScrollPane.vue +90 -90
  164. package/templates/vue-app/files/src/layout/components/TagsView/index.vue +299 -299
  165. package/templates/vue-app/files/src/layout/components/index.js +5 -5
  166. package/templates/vue-app/files/src/layout/index.vue +119 -119
  167. package/templates/vue-app/files/src/layout/mixin/ResizeHandler.js +45 -45
  168. package/templates/vue-app/files/src/main.js +89 -89
  169. package/templates/vue-app/files/src/mixins/crud.js +348 -348
  170. package/templates/vue-app/files/src/router/index.js +156 -156
  171. package/templates/vue-app/files/src/router/routers.js +203 -203
  172. package/templates/vue-app/files/src/settings.js +57 -57
  173. package/templates/vue-app/files/src/store/getters.js +29 -29
  174. package/templates/vue-app/files/src/store/index.js +25 -25
  175. package/templates/vue-app/files/src/store/modules/api.js +33 -33
  176. package/templates/vue-app/files/src/store/modules/app.js +55 -55
  177. package/templates/vue-app/files/src/store/modules/permission.js +79 -79
  178. package/templates/vue-app/files/src/store/modules/register.js +17 -17
  179. package/templates/vue-app/files/src/store/modules/settings.js +46 -46
  180. package/templates/vue-app/files/src/store/modules/tagsView.js +168 -168
  181. package/templates/vue-app/files/src/store/modules/user.js +119 -119
  182. package/templates/vue-app/files/src/utils/auth.js +18 -18
  183. package/templates/vue-app/files/src/utils/base64ToFile.js +27 -27
  184. package/templates/vue-app/files/src/utils/clipboard.js +36 -36
  185. package/templates/vue-app/files/src/utils/datetime.js +289 -289
  186. package/templates/vue-app/files/src/utils/getBlobFile.js +10 -10
  187. package/templates/vue-app/files/src/utils/getTime.js +29 -29
  188. package/templates/vue-app/files/src/utils/index.js +520 -520
  189. package/templates/vue-app/files/src/utils/permission.js +29 -29
  190. package/templates/vue-app/files/src/utils/pinyin.js +450 -450
  191. package/templates/vue-app/files/src/utils/request.js +139 -139
  192. package/templates/vue-app/files/src/utils/rsaEncrypt.js +37 -37
  193. package/templates/vue-app/files/src/utils/shortcuts.js +210 -210
  194. package/templates/vue-app/files/src/utils/upload.js +12 -12
  195. package/templates/vue-app/files/src/utils/validate.js +262 -262
  196. package/templates/vue-app/files/src/views/components/Echarts.vue +124 -124
  197. package/templates/vue-app/files/src/views/components/Editor.vue +75 -75
  198. package/templates/vue-app/files/src/views/components/MarkDown.vue +44 -44
  199. package/templates/vue-app/files/src/views/components/UVideo.vue +37 -37
  200. package/templates/vue-app/files/src/views/components/YamlEdit.vue +206 -206
  201. package/templates/vue-app/files/src/views/components/camera/camera.vue +115 -115
  202. package/templates/vue-app/files/src/views/components/camera/cameraTest.vue +158 -158
  203. package/templates/vue-app/files/src/views/components/excel/upload-excel.vue +41 -41
  204. package/templates/vue-app/files/src/views/components/icons/element-icons.js +74 -74
  205. package/templates/vue-app/files/src/views/components/icons/index.vue +106 -106
  206. package/templates/vue-app/files/src/views/components/icons/svg-icons.js +10 -10
  207. package/templates/vue-app/files/src/views/components/scroll/index.vue +107 -107
  208. package/templates/vue-app/files/src/views/components/scrollFull/index.vue +99 -99
  209. package/templates/vue-app/files/src/views/dashboard/LineChart.vue +138 -138
  210. package/templates/vue-app/files/src/views/dashboard/PanelGroup.vue +173 -173
  211. package/templates/vue-app/files/src/views/dashboard/mixins/resize.js +57 -57
  212. package/templates/vue-app/files/src/views/dataArchive/delTable.vue +354 -354
  213. package/templates/vue-app/files/src/views/dataArchive/exportDetail.vue +121 -121
  214. package/templates/vue-app/files/src/views/dataArchive/exportList.vue +160 -160
  215. package/templates/vue-app/files/src/views/dataArchive/index.vue +2104 -2104
  216. package/templates/vue-app/files/src/views/features/401.vue +83 -83
  217. package/templates/vue-app/files/src/views/features/404.vue +226 -226
  218. package/templates/vue-app/files/src/views/features/redirect.vue +12 -12
  219. package/templates/vue-app/files/src/views/generator/config.vue +348 -348
  220. package/templates/vue-app/files/src/views/generator/index.vue +143 -143
  221. package/templates/vue-app/files/src/views/generator/preview.vue +39 -39
  222. package/templates/vue-app/files/src/views/home.vue +80 -80
  223. package/templates/vue-app/files/src/views/indexManagement/index.vue +422 -422
  224. package/templates/vue-app/files/src/views/indexManagement/other.vue +286 -286
  225. package/templates/vue-app/files/src/views/institutionMonitor/components/LineChart.vue +191 -191
  226. package/templates/vue-app/files/src/views/institutionMonitor/index.scss +339 -339
  227. package/templates/vue-app/files/src/views/institutionMonitor/index.vue +1385 -1385
  228. package/templates/vue-app/files/src/views/institutionMonitor/mixins/resize.js +57 -57
  229. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/checkProjectCode.vue +267 -267
  230. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/imageAbnormalMonitor.vue +361 -361
  231. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/index.vue +686 -686
  232. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/leakageAnomaly.vue +270 -270
  233. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/moveMonitore.vue +114 -114
  234. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/qualityMonitore.vue +338 -338
  235. package/templates/vue-app/files/src/views/institutionSet/cloudSet.vue +534 -534
  236. package/templates/vue-app/files/src/views/institutionSet/index.vue +2550 -2550
  237. package/templates/vue-app/files/src/views/login.vue +243 -243
  238. package/templates/vue-app/files/src/views/qualityLogin.vue +280 -280
  239. package/templates/vue-app/files/src/views/selfStatistics/components/LineChart.vue +296 -296
  240. package/templates/vue-app/files/src/views/selfStatistics/hospitalDetail/index.vue +533 -533
  241. package/templates/vue-app/files/src/views/selfStatistics/index.scss +447 -447
  242. package/templates/vue-app/files/src/views/selfStatistics/index.vue +903 -903
  243. package/templates/vue-app/files/src/views/selfStatistics/mixins/resize.js +57 -57
  244. package/templates/vue-app/files/src/views/selfStatistics/monitorDetail/index.vue +285 -285
  245. package/templates/vue-app/files/src/views/selfStatistics/offlineDetail/index.vue +104 -104
  246. package/templates/vue-app/files/src/views/selfStatistics/selfActiveDetail/index.vue +104 -104
  247. package/templates/vue-app/files/src/views/selfStatistics/selfMonitorDetail/index.vue +420 -420
  248. package/templates/vue-app/files/src/views/selfStatistics/setWaterMark/setWaterMark.js +68 -68
  249. package/templates/vue-app/files/src/views/selfStatistics/setWaterMark/waterMark.vue +69 -69
  250. package/templates/vue-app/files/src/views/system/dept/index.vue +144 -144
  251. package/templates/vue-app/files/src/views/system/dict/dictDetail.vue +146 -146
  252. package/templates/vue-app/files/src/views/system/dict/index.vue +159 -159
  253. package/templates/vue-app/files/src/views/system/examModality/index.vue +174 -174
  254. package/templates/vue-app/files/src/views/system/examPart/index.vue +184 -184
  255. package/templates/vue-app/files/src/views/system/examProject/index.vue +321 -321
  256. package/templates/vue-app/files/src/views/system/examine/index.vue +66 -66
  257. package/templates/vue-app/files/src/views/system/job/index.vue +119 -119
  258. package/templates/vue-app/files/src/views/system/job/module/form.vue +72 -72
  259. package/templates/vue-app/files/src/views/system/job/module/header.vue +48 -48
  260. package/templates/vue-app/files/src/views/system/menu/index.vue +327 -327
  261. package/templates/vue-app/files/src/views/system/model/index.vue +285 -285
  262. package/templates/vue-app/files/src/views/system/role/index.vue +434 -434
  263. package/templates/vue-app/files/src/views/system/sysSet/index.vue +84 -84
  264. package/templates/vue-app/files/src/views/system/timing/index.vue +289 -289
  265. package/templates/vue-app/files/src/views/system/timing/log.vue +143 -143
  266. package/templates/vue-app/files/src/views/system/user/admin.vue +414 -414
  267. package/templates/vue-app/files/src/views/system/user/center/updateEmail.vue +146 -146
  268. package/templates/vue-app/files/src/views/system/user/center/updatePass.vue +168 -168
  269. package/templates/vue-app/files/src/views/system/user/center.vue +140 -140
  270. package/templates/vue-app/files/src/views/system/user/index.vue +972 -972
  271. package/templates/vue-app/files/src/views/systemSet/role/index.vue +314 -314
  272. package/templates/vue-app/files/src/views/systemSet/user/admin.vue +414 -414
  273. package/templates/vue-app/files/src/views/systemSet/user/center/updateEmail.vue +146 -146
  274. package/templates/vue-app/files/src/views/systemSet/user/center/updatePass.vue +115 -115
  275. package/templates/vue-app/files/src/views/systemSet/user/center.vue +351 -351
  276. package/templates/vue-app/files/src/views/systemSet/user/index.vue +928 -928
  277. package/templates/vue-app/files/src/views/tools/aliPay/config.vue +102 -102
  278. package/templates/vue-app/files/src/views/tools/aliPay/index.vue +48 -48
  279. package/templates/vue-app/files/src/views/tools/aliPay/toPay.vue +91 -91
  280. package/templates/vue-app/files/src/views/tools/email/config.vue +91 -91
  281. package/templates/vue-app/files/src/views/tools/email/index.vue +42 -42
  282. package/templates/vue-app/files/src/views/tools/email/send.vue +159 -159
  283. package/templates/vue-app/files/src/views/tools/storage/index.vue +35 -35
  284. package/templates/vue-app/files/src/views/tools/storage/local/index.vue +207 -207
  285. package/templates/vue-app/files/src/views/tools/storage/qiniu/form.vue +108 -108
  286. package/templates/vue-app/files/src/views/tools/storage/qiniu/index.vue +241 -241
  287. package/templates/vue-app/files/src/views/tools/swagger/index.vue +14 -14
  288. package/templates/vue-app/files/vue.config.js +173 -173
  289. package/templates/vue-app/template.json +29 -29
@@ -1,348 +1,348 @@
1
- import { initData, download } from '@/api/data';
2
- import { parseTime, downloadFile } from '@/utils/index';
3
-
4
- export default {
5
- data() {
6
- return {
7
- // 表格数据
8
- data: [],
9
- // 排序规则,默认 id 降序, 支持多字段排序 ['id,desc', 'createTime,asc']
10
- sort: ['id,desc'],
11
- // 页码
12
- page: 0,
13
- // 每页数据条数
14
- size: 10,
15
- // 总数据条数
16
- total: 0,
17
- // 请求数据的url
18
- url: '',
19
- // 查询数据的参数
20
- params: {},
21
- // 待查询的对象
22
- query: {},
23
- // 等待时间
24
- time: 50,
25
- // 是否为新增类型的表单
26
- isAdd: false,
27
- // 导出的 Loading
28
- downloadLoading: false,
29
- // 表格 Loading 属性
30
- loading: true,
31
- // 删除 Loading 属性
32
- delLoading: false,
33
- delAllLoading: false,
34
- // 弹窗属性
35
- dialog: false,
36
- // Form 表单
37
- form: {},
38
- // 重置表单
39
- resetForm: {},
40
- // 标题
41
- title: '',
42
- };
43
- },
44
- methods: {
45
- parseTime,
46
- downloadFile,
47
- async init() {
48
- if (!(await this.beforeInit())) {
49
- return;
50
- }
51
- return new Promise((resolve, reject) => {
52
- this.loading = true;
53
- // 请求数据
54
- initData(this.url, this.getQueryParame())
55
- .then(data => {
56
- this.total = data.totalElements;
57
- this.data = data.content;
58
- // time 毫秒后显示表格
59
- setTimeout(() => {
60
- this.loading = false;
61
- }, this.time);
62
- resolve(data);
63
- })
64
- .catch(err => {
65
- this.loading = false;
66
- reject(err);
67
- });
68
- });
69
- },
70
- beforeInit() {
71
- return true;
72
- },
73
- getQueryParame: function () {
74
- return {
75
- page: this.page,
76
- size: this.size,
77
- sort: this.sort,
78
- ...this.query,
79
- ...this.params,
80
- };
81
- },
82
- // 改变页码
83
- pageChange(e) {
84
- this.page = e - 1;
85
- this.init();
86
- },
87
- // 改变每页显示数
88
- sizeChange(e) {
89
- this.page = 0;
90
- this.size = e;
91
- this.init();
92
- },
93
- // 预防删除第二页最后一条数据时,或者多选删除第二页的数据时,页码错误导致请求无数据
94
- dleChangePage(size) {
95
- if (size === undefined) {
96
- size = 1;
97
- }
98
- if (this.data.length === size && this.page !== 0) {
99
- this.page = this.page - 1;
100
- }
101
- },
102
- // 查询方法
103
- toQuery() {
104
- this.page = 0;
105
- this.init();
106
- },
107
- /**
108
- * 通用的提示封装
109
- */
110
- submitSuccessNotify() {
111
- this.$notify({
112
- title: '提交成功',
113
- type: 'success',
114
- duration: 2500,
115
- });
116
- },
117
- addSuccessNotify() {
118
- this.$notify({
119
- title: '新增成功',
120
- type: 'success',
121
- duration: 2500,
122
- });
123
- },
124
- editSuccessNotify() {
125
- this.$notify({
126
- title: '编辑成功',
127
- type: 'success',
128
- duration: 2500,
129
- });
130
- },
131
- delSuccessNotify() {
132
- this.$notify({
133
- title: '删除成功',
134
- type: 'success',
135
- duration: 2500,
136
- });
137
- },
138
- notify(title, type) {
139
- this.$notify({
140
- title: title,
141
- type: type,
142
- duration: 2500,
143
- });
144
- },
145
- /**
146
- * 删除前可以调用 beforeDelMethod 做一些操作
147
- */
148
- beforeDelMethod() {
149
- return true;
150
- },
151
- /**
152
- * 通用的删除
153
- */
154
- delMethod(id) {
155
- if (!this.beforeDelMethod()) {
156
- return;
157
- }
158
- this.delLoading = true;
159
- this.crudMethod
160
- .del(id)
161
- .then(() => {
162
- this.delLoading = false;
163
- this.$refs[id].doClose();
164
- this.dleChangePage();
165
- this.delSuccessNotify();
166
- this.afterDelMethod();
167
- this.init();
168
- })
169
- .catch(() => {
170
- this.delLoading = false;
171
- this.$refs[id].doClose();
172
- });
173
- },
174
- afterDelMethod() {},
175
- /**
176
- * 多选删除提示
177
- */
178
- beforeDelAllMethod() {
179
- this.$confirm('你确定删除选中的数据吗?', '提示', {
180
- confirmButtonText: '确定',
181
- cancelButtonText: '取消',
182
- type: 'warning',
183
- }).then(() => {
184
- this.delAllMethod();
185
- });
186
- },
187
- /**
188
- * 多选删除
189
- */
190
- delAllMethod() {
191
- this.delAllLoading = true;
192
- const data = this.$refs.table.selection;
193
- const ids = [];
194
- for (let i = 0; i < data.length; i++) {
195
- ids.push(data[i].id);
196
- }
197
- this.crudMethod
198
- .delAll(ids)
199
- .then(() => {
200
- this.delAllLoading = false;
201
- this.dleChangePage(ids.length);
202
- this.init();
203
- this.$notify({
204
- title: '删除成功',
205
- type: 'success',
206
- duration: 2500,
207
- });
208
- })
209
- .catch(() => {
210
- this.delAllLoading = false;
211
- });
212
- },
213
- /**
214
- * 显示新增弹窗前可以调用该方法
215
- */
216
- beforeShowAddForm() {},
217
- /**
218
- * 显示新增弹窗
219
- */
220
- showAddFormDialog() {
221
- this.isAdd = true;
222
- this.resetForm = JSON.parse(JSON.stringify(this.form));
223
- this.beforeShowAddForm();
224
- this.dialog = true;
225
- },
226
- /**
227
- * 显示编辑弹窗前可以调用该方法
228
- */
229
- beforeShowEditForm(data) {},
230
- /**
231
- * 显示编辑弹窗
232
- */
233
- showEditFormDialog(data = '') {
234
- this.isAdd = false;
235
- if (data) {
236
- this.resetForm = JSON.parse(JSON.stringify(this.form));
237
- this.form = JSON.parse(JSON.stringify(data));
238
- }
239
- this.beforeShowEditForm(data);
240
- this.dialog = true;
241
- },
242
- /**
243
- * 新增方法
244
- */
245
- addMethod() {
246
- this.crudMethod
247
- .add(this.form)
248
- .then(() => {
249
- this.addSuccessNotify();
250
- this.loading = false;
251
- this.afterAddMethod();
252
- this.cancel();
253
- this.init();
254
- })
255
- .catch(() => {
256
- this.loading = false;
257
- this.afterAddErrorMethod();
258
- });
259
- },
260
- /**
261
- * 新增后可以调用该方法
262
- */
263
- afterAddMethod() {},
264
- /**
265
- * 新增失败后调用该方法
266
- */
267
- afterAddErrorMethod() {},
268
- /**
269
- * 通用的编辑方法
270
- */
271
- editMethod() {
272
- this.crudMethod
273
- .edit(this.form)
274
- .then(() => {
275
- this.editSuccessNotify();
276
- this.loading = false;
277
- this.afterEditMethod();
278
- this.cancel();
279
- this.init();
280
- })
281
- .catch(() => {
282
- this.loading = false;
283
- });
284
- },
285
- /**
286
- * 编辑后可以调用该方法
287
- */
288
- afterEditMethod() {},
289
- /**
290
- * 提交前可以调用该方法
291
- */
292
- beforeSubmitMethod() {
293
- return true;
294
- },
295
- /**
296
- * 提交
297
- */
298
- submitMethod() {
299
- if (!this.beforeSubmitMethod()) {
300
- return;
301
- }
302
- if (this.$refs['form']) {
303
- this.$refs['form'].validate(valid => {
304
- if (valid) {
305
- this.loading = true;
306
- if (this.isAdd) {
307
- this.addMethod();
308
- } else this.editMethod();
309
- }
310
- });
311
- }
312
- },
313
- /**
314
- * 隐藏弹窗
315
- */
316
- cancel() {
317
- this.dialog = false;
318
- if (this.$refs['form']) {
319
- this.$refs['form'].clearValidate();
320
- this.form = this.resetForm;
321
- }
322
- },
323
- /**
324
- * 获取弹窗的标题
325
- */
326
- getFormTitle() {
327
- return this.isAdd ? `新增${this.title}` : `编辑${this.title}`;
328
- },
329
- /**
330
- * 通用导出
331
- */
332
- downloadMethod() {
333
- this.beforeInit();
334
- this.downloadLoading = true;
335
- download(this.url + '/download', this.params)
336
- .then(result => {
337
- this.downloadFile(result, this.title + '数据', 'xlsx');
338
- this.downloadLoading = false;
339
- })
340
- .catch(() => {
341
- this.downloadLoading = false;
342
- });
343
- },
344
- },
345
- filters: {
346
- parseTime,
347
- },
348
- };
1
+ import { initData, download } from '@/api/data';
2
+ import { parseTime, downloadFile } from '@/utils/index';
3
+
4
+ export default {
5
+ data() {
6
+ return {
7
+ // 表格数据
8
+ data: [],
9
+ // 排序规则,默认 id 降序, 支持多字段排序 ['id,desc', 'createTime,asc']
10
+ sort: ['id,desc'],
11
+ // 页码
12
+ page: 0,
13
+ // 每页数据条数
14
+ size: 10,
15
+ // 总数据条数
16
+ total: 0,
17
+ // 请求数据的url
18
+ url: '',
19
+ // 查询数据的参数
20
+ params: {},
21
+ // 待查询的对象
22
+ query: {},
23
+ // 等待时间
24
+ time: 50,
25
+ // 是否为新增类型的表单
26
+ isAdd: false,
27
+ // 导出的 Loading
28
+ downloadLoading: false,
29
+ // 表格 Loading 属性
30
+ loading: true,
31
+ // 删除 Loading 属性
32
+ delLoading: false,
33
+ delAllLoading: false,
34
+ // 弹窗属性
35
+ dialog: false,
36
+ // Form 表单
37
+ form: {},
38
+ // 重置表单
39
+ resetForm: {},
40
+ // 标题
41
+ title: '',
42
+ };
43
+ },
44
+ methods: {
45
+ parseTime,
46
+ downloadFile,
47
+ async init() {
48
+ if (!(await this.beforeInit())) {
49
+ return;
50
+ }
51
+ return new Promise((resolve, reject) => {
52
+ this.loading = true;
53
+ // 请求数据
54
+ initData(this.url, this.getQueryParame())
55
+ .then(data => {
56
+ this.total = data.totalElements;
57
+ this.data = data.content;
58
+ // time 毫秒后显示表格
59
+ setTimeout(() => {
60
+ this.loading = false;
61
+ }, this.time);
62
+ resolve(data);
63
+ })
64
+ .catch(err => {
65
+ this.loading = false;
66
+ reject(err);
67
+ });
68
+ });
69
+ },
70
+ beforeInit() {
71
+ return true;
72
+ },
73
+ getQueryParame: function () {
74
+ return {
75
+ page: this.page,
76
+ size: this.size,
77
+ sort: this.sort,
78
+ ...this.query,
79
+ ...this.params,
80
+ };
81
+ },
82
+ // 改变页码
83
+ pageChange(e) {
84
+ this.page = e - 1;
85
+ this.init();
86
+ },
87
+ // 改变每页显示数
88
+ sizeChange(e) {
89
+ this.page = 0;
90
+ this.size = e;
91
+ this.init();
92
+ },
93
+ // 预防删除第二页最后一条数据时,或者多选删除第二页的数据时,页码错误导致请求无数据
94
+ dleChangePage(size) {
95
+ if (size === undefined) {
96
+ size = 1;
97
+ }
98
+ if (this.data.length === size && this.page !== 0) {
99
+ this.page = this.page - 1;
100
+ }
101
+ },
102
+ // 查询方法
103
+ toQuery() {
104
+ this.page = 0;
105
+ this.init();
106
+ },
107
+ /**
108
+ * 通用的提示封装
109
+ */
110
+ submitSuccessNotify() {
111
+ this.$notify({
112
+ title: '提交成功',
113
+ type: 'success',
114
+ duration: 2500,
115
+ });
116
+ },
117
+ addSuccessNotify() {
118
+ this.$notify({
119
+ title: '新增成功',
120
+ type: 'success',
121
+ duration: 2500,
122
+ });
123
+ },
124
+ editSuccessNotify() {
125
+ this.$notify({
126
+ title: '编辑成功',
127
+ type: 'success',
128
+ duration: 2500,
129
+ });
130
+ },
131
+ delSuccessNotify() {
132
+ this.$notify({
133
+ title: '删除成功',
134
+ type: 'success',
135
+ duration: 2500,
136
+ });
137
+ },
138
+ notify(title, type) {
139
+ this.$notify({
140
+ title: title,
141
+ type: type,
142
+ duration: 2500,
143
+ });
144
+ },
145
+ /**
146
+ * 删除前可以调用 beforeDelMethod 做一些操作
147
+ */
148
+ beforeDelMethod() {
149
+ return true;
150
+ },
151
+ /**
152
+ * 通用的删除
153
+ */
154
+ delMethod(id) {
155
+ if (!this.beforeDelMethod()) {
156
+ return;
157
+ }
158
+ this.delLoading = true;
159
+ this.crudMethod
160
+ .del(id)
161
+ .then(() => {
162
+ this.delLoading = false;
163
+ this.$refs[id].doClose();
164
+ this.dleChangePage();
165
+ this.delSuccessNotify();
166
+ this.afterDelMethod();
167
+ this.init();
168
+ })
169
+ .catch(() => {
170
+ this.delLoading = false;
171
+ this.$refs[id].doClose();
172
+ });
173
+ },
174
+ afterDelMethod() {},
175
+ /**
176
+ * 多选删除提示
177
+ */
178
+ beforeDelAllMethod() {
179
+ this.$confirm('你确定删除选中的数据吗?', '提示', {
180
+ confirmButtonText: '确定',
181
+ cancelButtonText: '取消',
182
+ type: 'warning',
183
+ }).then(() => {
184
+ this.delAllMethod();
185
+ });
186
+ },
187
+ /**
188
+ * 多选删除
189
+ */
190
+ delAllMethod() {
191
+ this.delAllLoading = true;
192
+ const data = this.$refs.table.selection;
193
+ const ids = [];
194
+ for (let i = 0; i < data.length; i++) {
195
+ ids.push(data[i].id);
196
+ }
197
+ this.crudMethod
198
+ .delAll(ids)
199
+ .then(() => {
200
+ this.delAllLoading = false;
201
+ this.dleChangePage(ids.length);
202
+ this.init();
203
+ this.$notify({
204
+ title: '删除成功',
205
+ type: 'success',
206
+ duration: 2500,
207
+ });
208
+ })
209
+ .catch(() => {
210
+ this.delAllLoading = false;
211
+ });
212
+ },
213
+ /**
214
+ * 显示新增弹窗前可以调用该方法
215
+ */
216
+ beforeShowAddForm() {},
217
+ /**
218
+ * 显示新增弹窗
219
+ */
220
+ showAddFormDialog() {
221
+ this.isAdd = true;
222
+ this.resetForm = JSON.parse(JSON.stringify(this.form));
223
+ this.beforeShowAddForm();
224
+ this.dialog = true;
225
+ },
226
+ /**
227
+ * 显示编辑弹窗前可以调用该方法
228
+ */
229
+ beforeShowEditForm(data) {},
230
+ /**
231
+ * 显示编辑弹窗
232
+ */
233
+ showEditFormDialog(data = '') {
234
+ this.isAdd = false;
235
+ if (data) {
236
+ this.resetForm = JSON.parse(JSON.stringify(this.form));
237
+ this.form = JSON.parse(JSON.stringify(data));
238
+ }
239
+ this.beforeShowEditForm(data);
240
+ this.dialog = true;
241
+ },
242
+ /**
243
+ * 新增方法
244
+ */
245
+ addMethod() {
246
+ this.crudMethod
247
+ .add(this.form)
248
+ .then(() => {
249
+ this.addSuccessNotify();
250
+ this.loading = false;
251
+ this.afterAddMethod();
252
+ this.cancel();
253
+ this.init();
254
+ })
255
+ .catch(() => {
256
+ this.loading = false;
257
+ this.afterAddErrorMethod();
258
+ });
259
+ },
260
+ /**
261
+ * 新增后可以调用该方法
262
+ */
263
+ afterAddMethod() {},
264
+ /**
265
+ * 新增失败后调用该方法
266
+ */
267
+ afterAddErrorMethod() {},
268
+ /**
269
+ * 通用的编辑方法
270
+ */
271
+ editMethod() {
272
+ this.crudMethod
273
+ .edit(this.form)
274
+ .then(() => {
275
+ this.editSuccessNotify();
276
+ this.loading = false;
277
+ this.afterEditMethod();
278
+ this.cancel();
279
+ this.init();
280
+ })
281
+ .catch(() => {
282
+ this.loading = false;
283
+ });
284
+ },
285
+ /**
286
+ * 编辑后可以调用该方法
287
+ */
288
+ afterEditMethod() {},
289
+ /**
290
+ * 提交前可以调用该方法
291
+ */
292
+ beforeSubmitMethod() {
293
+ return true;
294
+ },
295
+ /**
296
+ * 提交
297
+ */
298
+ submitMethod() {
299
+ if (!this.beforeSubmitMethod()) {
300
+ return;
301
+ }
302
+ if (this.$refs['form']) {
303
+ this.$refs['form'].validate(valid => {
304
+ if (valid) {
305
+ this.loading = true;
306
+ if (this.isAdd) {
307
+ this.addMethod();
308
+ } else this.editMethod();
309
+ }
310
+ });
311
+ }
312
+ },
313
+ /**
314
+ * 隐藏弹窗
315
+ */
316
+ cancel() {
317
+ this.dialog = false;
318
+ if (this.$refs['form']) {
319
+ this.$refs['form'].clearValidate();
320
+ this.form = this.resetForm;
321
+ }
322
+ },
323
+ /**
324
+ * 获取弹窗的标题
325
+ */
326
+ getFormTitle() {
327
+ return this.isAdd ? `新增${this.title}` : `编辑${this.title}`;
328
+ },
329
+ /**
330
+ * 通用导出
331
+ */
332
+ downloadMethod() {
333
+ this.beforeInit();
334
+ this.downloadLoading = true;
335
+ download(this.url + '/download', this.params)
336
+ .then(result => {
337
+ this.downloadFile(result, this.title + '数据', 'xlsx');
338
+ this.downloadLoading = false;
339
+ })
340
+ .catch(() => {
341
+ this.downloadLoading = false;
342
+ });
343
+ },
344
+ },
345
+ filters: {
346
+ parseTime,
347
+ },
348
+ };