af-mobile-client-vue3 1.3.1 → 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 (107) hide show
  1. package/CLAUDE.md +5 -0
  2. package/README.md +2 -1
  3. package/compress.js +36 -36
  4. package/package.json +114 -114
  5. package/postcss.config.ts +1 -1
  6. package/src/App.vue +1 -1
  7. package/src/components/core/NavBar/index.vue +1 -1
  8. package/src/components/core/XGridDropOption/index.vue +7 -9
  9. package/src/components/core/XMultiSelect/index.vue +1 -1
  10. package/src/components/data/CardContainer/CardContainer.vue +118 -0
  11. package/src/components/data/CardContainer/CardHeader.vue +99 -0
  12. package/src/components/data/InfoDisplay/index.vue +132 -0
  13. package/src/components/data/UserDetail/api.ts +24 -0
  14. package/src/components/data/UserDetail/index.vue +620 -0
  15. package/src/components/data/UserDetail/recordEntries.ts +159 -0
  16. package/src/components/data/UserDetail/types.ts +26 -0
  17. package/src/components/data/XCellList/index.vue +66 -20
  18. package/src/components/data/XForm/index.vue +1 -1
  19. package/src/components/data/XFormGroup/doc/README.md +33 -20
  20. package/src/components/data/XFormGroup/index.vue +42 -36
  21. package/src/components/data/XFormItem/index.vue +11 -11
  22. package/src/components/data/XOlMap/README.md +61 -61
  23. package/src/components/data/XOlMap/XLocationPicker/index.vue +2 -1
  24. package/src/components/data/XReportGrid/XAddReport/index.md +17 -16
  25. package/src/components/data/XReportGrid/index.md +14 -10
  26. package/src/components/data/XSignature/index.vue +1 -2
  27. package/src/font-style/font.css +1 -1
  28. package/src/hooks/useBoolean.ts +26 -0
  29. package/src/hooks/useLoading.ts +16 -0
  30. package/src/plugins/collectIcons.ts +10 -0
  31. package/src/router/README.md +1 -1
  32. package/src/router/guards.ts +1 -1
  33. package/src/router/index.ts +1 -1
  34. package/src/router/routes.ts +176 -0
  35. package/src/services/api/user.ts +17 -0
  36. package/src/stores/modules/setting.ts +2 -1
  37. package/src/styles/var.less +9 -0
  38. package/src/views/component/IconifyView/index.vue +0 -3
  39. package/src/views/component/UserDetailView/UserDetailPage.vue +77 -0
  40. package/src/views/component/UserDetailView/index.vue +234 -0
  41. package/src/views/component/XCellListView/index.vue +2 -2
  42. package/src/views/component/XOlMapView/testData.ts +1 -1
  43. package/src/views/component/index.vue +4 -0
  44. package/src/views/component/menu.vue +1 -1
  45. package/src/views/user/login/ForgetPasswordForm.vue +1 -1
  46. package/src/views/user/login/LoginForm.vue +4 -3
  47. package/src/views/user/login/LoginWave.vue +1 -1
  48. package/src/views/user/my/comm/ModifyPassword.vue +346 -0
  49. package/src/views/user/my/index.vue +440 -183
  50. package/src/views/user/register/index.vue +952 -0
  51. package/src/views/userRecords/AbnormalAlarmRecords.vue +21 -0
  52. package/src/views/userRecords/CardReplacementRecords.vue +21 -0
  53. package/src/views/userRecords/ChangeRecords.vue +19 -0
  54. package/src/views/userRecords/CommandViewRecords.vue +20 -0
  55. package/src/views/userRecords/GasCompensationRecords.vue +20 -0
  56. package/src/views/userRecords/InstrumentCollectionRecords.vue +21 -0
  57. package/src/views/userRecords/MeterRecords.vue +20 -0
  58. package/src/views/userRecords/OperateRecords.vue +51 -0
  59. package/src/views/userRecords/OtherChargeRecords.vue +19 -0
  60. package/src/views/userRecords/PaymentRecords.vue +28 -0
  61. package/src/views/userRecords/PriceAdjustmentRecords.vue +19 -0
  62. package/src/views/userRecords/ReplacementRecords.vue +19 -0
  63. package/src/views/userRecords/SafetyRecords.vue +19 -0
  64. package/src/views/userRecords/TransactionRecords.vue +21 -0
  65. package/src/views/userRecords/TransferRecords.vue +19 -0
  66. package/src/views/userRecords/operateRecordDetail/index.vue +316 -0
  67. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AddUserDetail.vue +124 -0
  68. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AdvanceDeliveryDetail.vue +88 -0
  69. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsCancelDetail.vue +205 -0
  70. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsDetail.vue +192 -0
  71. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankDkDetail.vue +192 -0
  72. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankPayDetail.vue +192 -0
  73. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BlacklistDetail.vue +153 -0
  74. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CancellationDetail.vue +101 -0
  75. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterCancelDetail.vue +127 -0
  76. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterDetail.vue +153 -0
  77. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardOverUserDetail.vue +153 -0
  78. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterCancelDetail.vue +166 -0
  79. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterDetail.vue +205 -0
  80. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/DisableManageDetail.vue +127 -0
  81. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/EnableManageDetail.vue +114 -0
  82. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FaZheChangeDetail.vue +124 -0
  83. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FeeDeductionDetail.vue +153 -0
  84. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/GasPriceChangeDetail.vue +126 -0
  85. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/InputtorChangeDetail.vue +126 -0
  86. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterCancelDetail.vue +114 -0
  87. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterDetail.vue +127 -0
  88. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotOpenDetail.vue +88 -0
  89. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineCardDetail.vue +101 -0
  90. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterCancelDetail.vue +218 -0
  91. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterDetail.vue +153 -0
  92. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OffGasAddGasDetail.vue +140 -0
  93. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeCancelDetail.vue +127 -0
  94. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeDetail.vue +114 -0
  95. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OverUserChangeDetail.vue +127 -0
  96. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReBillDetail.vue +127 -0
  97. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/RefundDetail.vue +114 -0
  98. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageCancelDetail.vue +127 -0
  99. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageDetail.vue +114 -0
  100. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/SaleCardGasDetail.vue +140 -0
  101. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageCancelDetail.vue +152 -0
  102. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageDetail.vue +178 -0
  103. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/UserChangeDetail.vue +123 -0
  104. package/src/views/userRecords/operateRecordDetail/operateRecordDetails/WechatPayDetail.vue +192 -0
  105. package/src/views/userRecords/types.ts +66 -0
  106. package/uno.config.ts +5 -1
  107. package/vite.config.ts +9 -2
