account.vue
3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<template>
<u-navbar title="账户设置" :autoBack="true" bgColor="#fff" placeholder safeAreaInsetTop :titleStyle="{ color: '#000' }" leftIconColor="#000"></u-navbar>
<u-cell-group>
<template v-for="_ in accountList">
<!-- <u-cell
:title="_.title + _.account"
:isLink="true"
@click="
() => {
bindAccountModalState = true
bindAccountModalTitle = _.title
flag = _.flag
nameFlag = _.nameFlag
}
"
></u-cell> -->
<u-cell :title="_.title + _.account" :isLink="true" @click="proxy.$h.jumpUrl(proxy.$h.setObjToUrlParams(_.url, _))"></u-cell>
</template>
</u-cell-group>
<u-modal :show="bindAccountModalState" :title="''" @confirm="bindAccountHandler" @cancel="bindAccountModalState = false" showCancelButton confirmText="确认绑定">
<view>
<u-input :placeholder="`请输入${bindAccountModalTitle}`" border="surround" v-model="params[flag]" style="margin-bottom: 16rpx"></u-input>
<u-input :placeholder="`请输入真实姓名`" border="surround" v-model="params[nameFlag]"></u-input>
</view>
</u-modal>
</template>
<script lang="ts" setup>
import { ref, getCurrentInstance, ComponentPublicInstance } from 'vue'
import { onShow } from '@dcloudio/uni-app'
import { updateBindUserCard, getUserCard } from '../../api'
import { BindUserCardType, GetUserCardType } from '../../types'
const { proxy } = getCurrentInstance() as { proxy: ComponentPublicInstance }
const params = ref<BindUserCardType>({
wxUserName: '',
aliUserName: '',
doctorRealName: '',
doctorWXRealName: ''
})
const userCard = ref<GetUserCardType>()
const flag = ref<string>('')
const nameFlag = ref<string>('')
const bindAccountModalState = ref<boolean>(false)
const bindAccountModalTitle = ref<string>('')
const accountList = ref([
{ account: '', title: '微信账户', nameFlag: 'doctorWXRealName', url: '/pages2/money/addAccount', flag: 'wxUserName' },
{ account: '', title: '支付宝账户', nameFlag: 'doctorRealName', url: '/pages2/money/addAccount', flag: 'aliUserName' }
])
onShow(() => {
getUserCardHandler()
})
const getUserCardHandler = async () => {
const { result }: { result: GetUserCardType } = await getUserCard()
userCard.value = result
if (![null, undefined, ''].includes(result.wxUserName)) {
accountList.value[0].account = `:${result.wxUserName as string}`
}
if (![null, undefined, ''].includes(result.aliUserName)) {
accountList.value[1].account = `:${result.aliUserName as string}`
}
}
const bindAccountHandler = async () => {
if ((flag.value === 'wxUserName' && params.value.wxUserName === '') || (flag.value === 'aliUserName' && params.value.aliUserName === '')) return uni.$u.toast('请输入账户信息')
if ((flag.value === 'wxUserName' && params.value.doctorWXRealName === '') || (flag.value === 'aliUserName' && params.value.doctorRealName === '')) return uni.$u.toast('请输入真实姓名')
await updateBindUserCard({ [flag.value]: params.value[flag.value].replace(/\s/g, ''), [nameFlag.value]: params.value[nameFlag.value] })
bindAccountModalState.value = false
proxy.$h.timeCallBack('绑定成功')
}
</script>