af-mobile-client-vue3 1.2.59 → 1.3.2-2.1

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 (149) hide show
  1. package/.editorconfig +5 -34
  2. package/.env +1 -1
  3. package/.env.development +0 -3
  4. package/.env.production +1 -7
  5. package/CLAUDE.md +5 -0
  6. package/README.md +2 -1
  7. package/build/vite/index.ts +2 -12
  8. package/build/vite/optimize.ts +2 -2
  9. package/compress.js +36 -0
  10. package/package.json +37 -37
  11. package/postcss.config.ts +1 -1
  12. package/src/App.vue +4 -6
  13. package/src/assets/img/banner/appraise-banner-1.png +0 -0
  14. package/src/assets/img/banner/appraise-banner-2.png +0 -0
  15. package/src/components/core/BeautifulLoading/index.vue +1 -2
  16. package/src/components/core/ImageUploader/index.vue +3 -2
  17. package/src/components/core/NavBar/index.vue +24 -14
  18. package/src/components/core/Tabbar/index.vue +5 -3
  19. package/src/components/core/XGridDropOption/index.vue +7 -9
  20. package/src/components/core/XMultiSelect/index.vue +1 -1
  21. package/src/components/data/CardContainer/CardContainer.vue +118 -0
  22. package/src/components/data/CardContainer/CardHeader.vue +99 -0
  23. package/src/components/data/InfoDisplay/index.vue +132 -0
  24. package/src/components/data/UserDetail/api.ts +24 -0
  25. package/src/components/data/UserDetail/index.vue +620 -0
  26. package/src/components/data/UserDetail/recordEntries.ts +159 -0
  27. package/src/components/data/UserDetail/types.ts +26 -0
  28. package/src/components/data/XBadge/index.vue +2 -2
  29. package/src/components/data/XCellList/index.vue +76 -30
  30. package/src/components/data/XForm/index.vue +1 -1
  31. package/src/components/data/XFormGroup/doc/FormGroupDemo.vue +4 -4
  32. package/src/components/data/XFormGroup/doc/README.md +33 -20
  33. package/src/components/data/XFormGroup/index.vue +51 -35
  34. package/src/components/data/XFormItem/index.vue +13 -33
  35. package/src/components/data/XOlMap/README.md +61 -61
  36. package/src/components/data/XOlMap/XLocationPicker/index.vue +2 -1
  37. package/src/components/data/XReportForm/XReportFormJsonRender.vue +22 -22
  38. package/src/components/data/XReportForm/index.vue +23 -14
  39. package/src/components/data/XReportGrid/XAddReport/XAddReport.vue +1 -2
  40. package/src/components/data/XReportGrid/XAddReport/index.md +17 -16
  41. package/src/components/data/XReportGrid/XReport.vue +3 -3
  42. package/src/components/data/XReportGrid/XReportDesign.vue +13 -13
  43. package/src/components/data/XReportGrid/XReportDrawer/XReportDrawer.vue +1 -1
  44. package/src/components/data/XReportGrid/XReportJsonRender.vue +11 -11
  45. package/src/components/data/XReportGrid/XReportTrGroup.vue +3 -3
  46. package/src/components/data/XReportGrid/index.md +14 -10
  47. package/src/components/data/XSignature/index.vue +1 -2
  48. package/src/components/layout/NormalDataLayout/index.vue +2 -3
  49. package/src/config/routes.ts +6 -2
  50. package/src/constants/index.ts +2 -0
  51. package/src/font-style/font.css +1 -1
  52. package/src/hooks/useBoolean.ts +26 -0
  53. package/src/hooks/useLoading.ts +16 -0
  54. package/src/locales/en-US.json +52 -28
  55. package/src/locales/zh-CN.json +57 -33
  56. package/src/main.ts +0 -2
  57. package/src/plugins/collectIcons.ts +10 -0
  58. package/src/router/README.md +1 -1
  59. package/src/router/guards.ts +1 -1
  60. package/src/router/index.ts +1 -1
  61. package/src/router/routes.ts +176 -6
  62. package/src/router/types.ts +0 -2
  63. package/src/services/api/user.ts +17 -0
  64. package/src/stores/modules/setting.ts +2 -1
  65. package/src/styles/var.less +9 -0
  66. package/src/types/vue-router.d.ts +0 -2
  67. package/src/utils/mobileUtil.ts +2 -2
  68. package/src/utils/queryFormDefaultRangePicker.ts +57 -57
  69. package/src/utils/set-page-title.ts +3 -5
  70. package/src/views/common/LoadError.vue +1 -2
  71. package/src/views/common/NotFound.vue +2 -3
  72. package/src/views/component/IconifyView/index.vue +0 -3
  73. package/src/views/component/UserDetailView/UserDetailPage.vue +77 -0
  74. package/src/views/component/UserDetailView/index.vue +234 -0
  75. package/src/views/component/XCellListView/index.vue +24 -73
  76. package/src/views/component/XFormGroupView/index.vue +7 -11
  77. package/src/views/component/XFormView/index.vue +2 -2
  78. package/src/views/component/XOlMapView/testData.ts +1 -1
  79. package/src/views/component/index.vue +4 -0
  80. package/src/views/component/menu.vue +1 -1
  81. package/src/views/user/login/ForgetPasswordForm.vue +1 -1
  82. package/src/views/user/login/LoginForm.vue +4 -3
  83. package/src/views/user/login/LoginWave.vue +1 -1
  84. package/src/views/user/my/comm/ModifyPassword.vue +346 -0
  85. package/src/views/user/my/index.vue +440 -183
  86. package/src/views/user/register/index.vue +952 -0
  87. package/src/views/userRecords/AbnormalAlarmRecords.vue +21 -0
  88. package/src/views/userRecords/CardReplacementRecords.vue +21 -0
  89. package/src/views/userRecords/ChangeRecords.vue +19 -0
  90. package/src/views/userRecords/CommandViewRecords.vue +20 -0
  91. package/src/views/userRecords/GasCompensationRecords.vue +20 -0
  92. package/src/views/userRecords/InstrumentCollectionRecords.vue +21 -0
  93. package/src/views/userRecords/MeterRecords.vue +20 -0
  94. package/src/views/userRecords/OperateRecords.vue +51 -0
  95. package/src/views/userRecords/OtherChargeRecords.vue +19 -0
  96. package/src/views/userRecords/PaymentRecords.vue +28 -0
  97. package/src/views/userRecords/PriceAdjustmentRecords.vue +19 -0
  98. package/src/views/userRecords/ReplacementRecords.vue +19 -0
  99. package/src/views/userRecords/SafetyRecords.vue +19 -0
  100. package/src/views/userRecords/TransactionRecords.vue +21 -0
  101. package/src/views/userRecords/TransferRecords.vue +19 -0
  102. package/src/views/userRecords/operateRecordDetail/index.vue +316 -0
  103. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AddUserDetail.vue +124 -0
  104. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AdvanceDeliveryDetail.vue +88 -0
  105. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsCancelDetail.vue +205 -0
  106. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsDetail.vue +192 -0
  107. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankDkDetail.vue +192 -0
  108. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankPayDetail.vue +192 -0
  109. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BlacklistDetail.vue +153 -0
  110. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CancellationDetail.vue +101 -0
  111. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterCancelDetail.vue +127 -0
  112. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterDetail.vue +153 -0
  113. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardOverUserDetail.vue +153 -0
  114. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterCancelDetail.vue +166 -0
  115. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterDetail.vue +205 -0
  116. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/DisableManageDetail.vue +127 -0
  117. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/EnableManageDetail.vue +114 -0
  118. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FaZheChangeDetail.vue +124 -0
  119. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FeeDeductionDetail.vue +153 -0
  120. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/GasPriceChangeDetail.vue +126 -0
  121. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/InputtorChangeDetail.vue +126 -0
  122. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterCancelDetail.vue +114 -0
  123. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterDetail.vue +127 -0
  124. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotOpenDetail.vue +88 -0
  125. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineCardDetail.vue +101 -0
  126. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterCancelDetail.vue +218 -0
  127. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterDetail.vue +153 -0
  128. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OffGasAddGasDetail.vue +140 -0
  129. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeCancelDetail.vue +127 -0
  130. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeDetail.vue +114 -0
  131. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OverUserChangeDetail.vue +127 -0
  132. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReBillDetail.vue +127 -0
  133. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/RefundDetail.vue +114 -0
  134. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageCancelDetail.vue +127 -0
  135. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageDetail.vue +114 -0
  136. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/SaleCardGasDetail.vue +140 -0
  137. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageCancelDetail.vue +152 -0
  138. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageDetail.vue +178 -0
  139. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/UserChangeDetail.vue +123 -0
  140. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/WechatPayDetail.vue +192 -0
  141. package/src/views/userRecords/types.ts +66 -0
  142. package/tsconfig.json +5 -8
  143. package/uno.config.ts +36 -1
  144. package/vite.config.ts +10 -3
  145. package/.env.envoiceShow +0 -7
  146. package/src/components/core/App/MicroAppView.vue +0 -59
  147. package/src/components/core/SvgIcon/index.vue +0 -61
  148. package/src/utils/local-storage.ts +0 -9
  149. package/src/views/component/XFormGroupView/xformgroup222.vue +0 -97
