af-mobile-client-vue3 1.1.7 → 1.1.8

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 (74) hide show
  1. package/.env +6 -6
  2. package/.env.development +4 -4
  3. package/.env.envoiceShow +6 -6
  4. package/.env.production +6 -6
  5. package/.husky/commit-msg +1 -1
  6. package/.husky/pre-commit +1 -1
  7. package/.vscode/settings.json +61 -61
  8. package/mock/modules/user.mock.ts +152 -152
  9. package/package.json +1 -1
  10. package/public/favicon.svg +4 -4
  11. package/public/safari-pinned-tab.svg +32 -32
  12. package/scripts/verifyCommit.js +19 -19
  13. package/src/App.vue +43 -43
  14. package/src/api/user/index.ts +40 -40
  15. package/src/bootstrap.ts +18 -18
  16. package/src/components/core/NavBar/index.vue +12 -12
  17. package/src/components/core/Tabbar/index.vue +38 -38
  18. package/src/components/core/XGridDropOption/index.vue +151 -151
  19. package/src/components/core/XMultiSelect/index.vue +183 -183
  20. package/src/components/data/XCellDetail/index.vue +106 -106
  21. package/src/components/data/XCellList/index.vue +2 -1
  22. package/src/components/data/XOlMap/utils/wgs84ToGcj02.js +154 -154
  23. package/src/components/data/XReportForm/XReportFormJsonRender.vue +220 -220
  24. package/src/components/data/XReportForm/index.vue +1079 -1079
  25. package/src/components/data/XReportGrid/XAddReport/index.ts +1 -1
  26. package/src/components/data/XReportGrid/XReportDrawer/index.ts +1 -1
  27. package/src/components/data/XSignature/index.vue +285 -285
  28. package/src/components/data/XTag/index.vue +10 -10
  29. package/src/components/layout/NormalDataLayout/index.vue +70 -70
  30. package/src/components/layout/TabBarLayout/index.vue +40 -40
  31. package/src/components.d.ts +53 -53
  32. package/src/env.d.ts +16 -16
  33. package/src/font-style/font.css +3 -3
  34. package/src/hooks/useCommon.ts +9 -9
  35. package/src/locales/en-US.json +25 -25
  36. package/src/locales/zh-CN.json +25 -25
  37. package/src/plugins/AppData.ts +38 -38
  38. package/src/router/guards.ts +59 -59
  39. package/src/router/index.ts +61 -61
  40. package/src/router/invoiceRoutes.ts +33 -33
  41. package/src/services/api/common.ts +109 -109
  42. package/src/services/api/manage.ts +8 -8
  43. package/src/services/api/search.ts +16 -16
  44. package/src/services/restTools.ts +56 -56
  45. package/src/services/v3Api.ts +11 -11
  46. package/src/stores/modules/setting.ts +52 -52
  47. package/src/stores/mutation-type.ts +7 -7
  48. package/src/utils/authority-utils.ts +84 -84
  49. package/src/utils/crypto.ts +39 -39
  50. package/src/utils/i18n.ts +41 -41
  51. package/src/utils/indexedDB.ts +180 -180
  52. package/src/utils/mobileUtil.ts +26 -26
  53. package/src/utils/routerUtil.ts +271 -271
  54. package/src/utils/runEvalFunction.ts +13 -13
  55. package/src/utils/wechatUtil.ts +9 -9
  56. package/src/views/common/LoadError.vue +64 -64
  57. package/src/views/common/NotFound.vue +68 -68
  58. package/src/views/component/EvaluateRecordView/index.vue +40 -40
  59. package/src/views/component/XCellDetailView/index.vue +217 -217
  60. package/src/views/component/XCellListView/index.vue +2 -2
  61. package/src/views/component/XOlMapView/XLocationPicker/index.vue +120 -120
  62. package/src/views/component/XReportFormIframeView/index.vue +47 -47
  63. package/src/views/component/XReportFormView/index.vue +13 -13
  64. package/src/views/component/XSignatureView/index.vue +50 -50
  65. package/src/views/component/menu.vue +117 -117
  66. package/src/views/component/notice.vue +46 -46
  67. package/src/views/component/topNav.vue +36 -36
  68. package/src/views/invoiceShow/index.vue +61 -61
  69. package/src/views/user/login/ForgetPasswordForm.vue +94 -94
  70. package/src/views/user/login/LoginTitle.vue +68 -68
  71. package/src/views/user/login/index.vue +22 -22
  72. package/src/views/user/my/index.vue +230 -230
  73. package/src/vue-router.d.ts +9 -9
  74. package/tsconfig.json +43 -43
