af-mobile-client-vue3 1.3.12 → 1.3.14

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 (271) hide show
  1. package/.claude/settings.local.json +10 -0
  2. package/.cursorrules +60 -60
  3. package/.editorconfig +9 -9
  4. package/.env +10 -10
  5. package/.env.development +1 -1
  6. package/.env.production +1 -1
  7. package/.node-version +1 -1
  8. package/.vscode/extensions.json +12 -12
  9. package/.vscode/settings.json +66 -66
  10. package/CLAUDE.md +189 -184
  11. package/README.md +182 -181
  12. package/af-example-mobile-vue-web.iml +9 -9
  13. package/build/vite/index.ts +98 -98
  14. package/build/vite/optimize.ts +34 -34
  15. package/build/vite/vconsole.ts +47 -47
  16. package/commitlint.config.ts +32 -32
  17. package/compress.js +36 -36
  18. package/eslint.config.ts +30 -30
  19. package/index.html +23 -23
  20. package/mock/data.ts +20 -20
  21. package/mock/index.ts +7 -7
  22. package/mock/modules/prose.mock.ts +13 -13
  23. package/mock/modules/user.mock.ts +152 -152
  24. package/mock/util.ts +19 -19
  25. package/netlify.toml +12 -12
  26. package/package.json +114 -114
  27. package/postcss.config.ts +27 -27
  28. package/public/favicon.svg +4 -4
  29. package/public/safari-pinned-tab.svg +4 -4
  30. package/scripts/verifyCommit.js +19 -19
  31. package/src/App.vue +79 -79
  32. package/src/api/mock/index.ts +30 -30
  33. package/src/api/user/index.ts +40 -40
  34. package/src/assets/img/user/login/background-shadow-1.svg +20 -20
  35. package/src/assets/img/user/login/logo-background.svg +20 -20
  36. package/src/bootstrap.ts +26 -26
  37. package/src/components/core/BeautifulLoading/index.vue +52 -52
  38. package/src/components/core/ImageUploader/index.vue +244 -244
  39. package/src/components/core/NavBar/index.vue +53 -53
  40. package/src/components/core/Tabbar/index.vue +32 -32
  41. package/src/components/core/Uploader/index.vue +124 -124
  42. package/src/components/core/XGridDropOption/index.vue +154 -156
  43. package/src/components/core/XMultiSelect/index.vue +183 -183
  44. package/src/components/core/XSelect/index.vue +149 -149
  45. package/src/components/data/InfoDisplay/index.vue +132 -0
  46. package/src/components/data/UserDetail/api.ts +24 -0
  47. package/src/components/data/UserDetail/index.vue +620 -0
  48. package/src/components/data/UserDetail/recordEntries.ts +159 -0
  49. package/src/components/data/UserDetail/types.ts +26 -0
  50. package/src/components/data/XBadge/index.vue +82 -82
  51. package/src/components/data/XCellDetail/index.vue +105 -105
  52. package/src/components/data/XCellList/XCellList.md +313 -313
  53. package/src/components/data/XCellList/index.vue +1075 -1075
  54. package/src/components/data/XCellListFilter/QrScanner/index.vue +207 -207
  55. package/src/components/data/XCellListFilter/QrScanner/startScanAnimation.ts +53 -53
  56. package/src/components/data/XCellListFilter/VpnRecognition/index.vue +119 -119
  57. package/src/components/data/XCellListFilter/index.vue +705 -705
  58. package/src/components/data/XForm/index.vue +659 -659
  59. package/src/components/data/XFormGroup/doc/DeviceForm.vue +122 -122
  60. package/src/components/data/XFormGroup/doc/FormGroupDemo.vue +56 -56
  61. package/src/components/data/XFormGroup/doc/README.md +286 -273
  62. package/src/components/data/XFormGroup/doc/UserForm.vue +102 -102
  63. package/src/components/data/XFormGroup/index.vue +240 -240
  64. package/src/components/data/XFormItem/index.vue +1310 -1310
  65. package/src/components/data/XOlMap/README.md +227 -227
  66. package/src/components/data/XOlMap/XLocationPicker/index.vue +226 -225
  67. package/src/components/data/XOlMap/index.vue +1490 -1490
  68. package/src/components/data/XOlMap/types.ts +149 -149
  69. package/src/components/data/XOlMap/utils/wgs84ToGcj02.js +154 -154
  70. package/src/components/data/XReportForm/DateTimeSecondsPicker.vue +208 -208
  71. package/src/components/data/XReportForm/XReportFormJsonRender.vue +220 -220
  72. package/src/components/data/XReportForm/index.vue +1393 -1393
  73. package/src/components/data/XReportGrid/XAddReport/XAddReport.vue +198 -198
  74. package/src/components/data/XReportGrid/XAddReport/index.js +3 -3
  75. package/src/components/data/XReportGrid/XAddReport/index.md +53 -52
  76. package/src/components/data/XReportGrid/XAddReport/index.ts +10 -10
  77. package/src/components/data/XReportGrid/XReport.vue +960 -960
  78. package/src/components/data/XReportGrid/XReportDemo.vue +33 -33
  79. package/src/components/data/XReportGrid/XReportDesign.vue +597 -597
  80. package/src/components/data/XReportGrid/XReportDrawer/XReportDrawer.vue +148 -148
  81. package/src/components/data/XReportGrid/XReportDrawer/index.js +3 -3
  82. package/src/components/data/XReportGrid/XReportDrawer/index.ts +10 -10
  83. package/src/components/data/XReportGrid/XReportJsonRender.vue +399 -399
  84. package/src/components/data/XReportGrid/XReportTrGroup.vue +592 -592
  85. package/src/components/data/XReportGrid/index.md +46 -42
  86. package/src/components/data/XReportGrid/print.js +184 -184
  87. package/src/components/data/XSignature/index.vue +284 -285
  88. package/src/components/data/XTag/index.vue +10 -10
  89. package/src/components/layout/NormalDataLayout/index.vue +69 -69
  90. package/src/components/layout/TabBarLayout/index.vue +40 -40
  91. package/src/composables/dark.ts +5 -5
  92. package/src/config/routes.ts +9 -9
  93. package/src/constants/index.ts +2 -2
  94. package/src/enums/requestEnum.ts +25 -25
  95. package/src/expression/ExpressionRunner.ts +28 -28
  96. package/src/expression/TestExpression.ts +510 -510
  97. package/src/expression/core/Delegate.ts +116 -116
  98. package/src/expression/core/Expression.ts +1359 -1359
  99. package/src/expression/core/Program.ts +985 -985
  100. package/src/expression/core/Token.ts +29 -29
  101. package/src/expression/enums/ExpressionType.ts +81 -81
  102. package/src/expression/enums/TokenType.ts +11 -11
  103. package/src/expression/exception/BreakWayException.ts +2 -2
  104. package/src/expression/exception/ContinueWayException.ts +2 -2
  105. package/src/expression/exception/ExpressionException.ts +29 -29
  106. package/src/expression/exception/ReturnWayException.ts +14 -14
  107. package/src/expression/exception/ServiceException.ts +22 -22
  108. package/src/expression/instances/JSONArray.ts +52 -52
  109. package/src/expression/instances/JSONObject.ts +118 -118
  110. package/src/expression/instances/LogicConsole.ts +31 -31
  111. package/src/font-style/font.css +4 -4
  112. package/src/hooks/useBoolean.ts +26 -0
  113. package/src/hooks/useCommon.ts +9 -9
  114. package/src/hooks/useLoading.ts +16 -0
  115. package/src/hooks/useLogin.ts +97 -97
  116. package/src/icons/svg/check-in.svg +32 -32
  117. package/src/icons/svg/dark.svg +4 -4
  118. package/src/icons/svg/github.svg +4 -4
  119. package/src/icons/svg/light.svg +4 -4
  120. package/src/icons/svg/link.svg +4 -4
  121. package/src/icons/svgo.yml +22 -22
  122. package/src/layout/GridView/index.vue +16 -16
  123. package/src/layout/PageLayout.vue +9 -9
  124. package/src/layout/SingleLayout.vue +9 -9
  125. package/src/locales/en-US.json +128 -128
  126. package/src/locales/zh-CN.json +128 -128
  127. package/src/logic/LogicRunner.ts +67 -67
  128. package/src/logic/TestLogic.ts +13 -13
  129. package/src/logic/plugins/common/DateTools.ts +35 -35
  130. package/src/logic/plugins/common/VueTools.ts +30 -30
  131. package/src/logic/plugins/index.ts +7 -7
  132. package/src/main.ts +44 -44
  133. package/src/plugins/AppData.ts +38 -38
  134. package/src/plugins/GetLoginInfoService.ts +10 -10
  135. package/src/plugins/collectIcons.ts +10 -0
  136. package/src/plugins/index.ts +11 -11
  137. package/src/router/README.md +8 -8
  138. package/src/router/guards.ts +59 -59
  139. package/src/router/index.ts +35 -35
  140. package/src/router/invoiceRoutes.ts +33 -33
  141. package/src/router/routes.ts +341 -177
  142. package/src/router/types.ts +7 -7
  143. package/src/services/api/Login.ts +6 -6
  144. package/src/services/api/common.ts +109 -109
  145. package/src/services/api/index.ts +7 -7
  146. package/src/services/api/manage.ts +8 -8
  147. package/src/services/api/search.ts +16 -16
  148. package/src/services/api/user.ts +17 -17
  149. package/src/services/restTools.ts +56 -56
  150. package/src/services/v3Api.ts +147 -147
  151. package/src/stores/index.ts +11 -11
  152. package/src/stores/modules/counter.ts +19 -19
  153. package/src/stores/modules/routeCache.ts +23 -23
  154. package/src/stores/modules/setting.ts +76 -76
  155. package/src/stores/modules/user.ts +235 -235
  156. package/src/stores/mutation-type.ts +7 -7
  157. package/src/styles/app.less +36 -36
  158. package/src/styles/login.less +109 -109
  159. package/src/styles/var.less +16 -16
  160. package/src/types/env.d.ts +16 -16
  161. package/src/types/settings.ts +1 -1
  162. package/src/types/vue-router.d.ts +9 -9
  163. package/src/utils/Storage.ts +124 -124
  164. package/src/utils/authority-utils.ts +84 -84
  165. package/src/utils/common.ts +41 -41
  166. package/src/utils/crypto.ts +39 -39
  167. package/src/utils/dataUtil.ts +42 -42
  168. package/src/utils/dictUtil.ts +52 -52
  169. package/src/utils/http/index.ts +199 -199
  170. package/src/utils/i18n.ts +72 -72
  171. package/src/utils/indexedDB.ts +195 -195
  172. package/src/utils/inline-px-to-vw.ts +28 -28
  173. package/src/utils/mobileUtil.ts +34 -34
  174. package/src/utils/progress.ts +19 -19
  175. package/src/utils/routerUtil.ts +271 -271
  176. package/src/utils/runEvalFunction.ts +13 -13
  177. package/src/utils/secureStorage.ts +71 -71
  178. package/src/utils/set-page-title.ts +5 -5
  179. package/src/utils/validate.ts +6 -6
  180. package/src/utils/wechatUtil.ts +9 -9
  181. package/src/views/chat/index.vue +153 -153
  182. package/src/views/common/LoadError.vue +63 -63
  183. package/src/views/common/NotFound.vue +67 -67
  184. package/src/views/component/EvaluateRecordView/index.vue +40 -40
  185. package/src/views/component/IconifyView/index.vue +504 -507
  186. package/src/views/component/UserDetailView/UserDetailPage.vue +77 -0
  187. package/src/views/component/UserDetailView/index.vue +234 -0
  188. package/src/views/component/XCellDetailView/index.vue +217 -217
  189. package/src/views/component/XCellListView/index.vue +108 -157
  190. package/src/views/component/XFormAppraiseView/index.vue +174 -174
  191. package/src/views/component/XFormGroupView/index.vue +78 -82
  192. package/src/views/component/XFormView/index.vue +27 -27
  193. package/src/views/component/XOlMapView/XLocationPicker/index.vue +118 -118
  194. package/src/views/component/XOlMapView/index.vue +434 -434
  195. package/src/views/component/XOlMapView/testData.ts +64 -64
  196. package/src/views/component/XReportFormIframeView/index.vue +47 -47
  197. package/src/views/component/XReportFormView/index.vue +13 -13
  198. package/src/views/component/XReportGridView/index.vue +17 -17
  199. package/src/views/component/XRequestView/index.vue +234 -234
  200. package/src/views/component/XSignatureView/index.vue +50 -50
  201. package/src/views/component/index.vue +181 -177
  202. package/src/views/component/menu.vue +117 -117
  203. package/src/views/component/notice.vue +46 -46
  204. package/src/views/component/topNav.vue +36 -36
  205. package/src/views/invoiceShow/index.vue +61 -61
  206. package/src/views/user/login/ForgetPasswordForm.vue +94 -94
  207. package/src/views/user/login/LoginForm.vue +346 -346
  208. package/src/views/user/login/LoginTitle.vue +76 -76
  209. package/src/views/user/login/LoginWave.vue +109 -109
  210. package/src/views/user/login/index.vue +22 -22
  211. package/src/views/user/my/comm/ModifyPassword.vue +346 -346
  212. package/src/views/user/my/index.vue +340 -340
  213. package/src/views/userRecords/AbnormalAlarmRecords.vue +21 -0
  214. package/src/views/userRecords/CardReplacementRecords.vue +21 -0
  215. package/src/views/userRecords/ChangeRecords.vue +19 -0
  216. package/src/views/userRecords/CommandViewRecords.vue +20 -0
  217. package/src/views/userRecords/GasCompensationRecords.vue +20 -0
  218. package/src/views/userRecords/InstrumentCollectionRecords.vue +21 -0
  219. package/src/views/userRecords/MeterRecords.vue +20 -0
  220. package/src/views/userRecords/OperateRecords.vue +51 -0
  221. package/src/views/userRecords/OtherChargeRecords.vue +19 -0
  222. package/src/views/userRecords/PaymentRecords.vue +28 -0
  223. package/src/views/userRecords/PriceAdjustmentRecords.vue +19 -0
  224. package/src/views/userRecords/ReplacementRecords.vue +19 -0
  225. package/src/views/userRecords/SafetyRecords.vue +19 -0
  226. package/src/views/userRecords/TransactionRecords.vue +21 -0
  227. package/src/views/userRecords/TransferRecords.vue +19 -0
  228. package/src/views/userRecords/operateRecordDetail/index.vue +316 -0
  229. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AddUserDetail.vue +124 -0
  230. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AdvanceDeliveryDetail.vue +88 -0
  231. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsCancelDetail.vue +205 -0
  232. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsDetail.vue +192 -0
  233. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankDkDetail.vue +192 -0
  234. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankPayDetail.vue +192 -0
  235. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BlacklistDetail.vue +153 -0
  236. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CancellationDetail.vue +101 -0
  237. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterCancelDetail.vue +127 -0
  238. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterDetail.vue +153 -0
  239. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardOverUserDetail.vue +153 -0
  240. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterCancelDetail.vue +166 -0
  241. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterDetail.vue +205 -0
  242. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/DisableManageDetail.vue +127 -0
  243. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/EnableManageDetail.vue +114 -0
  244. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FaZheChangeDetail.vue +124 -0
  245. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FeeDeductionDetail.vue +153 -0
  246. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/GasPriceChangeDetail.vue +126 -0
  247. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/InputtorChangeDetail.vue +126 -0
  248. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterCancelDetail.vue +114 -0
  249. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterDetail.vue +127 -0
  250. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotOpenDetail.vue +88 -0
  251. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineCardDetail.vue +101 -0
  252. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterCancelDetail.vue +218 -0
  253. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterDetail.vue +153 -0
  254. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OffGasAddGasDetail.vue +140 -0
  255. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeCancelDetail.vue +127 -0
  256. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeDetail.vue +114 -0
  257. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OverUserChangeDetail.vue +127 -0
  258. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReBillDetail.vue +127 -0
  259. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/RefundDetail.vue +114 -0
  260. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageCancelDetail.vue +127 -0
  261. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageDetail.vue +114 -0
  262. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/SaleCardGasDetail.vue +140 -0
  263. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageCancelDetail.vue +152 -0
  264. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageDetail.vue +178 -0
  265. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/UserChangeDetail.vue +123 -0
  266. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/WechatPayDetail.vue +192 -0
  267. package/src/views/userRecords/types.ts +66 -0
  268. package/tsconfig.json +39 -39
  269. package/uno.config.ts +82 -78
  270. package/vite.config.ts +118 -118
  271. package/src/views/component/XFormGroupView/xformgroup222.vue +0 -97
