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
@@ -0,0 +1,192 @@
1
+ <script setup lang="ts">
2
+ import { Col, Row } from 'vant'
3
+
4
+ const props = defineProps<{
5
+ data: Record<any, any>
6
+ }>()
7
+ </script>
8
+
9
+ <template>
10
+ <div class="detail-container">
11
+ <Row>
12
+ <Col span="24">
13
+ <div class="detail-item">
14
+ <p class="detail-label">
15
+ 客户名称
16
+ </p>
17
+ <p class="detail-value">
18
+ {{ props.data.f_user_name }}
19
+ </p>
20
+ </div>
21
+ </Col>
22
+ </Row>
23
+
24
+ <Row>
25
+ <Col span="24">
26
+ <div class="detail-item">
27
+ <p class="detail-label">
28
+ 上期底数
29
+ </p>
30
+ <p class="detail-value">
31
+ {{ props.data.f_last_tablebase }}
32
+ </p>
33
+ </div>
34
+ </Col>
35
+ </Row>
36
+
37
+ <Row>
38
+ <Col span="24">
39
+ <div class="detail-item">
40
+ <p class="detail-label">
41
+ 本期底数
42
+ </p>
43
+ <p class="detail-value">
44
+ {{ props.data.f_tablebase }}
45
+ </p>
46
+ </div>
47
+ </Col>
48
+ </Row>
49
+
50
+ <Row>
51
+ <Col span="24">
52
+ <div class="detail-item">
53
+ <p class="detail-label">
54
+ 用气量
55
+ </p>
56
+ <p class="detail-value">
57
+ {{ props.data.f_pregas }}
58
+ </p>
59
+ </div>
60
+ </Col>
61
+ </Row>
62
+
63
+ <Row>
64
+ <Col span="24">
65
+ <div class="detail-item">
66
+ <p class="detail-label">
67
+ 用气金额
68
+ </p>
69
+ <p class="detail-value">
70
+ {{ props.data.f_preamount }}
71
+ </p>
72
+ </div>
73
+ </Col>
74
+ </Row>
75
+
76
+ <Row>
77
+ <Col span="24">
78
+ <div class="detail-item">
79
+ <p class="detail-label">
80
+ 本期剩余气量
81
+ </p>
82
+ <p class="detail-value">
83
+ {{ props.data.f_surplus_gas }}
84
+ </p>
85
+ </div>
86
+ </Col>
87
+ </Row>
88
+
89
+ <Row>
90
+ <Col span="24">
91
+ <div class="detail-item">
92
+ <p class="detail-label">
93
+ 本期扣减气量
94
+ </p>
95
+ <p class="detail-value">
96
+ {{ props.data.f_haircut_gas }}
97
+ </p>
98
+ </div>
99
+ </Col>
100
+ </Row>
101
+
102
+ <Row>
103
+ <Col span="24">
104
+ <div class="detail-item">
105
+ <p class="detail-label">
106
+ 上期结余
107
+ </p>
108
+ <p class="detail-value">
109
+ {{ props.data.f_user_balance }}
110
+ </p>
111
+ </div>
112
+ </Col>
113
+ </Row>
114
+
115
+ <Row>
116
+ <Col span="24">
117
+ <div class="detail-item">
118
+ <p class="detail-label">
119
+ 本期结余
120
+ </p>
121
+ <p class="detail-value">
122
+ {{ props.data.f_curbalance }}
123
+ </p>
124
+ </div>
125
+ </Col>
126
+ </Row>
127
+
128
+ <Row>
129
+ <Col span="24">
130
+ <div class="detail-item">
131
+ <p class="detail-label">
132
+ 操作人
133
+ </p>
134
+ <p class="detail-value">
135
+ {{ props.data.f_operator }}
136
+ </p>
137
+ </div>
138
+ </Col>
139
+ </Row>
140
+
141
+ <Row>
142
+ <Col span="24">
143
+ <div class="detail-item">
144
+ <p class="detail-label">
145
+ 操作时间
146
+ </p>
147
+ <p class="detail-value">
148
+ {{ props.data.f_operate_date }}
149
+ </p>
150
+ </div>
151
+ </Col>
152
+ </Row>
153
+ </div>
154
+ </template>
155
+
156
+ <style scoped lang="less">
157
+ .detail-container {
158
+ padding: 8px;
159
+ background: #ffffff;
160
+ border-radius: 4px;
161
+ box-shadow: 0 1px 4px rgba(100, 101, 102, 0.08);
162
+
163
+ :deep(.van-row) {
164
+ margin-bottom: 2px;
165
+
166
+ &:last-child {
167
+ margin-bottom: 0;
168
+ }
169
+ }
170
+ }
171
+
172
+ .detail-item {
173
+ padding: 4px 8px;
174
+ display: flex;
175
+ align-items: center;
176
+
177
+ .detail-label {
178
+ font-size: 13px;
179
+ color: #969799;
180
+ margin: 0;
181
+ min-width: 70px;
182
+ }
183
+
184
+ .detail-value {
185
+ font-size: 13px;
186
+ color: #323233;
187
+ margin: 0 0 0 8px;
188
+ flex: 1;
189
+ word-break: break-all;
190
+ }
191
+ }
192
+ </style>
@@ -0,0 +1,66 @@
1
+ export interface RecordBaseInfo {
2
+ id: string
3
+ date: string
4
+ status?: string
5
+ }
6
+
7
+ export interface PaymentRecord extends RecordBaseInfo {
8
+ type: string
9
+ amount: string
10
+ gas: string
11
+ paymentMethod: string
12
+ }
13
+
14
+ export interface MeterRecord extends RecordBaseInfo {
15
+ lastReading: string
16
+ currentReading: string
17
+ usage: string
18
+ reader: string
19
+ }
20
+
21
+ export interface TransferRecord extends RecordBaseInfo {
22
+ oldUser: string
23
+ newUser: string
24
+ reason: string
25
+ operator: string
26
+ }
27
+
28
+ export interface SafetyRecord extends RecordBaseInfo {
29
+ inspector: string
30
+ type: string
31
+ issues: string
32
+ suggestions: string
33
+ }
34
+
35
+ export interface ReplacementRecord extends RecordBaseInfo {
36
+ oldMeterNumber: string
37
+ newMeterNumber: string
38
+ reason: string
39
+ operator: string
40
+ remark: string
41
+ }
42
+
43
+ export interface OtherChargeRecord extends RecordBaseInfo {
44
+ type: string
45
+ item: string
46
+ amount: string
47
+ operator: string
48
+ paymentMethod: string
49
+ remark: string
50
+ }
51
+
52
+ export interface TransactionRecord extends RecordBaseInfo {
53
+ type: string
54
+ amount: string
55
+ status: string
56
+ remark: string
57
+ }
58
+
59
+ // 记录查询通用请求参数
60
+ export interface RecordQueryParams {
61
+ userId: string
62
+ pageNo?: number
63
+ pageSize?: number
64
+ startDate?: string
65
+ endDate?: string
66
+ }
package/tsconfig.json CHANGED
@@ -8,11 +8,11 @@
8
8
  "module": "esnext",