@@ -1,94 +1,94 @@
1
- <script setup lang="ts">
2
- import type { FormInstance } from 'vant'
3
- import { LoginStateEnum, useFormRules, useLoginState } from '@af-mobile-client-vue3/hooks/useLogin'
4
- import {
5
-
6
- showFailToast,
7
- Button as VanButton,
8
- Field as VanField,
9
- Form as VanForm,
10
- } from 'vant'
11
- import { computed, reactive, ref, unref } from 'vue'
12
-
13
- const { handleBackLogin, getLoginState } = useLoginState()
14
- const { getFormRules } = useFormRules()
15
- const getShow = computed(() => unref(getLoginState) === LoginStateEnum.RESET_PASSWORD)
16
-
17
- const loading = ref(false)
18
- const formRef = ref<FormInstance>()
19
- const formData = reactive({
20
- username: '',
21
- mobile: '',
22
- sms: '',
23
- })
24
-
25
- function handleReset() {
26
- formRef.value
27
- ?.validate()
28
- .then(async () => {
29
- try {
30
- loading.value = true
31
- // do something
32
- }
33
- finally {
34
- loading.value = false
35
- }
36
- })
37
- .catch((e) => {
38
- showFailToast('验证失败')
39
- console.error(e)
40
- })
41
- }
42
- </script>
43
-
44
- <template>
45
- <div v-if="getShow" class="form forget_password_form">
46
- <VanForm ref="formRef" @submit="handleReset">
47
- <VanField
48
- v-model="formData.username"
49
- class="form_field"
50
- name="username"
51
- label="账号"
52
- placeholder="请输入账号"
53
- label-align="top"
54
- :rules="getFormRules.username"
55
- />
56
- <VanField
57
- v-model="formData.mobile"
58
- class="form_field"
59
- name="password"
60
- label="手机号码"
61
- placeholder="请输入手机号码"
62
- label-align="top"
63
- :rules="getFormRules.mobile"
64
- />
65
-
66
- <VanField
67
- v-model="formData.sms"
68
- class="form_field"
69
- center
70
- clearable
71
- label-align="top"
72
- label="短信验证码"
73
- placeholder="请输入短信验证码"
74
- :rules="getFormRules.sms"
75
- >
76
- <template #button>
77
- <VanButton size="small" type="primary">
78
- 发送验证码
79
- </VanButton>
80
- </template>
81
- </VanField>
82
- <VanButton class="reset_btn btn" type="primary" block native-type="submit" :loading="loading">
83
- 重 置
84
- </VanButton>
85
- <VanButton class="back_btn btn" plain type="primary" block @click="handleBackLogin">
86
- 返 回
87
- </VanButton>
88
- </VanForm>
89
- </div>
90
- </template>
91
-
92
- <style scoped lang="less">
93
- @import "@af-mobile-client-vue3/styles/login.less";
94
- </style>
1
+ <script setup lang="ts">
2
+ import type { FormInstance } from 'vant'
3
+ import { LoginStateEnum, useFormRules, useLoginState } from '@af-mobile-client-vue3/hooks/useLogin'
4
+ import {
5
+
6
+ showFailToast,
7
+ Button as VanButton,
8
+ Field as VanField,
9
+ Form as VanForm,
10
+ } from 'vant'
11
+ import { computed, reactive, ref, unref } from 'vue'
12
+
13
+ const { handleBackLogin, getLoginState } = useLoginState()
14
+ const { getFormRules } = useFormRules()
15
+ const getShow = computed(() => unref(getLoginState) === LoginStateEnum.RESET_PASSWORD)
16
+
17
+ const loading = ref(false)
18
+ const formRef = ref<FormInstance>()
19
+ const formData = reactive({
20
+ username: '',
21
+ mobile: '',
22
+ sms: '',
23
+ })
24
+
25
+ function handleReset() {
26
+ formRef.value
27
+ ?.validate()
28
+ .then(async () => {
29
+ try {
30
+ loading.value = true
31
+ // do something
32
+ }
33
+ finally {
34
+ loading.value = false
35
+ }
36
+ })
37
+ .catch((e) => {
38
+ showFailToast('验证失败')
39
+ console.error(e)
40
+ })
41
+ }
42
+ </script>
43
+
44
+ <template>
45
+ <div v-if="getShow" class="form forget_password_form">
46
+ <VanForm ref="formRef" @submit="handleReset">
47
+ <VanField
48
+ v-model="formData.username"
49
+ class="form_field"
50
+ name="username"
51
+ label="账号"
52
+ placeholder="请输入账号"
53
+ label-align="top"
54
+ :rules="getFormRules.username"
55
+ />
56
+ <VanField
57
+ v-model="formData.mobile"
58
+ class="form_field"
59
+ name="password"
60
+ label="手机号码"
61
+ placeholder="请输入手机号码"
62
+ label-align="top"
63
+ :rules="getFormRules.mobile"
64
+ />
65
+
66
+ <VanField
67
+ v-model="formData.sms"
68
+ class="form_field"
69
+ center
70
+ clearable
71
+ label-align="top"
72
+ label="短信验证码"
73
+ placeholder="请输入短信验证码"
74
+ :rules="getFormRules.sms"
75
+ >
76
+ <template #button>
77
+ <VanButton size="small" type="primary">
78
+ 发送验证码
79
+ </VanButton>
80
+ </template>
81
+ </VanField>
82
+ <VanButton class="reset_btn btn" type="primary" block native-type="submit" :loading="loading">
83
+ 重 置
84
+ </VanButton>
85
+ <VanButton class="back_btn btn" plain type="primary" block @click="handleBackLogin">
86
+ 返 回
87
+ </VanButton>
88
+ </VanForm>
89
+ </div>
90
+ </template>
91
+
92
+ <style scoped lang="less">
93
+ @import "@af-mobile-client-vue3/styles/login.less";
94
+ </style>
@@ -1,68 +1,68 @@
1
- <script setup lang="ts">
2
- import { APP_WEB_CONFIG_KEY } from '@af-mobile-client-vue3/stores/mutation-type'
3
- import { createStorage } from '@af-mobile-client-vue3/utils/Storage'
4
-
5
- const Storage = createStorage({ storage: localStorage })
6
- const webConfig = Storage.get(APP_WEB_CONFIG_KEY)
7
-
8
- // 动态获取图片
9
- function getAssetsImages(logo) {
10
- return new URL(`/src/assets/img/user/login/${logo}`, import.meta.url).href
11
- }
12
- </script>
13
-
14
- <template>
15
- <div class="login_title">
16
- <div class="login_logo">
17
- <img :src="getAssetsImages(webConfig?.setting?.systemLogo ?? 'logo.png')" alt="logo">
18
- </div>
19
- <div class="title_content">
20
- <div class="login_title_value">
21
- {{ webConfig?.setting?.systemName ?? '智慧燃气' }}
22
- </div>
23
- <div class="login_description">
24
- 欢迎使用
25
- </div>
26
- </div>
27
- </div>
28
- </template>
29
-
30
- <style scoped lang="less">
31
- .login_title {
32
- width: 100%;
33
- background-image: url('@af-mobile-client-vue3/assets/img/user/login/background-shadow-1.svg');
34
- background-repeat: no-repeat;
35
- background-size: cover;
36
- background-position: center center;
37
- text-align: center;
38
- .login_logo {
39
- display: flex;
40
- align-items: center;
41
- justify-content: center;
42
- width: 100px;
43
- height: 100px;
44
- margin: 0 auto 62px auto;
45
- border-radius: 23.04px;
46
- box-shadow: 0 16px 32px 0 rgba(0, 0, 0, 0.09);
47
- background: var(--van-background-2);
48
- text-align: center;
49
- img {
50
- width: 82px;
51
- height: 82px;
52
- }
53
- }
54
- .title_content {
55
- color: rgb(83, 88, 110);
56
- font-size: 26px;
57
- font-weight: 600;
58
- line-height: 26px;
59
- .login_description {
60
- margin-top: 13px;
61
- color: var(--van-text-color-3);
62
- font-size: 16px;
63
- font-weight: 400;
64
- line-height: 16px;
65
- }
66
- }
67
- }
68
- </style>
1
+ <script setup lang="ts">
2
+ import { APP_WEB_CONFIG_KEY } from '@af-mobile-client-vue3/stores/mutation-type'
3
+ import { createStorage } from '@af-mobile-client-vue3/utils/Storage'
4
+
5
+ const Storage = createStorage({ storage: localStorage })
6
+ const webConfig = Storage.get(APP_WEB_CONFIG_KEY)
7
+
8
+ // 动态获取图片
9
+ function getAssetsImages(logo) {
10
+ return new URL(`/src/assets/img/user/login/${logo}`, import.meta.url).href
11
+ }
12
+ </script>
13
+
14
+ <template>
15
+ <div class="login_title">
16
+ <div class="login_logo">
17
+ <img :src="getAssetsImages(webConfig?.setting?.systemLogo ?? 'logo.png')" alt="logo">
18
+ </div>
19
+ <div class="title_content">
20
+ <div class="login_title_value">
21
+ {{ webConfig?.setting?.systemName ?? '智慧燃气' }}
22
+ </div>
23
+ <div class="login_description">
24
+ 欢迎使用
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </template>
29
+
30
+ <style scoped lang="less">
31
+ .login_title {
32
+ width: 100%;
33
+ background-image: url('@af-mobile-client-vue3/assets/img/user/login/background-shadow-1.svg');
34
+ background-repeat: no-repeat;
35
+ background-size: cover;
36
+ background-position: center center;
37
+ text-align: center;
38
+ .login_logo {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ width: 100px;
43
+ height: 100px;
44
+ margin: 0 auto 62px auto;
45
+ border-radius: 23.04px;
46
+ box-shadow: 0 16px 32px 0 rgba(0, 0, 0, 0.09);
47
+ background: var(--van-background-2);
48
+ text-align: center;
49
+ img {
50
+ width: 82px;
51
+ height: 82px;
52
+ }
53
+ }
54
+ .title_content {
55
+ color: rgb(83, 88, 110);
56
+ font-size: 26px;
57
+ font-weight: 600;
58
+ line-height: 26px;
59
+ .login_description {
60
+ margin-top: 13px;
61
+ color: var(--van-text-color-3);
62
+ font-size: 16px;
63
+ font-weight: 400;
64
+ line-height: 16px;
65
+ }
66
+ }
67
+ }
68
+ </style>
@@ -1,22 +1,22 @@
1
- <script setup lang="ts">
2
- import ForgetPasswordForm from './ForgetPasswordForm.vue'
3
- import LoginForm from './LoginForm.vue'
4
- import LoginTitle from './LoginTitle.vue'
5
- </script>
6
-
7
- <template>
8
- <div class="login_container">
9
- <LoginTitle />
10
- <LoginForm />
11
- <ForgetPasswordForm />
12
- </div>
13
- </template>
14
-
15
- <style scoped lang="less">
16
- .login_container {
17
- height: 100vh;
18
- padding-top: 10px;
19
- background: var(--van-background-2);
20
- position: relative;
21
- }
22
- </style>
1
+ <script setup lang="ts">
2
+ import ForgetPasswordForm from './ForgetPasswordForm.vue'
3
+ import LoginForm from './LoginForm.vue'
4
+ import LoginTitle from './LoginTitle.vue'
5
+ </script>
6
+
7
+ <template>
8
+ <div class="login_container">
9
+ <LoginTitle />
10
+ <LoginForm />
11
+ <ForgetPasswordForm />
12
+ </div>
13
+ </template>
14
+
15
+ <style scoped lang="less">
16
+ .login_container {
17
+ height: 100vh;
18
+ padding-top: 10px;
19
+ background: var(--van-background-2);
20
+ position: relative;
21
+ }
22
+ </style>