@k3000/s1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (620) hide show
  1. package/README.md +2 -0
  2. package/RuoYi-Vue3/.env.development +8 -0
  3. package/RuoYi-Vue3/.env.production +11 -0
  4. package/RuoYi-Vue3/.env.staging +11 -0
  5. package/RuoYi-Vue3/.github/FUNDING.yml +1 -0
  6. package/RuoYi-Vue3/LICENSE +20 -0
  7. package/RuoYi-Vue3/README.md +109 -0
  8. package/RuoYi-Vue3/bin/build.bat +12 -0
  9. package/RuoYi-Vue3/bin/package.bat +12 -0
  10. package/RuoYi-Vue3/bin/run-web.bat +12 -0
  11. package/RuoYi-Vue3/html/ie.html +46 -0
  12. package/RuoYi-Vue3/index.html +215 -0
  13. package/RuoYi-Vue3/package.json +44 -0
  14. package/RuoYi-Vue3/public/favicon.ico +0 -0
  15. package/RuoYi-Vue3/src/App.vue +15 -0
  16. package/RuoYi-Vue3/src/api/login.js +60 -0
  17. package/RuoYi-Vue3/src/api/menu.js +9 -0
  18. package/RuoYi-Vue3/src/api/monitor/cache.js +57 -0
  19. package/RuoYi-Vue3/src/api/monitor/job.js +71 -0
  20. package/RuoYi-Vue3/src/api/monitor/jobLog.js +26 -0
  21. package/RuoYi-Vue3/src/api/monitor/logininfor.js +34 -0
  22. package/RuoYi-Vue3/src/api/monitor/online.js +18 -0
  23. package/RuoYi-Vue3/src/api/monitor/operlog.js +26 -0
  24. package/RuoYi-Vue3/src/api/monitor/server.js +9 -0
  25. package/RuoYi-Vue3/src/api/system/config.js +60 -0
  26. package/RuoYi-Vue3/src/api/system/dept.js +52 -0
  27. package/RuoYi-Vue3/src/api/system/dict/data.js +52 -0
  28. package/RuoYi-Vue3/src/api/system/dict/type.js +60 -0
  29. package/RuoYi-Vue3/src/api/system/menu.js +60 -0
  30. package/RuoYi-Vue3/src/api/system/notice.js +44 -0
  31. package/RuoYi-Vue3/src/api/system/post.js +44 -0
  32. package/RuoYi-Vue3/src/api/system/role.js +119 -0
  33. package/RuoYi-Vue3/src/api/system/user.js +136 -0
  34. package/RuoYi-Vue3/src/api/tool/gen.js +85 -0
  35. package/RuoYi-Vue3/src/assets/401_images/401.gif +0 -0
  36. package/RuoYi-Vue3/src/assets/404_images/404.png +0 -0
  37. package/RuoYi-Vue3/src/assets/404_images/404_cloud.png +0 -0
  38. package/RuoYi-Vue3/src/assets/icons/svg/404.svg +1 -0
  39. package/RuoYi-Vue3/src/assets/icons/svg/bug.svg +1 -0
  40. package/RuoYi-Vue3/src/assets/icons/svg/build.svg +1 -0
  41. package/RuoYi-Vue3/src/assets/icons/svg/button.svg +1 -0
  42. package/RuoYi-Vue3/src/assets/icons/svg/cascader.svg +1 -0
  43. package/RuoYi-Vue3/src/assets/icons/svg/chart.svg +1 -0
  44. package/RuoYi-Vue3/src/assets/icons/svg/checkbox.svg +1 -0
  45. package/RuoYi-Vue3/src/assets/icons/svg/clipboard.svg +1 -0
  46. package/RuoYi-Vue3/src/assets/icons/svg/code.svg +1 -0
  47. package/RuoYi-Vue3/src/assets/icons/svg/color.svg +1 -0
  48. package/RuoYi-Vue3/src/assets/icons/svg/component.svg +1 -0
  49. package/RuoYi-Vue3/src/assets/icons/svg/dashboard.svg +1 -0
  50. package/RuoYi-Vue3/src/assets/icons/svg/date-range.svg +1 -0
  51. package/RuoYi-Vue3/src/assets/icons/svg/date.svg +1 -0
  52. package/RuoYi-Vue3/src/assets/icons/svg/dict.svg +1 -0
  53. package/RuoYi-Vue3/src/assets/icons/svg/documentation.svg +1 -0
  54. package/RuoYi-Vue3/src/assets/icons/svg/download.svg +1 -0
  55. package/RuoYi-Vue3/src/assets/icons/svg/drag.svg +1 -0
  56. package/RuoYi-Vue3/src/assets/icons/svg/druid.svg +1 -0
  57. package/RuoYi-Vue3/src/assets/icons/svg/edit.svg +1 -0
  58. package/RuoYi-Vue3/src/assets/icons/svg/education.svg +1 -0
  59. package/RuoYi-Vue3/src/assets/icons/svg/email.svg +1 -0
  60. package/RuoYi-Vue3/src/assets/icons/svg/example.svg +1 -0
  61. package/RuoYi-Vue3/src/assets/icons/svg/excel.svg +1 -0
  62. package/RuoYi-Vue3/src/assets/icons/svg/exit-fullscreen.svg +1 -0
  63. package/RuoYi-Vue3/src/assets/icons/svg/eye-open.svg +1 -0
  64. package/RuoYi-Vue3/src/assets/icons/svg/eye.svg +1 -0
  65. package/RuoYi-Vue3/src/assets/icons/svg/form.svg +1 -0
  66. package/RuoYi-Vue3/src/assets/icons/svg/fullscreen.svg +1 -0
  67. package/RuoYi-Vue3/src/assets/icons/svg/github.svg +1 -0
  68. package/RuoYi-Vue3/src/assets/icons/svg/guide.svg +1 -0
  69. package/RuoYi-Vue3/src/assets/icons/svg/icon.svg +1 -0
  70. package/RuoYi-Vue3/src/assets/icons/svg/input.svg +1 -0
  71. package/RuoYi-Vue3/src/assets/icons/svg/international.svg +1 -0
  72. package/RuoYi-Vue3/src/assets/icons/svg/job.svg +1 -0
  73. package/RuoYi-Vue3/src/assets/icons/svg/language.svg +1 -0
  74. package/RuoYi-Vue3/src/assets/icons/svg/link.svg +1 -0
  75. package/RuoYi-Vue3/src/assets/icons/svg/list.svg +1 -0
  76. package/RuoYi-Vue3/src/assets/icons/svg/lock.svg +1 -0
  77. package/RuoYi-Vue3/src/assets/icons/svg/log.svg +1 -0
  78. package/RuoYi-Vue3/src/assets/icons/svg/logininfor.svg +1 -0
  79. package/RuoYi-Vue3/src/assets/icons/svg/message.svg +1 -0
  80. package/RuoYi-Vue3/src/assets/icons/svg/money.svg +1 -0
  81. package/RuoYi-Vue3/src/assets/icons/svg/monitor.svg +2 -0
  82. package/RuoYi-Vue3/src/assets/icons/svg/nested.svg +1 -0
  83. package/RuoYi-Vue3/src/assets/icons/svg/number.svg +1 -0
  84. package/RuoYi-Vue3/src/assets/icons/svg/online.svg +1 -0
  85. package/RuoYi-Vue3/src/assets/icons/svg/password.svg +1 -0
  86. package/RuoYi-Vue3/src/assets/icons/svg/pdf.svg +1 -0
  87. package/RuoYi-Vue3/src/assets/icons/svg/people.svg +1 -0
  88. package/RuoYi-Vue3/src/assets/icons/svg/peoples.svg +1 -0
  89. package/RuoYi-Vue3/src/assets/icons/svg/phone.svg +1 -0
  90. package/RuoYi-Vue3/src/assets/icons/svg/post.svg +1 -0
  91. package/RuoYi-Vue3/src/assets/icons/svg/qq.svg +1 -0
  92. package/RuoYi-Vue3/src/assets/icons/svg/question.svg +1 -0
  93. package/RuoYi-Vue3/src/assets/icons/svg/radio.svg +1 -0
  94. package/RuoYi-Vue3/src/assets/icons/svg/rate.svg +1 -0
  95. package/RuoYi-Vue3/src/assets/icons/svg/redis-list.svg +2 -0
  96. package/RuoYi-Vue3/src/assets/icons/svg/redis.svg +1 -0
  97. package/RuoYi-Vue3/src/assets/icons/svg/row.svg +1 -0
  98. package/RuoYi-Vue3/src/assets/icons/svg/search.svg +1 -0
  99. package/RuoYi-Vue3/src/assets/icons/svg/select.svg +1 -0
  100. package/RuoYi-Vue3/src/assets/icons/svg/server.svg +1 -0
  101. package/RuoYi-Vue3/src/assets/icons/svg/shopping.svg +1 -0
  102. package/RuoYi-Vue3/src/assets/icons/svg/size.svg +1 -0
  103. package/RuoYi-Vue3/src/assets/icons/svg/skill.svg +1 -0
  104. package/RuoYi-Vue3/src/assets/icons/svg/slider.svg +1 -0
  105. package/RuoYi-Vue3/src/assets/icons/svg/star.svg +1 -0
  106. package/RuoYi-Vue3/src/assets/icons/svg/swagger.svg +1 -0
  107. package/RuoYi-Vue3/src/assets/icons/svg/switch.svg +1 -0
  108. package/RuoYi-Vue3/src/assets/icons/svg/system.svg +2 -0
  109. package/RuoYi-Vue3/src/assets/icons/svg/tab.svg +1 -0
  110. package/RuoYi-Vue3/src/assets/icons/svg/table.svg +1 -0
  111. package/RuoYi-Vue3/src/assets/icons/svg/textarea.svg +1 -0
  112. package/RuoYi-Vue3/src/assets/icons/svg/theme.svg +1 -0
  113. package/RuoYi-Vue3/src/assets/icons/svg/time-range.svg +1 -0
  114. package/RuoYi-Vue3/src/assets/icons/svg/time.svg +1 -0
  115. package/RuoYi-Vue3/src/assets/icons/svg/tool.svg +1 -0
  116. package/RuoYi-Vue3/src/assets/icons/svg/tree-table.svg +1 -0
  117. package/RuoYi-Vue3/src/assets/icons/svg/tree.svg +1 -0
  118. package/RuoYi-Vue3/src/assets/icons/svg/upload.svg +1 -0
  119. package/RuoYi-Vue3/src/assets/icons/svg/user.svg +1 -0
  120. package/RuoYi-Vue3/src/assets/icons/svg/validCode.svg +1 -0
  121. package/RuoYi-Vue3/src/assets/icons/svg/wechat.svg +1 -0
  122. package/RuoYi-Vue3/src/assets/icons/svg/zip.svg +1 -0
  123. package/RuoYi-Vue3/src/assets/images/dark.svg +39 -0
  124. package/RuoYi-Vue3/src/assets/images/light.svg +39 -0
  125. package/RuoYi-Vue3/src/assets/images/login-background.jpg +0 -0
  126. package/RuoYi-Vue3/src/assets/images/pay.png +0 -0
  127. package/RuoYi-Vue3/src/assets/images/profile.jpg +0 -0
  128. package/RuoYi-Vue3/src/assets/logo/logo.png +0 -0
  129. package/RuoYi-Vue3/src/assets/styles/btn.scss +99 -0
  130. package/RuoYi-Vue3/src/assets/styles/element-ui.scss +96 -0
  131. package/RuoYi-Vue3/src/assets/styles/index.scss +184 -0
  132. package/RuoYi-Vue3/src/assets/styles/mixin.scss +66 -0
  133. package/RuoYi-Vue3/src/assets/styles/ruoyi.scss +281 -0
  134. package/RuoYi-Vue3/src/assets/styles/sidebar.scss +238 -0
  135. package/RuoYi-Vue3/src/assets/styles/transition.scss +49 -0
  136. package/RuoYi-Vue3/src/assets/styles/variables.module.scss +65 -0
  137. package/RuoYi-Vue3/src/components/Breadcrumb/index.vue +66 -0
  138. package/RuoYi-Vue3/src/components/Crontab/day.vue +174 -0
  139. package/RuoYi-Vue3/src/components/Crontab/hour.vue +133 -0
  140. package/RuoYi-Vue3/src/components/Crontab/index.vue +310 -0
  141. package/RuoYi-Vue3/src/components/Crontab/min.vue +126 -0
  142. package/RuoYi-Vue3/src/components/Crontab/month.vue +141 -0
  143. package/RuoYi-Vue3/src/components/Crontab/result.vue +540 -0
  144. package/RuoYi-Vue3/src/components/Crontab/second.vue +128 -0
  145. package/RuoYi-Vue3/src/components/Crontab/week.vue +197 -0
  146. package/RuoYi-Vue3/src/components/Crontab/year.vue +149 -0
  147. package/RuoYi-Vue3/src/components/DictTag/index.vue +82 -0
  148. package/RuoYi-Vue3/src/components/Editor/index.vue +251 -0
  149. package/RuoYi-Vue3/src/components/FileUpload/index.vue +207 -0
  150. package/RuoYi-Vue3/src/components/Hamburger/index.vue +41 -0
  151. package/RuoYi-Vue3/src/components/HeaderSearch/index.vue +187 -0
  152. package/RuoYi-Vue3/src/components/IconSelect/index.vue +111 -0
  153. package/RuoYi-Vue3/src/components/IconSelect/requireIcons.js +8 -0
  154. package/RuoYi-Vue3/src/components/ImagePreview/index.vue +92 -0
  155. package/RuoYi-Vue3/src/components/ImageUpload/index.vue +213 -0
  156. package/RuoYi-Vue3/src/components/Pagination/index.vue +105 -0
  157. package/RuoYi-Vue3/src/components/ParentView/index.vue +3 -0
  158. package/RuoYi-Vue3/src/components/RightToolbar/index.vue +134 -0
  159. package/RuoYi-Vue3/src/components/RuoYi/Doc/index.vue +13 -0
  160. package/RuoYi-Vue3/src/components/RuoYi/Git/index.vue +13 -0
  161. package/RuoYi-Vue3/src/components/Screenfull/index.vue +22 -0
  162. package/RuoYi-Vue3/src/components/SizeSelect/index.vue +45 -0
  163. package/RuoYi-Vue3/src/components/SvgIcon/index.vue +53 -0
  164. package/RuoYi-Vue3/src/components/SvgIcon/svgicon.js +10 -0
  165. package/RuoYi-Vue3/src/components/TopNav/index.vue +214 -0
  166. package/RuoYi-Vue3/src/components/TreeSelect/index.vue +156 -0
  167. package/RuoYi-Vue3/src/components/iFrame/index.vue +31 -0
  168. package/RuoYi-Vue3/src/directive/common/copyText.js +66 -0
  169. package/RuoYi-Vue3/src/directive/index.js +9 -0
  170. package/RuoYi-Vue3/src/directive/permission/hasPermi.js +28 -0
  171. package/RuoYi-Vue3/src/directive/permission/hasRole.js +28 -0
  172. package/RuoYi-Vue3/src/layout/components/AppMain.vue +68 -0
  173. package/RuoYi-Vue3/src/layout/components/IframeToggle/index.vue +25 -0
  174. package/RuoYi-Vue3/src/layout/components/InnerLink/index.vue +24 -0
  175. package/RuoYi-Vue3/src/layout/components/Navbar.vue +191 -0
  176. package/RuoYi-Vue3/src/layout/components/Settings/index.vue +209 -0
  177. package/RuoYi-Vue3/src/layout/components/Sidebar/Link.vue +40 -0
  178. package/RuoYi-Vue3/src/layout/components/Sidebar/Logo.vue +81 -0
  179. package/RuoYi-Vue3/src/layout/components/Sidebar/SidebarItem.vue +102 -0
  180. package/RuoYi-Vue3/src/layout/components/Sidebar/index.vue +54 -0
  181. package/RuoYi-Vue3/src/layout/components/TagsView/ScrollPane.vue +107 -0
  182. package/RuoYi-Vue3/src/layout/components/TagsView/index.vue +358 -0
  183. package/RuoYi-Vue3/src/layout/components/index.js +4 -0
  184. package/RuoYi-Vue3/src/layout/index.vue +114 -0
  185. package/RuoYi-Vue3/src/main.js +84 -0
  186. package/RuoYi-Vue3/src/permission.js +65 -0
  187. package/RuoYi-Vue3/src/plugins/auth.js +60 -0
  188. package/RuoYi-Vue3/src/plugins/cache.js +77 -0
  189. package/RuoYi-Vue3/src/plugins/download.js +79 -0
  190. package/RuoYi-Vue3/src/plugins/index.js +18 -0
  191. package/RuoYi-Vue3/src/plugins/modal.js +82 -0
  192. package/RuoYi-Vue3/src/plugins/tab.js +69 -0
  193. package/RuoYi-Vue3/src/router/index.js +175 -0
  194. package/RuoYi-Vue3/src/settings.js +47 -0
  195. package/RuoYi-Vue3/src/store/index.js +3 -0
  196. package/RuoYi-Vue3/src/store/modules/app.js +46 -0
  197. package/RuoYi-Vue3/src/store/modules/dict.js +57 -0
  198. package/RuoYi-Vue3/src/store/modules/permission.js +142 -0
  199. package/RuoYi-Vue3/src/store/modules/settings.js +38 -0
  200. package/RuoYi-Vue3/src/store/modules/tagsView.js +182 -0
  201. package/RuoYi-Vue3/src/store/modules/user.js +72 -0
  202. package/RuoYi-Vue3/src/utils/auth.js +15 -0
  203. package/RuoYi-Vue3/src/utils/dict.js +24 -0
  204. package/RuoYi-Vue3/src/utils/dynamicTitle.js +15 -0
  205. package/RuoYi-Vue3/src/utils/errorCode.js +6 -0
  206. package/RuoYi-Vue3/src/utils/index.js +390 -0
  207. package/RuoYi-Vue3/src/utils/jsencrypt.js +30 -0
  208. package/RuoYi-Vue3/src/utils/permission.js +51 -0
  209. package/RuoYi-Vue3/src/utils/request.js +152 -0
  210. package/RuoYi-Vue3/src/utils/ruoyi.js +246 -0
  211. package/RuoYi-Vue3/src/utils/scroll-to.js +58 -0
  212. package/RuoYi-Vue3/src/utils/theme.js +49 -0
  213. package/RuoYi-Vue3/src/utils/validate.js +93 -0
  214. package/RuoYi-Vue3/src/views/error/401.vue +82 -0
  215. package/RuoYi-Vue3/src/views/error/404.vue +227 -0
  216. package/RuoYi-Vue3/src/views/index.vue +1092 -0
  217. package/RuoYi-Vue3/src/views/login.vue +227 -0
  218. package/RuoYi-Vue3/src/views/monitor/cache/index.vue +132 -0
  219. package/RuoYi-Vue3/src/views/monitor/cache/list.vue +246 -0
  220. package/RuoYi-Vue3/src/views/monitor/druid/index.vue +13 -0
  221. package/RuoYi-Vue3/src/views/monitor/job/index.vue +501 -0
  222. package/RuoYi-Vue3/src/views/monitor/job/log.vue +283 -0
  223. package/RuoYi-Vue3/src/views/monitor/logininfor/index.vue +233 -0
  224. package/RuoYi-Vue3/src/views/monitor/online/index.vue +109 -0
  225. package/RuoYi-Vue3/src/views/monitor/operlog/index.vue +310 -0
  226. package/RuoYi-Vue3/src/views/monitor/server/index.vue +187 -0
  227. package/RuoYi-Vue3/src/views/redirect/index.vue +14 -0
  228. package/RuoYi-Vue3/src/views/register.vue +219 -0
  229. package/RuoYi-Vue3/src/views/system/config/index.vue +316 -0
  230. package/RuoYi-Vue3/src/views/system/dept/index.vue +283 -0
  231. package/RuoYi-Vue3/src/views/system/dict/data.vue +362 -0
  232. package/RuoYi-Vue3/src/views/system/dict/index.vue +323 -0
  233. package/RuoYi-Vue3/src/views/system/menu/index.vue +452 -0
  234. package/RuoYi-Vue3/src/views/system/notice/index.vue +292 -0
  235. package/RuoYi-Vue3/src/views/system/post/index.vue +287 -0
  236. package/RuoYi-Vue3/src/views/system/role/authUser.vue +179 -0
  237. package/RuoYi-Vue3/src/views/system/role/index.vue +584 -0
  238. package/RuoYi-Vue3/src/views/system/role/selectUser.vue +144 -0
  239. package/RuoYi-Vue3/src/views/system/user/authRole.vue +116 -0
  240. package/RuoYi-Vue3/src/views/system/user/index.vue +635 -0
  241. package/RuoYi-Vue3/src/views/system/user/profile/index.vue +87 -0
  242. package/RuoYi-Vue3/src/views/system/user/profile/resetPwd.vue +59 -0
  243. package/RuoYi-Vue3/src/views/system/user/profile/userAvatar.vue +180 -0
  244. package/RuoYi-Vue3/src/views/system/user/profile/userInfo.vue +67 -0
  245. package/RuoYi-Vue3/src/views/tool/build/index.vue +3 -0
  246. package/RuoYi-Vue3/src/views/tool/gen/basicInfoForm.vue +48 -0
  247. package/RuoYi-Vue3/src/views/tool/gen/createTable.vue +46 -0
  248. package/RuoYi-Vue3/src/views/tool/gen/editTable.vue +200 -0
  249. package/RuoYi-Vue3/src/views/tool/gen/genInfoForm.vue +306 -0
  250. package/RuoYi-Vue3/src/views/tool/gen/importTable.vue +126 -0
  251. package/RuoYi-Vue3/src/views/tool/gen/index.vue +310 -0
  252. package/RuoYi-Vue3/src/views/tool/swagger/index.vue +9 -0
  253. package/RuoYi-Vue3/vite/plugins/auto-import.js +12 -0
  254. package/RuoYi-Vue3/vite/plugins/compression.js +28 -0
  255. package/RuoYi-Vue3/vite/plugins/index.js +15 -0
  256. package/RuoYi-Vue3/vite/plugins/setup-extend.js +5 -0
  257. package/RuoYi-Vue3/vite/plugins/svg-icon.js +10 -0
  258. package/RuoYi-Vue3/vite.config.js +58 -0
  259. package/admin/README.MD +0 -0
  260. package/admin/base.mjs +447 -0
  261. package/admin/index.mjs +19 -0
  262. package/admin/monitor/job.mjs +24 -0
  263. package/admin/monitor/jobLog.mjs +8 -0
  264. package/admin/monitor/logininfor.mjs +23 -0
  265. package/admin/monitor/operlog.mjs +9 -0
  266. package/admin/monitor/server.mjs +54 -0
  267. package/admin/service.mjs +10 -0
  268. package/admin/system/component.mjs +16 -0
  269. package/admin/system/config.mjs +8 -0
  270. package/admin/system/dept.mjs +24 -0
  271. package/admin/system/dict.mjs +34 -0
  272. package/admin/system/login.mjs +119 -0
  273. package/admin/system/menu.mjs +33 -0
  274. package/admin/system/notice.mjs +8 -0
  275. package/admin/system/path.mjs +53 -0
  276. package/admin/system/post.mjs +8 -0
  277. package/admin/system/role.mjs +105 -0
  278. package/admin/system/user.mjs +93 -0
  279. package/admin/tool/gen.mjs +95 -0
  280. package/admin/tool/helper.mjs +1335 -0
  281. package/admin/tool/pm2.mjs +71 -0
  282. package/admin/tool/store.mjs +84 -0
  283. package/admin/tool/upload.mjs +112 -0
  284. package/app/README.MD +0 -0
  285. package/app/index.mjs +9 -0
  286. package/bin.mjs +211 -0
  287. package/build.mjs +25 -0
  288. package/common/README.MD +0 -0
  289. package/common/config.mjs +40 -0
  290. package/common/pm2.mjs +145 -0
  291. package/common/service.mjs +79 -0
  292. package/common/service0.mjs +468 -0
  293. package/common/tools.mjs +314 -0
  294. package/common/type.ts +498 -0
  295. package/file/README.MD +0 -0
  296. package/files/.env.production +11 -0
  297. package/files/gen.js +76 -0
  298. package/files/genImportTable.vue +120 -0
  299. package/files/genIndex.vue +309 -0
  300. package/files/genInfoForm.vue +302 -0
  301. package/files/login.vue +237 -0
  302. package/files/menu.js +68 -0
  303. package/files/menuIndex.vue +447 -0
  304. package/files/pm2.js +88 -0
  305. package/files/pm2Data.vue +335 -0
  306. package/files/pm2Index.vue +343 -0
  307. package/files/routerIndex.js +204 -0
  308. package/files/serverIndex.vue +215 -0
  309. package/files/store.js +96 -0
  310. package/files/storeData.vue +294 -0
  311. package/files/storeIndex.vue +245 -0
  312. package/files/upload.js +47 -0
  313. package/files/uploadIndex.vue +240 -0
  314. package/files/vite.config.js +58 -0
  315. package/index.mjs +28 -0
  316. package/jwt/README.MD +12 -0
  317. package/jwt/index.mjs +17 -0
  318. package/package.json +22 -0
  319. package/proxy/README.MD +0 -0
  320. package/proxy/index.mjs +16 -0
  321. package/static/README.MD +0 -0
  322. package/static/admin/assets/401-CYieuz9-.js +1 -0
  323. package/static/admin/assets/401-CYieuz9-.js.gz +0 -0
  324. package/static/admin/assets/401-DmT2Eyz6.css +1 -0
  325. package/static/admin/assets/401-HGF6Q5qM.gif +0 -0
  326. package/static/admin/assets/404-DFv5Zpvm.js +1 -0
  327. package/static/admin/assets/404-DFv5Zpvm.js.gz +0 -0
  328. package/static/admin/assets/404-Dy3nURRX.js +1 -0
  329. package/static/admin/assets/404-Dy3nURRX.js.gz +0 -0
  330. package/static/admin/assets/404-N4aRkdWY.png +0 -0
  331. package/static/admin/assets/404-uZCOR2Ze.css +1 -0
  332. package/static/admin/assets/404-uZCOR2Ze.css.gz +0 -0
  333. package/static/admin/assets/404_cloud-CPexjtDj.png +0 -0
  334. package/static/admin/assets/authRole-ma37t91O.js +1 -0
  335. package/static/admin/assets/authRole-ma37t91O.js.gz +0 -0
  336. package/static/admin/assets/authUser-C2Y6gkW3.js +1 -0
  337. package/static/admin/assets/authUser-C2Y6gkW3.js.gz +0 -0
  338. package/static/admin/assets/basicInfoForm-Cqv-g0Vq.js +1 -0
  339. package/static/admin/assets/basicInfoForm-Cqv-g0Vq.js.gz +0 -0
  340. package/static/admin/assets/bug-10dePVta.js +1 -0
  341. package/static/admin/assets/bug-10dePVta.js.gz +0 -0
  342. package/static/admin/assets/build-2jMyI6eP.js +1 -0
  343. package/static/admin/assets/build-2jMyI6eP.js.gz +0 -0
  344. package/static/admin/assets/button-BlSCM_GH.js +1 -0
  345. package/static/admin/assets/button-BlSCM_GH.js.gz +0 -0
  346. package/static/admin/assets/cache-CRGI5LFU.js +1 -0
  347. package/static/admin/assets/cascader-CXIOcY1C.js +1 -0
  348. package/static/admin/assets/cascader-CXIOcY1C.js.gz +0 -0
  349. package/static/admin/assets/chart-BsLMrzXU.js +1 -0
  350. package/static/admin/assets/checkbox-Bpiun3bf.js +1 -0
  351. package/static/admin/assets/checkbox-Bpiun3bf.js.gz +0 -0
  352. package/static/admin/assets/clipboard-DaV3cn7f.js +1 -0
  353. package/static/admin/assets/clipboard-DaV3cn7f.js.gz +0 -0
  354. package/static/admin/assets/code-DgJ8cT4a.js +1 -0
  355. package/static/admin/assets/color-y1Sshoou.js +1 -0
  356. package/static/admin/assets/color-y1Sshoou.js.gz +0 -0
  357. package/static/admin/assets/component-Djp9s69L.js +1 -0
  358. package/static/admin/assets/component-Djp9s69L.js.gz +0 -0
  359. package/static/admin/assets/createTable-CpixhIJI.js +1 -0
  360. package/static/admin/assets/createTable-CpixhIJI.js.gz +0 -0
  361. package/static/admin/assets/dashboard-Dy7qt_a2.js +1 -0
  362. package/static/admin/assets/dashboard-Dy7qt_a2.js.gz +0 -0
  363. package/static/admin/assets/data-B6ExfNCI.js +1 -0
  364. package/static/admin/assets/data-B6ExfNCI.js.gz +0 -0
  365. package/static/admin/assets/data-BNwnwlkO.js +34 -0
  366. package/static/admin/assets/data-BNwnwlkO.js.gz +0 -0
  367. package/static/admin/assets/data-C3FuPwta.css +1 -0
  368. package/static/admin/assets/data-DmSA0HcO.js +1 -0
  369. package/static/admin/assets/data-DmSA0HcO.js.gz +0 -0
  370. package/static/admin/assets/date-B1FSITvi.js +1 -0
  371. package/static/admin/assets/date-B1FSITvi.js.gz +0 -0
  372. package/static/admin/assets/date-range-B8MgYLb1.js +1 -0
  373. package/static/admin/assets/date-range-B8MgYLb1.js.gz +0 -0
  374. package/static/admin/assets/dict-Bi_GqSXR.js +1 -0
  375. package/static/admin/assets/dict-Bi_GqSXR.js.gz +0 -0
  376. package/static/admin/assets/documentation-uH9BvL5U.js +1 -0
  377. package/static/admin/assets/download-DeIzgQWH.js +1 -0
  378. package/static/admin/assets/download-DeIzgQWH.js.gz +0 -0
  379. package/static/admin/assets/drag-BG1_I1vT.js +1 -0
  380. package/static/admin/assets/druid-BybW_S_B.js +1 -0
  381. package/static/admin/assets/edit-D0DI9pAq.js +1 -0
  382. package/static/admin/assets/editTable-zr5bdAM7.js +1 -0
  383. package/static/admin/assets/editTable-zr5bdAM7.js.gz +0 -0
  384. package/static/admin/assets/education-47KsSYIl.js +1 -0
  385. package/static/admin/assets/email-Dig28Vt2.js +1 -0
  386. package/static/admin/assets/example-CnLLAFb9.js +1 -0
  387. package/static/admin/assets/excel-D3hj5F35.js +1 -0
  388. package/static/admin/assets/exit-fullscreen-dXhGKlQm.js +1 -0
  389. package/static/admin/assets/exit-fullscreen-dXhGKlQm.js.gz +0 -0
  390. package/static/admin/assets/eye-DqRz4sMZ.js +1 -0
  391. package/static/admin/assets/eye-DqRz4sMZ.js.gz +0 -0
  392. package/static/admin/assets/eye-open-BxlshWqB.js +1 -0
  393. package/static/admin/assets/eye-open-BxlshWqB.js.gz +0 -0
  394. package/static/admin/assets/form-BDTA_i-I.js +1 -0
  395. package/static/admin/assets/form-BDTA_i-I.js.gz +0 -0
  396. package/static/admin/assets/fullscreen-0JHt5yWX.js +1 -0
  397. package/static/admin/assets/gen-DLNrNhtb.js +1 -0
  398. package/static/admin/assets/genInfoForm-CMDsV5QX.js +1 -0
  399. package/static/admin/assets/genInfoForm-CMDsV5QX.js.gz +0 -0
  400. package/static/admin/assets/github-AJ0WQBa2.js +1 -0
  401. package/static/admin/assets/github-AJ0WQBa2.js.gz +0 -0
  402. package/static/admin/assets/guide-DZWUPi2j.js +1 -0
  403. package/static/admin/assets/icon-BtMv6Od8.js +1 -0
  404. package/static/admin/assets/icon-BtMv6Od8.js.gz +0 -0
  405. package/static/admin/assets/importTable-BsBsGfWB.js +1 -0
  406. package/static/admin/assets/importTable-BsBsGfWB.js.gz +0 -0
  407. package/static/admin/assets/index-1Gtzb1EG.css +1 -0
  408. package/static/admin/assets/index-1Gtzb1EG.css.gz +0 -0
  409. package/static/admin/assets/index-22TxXV_H.js +1 -0
  410. package/static/admin/assets/index-2PS_9Njt.js +1 -0
  411. package/static/admin/assets/index-2PS_9Njt.js.gz +0 -0
  412. package/static/admin/assets/index-2QWdVCKT.js +1 -0
  413. package/static/admin/assets/index-BH2yis6M.js +1 -0
  414. package/static/admin/assets/index-BYiWbDzj.js +137 -0
  415. package/static/admin/assets/index-BYiWbDzj.js.gz +0 -0
  416. package/static/admin/assets/index-BcoIBYYg.js +1 -0
  417. package/static/admin/assets/index-BcoIBYYg.js.gz +0 -0
  418. package/static/admin/assets/index-BdfyYxZX.css +1 -0
  419. package/static/admin/assets/index-BdfyYxZX.css.gz +0 -0
  420. package/static/admin/assets/index-BpFFXMK5.js +1 -0
  421. package/static/admin/assets/index-BpFFXMK5.js.gz +0 -0
  422. package/static/admin/assets/index-CKPU_AaL.js +1 -0
  423. package/static/admin/assets/index-CKPU_AaL.js.gz +0 -0
  424. package/static/admin/assets/index-CXsykB0X.js +1 -0
  425. package/static/admin/assets/index-CXsykB0X.js.gz +0 -0
  426. package/static/admin/assets/index-CfHRKVJR.js +1 -0
  427. package/static/admin/assets/index-CfHRKVJR.js.gz +0 -0
  428. package/static/admin/assets/index-ChrWcM7o.js +1 -0
  429. package/static/admin/assets/index-ChrWcM7o.js.gz +0 -0
  430. package/static/admin/assets/index-CyGqJLpz.css +1 -0
  431. package/static/admin/assets/index-Czuq8j-W.js +1 -0
  432. package/static/admin/assets/index-D5kEXJN3.js +1 -0
  433. package/static/admin/assets/index-D5kEXJN3.js.gz +0 -0
  434. package/static/admin/assets/index-D7sjRL--.js +1 -0
  435. package/static/admin/assets/index-D7sjRL--.js.gz +0 -0
  436. package/static/admin/assets/index-D9JRAPr4.js +1 -0
  437. package/static/admin/assets/index-D9JRAPr4.js.gz +0 -0
  438. package/static/admin/assets/index-DADWjT7Y.js +1 -0
  439. package/static/admin/assets/index-DADWjT7Y.js.gz +0 -0
  440. package/static/admin/assets/index-DUTtT4NU.js +1 -0
  441. package/static/admin/assets/index-DUTtT4NU.js.gz +0 -0
  442. package/static/admin/assets/index-DZR__uIb.js +1 -0
  443. package/static/admin/assets/index-DZR__uIb.js.gz +0 -0
  444. package/static/admin/assets/index-Da2r8G2b.js +1 -0
  445. package/static/admin/assets/index-Da2r8G2b.js.gz +0 -0
  446. package/static/admin/assets/index-DakybE_b.js +1 -0
  447. package/static/admin/assets/index-DakybE_b.js.gz +0 -0
  448. package/static/admin/assets/index-DdnU2rJ0.css +1 -0
  449. package/static/admin/assets/index-H21xXZr5.js +60 -0
  450. package/static/admin/assets/index-H21xXZr5.js.gz +0 -0
  451. package/static/admin/assets/index-PGDGQEbD.js +1 -0
  452. package/static/admin/assets/index-PGDGQEbD.js.gz +0 -0
  453. package/static/admin/assets/index-Rm6qYhrO.js +1 -0
  454. package/static/admin/assets/index-VG6ZkdYt.js +1 -0
  455. package/static/admin/assets/index-VG6ZkdYt.js.gz +0 -0
  456. package/static/admin/assets/index-YVnsjgTq.js +1 -0
  457. package/static/admin/assets/index-YVnsjgTq.js.gz +0 -0
  458. package/static/admin/assets/index-t3XJ47us.css +1 -0
  459. package/static/admin/assets/index-t3XJ47us.css.gz +0 -0
  460. package/static/admin/assets/index-xfai-fRy.js +1 -0
  461. package/static/admin/assets/index-xfai-fRy.js.gz +0 -0
  462. package/static/admin/assets/input-BJoPMnBW.js +1 -0
  463. package/static/admin/assets/international-CmzG1OHg.js +1 -0
  464. package/static/admin/assets/international-CmzG1OHg.js.gz +0 -0
  465. package/static/admin/assets/job-BcmuINx7.js +1 -0
  466. package/static/admin/assets/job-BcmuINx7.js.gz +0 -0
  467. package/static/admin/assets/job-COdMvNx2.js +1 -0
  468. package/static/admin/assets/language-CaW1LMEk.js +1 -0
  469. package/static/admin/assets/language-CaW1LMEk.js.gz +0 -0
  470. package/static/admin/assets/link-C93f4PgI.js +1 -0
  471. package/static/admin/assets/list-C7O8B4zW.js +1 -0
  472. package/static/admin/assets/list-C7O8B4zW.js.gz +0 -0
  473. package/static/admin/assets/list-DUaPnccL.js +1 -0
  474. package/static/admin/assets/list-DUaPnccL.js.gz +0 -0
  475. package/static/admin/assets/lock-Bexeb9hp.js +1 -0
  476. package/static/admin/assets/log-CF2F-nSs.js +1 -0
  477. package/static/admin/assets/log-CF2F-nSs.js.gz +0 -0
  478. package/static/admin/assets/log-g6qirYnf.js +1 -0
  479. package/static/admin/assets/log-g6qirYnf.js.gz +0 -0
  480. package/static/admin/assets/login-1ezV0PC1.css +1 -0
  481. package/static/admin/assets/login-1ezV0PC1.css.gz +0 -0
  482. package/static/admin/assets/login-BnkuYS6J.js +22 -0
  483. package/static/admin/assets/login-BnkuYS6J.js.gz +0 -0
  484. package/static/admin/assets/login-background-Yn3y1TP_.jpg +0 -0
  485. package/static/admin/assets/logininfor-Bm9ZYYR7.js +1 -0
  486. package/static/admin/assets/logininfor-Bm9ZYYR7.js.gz +0 -0
  487. package/static/admin/assets/logo-BjsPc2xl.png +0 -0
  488. package/static/admin/assets/menu-BIu3IsSF.js +1 -0
  489. package/static/admin/assets/message-UkR-VIBB.js +1 -0
  490. package/static/admin/assets/money-B1qqPuhn.js +1 -0
  491. package/static/admin/assets/monitor-gwnnVq4l.js +1 -0
  492. package/static/admin/assets/monitor-gwnnVq4l.js.gz +0 -0
  493. package/static/admin/assets/nested-B4d5u3hW.js +1 -0
  494. package/static/admin/assets/number-D4hB_nHC.js +1 -0
  495. package/static/admin/assets/number-D4hB_nHC.js.gz +0 -0
  496. package/static/admin/assets/online-C2ZP8pdY.js +1 -0
  497. package/static/admin/assets/online-C2ZP8pdY.js.gz +0 -0
  498. package/static/admin/assets/password-DfGvqQpB.js +1 -0
  499. package/static/admin/assets/password-DfGvqQpB.js.gz +0 -0
  500. package/static/admin/assets/pay-2ZbgPnxn.png +0 -0
  501. package/static/admin/assets/pdf-CD9mOGjJ.js +1 -0
  502. package/static/admin/assets/pdf-CD9mOGjJ.js.gz +0 -0
  503. package/static/admin/assets/people-CdGMHN63.js +1 -0
  504. package/static/admin/assets/people-CdGMHN63.js.gz +0 -0
  505. package/static/admin/assets/peoples-BRYsIqmI.js +1 -0
  506. package/static/admin/assets/phone-BpAUIz0g.js +1 -0
  507. package/static/admin/assets/phone-BpAUIz0g.js.gz +0 -0
  508. package/static/admin/assets/pm2-BkmkkE2A.js +1 -0
  509. package/static/admin/assets/post-DrLDyPY9.js +1 -0
  510. package/static/admin/assets/post-DrLDyPY9.js.gz +0 -0
  511. package/static/admin/assets/profile-DruvkrZU.jpg +0 -0
  512. package/static/admin/assets/qq-D8j4O83Y.js +1 -0
  513. package/static/admin/assets/qq-D8j4O83Y.js.gz +0 -0
  514. package/static/admin/assets/question-CvYWQbyW.js +1 -0
  515. package/static/admin/assets/question-CvYWQbyW.js.gz +0 -0
  516. package/static/admin/assets/radio-B0t9wPBQ.js +1 -0
  517. package/static/admin/assets/radio-B0t9wPBQ.js.gz +0 -0
  518. package/static/admin/assets/rate-CgnHQvKS.js +1 -0
  519. package/static/admin/assets/rate-CgnHQvKS.js.gz +0 -0
  520. package/static/admin/assets/redis-D4ECyT6a.js +1 -0
  521. package/static/admin/assets/redis-D4ECyT6a.js.gz +0 -0
  522. package/static/admin/assets/redis-list-BtKGPnqO.js +1 -0
  523. package/static/admin/assets/redis-list-BtKGPnqO.js.gz +0 -0
  524. package/static/admin/assets/register-B9RmZvjt.js +1 -0
  525. package/static/admin/assets/register-B9RmZvjt.js.gz +0 -0
  526. package/static/admin/assets/register-n3u7gqca.css +1 -0
  527. package/static/admin/assets/resetPwd-M0EIDnQk.js +1 -0
  528. package/static/admin/assets/resetPwd-M0EIDnQk.js.gz +0 -0
  529. package/static/admin/assets/role-XbHkNxnW.js +1 -0
  530. package/static/admin/assets/role-XbHkNxnW.js.gz +0 -0
  531. package/static/admin/assets/row-CRXKIHjm.js +1 -0
  532. package/static/admin/assets/row-CRXKIHjm.js.gz +0 -0
  533. package/static/admin/assets/search-CUfclCsR.js +1 -0
  534. package/static/admin/assets/select-DhuHHMxz.js +1 -0
  535. package/static/admin/assets/select-DhuHHMxz.js.gz +0 -0
  536. package/static/admin/assets/selectUser-DA_rE9J_.js +1 -0
  537. package/static/admin/assets/selectUser-DA_rE9J_.js.gz +0 -0
  538. package/static/admin/assets/server-unS7EyF7.js +1 -0
  539. package/static/admin/assets/shopping-CU1IRvxM.js +1 -0
  540. package/static/admin/assets/shopping-CU1IRvxM.js.gz +0 -0
  541. package/static/admin/assets/size-Cj9fB5Rp.js +1 -0
  542. package/static/admin/assets/skill-B8f_I4m_.js +1 -0
  543. package/static/admin/assets/skill-B8f_I4m_.js.gz +0 -0
  544. package/static/admin/assets/slider-BGfehM6X.js +1 -0
  545. package/static/admin/assets/star-kST8a72V.js +1 -0
  546. package/static/admin/assets/store-CX7IRN8X.js +1 -0
  547. package/static/admin/assets/swagger-BHGXZ2Jt.js +1 -0
  548. package/static/admin/assets/swagger-BHGXZ2Jt.js.gz +0 -0
  549. package/static/admin/assets/switch-CvaargRJ.js +1 -0
  550. package/static/admin/assets/system-DcNSH_Fq.js +1 -0
  551. package/static/admin/assets/system-DcNSH_Fq.js.gz +0 -0
  552. package/static/admin/assets/tab-nA3f0aBt.js +1 -0
  553. package/static/admin/assets/table-5PRh60AQ.js +1 -0
  554. package/static/admin/assets/test-CEJIIaDM.js +1 -0
  555. package/static/admin/assets/test-CEJIIaDM.js.gz +0 -0
  556. package/static/admin/assets/textarea-CJWXlgbJ.js +1 -0
  557. package/static/admin/assets/theme-CyGq941x.js +1 -0
  558. package/static/admin/assets/time-BVERp0sU.js +1 -0
  559. package/static/admin/assets/time-BVERp0sU.js.gz +0 -0
  560. package/static/admin/assets/time-range-D3dxgtLj.js +1 -0
  561. package/static/admin/assets/time-range-D3dxgtLj.js.gz +0 -0
  562. package/static/admin/assets/tool-D8kXk1l-.js +1 -0
  563. package/static/admin/assets/tool-D8kXk1l-.js.gz +0 -0
  564. package/static/admin/assets/tree-BCtS3oPD.js +1 -0
  565. package/static/admin/assets/tree-BCtS3oPD.js.gz +0 -0
  566. package/static/admin/assets/tree-table-CnOS99I9.js +1 -0
  567. package/static/admin/assets/tree-table-CnOS99I9.js.gz +0 -0
  568. package/static/admin/assets/type-BU7MsCG8.js +1 -0
  569. package/static/admin/assets/upload-BueI-Il1.js +1 -0
  570. package/static/admin/assets/upload-BueI-Il1.js.gz +0 -0
  571. package/static/admin/assets/user-DCGYGA9G.js +1 -0
  572. package/static/admin/assets/user-DCGYGA9G.js.gz +0 -0
  573. package/static/admin/assets/user-DqMuW5cU.js +1 -0
  574. package/static/admin/assets/userAvatar-BAmwMY1G.css +1 -0
  575. package/static/admin/assets/userAvatar-BAmwMY1G.css.gz +0 -0
  576. package/static/admin/assets/userAvatar-Bax34kaQ.js +7 -0
  577. package/static/admin/assets/userAvatar-Bax34kaQ.js.gz +0 -0
  578. package/static/admin/assets/userInfo-OvdBjEQX.js +1 -0
  579. package/static/admin/assets/userInfo-OvdBjEQX.js.gz +0 -0
  580. package/static/admin/assets/validCode-COB1iLxa.js +1 -0
  581. package/static/admin/assets/validCode-COB1iLxa.js.gz +0 -0
  582. package/static/admin/assets/wechat-lmQOcPZu.js +1 -0
  583. package/static/admin/assets/wechat-lmQOcPZu.js.gz +0 -0
  584. package/static/admin/assets/zip-DIOSZc69.js +1 -0
  585. package/static/admin/assets/zip-DIOSZc69.js.gz +0 -0
  586. package/static/admin/favicon.ico +0 -0
  587. package/static/admin/index.html +216 -0
  588. package/static/admin/index.html.gz +0 -0
  589. package/store1/README.MD +0 -0
  590. package/store1/generic.mjs +102 -0
  591. package/store1/index.mjs +30 -0
  592. package/store1/monitor.mjs +13 -0
  593. package/store1/role.mjs +137 -0
  594. package/store1/store/0/data +0 -0
  595. package/store1/store/0/index +0 -0
  596. package/store1/store/0/index.mjs +15 -0
  597. package/store1/store/1/buffer/464135 +1 -0
  598. package/store1/store/1/buffer/464587 +1 -0
  599. package/store1/store/1/data +0 -0
  600. package/store1/store/1/data-LAPTOP-S8G0S6EH +0 -0
  601. package/store1/store/1/index +0 -0
  602. package/store1/store/1/index-LAPTOP-S8G0S6EH +0 -0
  603. package/store1/store/1/index.mjs +4045 -0
  604. package/store1/store/1/type.ts +1492 -0
  605. package/store1/store/index.mjs +23 -0
  606. package/store1/store2/0/data +0 -0
  607. package/store1/store2/0/index +0 -0
  608. package/store1/store2/0/index.mjs +15 -0
  609. package/store1/store2/1/buffer/464135 +1 -0
  610. package/store1/store2/1/buffer/464587 +1 -0
  611. package/store1/store2/1/data +0 -0
  612. package/store1/store2/1/data-LAPTOP-S8G0S6EH +0 -0
  613. package/store1/store2/1/index +0 -0
  614. package/store1/store2/1/index-LAPTOP-S8G0S6EH +0 -0
  615. package/store1/store2/1/index.mjs +4045 -0
  616. package/store1/store2/1/type.ts +1492 -0
  617. package/store1/store2/index.mjs +23 -0
  618. package/store1/system.mjs +67 -0
  619. package/store1/tool.mjs +472 -0
  620. package/store1/user.mjs +228 -0
