af-mobile-client-vue3 1.4.63 → 1.4.64

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 (29) hide show
  1. package/certs/127.0.0.1+2-key.pem +28 -0
  2. package/certs/127.0.0.1+2.pem +27 -0
  3. package/mock/modules/prose.mock.ts.timestamp-1758877157774.mjs +53 -0
  4. package/mock/modules/user.mock.ts.timestamp-1758877157774.mjs +97 -0
  5. package/package.json +120 -120
  6. package/src/api/user/index.ts +45 -45
  7. package/src/components/common/otherCharge/ChargePrintSelectorAndRemarks.vue +137 -137
  8. package/src/components/common/otherCharge/CodePayment.vue +357 -357
  9. package/src/components/common/otherCharge/FileUploader.vue +602 -602
  10. package/src/components/common/otherCharge/GridFileUploader.vue +846 -846
  11. package/src/components/common/otherCharge/PaymentMethodSelector.vue +202 -202
  12. package/src/components/common/otherCharge/PaymentMethodSelectorCard.vue +45 -45
  13. package/src/components/common/otherCharge/ReceiptModal.vue +273 -273
  14. package/src/components/common/otherCharge/index.ts +43 -43
  15. package/src/components/core/ImageUploader/index.vue +510 -510
  16. package/src/components/data/OtherCharge/OtherChargeItemModal.vue +547 -547
  17. package/src/router/guards.ts +131 -131
  18. package/src/services/api/Login.ts +6 -6
  19. package/src/services/v3Api.ts +170 -170
  20. package/src/types/platform.ts +194 -194
  21. package/src/utils/platform-auth.ts +150 -150
  22. package/src/utils/queryFormDefaultRangePicker.ts +57 -57
  23. package/src/views/component/XCellListView/index.vue +107 -138
  24. package/src/views/component/XFormGroupView/index.vue +78 -82
  25. package/src/views/component/XFormView/index.vue +41 -46
  26. package/src/views/external/index.vue +158 -158
  27. package/src/views/loading/AuthLoading.vue +395 -395
  28. package/src/views/user/register/index.vue +958 -958
  29. package/vite.config.ts +122 -122
