Showing
20 changed files
with
327 additions
and
38 deletions
@@ -19,7 +19,7 @@ const index = (req, res) => { | @@ -19,7 +19,7 @@ const index = (req, res) => { | ||
19 | const couponData = (req, res, next) => { | 19 | const couponData = (req, res, next) => { |
20 | model.couponData({ | 20 | model.couponData({ |
21 | method: 'app.coupons.li', | 21 | method: 'app.coupons.li', |
22 | - uid: 20000382, | 22 | + uid: req.user.uid, |
23 | status: req.body.status || 0, | 23 | status: req.body.status || 0, |
24 | page: req.body.page || 1, | 24 | page: req.body.page || 1, |
25 | limit: 10, | 25 | limit: 10, |
apps/home/controllers/help.js
0 → 100644
1 | +// 帮助 by acgpiano | ||
2 | +'use strict'; | ||
3 | +const headerModel = require('../../../doraemon/models/header'), // 头部model | ||
4 | + model = require('../models/help'); | ||
5 | + | ||
6 | +exports.index = (req, res, next) => { | ||
7 | + model.getHelpList().then(result => { | ||
8 | + res.render('help', { | ||
9 | + module: 'home', | ||
10 | + page: 'help', | ||
11 | + pageHeader: headerModel.setNav({ | ||
12 | + navTitle: '帮助中心' | ||
13 | + }), | ||
14 | + title: '帮助中心', | ||
15 | + pageFooter: true, | ||
16 | + iHelp: result, | ||
17 | + }); | ||
18 | + }).catch(next); | ||
19 | +}; | ||
20 | + | ||
21 | +exports.helpDetail = (req, res, next) => { | ||
22 | + model.getHelpDetail(req.query.code).then(result => { | ||
23 | + res.render('help-detail', { | ||
24 | + module: 'home', | ||
25 | + page: 'help-detail', | ||
26 | + pageHeader: headerModel.setNav({ | ||
27 | + navTitle: req.query.name | ||
28 | + }), | ||
29 | + title: req.query.name, | ||
30 | + pageFooter: true, | ||
31 | + detail: result, | ||
32 | + }); | ||
33 | + }).catch(next); | ||
34 | +}; |
@@ -91,8 +91,14 @@ exports.record = (req, res) => { | @@ -91,8 +91,14 @@ exports.record = (req, res) => { | ||
91 | 91 | ||
92 | }; | 92 | }; |
93 | 93 | ||
94 | +/** | ||
95 | + * 浏览记录列表 | ||
96 | + * @param req | ||
97 | + * @param res | ||
98 | + * @param next | ||
99 | + */ | ||
94 | exports.recordContent = (req, res, next) => { | 100 | exports.recordContent = (req, res, next) => { |
95 | - let uid = req.user.uid; | 101 | + let uid = req.user.uid || 6228593; |
96 | 102 | ||
97 | let udid = req.user.udid; | 103 | let udid = req.user.udid; |
98 | 104 | ||
@@ -112,6 +118,12 @@ exports.recordContent = (req, res, next) => { | @@ -112,6 +118,12 @@ exports.recordContent = (req, res, next) => { | ||
112 | }).catch(next); | 118 | }).catch(next); |
113 | }; | 119 | }; |
114 | 120 | ||
121 | +/** | ||
122 | + * 删除浏览记录 | ||
123 | + * @param req | ||
124 | + * @param res | ||
125 | + * @param next | ||
126 | + */ | ||
115 | exports.delRecord = (req, res, next) => { | 127 | exports.delRecord = (req, res, next) => { |
116 | let uid = req.user.uid; | 128 | let uid = req.user.uid; |
117 | 129 | ||
@@ -122,4 +134,35 @@ exports.delRecord = (req, res, next) => { | @@ -122,4 +134,35 @@ exports.delRecord = (req, res, next) => { | ||
122 | }).catch(next); | 134 | }).catch(next); |
123 | }; | 135 | }; |
124 | 136 | ||
137 | +/** | ||
138 | + * 会员等级展示页 | ||
139 | + * @param req | ||
140 | + * @param res | ||
141 | + * @param next | ||
142 | + */ | ||
143 | + | ||
144 | +exports.grade = (req, res, next) => { | ||
145 | + | ||
146 | + let headerData = headerModel.setNav({ | ||
147 | + navTitle: '会员等级' | ||
148 | + }); | ||
149 | + | ||
150 | + let responseData = { | ||
151 | + pageHeader: headerData, | ||
152 | + module: 'home', | ||
153 | + page: 'grade', | ||
154 | + title: '会员等级', | ||
155 | + pageFooter: true | ||
156 | + }; | ||
157 | + | ||
158 | + indexModel.getGrade({ | ||
159 | + uid: req.user.uid || 8039759, | ||
160 | + channel: req.query.channel || 1 | ||
161 | + }).then((result) => { | ||
162 | + console.log(result); | ||
163 | + res.render('vip-grade/vip-grade', Object.assign(result, responseData)); | ||
164 | + }).catch(next); | ||
165 | + | ||
166 | + | ||
167 | +}; | ||
125 | 168 |
@@ -22,7 +22,7 @@ app.engine('.hbs', hbs({ | @@ -22,7 +22,7 @@ app.engine('.hbs', hbs({ | ||
22 | extname: '.hbs', | 22 | extname: '.hbs', |
23 | defaultLayout: 'layout', | 23 | defaultLayout: 'layout', |
24 | layoutsDir: doraemon, | 24 | layoutsDir: doraemon, |
25 | - partialsDir: ['./views/partial', `${doraemon}/partial`], | 25 | + partialsDir: [path.join(__dirname, './views/partial'), `${doraemon}/partial`], |
26 | helpers: global.yoho.helpers | 26 | helpers: global.yoho.helpers |
27 | })); | 27 | })); |
28 | 28 |
apps/home/models/help.js
0 → 100644
1 | +// 帮助 by acgpiano | ||
2 | +'use strict'; | ||
3 | + | ||
4 | +const api = global.yoho.API; | ||
5 | + | ||
6 | +// 获取帮助列表 | ||
7 | +exports.getHelpList = () => { | ||
8 | + return api.get('', { | ||
9 | + method: 'app.help.li' | ||
10 | + }).then(result => { | ||
11 | + if (result && result.code === 200 && result.data) { | ||
12 | + let final = []; | ||
13 | + for (let name of result.data) { | ||
14 | + final.push({ | ||
15 | + name: name.caption, | ||
16 | + code: name.code, | ||
17 | + }); | ||
18 | + } | ||
19 | + return final; | ||
20 | + } | ||
21 | + }); | ||
22 | +}; | ||
23 | + | ||
24 | +// 获取帮助详情 | ||
25 | +exports.getHelpDetail = (code) => { | ||
26 | + return api.get('', { | ||
27 | + method: 'app.help.detail', | ||
28 | + code: code, | ||
29 | + }).then(result => { | ||
30 | + return result.replace(/^<!DOCTYPE.*<body>/g, ''). | ||
31 | + replace(/<\/body>.*<\/html>/g, ''); | ||
32 | + }); | ||
33 | +}; |
@@ -202,6 +202,10 @@ const recordContent = (uid, udid, page, limit) => { | @@ -202,6 +202,10 @@ const recordContent = (uid, udid, page, limit) => { | ||
202 | }); | 202 | }); |
203 | }; | 203 | }; |
204 | 204 | ||
205 | +/** | ||
206 | + * 删除浏览记录 | ||
207 | + * @param params | ||
208 | + */ | ||
205 | const delRecord = (uid, skn) => { | 209 | const delRecord = (uid, skn) => { |
206 | return api.get('', { | 210 | return api.get('', { |
207 | method: 'app.browse.delete', | 211 | method: 'app.browse.delete', |
@@ -210,9 +214,58 @@ const delRecord = (uid, skn) => { | @@ -210,9 +214,58 @@ const delRecord = (uid, skn) => { | ||
210 | }); | 214 | }); |
211 | }; | 215 | }; |
212 | 216 | ||
217 | +/** | ||
218 | + * 会员等级 | ||
219 | + * @param params | ||
220 | + */ | ||
221 | +const getGradeGrade = (channel, uid) => { | ||
222 | + return api.get('', { | ||
223 | + method: 'app.passport.vip', | ||
224 | + uid: uid || 6228593, | ||
225 | + channel: channel || 1 | ||
226 | + }, {code: 200}); | ||
227 | +}; | ||
228 | + | ||
229 | +const getGradeUser = (channel, uid) => { | ||
230 | + return api.get('', { | ||
231 | + method: 'app.passport.profile', | ||
232 | + uid: uid || 6228593, | ||
233 | + channel: channel || 1 | ||
234 | + }, {code: 200}); | ||
235 | +}; | ||
236 | + | ||
237 | +const getGrade = (channel, uid) => { | ||
238 | + | ||
239 | + return api.all([ | ||
240 | + getGradeGrade(channel, uid), | ||
241 | + getGradeUser(channel, uid) | ||
242 | + ]).then((result) => { | ||
243 | + | ||
244 | + let resu = { | ||
245 | + vipGrade: [] | ||
246 | + }; | ||
247 | + | ||
248 | + if (result[0] && result[0].data) { | ||
249 | + resu = { | ||
250 | + vipGrade: [ | ||
251 | + { | ||
252 | + costOfThisYear: result[0].data.current_year_cost, | ||
253 | + sumCost: result[0].data.current_total_cost, | ||
254 | + vip1: true, | ||
255 | + name: '1111' | ||
256 | + } | ||
257 | + ] | ||
258 | + }; | ||
259 | + } | ||
260 | + return resu; | ||
261 | + }); | ||
262 | +}; | ||
263 | + | ||
264 | + | ||
213 | module.exports = { | 265 | module.exports = { |
214 | index, | 266 | index, |
215 | myDetails, | 267 | myDetails, |
216 | recordContent, | 268 | recordContent, |
217 | - delRecord | 269 | + delRecord, |
270 | + getGrade | ||
218 | }; | 271 | }; |
@@ -18,6 +18,7 @@ const orderController = require(`${cRoot}/order`); | @@ -18,6 +18,7 @@ const orderController = require(`${cRoot}/order`); | ||
18 | const orderDetailController = require(`${cRoot}/orderDetail`); | 18 | const orderDetailController = require(`${cRoot}/orderDetail`); |
19 | const currencyController = require(`${cRoot}/myCurrency`); | 19 | const currencyController = require(`${cRoot}/myCurrency`); |
20 | const coupons = require(`${cRoot}/coupons`); | 20 | const coupons = require(`${cRoot}/coupons`); |
21 | +const help = require(`${cRoot}/help`); | ||
21 | 22 | ||
22 | // const myDetail = require(`${cRoot}/myDetail); | 23 | // const myDetail = require(`${cRoot}/myDetail); |
23 | 24 | ||
@@ -44,6 +45,8 @@ router.get('/cancelOrder', orderDetailController.cancelOrder); // 取消订单 | @@ -44,6 +45,8 @@ router.get('/cancelOrder', orderDetailController.cancelOrder); // 取消订单 | ||
44 | router.get('/', homeController.index); // 个人中心首页 | 45 | router.get('/', homeController.index); // 个人中心首页 |
45 | router.get('/mydetails', homeController.myDetails); // 个人基本资料页面 | 46 | router.get('/mydetails', homeController.myDetails); // 个人基本资料页面 |
46 | 47 | ||
48 | +router.get('/grade', homeController.grade); // 会员等级页 | ||
49 | + | ||
47 | router.get('/mycurrency', currencyController.myCurrency); // yoho币总数 | 50 | router.get('/mycurrency', currencyController.myCurrency); // yoho币总数 |
48 | router.get('/currencyDetail', currencyController.currencyDetail); // yoho币列表 | 51 | router.get('/currencyDetail', currencyController.currencyDetail); // yoho币列表 |
49 | router.post('/ajaxCurrencyDetail', currencyController.ajaxCurrencyDetail); // yoho币列表 | 52 | router.post('/ajaxCurrencyDetail', currencyController.ajaxCurrencyDetail); // yoho币列表 |
@@ -65,7 +68,11 @@ router.get('/favBrand', favorite.favfavBrand); | @@ -65,7 +68,11 @@ router.get('/favBrand', favorite.favfavBrand); | ||
65 | router.post('/favoriteDel', favorite.favoriteDelete); | 68 | router.post('/favoriteDel', favorite.favoriteDelete); |
66 | 69 | ||
67 | // 优惠券 | 70 | // 优惠券 |
68 | -router.get('/coupons', coupons.index); | 71 | +router.get('/coupons', auth, coupons.index); |
69 | router.post('/couponData', coupons.couponData); | 72 | router.post('/couponData', coupons.couponData); |
70 | 73 | ||
71 | -module.exports = router; | 74 | +// 帮助中心 |
75 | +router.get('/help', help.index); | ||
76 | +router.get('/helpDetail', help.helpDetail); | ||
77 | + | ||
78 | +module.exports = router; |
apps/home/views/action/help-detail.hbs
0 → 100644
1 | +{{{detail}}} |
apps/home/views/action/help.hbs
0 → 100644
1 | +<div class="vip-grade-page yoho-page"> | ||
2 | + {{# vipGrade}} | ||
3 | + <div class="basic-info block"> | ||
4 | + {{> vip-grade/basic-info}} | ||
5 | + </div> | ||
6 | + | ||
7 | + <ul class="cost block"> | ||
8 | + <li> | ||
9 | + 年度累计金额: | ||
10 | + <span>¥{{costOfThisYear}}</span> | ||
11 | + </li> | ||
12 | + <li> | ||
13 | + 历史消费总金额: | ||
14 | + <span>¥{{sumCost}}</span> | ||
15 | + </li> | ||
16 | + </ul> | ||
17 | + | ||
18 | + {{#unless vip0}} | ||
19 | + <div class="privilege block"> | ||
20 | + <h3 class="title">当前可享受的特权</h3> | ||
21 | + {{> vip-grade/privilege}} | ||
22 | + </div> | ||
23 | + {{/unless}} | ||
24 | + | ||
25 | + <a class="all-privilege block tap-hightlight" href="{{allUrl}}"> | ||
26 | + 查看全部VIP特权 | ||
27 | + <span class="iconfont"></span> | ||
28 | + </a> | ||
29 | + {{/ vipGrade}} | ||
30 | +</div> |
1 | +{{#if vip3}} | ||
2 | + <p> | ||
3 | + <span class="user-name">{{name}}</span> | ||
4 | + <span class="vip-icon vip-3"></span> | ||
5 | + </p> | ||
6 | + <p class="grade-desc"> | ||
7 | + 您已升级至最高的等级啦! | ||
8 | + </p> | ||
9 | + <p class="sum-cost"> | ||
10 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
11 | + </p> | ||
12 | + <div class="progresser"> | ||
13 | + <div class="outer"></div> | ||
14 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
15 | + <span class="beacon beacon-min"> | ||
16 | + 白金卡会员 | ||
17 | + </span> | ||
18 | + </div> | ||
19 | +{{/if}} | ||
20 | + | ||
21 | +{{#if vip2}} | ||
22 | + <p> | ||
23 | + <span class="user-name">{{name}}</span> | ||
24 | + <span class="vip-icon vip-2"></span> | ||
25 | + </p> | ||
26 | + <p class="grade-desc"> | ||
27 | + 还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为白金会员! | ||
28 | + <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span> | ||
29 | + </p> | ||
30 | + <p class="sum-cost"> | ||
31 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
32 | + </p> | ||
33 | + <div class="progresser"> | ||
34 | + <div class="outer"></div> | ||
35 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
36 | + <span class="beacon beacon-min"> | ||
37 | + 金卡会员 | ||
38 | + </span> | ||
39 | + <span class="beacon beacon-max">白金卡会员</span> | ||
40 | + <span class="cost-limit">¥5000.00</span> | ||
41 | + </div> | ||
42 | +{{/if}} | ||
43 | + | ||
44 | +{{#if vip1}} | ||
45 | + <p> | ||
46 | + <span class="user-name">{{name}}</span> | ||
47 | + <span class="vip-icon vip-1"></span> | ||
48 | + </p> | ||
49 | + <p class="grade-desc"> | ||
50 | + 还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为金卡会员! | ||
51 | + <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span> | ||
52 | + </p> | ||
53 | + <p class="sum-cost"> | ||
54 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
55 | + </p> | ||
56 | + <div class="progresser"> | ||
57 | + <div class="outer"></div> | ||
58 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
59 | + <span class="beacon beacon-min"> | ||
60 | + 银卡会员 | ||
61 | + </span> | ||
62 | + <span class="beacon beacon-max">金卡会员</span> | ||
63 | + <span class="cost-limit">¥2000.00</span> | ||
64 | + </div> | ||
65 | +{{/if}} | ||
66 | + | ||
67 | +{{#if vip0}} | ||
68 | + <p> | ||
69 | + <span class="user-name">{{name}}</span> | ||
70 | + <span>普通会员</span> | ||
71 | + </p> | ||
72 | + <p class="grade-desc"> | ||
73 | + 还差<span class="cost-gap">¥{{costGap}}</span>就可以升级为银卡会员! | ||
74 | + <span class="sub-desc">(VIP金额累计需订单成功签收满15天并无退换货)</span> | ||
75 | + </p> | ||
76 | + <p class="sum-cost"> | ||
77 | + 年度累计金额<span> ¥{{costOfThisYear}}</span> | ||
78 | + </p> | ||
79 | + <div class="progresser"> | ||
80 | + <div class="outer"></div> | ||
81 | + <div class="inner" style="width: {{percent}}%;"></div> | ||
82 | + <span class="beacon beacon-min"> | ||
83 | + 普通 | ||
84 | + </span> | ||
85 | + <span class="beacon beacon-max">银卡会员</span> | ||
86 | + <span class="cost-limit">¥600.00</span> | ||
87 | + </div> | ||
88 | +{{/if}} |
@@ -11,10 +11,7 @@ var employ, | @@ -11,10 +11,7 @@ var employ, | ||
11 | page = 1, | 11 | page = 1, |
12 | 12 | ||
13 | // 防止重复请求 | 13 | // 防止重复请求 |
14 | - AjaxFlag = 0, | ||
15 | - | ||
16 | - // 上滑不请求 | ||
17 | - direction = true; | 14 | + AjaxFlag = 0; |
18 | 15 | ||
19 | var couponAJAX = function(statu, page) { | 16 | var couponAJAX = function(statu, page) { |
20 | if (AjaxFlag) { | 17 | if (AjaxFlag) { |
@@ -31,6 +28,12 @@ var couponAJAX = function(statu, page) { | @@ -31,6 +28,12 @@ var couponAJAX = function(statu, page) { | ||
31 | page: page | 28 | page: page |
32 | }, | 29 | }, |
33 | success: function(data) { | 30 | success: function(data) { |
31 | + if(!data){ | ||
32 | + AjaxFlag = 1; | ||
33 | + window.rePosFooter(); | ||
34 | + loading.hideLoadingMask(); | ||
35 | + return; | ||
36 | + } | ||
34 | $('#employ').append(data); | 37 | $('#employ').append(data); |
35 | window.rePosFooter(); | 38 | window.rePosFooter(); |
36 | loading.hideLoadingMask(); | 39 | loading.hideLoadingMask(); |
@@ -40,7 +43,7 @@ var couponAJAX = function(statu, page) { | @@ -40,7 +43,7 @@ var couponAJAX = function(statu, page) { | ||
40 | }; | 43 | }; |
41 | 44 | ||
42 | var scrollHandler = function() { | 45 | var scrollHandler = function() { |
43 | - if (direction && ($(window).scrollTop() + $(window).height() > $('body').height() - 100)) { | 46 | + if ($(window).scrollTop() + $(window).height() > $('body').height() - 100) { |
44 | page++; | 47 | page++; |
45 | couponAJAX(statu, page); | 48 | couponAJAX(statu, page); |
46 | return; | 49 | return; |
@@ -52,31 +55,6 @@ require('../common'); | @@ -52,31 +55,6 @@ require('../common'); | ||
52 | 55 | ||
53 | ellipsis.init(); | 56 | ellipsis.init(); |
54 | 57 | ||
55 | -// 判断滑动方向 | ||
56 | -$('body').on('touchstart', function(e) { | ||
57 | - var touch = e.originalEvent, | ||
58 | - startX = touch.changedTouches[0].pageX, | ||
59 | - startY = touch.changedTouches[0].pageY; | ||
60 | - $('body').on('touchmove', function(e) { | ||
61 | - touch = e.originalEvent.touches[0] || | ||
62 | - e.originalEvent.changedTouches[0]; | ||
63 | - if (touch.pageX - startX > 10) { | ||
64 | - $('body').off('touchmove'); | ||
65 | - } else if (touch.pageX - startX < -10) { | ||
66 | - $('body').off('touchmove'); | ||
67 | - } | ||
68 | - if (touch.pageY - startY > 10) { | ||
69 | - direction = false; | ||
70 | - } else if (touch.pageY - startY < -10) { | ||
71 | - direction = true; | ||
72 | - } | ||
73 | - }); | ||
74 | -}).on('touchend', function() { | ||
75 | - $('body').off('touchmove'); | ||
76 | -}); | ||
77 | - | ||
78 | - | ||
79 | - | ||
80 | $('.yoho-footer').css('border-top', '1px solid #e0e0e0'); | 58 | $('.yoho-footer').css('border-top', '1px solid #e0e0e0'); |
81 | $('.employ span').each(function(index) { | 59 | $('.employ span').each(function(index) { |
82 | employ = new Hammer($('.employ span')[index]); | 60 | employ = new Hammer($('.employ span')[index]); |
@@ -85,6 +63,7 @@ $('.employ span').each(function(index) { | @@ -85,6 +63,7 @@ $('.employ span').each(function(index) { | ||
85 | $('#employ').html(' '); | 63 | $('#employ').html(' '); |
86 | statu = index; | 64 | statu = index; |
87 | page = 1; | 65 | page = 1; |
66 | + AjaxFlag = 0; | ||
88 | couponAJAX(statu, page); | 67 | couponAJAX(statu, page); |
89 | window.rePosFooter(); | 68 | window.rePosFooter(); |
90 | }); | 69 | }); |
public/js/home/grade.page.js
0 → 100644
1 | +require('../common'); |
public/js/home/help-detail.page.js
0 → 100644
1 | +require('../common'); |
public/js/home/help.page.js
0 → 100644
1 | +require('../common'); |
@@ -10,7 +10,6 @@ | @@ -10,7 +10,6 @@ | ||
10 | @import "address-modify"; | 10 | @import "address-modify"; |
11 | @import "online-service"; | 11 | @import "online-service"; |
12 | @import "my-guang"; | 12 | @import "my-guang"; |
13 | -@import "ihelp"; | ||
14 | @import "browse-record"; | 13 | @import "browse-record"; |
15 | @import "logistic"; | 14 | @import "logistic"; |
16 | @import "pay"; | 15 | @import "pay"; |
-
Please register or login to post a comment