@@ -0,0 +1,635 @@
1
+ <template>
2
+ <div class="app-container">
3
+ <el-row :gutter="20">
4
+ <!--部门数据-->
5
+ <el-col :span="4" :xs="24">
6
+ <div class="head-container">
7
+ <el-input
8
+ v-model="deptName"
9
+ placeholder="请输入部门名称"
10
+ clearable
11
+ prefix-icon="Search"
12
+ style="margin-bottom: 20px"
13
+ />
14
+ </div>
15
+ <div class="head-container">
16
+ <el-tree
17
+ :data="deptOptions"
18
+ :props="{ label: 'label', children: 'children' }"
19
+ :expand-on-click-node="false"
20
+ :filter-node-method="filterNode"
21
+ ref="deptTreeRef"
22
+ node-key="id"
23
+ highlight-current
24
+ default-expand-all
25
+ @node-click="handleNodeClick"
26
+ />
27
+ </div>
28
+ </el-col>
29
+ <!--用户数据-->
30
+ <el-col :span="20" :xs="24">
31
+ <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
32
+ <el-form-item label="用户名称" prop="userName">
33
+ <el-input
34
+ v-model="queryParams.userName"
35
+ placeholder="请输入用户名称"
36
+ clearable
37
+ style="width: 240px"
38
+ @keyup.enter="handleQuery"
39
+ />
40
+ </el-form-item>
41
+ <el-form-item label="手机号码" prop="phonenumber">
42
+ <el-input
43
+ v-model="queryParams.phonenumber"
44
+ placeholder="请输入手机号码"
45
+ clearable
46
+ style="width: 240px"
47
+ @keyup.enter="handleQuery"
48
+ />
49
+ </el-form-item>
50
+ <el-form-item label="状态" prop="status">
51
+ <el-select
52
+ v-model="queryParams.status"
53
+ placeholder="用户状态"
54
+ clearable
55
+ style="width: 240px"
56
+ >
57
+ <el-option
58
+ v-for="dict in sys_normal_disable"
59
+ :key="dict.value"
60
+ :label="dict.label"
61
+ :value="dict.value"
62
+ />
63
+ </el-select>
64
+ </el-form-item>
65
+ <el-form-item label="创建时间" style="width: 308px;">
66
+ <el-date-picker
67
+ v-model="dateRange"
68
+ value-format="YYYY-MM-DD"
69
+ type="daterange"
70
+ range-separator="-"
71
+ start-placeholder="开始日期"
72
+ end-placeholder="结束日期"
73
+ ></el-date-picker>
74
+ </el-form-item>
75
+ <el-form-item>
76
+ <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
77
+ <el-button icon="Refresh" @click="resetQuery">重置</el-button>
78
+ </el-form-item>
79
+ </el-form>
80
+
81
+ <el-row :gutter="10" class="mb8">
82
+ <el-col :span="1.5">
83
+ <el-button
84
+ type="primary"
85
+ plain
86
+ icon="Plus"
87
+ @click="handleAdd"
88
+ v-hasPermi="['system:user:add']"
89
+ >新增</el-button>
90
+ </el-col>
91
+ <el-col :span="1.5">
92
+ <el-button
93
+ type="success"
94
+ plain
95
+ icon="Edit"
96
+ :disabled="single"
97
+ @click="handleUpdate"
98
+ v-hasPermi="['system:user:edit']"
99
+ >修改</el-button>
100
+ </el-col>
101
+ <el-col :span="1.5">
102
+ <el-button
103
+ type="danger"
104
+ plain
105
+ icon="Delete"
106
+ :disabled="multiple"
107
+ @click="handleDelete"
108
+ v-hasPermi="['system:user:remove']"
109
+ >删除</el-button>
110
+ </el-col>
111
+ <el-col :span="1.5">
112
+ <el-button
113
+ type="info"
114
+ plain
115
+ icon="Upload"
116
+ @click="handleImport"
117
+ v-hasPermi="['system:user:import']"
118
+ >导入</el-button>
119
+ </el-col>
120
+ <el-col :span="1.5">
121
+ <el-button
122
+ type="warning"
123
+ plain
124
+ icon="Download"
125
+ @click="handleExport"
126
+ v-hasPermi="['system:user:export']"
127
+ >导出</el-button>
128
+ </el-col>
129
+ <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
130
+ </el-row>
131
+
132
+ <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
133
+ <el-table-column type="selection" width="50" align="center" />
134
+ <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
135
+ <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
136
+ <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
137
+ <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
138
+ <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
139
+ <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
140
+ <template #default="scope">
141
+ <el-switch
142
+ v-model="scope.row.status"
143
+ active-value="0"
144
+ inactive-value="1"
145
+ @change="handleStatusChange(scope.row)"
146
+ ></el-switch>
147
+ </template>
148
+ </el-table-column>
149
+ <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
150
+ <template #default="scope">
151
+ <span>{{ parseTime(scope.row.createTime) }}</span>
152
+ </template>
153
+ </el-table-column>
154
+ <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
155
+ <template #default="scope">
156
+ <el-tooltip content="修改" placement="top" v-if="scope.row.userId !== 1">
157
+ <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
158
+ </el-tooltip>
159
+ <el-tooltip content="删除" placement="top" v-if="scope.row.userId !== 1">
160
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']"></el-button>
161
+ </el-tooltip>
162
+ <el-tooltip content="重置密码" placement="top" v-if="scope.row.userId !== 1">
163
+ <el-button link type="primary" icon="Key" @click="handleResetPwd(scope.row)" v-hasPermi="['system:user:resetPwd']"></el-button>
164
+ </el-tooltip>
165
+ <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1">
166
+ <el-button link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)" v-hasPermi="['system:user:edit']"></el-button>
167
+ </el-tooltip>
168
+ </template>
169
+ </el-table-column>
170
+ </el-table>
171
+ <pagination
172
+ v-show="total > 0"
173
+ :total="total"
174
+ v-model:page="queryParams.pageNum"
175
+ v-model:limit="queryParams.pageSize"
176
+ @pagination="getList"
177
+ />
178
+ </el-col>
179
+ </el-row>
180
+
181
+ <!-- 添加或修改用户配置对话框 -->
182
+ <el-dialog :title="title" v-model="open" width="600px" append-to-body>
183
+ <el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
184
+ <el-row>
185
+ <el-col :span="12">
186
+ <el-form-item label="用户昵称" prop="nickName">
187
+ <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
188
+ </el-form-item>
189
+ </el-col>
190
+ <el-col :span="12">
191
+ <el-form-item label="归属部门" prop="deptId">
192
+ <el-tree-select
193
+ v-model="form.deptId"
194
+ :data="deptOptions"
195
+ :props="{ value: 'id', label: 'label', children: 'children' }"
196
+ value-key="id"
197
+ placeholder="请选择归属部门"
198
+ check-strictly
199
+ />
200
+ </el-form-item>
201
+ </el-col>
202
+ </el-row>
203
+ <el-row>
204
+ <el-col :span="12">
205
+ <el-form-item label="手机号码" prop="phonenumber">
206
+ <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
207
+ </el-form-item>
208
+ </el-col>
209
+ <el-col :span="12">
210
+ <el-form-item label="邮箱" prop="email">
211
+ <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
212
+ </el-form-item>
213
+ </el-col>
214
+ </el-row>
215
+ <el-row>
216
+ <el-col :span="12">
217
+ <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
218
+ <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
219
+ </el-form-item>
220
+ </el-col>
221
+ <el-col :span="12">
222
+ <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
223
+ <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
224
+ </el-form-item>
225
+ </el-col>
226
+ </el-row>
227
+ <el-row>
228
+ <el-col :span="12">
229
+ <el-form-item label="用户性别">
230
+ <el-select v-model="form.sex" placeholder="请选择">
231
+ <el-option
232
+ v-for="dict in sys_user_sex"
233
+ :key="dict.value"
234
+ :label="dict.label"
235
+ :value="dict.value"
236
+ ></el-option>
237
+ </el-select>
238
+ </el-form-item>
239
+ </el-col>
240
+ <el-col :span="12">
241
+ <el-form-item label="状态">
242
+ <el-radio-group v-model="form.status">
243
+ <el-radio
244
+ v-for="dict in sys_normal_disable"
245
+ :key="dict.value"
246
+ :value="dict.value"
247
+ >{{ dict.label }}</el-radio>
248
+ </el-radio-group>
249
+ </el-form-item>
250
+ </el-col>
251
+ </el-row>
252
+ <el-row>
253
+ <el-col :span="12">
254
+ <el-form-item label="岗位">
255
+ <el-select v-model="form.postIds" multiple placeholder="请选择">
256
+ <el-option
257
+ v-for="item in postOptions"
258
+ :key="item.postId"
259
+ :label="item.postName"
260
+ :value="item.postId"
261
+ :disabled="item.status == 1"
262
+ ></el-option>
263
+ </el-select>
264
+ </el-form-item>
265
+ </el-col>
266
+ <el-col :span="12">
267
+ <el-form-item label="角色">
268
+ <el-select v-model="form.roleIds" multiple placeholder="请选择">
269
+ <el-option
270
+ v-for="item in roleOptions"
271
+ :key="item.roleId"
272
+ :label="item.roleName"
273
+ :value="item.roleId"
274
+ :disabled="item.status == 1"
275
+ ></el-option>
276
+ </el-select>
277
+ </el-form-item>
278
+ </el-col>
279
+ </el-row>
280
+ <el-row>
281
+ <el-col :span="24">
282
+ <el-form-item label="备注">
283
+ <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
284
+ </el-form-item>
285
+ </el-col>
286
+ </el-row>
287
+ </el-form>
288
+ <template #footer>
289
+ <div class="dialog-footer">
290
+ <el-button type="primary" @click="submitForm">确 定</el-button>
291
+ <el-button @click="cancel">取 消</el-button>
292
+ </div>
293
+ </template>
294
+ </el-dialog>
295
+
296
+ <!-- 用户导入对话框 -->
297
+ <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
298
+ <el-upload
299
+ ref="uploadRef"
300
+ :limit="1"
301
+ accept=".xlsx, .xls"
302
+ :headers="upload.headers"
303
+ :action="upload.url + '?updateSupport=' + upload.updateSupport"
304
+ :disabled="upload.isUploading"
305
+ :on-progress="handleFileUploadProgress"
306
+ :on-success="handleFileSuccess"
307
+ :auto-upload="false"
308
+ drag
309
+ >
310
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
311
+ <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
312
+ <template #tip>
313
+ <div class="el-upload__tip text-center">
314
+ <div class="el-upload__tip">
315
+ <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
316
+ </div>
317
+ <span>仅允许导入xls、xlsx格式文件。</span>
318
+ <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
319
+ </div>
320
+ </template>
321
+ </el-upload>
322
+ <template #footer>
323
+ <div class="dialog-footer">
324
+ <el-button type="primary" @click="submitFileForm">确 定</el-button>
325
+ <el-button @click="upload.open = false">取 消</el-button>
326
+ </div>
327
+ </template>
328
+ </el-dialog>
329
+ </div>
330
+ </template>
331
+
332
+ <script setup name="User">
333
+ import { getToken } from "@/utils/auth";
334
+ import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, deptTreeSelect } from "@/api/system/user";
335
+
336
+ const router = useRouter();
337
+ const { proxy } = getCurrentInstance();
338
+ const { sys_normal_disable, sys_user_sex } = proxy.useDict("sys_normal_disable", "sys_user_sex");
339
+
340
+ const userList = ref([]);
341
+ const open = ref(false);
342
+ const loading = ref(true);
343
+ const showSearch = ref(true);
344
+ const ids = ref([]);
345
+ const single = ref(true);
346
+ const multiple = ref(true);
347
+ const total = ref(0);
348
+ const title = ref("");
349
+ const dateRange = ref([]);
350
+ const deptName = ref("");
351
+ const deptOptions = ref(undefined);
352
+ const initPassword = ref(undefined);
353
+ const postOptions = ref([]);
354
+ const roleOptions = ref([]);
355
+ /*** 用户导入参数 */
356
+ const upload = reactive({
357
+ // 是否显示弹出层(用户导入)
358
+ open: false,
359
+ // 弹出层标题(用户导入)
360
+ title: "",
361
+ // 是否禁用上传
362
+ isUploading: false,
363
+ // 是否更新已经存在的用户数据
364
+ updateSupport: 0,
365
+ // 设置上传的请求头部
366
+ headers: { Authorization: "Bearer " + getToken() },
367
+ // 上传的地址
368
+ url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData"
369
+ });
370
+ // 列显隐信息
371
+ const columns = ref([
372
+ { key: 0, label: `用户编号`, visible: true },
373
+ { key: 1, label: `用户名称`, visible: true },
374
+ { key: 2, label: `用户昵称`, visible: true },
375
+ { key: 3, label: `部门`, visible: true },
376
+ { key: 4, label: `手机号码`, visible: true },
377
+ { key: 5, label: `状态`, visible: true },
378
+ { key: 6, label: `创建时间`, visible: true }
379
+ ]);
380
+
381
+ const data = reactive({
382
+ form: {},
383
+ queryParams: {
384
+ pageNum: 1,
385
+ pageSize: 10,
386
+ userName: undefined,
387
+ phonenumber: undefined,
388
+ status: undefined,
389
+ deptId: undefined
390
+ },
391
+ rules: {
392
+ userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
393
+ nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
394
+ password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }],
395
+ email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
396
+ phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
397
+ }
398
+ });
399
+
400
+ const { queryParams, form, rules } = toRefs(data);
401
+
402
+ /** 通过条件过滤节点 */
403
+ const filterNode = (value, data) => {
404
+ if (!value) return true;
405
+ return data.label.indexOf(value) !== -1;
406
+ };
407
+
408
+ /** 根据名称筛选部门树 */
409
+ watch(deptName, val => {
410
+ proxy.$refs["deptTreeRef"].filter(val);
411
+ });
412
+
413
+ /** 查询部门下拉树结构 */
414
+ function getDeptTree() {
415
+ deptTreeSelect().then(response => {
416
+ deptOptions.value = response.data;
417
+ });
418
+ };
419
+
420
+ /** 查询用户列表 */
421
+ function getList() {
422
+ loading.value = true;
423
+ listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then(res => {
424
+ loading.value = false;
425
+ userList.value = res.rows;
426
+ total.value = res.total;
427
+ });
428
+ };
429
+
430
+ /** 节点单击事件 */
431
+ function handleNodeClick(data) {
432
+ queryParams.value.deptId = data.id;
433
+ handleQuery();
434
+ };
435
+
436
+ /** 搜索按钮操作 */
437
+ function handleQuery() {
438
+ queryParams.value.pageNum = 1;
439
+ getList();
440
+ };
441
+
442
+ /** 重置按钮操作 */
443
+ function resetQuery() {
444
+ dateRange.value = [];
445
+ proxy.resetForm("queryRef");
446
+ queryParams.value.deptId = undefined;
447
+ proxy.$refs.deptTreeRef.setCurrentKey(null);
448
+ handleQuery();
449
+ };
450
+
451
+ /** 删除按钮操作 */
452
+ function handleDelete(row) {
453
+ const userIds = row.userId || ids.value;
454
+ proxy.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?').then(function () {
455
+ return delUser(userIds);
456
+ }).then(() => {
457
+ getList();
458
+ proxy.$modal.msgSuccess("删除成功");
459
+ }).catch(() => {});
460
+ };
461
+
462
+ /** 导出按钮操作 */
463
+ function handleExport() {
464
+ proxy.download("system/user/export", {
465
+ ...queryParams.value,
466
+ },`user_${new Date().getTime()}.xlsx`);
467
+ };
468
+
469
+ /** 用户状态修改 */
470
+ function handleStatusChange(row) {
471
+ let text = row.status === "0" ? "启用" : "停用";
472
+ proxy.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
473
+ return changeUserStatus(row.userId, row.status);
474
+ }).then(() => {
475
+ proxy.$modal.msgSuccess(text + "成功");
476
+ }).catch(function () {
477
+ row.status = row.status === "0" ? "1" : "0";
478
+ });
479
+ };
480
+
481
+ /** 更多操作 */
482
+ function handleCommand(command, row) {
483
+ switch (command) {
484
+ case "handleResetPwd":
485
+ handleResetPwd(row);
486
+ break;
487
+ case "handleAuthRole":
488
+ handleAuthRole(row);
489
+ break;
490
+ default:
491
+ break;
492
+ }
493
+ };
494
+
495
+ /** 跳转角色分配 */
496
+ function handleAuthRole(row) {
497
+ const userId = row.userId;
498
+ router.push("/system/user-auth/role/" + userId);
499
+ };
500
+
501
+ /** 重置密码按钮操作 */
502
+ function handleResetPwd(row) {
503
+ proxy.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
504
+ confirmButtonText: "确定",
505
+ cancelButtonText: "取消",
506
+ closeOnClickModal: false,
507
+ inputPattern: /^.{5,20}$/,
508
+ inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
509
+ inputValidator: (value) => {
510
+ if (/<|>|"|'|\||\\/.test(value)) {
511
+ return "不能包含非法字符:< > \" ' \\\ |"
512
+ }
513
+ },
514
+ }).then(({ value }) => {
515
+ resetUserPwd(row.userId, value).then(response => {
516
+ proxy.$modal.msgSuccess("修改成功,新密码是:" + value);
517
+ });
518
+ }).catch(() => {});
519
+ };
520
+
521
+ /** 选择条数 */
522
+ function handleSelectionChange(selection) {
523
+ ids.value = selection.map(item => item.userId);
524
+ single.value = selection.length != 1;
525
+ multiple.value = !selection.length;
526
+ };
527
+
528
+ /** 导入按钮操作 */
529
+ function handleImport() {
530
+ upload.title = "用户导入";
531
+ upload.open = true;
532
+ };
533
+
534
+ /** 下载模板操作 */
535
+ function importTemplate() {
536
+ proxy.download("system/user/importTemplate", {
537
+ }, `user_template_${new Date().getTime()}.xlsx`);
538
+ };
539
+
540
+ /**文件上传中处理 */
541
+ const handleFileUploadProgress = (event, file, fileList) => {
542
+ upload.isUploading = true;
543
+ };
544
+
545
+ /** 文件上传成功处理 */
546
+ const handleFileSuccess = (response, file, fileList) => {
547
+ upload.open = false;
548
+ upload.isUploading = false;
549
+ proxy.$refs["uploadRef"].handleRemove(file);
550
+ proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
551
+ getList();
552
+ };
553
+
554
+ /** 提交上传文件 */
555
+ function submitFileForm() {
556
+ proxy.$refs["uploadRef"].submit();
557
+ };
558
+
559
+ /** 重置操作表单 */
560
+ function reset() {
561
+ form.value = {
562
+ userId: undefined,
563
+ deptId: undefined,
564
+ userName: undefined,
565
+ nickName: undefined,
566
+ password: undefined,
567
+ phonenumber: undefined,
568
+ email: undefined,
569
+ sex: undefined,
570
+ status: "0",
571
+ remark: undefined,
572
+ postIds: [],
573
+ roleIds: []
574
+ };
575
+ proxy.resetForm("userRef");
576
+ };
577
+
578
+ /** 取消按钮 */
579
+ function cancel() {
580
+ open.value = false;
581
+ reset();
582
+ };
583
+
584
+ /** 新增按钮操作 */
585
+ function handleAdd() {
586
+ reset();
587
+ getUser().then(response => {
588
+ postOptions.value = response.posts;
589
+ roleOptions.value = response.roles;
590
+ open.value = true;
591
+ title.value = "添加用户";
592
+ form.value.password = initPassword.value;
593
+ });
594
+ };
595
+
596
+ /** 修改按钮操作 */
597
+ function handleUpdate(row) {
598
+ reset();
599
+ const userId = row.userId || ids.value;
600
+ getUser(userId).then(response => {
601
+ form.value = response.data;
602
+ postOptions.value = response.posts;
603
+ roleOptions.value = response.roles;
604
+ form.value.postIds = response.postIds;
605
+ form.value.roleIds = response.roleIds;
606
+ open.value = true;
607
+ title.value = "修改用户";
608
+ form.password = "";
609
+ });
610
+ };
611
+
612
+ /** 提交按钮 */
613
+ function submitForm() {
614
+ proxy.$refs["userRef"].validate(valid => {
615
+ if (valid) {
616
+ if (form.value.userId != undefined) {
617
+ updateUser(form.value).then(response => {
618
+ proxy.$modal.msgSuccess("修改成功");
619
+ open.value = false;
620
+ getList();
621
+ });
622
+ } else {
623
+ addUser(form.value).then(response => {
624
+ proxy.$modal.msgSuccess("新增成功");
625
+ open.value = false;
626
+ getList();
627
+ });
628
+ }
629
+ }
630
+ });
631
+ };
632
+
633
+ getDeptTree();
634
+ getList();
635
+ </script>