@uxda/appkit 4.1.44 → 4.1.48
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/dist/appkit.css +4 -5
- package/dist/index.js +223 -233
- package/package.json +1 -1
- package/src/balance/components/AccountView.vue +5 -3
- package/src/balance/components/BalanceCard.vue +3 -1
- package/src/balance/components/PromoterCard.vue +6 -4
- package/src/payment/components/TradeView.vue +76 -54
- package/src/register/components/SelfRegistration.vue +16 -37
- package/src/shared/components/OcrBusinessLicense.vue +3 -6
- package/src/shared/components/OcrIcon.vue +133 -64
- package/src/shared/composables/useAmount.ts +46 -0
- package/src/shared/composables/useValidator.ts +2 -2
- package/src/components/ocr-id/index.vue +0 -114
- package/src/components/ocr-id/types.d.ts +0 -13
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<div class="rule" @click="rulesPopupOpen = true">规则说明</div>
|
|
17
17
|
</div>
|
|
18
18
|
<div class="bean-counts spa-between">
|
|
19
|
-
<div class="counts number">{{ balance.total || 0 }}</div>
|
|
19
|
+
<div class="counts number">{{ formatAmount(balance.total || 0) }}</div>
|
|
20
20
|
<div class="pay" @click="gotoRecharge">云豆充值</div>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<div class="list">
|
|
27
27
|
<div class="item star-item" v-for="(item, index) in balance.privileges.corporateStar" :key="index">
|
|
28
28
|
<div class="item-count">
|
|
29
|
-
<span>{{ item.count }}</span><span>{{ item.unit }}</span>
|
|
29
|
+
<span>{{ formatAmount(item.count || 0) }}</span><span>{{ item.unit }}</span>
|
|
30
30
|
</div>
|
|
31
31
|
<div class="item-title">
|
|
32
32
|
<div>{{ item.title }}</div>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<div class="title">AI审批权益</div>
|
|
43
43
|
<div class="list">
|
|
44
44
|
<div class="item" v-for="(item, index) in balance.privileges.aiapprove" :key="index">
|
|
45
|
-
<div class="item-count">{{ item.count }}{{ item.unit }}</div>
|
|
45
|
+
<div class="item-count">{{ formatAmount(item.count || 0) }}{{ item.unit }}</div>
|
|
46
46
|
<div class="item-title">{{ item.title }}</div>
|
|
47
47
|
</div>
|
|
48
48
|
</div>
|
|
@@ -130,6 +130,7 @@ import dayjs from 'dayjs'
|
|
|
130
130
|
import EmptyView from '../../shared/components/EmptyView.vue'
|
|
131
131
|
import Tip from './Tip.vue'
|
|
132
132
|
import groupBy from 'lodash/groupBy'
|
|
133
|
+
import { useAmount } from '../../shared/composables/useAmount'
|
|
133
134
|
|
|
134
135
|
const refreshing = ref(false)
|
|
135
136
|
|
|
@@ -140,6 +141,7 @@ const props = withDefaults(defineProps<AccountViewProps>(), {
|
|
|
140
141
|
app: '',
|
|
141
142
|
})
|
|
142
143
|
|
|
144
|
+
const { formatAmount } = useAmount()
|
|
143
145
|
const emit = defineEmits(['recharge', 'trade'])
|
|
144
146
|
|
|
145
147
|
const filterOpen = ref<boolean>(false)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</div>
|
|
10
10
|
<span class="baan-name">云豆</span>
|
|
11
11
|
</div>
|
|
12
|
-
<div class="bean-nums number">{{ balance.total || 0 }}</div>
|
|
12
|
+
<div class="bean-nums number">{{ formatAmount(balance.total || 0) }}</div>
|
|
13
13
|
</div>
|
|
14
14
|
<div class="card-row-right">
|
|
15
15
|
<div class="account-info-entry" @click="gotoDetail">
|
|
@@ -43,6 +43,7 @@ import { ref } from 'vue'
|
|
|
43
43
|
import { endpoints, useHttp } from '../api'
|
|
44
44
|
import { Balance } from '../types'
|
|
45
45
|
import { useDidShow } from '@tarojs/taro'
|
|
46
|
+
import { useAmount } from '../../shared/composables/useAmount'
|
|
46
47
|
|
|
47
48
|
type BalanceCardProps = {
|
|
48
49
|
app: string
|
|
@@ -51,6 +52,7 @@ const props = withDefaults(defineProps<BalanceCardProps>(), {
|
|
|
51
52
|
app: '',
|
|
52
53
|
})
|
|
53
54
|
|
|
55
|
+
const { formatAmount } = useAmount()
|
|
54
56
|
const balance = ref<Balance>({
|
|
55
57
|
total: 0,
|
|
56
58
|
privileges: [],
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
<div class="promoter-card-hd" @click="emits('blance', tab)"
|
|
8
8
|
v-if="applyRecord.distributorFlag === 'Y' || applyRecord.accessCheckStatus === 'Y'">
|
|
9
|
-
<div class="promoter-card-hd-num">{{ promoter.balance }}</div>
|
|
9
|
+
<div class="promoter-card-hd-num">{{ formatAmount(promoter.balance || 0) }}</div>
|
|
10
10
|
<div class="promoter-card-hd-info">可提现余额(元)</div>
|
|
11
11
|
<img class="arrow-img" src="https://cdn.ddjf.com/static/images/appkit/arrow.png" alt="">
|
|
12
12
|
</div>
|
|
13
13
|
<div class="promoter-card-ft">
|
|
14
14
|
<div class="promoter-card-ft-item" v-if="applyRecord.accessCheckStatus === 'Y'" @click="emits('profits', tab)">
|
|
15
|
-
<div class="promoter-card-ft-info">销售累计收益(
|
|
15
|
+
<div class="promoter-card-ft-info">销售累计收益(元)</div>
|
|
16
16
|
<div class="promoter-card-ft-num">
|
|
17
|
-
{{ promoter.totalIncome }}
|
|
17
|
+
{{ formatAmount(promoter.totalIncome || 0) }}
|
|
18
18
|
<img class="arrow-img" src="https://cdn.ddjf.com/static/images/appkit/arrow.png" alt="">
|
|
19
19
|
</div>
|
|
20
20
|
</div>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<div class="promoter-card-ft-item" @click="emits('rebate', tab)" v-if="applyRecord.distributorFlag === 'Y'">
|
|
24
24
|
<div class="promoter-card-ft-info">返佣累计收益(元)</div>
|
|
25
25
|
<div class="promoter-card-ft-num">
|
|
26
|
-
{{ promoter.totalRebateIncome }}
|
|
26
|
+
{{ formatAmount(promoter.totalRebateIncome || 0) }}
|
|
27
27
|
<img class="arrow-img" src="https://cdn.ddjf.com/static/images/appkit/arrow.png" alt="">
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
@@ -36,6 +36,7 @@ import { ref, watch } from 'vue'
|
|
|
36
36
|
import { endpoints, useHttp } from '../api'
|
|
37
37
|
import { Promoter } from '../types'
|
|
38
38
|
import { useDidShow } from '@tarojs/taro'
|
|
39
|
+
import { useAmount } from '../../shared/composables/useAmount'
|
|
39
40
|
|
|
40
41
|
type PromoterCardProps = {
|
|
41
42
|
useCase: string
|
|
@@ -48,6 +49,7 @@ const props = withDefaults(defineProps<PromoterCardProps>(), {
|
|
|
48
49
|
isAdmin: true
|
|
49
50
|
})
|
|
50
51
|
|
|
52
|
+
const { formatAmount } = useAmount()
|
|
51
53
|
const tab = ref('person')
|
|
52
54
|
|
|
53
55
|
const promoter = ref<Promoter>({
|
|
@@ -1,44 +1,42 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view class="view recharge-view2">
|
|
3
3
|
<view class="flex-grow">
|
|
4
|
-
<rights-picker :items="amounts"
|
|
5
|
-
:selected="state.selected"
|
|
6
|
-
@change="onAmountSelect" />
|
|
4
|
+
<rights-picker :items="amounts" :selected="state.selected" @change="onAmountSelect" />
|
|
7
5
|
<div class="bean-buy" v-if="amounts[state.selected]">
|
|
8
6
|
<div class="left">
|
|
9
7
|
<div class="title">使用云豆支付</div>
|
|
10
|
-
<div class="amount" v-if="!selectBean">余额 {{balance}}</div>
|
|
11
|
-
<div class="amount" v-else>扣减后余额 {{(balance - amounts[state.selected].paymentAmount)
|
|
8
|
+
<div class="amount" v-if="!selectBean">余额 {{ formatAmount(balance || 0) }}</div>
|
|
9
|
+
<div class="amount" v-else>扣减后余额 {{ formatAmount(balance - amounts[state.selected].paymentAmount) }}</div>
|
|
12
10
|
</div>
|
|
13
11
|
<div class="right" v-if="balance >= amounts[state.selected].paymentAmount" @click="selectBean = !selectBean">
|
|
14
|
-
<div class="amount">-{{ amounts[state.selected].paymentAmount }}</div>
|
|
15
|
-
<img class="icon"
|
|
12
|
+
<div class="amount">-{{ formatAmount(amounts[state.selected].paymentAmount || 0) }}</div>
|
|
13
|
+
<img class="icon"
|
|
14
|
+
:src="selectBean ? 'https://cdn.ddjf.com/static/images/appkit/select.svg' : 'https://cdn.ddjf.com/static/images/appkit/not-select.svg'" />
|
|
16
15
|
</div>
|
|
17
|
-
</div>
|
|
16
|
+
</div>
|
|
18
17
|
</view>
|
|
19
18
|
<view class="amount-footer">
|
|
20
19
|
<view class="agreement" v-if="!selectBean">
|
|
21
|
-
<nut-checkbox v-model="state.agreed">我已阅读并同意<a class="link inline"
|
|
20
|
+
<nut-checkbox v-model="state.agreed">我已阅读并同意<a class="link inline"
|
|
21
|
+
@click="onAgreementLinkClick">《大道云平台云豆充值服务协议》</a></nut-checkbox>
|
|
22
22
|
</view>
|
|
23
23
|
<div class="buy-amount">
|
|
24
24
|
<div class="left">
|
|
25
25
|
待支付:
|
|
26
26
|
<span class="amount">
|
|
27
|
-
<i>¥</i>{{ currentAmount }}
|
|
27
|
+
<i>¥</i>{{ formatAmount(currentAmount) }}
|
|
28
28
|
</span>
|
|
29
29
|
</div>
|
|
30
|
-
<nut-button block
|
|
31
|
-
|
|
32
|
-
:loading="state.buttonLoading"
|
|
33
|
-
@click="onPayClick"
|
|
34
|
-
class="recharge-button">购买</nut-button>
|
|
30
|
+
<nut-button block shape="square" :loading="state.buttonLoading" @click="onPayClick"
|
|
31
|
+
class="recharge-button">购买</nut-button>
|
|
35
32
|
</div>
|
|
36
33
|
</view>
|
|
37
|
-
<nut-dialog title="确认购买" custom-class="trade-dialog" v-model:visible="showDialog" @cancel="showDialog = !showDialog"
|
|
34
|
+
<nut-dialog title="确认购买" custom-class="trade-dialog" v-model:visible="showDialog" @cancel="showDialog = !showDialog"
|
|
35
|
+
@ok="beanPay">
|
|
38
36
|
<template v-if="amounts[state.selected]">
|
|
39
|
-
<div class="item">云豆扣减:{{ amounts[state.selected].paymentAmount }}</div>
|
|
40
|
-
<div class="item">权益增加:{{ amounts[state.selected].priceRightNum }}笔</div>
|
|
41
|
-
<div class="item">扣减后云豆余额:{{ (balance - amounts[state.selected].paymentAmount)
|
|
37
|
+
<div class="item">云豆扣减:{{ formatAmount(amounts[state.selected].paymentAmount || 0) }}</div>
|
|
38
|
+
<div class="item">权益增加:{{ formatAmount(amounts[state.selected].priceRightNum || 0) }}笔</div>
|
|
39
|
+
<div class="item">扣减后云豆余额:{{ formatAmount(balance - amounts[state.selected].paymentAmount) }}</div>
|
|
42
40
|
</template>
|
|
43
41
|
</nut-dialog>
|
|
44
42
|
</view>
|
|
@@ -50,6 +48,7 @@ import RightsPicker, { Amount } from './RightsPicker.vue'
|
|
|
50
48
|
import { endpoints, useHttp } from '../api'
|
|
51
49
|
import { requestPaymentByBean } from '../services'
|
|
52
50
|
import Taro from '@tarojs/taro'
|
|
51
|
+
import { useAmount } from '../../shared/composables/useAmount'
|
|
53
52
|
|
|
54
53
|
// 充值用户界面
|
|
55
54
|
// 配置了必须的属性后
|
|
@@ -71,9 +70,10 @@ export interface RechargeViewProps {
|
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
const props = defineProps<RechargeViewProps>()
|
|
73
|
+
const { formatAmount } = useAmount()
|
|
74
74
|
|
|
75
75
|
const emit = defineEmits<{
|
|
76
|
-
(event: 'complete', value: {result: boolean, type: string}): void,
|
|
76
|
+
(event: 'complete', value: { result: boolean, type: string }): void,
|
|
77
77
|
(event: 'agree'): void,
|
|
78
78
|
}>()
|
|
79
79
|
|
|
@@ -101,7 +101,7 @@ const onAmountSelect = (selected: number) => {
|
|
|
101
101
|
selectBean.value = false
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
const currentAmount = computed(()=>{
|
|
104
|
+
const currentAmount = computed(() => {
|
|
105
105
|
return amounts.value[state.selected] && !selectBean.value ? amounts.value[state.selected].paymentAmount : 0
|
|
106
106
|
})
|
|
107
107
|
|
|
@@ -115,13 +115,13 @@ onMounted(() => {
|
|
|
115
115
|
|
|
116
116
|
// 云豆支付
|
|
117
117
|
const showDialog = ref<boolean>(false)
|
|
118
|
-
async function beanPay(){
|
|
118
|
+
async function beanPay() {
|
|
119
119
|
const $http = useHttp()
|
|
120
|
-
$http.post(
|
|
120
|
+
$http.post(`/payment/paymentCaseConfig/purchase/${amounts.value[state.selected].id}`).then((response: any) => {
|
|
121
121
|
if (response) {
|
|
122
122
|
showDialog.value = false
|
|
123
|
-
emit('complete', {result: response, type: 'bean'})
|
|
124
|
-
}else {
|
|
123
|
+
emit('complete', { result: response, type: 'bean' })
|
|
124
|
+
} else {
|
|
125
125
|
Taro.showToast({
|
|
126
126
|
title: response.message,
|
|
127
127
|
icon: 'none',
|
|
@@ -133,11 +133,11 @@ async function beanPay(){
|
|
|
133
133
|
|
|
134
134
|
const onPayClick = () => {
|
|
135
135
|
// 用云豆支付
|
|
136
|
-
if(selectBean.value){
|
|
136
|
+
if (selectBean.value) {
|
|
137
137
|
showDialog.value = true
|
|
138
|
-
return
|
|
138
|
+
return
|
|
139
139
|
}
|
|
140
|
-
|
|
140
|
+
|
|
141
141
|
// 微信支付
|
|
142
142
|
if (!selectBean.value && !state.agreed) {
|
|
143
143
|
Taro.showToast({
|
|
@@ -148,7 +148,7 @@ const onPayClick = () => {
|
|
|
148
148
|
}
|
|
149
149
|
state.buttonLoading = true
|
|
150
150
|
wx.login({
|
|
151
|
-
success
|
|
151
|
+
success({ code }: { code: string }) {
|
|
152
152
|
requestPaymentByBean({
|
|
153
153
|
caseConfigId: amounts.value[state.selected].id,
|
|
154
154
|
amount: amounts.value[state.selected].paymentAmount,
|
|
@@ -158,7 +158,7 @@ const onPayClick = () => {
|
|
|
158
158
|
}).then(result => {
|
|
159
159
|
state.buttonLoading = false
|
|
160
160
|
if (result) {
|
|
161
|
-
emit('complete', {result: true, type: 'wePay'})
|
|
161
|
+
emit('complete', { result: true, type: 'wePay' })
|
|
162
162
|
}
|
|
163
163
|
})
|
|
164
164
|
}
|
|
@@ -171,10 +171,12 @@ const onPayClick = () => {
|
|
|
171
171
|
height: 100%;
|
|
172
172
|
display: flex;
|
|
173
173
|
flex-direction: column;
|
|
174
|
+
|
|
174
175
|
.flex-grow {
|
|
175
176
|
flex-grow: 1;
|
|
176
177
|
}
|
|
177
|
-
|
|
178
|
+
|
|
179
|
+
.bean-buy {
|
|
178
180
|
margin: 0 15px;
|
|
179
181
|
padding: 10px;
|
|
180
182
|
background: #FFFBF3;
|
|
@@ -182,16 +184,18 @@ const onPayClick = () => {
|
|
|
182
184
|
display: flex;
|
|
183
185
|
justify-content: space-between;
|
|
184
186
|
align-items: center;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
187
|
+
|
|
188
|
+
.left {
|
|
189
|
+
.title {
|
|
190
|
+
color: #FD6701;
|
|
188
191
|
font-size: 14px;
|
|
189
192
|
font-weight: 600;
|
|
190
|
-
line-height: 20px;
|
|
193
|
+
line-height: 20px;
|
|
191
194
|
margin-bottom: 6px;
|
|
192
195
|
}
|
|
193
|
-
|
|
194
|
-
|
|
196
|
+
|
|
197
|
+
.amount {
|
|
198
|
+
color: #353535;
|
|
195
199
|
font-size: 13px;
|
|
196
200
|
line-height: 16px;
|
|
197
201
|
background-image: url('https://cdn.ddjf.com/static/images/appkit/yundou.png');
|
|
@@ -200,16 +204,19 @@ const onPayClick = () => {
|
|
|
200
204
|
padding-left: 24px;
|
|
201
205
|
}
|
|
202
206
|
}
|
|
203
|
-
|
|
207
|
+
|
|
208
|
+
.right {
|
|
204
209
|
display: flex;
|
|
205
210
|
align-items: center;
|
|
206
|
-
|
|
207
|
-
|
|
211
|
+
|
|
212
|
+
.amount {
|
|
213
|
+
color: #353535;
|
|
208
214
|
font-size: 15px;
|
|
209
215
|
line-height: 20px;
|
|
210
216
|
margin-right: 10px;
|
|
211
217
|
}
|
|
212
|
-
|
|
218
|
+
|
|
219
|
+
.icon {
|
|
213
220
|
display: block;
|
|
214
221
|
width: 16px;
|
|
215
222
|
height: 16px;
|
|
@@ -217,9 +224,11 @@ const onPayClick = () => {
|
|
|
217
224
|
}
|
|
218
225
|
}
|
|
219
226
|
}
|
|
227
|
+
|
|
220
228
|
.amount-footer {
|
|
221
229
|
padding: 10px 0;
|
|
222
230
|
padding-bottom: 20px;
|
|
231
|
+
|
|
223
232
|
.agreement {
|
|
224
233
|
font-size: 12px;
|
|
225
234
|
display: flex;
|
|
@@ -227,27 +236,33 @@ const onPayClick = () => {
|
|
|
227
236
|
align-items: cebter;
|
|
228
237
|
height: 40px;
|
|
229
238
|
}
|
|
230
|
-
|
|
239
|
+
|
|
240
|
+
.buy-amount {
|
|
231
241
|
display: flex;
|
|
232
242
|
justify-content: space-between;
|
|
233
243
|
align-items: center;
|
|
234
244
|
padding: 0 10px;
|
|
235
245
|
border-radius: 0px;
|
|
236
|
-
box-shadow: 0px -5px 14px -5px rgba(0, 0, 0, 0.1);
|
|
237
|
-
|
|
246
|
+
box-shadow: 0px -5px 14px -5px rgba(0, 0, 0, 0.1);
|
|
247
|
+
|
|
248
|
+
/* 上边框阴影 */
|
|
249
|
+
.left {
|
|
238
250
|
width: 70%;
|
|
239
|
-
color
|
|
251
|
+
color: #353535;
|
|
240
252
|
font-size: 13px;
|
|
241
|
-
|
|
242
|
-
|
|
253
|
+
|
|
254
|
+
.amount {
|
|
255
|
+
color: #FD6701;
|
|
243
256
|
font-size: 20px;
|
|
244
257
|
font-weight: 600;
|
|
245
|
-
|
|
258
|
+
|
|
259
|
+
i {
|
|
246
260
|
font-size: 14px;
|
|
247
261
|
font-style: normal;
|
|
248
262
|
}
|
|
249
263
|
}
|
|
250
264
|
}
|
|
265
|
+
|
|
251
266
|
.recharge-button {
|
|
252
267
|
background: linear-gradient(90deg, #FFEBC1 0%, #FFD7A7 52.29%, #FFB875 100%);
|
|
253
268
|
color: #353535;
|
|
@@ -257,36 +272,43 @@ const onPayClick = () => {
|
|
|
257
272
|
flex: 1;
|
|
258
273
|
}
|
|
259
274
|
}
|
|
275
|
+
|
|
260
276
|
.nut-checkbox {
|
|
261
277
|
line-height: 40px;
|
|
262
278
|
}
|
|
279
|
+
|
|
263
280
|
.nut-checkbox__label {
|
|
264
281
|
margin-left: 8px;
|
|
265
282
|
flex: flex;
|
|
266
283
|
font-size: 12px;
|
|
267
284
|
}
|
|
285
|
+
|
|
268
286
|
.link {
|
|
269
287
|
display: inline;
|
|
270
288
|
color: #FD6701;
|
|
271
289
|
}
|
|
272
290
|
}
|
|
273
291
|
}
|
|
274
|
-
|
|
275
|
-
|
|
292
|
+
|
|
293
|
+
.trade-dialog {
|
|
294
|
+
.nut-dialog__header {
|
|
276
295
|
font-size: 16px;
|
|
277
296
|
color: #262626
|
|
278
297
|
}
|
|
279
|
-
|
|
298
|
+
|
|
299
|
+
.item {
|
|
280
300
|
font-size: 14px;
|
|
281
|
-
color
|
|
301
|
+
color: #666666;
|
|
282
302
|
line-height: 21px;
|
|
283
303
|
}
|
|
284
|
-
|
|
304
|
+
|
|
305
|
+
.nut-dialog__footer-cancel {
|
|
285
306
|
color: #353535 !important;
|
|
286
307
|
border-color: #CCCCCC !important;
|
|
287
308
|
}
|
|
309
|
+
|
|
288
310
|
.nut-dialog__footer-ok {
|
|
289
|
-
border:none;
|
|
311
|
+
border: none;
|
|
290
312
|
color: #353535;
|
|
291
313
|
background: linear-gradient(90deg, #FFEBC1 0%, #FFB875 100%);
|
|
292
314
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { reactive } from 'vue'
|
|
3
|
-
import
|
|
4
|
-
import { OcrResultType } from '../../components/ocr-id/types'
|
|
3
|
+
import OcrIcon from '../../shared/components/OcrIcon.vue'
|
|
5
4
|
import DdArea from './../../components/dd-area/index.vue'
|
|
6
5
|
import DdSelector from './../../components/dd-selector/index.vue'
|
|
7
6
|
import Taro from '@tarojs/taro'
|
|
@@ -46,10 +45,10 @@ const positionOptions = [
|
|
|
46
45
|
|
|
47
46
|
const emit = defineEmits(['submit'])
|
|
48
47
|
|
|
49
|
-
function onOCRInfo(payload:
|
|
48
|
+
function onOCRInfo(payload: any) {
|
|
50
49
|
if (!payload) return
|
|
51
|
-
formState.name = payload
|
|
52
|
-
formState.certNo = payload
|
|
50
|
+
formState.name = payload?.faceInfo.name
|
|
51
|
+
formState.certNo = payload?.faceInfo.certNo
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
function showVerifyToast(tip: string, duration = 1500) {
|
|
@@ -124,25 +123,18 @@ async function submit() {
|
|
|
124
123
|
</nut-form-item>
|
|
125
124
|
<nut-form-item label="你的姓名" required>
|
|
126
125
|
<div class="self-registration__input">
|
|
127
|
-
<input
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
<OcrId @ocr="onOCRInfo" style="margin-left: 5px" />
|
|
126
|
+
<input v-model="formState.name" class="nut-input-text" placeholder="请输入或拍照识别" type="text" :maxlength="20" />
|
|
127
|
+
<OcrIcon @complete="onOCRInfo">
|
|
128
|
+
<template #icon>
|
|
129
|
+
<img style="width: 20px; height: 20px; margin-left: 5px;"
|
|
130
|
+
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggb3BhY2l0eT0iLjAxIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQwIDB2NDBIMFYwaDQweiIgZmlsbD0iI0M0QzRDNCIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzMuMDQ0IDE3LjM2M2MuOTYgMCAxLjczOS0uNzkgMS43MzktMS43NjYgMC0uOTc1LS43NzktMS43NjYtMS43NC0xLjc2Ni0uOTYgMC0xLjczOC43OS0xLjczOCAxLjc2NnMuNzc4IDEuNzY2IDEuNzM5IDEuNzY2eiIgZmlsbD0iIzRCQ0I5MyIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAzMS44MTJWMTQuNzg4YzAtMi4yNTggMi4wNDktNC4wOTcgNC41NjQtNC4wOTdoMy44NDRsMS4xMzYtMy42NThDOS44ODggNS45MTMgMTEuMjM3IDUgMTIuNTQ4IDVIMjcuNDVjMS4zOSAwIDIuNjguODc2IDMuMDEgMi4wNDRsMS4xMzMgMy42NDdoMy44NDRjMi41MTUgMCA0LjU2NCAxLjgzOSA0LjU2NCA0LjA5N3YxLjczOWMwIC41MDMtLjQ1NC45MS0xLjAxNC45MXMtMS4wMTQtLjQwNy0xLjAxNC0uOTF2LTEuNzRjMC0xLjI1My0xLjEzOS0yLjI3NS0yLjUzNi0yLjI3NWgtMy44NDRjLS45MDcgMC0xLjcxMS0uNTQ5LTEuOTU1LTEuMzMybC0xLjEzNi0zLjY2YS4zNDIuMzQyIDAgMCAwLS4wMDctLjAyNWMtLjExLS4zOTYtLjYzOS0uNjc0LTEuMDQ1LS42NzRoLTE0LjljLS4zOTkgMC0uOTUuMzY2LTEuMDUzLjY5OWwtMS4xMzYgMy42NmMtLjI0Ny43ODYtMS4wNDUgMS4zMy0xLjk1NSAxLjMzMkg0LjU2NGMtMS4zOTcgMC0yLjUzNiAxLjAyMi0yLjUzNiAyLjI3NnYxNy4wMjRjMCAxLjI1NCAxLjEzOSAyLjI3NiAyLjUzNiAyLjI3NmgzMC44N2MxLjM5NyAwIDIuNTM1LTEuMDIyIDIuNTM1LTIuMjc2VjIxLjU5NmMwLS41MDMuNDU0LS45MSAxLjAxNC0uOTFzMS4wMTUuNDA3IDEuMDE1LjkxVjMxLjgxYy0uMDAzIDIuMjYtMi4wNSA0LjEtNC41NjcgNC4xSDQuNTY0QzIuMDQ5IDM1LjkxIDAgMzQuMDcgMCAzMS44MTF6IiBmaWxsPSIjNEJDQjkzIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi4xNzQgMjEuNzc4YzAtNC44NyAzLjcwNS04LjgzIDguMjYtOC44MyA0LjU1NiAwIDguMjYyIDMuOTYgOC4yNjIgOC44M3MtMy43MDYgOC44MzItOC4yNjEgOC44MzJjLTQuNTU2IDAtOC4yNjEtMy45NjItOC4yNjEtOC44MzJ6bTEuNzc5LjEzYzAgMy43OTYgMi45MDcgNi44ODMgNi40ODIgNi44ODMgMy41NzQgMCA2LjQ4MS0zLjA4NyA2LjQ4MS02Ljg4M3MtMi45MDctNi44ODMtNi40ODItNi44ODNjLTMuNTc0IDAtNi40ODEgMy4wODctNi40ODEgNi44ODN6IiBmaWxsPSIjNEJDQjkzIi8+PC9zdmc+" />
|
|
131
|
+
</template>
|
|
132
|
+
</OcrIcon>
|
|
135
133
|
</div>
|
|
136
134
|
</nut-form-item>
|
|
137
135
|
|
|
138
136
|
<nut-form-item v-if="formState.scene === 'person'" label="身份证号码" required>
|
|
139
|
-
<input
|
|
140
|
-
v-model="formState.certNo"
|
|
141
|
-
class="nut-input-text"
|
|
142
|
-
placeholder="请输入"
|
|
143
|
-
type="text"
|
|
144
|
-
:maxlength="18"
|
|
145
|
-
/>
|
|
137
|
+
<input v-model="formState.certNo" class="nut-input-text" placeholder="请输入" type="text" :maxlength="18" />
|
|
146
138
|
</nut-form-item>
|
|
147
139
|
|
|
148
140
|
<template v-else>
|
|
@@ -150,22 +142,11 @@ async function submit() {
|
|
|
150
142
|
<DdSelector v-model:value="formState.position" :options="positionOptions" />
|
|
151
143
|
</nut-form-item>
|
|
152
144
|
<nut-form-item label="公司名称" required>
|
|
153
|
-
<input
|
|
154
|
-
|
|
155
|
-
class="nut-input-text"
|
|
156
|
-
placeholder="请输入"
|
|
157
|
-
type="text"
|
|
158
|
-
:maxlength="50"
|
|
159
|
-
/>
|
|
145
|
+
<input v-model="formState.companyName" class="nut-input-text" placeholder="请输入" type="text"
|
|
146
|
+
:maxlength="50" />
|
|
160
147
|
</nut-form-item>
|
|
161
148
|
<nut-form-item label="社会统一信用代码" required>
|
|
162
|
-
<input
|
|
163
|
-
v-model="formState.companyNo"
|
|
164
|
-
class="nut-input-text"
|
|
165
|
-
placeholder="请输入"
|
|
166
|
-
type="text"
|
|
167
|
-
:maxlength="18"
|
|
168
|
-
/>
|
|
149
|
+
<input v-model="formState.companyNo" class="nut-input-text" placeholder="请输入" type="text" :maxlength="18" />
|
|
169
150
|
</nut-form-item>
|
|
170
151
|
<nut-form-item label="所在地区" required>
|
|
171
152
|
<DdArea v-model:value="formState.areaCode" type="city" placeholder="请选择" />
|
|
@@ -174,9 +155,7 @@ async function submit() {
|
|
|
174
155
|
</nut-form>
|
|
175
156
|
</div>
|
|
176
157
|
<div class="self-registration-bottom">
|
|
177
|
-
<nut-button block type="primary" class="experience-button" @click="submit"
|
|
178
|
-
>立即体验</nut-button
|
|
179
|
-
>
|
|
158
|
+
<nut-button block type="primary" class="experience-button" @click="submit">立即体验</nut-button>
|
|
180
159
|
</div>
|
|
181
160
|
</div>
|
|
182
161
|
</template>
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
:class="['ocr-business-license', disabled ? 'disabled' : '']"
|
|
4
|
-
class="ocr-icon"
|
|
5
|
-
@click="onIconClick"
|
|
6
|
-
>
|
|
2
|
+
<div :class="['ocr-business-license', disabled ? 'disabled' : '']" class="ocr-icon" @click="onIconClick">
|
|
7
3
|
<ns-icon name="https://cdn.ddjf.com/static/images/beidouxing/ocr-icon.png" />
|
|
8
4
|
</div>
|
|
9
5
|
</template>
|
|
@@ -82,7 +78,6 @@ async function onIconClick() {
|
|
|
82
78
|
objectNo: `min${Date.now()}`,
|
|
83
79
|
},
|
|
84
80
|
header: {
|
|
85
|
-
sessionKey: session || '',
|
|
86
81
|
token: session || '',
|
|
87
82
|
},
|
|
88
83
|
});
|
|
@@ -120,10 +115,12 @@ async function onIconClick() {
|
|
|
120
115
|
.ocr-business-license {
|
|
121
116
|
width: 24px;
|
|
122
117
|
height: 24px;
|
|
118
|
+
|
|
123
119
|
.ns-icon {
|
|
124
120
|
width: 24px;
|
|
125
121
|
height: 24px;
|
|
126
122
|
}
|
|
123
|
+
|
|
127
124
|
&.disabled {
|
|
128
125
|
.ns-icon {
|
|
129
126
|
filter: brightness(1.5) grayscale(1);
|