@sugarat/easypicker2-client 2.4.3 → 2.6.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 (293) hide show
  1. package/dist/assets/aria-bc8e8b0f.js +2 -0
  2. package/dist/assets/aria-bc8e8b0f.js.map +1 -0
  3. package/dist/assets/aria-legacy.af0825d3.js +2 -0
  4. package/dist/assets/data-analysis-3ce8c1c1.js +2 -0
  5. package/dist/assets/data-analysis-3ce8c1c1.js.map +1 -0
  6. package/dist/assets/data-analysis-legacy.985137a1.js +2 -0
  7. package/dist/assets/data-board-fc2c2ec1.js +2 -0
  8. package/dist/assets/data-board-fc2c2ec1.js.map +1 -0
  9. package/dist/assets/data-board-legacy.33116f7c.js +2 -0
  10. package/dist/assets/el-date-picker-b377a533.js +2 -0
  11. package/dist/assets/el-date-picker-b377a533.js.map +1 -0
  12. package/dist/assets/el-date-picker-cf2e83b6.css +1 -0
  13. package/dist/assets/el-date-picker-legacy.127f0787.js +2 -0
  14. package/dist/assets/el-dialog-25bd2fb8.css +1 -0
  15. package/dist/assets/el-dialog-5b7bce58.js +2 -0
  16. package/dist/assets/el-dialog-5b7bce58.js.map +1 -0
  17. package/dist/assets/el-dialog-legacy.e6ef2c86.js +2 -0
  18. package/dist/assets/el-dropdown-item-0c6ddabc.css +1 -0
  19. package/dist/assets/el-dropdown-item-e0275106.js +2 -0
  20. package/dist/assets/el-dropdown-item-e0275106.js.map +1 -0
  21. package/dist/assets/el-dropdown-item-legacy.4888d114.js +2 -0
  22. package/dist/assets/el-form-item-3aad794a.css +1 -0
  23. package/dist/assets/el-form-item-c0658f70.js +2 -0
  24. package/dist/assets/el-form-item-c0658f70.js.map +1 -0
  25. package/dist/assets/el-form-item-legacy.a8e8784e.js +2 -0
  26. package/dist/assets/el-loading-c8798044.js +2 -0
  27. package/dist/assets/el-loading-c8798044.js.map +1 -0
  28. package/dist/assets/el-loading-d0f2d079.css +1 -0
  29. package/dist/assets/el-loading-legacy.534bd799.js +2 -0
  30. package/dist/assets/el-pagination-bf7c736d.css +1 -0
  31. package/dist/assets/el-pagination-dabcccbb.js +2 -0
  32. package/dist/assets/el-pagination-dabcccbb.js.map +1 -0
  33. package/dist/assets/el-pagination-legacy.7d2ae10d.js +2 -0
  34. package/dist/assets/el-progress-54b274cd.js +2 -0
  35. package/dist/assets/el-progress-54b274cd.js.map +1 -0
  36. package/dist/assets/el-progress-63aabe3a.css +1 -0
  37. package/dist/assets/el-progress-legacy.07ca6502.js +2 -0
  38. package/dist/assets/el-select-6be23320.css +1 -0
  39. package/dist/assets/el-select-f81a7377.js +2 -0
  40. package/dist/assets/el-select-f81a7377.js.map +1 -0
  41. package/dist/assets/el-select-legacy.94fad7fa.js +2 -0
  42. package/dist/assets/el-switch-9eba6fd0.js +2 -0
  43. package/dist/assets/el-switch-9eba6fd0.js.map +1 -0
  44. package/dist/assets/el-switch-aeab2c6b.css +1 -0
  45. package/dist/assets/el-switch-legacy.490534be.js +2 -0
  46. package/dist/assets/el-tab-pane-4a1bb4c7.css +1 -0
  47. package/dist/assets/el-tab-pane-89bdd69b.js +2 -0
  48. package/dist/assets/el-tab-pane-89bdd69b.js.map +1 -0
  49. package/dist/assets/el-tab-pane-legacy.cfdbc441.js +2 -0
  50. package/dist/assets/el-table-column-6716308a.js +21 -0
  51. package/dist/assets/el-table-column-6716308a.js.map +1 -0
  52. package/dist/assets/el-table-column-6c2089f9.css +1 -0
  53. package/dist/assets/el-table-column-legacy.49685e5a.js +24 -0
  54. package/dist/assets/index-01e33329.css +1 -0
  55. package/dist/assets/index-0b0f29ec.js +2 -0
  56. package/dist/assets/index-0b0f29ec.js.map +1 -0
  57. package/dist/assets/index-17c6005d.css +1 -0
  58. package/dist/assets/index-20019c57.js +2 -0
  59. package/dist/assets/index-20019c57.js.map +1 -0
  60. package/dist/assets/index-247f2c67.css +1 -0
  61. package/dist/assets/index-248e88e2.js +2 -0
  62. package/dist/assets/index-248e88e2.js.map +1 -0
  63. package/dist/assets/index-3091894a.css +1 -0
  64. package/dist/assets/index-37e15bc6.css +1 -0
  65. package/dist/assets/index-39637d43.js +2 -0
  66. package/dist/assets/index-39637d43.js.map +1 -0
  67. package/dist/assets/index-3f82ab7a.css +1 -0
  68. package/dist/assets/index-4c81cf78.css +1 -0
  69. package/dist/assets/index-5099f123.js +2 -0
  70. package/dist/assets/index-5099f123.js.map +1 -0
  71. package/dist/assets/index-57513f17.css +1 -0
  72. package/dist/assets/index-76f31e30.css +1 -0
  73. package/dist/assets/index-76ff9b9b.css +1 -0
  74. package/dist/assets/index-8557974a.js +2 -0
  75. package/dist/assets/index-8557974a.js.map +1 -0
  76. package/dist/assets/index-85fcd87a.css +1 -0
  77. package/dist/assets/index-867d07e4.js +2 -0
  78. package/dist/assets/index-867d07e4.js.map +1 -0
  79. package/dist/assets/index-8f353d3b.js +2 -0
  80. package/dist/assets/index-8f353d3b.js.map +1 -0
  81. package/dist/assets/index-8f7abc30.js +2 -0
  82. package/dist/assets/index-8f7abc30.js.map +1 -0
  83. package/dist/assets/index-8fbd06a5.js +2 -0
  84. package/dist/assets/index-8fbd06a5.js.map +1 -0
  85. package/dist/assets/index-93c733b3.css +1 -0
  86. package/dist/assets/index-98b55468.css +1 -0
  87. package/dist/assets/index-9e6bd406.js +2 -0
  88. package/dist/assets/index-9e6bd406.js.map +1 -0
  89. package/dist/assets/index-a880597c.css +1 -0
  90. package/dist/assets/index-acdbf3b6.js +2 -0
  91. package/dist/assets/index-acdbf3b6.js.map +1 -0
  92. package/dist/assets/index-b3e58b02.js +2 -0
  93. package/dist/assets/index-b3e58b02.js.map +1 -0
  94. package/dist/assets/index-c13133c5.js +2 -0
  95. package/dist/assets/index-c13133c5.js.map +1 -0
  96. package/dist/assets/index-c1d6836c.js +2 -0
  97. package/dist/assets/index-c1d6836c.js.map +1 -0
  98. package/dist/assets/index-d26aeed5.css +1 -0
  99. package/dist/assets/index-d98be3e4.js +19 -0
  100. package/dist/assets/index-d98be3e4.js.map +1 -0
  101. package/dist/assets/index-d9db6cc1.js +2 -0
  102. package/dist/assets/index-d9db6cc1.js.map +1 -0
  103. package/dist/assets/index-da51da36.css +1 -0
  104. package/dist/assets/index-e0ef7135.js +2 -0
  105. package/dist/assets/index-e0ef7135.js.map +1 -0
  106. package/dist/assets/index-e7d8a83e.css +1 -0
  107. package/dist/assets/index-ebf625c9.js +2 -0
  108. package/dist/assets/index-ebf625c9.js.map +1 -0
  109. package/dist/assets/index-eda7d85a.js +2 -0
  110. package/dist/assets/index-eda7d85a.js.map +1 -0
  111. package/dist/assets/index-fdc557f8.js +2 -0
  112. package/dist/assets/index-fdc557f8.js.map +1 -0
  113. package/dist/assets/index-legacy.0c570346.js +2 -0
  114. package/dist/assets/index-legacy.24edddf9.js +2 -0
  115. package/dist/assets/index-legacy.31681402.js +2 -0
  116. package/dist/assets/index-legacy.3e6b32cf.js +2 -0
  117. package/dist/assets/index-legacy.4edc099d.js +2 -0
  118. package/dist/assets/index-legacy.614df679.js +2 -0
  119. package/dist/assets/index-legacy.6420d0ab.js +2 -0
  120. package/dist/assets/index-legacy.679e5ce1.js +2 -0
  121. package/dist/assets/index-legacy.7b42e0cb.js +2 -0
  122. package/dist/assets/index-legacy.7bafa2e6.js +2 -0
  123. package/dist/assets/index-legacy.7ff3d773.js +2 -0
  124. package/dist/assets/index-legacy.84e0eca9.js +2 -0
  125. package/dist/assets/index-legacy.9ca64f8c.js +2 -0
  126. package/dist/assets/index-legacy.a4371211.js +2 -0
  127. package/dist/assets/index-legacy.acb8b137.js +23 -0
  128. package/dist/assets/index-legacy.bc3790f6.js +2 -0
  129. package/dist/assets/index-legacy.d0e21cb1.js +2 -0
  130. package/dist/assets/index-legacy.daf56c8f.js +2 -0
  131. package/dist/assets/index-legacy.e12feae0.js +2 -0
  132. package/dist/assets/index-legacy.e7f8790c.js +2 -0
  133. package/dist/assets/index-legacy.f84efe08.js +2 -0
  134. package/dist/assets/isEqual-82bb65ad.js +2 -0
  135. package/dist/assets/isEqual-82bb65ad.js.map +1 -0
  136. package/dist/assets/isEqual-legacy.dbaa2a6e.js +2 -0
  137. package/dist/assets/other-8d7ba6a0.js +2 -0
  138. package/dist/assets/other-8d7ba6a0.js.map +1 -0
  139. package/dist/assets/other-legacy.39078796.js +2 -0
  140. package/dist/assets/polyfills-legacy.99e38685.js +4 -0
  141. package/dist/assets/refresh-f2c4c532.js +2 -0
  142. package/dist/assets/refresh-f2c4c532.js.map +1 -0
  143. package/dist/assets/refresh-legacy.0ee83ca1.js +2 -0
  144. package/dist/assets/tip-3d272885.js +2 -0
  145. package/dist/assets/tip-3d272885.js.map +1 -0
  146. package/dist/assets/tip-9cb18ee8.css +1 -0
  147. package/dist/assets/tip-legacy.dee89e85.js +2 -0
  148. package/dist/assets/validator-d4ea1237.js +2 -0
  149. package/dist/assets/validator-d4ea1237.js.map +1 -0
  150. package/dist/assets/validator-legacy.ecd1e5dd.js +2 -0
  151. package/{index.html → dist/index.html} +8 -1
  152. package/package.json +30 -19
  153. package/.env +0 -6
  154. package/.env.production +0 -3
  155. package/.env.test +0 -4
  156. package/.eslintignore +0 -0
  157. package/.eslintrc.json +0 -57
  158. package/.github/workflows/main.yml +0 -61
  159. package/.prettierrc.js +0 -9
  160. package/auto-imports.d.ts +0 -6
  161. package/components.d.ts +0 -56
  162. package/docker/ep_backup/easypicker2.sql +0 -214
  163. package/docker/ep_backup/mongodb/easypicker2/action.bson +0 -0
  164. package/docker/ep_backup/mongodb/easypicker2/action.metadata.json +0 -1
  165. package/docker/ep_backup/mongodb/easypicker2/log.bson +0 -0
  166. package/docker/ep_backup/mongodb/easypicker2/log.metadata.json +0 -1
  167. package/docker/ep_backup/user-config.json +0 -176
  168. package/docs/.env +0 -1
  169. package/docs/.env.production +0 -2
  170. package/docs/.vitepress/config.ts +0 -204
  171. package/docs/.vitepress/theme/bg.png +0 -0
  172. package/docs/.vitepress/theme/index.scss +0 -41
  173. package/docs/.vitepress/theme/index.ts +0 -5
  174. package/docs/author.md +0 -24
  175. package/docs/auto-imports.d.ts +0 -6
  176. package/docs/components.d.ts +0 -17
  177. package/docs/deploy/design/api.md +0 -3
  178. package/docs/deploy/design/db.md +0 -3
  179. package/docs/deploy/design/index.md +0 -3
  180. package/docs/deploy/design/shell.md +0 -9
  181. package/docs/deploy/faq.md +0 -86
  182. package/docs/deploy/index.md +0 -9
  183. package/docs/deploy/local.md +0 -275
  184. package/docs/deploy/online-new.md +0 -610
  185. package/docs/deploy/online.md +0 -683
  186. package/docs/deploy/qiniu.md +0 -183
  187. package/docs/index.md +0 -40
  188. package/docs/introduction/about/code.md +0 -26
  189. package/docs/introduction/about/index.md +0 -33
  190. package/docs/introduction/feature/index.md +0 -3
  191. package/docs/plan/log.md +0 -346
  192. package/docs/plan/todo.md +0 -127
  193. package/docs/plan/wish.md +0 -29
  194. package/docs/praise/index.md +0 -45
  195. package/docs/public/robots.txt +0 -2
  196. package/docs/src/apis/ajax.ts +0 -66
  197. package/docs/src/apis/index.ts +0 -1
  198. package/docs/src/apis/modules/wish.ts +0 -20
  199. package/docs/src/components/Avatar.vue +0 -60
  200. package/docs/src/components/Home.vue +0 -85
  201. package/docs/src/components/Picture.vue +0 -13
  202. package/docs/src/components/Praise.vue +0 -52
  203. package/docs/src/components/WishBtn.vue +0 -98
  204. package/docs/src/components/WishPanel.vue +0 -170
  205. package/docs/src/components/callme/index.vue +0 -72
  206. package/docs/vite.config.ts +0 -42
  207. package/public/favicon.ico +0 -0
  208. package/public/logo.png +0 -0
  209. package/scripts/deploy/docs.mjs +0 -24
  210. package/scripts/deploy/prod.mjs +0 -24
  211. package/scripts/deploy/test.mjs +0 -26
  212. package/src/@types/ajax.d.ts +0 -5
  213. package/src/@types/api.d.ts +0 -305
  214. package/src/@types/lib.d.ts +0 -26
  215. package/src/@types/page.d.ts +0 -18
  216. package/src/App.vue +0 -36
  217. package/src/apis/ajax.ts +0 -72
  218. package/src/apis/index.ts +0 -20
  219. package/src/apis/modules/action.ts +0 -17
  220. package/src/apis/modules/category.ts +0 -20
  221. package/src/apis/modules/config.ts +0 -19
  222. package/src/apis/modules/file.ts +0 -150
  223. package/src/apis/modules/people.ts +0 -81
  224. package/src/apis/modules/public.ts +0 -49
  225. package/src/apis/modules/super/overview.ts +0 -56
  226. package/src/apis/modules/super/user.ts +0 -62
  227. package/src/apis/modules/task.ts +0 -67
  228. package/src/apis/modules/user.ts +0 -56
  229. package/src/apis/modules/wish.ts +0 -31
  230. package/src/assets/i/EasyPicker.png +0 -0
  231. package/src/assets/logo.png +0 -0
  232. package/src/assets/styles/app.css +0 -69
  233. package/src/components/HomeFooter/index.vue +0 -134
  234. package/src/components/HomeHeader/index.vue +0 -156
  235. package/src/components/InfosForm/index.vue +0 -73
  236. package/src/components/MessageList/index.vue +0 -155
  237. package/src/components/MessagePanel/index.vue +0 -46
  238. package/src/components/Praise/index.vue +0 -102
  239. package/src/components/QrCode.vue +0 -44
  240. package/src/components/linkDialog.vue +0 -104
  241. package/src/components/loginPanel.vue +0 -92
  242. package/src/constants/index.ts +0 -83
  243. package/src/env.d.ts +0 -8
  244. package/src/main.ts +0 -19
  245. package/src/pages/404/index.vue +0 -59
  246. package/src/pages/about/index.vue +0 -152
  247. package/src/pages/callme/index.vue +0 -155
  248. package/src/pages/dashboard/config/index.vue +0 -304
  249. package/src/pages/dashboard/files/index.vue +0 -1152
  250. package/src/pages/dashboard/index.vue +0 -335
  251. package/src/pages/dashboard/manage/config/index.vue +0 -97
  252. package/src/pages/dashboard/manage/index.vue +0 -105
  253. package/src/pages/dashboard/manage/overview/index.vue +0 -486
  254. package/src/pages/dashboard/manage/user/index.vue +0 -678
  255. package/src/pages/dashboard/manage/wish/index.vue +0 -257
  256. package/src/pages/dashboard/tasks/components/CategoryPanel.vue +0 -208
  257. package/src/pages/dashboard/tasks/components/CreateTask.vue +0 -93
  258. package/src/pages/dashboard/tasks/components/TaskInfo.vue +0 -129
  259. package/src/pages/dashboard/tasks/components/infoPanel/ddl.vue +0 -96
  260. package/src/pages/dashboard/tasks/components/infoPanel/file.vue +0 -175
  261. package/src/pages/dashboard/tasks/components/infoPanel/info.vue +0 -467
  262. package/src/pages/dashboard/tasks/components/infoPanel/people.vue +0 -566
  263. package/src/pages/dashboard/tasks/components/infoPanel/template.vue +0 -146
  264. package/src/pages/dashboard/tasks/components/infoPanel/tip.vue +0 -55
  265. package/src/pages/dashboard/tasks/components/infoPanel/tipInfo.vue +0 -196
  266. package/src/pages/dashboard/tasks/index.vue +0 -302
  267. package/src/pages/dashboard/tasks/public.ts +0 -32
  268. package/src/pages/disabled/index.vue +0 -47
  269. package/src/pages/feedback/index.vue +0 -5
  270. package/src/pages/home/index.vue +0 -72
  271. package/src/pages/login/index.vue +0 -270
  272. package/src/pages/register/index.vue +0 -211
  273. package/src/pages/reset/index.vue +0 -186
  274. package/src/pages/task/index.vue +0 -895
  275. package/src/pages/wish/index.vue +0 -152
  276. package/src/router/Interceptor/index.ts +0 -112
  277. package/src/router/index.ts +0 -13
  278. package/src/router/routes/index.ts +0 -197
  279. package/src/shims-vue.d.ts +0 -6
  280. package/src/store/index.ts +0 -17
  281. package/src/store/modules/category.ts +0 -44
  282. package/src/store/modules/public.ts +0 -27
  283. package/src/store/modules/task.ts +0 -55
  284. package/src/store/modules/user.ts +0 -57
  285. package/src/utils/elementUI.ts +0 -8
  286. package/src/utils/networkUtil.ts +0 -236
  287. package/src/utils/other.ts +0 -25
  288. package/src/utils/regExp.ts +0 -11
  289. package/src/utils/stringUtil.ts +0 -241
  290. package/tsconfig.json +0 -24
  291. package/vite.config.ts +0 -55
  292. /package/{docs/public → dist}/favicon.ico +0 -0
  293. /package/{docs/public → dist}/logo.png +0 -0
