@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,56 +0,0 @@
1
- import ajax from '../ajax'
2
-
3
- function register(
4
- options: UserApiTypes.RegisterOptions
5
- ): UserApiTypes.register {
6
- return ajax.post('user/register', {
7
- ...options
8
- })
9
- }
10
-
11
- function login(account: string, pwd: string): UserApiTypes.login {
12
- return ajax.post('user/login', {
13
- account,
14
- pwd
15
- })
16
- }
17
-
18
- function codeLogin(phone: string, code: string): UserApiTypes.codeLogin {
19
- return ajax.post('user/login/code', {
20
- phone,
21
- code
22
- })
23
- }
24
-
25
- function resetPwd(
26
- phone: string,
27
- code: string,
28
- pwd: string
29
- ): UserApiTypes.resetPwd {
30
- return ajax.put('user/password', {
31
- phone,
32
- code,
33
- pwd
34
- })
35
- }
36
-
37
- function checkPower(): UserApiTypes.checkPower {
38
- return ajax.get('user/power/super')
39
- }
40
-
41
- function checkLoginStatus(): UserApiTypes.checkLoginStatus {
42
- return ajax.get('user/login')
43
- }
44
-
45
- function logout(): UserApiTypes.logout {
46
- return ajax.get('user/logout')
47
- }
48
- export default {
49
- register,
50
- login,
51
- codeLogin,
52
- resetPwd,
53
- checkPower,
54
- checkLoginStatus,
55
- logout
56
- }
@@ -1,31 +0,0 @@
1
- import { WishStatus } from '@/constants'
2
- import ajax from '../ajax'
3
-
4
- function addWish(wish: Partial<WishApiTypes.Wish>): WishApiTypes.addWish {
5
- return ajax.post('/wish/add', wish)
6
- }
7
-
8
- function findAllWish(): WishApiTypes.allWishData {
9
- return ajax.get('/wish/all')
10
- }
11
-
12
- function updateWishStatus(
13
- id: string,
14
- status: WishStatus
15
- ): WishApiTypes.updateWish {
16
- return ajax.put('/wish/update', { id, status })
17
- }
18
-
19
- function updateWishDes(
20
- id: string,
21
- title: string,
22
- des: string
23
- ): WishApiTypes.updateWish {
24
- return ajax.put(`/wish/update/${id}`, { title, des })
25
- }
26
- export default {
27
- addWish,
28
- findAllWish,
29
- updateWishStatus,
30
- updateWishDes
31
- }
Binary file
Binary file
@@ -1,69 +0,0 @@
1
- /* element ui 重写 */
2
- .el-message__content {
3
- width: 325px;
4
- word-break: break-all;
5
- line-height: 1.5;
6
- }
7
- .el-progress {
8
- margin-top: 0 !important;
9
- position: static !important;
10
- }
11
- .el-progress__text {
12
- top: 8px !important;
13
- }
14
-
15
- .el-dialog {
16
- max-width: 766px;
17
- }
18
-
19
- .el-select-dropdown {
20
- max-width: 200px;
21
- }
22
-
23
- .el-card {
24
- max-width: 400px;
25
- }
26
- @media screen and (max-width: 700px) {
27
- .el-message-box {
28
- width: auto;
29
- max-width: 300px;
30
- }
31
- .el-pagination {
32
- flex-wrap: wrap;
33
- justify-content: center;
34
- }
35
- .el-pagination > * {
36
- margin-bottom: 10px !important;
37
- }
38
- }
39
-
40
- /* 一些高频公共样式 */
41
- .flex {
42
- display: flex;
43
- }
44
-
45
- .fc {
46
- justify-content: center;
47
- }
48
-
49
- .fac {
50
- align-items: center;
51
- }
52
-
53
- .tc {
54
- text-align: center;
55
- }
56
- .p10 {
57
- padding: 10px;
58
- }
59
-
60
- .ellipsis {
61
- text-overflow: ellipsis;
62
- white-space: nowrap;
63
- overflow: hidden;
64
- }
65
- .ellipsis label {
66
- text-overflow: ellipsis;
67
- white-space: nowrap;
68
- overflow: hidden;
69
- }
@@ -1,134 +0,0 @@
1
- <template>
2
- <div class="footer">
3
- <ul>
4
- <li v-for="(item, index) in navList" :key="index">
5
- <a target="_blank" rel="noopener" v-bind:href="item.link">{{
6
- item.title
7
- }}</a>
8
- </li>
9
- </ul>
10
- <p>
11
- <a
12
- href="https://docs.ep.sugarat.top/plan/log.html"
13
- target="_blank"
14
- rel="noopener"
15
- >v{{ version }}</a
16
- >
17
- © 2019 - {{ currentYear }} by
18
- <a
19
- target="_blank"
20
- rel="noopener"
21
- href="https://docs.ep.sugarat.top/author.html"
22
- >粥里有勺糖</a
23
- >
24
- </p>
25
- </div>
26
- </template>
27
-
28
- <script lang="ts" setup>
29
- import { computed } from 'vue'
30
- import { version } from '../../../package.json'
31
-
32
- const props = defineProps<{
33
- type?: 'home' | 'dashboard' | 'task'
34
- }>()
35
-
36
- const navList = computed(() => {
37
- const navMap = {
38
- home: [
39
- {
40
- title: '应用介绍',
41
- link: 'https://docs.ep.sugarat.top/'
42
- },
43
- // {
44
- // title: 'GitHub',
45
- // link: 'https://github.com/ATQQ/easypicker2-client'
46
- // },
47
- {
48
- title: '问题反馈',
49
- link: 'https://support.qq.com/product/444158'
50
- },
51
- {
52
- title: '联系作者',
53
- link: 'https://docs.ep.sugarat.top/author.html'
54
- },
55
- {
56
- title: '请喝奶茶🧋',
57
- link: 'https://docs.ep.sugarat.top/praise/index.html'
58
- }
59
- ],
60
- dashboard: [
61
- {
62
- title: '页面&功能问题反馈,点这里😊',
63
- link: 'https://support.qq.com/product/444158'
64
- }
65
- ],
66
- task: [
67
- {
68
- title: '页面&功能问题反馈,点这里😊',
69
- link: 'https://support.qq.com/product/444158'
70
- }
71
- ]
72
- }
73
-
74
- return navMap[props.type || 'home'] || []
75
- })
76
-
77
- const currentYear = new Date().getFullYear()
78
- const fontColor = computed(() => {
79
- const colors = {
80
- home: '#fff',
81
- dashboard: '#7f7f7f',
82
- task: '#a4a4a4'
83
- }
84
- return colors[props.type || 'home']
85
- })
86
-
87
- const shadowColor = computed(() => {
88
- const colors = {
89
- home: '#ddd',
90
- dashboard: '#9b9b9b',
91
- task: '#d5d5d5'
92
- }
93
- return colors[props.type || 'home']
94
- })
95
- </script>
96
-
97
- <style lang="scss" scoped>
98
- .footer {
99
- ul {
100
- margin: 10px auto;
101
- display: flex;
102
- justify-content: center;
103
- li {
104
- min-width: 80px;
105
- list-style: none;
106
- text-align: center;
107
- a {
108
- text-align: center;
109
- color: v-bind(fontColor);
110
- opacity: 0.8;
111
- font-size: 1rem;
112
- line-height: 1rem;
113
- &:hover {
114
- opacity: 1;
115
- text-shadow: 0 0 2px v-bind(shadowColor);
116
- }
117
- }
118
- }
119
- }
120
-
121
- p {
122
- margin-top: 28px;
123
- padding-bottom: 20px;
124
- color: v-bind(shadowColor);
125
- a {
126
- color: v-bind(shadowColor);
127
- margin-left: 10px;
128
- }
129
- }
130
- p {
131
- text-align: center;
132
- }
133
- }
134
- </style>
@@ -1,156 +0,0 @@
1
- <template>
2
- <div>
3
- <nav class="navbar">
4
- <div class="right-menu">
5
- <label for="nav-open">
6
- <span class="menu-icon">
7
- <el-icon :size="28">
8
- <Fold />
9
- </el-icon>
10
- </span>
11
- </label>
12
- </div>
13
- <input type="checkbox" id="nav-open" />
14
- <div id="miniMenu">
15
- <ul class="nav-list">
16
- <li v-for="({ href, text }, idx) in links" :key="idx">
17
- <router-link :to="href">{{ text }}</router-link>
18
- </li>
19
- <li>
20
- <a
21
- href="https://docs.ep.sugarat.top/plan/wish.html"
22
- target="_blank"
23
- rel="noopener noreferrer"
24
- >需求墙</a
25
- >
26
- </li>
27
- <!-- <li>
28
- <a
29
- href="https://docs.ep.sugarat.top/introduction/about/index.html"
30
- target="_blank"
31
- rel="noopener noreferrer"
32
- >关于</a
33
- >
34
- </li> -->
35
- <!-- <li>
36
- <a
37
- href="https://github.com/ATQQ/easypicker2-client"
38
- target="_blank"
39
- rel="noopener noreferrer"
40
- >GitHub</a
41
- >
42
- </li> -->
43
- <li>
44
- <a
45
- href="https://docs.ep.sugarat.top/plan/todo.html"
46
- target="_blank"
47
- rel="noopener noreferrer"
48
- >近期规划</a
49
- >
50
- </li>
51
- <li>
52
- <a
53
- href="https://docs.ep.sugarat.top/plan/log.html"
54
- target="_blank"
55
- rel="noopener noreferrer"
56
- >更新日志</a
57
- >
58
- </li>
59
- </ul>
60
- </div>
61
- </nav>
62
- </div>
63
- </template>
64
- <script lang="ts" setup>
65
- import { onMounted, reactive } from 'vue'
66
- import { useRoute } from 'vue-router'
67
- import { Fold } from '@element-plus/icons-vue'
68
-
69
- const $route = useRoute()
70
- const links = reactive([])
71
- onMounted(() => {
72
- const { path } = $route
73
- const navList = [
74
- {
75
- href: '/',
76
- text: '首页'
77
- },
78
- {
79
- href: '/login',
80
- text: '登录'
81
- },
82
- {
83
- href: '/register',
84
- text: '快速注册'
85
- }
86
- ]
87
- for (const nav of navList) {
88
- if (nav.href !== path) {
89
- links.push(nav)
90
- }
91
- }
92
- })
93
- </script>
94
- <style lang="scss" scoped>
95
- #nav-open {
96
- position: absolute;
97
- z-index: -1;
98
- }
99
- .navbar {
100
- color: #fff;
101
- padding: 12px 10px 10px 10px;
102
-
103
- .right-menu {
104
- margin-right: 15px;
105
- display: none;
106
- .menu-icon {
107
- font-size: 28px;
108
- }
109
- }
110
- .nav-list {
111
- display: flex;
112
- justify-content: left;
113
- li {
114
- text-align: center;
115
- list-style: none;
116
- color: #fff;
117
- margin: 0 20px;
118
- }
119
- a {
120
- color: #fff;
121
- opacity: 0.8;
122
- &:hover {
123
- opacity: 1;
124
- text-shadow: 0 0 3px #eee;
125
- }
126
- }
127
- }
128
- }
129
-
130
- @media screen and (max-width: 600px) {
131
- .navbar {
132
- .right-menu {
133
- display: block;
134
- float: right;
135
- font-size: 20px;
136
- }
137
- #nav-open:checked + #miniMenu {
138
- .nav-list {
139
- display: flex;
140
- }
141
- }
142
- .nav-list {
143
- display: none;
144
- flex-direction: column;
145
- li {
146
- margin-top: 6px;
147
- }
148
- }
149
- }
150
- #miniMenu {
151
- position: absolute;
152
- right: 10px;
153
- top: 40px;
154
- }
155
- }
156
- </style>
@@ -1,73 +0,0 @@
1
- <template>
2
- <el-form :disabled="disabled" :label-position="labelPosition || 'top'">
3
- <el-form-item
4
- class="ellipsis"
5
- v-for="(info, idx) in infos"
6
- :key="idx"
7
- :label="info.type === 'text' ? '' : info.text"
8
- >
9
- <div class="fixed-text" v-if="info.type === 'text'">
10
- {{ info.text }}
11
- </div>
12
- <el-input
13
- v-if="info.type === 'input'"
14
- :maxlength="maxInputLength"
15
- clearable
16
- show-word-limit
17
- :placeholder="`请输入 ${info.text}`"
18
- v-model="info.value"
19
- ></el-input>
20
- <el-radio-group v-if="info.type === 'radio'" v-model="info.value">
21
- <el-radio
22
- v-for="(r, idx) in info.children"
23
- :key="idx"
24
- :label="r.text"
25
- >{{ r.text }}</el-radio
26
- >
27
- </el-radio-group>
28
- <el-select
29
- default-first-option
30
- clearable
31
- filterable
32
- v-if="info.type === 'select'"
33
- v-model="info.value"
34
- :placeholder="`请选择 ${info.text}`"
35
- >
36
- <el-option
37
- v-for="(r, idx) in info.children"
38
- :key="idx"
39
- :label="r.text"
40
- :value="r.text"
41
- />
42
- </el-select>
43
- </el-form-item>
44
- </el-form>
45
- </template>
46
- <script setup lang="ts">
47
- defineProps<{
48
- infos: InfoItem[]
49
- disabled: boolean
50
- labelPosition?: 'left' | 'right' | 'top'
51
- }>()
52
-
53
- const maxInputLength = +import.meta.env.VITE_APP_INPUT_MAX_LENGTH || 10
54
- </script>
55
- <style scoped lang="scss">
56
- :deep(div.el-form-item > label) {
57
- font-weight: bold;
58
- &::before {
59
- content: '* ';
60
- color: red;
61
- }
62
- }
63
-
64
- :deep(div.el-form-item__content > .el-select) {
65
- flex: 1;
66
- }
67
- .fixed-text {
68
- background-color: #f5f7fa;
69
- padding: 0 10px;
70
- width: 100%;
71
- text-align: left;
72
- }
73
- </style>
@@ -1,155 +0,0 @@
1
- <script lang="ts" setup>
2
- import { ref, reactive, onMounted, watch, computed } from 'vue'
3
- import { useStore } from 'vuex'
4
- import { formatDate } from '@/utils/stringUtil'
5
- import { SuperUserApi } from '@/apis'
6
-
7
- const props = defineProps<{
8
- data: SuperUserApiTypes.MessageItem[]
9
- autoShow?: boolean
10
- }>()
11
-
12
- const dialogMessage = reactive({
13
- show: false,
14
- title: '系统消息',
15
- text: '内容'
16
- })
17
- const activeMessage = ref<SuperUserApiTypes.MessageItem>(null)
18
- const handleViewDialogMessage = (v: SuperUserApiTypes.MessageItem) => {
19
- activeMessage.value = v
20
- dialogMessage.text = v.text
21
- // TODO: 魔法数字问题
22
- // TODO:支持更多的消息类型
23
- dialogMessage.title = v.type === 0 ? '【系统消息】' : '【私信】'
24
- dialogMessage.show = true
25
- }
26
-
27
- const readMessage = () => {
28
- if (activeMessage.value.read) {
29
- dialogMessage.show = false
30
- return
31
- }
32
- SuperUserApi.readMessage(activeMessage.value.id).then(() => {
33
- activeMessage.value.read = true
34
- dialogMessage.show = false
35
- })
36
- }
37
-
38
- watch(
39
- () => props.data.length,
40
- () => {
41
- if (!props.autoShow) {
42
- return
43
- }
44
- const showItem = props.data.find((v) => !v.read)
45
- if (showItem) {
46
- handleViewDialogMessage(showItem)
47
- }
48
- }
49
- )
50
-
51
- // TODO:换成自定义hook
52
- const $store = useStore()
53
- const isMobile = computed(() => $store.getters['public/isMobile'])
54
- </script>
55
- <template>
56
- <div v-if="!data.length" class="empty">暂无更多消息 ღ( ´・ᴗ・` )比心</div>
57
- <ul class="message-list">
58
- <li
59
- v-for="d in data"
60
- :key="d.id"
61
- :class="{
62
- read: d.read
63
- }"
64
- @click="handleViewDialogMessage(d)"
65
- >
66
- <p class="text">{{ d.text }}</p>
67
- <p class="date">{{ formatDate(new Date(d.date)) }}</p>
68
- </li>
69
- </ul>
70
- <el-dialog
71
- center
72
- show-close
73
- append-to-body
74
- v-model="dialogMessage.show"
75
- :close-on-click-modal="false"
76
- :title="dialogMessage.title"
77
- width="30%"
78
- :fullscreen="isMobile"
79
- >
80
- <div class="message-text" v-html="dialogMessage.text"></div>
81
- <template #footer>
82
- <p class="dialog-date">
83
- 时间:{{ formatDate(new Date(activeMessage.date)) }}
84
- </p>
85
- <span>
86
- <el-button
87
- type="default"
88
- @click="
89
- () => {
90
- dialogMessage.show = false
91
- }
92
- "
93
- >
94
- 下次提醒
95
- </el-button>
96
- <el-button type="primary" @click="readMessage"> 确定 </el-button>
97
- </span>
98
- </template>
99
- </el-dialog>
100
- </template>
101
-
102
- <style lang="scss" scoped>
103
- .message-list {
104
- list-style: none;
105
- max-height: 500px;
106
- overflow-y: scroll;
107
- li {
108
- border-bottom: 1px solid #ddd;
109
- padding: 10px;
110
- cursor: pointer;
111
- &.read {
112
- opacity: 0.5;
113
- &:hover {
114
- opacity: 0.9;
115
- }
116
- }
117
- &:last-child {
118
- border-bottom: none;
119
- }
120
-
121
- p.text {
122
- font-size: 16px;
123
- display: -webkit-box;
124
- overflow: hidden;
125
- -webkit-line-clamp: 2;
126
- -webkit-box-orient: vertical;
127
- }
128
- p.date {
129
- font-size: 14px;
130
- margin-top: 4px;
131
- }
132
- }
133
- }
134
- .empty {
135
- text-align: center;
136
- padding: 10px;
137
- }
138
-
139
- .dialog-date {
140
- font-size: 14px;
141
- text-align: right;
142
- padding: 10px;
143
- color: grey;
144
- }
145
- </style>
146
- <style lang="scss">
147
- .message-text {
148
- overflow-y: scroll;
149
- max-height: 500px;
150
- ul,
151
- ol {
152
- list-style: none;
153
- }
154
- }
155
- </style>