Authored by wenjiekong

个人编辑资料,会员信息显示

... ... @@ -5,8 +5,8 @@
*/
'use strict';
// const mRoot = '../models';
// const user = require(`${mRoot}/user-service`); // user 页 model
const mRoot = '../models';
const userService = require(`${mRoot}/user-service`); // user model
/**
* 个人中心
... ... @@ -14,14 +14,21 @@
* @param {[type]} res [description]
* @return {[type]} [description]
*/
exports.index = (req, res) => {
exports.index = (req, res, next) => {
let channel = req.query.channel || req.cookies._Channel || 'boys';
let uid = '8039836';
let responseData = {
module: 'home',
page: 'user',
footerTop: true
page: 'user'
};
res.render('home/user/user', responseData);
// 真实数据输出
userService.getUserInfo(channel, uid).then(result => {
responseData.user = result;
responseData.headerData = result.headerData;
res.render('home/user/index', responseData);
}).catch(next);
// return responseData;
};
... ...
... ... @@ -3,11 +3,15 @@
* @author: gaohongwei<hongwei.gao@yoho.cn>
* @date: 2016/8/16
*/
// const api = global.yoho.API;
const api = global.yoho.API;
// const getUserInfo = uid => {
// return api.get('', {
// method: 'app.passport.profile',
// uid: uid
// });
// };
const getUserInfo = uid => {
return api.get('', {
method: 'app.passport.profile',
uid: uid
});
};
module.exports = {
getUserInfo
};
... ...
... ... @@ -4,14 +4,259 @@
* @date: 2016/8/16
*/
// 'use strict';
// const Promise = require('bluebird');
// const co = Promise.coroutine;
// const userApi = require('./user-api');
// const getUserInfo = uid => {
// return co(function *() {
// let result = {};
// let userInfo = userApi.getUserInfo(uid);
// })();
// };
'use strict';
const Promise = require('bluebird');
const _ = require('lodash');
const api = global.yoho.API;
const userApi = require('./user-api');
const headerModel = require('../../../doraemon/models/header');
const configData = {
gender: [{
key: 'gender',
value: 1,
text: '男'
}, {
key: 'gender',
value: 2,
text: '女'
}],
income: [{
key: 'income',
value: 0,
text: '请选择'
}, {
key: 'income',
value: 1,
text: '1000以下'
}, {
key: 'income',
value: 2,
text: '1000-2999'
}, {
key: 'income',
value: 3,
text: '3000-5999'
}, {
key: 'income',
value: 4,
text: '6000-7999'
}, {
key: 'income',
value: 5,
text: '8000-10000'
}, {
key: 'income',
value: 6,
text: '10000以上'
}],
profession: [{
key: 'profession',
value: 1,
text: '已工作'
}, {
key: 'profession',
value: 2,
text: '大学生'
}, {
key: 'profession',
value: 3,
text: '中学生'
}, {
key: 'profession',
value: 4,
text: '其他'
}]
};
const getUserInfo = (channel, uid) => {
return api.all([
headerModel.requestHeaderData(channel),
userApi.getUserInfo(uid)
]).then(result => {
let finalResult = {},
headerData = {},
userInfo = {};
if (result[0].code === 200) {
headerData = result[0];
}
if (result[1].code === 200) {
let email,
nickname,
username,
gender,
genderArr,
birthday,
birthdayJson,
yearArr,
monthArr,
dayArr,
profession,
professionArr,
income,
incomeArr;
userInfo = result[1].data;
email = userInfo['email'] !== undefined ? userInfo['email'] : '';
nickname = userInfo['nickname'] !== undefined ? userInfo['nickname'] : '';
username = userInfo['username'] !== undefined ? userInfo['username'] : '';
gender = userInfo['gender'] !== undefined ? userInfo['gender'] : 3;
birthday = userInfo['birthday'] !== undefined ? userInfo['birthday'] : '';
profession = userInfo['profession'] !== undefined ? userInfo['profession'] : 0;
income = userInfo['income'] !== undefined ? userInfo['income'] : 0;
genderArr = configData.gender;
for (var value of genderArr) {
if (value.value == gender) {
value.isChecked = true;
}
}
professionArr = configData.profession;
for (var value of professionArr) {
if (value.value == profession) {
value.isChecked = true;
}
}
incomeArr = configData.income;
for (var value of incomeArr) {
if (value.value == income) {
value.isChecked = true;
}
}
birthdayJson = getBirthday(birthday);
yearArr = birthdayJson.yearArr;
monthArr = birthdayJson.monthArr;
dayArr = birthdayJson.dayArr;
finalResult.userPersonalInfo = {
subTitle: '会员信息',
firstBox: true,
submitId: 'base-info',
profileSrc: userInfo['head_ico'],
email: {
labelText: '登录邮箱:',
value: email
},
name: [
{
labelText: '昵称:',
value: nickname,
key: 'nickname',
tips: '与Yoho!业务或商家品牌冲突的昵称,Yoho!将有可能收回'
},
{
labelText: '真实姓名:',
value: username,
key: 'username',
tips: '' // 4.8去掉该提示
}
],
gender: {
labelText: '性别:',
key: 'gender',
data: genderArr
},
birthday: {
labelText: '生日:',
key: 'birthday',
tips: '',
selects: [
{
key: 'year',
options: yearArr,
unit: '年'
},
{
key: 'month',
options: monthArr,
unit: '月'
},
{
key: 'day',
options: dayArr,
unit: '日'
},
]
},
profession: {
labelText: '职业:',
key: 'profession',
data: professionArr
},
income: {
labelText: '收入状况:',
key: 'income',
data: incomeArr
}
};
}
finalResult.headerData = headerData;
finalResult.meEditPage = true;
return finalResult;
});
};
const getBirthday = (birthday) => {
let year = birthday.split('-')[0],
month = birthday.split('-')[1],
day = birthday.split('-')[2],
nowYear = new Date().getFullYear(),
yearArr = [{value: 0, text: '年'}],
monthArr = [{value: 0, text: '月'}],
dayArr = [{value: 0, text: '日'}],
days = getDays(year,month);
for (let i = 1950; i <= nowYear; i++) {
let yearJson = {value: i, text: i};
if (i == year) {
yearJson.isChecked = true;
console.info(yearJson);
}
yearArr.push(yearJson);
}
for (let j = 1; j <= 12; j++) {
let monthJson = {value: j, text: j};
if (j == month) {
monthJson.isChecked = true;
}
monthArr.push(monthJson);
}
for (let k = 1; k <= days; k++) {
let dayJson = {value: k, text: k};
if (k == day) {
dayJson.isChecked = true;
}
dayArr.push(dayJson);
}
return {
yearArr: yearArr,
monthArr: monthArr,
dayArr: dayArr
}
}
const getDays = (year,month) => {
return month == 2 ?
(year % 4 ? 28 : (year % 100 ? 29 : (year % 400 ? 28 : 29))) :
((month - 1) % 7 % 2 ? 30 : 31);
}
module.exports = {
getUserInfo
};
... ...
... ... @@ -11,6 +11,7 @@ const cRoot = './controllers';
const headerModel = require('../../doraemon/models/header');
const _ = require('lodash');
const helpers = global.yoho.helpers;
// const config = global.yoho.config;
const commentController = require(`${cRoot}/comment`);
... ... @@ -148,7 +149,7 @@ router.get('/redenvelopes', RedenvelopesController.index);
/* 我的VIP*/
router.get('/vip', VipController.index);
router.get('/user', UserController.index);
router.get('/user', [getCommonHeader, getHomeNav], UserController.index);
router.get('/favorite', FavoriteController.index);
... ...
{{> layout/header}}
<div class="user-me-page me-page yoho-page clearfix">
{{# user}}
{{> path}}
{{> navigation}}
<div class="me-main">
<div class="userinfo-edit block">
<h2 class="title"></h2>
<div class="edit-box">
{{> edit/basicinfo}}
{{> edit/contactinfo}}
{{> edit/habbit}}
{{> edit/favorite}}
{{> home/edit/basicinfo}}
{{> home/edit/contactinfo}}
{{> home/edit/habbit}}
{{> home/edit/favorite}}
</div>
</div>
{{#if isShowTip}}
<p class="help-us">
如果你还使用了我们的其他产品(Yoho!Now和mars)修改个人信息时将同步
</p>
{{/if}}
</div>
{{/ user}}
{{> help-us}}
</div>
{{> layout/footer}}
</div>
\ No newline at end of file
... ...
... ... @@ -14,7 +14,7 @@
</div>
{{/ email}}
{{#each name}}
{{#name}}
<div class="form-group">
<label for="{{key}}">{{labelText}}</label>
<input type="text" name='{{key}}' id="{{key}}" class="input-1" value="{{value}}">
... ... @@ -26,7 +26,7 @@
<div class="form-group">
<label for="{{key}}">{{labelText}}</label>
{{#each data}}
<input type="radio" name='{{key}}' id="{{key}}" value="{{value}}" {{# isChecked}}checked{{/isChecked}}>{{text}}
<input type="radio" name='{{key}}' id="{{key}}" value="{{value}}" {{#isChecked}}checked{{/isChecked}}>{{text}}
{{/each}}
</div>
{{/ gender}}
... ...
... ... @@ -7,7 +7,8 @@ module.exports = () => {
if (req.session && _.isNumber(req.session._LOGIN_UID)) {
req.user.uid = req.session._LOGIN_UID;
}
req.user.uid = 11993475;
req.user.uid = 11993475;
// session 没有读取到的时候,从 cookie 读取 UID
if (!req.user.uid && req.cookies._UID) {
req.user.uid = cookie.getUid(req);
... ...