Authored by ccbikai

add focus

... ... @@ -4,16 +4,22 @@
* @date: 2016/05/09
*/
'use strict';
const channelModel = require('../models/channel');
/**
* 频道选择页
*/
const channel = {
index: (req, res) => {
index(req, res) {
res.render('index', {
module: 'channel',
page: 'home'
});
},
resources(req, res, next) {
channelModel.getResourcesData(req.yoho.channel).then(result => {
return res.json(result);
}).catch(next);
}
};
... ...
'use strict';
const api = global.yoho.ServiceAPI;
const contentCode = require('../../../config/content-code');
const resourcesProcess = require('../../../utils/resources-process');
let channel = {
getResourcesData(c) {
return api.get('operations/api/v5/resource/get', {
content_code: contentCode.channel[c]
}, {
cache: true,
code: 200
}).then(result => {
return resourcesProcess(result.data);
});
}
};
module.exports = channel;
... ...
... ... @@ -8,10 +8,11 @@
const expressRouter = require('express').Router;
const cRoot = './controllers';
const channel = require(cRoot);
const channel = require(cRoot + '/channel');
const router = expressRouter();
router.get('/', channel.index); // 首页
router.get('/resources', channel.resources); // 资源位接口
module.exports = router;
... ...
... ... @@ -16,7 +16,7 @@ module.exports = {
siteUrl: '//m.yohobuy.com',
domains: {
api: 'http://devapi.yoho.cn:58078/',
service: 'http://devservice.yoho.cn:58077/'
service: 'http://123.206.1.104:28077/'
},
subDomains: {
host: '.m.yohobuy.com',
... ...
... ... @@ -6,52 +6,10 @@
'use strict';
const saleContentCode = {
boys: {
sale: '153180b9a88c0b565848850c523bb637',
breakCode: 'd763e3f8d208cbed8f100253ea4f8946',
vip: '6b9810a442efe1e6252b134154d36769'
},
girls: {
sale: '0b2d133419a0f7c381306fd3522365e1',
breakCode: '77258d0b526c7b6e243c1419877ead4a',
vip: 'e83f3582df32b6753eed49fda236a755'
},
kids: {
sale: 'de23648d28ee1e8a3f087a9dbac506f8',
breakCode: '3f0898f1089b7bef5f3e071725c7a608',
vip: '664935745012db6e2a96a7d57f75512f'
},
lifestyle: {
sale: '01269e498ff5b07756e0733ec0e88c75',
breakCode: '0020a5762771aa16902a666c9491394e',
vip: '647f1154d30b323ff46c787fc78aef65'
}
const channel = {
men: '9ee58aadd9559d07207fe4a98843eaac'
};
const guangContentCode = {
special: '89cc20483ee2cbc8a716dcfe2b6c7603'
};
const channelContentCode = {
boys: '8512bf0755cc549ac323f852c9fd945d',
girls: '189b6686065dbd6755dd6906cf03c002',
kids: 'b8c1bff53d4ea60f978926d538620636',
lifestyle: '61cd852c6afcf60660196154f66a3a62',
index: '7ba9118028f9b22090b57341487567eb'
};
const bottomBannerContentCode = {
boys: 'a2ec977c027d0cd9cdccb356ddf16b08',
girls: '8c8bd1b89a22e5895f05882e0825b493'
};
const outletContentCode = 'c19ffa03f053f4cac3690b22c8da26b7';
module.exports = {
sale: saleContentCode,
outlet: outletContentCode,
channel: channelContentCode,
bottom: bottomBannerContentCode,
guang: guangContentCode
channel
};
... ...
... ... @@ -12,7 +12,7 @@ module.exports = () => {
pageChannel: {},
yohoTitle: 'Yoho!BLK'
};
const channel = req.query.channel || req.cookies._Channel || 'boys';
const channel = req.query.channel || req.cookies._Channel || 'men';
// 用于头部颜色控制
yoho.pageChannel[channel] = true;
... ...
... ... @@ -75,6 +75,7 @@
"stylelint": "^6.9.0",
"stylelint-config-yoho": "1.2.5",
"vue-loader": "^8.5.3",
"vue-swipe": "^0.2.6",
"webpack": "^1.13.1",
"webpack-dev-server": "^1.14.1",
"webpack-stream": "^3.1.0",
... ...
<template>
<div class="resources">
{{message}}
<template v-for="floor in resources">
<div class="focus" v-if="floor.focus">
<focus :list="floor.data"></focus>
</div>
<div class="title-image" v-if="floor.titleImage">
<title-image></title-image>
</div>
</template>
</div>
</template>
<script>
const $ = require('yoho-jquery');
const tip = require('common/tip');
const focus = require('component/resources/focus.vue');
const titleImage = require('component/resources/title-image.vue');
module.exports = {
data() {
return {
message: 'resources'
resources: []
};
},
components: {
focus: focus,
titleImage: titleImage
},
init() {
$.ajax({
url: '/resources'
}).then(result => {
this.resources = result;
}).fail(() => {
tip('网络错误');
});
}
};
</script>
... ...
<template>
<swipe class="my-swipe">
<swipe-item v-for="item in list" class="aaaa">
<a href="{{item.url}}" title="{{item.title}}">
<img src="{{item.src}}">
</a>
</swipe-item>
</swipe>
</template>
<script>
require('vue-swipe/dist/vue-swipe.css');
const swipe = require('vue-swipe');
module.exports = {
props: ['list'],
components: {
swipe: swipe.Swipe,
swipeItem: swipe.SwipeItem
}
};
</script>
<style>
</style>
... ...
<template>
<div class="focus">
title-image
</div>
</template>
<script>
module.exports = {
data() {
return {
message: 'resources'
};
}
};
</script>
<style>
</style>
... ...
... ... @@ -58,7 +58,7 @@ module.exports = {
}]
},
resolve: {
modulesDirectories: ['node_modules', './vue', './hbs']
modulesDirectories: ['node_modules', './vue', './hbs', './js']
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(),
... ...