@@ -1,177 +1,181 @@
1
- <script setup lang="ts">
2
- import { isDark, toggleDark } from '@af-mobile-client-vue3/composables/dark'
3
- import useUserStore from '@af-mobile-client-vue3/stores/modules/user'
4
- import { indexedDB } from '@af-mobile-client-vue3/utils/indexedDB'
5
- import {
6
- showToast,
7
- Cell as VanCell,
8
- List as VanList,
9
- Switch as VanSwitch,
10
- } from 'vant'
11
- import { computed, ref } from 'vue'
12
-
13
- const checked = computed({
14
- get: () => isDark.value,
15
- set: () => toggleDark(),
16
- })
17
-
18
- // 列表详情页的路由 '/Component/XCellDetailView/:id'
19
- const list = ref([
20
- {
21
- name: 'XCellList 单元格列表',
22
- to: '/Component/XCellListView',
23
- },
24
- {
25
- name: 'XReportForm 报表表单',
26
- to: '/Component/XReportFormView',
27
- },
28
- {
29
- name: 'XCellDetail 列表详情页',
30
- to: '/Component/XCellDetailView/0',
31
- },
32
- {
33
- name: 'XForm 表单',
34
- to: '/Component/XFormView/1/debug?configName=hiddenTroubleFollowForm&serviceName=af-linepatrol&mode=新增',
35
- },
36
- {
37
- name: 'XFormGroup 表单组',
38
- to: '/Component/XFormGroupView',
39
- },
40
- {
41
- name: '操作卡手机端',
42
- to: '/Component/XReportFormView',
43
- },
44
- {
45
- name: '评论记录列表',
46
- to: '/Component/EvaluateRecordView',
47
- },
48
- {
49
- name: 'XSignature 签名组件',
50
- to: '/Component/XSignatureView',
51
- },
52
- {
53
- name: 'XReportGridView 栅格组件',
54
- to: '/Component/XReportGridView',
55
- },
56
- {
57
- name: 'XFormAppraise 表单',
58
- to: '/Component/XFormAppraiseView/2/debug',
59
- },
60
- {
61
- name: 'XOlMap 地图组件',
62
- to: '/Component/XOlMapView',
63
- },
64
- {
65
- name: 'XOlMap 地址选择器',
66
- to: '/Component/XOlMapView/XLocationPicker',
67
- },
68
- {
69
- name: '请求示例',
70
- to: '/Component/XRequestView',
71
- },
72
- {
73
- name: 'Iconify 图标使用示例',
74
- to: '/Component/IconifyView',
75
- },
76
- ])
77
-
78
- function cleanConfigCache() {
79
- // 清除indexedDB缓存
80
- indexedDB.clear()
81
- showToast({
82
- message: '操作成功',
83
- })
84
- }
85
-
86
- async function logout() {
87
- await useUserStore().logout()
88
- }
89
- </script>
90
-
91
- <template>
92
- <main class="home_main">
93
- <h1 class="home_title">
94
- <img src="@af-mobile-client-vue3/assets/img/component/logo.png" alt="logo">
95
- <span>Vue3-Client</span>
96
- </h1>
97
- <span class="home_desc">基于Vant4的移动端组件库扩展</span>
98
- <div class="home_component_main">
99
- <span class="home_desc">设置项</span>
100
- <VanCell center title="暗黑模式">
101
- <template #right-icon>
102
- <VanSwitch
103
- v-model="checked"
104
- size="20px"
105
- aria-label="on/off Dark Mode"
106
- />
107
- </template>
108
- </VanCell>
109
- <span class="home_desc">配置化组件</span>
110
- <VanList>
111
- <VanCell v-for="item in list" :key="item.name" :title="item.name" is-link :to="item.to" />
112
- </VanList>
113
- <span class="home_desc">开发者工具</span>
114
- <VanList>
115
- <VanCell key="clean_config_cache" title="清除配置缓存" @click="cleanConfigCache" />
116
- <VanCell key="clean_config_cache" title="退出登录" @click="logout" />
117
- </VanList>
118
- </div>
119
- </main>
120
- </template>
121
-
122
- <style scoped lang="less">
123
- .van-theme-light {
124
- .home_main {
125
- .home_title {
126
- color: #323233;
127
- }
128
- .home_desc {
129
- color: #969799;
130
- }
131
- .home_component_main {
132
- .van-cell {
133
- color: #34495e;
134
- }
135
- }
136
- }
137
- }
138
- .home_main {
139
- padding: var(--base-interval-2);
140
- .home_title {
141
- display: flex;
142
- align-items: center;
143
- margin: 0 0 10px;
144
- font-size: 30px;
145
- font-weight: 400;
146
- img {
147
- display: inline-block;
148
- vertical-align: middle;
149
- width: 46px;
150
- height: 46px;
151
- }
152
- span {
153
- margin-left: 12px;
154
- }
155
- }
156
- .home_desc {
157
- padding-left: 16px;
158
- font-weight: 400;
159
- line-height: 1.6;
160
- margin: 0 0 40px;
161
- color: #969799;
162
- font-size: 14px;
163
- }
164
- .home_component_main {
165
- margin-top: 30px;
166
- .van-cell {
167
- margin: 10px 0;
168
- font-weight: 600;
169
- border-radius: 99px;
170
- :deep(.van-icon) {
171
- display: flex;
172
- align-items: center;
173
- }
174
- }
175
- }
176
- }
177
- </style>
1
+ <script setup lang="ts">
2
+ import { isDark, toggleDark } from '@af-mobile-client-vue3/composables/dark'
3
+ import useUserStore from '@af-mobile-client-vue3/stores/modules/user'
4
+ import { indexedDB } from '@af-mobile-client-vue3/utils/indexedDB'
5
+ import {
6
+ showToast,
7
+ Cell as VanCell,
8
+ List as VanList,
9
+ Switch as VanSwitch,
10
+ } from 'vant'
11
+ import { computed, ref } from 'vue'
12
+
13
+ const checked = computed({
14
+ get: () => isDark.value,
15
+ set: () => toggleDark(),
16
+ })
17
+
18
+ // 列表详情页的路由 '/Component/XCellDetailView/:id'
19
+ const list = ref([
20
+ {
21
+ name: 'XCellList 单元格列表',
22
+ to: '/Component/XCellListView',
23
+ },
24
+ {
25
+ name: 'XReportForm 报表表单',
26
+ to: '/Component/XReportFormView',
27
+ },
28
+ {
29
+ name: 'XCellDetail 列表详情页',
30
+ to: '/Component/XCellDetailView/0',
31
+ },
32
+ {
33
+ name: 'XForm 表单',
34
+ to: '/Component/XFormView/1/debug?configName=hiddenTroubleFollowForm&serviceName=af-linepatrol&mode=新增',
35
+ },
36
+ {
37
+ name: 'XFormGroup 表单组',
38
+ to: '/Component/XFormGroupView',
39
+ },
40
+ {
41
+ name: '操作卡手机端',
42
+ to: '/Component/XReportFormView',
43
+ },
44
+ {
45
+ name: '评论记录列表',
46
+ to: '/Component/EvaluateRecordView',
47
+ },
48
+ {
49
+ name: 'XSignature 签名组件',
50
+ to: '/Component/XSignatureView',
51
+ },
52
+ {
53
+ name: 'XReportGridView 栅格组件',
54
+ to: '/Component/XReportGridView',
55
+ },
56
+ {
57
+ name: 'XFormAppraise 表单',
58
+ to: '/Component/XFormAppraiseView/2/debug',
59
+ },
60
+ {
61
+ name: 'XOlMap 地图组件',
62
+ to: '/Component/XOlMapView',
63
+ },
64
+ {
65
+ name: 'XOlMap 地址选择器',
66
+ to: '/Component/XOlMapView/XLocationPicker',
67
+ },
68
+ {
69
+ name: '请求示例',
70
+ to: '/Component/XRequestView',
71
+ },
72
+ {
73
+ name: 'Iconify 图标使用示例',
74
+ to: '/Component/IconifyView',
75
+ },
76
+ {
77
+ name: 'UserDetail 用户详情组件',
78
+ to: '/Component/UserDetailView',
79
+ },
80
+ ])
81
+
82
+ function cleanConfigCache() {
83
+ // 清除indexedDB缓存
84
+ indexedDB.clear()
85
+ showToast({
86
+ message: '操作成功',
87
+ })
88
+ }
89
+
90
+ async function logout() {
91
+ await useUserStore().logout()
92
+ }
93
+ </script>
94
+
95
+ <template>
96
+ <main class="home_main">
97
+ <h1 class="home_title">
98
+ <img src="@af-mobile-client-vue3/assets/img/component/logo.png" alt="logo">
99
+ <span>Vue3-Client</span>
100
+ </h1>
101
+ <span class="home_desc">基于Vant4的移动端组件库扩展</span>
102
+ <div class="home_component_main">
103
+ <span class="home_desc">设置项</span>
104
+ <VanCell center title="暗黑模式">
105
+ <template #right-icon>
106
+ <VanSwitch
107
+ v-model="checked"
108
+ size="20px"
109
+ aria-label="on/off Dark Mode"
110
+ />
111
+ </template>
112
+ </VanCell>
113
+ <span class="home_desc">配置化组件</span>
114
+ <VanList>
115
+ <VanCell v-for="item in list" :key="item.name" :title="item.name" is-link :to="item.to" />
116
+ </VanList>
117
+ <span class="home_desc">开发者工具</span>
118
+ <VanList>
119
+ <VanCell key="clean_config_cache" title="清除配置缓存" @click="cleanConfigCache" />
120
+ <VanCell key="clean_config_cache" title="退出登录" @click="logout" />
121
+ </VanList>
122
+ </div>
123
+ </main>
124
+ </template>
125
+
126
+ <style scoped lang="less">
127
+ .van-theme-light {
128
+ .home_main {
129
+ .home_title {
130
+ color: #323233;
131
+ }
132
+ .home_desc {
133
+ color: #969799;
134
+ }
135
+ .home_component_main {
136
+ .van-cell {
137
+ color: #34495e;
138
+ }
139
+ }
140
+ }
141
+ }
142
+ .home_main {
143
+ padding: var(--base-interval-2);
144
+ .home_title {
145
+ display: flex;
146
+ align-items: center;
147
+ margin: 0 0 10px;
148
+ font-size: 30px;
149
+ font-weight: 400;
150
+ img {
151
+ display: inline-block;
152
+ vertical-align: middle;
153
+ width: 46px;
154
+ height: 46px;
155
+ }
156
+ span {
157
+ margin-left: 12px;
158
+ }
159
+ }
160
+ .home_desc {
161
+ padding-left: 16px;
162
+ font-weight: 400;
163
+ line-height: 1.6;
164
+ margin: 0 0 40px;
165
+ color: #969799;
166
+ font-size: 14px;
167
+ }
168
+ .home_component_main {
169
+ margin-top: 30px;
170
+ .van-cell {
171
+ margin: 10px 0;
172
+ font-weight: 600;
173
+ border-radius: 99px;
174
+ :deep(.van-icon) {
175
+ display: flex;
176
+ align-items: center;
177
+ }
178
+ }
179
+ }
180
+ }
181
+ </style>
@@ -1,117 +1,117 @@
1
- <script setup lang="ts">
2
- import useUserStore from '@af-mobile-client-vue3/stores/modules/user'
3
- import { getImageUrl } from '@af-mobile-client-vue3/utils/common'
4
- import {
5
- Grid as VanGrid,
6
- GridItem as VanGridItem,
7
- Swipe as VanSwipe,
8
- SwipeItem as VanSwipeItem,
9
- } from 'vant/es'
10
-
11
- const apps = {
12
- 测试图标1: {
13
- remark: '测试图标1',
14
- icon: 'assets/img/apps/safe-check-web.png',
15
- },
16
- 测试图标2: {
17
- remark: '报装',
18
- icon: 'assets/img/apps/apply-web.png',
19
- },
20
- 测试图标3: {
21
- remark: '营收',
22
- icon: 'assets/img/apps/revenue-web.png',
23
- },
24
- 测试图标4: {
25
- remark: '物联网表',
26
- icon: 'assets/img/apps/iot-web.png',
27
- },
28
- }
29
-
30
- const images = [
31
- '../assets/img/home/banner1.png',
32
- '../assets/img/home/banner2.png',
33
- '../assets/img/home/banner3.png',
34
- '../assets/img/home/banner4.png',
35
- ]
36
-
37
- interface Func {
38
- link: string
39
- navigate?: string
40
- module: any
41
- name: string
42
- children?: Array<Func>
43
- }
44
-
45
- interface App {
46
- module: Func
47
- icon: string
48
- }
49
-
50
- function initAppMenu(func: Array<Func> | undefined) {
51
- const functions = []
52
- if (func && func.length > 0) {
53
- for (let index = 0; index < func.length; index++) {
54
- const module = func[index]
55
- const app = apps[module.link]
56
- if (app) {
57
- functions.push({
58
- module,
59
- icon: app.icon,
60
- })
61
- }
62
- }
63
- return functions
64
- }
65
- return []
66
- }
67
-
68
- const appList: Array<App> = initAppMenu(useUserStore().getUserInfo().functions)
69
- console.warn(appList)
70
- </script>
71
-
72
- <template>
73
- <div class="menu_main">
74
- <VanSwipe class="my-swipe" :autoplay="3000" lazy-render>
75
- <VanSwipeItem v-for="image in images" :key="image">
76
- <img :src="getImageUrl(image)" width="100%" height="100%">
77
- </VanSwipeItem>
78
- </VanSwipe>
79
- <VanGrid :border="false">
80
- <VanGridItem v-for="app in appList" :key="app.module.link" :to="`app/${app.module.link}`">
81
- <img class="app_icon" :src="getImageUrl(app.icon, '../')">
82
- <span class="app_title">{{ app.module.name }}</span>
83
- </VanGridItem>
84
- </VanGrid>
85
- </div>
86
- </template>
87
-
88
- <style scoped lang="less">
89
- .menu_main {
90
- margin-bottom: var(--base-interval-2)
91
- }
92
-
93
- .my-swipe {
94
- margin-bottom: 4px;
95
-
96
- img {
97
- border-radius: 4px;
98
- }
99
- }
100
-
101
- :deep(.van-swipe__indicator--active) {
102
- width: 16px;
103
- background: #fff;
104
- border-radius: 16px;
105
- }
106
-
107
- .app_icon {
108
- width: 42px;
109
- height: 42px;
110
- margin-bottom: 6px;
111
- }
112
-
113
- .app_title {
114
- font-size: 12px;
115
- color: #000;
116
- }
117
- </style>
1
+ <script setup lang="ts">
2
+ import useUserStore from '@af-mobile-client-vue3/stores/modules/user'
3
+ import { getImageUrl } from '@af-mobile-client-vue3/utils/common'
4
+ import {
5
+ Grid as VanGrid,
6
+ GridItem as VanGridItem,
7
+ Swipe as VanSwipe,
8
+ SwipeItem as VanSwipeItem,
9
+ } from 'vant/es'
10
+
11
+ const apps = {
12
+ 测试图标1: {
13
+ remark: '测试图标1',
14
+ icon: 'assets/img/apps/safe-check-web.png',
15
+ },
16
+ 测试图标2: {
17
+ remark: '报装',
18
+ icon: 'assets/img/apps/apply-web.png',
19
+ },
20
+ 测试图标3: {
21
+ remark: '营收',
22
+ icon: 'assets/img/apps/revenue-web.png',
23
+ },
24
+ 测试图标4: {
25
+ remark: '物联网表',
26
+ icon: 'assets/img/apps/iot-web.png',
27
+ },
28
+ }
29
+
30
+ const images = [
31
+ '../assets/img/home/banner1.png',
32
+ '../assets/img/home/banner2.png',
33
+ '../assets/img/home/banner3.png',
34
+ '../assets/img/home/banner4.png',
35
+ ]
36
+
37
+ interface Func {
38
+ link: string
39
+ navigate?: string
40
+ module: any
41
+ name: string
42
+ children?: Array<Func>
43
+ }
44
+
45
+ interface App {
46
+ module: Func
47
+ icon: string
48
+ }
49
+
50
+ function initAppMenu(func: Array<Func> | undefined) {
51
+ const functions = []
52
+ if (func && func.length > 0) {
53
+ for (let index = 0; index < func.length; index++) {
54
+ const module = func[index]
55
+ const app = apps[module.link]
56
+ if (app) {
57
+ functions.push({
58
+ module,
59
+ icon: app.icon,
60
+ })
61
+ }
62
+ }
63
+ return functions
64
+ }
65
+ return []
66
+ }
67
+
68
+ const appList: Array<App> = initAppMenu(useUserStore().getUserInfo().functions)
69
+ console.warn(appList)
70
+ </script>
71
+
72
+ <template>
73
+ <div class="menu_main">
74
+ <VanSwipe class="my-swipe" :autoplay="3000" lazy-render>
75
+ <VanSwipeItem v-for="image in images" :key="image">
76
+ <img :src="getImageUrl(image)" width="100%" height="100%">
77
+ </VanSwipeItem>
78
+ </VanSwipe>
79
+ <VanGrid :border="false">
80
+ <VanGridItem v-for="app in appList" :key="app.module.link" :to="`app/${app.module.link}`">
81
+ <img class="app_icon" :src="getImageUrl(app.icon, '../')">
82
+ <span class="app_title">{{ app.module.name }}</span>
83
+ </VanGridItem>
84
+ </VanGrid>
85
+ </div>
86
+ </template>
87
+
88
+ <style scoped lang="less">
89
+ .menu_main {
90
+ margin-bottom: var(--base-interval-2);
91
+ }
92
+
93
+ .my-swipe {
94
+ margin-bottom: 4px;
95
+
96
+ img {
97
+ border-radius: 4px;
98
+ }
99
+ }
100
+
101
+ :deep(.van-swipe__indicator--active) {
102
+ width: 16px;
103
+ background: #fff;
104
+ border-radius: 16px;
105
+ }
106
+
107
+ .app_icon {
108
+ width: 42px;
109
+ height: 42px;
110
+ margin-bottom: 6px;
111
+ }
112
+
113
+ .app_title {
114
+ font-size: 12px;
115
+ color: #000;
116
+ }
117
+ </style>