用户隐私协议开发
This commit is contained in:
@@ -103,12 +103,19 @@
|
||||
</view>
|
||||
|
||||
<!-- 用户协议 -->
|
||||
<!-- <view class="auth-agreement">
|
||||
<text>登录即表示同意</text>
|
||||
<text class="link" @click="openAgreement('user')">《用户协议》</text>
|
||||
<text>和</text>
|
||||
<text class="link" @click="openAgreement('privacy')">《隐私政策》</text>
|
||||
</view> -->
|
||||
<view class="auth-agreement">
|
||||
<view class="agreement-checkbox" @click="toggleAgreement">
|
||||
<uni-icons
|
||||
:type="agreedToAgreement ? 'checkbox-filled' : 'circle'"
|
||||
size="20"
|
||||
:color="agreedToAgreement ? '#256BFA' : '#999'"
|
||||
></uni-icons>
|
||||
<text class="agreement-text">我已阅读并同意</text>
|
||||
</view>
|
||||
<text class="link" @click="openAgreement('user')">《隐私协议》</text>
|
||||
<!-- <text>和</text>
|
||||
<text class="link" @click="openAgreement('privacy')">《隐私政策》</text> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
@@ -128,6 +135,7 @@ const popup = ref(null);
|
||||
const userType = ref(null); // 用户角色:1-求职者,0-企业
|
||||
const orgType = ref(null); // 机构类型
|
||||
const orgTypeOptions = ref([]); // 机构类型选项
|
||||
const agreedToAgreement = ref(false); // 是否同意用户协议
|
||||
const emit = defineEmits(['success', 'cancel']);
|
||||
|
||||
// 获取机构类型字典
|
||||
@@ -159,6 +167,10 @@ const open = () => {
|
||||
popup.value?.open();
|
||||
userType.value = null; // 重置角色选择
|
||||
orgType.value = null; // 重置机构类型选择
|
||||
|
||||
// 检查是否已同意协议
|
||||
const agreed = uni.getStorageSync('agreedToUserAgreement');
|
||||
agreedToAgreement.value = !!agreed;
|
||||
};
|
||||
|
||||
// 关闭弹窗
|
||||
@@ -191,26 +203,25 @@ const validateRole = () => {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 验证是否同意用户协议
|
||||
if (!agreedToAgreement.value) {
|
||||
$api.msg('请先阅读并同意用户协议');
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
const getPhoneNumber = (e) => {
|
||||
console.log('获取手机号:', e);
|
||||
console.log('userType.value', userType.value)
|
||||
// 验证角色是否已选择
|
||||
|
||||
// 验证角色、机构类型和用户协议
|
||||
if (!validateRole()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.detail.errMsg === 'getPhoneNumber:ok') {
|
||||
if (userType.value === null) {
|
||||
$api.msg('请先选择您的角色');
|
||||
return true;
|
||||
}
|
||||
|
||||
// 验证机构类型是否已选择(仅单位角色)
|
||||
if (userType.value === 0 && orgType.value === null) {
|
||||
$api.msg('请选择机构类型');
|
||||
return true;
|
||||
}
|
||||
uni.login({
|
||||
provider: 'weixin',
|
||||
success: (loginRes) => {
|
||||
@@ -363,6 +374,11 @@ const wxLogin = () => {
|
||||
|
||||
// 测试账号登录(仅开发环境)
|
||||
const testLogin = () => {
|
||||
// 验证角色、机构类型和用户协议
|
||||
if (!validateRole()) {
|
||||
return;
|
||||
}
|
||||
|
||||
uni.showLoading({ title: '登录中...' });
|
||||
|
||||
const params = {
|
||||
@@ -409,18 +425,21 @@ const testLogin = () => {
|
||||
});
|
||||
};
|
||||
|
||||
// 切换协议同意状态
|
||||
const toggleAgreement = () => {
|
||||
agreedToAgreement.value = !agreedToAgreement.value;
|
||||
};
|
||||
|
||||
// 打开用户协议
|
||||
const openAgreement = (type) => {
|
||||
const urls = {
|
||||
user: '/pages/agreement/user',
|
||||
privacy: '/pages/agreement/privacy'
|
||||
user: '/packageA/pages/agreement/user',
|
||||
privacy: '/packageA/pages/agreement/privacy'
|
||||
};
|
||||
|
||||
if (urls[type]) {
|
||||
uni.navigateTo({
|
||||
url: urls[type]
|
||||
});
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: urls[type]
|
||||
});
|
||||
};
|
||||
|
||||
// 暴露方法供父组件调用
|
||||
@@ -596,10 +615,23 @@ defineExpose({
|
||||
margin-left: 12rpx
|
||||
|
||||
.auth-agreement
|
||||
text-align: center
|
||||
display: flex
|
||||
align-items: center
|
||||
justify-content: center
|
||||
font-size: 24rpx
|
||||
color: #999999
|
||||
line-height: 1.6
|
||||
flex-wrap: wrap
|
||||
gap: 8rpx
|
||||
|
||||
.agreement-checkbox
|
||||
display: flex
|
||||
align-items: center
|
||||
cursor: pointer
|
||||
|
||||
.agreement-text
|
||||
margin-left: 8rpx
|
||||
color: #666666
|
||||
|
||||
.link
|
||||
color: #256BFA
|
||||
|
||||
Reference in New Issue
Block a user