Authored by 郝肖肖

品类api接口

@@ -62,14 +62,19 @@ module.exports = { @@ -62,14 +62,19 @@ module.exports = {
62 62
63 /* 全部分类 */ 63 /* 全部分类 */
64 cate: (req, res) => { 64 cate: (req, res) => {
  65 + res.render('brand/cate', {
  66 + module: 'channel',
  67 + page: 'cate'
  68 + });
  69 + },
  70 +
  71 + // 全部分类api
  72 + getCateList: (req, res) => {
65 let params = req.query; 73 let params = req.query;
66 74
67 - brandModel.getCateListData(params).then(result => {  
68 - res.render('brand/cate', {  
69 - module: 'channel',  
70 - page: 'cate',  
71 - result: result 75 + brandModel.getCateListData(params)
  76 + .then(result => {
  77 + res.json(result);
72 }); 78 });
73 - });  
74 } 79 }
75 }; 80 };
@@ -57,8 +57,9 @@ module.exports = { @@ -57,8 +57,9 @@ module.exports = {
57 * @returns {*} 57 * @returns {*}
58 */ 58 */
59 getCateListData(params) { 59 getCateListData(params) {
60 - return api.get('', {  
61 - method: ''  
62 - }); 60 + return api.get('', Object.assign(params, {
  61 + method: 'app.sort.get'
  62 + })
  63 + );
63 } 64 }
64 }; 65 };
@@ -108,17 +108,69 @@ const getBrandListData = params => { @@ -108,17 +108,69 @@ const getBrandListData = params => {
108 * @returns {*|Promise.<TResult>} 108 * @returns {*|Promise.<TResult>}
109 */ 109 */
110 const getCateListData = params => { 110 const getCateListData = params => {
111 - let finalResult = {}; 111 + let finalResult = [];
  112 + let item = {};
  113 + let oneClass = [];
  114 + let subitem = {};
  115 + let genderArr = {boy: '1,3', girl: '2,3', kids: '1,2,3', lifestyle: '1,2,3'};
112 116
113 - return api.all([brandApi.getCateListData(params)]).then(result => { 117 + return brandApi.getCateListData(params).then(result => {
114 118
115 - // 待处理,拼接输出模拟数据  
116 - Object.assign(finalResult, {  
117 - brandBg: 'http://7xwj52.com1.z0.glb.clouddn.com/brandbg.jpg',  
118 - brandLogo: '',  
119 - brandName: 'A.Dorad',  
120 - brandIntro: 'Dora毕业于中国美术学院的珠宝设计专业。毕业之后,Dora便开始游走于各国,吸收各地首饰设计的精髓,之后又在首尔修学了3年,A.Dorad饰品系列诞生于首尔, 设计师Dora将首尔设为起点并逐步推向国际。2013年,A.Dorad将旗下主力设计师带领进军广州,并以此为基地,以国际化的标准,设计出全新概念饰品。A.Dorad给人们提供高品质的服务,并且拥有独有的工艺。多样的珠宝首饰产品造型更衬托出其前卫、高雅的设计理念。珍贵的矿石搭配流行的创意理念,启迪了人类艺术。A.Dorad饰品符合现代年轻人对珠宝的追求与热爱,充满个性与时尚.它可以满足不同人的需求独家定制专属于自己的水晶饰品。A.Dorad将继续发挥无与伦比的创造力并开启通往浪漫梦幻的大门。',  
121 - showMore: false 119 + if (result.code !== 200) {
  120 + return [];
  121 + }
  122 +
  123 + _.forEach(result.data, (category, categorykey) => {
  124 + oneClass = {name: categorykey, ca: []};
  125 +
  126 + _.forEach(category, (cate) => {
  127 + item = {
  128 + id: cate.category_id,
  129 + name: cate.category_name,
  130 + sort: cate.relation_parameter.sort,
  131 + sub: []
  132 + };
  133 + if (_.isEmpty(cate.sub)) {
  134 + item.url = helpers.urlFormat('/', {
  135 + sort: item.sort,
  136 + sort_name: item.name,
  137 + gender: genderArr[categorykey]
  138 + }, 'list');
  139 + oneClass.ca.push(item);
  140 + return true;// equal continue;
  141 + }
  142 +
  143 + // 有子分类的,首先添加一级分类
  144 + item.sub.push({
  145 + name: '全部' + item.name,
  146 + id: item.sort,
  147 + url: helpers.urlFormat('/', {
  148 + sort: item.sort,
  149 + sort_name: item.name,
  150 + gender: genderArr[categorykey]
  151 + }, 'list'),
  152 + sub: []
  153 + });
  154 +
  155 + _.forEach(cate.sub, (sub) => {
  156 + subitem = {
  157 + id: sub.category_id,
  158 + name: sub.category_name,
  159 + sort: sub.relation_parameter.sort,
  160 + url: ''
  161 + };
  162 + subitem.url = helpers.urlFormat('/', {
  163 + sort: subitem.sort,
  164 + sort_name: subitem.name,
  165 + gender: genderArr[categorykey]
  166 + }, 'list');
  167 + item.sub.push(subitem);
  168 + });
  169 +
  170 + oneClass.ca.push(item);
  171 + });
  172 +
  173 + finalResult.push(oneClass);
122 }); 174 });
123 175
124 return finalResult; 176 return finalResult;
@@ -21,6 +21,7 @@ router.get('/get-brand-shop-goods', brand.getBrandShopGoods); // 店铺介绍 @@ -21,6 +21,7 @@ router.get('/get-brand-shop-goods', brand.getBrandShopGoods); // 店铺介绍
21 router.get('/brand-list', brand.brandList); // 品牌列表页 21 router.get('/brand-list', brand.brandList); // 品牌列表页
22 router.get('/get-brand-list', brand.getBrandList); // 获取品牌列表数据 22 router.get('/get-brand-list', brand.getBrandList); // 获取品牌列表数据
23 router.get('/cate', brand.cate); // 全部分类 23 router.get('/cate', brand.cate); // 全部分类
  24 +router.get('/get-cate-list', brand.getCateList); // 全部分类数据列表
24 25
25 26
26 router.get('/sidebar', channel.sidebar); // 资源位接口 27 router.get('/sidebar', channel.sidebar); // 资源位接口
@@ -1275,6 +1275,18 @@ @@ -1275,6 +1275,18 @@
1275 1275
1276 &.focus { 1276 &.focus {
1277 background-color: #fff; 1277 background-color: #fff;
  1278 +
  1279 + &:after {
  1280 + content: "";
  1281 + width: 0;
  1282 + height: 0;
  1283 + border-top: 20px solid transparent;
  1284 + border-bottom: 20px solid transparent;
  1285 + border-right: 20px solid #efefef;
  1286 + position: absolute;
  1287 + margin-top: 32px;
  1288 + right: 55%;
  1289 + }
1278 } 1290 }
1279 1291
1280 &.highlight { 1292 &.highlight {
@@ -1286,7 +1298,7 @@ @@ -1286,7 +1298,7 @@
1286 .sub-level-container { 1298 .sub-level-container {
1287 float: left; 1299 float: left;
1288 box-sizing: border-box; 1300 box-sizing: border-box;
1289 - background: #fff; 1301 + background: #f6f6f6;
1290 width: 55%; 1302 width: 55%;
1291 height: 100%; 1303 height: 100%;
1292 } 1304 }
@@ -1311,25 +1323,9 @@ @@ -1311,25 +1323,9 @@
1311 background: #eee; 1323 background: #eee;
1312 } 1324 }
1313 1325
1314 - &:last-child {  
1315 - border-bottom: none;  
1316 - }  
1317 -  
1318 &:hover { 1326 &:hover {
1319 background-color: #efefef; 1327 background-color: #efefef;
1320 } 1328 }
1321 -  
1322 - &:first-child:before {  
1323 - content: "";  
1324 - width: 0;  
1325 - height: 0;  
1326 - border-top: 20px solid transparent;  
1327 - border-bottom: 20px solid transparent;  
1328 - border-right: 20px solid #efefef;  
1329 - position: absolute;  
1330 - margin-top: 32px;  
1331 - margin-left: -40px;  
1332 - }  
1333 } 1329 }
1334 1330
1335 a { 1331 a {
@@ -1356,8 +1352,19 @@ @@ -1356,8 +1352,19 @@
1356 1352
1357 }, 1353 },
1358 methods: { 1354 methods: {
1359 - getBrandList() { 1355 + getCateList() {
  1356 + let data = {
  1357 + channel: ''
  1358 + };
1360 1359
  1360 + $.ajax({
  1361 + url: '/get-cate-list',
  1362 + data: data
  1363 + }).then(result => {
  1364 + console.log(result, '====');
  1365 + }).fail(() => {
  1366 + tip('网络错误');
  1367 + });
1361 }, 1368 },
1362 cateNavTopFun(e) { 1369 cateNavTopFun(e) {
1363 var $this = $(e.target).closest('li'), 1370 var $this = $(e.target).closest('li'),
@@ -1396,15 +1403,11 @@ @@ -1396,15 +1403,11 @@
1396 1403
1397 $subLevel.not('.hide').addClass('hide'); 1404 $subLevel.not('.hide').addClass('hide');
1398 $subLevel.eq(index).removeClass('hide'); 1405 $subLevel.eq(index).removeClass('hide');
1399 -  
1400 - $subLevel.css({  
1401 - top: $cur.offset().top - 60  
1402 - });  
1403 } 1406 }
1404 } 1407 }
1405 }, 1408 },
1406 created() { 1409 created() {
1407 - 1410 + this.getCateList();
1408 } 1411 }
1409 }; 1412 };
1410 </script> 1413 </script>