@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,72 +0,0 @@
1
- <template>
2
- <div class="home">
3
- <!-- 顶部导航栏 -->
4
- <header>
5
- <HomeHeader />
6
- </header>
7
- <h1 class="title">EasyPicker</h1>
8
-
9
- <!-- 简介 -->
10
- <section class="introduce">
11
- <p v-for="(item, index) in introduces" :key="index">{{ item }}</p>
12
- </section>
13
- <section class="introduce">
14
- <p>
15
- <router-link to="/login">点我登陆</router-link>
16
- </p>
17
- <p>
18
- <router-link to="/register">没有账号? 去注册</router-link>
19
- </p>
20
- </section>
21
- <footer>
22
- <!-- 底部导航栏 -->
23
- <HomeFooter />
24
- </footer>
25
- </div>
26
- </template>
27
- <script lang="ts" setup>
28
- import { reactive } from 'vue'
29
- import HomeHeader from '@components/HomeHeader/index.vue'
30
- import HomeFooter from '@components/HomeFooter/index.vue'
31
-
32
- const introduces: string[] = reactive([
33
- '一款在线文件收取助手',
34
- '自动归档,记录每次提交的文件信息与提交人信息',
35
- '随时随地下载,查看收取详细情况',
36
- ])
37
-
38
- </script>
39
-
40
- <style lang="scss" scoped>
41
- .home {
42
- font-family: "Avenir", Helvetica, Arial, sans-serif;
43
- background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);
44
- min-height: 100vh;
45
- }
46
- .title {
47
- color: aliceblue;
48
- text-align: center;
49
- font-weight: lighter;
50
- font-size: 60px;
51
- padding-top: 22vh;
52
- }
53
- .introduce {
54
- padding: 10px;
55
- color: aliceblue;
56
- text-align: center;
57
- p {
58
- margin-top: 10px;
59
- }
60
- a {
61
- color: aliceblue;
62
- font-weight: bold;
63
- }
64
- }
65
- footer {
66
- position: absolute;
67
- bottom: 20px;
68
- left: 0;
69
- right: 0;
70
- // margin-top: 25vh;
71
- }
72
- </style>
@@ -1,270 +0,0 @@
1
- <template>
2
- <div class="login">
3
- <login-panel>
4
- <!-- 表单输入区域 -->
5
- <div class="inputArea">
6
- <div>
7
- <el-input
8
- :placeholder="accountLogin ? '输入账号/手机号' : '输入手机号'"
9
- :prefix-icon="accountLogin ? User : Phone"
10
- v-model="account"
11
- clearable
12
- >
13
- <template #append>
14
- <template v-if="accountLogin">
15
- <el-button @click="accountLogin = !accountLogin"
16
- >验证码登录</el-button
17
- >
18
- </template>
19
- <template v-else>
20
- <el-button @click="accountLogin = !accountLogin"
21
- >账号登录</el-button
22
- >
23
- </template>
24
- </template>
25
- </el-input>
26
- </div>
27
- <div>
28
- <el-input
29
- maxlength="16"
30
- minlength="6"
31
- :type="accountLogin ? 'password' : 'number'"
32
- :placeholder="accountLogin ? '请输入密码' : '请输入验证码'"
33
- :prefix-icon="Lock"
34
- v-model="pwd"
35
- :show-password="accountLogin"
36
- clearable
37
- >
38
- <template #append>
39
- <el-button v-if="accountLogin">
40
- <router-link style="color: #909399" to="/reset"
41
- >忘记密码?</router-link
42
- >
43
- </el-button>
44
- <!-- 获取验证码 -->
45
- <el-button :disabled="time !== 0" @click="getCode" v-else>{{
46
- codeText
47
- }}</el-button>
48
- </template>
49
- </el-input>
50
- </div>
51
- <div class="tc">
52
- <el-checkbox v-model="remember">记住登录信息?</el-checkbox>
53
- </div>
54
- <div class="tc">
55
- <el-button @click="login()" type="primary" class="fw-w100"
56
- >登录</el-button
57
- >
58
- </div>
59
- <el-divider></el-divider>
60
- <div class="links">
61
- <router-link to="/register">快速注册</router-link>
62
- </div>
63
- <div class="links" style="margin-top: 20px">
64
- <el-link target="_blank" href="https://support.qq.com/product/444158"
65
- >问题反馈?</el-link
66
- >
67
- </div>
68
- </div>
69
- </login-panel>
70
- </div>
71
- </template>
72
- <script setup lang="ts">
73
- import { ElMessage } from 'element-plus'
74
- import { onMounted, ref } from 'vue'
75
- import { useRouter } from 'vue-router'
76
- import { useStore } from 'vuex'
77
- import loginPanel from '@components/loginPanel.vue'
78
- import { User, Phone, Lock } from '@element-plus/icons-vue'
79
- import { rMobilePhone, rPassword, rVerCode } from '@/utils/regExp'
80
- import { formatDate } from '@/utils/stringUtil'
81
- import { PublicApi, UserApi } from '@/apis'
82
-
83
- const account = ref('')
84
- const pwd = ref('')
85
- const remember = ref(false)
86
- const accountLogin = ref(true)
87
- const $store = useStore()
88
- const $router = useRouter()
89
- const redirectDashBoard = (system?: boolean) => {
90
- if (system) {
91
- $router.replace({
92
- name: 'config'
93
- })
94
- return
95
- }
96
- const { redirect } = $router.currentRoute.value.query
97
- if (redirect) {
98
- $router.replace({
99
- path: `${redirect}`
100
- })
101
- return
102
- }
103
-
104
- $router.replace({
105
- name: 'dashboard'
106
- })
107
- }
108
- const checkForm = () => {
109
- if (account.value.length === 11) {
110
- if (!rMobilePhone.test(account.value)) {
111
- ElMessage.warning('手机号格式不正确')
112
- return false
113
- }
114
- }
115
- // else if (!rAccount.test(account.value)) {
116
- // 兼容老平台数据,不校验账号
117
- // ElMessage.warning('帐号格式不正确(4-11位 数字字母)')
118
- // return false
119
- // }
120
-
121
- if (accountLogin.value && !rPassword.test(pwd.value)) {
122
- ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')
123
- return false
124
- }
125
-
126
- if (!accountLogin.value && !rVerCode.test(pwd.value)) {
127
- ElMessage.warning('验证码不正确(4位 数字)')
128
- return false
129
- }
130
- return true
131
- }
132
- const codeText = ref('获取验证码')
133
- const time = ref(0)
134
- const refreshCodeText = () => {
135
- if (time.value === 0) {
136
- codeText.value = '获取验证码'
137
- return
138
- }
139
- codeText.value = `${time.value}s`
140
- time.value -= 1
141
- setTimeout(refreshCodeText, 1000)
142
- }
143
- const getCode = () => {
144
- if (!rMobilePhone.test(account.value)) {
145
- ElMessage.warning('手机号格式不正确')
146
- return
147
- }
148
- PublicApi.getCode(account.value)
149
- .then(() => {
150
- time.value = 120
151
- refreshCodeText()
152
- ElMessage.success('获取成功,请注意查看手机短信')
153
- })
154
- .catch((err) => {
155
- const { code: c } = err
156
- const msg = '注册失败,未知错误'
157
- const options = {
158
- 1006: '手机号格式不正确'
159
- }
160
- ElMessage.error(options[c] || msg)
161
- })
162
- }
163
-
164
- const loginErrorMsg = (err: any, msg: string) => {
165
- const { code, data } = err
166
- const msgs: any = {
167
- 1010: '账号已被封禁,有疑问请联系管理员',
168
- 1009: `账号已被冻结,解冻时间${
169
- data?.openTime && formatDate(new Date(data.openTime))
170
- }`
171
- }
172
- ElMessage.error({
173
- type: 'error',
174
- message: msgs[code] || msg
175
- })
176
- }
177
- const login = () => {
178
- if (!checkForm()) {
179
- return
180
- }
181
- // 账号密码
182
- if (accountLogin.value) {
183
- if (remember.value) {
184
- localStorage.setItem(
185
- 'userinfo',
186
- JSON.stringify({
187
- account: account.value,
188
- pwd: pwd.value,
189
- remember: remember.value
190
- })
191
- )
192
- } else {
193
- localStorage.removeItem('userinfo')
194
- }
195
- UserApi.login(account.value, pwd.value)
196
- .then((res) => {
197
- const { token, system } = res.data
198
- $store.commit('user/setToken', token)
199
- $store.commit('user/setSystem', system)
200
- ElMessage.success({
201
- message: '登录成功',
202
- duration: 500
203
- })
204
- redirectDashBoard(system)
205
- })
206
- .catch((err) => {
207
- loginErrorMsg(err, '密码不正确')
208
- })
209
- } else {
210
- // 手机号验证码登录
211
- UserApi.codeLogin(account.value, pwd.value)
212
- .then((res) => {
213
- const { token } = res.data
214
- $store.commit('user/setToken', token)
215
- $store.commit('user/setSystem', false)
216
- ElMessage.success({
217
- message: '登录成功',
218
- duration: 500
219
- })
220
- redirectDashBoard()
221
- })
222
- .catch((err) => {
223
- loginErrorMsg(err, '验证码不正确')
224
- })
225
- }
226
- }
227
- onMounted(() => {
228
- const token = localStorage.getItem('token')
229
- if (token) {
230
- redirectDashBoard(localStorage.getItem('system') === 'true')
231
- return
232
- }
233
- const info = localStorage.getItem('userinfo')
234
- if (info) {
235
- const user = JSON.parse(info)
236
- account.value = user.account
237
- pwd.value = user.pwd
238
- remember.value = user.remember
239
- }
240
- })
241
- </script>
242
-
243
- <style scoped lang="scss">
244
- .login {
245
- background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
246
- min-height: 100vh;
247
- }
248
-
249
- .inputArea {
250
- // padding: 1rem;
251
- margin: 0 auto;
252
- max-width: 320px;
253
- div {
254
- margin-top: 10px;
255
- }
256
- :deep(.el-input-group__append) {
257
- width: 80px;
258
- padding: 0 10px;
259
- }
260
- }
261
- // 登录按钮下方链接
262
- .links {
263
- display: flex;
264
- justify-content: center;
265
- a {
266
- color: #409eff;
267
- margin-left: 10px;
268
- }
269
- }
270
- </style>
@@ -1,211 +0,0 @@
1
- <template>
2
- <div class="register">
3
- <login-panel>
4
- <div class="inputArea">
5
- <div>
6
- <el-input
7
- maxlength="11"
8
- placeholder="输入账号"
9
- :prefix-icon="User"
10
- v-model="account"
11
- clearable
12
- ></el-input>
13
- </div>
14
- <div>
15
- <el-input
16
- maxlength="16"
17
- minlength="6"
18
- type="password"
19
- placeholder="请输入密码"
20
- :prefix-icon="Lock"
21
- v-model="pwd1"
22
- show-password
23
- clearable
24
- ></el-input>
25
- </div>
26
- <div>
27
- <el-input
28
- maxlength="16"
29
- minlength="6"
30
- type="password"
31
- placeholder="请再次输入密码"
32
- :prefix-icon="Lock"
33
- v-model="pwd2"
34
- show-password
35
- clearable
36
- ></el-input>
37
- </div>
38
- <div class="tc">
39
- <el-checkbox v-model="bindPhone">绑定手机</el-checkbox>
40
- <el-tooltip
41
- effect="dark"
42
- content="可用于修改/找回密码"
43
- placement="top-start"
44
- >
45
- <el-icon :size="16">
46
- <QuestionFilled />
47
- </el-icon>
48
- </el-tooltip>
49
- </div>
50
- <div v-if="bindPhone">
51
- <el-input
52
- maxlength="11"
53
- placeholder="输入手机号"
54
- :prefix-icon="Phone"
55
- v-model="phone"
56
- clearable
57
- ></el-input>
58
- </div>
59
- <div v-if="bindPhone">
60
- <el-input
61
- maxlength="4"
62
- type="number"
63
- placeholder="请输入验证码"
64
- :prefix-icon="Lock"
65
- v-model="code"
66
- clearable
67
- >
68
- <template #append>
69
- <el-button :disabled="time !== 0" @click="getCode">{{
70
- codeText
71
- }}</el-button>
72
- </template>
73
- </el-input>
74
- </div>
75
- <div class="tc">
76
- <el-button @click="handleRegister" type="primary">注册</el-button>
77
- </div>
78
- <el-divider></el-divider>
79
- <div class="links">
80
- <router-link to="/login">已有账号,去登陆</router-link>
81
- </div>
82
- <div class="links" style="margin-top: 20px">
83
- <el-link target="_blank" href="https://support.qq.com/product/444158"
84
- >问题反馈?</el-link
85
- >
86
- </div>
87
- </div>
88
- </login-panel>
89
- </div>
90
- </template>
91
- <script setup lang="ts">
92
- import { ref } from 'vue'
93
- import { useRouter } from 'vue-router'
94
- import { ElMessage } from 'element-plus'
95
- import loginPanel from '@components/loginPanel.vue'
96
- import { useStore } from 'vuex'
97
- import { User, Lock, Phone, QuestionFilled } from '@element-plus/icons-vue'
98
- import { rAccount, rMobilePhone, rPassword, rVerCode } from '@/utils/regExp'
99
- import { PublicApi, UserApi } from '@/apis'
100
-
101
- const $store = useStore()
102
- const account = ref('')
103
- const pwd1 = ref('')
104
- const pwd2 = ref('')
105
- const phone = ref('')
106
- const code = ref('')
107
- const $router = useRouter()
108
- const bindPhone = ref(false)
109
- const codeText = ref('获取验证码')
110
- const time = ref(0)
111
- const refreshCodeText = () => {
112
- if (time.value === 0) {
113
- codeText.value = '获取验证码'
114
- return
115
- }
116
- codeText.value = `${time.value}s`
117
- time.value -= 1
118
- setTimeout(refreshCodeText, 1000)
119
- }
120
- const getCode = () => {
121
- if (!rMobilePhone.test(phone.value)) {
122
- ElMessage.warning('手机号格式不正确')
123
- return
124
- }
125
- PublicApi.getCode(phone.value).then(() => {
126
- time.value = 120
127
- refreshCodeText()
128
- ElMessage.success('获取成功,请注意查看手机短信')
129
- })
130
- }
131
- const checkForm = () => {
132
- if (!rAccount.test(account.value)) {
133
- ElMessage.warning('帐号格式不正确(4-11位 数字字母)')
134
- return false
135
- }
136
-
137
- if (!rPassword.test(pwd1.value)) {
138
- ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')
139
- return false
140
- }
141
- if (pwd1.value !== pwd2.value) {
142
- ElMessage.warning('两次输入的密码不一致')
143
- return false
144
- }
145
- if (bindPhone.value) {
146
- if (!rMobilePhone.test(phone.value)) {
147
- ElMessage.warning('手机号格式不正确')
148
- return false
149
- }
150
- if (!rVerCode.test(code.value)) {
151
- ElMessage.warning('验证码不正确(4位 数字)')
152
- return false
153
- }
154
- }
155
- return true
156
- }
157
- const handleRegister = () => {
158
- if (!checkForm()) {
159
- return
160
- }
161
- UserApi.register({
162
- account: account.value,
163
- pwd: pwd1.value,
164
- bindPhone: bindPhone.value,
165
- phone: phone.value,
166
- code: code.value
167
- })
168
- .then((res) => {
169
- const { token } = res.data
170
- $store.commit('user/setToken', token)
171
- ElMessage.success('注册成功')
172
- $router.replace({
173
- name: 'dashboard'
174
- })
175
- })
176
- .catch((err) => {
177
- const { code: c } = err
178
- const msg = '注册失败,未知错误'
179
- const options: any = {
180
- 1001: '账号已存在',
181
- 1002: '手机号已被注册',
182
- 1003: '验证码不正确',
183
- 1004: '密码格式不正确',
184
- 1006: '手机号格式不正确'
185
- }
186
- ElMessage.error(options[c] || msg)
187
- })
188
- }
189
- </script>
190
- <style scoped lang="scss">
191
- .register {
192
- background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);
193
- min-height: 100vh;
194
- }
195
-
196
- .inputArea {
197
- margin: 0 auto;
198
- max-width: 320px;
199
- > div {
200
- margin-top: 10px;
201
- }
202
- }
203
- .links {
204
- display: flex;
205
- justify-content: center;
206
- a {
207
- color: #409eff;
208
- margin-left: 10px;
209
- }
210
- }
211
- </style>