ylyx-cli 1.0.0

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 (402) hide show
  1. package/README.md +184 -0
  2. package/bin/ylyx.js +95 -0
  3. package/lib/generator.js +192 -0
  4. package/lib/index.js +113 -0
  5. package/lib/interactive.js +87 -0
  6. package/lib/remote.js +179 -0
  7. package/lib/template.js +174 -0
  8. package/lib/utils.js +134 -0
  9. package/package.json +56 -0
  10. package/templates/react-app/files/README.md +23 -0
  11. package/templates/react-app/files/package.json +29 -0
  12. package/templates/react-app/files/public/index.html +11 -0
  13. package/templates/react-app/files/src/App.css +15 -0
  14. package/templates/react-app/files/src/App.js +15 -0
  15. package/templates/react-app/files/src/index.css +10 -0
  16. package/templates/react-app/files/src/index.js +11 -0
  17. package/templates/react-app/template.json +12 -0
  18. package/templates/react-component/files/Component.module.css +5 -0
  19. package/templates/react-component/files/Component.tsx +31 -0
  20. package/templates/react-component/files/index.ts +2 -0
  21. package/templates/react-component/template.json +49 -0
  22. package/templates/vue-app/files/.editorconfig +14 -0
  23. package/templates/vue-app/files/.env.development +21 -0
  24. package/templates/vue-app/files/.env.production +18 -0
  25. package/templates/vue-app/files/.eslintignore +5 -0
  26. package/templates/vue-app/files/.eslintrc.js +267 -0
  27. package/templates/vue-app/files/.prettierignore +12 -0
  28. package/templates/vue-app/files/.travis.yml +5 -0
  29. package/templates/vue-app/files/.vscode/extensions.json +7 -0
  30. package/templates/vue-app/files/.vscode/settings.json +39 -0
  31. package/templates/vue-app/files/LICENSE +191 -0
  32. package/templates/vue-app/files/README.md +87 -0
  33. package/templates/vue-app/files/babel.config.js +11 -0
  34. package/templates/vue-app/files/jest.config.js +24 -0
  35. package/templates/vue-app/files/package.json +136 -0
  36. package/templates/vue-app/files/plopfile.js +7 -0
  37. package/templates/vue-app/files/postcss.config.js +5 -0
  38. package/templates/vue-app/files/prettier.config.js +36 -0
  39. package/templates/vue-app/files/public/default.js +26 -0
  40. package/templates/vue-app/files/public/favicon.ico +0 -0
  41. package/templates/vue-app/files/public/index.html +26 -0
  42. package/templates/vue-app/files/src/App.vue +54 -0
  43. package/templates/vue-app/files/src/api/bigDataV/index.js +198 -0
  44. package/templates/vue-app/files/src/api/data.js +42 -0
  45. package/templates/vue-app/files/src/api/dataArchive/index.js +186 -0
  46. package/templates/vue-app/files/src/api/generator/genConfig.js +16 -0
  47. package/templates/vue-app/files/src/api/generator/generator.js +32 -0
  48. package/templates/vue-app/files/src/api/indexManagement/index.js +39 -0
  49. package/templates/vue-app/files/src/api/institutionMonitor/index.js +396 -0
  50. package/templates/vue-app/files/src/api/institutionSet/index.js +120 -0
  51. package/templates/vue-app/files/src/api/login.js +44 -0
  52. package/templates/vue-app/files/src/api/selfStatistics/index.js +50 -0
  53. package/templates/vue-app/files/src/api/system/code.js +15 -0
  54. package/templates/vue-app/files/src/api/system/dict.js +34 -0
  55. package/templates/vue-app/files/src/api/system/dictDetail.js +52 -0
  56. package/templates/vue-app/files/src/api/system/equipment.js +35 -0
  57. package/templates/vue-app/files/src/api/system/examManage.js +49 -0
  58. package/templates/vue-app/files/src/api/system/examProject.js +48 -0
  59. package/templates/vue-app/files/src/api/system/hosModel.js +35 -0
  60. package/templates/vue-app/files/src/api/system/hospital.js +88 -0
  61. package/templates/vue-app/files/src/api/system/job.js +40 -0
  62. package/templates/vue-app/files/src/api/system/menu.js +67 -0
  63. package/templates/vue-app/files/src/api/system/model.js +42 -0
  64. package/templates/vue-app/files/src/api/system/risConfig.js +9 -0
  65. package/templates/vue-app/files/src/api/system/role.js +64 -0
  66. package/templates/vue-app/files/src/api/system/sysSet.js +19 -0
  67. package/templates/vue-app/files/src/api/system/timing.js +41 -0
  68. package/templates/vue-app/files/src/api/system/user.js +121 -0
  69. package/templates/vue-app/files/src/api/tools/alipay.js +25 -0
  70. package/templates/vue-app/files/src/api/tools/email.js +24 -0
  71. package/templates/vue-app/files/src/api/tools/localStorage.js +27 -0
  72. package/templates/vue-app/files/src/api/tools/qiniu.js +40 -0
  73. package/templates/vue-app/files/src/assets/401_images/401.gif +0 -0
  74. package/templates/vue-app/files/src/assets/404_images/404.png +0 -0
  75. package/templates/vue-app/files/src/assets/404_images/404_cloud.png +0 -0
  76. package/templates/vue-app/files/src/assets/css/font-awesome.css +2342 -0
  77. package/templates/vue-app/files/src/assets/css/font-awesome.min.css +2336 -0
  78. package/templates/vue-app/files/src/assets/fonts/FontAwesome.otf +0 -0
  79. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.eot +0 -0
  80. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.svg +2671 -0
  81. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.ttf +0 -0
  82. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.woff +0 -0
  83. package/templates/vue-app/files/src/assets/fonts/fontawesome-webfont.woff2 +0 -0
  84. package/templates/vue-app/files/src/assets/icons/index.js +9 -0
  85. package/templates/vue-app/files/src/assets/icons/svg/Steve-Jobs.svg +1 -0
  86. package/templates/vue-app/files/src/assets/icons/svg/achive.svg +1 -0
  87. package/templates/vue-app/files/src/assets/icons/svg/alipay.svg +1 -0
  88. package/templates/vue-app/files/src/assets/icons/svg/anq.svg +1 -0
  89. package/templates/vue-app/files/src/assets/icons/svg/app.svg +1 -0
  90. package/templates/vue-app/files/src/assets/icons/svg/archive.svg +1 -0
  91. package/templates/vue-app/files/src/assets/icons/svg/backup.svg +1 -0
  92. package/templates/vue-app/files/src/assets/icons/svg/chain.svg +1 -0
  93. package/templates/vue-app/files/src/assets/icons/svg/chart.svg +1 -0
  94. package/templates/vue-app/files/src/assets/icons/svg/codeConsole.svg +1 -0
  95. package/templates/vue-app/files/src/assets/icons/svg/dashboard.svg +1 -0
  96. package/templates/vue-app/files/src/assets/icons/svg/database.svg +1 -0
  97. package/templates/vue-app/files/src/assets/icons/svg/date.svg +1 -0
  98. package/templates/vue-app/files/src/assets/icons/svg/deploy.svg +1 -0
  99. package/templates/vue-app/files/src/assets/icons/svg/dept.svg +1 -0
  100. package/templates/vue-app/files/src/assets/icons/svg/dev.svg +1 -0
  101. package/templates/vue-app/files/src/assets/icons/svg/develop.svg +1 -0
  102. package/templates/vue-app/files/src/assets/icons/svg/dictionary.svg +1 -0
  103. package/templates/vue-app/files/src/assets/icons/svg/doc.svg +1 -0
  104. package/templates/vue-app/files/src/assets/icons/svg/download.svg +1 -0
  105. package/templates/vue-app/files/src/assets/icons/svg/edit.svg +1 -0
  106. package/templates/vue-app/files/src/assets/icons/svg/education.svg +1 -0
  107. package/templates/vue-app/files/src/assets/icons/svg/email.svg +1 -0
  108. package/templates/vue-app/files/src/assets/icons/svg/equSet.svg +1 -0
  109. package/templates/vue-app/files/src/assets/icons/svg/error.svg +1 -0
  110. package/templates/vue-app/files/src/assets/icons/svg/exit-fullscreen.svg +1 -0
  111. package/templates/vue-app/files/src/assets/icons/svg/fullscreen.svg +1 -0
  112. package/templates/vue-app/files/src/assets/icons/svg/fwb.svg +1 -0
  113. package/templates/vue-app/files/src/assets/icons/svg/github.svg +1 -0
  114. package/templates/vue-app/files/src/assets/icons/svg/goBack.svg +1 -0
  115. package/templates/vue-app/files/src/assets/icons/svg/gonggao.svg +1 -0
  116. package/templates/vue-app/files/src/assets/icons/svg/hospital.svg +2 -0
  117. package/templates/vue-app/files/src/assets/icons/svg/hospital1.svg +2 -0
  118. package/templates/vue-app/files/src/assets/icons/svg/hospitalTotal.svg +1 -0
  119. package/templates/vue-app/files/src/assets/icons/svg/icon.svg +1 -0
  120. package/templates/vue-app/files/src/assets/icons/svg/image.svg +1 -0
  121. package/templates/vue-app/files/src/assets/icons/svg/index.svg +1 -0
  122. package/templates/vue-app/files/src/assets/icons/svg/international.svg +1 -0
  123. package/templates/vue-app/files/src/assets/icons/svg/ipvisits.svg +1 -0
  124. package/templates/vue-app/files/src/assets/icons/svg/java.svg +1 -0
  125. package/templates/vue-app/files/src/assets/icons/svg/link.svg +1 -0
  126. package/templates/vue-app/files/src/assets/icons/svg/list.svg +1 -0
  127. package/templates/vue-app/files/src/assets/icons/svg/lock.svg +1 -0
  128. package/templates/vue-app/files/src/assets/icons/svg/log.svg +1 -0
  129. package/templates/vue-app/files/src/assets/icons/svg/login.svg +1 -0
  130. package/templates/vue-app/files/src/assets/icons/svg/loginOne.svg +35 -0
  131. package/templates/vue-app/files/src/assets/icons/svg/loginOneWhite.svg +19 -0
  132. package/templates/vue-app/files/src/assets/icons/svg/loginOr.svg +93 -0
  133. package/templates/vue-app/files/src/assets/icons/svg/loginUp.svg +96 -0
  134. package/templates/vue-app/files/src/assets/icons/svg/markdown.svg +1 -0
  135. package/templates/vue-app/files/src/assets/icons/svg/menu.svg +1 -0
  136. package/templates/vue-app/files/src/assets/icons/svg/message.svg +1 -0
  137. package/templates/vue-app/files/src/assets/icons/svg/mnt.svg +1 -0
  138. package/templates/vue-app/files/src/assets/icons/svg/money.svg +1 -0
  139. package/templates/vue-app/files/src/assets/icons/svg/monitor.svg +1 -0
  140. package/templates/vue-app/files/src/assets/icons/svg/nested.svg +1 -0
  141. package/templates/vue-app/files/src/assets/icons/svg/network.svg +1 -0
  142. package/templates/vue-app/files/src/assets/icons/svg/offline.svg +1 -0
  143. package/templates/vue-app/files/src/assets/icons/svg/online.svg +1 -0
  144. package/templates/vue-app/files/src/assets/icons/svg/password.svg +1 -0
  145. package/templates/vue-app/files/src/assets/icons/svg/people.svg +1 -0
  146. package/templates/vue-app/files/src/assets/icons/svg/peoples.svg +1 -0
  147. package/templates/vue-app/files/src/assets/icons/svg/perSet.svg +1 -0
  148. package/templates/vue-app/files/src/assets/icons/svg/permission.svg +1 -0
  149. package/templates/vue-app/files/src/assets/icons/svg/phone.svg +1 -0
  150. package/templates/vue-app/files/src/assets/icons/svg/piechart.svg +1 -0
  151. package/templates/vue-app/files/src/assets/icons/svg/qiniu.svg +1 -0
  152. package/templates/vue-app/files/src/assets/icons/svg/redis.svg +1 -0
  153. package/templates/vue-app/files/src/assets/icons/svg/resetpassword.svg +1 -0
  154. package/templates/vue-app/files/src/assets/icons/svg/resetpassword1.svg +1 -0
  155. package/templates/vue-app/files/src/assets/icons/svg/role.svg +1 -0
  156. package/templates/vue-app/files/src/assets/icons/svg/search.svg +1 -0
  157. package/templates/vue-app/files/src/assets/icons/svg/server.svg +1 -0
  158. package/templates/vue-app/files/src/assets/icons/svg/shopping.svg +1 -0
  159. package/templates/vue-app/files/src/assets/icons/svg/size.svg +1 -0
  160. package/templates/vue-app/files/src/assets/icons/svg/skill.svg +1 -0
  161. package/templates/vue-app/files/src/assets/icons/svg/source.svg +1 -0
  162. package/templates/vue-app/files/src/assets/icons/svg/sqlMonitor.svg +1 -0
  163. package/templates/vue-app/files/src/assets/icons/svg/statistical.svg +1 -0
  164. package/templates/vue-app/files/src/assets/icons/svg/swagger.svg +1 -0
  165. package/templates/vue-app/files/src/assets/icons/svg/sys-tools.svg +1 -0
  166. package/templates/vue-app/files/src/assets/icons/svg/system.svg +1 -0
  167. package/templates/vue-app/files/src/assets/icons/svg/system1.svg +1 -0
  168. package/templates/vue-app/files/src/assets/icons/svg/tab.svg +1 -0
  169. package/templates/vue-app/files/src/assets/icons/svg/teams.svg +1 -0
  170. package/templates/vue-app/files/src/assets/icons/svg/theme.svg +1 -0
  171. package/templates/vue-app/files/src/assets/icons/svg/timing.svg +1 -0
  172. package/templates/vue-app/files/src/assets/icons/svg/tools.svg +1 -0
  173. package/templates/vue-app/files/src/assets/icons/svg/tree-table.svg +1 -0
  174. package/templates/vue-app/files/src/assets/icons/svg/tree.svg +1 -0
  175. package/templates/vue-app/files/src/assets/icons/svg/unlock.svg +1 -0
  176. package/templates/vue-app/files/src/assets/icons/svg/user.svg +1 -0
  177. package/templates/vue-app/files/src/assets/icons/svg/user1.svg +1 -0
  178. package/templates/vue-app/files/src/assets/icons/svg/validCode.svg +1 -0
  179. package/templates/vue-app/files/src/assets/icons/svg/visits.svg +1 -0
  180. package/templates/vue-app/files/src/assets/icons/svg/web.svg +1 -0
  181. package/templates/vue-app/files/src/assets/icons/svg/wechat.svg +1 -0
  182. package/templates/vue-app/files/src/assets/icons/svg/weixin.svg +1 -0
  183. package/templates/vue-app/files/src/assets/icons/svg/zujian.svg +1 -0
  184. package/templates/vue-app/files/src/assets/icons/svgo.yml +21 -0
  185. package/templates/vue-app/files/src/assets/images/archive.png +0 -0
  186. package/templates/vue-app/files/src/assets/images/archive_icon.png +0 -0
  187. package/templates/vue-app/files/src/assets/images/avatar.png +0 -0
  188. package/templates/vue-app/files/src/assets/images/background.jpg +0 -0
  189. package/templates/vue-app/files/src/assets/images/bg.png +0 -0
  190. package/templates/vue-app/files/src/assets/images/gongan.png +0 -0
  191. package/templates/vue-app/files/src/assets/images/hospital_icon.png +0 -0
  192. package/templates/vue-app/files/src/assets/images/location.png +0 -0
  193. package/templates/vue-app/files/src/assets/images/logintitle.jpg +0 -0
  194. package/templates/vue-app/files/src/assets/images/logo-copy1.png +0 -0
  195. package/templates/vue-app/files/src/assets/images/logo.png +0 -0
  196. package/templates/vue-app/files/src/assets/images/logoBg.png +0 -0
  197. package/templates/vue-app/files/src/assets/images/offline-bg.png +0 -0
  198. package/templates/vue-app/files/src/assets/images/position.png +0 -0
  199. package/templates/vue-app/files/src/assets/images/qualityBg.jpg +0 -0
  200. package/templates/vue-app/files/src/assets/images/self-bg.png +0 -0
  201. package/templates/vue-app/files/src/assets/images/self-bg2.png +0 -0
  202. package/templates/vue-app/files/src/assets/images/triAngel.png +0 -0
  203. package/templates/vue-app/files/src/assets/images/triAngelNormal.png +0 -0
  204. package/templates/vue-app/files/src/assets/styles/btn.scss +103 -0
  205. package/templates/vue-app/files/src/assets/styles/eladmin.scss +124 -0
  206. package/templates/vue-app/files/src/assets/styles/element-ui.scss +217 -0
  207. package/templates/vue-app/files/src/assets/styles/element-variables.scss +31 -0
  208. package/templates/vue-app/files/src/assets/styles/global.scss +73 -0
  209. package/templates/vue-app/files/src/assets/styles/index.scss +220 -0
  210. package/templates/vue-app/files/src/assets/styles/mixin.scss +60 -0
  211. package/templates/vue-app/files/src/assets/styles/publicStyle.scss +224 -0
  212. package/templates/vue-app/files/src/assets/styles/sidebar.scss +239 -0
  213. package/templates/vue-app/files/src/assets/styles/transition.scss +48 -0
  214. package/templates/vue-app/files/src/assets/styles/variables.scss +44 -0
  215. package/templates/vue-app/files/src/common/flexible.js +145 -0
  216. package/templates/vue-app/files/src/components/Breadcrumb/index.vue +87 -0
  217. package/templates/vue-app/files/src/components/Crud/CRUD.operation.vue +248 -0
  218. package/templates/vue-app/files/src/components/Crud/Pagination.vue +20 -0
  219. package/templates/vue-app/files/src/components/Crud/RR.operation.vue +39 -0
  220. package/templates/vue-app/files/src/components/Crud/UD.operation.vue +106 -0
  221. package/templates/vue-app/files/src/components/Crud/crud.js +907 -0
  222. package/templates/vue-app/files/src/components/Crud/user/UR.operation.vue +154 -0
  223. package/templates/vue-app/files/src/components/DateRangePicker/index.vue +42 -0
  224. package/templates/vue-app/files/src/components/DateRangePickerProhibitNext/index.vue +42 -0
  225. package/templates/vue-app/files/src/components/DateRangePickerProhibitTodayNext/index.vue +48 -0
  226. package/templates/vue-app/files/src/components/Dict/Dict.js +31 -0
  227. package/templates/vue-app/files/src/components/Dict/index.js +29 -0
  228. package/templates/vue-app/files/src/components/Doc/index.vue +16 -0
  229. package/templates/vue-app/files/src/components/Echarts/BarChart.vue +115 -0
  230. package/templates/vue-app/files/src/components/Echarts/Category.vue +768 -0
  231. package/templates/vue-app/files/src/components/Echarts/Funnel.vue +120 -0
  232. package/templates/vue-app/files/src/components/Echarts/Gauge.vue +74 -0
  233. package/templates/vue-app/files/src/components/Echarts/Graph.vue +101 -0
  234. package/templates/vue-app/files/src/components/Echarts/HeatMap.vue +301 -0
  235. package/templates/vue-app/files/src/components/Echarts/Line3D.vue +110 -0
  236. package/templates/vue-app/files/src/components/Echarts/PieChart.vue +84 -0
  237. package/templates/vue-app/files/src/components/Echarts/Point.vue +161 -0
  238. package/templates/vue-app/files/src/components/Echarts/RadarChart.vue +123 -0
  239. package/templates/vue-app/files/src/components/Echarts/Rich.vue +160 -0
  240. package/templates/vue-app/files/src/components/Echarts/Sankey.vue +114 -0
  241. package/templates/vue-app/files/src/components/Echarts/Scatter.vue +192 -0
  242. package/templates/vue-app/files/src/components/Echarts/Sunburst.vue +127 -0
  243. package/templates/vue-app/files/src/components/Echarts/ThemeRiver.vue +233 -0
  244. package/templates/vue-app/files/src/components/Echarts/WordCloud.vue +201 -0
  245. package/templates/vue-app/files/src/components/GithubCorner/index.vue +55 -0
  246. package/templates/vue-app/files/src/components/Hamburger/index.vue +44 -0
  247. package/templates/vue-app/files/src/components/HeaderSearch/index.vue +196 -0
  248. package/templates/vue-app/files/src/components/IconSelect/index.vue +74 -0
  249. package/templates/vue-app/files/src/components/IconSelect/requireIcons.js +10 -0
  250. package/templates/vue-app/files/src/components/Iframe/index.vue +30 -0
  251. package/templates/vue-app/files/src/components/JavaEdit/index.vue +78 -0
  252. package/templates/vue-app/files/src/components/Pagination/index.vue +100 -0
  253. package/templates/vue-app/files/src/components/PanThumb/index.vue +149 -0
  254. package/templates/vue-app/files/src/components/ParentView/index.vue +3 -0
  255. package/templates/vue-app/files/src/components/Permission/index.js +13 -0
  256. package/templates/vue-app/files/src/components/Permission/permission.js +21 -0
  257. package/templates/vue-app/files/src/components/RightPanel/index.vue +149 -0
  258. package/templates/vue-app/files/src/components/Screenfull/index.vue +60 -0
  259. package/templates/vue-app/files/src/components/SizeSelect/index.vue +60 -0
  260. package/templates/vue-app/files/src/components/SvgIcon/index.vue +66 -0
  261. package/templates/vue-app/files/src/components/ThemePicker/index.vue +177 -0
  262. package/templates/vue-app/files/src/components/UploadExcel/index.vue +149 -0
  263. package/templates/vue-app/files/src/components/WaterMark/setWaterMark.js +68 -0
  264. package/templates/vue-app/files/src/components/WaterMark/waterMark.vue +69 -0
  265. package/templates/vue-app/files/src/components/Xgplayer/index.vue +49 -0
  266. package/templates/vue-app/files/src/components/YamlEdit/index.vue +81 -0
  267. package/templates/vue-app/files/src/layout/components/AppMain.vue +67 -0
  268. package/templates/vue-app/files/src/layout/components/Navbar.vue +209 -0
  269. package/templates/vue-app/files/src/layout/components/Settings/index.vue +125 -0
  270. package/templates/vue-app/files/src/layout/components/Sidebar/FixiOSBug.js +26 -0
  271. package/templates/vue-app/files/src/layout/components/Sidebar/Item.vue +29 -0
  272. package/templates/vue-app/files/src/layout/components/Sidebar/Link.vue +35 -0
  273. package/templates/vue-app/files/src/layout/components/Sidebar/Logo.vue +93 -0
  274. package/templates/vue-app/files/src/layout/components/Sidebar/SidebarItem.vue +104 -0
  275. package/templates/vue-app/files/src/layout/components/Sidebar/index.vue +79 -0
  276. package/templates/vue-app/files/src/layout/components/TagsView/ScrollPane.vue +90 -0
  277. package/templates/vue-app/files/src/layout/components/TagsView/index.vue +299 -0
  278. package/templates/vue-app/files/src/layout/components/index.js +5 -0
  279. package/templates/vue-app/files/src/layout/index.vue +119 -0
  280. package/templates/vue-app/files/src/layout/mixin/ResizeHandler.js +45 -0
  281. package/templates/vue-app/files/src/main.js +89 -0
  282. package/templates/vue-app/files/src/mixins/crud.js +348 -0
  283. package/templates/vue-app/files/src/router/index.js +156 -0
  284. package/templates/vue-app/files/src/router/routers.js +203 -0
  285. package/templates/vue-app/files/src/settings.js +57 -0
  286. package/templates/vue-app/files/src/store/getters.js +29 -0
  287. package/templates/vue-app/files/src/store/index.js +25 -0
  288. package/templates/vue-app/files/src/store/modules/api.js +33 -0
  289. package/templates/vue-app/files/src/store/modules/app.js +55 -0
  290. package/templates/vue-app/files/src/store/modules/permission.js +79 -0
  291. package/templates/vue-app/files/src/store/modules/register.js +17 -0
  292. package/templates/vue-app/files/src/store/modules/settings.js +46 -0
  293. package/templates/vue-app/files/src/store/modules/tagsView.js +168 -0
  294. package/templates/vue-app/files/src/store/modules/user.js +119 -0
  295. package/templates/vue-app/files/src/utils/auth.js +18 -0
  296. package/templates/vue-app/files/src/utils/base64ToFile.js +27 -0
  297. package/templates/vue-app/files/src/utils/clipboard.js +36 -0
  298. package/templates/vue-app/files/src/utils/datetime.js +289 -0
  299. package/templates/vue-app/files/src/utils/getBlobFile.js +10 -0
  300. package/templates/vue-app/files/src/utils/getTime.js +29 -0
  301. package/templates/vue-app/files/src/utils/index.js +520 -0
  302. package/templates/vue-app/files/src/utils/permission.js +29 -0
  303. package/templates/vue-app/files/src/utils/pinyin.js +450 -0
  304. package/templates/vue-app/files/src/utils/request.js +139 -0
  305. package/templates/vue-app/files/src/utils/rsaEncrypt.js +37 -0
  306. package/templates/vue-app/files/src/utils/shortcuts.js +210 -0
  307. package/templates/vue-app/files/src/utils/upload.js +12 -0
  308. package/templates/vue-app/files/src/utils/validate.js +262 -0
  309. package/templates/vue-app/files/src/views/components/Echarts.vue +124 -0
  310. package/templates/vue-app/files/src/views/components/Editor.vue +75 -0
  311. package/templates/vue-app/files/src/views/components/MarkDown.vue +44 -0
  312. package/templates/vue-app/files/src/views/components/UVideo.vue +37 -0
  313. package/templates/vue-app/files/src/views/components/YamlEdit.vue +206 -0
  314. package/templates/vue-app/files/src/views/components/camera/camera.vue +115 -0
  315. package/templates/vue-app/files/src/views/components/camera/cameraTest.vue +158 -0
  316. package/templates/vue-app/files/src/views/components/excel/upload-excel.vue +41 -0
  317. package/templates/vue-app/files/src/views/components/icons/element-icons.js +74 -0
  318. package/templates/vue-app/files/src/views/components/icons/index.vue +106 -0
  319. package/templates/vue-app/files/src/views/components/icons/svg-icons.js +10 -0
  320. package/templates/vue-app/files/src/views/components/scroll/index.vue +107 -0
  321. package/templates/vue-app/files/src/views/components/scrollFull/index.vue +99 -0
  322. package/templates/vue-app/files/src/views/dashboard/LineChart.vue +138 -0
  323. package/templates/vue-app/files/src/views/dashboard/PanelGroup.vue +173 -0
  324. package/templates/vue-app/files/src/views/dashboard/mixins/resize.js +57 -0
  325. package/templates/vue-app/files/src/views/dataArchive/delTable.vue +354 -0
  326. package/templates/vue-app/files/src/views/dataArchive/exportDetail.vue +121 -0
  327. package/templates/vue-app/files/src/views/dataArchive/exportList.vue +160 -0
  328. package/templates/vue-app/files/src/views/dataArchive/index.vue +2104 -0
  329. package/templates/vue-app/files/src/views/features/401.vue +83 -0
  330. package/templates/vue-app/files/src/views/features/404.vue +226 -0
  331. package/templates/vue-app/files/src/views/features/redirect.vue +12 -0
  332. package/templates/vue-app/files/src/views/generator/config.vue +348 -0
  333. package/templates/vue-app/files/src/views/generator/index.vue +143 -0
  334. package/templates/vue-app/files/src/views/generator/preview.vue +39 -0
  335. package/templates/vue-app/files/src/views/home.vue +80 -0
  336. package/templates/vue-app/files/src/views/indexManagement/index.vue +422 -0
  337. package/templates/vue-app/files/src/views/indexManagement/other.vue +286 -0
  338. package/templates/vue-app/files/src/views/institutionMonitor/components/LineChart.vue +191 -0
  339. package/templates/vue-app/files/src/views/institutionMonitor/index.scss +339 -0
  340. package/templates/vue-app/files/src/views/institutionMonitor/index.vue +1385 -0
  341. package/templates/vue-app/files/src/views/institutionMonitor/mixins/resize.js +57 -0
  342. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/checkProjectCode.vue +267 -0
  343. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/imageAbnormalMonitor.vue +361 -0
  344. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/index.vue +686 -0
  345. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/leakageAnomaly.vue +270 -0
  346. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/moveMonitore.vue +114 -0
  347. package/templates/vue-app/files/src/views/institutionMonitor/monitorDetail/qualityMonitore.vue +338 -0
  348. package/templates/vue-app/files/src/views/institutionSet/cloudSet.vue +534 -0
  349. package/templates/vue-app/files/src/views/institutionSet/index.vue +2550 -0
  350. package/templates/vue-app/files/src/views/login.vue +243 -0
  351. package/templates/vue-app/files/src/views/qualityLogin.vue +280 -0
  352. package/templates/vue-app/files/src/views/selfStatistics/components/LineChart.vue +296 -0
  353. package/templates/vue-app/files/src/views/selfStatistics/hospitalDetail/index.vue +533 -0
  354. package/templates/vue-app/files/src/views/selfStatistics/index.scss +447 -0
  355. package/templates/vue-app/files/src/views/selfStatistics/index.vue +903 -0
  356. package/templates/vue-app/files/src/views/selfStatistics/mixins/resize.js +57 -0
  357. package/templates/vue-app/files/src/views/selfStatistics/monitorDetail/index.vue +285 -0
  358. package/templates/vue-app/files/src/views/selfStatistics/offlineDetail/index.vue +104 -0
  359. package/templates/vue-app/files/src/views/selfStatistics/selfActiveDetail/index.vue +104 -0
  360. package/templates/vue-app/files/src/views/selfStatistics/selfMonitorDetail/index.vue +420 -0
  361. package/templates/vue-app/files/src/views/selfStatistics/setWaterMark/setWaterMark.js +68 -0
  362. package/templates/vue-app/files/src/views/selfStatistics/setWaterMark/waterMark.vue +69 -0
  363. package/templates/vue-app/files/src/views/system/dept/index.vue +144 -0
  364. package/templates/vue-app/files/src/views/system/dict/dictDetail.vue +146 -0
  365. package/templates/vue-app/files/src/views/system/dict/index.vue +159 -0
  366. package/templates/vue-app/files/src/views/system/examModality/index.vue +174 -0
  367. package/templates/vue-app/files/src/views/system/examPart/index.vue +184 -0
  368. package/templates/vue-app/files/src/views/system/examProject/index.vue +321 -0
  369. package/templates/vue-app/files/src/views/system/examine/index.vue +66 -0
  370. package/templates/vue-app/files/src/views/system/job/index.vue +119 -0
  371. package/templates/vue-app/files/src/views/system/job/module/form.vue +72 -0
  372. package/templates/vue-app/files/src/views/system/job/module/header.vue +48 -0
  373. package/templates/vue-app/files/src/views/system/menu/index.vue +327 -0
  374. package/templates/vue-app/files/src/views/system/model/index.vue +285 -0
  375. package/templates/vue-app/files/src/views/system/role/index.vue +434 -0
  376. package/templates/vue-app/files/src/views/system/sysSet/index.vue +84 -0
  377. package/templates/vue-app/files/src/views/system/timing/index.vue +289 -0
  378. package/templates/vue-app/files/src/views/system/timing/log.vue +143 -0
  379. package/templates/vue-app/files/src/views/system/user/admin.vue +414 -0
  380. package/templates/vue-app/files/src/views/system/user/center/updateEmail.vue +146 -0
  381. package/templates/vue-app/files/src/views/system/user/center/updatePass.vue +168 -0
  382. package/templates/vue-app/files/src/views/system/user/center.vue +140 -0
  383. package/templates/vue-app/files/src/views/system/user/index.vue +972 -0
  384. package/templates/vue-app/files/src/views/systemSet/role/index.vue +314 -0
  385. package/templates/vue-app/files/src/views/systemSet/user/admin.vue +414 -0
  386. package/templates/vue-app/files/src/views/systemSet/user/center/updateEmail.vue +146 -0
  387. package/templates/vue-app/files/src/views/systemSet/user/center/updatePass.vue +115 -0
  388. package/templates/vue-app/files/src/views/systemSet/user/center.vue +351 -0
  389. package/templates/vue-app/files/src/views/systemSet/user/index.vue +928 -0
  390. package/templates/vue-app/files/src/views/tools/aliPay/config.vue +102 -0
  391. package/templates/vue-app/files/src/views/tools/aliPay/index.vue +48 -0
  392. package/templates/vue-app/files/src/views/tools/aliPay/toPay.vue +91 -0
  393. package/templates/vue-app/files/src/views/tools/email/config.vue +91 -0
  394. package/templates/vue-app/files/src/views/tools/email/index.vue +42 -0
  395. package/templates/vue-app/files/src/views/tools/email/send.vue +159 -0
  396. package/templates/vue-app/files/src/views/tools/storage/index.vue +35 -0
  397. package/templates/vue-app/files/src/views/tools/storage/local/index.vue +207 -0
  398. package/templates/vue-app/files/src/views/tools/storage/qiniu/form.vue +108 -0
  399. package/templates/vue-app/files/src/views/tools/storage/qiniu/index.vue +241 -0
  400. package/templates/vue-app/files/src/views/tools/swagger/index.vue +14 -0
  401. package/templates/vue-app/files/vue.config.js +173 -0
  402. package/templates/vue-app/template.json +30 -0
