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.
- package/.editorconfig +5 -34
- package/.env +1 -1
- package/.env.development +0 -3
- package/.env.production +1 -7
- package/CLAUDE.md +5 -0
- package/README.md +2 -1
- package/build/vite/index.ts +2 -12
- package/build/vite/optimize.ts +2 -2
- package/compress.js +36 -0
- package/package.json +37 -37
- package/postcss.config.ts +1 -1
- package/src/App.vue +4 -6
- package/src/assets/img/banner/appraise-banner-1.png +0 -0
- package/src/assets/img/banner/appraise-banner-2.png +0 -0
- package/src/components/core/BeautifulLoading/index.vue +1 -2
- package/src/components/core/ImageUploader/index.vue +3 -2
- package/src/components/core/NavBar/index.vue +24 -14
- package/src/components/core/Tabbar/index.vue +5 -3
- package/src/components/core/XGridDropOption/index.vue +7 -9
- package/src/components/core/XMultiSelect/index.vue +1 -1
- package/src/components/data/CardContainer/CardContainer.vue +118 -0
- package/src/components/data/CardContainer/CardHeader.vue +99 -0
- package/src/components/data/InfoDisplay/index.vue +132 -0
- package/src/components/data/UserDetail/api.ts +24 -0
- package/src/components/data/UserDetail/index.vue +620 -0
- package/src/components/data/UserDetail/recordEntries.ts +159 -0
- package/src/components/data/UserDetail/types.ts +26 -0
- package/src/components/data/XBadge/index.vue +2 -2
- package/src/components/data/XCellList/index.vue +76 -30
- package/src/components/data/XForm/index.vue +1 -1
- package/src/components/data/XFormGroup/doc/FormGroupDemo.vue +4 -4
- package/src/components/data/XFormGroup/doc/README.md +33 -20
- package/src/components/data/XFormGroup/index.vue +51 -35
- package/src/components/data/XFormItem/index.vue +13 -33
- package/src/components/data/XOlMap/README.md +61 -61
- package/src/components/data/XOlMap/XLocationPicker/index.vue +2 -1
- package/src/components/data/XReportForm/XReportFormJsonRender.vue +22 -22
- package/src/components/data/XReportForm/index.vue +23 -14
- package/src/components/data/XReportGrid/XAddReport/XAddReport.vue +1 -2
- package/src/components/data/XReportGrid/XAddReport/index.md +17 -16
- package/src/components/data/XReportGrid/XReport.vue +3 -3
- package/src/components/data/XReportGrid/XReportDesign.vue +13 -13
- package/src/components/data/XReportGrid/XReportDrawer/XReportDrawer.vue +1 -1
- package/src/components/data/XReportGrid/XReportJsonRender.vue +11 -11
- package/src/components/data/XReportGrid/XReportTrGroup.vue +3 -3
- package/src/components/data/XReportGrid/index.md +14 -10
- package/src/components/data/XSignature/index.vue +1 -2
- package/src/components/layout/NormalDataLayout/index.vue +2 -3
- package/src/config/routes.ts +6 -2
- package/src/constants/index.ts +2 -0
- package/src/font-style/font.css +1 -1
- package/src/hooks/useBoolean.ts +26 -0
- package/src/hooks/useLoading.ts +16 -0
- package/src/locales/en-US.json +52 -28
- package/src/locales/zh-CN.json +57 -33
- package/src/main.ts +0 -2
- package/src/plugins/collectIcons.ts +10 -0
- package/src/router/README.md +1 -1
- package/src/router/guards.ts +1 -1
- package/src/router/index.ts +1 -1
- package/src/router/routes.ts +176 -6
- package/src/router/types.ts +0 -2
- package/src/services/api/user.ts +17 -0
- package/src/stores/modules/setting.ts +2 -1
- package/src/styles/var.less +9 -0
- package/src/types/vue-router.d.ts +0 -2
- package/src/utils/mobileUtil.ts +2 -2
- package/src/utils/queryFormDefaultRangePicker.ts +57 -57
- package/src/utils/set-page-title.ts +3 -5
- package/src/views/common/LoadError.vue +1 -2
- package/src/views/common/NotFound.vue +2 -3
- package/src/views/component/IconifyView/index.vue +0 -3
- package/src/views/component/UserDetailView/UserDetailPage.vue +77 -0
- package/src/views/component/UserDetailView/index.vue +234 -0
- package/src/views/component/XCellListView/index.vue +24 -73
- package/src/views/component/XFormGroupView/index.vue +7 -11
- package/src/views/component/XFormView/index.vue +2 -2
- package/src/views/component/XOlMapView/testData.ts +1 -1
- package/src/views/component/index.vue +4 -0
- package/src/views/component/menu.vue +1 -1
- package/src/views/user/login/ForgetPasswordForm.vue +1 -1
- package/src/views/user/login/LoginForm.vue +4 -3
- package/src/views/user/login/LoginWave.vue +1 -1
- package/src/views/user/my/comm/ModifyPassword.vue +346 -0
- package/src/views/user/my/index.vue +440 -183
- package/src/views/user/register/index.vue +952 -0
- package/src/views/userRecords/AbnormalAlarmRecords.vue +21 -0
- package/src/views/userRecords/CardReplacementRecords.vue +21 -0
- package/src/views/userRecords/ChangeRecords.vue +19 -0
- package/src/views/userRecords/CommandViewRecords.vue +20 -0
- package/src/views/userRecords/GasCompensationRecords.vue +20 -0
- package/src/views/userRecords/InstrumentCollectionRecords.vue +21 -0
- package/src/views/userRecords/MeterRecords.vue +20 -0
- package/src/views/userRecords/OperateRecords.vue +51 -0
- package/src/views/userRecords/OtherChargeRecords.vue +19 -0
- package/src/views/userRecords/PaymentRecords.vue +28 -0
- package/src/views/userRecords/PriceAdjustmentRecords.vue +19 -0
- package/src/views/userRecords/ReplacementRecords.vue +19 -0
- package/src/views/userRecords/SafetyRecords.vue +19 -0
- package/src/views/userRecords/TransactionRecords.vue +21 -0
- package/src/views/userRecords/TransferRecords.vue +19 -0
- package/src/views/userRecords/operateRecordDetail/index.vue +316 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AddUserDetail.vue +124 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AdvanceDeliveryDetail.vue +88 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsCancelDetail.vue +205 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/AutoAccountsDetail.vue +192 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankDkDetail.vue +192 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BankPayDetail.vue +192 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/BlacklistDetail.vue +153 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CancellationDetail.vue +101 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterCancelDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardMeterCenterDetail.vue +153 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/CardOverUserDetail.vue +153 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterCancelDetail.vue +166 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ChangeMeterDetail.vue +205 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/DisableManageDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/EnableManageDetail.vue +114 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FaZheChangeDetail.vue +124 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/FeeDeductionDetail.vue +153 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/GasPriceChangeDetail.vue +126 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/InputtorChangeDetail.vue +126 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterCancelDetail.vue +114 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotMeterCenterDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/IotOpenDetail.vue +88 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineCardDetail.vue +101 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterCancelDetail.vue +218 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/MachineMeterCenterDetail.vue +153 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OffGasAddGasDetail.vue +140 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeCancelDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OtherChargeDetail.vue +114 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/OverUserChangeDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReBillDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/RefundDetail.vue +114 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageCancelDetail.vue +127 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/ReplaceCardManageDetail.vue +114 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/SaleCardGasDetail.vue +140 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageCancelDetail.vue +152 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/TransferManageDetail.vue +178 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/UserChangeDetail.vue +123 -0
- package/src/views/userRecords/operateRecordDetail/operateRecordDetails/WechatPayDetail.vue +192 -0
- package/src/views/userRecords/types.ts +66 -0
- package/tsconfig.json +5 -8
- package/uno.config.ts +36 -1
- package/vite.config.ts +10 -3
- package/.env.envoiceShow +0 -7
- package/src/components/core/App/MicroAppView.vue +0 -59
- package/src/components/core/SvgIcon/index.vue +0 -61
- package/src/utils/local-storage.ts +0 -9
- 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
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"src/
|
|
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
|
|
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://
|
|
15
|
-
const v3Server = 'http://
|
|
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
|
|
105
|
+
outDir: `./dist/${env.VITE_APP_OUT_DIR}`,
|
|
99
106
|
rollupOptions: {
|
|
100
107
|
output: {
|
|
101
108
|
// 打包时分割资源
|
package/.env.envoiceShow
DELETED
|
@@ -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,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>
|