diff --git a/apps/product/controllers/search.js b/apps/product/controllers/search.js
index 853f425..9fa6014 100644
--- a/apps/product/controllers/search.js
+++ b/apps/product/controllers/search.js
@@ -21,9 +21,20 @@ exports.index = (req, res) => {
     res.render('search', view);
 };
 
+/* 筛选的二级页面 */
+exports.subFilter = (req, res) => {
+    const view = {
+        module: 'product',
+        page: 'filter-sub'
+    };
+
+    res.render('filter-sub', view);
+};
+
 /* 获取 筛选配置 */
 exports.fetchFilters = (req, res, next) => {
     const params = {
+        uid: 14741796, // mock data
         page: req.body.page || 1,
         order: req.body.order || 1,
         yh_channel: req.body.yh_channel || 'all',
@@ -41,10 +52,15 @@ exports.fetchFilters = (req, res, next) => {
         .then(result => {
             let filterConfig = {};
 
-            prettyFilter(result.data.filter);
-            filterConfig = camelCase(result.data.filter);
+            if (result.code === 200) {
+                prettyFilter(result.data.filter);
+                filterConfig = camelCase(result.data.filter);
+            }
 
-            res.json(filterConfig);
+            res.json({
+                code: result.code,
+                data: filterConfig
+            });
         })
         .catch(next);
 };
@@ -52,6 +68,7 @@ exports.fetchFilters = (req, res, next) => {
 /* 查询 产品列表 */
 exports.fetchProducts = (req, res, next) => {
     const params = {
+        uid: 14741796, // mock data
         page: req.body.page || 1,
         order: req.body.order || 1,
         yh_channel: req.body.yh_channel || 'all',
@@ -67,9 +84,10 @@ exports.fetchProducts = (req, res, next) => {
         code: 200
     })
         .then(result => {
-            result.data.productList = processProductList(result.data.productList);
-            result = camelCase(result);
-
+            if (result.code === 200) {
+                result.data.productList = processProductList(result.data.productList);
+                result = camelCase(result);
+            }
             res.json(result);
         })
         .catch(next);
diff --git a/apps/product/router.js b/apps/product/router.js
index e705c48..4e5d501 100644
--- a/apps/product/router.js
+++ b/apps/product/router.js
@@ -16,6 +16,7 @@ const search = require(`${cRoot}/search`);
 
 router.get('/search', search.index);
 router.post('/search', search.fetchProducts);
+router.get('/filter', search.subFilter);
 router.get('/filters.json', search.fetchFilters);
 
 // 商品详情controller
diff --git a/apps/product/views/action/filter-sub.hbs b/apps/product/views/action/filter-sub.hbs
new file mode 100644
index 0000000..c21342f
--- /dev/null
+++ b/apps/product/views/action/filter-sub.hbs
@@ -0,0 +1,4 @@
+{{! 筛选的 二级菜单}}
+<div id="filter-sub">
+    <filter-sub :data="data" :val="val" type="color"><filter-sub>
+</div>
\ No newline at end of file
diff --git a/public/js/product/filter-sub.page.js b/public/js/product/filter-sub.page.js
new file mode 100644
index 0000000..6d7b71e
--- /dev/null
+++ b/public/js/product/filter-sub.page.js
@@ -0,0 +1,29 @@
+const Vue = require('yoho-vue');
+const filterSub = require('product/filter/filter-sub.vue');
+
+// TODO: 该mock数据 应该有 上级页面传过来
+const page = {
+    type: 'brand', // 二级筛选的 类型
+    data: [ // 二级筛选的 数据
+        { id: 1, name: '红色' },
+        { id: 2, name: '红色' },
+        { id: 3, name: '红色' }
+    ],
+    val: 3 // 二级筛选 的值
+};
+
+new Vue({
+    el: '#filter-sub',
+    data: function() {
+        return {
+            type: page.type,
+            data: page.data,
+            val: page.val
+        };
+    },
+    components: {
+        filterSub
+    }
+});
+
+
diff --git a/public/vue/product/filter/filter-detail.vue b/public/vue/product/filter/filter-sub.vue
index 3f63cd8..59965ef 100644
--- a/public/vue/product/filter/filter-detail.vue
+++ b/public/vue/product/filter/filter-sub.vue
@@ -2,7 +2,6 @@
     <div>
         <brand-filter v-if="type === 'brand'" :data="data" :val.sync="val"></brand-filter>
         <normal-filter v-else :data="data" :val.sync="val">
-            <slot></slot>
         </normal-filter>
     </div>
 </template>
@@ -19,7 +18,7 @@ module.exports = {
     watch: {
         val: function(newV, oldV) {
             console.log(`type: ${this.type}, value: ${newV}`);
-        } 
+        }
     }
 };
 </script>
diff --git a/public/vue/product/filter/normal.vue b/public/vue/product/filter/normal.vue
index 080abeb..9aa0330 100644
--- a/public/vue/product/filter/normal.vue
+++ b/public/vue/product/filter/normal.vue
@@ -1,6 +1,6 @@
 <template>
     <div class="filter-detail">
-        <div class="item" v-for="item in data" :class="{active: item.id === value}" @click="toggleCheck(item.id)">
+        <div class="item" v-for="item in data" :class="{active: item.id === val}" @click="toggleCheck(item.id)">
             <div class="item-inner">
                 {{item.name}}
             </div>
@@ -10,12 +10,11 @@
 </template>
 <script>
 module.exports = {
-    props: ['data', 'type', 'value'],
+    props: ['data', 'type', 'val'],
     computed: {},
     methods: {
         toggleCheck: function(val) {
-            this.value = val;
-            this.$parent.select(val);
+            this.val = val;
         }
     }
 };
diff --git a/public/vue/product/index.vue b/public/vue/product/index.vue
deleted file mode 100644
index e69de29..0000000
--- a/public/vue/product/index.vue
+++ /dev/null
diff --git a/public/vue/product/list.vue b/public/vue/product/list.vue
index 5b51de8..d2c2acd 100644
--- a/public/vue/product/list.vue
+++ b/public/vue/product/list.vue
@@ -3,7 +3,7 @@
         <ul class="cardlist card-large clearfix">
             <li class="card" v-for="item in data">
                 <div class="card-pic">
-                    <a href="">
+                    <a href="/product/{{item.id}}">
                         <img v-lazy="item.goodsList[0].imagesUrl | resize 372 499" alt="{{item.productName}}">
                     </a>
                 </div>
@@ -28,7 +28,7 @@ module.exports = {
         /* 开启滚动加载 */
         disableFetch: Boolean,
 
-        //数据
+        // 数据
         data: Array
     },
     methods: {
diff --git a/public/vue/product/search.vue b/public/vue/product/search.vue
index 64e6088..3efa01f 100644
--- a/public/vue/product/search.vue
+++ b/public/vue/product/search.vue
@@ -1,6 +1,5 @@
 <template>
     <div>
-        <!--<filter-sub :data="brand" :value="3" type="brand"></filter-sub>-->
         <Sort :config="sortConfig" :val="sort">
         </Sort>
         <List :data="productList"></List>
@@ -19,7 +18,6 @@
     const list = require('product/list.vue');
     const drawer = require('product/drawer.vue');
     const filter = require('product/filter.vue');
-    const filterSub = require('product/filter/filter-detail.vue');
 
     Vue.use(lazyload);
     Vue.use(infinitScroll);
@@ -51,7 +49,6 @@
             list,
             sort,
             filter,
-            filterSub,
             drawer
         },
         methods: {
@@ -76,9 +73,11 @@
                     page: nextPage
                 })
                 .done(res => {
-                    self.page = res.data.page;
-                    self.totalPage = res.data.pageTotal;
-                    self.$set('productList', self.productList.concat(res.data.productList));
+                    if (res.code === 200) {
+                        self.page = res.data.page;
+                        self.totalPage = res.data.pageTotal;
+                        self.$set('productList', self.productList.concat(res.data.productList));
+                    }
                 })
                 .fail(error => {
                     tip('网络出错~');