Commit 9a9d0fb0 authored by shiyunjie's avatar shiyunjie

init

parent 3aa201e2
{
"presets":["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties"]
}
\ No newline at end of file
/webpack.*.js
/server.js
/src/assets/js/*.js
/src/pages/**/anysignWebInterface.js
/src/pages/anysignpage/**/
\ No newline at end of file
module.exports = {
"parser": "babel-eslint",
"extends": "airbnb-base",
"env": {
"browser": true,
"commonjs": true,
"es6": true,
jquery: true
},
"rules": {
"no-tabs": 0,
"indent": [2, "tab"],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
],
"no-underscore-dangle": ["off", "always"]
}
};
\ No newline at end of file
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
"postcss-aspect-ratio-mini": {},
autoprefixer: {},
"postcss-aspect-ratio-mini": {},
"postcss-write-svg": {
utf8: false
},
"postcss-px-to-viewport": {
viewportWidth: 750,
viewportHeight: 1334,
unitPrecision: 1,
viewportUnit: 'vw',
selectorBlackList: [".ignore", ".hairlines"],
minPixelValue: 1,
mediaQuery: false,
exclude: [/node_modules/, /dialog.css/]
},
"postcss-viewport-units":{
silence: true
}
}
}
# 多页面 客户通用于单个页面比如落地页面、活动页面
## 介绍
支持es6,全局以引入jquery。用于单个页面独立页面开发。比如落地页面,活动页面。
### ui组建 通用类
[swiper 幻灯片轮播图](https://github.com/nolimits4web/Swiper)
[dialog 弹框-alert,confirm、loading..](https://github.com/sufangyu/dialog2)
## Project setup
```
yarn install
```
### Compiles and hot-reloads for development
```
yarn run serve
```
### Compiles and minifies for production
```
yarn run build
```
### 手机适配方案
[再聊移动端页面的适配](https://www.w3cplus.com/css/vw-for-layout.html)
[如何在Vue项目中使用vw实现移动端适配](https://www.w3cplus.com/mobile/vw-layout-in-vue.html)
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "activity-2020",
"version": "1.0.0",
"description": "tpt activity",
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"serve": "node server.js",
"build": "webpack --config webpack.prod.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.5.5",
"@babel/preset-env": "^7.5.5",
"autoprefixer": "^9.6.1",
"babel-loader": "^8.0.6",
"clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^5.1.1",
"css-loader": "^3.2.0",
"csv-loader": "^3.0.2",
"eslint": "^6.1.0",
"eslint-loader": "^3.0.2",
"express": "^4.17.1",
"express-http-proxy": "^1.5.1",
"file-loader": "^4.2.0",
"html-loader": "^0.5.5",
"html-webpack-plugin": "^3.2.0",
"jquery": "^3.4.1",
"md5": "^2.2.1",
"mescroll.js": "^1.4.1",
"mini-css-extract-plugin": "^0.8.0",
"mobile-select": "^1.1.2",
"node-sass": "^4.12.0",
"postcss-aspect-ratio-mini": "^1.0.1",
"postcss-import": "^12.0.1",
"postcss-loader": "^3.0.0",
"postcss-px-to-viewport": "^1.1.1",
"postcss-url": "^8.0.0",
"postcss-viewport-units": "^0.1.6",
"postcss-write-svg": "^3.0.1",
"prettier": "^1.18.2",
"sass-loader": "^7.2.0",
"style-loader": "^1.0.0",
"swiper": "3.4.2",
"terser-webpack-plugin": "^2.3.5",
"tpt-js-sdk": "^1.1.6",
"url-loader": "^2.1.0",
"webpack": "^4.39.1",
"webpack-cli": "^3.3.6",
"webpack-dev-middleware": "^3.7.0",
"webpack-hot-middleware": "^2.25.0",
"webpack-merge": "^4.2.1",
"xml-loader": "^1.2.1"
},
"devDependencies": {
"@babel/plugin-proposal-class-properties": "^7.8.3",
"babel-eslint": "^10.0.3",
"eslint-config-airbnb-base": "^14.0.0",
"eslint-plugin-import": "^2.18.2",
"glob": "^7.1.6"
}
}
const express = require('express');
const webpack = require('webpack');
const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');
const proxy = require('express-http-proxy');
const app = express();
const config = require('./webpack.dev.js');
const compiler = webpack(config);
// 告诉 express 使用 webpack-dev-middleware,
// 以及将 webpack.config.js 配置文件作为基础配置
app.use(webpackDevMiddleware(compiler, {
publicPath: config.output.publicPath
}));
app.use('/sit', proxy('ecustomer.tp95589.com', {
https: true,
proxyReqPathResolver: function(req) {
console.log(`请求的路径:${req.url}`); //请求的路径:
return `/sit${req.url}`; //转发请求路径:
},
}));
app.use(webpackHotMiddleware(compiler ,{
log: console.log,
heartbeat: 2000,
}));
// 将文件 serve 到 port 3000。
app.listen(3000, function () {
console.log('Example app listening on port 3000!\n');
});
\ No newline at end of file
@font-face {
font-family: 'kht';
src: url('./iconfont.ttf') format('truetype');
}
.kht {
font-family: "kht" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.kht-weixin:before {
content: "\e63d";
}
.kht-Alipay:before {
content: "\e6ec";
}
.kht-arrow:before {
content: "\e632";
}
.kht-calendar-o:before {
content: "\e633";
}
.kht-WeChat:before {
content: "\e635";
}
.kht-no-checked:before {
content: "\e634";
}
.kht-checked:before {
content: "\e636";
}
.kht-add-o:before {
content: "\e637";
}
.kht-delete-o:before {
content: "\e638";
}
.kht-top-o:before {
content: "\e604";
}
.kht-down-o:before {
content: "\e646";
}
.kht-close-o:before {
content: "\e647";
}
.kht-counter-o:before {
content: "\e648";
}
.kht-question:before {
content: "\e649";
}
.kht-answer:before {
content: "\e64a";
}
.kht-down-origin:before {
content: "\e64b";
}
\ No newline at end of file
/**
* dialog v2.1.0
* @date 2018-04-12
* @author 方雨_Yu
* @home https://github.com/sufangyu/dialog2
* @bugs https://github.com/sufangyu/dialog2/issues
* Licensed under MIT
*/
!function(a,b,c,d){"use strict";var e=function(){function d(b,c){this.$element=a(b),this.settings=a.extend({},a.fn.dialog.defaults,c)}return d.prototype={_init:function(){var b=this;if(console.log("初始化弹窗"),clearTimeout(b.autoCloseTimer),b.isHided=!1,b.tapBug=b._hasTapBug(),b.platform=f.platform,b.dislogStyle="default"===b.settings.style?b.platform:b.settings.style,0===a("#dialog-body-no-scroll").length){a("head").append('<style id="dialog-body-no-scroll">.body-no-scroll { position: absolute; overflow: hidden; width: 100%; }</style>')}b._renderDOM(),b._bindEvents()},_renderDOM:function(){var a=this;a.settings.onBeforeShow(),a._createDialogDOM(a.settings.type),a.settings.onShow()},_bindEvents:function(){var d=this;d.$confirmBtn.on(f.tapEvent,function(a){var b=d.settings.onClickConfirmBtn();(b||void 0===b)&&d.closeDialog()}).on("touchend",function(a){a.preventDefault()}),d.$cancelBtn.on(f.tapEvent,function(a){var b=d.settings.onClickCancelBtn();(b||void 0===b)&&d.closeDialog()}).on("touchend",function(a){a.preventDefault()}),d.$closeBtn.on(f.tapEvent,function(a){var b=d.settings.onClickCloseBtn();(b||void 0===b)&&d.closeDialog()}).on("touchend",function(a){a.preventDefault()}),d.settings.overlayClose&&a(c).on(f.tapEvent,".dialog-overlay",function(a){d.closeDialog()}),d.settings.autoClose>0&&(console.log(d.settings.autoClose/1e3+"秒后, 自动关闭弹窗"),d._autoClose()),a(c).on("webkitAnimationEnd MSAnimationEnd animationend",".dialog-content",function(){d.isHided&&(d.removeDialog(),d.tapBug&&d._removeTapOverlayer())}),d.settings.buttons.length&&a.each(d.settings.buttons,function(a,b){d.$dialogContentFt.children("button").eq(a).on(f.tapEvent,function(a){a.preventDefault();var c=b.callback();(c||void 0===c)&&d.closeDialog()})}),a(b).on("onorientationchange"in b?"orientationchange":"resize",function(){d.settings.contentScroll&&setTimeout(function(){d._resetDialog()},200)}),a(c).on("touchmove",function(b){return!d.$dialog.find(a(b.target)).length}),d.settings.contentScroll&&d._contentScrollEvent(),"android"===d.dislogStyle&&a(".dialog-content-ft > .dialog-btn").ripple()},_createDialogDOM:function(b){var c=this;switch(c.$dialog=a('<div class="dialog dialog-open '+c.settings.dialogClass+'" data-style="'+c.dislogStyle+'"></div>'),c.$dialogOverlay=a('<div class="dialog-overlay"></div>'),c.$dialogContent=a('<div class="dialog-content"></div>'),c.$dialogTitle=a('<div class="dialog-content-hd"><h3 class="dialog-content-title">'+c.settings.titleText+"</h3></div>"),c.$dialogContentFt=a('<div class="dialog-content-ft"></div>'),c.$dialogContentBd=a('<div class="dialog-content-bd"></div>'),c.$closeBtn=a('<div class="dialog-btn-close"><span>close</span></div>'),c.$confirmBtn=a('<button class="dialog-btn dialog-btn-confirm '+c.settings.buttonClassConfirm+'">'+c.settings.buttonTextConfirm+"</button>"),c.$cancelBtn=a('<button class="dialog-btn dialog-btn-cancel '+c.settings.buttonClassCancel+'">'+c.settings.buttonTextCancel+"</button>"),b){case"alert":c.$dialog.addClass("dialog-modal"),c.settings.overlayShow&&c.$dialog.append(c.$dialogOverlay),c.settings.titleShow&&c.$dialogContent.append(c.$dialogTitle),c.settings.closeBtnShow&&c.$dialogTitle.append(c.$closeBtn),c.$dialogContentBd.html(c.settings.content),c.$dialogContentFt.append(c.$confirmBtn),c.$dialogContent.append(c.$dialogContentBd).append(c.$dialogContentFt),c.$dialog.append(c.$dialogContent),a("body").append(c.$dialog),c.settings.bodyNoScroll&&a("body").addClass("body-no-scroll"),c.settings.contentScroll&&c._setDialogContentHeight();break;case"confirm":if(c.$dialog.addClass("dialog-modal"),c.settings.overlayShow&&c.$dialog.append(c.$dialogOverlay),c.settings.titleShow&&c.$dialogContent.append(c.$dialogTitle),c.settings.closeBtnShow&&c.$dialogTitle.append(c.$closeBtn),c.settings.buttons.length){var d="";a.each(c.settings.buttons,function(a,b){d+='<button class="dialog-btn '+b.class+'">'+b.name+"</button>"}),c.$dialogContentFt.append(d).addClass(c.settings.buttonStyle)}else c.$dialogContentFt.append(c.$cancelBtn).append(c.$confirmBtn).addClass(c.settings.buttonStyle);c.$dialogContentBd.html(c.settings.content),c.$dialogContent.append(c.$dialogContentBd).append(c.$dialogContentFt),c.$dialog.append(c.$dialogContent),a("body").append(c.$dialog),c.settings.contentScroll&&c._setDialogContentHeight(),c.settings.bodyNoScroll&&a("body").addClass("body-no-scroll");break;case"toast":c.$dialog.addClass("dialog-toast"),c.settings.overlayShow&&c.$dialog.append(c.$dialogOverlay);var e=a(c.settings.content);""!==c.settings.infoIcon&&""!==c.settings.infoText?e=a('<img class="info-icon" src="'+c.settings.infoIcon+'" /><span class="info-text">'+c.settings.infoText+"</span>"):""===c.settings.infoIcon&&""!==c.settings.infoText?e=a('<span class="info-text">'+c.settings.infoText+"</span>"):""!==c.settings.infoIcon&&""===c.settings.infoText&&(e=a('<img class="info-icon" src="'+c.settings.infoIcon+'" />')),c.$dialogContentBd.append(e),c.$dialogContent.append(c.$dialogContentBd),c.$dialog.append(c.$dialogContent),a("body").append(c.$dialog),c.settings.bodyNoScroll&&a("body").addClass("body-no-scroll");break;case"notice":c.$dialog.addClass("dialog-notice"),"bottom"===c.settings.position&&c.$dialog.addClass("dialog-notice-bottom"),c.settings.overlayShow&&c.$dialog.append(c.$dialogOverlay);var f=a(c.settings.content);""!==c.settings.infoIcon&&""!==c.settings.infoText?f=a('<img class="info-icon" src="'+c.settings.infoIcon+'" /><span class="info-text">'+c.settings.infoText+"</span>"):""===c.settings.infoIcon&&""!==c.settings.infoText?f=a('<span class="info-text">'+c.settings.infoText+"</span>"):""!==c.settings.infoIcon&&""===c.settings.infoText&&(f=a('<img class="info-icon" src="'+c.settings.infoIcon+'" />')),c.$dialogContentBd.append(f),c.$dialogContent.append(c.$dialogContentBd),c.$dialog.append(c.$dialogContent),a("body").append(c.$dialog),c.settings.bodyNoScroll&&a("body").addClass("body-no-scroll");break;default:console.log("running default")}},_setDialogContentHeight:function(){var a=this;setTimeout(function(){var b=a.$dialogContentBd.height(),c=a._getDialogContentMaxHeight();a.$dialogContentBd.css({"max-height":c}).addClass("content-scroll"),b>c?a.$dialogContentFt.addClass("dialog-content-ft-border"):a.$dialogContentFt.removeClass("dialog-content-ft-border")},80)},_getDialogContentMaxHeight:function(){var c=this,d=a(b).height(),e=c.$dialogTitle.height(),f=c.$dialogContentFt.height(),g=d-e-f-60;return g=g%2==0?g:g-1},_resetDialog:function(){this._setDialogContentHeight()},_contentScrollEvent:function(){var b=!1,d={x:0,y:0,top:0,left:0};a(c).on("touchstart mousedown",".content-scroll",function(c){var e=c.changedTouches?c.changedTouches[0]:c;return b=!0,d.x=e.clientX,d.y=e.clientY,d.top=a(this).scrollTop(),d.left=a(this).scrollLeft(),!1}).on("touchmove mousemove",".content-scroll",function(c){var e=c.changedTouches?c.changedTouches[0]:c;if(!b)return!1;var f=d.top-(e.clientY-d.y),g=d.left-(e.clientX-d.x);a(this).scrollTop(f).scrollLeft(g)}).on("touchend mouseup",".content-scroll",function(a){a.preventDefault(),b=!1})},_autoClose:function(){var a=this;a.autoCloseTimer=setTimeout(function(){a.closeDialog()},a.settings.autoClose)},closeDialog:function(){var a=this;a.isHided=!0,a.settings.onBeforeClosed(),a.$dialog.addClass("dialog-close").removeClass("dialog-open"),a.tapBug&&a._appendTapOverlayer()},removeDialog:function(){var b=this;b.$dialog.remove(),b.isHided=!1,b.settings.onClosed(),b.settings=a.fn.dialog.defaults,b.settings.bodyNoScroll&&a("body").removeClass("body-no-scroll")},update:function(b){var c=this;clearTimeout(c.autoCloseTimer),c.settings=a.extend({},a.fn.dialog.defaults,b),""!==c.settings.content&&c.$dialogContentBd.html(c.settings.content);var d=c.$dialogContentBd.find(".info-icon"),e=c.$dialogContentBd.find(".info-text");d.attr({src:c.settings.infoIcon}),e.html(c.settings.infoText),c._bindEvents()},_hasTapBug:function(){return f.isAndroid&&f.version<4.4},_appendTapOverlayer:function(){var b=this;b.$tapBugOverlayer=a(".solve-tap-bug"),b.$tapBugOverlayer.length||(b.$tapBugOverlayer=a('<div class="solve-tap-bug" style="margin:0;padding:0;border:0;background:rgba(0,0,0,0);-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;height:100%;position:fixed;top:0;left:0;"></div>'),a("body").append(b.$tapBugOverlayer))},_removeTapOverlayer:function(){var a=this;setTimeout(function(){a.$tapBugOverlayer.remove()},350)}},d}(),f=function(a){var b=a.navigator.userAgent,d=/android|adr/gi.test(b),e=/iphone|ipod|ipad/gi.test(b)&&!d,f=d||e,g=e?"ios":d?"android":"default",h="ontouchend"in c,i=e?/os [\d._]*/gi:/android [\d._]*/gi,j=b.match(i),k=(j+"").replace(/[^0-9|_.]/gi,"").replace(/_/gi,".");return{isIOS:e,isAndroid:d,isMobile:f,platform:g,version:parseFloat(k),isSupportTouch:h,tapEvent:f&&h?"tapEvent":"click"}}(b);a.fn.dialog=function(c){var d=this;return this.each(function(){var f=a(this),g=b.jQuery?f.data("dialog"):a.fn.dialog.lookup[f.data("dialog")];if(g){var h=new e(this,c);h._init()}else{var h=new e(this,c);h._init(),b.jQuery?f.data("dialog",h):(a.fn.dialog.lookup[++a.fn.dialog.lookup.i]=h,f.data("dialog",a.fn.dialog.lookup.i),g=a.fn.dialog.lookup[f.data("dialog")])}"string"==typeof c&&g[c](),d.close=function(){h.closeDialog()},d.update=function(a){h.update(a)}})},b.jQuery||(a.fn.dialog.lookup={i:0}),a.fn.dialog.defaults={type:"alert",style:"default",titleShow:!0,titleText:"提示",bodyNoScroll:!1,closeBtnShow:!1,content:"",contentScroll:!0,dialogClass:"",autoClose:0,overlayShow:!0,overlayClose:!1,buttonStyle:"side",buttonTextConfirm:"确定",buttonTextCancel:"取消",buttonClassConfirm:"",buttonClassCancel:"",buttons:[],infoIcon:"",infoText:"",position:"center",onClickConfirmBtn:function(){},onClickCancelBtn:function(){},onClickCloseBtn:function(){},onBeforeShow:function(){},onShow:function(){},onBeforeClosed:function(){},onClosed:function(){}}}(window.jQuery||window.Zepto,window,document),function(a,b,c,d){"use strict";a(c).ready(function(){var b,d,e,f,g,h;a(c).on("touchstart",function(c){var c=c.originalEvent||c,i=c.changedTouches[0];h=a("tagName"in i.target?i.target:i.target.parentNode),g=new Date,b=i.clientX,d=i.clientY,e=i.clientX,f=i.clientY}).on("touchmove",function(a){var a=a.originalEvent||a,b=a.changedTouches[0];e=b.clientX,f=b.clientY}).on("touchend",function(a){var a=a.originalEvent||a;a.changedTouches[0];new Date-g<300&&Math.abs(e-b)+Math.abs(f-d)<30&&h.trigger("tapEvent"),g=0,b=0,d=0,e=0,f=0})}),["tapEvent"].forEach(function(b){a.fn[b]=function(a){return this.on(b,a)}})}(window.jQuery||window.Zepto,window,document),function(a,b,c,d){"use strict";function e(a){try{return a.getBoundingClientRect()}catch(a){console.log("No support getBoundingClientRect",a.message)}}var f=function(){function b(b,c){var d=this;d.$element=a(b),d.settings=a.extend({},a.fn.ripple.defaults,c),d.target=null,d.positionX=0,d.positionY=0,d.init()}return b.prototype={init:function(){this.bindEvents()},bindEvents:function(){var b=this;b.$element.on(g.downEvent,function(c){var d=c.changedTouches?c.changedTouches[0]:c;b.target=a(d.target),b.positionX=d.pageX,b.positionY=d.pageY,b.creatRipple()}),a(c).on("webkitAnimationEnd MSAnimationEnd animationend","."+b.settings.className,function(){var a=this;b.removeRipple(a)})},creatRipple:function(){var b=this,c=e(b.target[0]),d=Math.max(c.width,c.height),f=b.target.offset().left,g=b.target.offset().top;b.$rippleElement=a("<"+b.settings.tagName+"></"+b.settings.tagName+">"),b.$rippleElement.addClass(b.settings.className).css({left:b.positionX-f-d/2,top:b.positionY-g-d/2,width:d,height:d}),b.target.append(b.$rippleElement)},removeRipple:function(a){a.remove()}},b}(),g=function(a){var b=a.navigator.userAgent,d=/android|adr/gi.test(b),e=/iphone|ipod|ipad/gi.test(b)&&!d,f=d||e,g="ontouchend"in c;return{downEvent:f&&g?"touchstart":"mousedown"}}(b);a.fn.ripple=function(a){var b=[];return this.each(function(c,d){b.push(new f(d,a))}),b},a.fn.ripple.defaults={tagName:"span",className:"ripple"},a(function(){return new f(a("[data-ripple]"))})}(window.jQuery||window.Zepto,window,document);
\ No newline at end of file
"v0.4.8 Geetest Inc.";
(function (window) {
"use strict";
if (typeof window === 'undefined') {
throw new Error('Geetest requires browser environment');
}
var document = window.document;
var Math = window.Math;
var head = document.getElementsByTagName("head")[0];
function _Object(obj) {
this._obj = obj;
}
_Object.prototype = {
_each: function (process) {
var _obj = this._obj;
for (var k in _obj) {
if (_obj.hasOwnProperty(k)) {
process(k, _obj[k]);
}
}
return this;
}
};
function Config(config) {
var self = this;
new _Object(config)._each(function (key, value) {
self[key] = value;
});
}
Config.prototype = {
api_server: 'api.geetest.com',
protocol: 'http://',
typePath: '/gettype.php',
fallback_config: {
slide: {
static_servers: ["static.geetest.com", "dn-staticdown.qbox.me"],
type: 'slide',
slide: '/static/js/geetest.0.0.0.js'
},
fullpage: {
static_servers: ["static.geetest.com", "dn-staticdown.qbox.me"],
type: 'fullpage',
fullpage: '/static/js/fullpage.0.0.0.js'
}
},
_get_fallback_config: function () {
var self = this;
if (isString(self.type)) {
return self.fallback_config[self.type];
} else if (self.new_captcha) {
return self.fallback_config.fullpage;
} else {
return self.fallback_config.slide;
}
},
_extend: function (obj) {
var self = this;
new _Object(obj)._each(function (key, value) {
self[key] = value;
})
}
};
var isNumber = function (value) {
return (typeof value === 'number');
};
var isString = function (value) {
return (typeof value === 'string');
};
var isBoolean = function (value) {
return (typeof value === 'boolean');
};
var isObject = function (value) {
return (typeof value === 'object' && value !== null);
};
var isFunction = function (value) {
return (typeof value === 'function');
};
var MOBILE = /Mobi/i.test(navigator.userAgent);
var pt = MOBILE ? 3 : 0;
var callbacks = {};
var status = {};
var nowDate = function () {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
if (month >= 1 && month <= 9) {
month = '0' + month;
}
if (day >= 0 && day <= 9) {
day = '0' + day;
}
if (hours >= 0 && hours <= 9) {
hours = '0' + hours;
}
if (minutes >= 0 && minutes <= 9) {
minutes = '0' + minutes;
}
if (seconds >= 0 && seconds <= 9) {
seconds = '0' + seconds;
}
var currentdate = year + '-' + month + '-' + day + " " + hours + ":" + minutes + ":" + seconds;
return currentdate;
}
var random = function () {
return parseInt(Math.random() * 10000) + (new Date()).valueOf();
};
var loadScript = function (url, cb) {
var script = document.createElement("script");
script.charset = "UTF-8";
script.async = true;
// 对geetest的静态资源添加 crossOrigin
if ( /static\.geetest\.com/g.test(url)) {
script.crossOrigin = "anonymous";
}
script.onerror = function () {
cb(true);
};
var loaded = false;
script.onload = script.onreadystatechange = function () {
if (!loaded &&
(!script.readyState ||
"loaded" === script.readyState ||
"complete" === script.readyState)) {
loaded = true;
setTimeout(function () {
cb(false);
}, 0);
}
};
script.src = url;
head.appendChild(script);
};
var normalizeDomain = function (domain) {
// special domain: uems.sysu.edu.cn/jwxt/geetest/
// return domain.replace(/^https?:\/\/|\/.*$/g, ''); uems.sysu.edu.cn
return domain.replace(/^https?:\/\/|\/$/g, ''); // uems.sysu.edu.cn/jwxt/geetest
};
var normalizePath = function (path) {
path = path.replace(/\/+/g, '/');
if (path.indexOf('/') !== 0) {
path = '/' + path;
}
return path;
};
var normalizeQuery = function (query) {
if (!query) {
return '';
}
var q = '?';
new _Object(query)._each(function (key, value) {
if (isString(value) || isNumber(value) || isBoolean(value)) {
q = q + encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
}
});
if (q === '?') {
q = '';
}
return q.replace(/&$/, '');
};
var makeURL = function (protocol, domain, path, query) {
domain = normalizeDomain(domain);
var url = normalizePath(path) + normalizeQuery(query);
if (domain) {
url = protocol + domain + url;
}
return url;
};
var load = function (config, send, protocol, domains, path, query, cb) {
var tryRequest = function (at) {
var url = makeURL(protocol, domains[at], path, query);
loadScript(url, function (err) {
if (err) {
if (at >= domains.length - 1) {
cb(true);
// report gettype error
if (send) {
config.error_code = 508;
var url = protocol + domains[at] + path;
reportError(config, url);
}
} else {
tryRequest(at + 1);
}
} else {
cb(false);
}
});
};
tryRequest(0);
};
var jsonp = function (domains, path, config, callback) {
if (isObject(config.getLib)) {
config._extend(config.getLib);
callback(config);
return;
}
if (config.offline) {
callback(config._get_fallback_config());
return;
}
var cb = "geetest_" + random();
window[cb] = function (data) {
if (data.status == 'success') {
callback(data.data);
} else if (!data.status) {
callback(data);
} else {
callback(config._get_fallback_config());
}
window[cb] = undefined;
try {
delete window[cb];
} catch (e) {
}
};
load(config, true, config.protocol, domains, path, {
gt: config.gt,
callback: cb
}, function (err) {
if (err) {
callback(config._get_fallback_config());
}
});
};
var reportError = function (config, url) {
load(config, false, config.protocol, ['monitor.geetest.com'], '/monitor/send', {
time: nowDate(),
captcha_id: config.gt,
challenge: config.challenge,
pt: pt,
exception_url: url,
error_code: config.error_code
}, function (err) {})
}
var throwError = function (errorType, config) {
var errors = {
networkError: '网络错误',
gtTypeError: 'gt字段不是字符串类型'
};
if (typeof config.onError === 'function') {
config.onError(errors[errorType]);
} else {
throw new Error(errors[errorType]);
}
};
var detect = function () {
return window.Geetest || document.getElementById("gt_lib");
};
if (detect()) {
status.slide = "loaded";
}
window.initGeetest = function (userConfig, callback) {
var config = new Config(userConfig);
if (userConfig.https) {
config.protocol = 'https://';
} else if (!userConfig.protocol) {
config.protocol = window.location.protocol + '//';
}
// for KFC
if (userConfig.gt === '050cffef4ae57b5d5e529fea9540b0d1' ||
userConfig.gt === '3bd38408ae4af923ed36e13819b14d42') {
config.apiserver = 'yumchina.geetest.com/'; // for old js
config.api_server = 'yumchina.geetest.com';
}
if(userConfig.gt){
window.GeeGT = userConfig.gt
}
if(userConfig.challenge){
window.GeeChallenge = userConfig.challenge
}
if (isObject(userConfig.getType)) {
config._extend(userConfig.getType);
}
jsonp([config.api_server || config.apiserver], config.typePath, config, function (newConfig) {
var type = newConfig.type;
var init = function () {
config._extend(newConfig);
callback(new window.Geetest(config));
};
callbacks[type] = callbacks[type] || [];
var s = status[type] || 'init';
if (s === 'init') {
status[type] = 'loading';
callbacks[type].push(init);
load(config, true, config.protocol, newConfig.static_servers || newConfig.domains, newConfig[type] || newConfig.path, null, function (err) {
if (err) {
status[type] = 'fail';
throwError('networkError', config);
} else {
status[type] = 'loaded';
var cbs = callbacks[type];
for (var i = 0, len = cbs.length; i < len; i = i + 1) {
var cb = cbs[i];
if (isFunction(cb)) {
cb();
}
}
callbacks[type] = [];
}
});
} else if (s === "loaded") {
init();
} else if (s === "fail") {
throwError('networkError', config);
} else if (s === "loading") {
callbacks[type].push(init);
}
});
};
})(window);
import config from '../../config/config'
(function(para) {
var p = para.sdk_url, n = para.name, w = window, d = document, s = 'script',x = null,y = null;
if(typeof(w['sensorsDataAnalytic201505']) !== 'undefined') {
return false;
}
w['sensorsDataAnalytic201505'] = n;
w[n] = w[n] || function(a) {return function() {(w[n]._q = w[n]._q || []).push([a, arguments]);}};
var ifs = ['track','quick','register','registerPage','registerOnce','trackSignup', 'trackAbtest', 'setProfile','setOnceProfile','appendProfile', 'incrementProfile', 'deleteProfile', 'unsetProfile', 'identify','login','logout','trackLink','clearAllRegister','getAppStatus'];
for (var i = 0; i < ifs.length; i++) {
w[n][ifs[i]] = w[n].call(null, ifs[i]);
}
if (!w[n]._t) {
x = d.createElement(s), y = d.getElementsByTagName(s)[0];
x.async = 1;
x.src = p;
x.setAttribute('charset','UTF-8');
w[n].para = para;
y.parentNode.insertBefore(x, y);
}
})({
sdk_url: 'https://ecustomer.cntaiping.com/static/npm/sa-sdk-javascript/sensorsdata.min.js',
heatmap_url: 'https://ecustomer.cntaiping.com/static/npm/sa-sdk-javascript/heatmap.min.js',
name: 'sensors',
use_app_track: true,
server_url: `${config.shenceUrl[config.ENV]}`,
heatmap:{}
});
sensors.quick('autoTrack');
sensors.quick('isReady',function(){
sessionStorage.setItem('anonymousId', sensors.quick('getAnonymousID'));
});
\ No newline at end of file
const ENV = 'SIT';
// const ENV = 'UAT';
// const ENV = 'PRO';
const urlList = {
SIT: 'https://ecustomer.tp95589.com/sit',
UAT: 'https://ecustomer.tp95589.com',
// SIT: 'http://localhost:3000/sit',
PRO: 'https://ecustomer.cntaiping.com',
};
const fileUrl = {
SIT: 'https://ecustomer.tp95589.com',
UAT: 'https://ecustomer.tp95589.com',
// SIT: 'http://localhost:8080',
// UAT: 'http://localhost:8080',
PRO: 'https://ecustomer.cntaiping.com',
};
const shenceUrl = {
SIT: 'https://yhxwtz_test.ft.cntaiping.com:8111/sa?project=tpt_test',
PRO: 'https://cd.life.cntaiping.com:8106/sa?project=chinataiping',
};
const baseUrl = urlList[ENV];
const responseCode = {
businessError: ['9794', '9894', '9896', '9797', '9796', '9795', '9793'],
networkError: '网络不稳定,请稍后再试',
systemError: '系统繁忙,请稍后再试',
};
const uXZ = navigator.userAgent;
const isAndroidXZ = uXZ.indexOf('Android') > -1 || uXZ.indexOf('Linux') > -1; // android终端或者uc浏览器
const isiOSXZ = !!uXZ.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端
const isKhtAPP = uXZ.indexOf('kehutong') > -1;
const uaXZ = window.navigator.userAgent.toLowerCase();
const isWeixin = uaXZ.indexOf('micromessenger') !== -1;
export default {
responseCode,
baseUrl,
fileUrl,
ENV,
isAndroidXZ,
isiOSXZ,
isWeixin,
shenceUrl,
isKhtAPP,
};
/* eslint-disable no-irregular-whitespace */
import fetch from './fetch';
import { Toast } from './toast';
import config from './config';
import '../pages/style/downloadInwx.scss';
require('../assets/js/gt.js');
(function () {
// eslint-disable-next-line global-require
$('body').append(`<div class="share-download-wx">
</div>`);
$('.share-download-wx').append(`<div id="dialogSignIn" class="sign-up-content">
<div class="dialog-overlay"></div>
<div class="dialog-content"></div>
</div>`);
$('.share-download-wx').append(`<div id="xyContent" class="sign-up-content">
<div class="dialog-overlay"></div>
<div class="dialog-content">
<div class="modal-content">
<div class="row modal-header">
<h3 class="modal-title">《太平集团用户服务协议》</h3>
<span class="kht kht-close-o"></span>
</div>
<div class="modal-body">
<div class="indent">
欢迎注册成为中国太平保险集团有限责任公司(以下简称“太平集团”)用户,请您注册前仔细阅读本协议,勾选“我已阅读并同意《太平集团用户服务协议》(本平台用户注册协议)”,当您点击“同意”按钮即表示您确认完全理解本协议内容并自愿遵守本协议。
</div>
<div class="indent">
太平集团用户服务由太平集团及其关联公司(包括但不限于太平人寿保险有限公司、太平财产保险有限公司、太平养老保险股份有限公司、太平金融服务有限公司、太平金融科技有限公司,以下同)提供,服务内容为保单基础服务、增值服务、保险服务、生态服务等各平台实际提供服务。自您完成注册起,本协议即在您与太平集团及其关联公司间生效,您在本平台的注册账户亦可在太平集团统一身份认证支持的相关平台登录使用。您在本平台完成注册后,将同时成为太平集团会员,享受更多会员服务。
</div>
<div class="indent">
如您不同意本协议的部分或全部内容,请不要注册本平台账号,使用本平台服务。本协议自您确认同意之日起实施。
</div>
<div class="indent">
用户在此确认知悉并同意本平台有权根据需要不时修改、增加或删减本协议。本平台将采用在网站、APP公告或站内消息等方式通知用户修改、增加或删减的内容,不再向用户个别通知。一经本平台通过上述方式通知,即视为上述内容已经通知到用户。若用户在本协议及各类规则变更后继续使用本平台服务的,视为用户已仔细认真阅读、充分理解并同意接受修改后的服务协议及各类规则。太平集团及其关联公司保留中止、终止或限制用户继续使用本平台服务的权利,但该等中止、终止或限制行为并不豁免用户已经进行的交易下所应承担的责任。
</div>
<div class="indent" style="font-weight: bold">
第一条 用户须知
</div>
<div class="indent">
1、注册者资格
</div>
<div class="indent">
您确认,在您完成注册程序或使用本平台服务时,您应当是具备完全民事行为能力的自然人、法人或其他组织。若您不具备前述主体资格,则您及您的监护人应承担因此而导致的一切后果。
</div>
<div class="indent">
2、用户信息
</div>
<div class="indent">
(1)在完成注册、激活或验证流程时,您应当按照相应页面的提示提供您的身份信息及资料,以使之真实、及时、完整和准确;
</div>
<div class="indent">
(2)当您的身份信息及资料发生变化时,您应当及时更新并准确提供您的身份信息及资料。
</div>
<div class="indent">3、账户安全</div>
<div class="indent">
(1)您应对您在本平台的登录名和密码保密,且须对您在该登录名和密码下发生的所有活动(包括但不限于发布信息、点击同意或提交购买、接受各类产品或服务等)承担责任。
</div>
<div class="indent">
(2)您了解并同意:如发现任何人未经授权使用您的本平台登录名和密码,您应当立即通知本平台,授权本平台经过必要身份识别措施后更改密码或作出其他应对措施。但本平台不会对因您未能遵守本款规定而发生的任何损失负责。无论使用您的本平台登录名和密码登录并使用本平台的是否为您本人,该等行为之后果均由您和实际操作者承担连带责任。
</div>
<div class="indent">4、账户管理
</div>
<div class="indent">
除非有法律规定或司法裁判,否则您的登录名和密码不得以任何方式转让、赠予或继承。
</div>
<div class="indent" style="font-weight: bold">第二条 用户的权利和义务
</div>
<div class="indent">
1、在遵守本协议的前提下,您将享有本平台提供的用户服务,并将收到本平台最新的优惠产品和服务的相关信息。
</div>
<div class="indent">
2、用户应保证其提供的个人资料的真实、准确、完整、有效,如有变更,应及时通知本平台并按照本平台的要求办理变更手续。如用户未按照本平台的规定提交相关真实、有效的信息,或者本平台有合理的理由怀疑用户提交的信息为错误、虚假或不完整的,本平台有权拒绝为用户提供服务。因用户提交的信息错误、虚假或不完整对本平台或第三方造成的全部损失由用户承担。
</div>
<div class="indent">
3、用户不得通过本平台从事任何违法行为(包括但不限于发布违法或破坏性的信息等),不得干扰平台系统的正常运作。
</div>
<div class="indent">
4、用户应对与用户本平台账户绑定的银行卡账户拥有合法的使用权,如用户因故对银行卡账号丧失使用权的,则本平台可停止为用户提供服务,同时,用户可以以其另外提供的有效银行卡账户向平台申请更换用户本平台账户。
</div>
<div class="indent">
5、用户必须提供真实、准确、完整的资料,并且授予本平台基于提高服务的目的,对其提供资料的真实性进行第三方校验的权利。
</div>
<div class="indent">
6、在未经本平台事先书面同意的情况下,不以复制、传播等任何方式使用本平台上展示的资料、信息或数据。
</div>
<div class="indent">
7、因用户违反本协议造成本平台损失的,用户应当承担对本平台全部损失(包括直接损失、间接损失)的赔偿责任。
</div>
<div class="indent">
8、无论本协议是否存在约定,因用户过错造成本平台损失的,用户应当承担对本平台全部损失(包括直接损失、间接损失)的赔偿责任。
</div>
<div class="indent" style="font-weight: bold">第三条  本平台的权利与义务</div>
<div class="indent">
1、本平台有权根据用户所提供注册资料的真实性、准确性、完整性、有效性以及是否符合本公司规定的其他条件,决定用户的注册成功与否。
</div>
<div class="indent">
2、本平台有权基于单方独立判断,在其认为可能发生危害交易安全等情形时,不经通知而先行暂停、中断或终止向用户提供本协议项下的全部或部分用户服务(包括收费服务),且无需对用户或任何第三方承担任何责任。前述情形包括但不限于:
</div>
<div class="indent">
1)本平台认为用户提供的个人资料不具有真实性、准确性、有效性或完整性;
</div>
<div class="indent">
2)本平台发现异常交易或有疑义或有违法之虞时;
</div>
<div class="indent">
3)本平台认为用户账户涉嫌洗钱、套现、传销、被冒用或本公司认为有风险之情形;
</div>
<div class="indent">
4)本平台认为用户已经违反本协议中规定的各类规则及要求;
</div>
<div class="indent">
5)用户在使用本平台收费服务时未按规定平台支付相应的服务费用;
</div>
<div class="indent">
6)用户本平台账户已连续三年未实际使用。
</div>
<div class="indent">
7)其他本平台合理认为应当先行暂停、中断或终止向用户提供本协议项下的全部或部分用户服务的情形。
</div>
<div class="indent">
3、本平台有权基于交易安全等方面的考虑不时设定涉及交易的相关事项,包括但不限于交易限额、交易次数等。
</div>
<div class="indent">
4、用户存在任何恶意诋毁或损害本平台声誉、攻击本平台相关系统、利用本平台用户身份从事违反国家法律法规活动等行为的,本平台有权单方面终止用户的权利,并保留追究用户法律责任的权利。
</div>
<div class="indent">
5、本平台在法律范围内做好平台服务、维护及管理相关工作,不得从事任何违法行为(包括但不限于发布违法或破坏性的信息等)。
</div>
<div class="indent" style="font-weight: bold">第四条 服务费用</div>
<div class="indent">
1、当用户使用本平台提供的服务时,平台会向用户收取相关平台服务费用。各项服务费用详见本平台所列之收费方式说明。本平台保留单方面制定及调整服务费用的权利,新服务费用的生效时间以本平台将来公告中所述的时间为准。
</div>
<div class="indent">
2、用户在使用本平台服务过程中(如充值或取现等)可能需要向第三方机构(如银行或第三方支付公司等)支付一定的费用,具体收费标准详见第三方机构网站相关页面,或本平台的提示。用户与第三方机构之间就费用支付事项产生的纠纷与本平台无关。
</div>
<div class="indent" style="font-weight: bold">第五条   隐私条款</div>
<div class="indent">
本平台采取严格的隐私政策,尊重并保护用户隐私,请会员仔细阅读并了解。
</div>
<div class="indent">1、收集个人信息的目的及其使用
本平台可能将用户所提供的个人信息用于以下一项或多项目的:
</div>
<div class="indent">1) 帮助您完成注册
</div>
<div class="indent">2) 向您提供商品或服务
</div>
<div class="indent">3) 向您推送商品及服务相关的消息
</div>
<div class="indent">4) 更准确的身份确认
</div>
<div class="indent">5) 为您提供安全保障;
</div>
<div class="indent">6) 改进我们的服务。
</div>
<div class="indent">2、本平台对个人信息安全的承诺
</div>
<div class="indent">
为保持数据的准确性,防止擅自入侵及确保个人信息的正确使用,本平台采取了适当的硬件、电子及管理措施以保障本平台收集个人资料的保密性。通过内部安全管理规范、技术手段、加密处理等各种措施保证信息安全并承诺不对个人信息进行非法处理。
</div>
<div class="indent">3、本平台所收集的资料
</div>
<div class="indent">个人信息包括但不限于:</div>
<div class="indent">1) 您提供的信息
</div>
<div class="indent">
(1)您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如姓名、证件类型和证件号码、电话号码、电子邮件、联系地址、职业等。
</div>
<div class="indent">
(2)您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。
</div>
<div class="indent">3) 我们获取的您的信息
</div>
<div class="indent">
为使本平台服务更加贴合用户的需求,了解产品的适配性、识别账号的异常状态等,我们会收集、汇总、记录的信息,例如日志信息、设备信息、位置信息等。
</div>
<div class="indent">4、如何查询或修改用户的个人信息
</div>
<div class="indent">
用户可在“我的”或用户中心项下的“个人信息”中查询并修改个人信息。每当用户的个人信息有所变化时,应当及时更新。
</div>
<div class="indent">5、保护用户的隐私权
</div>
<div class="indent">
本平台完全遵守相关法律条例的要求,确保用户隐私。本平台会将个人信息的收集和使用限制在必须范围之内,以便管理业务、为用户提供最高质量的服务以及提供各项优惠信息。用户知悉并不可撤销地授权以下事宜:本平台所属太平集团(官网:http://www.cntaiping.com/)及其关联公司,可以收集、整理、分析、使用及保存您的个人信息,并可在太平集团及其关联公司内部相互提供、分析和使用,还可基于为您提供服务而与第三方合作,将您的个人信息提供给第三方使用,例如将您的个人信息提供给第三方进行身份认证。为确保用户信息的安全,太平集团及其关联公司对上述信息负有保密义务,并采取合理措施保证信息安全。如果用户不希望收到第三方推送的信息,不希望用户个人信息被除太平集团及其关联公司外的其他第三方使用,可以在提供个人信息时或其他任何时候向本平台明示告知,本平台将不会将明示的客户信息交给任何第三方,但若因此导致用户无法使用本平台的所有或部分服务,本平台不承担任何责任。如涉及个人信息隐私投诉,可致电中国太平官方热线95589。
</div>
<div class="indent">6、隐私政策的更改</div>
<div class="indent">
一旦本平台更改了隐私申明,将采用在网站、APP公告或站内消息等方式通知用户修改、增加或删减的内容,不承担事先单独通知义务。一经本平台通过上述方式通知,即视为上述内容已经通知到用户。若用户在本协议及各类规则变更后继续使用本平台服务的,视为用户已仔细认真阅读、充分理解并同意接受修改后的隐私声明。
</div>
<div class="indent" style="font-weight: bold">第六条  除外责任
</div>
<div class="indent">
1、因用户自身的原因导致的任何损失或责任,由用户自行负责,本平台不承担任何责任。本平台不承担责任的情形包括但不限于:
</div>
<div class="indent">
1)用户未按照本协议或本平台公布的规则进行操作导致的任何损失或责任;
</div>
<div class="indent">
2)用户使用未经认证的银行卡或使用非用户本人的银行卡,用户的银行卡被冻结、挂失等导致的任何损失或责任;
</div>
<div class="indent">
3)用户本平台账户及银行账户内余额不足导致的任何损失或责任;
</div>
<div class="indent">
4)其他非因本平台过错导致的损失及责任。
</div>
<div class="indent">
2、在任何情况下,对于用户使用涉及由第三方提供相关服务的责任由该第三方承担,本平台不承担任何责任。该等情形包括但不限于:
</div>
<div class="indent">
1)因银行、第三方支付公司等第三方未按照用户和/或本公司指令进行操作引起的任何损失或责任;
</div>
<div class="indent">
2)因银行、第三方支付公司等第三方原因导致资金未能及时到账而引起的任何损失或责任;
</div>
<div class="indent">
3)因银行、第三方支付公司等第三方对交易限额或次数限制而引起的任何损失或责任;
</div>
<div class="indent">
4)因其他第三方的行为或原因导致的任何损失或责任。
</div>
<div class="indent">
3、在任何情况下,本平台均不对由于信息网络正常的设备维护、信息网络连接故障、手机、通讯或其他系统的故障、电力故障、罢工、暴乱、起义、骚乱、火灾、洪水、风暴、爆炸、战争、政府行为、司法行政机关的命令或第三方的不作为而造成的不能服务或延迟服务承担责任;
</div>
<div class="indent">
4、为了提高服务质量,本平台可能暂停服务以调整或升级系统。在暂停服务前,本平台将在网站、APP等渠道提前公告暂停服务的时间。在任何情况下,本平台无须为暂停用户服务承担违约责任。
</div>
<div class="indent">
5、用户经由本平台上的服务而使用、下载或取得任何资料,应由用户自行考量且自负风险,因资料的下载而导致的任何损失由用户自行承担。
</div>
<div class="indent" style="font-weight: bold">第七条  风险提示</div>
<div class="indent">
1、用户了解并认可,任何通过本平台进行的交易并不能避免以下风险的产生,本平台不能也没有义务为如下风险负责:
</div>
<div class="indent">
1)宏观经济风险:因宏观经济形势变化,可能引起价格等方面的异常波动,用户有可能遭受损失;
</div>
<div class="indent">
2)政策风险:有关法律、法规及相关政策、规则发生变化,可能引起价格等方面异常波动,用户有可能遭受损失;
</div>
<div class="indent">
3)违约风险:因其他交易方无力或无意愿按时足额履约,用户有可能遭受损失;
</div>
<div class="indent">
4)利率风险:市场利率变化可能对购买或持有产品的实际收益产生影响;
</div>
<div class="indent">
5)操作风险:任一方使用的计算机系统被第三方侵入、宕机,或火灾、恐怖攻击灾难发生等,用户有可能遭受损失;
</div>
<div class="indent">
6)因用户的过错导致的任何损失,该过错包括但不限于:决策失误、操作不当、遗忘或泄露密码、密码被他人破解、用户委托他人代理交易时他人恶意或不当操作而造成的损失。
</div>
<div class="indent">
7)其他非因本平台过错导致的风险。
</div>
<div class="indent">
2、本平台不对任何用户及/或任何交易提供任何担保或条件,无论是明示还是默示。本平台不能也不试图对用户发布的信息进行实质控制,对该等信息,本平台不承担任何形式的证明、鉴定服务。本平台不能完全保证平台内容的真实性、充分性、可靠性、准确性、完整性和有效性,并且无需承担任何由此引起的法律责任。用户应基于自己的独立判断进行交易,用户应对其作出的判断承担全部责任,本平台不对用户的判断导致的结果承担任何责任。
</div>
<div class="indent">
3、以上并不能揭示用户通过本平台所进行交易的全部风险及市场的全部情形。用户在做出交易决策前,应全面了解相关交易,谨慎决策,并自行承担全部风险。
</div>
<div class="indent" style="font-weight: bold">第八条  知识产权保护条款
</div>
<div class="indent">
1、本平台上提供的所有内容(包括但不限于文字、音频、视频、图片、图表、广告、本平台向用户发送的电子邮件)的知识产权归本平台及相关权利人所有。
</div>
<div class="indent">
2、除另有声明外,本平台提供服务时所依托的软件著作权和专利权归本平台及相关权利人所有。
</div>
<div class="indent">
3、未经本平台授权,用户不得以任何方式擅自修改、复制、存储、传送、抄袭、分发上述内容。
</div>
<div class="indent">
4、未经本平台授权,用户不得将本平台包含的任何内容用作商业或其它公开用途。任何未经本平台授权对本平台内容的使用均属于违法行为。
</div>
<div class="indent" style="font-weight: bold">第九条 法律适用</div>
<div class="indent">
1、本协议的订立、生效、履行、解释以及由此产生的所有事项均适用中华人民共和国法律;
</div>
<div class="indent">
2、本协议中的部分条款无效,不影响其它条款的效力。若上述无效条款构成本协议目的之条款或核心条款,则该条款应被尽可能接近各方意图、能够保留本协议要求的目的且为有效的新条款所取代。在此情况下,本协议的其它条款仍然有效。
</div>
<div class="indent" style="font-weight: bold">第十条 争议解决
</div>
<div class="indent">
凡因履行本协议所引起的任何争议,您和太平集团双方同意首先以友好协商的方式解决。协商不成的,任一方均可向太平集团所在地有管辖权的人民法院提起诉讼。争议解决期间,未涉争议的条款双方应当继续履行。
</div>
</div>
</div>
</div>
</div>`);
// 绑定邀请人
const captchaServer = 'http://api.geetest.com';
let activeCaptchaObj = null;
let secondInterval = null;
// let referralUserId = '';
let username = '';
let sourceNew = '';
// let organFlag = '';
let organId = '';
let organName = '';
const locationUrl = window.location.search;
function getInfo() {
const theRequest = {};
if (locationUrl.indexOf('?') !== -1) {
const str = locationUrl.substr(1);
const strs = str.split('&');
strs.forEach((ele) => {
const arr = ele.split('=');
// eslint-disable-next-line prefer-destructuring
theRequest[arr[0]] = arr[1];
});
}
// if (theRequest.userId) {
// referralUserId = theRequest.userId;
// }
if (theRequest.username) {
username = decodeURIComponent(theRequest.username);
}
const pathKey = decodeURIComponent(theRequest.pathKey);
if (theRequest.source) {
sourceNew = theRequest.source;
if (sourceNew !== 'undefind' && sourceNew !== 'null' && sourceNew !== '') {
sourceNew = theRequest.source;
} else {
sourceNew = '2';
}
}
if (pathKey !== 'undefined') {
const params = {
url: '/campaignsms/organization/getAppendPath',
data: {
pathKey: theRequest.pathKey,
},
};
fetch.post(params).then((res) => {
if (res && res.organId) {
// organFlag = res.organFlag;
organId = res.organId;
organName = res.organName;
if ((organId.substr(0, 1) === '1' || organId.substr(0, 5) === 'dept_' || organId.substr(0, 4) === 'rsnq') && res.affiliateCompany === '01') {
username = '太平人寿';
} else if ((organId.substr(0, 2) === '03')) {
username = '太平财险';
// eslint-disable-next-line no-empty
} else if (organId.substr(0, 9) === 'tcnq1003') {
username = '太平财险(内勤)';
} else if (organId.substr(0, 7) === 'yl1024') {
username = '太平养老';
} else {
username = organName;
}
}
});
}
sourceNew = '';
}
getInfo();
// 控制下载按钮
function initNeedDownload() {
$('.nav.down-top').css('visibility', 'visible');
$('.nav.down-bottom').css('visibility', 'visible');
}
if (!config.isKhtAPP) {
initNeedDownload();
}
// 修改下载效果展示
$(window).on('scroll', () => {
const scrollTop = $(window).scrollTop();
if (scrollTop > 150) {
$('.nav.down-bottom').addClass('show');
$('.nav.down-top').addClass('di');
} else if (scrollTop <= 150) {
$('.nav.down-bottom').removeClass('show');
$('.nav.down-top').removeClass('di');
}
});
$('body').on('scroll', () => {
const scrollTop = $('body').scrollTop();
if (scrollTop > 150) {
$('.nav.down-bottom').addClass('show');
$('.nav.down-top').addClass('di');
} else if (scrollTop <= 150) {
$('.nav.down-bottom').removeClass('show');
$('.nav.down-top').removeClass('di');
}
});
function restKeyWords() {
let seconds = 60;
$('#getKeywords').text(`${seconds}s后重新获取`);
$('#getKeywords').attr('disabled', 'true');
secondInterval = setInterval(() => {
if (seconds > 1) {
seconds -= 1;
$('#getKeywords').text(`${seconds}s后重新获取`);
} else {
$('#getKeywords').text('获取验证码');
$('#getKeywords').attr('disabled', 'false');
clearInterval(secondInterval);
}
}, 1000);
}
// 获取手机验证码接口
function sendMobileVeryCode() {
const phoneNumber = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const params = {
url: '/userms/auth/sendMobileVeryCode',
data: {
phone: phoneNumber,
type: '02',
internatCode,
},
};
fetch.post(params).then((res) => {
if (res && res.shortmsgVerycodeTimeout) {
restKeyWords();
}
});
}
// // 验证短信验证码
// function saveNewPersion() {
// const recommendMobile = $('input[name="phoneNumber"]').val();
// const internatCode = $('select[name="internatCode"]').val();
// const code = $('input[name="keywords"]').val();
// const params = {
// url: '/userms/account/bindAndLogin',
// data: {
// // code,
// // recommendMobile,
// // referralUserId,
// // type: '17',
// // internatCode,
// // organFlag: organFlag || '0',
// // organId: organId || '',
// // organName: organName || '',
// // registSource: sourceNew,
// activityNumber: '', // 活动编号 ,
// internatCode, // 国际区号 ,
// phone: recommendMobile, // 手机号码 ,
// referralUserid: referralUserId, // 邀请人userId ,
// verificationcode: code, // 验证码
// },
// errorFuc: () => {
// if (secondInterval) {
// clearInterval(secondInterval);
// }
// // window.location.href = `${config.fileUrl[config.ENV]}/static/download/#xiaZaiAPP`;
// },
// };
// fetch.post(params).then((res) => {
// console.log('res:', res);
// $('#dialogSignIn').hide();
// $('#dialogSignIn .dialog-content').empty();
// if (secondInterval) {
// clearInterval(secondInterval);
// }
// // if (secondInterval) {
// // clearInterval(secondInterval);
// // }
// // window.location.href = `${config.fileUrl[config.ENV]}/static/download/#xiaZaiAPP`;
// }).catch(() => {
// if (secondInterval) {
// clearInterval(secondInterval);
// }
// // window.location.href = `${config.fileUrl[config.ENV]}/static/download/#xiaZaiAPP`;
// });
// }
function handlerPopupMobile(captchaObj) {
// 将验证码加到id为captcha的元素里
// captchaObj.appendTo('#popup-captcha-mobile');
// 拖动验证成功后两秒(可自行设置时间)自动发生跳转等行为
captchaObj.onReady(() => {
captchaObj.verify();
}).onSuccess(() => {
const phoneNumber = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const validate = captchaObj.getValidate();
const params = {
url: '/userms/captchaV3/validate',
data: {
type: '02',
accountName: phoneNumber,
internatCode,
geetestChallenge: validate.geetest_challenge,
geetestSeccode: validate.geetest_seccode,
geetestValidate: validate.geetest_validate,
},
};
fetch.post(params).then((res) => {
if (res && res.status === 'success') {
sendMobileVeryCode();
} else if (res && res.status === 'fail') {
Toast('验证失败', 2000);
}
});
});
captchaObj.onClose(() => {
// 用户把验证关闭了,这时你可以提示用户需要把验证通过后才能进行后续流程
Toast('验证通过后才能进行发送验证码', 2000);
});
activeCaptchaObj = captchaObj;
}
function needLoign() {
// eslint-disable-next-line global-require
const logo = require('../assets/images/big_log.png');
$('#dialogSignIn').show(200);
$('#dialogSignIn .dialog-content').append(`<div class="sign-up">
<div class="row sign-up-header">
</div>
<div class="row sign-up-logo">
<img src=${logo} />
<div class="col logo-dec">
<p>太平生活</p>
<p>一触即通</p>
</div>
</div>
<div class="sign-up-welcome font-size-28 font-color-999" style="text-align: center;">
${username},邀请您使用太平通
</div>
<div class="sign-up-input">
<div class="row line">
<select class="outline-select" name="internatCode">
<option value="0086">中国大陆(86)</option>
<option value="00852">中国香港(852)</option>
<option value="00853">中国澳门(853)</option>
</select>
<input
name="phoneNumber"
class="outline-input"
maxlength="11"
type="tel"
placeholder="请输入11位手机号码"
/>
</div>
<div class="row line">
<input
name="keywords"
class="outline-input"
maxlength="6"
type="tel"
placeholder="请输入短信验证码"
/>
<button id="getKeywords" class="btn font-color-white bg-color-blue" disabled="true">获取验证码</button>
</div>
</div>
<div class="row sign-up-xy">
<input id="checkXy" class="input-check" value="1" checked="checked" type="checkbox">
<label for="checkXy" class="kht"></label >
<p>我已阅读并同意<span id="readXy">《太平集团用户服务协议》</span></p>
</div>
<button id="downloadNow" class="btn font-size-32 font-color-white bg-color-blue full" disabled="true">登录</button>
</div>`);
}
function getKeywords() {
const phoneNumber = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const params = {
url: '/userms/captchaV3/register',
data: {
accountName: phoneNumber,
internatCode,
},
};
fetch.post(params).then((data) => {
const res = JSON.parse(data);
const cfg = {
gt: res.gt,
challenge: res.challenge,
https: true,
product: 'bind',
api_server: captchaServer,
offline: !res.success, // 表示用户后台检测极验服务器是否宕机,一般不需要关注
// 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
};
if (!activeCaptchaObj) {
window.initGeetest(cfg, handlerPopupMobile);
} else {
activeCaptchaObj.verify();
}
});
}
// 控制下载按钮是否可以点击
function watchCanDownload() {
if ($('input[name="keywords"]').val() && $('#checkXy')[0].checked) {
$('#downloadNow').removeAttr('disabled');
} else {
$('#downloadNow').attr('disabled', 'true');
}
}
$('#dialogSignIn').on('click', 'span.kht-close-o', () => {
$('#dialogSignIn').hide();
$('#dialogSignIn .dialog-content').empty();
if (secondInterval) {
clearInterval(secondInterval);
}
});
$('#dialogSignIn').on('click', '#getKeywords', () => {
getKeywords();
});
// $('#dialogSignIn').on('click', '#downloadNow', () => {
// saveNewPersion();
// });
$('#dialogSignIn').on('input', 'input[name="keywords"]', () => {
$('input[name="keywords"]').val($('input[name="keywords"]').val().replace(/[^\d]/g, ''));
watchCanDownload();
});
$('#dialogSignIn').on('change', '#checkXy', () => {
watchCanDownload();
});
$('#dialogSignIn').on('input', 'input[name="phoneNumber"]', () => {
$('input[name="phoneNumber"]').val($('input[name="phoneNumber"]').val().replace(/[^\d]/g, ''));
if ($('input[name="phoneNumber"]').val()) {
$('#getKeywords').removeAttr('disabled');
} else {
$('#getKeywords').attr('disabled', 'true');
}
});
$('#dialogSignIn').on('click', 'span#readXy', () => {
$('#xyContent').show(300);
});
$('#xyContent').on('click', 'span.kht-close-o', () => {
$('#xyContent').hide();
});
// 下载逻辑
window.onDownLoad = () => {
needLoign();
};
// 下载绑定
// window.onDownLoad();
}());
import * as TPTJS from 'tpt-js-sdk';
import config from './config';
import { Toast } from './toast';
import '../assets/js/dialog.min';
const loadingGif = require('../assets/images/loading.gif');
class Fetch {
constructor() {
this.loading = undefined;
this.loadingNumber = 0;
}
loading
loadingNumber
cleanLoading = () => {
this.loading.close();
this.loadingNumber = 0;
this.loading = undefined;
}
handleResponse = (params, res, resolve) => {
if (config.responseCode.businessError.indexOf(res.code) !== -1) {
if (this.loadingNumber > 0 && !params.noLoading) {
this.cleanLoading();
}
TPTJS.khtAppRouteRequest('0', '', '0', 'native', 'LogIn');
} else if (res.code !== '0000') {
if (!params.notToast) {
Toast(res.desc, 3000);
}
if (this.loadingNumber > 0 && !params.noLoading) {
this.cleanLoading();
}
if (params.errorFuc) {
params.errorFuc();
}
} else {
if (!params.keepLoading && this.loadingNumber > 0 && !params.noLoading) {
this.cleanLoading();
}
resolve(res.data);
}
}
commonErrorHandle = (params, err, reject) => {
if (this.loadingNumber > 0) {
this.cleanLoading();
}
reject(err);
if (params.errorFuc) {
params.errorFuc();
}
}
post = (params) => new Promise((resolve, reject) => {
const that = this;
if (that.loadingNumber < 1 && !params.noLoading) {
that.loadingNumber += 1;
that.loading = $(document).dialog({
type: 'toast',
infoIcon: loadingGif,
infoText: '正在加载中',
});
}
$.ajax({
url: `${params.baseUrl ? params.baseUrl : config.baseUrl}${params.url ? params.url : 'url'}`,
contentType: 'application/json',
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=UTF-8',
anonymousId: sessionStorage.getItem('anonymousId'),
'x-ac-token-ticket': sessionStorage.getItem('token') || '',
},
data: JSON.stringify(params.data),
success(res) {
that.handleResponse(params, res, resolve);
},
error(err) {
that.commonErrorHandle(params, err, reject);
},
});
});
get = (params) => new Promise((resolve, reject) => {
const that = this;
if (that.loadingNumber < 1 && !params.noLoading) {
that.loadingNumber += 1;
that.loading = $(document).dialog({
type: 'toast',
infoIcon: loadingGif,
infoText: '正在加载中',
});
}
$.ajax({
url: `${config.baseUrl}${params.url ? params.url : 'url'}`,
contentType: 'application/json',
method: 'GET',
headers: {
'Content-Type': 'application/json;charset=UTF-8',
anonymousId: sessionStorage.getItem('anonymousId'),
'x-ac-token-ticket': sessionStorage.getItem('token') || '',
},
success(res) {
that.handleResponse(params, res, resolve);
},
error(err) {
that.commonErrorHandle(params, err, reject);
},
});
});
}
const fetch = new Fetch();
export default fetch;
import '../pages/style/personSecret.scss';
(function () {
$('body').append(`<div id="ysxyContent" class="sign-up-content">
<div class="dialog-overlay"></div>
<div class="dialog-content">
<div class="modal-content">
<div class="row modal-header">
<h3 class="modal-title">《太平集团用户隐私条款》</h3>
<span class="kht kht-close-o"></span>
</div>
<div class="modal-body">
<div class="indent" style="font-weight:bold">本平台采取严格的隐私政策,尊重并保护用户隐私,请会员仔细阅读并了解。
</div>
<div class="indent" style="font-weight:bold">1、收集个人信息的目的及其使用
</div>
<div class="indent" style="font-weight:bold">本平台可能将用户所提供的个人信息用于以下一项或多项目的:
</div>
<div class="indent" style="font-weight:bold">1) 帮助您完成注册;
</div>
<div class="indent" style="font-weight:bold">2) 向您提供商品或服务;
</div>
<div class="indent" style="font-weight:bold">3) 向您推送商品及服务相关的消息;
</div>
<div class="indent" style="font-weight:bold">4) 更准确的身份确认;
</div>
<div class="indent" style="font-weight:bold">5) 为您提供安全保障;
</div>
<div class="indent" style="font-weight:bold">6) 改进我们的服务。
</div>
<div class="indent" style="font-weight:bold">2、本平台对个人信息安全的承诺
</div>
<div class="indent" style="font-weight:bold">
为保持数据的准确性,防止擅自入侵及确保个人信息的正确使用,本平台采取了适当的硬件、电子及管理措施以保障本平台收集个人资料的保密性。通过内部安全管理规范、技术手段、加密处理等各种措施保证信息安全并承诺不对个人信息进行非法处理。
</div>
<div class="indent" style="font-weight:bold">3、本平台所收集的信息
</div>
<div class="indent" style="font-weight:bold">个人信息包括但不限于:
</div>
<div class="indent" style="font-weight:bold">1) 您提供的信息
</div>
<div class="indent" style="font-weight:bold">(1)您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如姓名、证件类型和证件号码、电话号码、电子邮件、联系地址、职业等。
</div>
<div class="indent" style="font-weight:bold">(2)您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。
</div>
<div class="indent" style="font-weight:bold">2) 我们获取的您的信息
</div>
<div class="indent" style="font-weight:bold">
为使本平台服务更加贴合用户的需求,了解产品的适配性、识别账号的异常状态等,我们会收集、汇总、记录的信息,例如日志信息、设备信息、位置信息等。
</div>
<div class="indent" style="font-weight:bold">4、如何查询或修改用户的个人信息
</div>
<div class="indent" style="font-weight:bold">用户可在“我的”或用户中心项下的“个人信息”中查询并修改个人信息。每当用户的个人信息有所变化时,应当及时更新。
</div>
<div class="indent" style="font-weight:bold">5、保护用户的隐私权
</div>
<div class="indent" style="font-weight:bold">
本平台完全遵守相关法律条例的要求,确保用户隐私。本平台会将个人信息的收集和使用限制在必须范围之内,以便管理业务、为用户提供最高质量的服务以及提供各项优惠信息。用户知悉并不可撤销地授权以下事宜:本平台所属太平集团(官网:http://www.cntaiping.com/)及其关联公司,可以收集、整理、分析、使用及保存您的个人信息,并可在太平集团及其关联公司内部相互提供、分析和使用,还可基于为您提供服务而与第三方合作,将您的个人信息提供给第三方使用,例如将您的个人信息提供给第三方进行身份认证。为确保用户信息的安全,太平集团及其关联公司对上述信息负有保密义务,并采取合理措施保证信息安全。如果用户不希望收到第三方推送的信息,不希望用户个人信息被除太平集团及其关联公司外的其他第三方使用,可以在提供个人信息时或其他任何时候向本平台明示告知,本平台将不会将明示的客户信息交给任何第三方,但若因此导致用户无法使用本平台的所有或部分服务,本平台不承担任何责任。如涉及个人信息隐私投诉,可致电中国太平官方热线95589。
</div>
<div class="indent" style="font-weight:bold">6、隐私政策的更改
</div>
<div class="indent" style="font-weight:bold">
一旦本平台更改了隐私申明,将采用在网站、APP公告或站内消息等方式通知用户修改、增加或删减的内容,不承担事先单独通知义务。一经本平台通过上述方式通知,即视为上述内容已经通知到用户。若用户在本协议及各类规则变更后继续使用本平台服务的,视为用户已仔细认真阅读、充分理解并同意接受修改后的隐私声明。
</div>
</div>
</div>
</div>
</div>`);
$('#ysxyContent').on('click', 'span.kht-close-o', () => {
$('body').css('overflow', '');
$('body').css('position', '');
$('body').css('top', '');
$('body').css('bottom', '');
$('body').css('left', '');
$('body').css('right', '');
$('#ysxyContent').hide();
});
}());
/* eslint-disable no-irregular-whitespace */
import fetch from './fetch';
import { Toast } from './toast';
import config from './config';
import '../pages/style/downloadInwx.scss';
require('../assets/js/gt.js');
// eslint-disable-next-line func-names
(function () {
// eslint-disable-next-line global-require
const logoImg = require('../assets/images/logo.png');
$('body').append(`<div class="share-download-wx"><div class="nav down-top row">
<div class="row nav-left">
<img src=${logoImg} class="logo-small" />
<div class="col">
<h3 class="font-size-24 font-color-ccc" style="line-height: 1.1">太平通</h3>
<p class="font-size-24 font-color-ccc" style="line-height: 1.1">太平生活 一触即通</p>
</div>
</div>
<button class="btn download font-color-white bg-color-blue">下载</button>
</div></div>`);
$('.share-download-wx').append(`<div class="nav down-bottom row">
<div class="row nav-left">
<img src=${logoImg} class="logo-small" />
<div class="col">
<h3 class="font-size-24 font-color-ccc" style="line-height: 1.1">太平通</h3>
<p class="font-size-24 font-color-ccc" style="line-height: 1.1">太平生活 一触即通</p>
</div>
</div>
<button class="btn download font-color-white bg-color-blue">下载</button>
</div>`);
$('.share-download-wx').append(`<div id="dialogSignIn" class="sign-up-content">
<div class="dialog-overlay"></div>
<div class="dialog-content"></div>
</div>`);
$('body').append(`<div id="xyContent">
<div class="modal-content">
<div class="row modal-header">
<h3 class="modal-title">《太平集团用户服务协议》</h3>
<span class="kht kht-close-o"></span>
</div>
<div class="modal-body">
<div class="indent">
欢迎注册成为中国太平保险集团有限责任公司(以下简称“太平集团”)用户,请您注册前仔细阅读本协议,勾选“我已阅读并同意《太平集团用户服务协议》(本平台用户注册协议)”,当您点击“同意”按钮即表示您确认完全理解本协议内容并自愿遵守本协议。
</div>
<div class="indent">
太平集团用户服务由太平集团及其关联公司(包括但不限于太平人寿保险有限公司、太平财产保险有限公司、太平养老保险股份有限公司、太平金融服务有限公司、太平金融科技有限公司,以下同)提供,服务内容为保单基础服务、增值服务、保险服务、生态服务等各平台实际提供服务。自您完成注册起,本协议即在您与太平集团及其关联公司间生效,您在本平台的注册账户亦可在太平集团统一身份认证支持的相关平台登录使用。您在本平台完成注册后,将同时成为太平集团会员,享受更多会员服务。
</div>
<div class="indent">
如您不同意本协议的部分或全部内容,请不要注册本平台账号,使用本平台服务。本协议自您确认同意之日起实施。
</div>
<div class="indent">
用户在此确认知悉并同意本平台有权根据需要不时修改、增加或删减本协议。本平台将采用在网站、APP公告或站内消息等方式通知用户修改、增加或删减的内容,不再向用户个别通知。一经本平台通过上述方式通知,即视为上述内容已经通知到用户。若用户在本协议及各类规则变更后继续使用本平台服务的,视为用户已仔细认真阅读、充分理解并同意接受修改后的服务协议及各类规则。太平集团及其关联公司保留中止、终止或限制用户继续使用本平台服务的权利,但该等中止、终止或限制行为并不豁免用户已经进行的交易下所应承担的责任。
</div>
<div class="indent" style="font-weight: bold">
第一条 用户须知
</div>
<div class="indent">
1、注册者资格
</div>
<div class="indent">
您确认,在您完成注册程序或使用本平台服务时,您应当是具备完全民事行为能力的自然人、法人或其他组织。若您不具备前述主体资格,则您及您的监护人应承担因此而导致的一切后果。
</div>
<div class="indent">
2、用户信息
</div>
<div class="indent">
(1)在完成注册、激活或验证流程时,您应当按照相应页面的提示提供您的身份信息及资料,以使之真实、及时、完整和准确;
</div>
<div class="indent">
(2)当您的身份信息及资料发生变化时,您应当及时更新并准确提供您的身份信息及资料。
</div>
<div class="indent">3、账户安全</div>
<div class="indent">
(1)您应对您在本平台的登录名和密码保密,且须对您在该登录名和密码下发生的所有活动(包括但不限于发布信息、点击同意或提交购买、接受各类产品或服务等)承担责任。
</div>
<div class="indent">
(2)您了解并同意:如发现任何人未经授权使用您的本平台登录名和密码,您应当立即通知本平台,授权本平台经过必要身份识别措施后更改密码或作出其他应对措施。但本平台不会对因您未能遵守本款规定而发生的任何损失负责。无论使用您的本平台登录名和密码登录并使用本平台的是否为您本人,该等行为之后果均由您和实际操作者承担连带责任。
</div>
<div class="indent">4、账户管理
</div>
<div class="indent">
除非有法律规定或司法裁判,否则您的登录名和密码不得以任何方式转让、赠予或继承。
</div>
<div class="indent" style="font-weight: bold">第二条 用户的权利和义务
</div>
<div class="indent">
1、在遵守本协议的前提下,您将享有本平台提供的用户服务,并将收到本平台最新的优惠产品和服务的相关信息。
</div>
<div class="indent">
2、用户应保证其提供的个人资料的真实、准确、完整、有效,如有变更,应及时通知本平台并按照本平台的要求办理变更手续。如用户未按照本平台的规定提交相关真实、有效的信息,或者本平台有合理的理由怀疑用户提交的信息为错误、虚假或不完整的,本平台有权拒绝为用户提供服务。因用户提交的信息错误、虚假或不完整对本平台或第三方造成的全部损失由用户承担。
</div>
<div class="indent">
3、用户不得通过本平台从事任何违法行为(包括但不限于发布违法或破坏性的信息等),不得干扰平台系统的正常运作。
</div>
<div class="indent">
4、用户应对与用户本平台账户绑定的银行卡账户拥有合法的使用权,如用户因故对银行卡账号丧失使用权的,则本平台可停止为用户提供服务,同时,用户可以以其另外提供的有效银行卡账户向平台申请更换用户本平台账户。
</div>
<div class="indent">
5、用户必须提供真实、准确、完整的资料,并且授予本平台基于提高服务的目的,对其提供资料的真实性进行第三方校验的权利。
</div>
<div class="indent">
6、在未经本平台事先书面同意的情况下,不以复制、传播等任何方式使用本平台上展示的资料、信息或数据。
</div>
<div class="indent">
7、因用户违反本协议造成本平台损失的,用户应当承担对本平台全部损失(包括直接损失、间接损失)的赔偿责任。
</div>
<div class="indent">
8、无论本协议是否存在约定,因用户过错造成本平台损失的,用户应当承担对本平台全部损失(包括直接损失、间接损失)的赔偿责任。
</div>
<div class="indent" style="font-weight: bold">第三条  本平台的权利与义务</div>
<div class="indent">
1、本平台有权根据用户所提供注册资料的真实性、准确性、完整性、有效性以及是否符合本公司规定的其他条件,决定用户的注册成功与否。
</div>
<div class="indent">
2、本平台有权基于单方独立判断,在其认为可能发生危害交易安全等情形时,不经通知而先行暂停、中断或终止向用户提供本协议项下的全部或部分用户服务(包括收费服务),且无需对用户或任何第三方承担任何责任。前述情形包括但不限于:
</div>
<div class="indent">
1)本平台认为用户提供的个人资料不具有真实性、准确性、有效性或完整性;
</div>
<div class="indent">
2)本平台发现异常交易或有疑义或有违法之虞时;
</div>
<div class="indent">
3)本平台认为用户账户涉嫌洗钱、套现、传销、被冒用或本公司认为有风险之情形;
</div>
<div class="indent">
4)本平台认为用户已经违反本协议中规定的各类规则及要求;
</div>
<div class="indent">
5)用户在使用本平台收费服务时未按规定平台支付相应的服务费用;
</div>
<div class="indent">
6)用户本平台账户已连续三年未实际使用。
</div>
<div class="indent">
7)其他本平台合理认为应当先行暂停、中断或终止向用户提供本协议项下的全部或部分用户服务的情形。
</div>
<div class="indent">
3、本平台有权基于交易安全等方面的考虑不时设定涉及交易的相关事项,包括但不限于交易限额、交易次数等。
</div>
<div class="indent">
4、用户存在任何恶意诋毁或损害本平台声誉、攻击本平台相关系统、利用本平台用户身份从事违反国家法律法规活动等行为的,本平台有权单方面终止用户的权利,并保留追究用户法律责任的权利。
</div>
<div class="indent">
5、本平台在法律范围内做好平台服务、维护及管理相关工作,不得从事任何违法行为(包括但不限于发布违法或破坏性的信息等)。
</div>
<div class="indent" style="font-weight: bold">第四条 服务费用</div>
<div class="indent">
1、当用户使用本平台提供的服务时,平台会向用户收取相关平台服务费用。各项服务费用详见本平台所列之收费方式说明。本平台保留单方面制定及调整服务费用的权利,新服务费用的生效时间以本平台将来公告中所述的时间为准。
</div>
<div class="indent">
2、用户在使用本平台服务过程中(如充值或取现等)可能需要向第三方机构(如银行或第三方支付公司等)支付一定的费用,具体收费标准详见第三方机构网站相关页面,或本平台的提示。用户与第三方机构之间就费用支付事项产生的纠纷与本平台无关。
</div>
<div class="indent" style="font-weight: bold">第五条   隐私条款</div>
<div class="indent">
本平台采取严格的隐私政策,尊重并保护用户隐私,请会员仔细阅读并了解。
</div>
<div class="indent">1、收集个人信息的目的及其使用
本平台可能将用户所提供的个人信息用于以下一项或多项目的:
</div>
<div class="indent">1) 帮助您完成注册
</div>
<div class="indent">2) 向您提供商品或服务
</div>
<div class="indent">3) 向您推送商品及服务相关的消息
</div>
<div class="indent">4) 更准确的身份确认
</div>
<div class="indent">5) 为您提供安全保障;
</div>
<div class="indent">6) 改进我们的服务。
</div>
<div class="indent">2、本平台对个人信息安全的承诺
</div>
<div class="indent">
为保持数据的准确性,防止擅自入侵及确保个人信息的正确使用,本平台采取了适当的硬件、电子及管理措施以保障本平台收集个人资料的保密性。通过内部安全管理规范、技术手段、加密处理等各种措施保证信息安全并承诺不对个人信息进行非法处理。
</div>
<div class="indent">3、本平台所收集的资料
</div>
<div class="indent">个人信息包括但不限于:</div>
<div class="indent">1) 您提供的信息
</div>
<div class="indent">
(1)您在注册账户或使用我们的服务时,向我们提供的相关个人信息,例如姓名、证件类型和证件号码、电话号码、电子邮件、联系地址、职业等。
</div>
<div class="indent">
(2)您通过我们的服务向其他方提供的共享信息,以及您使用我们的服务时所储存的信息。
</div>
<div class="indent">3) 我们获取的您的信息
</div>
<div class="indent">
为使本平台服务更加贴合用户的需求,了解产品的适配性、识别账号的异常状态等,我们会收集、汇总、记录的信息,例如日志信息、设备信息、位置信息等。
</div>
<div class="indent">4、如何查询或修改用户的个人信息
</div>
<div class="indent">
用户可在“我的”或用户中心项下的“个人信息”中查询并修改个人信息。每当用户的个人信息有所变化时,应当及时更新。
</div>
<div class="indent">5、保护用户的隐私权
</div>
<div class="indent">
本平台完全遵守相关法律条例的要求,确保用户隐私。本平台会将个人信息的收集和使用限制在必须范围之内,以便管理业务、为用户提供最高质量的服务以及提供各项优惠信息。用户知悉并不可撤销地授权以下事宜:本平台所属太平集团(官网:http://www.cntaiping.com/)及其关联公司,可以收集、整理、分析、使用及保存您的个人信息,并可在太平集团及其关联公司内部相互提供、分析和使用,还可基于为您提供服务而与第三方合作,将您的个人信息提供给第三方使用,例如将您的个人信息提供给第三方进行身份认证。为确保用户信息的安全,太平集团及其关联公司对上述信息负有保密义务,并采取合理措施保证信息安全。如果用户不希望收到第三方推送的信息,不希望用户个人信息被除太平集团及其关联公司外的其他第三方使用,可以在提供个人信息时或其他任何时候向本平台明示告知,本平台将不会将明示的客户信息交给任何第三方,但若因此导致用户无法使用本平台的所有或部分服务,本平台不承担任何责任。如涉及个人信息隐私投诉,可致电中国太平官方热线95589。
</div>
<div class="indent">6、隐私政策的更改</div>
<div class="indent">
一旦本平台更改了隐私申明,将采用在网站、APP公告或站内消息等方式通知用户修改、增加或删减的内容,不承担事先单独通知义务。一经本平台通过上述方式通知,即视为上述内容已经通知到用户。若用户在本协议及各类规则变更后继续使用本平台服务的,视为用户已仔细认真阅读、充分理解并同意接受修改后的隐私声明。
</div>
<div class="indent" style="font-weight: bold">第六条  除外责任
</div>
<div class="indent">
1、因用户自身的原因导致的任何损失或责任,由用户自行负责,本平台不承担任何责任。本平台不承担责任的情形包括但不限于:
</div>
<div class="indent">
1)用户未按照本协议或本平台公布的规则进行操作导致的任何损失或责任;
</div>
<div class="indent">
2)用户使用未经认证的银行卡或使用非用户本人的银行卡,用户的银行卡被冻结、挂失等导致的任何损失或责任;
</div>
<div class="indent">
3)用户本平台账户及银行账户内余额不足导致的任何损失或责任;
</div>
<div class="indent">
4)其他非因本平台过错导致的损失及责任。
</div>
<div class="indent">
2、在任何情况下,对于用户使用涉及由第三方提供相关服务的责任由该第三方承担,本平台不承担任何责任。该等情形包括但不限于:
</div>
<div class="indent">
1)因银行、第三方支付公司等第三方未按照用户和/或本公司指令进行操作引起的任何损失或责任;
</div>
<div class="indent">
2)因银行、第三方支付公司等第三方原因导致资金未能及时到账而引起的任何损失或责任;
</div>
<div class="indent">
3)因银行、第三方支付公司等第三方对交易限额或次数限制而引起的任何损失或责任;
</div>
<div class="indent">
4)因其他第三方的行为或原因导致的任何损失或责任。
</div>
<div class="indent">
3、在任何情况下,本平台均不对由于信息网络正常的设备维护、信息网络连接故障、手机、通讯或其他系统的故障、电力故障、罢工、暴乱、起义、骚乱、火灾、洪水、风暴、爆炸、战争、政府行为、司法行政机关的命令或第三方的不作为而造成的不能服务或延迟服务承担责任;
</div>
<div class="indent">
4、为了提高服务质量,本平台可能暂停服务以调整或升级系统。在暂停服务前,本平台将在网站、APP等渠道提前公告暂停服务的时间。在任何情况下,本平台无须为暂停用户服务承担违约责任。
</div>
<div class="indent">
5、用户经由本平台上的服务而使用、下载或取得任何资料,应由用户自行考量且自负风险,因资料的下载而导致的任何损失由用户自行承担。
</div>
<div class="indent" style="font-weight: bold">第七条  风险提示</div>
<div class="indent">
1、用户了解并认可,任何通过本平台进行的交易并不能避免以下风险的产生,本平台不能也没有义务为如下风险负责:
</div>
<div class="indent">
1)宏观经济风险:因宏观经济形势变化,可能引起价格等方面的异常波动,用户有可能遭受损失;
</div>
<div class="indent">
2)政策风险:有关法律、法规及相关政策、规则发生变化,可能引起价格等方面异常波动,用户有可能遭受损失;
</div>
<div class="indent">
3)违约风险:因其他交易方无力或无意愿按时足额履约,用户有可能遭受损失;
</div>
<div class="indent">
4)利率风险:市场利率变化可能对购买或持有产品的实际收益产生影响;
</div>
<div class="indent">
5)操作风险:任一方使用的计算机系统被第三方侵入、宕机,或火灾、恐怖攻击灾难发生等,用户有可能遭受损失;
</div>
<div class="indent">
6)因用户的过错导致的任何损失,该过错包括但不限于:决策失误、操作不当、遗忘或泄露密码、密码被他人破解、用户委托他人代理交易时他人恶意或不当操作而造成的损失。
</div>
<div class="indent">
7)其他非因本平台过错导致的风险。
</div>
<div class="indent">
2、本平台不对任何用户及/或任何交易提供任何担保或条件,无论是明示还是默示。本平台不能也不试图对用户发布的信息进行实质控制,对该等信息,本平台不承担任何形式的证明、鉴定服务。本平台不能完全保证平台内容的真实性、充分性、可靠性、准确性、完整性和有效性,并且无需承担任何由此引起的法律责任。用户应基于自己的独立判断进行交易,用户应对其作出的判断承担全部责任,本平台不对用户的判断导致的结果承担任何责任。
</div>
<div class="indent">
3、以上并不能揭示用户通过本平台所进行交易的全部风险及市场的全部情形。用户在做出交易决策前,应全面了解相关交易,谨慎决策,并自行承担全部风险。
</div>
<div class="indent" style="font-weight: bold">第八条  知识产权保护条款
</div>
<div class="indent">
1、本平台上提供的所有内容(包括但不限于文字、音频、视频、图片、图表、广告、本平台向用户发送的电子邮件)的知识产权归本平台及相关权利人所有。
</div>
<div class="indent">
2、除另有声明外,本平台提供服务时所依托的软件著作权和专利权归本平台及相关权利人所有。
</div>
<div class="indent">
3、未经本平台授权,用户不得以任何方式擅自修改、复制、存储、传送、抄袭、分发上述内容。
</div>
<div class="indent">
4、未经本平台授权,用户不得将本平台包含的任何内容用作商业或其它公开用途。任何未经本平台授权对本平台内容的使用均属于违法行为。
</div>
<div class="indent" style="font-weight: bold">第九条 法律适用</div>
<div class="indent">
1、本协议的订立、生效、履行、解释以及由此产生的所有事项均适用中华人民共和国法律;
</div>
<div class="indent">
2、本协议中的部分条款无效,不影响其它条款的效力。若上述无效条款构成本协议目的之条款或核心条款,则该条款应被尽可能接近各方意图、能够保留本协议要求的目的且为有效的新条款所取代。在此情况下,本协议的其它条款仍然有效。
</div>
<div class="indent" style="font-weight: bold">第十条 争议解决
</div>
<div class="indent">
凡因履行本协议所引起的任何争议,您和太平集团双方同意首先以友好协商的方式解决。协商不成的,任一方均可向太平集团所在地有管辖权的人民法院提起诉讼。争议解决期间,未涉争议的条款双方应当继续履行。
</div>
</div>
</div>
</div>`);
// 绑定邀请人
const captchaServer = 'http://api.geetest.com';
let activeCaptchaObj = null;
let secondInterval = null;
let referralUserId = '';
let username = '';
let sourceNew = '';
let organFlag = '';
let organId = '';
let organName = '';
let utmCampaign = '';
let utmSource = '';
let utmMedium = '';
let utmTerm = '';
let utmContent = '';
const locationUrl = window.location.search;
let downloadHref = '';
function getInfo() {
const theRequest = {};
if (locationUrl.indexOf('?') !== -1) {
const str = locationUrl.substr(1);
const strs = str.split('&');
strs.forEach((ele) => {
const arr = ele.split('=');
// eslint-disable-next-line prefer-destructuring
theRequest[arr[0]] = arr[1];
});
}
if (theRequest.userId) {
referralUserId = theRequest.userId;
}
if (theRequest.username) {
username = decodeURIComponent(theRequest.username);
}
if (theRequest.utm_campaign) {
utmCampaign = decodeURIComponent(theRequest.utm_campaign);
}
if (theRequest.utm_source) {
utmSource = decodeURIComponent(theRequest.utm_source);
}
if (theRequest.utm_medium) {
utmMedium = decodeURIComponent(theRequest.utm_medium);
}
if (theRequest.utm_term) {
utmTerm = decodeURIComponent(theRequest.utm_term);
}
if (theRequest.utm_content) {
utmContent = decodeURIComponent(theRequest.utm_content);
}
const pathKey = decodeURIComponent(theRequest.pathKey);
if (theRequest.source) {
sourceNew = theRequest.source;
if (sourceNew !== 'undefind' && sourceNew !== 'null' && sourceNew !== '') {
sourceNew = theRequest.source;
} else {
sourceNew = '2';
}
}
if (pathKey !== 'undefined') {
const params = {
url: '/campaignsms/organization/getAppendPath',
data: {
pathKey: theRequest.pathKey,
},
};
fetch.post(params).then((res) => {
if (res && res.organId) {
organFlag = res.organFlag;
organId = res.organId;
organName = res.organName;
if ((organId.substr(0, 1) === '1' || organId.substr(0, 5) === 'dept_' || organId.substr(0, 4) === 'rsnq') && res.affiliateCompany === '01') {
username = '太平人寿';
} else if ((organId.substr(0, 2) === '03')) {
username = '太平财险';
// eslint-disable-next-line no-empty
} else if (organId.substr(0, 9) === 'tcnq1003') {
username = '太平财险(内勤)';
} else if (organId.substr(0, 7) === 'yl1024') {
username = '太平养老';
} else {
username = organName;
}
}
});
}
sourceNew = '';
downloadHref = `${config.fileUrl[config.ENV]}/static/download/?${utmCampaign ? `utm_campaign=${utmCampaign}` : ''}${utmSource ? `&utm_source=${utmSource}` : ''}${utmMedium ? `&utm_medium=${utmMedium}` : ''}${utmTerm ? `&utm_term=${utmTerm}` : ''}${utmContent ? `&utm_content=${utmContent}` : ''}#xiaZaiAPP`;
}
getInfo();
// 控制下载按钮
function initNeedDownload() {
$('.nav.down-top').css('visibility', 'visible');
$('.nav.down-bottom').css('visibility', 'visible');
}
if (!config.isKhtAPP) {
initNeedDownload();
}
function watchScroll(scrollTop) {
if (scrollTop > 150) {
$('.nav.down-bottom').addClass('show');
$('.nav.down-top').addClass('di');
} else if (scrollTop <= 150) {
$('.nav.down-bottom').removeClass('show');
$('.nav.down-top').removeClass('di');
}
}
// 修改下载效果展示
$(window).on('scroll', () => {
const scrollTop = $(window).scrollTop();
watchScroll(scrollTop);
});
$('body').on('scroll', () => {
const scrollTop = $('body').scrollTop();
watchScroll(scrollTop);
});
function restKeyWords() {
let seconds = 60;
$('#getKeywords').text(`${seconds}s后重新获取`);
$('#getKeywords').attr('disabled', 'true');
secondInterval = setInterval(() => {
if (seconds > 1) {
seconds -= 1;
$('#getKeywords').text(`${seconds}s后重新获取`);
} else {
$('#getKeywords').text('获取验证码');
$('#getKeywords').attr('disabled', 'false');
clearInterval(secondInterval);
}
}, 1000);
}
// 获取手机验证码接口
function sendMobileVeryCode() {
const phoneNumber = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const params = {
url: '/userms/auth/sendMobileVeryCode',
data: {
phone: phoneNumber,
type: '17',
internatCode,
},
};
fetch.post(params).then((res) => {
if (res && res.shortmsgVerycodeTimeout) {
restKeyWords();
}
});
}
// 验证短信验证码
function saveNewPersion() {
const recommendMobile = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const code = $('input[name="keywords"]').val();
const params = {
url: '/campaignsms/getRewardForInvit/saveNewPersion',
data: {
code,
recommendMobile,
referralUserId,
type: '17',
internatCode,
organFlag: organFlag || '0',
organId: organId || '',
organName: organName || '',
registSource: sourceNew,
},
errorFuc: () => {
if (secondInterval) {
clearInterval(secondInterval);
}
window.location.href = downloadHref;
},
};
fetch.post(params).then(() => {
if (secondInterval) {
clearInterval(secondInterval);
}
window.location.href = downloadHref;
}).catch(() => {
if (secondInterval) {
clearInterval(secondInterval);
}
window.location.href = downloadHref;
});
}
function handlerPopupMobile(captchaObj) {
// 将验证码加到id为captcha的元素里
// captchaObj.appendTo('#popup-captcha-mobile');
// 拖动验证成功后两秒(可自行设置时间)自动发生跳转等行为
captchaObj.onReady(() => {
captchaObj.verify();
}).onSuccess(() => {
const phoneNumber = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const validate = captchaObj.getValidate();
const params = {
url: '/userms/captchaV3/validate',
data: {
type: 17,
accountName: phoneNumber,
internatCode,
geetestChallenge: validate.geetest_challenge,
geetestSeccode: validate.geetest_seccode,
geetestValidate: validate.geetest_validate,
},
};
fetch.post(params).then((res) => {
if (res && res.status === 'success') {
sendMobileVeryCode();
} else if (res && res.status === 'fail') {
Toast('验证失败', 2000);
}
});
});
captchaObj.onClose(() => {
// 用户把验证关闭了,这时你可以提示用户需要把验证通过后才能进行后续流程
Toast('验证通过后才能进行发送验证码', 2000);
});
activeCaptchaObj = captchaObj;
}
function needLoign() {
// eslint-disable-next-line global-require
const logo = require('../assets/images/big_log.png');
$('#dialogSignIn').show(200);
$('#dialogSignIn .dialog-content').append(`<div class="sign-up">
<div class="row sign-up-header">
<span class="kht kht-close-o"></span>
</div>
<div class="row sign-up-logo">
<img src=${logo} />
<div class="col logo-dec">
<p>太平生活</p>
<p>一触即通</p>
</div>
</div>
<div class="sign-up-welcome font-size-28 font-color-999" style="text-align: center;">
${username},邀请您使用太平通
</div>
<div class="sign-up-input">
<div class="row line">
<select class="outline-select" name="internatCode">
<option value="0086">中国大陆(86)</option>
<option value="00852">中国香港(852)</option>
<option value="00853">中国澳门(853)</option>
</select>
<input
name="phoneNumber"
class="outline-input"
maxlength="11"
type="tel"
placeholder="请输入11位手机号码"
/>
</div>
<div class="row line">
<input
name="keywords"
class="outline-input"
maxlength="6"
type="tel"
placeholder="请输入短信验证码"
/>
<button id="getKeywords" class="btn font-color-white bg-color-blue" disabled="true">获取验证码</button>
</div>
</div>
<div class="row sign-up-xy">
<input id="checkXy" class="input-check" value="1" checked="checked" type="checkbox">
<label for="checkXy" class="kht"></label >
<p>我已阅读并同意<span id="readXy">《太平集团用户服务协议》</span></p>
</div>
<button id="downloadNow" class="btn font-size-32 font-color-white bg-color-blue full" disabled="true">立即下载</button>
</div>`);
}
function getKeywords() {
const phoneNumber = $('input[name="phoneNumber"]').val();
const internatCode = $('select[name="internatCode"]').val();
const params = {
url: '/userms/captchaV3/register',
data: {
accountName: phoneNumber,
internatCode,
},
};
fetch.post(params).then((data) => {
const res = JSON.parse(data);
const cfg = {
gt: res.gt,
challenge: res.challenge,
https: true,
product: 'bind',
api_server: captchaServer,
offline: !res.success, // 表示用户后台检测极验服务器是否宕机,一般不需要关注
// 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
};
if (!activeCaptchaObj) {
window.initGeetest(cfg, handlerPopupMobile);
} else {
activeCaptchaObj.verify();
}
});
}
// 控制下载按钮是否可以点击
function watchCanDownload() {
if ($('input[name="keywords"]').val() && $('#checkXy')[0].checked) {
$('#downloadNow').removeAttr('disabled');
} else {
$('#downloadNow').attr('disabled', 'true');
}
}
$('#dialogSignIn').on('click', 'span.kht-close-o', () => {
$('#dialogSignIn').hide();
$('#dialogSignIn .dialog-content').empty();
$('body').css('overflow', '');
$('body').css('position', '');
$('body').css('top', '');
$('body').css('bottom', '');
$('body').css('left', '');
$('body').css('right', '');
$(window).on('scroll', () => {
const scrollTop = $(window).scrollTop();
watchScroll(scrollTop);
});
$('body').on('scroll', () => {
const scrollTop = $('body').scrollTop();
watchScroll(scrollTop);
});
if (secondInterval) {
clearInterval(secondInterval);
}
});
$('#dialogSignIn').on('click', '#getKeywords', () => {
getKeywords();
});
$('#dialogSignIn').on('click', '#downloadNow', () => {
saveNewPersion();
});
$('#dialogSignIn').on('input', 'input[name="keywords"]', () => {
$('input[name="keywords"]').val($('input[name="keywords"]').val().replace(/[^\d]/g, ''));
watchCanDownload();
});
$('#dialogSignIn').on('change', '#checkXy', () => {
watchCanDownload();
});
$('#dialogSignIn').on('input', 'input[name="phoneNumber"]', () => {
$('input[name="phoneNumber"]').val($('input[name="phoneNumber"]').val().replace(/[^\d]/g, ''));
if ($('input[name="phoneNumber"]').val()) {
$('#getKeywords').removeAttr('disabled');
} else {
$('#getKeywords').attr('disabled', 'true');
}
});
$('#dialogSignIn').on('click', 'span#readXy', () => {
$('#xyContent').show(300);
});
$('#xyContent').on('click', 'span.kht-close-o', () => {
$('#xyContent').hide();
});
// 下载逻辑
window.onDownLoad = () => {
if (username || organName) {
needLoign();
$(window).unbind('scroll');
$('body').unbind('scroll');
$('body').css('overflow', 'hidden');
$('body').css('position', 'fixed');
$('body').css('top', '0');
$('body').css('bottom', '0');
$('body').css('left', '0');
$('body').css('right', '0');
} else {
window.location.href = downloadHref;
}
};
// 下载绑定
$('.download').on('click', () => {
window.onDownLoad();
});
}());
/* eslint-disable func-names */
import fetch from './fetch';
import config from './config';
// 微信分享
export default function shareInwx(wxCommonShareInfo) {
const params = {
url: '/commonms/weixin/sign',
data: {
url: window.location.href.split('#')[0],
},
noLoading: true,
};
fetch.post(params).then((res) => {
if (res) {
const { noncestr, signature, timestamp } = res;
const { wx } = window;
wx.config({
appId: config.ENV === 'SIT' ? 'wx23545612bdc40140' : 'wx2766839a4991bd6b',
timestamp, // 必填,生成签名的时间戳
nonceStr: noncestr, // 必填,生成签名的随机串
signature, // 必填,签名
jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'], // 必填,需要使用的JS接口列表
});
// eslint-disable-next-line prefer-arrow-callback
wx.ready(function () {
wx.updateAppMessageShareData({ // 分享好友
title: wxCommonShareInfo.title,
desc: wxCommonShareInfo.content,
link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: wxCommonShareInfo.imgUrl, // 分享图标
success() {
// 用户点击了分享后执行的回调函数
},
});
wx.updateTimelineShareData({ // 分享朋友圈
title: wxCommonShareInfo.title,
link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: wxCommonShareInfo.imgUrl, // 分享图标
success() {
// 用户点击了分享后执行的回调函数
},
});
});
// eslint-disable-next-line prefer-arrow-callback
wx.error(function (errMsg) {
// eslint-disable-next-line no-console
console.log(errMsg);
});
}
});
}
export function Toast(msg, duration) {
// eslint-disable-next-line no-restricted-globals
const durationLocal = isNaN(duration) ? 3000 : duration;
const m = document.createElement('div');
m.id = 'Toast';
m.innerHTML = msg;
m.style.cssText = 'opacity: 0.7;padding: 7px 10px; -webkit-transform: translateX(-50%);transform: translateX(-50%);color: rgb(255, 255, 255);line-height: 20px;text-align: center;border-radius: 5px;position: fixed;top: 40%;left:50%;z-index: 999999;background: rgb(0, 0, 0);font-size: 12px;';
document.body.appendChild(m);
setTimeout(() => {
const d = 0.5;
m.style.webkitTransition = `-webkit-transform ${d}s ease-in, opacity ${d}s ease-in`;
m.style.opacity = '0';
setTimeout(() => {
if ($('#Toast').length > 0) {
$('#Toast').remove();
}
}, d * 1000);
}, durationLocal);
}
export function ToastHide() {
if ($('#Toast').length > 0) {
$('#Toast').remove();
}
}
import config from './config';
// 获取token
export function getToken() {
if (config.isAndroidXZ) {
// eslint-disable-next-line no-undef
kht.getTokenAndUserId();
} else if (config.isiOSXZ) {
window.webkit.messageHandlers.getIssureToken.postMessage({});
}
}
/**
* 原生路由跳转
* @param authorization number 1: 需要实名认证
* @param detail string
* @param loginStatus number 1: 登录 0: 不用登录
* @param pageType string RN HTML native
* @param tagUrl string
*/
export function khtAppRouteRequest(authorization, detail,
loginStatus, pageType, tagUrl) {
if (config.isAndroidXZ) {
// eslint-disable-next-line no-undef
kht.khtAppRouteRequest(
authorization,
detail,
loginStatus,
pageType,
tagUrl,
);
} else if (config.isiOSXZ) {
window.webkit.messageHandlers.khtAppRouteRequest.postMessage({
authorization,
detail,
loginStatus,
pageType,
tagUrl,
});
}
}
/**
* 原生唤起是否登录
*/
export function login() {
if (config.isAndroidXZ) {
// eslint-disable-next-line no-undef
khtAppRouteRequest(0, '', 0, 'native', 'LogIn');
} else if (config.isiOSXZ) {
khtAppRouteRequest(0, '', 0, 'native', 'LogIn');
}
}
/**
* 获取数组对应值
* @param arr
* @param value
*/
export function choiceArr(arr, value, valueName = 'value') {
return arr.findIndex((element) => (element[valueName] === value));
}
/**
* 转base64
* @param {*} img
* @param {*} width
* @param {*} height
*/
export function getBase64Image(img) {
const canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
const ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height);
const dataURL = canvas.toDataURL('image/png');
return dataURL;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
<title>直播:经济学家邵宇上线太平通,看全球疫情下的经济走向</title>
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
</head>
<body>
<div class="inline-show">
<img src="../../assets/images/qr_inline_1.png" class="bg-img"/>
<button id="btnInline" class="btn-inline"></button>
</div>
</body>
</html>
\ No newline at end of file
import './index.scss';
import config from '../../config/config';
import fetch from '../../config/fetch';
import shareInwx from '../../config/shareInwx';
require('../../config/shareDownLoad.js');
require('../../assets/js/shence.js');
const img = new Image();
// eslint-disable-next-line import/no-unresolved
img.src = require('../../assets/images/bg_inline-show_1.png');
img.onload = () => {
$('.inline-show').css('backgroundImage', `url(${img.src})`);
};
$('#btnInline').on('click', () => {
window.location.href = 'https://m.zaojiu.com/V2/action/channel/contentTplife.html';
});
// 分享
const commonShareInfo = {
title: '直播:经济学家邵宇上线太平通,看全球疫情下的经济走向',
imgUrl: 'https://ecustomer.cntaiping.com/static/rn/src/img/pic_weixin_share_three.png',
content: '看直播,更有一波福利赶来',
};
// 微信分享
if (config.isWeixin) {
shareInwx(commonShareInfo);
}
// 计算参与活动人数
function getNewsDetail(newsId) {
const params = {
url: '/campaignsms/essay/queryEssayDetail',
data: {
essayId: newsId,
},
};
return fetch.post(params);
}
getNewsDetail(293);
@import '../style/index.scss';
.inline-show {
background-color: #fff;
background-image: url('../../assets/images/bg_inline-show_1_compressed.png');
background-repeat: no-repeat;
background-size: 100%;
padding-top: 376.94%;
overflow-x: hidden;
position: relative;
.btn-inline {
z-index: 2;
outline: none;
position: absolute;
top: 1936px;
left: 50%;
transform: translateX(-50%);
border: 0;
width: 360px;
height: 90px;
background-color: transparent;
}
.bg-img {
opacity: 0;
position: absolute;
height: 100%;
width: auto;
bottom: 0;
}
}
::-moz-focus-inner {
border-color: transparent;
}
.dialog {
position: fixed;
left: 0;
top: 0;
z-index: 10001;
width: 100%;
height: 100%;
}
.dialog-overlay {
position: absolute;
top: 0;
left: 0;
z-index: 10002;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
.dialog-content {
position: absolute;
top: 50%;
left: 50%;
z-index: 10003;
width: 72%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
line-height: 1.5;
background-color: rgba(255, 255, 255, 0.95);
border-radius: 10px;
}
.dialog-content * {
box-sizing: border-box;
-webkit-box-sizing: border-box;
margin: 0;
padding: 0;
border: 0;
outline: none;
-moz-user-select: none;
-webkit-tap-highlight-color: transparent;
font-family: Helvetica;
font-size: 15px;
}
.dialog-btn, .dialog-btn-hl {
position: relative;
display: inline-block;
height: 44px;
line-height: 44px;
color: #007aff;
font-size: 17px;
font-weight: 400;
cursor: pointer;
text-decoration: none;
background-color: transparent;
}
.dialog-btn:hover, .dialog-btn:active, .dialog-btn-hl:hover, .dialog-btn-hl:active {
background-color: rgba(0, 0, 0, 0.05);
}
.dialog-content-hd {
position: relative;
padding: 20px 20px 10px;
margin-bottom: -25px;
text-align: center;
}
.dialog-content-hd .dialog-content-title {
font-size: 18px;
font-weight: 400;
color: #333;
}
.dialog-content-hd .dialog-btn-close {
display: block;
width: 26px;
height: 26px;
overflow: hidden;
position: absolute;
top: 18px;
right: 15px;
cursor: pointer;
background-color: transparent;
}
.dialog-content-hd .dialog-btn-close span {
display: none;
}
.dialog-content-hd .dialog-btn-close:before, .dialog-content-hd .dialog-btn-close:after {
content: "";
display: block;
width: 18px;
height: 1px;
background-color: #808080;
position: absolute;
top: 13px;
right: 3px;
}
.dialog-content-hd .dialog-btn-close:before {
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.dialog-content-hd .dialog-btn-close:after {
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.btn-cancel {
color: #666666;
}
.dialog-content-bd {
margin: 25px 20px;
color: #666;
text-align: center;
}
.dialog-content-bd p {
padding: 5px 0;
}
.content-scroll {
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.dialog-content-ft {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
position: relative;
font-size: 0;
}
.dialog-content-ft:after {
content: " ";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 1px;
border-top: 1px solid #d5d5d5;
color: #d5d5d5;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scaleY(0.5);
-ms-transform: scaleY(0.5);
transform: scaleY(0.5);
}
.dialog-content-ft .dialog-btn {
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
display: block;
}
.dialog-content-ft .dialog-btn:after {
content: "";
position: absolute;
left: 0;
top: 0;
width: 1px;
height: 100%;
border-left: 1px solid #d5d5d5;
color: #d5d5d5;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scaleX(0.5);
-ms-transform: scaleX(0.5);
transform: scaleX(0.5);
}
.dialog-content-ft .dialog-btn:first-child {
border-bottom-left-radius: 8px;
}
.dialog-content-ft .dialog-btn:first-child:after {
border-left: none;
}
.dialog-content-ft .dialog-btn:last-child {
border-bottom-right-radius: 8px;
}
.dialog-content-ft.stacked {
-webkit-flex-flow: column;
-ms-flex-flow: column;
flex-flow: column;
display: block;
}
.dialog-content-ft.stacked:after {
border: none;
}
.dialog-content-ft.stacked .dialog-btn {
position: relative;
display: block;
width: 100%;
}
.dialog-content-ft.stacked .dialog-btn:after {
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 1px;
border-top: 1px solid #d5d5d5;
color: #d5d5d5;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scaleY(0.5);
-ms-transform: scaleY(0.5);
transform: scaleY(0.5);
}
.dialog-open .dialog-content,
.dialog-open .dialog-overlay,
.dialog-close .dialog-content,
.dialog-close .dialog-overlay {
-webkit-animation-duration: 0.25s;
animation-duration: 0.25s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.dialog-open .dialog-content {
-webkit-animation-name: zoom-in;
animation-name: zoom-in;
}
.dialog-open .dialog-overlay {
-webkit-animation-name: fade-in;
animation-name: fade-in;
}
.dialog-close .dialog-content {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
.dialog-close .dialog-overlay {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
/**-------------------------
* android style
**------------------------*/
[data-style=android] .dialog-content {
box-sizing: content-box;
border-radius: 0;
background-color: white;
}
[data-style=android] .dialog-content-hd {
text-align: left;
padding: 20px 20px 0;
margin-bottom: -10px;
}
[data-style=android] .dialog-content-hd .dialog-btn-close {
top: 15px;
right: 15px;
}
[data-style=android] .dialog-content-bd {
margin: 25px 20px;
text-align: left;
}
[data-style=android] .dialog-content-ft {
display: block;
padding: 8px;
margin-top: -10px;
text-align: right;
}
[data-style=android] .dialog-content-ft:after {
border: none;
}
[data-style=android] .dialog-content-ft .dialog-btn {
display: inline-block;
min-width: 60px;
height: 36px;
line-height: 36px;
overflow: hidden;
padding: 0 13px;
font-size: 16px;
color: #808080;
text-align: center;
border-radius: 2px;
}
[data-style=android] .dialog-content-ft .dialog-btn:after {
border: none;
}
[data-style=android] .dialog-content-ft .dialog-btn-confirm, [data-style=android] .dialog-content-ft .dialog-btn-hl {
color: #00bbd3;
}
[data-style=android] .dialog-content-ft.stacked .dialog-btn {
display: block;
text-align: right;
width: 100%;
}
[data-style=android] .dialog-content-ft-border:before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 1px;
border-top: 1px solid #d5d5d5;
color: #d5d5d5;
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scaleY(0.5);
-ms-transform: scaleY(0.5);
transform: scaleY(0.5);
}
[data-style=android] .ripple {
border-radius: 99999px;
pointer-events: none;
position: absolute;
width: 200px;
height: 200px;
background: rgba(0, 0, 0, 0.5);
opacity: 0;
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
animation: ripple .75s ease-out;
-webkit-animation: ripple .75s ease-out;
}
@-webkit-keyframes ripple {
0% {
-webkit-transform: scale(0);
opacity: .5;
}
100% {
-webkit-transform: scale(2);
opacity: 0;
}
}
@keyframes ripple {
0% {
-webkit-transform: scale(0);
transform: scale(0);
opacity: .5;
}
100% {
-webkit-transform: scale(2);
transform: scale(2);
opacity: 0;
}
}
[data-style=android].dialog-open .dialog-content {
-webkit-animation-name: bounce-in-down;
animation-name: bounce-in-down;
}
[data-style=android].dialog-open .dialog-overlay {
-webkit-animation-name: fade-in;
animation-name: fade-in;
}
[data-style=android].dialog-close .dialog-content {
-webkit-animation-name: bounce-out-up;
animation-name: bounce-out-up;
}
[data-style=android].dialog-close .dialog-overlay {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
/* toast */
.dialog-toast .dialog-overlay {
background-color: transparent;
}
.dialog-toast .dialog-content {
width: 122px;
height: 122px;
border-radius: 10px;
background-color: rgba(0, 0, 0, 0.8);
display: table;
}
.dialog-toast .dialog-content-bd {
margin: 0;
padding: 0;
font-size: 0;
position: relative;
width: 100%;
height: 100%;
display: table-cell;
text-align: center;
vertical-align: middle;
}
.dialog-toast .dialog-content-bd p {
margin: 0;
padding: 0;
}
.dialog-toast .info-icon {
width: 30px;
max-width: 30px;
}
.dialog-toast .info-text {
display: block;
width: 90%;
margin: 12px auto 0;
font-size: 16px;
color: #fff;
}
.dialog-toast.dialog-open .dialog-content,
.dialog-toast.dialog-open .dialog-overlay {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.dialog-toast.dialog-close .dialog-content,
.dialog-toast.dialog-close .dialog-overlay {
-webkit-animation-duration: 0.35s;
animation-duration: 0.35s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.dialog-toast.dialog-open .dialog-content {
-webkit-animation-name: fade-in;
animation-name: fade-in;
}
.dialog-toast.dialog-open .dialog-overlay {
-webkit-animation-name: fade-in;
animation-name: fade-in;
}
.dialog-toast.dialog-close .dialog-content {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
.dialog-toast.dialog-close .dialog-overlay {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
/* notice */
.dialog-notice .dialog-overlay {
background-color: transparent;
}
.dialog-notice .dialog-content {
display: table;
width: auto;
max-width: 85%;
border-radius: 4px;
background-color: rgba(0, 0, 0, 0.8);
}
.dialog-notice .dialog-content-bd {
margin: 0;
font-size: 0;
padding: 10px 15px;
line-height: normal;
}
.dialog-notice .info-icon {
width: 16px;
max-width: 16px;
margin: 0 2px;
vertical-align: middle;
position: relative;
top: -1px;
}
.dialog-notice .info-text {
margin: 0 2px;
font-size: 14px;
color: #fff;
line-height: 1.3;
vertical-align: middle;
}
.dialog-notice.dialog-open .dialog-content,
.dialog-notice.dialog-open .dialog-overlay {
-webkit-animation-duration: 0.1s;
animation-duration: 0.1s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.dialog-notice.dialog-close .dialog-content,
.dialog-notice.dialog-close .dialog-overlay {
-webkit-animation-duration: 0.3s;
animation-duration: 0.3s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.dialog-notice.dialog-open .dialog-content {
-webkit-animation-name: fade-in;
animation-name: fade-in;
}
.dialog-notice.dialog-open .dialog-overlay {
-webkit-animation-name: fade-in;
animation-name: fade-in;
}
.dialog-notice.dialog-close .dialog-content {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
.dialog-notice.dialog-close .dialog-overlay {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
.dialog-notice-bottom .dialog-content {
top: auto;
bottom: 0;
-webkit-transform: translate(-50%, -20px);
-ms-transform: translate(-50%, -20px);
transform: translate(-50%, -20px);
}
.dialog-notice-bottom.dialog-open .dialog-content,
.dialog-notice-bottom.dialog-open .dialog-overlay,
.dialog-notice-bottom.dialog-close .dialog-content,
.dialog-notice-bottom.dialog-close .dialog-overlay {
-webkit-animation-duration: 0.3s;
animation-duration: 0.3s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.dialog-notice-bottom.dialog-open .dialog-content {
-webkit-animation-name: bounce-in-up;
animation-name: bounce-in-up;
}
.dialog-notice-bottom.dialog-close .dialog-content {
-webkit-animation-name: fade-out;
animation-name: fade-out;
}
/**-------------------------
* meida query
**------------------------*/
@media screen and (min-width: 1023px) {
.dialog-content {
max-width: 40%;
}
}
@media screen and (min-width: 767px) {
.dialog-content {
max-width: 60%;
}
}
/**-------------------------
* animate library
**------------------------*/
@-webkit-keyframes zoom-in {
0% {
opacity: 0;
-webkit-transform: translate(-50%, -50%) scale(1.2, 1.2);
}
100% {
opacity: 1;
-webkit-transform: translate(-50%, -50%) scale(1, 1);
}
}
@keyframes zoom-in {
0% {
opacity: 0;
-webkit-transform: translate(-50%, -50%) scale(1.2, 1.2);
transform: translate(-50%, -50%) scale(1.2, 1.2);
}
100% {
opacity: 1;
-webkit-transform: translate(-50%, -50%) scale(1, 1);
transform: translate(-50%, -50%) scale(1, 1);
}
}
@-webkit-keyframes zoom-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
-webkit-transform: translate(-50%, -50%) scale(0.8, 0.8);
}
}
@keyframes zoom-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
-webkit-transform: translate(-50%, -50%) scale(0.8, 0.8);
transform: translate(-50%, -50%) scale(0.8, 0.8);
}
}
@-webkit-keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@-webkit-keyframes fade-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@-webkit-keyframes bounce-in-down {
0% {
opacity: 0;
-webkit-transform: translate(-50%, -75%);
}
100% {
opacity: 1;
-webkit-transform: translate(-50%, -50%);
}
}
@keyframes bounce-in-down {
0% {
opacity: 0;
-webkit-transform: translate(-50%, -75%);
transform: translate(-50%, -75%);
}
100% {
opacity: 1;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
}
@-webkit-keyframes bounce-out-up {
0% {
opacity: 1;
-webkit-transform: translate(-50%, -50%);
}
100% {
opacity: 0;
-webkit-transform: translate(-50%, -75%);
}
}
@keyframes bounce-out-up {
0% {
opacity: 1;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
100% {
opacity: 0;
-webkit-transform: translate(-50%, -75%);
transform: translate(-50%, -75%);
}
}
@-webkit-keyframes bounce-in-up {
0% {
opacity: 0;
-webkit-transform: translate(-50%, 0);
}
80% {
opacity: 1;
-webkit-transform: translate(-50%, -24px);
}
100% {
opacity: 1;
-webkit-transform: translate(-50%, -20px);
}
}
@keyframes bounce-in-up {
0% {
opacity: 0;
-webkit-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
80% {
opacity: 1;
-webkit-transform: translate(-50%, -24px);
transform: translate(-50%, -24px);
}
100% {
opacity: 1;
-webkit-transform: translate(-50%, -20px);
transform: translate(-50%, -20px);
}
}
@-webkit-keyframes bounce-out-down {
0% {
opacity: 1;
-webkit-transform: translate(-50%, -20px);
}
100% {
opacity: 0;
-webkit-transform: translate(-50%, 0);
}
}
@keyframes bounce-out-down {
0% {
opacity: 1;
-webkit-transform: translate(-50%, -20px);
transform: translate(-50%, -20px);
}
100% {
opacity: 0;
-webkit-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
}
@import './index.scss';
.share-download-wx {
.row {
display: flex;
flex-direction: row;
}
.col {
display: flex;
flex-direction: column;
}
.centerX {
justify-content: center;
}
.centerY {
align-items: center;
}
.btn {
padding: 9px 20px;
border-radius: 8px;
border: 0;
&:disabled {
opacity: 0.6;
}
&:focus {
outline: 0;
}
&:active {
opacity: 0.6;
}
&.full {
width: 100%;
padding: 34px 0;
}
}
.bg-color-blue {
background-color: #0E6DCF;
}
.nav {
align-items: center;
justify-content: space-between;
background-color: #000;
opacity:0.7;
padding: 8px 40px 8px 45px;
position: fixed;
left: 0;
right: 0;
visibility: hidden;
z-index: 2;
&.di {
transform: translateY(-56px);
opacity: 0;
}
&.down-top {
top: 0;
transition: transform .6s;
}
&.down-bottom {
bottom: 0;
transform: translateY(100px);
transition: transform .6s;
}
.nav-left {
height: 64px;
align-items: center;
flex: 1;
.logo-small {
height: 100%;
margin-right: 20px;
}
}
&.show {
transform: translateY(0);
opacity: 0.7;
}
}
.sign-up-content {
position: fixed;
height: 100vh;
width: 100%;
top: 0;
z-index: 999;
.dialog-overlay {
position: absolute;
top: 0;
left: 0;
z-index: 10002;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
.dialog-content {
position: absolute;
overflow: scroll;
max-height: 100%;
top: 50%;
left: 50%;
z-index: 10003;
transform: translate(-50%, -50%);
border-radius: 24px;
width: 690px;
background: #fff;
}
}
.sign-up {
padding: 30px;
.sign-up-header {
justify-content: flex-end;
&>span {
font-size: 48px;
}
}
.sign-up-logo {
img {
width: 254px;
height: 74px;
}
.logo-dec {
margin-left: 90px;
width: 200px;
p {
color:#0E6DCF;
font-size: 30px;
&:last-child {
text-align: right;
}
}
}
}
input {
outline: none;
}
.input-check {
margin-right: 10px;
&+label {
position: absolute;
&::before{
display: block;
content: "\e634";
font-size: 32px;
color: #0E6DCF;
}
}
&:checked {
&+label {
&::before{
display: block;
content: "\e636";
font-size: 32px;
color: #0E6DCF;
}
}
}
}
.sign-up-welcome {
margin: 46px 0 60px 0;
}
.sign-up-input {
.line {
justify-content: space-between;
border-bottom: 2px solid #E4E8F4;
padding-bottom: 20px;
margin-bottom: 20px;
.outline-select {
outline: none;
font-size: 32px;
color: #333333;
background: transparent;
}
.outline-input {
flex: 1;
border: 0px;
background: transparent;
font-size: 32px;
color: #B7B7B7;
}
.btn {
font-size: 28px;
}
}
}
.sign-up-xy {
align-items: center;
margin-bottom: 60px;
input[type="checkbox"] {
visibility: hidden;
}
&>p {
font-size: 24px;
color: #666666;
&>span {
font-size: 24px;
color: #0E6DCF;
&:active {
opacity: 0.6;
}
}
}
}
}
#dialogSignIn {
display: none;
}
}
#xyContent {
display: none;
position: absolute;
width: 100%;
height: 100%;
z-index: 1004;
top: 0;
.row {
display: flex;
flex-direction: row;
}
.modal-content {
background-color: #fff;
overflow-y: scroll;
height: 100%;
}
.modal-header {
justify-content: space-between;
border-bottom: 2px solid #e9ecef;
padding: 32px;
}
.modal-body {
padding: 30px;
}
.indent {
font-size: 24px;
text-indent: 48px;
}
}
#ysxyContent {
display: none;
.dialog-content {
border-radius: 10px;
}
.modal-header {
justify-content: space-between;
border-bottom: 2px solid #e9ecef;
padding: 32px;
}
.modal-body {
padding: 30px;
}
.indent {
font-size: 24px;
text-indent: 48px;
}
}
\ No newline at end of file
@import '../../assets/iconfont/iconfont.scss';
@import './dialog.css';
body {
margin: 0;
}
* {
box-sizing: border-box;
}
ul,li {
padding:0;
margin:0;
list-style:none;
}
img {
content: normal !important;
}
p, h3 {
margin: 0;
}
a {
text-decoration: none;
}
.dialog-content-bd {
color: #030303;
}
.dialog-content * {
font-size: 34px;
}
.font-size-{
&16 {
font-size: 16px;
}
&20 {
font-size: 20px;
}
&24 {
font-size: 24px;
}
&26 {
font-size: 26px;
}
&28 {
font-size: 28px;
}
&32 {
font-size: 32px;
}
&36 {
font-size: 36px;
}
&40 {
font-size: 40px;
}
&48 {
font-size: 48px;
}
}
.font-color-{
&333 {
color: #333333;
}
&ccc {
color: #ccc;
}
&999 {
color: #999;
}
&9B9 {
color: #9b9b9b
}
&D120 {
color: #D1202A;
}
&grey {
color: #666666;
}
&drepGrey {
color: #20253C;
}
&white {
color: #fff;
}
&E75 {
color: #E75123;
}
&FF9 {
color: #FF9C0F;
}
&47C {
color: #47C172;
}
}
@import './index.scss';
.sign-up-content {
position: fixed;
height: 100vh;
width: 100%;
top: 0;
z-index: 999;
.row {
display: flex;
flex-direction: row;
}
.dialog-overlay {
position: absolute;
top: 0;
left: 0;
z-index: 10002;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
.dialog-content {
position: absolute;
overflow: scroll;
max-height: 100%;
top: 50%;
left: 50%;
z-index: 10003;
transform: translate(-50%, -50%);
border-radius: 24px;
width: 690px;
background: #fff;
}
}
#ysxyContent {
display: none;
.dialog-content {
border-radius: 10px;
}
.modal-header {
justify-content: space-between;
border-bottom: 2px solid #e9ecef;
padding: 32px;
}
.modal-body {
padding: 30px;
}
.indent {
font-size: 24px;
text-indent: 48px;
}
}
\ No newline at end of file
const path = require('path');
const glob = require('glob');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin=require('copy-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const setMPA = () => {
const entry = {};
const htmlWebpackPlugins = [];
const entryFiles = glob.sync(path.join(__dirname, './src/pages/*/index.js'));
Object.keys(entryFiles).map((index) => {
const entryFile = entryFiles[index];
const match = entryFile.match(/src\/pages\/(.*)\/index\.js/);
const pageName = match && match[1];
entry[pageName] = entryFile;
htmlWebpackPlugins.push(
new HtmlWebpackPlugin({
template: path.join(__dirname, `src/pages/${pageName}/index.html`),
filename: `./pages/${pageName}/index.html`,
chunks: ['commons', pageName, 'jquery'],
inject: true,
minify: false,
})
);
if (pageName === 'anysignpage') {
htmlWebpackPlugins.push(
new CopyWebpackPlugin([
{
from: path.join(__dirname, 'src/pages/anysignpage/libs'),
to: path.join(__dirname, 'dist/pages/anysignpage/libs'),
},
{
from: path.join(__dirname, 'src/pages/anysignpage/css'),
to: path.join(__dirname, 'dist/pages/anysignpage/css'),
},
{
from: path.join(__dirname, 'src/pages/anysignpage/anysignWebInterface.js'),
to: path.join(__dirname, 'dist/pages/anysignpage/anysignWebInterface.js'),
}
])
)
}
});
return {
entry,
htmlWebpackPlugins
};
};
// 入口管理
const { entry, htmlWebpackPlugins } = setMPA();
module.exports = {
entry,
plugins: [
new CleanWebpackPlugin(),
new webpack.ProvidePlugin({ //加载jq
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
})
].concat(htmlWebpackPlugins),
module: {
rules: [
{
test: /\.(png|svg|jpg|gif)$/,
use: [
{
loader: 'url-loader',
options: {
limit: 8192,
outputPath: 'image/',
name: '[hash].[ext]'
}
}
]
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
'file-loader'
]
},
{
test: /\.(csv|tsv)$/,
use: [
'csv-loader'
]
},
{
test: /\.xml$/,
use: [
'xml-loader'
]
},
{
test: /\.(html)$/,
use: {
loader: 'html-loader',
options: {
attrs: ['img:src', 'img:data-src', 'audio:src'],
minimize: true
}
}
},
{
test:/\.js$/,
exclude:/node_modules/,
use: [
'babel-loader',
'eslint-loader'
]
}
]
},
optimization: {
splitChunks: {
minSize: 0,
cacheGroups: {
commons: {
name: 'commons',
chunks: 'all',
minChunks: 2
}
}
}
},
};
\ No newline at end of file
const path = require('path');
const webpack = require('webpack');
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
const commonEntry = common.entry;
const entry = {};
Object.keys(commonEntry)
.forEach((pageName, index) => {
entry[pageName] = [commonEntry[pageName], 'webpack-hot-middleware/client?noInfo=true&reload=true']
})
module.exports = merge(common, {
entry,
mode: 'development',
devtool: 'source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
],
output: {
filename: 'js/[name].bundle.js',
path: path.resolve(__dirname, 'dist/'),
publicPath: '/'
},
module: {
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
'style-loader',
'css-loader',
'sass-loader',
'postcss-loader'
]
},
]
},
});
const path = require('path');
const merge = require('webpack-merge');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const common = require('./webpack.common.js');
module.exports = merge(common, {
mode: 'production',
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
mangle: {
safari10: true,
},
},
})
],
},
module: {
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
'postcss-loader'
]
}
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'pages/[name]/[name][contenthash:8].css' // 提取出来的css文件路径以及命名
}),
],
output: {
filename: 'pages/[name]/[name][chunkhash:8].bundle.js',
path: path.resolve(__dirname, 'dist/'),
publicPath: '/static/activity/'
},
});
This source diff could not be displayed because it is too large. You can view the blob instead.
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