af-mobile-client-vue3 1.2.59 → 1.3.2
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/build/vite/index.ts +2 -12
- package/build/vite/optimize.ts +2 -2
- package/compress.js +36 -0
- package/package.json +37 -37
- package/src/App.vue +3 -5
- 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 +23 -13
- package/src/components/core/Tabbar/index.vue +5 -3
- package/src/components/data/XBadge/index.vue +2 -2
- package/src/components/data/XCellList/index.vue +17 -14
- package/src/components/data/XFormGroup/doc/FormGroupDemo.vue +4 -4
- package/src/components/data/XFormGroup/index.vue +11 -1
- package/src/components/data/XFormItem/index.vue +2 -22
- package/src/components/data/XOlMap/utils/wgs84ToGcj02.js +154 -154
- 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/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/layout/NormalDataLayout/index.vue +2 -3
- package/src/config/routes.ts +6 -2
- package/src/constants/index.ts +2 -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/router/routes.ts +0 -6
- package/src/router/types.ts +0 -2
- 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/XCellListView/index.vue +15 -142
- package/src/views/component/XFormGroupView/index.vue +15 -11
- package/src/views/component/XFormView/index.vue +17 -2
- package/src/views/component/XFormView/oldindex.vue +70 -0
- package/src/views/component/XOlMapView/XLocationPicker/index.vue +118 -118
- package/tsconfig.json +5 -8
- package/uno.config.ts +32 -1
- package/vite.config.ts +1 -1
- 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
|
@@ -123,7 +123,7 @@ function determineCellStyle(labelFunctionReturn: any, color = '#000', borderWidt
|
|
|
123
123
|
padding: '8px',
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
let result
|
|
126
|
+
let result: any
|
|
127
127
|
// 判断表头是否有声明的样式
|
|
128
128
|
if (labelFunctionReturn.style !== undefined)
|
|
129
129
|
result = props.noTopBorder ? { ...NoTopBorder, ...labelFunctionReturn.style } : { ...withBorder, ...labelFunctionReturn.style }
|
|
@@ -157,10 +157,10 @@ onBeforeMount(() => {
|
|
|
157
157
|
// 遍历配置,将所有JSON传递的方法保存到一个数组中,并用index来一一对应
|
|
158
158
|
for (let i = 0; i < props.config.content.length; i++) {
|
|
159
159
|
receivedFunction.value.push({
|
|
160
|
-
// eslint-disable-next-line no-
|
|
161
|
-
labelFunction:
|
|
162
|
-
// eslint-disable-next-line no-
|
|
163
|
-
valueFunction:
|
|
160
|
+
// eslint-disable-next-line no-new-func
|
|
161
|
+
labelFunction: new Function(`return ${props.config.content[i].customFunctionForLabel}`)(),
|
|
162
|
+
// eslint-disable-next-line no-new-func
|
|
163
|
+
valueFunction: new Function(`return ${props.config.content[i].customFunctionForValue}`)(),
|
|
164
164
|
})
|
|
165
165
|
}
|
|
166
166
|
})
|
|
@@ -188,7 +188,7 @@ onBeforeMount(() => {
|
|
|
188
188
|
<!-- 表头 -->
|
|
189
189
|
<td
|
|
190
190
|
:class="noTopBorder ? 'tdWithNoTopBorder' : 'tdWithBorder'"
|
|
191
|
-
:style="determineCellStyle(receivedFunction[rowIndex].labelFunction(config,
|
|
191
|
+
:style="determineCellStyle(receivedFunction[rowIndex].labelFunction(config, row))"
|
|
192
192
|
colspan="6"
|
|
193
193
|
>
|
|
194
194
|
<template v-if="receivedFunction[rowIndex].labelFunction(config).type === 'key'">
|
|
@@ -214,13 +214,13 @@ onBeforeMount(() => {
|
|
|
214
214
|
</template>
|
|
215
215
|
<template v-else>
|
|
216
216
|
<template v-if="receivedFunction[rowIndex].valueFunction(config).originalKey">
|
|
217
|
-
<van-
|
|
217
|
+
<van-field
|
|
218
218
|
:value="config.data[receivedFunction[rowIndex].valueFunction(config).originalKey]"
|
|
219
219
|
@input="(val) => emit('update:config', { ...config, data: { ...config.data, [receivedFunction[rowIndex].valueFunction(config).originalKey]: val } })"
|
|
220
220
|
/>
|
|
221
221
|
</template>
|
|
222
222
|
<template v-else>
|
|
223
|
-
<van-
|
|
223
|
+
<van-field
|
|
224
224
|
:value="config.data[receivedFunction[rowIndex].valueFunction(config).content]"
|
|
225
225
|
@input="(val) => emit('update:config', { ...config, data: { ...config.data, [receivedFunction[rowIndex].valueFunction(config).content]: val } })"
|
|
226
226
|
/>
|
|
@@ -304,14 +304,14 @@ onBeforeMount(() => {
|
|
|
304
304
|
/>
|
|
305
305
|
</template>
|
|
306
306
|
<template v-else>
|
|
307
|
-
<van-
|
|
307
|
+
<van-field
|
|
308
308
|
:value="item[receivedFunction[rowIndex].valueFunction(config, item).originalKey]"
|
|
309
309
|
@input="(val) => emit('update:config', { ...config, data: { ...config.data, [receivedFunction[rowIndex].valueFunction(config, item).originalKey]: val } })"
|
|
310
310
|
/>
|
|
311
311
|
</template>
|
|
312
312
|
</template>
|
|
313
313
|
<template v-else>
|
|
314
|
-
<van-
|
|
314
|
+
<van-field
|
|
315
315
|
:value="item[receivedFunction[rowIndex].valueFunction(config, item).content]"
|
|
316
316
|
@input="(val) => emit('update:config', { ...config, data: { ...config.data, [receivedFunction[rowIndex].valueFunction(config, item).content]: val } })"
|
|
317
317
|
/>
|
|
@@ -341,7 +341,7 @@ onBeforeMount(() => {
|
|
|
341
341
|
|
|
342
342
|
<style scoped lang="less">
|
|
343
343
|
.imgSrc {
|
|
344
|
-
color: rgb(
|
|
344
|
+
color: rgb(24, 144, 255);
|
|
345
345
|
font-size: 0.9em;
|
|
346
346
|
margin: auto;
|
|
347
347
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import XFormTable from '@af-mobile-client-vue3/components/data/XCellList/index.vue'
|
|
2
3
|
// import { getRealKeyData } from '@af-mobile-client-vue3/utils/util'
|
|
3
4
|
import { executeStrFunctionByContext } from '@af-mobile-client-vue3/utils/runEvalFunction'
|
|
4
5
|
import {
|
|
@@ -7,7 +8,7 @@ import {
|
|
|
7
8
|
Row as VanRow,
|
|
8
9
|
} from 'vant'
|
|
9
10
|
|
|
10
|
-
import { computed,
|
|
11
|
+
import { computed, inject, nextTick, onBeforeMount, ref, watch } from 'vue'
|
|
11
12
|
|
|
12
13
|
const props = withDefaults(defineProps<Props>(), {
|
|
13
14
|
showImgInCell: false,
|
|
@@ -24,7 +25,7 @@ const emit = defineEmits<{
|
|
|
24
25
|
(e: 'update:configData', value: any): void
|
|
25
26
|
(e: 'change', value: any): void
|
|
26
27
|
(e: 'updateImg', value: any): void
|
|
27
|
-
(e: 'selectRow',
|
|
28
|
+
(e: 'selectRow', selectedRowKeys: any[], selectedRows: any[]): void
|
|
28
29
|
(e: 'slotRendered'): void
|
|
29
30
|
(e: 'listClick', value: any): void
|
|
30
31
|
}>()
|
|
@@ -36,7 +37,6 @@ const emit = defineEmits<{
|
|
|
36
37
|
const isInAModal = ref(false)
|
|
37
38
|
|
|
38
39
|
// 动态导入组件
|
|
39
|
-
const XFormTable = defineAsyncComponent(() => import('@af-mobile-client-vue3/components/data/XCellList/index.vue'))
|
|
40
40
|
// const XAddNativeForm = defineAsyncComponent(() => import('@af-mobile-client-vue3/components/common/XAddNativeForm/XAddNativeForm.vue'))
|
|
41
41
|
// const XFormGroup = defineAsyncComponent(() => import('@af-mobile-client-vue3/components/common/XFormGroup/XFormGroup.vue'))
|
|
42
42
|
// const XTreePro = defineAsyncComponent(() => import('@af-mobile-client-vue3/components/common/XTree/XTreePro.vue'))
|
package/src/config/routes.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* List of root-level route names.
|
|
3
|
+
* In the Navbar component, the left arrow is hidden for these routes.
|
|
4
|
+
* However, the Tabbar is shown on these routes.
|
|
5
|
+
*/
|
|
6
|
+
export const rootRouteList: readonly string[] = [
|
|
3
7
|
'ComponentView', // 首页
|
|
4
8
|
'userProfile', // 个人中心
|
|
5
9
|
]
|
package/src/locales/en-US.json
CHANGED
|
@@ -1,29 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"navbar": {
|
|
3
|
+
"Home": "Home",
|
|
4
|
+
"Profile": "Profile",
|
|
5
|
+
"Mock": "🗂️ Mock",
|
|
6
|
+
"Charts": "📊 Charts",
|
|
7
|
+
"UnoCSS": "⚡ UnoCSS",
|
|
8
|
+
"Counter": "🍍 Persistent State",
|
|
9
|
+
"KeepAlive": "♻️ Page Cache",
|
|
10
|
+
"ScrollCache": "📍 Scroll Cache",
|
|
11
|
+
"Login": "🧑💻 Login",
|
|
12
|
+
"Register": "🧑💻 Register",
|
|
13
|
+
"ForgotPassword": "❓ Forgot Password",
|
|
14
|
+
"Settings": "⚙️ Settings",
|
|
15
|
+
"404": "⚠️ Page 404",
|
|
16
|
+
"Undefined": "🤷 Undefined title"
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
"tabbar": {
|
|
20
|
+
"home": "HOME",
|
|
21
|
+
"profile": "PROFILE"
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
"home": {
|
|
5
25
|
"darkMode": "🌗 Dark Mode",
|
|
6
|
-
"mockGuide": "💿 Mock Guide",
|
|
7
26
|
"language": "📚 Language",
|
|
8
|
-
"404Demo": "🙅 Page 404 Demo",
|
|
9
|
-
"echartsDemo": "📊 Echarts Demo",
|
|
10
|
-
"persistPiniaState": "🍍 Persistent Pinia state",
|
|
11
|
-
"unocssExample": "🎨 Unocss example",
|
|
12
|
-
"keepAlive": "🧡 KeepAlive Demo",
|
|
13
|
-
"scrollCache": "📜 Scroll Cache Demo",
|
|
14
|
-
"login": "🔒 Login",
|
|
15
|
-
"register": "Register",
|
|
16
27
|
"settings": "Settings",
|
|
17
|
-
"
|
|
18
|
-
"exampleComponents": "Example components",
|
|
19
|
-
"forgot-password": "Forgot Password"
|
|
28
|
+
"examples": "Examples"
|
|
20
29
|
},
|
|
30
|
+
|
|
31
|
+
"profile": {
|
|
32
|
+
"login": "Login",
|
|
33
|
+
"settings": "Settings",
|
|
34
|
+
"docs": "Docs"
|
|
35
|
+
},
|
|
36
|
+
|
|
21
37
|
"mock": {
|
|
22
38
|
"fromAsyncData": "Data from asynchronous requests",
|
|
23
39
|
"noData": "No data",
|
|
24
40
|
"pull": "Pull",
|
|
25
41
|
"reset": "Reset"
|
|
26
42
|
},
|
|
43
|
+
|
|
27
44
|
"charts": {
|
|
28
45
|
"January": "Jan",
|
|
29
46
|
"February": "Feb",
|
|
@@ -32,24 +49,28 @@
|
|
|
32
49
|
"May": "May",
|
|
33
50
|
"June": "Jun"
|
|
34
51
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
52
|
+
|
|
53
|
+
"counter": {
|
|
54
|
+
"description": "This counter's state is persisted via Pinia. Try refreshing the page to see it in action."
|
|
38
55
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
56
|
+
|
|
57
|
+
"unocss": {
|
|
58
|
+
"title": "Hello, Unocss!",
|
|
59
|
+
"description": "This is a simple example of Unocss in action.",
|
|
60
|
+
"button": "Button"
|
|
43
61
|
},
|
|
62
|
+
|
|
44
63
|
"keepAlive": {
|
|
45
64
|
"label": "The current component will be cached"
|
|
46
65
|
},
|
|
66
|
+
|
|
47
67
|
"scrollCache": {
|
|
48
68
|
"sectionTitle": "Section title",
|
|
49
69
|
"sectionText": "Section text text text text text text text text text text",
|
|
50
70
|
"finished": "Already at the bottom ~",
|
|
51
71
|
"loading": "Loading..."
|
|
52
72
|
},
|
|
73
|
+
|
|
53
74
|
"login": {
|
|
54
75
|
"login": "Sign In",
|
|
55
76
|
"logout": "Sign Out",
|
|
@@ -57,14 +78,15 @@
|
|
|
57
78
|
"password": "Password",
|
|
58
79
|
"pleaseEnterEmail": "Please enter email",
|
|
59
80
|
"pleaseEnterPassword": "Please enter password",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
81
|
+
"signUp": "Click to sign up",
|
|
82
|
+
"forgotPassword": "Forgot password?"
|
|
62
83
|
},
|
|
63
|
-
|
|
84
|
+
|
|
85
|
+
"forgotPassword": {
|
|
64
86
|
"email": "Email",
|
|
65
87
|
"code": "Code",
|
|
66
88
|
"password": "Password",
|
|
67
|
-
"
|
|
89
|
+
"confirmPassword": "Password again",
|
|
68
90
|
"pleaseEnterEmail": "Please enter email",
|
|
69
91
|
"pleaseEnterCode": "Please enter code",
|
|
70
92
|
"pleaseEnterPassword": "Please enter password",
|
|
@@ -77,12 +99,13 @@
|
|
|
77
99
|
"sendCodeSuccess": "Sent, the code is",
|
|
78
100
|
"passwordResetSuccess": "Password reset succeeded"
|
|
79
101
|
},
|
|
102
|
+
|
|
80
103
|
"register": {
|
|
81
104
|
"email": "Email",
|
|
82
105
|
"code": "Code",
|
|
83
106
|
"nickname": "Nickname",
|
|
84
107
|
"password": "Password",
|
|
85
|
-
"
|
|
108
|
+
"confirmPassword": "Password again",
|
|
86
109
|
"pleaseEnterEmail": "Please enter email",
|
|
87
110
|
"pleaseEnterCode": "Please enter code",
|
|
88
111
|
"pleaseEnterNickname": "Please enter nickname",
|
|
@@ -96,9 +119,10 @@
|
|
|
96
119
|
"sendCodeSuccess": "Sent, the code is",
|
|
97
120
|
"registerSuccess": "Register succeeded"
|
|
98
121
|
},
|
|
122
|
+
|
|
99
123
|
"settings": {
|
|
100
124
|
"logout": "Sign Out",
|
|
101
125
|
"currentVersion": "Current Version",
|
|
102
|
-
"
|
|
126
|
+
"confirmTitle": "Confirm Exit?"
|
|
103
127
|
}
|
|
104
128
|
}
|
package/src/locales/zh-CN.json
CHANGED
|
@@ -1,29 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
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
|
-
"
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
52
|
+
|
|
53
|
+
"counter": {
|
|
54
|
+
"description": "该计数器的状态通过 Pinia 持久化。刷新页面试试看!"
|
|
38
55
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
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
|
-
"
|
|
61
|
-
"
|
|
81
|
+
"signUp": "还没有账号?点击注册",
|
|
82
|
+
"forgotPassword": "忘记密码?"
|
|
62
83
|
},
|
|
63
|
-
|
|
84
|
+
|
|
85
|
+
"forgotPassword": {
|
|
64
86
|
"email": "邮箱",
|
|
65
87
|
"code": "验证码",
|
|
66
88
|
"password": "密码",
|
|
67
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
126
|
+
"confirmTitle": "确认退出?"
|
|
103
127
|
}
|
|
104
128
|
}
|
package/src/main.ts
CHANGED
package/src/router/routes.ts
CHANGED
|
@@ -10,7 +10,6 @@ import XCellDetailView from '@af-mobile-client-vue3/views/component/XCellDetailV
|
|
|
10
10
|
import XCellListView from '@af-mobile-client-vue3/views/component/XCellListView/index.vue'
|
|
11
11
|
import XFormAppraiseView from '@af-mobile-client-vue3/views/component/XFormAppraiseView/index.vue'
|
|
12
12
|
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
13
|
import XFormView from '@af-mobile-client-vue3/views/component/XFormView/index.vue'
|
|
15
14
|
import XOlMapView from '@af-mobile-client-vue3/views/component/XOlMapView/index.vue'
|
|
16
15
|
import XLocationPicker from '@af-mobile-client-vue3/views/component/XOlMapView/XLocationPicker/index.vue'
|
|
@@ -67,11 +66,6 @@ const routes: Array<RouteRecordRaw> = [
|
|
|
67
66
|
name: 'XCellDetailView',
|
|
68
67
|
component: XCellDetailView,
|
|
69
68
|
},
|
|
70
|
-
{
|
|
71
|
-
path: '/xformgroup222',
|
|
72
|
-
name: 'xformgroup222',
|
|
73
|
-
component: xformgroup222,
|
|
74
|
-
},
|
|
75
69
|
{
|
|
76
70
|
path: '/Component/XFormGroupView',
|
|
77
71
|
name: 'XFormGroupView',
|
package/src/router/types.ts
CHANGED
package/src/utils/mobileUtil.ts
CHANGED
|
@@ -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 {
|
|
1
|
+
import { appName } from '../constants'
|
|
2
2
|
|
|
3
|
-
export default function setPageTitle(
|
|
4
|
-
window.document.title =
|
|
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
|
-
<
|
|
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
|
-
<
|
|
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('/
|
|
14
|
+
<VanButton type="primary" size="small" @click="$router.replace('/')">
|
|
16
15
|
返回首页
|
|
17
16
|
</VanButton>
|
|
18
17
|
</div>
|