9
9
  "moduleResolution": "Bundler",
10
10
  "paths": {
11
- "@af-mobile-client-vue3/*": ["src/*"]
11
+ "@af-mobile-client-vue3/*": ["src/*"],
12
+ "~root/*": ["./*"]
12
13
  },
13
14
  "types": [
14
15
  "node",
15
- "unplugin-vue-router/client",
16
16
  "vite-plugin-pwa/client"
17
17
  ],
18
18
  "allowJs": true,
@@ -32,11 +32,8 @@
32
32
  "src/**/*.ts",
33
33
  "src/**/*.tsx",
34
34
  "src/**/*.vue",
35
- "tests/**/*.ts",
36
- "tests/**/*.tsx",
37
- "src/components.d.ts",
38
- "src/auto-imports.d.ts",
39
- "src/typed-router.d.ts",
40
- "tests/*.ts"
35
+ "src/types/components.d.ts",
36
+ "src/types/auto-imports.d.ts",
37
+ "src/types/typed-router.d.ts"
41
38
  ]
42
39
  }
package/uno.config.ts CHANGED
@@ -1,5 +1,7 @@
1
- import { createRemToPxProcessor } from '@unocss/preset-wind4/utils'
1
+ import * as fs from 'node:fs'
2
2
 
3
+ import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders'
4
+ import { createRemToPxProcessor } from '@unocss/preset-wind4/utils'
3
5
  import {
4
6
  defineConfig,
5
7
  presetAttributify,
@@ -8,9 +10,27 @@ import {
8
10
  transformerDirectives,
9
11
  transformerVariantGroup,
10
12
  } from 'unocss'
13
+ import collectUsedIcons from './src/plugins/collectIcons'
14
+
15
+ // 本地 SVG 图标存放目录
16
+ const iconsDir = './src/icons/svg'
11
17
 
12
18
  const BASE_FONT_SIZE = 4
13
19
 
20
+ // 读取本地 SVG 目录,自动生成 `safelist`
21
+ function generateSafeList() {
22
+ try {
23
+ return fs
24
+ .readdirSync(iconsDir)
25
+ .filter(file => file.endsWith('.svg'))
26
+ .map(file => `i-svg:${file.replace('.svg', '')}`)
27
+ }
28
+ catch (error) {
29
+ console.error('无法读取图标目录:', error)
30
+ return []
31
+ }
32
+ }
33
+
14
34
  export default defineConfig({
15
35
  shortcuts: [
16
36
  ['btn', 'px-6 py-3 rounded-4 border-none inline-block bg-green-400 text-white cursor-pointer outline-hidden hover:bg-green-600 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],
@@ -34,9 +54,24 @@ export default defineConfig({
34
54
  'width': 'var(--van-font-size-md)',
35
55
  'height': 'var(--van-font-size-md)',
36
56
  },
57
+ // 注册本地 SVG 图标
58
+ collections: {
59
+ // svg 是图标集合名称,使用 `i-svg:图标名` 调用
60
+ svg: FileSystemIconLoader(iconsDir, (svg) => {
61
+ // 如果 SVG 文件未定义 `fill` 属性,则默认填充 `currentColor`
62
+ // 这样图标颜色会继承文本颜色,方便在不同场景下适配
63
+ return svg.includes('fill="')
64
+ ? svg
65
+ : svg.replace(/^<svg /, '<svg fill="currentColor" ')
66
+ }),
67
+ },
37
68
  },
38
69
  ),
39
70
  ],
71
+ safelist: [
72
+ ...generateSafeList(),
73
+ ...collectUsedIcons,
74
+ ], // 动态生成 `safelist`
40
75
  postprocess: [
41
76
  createRemToPxProcessor(BASE_FONT_SIZE),
42
77
  ],
package/vite.config.ts CHANGED
@@ -11,8 +11,8 @@ export default ({ mode }: ConfigEnv): UserConfig => {
11
11
 
12
12
  const appProxys = {}
13
13
 
14
- const v4Server = 'http://aote-office.8866.org:31567'
15
- const v3Server = 'http://aote-office.8866.org:31567'
14
+ const v4Server = 'http://192.168.50.67:31567'
15
+ const v3Server = 'http://192.168.50.67:31567'
16
16
  const OSSServerDev = 'http://192.168.50.67:30351'
17
17
  const geoserver = 'http://39.104.49.8:30372'
18
18
  // const OSSServerProd = 'http://192.168.50.67:31351'
@@ -68,6 +68,13 @@ export default ({ mode }: ConfigEnv): UserConfig => {
68
68
  changeOrigin: true,
69
69
  rewrite: path => path.replace(/^\/linepatrol\/geoserver/, '/geoserver'),
70
70
  },
71
+ '/api/af-revenue': {
72
+ // target: v4Server,
73
+ rewrite: (path: string) => path.replace(/^\/api\/af-revenue\//, '/'),
74
+ target: 'http://127.0.0.1:9026',
75
+ ws: false,
76
+ changeOrigin: true,
77
+ },
71
78
  '/api': {
72
79
  // v3用
73
80
  // rewrite: (path: string) => path.replace(/^\/api\/af-system\//, '/rs/'),
@@ -95,7 +102,7 @@ export default ({ mode }: ConfigEnv): UserConfig => {
95
102
  build: {
96
103
  cssCodeSplit: false,
97
104
  chunkSizeWarningLimit: 2048,
98
- outDir: env.VITE_APP_OUT_DIR || 'dist',
105
+ outDir: `./dist/${env.VITE_APP_OUT_DIR}`,
99
106
  rollupOptions: {
100
107
  output: {
101
108
  // 打包时分割资源
package/.env.envoiceShow DELETED
@@ -1,7 +0,0 @@
1
- VITE_APP_PUBLIC_PATH=/invoiceShow
2
- VITE_APP_PREVIEW=true
3
- VITE_APP_API_BASE_URL=/api
4
- VITE_APP_WEB_CONFIG_KEY=admin.webconfig
5
- VITE_APP_SYSTEM_NAME=af-system
6
- # 最低兼容性 V4(最新产品)V3(V3产品) OA(公司OA)
7
- VITE_APP_COMPATIBLE=V4
@@ -1,59 +0,0 @@
1
- <script setup lang="ts">
2
- import router from '@af-mobile-client-vue3/router'
3
- import { getAppStatus } from '@micro-zoe/micro-app'
4
- import { ref } from 'vue'
5
- import { useRoute } from 'vue-router'
6
-
7
- const origin = window.location.origin
8
-
9
- const route = useRoute()
10
-
11
- const href = `${origin}/${route.params.module}`
12
-
13
- const state = ref('beforeLoad')
14
-
15
- function created() {
16
- const appStatus = getAppStatus(route.params.module as string)
17
- console.warn('created')
18
- console.warn(appStatus)
19
- // afterhidden代表已经通过keep-alive缓存了,直接显示
20
- if (appStatus === 'afterhidden')
21
- state.value = 'ready'
22
- else if (appStatus === 'unmount' || appStatus === 'error')
23
- router.replace('/404')
24
- }
25
-
26
- function error() {
27
- router.replace('/404')
28
- console.warn('error')
29
- state.value = 'error'
30
- }
31
-
32
- function mounted() {
33
- console.warn('mounted')
34
- state.value = 'ready'
35
- }
36
- </script>
37
-
38
- <template>
39
- <div class="app-wrapper">
40
- <div v-show="state === 'beforeLoad'">
41
- <BeautifulLoading />
42
- </div>
43
- <div v-show="state === 'ready'">
44
- <micro-app
45
- :name="route.params.module" :url="href" iframe keep-alive @created="created"
46
- @mounted="mounted"
47
- @error="error"
48
- />
49
- </div>
50
- </div>
51
- </template>
52
-
53
- <style lang="less" scoped>
54
- .app-wrapper {
55
- position: relative;
56
- height: 100%;
57
- width: 100%;
58
- }
59
- </style>
@@ -1,61 +0,0 @@
1
- <script setup lang="ts">
2
- import { isExternal } from '@af-mobile-client-vue3/utils/validate'
3
- import { computed } from 'vue'
4
-
5
- interface Props {
6
- name: string
7
- className?: string
8
- }
9
- const props = withDefaults(defineProps<Props>(), {
10
- name: '',
11
- className: '',
12
- })
13
-
14
- const isExternalIcon = computed(() => isExternal(props.name))
15
- const iconName = computed(() => `#icon-${props.name}`)
16
- const svgClass = computed(() => {
17
- if (props.className)
18
- return `svg-icon ${props.className}`
19
- else
20
- return 'svg-icon'
21
- })
22
- // 外链 icon
23
- const styleExternalIcon = computed(() => {
24
- return {
25
- 'mask': `url(${props.name}) no-repeat 50% 50%`,
26
- '-webkit-mask': `url(${props.name}) no-repeat 50% 50%`,
27
- }
28
- })
29
- </script>
30
-
31
- <template>
32
- <div
33
- v-if="isExternalIcon"
34
- :style="styleExternalIcon"
35
- class="svg-external-icon svg-icon"
36
- v-bind="$attrs"
37
- />
38
- <svg v-else :class="svgClass" aria-hidden="true" v-bind="$attrs">
39
- <use :xlink:href="iconName" />
40
- </svg>
41
- </template>
42
-
43
- <style scoped>
44
- .svg-icon {
45
- width: 1em;
46
- height: 1em;
47
- vertical-align: -0.15em;
48
- fill: currentColor;
49
- overflow: hidden;
50
- }
51
-
52
- .svg-external-icon {
53
- background-color: currentColor;
54
- mask-size: cover !important;
55
- display: inline-block;
56
- }
57
-
58
- .svg-icon-active-blue {
59
- color: #1989fa;
60
- }
61
- </style>
@@ -1,9 +0,0 @@
1
- import store from 'store'
2
- import expirePlugin from 'store/plugins/expire'
3
-
4
- // plugin usage:
5
- store.addPlugin(expirePlugin)
6
-
7
- export { store as localStorage }
8
-
9
- export default store
@@ -1,97 +0,0 @@
1
- <script setup lang="ts">
2
- import XFormGroup from '@af-mobile-client-vue3/components/data/XFormGroup/index.vue'
3
- import { runLogic } from '@af-mobile-client-vue3/services/api/common'
4
- import { useUserStore } from '@af-mobile-client-vue3/stores/modules/user'
5
- import dayjs from 'dayjs/esm/index'
6
- import { showToast } from 'vant'
7
- import { onMounted, ref } from 'vue'
8
- import { useRoute } from 'vue-router'
9
-
10
- const configName = ref('appapplyuserinfoFormGroup')
11
- const serviceName = ref('af-apply')
12
- const route = useRoute()
13
- const userInfo = useUserStore().getUserInfo()
14
- const workflowId = ref('3045')
15
- const userinfoid = ref('93116')
16
- const model = ref('编辑')
17
- const groupFormData = ref({})
18
-
19
- function submit(res) {
20
- if (model.value === '新增') {
21
- res.t_userinfo.f_operate_date = dayjs().format('YYYY-MM-DD HH:mm:ss')
22
- res.t_userinfo.f_orgid = userInfo.f_orgid
23
- res.t_userinfo.f_orgname = userInfo.f_orgname
24
- res.t_userinfo.f_depid = userInfo.f_depid
25
- res.t_userinfo.f_depname = userInfo.f_depname
26
- res.t_userinfo.f_operatorid = userInfo.f_operatorid
27
- res.t_userinfo.f_operator = userInfo.f_operator
28
- res.t_userinfo.f_workflow_id = this.f_workflow_id
29
- res.t_userinfo.f_user_state = '预备'
30
-
31
- res.t_userfiles.f_operate_date = dayjs().format('YYYY-MM-DD HH:mm:ss')
32
- res.t_userfiles.f_orgid = userInfo.f_orgid
33
- res.t_userfiles.f_orgname = userInfo.f_orgname
34
- res.t_userfiles.f_depid = userInfo.f_depid
35
- res.t_userfiles.f_depname = userInfo.f_depname
36
- res.t_userfiles.f_operatorid = userInfo.f_operatorid
37
- res.t_userfiles.f_operator = userInfo.f_operator
38
- res.t_userfiles.f_workflow_id = this.f_workflow_id
39
- res.t_userfiles.f_table_state = '待开通'
40
- }
41
- let saveData = res
42
- if (saveData.t_userfiles.f_gasbrand_id.length > 0) {
43
- saveData.t_userfiles.f_gasbrand_id = saveData.t_userfiles.f_gasbrand_id[0]
44
- }
45
- if (saveData.t_userfiles.f_price_id.length > 0) {
46
- saveData.t_userfiles.f_price_id = saveData.t_userfiles.f_price_id[0]
47
- }
48
- if (model.value === '编辑') {
49
- saveData = Object.assign(saveData, {
50
- f_operator_record: userInfo.f_operator,
51
- f_operatorid_record: userInfo.f_operatorid,
52
- f_orgid_record: userInfo.f_orgid,
53
- f_orgname_record: userInfo.f_orgname,
54
- f_depid_record: userInfo.f_depid,
55
- f_depname_record: userInfo.f_depname,
56
- })
57
- }
58
- runLogic('userFIleSaveLogic', saveData, 'af-revenue').then((res) => {
59
- showToast('操作成功!')
60
- history.back()
61
- })
62
- }
63
- const isInit = ref(false)
64
- function init() {
65
- if (model.value === '编辑') {
66
- runLogic('getFileDetailForEdit', { f_userinfo_id: userinfoid.value }, 'af-revenue').then((res) => {
67
- // if (res.t_userfiles.f_gasmodel_id) {
68
- // res.t_userfiles.f_gasmodel_id = 76
69
- // }
70
- // if (res.t_userfiles.f_price_id) {
71
- // res.t_userfiles.f_price_id = [res.t_userfiles.f_price_id]
72
- // }
73
- console.log('1111111----,', res)
74
- groupFormData.value = res
75
- isInit.value = true
76
- })
77
- }
78
- }
79
- onMounted(() => {
80
- init()
81
- })
82
- </script>
83
-
84
- <template>
85
- <XFormGroup
86
- v-if="isInit"
87
- mode="修改"
88
- :config-name="configName"
89
- :service-name="serviceName"
90
- :group-form-data="groupFormData"
91
- @submit="submit"
92
- />
93
- </template>
94
-
95
- <style scoped lang="less">
96
-
97
- </style>