| xqd
@@ -1,21 +1,92 @@
|
|
|
<template>
|
|
|
<view style="min-height: 100vh;background-color: #f0f2f5;">
|
|
|
- <view v-html=""></view>
|
|
|
- <button class="login-btn" v-if="content" @click="login">
|
|
|
- 立即登录
|
|
|
- </button>
|
|
|
+ <view v-html="content"></view>
|
|
|
+ <view style="height: 200rpx;"></view>
|
|
|
+ <view class="login-btn-box">
|
|
|
+ <button class="main-center cross-center login-btn" :style="{'opacity':readUserAgreement?'1':'0.39'}" v-if="content" @click="login">
|
|
|
+ <image style="width: 40rpx;height: 40rpx;margin-right: 10rpx;"
|
|
|
+ src="../../../static/image/index/wxlogin.png" mode=""></image>立即登录
|
|
|
+ </button>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ import {mapState,mapMutations} from 'vuex'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- content:''
|
|
|
+ content: `<p>欢迎您使用腾讯企点软件及服务!
|
|
|
+
|
|
|
+为使用腾讯企点软件(以下统称“本软件”)及服务,您应当阅读并遵守《腾讯企点软件许可及服务协议》(以下简称“本协议”),以及《腾讯服务协议》(链接地址:http://www.qq.com/contract.shtml,若链接地址变更的,则以变更后的链接地址所对应的内容为准;其他链接地址变更的情形,均适用前述约定)、《QQ软件许可及服务协议》、《QQ号码规则》(链接地址:http://zc.qq.com/chs/agreement1_chs.html)以及专项规则等。请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,以及开通或使用某项服务的单独协议,并选择接受或不接受。限制、免责条款可能以加粗形式提示您注意。
|
|
|
+
|
|
|
+除非您已阅读并接受本协议所有条款,否则您无权下载、安装或使用本软件及相关服务。您的下载、安装、使用、登录等行为即视为您已阅读并同意本协议的约束。
|
|
|
+
|
|
|
+如果您未满18周岁,请在法定监护人的陪同下阅读本协议,并特别注意未成年人使用条款。
|
|
|
+
|
|
|
+一、【协议的范围】
|
|
|
+1.1【协议适用主体范围】
|
|
|
+本协议是用户(以下可称为“您”)与腾讯之间关于下载、安装、使用、登录本软件,以及使用本服务所订立的协议。
|
|
|
+
|
|
|
+1.2【协议关系及冲突条款】
|
|
|
+本协议被视为《腾讯服务协议》及《腾讯QQ软件许可及服务协议》、《QQ号码规则》的补充协议,是其不可分割的组成部分,与其构成统一整体。本协议与上述内容存在冲突的,以本协议为准。本协议内容同时包括腾讯可能不断发布的关于本服务的相 关协议、服务声明、业务规则及公告指引等内容(以下统称为“专项规则”)。专项规则一经正式发布,即为本协议不可分割的组成部分,您同样应当遵守。
|
|
|
+
|
|
|
+二、【关于本服务】
|
|
|
+2.1【相关定义】
|
|
|
+(1)腾讯企点软件:指由腾讯开发、运营并享有独立知识产权的,专为市场营销、在线客服、销售管理等需求提供内容制作、内容分发、用户数据分析、用户互动等服务的企业服务软件,以下可简称为“企点”。
|
|
|
+
|
|
|
+(2)单位用户:指按照腾讯指定方式、渠道获得本软件使用权,并对相应的企点帐号(以下可简称为“帐号”,包括单位用户帐号和个人用户帐号)有管理权限的用户。一个企点帐号下仅有一个单位用户帐号。
|
|
|
+
|
|
|
+(3)个人用户:指经过单位用户授权使用本软件的普通用户。单位用户仅可以将本软件的使用权转授权给属于本单位的工作人员或其他协助运营企点账户的人员进行使用,这里称为个人用户。
|
|
|
+
|
|
|
+2.2【本服务内容】
|
|
|
+本服务内容是指,通过本软件可以对腾讯指定产品进行相关操作(例如在本软件中编辑、整理QQ公众号、微信公众号的文字、图片等消息内容并对外发送)的企业服 务(简称“本服务”)。具体产品以腾讯实际指定的为准。用户在使用本服务进行相关操作时,需要遵守相关产品的服务规则、专项规则等(包括但不限于《QQ公众平台服务协议》、《微信公众平台服务协议》等)。
|
|
|
+
|
|
|
+2.3【本服务形式】
|
|
|
+您可能可以通过电脑、移动设备等终端以客户端、网页等形式使用本服务,具体以腾讯提供的为准,同时,腾讯会不断丰富您使用本服务的终端、形式等。当您使用本服务时,您应选择与您的终端、系统等相匹配的本软件版本,否则,您可能无法正常使用本服务。由于软件与终端设备型号不相匹配所导致的任何问题或损害,均由用户自行承担。
|
|
|
+
|
|
|
+2.4【许可的范围】
|
|
|
+2.4.1 腾讯给予您一项非排他性的许可,以使用本软件。
|
|
|
+
|
|
|
+2.4.2 您可以制作本软件的一个副本,仅用作备份。备份副本必须包含原软件中含有的所有著作权信息。
|
|
|
+
|
|
|
+2.4.3 本条及本协议其他条款未明示授权的其他一切权利仍由腾讯保留,您在行使这些权利时须另外取得腾讯的书面许可。腾讯如果未行使前述任何权利,并不构成对该权利的放弃。
|
|
|
+
|
|
|
+2.5【接受本服务的形式】
|
|
|
+2.5.1 本服务是有偿使用的服务,单位用户可以通过腾讯指定方式、渠道购买获取本服务及相应腾讯企点号码的使用权,单位用户支付本服务的相关服务费、按照腾讯要求提交相关资质材料以及满足其他腾讯的要求后,腾讯会分配相应的腾讯企点号码给单位用户,单位用户可在相应使用期限内,使用本服务及相应腾讯企点号码。 个人用户应在单位用户的授权范围内使用本服务及相应腾讯企点号码。 腾讯保留未来对本服务改变和说明的权利。您通过腾讯企点帐号使用腾讯的其他服务时,须同时遵守各项服务的服务条款。
|
|
|
+
|
|
|
+2.5.2 腾讯将根据市场与技术的发展,向您提供与本软件相关的各种互联网以及移动通信增值服务,包括免费和收费的增值服务。腾讯保留单方对相关服务收取费用及改变收费标准、方式的权利;如相关服务由免费变更为收费的,腾讯将以适当的形式通知,您可自主选择接受或拒绝该收费的服务,如您拒绝该收费的服务的,您将无法使用该服务。如您接受该收费的服务,您应当保证在使用该收费服务时,将按照腾讯相关收费规定支付费用,如拒付或拖欠费用,腾讯有权停止服务,并依法追偿损失及赔偿。 根据市场情况变化,产品开发及运营成本增加等因素,腾讯有权自行调整相关产品及服务的市场价格。如您不接受调整后的价格,您将在已购买产品或服务有效期截止后不能继续使用该产品和服务。
|
|
|
+
|
|
|
+2.5.3 您应该在本服务到期前,提前联系腾讯的指定推广商或腾讯认可的其他方式办理完成续约手续,否则,腾讯有权在您腾讯企点的使用期限到期后,在不通知您的情况下收回、终止本服务以及相应腾讯企点号码的使用权,腾讯收回之后,您不可以再使用本服务,同时,腾讯有权随时清空您因使用本服务产生的全部数据、信息等,包括但不限于群发信息、员工信息、客户或好友信息和聊天记录等。若由此,给您造成任何损失的,您应自行承担全部损失,并无权向腾讯提出任何主张。 回收后,您若还需使用本服务,需重新支付费用,腾讯会重新分配新的腾讯企点号码,您将不能继续使用原有腾讯企点号码和相应数据。
|
|
|
+
|
|
|
+2.5.4 您申请开通本服务时应先向腾讯提交申请企业的经营或运营所必须的相关合法、真实的资质文件等资料供腾讯公司核查申请企业信息的真实性和合法性。(包括但不限于营业执照等基本主体资料、特殊行业经营或运营所必须的特殊行业的相关特殊资质或审批文件等特殊主体资料)。 若相关资料有变更的,您必须及时向腾讯提供最新的相关资料。 如腾讯公司在您开通和使用本产品及服务的过程中发现您不具备相关资质或您提交的资料(包括但不限于主体的身份信息、行业资质、特殊行业经营或运营所必须的特殊行业的相关特殊资质或审批文件等)存在伪造或冒用其它企业的情形,,腾讯公司有权立即终止已开通产品的全部服务并不退还您已经支付的费用。若由此给您造成任何损失的,您应自行承担全部损失,并无权向腾讯提出任何主张。
|
|
|
+
|
|
|
+2.5.5 您同意腾讯公司有权通过第三方合作机构对您提交的审核资料进行核实查证并向您收取相应的审核费用。如您拒绝支付审核费用,您的申请资料将无法获得审核,由此腾讯公司将会拒绝或取消您对本产品及服务的购买需求且腾讯公司不因此而承担任何责任。如您提供的资料因各种原因(包括但不限于资料不全、资料信息显示不全或不能清晰分辨、资质虚假嫌疑、已有付费产品违规历史记录等)不能通过审核,腾讯公司将不会退回相应的审核费用。若由此给您造成任何损失的,您应自行承担全部损失,腾讯不因此而承担任何责任。
|
|
|
+
|
|
|
+2.5.6 您应通过腾讯官方指定的销售渠道购买本产品及相应服务。如您通过非官方渠道购买本产品,您的合法权益可能将无法得到保证,由此可能引起的账号封停、高价购买、信息泄露、无相应售后服务等情况,腾讯将不承担任何责任。
|
|
|
+
|
|
|
+2.5.7 为维护互联网安全、健康及秩序,保护网络用户合法权益,您在使用本产品的部分服务或功能(包括但不限于修改管理员信息、找回密码、企业资料卡信息更新、QQ群发消息、短信群发等)时,需要事先接受腾讯公司对相关资质和内容的审核,在审核通过后才能获得相应的产品服务,对此您理解并同意。
|
|
|
+
|
|
|
+</p>`
|
|
|
};
|
|
|
},
|
|
|
- methods:{
|
|
|
- login(e){
|
|
|
+ computed:{
|
|
|
+ ...mapState({
|
|
|
+ readUserAgreement:state=>state.user.readUserAgreement
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onReachBottom() {
|
|
|
+ this.$store.commit('user/readUserAgreement', true);
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ login(e) {
|
|
|
+ if(!this.readUserAgreement){
|
|
|
+ uni.showToast({
|
|
|
+ title:'请阅读完用户隐私协议再登录',
|
|
|
+ icon:'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
this.$store.commit("user/showLoginModal", false);
|
|
|
// #ifdef MP-TOUTIAO
|
|
|
this.getUserInfo(e);
|
| xqd
@@ -30,111 +101,126 @@
|
|
|
// #endif
|
|
|
},
|
|
|
getUserInfo(e) {
|
|
|
- // #ifdef H5
|
|
|
- if (this.$jwx.isWechat()) {
|
|
|
- this.$request({
|
|
|
- url: this.$api.registered.url,
|
|
|
- method: 'get',
|
|
|
- data: {
|
|
|
- scope: 'snsapi_userinfo',
|
|
|
- response_type: 'code',
|
|
|
- url: `${window.location.href}`
|
|
|
- }
|
|
|
- }).then(res => {
|
|
|
- if (res.code === 0) {
|
|
|
- this.$storage.setStorageSync('_USER_SIGN', true);
|
|
|
- window.location.replace(res.data.url);
|
|
|
- } else {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages/registered/sign'
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- uni.navigateTo({
|
|
|
- url: '/pages/registered/sign'
|
|
|
- });
|
|
|
- }
|
|
|
- // #endif
|
|
|
- // #ifdef MP
|
|
|
- this.$store.commit('user/showLoginModal', false);
|
|
|
- const resolve = this.$user.getUserInfoResolve;
|
|
|
- const reject = this.$user.getUserInfoReject;
|
|
|
- this.$event.on(this.$const.EVENT_USER_LOGIN, true).then(() => {
|
|
|
- this.$jump({
|
|
|
- open_type: 'reload'
|
|
|
- })
|
|
|
- });
|
|
|
- // #ifdef MP-WEIXIN
|
|
|
- if (e.detail.errMsg !== 'getUserInfo:ok') {
|
|
|
- this.$store.commit('user/showLoginModal', true);
|
|
|
- return reject(e.detail.errMsg);
|
|
|
- } else {
|
|
|
- return resolve(e);
|
|
|
- }
|
|
|
- // #endif
|
|
|
-
|
|
|
- // #ifdef MP-ALIPAY
|
|
|
- my.getOpenUserInfo({
|
|
|
- success(openUserInfo) {
|
|
|
- const response = JSON.parse(openUserInfo.response);
|
|
|
- e.detail = {
|
|
|
- rawData: JSON.stringify(response.response),
|
|
|
- encryptedData: '',
|
|
|
- iv: '',
|
|
|
- signature: '',
|
|
|
- };
|
|
|
- return resolve(e);
|
|
|
- },
|
|
|
- fail(failE) {
|
|
|
- console.log('getOpenUserInfo:', failE);
|
|
|
- },
|
|
|
- });
|
|
|
- // #endif
|
|
|
-
|
|
|
- // #ifdef MP-BAIDU
|
|
|
- e.detail.rawData = JSON.stringify(e.detail.userInfo);
|
|
|
- e.detail.encryptedData = '';
|
|
|
- e.detail.iv = '';
|
|
|
- e.detail.signature = '';
|
|
|
- return resolve(e);
|
|
|
- // #endif
|
|
|
-
|
|
|
- // #ifdef MP-TOUTIAO
|
|
|
- uni.login({
|
|
|
- success() {
|
|
|
- uni.getUserInfo({
|
|
|
- success(result) {
|
|
|
- e.detail = {
|
|
|
- rawData: result.rawData,
|
|
|
- encryptedData: '',
|
|
|
- iv: '',
|
|
|
- signature: '',
|
|
|
- };
|
|
|
- return resolve(e);
|
|
|
- },
|
|
|
- fail(e) {
|
|
|
- console.log('getUserInfo fail:', e);
|
|
|
- },
|
|
|
- });
|
|
|
- },
|
|
|
- fail(e) {
|
|
|
- console.log('login fail:', e);
|
|
|
- },
|
|
|
- });
|
|
|
- // #endif
|
|
|
- // #endif
|
|
|
+ // #ifdef H5
|
|
|
+ if (this.$jwx.isWechat()) {
|
|
|
+ this.$request({
|
|
|
+ url: this.$api.registered.url,
|
|
|
+ method: 'get',
|
|
|
+ data: {
|
|
|
+ scope: 'snsapi_userinfo',
|
|
|
+ response_type: 'code',
|
|
|
+ url: `${window.location.href}`
|
|
|
+ }
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ this.$storage.setStorageSync('_USER_SIGN', true);
|
|
|
+ window.location.replace(res.data.url);
|
|
|
+ } else {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/registered/sign'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/registered/sign'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // #endif
|
|
|
+ // #ifdef MP
|
|
|
+ this.$store.commit('user/showLoginModal', false);
|
|
|
+ const resolve = this.$user.getUserInfoResolve;
|
|
|
+ const reject = this.$user.getUserInfoReject;
|
|
|
+ this.$event.on(this.$const.EVENT_USER_LOGIN, true).then(() => {
|
|
|
+ this.$jump({
|
|
|
+ open_type: 'reload'
|
|
|
+ })
|
|
|
+ });
|
|
|
+ // #ifdef MP-WEIXIN
|
|
|
+ if (e.detail.errMsg !== 'getUserInfo:ok') {
|
|
|
+ this.$store.commit('user/showLoginModal', true);
|
|
|
+ return reject(e.detail.errMsg);
|
|
|
+ } else {
|
|
|
+ return resolve(e);
|
|
|
+ }
|
|
|
+ // #endif
|
|
|
+
|
|
|
+ // #ifdef MP-ALIPAY
|
|
|
+ my.getOpenUserInfo({
|
|
|
+ success(openUserInfo) {
|
|
|
+ const response = JSON.parse(openUserInfo.response);
|
|
|
+ e.detail = {
|
|
|
+ rawData: JSON.stringify(response.response),
|
|
|
+ encryptedData: '',
|
|
|
+ iv: '',
|
|
|
+ signature: '',
|
|
|
+ };
|
|
|
+ return resolve(e);
|
|
|
+ },
|
|
|
+ fail(failE) {
|
|
|
+ console.log('getOpenUserInfo:', failE);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+
|
|
|
+ // #ifdef MP-BAIDU
|
|
|
+ e.detail.rawData = JSON.stringify(e.detail.userInfo);
|
|
|
+ e.detail.encryptedData = '';
|
|
|
+ e.detail.iv = '';
|
|
|
+ e.detail.signature = '';
|
|
|
+ return resolve(e);
|
|
|
+ // #endif
|
|
|
+
|
|
|
+ // #ifdef MP-TOUTIAO
|
|
|
+ uni.login({
|
|
|
+ success() {
|
|
|
+ uni.getUserInfo({
|
|
|
+ success(result) {
|
|
|
+ e.detail = {
|
|
|
+ rawData: result.rawData,
|
|
|
+ encryptedData: '',
|
|
|
+ iv: '',
|
|
|
+ signature: '',
|
|
|
+ };
|
|
|
+ return resolve(e);
|
|
|
+ },
|
|
|
+ fail(e) {
|
|
|
+ console.log('getUserInfo fail:', e);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ fail(e) {
|
|
|
+ console.log('login fail:', e);
|
|
|
+ },
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+ // #endif
|
|
|
},
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .login-btn{
|
|
|
+ .login-btn-box {
|
|
|
+ position: fixed;
|
|
|
+ bottom: 0rpx;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+
|
|
|
+ width: 100%;
|
|
|
+ height: auto;
|
|
|
+ padding: 10rpx 0;
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .login-btn {
|
|
|
+ margin: 0 auto;
|
|
|
+
|
|
|
width: 678rpx;
|
|
|
height: 82rpx;
|
|
|
- background: #EA554D;
|
|
|
- border-radius: 41rpx;
|
|
|
+ background: #A18253;
|
|
|
+
|
|
|
+ border-radius: 2rpx;
|
|
|
margin: 20rpx auto;
|
|
|
text-align: center;
|
|
|
font-size: 30rpx;
|