Commit 87f559be authored by shilei's avatar shilei

用户协议

parent 0ca6cab4
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="main-width"> <div class="main-width">
<div class="flex"> <div class="flex">
<div class="mt-[159px] font-yahei font-bold text-white"> <div class="mt-[159px] font-yahei font-bold text-white">
<div class="main-title h-[86px] w-[638px] text-[58px] whitespace-nowrap"> <div class="main-title h-[86px] w-[638px] whitespace-nowrap text-[58px]">
立业{{ developName }}丨共赢发展未来 立业{{ developName }}丨共赢发展未来
</div> </div>
<div class="sub-title mt-[13px] h-[37px] w-[637px] whitespace-nowrap text-[28px]"> <div class="sub-title mt-[13px] h-[37px] w-[637px] whitespace-nowrap text-[28px]">
...@@ -247,7 +247,8 @@ const handleShowDesc = () => { ...@@ -247,7 +247,8 @@ const handleShowDesc = () => {
} }
.star-detail { .star-detail {
.star-bg { .star-bg {
background: url('https://cfld-obs-pro01.obs.cn-north-4.myhuaweicloud.com/img/system/%E8%88%92%E5%9F%8E%E5%A4%B4%E5%9B%BE.png?x-image-process=image/quality,q_80') no-repeat; background: url('https://cfld-obs-pro01.obs.cn-north-4.myhuaweicloud.com/img/system/%E8%88%92%E5%9F%8E%E5%A4%B4%E5%9B%BE.png?x-image-process=image/quality,q_80')
no-repeat;
background-size: cover; background-size: cover;
background-position-y: -100px; background-position-y: -100px;
} }
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
></CommonVideo> ></CommonVideo>
<CommonImage <CommonImage
v-else v-else
class="w-[492px] h-[288px]" class="h-[288px] w-[492px]"
:src="item.videourl" :src="item.videourl"
:type="DetailType.develop" :type="DetailType.develop"
></CommonImage> ></CommonImage>
......
...@@ -42,15 +42,22 @@ ...@@ -42,15 +42,22 @@
<div class="my-2.5 py-3"> <div class="my-2.5 py-3">
<button class="btn-default" @click="login">登录</button> <button class="btn-default" @click="login">登录</button>
</div> </div>
<p class="mb-1 cursor-pointer text-[#C0322B]" @click="changeModalType('loginByAccount')"> <div class="checkbox-box mt-2.5 leading-[20px] text-black/[.65]">
账号密码登录 <ElCheckbox v-model="agree" :label="1">
</p> <p style="text-wrap: wrap; line-height: 20px" class="text-xs">
<p class="text-xs text-black/[.45]"> 我已阅读并同意
登录即代表同意 <a class="text-[#C0322B]" @click.stop.prevent="toAgreement(RouteName.userInfoPolicy)">
<a class="text-[#C0322B]">《立业云隐私政策》</a> 《立业云隐私政策》
</a>
<a class="text-[#C0322B]">《立业云用户服务协议》</a> <a class="text-[#C0322B]" @click.stop.prevent="toAgreement(RouteName.userAgreement)">
《立业云用户服务协议》
</a>
<a class="text-[#C0322B]" @click.stop.prevent="toAgreement(RouteName.thirdAgreement)">
《第三方使用信息协议》
</a>
</p> </p>
</ElCheckbox>
</div>
</div> </div>
<!-- /** * 账号密码登录 */ --> <!-- /** * 账号密码登录 */ -->
<div v-if="modalType === 'loginByAccount'"> <div v-if="modalType === 'loginByAccount'">
...@@ -89,12 +96,22 @@ ...@@ -89,12 +96,22 @@
<p class="mb-1 cursor-pointer text-[#C0322B]" @click="changeModalType('loginByPhone')"> <p class="mb-1 cursor-pointer text-[#C0322B]" @click="changeModalType('loginByPhone')">
手机快捷登录 手机快捷登录
</p> </p>
<p class="text-xs text-black/[.45]"> <div class="checkbox-box mt-2.5 leading-[20px] text-black/[.65]">
登录即代表同意 <ElCheckbox v-model="agree" :label="1">
<a class="text-[#C0322B]">《立业云隐私政策》</a> <p style="text-wrap: wrap; line-height: 20px" class="text-xs">
我已阅读并同意
<a class="text-[#C0322B]">《立业云用户服务协议》</a> <a class="text-[#C0322B]" @click.stop="toAgreement(RouteName.userInfoPolicy)">
《立业云隐私政策》
</a>
<a class="text-[#C0322B]" @click.stop="toAgreement(RouteName.userAgreement)">
《立业云用户服务协议》
</a>
<a class="text-[#C0322B]" @click.stop="toAgreement(RouteName.thirdAgreement)">
《第三方使用信息协议》
</a>
</p> </p>
</ElCheckbox>
</div>
</div> </div>
<!-- /** * 找回密码 */ --> <!-- /** * 找回密码 */ -->
<div v-if="modalType === 'resetPassWord'"> <div v-if="modalType === 'resetPassWord'">
...@@ -190,9 +207,15 @@ ...@@ -190,9 +207,15 @@
<ElCheckbox v-model="agree" :label="1"> <ElCheckbox v-model="agree" :label="1">
<p style="text-wrap: wrap; line-height: 20px" class="text-xs"> <p style="text-wrap: wrap; line-height: 20px" class="text-xs">
我已阅读并同意 我已阅读并同意
<a class="text-[#C0322B]">《立业云隐私政策》</a> <a class="text-[#C0322B]" @click.stop.prevent="toAgreement(RouteName.userInfoPolicy)">
《立业云隐私政策》
<a class="text-[#C0322B]">《立业云用户服务协议》</a> </a>
<a class="text-[#C0322B]" @click.stop.prevent="toAgreement(RouteName.userAgreement)">
《立业云用户服务协议》
</a>
<a class="text-[#C0322B]" @click.stop.prevent="toAgreement(RouteName.thirdAgreement)">
《第三方使用信息协议》
</a>
</p> </p>
</ElCheckbox> </ElCheckbox>
</div> </div>
...@@ -206,6 +229,8 @@ import { RequestUrl } from '@/types/api.ts'; ...@@ -206,6 +229,8 @@ import { RequestUrl } from '@/types/api.ts';
import { useMessage } from '@/composable/useMessage.ts'; import { useMessage } from '@/composable/useMessage.ts';
import { useAppStore } from '@/stores/app.ts'; import { useAppStore } from '@/stores/app.ts';
import { debounce } from 'lodash-es'; import { debounce } from 'lodash-es';
import { RouteName } from '@/router/router.ts';
import { useJump } from '@/composable/useJump.ts';
import { useLoginModal } from './login.ts'; import { useLoginModal } from './login.ts';
const appStore = useAppStore(); const appStore = useAppStore();
...@@ -221,18 +246,20 @@ const interval = ref<number>(0); ...@@ -221,18 +246,20 @@ const interval = ref<number>(0);
const { message } = useMessage(); const { message } = useMessage();
const { close: closeModal } = useLoginModal(); const { close: closeModal } = useLoginModal();
const { proxy } = getCurrentInstance() as any; const { proxy } = getCurrentInstance() as any;
const { open } = useJump();
const changeModalType = (type: string) => { const changeModalType = (type: string) => {
console.log('xxfdf') console.log('xxfdf');
phoneNum.value = null; phoneNum.value = null;
verifyCode.value = null; verifyCode.value = null;
password.value = null; password.value = null;
modalType.value = type; modalType.value = type;
errorMsg.value = null; errorMsg.value = null;
agree.value = [];
// setTimeout(() => { // setTimeout(() => {
// console.log('az') // console.log('az')
proxy.$refs.phoneInput.style.borderColor = 'rgba(0, 0, 0, 0.15)'; proxy.$refs.phoneInput.style.borderColor = 'rgba(0, 0, 0, 0.15)';
if(proxy.$refs.passWord) proxy.$refs.passWord.style.borderColor = 'rgba(0, 0, 0, 0.15)'; if (proxy.$refs.passWord) proxy.$refs.passWord.style.borderColor = 'rgba(0, 0, 0, 0.15)';
// },400) // },400)
}; };
...@@ -287,7 +314,7 @@ const verify = (type: string = 'all') => { ...@@ -287,7 +314,7 @@ const verify = (type: string = 'all') => {
if (type === 'all') { if (type === 'all') {
return false; return false;
} else { } else {
return true return true;
} }
} else { } else {
if (errorMsg.value === '请输入有效的手机号码') { if (errorMsg.value === '请输入有效的手机号码') {
...@@ -302,15 +329,16 @@ const verify = (type: string = 'all') => { ...@@ -302,15 +329,16 @@ const verify = (type: string = 'all') => {
if (type === 'password' || type === 'all') { if (type === 'password' || type === 'all') {
if (modalType.value !== 'loginByPhone') { if (modalType.value !== 'loginByPhone') {
if (!/^.{6,20}$/.test(password.value?.toString() || '')) { if (!/^.{6,20}$/.test(password.value?.toString() || '')) {
if(proxy.$refs.passWord) proxy.$refs.passWord.style.borderColor = '#c0322b'; if (proxy.$refs.passWord) proxy.$refs.passWord.style.borderColor = '#c0322b';
errorMsg.value = '请输入6-20位有效密码'; errorMsg.value = '请输入6-20位有效密码';
if (type === 'all') { return false }; if (type === 'all') {
return false;
}
} else { } else {
if (errorMsg.value === '请输入6-20位有效密码') { if (errorMsg.value === '请输入6-20位有效密码') {
errorMsg.value = null; errorMsg.value = null;
} }
if(proxy.$refs.passWord) proxy.$refs.passWord.style.borderColor = 'rgba(0, 0, 0, 0.15)' if (proxy.$refs.passWord) proxy.$refs.passWord.style.borderColor = 'rgba(0, 0, 0, 0.15)';
} }
} }
} }
...@@ -325,6 +353,10 @@ const login = debounce( ...@@ -325,6 +353,10 @@ const login = debounce(
if (!verify('all')) { if (!verify('all')) {
return; return;
} }
if (!agree.value.length) {
message.error(`同意《个人信息保护政策》《立业云用户协议》《第三方使用信息协议》后可登录`);
return;
}
const url: string = const url: string =
modalType.value === 'loginByAccount' ? RequestUrl.loginByAccount : RequestUrl.loginByPhone; modalType.value === 'loginByAccount' ? RequestUrl.loginByAccount : RequestUrl.loginByPhone;
request(url); request(url);
...@@ -424,7 +456,7 @@ const register = async () => { ...@@ -424,7 +456,7 @@ const register = async () => {
return; return;
} }
if (!agree.value.length) { if (!agree.value.length) {
errorMsg.value = '请勾选同意相关协议'; message.error(`同意《个人信息保护政策》《立业云用户协议》《第三方使用信息协议》后可注册`);
return; return;
} }
request(RequestUrl.sign); request(RequestUrl.sign);
...@@ -452,16 +484,23 @@ const close = () => { ...@@ -452,16 +484,23 @@ const close = () => {
* 失焦事件 * 失焦事件
*/ */
const handleBlur = (type: string) => { const handleBlur = (type: string) => {
const _modalType = modalType.value; const _modalType = modalType.value;
console.log('333',_modalType) console.log('333', _modalType);
setTimeout(() => { setTimeout(() => {
console.log(444) console.log(444);
if (_modalType === modalType.value) { if (_modalType === modalType.value) {
verify(type) verify(type);
} }
}, 320) }, 320);
} };
/**
* 跳转条款
*/
const toAgreement = (name: RouteName) => {
open({
name,
});
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.login-panel { .login-panel {
...@@ -470,14 +509,15 @@ const handleBlur = (type: string) => { ...@@ -470,14 +509,15 @@ const handleBlur = (type: string) => {
padding: 16px 33px; padding: 16px 33px;
text-align: left; text-align: left;
outline: none; outline: none;
// .checkbox-box ::v-deep { ::v-deep {
// .el-checkbox { .el-checkbox {
// align-items: flex-start; align-items: flex-start;
// } height: auto;
// .el-checkbox__input { }
// padding-top: 3px; .el-checkbox__input {
// } padding-top: 4px;
// } }
}
} }
.phone-input { .phone-input {
width: 312px; width: 312px;
...@@ -537,7 +577,8 @@ const handleBlur = (type: string) => { ...@@ -537,7 +577,8 @@ const handleBlur = (type: string) => {
box-shadow: none; box-shadow: none;
} }
} }
.el-input__wrapper.is-focus,.el-input .el-input__wrapper.el-input__wrapper.is-focus.is-focus { .el-input__wrapper.is-focus,
.el-input .el-input__wrapper.el-input__wrapper.is-focus.is-focus {
box-shadow: none !important; box-shadow: none !important;
} }
} }
......
...@@ -102,7 +102,7 @@ const props = defineProps<{ ...@@ -102,7 +102,7 @@ const props = defineProps<{
containerClass?: string; containerClass?: string;
}>(); }>();
const infoList = ref<any[]>([]); const infoList = ref<any[]>([]);
const { VITE_BASE_USER_URL } = import.meta.env; const { VITE_BASE_USER_URL } = import.meta.env;
(window as any)._AMapSecurityConfig = { (window as any)._AMapSecurityConfig = {
serviceHost: `${VITE_BASE_USER_URL}/_AMapService`, serviceHost: `${VITE_BASE_USER_URL}/_AMapService`,
}; };
......
...@@ -293,12 +293,12 @@ const routes: readonly RouteRecordRaw[] = [ ...@@ -293,12 +293,12 @@ const routes: readonly RouteRecordRaw[] = [
{ {
// 立业云用户协议 // 立业云用户协议
...gen(RouteName.userAgreement), ...gen(RouteName.userAgreement),
component: UserAgreement, component: UserInfoPolicy,
}, },
{ {
// 个人信息保护政策 // 个人信息保护政策
...gen(RouteName.userInfoPolicy), ...gen(RouteName.userInfoPolicy),
component: UserInfoPolicy, component: UserAgreement,
}, },
{ {
// 第三方使用信息协议 // 第三方使用信息协议
......
<!-- 第三方使用信息协议 --> <!-- 第三方使用信息协议 -->
<template> <template>
<div></div> <div class="main-width mx-auto">
<p style="text-align: center"><strong>第三方使用信息协议</strong></p>
<p>同意华夏数科按照本政策的约定,将用户信息提供给第三方</p>
</div>
</template> </template>
This diff is collapsed.
This diff is collapsed.
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<DetailInfoCell :infos="joinRequired" title="入驻要求"> <DetailInfoCell :infos="joinRequired" title="入驻要求">
<DetailInfo :infos="joinRequired"></DetailInfo> <DetailInfo :infos="joinRequired"></DetailInfo>
</DetailInfoCell> </DetailInfoCell>
<DetailInfoCell title="周边配套" title-center v-if="detail.carrierParkVo.latitude"> <DetailInfoCell v-if="detail.carrierParkVo.latitude" title="周边配套" title-center>
<MapView <MapView
:lat="detail.carrierParkVo.latitude" :lat="detail.carrierParkVo.latitude"
:lng="detail.carrierParkVo.longitude" :lng="detail.carrierParkVo.longitude"
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<DetailInfoCell :infos="joinRequired" title="入驻要求"> <DetailInfoCell :infos="joinRequired" title="入驻要求">
<DetailInfo :infos="joinRequired"></DetailInfo> <DetailInfo :infos="joinRequired"></DetailInfo>
</DetailInfoCell> </DetailInfoCell>
<DetailInfoCell title="周边配套" title-center v-if="detail.development.latitude"> <DetailInfoCell v-if="detail.development.latitude" title="周边配套" title-center>
<MapView :lat="detail.development.latitude" :lng="detail.development.longitude"></MapView> <MapView :lat="detail.development.latitude" :lng="detail.development.longitude"></MapView>
</DetailInfoCell> </DetailInfoCell>
<DetailInfoCell class="!mt-10" title-center title="所属开发区"> <DetailInfoCell class="!mt-10" title-center title="所属开发区">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment