Authored by 徐炜

Merge branch 'release/4.9.1.0'

... ... @@ -7,6 +7,7 @@ const queryString = require('querystring');
const Promise = require('bluebird');
const co = Promise.coroutine;
const headerModel = require('../../../doraemon/models/header'); // 头部model
const _ = require('lodash');
const getResource = code => {
... ... @@ -91,20 +92,34 @@ const getPlatForm = (req) => {
let userAgent = req.get('User-Agent');
let yoho = {};
let uids = req.get('User-Agent').match(/uid=([^;]+)/i);
let versions = req.get('User-Agent').match(/app_version=([^;]+)/i);
let arrs = [];
let version = false;
let isNewVersion = false;
const isProduction = process.env.NODE_ENV === 'production';
yoho.isiOS = /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(userAgent);
yoho.isAndroid = /Android/i.test(userAgent);
yoho.isApp = /YohoBuy/i.test(req.get('User-Agent')) || (req.query.app_version && req.query.client_type);
if (req.query.app_version) {
arrs = req.query.app_version.split('.');
version = arrs.length > 2 && Number(arrs.slice(0, 2).join('') + arrs[2].slice(0, 1)) > 490;
}
yoho.app_version = versions && versions.length === 2 ? versions[1] : '';
yoho.app_version = yoho.app_version || req.query.app_version || '';
if (yoho.app_version) {
yoho.app_version = _.toString(yoho.app_version);
arrs = yoho.app_version.split('.');
if (arrs.length > 2) {
if (arrs[0] && +arrs[0] < 4) {
isNewVersion = false;
} else if (arrs[1] && +arrs[1] < 9) {
isNewVersion = false;
} else if (arrs[2] && +arrs[2] <= 0) {
isNewVersion = false;
} else {
isNewVersion = true;
}
}
}
yoho.isSupportStudent = !yoho.isApp || version;
yoho.isSupportStudent = !yoho.isApp || isNewVersion;
yoho.http = 'http:';
if (isProduction) {
yoho.http = 'https:';
... ... @@ -117,37 +132,19 @@ const getPlatForm = (req) => {
yoho.isStudent = data.data && data.data.vip_info && data.data.vip_info.is_student ? true : false;
// console.log(yoho);
// yoho.isStudent = false;
return yoho;
})();
};
// const getRequest = (url)=>{
//
// let regurl = /^[^\?]+\?([\w\W]+)$/;
// let regpara = /([^&=]+)=([\w\W]*?)(&|$|#)/g;
// let ret = {};
// let strpara,
// result;
//
// let arrurl = regurl.exec(url);
//
// if (arrurl && arrurl[1]) {
// strpara = arrurl[1];
// while ((result = regpara.exec(strpara)) !== null) {
// ret[result[1]] = result[2];
// }
// }
// return ret;
// };
exports.index = (req, res, next) => {
let code = 'a83b7d55324fb65f96c1f85a3387ebd8';
let uid = req.__USER__.uid;
let options;
let noLoginUrl = helpers.urlFormat('/activity/student/register') + '?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"' + req.__USER__.http + '//m.yohobuy.com/activity/student"}}}';
... ... @@ -185,25 +182,16 @@ exports.index = (req, res, next) => {
}
});
if (coupons && coupons.data) {
coupons.link = link && link.data ? link.data[0].url + (req.__USER__.isApp ? '&app_version=1' : '') : '';
coupons.link = link && link.data ? link.data[0].url + (req.__USER__.isApp ? '&app_version=' + req.__USER__.app_version : '') : '';
coupons.data = (coupons.data || []).map((item) => {
// let url = item.image.url;
couponids.push(item.couponID);
if (!req.__USER__.isLogin) {
item.image.url = 'http://m.yohobuy.com/activity/student/register?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"http://m.yohobuy.com/activity/student"}}}';
}
// if (item.image.url.indexOf('?') === -1) {
// item.image.url += '?';
// if (!req.__USER__.isLogin) {
// url = 'http://m.yohobuy.com/activity/student/register?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"http://m.yohobuy.com/activity/student"}}}';
// }
//
//
// url = item.image.url.substring(0, item.image.url.indexOf('?'));
//
// param = JSON.stringify(getRequest(item.image.url));
// item.image.url = item.image.url + '&app_version=1&openby:yohobuy={"action":"go.h5","params":{"islogin":"N","url":"' + url + '","param":' + param + '}}';
// console.log(item);
// item.image.noLoginUrl=url;
return item;
});
}
... ... @@ -242,7 +230,10 @@ exports.index = (req, res, next) => {
isLogin: req.__USER__.isLogin,
title: '有货学生专享优惠',
http: req.__USER__.http,
uid: req.__USER__.uid
uid: req.__USER__.uid,
app_version: req.__USER__.app_version,
isAppNoLogin: req.__USER__.isApp && !req.__USER__.isLogin,
noLoginUrl: noLoginUrl
};
if (!req.__USER__.isApp) {
options.pageHeader = headerModel.setNav({
... ... @@ -261,7 +252,7 @@ exports.index = (req, res, next) => {
}
} else {
// no login
options.loginUrl = options.loginUrl + '?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"' + req.__USER__.http + '//m.yohobuy.com/activity/student/register"}}}';
options.loginUrl = options.loginUrl + '?openby:yohobuy={"action":"go.weblogin","params":{"jumpurl":{"url":"' + req.__USER__.http + '//m.yohobuy.com/activity/student/register","antarget":"1"}}}';
}
} else {
if (options.isLogin) {
... ... @@ -350,15 +341,20 @@ exports.verifystudent = (req, res, next) => {
Promise.all([verifiedStudentTotal(), vip(), verifyStudent(uid, params.college_name, params.education_degree, params.enrollment_year, params.token)])
.then((datas) => {
let isverify = false,
prompt = '你的学校信息未通审核';
prompt = '您的学校信息未通过审核';
if (datas[2].code === 200) {
if (datas[2].data.isStudent === 1) {
isverify = true;
prompt = datas[2].data.prompt;
if (datas[2].code === 200) {
if (datas[2].data.isStudent === 1) {
isverify = true;
prompt = datas[2].data.prompt;
}
} else {
prompt = datas[2].message;
}
} else {
prompt = datas[2].message;
prompt = '认证失败';
}
datas[1].data.product_list = datas[1].data.product_list.map(function(value) {
value.goodsId = value.goods_list[0].goods_id;
... ... @@ -375,7 +371,8 @@ exports.verifystudent = (req, res, next) => {
isLogin: user.data && user.data.vip_info && user.data.vip_info.is_student ? true : false,
title: '学生身份认证',
http: req.__USER__.http,
uid: req.__USER__.uid
uid: req.__USER__.uid,
app_version: req.__USER__.app_version
});
}).catch(next);
... ...
... ... @@ -37,27 +37,44 @@
{{#each data}}
<div class="coupon-floor" coupon-id="{{couponID}}">
<div class="floor-main" style="background-image: url({{image image.src 0 0}});">
<a href='{{image.url}}' class="main-left"></a>
<a href='{{image.url}}' class="main-right-use" >
<a href='{{image.url}}' class="main-left"></a>
{{#isEqual status 1}}
<span class="on-receive on-lingqu no-bg">
<p>点击</p>
<p>领取</p>
</span>
{{#if @root.isAppNoLogin}}
<a href='{{@root.noLoginUrl}}' class="main-right-use" >
<span class="on-receive on-lingqu no-bg">
<p>点击</p>
<p>领取</p>
</span>
</a>
{{else}}
<div class="main-right-use" href='{{../image.url}}'>
<span class="on-receive on-lingqu no-bg">
<p>点击</p>
<p>领取</p>
</span>
</div>
{{/if}}
{{/isEqual}}
{{#isEqual status 2}}
<a href='{{../image.url}}' class="main-right-use" >
<span class="zero"></span>
</a>
{{/isEqual}}
{{#isEqual status 3}}
<a href='{{../image.url}}' class="main-right-use" >
<span class="received"></span>
</a>
{{/isEqual}}
{{#isEqual status 4}}
<a href='{{../image.url}}' class="main-right-use" >
<span class="on-receive no-bg" >
<p>已经</p>
<p>过期</p>
</span>
</a>
{{/isEqual}}
</a>
</div>
</div>
{{/each}}
... ... @@ -77,7 +94,7 @@
{{/activities}}
<section class='s-section clearfix'>
<h1>学生专享商品<a class="more iconfont" href="//search.m.yohobuy.com/?students=1&title=学生专享商品&uid={{uid}}{{#isApp}}&app_version=1{{/isApp}}">&#xe618;</a></h1>
<h1>学生专享商品<a class="more iconfont" href="//search.m.yohobuy.com/?students=1&title=学生专享商品&uid={{uid}}{{#isApp}}&app_version={{@root.app_version}}{{/isApp}}">&#xe618;</a></h1>
<div class='goods-list clearfix'>
{{#each goods}}
<div class="good-info">
... ... @@ -110,7 +127,7 @@
<a href="{{url}}">{{product_name}}</a>
</div>
<div class="price">
<span class="sale-price">¥{{round student_price}} <i class='s-biaoqian'>学生价</i></span>
<span class="sale-price">¥{{round student_price}} <a class='s-biaoqian'>学生价</a></span>
<p class="s-price-block">
<span class="market-price">¥{{round market_price}}</span>
</p>
... ... @@ -119,7 +136,7 @@
</div>
{{/each}}
</div>
<a class='s-more' href='//search.m.yohobuy.com/?students=1&title=学生专享商品&uid={{uid}}{{#isApp}}&app_version=1{{/isApp}}'>查看更多</a>
<a class='s-more' href='//search.m.yohobuy.com/?students=1&title=学生专享商品&uid={{uid}}{{#isApp}}&app_version={{@root.app_version}}{{/isApp}}'>查看更多</a>
</section>
{{#loginUrl}}
... ...
... ... @@ -16,11 +16,11 @@
<section class='s-section clearfix'>
<div class='s-verify-img s-verify-fail'></div>
<p class='s-verify-title'>太遗憾了,{{./prompt}}</p>
<p class='s-verify-txt'>可以<a class='red' href='//m.yohobuy.com/activity/student/register'>重新验证 ></a></p>
<p class='s-verify-txt'>可以<a class='red' href='//m.yohobuy.com/activity/student/register'>重新验证 ></a></p>
</section>
{{/if}}
<section class='s-section clearfix'>
<h1>学生专享商品<a class="more iconfont" href="//search.m.yohobuy.com/?students=1&title=学生专享商品&uid={{uid}}{{#isApp}}&app_version=1{{/isApp}}">&#xe618;</a></h1>
<h1>学生专享商品<a class="more iconfont" href="//search.m.yohobuy.com/?students=1&title=学生专享商品&uid={{uid}}{{#isApp}}&app_version={{@root.app_version}}{{/isApp}}">&#xe618;</a></h1>
<div class='goods-list clearfix'>
{{#each goods}}
<div class="good-info">
... ... @@ -62,7 +62,7 @@
</div>
{{/each}}
</div>
<a class='s-more' href="//search.m.yohobuy.com/?students=1&title=学生专享商品{{#isApp}}&app_version=1{{/isApp}}">查看更多</a>
<a class='s-more' href="//search.m.yohobuy.com/?students=1&title=学生专享商品{{#isApp}}&app_version={{@root.app_version}}{{/isApp}}">查看更多</a>
</section>
</div>
</div>
... ...
... ... @@ -37,6 +37,7 @@ exports.index = (req, res, next) => {
res.render('plusstar/index', Object.assign({
page: 'plusstar-index',
result: result,
isApp: isApp,
title: title
}, parameter));
}).catch(next);
... ...
... ... @@ -95,7 +95,7 @@ const getResources = (params, options) => {
}
break;
case 'title_image':
case 'title_image' :
if (typeof data[res.template_name] === 'undefined') {
data[res.template_name] = [];
}
... ...
... ... @@ -12,6 +12,10 @@
{{/if}}
<!--/tab-nav-->
{{#if isApp}}
<div class='empty-height'></div>
{{/if}}
<div class="plusstar-resources">
<!--资源位数据模板-->
</div><!--/plusstar-resources-->
... ...
<div class='installment-help'>
<div class='installment-help installment-agreement'>
<div class='content help-title'>有货分期-信而富用户服务协议</div>
<br />
<div class='help-group'>
<h2>【特别提示】</h2>
<p>
... ... @@ -76,10 +77,17 @@
</p>
<p>
3.2您了解并同意,确保平台账户及密码的机密安全是用户的责任,您将对利用用户账户及密码所进行的一切行动及言论负完全的责任,并同意以下事项:
(1)您不对其他任何人泄露账户及密码,亦不可使用其他任何人的账户或密码;因黑客、病毒或您的保管疏忽等非信而富过错导致个人账户及密码遭他人非法使用的,信而富不承担任何责任;
(2)信而富通过您的账户及密码来识别您的指令和操作,您同意并确认,使用账户及密码登录后在本平台的一切行为均代表您本人的使用,账户操作所产生的电子信息记录均为您个人行为的有效凭证,并由您本人承担由此产生的全部责任;
(3)冒用他人账户及密码的,信而富及合法授权主体保留追究实际使用人责任的权利;
(4)信而富提示您创建一个安全密码,避免选择过于简单或明显的单词或日期,比如您的姓名、昵称或者生日等。
<span class='indent2'>
(1)您不对其他任何人泄露账户及密码,亦不可使用其他任何人的账户或密码;因黑客、病毒或您的保管疏忽等非信而富过错导致个人账户及密码遭他人非法使用的,信而富不承担任何责任;<br />
</span>
<span class='indent2'>
(2)信而富通过您的账户及密码来识别您的指令和操作,您同意并确认,使用账户及密码登录后在本平台的一切行为均代表您本人的使用,账户操作所产生的电子信息记录均为您个人行为的有效凭证,并由您本人承担由此产生的全部责任;</span>
<span class='indent2'>
(3)冒用他人账户及密码的,信而富及合法授权主体保留追究实际使用人责任的权利;
</span>
<span class='indent2'>
(4)信而富提示您创建一个安全密码,避免选择过于简单或明显的单词或日期,比如您的姓名、昵称或者生日等。
</span>
</p>
<p>
3.3您完成申请注册手续后,获得本平台账户的使用权,该使用权仅属于初始申请注册人。您禁止赠与、借用、租用、转让或售卖平台账户。您若发现有第三人冒用或盗用您的用户账户及密码,或其他任何未经合法授权的情形,应立即以有效方式通知信而富,要求信而富暂停相关服务,否则由此产生的一切责任由您本人承担。同时您理解信而富对您的请求采取行动需要合理期限,信而富对第三人使用该服务所导致的损失不承担任何责任。
... ... @@ -95,13 +103,28 @@
</p>
<p class='underline bold'>
3.7信而富有权基于单方独立判断,在其认为可能发生危害交易安全或用户违反本平台规则等情形时,有权不经通知而暂停、中断或终止向您提供的本协议项下的全部或部分服务,并有权视情况单方决定将用户注册资料移除或删除,且无需对用户或任何第三方承担任何责任。前述情形包括但不限于:
(1)信而富认为用户提供的个人资料不具有真实性、有效性或完整性;
(2)信而富发现异常交易或有疑义或有违法之可能时;
(3)信而富认为用户已经违反相关法律法规或本协议中规定的各类规则及精神;
(4)用户在使用本平台收费服务时未按规定向相关方支付相应的平台服务费用或第三方服务费用;
(5)用户账户已连续三年内未实际使用且账户中余额为零;
(6)信而富按照法律规定或主管部门的要求;
(7)出于安全的原因或其他必要的情形。
<span class='indent2'>
(1)信而富认为用户提供的个人资料不具有真实性、有效性或完整性;
</span>
<span class='indent2'>
(2)信而富发现异常交易或有疑义或有违法之可能时;
</span>
<span class='indent2'>
(3)信而富认为用户已经违反相关法律法规或本协议中规定的各类规则及精神;
</span>
<span class='indent2'>
(4)用户在使用本平台收费服务时未按规定向相关方支付相应的平台服务费用或第三方服务费用;
</span>
<span class='indent2'>
(5)用户账户已连续三年内未实际使用且账户中余额为零;
</span>
<span class='indent2'>
(6)信而富按照法律规定或主管部门的要求;
</span>
<span class='indent2'>
(7)出于安全的原因或其他必要的情形。
</span>
</ul>
</p>
<p>
3.8用户同意,用户账户的暂停、中断或终止不代表用户责任的终止,用户仍应对使用本平台服务期间的行为承担可能的违约或损害赔偿责任,同时信而富仍可保有用户的相关信息。
... ... @@ -121,21 +144,37 @@
</p>
<p>
4.4 您确认知晓并同意,信而富可将您的信息用于:
(1)信而富向您及时发送重要通知,如软件更新、本协议条款的变更;
(2)信而富内部进行审计、数据分析和研究等,以改进信而富的产品、服务和与您之间的沟通;
(3)依本协议约定,信而富管理、审查您的信息及进行处理措施;
(4)信而富为提供本协议项下服务而必需的其他用途;
(5)法律法规所要求的其他用途。
<span class='indent2'>
(1)信而富向您及时发送重要通知,如软件更新、本协议条款的变更;
</span>
<span class='indent2'>
(2)信而富内部进行审计、数据分析和研究等,以改进信而富的产品、服务和与您之间的沟通;
</span>
<span class='indent2'>
(3)依本协议约定,信而富管理、审查您的信息及进行处理措施;
</span>
<span class='indent2'>
(4)信而富为提供本协议项下服务而必需的其他用途;
</span>
<span class='indent2'>
(5)法律法规所要求的其他用途。
</span>
</p>
<p>
4.5信而富将运用各种安全技术和程序建立完善的管理制度来保护您的个人信息,以免遭受未经授权的访问、使用或披露。但对于因您个人原因、因黑客攻击、电脑病毒侵入及其它不可抗力事件、或其它非信而富原因导致的个人信息的泄露和损失,信而富不承担任何责任。
</p>
<p>
4.6 为本协议之目的,您特此同意授权信而富指定的公司在发生与您有关的下列任一情形时,可以通过中国人民银行个人信息基础数据库或/及其他征信系统或/及与征信相关的第三方数据库(以下统称“征信数据库”)查询您的个人信用信息(个人信用信息包括与您有关的基本信息、信贷信息或与本人信用直接或间接相关的其他各项信息),并通过征信数据库对该等个人信用信息进行各项识别、验证和筛查:
(1)涉及您的个人借款申请;
(2)涉及您的个人担保事宜;
(3)对您名下已发生的个人借款或个人担保进行风险管理及后续信息跟踪管理。
<span class='indent2'>
(1)涉及您的个人借款申请;
</span>
<span class='indent2'>
(2)涉及您的个人担保事宜;
</span>
<span class='indent2'>
(3)对您名下已发生的个人借款或个人担保进行风险管理及后续信息跟踪管理。
同时授权信而富指定的公司将您的个人信用信息向包括中国人民银行信息基础数据库在内的征信数据库报送。
</span>
</p>
</div>
... ... @@ -168,12 +207,24 @@
</p>
<p>
6.4除非信而富书面许可,您不得从事下列任一行为,否则信而富将保留追究您责任的权利:
(1)删除软件及其副本上关于著作权的信息;
(2)对软件进行反向工程、反向汇编、反向编译,或者以其他方式尝试发现软件的源代码;
(3)对信而富拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点等;
(4)对软件或者软件运行过程中释放到任何终端内存中的数据、软件运行过程中客户端与服务器端的交互数据,以及软件运行所必需的系统数据,进行复制、修改、增加、删除、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经信而富授权的第三方工具/服务接入软件和相关系统;
(5)通过修改或伪造软件运行中的指令、数据,增加、删减、变动软件的功能或运行效果,或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的;
(6)通过非信而富开发、授权的第三方软件、插件、外挂、系统,登录或使用信而富软件及服务,或制作、发布、传播非信而富开发、授权的第三方软件、插件、外挂、系统。
<span class='indent2'>
(1)删除软件及其副本上关于著作权的信息;
</span>
<span class='indent2'>
(2)对软件进行反向工程、反向汇编、反向编译,或者以其他方式尝试发现软件的源代码;
</span>
<span class='indent2'>
(3)对信而富拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版、建立镜像站点等;
</span>
<span class='indent2'>
(4)对软件或者软件运行过程中释放到任何终端内存中的数据、软件运行过程中客户端与服务器端的交互数据,以及软件运行所必需的系统数据,进行复制、修改、增加、删除、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经信而富授权的第三方工具/服务接入软件和相关系统;
</span>
<span class='indent2'>
(5)通过修改或伪造软件运行中的指令、数据,增加、删减、变动软件的功能或运行效果,或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的;
</span>
<span class='indent2'>
(6)通过非信而富开发、授权的第三方软件、插件、外挂、系统,登录或使用信而富软件及服务,或制作、发布、传播非信而富开发、授权的第三方软件、插件、外挂、系统。
</span>
</p>
</div>
... ... @@ -200,13 +251,27 @@
<h2>八、【用户的守法义务】</h2>
<p>
8.1您在使用平台服务时须遵守法律法规以及公序良俗,不得利用平台服务从事违法违规行为,包括但不限于:
(1)发布、传送、传播、储存危害国家安全统一、破坏社会稳定、违反公序良俗、侮辱、诽谤、淫秽、暴力以及任何违反国家法律法规的内容;
(2)发布、传送、传播、储存侵害他人知识产权、商业秘密等合法权利的内容;
(3)提交、发布虚假信息,或盗用他人头像或资料,冒充、利用他人名义,恶意虚构事实、隐瞒真相以误导、欺骗他人;
(4)发布、传送、传播广告信息及垃圾信息;
(5)侵害他人名誉、隐私权、商业秘密、商标权、著作权、专利权、其它知识产权及其它权益;
(6)从事任何不法交易行为;
(7)其他法律法规禁止或信而富有正当理由认为不适当的行为。
<span class='indent2'>
(1)发布、传送、传播、储存危害国家安全统一、破坏社会稳定、违反公序良俗、侮辱、诽谤、淫秽、暴力以及任何违反国家法律法规的内容;
</span>
<span class='indent2'>
(2)发布、传送、传播、储存侵害他人知识产权、商业秘密等合法权利的内容;
</span>
<span class='indent2'>
(3)提交、发布虚假信息,或盗用他人头像或资料,冒充、利用他人名义,恶意虚构事实、隐瞒真相以误导、欺骗他人;
</span>
<span class='indent2'>
(4)发布、传送、传播广告信息及垃圾信息;
</span>
<span class='indent2'>
(5)侵害他人名誉、隐私权、商业秘密、商标权、著作权、专利权、其它知识产权及其它权益;
</span>
<span class='indent2'>
(6)从事任何不法交易行为;
</span>
<span class='indent2'>
(7)其他法律法规禁止或信而富有正当理由认为不适当的行为。
</span>
</p>
<p>
8.2如果您违反了本条约定,相关国家机关或机构可能会对您提起诉讼、罚款或采取其他制裁措施,并要求信而富给予协助,造成损害的,您应依法予以赔偿,信而富不承担任何责任。
... ... @@ -226,18 +291,36 @@
</p>
<p class='bold'>
9.2 在法律允许的范围内,信而富对以下情形导致的服务中断、受阻,数据丢失以及其他的损失和风险不承担责任:
(1)受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏;
(2)您或信而富的电脑软件、系统、硬件和通信线路出现故障;
(3)您自身责任所导致的损失或风险(例如您未按照本协议或本平台不时公布的任何规则进行操作;您向本平台发送的指令信息不明确、或存在歧义、不完整等;您账户内余额不足);
(4)第三方(包括但不限于银行、第三方支付机构等)服务瑕疵;
(5)您通过非信而富授权的方式使用本服务;
(6)其他信而富无法控制或合理预见的情形。
<span class='indent2'>
(1)受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏;
</span>
<span class='indent2'>
(2)您或信而富的电脑软件、系统、硬件和通信线路出现故障;
</span>
<span class='indent2'>
(3)您自身责任所导致的损失或风险(例如您未按照本协议或本平台不时公布的任何规则进行操作;您向本平台发送的指令信息不明确、或存在歧义、不完整等;您账户内余额不足);
</span>
<span class='indent2'>
(4)第三方(包括但不限于银行、第三方支付机构等)服务瑕疵;
</span>
<span class='indent2'>
(5)您通过非信而富授权的方式使用本服务;
</span>
<span class='indent2'>
(6)其他信而富无法控制或合理预见的情形。
</span>
</p>
<p>
9.3 您理解并同意,在使用本服务的过程中,可能会遇到网络信息或其他您行为带来的风险,信而富不对任何信息的真实性、适用性、合法性承担责任,也不对因侵权行为给您造成的损害负责。这些风险包括但不限于:
(1)来自他人匿名或冒名的含有威胁、诽谤、令人反感或非法内容的信息;
(2)因使用本协议项下的服务,遭受他人误导、欺骗或其他导致或可能导致的任何心理、生理上的伤害以及经济上的损失;
(3)其他因网络信息或您行为引起的风险。
<span class='indent2'>
(1)来自他人匿名或冒名的含有威胁、诽谤、令人反感或非法内容的信息;
</span>
<span class='indent2'>
(2)因使用本协议项下的服务,遭受他人误导、欺骗或其他导致或可能导致的任何心理、生理上的伤害以及经济上的损失;
</span>
<span class='indent2'>
(3)其他因网络信息或您行为引起的风险。
</span>
</p>
<p>
9.4 信而富无法也没有义务保证用户在发出借款要约后,能够实际获得借款,用户因前述原因而遭受的损失信而富不承担责任。
... ... @@ -264,9 +347,6 @@
<p>
10.4本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。
</p>
<p>
(正文完)
</p>
</div>
</div>
... ...
<div class='installment-help'>
<div class='content help-title'>分期支付帮助中心</div>
<div class='help-group'>
<h2>一、有货分期介绍</h2>
<p>
... ...
... ... @@ -45,7 +45,8 @@ const dist = {
const postcssPlugin = (et) => {
var sprites = {
spritesmith: {
padding: 8
// 不能设置过小,否则有边缘会有问题
padding: 20
},
filterBy(file) {
// base64 的图片没有 url 过滤掉
... ... @@ -60,6 +61,7 @@ const postcssPlugin = (et) => {
group = group === '' ? 'yo' : group;
file.retina = true;
file.radio = 2;
return group ? Promise.resolve(group) : Promise.reject(group);
}
... ...

36.6 KB | W: | H:

29.6 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

7.36 KB | W: | H:

7.42 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

47.4 KB | W: | H:

48 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

2.52 KB | W: | H:

2.55 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
... ... @@ -478,6 +478,7 @@ AsideSlider.prototype._bindAsideSlider = function($initialator, $slider) {
}
if (isShow) {
this.isFirst=true;
$('input').blur();
this.asideSlideIn($slider);
} else {
tip.show('请先选择省份');
... ...
... ... @@ -411,7 +411,7 @@ $(document).on('click', '.s-submit', function() {
C_ID: C_ID,
SRC_ID: 5,
SUBMIT_RES: 1
}, false);
}, true);
}
location.href = data.data;
... ...
... ... @@ -62,9 +62,11 @@ function getUrlParam(name) {
$('.on-lingqu').on('click', function() {
$('.on-lingqu', 'div.main-right-use').on('click', function() {
var $curDom = $(this),
req = '';
req = '',
href = '',
a = '';
if (getUrlParam('app_version')) {
req += '&app_version=' + getUrlParam('app_version');
... ... @@ -73,6 +75,8 @@ $('.on-lingqu').on('click', function() {
if (getUrlParam('uid')) {
req += '&uid=' + getUrlParam('uid');
}
if (!$curDom.hasClass('received')) {
$.ajax({
url: '//m.yohobuy.com/coupon/receiveCoupon?code=a83b7d55324fb65f96c1f85a3387ebd8' + req,
... ... @@ -93,8 +97,11 @@ $('.on-lingqu').on('click', function() {
location.href = newUrl;
} else {
if (status) {
$curDom.html('').removeClass('on-receive').removeClass('no-bg');
$curDom.addClass('received');
href = $curDom.parent('.main-right-use').attr('href');
$curDom.parent('.main-right-use').wrap('<a class=\'main-right-use\' href=' + href + '></a>');
a = $curDom.parent('.main-right-use').parent('a');
a.html('<span class="received"></span>');
tip.show('领券成功');
} else {
tip.show(msg);
... ... @@ -266,18 +273,21 @@ $('.s-activity', '.s-section').click(function() {
});
$('.good-info', '.goods-list').click(function() {
var options;
var url = $(this).find('.good-detail-img').find('.good-thumb').attr('href');
var index = $(this).index();
var tid = $(this).parents('.s-section').data('template-id');
// var url = $(this).find('.good-detail-img').find('.good-thumb').attr('href');
// var index = $(this).index();
// var tid = $(this).parents('.s-section').data('template-id');
var index = $(this).index;
var goodids = $(this).find('.good-thumb').attr('href').match(/"product_skn":([^}]+)/, 'g');
var goodid = goodids && goodids.length === 2 ? goodids[1] : '';
options = {
EVENT: 'YB_STUDENT_VIP_FLR',
C_ID: C_ID,
F_ID: tid || 4,
F_NAME: '学生专享专区',
F_URL: url,
F_INDEX: 4,
I_INDEX: index
EVENT: 'YB_STUDENT_VIP_GDS_LIST',
PRD_NUM: index,
PRD_ID: goodid,
ACTION_ID: 0,
SORT_TYPE: 4,
REC_ID: Date.now()
};
if (window._yas && window._yas.sendCustomInfo) {
window._yas.sendCustomInfo(options, true);
... ...
... ... @@ -10,7 +10,9 @@ var plusstar = {},
require('../common');
plusstar = {
scrollObj: {},
common: {
codeDefault: ''
},
init: function() {
var that = this,
$liDom,
... ... @@ -18,6 +20,13 @@ plusstar = {
$tabUlDom = $('.plusstar-page .tab-nav ul');
// 重置tab code位置
if (window.localStorage) {
$tabUlDom.find('li').each(function() {
localStorage.setItem($(this).data('code'), 0);
});
}
$tabUlDom.find('li').css({
width: 100 / $tabUlDom.find('li').length + '%'
});
... ... @@ -50,13 +59,10 @@ plusstar = {
tabNav: function(code) {
var that = this;
if (typeof this.scrollObj[code] === 'undefined') {
// 如果不是第一次点击,回顶部
$(document).scrollTop(0);
this.scrollObj[code] = true;
}
this.common.codeDefault = code;// 记住最后一次的tab code
loading.showLoadingMask();
$.ajax({
type: 'GET',
url: '/guang/plusstar/resources-template',
... ... @@ -86,6 +92,11 @@ plusstar = {
}
});
}, 40);
// 设置滚动条的位置
if (window.localStorage) {
$(document).scrollTop(localStorage.getItem(code) || 0);
}
},
error: function() {
tip.show('网络断开连接了~');
... ... @@ -111,10 +122,24 @@ plusstar = {
};
$(function() {
if ($footer.length > 0) {
$footer.before(
if (!(window.queryString.app_version || window.queryString.appVersion)) {
$('.tab-nav').css({
position: 'absolute'
});
$footer.css({
'max-width': '650px'
}).before(
'<div style="height: ' + parseInt($footer.css('height'), 0) + 'px"></div>'
);
}
plusstar.init();
if (window.localStorage) {
$(document).scroll(function() {
localStorage.setItem(plusstar.common.codeDefault, $(this).scrollTop());
});
}
});
... ...
... ... @@ -410,6 +410,9 @@
input {
border: 0 none;
padding: 12px 0;
height: 60px;
line-height: 60px;
}
.s-red {
... ...
... ... @@ -56,13 +56,13 @@
display: inline-block;
width: 52px;
height: 54px;
background-image: url('/channel/click-txt.png');
background-image: url("/channel/click-txt.png");
}
&.received {
width: 113px;
height: 132px;
background-image: url('/channel/received.png');
height: 140px;
background-image: url("/channel/received.png");
position: absolute;
top: 0;
right: 0;
... ... @@ -70,8 +70,8 @@
&.zero {
width: 111px;
height: 132px;
background-image: url('/channel/zero.png');
height: 140px;
background-image: url("/channel/zero.png");
position: absolute;
top: 0;
right: 0;
... ...
... ... @@ -2,8 +2,8 @@
position: relative;
margin-right: auto;
margin-left: auto;
max-width: 640px;
width: 100%;
max-width: 750px;
.margin-top-0 {
margin-top: 0;
... ... @@ -11,8 +11,9 @@
.tab-nav {
width: 100%;
max-width: inherit;
height: 80px;
font-size: 16px;
font-size: 26px;
text-align: center;
position: fixed;
z-index: 10;
... ... @@ -28,6 +29,7 @@
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
&:first-child {
margin-left: -10px;
... ... @@ -52,10 +54,8 @@
}
}
.plusstar-resources:before {
.empty-height {
height: 72px;
content: "";
display: inline-block;
}
.resources {
... ... @@ -81,13 +81,12 @@
.header-title {
position: relative;
width: 100%;
height: 70px;
height: 80px;
font-size: 28px;
line-height: 70px;
line-height: 80px;
text-align: center;
font-weight: bold;
margin: 0;
margin-top: 20px;
.more {
position: absolute;
... ... @@ -115,7 +114,6 @@
.swipe-indicators {
display: none;
}
}
.swipe-item {
... ...
.installment-help {
padding: 0 5px;
padding: 30px;
margin: 0;
background-color: #fff;
font-family: "Helvetica", "黑体", "Arial";
font-family: "微软雅黑";
color: #444;
.help-title {
text-align: center;
font-size: 40px;
font-size: 28px;
margin-top: 10px;
font-weight: bold;
}
.help-group {
text-align: left;
margin: 20px 5px;
margin: 0 5px 45px;
h2 {
font-size: 34px;
font-size: 26px;
font-weight: bold;
}
p {
font-size: 28px;
font-size: 26px;
line-height: 40px;
margin-top: 10px;
text-indent: 2em;
}
.remind {
... ... @@ -61,3 +63,23 @@
}
}
}
.installment-agreement {
p {
text-indent: 2em;
}
ul {
list-style-type: none;
li {
display: inline-block;
}
}
.indent2 {
text-indent: 2em;
display: inline-block;
}
}
... ...
... ... @@ -81,7 +81,7 @@
}
.record-cont {
width: 360px;
width: 240px;
height: 84px;
float: left;
overflow: hidden;
... ...
... ... @@ -140,6 +140,10 @@
width: 560px;
margin: -165px 0 0 -280px;
}
.notice-cont {
padding: 28px !important;
}
}
}
... ...