Files
sl-express/project-wl-kuaidiyuan-uniapp-vue3/pages/details/components/authentication.vue
shuhongfan cf5ac25c14 init
2023-09-04 16:40:17 +08:00

118 lines
3.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--身份证验证-->
<template>
<view class="boxBg">
<view class="tit">
<text v-if="detailsData.idCardNoVerify === 0 && !flag">
身份验证未验证
<icon class="iconTip"></icon>
</text>
<text v-else-if="detailsData.idCardNoVerify === 1 || flag">
身份验证验证通过
<!-- TODO 先保留-->
<!-- <icon class="iconTip"></icon> -->
</text>
<text v-else>
身份验证验证未通过
<icon class="iconTip"></icon>
</text>
</view>
<view class="identityBox" v-if="detailsData.idCardNoVerify !== 1 && !flag">
<view>
<uni-forms ref="customForm">
<uni-forms-item name="name"
><uni-easyinput
class="item"
v-model="name"
placeholder="请输入真实姓名"
/></uni-forms-item>
<uni-forms-item name="idCard"
><uni-easyinput
class="item"
v-model="idCard"
placeholder="请输入身份证号码"
@blur="handleIdcard"
/></uni-forms-item>
</uni-forms>
<button class="uni-btn concelBtn" @click="handleCheck">验证</button>
</view>
</view>
<view class="identitySuccee" v-else>
<view class="text" v-if="name !== ''">{{ name }}</view>
<view class="text">{{
idCard !== "" ? idCard : detailsData.idCardNo
}}</view>
</view>
</view>
</template>
<script setup>
import { ref, onMounted } from "vue";
import { useStore } from "vuex";
// 验证
import { validateIdentityCard } from "@/utils/validate";
// 接口
import { idCardCheck } from "@/pages/api/index.js";
// 获取父组件数据
const props = defineProps({
detailsData: {
type: Object,
default: () => ({}),
},
});
// ------定义变量------
const customForm = ref();
const store = useStore(); //vuex获取、储存数据
const users = store.state.user;
// 表单数据
let idCard = ref(""); //身份证号
let name = ref(""); //身份证号
let isValidate = ref(false); //输入身份证是否验证成功
let flag = ref(null); //是否校验成功
// ------定义方法------
onMounted(() => {
if (users.cardData) {
name.value = users.cardData.name;
name.idCard = users.cardData.idCard;
flag.value = true;
}
});
// 身份校验
const handleIdcard = () => {
const validate = validateIdentityCard(idCard.value);
if (validate) {
isValidate.value = true;
} else {
return uni.showToast({
title: validate,
duration: 1000,
icon: "none",
});
}
};
// 验证身份号
const handleCheck = async () => {
const params = {
name: name.value,
idCard: idCard.value,
};
store.commit("user/setCardData", params);
await idCardCheck(params)
.then((res) => {
if (res.code === 200) {
flag.value = res.data.flag;
return uni.showToast({
title: "验证成功",
duration: 1000,
icon: "none",
});
}
})
};
// 暴漏给父组件
defineExpose({
customForm,
idCard,
name,
isValidate,
});
</script>