@@ -0,0 +1,209 @@
1
+ <template>
2
+ <div class="navbar">
3
+ <hamburger
4
+ id="hamburger-container"
5
+ :is-active="sidebar.opened"
6
+ class="hamburger-container"
7
+ @toggleClick="toggleSideBar" />
8
+
9
+ <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
10
+
11
+ <div class="right-menu">
12
+ <template v-if="device !== 'mobile'">
13
+ <search id="header-search" class="right-menu-item" />
14
+
15
+ <!-- <el-tooltip content="项目文档" effect="dark" placement="bottom">
16
+ <Doc class="right-menu-item hover-effect" />
17
+ </el-tooltip> -->
18
+
19
+ <el-tooltip content="全屏缩放" effect="dark" placement="bottom">
20
+ <screenfull id="screenfull" class="right-menu-item hover-effect" />
21
+ </el-tooltip>
22
+
23
+ <el-tooltip content="布局设置" effect="dark" placement="bottom">
24
+ <size-select id="size-select" class="right-menu-item hover-effect" />
25
+ </el-tooltip>
26
+ </template>
27
+
28
+ <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
29
+ <div class="avatar-wrapper">
30
+ <span style="font-size: 16px">{{ user.name }}</span>
31
+ <!-- <img :src="user.avatarName ? baseApi + '/avatar/' + user.avatarName : Avatar" class="user-avatar"> -->
32
+ <i class="el-icon-caret-bottom" />
33
+ </div>
34
+ <el-dropdown-menu slot="dropdown">
35
+ <span style="display: block" @click="show = true">
36
+ <el-dropdown-item> 布局设置 </el-dropdown-item>
37
+ </span>
38
+ <!-- <router-link to="/user/center"> -->
39
+ <!-- :href="VUE_APP_SYSLOGIN_URL" -->
40
+ <span @click="open(0)">
41
+ <el-dropdown-item>
42
+ <!-- 个人中心 -->
43
+ 重选系统
44
+ </el-dropdown-item>
45
+ </span>
46
+ <span style="display: block" @click="open(1)">
47
+ <el-dropdown-item> 退出登录 </el-dropdown-item>
48
+ </span>
49
+ </el-dropdown-menu>
50
+ </el-dropdown>
51
+ </div>
52
+ </div>
53
+ </template>
54
+
55
+ <script>
56
+ import { mapGetters } from 'vuex';
57
+ import Breadcrumb from '@/components/Breadcrumb';
58
+ import Hamburger from '@/components/Hamburger';
59
+ import Doc from '@/components/Doc';
60
+ import Screenfull from '@/components/Screenfull';
61
+ import SizeSelect from '@/components/SizeSelect';
62
+ import Search from '@/components/HeaderSearch';
63
+ import Avatar from '@/assets/images/avatar.png';
64
+ import Cookies from 'js-cookie';
65
+ const { VUE_APP_LOGIN_URL, VUE_APP_SYSLOGIN_URL } = window.config;
66
+ export default {
67
+ components: {
68
+ Breadcrumb,
69
+ Hamburger,
70
+ Screenfull,
71
+ SizeSelect,
72
+ Search,
73
+ Doc,
74
+ },
75
+ data() {
76
+ return {
77
+ Avatar: Avatar,
78
+ dialogVisible: false,
79
+ VUE_APP_SYSLOGIN_URL: VUE_APP_SYSLOGIN_URL,
80
+ };
81
+ },
82
+ computed: {
83
+ ...mapGetters(['sidebar', 'device', 'user', 'baseApi']),
84
+ show: {
85
+ get() {
86
+ return this.$store.state.settings.showSettings;
87
+ },
88
+ set(val) {
89
+ this.$store.dispatch('settings/changeSetting', {
90
+ key: 'showSettings',
91
+ value: val,
92
+ });
93
+ },
94
+ },
95
+ },
96
+ methods: {
97
+ toggleSideBar() {
98
+ this.$store.dispatch('app/toggleSideBar');
99
+ },
100
+ open(statu) {
101
+ if (statu == '0') {
102
+ Cookies.remove('homePageDefault');
103
+ window.location.href = VUE_APP_SYSLOGIN_URL;
104
+ } else {
105
+ this.$confirm('确定注销并退出系统吗?', '提示', {
106
+ confirmButtonText: '确定',
107
+ cancelButtonText: '取消',
108
+ type: 'warning',
109
+ }).then(() => {
110
+ this.logout();
111
+ // console.log('退出登录')
112
+ });
113
+ }
114
+ },
115
+ logout() {
116
+ this.$store.dispatch('LogOut').then(() => {
117
+ // location.reload()
118
+ // this.$router.push('/login')
119
+ Cookies.remove('homePageDefault');
120
+ window.location.href = VUE_APP_LOGIN_URL;
121
+ });
122
+ },
123
+ },
124
+ };
125
+ </script>
126
+
127
+ <style lang="scss" scoped>
128
+ .navbar {
129
+ height: 50px;
130
+ overflow: hidden;
131
+ position: relative;
132
+ background: #fff;
133
+ box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
134
+
135
+ .hamburger-container {
136
+ line-height: 46px;
137
+ height: 100%;
138
+ float: left;
139
+ cursor: pointer;
140
+ transition: background 0.3s;
141
+ -webkit-tap-highlight-color: transparent;
142
+
143
+ &:hover {
144
+ background: rgba(0, 0, 0, 0.025);
145
+ }
146
+ }
147
+
148
+ .breadcrumb-container {
149
+ float: left;
150
+ }
151
+
152
+ .errLog-container {
153
+ display: inline-block;
154
+ vertical-align: top;
155
+ }
156
+
157
+ .right-menu {
158
+ float: right;
159
+ height: 100%;
160
+ line-height: 50px;
161
+
162
+ &:focus {
163
+ outline: none;
164
+ }
165
+
166
+ .right-menu-item {
167
+ display: inline-block;
168
+ padding: 0 8px;
169
+ height: 100%;
170
+ font-size: 18px;
171
+ color: #5a5e66;
172
+ vertical-align: text-bottom;
173
+
174
+ &.hover-effect {
175
+ cursor: pointer;
176
+ transition: background 0.3s;
177
+
178
+ &:hover {
179
+ background: rgba(0, 0, 0, 0.025);
180
+ }
181
+ }
182
+ }
183
+
184
+ .avatar-container {
185
+ margin-right: 30px;
186
+
187
+ .avatar-wrapper {
188
+ margin-top: 5px;
189
+ position: relative;
190
+
191
+ .user-avatar {
192
+ cursor: pointer;
193
+ width: 40px;
194
+ height: 40px;
195
+ border-radius: 10px;
196
+ }
197
+
198
+ .el-icon-caret-bottom {
199
+ cursor: pointer;
200
+ position: absolute;
201
+ right: -20px;
202
+ top: 17px;
203
+ font-size: 12px;
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ </style>
@@ -0,0 +1,125 @@
1
+ <template>
2
+ <div class="drawer-container">
3
+ <div>
4
+ <h3 class="drawer-title">系统布局设置</h3>
5
+
6
+ <div class="drawer-item">
7
+ <span>主题颜色</span>
8
+ <theme-picker
9
+ style="float: right; height: 26px; margin: -3px 8px 0 0"
10
+ @change="themeChange" />
11
+ </div>
12
+
13
+ <div class="drawer-item">
14
+ <span>显示标签</span>
15
+ <el-switch v-model="tagsView" class="drawer-switch" />
16
+ </div>
17
+
18
+ <div class="drawer-item">
19
+ <span>固定头部</span>
20
+ <el-switch v-model="fixedHeader" class="drawer-switch" />
21
+ </div>
22
+
23
+ <div class="drawer-item">
24
+ <span>显示LOGO</span>
25
+ <el-switch v-model="sidebarLogo" class="drawer-switch" />
26
+ </div>
27
+
28
+ <div class="drawer-item">
29
+ <span>菜单UniqueOpened</span>
30
+ <el-switch v-model="uniqueOpened" class="drawer-switch" />
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script>
37
+ import ThemePicker from '@/components/ThemePicker';
38
+
39
+ export default {
40
+ components: { ThemePicker },
41
+ data() {
42
+ return {};
43
+ },
44
+ computed: {
45
+ fixedHeader: {
46
+ get() {
47
+ return this.$store.state.settings.fixedHeader;
48
+ },
49
+ set(val) {
50
+ this.$store.dispatch('settings/changeSetting', {
51
+ key: 'fixedHeader',
52
+ value: val,
53
+ });
54
+ },
55
+ },
56
+ tagsView: {
57
+ get() {
58
+ return this.$store.state.settings.tagsView;
59
+ },
60
+ set(val) {
61
+ this.$store.dispatch('settings/changeSetting', {
62
+ key: 'tagsView',
63
+ value: val,
64
+ });
65
+ },
66
+ },
67
+ sidebarLogo: {
68
+ get() {
69
+ return this.$store.state.settings.sidebarLogo;
70
+ },
71
+ set(val) {
72
+ this.$store.dispatch('settings/changeSetting', {
73
+ key: 'sidebarLogo',
74
+ value: val,
75
+ });
76
+ },
77
+ },
78
+ uniqueOpened: {
79
+ get() {
80
+ return this.$store.state.settings.uniqueOpened;
81
+ },
82
+ set(val) {
83
+ this.$store.dispatch('settings/changeSetting', {
84
+ key: 'uniqueOpened',
85
+ value: val,
86
+ });
87
+ },
88
+ },
89
+ },
90
+ methods: {
91
+ themeChange(val) {
92
+ this.$store.dispatch('settings/changeSetting', {
93
+ key: 'theme',
94
+ value: val,
95
+ });
96
+ },
97
+ },
98
+ };
99
+ </script>
100
+
101
+ <style lang="scss" scoped>
102
+ .drawer-container {
103
+ padding: 24px;
104
+ font-size: 14px;
105
+ line-height: 1.5;
106
+ word-wrap: break-word;
107
+
108
+ .drawer-title {
109
+ margin-bottom: 12px;
110
+ color: rgba(0, 0, 0, 0.85);
111
+ font-size: 14px;
112
+ line-height: 22px;
113
+ }
114
+
115
+ .drawer-item {
116
+ color: rgba(0, 0, 0, 0.65);
117
+ font-size: 14px;
118
+ padding: 12px 0;
119
+ }
120
+
121
+ .drawer-switch {
122
+ float: right;
123
+ }
124
+ }
125
+ </style>
@@ -0,0 +1,26 @@
1
+ export default {
2
+ computed: {
3
+ device() {
4
+ return this.$store.state.app.device;
5
+ },
6
+ },
7
+ mounted() {
8
+ // In order to fix the click on menu on the ios device will trigger the mouseleave bug
9
+ // https://github.com/PanJiaChen/vue-element-admin/issues/1135
10
+ this.fixBugIniOS();
11
+ },
12
+ methods: {
13
+ fixBugIniOS() {
14
+ const $subMenu = this.$refs.subMenu;
15
+ if ($subMenu) {
16
+ const handleMouseleave = $subMenu.handleMouseleave;
17
+ $subMenu.handleMouseleave = e => {
18
+ if (this.device === 'mobile') {
19
+ return;
20
+ }
21
+ handleMouseleave(e);
22
+ };
23
+ }
24
+ },
25
+ },
26
+ };
@@ -0,0 +1,29 @@
1
+ <script>
2
+ export default {
3
+ name: 'MenuItem',
4
+ functional: true,
5
+ props: {
6
+ icon: {
7
+ type: String,
8
+ default: '',
9
+ },
10
+ title: {
11
+ type: String,
12
+ default: '',
13
+ },
14
+ },
15
+ render(h, context) {
16
+ const { icon, title } = context.props;
17
+ const vnodes = [];
18
+
19
+ if (icon) {
20
+ vnodes.push(<svg-icon icon-class={icon} />);
21
+ }
22
+
23
+ if (title) {
24
+ vnodes.push(<span slot="title">{title}</span>);
25
+ }
26
+ return vnodes;
27
+ },
28
+ };
29
+ </script>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <!-- eslint-disable vue/require-component-is -->
3
+ <component v-bind="linkProps(to)">
4
+ <slot />
5
+ </component>
6
+ </template>
7
+
8
+ <script>
9
+ import { isExternal } from '@/utils/validate';
10
+
11
+ export default {
12
+ props: {
13
+ to: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ },
18
+ methods: {
19
+ linkProps(url) {
20
+ if (isExternal(url)) {
21
+ return {
22
+ is: 'a',
23
+ href: url,
24
+ target: '_blank',
25
+ rel: 'noopener',
26
+ };
27
+ }
28
+ return {
29
+ is: 'router-link',
30
+ to: url,
31
+ };
32
+ },
33
+ },
34
+ };
35
+ </script>
@@ -0,0 +1,93 @@
1
+ <template>
2
+ <div class="sidebar-logo-container" :class="{ collapse: collapse }">
3
+ <transition name="sidebarLogoFade">
4
+ <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="">
5
+ <img v-if="logo" :src="logo" class="sidebar-logo" />
6
+ <h1 v-else class="sidebar-title">{{ title }}</h1>
7
+ </router-link>
8
+ <router-link v-else key="expand" class="sidebar-logo-link" to="">
9
+ <img v-if="logo" :src="logo" class="sidebar-logo" />
10
+ <h1 class="sidebar-title">{{ title }}</h1>
11
+ </router-link>
12
+ </transition>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import Logo from '@/assets/images/logo.png';
18
+ let PUBLIC_URL = process.env['VUE_APP_PUBLIC_URL']; // 项目名
19
+ const { VUE_PROJECT_TITLE } = window.config;
20
+ export default {
21
+ name: 'SidebarLogo',
22
+ props: {
23
+ collapse: {
24
+ type: Boolean,
25
+ required: true,
26
+ },
27
+ },
28
+ data() {
29
+ return {
30
+ // PUBLIC_URL == "/IUCOST/" ? "费用结算系统" :
31
+ title: VUE_PROJECT_TITLE,
32
+ logo: Logo,
33
+ };
34
+ },
35
+ created() {
36
+ // this.title
37
+ },
38
+ };
39
+ </script>
40
+
41
+ <style lang="scss" scoped>
42
+ .sidebarLogoFade-enter-active {
43
+ transition: opacity 1.5s;
44
+ }
45
+
46
+ .sidebarLogoFade-enter,
47
+ .sidebarLogoFade-leave-to {
48
+ opacity: 0;
49
+ }
50
+
51
+ .sidebar-logo-container {
52
+ position: relative;
53
+ width: 100%;
54
+ height: 50px;
55
+ line-height: 50px;
56
+ text-align: center;
57
+ overflow: hidden;
58
+
59
+ & .sidebar-logo-link {
60
+ height: 100%;
61
+ width: 100%;
62
+
63
+ & .sidebar-logo {
64
+ width: 32px;
65
+ height: 32px;
66
+ vertical-align: middle;
67
+ margin-right: 6px;
68
+ }
69
+
70
+ & .sidebar-title {
71
+ display: inline-block;
72
+ margin: 0;
73
+ color: #fff;
74
+ font-weight: 600;
75
+ line-height: 50px;
76
+ font-size: 15px;
77
+ font-family:
78
+ Avenir,
79
+ Helvetica Neue,
80
+ Arial,
81
+ Helvetica,
82
+ sans-serif;
83
+ vertical-align: middle;
84
+ }
85
+ }
86
+
87
+ &.collapse {
88
+ .sidebar-logo {
89
+ margin-right: 0px;
90
+ }
91
+ }
92
+ }
93
+ </style>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <div v-if="!item.hidden" class="menu-wrapper">
3
+ <template
4
+ v-if="
5
+ hasOneShowingChild(item.children, item) &&
6
+ (!onlyOneChild.children || onlyOneChild.noShowingChildren) &&
7
+ !item.alwaysShow
8
+ ">
9
+ <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
10
+ <el-menu-item
11
+ :index="resolvePath(onlyOneChild.path)"
12
+ :class="{ 'submenu-title-noDropdown': !isNest }">
13
+ <item
14
+ :icon="!item.meta ? onlyOneChild.meta.icon || (item.meta && item.meta.icon) : ''"
15
+ :title="onlyOneChild.meta.title" />
16
+ </el-menu-item>
17
+ </app-link>
18
+ </template>
19
+
20
+ <el-submenu v-else ref="subMenu" :index="resolvePath(item.path)" popper-append-to-body>
21
+ <template slot="title">
22
+ <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
23
+ </template>
24
+ <sidebar-item
25
+ v-for="child in item.children"
26
+ :key="child.path"
27
+ :is-nest="true"
28
+ :item="child"
29
+ :base-path="resolvePath(child.path)"
30
+ class="nest-menu" />
31
+ </el-submenu>
32
+ </div>
33
+ </template>
34
+
35
+ <script>
36
+ import path from 'path';
37
+ import { isExternal } from '@/utils/validate';
38
+ import Item from './Item';
39
+ import AppLink from './Link';
40
+ import FixiOSBug from './FixiOSBug';
41
+
42
+ export default {
43
+ name: 'SidebarItem',
44
+ components: { Item, AppLink },
45
+ mixins: [FixiOSBug],
46
+ props: {
47
+ // route object
48
+ item: {
49
+ type: Object,
50
+ required: true,
51
+ },
52
+ isNest: {
53
+ type: Boolean,
54
+ default: false,
55
+ },
56
+ basePath: {
57
+ type: String,
58
+ default: '',
59
+ },
60
+ },
61
+ data() {
62
+ // To fix https://github.com/PanJiaChen/vue-admin-template/issues/237
63
+ // TODO: refactor with render function
64
+ this.onlyOneChild = null;
65
+ return {};
66
+ },
67
+ methods: {
68
+ hasOneShowingChild(children = [], parent) {
69
+ const showingChildren = children.filter(item => {
70
+ if (item.hidden) {
71
+ return false;
72
+ } else {
73
+ // Temp set(will be used if only has one showing child)
74
+ this.onlyOneChild = item;
75
+ return true;
76
+ }
77
+ });
78
+ // When there is only one child router, the child router is displayed by default
79
+ // 当只有一个子路由时,显示子路由
80
+ if (showingChildren.length === 1) {
81
+ return true;
82
+ }
83
+
84
+ // Show parent if there are no child router to display
85
+ // 如果没有要显示的子路由,则显示 parent
86
+ if (showingChildren.length === 0) {
87
+ this.onlyOneChild = { ...parent, path: '', noShowingChildren: true };
88
+ return true;
89
+ }
90
+
91
+ return false;
92
+ },
93
+ resolvePath(routePath) {
94
+ if (isExternal(routePath)) {
95
+ return routePath;
96
+ }
97
+ if (isExternal(this.basePath)) {
98
+ return this.basePath;
99
+ }
100
+ return path.resolve(this.basePath, routePath);
101
+ },
102
+ },
103
+ };
104
+ </script>
@@ -0,0 +1,79 @@
1
+ <template>
2
+ <div :class="{ 'has-logo': showLogo }">
3
+ <logo v-if="showLogo" :collapse="isCollapse" />
4
+ <el-scrollbar wrap-class="scrollbar-wrapper">
5
+ <el-menu
6
+ :default-active="activeMenu"
7
+ :collapse="isCollapse"
8
+ :background-color="variables.menuBg"
9
+ :text-color="variables.menuText"
10
+ :unique-opened="$store.state.settings.uniqueOpened"
11
+ :active-text-color="variables.menuActiveText"
12
+ :collapse-transition="false"
13
+ mode="vertical">
14
+ <sidebar-item
15
+ v-for="route in sidebarOpen"
16
+ :key="route.path"
17
+ :item="route"
18
+ :base-path="route.path" />
19
+ </el-menu>
20
+ </el-scrollbar>
21
+ </div>
22
+ </template>
23
+
24
+ <script>
25
+ import { mapGetters } from 'vuex';
26
+ import Logo from './Logo';
27
+ import SidebarItem from './SidebarItem';
28
+ import variables from '@/assets/styles/variables.scss';
29
+
30
+ export default {
31
+ components: { SidebarItem, Logo },
32
+ computed: {
33
+ ...mapGetters(['sidebarRouters', 'sidebar']),
34
+ // routes() {
35
+ // // return this.$router.options.routes
36
+ // console.log(this.$store.getters.menusRoutes, 'this.$store.getters.menusRoutes')
37
+ // return this.$store.getters.menusRoutes
38
+ // },
39
+ activeMenu() {
40
+ const route = this.$route;
41
+ const { meta, path } = route;
42
+ // 如果设置路径,侧边栏将突出显示您设置的路径
43
+ // console.log(this.$route.meta)
44
+ // if (meta.activeMenu) {
45
+ // return meta.activeMenu
46
+ // }
47
+
48
+ // return path
49
+ return meta.guidePath ? meta.jumpPath : path;
50
+ },
51
+ showLogo() {
52
+ return this.$store.state.settings.sidebarLogo;
53
+ },
54
+ variables() {
55
+ return variables;
56
+ },
57
+ isCollapse() {
58
+ return !this.sidebar.opened;
59
+ },
60
+ },
61
+ data() {
62
+ return {
63
+ sidebarOpen: [],
64
+ };
65
+ },
66
+ created() {
67
+ // let obj = {};
68
+ // if(location.hostname == 'localhost'){
69
+ // this.sidebarOpen = this.sidebarRouters.reduce((cur,next) => {
70
+ // obj[next.name] ? "" : obj[next.name] = true && cur.push(next);
71
+ // return cur;
72
+ // },[]) //设置cur默认类型为数组,并且初始值为空的数组
73
+ // }else{
74
+ this.sidebarOpen = this.sidebarRouters;
75
+ // }
76
+ // console.log('this.sidebarOpen', this.sidebarOpen);
77
+ },
78
+ };
79
+ </script>