提交 c6950357 编写于 作者: DCloud_JSON's avatar DCloud_JSON

简化内容

上级 948370a8
<template>
<view class="content">
<uni-list class="content">
<uni-list-item v-for="(item , index) in agreeList" :key="index" :title="item.title" :to="item.to"></uni-list-item>
</uni-list>
</view>
</template>
<script>
export default {
data() {
return {
agreeList:[
{
title:'隐私政策',
to:'./privacy/privacy'
},
{
title:'服务协议',
to:'./service/service'
}
]
}
}
}
</script>
<style>
.content{
width: 750rpx;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
/* align-items: center; */
flex: 1;
}
</style>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>隐私政策</title>
<style type="text/css">
#wrap {
padding: 10px;
padding-top: 0;
white-space-collapse: discard;
}
p {
text-indent: 2em
}
.title {
text-align: center;
text-indent: 0;
font-size: 0.8em;
color: #9f9f9f;
}
</style>
</head>
<body>
<div id="wrap">
<p class="title">更新日期(2021-01-01)</p>
<p>
DCloud(以下简称我们)尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,我们会按照本隐私权政策的规定使用和披露您的个人信息。但我们将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,我们不会将这些信息对外披露或向第三方提供。我们会不时更新本隐私权政策。
您在同意我们服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于我们服务使用协议不可分割的一部分。
</p>
<p>
1.适用范围
</p>
<p>
a.在您注册我们帐号时,您根据我们要求提供的个人注册信息;<br>
b.在您使用我们网络服务,或访问我们平台网页时,我们自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;<br>
c.我们通过合法途径从商业伙伴处取得的用户个人数据。
</p>
<p>
您了解并同意,以下信息不适用本隐私权政策:
</p>
<p>
a.您在使用我们平台提供的搜索服务时输入的关键字信息;<br>
b.我们收集到的您在我们发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;<br>
c.违反法律规定或违反我们规则行为及我们已对您采取的措施。
</p>
<p>
2.信息使用
</p>
<p>
a.在您注册我们帐号时,您根据我们要求提供的个人注册信息;<br>
b.在您使用我们网络服务,或访问我们平台网页时,我们自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;<br>
c.我们通过合法途径从商业伙伴处取得的用户个人数据。
</p>
<p>
您了解并同意,以下信息不适用本隐私权政策:
</p>
<p>
a.您在使用我们平台提供的搜索服务时输入的关键字信息;<br>
b.我们收集到的您在我们发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;<br>
c.违反法律规定或违反我们规则行为及我们已对您采取的措施。
</p>
</p>
</div>
</body>
</html>
<template>
<view>
<web-view src="http://static-f184e7c3-1912-41b2-b81f-435d1b37c7b4.bspapp.com/baseApp/privacy.html"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
.content {
padding: 20rpx;
}
</style>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>服务协议</title>
<style type="text/css">
#wrap {
padding: 10px;
padding-top: 0;
white-space-collapse: discard;
}
p {
text-indent: 2em
}
.title {
text-align: center;
text-indent: 0;
font-size: 0.8em;
color: #9f9f9f;
}
</style>
</head>
<body>
<div id="wrap">
<p class="title">更新日期(2021-01-01)</p>
<p>
尊敬的用户,欢迎阅读DCloud服务协议(以下简称“本服务协议”)。 与用户共同确认: 
</p>
<p>
1. 用户点击本服务协议正本下方的“确认”按钮并完成注册程序、获得账号和密码时,则视为用户与已达成本服务协议。本服务协议即在用户和之间产生法律效力。<br>
2. 本服务协议内容包括协议正文及所有已经发布的或将来可能发布的各类规则。用户在使用提供的各项服务的同时,承诺接受并遵守相关的各类规则。 <br>
3. 有权根据需要不时地制定、修改本服务协议正文或各类规则,如本服务协议有任何变更,将在网站上刊载公告,予以公示。经修订的协议一经在网站公布后,立即自动生效。各类规则在网站发布后立即生效,亦成为本服务协议的一部分。若用户登录或继续使用提供服务的,将表示用户接受经修订的协议。若用户不同意相关变更,必须停止使用提供的服务。 <br>
4. 及用户均已认真阅读本服务协议中的全部条款(特别是以黑体字或下划线标示出的有关及用户重大权益的条款)及发布的其他各类规则的内容,对协议正文及各类规则均以知晓、理解并接受,同意将其作为确定双方权利、义务的依据。  
</p>
<p>
条款如下:
</p>
<p>
一、定义条款 接受并同意本服务协议全部条款及发布的其他各类规则,通过网站注册成为会员,且具备完全民事行为能力或者获经法定代理人同意的限制民事行为能力的自然人、法人、个体工商户或者其他组织。<br>
用户分为商家用户和普通用户。 1.1.1 商家用户 指通过注册成为的会员,并发布商家及其产品或者服务信息的法人、个体工商户或者其他组织,即为本服务协议文中“商家”。 1.1.2 普通用户 指享受服务的普通用户,即为本服务协议文中“用户”。
</p>
<p>
二、用户注册  2.1 注册资格 用户保证,其具有完全民事权利能力和行为能力或虽不具有完全民事权利能力和行为能力但经其法定代理人同意享用服务。否则,其与之间的服务协议自始无效,一经发现,有权立即注销该用户,并追究其使用提供服务的一切法律责任。 2.2 注册流程 2.2.1 用户同意根据用户注册页面要求提供有效电子邮箱、联系电话等信息,设置账号及密码,用户应确保所提供全部信息的真实性、完整性和准确性。 2.2.2 用户合法、完整并有效提供注册所需信息的,有权获得账号和密码,账号和密码用于用户在进行会员登录。同时用户应当对以其账号进行的所有活动和事件负法律责任。 2.2.3 用户获得账号及密码时视为用户注册成功,用户同意接收发送的与管理、运营相关的电子邮件和/或短消息。 2.3 税费承担 用户通过购销产品或服务而发生的全部应纳税赋,均由用户自行支付。 "
</p>
</div>
</body>
</html>
<template>
<view>
<web-view src="http://static-f184e7c3-1912-41b2-b81f-435d1b37c7b4.bspapp.com/baseApp/service.html"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
.content {
padding: 20rpx;
}
</style>
......@@ -31,6 +31,7 @@
}
.easyinput{
background-color: #F8F8F8;
border-radius: 6rpx;
}
.send-btn{
height: 85rpx;
......
/* #ifndef APP-NVUE */
page {
display: flex;
flex-direction: column;
flex: 1;
height: 100%;
}
/* #endif */
.wrap {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
flex: 1;
width: 750rpx;
background-color: #fff;
}
.wrap-content {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex: 1;
flex-direction: column;
justify-content: flex-start;
align-items: center;
}
.content {
flex-direction: column;
}
.content-top-title {
font-size: 32rpx;
font-weight: 600;
padding-top: 50rpx;
}
.content /deep/ .uni-easyinput{
padding: 6px 0;
}
.login-iknow {
padding-top: 24rpx;
padding-bottom: 48rpx;
}
.phone-input-box {
height: 45px;
background-color: #f9f9f9;
border-radius: 6rpx;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
justify-content: center;
}
.phone-area {
padding: 0 20rpx;
font-size: 30rpx;
/* #ifdef APP-NVUE */
border-right-width: 1rpx;
border-right-color: #d7d9d8;
/* #endif */
/* #ifndef APP-NVUE */
border-right: 1rpx solid #d7d9d8;
/* #endif */
}
.phone-input {
flex: 1;
/* #ifndef APP-NVUE */
border-left: 1rpx solid #D7D9D8;
/* #endif */
/* #ifdef APP-NVUE */
border-left-width: 1rpx;
border-left-color: #d7d9d8;
/* #endif */
padding: 0 20rpx;
font-size: 30rpx;
}
.tip-text {
padding-top: 20rpx;
padding-bottom: 36rpx;
color: #8a8f8b;
font-size: 26rpx;
}
.send-btn-box {
height: 85rpx;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
width: 630rpx;
justify-content: center;
align-items: center;
border-radius: 6rpx;
}
.send-btn-text {
color: #fff;
}
.send-btn-active {
background-color: #007aff;
}
.auth-box {
width: 630rpx;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.login-text {
color: #1c436e;
font-size: 26rpx;
}
.hover {
opacity: 0.8;
}
const helpPage = '/pages/ucenter/help/help'; // 帮助页面
import {mapMutations} from 'vuex';
import loginSuccess from './loginSuccess.js';
let mixin = {
data(){
return {
// 用户协议页面跳转
link: [{
text: '用户协议',
to: '/pages/ucenter/agree-list/service/service'
}, {
text: '隐私政策',
to: '/pages/ucenter/agree-list/privacy/privacy'
}],
formData:{
phone:'',
code:'',
pwd:'',
pwd2:''
},
rules: {
phone:{
rules:[{
required: true,
errorMessage: '请输入手机号',
},
{
pattern: /^1\d{10}$/,
errorMessage: '手机号格式不正确',
}
]
},
code: {
rules: [{
required: true,
errorMessage: '请输入验证码',
},
{
pattern: /^.{6}$/,
errorMessage: '请输入6位验证码',
}
]
},
pwd:{
rules: [{
required: true,
errorMessage: '请输入密码',
},
{
pattern: /^.{6,20}$/,
errorMessage: '密码应为6到20位',
}
]
},
pwd2:{
rules:[{
required: true,
errorMessage: '请确认密码',
},
{
pattern: /^.{6,20}$/,
errorMessage: '密码应为6到20位',
},
{
validateFunction:function(rule,value,data,callback){
console.log(value);
if(value!=data.pwd){
callback('两次输入密码不一致')
};
return true
}
}
]
}
}
}
},
computed: {
isPhone(){
let reg_phone = /^1\d{10}$/;
let isPhone = reg_phone.test(this.formData.phone);
return isPhone;
},
isPwd(){
let reg_pwd = /^.{6,20}$/;
let isPwd = reg_pwd.test(this.formData.pwd);
return isPwd;
},
isCode(){
let reg_code = /^\d{6}$/;
let isCode = reg_code.test(this.formData.code);
return isCode;
}
},
methods:{
...mapMutations({
setUserInfo: 'user/login'
}),
loginSuccess(result){
loginSuccess(result)
delete result.userInfo.token
this.setUserInfo(result.userInfo)
}
}
}
export default mixin
\ No newline at end of file
<template>
<view class="wrap">
<view class="wrap-content">
<view class="content">
<!-- 顶部文字 -->
<text class="content-top-title">登陆后即可展示自己</text>
<login-ikonw class="login-iknow" :link="link" text="登录即表示同意用户协议和隐私政策"></login-ikonw>
<!-- 登录框 (选择手机号所属国家和地区需要另行实现) -->
<uni-forms ref="form" :value="formData" :rules="rules">
<uni-forms-item name="phone">
<uni-easyinput type="number" class="phone-input-box" :inputBorder="false"
v-model="formData.phone" maxlength="11" placeholder="请输入手机号">
<!-- 当前仅支持中国大陆手机号 -->
<!-- <template slot="left">
<picker mode="selector" :range="phoneArea" @change="selectPhoneArea">
<text class="phone-area" @click="selectPhoneArea">{{currenPhoneArea}}</text>
</picker>
</template> -->
</uni-easyinput>
</uni-forms-item>
<button class="send-btn-box" :type="canGetShortMsg?'primary':'default'"
@click="sendShortMsg">获取短信验证码</button>
</uni-forms>
<!-- tip -->
<text class="tip-text">未注册的手机号验证通过后将自动注册</text>
<!-- 其他登录方式 -->
<!-- <view class="auth-box" v-if="loginList.includes('password')">
<text class="login-text" hover-class="hover" @click="toPwdLogin">密码登录</text>
<text class="login-text" hover-class="hover" @click="openLoginList">其他登录方式</text>
</view> -->
</view>
</view>
<!-- 登录按钮弹窗 -->
<login-action-sheet ref="loginActionSheet"></login-action-sheet>
<uni-quick-login ref="uniQuickLogin"></uni-quick-login>
</view>
</template>
<script>
var univerify_first,currentWebview;//是否一键登陆优先
import baseappConfig from '@/baseapp.config.js';
import mixin from '../common/loginPage.mixin.js';
var currentPage;
export default {
mixins:[mixin],
data() {
return {
phoneArea: ['+86'],
currenPhoneArea: '+86',
// loginList:[]
}
},
onLoad(e) {
// this.loginList = baseappConfig.router.login
univerify_first = e.univerify_first
//#ifdef APP-PLUS
if(univerify_first){
const pages = getCurrentPages();
currentWebview = pages[pages.length - 1].$getAppWebview();
currentWebview.setStyle({
"top":"2000px"
})
}
//#endif
},
onReady() {
//#ifdef APP-PLUS
if(univerify_first){
console.log('开始一键登陆');
setTimeout(()=>{
this.$refs.uniQuickLogin.login('univerify')
},100)
setTimeout(() => {
currentWebview.setStyle({
titleNView:{
autoBackButton:true,
backgroundColor:"#FFFFFF"
}
})
currentWebview.setStyle({
"top":"0"
})
}, 1500);
}
//#endif
},
computed: {
canGetShortMsg() {
return this.isPhone;
}
},
methods: {
selectPhoneArea(event) {
uni.showToast({
title: '当前仅支持中国大陆手机号',
icon: 'none'
});
// this.currenPhoneArea = this.phoneArea[event.detail.value];
},
sendShortMsg() {
/**
* 发送验证吗
*/
uni.showLoading();
uni.navigateTo({
url: '../phone-code/phone-code?phoneNumber=' + this.formData.phone + '&phoneArea=' +
this.currenPhoneArea,
success: res => {},
fail: () => {},
complete: () => {}
});
},
/**
* 去密码登录页
*/
toPwdLogin() {
uni.navigateTo({
url: '../pwd-login/pwd-login'
})
},
openLoginList() {
this.$refs.loginActionSheet.open();
},
back() {
uni.navigateBack()
}
}
}
</script>
<style>
@import url("../common/loginPage.css");
.content-top-title {
text-align: center;
}
.login-iknow {
justify-content: center;
}
.phone-area {
/* #ifdef APP-NVUE */
border-right-width: 1rpx;
border-right-color: #d7d9d8;
/* #endif */
/* #ifndef APP-NVUE */
border-right: 1rpx solid #d7d9d8;
/* #endif */
}
</style>
<template>
<view class="wrap">
<view class="wrap-content">
<view class="content">
<!-- 顶部文字 -->
<text class="content-top-title">用户名密码登录</text>
<login-ikonw class="login-iknow" :link="link" text="登录即表示同意用户协议和隐私政策"></login-ikonw>
<!-- 登录框 (选择手机号所属国家和地区需要另行实现) -->
<uni-forms ref="form" :value="formData" :rules="rules">
<uni-forms-item name="phone">
<uni-easyinput type="number" class="phone-input-box" :inputBorder="false"
v-model="formData.phone" maxlength="11" placeholder="请输入手机号/用户名">
<template slot="left">
<!-- 当前仅支持中国大陆手机号 -->
<!-- <picker mode="selector" :range="phoneArea" @change="selectPhoneArea"> -->
<text class="phone-area" @click="selectPhoneArea">{{currenPhoneArea}}</text>
<!-- </picker> -->
</template>
</uni-easyinput>
</uni-forms-item>
<uni-forms-item name="pwd">
<uni-easyinput type="password" class="phone-input-box" :inputBorder="false"
v-model="formData.pwd" placeholder="请输入密码"></uni-easyinput>
</uni-forms-item>
<button class="send-btn-box" :disabled="!canLogin" :type="canLogin?'primary':'default'"
@click="pwdLogin">登录</button>
</uni-forms>
<!-- 忘记密码 -->
<view class="auth-box">
<text class="login-text" @click="toRetrievePwd">忘记密码</text>
<text class="login-text" @click="toRegister">注册账号</text>
</view>
</view>
</view>
<uni-quick-login ref="uniQuickLogin"></uni-quick-login>
</view>
</template>
<script>
import mixin from '../common/loginPage.mixin.js';
export default {
mixins:[mixin],
data() {
return {
phoneArea: ['+86'],
currenPhoneArea: '+86',
}
},
computed: {
canLogin() {
return this.formData.phone.length && this.isPwd;
}
},
methods: {
/**
* 页面跳转,找回密码
*/
toRetrievePwd() {
// if (!this.isPhone) return uni.showToast({
// title: '请输入正确的手机号',
// icon: 'none'
// });
uni.navigateTo({
url: '../pwd-retrieve/pwd-retrieve?phoneNumber=' + (this.isPhone?this.formData.phone:'') + '&phoneArea=' + this.currenPhoneArea
})
},
/**
* 密码登录
*/
pwdLogin() {
// 下边是可以登录
uniCloud.callFunction({
name:"user-center",
"data":{
"action":"login",
"params":{
"username":this.formData.phone,
"password":this.formData.pwd
}
},
success:async (e) => {
uni.hideLoading()
console.log(e.result);
if(e.result.code === 0){
this.loginSuccess(e.result)
}else{
uni.showModal({
title: '错误',
content: e.result.msg,
showCancel: false,
confirmText: '知道了',
});
}
},
fail: (err) => {
console.log(err);
uni.showModal({
title: '错误',
content: JSON.stringify(err),
showCancel: false,
confirmText: '知道了',
});
if(err.errCode===30002){
}
},
complete: () => {
uni.hideLoading()
}
})
},
selectPhoneArea(event) {
uni.showToast({
title: '当前仅支持中国大陆手机号',
icon: 'none'
});
// this.currenPhoneArea = this.phoneArea[event.detail.value];
},
/* 前往注册 */
toRegister(e){
console.log(e);
uni.navigateTo({
url:'/pages/ucenter/login-page/register/register'
})
}
}
}
</script>
<style>
@import url("../common/loginPage.css");
.phone-input-box {
margin-top: 20rpx;
}
.auth-box {
justify-content: space-between;
margin-top: 20px;
}
.login-text-sub {
color: #8a8f8b;
}
.toRegister{
margin-top: 80px;
width: 600rpx;
}
</style>
......@@ -2,16 +2,16 @@
<view class="uni-container">
<uni-forms ref="form" :value="formData" :rules="rules" validate-trigger="submit" err-show-type="undertext">
<uni-forms-item name="username" required>
<uni-easyinput :inputBorder="false" class="phone-input-box" placeholder="请输入用户名" v-model="formData.username" trim="both" />
<uni-easyinput :inputBorder="false" class="easyinput" placeholder="请输入用户名" v-model="formData.username" trim="both" />
</uni-forms-item>
<uni-forms-item name="nickname">
<uni-easyinput :inputBorder="false" class="phone-input-box" placeholder="请输入用户昵称" v-model="formData.nickname" trim="both" />
<uni-easyinput :inputBorder="false" class="easyinput" placeholder="请输入用户昵称" v-model="formData.nickname" trim="both" />
</uni-forms-item>
<uni-forms-item name="password" v-model="formData.password" required>
<uni-easyinput :inputBorder="false" class="phone-input-box" placeholder="请输入6-20位密码" type="password" v-model="formData.password" trim="both" />
<uni-easyinput :inputBorder="false" class="easyinput" placeholder="请输入6-20位密码" type="password" v-model="formData.password" trim="both" />
</uni-forms-item>
<uni-forms-item name="pwd2" v-model="formData.pwd2" required>
<uni-easyinput :inputBorder="false" class="phone-input-box" placeholder="再次输入密码" type="password" v-model="formData.pwd2" trim="both" />
<uni-easyinput :inputBorder="false" class="easyinput" placeholder="再次输入密码" type="password" v-model="formData.pwd2" trim="both" />
</uni-forms-item>
<uni-agreements></uni-agreements>
<button class="send-btn" type="primary" @click="submit">注册并登陆</button>
......@@ -68,47 +68,11 @@ import mixin from '../common/login-page.mixin.js';
</script>
<style>
@import url("../common/loginPage.css");
@import url("../common/login-page.css");
.uni-container {
padding: 15px;
}
.send-btn{
margin-top: 5px;
}
/*
.uni-input-border,
.uni-textarea-border {
width: 100%;
font-size: 14px;
color: #666;
border: 1px #e5e5e5 solid;
border-radius: 5px;
box-sizing: border-box;
}
.uni-input-border {
padding: 0 10px;
height: 35px;
}
.uni-textarea-border {
padding: 10px;
height: 80px;
}
.uni-button-group {
margin-top: 50px;
display: flex;
justify-content: center;
align-items: center;
}
.uni-button {
padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
line-height: 1;
margin: 0;
} */
</style>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册