af-mobile-client-vue3 1.3.16 → 1.3.17

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 (273) hide show
  1. package/.cursorrules +60 -60
  2. package/.editorconfig +9 -9
  3. package/.env +10 -10
  4. package/.env.development +1 -1
  5. package/.env.production +1 -1
  6. package/.node-version +1 -1
  7. package/.vscode/extensions.json +12 -12
  8. package/.vscode/settings.json +66 -66
  9. package/CLAUDE.md +189 -189
  10. package/README.md +182 -182
  11. package/af-example-mobile-vue-web.iml +9 -9
  12. package/build/vite/index.ts +98 -98
  13. package/build/vite/optimize.ts +34 -34
  14. package/build/vite/vconsole.ts +47 -47
  15. package/commitlint.config.ts +32 -32
  16. package/compress.js +36 -36
  17. package/eslint.config.ts +30 -30
  18. package/index.html +23 -23
  19. package/mock/data.ts +20 -20
  20. package/mock/index.ts +7 -7
  21. package/mock/modules/prose.mock.ts +13 -13
  22. package/mock/modules/user.mock.ts +152 -152
  23. package/mock/util.ts +19 -19
  24. package/netlify.toml +12 -12
  25. package/package.json +114 -114
  26. package/postcss.config.ts +27 -27
  27. package/public/favicon.svg +4 -4
  28. package/public/safari-pinned-tab.svg +4 -4
  29. package/scripts/verifyCommit.js +19 -19
  30. package/src/App.vue +79 -79
  31. package/src/api/mock/index.ts +30 -30
  32. package/src/api/user/index.ts +40 -40
  33. package/src/assets/img/user/login/background-shadow-1.svg +20 -20
  34. package/src/assets/img/user/login/logo-background.svg +20 -20
  35. package/src/bootstrap.ts +26 -26
  36. package/src/components/core/BeautifulLoading/index.vue +52 -52
  37. package/src/components/core/ImageUploader/index.vue +244 -244
  38. package/src/components/core/NavBar/index.vue +53 -53
  39. package/src/components/core/Tabbar/index.vue +32 -32
  40. package/src/components/core/Uploader/index.vue +124 -124
  41. package/src/components/core/XGridDropOption/index.vue +154 -154
  42. package/src/components/core/XMultiSelect/index.vue +183 -183
  43. package/src/components/core/XSelect/index.vue +149 -149
  44. package/src/components/data/CardContainer/CardContainer.vue +118 -118
  45. package/src/components/data/CardContainer/CardHeader.vue +99 -99
  46. package/src/components/data/InfoDisplay/index.vue +132 -132
  47. package/src/components/data/UserDetail/api.ts +24 -24
  48. package/src/components/data/UserDetail/index.vue +620 -620
  49. package/src/components/data/UserDetail/recordEntries.ts +159 -159
  50. package/src/components/data/UserDetail/types.ts +26 -26
  51. package/src/components/data/XBadge/index.vue +82 -82
  52. package/src/components/data/XCellDetail/index.vue +105 -105
  53. package/src/components/data/XCellList/XCellList.md +313 -313
  54. package/src/components/data/XCellList/index.vue +1110 -1075
  55. package/src/components/data/XCellListFilter/QrScanner/index.vue +207 -207
  56. package/src/components/data/XCellListFilter/QrScanner/startScanAnimation.ts +53 -53
  57. package/src/components/data/XCellListFilter/VpnRecognition/index.vue +119 -119
  58. package/src/components/data/XCellListFilter/index.vue +705 -705
  59. package/src/components/data/XForm/index.vue +659 -659
  60. package/src/components/data/XFormGroup/doc/DeviceForm.vue +122 -122
  61. package/src/components/data/XFormGroup/doc/FormGroupDemo.vue +56 -56
  62. package/src/components/data/XFormGroup/doc/README.md +286 -286
  63. package/src/components/data/XFormGroup/doc/UserForm.vue +102 -102
  64. package/src/components/data/XFormGroup/index.vue +240 -240
  65. package/src/components/data/XFormItem/index.vue +1310 -1310
  66. package/src/components/data/XOlMap/README.md +227 -227
  67. package/src/components/data/XOlMap/XLocationPicker/index.vue +226 -226
  68. package/src/components/data/XOlMap/index.vue +1490 -1490
  69. package/src/components/data/XOlMap/types.ts +149 -149
  70. package/src/components/data/XOlMap/utils/wgs84ToGcj02.js +154 -154
  71. package/src/components/data/XReportForm/DateTimeSecondsPicker.vue +208 -208
  72. package/src/components/data/XReportForm/XReportFormJsonRender.vue +220 -220
  73. package/src/components/data/XReportForm/index.vue +1393 -1393
  74. package/src/components/data/XReportGrid/XAddReport/XAddReport.vue +198 -198
  75. package/src/components/data/XReportGrid/XAddReport/index.js +3 -3
  76. package/src/components/data/XReportGrid/XAddReport/index.md +53 -53
  77. package/src/components/data/XReportGrid/XAddReport/index.ts +10 -10
  78. package/src/components/data/XReportGrid/XReport.vue +960 -960
  79. package/src/components/data/XReportGrid/XReportDemo.vue +33 -33
  80. package/src/components/data/XReportGrid/XReportDesign.vue +597 -597
  81. package/src/components/data/XReportGrid/XReportDrawer/XReportDrawer.vue +148 -148
  82. package/src/components/data/XReportGrid/XReportDrawer/index.js +3 -3
  83. package/src/components/data/XReportGrid/XReportDrawer/index.ts +10 -10
  84. package/src/components/data/XReportGrid/XReportJsonRender.vue +399 -399
  85. package/src/components/data/XReportGrid/XReportTrGroup.vue +592 -592
  86. package/src/components/data/XReportGrid/index.md +46 -46
  87. package/src/components/data/XReportGrid/print.js +184 -184
  88. package/src/components/data/XSignature/index.vue +284 -284
  89. package/src/components/data/XTag/index.vue +10 -10
  90. package/src/components/layout/NormalDataLayout/index.vue +69 -69
  91. package/src/components/layout/TabBarLayout/index.vue +40 -40
  92. package/src/composables/dark.ts +5 -5
  93. package/src/config/routes.ts +9 -9
  94. package/src/constants/index.ts +2 -2
  95. package/src/enums/requestEnum.ts +25 -25
  96. package/src/expression/ExpressionRunner.ts +28 -28
  97. package/src/expression/TestExpression.ts +510 -510
  98. package/src/expression/core/Delegate.ts +116 -116
  99. package/src/expression/core/Expression.ts +1359 -1359
  100. package/src/expression/core/Program.ts +985 -985
  101. package/src/expression/core/Token.ts +29 -29
  102. package/src/expression/enums/ExpressionType.ts +81 -81
  103. package/src/expression/enums/TokenType.ts +11 -11
  104. package/src/expression/exception/BreakWayException.ts +2 -2
  105. package/src/expression/exception/ContinueWayException.ts +2 -2
  106. package/src/expression/exception/ExpressionException.ts +29 -29
  107. package/src/expression/exception/ReturnWayException.ts +14 -14
  108. package/src/expression/exception/ServiceException.ts +22 -22
  109. package/src/expression/instances/JSONArray.ts +52 -52
  110. package/src/expression/instances/JSONObject.ts +118 -118
  111. package/src/expression/instances/LogicConsole.ts +31 -31
  112. package/src/font-style/font.css +4 -4
  113. package/src/hooks/useBoolean.ts +26 -26
  114. package/src/hooks/useCommon.ts +9 -9
  115. package/src/hooks/useLoading.ts +16 -16
  116. package/src/hooks/useLogin.ts +97 -97
  117. package/src/icons/svg/check-in.svg +32 -32
  118. package/src/icons/svg/dark.svg +4 -4
  119. package/src/icons/svg/github.svg +4 -4
  120. package/src/icons/svg/light.svg +4 -4
  121. package/src/icons/svg/link.svg +4 -4
  122. package/src/icons/svgo.yml +22 -22
  123. package/src/layout/GridView/index.vue +16 -16
  124. package/src/layout/PageLayout.vue +9 -9
  125. package/src/layout/SingleLayout.vue +9 -9
  126. package/src/locales/en-US.json +128 -128
  127. package/src/locales/zh-CN.json +128 -128
  128. package/src/logic/LogicRunner.ts +67 -67
  129. package/src/logic/TestLogic.ts +13 -13
  130. package/src/logic/plugins/common/DateTools.ts +35 -35
  131. package/src/logic/plugins/common/VueTools.ts +30 -30
  132. package/src/logic/plugins/index.ts +7 -7
  133. package/src/main.ts +44 -44
  134. package/src/plugins/AppData.ts +38 -38
  135. package/src/plugins/GetLoginInfoService.ts +10 -10
  136. package/src/plugins/collectIcons.ts +10 -10
  137. package/src/plugins/index.ts +11 -11
  138. package/src/router/README.md +8 -8
  139. package/src/router/guards.ts +59 -59
  140. package/src/router/index.ts +35 -35
  141. package/src/router/invoiceRoutes.ts +33 -33
  142. package/src/router/routes.ts +347 -341
  143. package/src/router/types.ts +7 -7
  144. package/src/services/api/Login.ts +6 -6
  145. package/src/services/api/common.ts +109 -109
  146. package/src/services/api/index.ts +7 -7
  147. package/src/services/api/manage.ts +8 -8
  148. package/src/services/api/search.ts +16 -16
  149. package/src/services/api/user.ts +17 -17
  150. package/src/services/restTools.ts +56 -56
  151. package/src/services/v3Api.ts +147 -147
  152. package/src/stores/index.ts +11 -11
  153. package/src/stores/modules/counter.ts +19 -19
  154. package/src/stores/modules/routeCache.ts +23 -23
  155. package/src/stores/modules/setting.ts +76 -76
  156. package/src/stores/modules/user.ts +235 -235
  157. package/src/stores/mutation-type.ts +7 -7
  158. package/src/styles/app.less +36 -36
  159. package/src/styles/login.less +109 -109
  160. package/src/styles/var.less +25 -16
  161. package/src/types/env.d.ts +16 -16
  162. package/src/types/settings.ts +1 -1
  163. package/src/types/vue-router.d.ts +9 -9
  164. package/src/utils/Storage.ts +124 -124
  165. package/src/utils/authority-utils.ts +84 -84
  166. package/src/utils/common.ts +41 -41
  167. package/src/utils/crypto.ts +39 -39
  168. package/src/utils/dataUtil.ts +42 -42
  169. package/src/utils/dictUtil.ts +52 -52
  170. package/src/utils/http/index.ts +199 -199
  171. package/src/utils/i18n.ts +72 -72
  172. package/src/utils/indexedDB.ts +195 -195
  173. package/src/utils/inline-px-to-vw.ts +28 -28
  174. package/src/utils/mobileUtil.ts +34 -34
  175. package/src/utils/progress.ts +19 -19
  176. package/src/utils/routerUtil.ts +271 -271
  177. package/src/utils/runEvalFunction.ts +13 -13
  178. package/src/utils/secureStorage.ts +71 -71
  179. package/src/utils/set-page-title.ts +5 -5
  180. package/src/utils/validate.ts +6 -6
  181. package/src/utils/wechatUtil.ts +9 -9
  182. package/src/views/chat/index.vue +153 -153
  183. package/src/views/common/LoadError.vue +63 -63
  184. package/src/views/common/NotFound.vue +67 -67
  185. package/src/views/component/EvaluateRecordView/index.vue +40 -40
  186. package/src/views/component/IconifyView/index.vue +504 -504
  187. package/src/views/component/UserDetailView/UserDetailPage.vue +77 -77
  188. package/src/views/component/UserDetailView/index.vue +234 -234
  189. package/src/views/component/XCellDetailView/index.vue +217 -217
  190. package/src/views/component/XCellListView/index.vue +157 -108
  191. package/src/views/component/XFormAppraiseView/index.vue +174 -174
  192. package/src/views/component/XFormGroupView/index.vue +82 -78
  193. package/src/views/component/XFormGroupView/xformgroup222.vue +97 -0
  194. package/src/views/component/XFormView/index.vue +27 -27
  195. package/src/views/component/XOlMapView/XLocationPicker/index.vue +118 -118
  196. package/src/views/component/XOlMapView/index.vue +434 -434
  197. package/src/views/component/XOlMapView/testData.ts +64 -64
  198. package/src/views/component/XReportFormIframeView/index.vue +47 -47
  199. package/src/views/component/XReportFormView/index.vue +13 -13
  200. package/src/views/component/XReportGridView/index.vue +17 -17
  201. package/src/views/component/XRequestView/index.vue +234 -234
  202. package/src/views/component/XSignatureView/index.vue +50 -50
  203. package/src/views/component/index.vue +181 -181
  204. package/src/views/component/menu.vue +117 -117
  205. package/src/views/component/notice.vue +46 -46
  206. package/src/views/component/topNav.vue +36 -36
  207. package/src/views/invoiceShow/index.vue +61 -61
  208. package/src/views/user/login/ForgetPasswordForm.vue +94 -94
  209. package/src/views/user/login/LoginForm.vue +346 -346
  210. package/src/views/user/login/LoginTitle.vue +76 -76
  211. package/src/views/user/login/LoginWave.vue +109 -109
  212. package/src/views/user/login/index.vue +22 -22
  213. package/src/views/user/my/comm/ModifyPassword.vue +346 -346
  214. package/src/views/user/my/index.vue +340 -340
  215. package/src/views/userRecords/AbnormalAlarmRecords.vue +21 -21
  216. package/src/views/userRecords/CardReplacementRecords.vue +21 -21
  217. package/src/views/userRecords/ChangeRecords.vue +19 -19
  218. package/src/views/userRecords/CommandViewRecords.vue +20 -20
  219. package/src/views/userRecords/GasCompensationRecords.vue +20 -20
  220. package/src/views/userRecords/InstrumentCollectionRecords.vue +21 -21
  221. package/src/views/userRecords/MeterRecords.vue +20 -20
  222. package/src/views/userRecords/OperateRecords.vue +51 -51
  223. package/src/views/userRecords/OtherChargeRecords.vue +19 -19
  224. package/src/views/userRecords/PaymentRecords.vue +28 -28
  225. package/src/views/userRecords/PriceAdjustmentRecords.vue +19 -19
  226. package/src/views/userRecords/ReplacementRecords.vue +19 -19
  227. package/src/views/userRecords/SafetyRecords.vue +19 -19
  228. package/src/views/userRecords/TransactionRecords.vue +21 -21
  229. package/src/views/userRecords/TransferRecords.vue +19 -19
  230. package/src/views/userRecords/operateRecordDetail/index.vue +316 -316
  231. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AddUserDetail.vue +124 -124
  232. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AdvanceDeliveryDetail.vue +88 -88
  233. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsCancelDetail.vue +205 -205
  234. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsDetail.vue +192 -192
  235. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankDkDetail.vue +192 -192
  236. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankPayDetail.vue +192 -192
  237. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BlacklistDetail.vue +153 -153
  238. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CancellationDetail.vue +101 -101
  239. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterCancelDetail.vue +127 -127
  240. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterDetail.vue +153 -153
  241. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardOverUserDetail.vue +153 -153
  242. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterCancelDetail.vue +166 -166
  243. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterDetail.vue +205 -205
  244. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/DisableManageDetail.vue +127 -127
  245. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/EnableManageDetail.vue +114 -114
  246. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FaZheChangeDetail.vue +124 -124
  247. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FeeDeductionDetail.vue +153 -153
  248. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/GasPriceChangeDetail.vue +126 -126
  249. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/InputtorChangeDetail.vue +126 -126
  250. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterCancelDetail.vue +114 -114
  251. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterDetail.vue +127 -127
  252. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotOpenDetail.vue +88 -88
  253. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineCardDetail.vue +101 -101
  254. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterCancelDetail.vue +218 -218
  255. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterDetail.vue +153 -153
  256. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OffGasAddGasDetail.vue +140 -140
  257. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeCancelDetail.vue +127 -127
  258. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeDetail.vue +114 -114
  259. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OverUserChangeDetail.vue +127 -127
  260. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReBillDetail.vue +127 -127
  261. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/RefundDetail.vue +114 -114
  262. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageCancelDetail.vue +127 -127
  263. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageDetail.vue +114 -114
  264. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/SaleCardGasDetail.vue +140 -140
  265. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageCancelDetail.vue +152 -152
  266. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageDetail.vue +178 -178
  267. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/UserChangeDetail.vue +123 -123
  268. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/WechatPayDetail.vue +192 -192
  269. package/src/views/userRecords/types.ts +66 -66
  270. package/tsconfig.json +39 -39
  271. package/uno.config.ts +82 -82
  272. package/vite.config.ts +118 -118
  273. package/.claude/settings.local.json +0 -8
@@ -1,4 +1,4 @@
1
- <svg t="1709866807903" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4913" width="32" height="32">
2
- <path d="M512 598.528a111.232 111.232 0 0 0-111.232 111.2064V870.4h222.464v-160.6656c0-61.44-49.792-111.232-111.232-111.232z m0 58.0608c-30.72 0-55.6032 24.9088-55.6032 55.6288v105.0368h111.2064v-105.0368c0-30.72-24.8832-55.6288-55.6032-55.6288z" fill="#FB4D31" p-id="4914"></path>
3
- <path d="M542.08 270.208l45.2608-78.5408a24.5248 24.5248 0 0 0 0-25.6A26.4448 26.4448 0 0 0 564.1472 153.6a26.3424 26.3424 0 0 0-22.5792 13.44L512 217.6256l-29.5424-50.5344c-4.5824-8.192-13.184-13.312-22.5536-13.4912a26.4448 26.4448 0 0 0-23.2448 12.4928 24.5248 24.5248 0 0 0 0 25.6l45.2352 78.5152L156.928 832.768a24.4736 24.4736 0 0 0 0.3328 25.088c4.8384 7.8336 13.3888 12.544 22.5792 12.5184h664.3456c9.3184 0 17.92-4.7616 22.6304-12.4672a24.4736 24.4736 0 0 0 0.3072-25.088l-325.0176-562.688v0.0512zM619.52 816.64h-33.3568c-12.3648 0-9.6768 0.1024-65.0496 0H512c-55.3728 0.1024-24.704 0-61.7984 0H225.28L512 322.1248 798.72 816.64h-179.2z" fill="#000000" p-id="4915"></path>
4
- </svg>
1
+ <svg t="1709866807903" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4913" width="32" height="32">
2
+ <path d="M512 598.528a111.232 111.232 0 0 0-111.232 111.2064V870.4h222.464v-160.6656c0-61.44-49.792-111.232-111.232-111.232z m0 58.0608c-30.72 0-55.6032 24.9088-55.6032 55.6288v105.0368h111.2064v-105.0368c0-30.72-24.8832-55.6288-55.6032-55.6288z" fill="#FB4D31" p-id="4914"></path>
3
+ <path d="M542.08 270.208l45.2608-78.5408a24.5248 24.5248 0 0 0 0-25.6A26.4448 26.4448 0 0 0 564.1472 153.6a26.3424 26.3424 0 0 0-22.5792 13.44L512 217.6256l-29.5424-50.5344c-4.5824-8.192-13.184-13.312-22.5536-13.4912a26.4448 26.4448 0 0 0-23.2448 12.4928 24.5248 24.5248 0 0 0 0 25.6l45.2352 78.5152L156.928 832.768a24.4736 24.4736 0 0 0 0.3328 25.088c4.8384 7.8336 13.3888 12.544 22.5792 12.5184h664.3456c9.3184 0 17.92-4.7616 22.6304-12.4672a24.4736 24.4736 0 0 0 0.3072-25.088l-325.0176-562.688v0.0512zM619.52 816.64h-33.3568c-12.3648 0-9.6768 0.1024-65.0496 0H512c-55.3728 0.1024-24.704 0-61.7984 0H225.28L512 322.1248 798.72 816.64h-179.2z" fill="#000000" p-id="4915"></path>
4
+ </svg>
@@ -1,4 +1,4 @@
1
- <svg width="683" height="683" viewBox="0 0 683 683" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M297.6 104.8C291.6 107.867 288.667 113.733 289.2 122.133C289.2 123.6 296.533 137.2 305.333 152.4L321.333 180L296.533 222.933C282.8 246.667 266 275.867 258.933 288C251.867 300.133 244.267 313.333 242 317.333C239.733 321.333 219.6 356.133 197.333 394.667C175.067 433.2 156 466.133 155.067 468C154 469.867 151.733 473.733 150 476.667C148.267 479.6 145.733 484.133 144.267 486.667C141.733 491.333 117.2 533.867 108.4 548.667C100 562.8 101.333 572.4 112.4 578.267C116.267 580.267 135.2 580.4 341.333 580.4C588.667 580.4 570.533 581.067 577.2 572.533C582.133 566.267 580.933 560.933 570.533 542.667C565.333 533.467 559.867 523.867 558.4 521.333C554.933 515.333 526.933 466.8 496.4 414C483.2 391.2 470.933 370 469.067 366.667C467.2 363.333 458.933 348.933 450.667 334.667C437.867 312.667 422.667 286.267 413.333 270C412 267.733 400.933 248.533 388.667 227.333C376.4 206 365.2 186.667 363.867 184.267L361.333 180L375.867 154.933C394.533 122.667 393.6 124.4 393.6 118.533C393.467 109.333 385.867 102.667 375.467 102.667C367.733 102.667 363.733 106.667 352.533 125.867C346.8 135.867 341.6 144 341.2 144C340.667 144 339.467 142.4 338.533 140.267C332.4 128.267 319.067 107.467 316.4 105.733C311.733 102.667 302.8 102.133 297.6 104.8ZM349.333 228.267C353.333 235.067 357.867 243.067 359.467 246C361.067 248.933 368.533 261.867 376 274.667C383.467 287.467 390.933 300.4 392.667 303.333C394.267 306.267 400 316.133 405.333 325.333C410.667 334.533 417.467 346.133 420.4 351.333C423.333 356.4 437.2 380.4 451.333 404.667C465.333 428.8 478.4 451.333 480.267 454.667C482.133 458 490.133 471.733 498 485.333C506 498.933 513.467 511.733 514.667 514C522.933 528.267 531.067 542.133 532 543.333C532.8 544.267 513.333 544.667 474.267 544.533L415.467 544.4L415.333 502.533C415.2 466.133 414.8 459.733 412.8 453.333C406.667 434.933 399.733 424.667 385.867 414.4C377.467 408.133 367.333 402.8 363.067 402.533C362.8 402.4 359.733 401.733 356.267 400.667C343.6 397.333 320.133 400.4 308 406.933C287.6 417.867 272.933 437.333 268.533 458.933C268 461.333 267.6 481.6 267.467 503.867V544.495L415.467 544.4L208.4 544.533C169.333 544.667 149.867 544.267 150.667 543.333C151.6 542.133 160.933 526.4 168.667 512.667C170.4 509.733 185.733 483.333 202.667 454C219.733 424.667 234.8 398.533 236.267 396C246.133 378.8 265.733 345.067 272.8 332.933C277.467 325.067 281.333 318.4 281.333 318.133C281.333 317.733 284.267 312.8 287.867 306.933C291.467 301.067 294.533 295.733 294.8 295.067C296.133 291.6 340.667 216 341.333 216C341.733 216 345.333 221.6 349.333 228.267Z" fill="black"/>
3
- <path d="M415.333 502.533L415.467 544.4L267.467 544.495V503.867C267.6 481.6 268 461.333 268.533 458.933C272.933 437.333 287.6 417.867 308 406.933C320.133 400.4 343.6 397.333 356.267 400.667C359.733 401.733 362.8 402.4 363.067 402.533C367.333 402.8 377.467 408.133 385.867 414.4C399.733 424.667 406.667 434.933 412.8 453.333C414.8 459.733 415.2 466.133 415.333 502.533Z" fill="#FB4D31"/>
4
- </svg>
1
+ <svg width="683" height="683" viewBox="0 0 683 683" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M297.6 104.8C291.6 107.867 288.667 113.733 289.2 122.133C289.2 123.6 296.533 137.2 305.333 152.4L321.333 180L296.533 222.933C282.8 246.667 266 275.867 258.933 288C251.867 300.133 244.267 313.333 242 317.333C239.733 321.333 219.6 356.133 197.333 394.667C175.067 433.2 156 466.133 155.067 468C154 469.867 151.733 473.733 150 476.667C148.267 479.6 145.733 484.133 144.267 486.667C141.733 491.333 117.2 533.867 108.4 548.667C100 562.8 101.333 572.4 112.4 578.267C116.267 580.267 135.2 580.4 341.333 580.4C588.667 580.4 570.533 581.067 577.2 572.533C582.133 566.267 580.933 560.933 570.533 542.667C565.333 533.467 559.867 523.867 558.4 521.333C554.933 515.333 526.933 466.8 496.4 414C483.2 391.2 470.933 370 469.067 366.667C467.2 363.333 458.933 348.933 450.667 334.667C437.867 312.667 422.667 286.267 413.333 270C412 267.733 400.933 248.533 388.667 227.333C376.4 206 365.2 186.667 363.867 184.267L361.333 180L375.867 154.933C394.533 122.667 393.6 124.4 393.6 118.533C393.467 109.333 385.867 102.667 375.467 102.667C367.733 102.667 363.733 106.667 352.533 125.867C346.8 135.867 341.6 144 341.2 144C340.667 144 339.467 142.4 338.533 140.267C332.4 128.267 319.067 107.467 316.4 105.733C311.733 102.667 302.8 102.133 297.6 104.8ZM349.333 228.267C353.333 235.067 357.867 243.067 359.467 246C361.067 248.933 368.533 261.867 376 274.667C383.467 287.467 390.933 300.4 392.667 303.333C394.267 306.267 400 316.133 405.333 325.333C410.667 334.533 417.467 346.133 420.4 351.333C423.333 356.4 437.2 380.4 451.333 404.667C465.333 428.8 478.4 451.333 480.267 454.667C482.133 458 490.133 471.733 498 485.333C506 498.933 513.467 511.733 514.667 514C522.933 528.267 531.067 542.133 532 543.333C532.8 544.267 513.333 544.667 474.267 544.533L415.467 544.4L415.333 502.533C415.2 466.133 414.8 459.733 412.8 453.333C406.667 434.933 399.733 424.667 385.867 414.4C377.467 408.133 367.333 402.8 363.067 402.533C362.8 402.4 359.733 401.733 356.267 400.667C343.6 397.333 320.133 400.4 308 406.933C287.6 417.867 272.933 437.333 268.533 458.933C268 461.333 267.6 481.6 267.467 503.867V544.495L415.467 544.4L208.4 544.533C169.333 544.667 149.867 544.267 150.667 543.333C151.6 542.133 160.933 526.4 168.667 512.667C170.4 509.733 185.733 483.333 202.667 454C219.733 424.667 234.8 398.533 236.267 396C246.133 378.8 265.733 345.067 272.8 332.933C277.467 325.067 281.333 318.4 281.333 318.133C281.333 317.733 284.267 312.8 287.867 306.933C291.467 301.067 294.533 295.733 294.8 295.067C296.133 291.6 340.667 216 341.333 216C341.733 216 345.333 221.6 349.333 228.267Z" fill="black"/>
3
+ <path d="M415.333 502.533L415.467 544.4L267.467 544.495V503.867C267.6 481.6 268 461.333 268.533 458.933C272.933 437.333 287.6 417.867 308 406.933C320.133 400.4 343.6 397.333 356.267 400.667C359.733 401.733 362.8 402.4 363.067 402.533C367.333 402.8 377.467 408.133 385.867 414.4C399.733 424.667 406.667 434.933 412.8 453.333C414.8 459.733 415.2 466.133 415.333 502.533Z" fill="#FB4D31"/>
4
+ </svg>
@@ -1,19 +1,19 @@
1
- import fs from 'node:fs'
2
-
3
- // import process from 'node:process'
4
-
5
- const msg = fs.readFileSync('.git/COMMIT_EDITMSG', 'utf-8').trim()
6
-
7
- const commitRE = /^(?:revert: )?(?:feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(?:\(.+\))?: .{1,50}/
8
- // const mergeRe = /^(Merge pull request|Merge branch)/
9
-
10
- if (!commitRE.test(msg)) {
11
- // if (!mergeRe.test(msg)) {
12
- // console.log('git commit unpass')
13
- // console.error('git commit error, needs title(scope): desc')
14
- // process.exit(1)
15
- // }
16
- }
17
- else {
18
- console.log('git commit pass')
19
- }
1
+ import fs from 'node:fs'
2
+
3
+ // import process from 'node:process'
4
+
5
+ const msg = fs.readFileSync('.git/COMMIT_EDITMSG', 'utf-8').trim()
6
+
7
+ const commitRE = /^(?:revert: )?(?:feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(?:\(.+\))?: .{1,50}/
8
+ // const mergeRe = /^(Merge pull request|Merge branch)/
9
+
10
+ if (!commitRE.test(msg)) {
11
+ // if (!mergeRe.test(msg)) {
12
+ // console.log('git commit unpass')
13
+ // console.error('git commit error, needs title(scope): desc')
14
+ // process.exit(1)
15
+ // }
16
+ }
17
+ else {
18
+ console.log('git commit pass')
19
+ }
package/src/App.vue CHANGED
@@ -1,79 +1,79 @@
1
- <script setup lang="ts">
2
- import type { ConfigProviderThemeVars } from 'vant'
3
- import NavBar from '@af-mobile-client-vue3/components/core/NavBar/index.vue'
4
- import Tabbar from '@af-mobile-client-vue3/components/core/Tabbar/index.vue'
5
- import { isDark, preferredDark } from '@af-mobile-client-vue3/composables/dark'
6
- import useRouteCacheStore from '@af-mobile-client-vue3/stores/modules/routeCache'
7
- import { useHead } from '@unhead/vue'
8
- import {
9
- ConfigProvider as VanConfigProvider,
10
- } from 'vant/es'
11
- import { computed, reactive } from 'vue'
12
- import { appDescription, appName } from './constants'
13
-
14
- useHead({
15
- title: appName,
16
- meta: [
17
- {
18
- name: 'description',
19
- content: appDescription,
20
- },
21
- {
22
- name: 'theme-color',
23
- content: () => isDark.value ? '#00aba9' : '#ffffff',
24
- },
25
- ],
26
- link: [
27
- {
28
- rel: 'icon',
29
- type: 'image/svg+xml',
30
- href: () => preferredDark.value ? '/favicon-dark.svg' : '/favicon.svg',
31
- },
32
- ],
33
- })
34
-
35
- const routeCacheStore = useRouteCacheStore()
36
-
37
- const keepAliveRouteNames = computed(() => {
38
- return routeCacheStore.routeCaches as string[]
39
- })
40
-
41
- const mode = computed(() => {
42
- return isDark.value ? 'dark' : 'light'
43
- })
44
-
45
- const themeVars: ConfigProviderThemeVars = reactive({
46
- baseFont: 'PingFangSC-Regular-woff2, serif',
47
- })
48
- </script>
49
-
50
- <template>
51
- <VanConfigProvider :theme="mode" :theme-vars="themeVars" theme-vars-scope="global">
52
- <NavBar />
53
- <router-view v-slot="{ Component }">
54
- <section class="app-wrapper">
55
- <keep-alive :include="keepAliveRouteNames">
56
- <component :is="Component" :key="$route.fullPath" />
57
- </keep-alive>
58
- </section>
59
- </router-view>
60
- <Tabbar />
61
- </VanConfigProvider>
62
- </template>
63
-
64
- <style>
65
- @import './font-style/font.css';
66
- input[type='password']::-ms-reveal {
67
- display: none;
68
- }
69
- input[type='password']::-ms-clear {
70
- display: none;
71
- }
72
- </style>
73
-
74
- <style scoped>
75
- .app-wrapper {
76
- width: 100%;
77
- position: relative;
78
- }
79
- </style>
1
+ <script setup lang="ts">
2
+ import type { ConfigProviderThemeVars } from 'vant'
3
+ import NavBar from '@af-mobile-client-vue3/components/core/NavBar/index.vue'
4
+ import Tabbar from '@af-mobile-client-vue3/components/core/Tabbar/index.vue'
5
+ import { isDark, preferredDark } from '@af-mobile-client-vue3/composables/dark'
6
+ import useRouteCacheStore from '@af-mobile-client-vue3/stores/modules/routeCache'
7
+ import { useHead } from '@unhead/vue'
8
+ import {
9
+ ConfigProvider as VanConfigProvider,
10
+ } from 'vant/es'
11
+ import { computed, reactive } from 'vue'
12
+ import { appDescription, appName } from './constants'
13
+
14
+ useHead({
15
+ title: appName,
16
+ meta: [
17
+ {
18
+ name: 'description',
19
+ content: appDescription,
20
+ },
21
+ {
22
+ name: 'theme-color',
23
+ content: () => isDark.value ? '#00aba9' : '#ffffff',
24
+ },
25
+ ],
26
+ link: [
27
+ {
28
+ rel: 'icon',
29
+ type: 'image/svg+xml',
30
+ href: () => preferredDark.value ? '/favicon-dark.svg' : '/favicon.svg',
31
+ },
32
+ ],
33
+ })
34
+
35
+ const routeCacheStore = useRouteCacheStore()
36
+
37
+ const keepAliveRouteNames = computed(() => {
38
+ return routeCacheStore.routeCaches as string[]
39
+ })
40
+
41
+ const mode = computed(() => {
42
+ return isDark.value ? 'dark' : 'light'
43
+ })
44
+
45
+ const themeVars: ConfigProviderThemeVars = reactive({
46
+ baseFont: 'PingFangSC-Regular-woff2, serif',
47
+ })
48
+ </script>
49
+
50
+ <template>
51
+ <VanConfigProvider :theme="mode" :theme-vars="themeVars" theme-vars-scope="global">
52
+ <NavBar />
53
+ <router-view v-slot="{ Component }">
54
+ <section class="app-wrapper">
55
+ <keep-alive :include="keepAliveRouteNames">
56
+ <component :is="Component" :key="$route.fullPath" />
57
+ </keep-alive>
58
+ </section>
59
+ </router-view>
60
+ <Tabbar />
61
+ </VanConfigProvider>
62
+ </template>
63
+
64
+ <style>
65
+ @import './font-style/font.css';
66
+ input[type='password']::-ms-reveal {
67
+ display: none;
68
+ }
69
+ input[type='password']::-ms-clear {
70
+ display: none;
71
+ }
72
+ </style>
73
+
74
+ <style scoped>
75
+ .app-wrapper {
76
+ width: 100%;
77
+ position: relative;
78
+ }
79
+ </style>
@@ -1,30 +1,30 @@
1
- import { http } from '@af-mobile-client-vue3/utils/http'
2
-
3
- interface ListResult {
4
- code: number
5
- message: string
6
- list: Array<any>
7
- }
8
-
9
- export function getListApi(params?: object): Promise<ListResult> {
10
- return http.request({
11
- url: '/list/get',
12
- method: 'get',
13
- params,
14
- })
15
- }
16
-
17
- export function getListApiError(data?: object): Promise<ListResult> {
18
- return http.request({
19
- url: '/list/error',
20
- method: 'post',
21
- data,
22
- })
23
- }
24
-
25
- export async function queryProse(): Promise<any> {
26
- return http.request({
27
- url: '/project/prose',
28
- method: 'post',
29
- })
30
- }
1
+ import { http } from '@af-mobile-client-vue3/utils/http'
2
+
3
+ interface ListResult {
4
+ code: number
5
+ message: string
6
+ list: Array<any>
7
+ }
8
+
9
+ export function getListApi(params?: object): Promise<ListResult> {
10
+ return http.request({
11
+ url: '/list/get',
12
+ method: 'get',
13
+ params,
14
+ })
15
+ }
16
+
17
+ export function getListApiError(data?: object): Promise<ListResult> {
18
+ return http.request({
19
+ url: '/list/error',
20
+ method: 'post',
21
+ data,
22
+ })
23
+ }
24
+
25
+ export async function queryProse(): Promise<any> {
26
+ return http.request({
27
+ url: '/project/prose',
28
+ method: 'post',
29
+ })
30
+ }
@@ -1,40 +1,40 @@
1
- import { loginApi } from '@af-mobile-client-vue3/services/api/Login'
2
-
3
- import { get, post } from '@af-mobile-client-vue3/services/restTools'
4
- import { http } from '@af-mobile-client-vue3/utils/http'
5
-
6
- export interface BasicResponseModel<T = any> {
7
- code: number
8
- msg: string
9
- data: T
10
- }
11
-
12
- export function login(data: any) {
13
- return post(
14
- loginApi.Login,
15
- data,
16
- )
17
- }
18
-
19
- export function OALogin(data: any) {
20
- return get(`/af-system/user/${data.username}/${data.password}/智慧OA`)
21
- }
22
-
23
- /**
24
- * @description: 获取用户信息
25
- */
26
- export function getUserInfo() {
27
- return get(
28
- '/getUserInfo',
29
- )
30
- }
31
-
32
- /**
33
- * @description: 用户登出
34
- */
35
- export function doLogout() {
36
- return http.request({
37
- url: loginApi.Logout,
38
- method: 'DELETE',
39
- })
40
- }
1
+ import { loginApi } from '@af-mobile-client-vue3/services/api/Login'
2
+
3
+ import { get, post } from '@af-mobile-client-vue3/services/restTools'
4
+ import { http } from '@af-mobile-client-vue3/utils/http'
5
+
6
+ export interface BasicResponseModel<T = any> {
7
+ code: number
8
+ msg: string
9
+ data: T
10
+ }
11
+
12
+ export function login(data: any) {
13
+ return post(
14
+ loginApi.Login,
15
+ data,
16
+ )
17
+ }
18
+
19
+ export function OALogin(data: any) {
20
+ return get(`/af-system/user/${data.username}/${data.password}/智慧OA`)
21
+ }
22
+
23
+ /**
24
+ * @description: 获取用户信息
25
+ */
26
+ export function getUserInfo() {
27
+ return get(
28
+ '/getUserInfo',
29
+ )
30
+ }
31
+
32
+ /**
33
+ * @description: 用户登出
34
+ */
35
+ export function doLogout() {
36
+ return http.request({
37
+ url: loginApi.Logout,
38
+ method: 'DELETE',
39
+ })
40
+ }
@@ -1,20 +1,20 @@
1
- <svg width="444.233154" height="203.122437" viewBox="0 0 444.233 203.122" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
- <desc>
3
- Created with Pixso.
4
- </desc>
5
- <defs>
6
- <filter id="filter_37_876_dd" x="0.529297" y="0.516296" width="443.178467" height="202.089844" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
7
- <feFlood flood-opacity="0" result="BackgroundImageFix"/>
8
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
9
- <feOffset dx="0" dy="-28"/>
10
- <feGaussianBlur stdDeviation="11.3333"/>
11
- <feComposite in2="hardAlpha" operator="out" k2="-1" k3="1"/>
12
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.039 0"/>
13
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect_dropShadow_1"/>
14
- <feBlend mode="normal" in="SourceGraphic" in2="effect_dropShadow_1" result="shape"/>
15
- </filter>
16
- </defs>
17
- <g filter="url(#filter_37_876_dd)">
18
- <path id="Path 2" d="M34.6331 62.5163C159.633 62.5163 156.204 115.98 222.133 115.98C288.062 115.98 290.281 62.5163 409.633 62.5163C409.801 62.5163 409.633 196.606 409.633 196.606L34.6331 196.606C34.6331 196.606 34.3997 62.5163 34.6331 62.5163Z" fill-rule="evenodd" fill="#FFFFFF"/>
19
- </g>
20
- </svg>
1
+ <svg width="444.233154" height="203.122437" viewBox="0 0 444.233 203.122" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>
3
+ Created with Pixso.
4
+ </desc>
5
+ <defs>
6
+ <filter id="filter_37_876_dd" x="0.529297" y="0.516296" width="443.178467" height="202.089844" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
7
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
8
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
9
+ <feOffset dx="0" dy="-28"/>
10
+ <feGaussianBlur stdDeviation="11.3333"/>
11
+ <feComposite in2="hardAlpha" operator="out" k2="-1" k3="1"/>
12
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.039 0"/>
13
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect_dropShadow_1"/>
14
+ <feBlend mode="normal" in="SourceGraphic" in2="effect_dropShadow_1" result="shape"/>
15
+ </filter>
16
+ </defs>
17
+ <g filter="url(#filter_37_876_dd)">
18
+ <path id="Path 2" d="M34.6331 62.5163C159.633 62.5163 156.204 115.98 222.133 115.98C288.062 115.98 290.281 62.5163 409.633 62.5163C409.801 62.5163 409.633 196.606 409.633 196.606L34.6331 196.606C34.6331 196.606 34.3997 62.5163 34.6331 62.5163Z" fill-rule="evenodd" fill="#FFFFFF"/>
19
+ </g>
20
+ </svg>
@@ -1,20 +1,20 @@
1
- <svg width="164.000000" height="164.000000" viewBox="0 0 164 164" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
- <desc>
3
- Created with Pixso.
4
- </desc>
5
- <defs>
6
- <filter id="filter_68_88_dd" x="0.000000" y="0.000000" width="164.000000" height="164.000000" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
7
- <feFlood flood-opacity="0" result="BackgroundImageFix"/>
8
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
9
- <feOffset dx="0" dy="16"/>
10
- <feGaussianBlur stdDeviation="10.6667"/>
11
- <feComposite in2="hardAlpha" operator="out" k2="-1" k3="1"/>
12
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09 0"/>
13
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect_dropShadow_1"/>
14
- <feBlend mode="normal" in="SourceGraphic" in2="effect_dropShadow_1" result="shape"/>
15
- </filter>
16
- </defs>
17
- <g filter="url(#filter_68_88_dd)">
18
- <rect id="LOGO背景" x="32.000000" y="16.000000" rx="23.039997" width="100.000000" height="100.000000" fill="#FFFFFF"/>
19
- </g>
20
- </svg>
1
+ <svg width="164.000000" height="164.000000" viewBox="0 0 164 164" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <desc>
3
+ Created with Pixso.
4
+ </desc>
5
+ <defs>
6
+ <filter id="filter_68_88_dd" x="0.000000" y="0.000000" width="164.000000" height="164.000000" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
7
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
8
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
9
+ <feOffset dx="0" dy="16"/>
10
+ <feGaussianBlur stdDeviation="10.6667"/>
11
+ <feComposite in2="hardAlpha" operator="out" k2="-1" k3="1"/>
12
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.09 0"/>
13
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect_dropShadow_1"/>
14
+ <feBlend mode="normal" in="SourceGraphic" in2="effect_dropShadow_1" result="shape"/>
15
+ </filter>
16
+ </defs>
17
+ <g filter="url(#filter_68_88_dd)">
18
+ <rect id="LOGO背景" x="32.000000" y="16.000000" rx="23.039997" width="100.000000" height="100.000000" fill="#FFFFFF"/>
19
+ </g>
20
+ </svg>
package/src/bootstrap.ts CHANGED
@@ -1,26 +1,26 @@
1
- import type { Router } from 'vue-router'
2
- import guards from '@af-mobile-client-vue3/router/guards'
3
- import { useSettingStore } from '@af-mobile-client-vue3/stores/modules/setting'
4
- import { loadGuards, loadRoutes } from '@af-mobile-client-vue3/utils/routerUtil'
5
-
6
- type GuardFunction = (to: any, from: any, next?: any) => void
7
- interface Guards {
8
- beforeEach?: GuardFunction[]
9
- afterEach?: GuardFunction[]
10
- }
11
-
12
- async function bootstrap(router: Router, customGuard: Guards = {}) {
13
- // 加载路由
14
- loadRoutes()
15
- // 加载路由守卫
16
- loadGuards({ ...guards, ...customGuard }, router)
17
- // 初始化时先加载webMobileConfig,防止登录页拿不到配置信息
18
- try {
19
- await useSettingStore().init()
20
- }
21
- catch (e) {
22
- console.error(e)
23
- }
24
- }
25
-
26
- export default bootstrap
1
+ import type { Router } from 'vue-router'
2
+ import guards from '@af-mobile-client-vue3/router/guards'
3
+ import { useSettingStore } from '@af-mobile-client-vue3/stores/modules/setting'
4
+ import { loadGuards, loadRoutes } from '@af-mobile-client-vue3/utils/routerUtil'
5
+
6
+ type GuardFunction = (to: any, from: any, next?: any) => void
7
+ interface Guards {
8
+ beforeEach?: GuardFunction[]
9
+ afterEach?: GuardFunction[]
10
+ }
11
+
12
+ async function bootstrap(router: Router, customGuard: Guards = {}) {
13
+ // 加载路由
14
+ loadRoutes()
15
+ // 加载路由守卫
16
+ loadGuards({ ...guards, ...customGuard }, router)
17
+ // 初始化时先加载webMobileConfig,防止登录页拿不到配置信息
18
+ try {
19
+ await useSettingStore().init()
20
+ }
21
+ catch (e) {
22
+ console.error(e)
23
+ }
24
+ }
25
+
26
+ export default bootstrap
@@ -1,52 +1,52 @@
1
- <script setup>
2
- </script>
3
-
4
- <template>
5
- <div class="main">
6
- <div class="bird-container">
7
- <div class="bird i-svg:bird" />
8
- </div>
9
- <div class="loading-text">
10
- 加载中,请稍候...
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <style scoped>
16
- .main {
17
- display: flex;
18
- flex-direction: column;
19
- justify-content: center;
20
- align-items: center;
21
- height: 100vh;
22
- }
23
-
24
- .bird-container {
25
- width: 60px;
26
- height: 60px;
27
- animation: fade 3s ease-out infinite;
28
- }
29
-
30
- .bird {
31
- width: 60px;
32
- height: 60px;
33
- }
34
-
35
- .loading-text {
36
- margin-top: 20px;
37
- font-size: 14px;
38
- color: #333;
39
- }
40
-
41
- @keyframes fade {
42
- 0% {
43
- opacity: 1;
44
- }
45
- 50% {
46
- opacity: 0.3;
47
- }
48
- 100% {
49
- opacity: 1;
50
- }
51
- }
52
- </style>
1
+ <script setup>
2
+ </script>
3
+
4
+ <template>
5
+ <div class="main">
6
+ <div class="bird-container">
7
+ <div class="bird i-svg:bird" />
8
+ </div>
9
+ <div class="loading-text">
10
+ 加载中,请稍候...
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <style scoped>
16
+ .main {
17
+ display: flex;
18
+ flex-direction: column;
19
+ justify-content: center;
20
+ align-items: center;
21
+ height: 100vh;
22
+ }
23
+
24
+ .bird-container {
25
+ width: 60px;
26
+ height: 60px;
27
+ animation: fade 3s ease-out infinite;
28
+ }
29
+
30
+ .bird {
31
+ width: 60px;
32
+ height: 60px;
33
+ }
34
+
35
+ .loading-text {
36
+ margin-top: 20px;
37
+ font-size: 14px;
38
+ color: #333;
39
+ }
40
+
41
+ @keyframes fade {
42
+ 0% {
43
+ opacity: 1;
44
+ }
45
+ 50% {
46
+ opacity: 0.3;
47
+ }
48
+ 100% {
49
+ opacity: 1;
50
+ }
51
+ }
52
+ </style>