@@ -1,29 +1,46 @@
1
1
  {
2
- "menus": {
3
- "home": "主页",
4
- "profile": "个人中心",
5
- "darkMode": "🌗 暗黑模式",
6
- "mockGuide": "💿 Mock 指南",
7
- "language": "📚 语言",
8
- "echartsDemo": "📊 Echarts 演示",
9
- "persistPiniaState": "🍍 持久化 Pinia 状态",
10
- "404Demo": "🙅 404页 演示",
11
- "unocssExample": "🎨 Unocss 示例",
12
- "keepAlive": "🧡 KeepAlive 演示",
13
- "scrollCache": "📜 滚动缓存 演示",
14
- "login": "🔒 用户登录",
15
- "register": "用户注册",
2
+ "navbar": {
3
+ "Home": "主页",
4
+ "Profile": "我的",
5
+ "Mock": "🗂️ Mock",
6
+ "Charts": "📊 图表",
7
+ "UnoCSS": " UnoCSS",
8
+ "Counter": "🍍 状态持久化",
9
+ "KeepAlive": "♻️ 页面缓存",
10
+ "ScrollCache": "📍 滚动缓存",
11
+ "Login": "🧑‍💻 登录",
12
+ "Register": "🧑‍💻 注册",
13
+ "ForgotPassword": " 忘记密码",
14
+ "Settings": "⚙️ 设置",
15
+ "404": "⚠️ 404 页面",
16
+ "Undefined": "🤷 未定义标题"
17
+ },
18
+
19
+ "tabbar": {
20
+ "home": "首页",
21
+ "profile": "我的"
22
+ },
23
+
24
+ "home": {
25
+ "darkMode": "🌗 深色模式",
26
+ "language": "📚 多语言",
27
+ "settings": "设置",
28
+ "examples": "示例"
29
+ },
30
+
31
+ "profile": {
32
+ "login": "登录",
16
33
  "settings": "设置",
17
- "basicSettings": "基本设置",
18
- "exampleComponents": "示例组件",
19
- "forgot-password": "忘记密码"
34
+ "docs": "文档"
20
35
  },
36
+
21
37
  "mock": {
22
38
  "fromAsyncData": "来自异步请求的数据",
39
+ "noData": "暂无数据",
23
40
  "pull": "请求",
24
- "reset": "清空",
25
- "noData": "暂无数据"
41
+ "reset": "清空"
26
42
  },
43
+
27
44
  "charts": {
28
45
  "January": "1月",
29
46
  "February": "2月",
@@ -32,39 +49,44 @@
32
49
  "May": "5月",
33
50
  "June": "6月"
34
51
  },
35
- "layouts": {
36
- "home": "首页",
37
- "profile": "我的"
52
+
53
+ "counter": {
54
+ "description": "该计数器的状态通过 Pinia 持久化。刷新页面试试看!"
38
55
  },
39
- "profile": {
40
- "login": "登录",
41
- "settings": "设置",
42
- "docs": "文档"
56
+
57
+ "unocss": {
58
+ "title": "你好, Unocss!",
59
+ "description": "这是一个简单的 Unocss 使用示例。",
60
+ "button": "按钮"
43
61
  },
62
+
44
63
  "keepAlive": {
45
64
  "label": "当前组件将会被缓存"
46
65
  },
66
+
47
67
  "scrollCache": {
48
68
  "sectionTitle": "段落标题",
49
69
  "sectionText": "段落内容段落内容段落内容段落内容段落内容段落内容",
50
70
  "finished": "已经到底啦 ~",
51
71
  "loading": "加载中..."
52
72
  },
73
+
53
74
  "login": {
54
75
  "login": "登录",
55
- "logout": "退出",
76
+ "logout": "退出登录",
56
77
  "email": "邮箱",
57
78
  "password": "密码",
58
79
  "pleaseEnterEmail": "请输入邮箱",
59
80
  "pleaseEnterPassword": "请输入密码",
60
- "sign-up": "还没有账号?点击注册",
61
- "forgot-password": "忘记密码?"
81
+ "signUp": "还没有账号?点击注册",
82
+ "forgotPassword": "忘记密码?"
62
83
  },
63
- "forgot-password": {
84
+
85
+ "forgotPassword": {
64
86
  "email": "邮箱",
65
87
  "code": "验证码",
66
88
  "password": "密码",
67
- "comfirmPassword": "再次输入密码",
89
+ "confirmPassword": "再次输入密码",
68
90
  "pleaseEnterEmail": "请输入邮箱",
69
91
  "pleaseEnterCode": "请输入验证码",
70
92
  "pleaseEnterPassword": "请输入密码",
@@ -77,12 +99,13 @@
77
99
  "sendCodeSuccess": "已发送,验证码为",
78
100
  "passwordResetSuccess": "密码重置成功"
79
101
  },
102
+
80
103
  "register": {
81
104
  "email": "邮箱",
82
105
  "code": "验证码",
83
106
  "nickname": "昵称",
84
107
  "password": "密码",
85
- "comfirmPassword": "再次输入密码",
108
+ "confirmPassword": "再次输入密码",
86
109
  "pleaseEnterEmail": "请输入邮箱",
87
110
  "pleaseEnterCode": "请输入验证码",
88
111
  "pleaseEnterNickname": "请输入昵称",
@@ -96,9 +119,10 @@
96
119
  "sendCodeSuccess": "已发送,验证码为",
97
120
  "registerSuccess": "注册成功"
98
121
  },
122
+
99
123
  "settings": {
100
124
  "logout": "退出登录",
101
125
  "currentVersion": "当前版本",
102
- "comfirmTitle": "确认退出?"
126
+ "confirmTitle": "确认退出?"
103
127
  }
104
128
  }
package/src/main.ts CHANGED
@@ -10,8 +10,6 @@ import 'virtual:uno.css'
10
10
  import '@af-mobile-client-vue3/styles/app.less'
11
11
  import '@af-mobile-client-vue3/styles/var.less'
12
12
 
13
- // svg icon
14
- import 'virtual:svg-icons-register'
15
13
  // Vant 桌面端适配
16
14
  import '@vant/touch-emulator'
17
15
 
@@ -0,0 +1,10 @@
1
+ import { defaultRecordEntries } from '../components/data/UserDetail/recordEntries'
2
+
3
+ const collectUsedIcons = [
4
+ ...defaultRecordEntries.map(entry => entry.icon),
5
+ ...defaultRecordEntries.map(entry => entry.bgColor),
6
+ ...defaultRecordEntries.map(entry => entry.textColor),
7
+ ]
8
+
9
+ // 默认导出
10
+ export default collectUsedIcons
@@ -1,6 +1,6 @@
1
1
  # `File-based Routing`
2
2
 
3
- Routes will be auto-generated for Vue files in the **src/views** dir with the same file structure.
3
+ Routes will be auto-generated for Vue files in the **src/views** dir with the same file structure.
4
4
  Check out [`unplugin-vue-router`](https://github.com/posva/unplugin-vue-router) for more details.
5
5
 
6
6
  在 **src/views** 目录下的 Vue 文件会自动生成相同结构的路由。
@@ -5,7 +5,7 @@ import { showToast } from 'vant'
5
5
  // 不需要登录拦截的路由配置
6
6
  const loginIgnore = {
7
7
  names: ['404', '403', 'user-appointment', 'appointment-form', 'appointment-history'], // 根据路由名称匹配
8
- paths: ['/login', '/XReportFormIframeView', '/invoiceShow'], // 根据路由fullPath匹配
8
+ paths: ['/login', '/XReportFormIframeView', '/invoiceShow', '/register'], // 根据路由fullPath匹配
9
9
  /**
10
10
  * 判断路由是否包含在该配置中
11
11
  * @param route vue-router 的 route 对象
@@ -24,7 +24,7 @@ router.beforeEach((to: EnhancedRouteLocation) => {
24
24
  routeCacheStore.addRoute(to)
25
25
 
26
26
  // 页面 title
27
- setPageTitle(to.meta.title)
27
+ setPageTitle(to.meta.title as string)
28
28
  })
29
29
 
30
30
  router.afterEach(() => {
@@ -6,11 +6,12 @@ import NotFound from '@af-mobile-client-vue3/views/common/NotFound.vue'
6
6
  import EvaluateRecordView from '@af-mobile-client-vue3/views/component/EvaluateRecordView/index.vue'
7
7
  import IconifyView from '@af-mobile-client-vue3/views/component/IconifyView/index.vue'
8
8
  import ComponentView from '@af-mobile-client-vue3/views/component/index.vue'
9
+ import UserDetailView from '@af-mobile-client-vue3/views/component/UserDetailView/index.vue'
10
+ import UserDetailPage from '@af-mobile-client-vue3/views/component/UserDetailView/UserDetailPage.vue'
9
11
  import XCellDetailView from '@af-mobile-client-vue3/views/component/XCellDetailView/index.vue'
10
12
  import XCellListView from '@af-mobile-client-vue3/views/component/XCellListView/index.vue'
11
13
  import XFormAppraiseView from '@af-mobile-client-vue3/views/component/XFormAppraiseView/index.vue'
12
14
  import XFormGroupView from '@af-mobile-client-vue3/views/component/XFormGroupView/index.vue'
13
- import xformgroup222 from '@af-mobile-client-vue3/views/component/XFormGroupView/xformgroup222.vue'
14
15
  import XFormView from '@af-mobile-client-vue3/views/component/XFormView/index.vue'
15
16
  import XOlMapView from '@af-mobile-client-vue3/views/component/XOlMapView/index.vue'
16
17
  import XLocationPicker from '@af-mobile-client-vue3/views/component/XOlMapView/XLocationPicker/index.vue'
@@ -21,6 +22,22 @@ import XRequestView from '@af-mobile-client-vue3/views/component/XRequestView/in
21
22
  import XSignatureView from '@af-mobile-client-vue3/views/component/XSignatureView/index.vue'
22
23
  import login from '@af-mobile-client-vue3/views/user/login/index.vue'
23
24
  import my from '@af-mobile-client-vue3/views/user/my/index.vue'
25
+ import register from '@af-mobile-client-vue3/views/user/register/index.vue'
26
+ import AbnormalAlarmRecords from '@af-mobile-client-vue3/views/userRecords/AbnormalAlarmRecords.vue'
27
+ import CardReplacementRecords from '@af-mobile-client-vue3/views/userRecords/CardReplacementRecords.vue'
28
+ import ChangeRecords from '@af-mobile-client-vue3/views/userRecords/ChangeRecords.vue'
29
+ import CommandViewRecords from '@af-mobile-client-vue3/views/userRecords/CommandViewRecords.vue'
30
+ import GasCompensationRecords from '@af-mobile-client-vue3/views/userRecords/GasCompensationRecords.vue'
31
+ import InstrumentCollectionRecords from '@af-mobile-client-vue3/views/userRecords/InstrumentCollectionRecords.vue'
32
+ import MeterRecords from '@af-mobile-client-vue3/views/userRecords/MeterRecords.vue'
33
+ import OperateRecords from '@af-mobile-client-vue3/views/userRecords/OperateRecords.vue'
34
+ import OtherChargeRecords from '@af-mobile-client-vue3/views/userRecords/OtherChargeRecords.vue'
35
+ import PaymentRecords from '@af-mobile-client-vue3/views/userRecords/PaymentRecords.vue'
36
+ import PriceAdjustmentRecords from '@af-mobile-client-vue3/views/userRecords/PriceAdjustmentRecords.vue'
37
+ import ReplacementRecords from '@af-mobile-client-vue3/views/userRecords/ReplacementRecords.vue'
38
+ import SafetyRecords from '@af-mobile-client-vue3/views/userRecords/SafetyRecords.vue'
39
+ import TransactionRecords from '@af-mobile-client-vue3/views/userRecords/TransactionRecords.vue'
40
+ import TransferRecords from '@af-mobile-client-vue3/views/userRecords/TransferRecords.vue'
24
41
 
25
42
  const routes: Array<RouteRecordRaw> = [
26
43
  {
@@ -67,11 +84,6 @@ const routes: Array<RouteRecordRaw> = [
67
84
  name: 'XCellDetailView',
68
85
  component: XCellDetailView,
69
86
  },
70
- {
71
- path: '/xformgroup222',
72
- name: 'xformgroup222',
73
- component: xformgroup222,
74
- },
75
87
  {
76
88
  path: '/Component/XFormGroupView',
77
89
  name: 'XFormGroupView',
@@ -149,6 +161,159 @@ const routes: Array<RouteRecordRaw> = [
149
161
  name: 'IconifyView',
150
162
  component: IconifyView,
151
163
  },
164
+ {
165
+ path: '/Component/UserDetailView',
166
+ name: 'UserDetailView',
167
+ component: UserDetailView,
168
+ },
169
+ {
170
+ path: '/Component/UserDetail/:userInfoId',
171
+ name: 'UserDetailRoute',
172
+ component: UserDetailPage,
173
+ meta: { title: '用户详情' },
174
+ },
175
+ ],
176
+ },
177
+ {
178
+ path: '/userRecords',
179
+ name: 'userRecords',
180
+ children: [
181
+ // 用户记录相关路由
182
+ {
183
+ path: '/records',
184
+ name: 'OperateRecords',
185
+ component: OperateRecords,
186
+ meta: {
187
+ title: '操作记录',
188
+ keepAlive: false,
189
+ },
190
+ },
191
+ {
192
+ path: '/payment',
193
+ name: 'PaymentRecords',
194
+ component: PaymentRecords,
195
+ meta: {
196
+ title: '缴费记录',
197
+ keepAlive: false,
198
+ },
199
+ },
200
+ {
201
+ path: '/meter',
202
+ name: 'MeterRecords',
203
+ component: MeterRecords,
204
+ meta: {
205
+ title: '抄表记录',
206
+ keepAlive: false,
207
+ },
208
+ },
209
+ {
210
+ path: '/transfer',
211
+ name: 'TransferRecords',
212
+ component: TransferRecords,
213
+ meta: {
214
+ title: '过户记录',
215
+ keepAlive: false,
216
+ },
217
+ },
218
+ {
219
+ path: '/safety',
220
+ name: 'SafetyRecords',
221
+ component: SafetyRecords,
222
+ meta: {
223
+ title: '安检记录',
224
+ keepAlive: false,
225
+ },
226
+ },
227
+ {
228
+ path: '/replacement',
229
+ name: 'ReplacementRecords',
230
+ component: ReplacementRecords,
231
+ meta: {
232
+ title: '换表记录',
233
+ keepAlive: false,
234
+ },
235
+ },
236
+ {
237
+ path: '/otherCharge',
238
+ name: 'OtherChargeRecords',
239
+ component: OtherChargeRecords,
240
+ meta: {
241
+ title: '其他收费记录',
242
+ keepAlive: false,
243
+ },
244
+ },
245
+ {
246
+ path: '/transaction',
247
+ name: 'TransactionRecords',
248
+ component: TransactionRecords,
249
+ meta: {
250
+ title: '流水记录',
251
+ keepAlive: false,
252
+ },
253
+ },
254
+ {
255
+ path: '/abnormalAlarm',
256
+ name: 'AbnormalAlarmRecords',
257
+ component: AbnormalAlarmRecords,
258
+ meta: {
259
+ title: '异常报警记录',
260
+ keepAlive: false,
261
+ },
262
+ },
263
+ {
264
+ path: '/cardReplacement',
265
+ name: 'CardReplacementRecords',
266
+ component: CardReplacementRecords,
267
+ meta: {
268
+ title: '补卡记录',
269
+ keepAlive: false,
270
+ },
271
+ },
272
+ {
273
+ path: '/change',
274
+ name: 'ChangeRecords',
275
+ component: ChangeRecords,
276
+ meta: {
277
+ title: '变更记录',
278
+ keepAlive: false,
279
+ },
280
+ },
281
+ {
282
+ path: '/commandView',
283
+ name: 'CommandViewRecords',
284
+ component: CommandViewRecords,
285
+ meta: {
286
+ title: '指令查看记录',
287
+ keepAlive: false,
288
+ },
289
+ },
290
+ {
291
+ path: '/gasCompensation',
292
+ name: 'GasCompensationRecords',
293
+ component: GasCompensationRecords,
294
+ meta: {
295
+ title: '补气记录',
296
+ keepAlive: false,
297
+ },
298
+ },
299
+ {
300
+ path: '/instrumentCollection',
301
+ name: 'InstrumentCollectionRecords',
302
+ component: InstrumentCollectionRecords,
303
+ meta: {
304
+ title: '表具采集记录',
305
+ keepAlive: false,
306
+ },
307
+ },
308
+ {
309
+ path: '/priceAdjustment',
310
+ name: 'PriceAdjustmentRecords',
311
+ component: PriceAdjustmentRecords,
312
+ meta: {
313
+ title: '价格调整记录',
314
+ keepAlive: false,
315
+ },
316
+ },
152
317
  ],
153
318
  },
154
319
  {
@@ -161,6 +326,11 @@ const routes: Array<RouteRecordRaw> = [
161
326
  name: 'userProfile',
162
327
  component: my,
163
328
  },
329
+ {
330
+ path: '/register/:strategyId?/:openId?',
331
+ name: 'register',
332
+ component: register,
333
+ },
164
334
  {
165
335
  path: '/404',
166
336
  name: '404',
@@ -2,8 +2,6 @@ import type { RouteLocationNormalized } from 'vue-router'
2
2
 
3
3
  export type EnhancedRouteLocation = RouteLocationNormalized & {
4
4
  meta: {
5
- level?: number | unknown
6
- name?: string
7
5
  keepAlive?: boolean
8
6
  }
9
7
  }
@@ -0,0 +1,17 @@
1
+ import { post } from '@af-mobile-client-vue3/services/restTools'
2
+
3
+ const userApi = {
4
+ // 修改密码
5
+ modifyPassword: '/af-system/user/modifypwd',
6
+ }
7
+
8
+ /**
9
+ * 修改密码
10
+ * @param data 修改密码参数
11
+ * @returns Promise
12
+ */
13
+ export function modifyPassword(data: any) {
14
+ return post(userApi.modifyPassword, JSON.stringify(data))
15
+ }
16
+
17
+ export { userApi }
@@ -10,7 +10,7 @@ export interface WebConfig {
10
10
  systemName: string
11
11
  routerName: string
12
12
  systemDesc: string
13
- homePage: string
13
+ homePage: any
14
14
  defaultAvatarUrl: string
15
15
  wechatLogin: boolean
16
16
  wxLoginAge: boolean
@@ -19,6 +19,7 @@ export interface WebConfig {
19
19
  systemLogo: string
20
20
  homeAppList: Array<any>
21
21
  slideshowList: Array<any>
22
+ registerRequire: boolean
22
23
  }
23
24
 
24
25
  // 存放 webConfig 中的 setting 配置
@@ -14,3 +14,12 @@
14
14
  --base-interval-1: 14px;
15
15
  --base-interval-2: 28px;
16
16
  }
17
+ // 全局弹出框样式覆盖 - 最强优先级
18
+ .van-popover,
19
+ .van-popover.van-popover--light,
20
+ .van-popover.van-popover--dark {
21
+ background-color: #ffffff !important;
22
+ border: none !important;
23
+ outline: none !important;
24
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
25
+ }
@@ -2,8 +2,6 @@ declare module 'vue-router' {
2
2
  interface RouteMeta {
3
3
  /** page title */
4
4
  title?: string
5
- /** i18n key */
6
- i18n?: string
7
5
  /** keepalive */
8
6
  keepAlive?: boolean
9
7
  }
@@ -21,9 +21,9 @@ export class mobileUtil {
21
21
  static execute(locationParam: Param): any {
22
22
  locationParam.callBackMethodName = `mobile_func_${Math.random().toString(36).substring(7)}`
23
23
  if (window.__MICRO_APP_ENVIRONMENT__) {
24
- console.warn('我在微前端环境中')
24
+ console.warn('我在微前端环境中');
25
25
  // 微前端应用中需要绑定函数到真实的window中
26
- window.rawWindow[locationParam.callBackMethodName] = locationParam.callbackFunc
26
+ (window as any).rawWindow[locationParam.callBackMethodName] = locationParam.callbackFunc
27
27
  }
28
28
  else {
29
29
  console.warn('我不在微前端环境中')
@@ -1,57 +1,57 @@
1
- /**
2
- * 根据类型获取日期区间字符串
3
- * @param type '当年' | 'curMonth' | '当日'
4
- * @param show 区分实际值还是显示值, true为实际值, false为显示值
5
- * @returns [start, end] 例:['2024-01-01 00:00:00', '2024-12-31 23:59:59']
6
- */
7
- export function getRangeByType(type: string, show: boolean): [string, string] {
8
- const now = new Date()
9
- const year = now.getFullYear()
10
- const month = (now.getMonth() + 1).toString().padStart(2, '0')
11
- const day = now.getDate().toString().padStart(2, '0')
12
-
13
- if (!show) {
14
- if (type === 'curYear') {
15
- return [
16
- `${year}-01-01 00:00:00`,
17
- `${year}-12-31 23:59:59`,
18
- ]
19
- }
20
- if (type === 'curMonth') {
21
- const lastDay = new Date(year, now.getMonth() + 1, 0).getDate()
22
- return [
23
- `${year}-${month}-01 00:00:00`,
24
- `${year}-${month}-${lastDay.toString().padStart(2, '0')} 23:59:59`,
25
- ]
26
- }
27
- if (type === 'curDay') {
28
- return [
29
- `${year}-${month}-${day} 00:00:00`,
30
- `${year}-${month}-${day} 23:59:59`,
31
- ]
32
- }
33
- }
34
- if (show) {
35
- if (type === 'curYear') {
36
- return [
37
- `${year}-01-01`,
38
- `${year}-12-31`,
39
- ]
40
- }
41
- if (type === 'curMonth') {
42
- const lastDay = new Date(year, now.getMonth() + 1, 0).getDate()
43
- return [
44
- `${year}-${month}-01`,
45
- `${year}-${month}-${lastDay.toString().padStart(2, '0')}`,
46
- ]
47
- }
48
- if (type === 'curDay') {
49
- return [
50
- `${year}-${month}-${day}`,
51
- `${year}-${month}-${day}`,
52
- ]
53
- }
54
- }
55
- // 兜底返回空字符串数组
56
- return ['', '']
57
- }
1
+ /**
2
+ * 根据类型获取日期区间字符串
3
+ * @param type '当年' | 'curMonth' | '当日'
4
+ * @param show 区分实际值还是显示值, true为实际值, false为显示值
5
+ * @returns [start, end] 例:['2024-01-01 00:00:00', '2024-12-31 23:59:59']
6
+ */
7
+ export function getRangeByType(type: string, show: boolean): [string, string] {
8
+ const now = new Date()
9
+ const year = now.getFullYear()
10
+ const month = (now.getMonth() + 1).toString().padStart(2, '0')
11
+ const day = now.getDate().toString().padStart(2, '0')
12
+
13
+ if (!show) {
14
+ if (type === 'curYear') {
15
+ return [
16
+ `${year}-01-01 00:00:00`,
17
+ `${year}-12-31 23:59:59`,
18
+ ]
19
+ }
20
+ if (type === 'curMonth') {
21
+ const lastDay = new Date(year, now.getMonth() + 1, 0).getDate()
22
+ return [
23
+ `${year}-${month}-01 00:00:00`,
24
+ `${year}-${month}-${lastDay.toString().padStart(2, '0')} 23:59:59`,
25
+ ]
26
+ }
27
+ if (type === 'curDay') {
28
+ return [
29
+ `${year}-${month}-${day} 00:00:00`,
30
+ `${year}-${month}-${day} 23:59:59`,
31
+ ]
32
+ }
33
+ }
34
+ if (show) {
35
+ if (type === 'curYear') {
36
+ return [
37
+ `${year}-01-01`,
38
+ `${year}-12-31`,
39
+ ]
40
+ }
41
+ if (type === 'curMonth') {
42
+ const lastDay = new Date(year, now.getMonth() + 1, 0).getDate()
43
+ return [
44
+ `${year}-${month}-01`,
45
+ `${year}-${month}-${lastDay.toString().padStart(2, '0')}`,
46
+ ]
47
+ }
48
+ if (type === 'curDay') {
49
+ return [
50
+ `${year}-${month}-${day}`,
51
+ `${year}-${month}-${day}`,
52
+ ]
53
+ }
54
+ }
55
+ // 兜底返回空字符串数组
56
+ return ['', '']
57
+ }
@@ -1,7 +1,5 @@
1
- import { pageDefaultTitle } from '@af-mobile-client-vue3/types/settings'
1
+ import { appName } from '../constants'
2
2
 
3
- export default function setPageTitle(routerTitle?: any): void {
4
- window.document.title = routerTitle
5
- ? `${routerTitle} | ${pageDefaultTitle}`
6
- : `${pageDefaultTitle}`
3
+ export default function setPageTitle(title?: string): void {
4
+ window.document.title = title ? `${title} - ${appName}` : appName
7
5
  }
@@ -1,11 +1,10 @@
1
1
  <script setup>
2
- import SvgIcon from '@af-mobile-client-vue3/components/core/SvgIcon/index.vue'
3
2
  </script>
4
3
 
5
4
  <template>
6
5
  <div class="load_error_main">
7
6
  <div class="container">
8
- <SvgIcon name="loadError" class="loadError" />
7
+ <div class="loadError i-svg:loadError" />
9
8
  </div>
10
9
  <div class="text">
11
10
  似乎出了点问题,下拉再试试
@@ -1,18 +1,17 @@
1
1
  <script setup>
2
- import SvgIcon from '@af-mobile-client-vue3/components/core/SvgIcon/index.vue'
3
2
  import { Button as VanButton } from 'vant'
4
3
  </script>
5
4
 
6
5
  <template>
7
6
  <div class="not_found_main">
8
7
  <div class="container">
9
- <SvgIcon name="notFound" class="notFound" />
8
+ <div class="notFound i-svg:notFound" />
10
9
  </div>
11
10
  <div class="text">
12
11
  本来无一物,何处惹尘埃
13
12
  </div>
14
13
  <div class="button_group">
15
- <VanButton type="primary" size="small" @click="$router.replace('/home')">
14
+ <VanButton type="primary" size="small" @click="$router.replace('/')">
16
15
  返回首页
17
16
  </VanButton>
18
17
  </div>