@@ -1,335 +0,0 @@
1
- <template>
2
- <div class="dashboard">
3
- <div class="pc-nav">
4
- <div class="nav">
5
- <!-- LOGO -->
6
- <div class="logo">
7
- <router-link to="/">
8
- <img
9
- src="https://img.cdn.sugarat.top/easypicker/EasyPicker.png"
10
- alt="logo"
11
- />
12
- </router-link>
13
- </div>
14
- <input v-if="isMobile" type="checkbox" id="navActive" />
15
- <nav>
16
- <label v-if="isMobile" for="navActive" class="nav-item">
17
- <span>Hello💐,</span>
18
- {{ userName }}
19
- </label>
20
- <label
21
- for="navActive"
22
- class="nav-item"
23
- v-for="(n, idx) in navList"
24
- :key="idx"
25
- :class="{
26
- active: navActiveIdx === idx
27
- }"
28
- @click="handleNav(idx)"
29
- >{{ n.title }}</label
30
- >
31
- <label
32
- @click="handleLogout"
33
- v-if="isMobile"
34
- for="navActive"
35
- class="nav-item"
36
- >
37
- <span style="margin-right: 6px">退出</span>
38
- <el-icon size="16">
39
- <svg
40
- width="16"
41
- height="16"
42
- viewBox="0 0 16 16"
43
- fill="none"
44
- xmlns="http://www.w3.org/2000/svg"
45
- data-v-53d86618
46
- >
47
- <path
48
- fill-rule="evenodd"
49
- clip-rule="evenodd"
50
- d="M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z"
51
- fill="#86909C"
52
- data-v-53d86618
53
- />
54
- </svg>
55
- </el-icon>
56
- </label>
57
- </nav>
58
- <div class="mask"></div>
59
- </div>
60
- <!-- 移动端展示 -->
61
- <span id="navMenu">
62
- <message-panel v-if="isMobile" class="mobile-message-bell" />
63
- <label for="navActive">
64
- <el-icon size="32">
65
- <Expand />
66
- </el-icon>
67
- </label>
68
- </span>
69
- <div class="flex fac" v-if="!isMobile">
70
- <message-panel />
71
- <span>Hello 💐,</span>
72
- <el-dropdown class="exit">
73
- <span class="exit-info">
74
- <span class="ellipsis">{{ userName }}</span>
75
- <el-icon>
76
- <ArrowDown />
77
- </el-icon>
78
- </span>
79
- <template #dropdown>
80
- <el-dropdown-menu>
81
- <el-dropdown-item @click="handleLogout" :icon="Close"
82
- >退出</el-dropdown-item
83
- >
84
- </el-dropdown-menu>
85
- </template>
86
- </el-dropdown>
87
- </div>
88
- </div>
89
- <router-view></router-view>
90
- <div>
91
- <home-footer type="dashboard"></home-footer>
92
- </div>
93
- </div>
94
- </template>
95
- <script lang="ts" setup>
96
- import { Expand, Close, ArrowDown, Bell } from '@element-plus/icons-vue'
97
- import HomeFooter from '@components/HomeFooter/index.vue'
98
-
99
- import { onMounted, reactive, ref, computed, watch } from 'vue'
100
- import { useRoute, useRouter } from 'vue-router'
101
- import { useStore } from 'vuex'
102
- import { ElMessage, ElMessageBox } from 'element-plus'
103
- import MessagePanel from '@/components/MessagePanel/index.vue'
104
- import { UserApi } from '@/apis'
105
-
106
- const $router = useRouter()
107
- const $store = useStore()
108
- const $route = useRoute()
109
- const isMobile = computed(() => $store.getters['public/isMobile'])
110
- const navList = reactive<
111
- { title: string; path: string; isExternal?: boolean }[]
112
- >([
113
- {
114
- title: '文件管理',
115
- path: '/dashboard/files'
116
- },
117
- {
118
- title: '任务管理',
119
- path: '/dashboard/tasks'
120
- }
121
- ])
122
- const navActiveIdx = ref(0)
123
- const handleNav = (idx: number) => {
124
- const n = navList[idx]
125
- if (!n.isExternal && idx !== navActiveIdx.value) {
126
- $router.push({
127
- path: n.path
128
- })
129
- }
130
- if (n.isExternal) {
131
- window.open(n.path, '_blank')
132
- }
133
- }
134
-
135
- // 自动切换激活的标题栏
136
- watch(
137
- () => $route.path,
138
- (path: string) => {
139
- const idx = navList.findIndex((n) => path.startsWith(n.path))
140
- if (idx !== -1) {
141
- navActiveIdx.value = idx
142
- }
143
- }
144
- )
145
-
146
- const handleLogout = () => {
147
- ElMessageBox.confirm('确认退出登录?', '登出提示', {
148
- draggable: true
149
- })
150
- .then(() => {
151
- // 登出接口
152
- UserApi.logout().finally(() => {
153
- $store.commit('user/setToken', null)
154
- $router.replace({
155
- name: 'home'
156
- })
157
- })
158
- })
159
- .catch(() => {
160
- ElMessage.info('取消')
161
- })
162
- }
163
- const userName = ref('World')
164
-
165
- const refreshActiveTab = () => {
166
- // 动态修改active的项
167
- navActiveIdx.value = navList.findIndex((v) => $route.path.startsWith(v.path))
168
- }
169
- onMounted(() => {
170
- // 动态添加管理页面入口
171
- UserApi.checkPower().then((r) => {
172
- const isSuperAdmin = r.data?.power
173
- userName.value = r.data?.name
174
- $store.commit('user/setSuperAdmin', isSuperAdmin)
175
- if (isSuperAdmin) {
176
- const superNavList = [
177
- {
178
- title: '应用管理',
179
- path: '/dashboard/manage'
180
- },
181
- {
182
- title: '网站监控',
183
- path: 'https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78',
184
- isExternal: true
185
- }
186
- ]
187
- navList.push(...superNavList)
188
- }
189
- const isSystem = r.data?.system
190
- if (isSystem) {
191
- navList.splice(0, navList.length)
192
- navList.push({
193
- title: '系统管理',
194
- path: '/dashboard/config'
195
- })
196
- }
197
- refreshActiveTab()
198
- })
199
- })
200
- </script>
201
- <style scoped lang="scss">
202
- .dashboard {
203
- background-color: #fafafa;
204
- }
205
- .pc-nav {
206
- background-color: #fff;
207
- display: flex;
208
- padding: 10px;
209
- justify-content: space-between;
210
- align-items: center;
211
- .exit {
212
- cursor: pointer;
213
- display: flex;
214
- align-items: center;
215
- .exit-info {
216
- display: flex;
217
- justify-content: center;
218
- align-items: center;
219
- > span {
220
- margin-right: 5px;
221
- display: block;
222
- max-width: 70px;
223
- }
224
- }
225
- }
226
- .nav {
227
- display: flex;
228
- nav {
229
- display: flex;
230
- align-items: center;
231
- .nav-item {
232
- font-size: 1rem;
233
- color: #595959;
234
- padding: 10px;
235
- cursor: pointer;
236
- display: flex;
237
- align-items: center;
238
- justify-content: center;
239
- &.active {
240
- color: #409eff !important;
241
- font-weight: 600;
242
- }
243
- }
244
- }
245
- .exit {
246
- color: #595959;
247
- }
248
- }
249
- .logo {
250
- width: 180px;
251
- margin: 0 10px;
252
- img {
253
- height: 40px;
254
- }
255
- }
256
- }
257
- #navActive {
258
- display: none;
259
- opacity: 0;
260
- }
261
- #navMenu {
262
- display: none;
263
- }
264
- .mobile-message-bell {
265
- display: none;
266
- position: fixed;
267
- right: 0;
268
- top: 0;
269
- }
270
- @media screen and (max-width: 700px) {
271
- #navActive {
272
- display: block;
273
- position: fixed;
274
- left: 0;
275
- top: 0;
276
- }
277
- .mobile-message-bell {
278
- display: block;
279
- }
280
- #navMenu {
281
- cursor: pointer;
282
- display: block;
283
- position: absolute;
284
- left: 10px;
285
- top: 5px;
286
- font-size: 2rem;
287
- }
288
- .pc-nav {
289
- position: fixed;
290
- left: 0;
291
- right: 0;
292
- top: 0;
293
- z-index: 6;
294
- .nav {
295
- flex-wrap: wrap;
296
- width: 100%;
297
- .logo {
298
- width: 100%;
299
- text-align: center;
300
- }
301
- }
302
- #navActive {
303
- & + nav {
304
- display: none;
305
- }
306
- }
307
- #navActive:checked {
308
- & + nav {
309
- display: flex;
310
- flex-direction: column;
311
- width: 100%;
312
- position: absolute;
313
- z-index: 1;
314
- background: #fff;
315
- left: 0;
316
- top: 50px;
317
- + .mask {
318
- display: block;
319
- position: fixed;
320
- left: 0;
321
- right: 0;
322
- bottom: 0;
323
- top: 50px;
324
- background-color: rgba(0, 0, 0, 0.5);
325
- }
326
- }
327
- }
328
- .exit {
329
- position: absolute;
330
- right: 10px;
331
- top: 20px;
332
- }
333
- }
334
- }
335
- </style>
@@ -1,97 +0,0 @@
1
- <template>
2
- <div class="user">
3
- <div class="panel">
4
- <el-divider>部分路由管理</el-divider>
5
- <ul class="routes">
6
- <li v-for="r in showRoutes" :key="r.name">
7
- <el-switch
8
- @change="handleChangeRoute(r)"
9
- :value="!r.disabled"
10
- style="
11
- --el-switch-on-color: #13ce66;
12
- --el-switch-off-color: #ff4949;
13
- "
14
- />
15
- <span class="title">{{ r.title }}</span>
16
- <span class="path">{{ r.path }}</span>
17
- </li>
18
- </ul>
19
- </div>
20
- </div>
21
- </template>
22
- <script lang="ts" setup>
23
- import { ElMessage } from 'element-plus'
24
- import { computed, onMounted, reactive, ref } from 'vue'
25
- import { useStore } from 'vuex'
26
- import { useRouter } from 'vue-router'
27
- import { SuperOverviewApi } from '@/apis'
28
-
29
- const $store = useStore()
30
- const $router = useRouter()
31
- const routes = computed(() =>
32
- $router.options.routes.filter((v) => v.meta?.allowDisabled)
33
- )
34
- const showRoutes = reactive<
35
- {
36
- path: string
37
- name: string
38
- title: string
39
- disabled: boolean
40
- }[]
41
- >([])
42
-
43
- const handleChangeRoute = (r: typeof showRoutes[0]) => {
44
- SuperOverviewApi.addDisabledRoute(r.path, !r.disabled).then(() => {
45
- r.disabled = !r.disabled
46
- })
47
- }
48
- onMounted(() => {
49
- for (const r of routes.value) {
50
- SuperOverviewApi.checkDisabledRoute(r.path).then((v) => {
51
- showRoutes.push({
52
- path: r.path,
53
- name: r.name.toString(),
54
- title: r.meta.title,
55
- disabled: !!v.data?.status
56
- })
57
- })
58
- }
59
- })
60
- const isMobile = computed(() => $store.getters['public/isMobile'])
61
- </script>
62
-
63
- <style scoped lang="scss">
64
- @media screen and (max-width: 700px) {
65
- .user {
66
- margin-top: 40px !important;
67
- }
68
- }
69
-
70
- .user {
71
- margin: 0 auto;
72
- }
73
-
74
- .panel {
75
- max-width: 1256px;
76
- padding: 1em;
77
- background-color: #fff;
78
- margin: 10px auto;
79
- box-sizing: border-box;
80
- box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
81
- border-radius: 4px;
82
- }
83
-
84
- .routes {
85
- max-width: 500px;
86
- margin: 0 auto;
87
- li {
88
- display: flex;
89
- padding: 20px;
90
- align-items: center;
91
- .title {
92
- font-weight: bold;
93
- margin: 0 10px;
94
- }
95
- }
96
- }
97
- </style>
@@ -1,105 +0,0 @@
1
- <template>
2
- <div class="monitor">
3
- <div class="navs">
4
- <el-menu
5
- :default-active="defaultActive"
6
- class="el-menu-nav"
7
- :collapse="isCollapse"
8
- @select="handleSelect"
9
- >
10
- <el-menu-item index="overview">
11
- <el-icon>
12
- <DataAnalysis />
13
- </el-icon>
14
- <template #title>概况</template>
15
- </el-menu-item>
16
- <el-menu-item index="user">
17
- <el-icon>
18
- <User />
19
- </el-icon>
20
- <template #title>用户</template>
21
- </el-menu-item>
22
- <el-menu-item index="wish">
23
- <el-icon>
24
- <DataBoard />
25
- </el-icon>
26
- <template #title>需求</template>
27
- </el-menu-item>
28
- <el-menu-item index="config">
29
- <el-icon>
30
- <Setting />
31
- </el-icon>
32
- <template #title>配置</template>
33
- </el-menu-item>
34
- </el-menu>
35
- </div>
36
- <div class="container">
37
- <router-view></router-view>
38
- </div>
39
- </div>
40
- </template>
41
- <script lang="ts" setup>
42
- import { onMounted, ref } from 'vue'
43
- import { useRoute, useRouter } from 'vue-router'
44
- import { User, DataBoard, DataAnalysis, Setting } from '@element-plus/icons-vue'
45
-
46
- const defaultActive = ref('overview')
47
- const isCollapse = ref(false)
48
- const $router = useRouter()
49
- const $route = useRoute()
50
- const handleSelect = (path: string) => {
51
- if ($route.path.endsWith(path)) {
52
- return
53
- }
54
- $router.replace({
55
- path
56
- })
57
- }
58
- onMounted(() => {
59
- const value = $route.path.split('/').slice(-1)[0]
60
- defaultActive.value = value
61
- })
62
- </script>
63
-
64
- <style scoped>
65
- .monitor {
66
- width: 96%;
67
- /* min-height: 100vh; */
68
- padding: 10px;
69
- overflow: hidden;
70
- display: flex;
71
- }
72
- .navs {
73
- min-width: 140px;
74
- }
75
- .container {
76
- padding-left: 20px;
77
- flex-grow: 1;
78
- width: calc(100% - 150px);
79
- }
80
-
81
- @media screen and (max-width: 700px) {
82
- .monitor {
83
- margin-top: 70px;
84
- padding: 10px 0;
85
- width: 100%;
86
- }
87
- .navs {
88
- position: absolute;
89
- left: 50%;
90
- transform: translateX(-50%);
91
- }
92
-
93
- .el-radio-group {
94
- display: none;
95
- }
96
- .el-menu-nav {
97
- display: flex;
98
- }
99
- .container {
100
- padding-left: 0;
101
- margin-top: 30px;
102
- width: 100%;
103
- }
104
- }
105
- </style>