@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,152 +0,0 @@
1
- <template>
2
- <div class="wish">
3
- <!-- 顶部导航栏 -->
4
- <header>
5
- <HomeHeader />
6
- </header>
7
- <main>
8
- <h1 class="title">需求墙</h1>
9
- <p class="des">通过投票决定下一个新功能是什么</p>
10
- <p class="des">票数越多优先级越高</p>
11
- <p class="des">当然你也可以提出你的需求,让大家来投票</p>
12
- <div class="tip-wrap">
13
- <p v-if="isLogin" class="des">
14
- Go Go Go!
15
- <strong @click="handleOpenFeature" class="feature-btn">我要提需求</strong>
16
- </p>
17
- <p v-else class="des">
18
- 提需求&投票,请先
19
- <strong>
20
- <router-link to="/login">登录</router-link>
21
- </strong>
22
- </p>
23
- <br>
24
- <p class="des">目前需求面板还未开发完成,</p>
25
- <p class="des">可先直接加群进行反馈</p>
26
- <p style="text-align: center;">
27
- <img style="width: 290px;" src="https://img.cdn.sugarat.top/mdImg/MTY0OTkwMDk2MzQ3OQ==649900963479" alt="QQ群">
28
- </p>
29
- </div>
30
- </main>
31
-
32
- <el-dialog title="需求信息" v-model="dialogVisible" :fullscreen="isMobile">
33
- <el-form :model="formData">
34
- <el-form-item label="需求" :label-width="formLabelWidth">
35
- <el-input placeholder="一句简单明了的话概括一下" v-model="formData.title"></el-input>
36
- </el-form-item>
37
- <el-form-item label="详细描述" :label-width="formLabelWidth">
38
- <el-input placeholder="用朴素的话语进一步描述你的需求" type="textarea" v-model="formData.des"></el-input>
39
- </el-form-item>
40
- <el-form-item label="联系方式" :label-width="formLabelWidth">
41
- <el-input placeholder="邮箱,QQ,微信等任意方式均可" v-model="formData.contact"></el-input>
42
- </el-form-item>
43
- </el-form>
44
- <template #footer>
45
- <span class="dialog-footer">
46
- <el-button @click="dialogVisible = false">取 消</el-button>
47
- <el-button type="primary" @click="handleAddFeature">确 定</el-button>
48
- </span>
49
- </template>
50
- </el-dialog>
51
- <footer>
52
- <!-- 底部导航栏 -->
53
- <HomeFooter />
54
- </footer>
55
- </div>
56
- </template>
57
- <script lang="ts" setup>
58
- import {
59
- ref, onMounted, computed, reactive,
60
- } from 'vue'
61
- import HomeHeader from '@components/HomeHeader/index.vue'
62
- import HomeFooter from '@components/HomeFooter/index.vue'
63
- import { useStore } from 'vuex'
64
- import { ElMessage } from 'element-plus'
65
- import { WishApi } from '@/apis'
66
-
67
- const $store = useStore()
68
- const isLogin = computed(() => $store.state.user.isLogin)
69
- const isMobile = computed(() => $store.getters['public/isMobile'])
70
-
71
- const formLabelWidth = '80px'
72
- const dialogVisible = ref(false)
73
- const formData = reactive({
74
- title: '',
75
- des: '',
76
- contact: '',
77
- })
78
- const handleOpenFeature = () => {
79
- dialogVisible.value = true
80
- }
81
-
82
- const vaildFormData = () => {
83
- if (formData.title.length === 0) {
84
- ElMessage.error('需求标题不能为空')
85
- return false
86
- }
87
- if (formData.des.length === 0) {
88
- ElMessage.error('需求详细描述,不能为空')
89
- return false
90
- }
91
- return true
92
- }
93
- const handleAddFeature = () => {
94
- // 信息校验
95
- if (!vaildFormData()) {
96
- return
97
- }
98
- dialogVisible.value = false
99
- // 提交信息
100
- WishApi.addWish(formData).then((res) => {
101
- ElMessage.success('提交成功,感谢你的反馈(需求进入审核阶段)')
102
- })
103
- // 初始化 表单内容
104
- formData.title = ''
105
- formData.des = ''
106
- formData.contact = ''
107
- }
108
-
109
- onMounted(() => {
110
- $store.dispatch('user/getLoginStatus')
111
- })
112
- </script>
113
-
114
- <style lang="scss" scoped>
115
- header {
116
- display: block;
117
- overflow: hidden;
118
- }
119
-
120
- .wish {
121
- font-family: "Avenir", Helvetica, Arial, sans-serif;
122
- background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);
123
- min-height: 100vh;
124
- main{
125
- min-height: 70vh;
126
- }
127
- }
128
-
129
- .title {
130
- color: aliceblue;
131
- text-align: center;
132
- font-weight: lighter;
133
- font-size: 48px;
134
- padding-top: 5vh;
135
- }
136
-
137
- .des {
138
- color: aliceblue;
139
- text-align: center;
140
- font-weight: lighter;
141
- font-size: 16px;
142
- padding: 0 10px 10px 10px;
143
-
144
- a {
145
- color: aliceblue;
146
- }
147
- }
148
-
149
- .feature-btn {
150
- cursor: pointer;
151
- }
152
- </style>
@@ -1,112 +0,0 @@
1
- import { Router } from 'vue-router'
2
- import axios from 'axios'
3
- import $store from '@/store'
4
- import { PublicApi, SuperOverviewApi, UserApi } from '@/apis'
5
-
6
- declare module 'vue-router' {
7
- interface RouteMeta {
8
- // 是否管理员页面
9
- isAdmin?: boolean
10
- isSystem?: boolean
11
- // 是否需要登录
12
- requireLogin?: boolean
13
- // 路由title
14
- title?: string
15
- // 是否可以禁用
16
- allowDisabled?: boolean
17
- }
18
- }
19
-
20
- function registerRouteGuard(router: Router) {
21
- /**
22
- * 全局前置守卫
23
- */
24
- router.beforeEach((to, from) => {
25
- // 上报PV
26
- const { fullPath } = to
27
- PublicApi.reportPv(fullPath)
28
-
29
- if (!import.meta.env.VITE_APP_PV_PATH.includes(window.location.hostname)) {
30
- axios.get(
31
- `//${
32
- import.meta.env.VITE_APP_PV_PATH
33
- }/public/report/pv?path=${encodeURIComponent(window.location.href)}`
34
- )
35
- }
36
-
37
- // 更改title
38
- window.document.title = `${import.meta.env.VITE_APP_TITLE} ${to.meta.title}`
39
-
40
- // if (to.meta.requireLogin) {
41
- // if (from.path === '/') {
42
- // return from
43
- // }
44
- // return false
45
- // }
46
- return true
47
- })
48
-
49
- /**
50
- * 全局解析守卫
51
- */
52
- router.beforeResolve(async (to) => {
53
- if (to.meta.isAdmin || to.meta.isSystem) {
54
- try {
55
- const powerData = (await UserApi.checkPower()).data
56
- $store.commit('user/setSuperAdmin', powerData.power)
57
- $store.commit('user/setSystem', powerData.system)
58
- if (to.meta.isSystem) {
59
- return (
60
- powerData.system || {
61
- name: '404'
62
- }
63
- )
64
- }
65
-
66
- if (to.meta.isAdmin) {
67
- return (
68
- powerData.power || {
69
- name: '404'
70
- }
71
- )
72
- }
73
- } catch (error) {
74
- // if (error instanceof NotAllowedError) {
75
- // // ... 处理错误,然后取消导航
76
- // return false
77
- // } else {
78
- // // 意料之外的错误,取消导航并把错误传给全局处理器
79
- // throw error
80
- // }
81
- console.error(error)
82
- return false
83
- }
84
- }
85
- return true
86
- })
87
-
88
- /**
89
- * 全局后置守卫
90
- */
91
- router.afterEach((to, from, failure) => {
92
- if (to.meta.allowDisabled) {
93
- SuperOverviewApi.checkDisabledRoute(to.path).then((v) => {
94
- if (v.data.status) {
95
- router.replace({
96
- name: 'disable',
97
- query: {
98
- title: to.meta.title || to.path
99
- }
100
- })
101
- }
102
- })
103
- }
104
- // 改标题,监控上报一些基础信息
105
- // sendToAnalytics(to.fullPath)
106
- if (failure) {
107
- console.error(failure)
108
- }
109
- })
110
- }
111
-
112
- export default registerRouteGuard
@@ -1,13 +0,0 @@
1
- import { createRouter, createWebHistory } from 'vue-router'
2
- import registerRouteGuard from './Interceptor'
3
- import routes from './routes'
4
-
5
- const router = createRouter({
6
- history: createWebHistory(import.meta.env.VITE_ROUTER_BASE as string),
7
- routes
8
- })
9
-
10
- // 注册路由守卫
11
- registerRouteGuard(router)
12
-
13
- export default router
@@ -1,197 +0,0 @@
1
- import { RouteRecordRaw } from 'vue-router'
2
- import Home from '@/pages/home/index.vue'
3
- import Login from '@/pages/login/index.vue'
4
- import Register from '@/pages/register/index.vue'
5
- // import Wish from '@/pages/wish/index.vue'
6
-
7
- const NotFind = () => import('@/pages/404/index.vue')
8
- const Reset = () => import('@/pages/reset/index.vue')
9
- const About = () => import('@/pages/about/index.vue')
10
- const Author = () => import('@/pages/callme/index.vue')
11
- const Feedback = () => import('@/pages/feedback/index.vue')
12
- const Dashboard = () => import('@/pages/dashboard/index.vue')
13
- const Files = () => import('@/pages/dashboard/files/index.vue')
14
- const Config = () => import('@/pages/dashboard/config/index.vue')
15
- const Tasks = () => import('@/pages/dashboard/tasks/index.vue')
16
- const Manage = () => import('@/pages/dashboard/manage/index.vue')
17
- const Overview = () => import('@/pages/dashboard/manage/overview/index.vue')
18
- const User = () => import('@/pages/dashboard/manage/user/index.vue')
19
- const Wish = () => import('@/pages/dashboard/manage/wish/index.vue')
20
- const Task = () => import('@/pages/task/index.vue')
21
- const Disabled = () => import('@/pages/disabled/index.vue')
22
- const DashboardConfig = () =>
23
- import('@/pages/dashboard/manage/config/index.vue')
24
-
25
- const routes: RouteRecordRaw[] = [
26
- // 404
27
- {
28
- path: '/:pathMatch(.*)*',
29
- name: '404',
30
- component: NotFind,
31
- meta: {
32
- title: '404'
33
- }
34
- },
35
- {
36
- path: '/disabled',
37
- name: 'disable',
38
- component: Disabled
39
- },
40
- {
41
- path: '/',
42
- name: 'home',
43
- component: Home,
44
- meta: {
45
- title: '首页',
46
- allowDisabled: true
47
- }
48
- },
49
- // {
50
- // path: '/wish',
51
- // name: 'wish',
52
- // component: Wish,
53
- // meta: {
54
- // title: '需求墙',
55
- // },
56
- // },
57
- {
58
- path: '/login',
59
- name: 'login',
60
- component: Login,
61
- meta: {
62
- title: '登录'
63
- }
64
- },
65
- {
66
- path: '/register',
67
- name: 'register',
68
- component: Register,
69
- meta: {
70
- title: '注册',
71
- allowDisabled: true
72
- }
73
- },
74
- {
75
- path: '/reset',
76
- name: 'reset',
77
- component: Reset,
78
- meta: {
79
- title: '找回密码',
80
- allowDisabled: true
81
- }
82
- },
83
- {
84
- path: '/about',
85
- name: 'about',
86
- component: About,
87
- meta: {
88
- title: '关于'
89
- }
90
- },
91
- {
92
- path: '/author',
93
- name: 'author',
94
- component: Author,
95
- meta: {
96
- title: '联系作者'
97
- }
98
- },
99
- {
100
- path: '/feedback',
101
- name: 'feedback',
102
- component: Feedback,
103
- meta: {
104
- title: '建议反馈'
105
- }
106
- },
107
- {
108
- path: '/task/:key',
109
- name: 'task',
110
- component: Task,
111
- meta: {
112
- title: '文件提交'
113
- }
114
- },
115
- {
116
- path: '/dashboard',
117
- name: 'dashboard',
118
- component: Dashboard,
119
- redirect: {
120
- name: 'tasks'
121
- },
122
- children: [
123
- {
124
- name: 'config',
125
- path: 'config',
126
- component: Config,
127
- meta: {
128
- title: '服务状态维护',
129
- isSystem: true
130
- }
131
- },
132
- {
133
- name: 'files',
134
- path: 'files',
135
- component: Files,
136
- meta: {
137
- title: '文件列表'
138
- }
139
- },
140
- {
141
- name: 'tasks',
142
- path: 'tasks',
143
- component: Tasks,
144
- meta: {
145
- title: '任务列表'
146
- }
147
- },
148
- {
149
- name: 'manage',
150
- path: 'manage',
151
- component: Manage,
152
- redirect: {
153
- name: 'overview'
154
- },
155
- children: [
156
- {
157
- name: 'overview',
158
- path: 'overview',
159
- component: Overview,
160
- meta: {
161
- title: '应用概况',
162
- isAdmin: true
163
- }
164
- },
165
- {
166
- name: 'user',
167
- path: 'user',
168
- component: User,
169
- meta: {
170
- title: '用户列表',
171
- isAdmin: true
172
- }
173
- },
174
- {
175
- name: 'wish',
176
- path: 'wish',
177
- component: Wish,
178
- meta: {
179
- title: '需求管理',
180
- isAdmin: true
181
- }
182
- },
183
- {
184
- name: 'dashboard-config',
185
- path: 'config',
186
- component: DashboardConfig,
187
- meta: {
188
- title: '配置面板',
189
- isAdmin: true
190
- }
191
- }
192
- ]
193
- }
194
- ]
195
- }
196
- ]
197
- export default routes
@@ -1,6 +0,0 @@
1
- declare module '*.vue' {
2
- import { DefineComponent } from 'vue'
3
-
4
- const component: DefineComponent<{}, {}, any>
5
- export default component
6
- }
@@ -1,17 +0,0 @@
1
- import { createStore } from 'vuex'
2
- import user from './modules/user'
3
- import category from './modules/category'
4
- import task from './modules/task'
5
- import publicModule from './modules/public'
6
-
7
- // Create a new store instance.
8
- const store = createStore({
9
- modules: {
10
- user,
11
- category,
12
- task,
13
- public: publicModule
14
- }
15
- })
16
-
17
- export default store
@@ -1,44 +0,0 @@
1
- import { Module } from 'vuex'
2
- import { CategoryApi } from '@/apis'
3
-
4
- interface State {
5
- categoryList: any[]
6
- }
7
-
8
- const store: Module<State, unknown> = {
9
- namespaced: true,
10
- state() {
11
- return {
12
- categoryList: []
13
- }
14
- },
15
- mutations: {
16
- updateCategory(state, payload) {
17
- state.categoryList = payload
18
- }
19
- },
20
- actions: {
21
- getCategory(context) {
22
- CategoryApi.getList().then((res) => {
23
- context.commit('updateCategory', res.data.categories)
24
- })
25
- },
26
- createCategory(context, name) {
27
- return CategoryApi.createNew(name).then((res) => {
28
- context.dispatch('getCategory')
29
- return res
30
- })
31
- },
32
- deleteCategory(context, k) {
33
- return CategoryApi.deleteOne(k).then((res) => {
34
- const idx = context.state.categoryList.findIndex((v) => v.k === k)
35
- if (idx >= 0) {
36
- context.state.categoryList.splice(idx, 1)
37
- }
38
- return res
39
- })
40
- }
41
- }
42
- }
43
-
44
- export default store
@@ -1,27 +0,0 @@
1
- import { Module } from 'vuex'
2
-
3
- interface State {
4
- clientWidth: number
5
- }
6
-
7
- const store: Module<State, unknown> = {
8
- namespaced: true,
9
- state() {
10
- return {
11
- clientWidth: 701
12
- }
13
- },
14
- getters: {
15
- isMobile(state) {
16
- return state.clientWidth <= 700
17
- }
18
- },
19
- // 只能同步
20
- mutations: {
21
- setWidth(state, width = 701) {
22
- state.clientWidth = width
23
- }
24
- }
25
- }
26
-
27
- export default store
@@ -1,55 +0,0 @@
1
- import { Module } from 'vuex'
2
- import { TaskApi } from '@/apis'
3
-
4
- interface State {
5
- taskList: any[]
6
- }
7
-
8
- const store: Module<State, unknown> = {
9
- namespaced: true,
10
- state() {
11
- return {
12
- taskList: []
13
- }
14
- },
15
- mutations: {
16
- updateTask(state, payload) {
17
- state.taskList = payload
18
- }
19
- },
20
- actions: {
21
- getTask(context) {
22
- TaskApi.getList().then((res) => {
23
- context.commit('updateTask', res.data.tasks)
24
- })
25
- },
26
- createTask(context, payload) {
27
- const { name, category } = payload
28
- return TaskApi.create(name, category).then((res) => {
29
- context.dispatch('getTask')
30
- return res
31
- })
32
- },
33
- deleteTask(context, k) {
34
- return TaskApi.deleteOne(k).then((res) => {
35
- const idx = context.state.taskList.findIndex((v) => v.key === k)
36
- const targetTask = context.state.taskList[idx]
37
- if (targetTask && targetTask.category === 'trash') {
38
- context.state.taskList.splice(idx, 1)
39
- } else {
40
- targetTask.category = 'trash'
41
- }
42
- return res
43
- })
44
- },
45
- updateTask(context, payload) {
46
- const { key, name, category } = payload
47
- return TaskApi.updateBaseInfo(key, name, category).then((res) => {
48
- context.dispatch('getTask')
49
- return res
50
- })
51
- }
52
- }
53
- }
54
-
55
- export default store
@@ -1,57 +0,0 @@
1
- import { Module } from 'vuex'
2
- import { UserApi } from '@/apis'
3
-
4
- interface State {
5
- token: string
6
- isSuperAdmin: boolean
7
- isLogin: boolean
8
- system: boolean
9
- }
10
-
11
- const store: Module<State, unknown> = {
12
- namespaced: true,
13
- state() {
14
- return {
15
- token: localStorage.getItem('token') as string,
16
- isSuperAdmin: false,
17
- isLogin: false,
18
- system: localStorage.getItem('token') === 'true'
19
- }
20
- },
21
- // 只能同步
22
- mutations: {
23
- setToken(state, payload) {
24
- state.token = payload
25
- if (payload) {
26
- localStorage.setItem('token', payload)
27
- } else {
28
- localStorage.removeItem('token')
29
- }
30
- },
31
- setSystem(state, payload) {
32
- state.system = payload
33
- if (payload) {
34
- localStorage.setItem('system', payload)
35
- } else {
36
- localStorage.removeItem('system')
37
- }
38
- },
39
- setSuperAdmin(state, payload) {
40
- state.isSuperAdmin = payload
41
- },
42
- setLoginStatue(state, payload) {
43
- state.isLogin = payload?.isLogin
44
- }
45
- },
46
- actions: {
47
- getLoginStatus(context) {
48
- UserApi.checkLoginStatus().then((res) => {
49
- context.commit('setLoginStatue', {
50
- isLogin: res.data
51
- })
52
- })
53
- }
54
- }
55
- }
56
-
57
- export default store
@@ -1,8 +0,0 @@
1
- import { App } from '@vue/runtime-core'
2
- import ElementPlus from 'element-plus'
3
- import 'element-plus/dist/index.css'
4
- import zhCn from 'element-plus/es/locale/lang/zh-cn'
5
-
6
- export default function mountElementUI(app: App<Element>) {
7
- app.use(ElementPlus, { locale: zhCn })
8
- }