af-mobile-client-vue3 1.4.47 → 1.4.49

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 (48) hide show
  1. package/package.json +7 -4
  2. package/public/favicon.svg +4 -4
  3. package/scripts/verifyCommit.js +19 -19
  4. package/src/assets/img/component/liuli.png +0 -0
  5. package/src/components/common/otherCharge/ChargePrintSelectorAndRemarks.vue +137 -137
  6. package/src/components/common/otherCharge/CodePayment.vue +357 -357
  7. package/src/components/common/otherCharge/FileUploader.vue +602 -602
  8. package/src/components/common/otherCharge/GridFileUploader.vue +846 -846
  9. package/src/components/common/otherCharge/PaymentMethodSelector.vue +202 -202
  10. package/src/components/common/otherCharge/PaymentMethodSelectorCard.vue +45 -45
  11. package/src/components/common/otherCharge/ReceiptModal.vue +273 -273
  12. package/src/components/common/otherCharge/index.ts +43 -43
  13. package/src/components/data/OtherCharge/OtherChargeItemModal.vue +547 -547
  14. package/src/components/data/UserDetail/types.ts +1 -1
  15. package/src/components/data/XReportGrid/XAddReport/index.ts +1 -1
  16. package/src/components/data/XReportGrid/XReportDrawer/index.ts +1 -1
  17. package/src/components/data/XTag/index.vue +10 -10
  18. package/src/components/layout/TabBarLayout/index.vue +40 -40
  19. package/src/hooks/useCommon.ts +9 -9
  20. package/src/main.ts +1 -2
  21. package/src/plugins/AppData.ts +38 -38
  22. package/src/router/invoiceRoutes.ts +33 -33
  23. package/src/router/routes.ts +433 -427
  24. package/src/services/api/common.ts +109 -109
  25. package/src/services/api/manage.ts +8 -8
  26. package/src/services/api/search.ts +16 -16
  27. package/src/services/restTools.ts +56 -56
  28. package/src/utils/authority-utils.ts +84 -84
  29. package/src/utils/crypto.ts +39 -39
  30. package/src/utils/queryFormDefaultRangePicker.ts +57 -57
  31. package/src/utils/runEvalFunction.ts +13 -13
  32. package/src/utils/wechat.ts +4 -4
  33. package/src/views/component/EvaluateRecordView/index.vue +40 -40
  34. package/src/views/component/MateChat/MateChatView.vue +258 -0
  35. package/src/views/component/MateChat/apiService.ts +104 -0
  36. package/src/views/component/XCellDetailView/index.vue +217 -217
  37. package/src/views/component/XCellListView/index.vue +107 -138
  38. package/src/views/component/XFormGroupView/index.vue +78 -82
  39. package/src/views/component/XFormView/index.vue +41 -46
  40. package/src/views/component/XReportFormIframeView/index.vue +47 -47
  41. package/src/views/component/XReportFormView/index.vue +13 -13
  42. package/src/views/component/XSignatureView/index.vue +50 -50
  43. package/src/views/component/index.vue +4 -0
  44. package/src/views/component/notice.vue +46 -46
  45. package/src/views/component/topNav.vue +36 -36
  46. package/src/views/invoiceShow/index.vue +61 -61
  47. package/src/views/user/login/index.vue +22 -22
  48. package/vite.config.ts +6 -0