@@ -0,0 +1,132 @@
1
+ <script setup lang="ts">
2
+ import type { PropType } from 'vue'
3
+
4
+ export interface ConfigItem {
5
+ label: string
6
+ field: string
7
+ full?: boolean
8
+ format?: (value: string | number) => string
9
+ template?: string
10
+ condition?: (data: any) => boolean
11
+ }
12
+
13
+ const props = defineProps({
14
+ config: {
15
+ type: Array as PropType<ConfigItem[]>,
16
+ required: true,
17
+ },
18
+ data: {
19
+ type: Object,
20
+ default: () => ({}),
21
+ },
22
+ singleColumn: {
23
+ type: Boolean,
24
+ default: false,
25
+ },
26
+ })
27
+
28
+ // 模板解析函数
29
+ function parseTemplate(template: string, data: Record<string, any>, fieldValue: any): string {
30
+ return template.replace(/\{(\w+)\}/g, (match, key) => {
31
+ switch (key) {
32
+ case 'value':
33
+ return fieldValue ?? '--'
34
+ default:
35
+ // 支持其他字段引用,如 {f_user_name}
36
+ return data[key] ?? match
37
+ }
38
+ })
39
+ }
40
+
41
+ // 获取显示值的函数
42
+ function getDisplayValue(item: ConfigItem, data: Record<string, any>): string {
43
+ const fieldValue = data[item.field]
44
+
45
+ // 优先使用 template
46
+ if (item.template) {
47
+ return parseTemplate(item.template, data, fieldValue)
48
+ }
49
+
50
+ // 其次使用 format 函数
51
+ if (item.format) {
52
+ return item.format(fieldValue)
53
+ }
54
+
55
+ // 最后使用原始值
56
+ return fieldValue ?? '--'
57
+ }
58
+ </script>
59
+
60
+ <template>
61
+ <div class="info-grid" :class="{ 'info-grid--single-column': singleColumn }">
62
+ <div
63
+ v-for="item in props.config.filter(item => item.condition ? item.condition(props.data) : true)"
64
+ :key="item.label"
65
+ class="info-item"
66
+ :class="[
67
+ item.full ? 'info-item--full' : '',
68
+ ]"
69
+ >
70
+ <p class="info-label">
71
+ {{ item.label }}
72
+ </p>
73
+ <p class="info-value">
74
+ {{ getDisplayValue(item, props.data) }}
75
+ </p>
76
+ </div>
77
+ </div>
78
+ </template>
79
+
80
+ <style lang="less" scoped>
81
+ .info-grid {
82
+ display: grid;
83
+ gap: 12px;
84
+ width: 100%;
85
+
86
+ // 默认移动端一行两列
87
+ grid-template-columns: repeat(2, 1fr);
88
+
89
+ // 单列模式
90
+ &--single-column {
91
+ grid-template-columns: 1fr;
92
+ }
93
+
94
+ // 平板及以上屏幕展示两列
95
+ @media (min-width: 600px) {
96
+ grid-template-columns: repeat(2, 1fr);
97
+ }
98
+
99
+ // 桌面屏幕及以上展示三列
100
+ @media (min-width: 960px) {
101
+ grid-template-columns: repeat(3, 1fr);
102
+
103
+ &--single-column {
104
+ grid-template-columns: 1fr;
105
+ }
106
+ }
107
+ }
108
+
109
+ .info-item {
110
+ display: flex;
111
+ flex-direction: column;
112
+ gap: 4px;
113
+
114
+ &--full {
115
+ grid-column: 1 / -1;
116
+ }
117
+ }
118
+
119
+ .info-label {
120
+ font-size: 14px;
121
+ color: #666;
122
+ margin: 0;
123
+ }
124
+
125
+ .info-value {
126
+ font-size: 14px;
127
+ color: #333;
128
+ margin: 0;
129
+ font-weight: 600;
130
+ word-break: break-all;
131
+ }
132
+ </style>
@@ -0,0 +1,24 @@
1
+ import type { BaseUser } from './types'
2
+ import { post } from '@af-mobile-client-vue3/services/restTools'
3
+
4
+ /**
5
+ * 获取用户详情信息(通用接口)
6
+ * 各项目需要在自己的后端实现这个接口
7
+ */
8
+ export function getCacheUserDetail(
9
+ f_userinfo_id: string,
10
+ ): Promise<BaseUser> {
11
+ return post('/api/af-revenue/logic/mobile_getCacheUserDetail', {
12
+ f_userinfo_id,
13
+ })
14
+ }
15
+
16
+ /**
17
+ * 获取用户最近各种业务的时间(通用接口)
18
+ * 各项目可选实现这个接口
19
+ */
20
+ export function getRecentBusinessTime(
21
+ f_userinfo_id: string,
22
+ ): Promise<Record<string, string>> {
23
+ return post('/api/af-revenue/logic/mobile_getRecentBusinessTime', { f_userinfo_id })
24
+ }