@@ -1,82 +1,78 @@
1
- <script setup lang="ts">
2
- import XFormGroup from '@af-mobile-client-vue3/components/data/XFormGroup/index.vue'
3
- import NormalDataLayout from '@af-mobile-client-vue3/components/layout/NormalDataLayout/index.vue'
4
- import { showDialog } from 'vant'
5
- import { ref } from 'vue'
6
- import { useRoute } from 'vue-router'
7
-
8
- // const configName = ref('reviewFormGroup')
9
- // const serviceName = ref('af-revenue')
10
-
11
- // 纯表单
12
- // const configName = ref('form_check_test')
13
- // const serviceName = ref('af-system')
14
-
15
- // const configName = ref("计划下发Form")
16
- // const serviceName = ref("af-linepatrol")
17
-
18
- // 表单组
19
- const configName = ref('lngChargeAuditMobileFormGroup')
20
- const serviceName = ref('af-gaslink')
21
-
22
- const formData = ref({})
23
- const formGroup = ref(null)
24
- const route = useRoute()
25
- const isInit = ref(false)
26
- function submit(_result) {
27
- showDialog({ message: '提交成功' }).then(() => {
28
- console.log('12121')
29
- // history.back()
30
- })
31
- }
32
-
33
- // 表单组——数据
34
- // function initComponents () {
35
- // runLogic('getlngChargeAuditMobileFormGroupData', {id: 29}, 'af-gaslink').then((res) => {
36
- // formData.value = {...res}
37
- // })
38
- // }
39
-
40
- // 纯表单——数据
41
- // function initComponents() {
42
- // formData.value = { plan_name: 'af-llllll', plan_point: '1号点位', plan_single: '1号点位', plan_range: '2024-12-12' }
43
- // }
44
-
45
- // function initComponents() {
46
- // runLogic('getlngChargeAuditMobileFormGroupData', { id: route.query?.id, o_id: route.query?.o_id }, 'af-gaslink').then((res) => {
47
- // console.log('res------', res)
48
- // formData.value = { ...res }
49
- // formGroup.value.init({
50
- // configName: configName.value,
51
- // serviceName: serviceName.value,
52
- // groupFormData: { ...res },
53
- // mode: "新增"
54
- // })
55
- // isInit.value = true
56
- // })
57
- // }
58
-
59
- // onBeforeMount(() => {
60
- // initComponents()
61
- // })
62
- </script>
63
-
64
- <template>
65
- <NormalDataLayout id="XFormGroupView" title="纯表单">
66
- <template #layout_content>
67
- <!-- v-if="isInit" -->
68
- <XFormGroup
69
- ref="formGroup"
70
- config-name="ApplyAddContractFormGroup"
71
- service-name="af-apply"
72
- :group-form-data="formData"
73
- mode="新增"
74
- @submit="submit"
75
- />
76
- </template>
77
- </NormalDataLayout>
78
- </template>
79
-
80
- <style scoped lang="less">
81
-
82
- </style>
1
+ <script setup lang="ts">
2
+ import XFormGroup from '@af-mobile-client-vue3/components/data/XFormGroup/index.vue'
3
+ import NormalDataLayout from '@af-mobile-client-vue3/components/layout/NormalDataLayout/index.vue'
4
+ import { showDialog } from 'vant'
5
+ import { ref } from 'vue'
6
+ import { useRoute } from 'vue-router'
7
+
8
+ // 纯表单
9
+ const configName = ref('form_check_test')
10
+ const serviceName = ref('af-system')
11
+
12
+ // const configName = ref("计划下发Form")
13
+ // const serviceName = ref("af-linepatrol")
14
+
15
+ // 表单组
16
+ // const configName = ref('lngChargeAuditMobileFormGroup')
17
+ // const serviceName = ref('af-gaslink')
18
+
19
+ const formData = ref({})
20
+ const formGroup = ref(null)
21
+ const route = useRoute()
22
+ const isInit = ref(false)
23
+ function submit(_result) {
24
+ showDialog({ message: '提交成功' }).then(() => {
25
+ history.back()
26
+ })
27
+ }
28
+
29
+ // 表单组——数据
30
+ // function initComponents () {
31
+ // runLogic('getlngChargeAuditMobileFormGroupData', {id: 29}, 'af-gaslink').then((res) => {
32
+ // formData.value = {...res}
33
+ // })
34
+ // }
35
+
36
+ // 纯表单——数据
37
+ // function initComponents() {
38
+ // formData.value = { plan_name: 'af-llllll', plan_point: '1号点位', plan_single: '1号点位', plan_range: '2024-12-12' }
39
+ // }
40
+
41
+ // function initComponents() {
42
+ // runLogic('getlngChargeAuditMobileFormGroupData', { id: route.query?.id, o_id: route.query?.o_id }, 'af-gaslink').then((res) => {
43
+ // console.log('res------', res)
44
+ // formData.value = { ...res }
45
+ // formGroup.value.init({
46
+ // configName: configName.value,
47
+ // serviceName: serviceName.value,
48
+ // groupFormData: { ...res },
49
+ // mode: "新增"
50
+ // })
51
+ // isInit.value = true
52
+ // })
53
+ // }
54
+
55
+ // onBeforeMount(() => {
56
+ // initComponents()
57
+ // })
58
+ </script>
59
+
60
+ <template>
61
+ <NormalDataLayout id="XFormGroupView" title="纯表单">
62
+ <template #layout_content>
63
+ <!-- v-if="isInit" -->
64
+ <XFormGroup
65
+ ref="formGroup"
66
+ :config-name="configName"
67
+ :service-name="serviceName"
68
+ :group-form-data="formData"
69
+ mode="新增"
70
+ @submit="submit"
71
+ />
72
+ </template>
73
+ </NormalDataLayout>
74
+ </template>
75
+
76
+ <style scoped lang="less">
77
+
78
+ </style>
@@ -1,46 +1,41 @@
1
- <script setup lang="ts">
2
- import XForm from '@af-mobile-client-vue3/components/data/XForm/index.vue'
3
- import NormalDataLayout from '@af-mobile-client-vue3/components/layout/NormalDataLayout/index.vue'
4
- import { ref } from 'vue'
5
- import {
6
- Button as VanButton,
7
- } from 'vant'
8
-
9
- const configName = ref('测试Form')
10
- const serviceName = ref('af-safecheck')
11
- const formGroupAddConstruction = ref()
12
-
13
- // 提交测试
14
- function onSubmit(form) {
15
- console.log('事件触发提交表单----', form)
16
- }
17
- async function onAsyncSubmit() {
18
- const res = await formGroupAddConstruction.value.asyncSubmit()
19
- console.log('异步提交表单----', res)
20
- }
21
- function emitFunc(func, data) {
22
- console.log('emitFunc:', func, data)
23
- }
24
- </script>
25
-
26
- <template>
27
- <NormalDataLayout id="XFormGroupView" title="纯表单">
28
- <template #layout_content>
29
- <XForm
30
- ref="formGroupAddConstruction"
31
- mode="新增"
32
- :config-name="configName"
33
- :show-tab-header="false"
34
- service-name="af-safecheck"
35
- :is-group-form="true"
36
- @on-submit="onSubmit"
37
- @x-form-item-emit-func="emitFunc"
38
- />
39
- </template>
40
- </NormalDataLayout>
41
- <van-button type="primary" @click="onAsyncSubmit">提交</van-button>
42
- </template>
43
-
44
- <style scoped lang="less">
45
-
46
- </style>
1
+ <script setup lang="ts">
2
+ import XForm from '@af-mobile-client-vue3/components/data/XForm/index.vue'
3
+ import NormalDataLayout from '@af-mobile-client-vue3/components/layout/NormalDataLayout/index.vue'
4
+ import { ref } from 'vue'
5
+
6
+ const configName = ref('ceshiForm')
7
+ const serviceName = ref('af-system')
8
+
9
+ const formGroupAddConstruction = ref(null)
10
+ const formData = ref({
11
+ 'YYYY': '2025-09-08 16:03:22',
12
+ 'YYYY-MM': '2025-09-08 16:03:22',
13
+ 'YYYY-MM-DD': '2025-09-08 16:03:22',
14
+ 'YYYY-MM-DDHH': '2025-09-08 16:03:22',
15
+ 'YYYY-MM-DDHHMM': '2025-09-08 16:03:22',
16
+ 'YYYY-MM-DDHHMMSS': '2025-09-08 16:03:22',
17
+ })
18
+
19
+ function onSubmit(data: any) {
20
+ console.warn('提交表单', data)
21
+ }
22
+ </script>
23
+
24
+ <template>
25
+ <NormalDataLayout id="XFormGroupView" title="纯表单">
26
+ <template #layout_content>
27
+ <XForm
28
+ ref="formGroupAddConstruction"
29
+ mode="修改"
30
+ :config-name="configName"
31
+ :service-name="serviceName"
32
+ :form-data="formData"
33
+ @on-submit="onSubmit"
34
+ />
35
+ </template>
36
+ </NormalDataLayout>
37
+ </template>
38
+
39
+ <style scoped lang="less">
40
+
41
+ </style>
@@ -1,158 +1,158 @@
1
- <script setup lang="ts">
2
- import { useUserStore } from '@af-mobile-client-vue3/stores/modules/user'
3
- import { getPlatformConfig, getPlatformRoutePrefix } from '@af-mobile-client-vue3/types/platform'
4
- import {
5
- Icon as VanIcon,
6
- } from 'vant'
7
- import { computed } from 'vue'
8
- import { useRouter } from 'vue-router'
9
-
10
- const router = useRouter()
11
- const userStore = useUserStore()
12
-
13
- const userInfo = computed(() => userStore.getUserInfo())
14
- const userName = computed(() => userInfo.value?.name || '外部用户')
15
- const platformType = computed(() => userStore.getPlatformType())
16
- const platformConfig = computed(() => getPlatformConfig(platformType.value))
17
- const userDescription = computed(() =>
18
- platformConfig.value?.description || '外部系统访问用户',
19
- )
20
-
21
- function goToProfile() {
22
- const routePrefix = getPlatformRoutePrefix(platformType.value)
23
- router.push(`${routePrefix}/my`)
24
- }
25
- async function clean() {
26
- await useUserStore().registerClean()
27
- }
28
- </script>
29
-
30
- <template>
31
- <main class="external_main">
32
- <!-- 顶部导航栏 -->
33
- <nav class="header_nav">
34
- <div class="header_content">
35
- <h1 class="main_title">
36
- 智慧燃气外部系统
37
- </h1>
38
- <div class="user_section" @click="goToProfile">
39
- <VanIcon name="user-o" class="user-icon" />
40
- </div>
41
- </div>
42
- </nav>
43
-
44
- <!-- 主要内容区域 -->
45
- <div class="content">
46
- <!-- 用户信息卡片 -->
47
- <div class="user-card">
48
- <div class="user-content">
49
- <div class="user-info">
50
- <VanIcon name="user-circle-o" size="64" color="#3b82f6" />
51
- <h2 class="user-name">
52
- {{ userName }}
53
- </h2>
54
- <p class="user-desc">
55
- {{ userDescription }}
56
- </p>
57
- <p v-if="platformConfig" class="platform-name">
58
- {{ platformConfig.name }}
59
- </p>
60
- <p class="platform-name" @click="clean">
61
- 清理缓存
62
- </p>
63
- </div>
64
- </div>
65
- </div>
66
- </div>
67
- </main>
68
- </template>
69
-
70
- <style scoped lang="less">
71
- .external_main {
72
- min-height: 100vh;
73
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
74
-
75
- .header_nav {
76
- background: rgba(255, 255, 255, 0.95);
77
- backdrop-filter: blur(10px);
78
- padding: 0 16px;
79
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
80
-
81
- .header_content {
82
- display: flex;
83
- justify-content: space-between;
84
- align-items: center;
85
- height: 56px;
86
-
87
- .main_title {
88
- font-size: 1.125rem;
89
- font-weight: 600;
90
- color: #333;
91
- margin: 0;
92
- }
93
-
94
- .user_section {
95
- padding: 8px;
96
- cursor: pointer;
97
- border-radius: 50%;
98
- background: rgba(59, 130, 246, 0.1);
99
- transition: all 0.3s ease;
100
-
101
- &:active {
102
- background: rgba(59, 130, 246, 0.2);
103
- }
104
-
105
- .user-icon {
106
- font-size: 20px;
107
- color: #3b82f6;
108
- }
109
- }
110
- }
111
- }
112
-
113
- .content {
114
- padding: 24px 16px;
115
- display: flex;
116
- justify-content: center;
117
-
118
- .user-card {
119
- width: 100%;
120
- max-width: 400px;
121
- border-radius: 12px;
122
- overflow: hidden;
123
- background: rgba(255, 255, 255, 0.95);
124
- backdrop-filter: blur(10px);
125
-
126
- :deep(.van-card__content) {
127
- padding: 32px 24px;
128
- }
129
-
130
- .user-content {
131
- .user-info {
132
- text-align: center;
133
-
134
- .user-name {
135
- font-size: 24px;
136
- font-weight: 600;
137
- color: #333;
138
- margin: 16px 0 8px 0;
139
- }
140
-
141
- .user-desc {
142
- font-size: 14px;
143
- color: #666;
144
- margin: 0;
145
- }
146
-
147
- .platform-name {
148
- font-size: 12px;
149
- color: #3b82f6;
150
- margin: 4px 0 0 0;
151
- font-weight: 500;
152
- }
153
- }
154
- }
155
- }
156
- }
157
- }
158
- </style>
1
+ <script setup lang="ts">
2
+ import { useUserStore } from '@af-mobile-client-vue3/stores/modules/user'
3
+ import { getPlatformConfig, getPlatformRoutePrefix } from '@af-mobile-client-vue3/types/platform'
4
+ import {
5
+ Icon as VanIcon,
6
+ } from 'vant'
7
+ import { computed } from 'vue'
8
+ import { useRouter } from 'vue-router'
9
+
10
+ const router = useRouter()
11
+ const userStore = useUserStore()
12
+
13
+ const userInfo = computed(() => userStore.getUserInfo())
14
+ const userName = computed(() => userInfo.value?.name || '外部用户')
15
+ const platformType = computed(() => userStore.getPlatformType())
16
+ const platformConfig = computed(() => getPlatformConfig(platformType.value))
17
+ const userDescription = computed(() =>
18
+ platformConfig.value?.description || '外部系统访问用户',
19
+ )
20
+
21
+ function goToProfile() {
22
+ const routePrefix = getPlatformRoutePrefix(platformType.value)
23
+ router.push(`${routePrefix}/my`)
24
+ }
25
+ async function clean() {
26
+ await useUserStore().registerClean()
27
+ }
28
+ </script>
29
+
30
+ <template>
31
+ <main class="external_main">
32
+ <!-- 顶部导航栏 -->
33
+ <nav class="header_nav">
34
+ <div class="header_content">
35
+ <h1 class="main_title">
36
+ 智慧燃气外部系统
37
+ </h1>
38
+ <div class="user_section" @click="goToProfile">
39
+ <VanIcon name="user-o" class="user-icon" />
40
+ </div>
41
+ </div>
42
+ </nav>
43
+
44
+ <!-- 主要内容区域 -->
45
+ <div class="content">
46
+ <!-- 用户信息卡片 -->
47
+ <div class="user-card">
48
+ <div class="user-content">
49
+ <div class="user-info">
50
+ <VanIcon name="user-circle-o" size="64" color="#3b82f6" />
51
+ <h2 class="user-name">
52
+ {{ userName }}
53
+ </h2>
54
+ <p class="user-desc">
55
+ {{ userDescription }}
56
+ </p>
57
+ <p v-if="platformConfig" class="platform-name">
58
+ {{ platformConfig.name }}
59
+ </p>
60
+ <p class="platform-name" @click="clean">
61
+ 清理缓存
62
+ </p>
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </main>
68
+ </template>
69
+
70
+ <style scoped lang="less">
71
+ .external_main {
72
+ min-height: 100vh;
73
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
74
+
75
+ .header_nav {
76
+ background: rgba(255, 255, 255, 0.95);
77
+ backdrop-filter: blur(10px);
78
+ padding: 0 16px;
79
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
80
+
81
+ .header_content {
82
+ display: flex;
83
+ justify-content: space-between;
84
+ align-items: center;
85
+ height: 56px;
86
+
87
+ .main_title {
88
+ font-size: 1.125rem;
89
+ font-weight: 600;
90
+ color: #333;
91
+ margin: 0;
92
+ }
93
+
94
+ .user_section {
95
+ padding: 8px;
96
+ cursor: pointer;
97
+ border-radius: 50%;
98
+ background: rgba(59, 130, 246, 0.1);
99
+ transition: all 0.3s ease;
100
+
101
+ &:active {
102
+ background: rgba(59, 130, 246, 0.2);
103
+ }
104
+
105
+ .user-icon {
106
+ font-size: 20px;
107
+ color: #3b82f6;
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ .content {
114
+ padding: 24px 16px;
115
+ display: flex;
116
+ justify-content: center;
117
+
118
+ .user-card {
119
+ width: 100%;
120
+ max-width: 400px;
121
+ border-radius: 12px;
122
+ overflow: hidden;
123
+ background: rgba(255, 255, 255, 0.95);
124
+ backdrop-filter: blur(10px);
125
+
126
+ :deep(.van-card__content) {
127
+ padding: 32px 24px;
128
+ }
129
+
130
+ .user-content {
131
+ .user-info {
132
+ text-align: center;
133
+
134
+ .user-name {
135
+ font-size: 24px;
136
+ font-weight: 600;
137
+ color: #333;
138
+ margin: 16px 0 8px 0;
139
+ }
140
+
141
+ .user-desc {
142
+ font-size: 14px;
143
+ color: #666;
144
+ margin: 0;
145
+ }
146
+
147
+ .platform-name {
148
+ font-size: 12px;
149
+ color: #3b82f6;
150
+ margin: 4px 0 0 0;
151
+ font-weight: 500;
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ }
158
+ </style>