@@ -1,202 +1,202 @@
1
- <script setup lang="ts">
2
- import CardHeader from '@af-mobile-client-vue3/components/data/CardContainer/CardHeader.vue'
3
- import { computed, ref } from 'vue'
4
- // import useBusinessStore from '@/stores/modules/business'
5
-
6
- interface PaymentMethod {
7
- label: string
8
- value: string
9
- icon: string
10
- color: string
11
- }
12
-
13
- const props = defineProps({
14
- modelValue: {
15
- type: String,
16
- required: true,
17
- },
18
- title: {
19
- type: String,
20
- default: '支付方式',
21
- },
22
- allowedMethods: {
23
- type: Array as () => string[],
24
- default: null,
25
- },
26
- icon: {
27
- type: String,
28
- default: 'fa-credit-card',
29
- },
30
- user: {
31
- type: Object,
32
- default: () => {},
33
- },
34
- })
35
-
36
- const emit = defineEmits(['update:modelValue'])
37
- const businessStore = props.user
38
- const userInfo = ref({ ...businessStore })
39
- const defaultMethods: PaymentMethod[] = [
40
- {
41
- value: '现金缴费',
42
- label: '现金缴费',
43
- icon: 'i-fa6-solid-money-bill-wave',
44
- color: 'red',
45
- },
46
- {
47
- value: '扫码支付',
48
- label: '扫码支付',
49
- icon: 'i-fa6-solid-qrcode',
50
- color: 'blue',
51
- },
52
- {
53
- value: '微信支付',
54
- label: '微信支付',
55
- icon: 'i-fa-brands-weixin',
56
- color: 'green',
57
- },
58
- {
59
- value: '支付宝支付',
60
- label: '支付宝支付',
61
- icon: 'i-fa-brands-alipay',
62
- color: 'blue',
63
- },
64
- ]
65
-
66
- const displayMethods = computed(() => {
67
- if (userInfo.value.f_orgid === '1767') {
68
- return defaultMethods.filter(method =>
69
- method.value === '微信支付',
70
- )
71
- }
72
- else {
73
- if (!props.allowedMethods) {
74
- return defaultMethods
75
- }
76
- return defaultMethods.filter(method =>
77
- props.allowedMethods.includes(method.value),
78
- )
79
- }
80
- })
81
-
82
- function handleSelect(value: string) {
83
- console.log(value)
84
- emit('update:modelValue', value)
85
- }
86
- </script>
87
-
88
- <template>
89
- <div class="payment-method-selector">
90
- <div class="payment-method-selector__header">
91
- <CardHeader :title="title" />
92
- </div>
93
- <div class="payment-method-selector__body">
94
- <div class="payment-method-selector__grid">
95
- <div
96
- v-for="method in displayMethods"
97
- :key="method.value"
98
- class="payment-method-selector__item"
99
- :class="{ 'payment-method-selector__item--active': modelValue === method.value }"
100
- @click="handleSelect(method.value)"
101
- >
102
- <div class="payment-method-selector__icon-wrap" :class="`payment-method-selector__icon-wrap--${method.color}`">
103
- <div class="payment-method-selector__icon" :class="[method.icon]" />
104
- </div>
105
- <span class="payment-method-selector__label" :class="{ 'payment-method-selector__label--active': modelValue === method.value }">
106
- {{ method.label }}
107
- </span>
108
- </div>
109
- </div>
110
- </div>
111
- </div>
112
- </template>
113
-
114
- <style lang="less" scoped>
115
- .payment-method-selector {
116
- &__header {
117
- margin-bottom: 12px;
118
- }
119
-
120
- &__grid {
121
- display: grid;
122
- grid-template-columns: repeat(2, 1fr);
123
- gap: 12px;
124
-
125
- @media (min-width: 768px) {
126
- grid-template-columns: repeat(4, 1fr);
127
- }
128
- }
129
-
130
- &__item {
131
- display: flex;
132
- align-items: center;
133
- padding: 8px;
134
- cursor: pointer;
135
- border: 1px solid #e5e7eb;
136
- border-radius: 8px;
137
- background-color: #fff;
138
- transition: all 0.2s ease;
139
-
140
- &:hover {
141
- background-color: #f9fafb;
142
- }
143
-
144
- &--active {
145
- background-color: #ebf5ff;
146
- border-color: #3b82f6;
147
- box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.2);
148
- }
149
- }
150
-
151
- &__icon-wrap {
152
- width: 32px;
153
- height: 32px;
154
- border-radius: 50%;
155
- display: flex;
156
- align-items: center;
157
- justify-content: center;
158
- margin-right: 8px;
159
- flex-shrink: 0;
160
-
161
- &--green {
162
- background-color: #dcfce7;
163
-
164
- .payment-method-selector__icon {
165
- color: #16a34a;
166
- }
167
- }
168
-
169
- &--blue {
170
- background-color: #dbeafe;
171
-
172
- .payment-method-selector__icon {
173
- color: #2563eb;
174
- }
175
- }
176
-
177
- &--red {
178
- background-color: #fff0f0;
179
-
180
- .payment-method-selector__icon {
181
- color: #d32f2f;
182
- }
183
- }
184
- }
185
-
186
- &__icon {
187
- width: 16px;
188
- height: 16px;
189
- display: inline-block;
190
- }
191
-
192
- &__label {
193
- font-size: 12px;
194
- font-weight: 500;
195
- color: #6b7280;
196
-
197
- &--active {
198
- color: #2563eb;
199
- }
200
- }
201
- }
202
- </style>
1
+ <script setup lang="ts">
2
+ import CardHeader from '@af-mobile-client-vue3/components/data/CardContainer/CardHeader.vue'
3
+ import { computed, ref } from 'vue'
4
+ // import useBusinessStore from '@/stores/modules/business'
5
+
6
+ interface PaymentMethod {
7
+ label: string
8
+ value: string
9
+ icon: string
10
+ color: string
11
+ }
12
+
13
+ const props = defineProps({
14
+ modelValue: {
15
+ type: String,
16
+ required: true,
17
+ },
18
+ title: {
19
+ type: String,
20
+ default: '支付方式',
21
+ },
22
+ allowedMethods: {
23
+ type: Array as () => string[],
24
+ default: null,
25
+ },
26
+ icon: {
27
+ type: String,
28
+ default: 'fa-credit-card',
29
+ },
30
+ user: {
31
+ type: Object,
32
+ default: () => {},
33
+ },
34
+ })
35
+
36
+ const emit = defineEmits(['update:modelValue'])
37
+ const businessStore = props.user
38
+ const userInfo = ref({ ...businessStore })
39
+ const defaultMethods: PaymentMethod[] = [
40
+ {
41
+ value: '现金缴费',
42
+ label: '现金缴费',
43
+ icon: 'i-fa6-solid-money-bill-wave',
44
+ color: 'red',
45
+ },
46
+ {
47
+ value: '扫码支付',
48
+ label: '扫码支付',
49
+ icon: 'i-fa6-solid-qrcode',
50
+ color: 'blue',
51
+ },
52
+ {
53
+ value: '微信支付',
54
+ label: '微信支付',
55
+ icon: 'i-fa-brands-weixin',
56
+ color: 'green',
57
+ },
58
+ {
59
+ value: '支付宝支付',
60
+ label: '支付宝支付',
61
+ icon: 'i-fa-brands-alipay',
62
+ color: 'blue',
63
+ },
64
+ ]
65
+
66
+ const displayMethods = computed(() => {
67
+ if (userInfo.value.f_orgid === '1767') {
68
+ return defaultMethods.filter(method =>
69
+ method.value === '微信支付',
70
+ )
71
+ }
72
+ else {
73
+ if (!props.allowedMethods) {
74
+ return defaultMethods
75
+ }
76
+ return defaultMethods.filter(method =>
77
+ props.allowedMethods.includes(method.value),
78
+ )
79
+ }
80
+ })
81
+
82
+ function handleSelect(value: string) {
83
+ console.log(value)
84
+ emit('update:modelValue', value)
85
+ }
86
+ </script>
87
+
88
+ <template>
89
+ <div class="payment-method-selector">
90
+ <div class="payment-method-selector__header">
91
+ <CardHeader :title="title" />
92
+ </div>
93
+ <div class="payment-method-selector__body">
94
+ <div class="payment-method-selector__grid">
95
+ <div
96
+ v-for="method in displayMethods"
97
+ :key="method.value"
98
+ class="payment-method-selector__item"
99
+ :class="{ 'payment-method-selector__item--active': modelValue === method.value }"
100
+ @click="handleSelect(method.value)"
101
+ >
102
+ <div class="payment-method-selector__icon-wrap" :class="`payment-method-selector__icon-wrap--${method.color}`">
103
+ <div class="payment-method-selector__icon" :class="[method.icon]" />
104
+ </div>
105
+ <span class="payment-method-selector__label" :class="{ 'payment-method-selector__label--active': modelValue === method.value }">
106
+ {{ method.label }}
107
+ </span>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ </template>
113
+
114
+ <style lang="less" scoped>
115
+ .payment-method-selector {
116
+ &__header {
117
+ margin-bottom: 12px;
118
+ }
119
+
120
+ &__grid {
121
+ display: grid;
122
+ grid-template-columns: repeat(2, 1fr);
123
+ gap: 12px;
124
+
125
+ @media (min-width: 768px) {
126
+ grid-template-columns: repeat(4, 1fr);
127
+ }
128
+ }
129
+
130
+ &__item {
131
+ display: flex;
132
+ align-items: center;
133
+ padding: 8px;
134
+ cursor: pointer;
135
+ border: 1px solid #e5e7eb;
136
+ border-radius: 8px;
137
+ background-color: #fff;
138
+ transition: all 0.2s ease;
139
+
140
+ &:hover {
141
+ background-color: #f9fafb;
142
+ }
143
+
144
+ &--active {
145
+ background-color: #ebf5ff;
146
+ border-color: #3b82f6;
147
+ box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.2);
148
+ }
149
+ }
150
+
151
+ &__icon-wrap {
152
+ width: 32px;
153
+ height: 32px;
154
+ border-radius: 50%;
155
+ display: flex;
156
+ align-items: center;
157
+ justify-content: center;
158
+ margin-right: 8px;
159
+ flex-shrink: 0;
160
+
161
+ &--green {
162
+ background-color: #dcfce7;
163
+
164
+ .payment-method-selector__icon {
165
+ color: #16a34a;
166
+ }
167
+ }
168
+
169
+ &--blue {
170
+ background-color: #dbeafe;
171
+
172
+ .payment-method-selector__icon {
173
+ color: #2563eb;
174
+ }
175
+ }
176
+
177
+ &--red {
178
+ background-color: #fff0f0;
179
+
180
+ .payment-method-selector__icon {
181
+ color: #d32f2f;
182
+ }
183
+ }
184
+ }
185
+
186
+ &__icon {
187
+ width: 16px;
188
+ height: 16px;
189
+ display: inline-block;
190
+ }
191
+
192
+ &__label {
193
+ font-size: 12px;
194
+ font-weight: 500;
195
+ color: #6b7280;
196
+
197
+ &--active {
198
+ color: #2563eb;
199
+ }
200
+ }
201
+ }
202
+ </style>
@@ -1,45 +1,45 @@
1
- <script setup lang="ts">
2
- import CardContainer from '@af-mobile-client-vue3/components/data/CardContainer/CardContainer.vue'
3
- import PaymentMethodSelector from './PaymentMethodSelector.vue'
4
-
5
- defineProps({
6
- modelValue: {
7
- type: String,
8
- required: true,
9
- },
10
- title: {
11
- type: String,
12
- default: '支付方式',
13
- },
14
- allowedMethods: {
15
- type: Array as () => string[],
16
- default: null,
17
- },
18
- className: {
19
- type: String,
20
- default: '',
21
- },
22
- user: {
23
- type: Object,
24
- default: () => {},
25
- },
26
- })
27
-
28
- const emit = defineEmits(['update:modelValue'])
29
-
30
- function handleUpdate(value: string) {
31
- emit('update:modelValue', value)
32
- }
33
- </script>
34
-
35
- <template>
36
- <CardContainer :class="className">
37
- <PaymentMethodSelector
38
- :model-value="modelValue"
39
- :title="title"
40
- :allowed-methods="allowedMethods"
41
- :user="user"
42
- @update:model-value="handleUpdate"
43
- />
44
- </CardContainer>
45
- </template>
1
+ <script setup lang="ts">
2
+ import CardContainer from '@af-mobile-client-vue3/components/data/CardContainer/CardContainer.vue'
3
+ import PaymentMethodSelector from './PaymentMethodSelector.vue'
4
+
5
+ defineProps({
6
+ modelValue: {
7
+ type: String,
8
+ required: true,
9
+ },
10
+ title: {
11
+ type: String,
12
+ default: '支付方式',
13
+ },
14
+ allowedMethods: {
15
+ type: Array as () => string[],
16
+ default: null,
17
+ },
18
+ className: {
19
+ type: String,
20
+ default: '',
21
+ },
22
+ user: {
23
+ type: Object,
24
+ default: () => {},
25
+ },
26
+ })
27
+
28
+ const emit = defineEmits(['update:modelValue'])
29
+
30
+ function handleUpdate(value: string) {
31
+ emit('update:modelValue', value)
32
+ }
33
+ </script>
34
+
35
+ <template>
36
+ <CardContainer :class="className">
37
+ <PaymentMethodSelector
38
+ :model-value="modelValue"
39
+ :title="title"
40
+ :allowed-methods="allowedMethods"
41
+ :user="user"
42
+ @update:model-value="handleUpdate"
43
+ />
44
+ </CardContainer>
45
+ </template>