Merge branch 'develop' of git.yoho.cn:fe/xianyu-ufo-app-web into develop
Showing
11 changed files
with
237 additions
and
95 deletions
@@ -4,20 +4,19 @@ | @@ -4,20 +4,19 @@ | ||
4 | <div class="left-content"> | 4 | <div class="left-content"> |
5 | <Scroll> | 5 | <Scroll> |
6 | <div class="category-left-item-root" | 6 | <div class="category-left-item-root" |
7 | - v-for="(item, index) in categoryParent" | ||
8 | - :key="index" | ||
9 | - :data-id="item" | ||
10 | - @click="onClick(item)"> | ||
11 | - <div :class="{'category-left-item-select-flag' : item.isSelect }"></div> | ||
12 | - <p | ||
13 | - class="category-left-item-title" | ||
14 | - :class="{'category-left-item-select' : item.isSelect }"> | ||
15 | - {{item.name}} | ||
16 | - </p> | 7 | + v-for="(item, index) in categoryParent" |
8 | + :key="index" | ||
9 | + :class="{'category-left-item-select-flag' : item.isSelect }" | ||
10 | + :data-id="item" | ||
11 | + @click="onClick(item)"> | ||
12 | + <p | ||
13 | + class="category-left-item-title" | ||
14 | + :class="{'category-left-item-select' : item.isSelect }"> | ||
15 | + {{item.name}} | ||
16 | + </p> | ||
17 | </div> | 17 | </div> |
18 | </Scroll> | 18 | </Scroll> |
19 | </div> | 19 | </div> |
20 | - <div class="left-right-split-line"></div> | ||
21 | <div class="right-content"> | 20 | <div class="right-content"> |
22 | <Scroll> | 21 | <Scroll> |
23 | <div v-for="(itemSub, index) in categorySubList" :key="index"> | 22 | <div v-for="(itemSub, index) in categorySubList" :key="index"> |
@@ -35,8 +34,8 @@ | @@ -35,8 +34,8 @@ | ||
35 | :width="60" | 34 | :width="60" |
36 | :height="60" | 35 | :height="60" |
37 | /> | 36 | /> |
38 | - <p class="item-title">{{item.name}}</p> | ||
39 | </div> | 37 | </div> |
38 | + <p class="item-title">{{item.name}}</p> | ||
40 | <LayoutLink v-if="item.isShow" class="item-a-div" :href="item.link"></LayoutLink> | 39 | <LayoutLink v-if="item.isShow" class="item-a-div" :href="item.link"></LayoutLink> |
41 | </div> | 40 | </div> |
42 | </div> | 41 | </div> |
@@ -114,22 +113,19 @@ export default { | @@ -114,22 +113,19 @@ export default { | ||
114 | background-color: #FFFFFF; | 113 | background-color: #FFFFFF; |
115 | } | 114 | } |
116 | 115 | ||
117 | - .left-right-split-line { | ||
118 | - height: 100%; | ||
119 | - width: 2px; | ||
120 | - background-color: #EEEEEE; | ||
121 | - } | ||
122 | - | ||
123 | .left-content { | 116 | .left-content { |
124 | - width: 30%; | 117 | + width: 28%; |
125 | height: 100%; | 118 | height: 100%; |
119 | + border-right: 1px solid #EEEEEE; | ||
120 | + flex-shrink: 0; | ||
126 | } | 121 | } |
127 | 122 | ||
128 | .right-content { | 123 | .right-content { |
129 | display: flex; | 124 | display: flex; |
130 | flex-direction: column; | 125 | flex-direction: column; |
131 | - width: 70%; | 126 | + flex-grow: 1; |
132 | height: 100%; | 127 | height: 100%; |
128 | + margin: 0 20px; | ||
133 | } | 129 | } |
134 | 130 | ||
135 | .category-left-item-root { | 131 | .category-left-item-root { |
@@ -139,6 +135,7 @@ export default { | @@ -139,6 +135,7 @@ export default { | ||
139 | align-items: center; | 135 | align-items: center; |
140 | height: 104px; | 136 | height: 104px; |
141 | line-height: 104px; | 137 | line-height: 104px; |
138 | + position: relative; | ||
142 | } | 139 | } |
143 | 140 | ||
144 | .category-left-item-title { | 141 | .category-left-item-title { |
@@ -154,17 +151,19 @@ export default { | @@ -154,17 +151,19 @@ export default { | ||
154 | } | 151 | } |
155 | 152 | ||
156 | .category-left-item-select { | 153 | .category-left-item-select { |
157 | - font-size: 48px; | 154 | + font-size: 44px; |
158 | color: #000000; | 155 | color: #000000; |
159 | } | 156 | } |
160 | 157 | ||
161 | - .category-left-item-select-flag { | ||
162 | - width: 9px; | 158 | + .category-left-item-select-flag:before { |
159 | + content: ""; | ||
160 | + width: 6px; | ||
163 | height: 48px; | 161 | height: 48px; |
164 | - margin-bottom: 10px; | ||
165 | - margin-top: 10px; | 162 | + position: absolute; |
163 | + left: 0; | ||
164 | + top: 50%; | ||
165 | + margin-top: -24px; | ||
166 | background-color: #000000; | 166 | background-color: #000000; |
167 | - justify-self: flex-start; | ||
168 | } | 167 | } |
169 | 168 | ||
170 | .category-sub-root { | 169 | .category-sub-root { |
@@ -182,21 +181,17 @@ export default { | @@ -182,21 +181,17 @@ export default { | ||
182 | 181 | ||
183 | .item-div { | 182 | .item-div { |
184 | position: relative; | 183 | position: relative; |
185 | - display: flex; | ||
186 | flex: 0 0 33%; | 184 | flex: 0 0 33%; |
187 | - height: 195px; | 185 | + padding: 20px 0; |
188 | } | 186 | } |
189 | 187 | ||
190 | .item-imge-div { | 188 | .item-imge-div { |
191 | - height: 100%; | ||
192 | width: 100%; | 189 | width: 100%; |
190 | + height: 130px; | ||
193 | display: flex; | 191 | display: flex; |
194 | - flex-direction: column; | ||
195 | - justify-content: space-between; | ||
196 | - position: absolute; | ||
197 | - z-index: 1; | ||
198 | - padding-top: 20px; | ||
199 | - padding-bottom: 20px; | 192 | + align-items: center; |
193 | + justify-content: center; | ||
194 | + position: relative; | ||
200 | } | 195 | } |
201 | 196 | ||
202 | .item-imge { | 197 | .item-imge { |
@@ -213,7 +208,6 @@ export default { | @@ -213,7 +208,6 @@ export default { | ||
213 | display: -webkit-box; | 208 | display: -webkit-box; |
214 | -webkit-box-orient: vertical; | 209 | -webkit-box-orient: vertical; |
215 | overflow: hidden; | 210 | overflow: hidden; |
216 | - | ||
217 | } | 211 | } |
218 | 212 | ||
219 | .item-a-div { | 213 | .item-a-div { |
1 | <template> | 1 | <template> |
2 | - <LayoutApp> | 2 | + <LayoutApp title="我的优惠券"> |
3 | <div class="tab"> | 3 | <div class="tab"> |
4 | <div class="item right-line" :class="type ==='unused' ? 'item-selected' : 'item-default'" | 4 | <div class="item right-line" :class="type ==='unused' ? 'item-selected' : 'item-default'" |
5 | @click="onChangeList('unused')">未使用{{unused.total && '('+ unused.total + ')' || null}} | 5 | @click="onChangeList('unused')">未使用{{unused.total && '('+ unused.total + ')' || null}} |
@@ -84,7 +84,8 @@ export default { | @@ -84,7 +84,8 @@ export default { | ||
84 | bounce: { | 84 | bounce: { |
85 | top: false | 85 | top: false |
86 | }, | 86 | }, |
87 | - pullUpLoad: true | 87 | + pullUpLoad: true, |
88 | + pullDownRefresh: false | ||
88 | }, | 89 | }, |
89 | type: 'unused', | 90 | type: 'unused', |
90 | list: [], | 91 | list: [], |
@@ -218,6 +219,7 @@ export default { | @@ -218,6 +219,7 @@ export default { | ||
218 | 219 | ||
219 | .item-price { | 220 | .item-price { |
220 | font-size: 72px; | 221 | font-size: 72px; |
222 | + font-weight: bold; | ||
221 | color: #002B47; | 223 | color: #002B47; |
222 | } | 224 | } |
223 | 225 |
1 | <template> | 1 | <template> |
2 | - <LayoutApp :show-back="true" :title="title"> | ||
3 | - <Scroll | ||
4 | - ref="scrolllist" | ||
5 | - :scroll-events="['scroll-end','scroll']" | ||
6 | - @scroll-end="fetchList(isMore)" | ||
7 | - v-if="favoriteProductList.list.length" | ||
8 | - class="fav-scroll-bg" | ||
9 | - > | 2 | + <LayoutApp :show-back="true" :title="title" class="favorite-wrapper"> |
3 | + <Scroll | ||
4 | + ref="scrolllist" | ||
5 | + :scroll-events="['scroll-end', 'scroll']" | ||
6 | + @scroll-end="fetchList(isMore)" | ||
7 | + v-if="favoriteProductList.list.length" | ||
8 | + class="fav-scroll-bg" | ||
9 | + > | ||
10 | <ProductList :list="favoriteProductList.list"></ProductList> | 10 | <ProductList :list="favoriteProductList.list"></ProductList> |
11 | </Scroll> | 11 | </Scroll> |
12 | <!-- <empty-list v-show="!isShowEmpty" /> --> | 12 | <!-- <empty-list v-show="!isShowEmpty" /> --> |
13 | - <UfoNoItem :tip="`暂无数据`" v-else></UfoNoItem> | 13 | + <UfoNoItem class="empty" :tip="`暂无数据`" v-else></UfoNoItem> |
14 | </LayoutApp> | 14 | </LayoutApp> |
15 | </template> | 15 | </template> |
16 | <script> | 16 | <script> |
17 | -import ProductList from '../../list/components/productList'; | 17 | +import ProductList from "../../list/components/productList"; |
18 | import EmptyList from "../../order/order-list/components/empty"; | 18 | import EmptyList from "../../order/order-list/components/empty"; |
19 | -import UfoNoItem from '../../../components/ufo-no-item' | ||
20 | -import {Scroll} from 'cube-ui'; | ||
21 | -import {createNamespacedHelpers} from 'vuex'; | 19 | +import UfoNoItem from "../../../components/ufo-no-item"; |
20 | +import { Scroll } from "cube-ui"; | ||
21 | +import { createNamespacedHelpers } from "vuex"; | ||
22 | 22 | ||
23 | -const {mapState, mapActions} = createNamespacedHelpers('home/favorite'); | 23 | +const { mapState, mapActions } = createNamespacedHelpers("home/favorite"); |
24 | 24 | ||
25 | export default { | 25 | export default { |
26 | - name: 'list', | 26 | + name: "list", |
27 | components: { | 27 | components: { |
28 | ProductList, | 28 | ProductList, |
29 | Scroll, | 29 | Scroll, |
@@ -34,22 +34,22 @@ export default { | @@ -34,22 +34,22 @@ export default { | ||
34 | return { | 34 | return { |
35 | scrollToY: -200, | 35 | scrollToY: -200, |
36 | scrollToTime: 700, | 36 | scrollToTime: 700, |
37 | - scrollToEasing: 'bounce', | 37 | + scrollToEasing: "bounce", |
38 | scrollToEasingOptions: [ | 38 | scrollToEasingOptions: [ |
39 | { | 39 | { |
40 | - text: 'bounce', | ||
41 | - value: 'bounce' | 40 | + text: "bounce", |
41 | + value: "bounce" | ||
42 | }, | 42 | }, |
43 | { | 43 | { |
44 | - text: 'swipe', | ||
45 | - value: 'swipe' | 44 | + text: "swipe", |
45 | + value: "swipe" | ||
46 | }, | 46 | }, |
47 | { | 47 | { |
48 | - text: 'swipeBounce', | ||
49 | - value: 'swipeBounce' | 48 | + text: "swipeBounce", |
49 | + value: "swipeBounce" | ||
50 | } | 50 | } |
51 | ], | 51 | ], |
52 | - title: '我的收藏', | 52 | + title: "我的收藏", |
53 | scrollOptions: { | 53 | scrollOptions: { |
54 | bounce: { | 54 | bounce: { |
55 | top: false | 55 | top: false |
@@ -62,39 +62,38 @@ export default { | @@ -62,39 +62,38 @@ export default { | ||
62 | // mounted() { | 62 | // mounted() { |
63 | // this.fetchFavoriteList(); | 63 | // this.fetchFavoriteList(); |
64 | // }, | 64 | // }, |
65 | - activated(){ | ||
66 | - console.log('favorite====activated') | 65 | + activated() { |
66 | + console.log("favorite====activated"); | ||
67 | let params = { | 67 | let params = { |
68 | - isReset: true, | 68 | + isReset: true |
69 | }; | 69 | }; |
70 | - | ||
71 | - this.fetchFavoriteList({isReset: true}); | 70 | + |
71 | + this.fetchFavoriteList({ isReset: true }); | ||
72 | // this.scrollToTop(); | 72 | // this.scrollToTop(); |
73 | }, | 73 | }, |
74 | methods: { | 74 | methods: { |
75 | - ...mapActions(['fetchFavoriteList']), | 75 | + ...mapActions(["fetchFavoriteList"]), |
76 | 76 | ||
77 | scrollToTop() { | 77 | scrollToTop() { |
78 | // let height = this.$refs.scroll.scrollHeight | 78 | // let height = this.$refs.scroll.scrollHeight |
79 | - console.log(this.$refs) | ||
80 | - console.log(this.$refs.scrolllist) | 79 | + console.log(this.$refs); |
80 | + console.log(this.$refs.scrolllist); | ||
81 | this.$refs.scroll.scrollTo( | 81 | this.$refs.scroll.scrollTo( |
82 | 0, | 82 | 0, |
83 | this.scrollToY, | 83 | this.scrollToY, |
84 | this.scrollToTime, | 84 | this.scrollToTime, |
85 | ease[this.scrollToEasing] | 85 | ease[this.scrollToEasing] |
86 | - ) | 86 | + ); |
87 | }, | 87 | }, |
88 | 88 | ||
89 | async fetchList(isMore) { | 89 | async fetchList(isMore) { |
90 | - if(this.isMore){ | 90 | + if (this.isMore) { |
91 | let params = { | 91 | let params = { |
92 | - isReset: false, | 92 | + isReset: false |
93 | }; | 93 | }; |
94 | - await this.fetchFavoriteList({isReset: false}); | 94 | + await this.fetchFavoriteList({ isReset: false }); |
95 | } | 95 | } |
96 | - | ||
97 | - }, | 96 | + } |
98 | // scroll({ y }) { | 97 | // scroll({ y }) { |
99 | // const height = this.$refs.banner.$el.offsetHeight + this.$refs.header.offsetHeight; | 98 | // const height = this.$refs.banner.$el.offsetHeight + this.$refs.header.offsetHeight; |
100 | 99 | ||
@@ -105,15 +104,27 @@ export default { | @@ -105,15 +104,27 @@ export default { | ||
105 | // } | 104 | // } |
106 | // } | 105 | // } |
107 | }, | 106 | }, |
108 | - | 107 | + |
109 | computed: { | 108 | computed: { |
110 | - ...mapState(['favoriteProductList','isMore']), | ||
111 | - }, | 109 | + ...mapState(["favoriteProductList", "isMore"]) |
110 | + } | ||
112 | }; | 111 | }; |
113 | </script> | 112 | </script> |
114 | 113 | ||
115 | -<style scoped> | ||
116 | - .fav-scroll-bg { | ||
117 | - background-color: #f5f5f5; | 114 | +<style lang="scss" scoped> |
115 | +.favorite-wrapper { | ||
116 | + /deep/ .layout-context { | ||
117 | + display: flex; | ||
118 | + flex-direction: column; | ||
118 | } | 119 | } |
120 | + | ||
121 | + .empty { | ||
122 | + flex: 1; | ||
123 | + } | ||
124 | +} | ||
125 | + | ||
126 | +.fav-scroll-bg { | ||
127 | + background-color: #f5f5f5; | ||
128 | +} | ||
119 | </style> | 129 | </style> |
130 | + |
@@ -36,6 +36,7 @@ export default { | @@ -36,6 +36,7 @@ export default { | ||
36 | .news-list-title { | 36 | .news-list-title { |
37 | margin-top: 60px; | 37 | margin-top: 60px; |
38 | font-size: 40px; | 38 | font-size: 40px; |
39 | + font-weight: bold; | ||
39 | color: #000000; | 40 | color: #000000; |
40 | } | 41 | } |
41 | .news-list-content { | 42 | .news-list-content { |
1 | <template> | 1 | <template> |
2 | <div class="bg"> | 2 | <div class="bg"> |
3 | - <div class="item" v-if="list.length" v-for="(product,index) in list" @click="goDetail(product)" | 3 | + <div class="product-list-item" v-if="list.length" v-for="(product,index) in list" @click="goDetail(product, index)" |
4 | :key="index" :class="(index) % 2 === 0 && 'magrin-right'"> | 4 | :key="index" :class="(index) % 2 === 0 && 'magrin-right'"> |
5 | <div class="item-top"> | 5 | <div class="item-top"> |
6 | <div class="item-price"> | 6 | <div class="item-price"> |
@@ -21,15 +21,87 @@ import ImgSize from '../../../components/img-size'; | @@ -21,15 +21,87 @@ import ImgSize from '../../../components/img-size'; | ||
21 | export default { | 21 | export default { |
22 | props: { | 22 | props: { |
23 | list: Array, | 23 | list: Array, |
24 | + param: Object, | ||
25 | + }, | ||
26 | + data: function() { | ||
27 | + return { | ||
28 | + yasFirstId: 0, | ||
29 | + }; | ||
24 | }, | 30 | }, |
25 | methods: { | 31 | methods: { |
26 | - goDetail(product) { | 32 | + goDetail(product, index) { |
33 | + this.yasDetail(product.id,index); | ||
27 | this.$router.push({ | 34 | this.$router.push({ |
28 | name: 'ProductDetail', | 35 | name: 'ProductDetail', |
29 | params: { | 36 | params: { |
30 | productId: product.id, | 37 | productId: product.id, |
31 | } | 38 | } |
32 | }); | 39 | }); |
40 | + }, | ||
41 | + yasShowEvent(height) { | ||
42 | + // 获取列表单个元素高度 | ||
43 | + let index = 0; | ||
44 | + | ||
45 | + if (height) { | ||
46 | + // 获取第一个曝光元素 | ||
47 | + let item = document.querySelector('.product-list-item'); | ||
48 | + let itemHeight = item.offsetHeight; | ||
49 | + let row = parseInt((height - 12) / itemHeight) + 1; | ||
50 | + | ||
51 | + index = row * 2 - 2; | ||
52 | + } | ||
53 | + | ||
54 | + // 获取曝光列表 | ||
55 | + let list = []; | ||
56 | + | ||
57 | + for (let i = 0; i < 6; i++) { | ||
58 | + if (this.list[i + index]) { | ||
59 | + list.push(this.list[i + index]); | ||
60 | + } | ||
61 | + } | ||
62 | + | ||
63 | + // 判断是否是重复曝光 | ||
64 | + if (list.length && list[0].id !== this.yasFirstId) { | ||
65 | + this.yasFirstId = list[0].id; | ||
66 | + | ||
67 | + // 1.P_NAME:页面名称,XY_UFOSearchList,XY_UFOSeriesList,XY_UFOBrandList、XY_UFOProductPoolList等; | ||
68 | + // 2.TYPE_ID:列表页入口类型,1-搜索结果页,2-系列,3-品牌,4-商品池; | ||
69 | + // 3.P_PARAM:页面参数,搜索关键词,系列ID,品牌ID,商品池ID; | ||
70 | + // 4.TAB_ID:tab切id,1-人气,2-价格,3-新品; | ||
71 | + // 5.TAB_NAME:tab切名称,人气,价格,新品; | ||
72 | + // 6.I_INDEX:曝光顺序; | ||
73 | + // 7.PRD_ID:商品id; | ||
74 | + let DATA = []; | ||
75 | + | ||
76 | + list.map((value, i) => { | ||
77 | + DATA.push({...this.param, I_INDEX: i + index, PRD_ID: value.id}); | ||
78 | + }); | ||
79 | + console.log(DATA) | ||
80 | + this.$store.dispatch('reportYas', { | ||
81 | + params: { | ||
82 | + param: {DATA}, | ||
83 | + appop: 'XY_UFO_SHOW_EVENT' | ||
84 | + } | ||
85 | + }); | ||
86 | + } | ||
87 | + }, | ||
88 | + | ||
89 | + yasDetail(id, index) { | ||
90 | + // XY_UFO_PRD_LIST_C | ||
91 | + // 1.P_NAME:页面名称,XY_UFOSearchList,XY_UFOSeriesList,XY_UFOBrandList、XY_UFOProductPoolList等; | ||
92 | + // 2.TYPE_ID:列表页入口类型,1-搜索结果页,2-系列,3-品牌,4-商品池; | ||
93 | + // 3.P_PARAM:页面参数,搜索关键词,系列ID,品牌ID,商品池ID; | ||
94 | + // 4.TAB_ID:tab切id,1-人气,2-价格,3-新品; | ||
95 | + // 5.TAB_NAME:tab切名称,人气,价格,新品; | ||
96 | + // 6.I_INDEX:商品顺序号,从1开始递增; | ||
97 | + // 7.PRD_ID:商品id | ||
98 | + console.log({...this.param, I_INDEX: index, PRD_ID: id }) | ||
99 | + this.$store.dispatch('reportYas', { | ||
100 | + params: { | ||
101 | + param: {...this.param, I_INDEX: index, PRD_ID: id }, | ||
102 | + appop: 'XY_UFO_SHOW_EVENT' | ||
103 | + } | ||
104 | + }); | ||
33 | } | 105 | } |
34 | }, | 106 | }, |
35 | components: { | 107 | components: { |
@@ -44,7 +116,7 @@ export default { | @@ -44,7 +116,7 @@ export default { | ||
44 | margin-right: 14px; | 116 | margin-right: 14px; |
45 | } | 117 | } |
46 | 118 | ||
47 | - .item { | 119 | + .product-list-item { |
48 | border-radius: 16px; | 120 | border-radius: 16px; |
49 | width: 344px; | 121 | width: 344px; |
50 | padding: 24px; | 122 | padding: 24px; |
@@ -169,7 +169,6 @@ export default { | @@ -169,7 +169,6 @@ export default { | ||
169 | for (let key in filter) { | 169 | for (let key in filter) { |
170 | filterParams[key] = filter[key]; | 170 | filterParams[key] = filter[key]; |
171 | } | 171 | } |
172 | - console.log(filterParams); | ||
173 | this.filterParams = filterParams; | 172 | this.filterParams = filterParams; |
174 | } | 173 | } |
175 | }, | 174 | }, |
@@ -19,12 +19,14 @@ | @@ -19,12 +19,14 @@ | ||
19 | </div> | 19 | </div> |
20 | </div> | 20 | </div> |
21 | <Scroll ref="scroll" class="product-list" v-show="!productList.isEmpty" | 21 | <Scroll ref="scroll" class="product-list" v-show="!productList.isEmpty" |
22 | + :scroll-events="['scroll-end']" | ||
22 | :options="scrollOptions" | 23 | :options="scrollOptions" |
23 | :data="productList.list" | 24 | :data="productList.list" |
25 | + @scroll-end="scrollHandler" | ||
24 | @pulling-up="onPullingUp"> | 26 | @pulling-up="onPullingUp"> |
25 | - <ProductList :list="productList.list"></ProductList> | 27 | + <ProductList ref="product" :list="productList.list" :param="yasParams"></ProductList> |
26 | </Scroll> | 28 | </Scroll> |
27 | - <EmptyList class="empty-wrapper product-list" :tip="`暂无数据`" v-show="productList.isEmpty" > | 29 | + <EmptyList class="empty-wrapper product-list" :tip="`暂无数据`" v-show="productList.isEmpty"> |
28 | </EmptyList> | 30 | </EmptyList> |
29 | </LayoutApp> | 31 | </LayoutApp> |
30 | <Filtrate ref="filtrate"></Filtrate> | 32 | <Filtrate ref="filtrate"></Filtrate> |
@@ -48,19 +50,21 @@ export default { | @@ -48,19 +50,21 @@ export default { | ||
48 | Filtrate, | 50 | Filtrate, |
49 | EmptyList | 51 | EmptyList |
50 | }, | 52 | }, |
51 | - data() { | 53 | + data: function () { |
52 | return { | 54 | return { |
53 | scrollOptions: { | 55 | scrollOptions: { |
54 | bounce: { | 56 | bounce: { |
55 | top: false | 57 | top: false |
56 | }, | 58 | }, |
57 | - pullUpLoad: true | 59 | + pullUpLoad: true, |
60 | + pullDownRefresh: false | ||
58 | }, | 61 | }, |
59 | fixed: false, | 62 | fixed: false, |
60 | selectedType: 2, // tab类型高亮 | 63 | selectedType: 2, // tab类型高亮 |
61 | priceDesc: true, | 64 | priceDesc: true, |
62 | arrowImage: '', | 65 | arrowImage: '', |
63 | title: '', | 66 | title: '', |
67 | + yasParams: {P_NAME: 'XY_UFOSearchList', TYPE_ID: 1}, | ||
64 | productList: { | 68 | productList: { |
65 | showErrorPage: false, | 69 | showErrorPage: false, |
66 | isFetching: false, | 70 | isFetching: false, |
@@ -98,6 +102,7 @@ export default { | @@ -98,6 +102,7 @@ export default { | ||
98 | this.changeArrow(); | 102 | this.changeArrow(); |
99 | let params = {...this.$route.query}; | 103 | let params = {...this.$route.query}; |
100 | 104 | ||
105 | + this.setYasParam({param: params, tab: {index: 1, name: '人气'}}); | ||
101 | if (params.title) { | 106 | if (params.title) { |
102 | this.title = params.title; | 107 | this.title = params.title; |
103 | delete params.title; | 108 | delete params.title; |
@@ -120,6 +125,12 @@ export default { | @@ -120,6 +125,12 @@ export default { | ||
120 | await this.fetchList(); | 125 | await this.fetchList(); |
121 | }, | 126 | }, |
122 | 127 | ||
128 | + scrollHandler({y}) { | ||
129 | + let height = -y; | ||
130 | + | ||
131 | + this.$refs.product.yasShowEvent(height); | ||
132 | + }, | ||
133 | + | ||
123 | // 查询商品列表 | 134 | // 查询商品列表 |
124 | fetchList: async function(params) { | 135 | fetchList: async function(params) { |
125 | let searchParams = this.searchParams; | 136 | let searchParams = this.searchParams; |
@@ -190,18 +201,21 @@ export default { | @@ -190,18 +201,21 @@ export default { | ||
190 | 201 | ||
191 | this.selectedType = flag; | 202 | this.selectedType = flag; |
192 | if (flag === 1) { | 203 | if (flag === 1) { |
204 | + this.setYasParam({tab: {index: 2, name: '价格'}}); | ||
193 | this.priceDesc = !this.priceDesc; | 205 | this.priceDesc = !this.priceDesc; |
194 | - params.order = this.priceDesc ? 'p_desc' : 'p_asc'; | 206 | + params.order = this.priceDesc ? 'availableNowPrice:asc' : 'availableNowPrice:desc'; |
195 | } else if (flag === 2) { | 207 | } else if (flag === 2) { |
208 | + this.setYasParam({tab: {index: 1, name: '人气'}}); | ||
196 | this.priceDesc = true; | 209 | this.priceDesc = true; |
197 | params.order = 'sale_desc'; | 210 | params.order = 'sale_desc'; |
198 | } else if (flag === 3) { | 211 | } else if (flag === 3) { |
212 | + this.setYasParam({tab: {index: 3, name: '新品'}}); | ||
199 | this.priceDesc = true; | 213 | this.priceDesc = true; |
200 | params.order = 'st_desc'; | 214 | params.order = 'st_desc'; |
201 | } | 215 | } |
202 | params.isReset = true; | 216 | params.isReset = true; |
203 | this.fetchList(params); | 217 | this.fetchList(params); |
204 | - this.$refs.scroll.scrollTo(0, 0, 300) | 218 | + this.$refs.scroll.scrollTo(0, 0, 300); |
205 | this.changeArrow(); | 219 | this.changeArrow(); |
206 | }, | 220 | }, |
207 | goSearch() { | 221 | goSearch() { |
@@ -215,7 +229,43 @@ export default { | @@ -215,7 +229,43 @@ export default { | ||
215 | }, | 229 | }, |
216 | goFilter() { | 230 | goFilter() { |
217 | this.$refs.filtrate.show(); | 231 | this.$refs.filtrate.show(); |
218 | - } | 232 | + }, |
233 | + setYasParam: function({param, tab}) { | ||
234 | + if (param && typeof param === 'object' && Object.keys(param).length) { | ||
235 | + let P_NAME = 'XY_UFOSearchList', TYPE_ID = 1; | ||
236 | + | ||
237 | + for (let key in param) { | ||
238 | + if (key === 'brand' && param[key] && param.type !== 6) { | ||
239 | + P_NAME = 'XY_UFOBrandList'; | ||
240 | + TYPE_ID = 3; | ||
241 | + } | ||
242 | + if (key === 'series' && param[key] && param.type !== 6) { | ||
243 | + P_NAME = 'XY_UFOSeriesList'; | ||
244 | + TYPE_ID = 2; | ||
245 | + } | ||
246 | + if (key === 'productPool' && param[key] && param.type !== 6) { | ||
247 | + P_NAME = 'XY_UFOProductPoolList'; | ||
248 | + TYPE_ID = 4; | ||
249 | + } | ||
250 | + if (!param[key]) { | ||
251 | + delete param[key]; | ||
252 | + } | ||
253 | + } | ||
254 | + Object.assign(this.yasParams, { | ||
255 | + P_NAME, | ||
256 | + P_PARAM: JSON.stringify(param), | ||
257 | + TYPE_ID, | ||
258 | + TAB_ID: this.tabIndex || '', | ||
259 | + TAB_NAME: this.tabName || '' | ||
260 | + }); | ||
261 | + } | ||
262 | + | ||
263 | + if(tab && typeof tab === 'object' && Object.keys(tab).length) { | ||
264 | + this.yasParams.TAB_ID = tab.index; | ||
265 | + this.yasParams.TAB_NAME = tab.name; | ||
266 | + } | ||
267 | + }, | ||
268 | + | ||
219 | } | 269 | } |
220 | }; | 270 | }; |
221 | </script> | 271 | </script> |
1 | <!--买家求购确认页--> | 1 | <!--买家求购确认页--> |
2 | <template> | 2 | <template> |
3 | <LayoutApp :show-back="true" title="出价求购"> | 3 | <LayoutApp :show-back="true" title="出价求购"> |
4 | + <Scroll :options="options"> | ||
4 | <div class="body" ref="body"> | 5 | <div class="body" ref="body"> |
6 | + | ||
5 | <div class="topContainer"> | 7 | <div class="topContainer"> |
6 | <!--<div class="topView">--> | 8 | <!--<div class="topView">--> |
7 | <!--<div class="title"></div>--> | 9 | <!--<div class="title"></div>--> |
@@ -73,6 +75,7 @@ | @@ -73,6 +75,7 @@ | ||
73 | <div class="line"></div> | 75 | <div class="line"></div> |
74 | 76 | ||
75 | </div> | 77 | </div> |
78 | + | ||
76 | </div> | 79 | </div> |
77 | <div class="bottomContainer"> | 80 | <div class="bottomContainer"> |
78 | <OrderAgree :value="isAgreeTerms" @input="isAgreeTerms = !isAgreeTerms" class="agree-wrapper" :desc="agreeDesc" :url="url"></OrderAgree> | 81 | <OrderAgree :value="isAgreeTerms" @input="isAgreeTerms = !isAgreeTerms" class="agree-wrapper" :desc="agreeDesc" :url="url"></OrderAgree> |
@@ -80,12 +83,13 @@ | @@ -80,12 +83,13 @@ | ||
80 | <YohoButton class="submit-btn" :txt="submitText" :disable="!isAgreeTerms" @click="submitClick"></YohoButton> | 83 | <YohoButton class="submit-btn" :txt="submitText" :disable="!isAgreeTerms" @click="submitClick"></YohoButton> |
81 | </div> | 84 | </div> |
82 | </div> | 85 | </div> |
86 | + </Scroll> | ||
83 | </LayoutApp> | 87 | </LayoutApp> |
84 | </template> | 88 | </template> |
85 | 89 | ||
86 | <script> | 90 | <script> |
87 | 91 | ||
88 | -import {Input, Button} from 'cube-ui'; | 92 | +import {Input, Button, Scroll} from 'cube-ui'; |
89 | import OrderAddress from './components/confirm/address'; | 93 | import OrderAddress from './components/confirm/address'; |
90 | import DayChoose from './components/askorder/day-choose'; | 94 | import DayChoose from './components/askorder/day-choose'; |
91 | import OrderAgree from './components/confirm/agree'; | 95 | import OrderAgree from './components/confirm/agree'; |
@@ -103,6 +107,7 @@ export default { | @@ -103,6 +107,7 @@ export default { | ||
103 | Input, | 107 | Input, |
104 | OrderAddress, | 108 | OrderAddress, |
105 | Button, | 109 | Button, |
110 | + Scroll, | ||
106 | }, | 111 | }, |
107 | data() { | 112 | data() { |
108 | return { | 113 | return { |
@@ -111,6 +116,7 @@ export default { | @@ -111,6 +116,7 @@ export default { | ||
111 | url: 'https://activity.yoho.cn/feature/6775.html?share_id=9481&title=%E9%97%B2%E9%B1%BC%E4%B9%B0%E5%AE%B6%E5%8D%8F%E8%AE%AE', | 116 | url: 'https://activity.yoho.cn/feature/6775.html?share_id=9481&title=%E9%97%B2%E9%B1%BC%E4%B9%B0%E5%AE%B6%E5%8D%8F%E8%AE%AE', |
112 | agreeDesc: '有货买家协议', | 117 | agreeDesc: '有货买家协议', |
113 | submitText: '提交', | 118 | submitText: '提交', |
119 | + options: {pullDownRefresh: false} | ||
114 | }; | 120 | }; |
115 | }, | 121 | }, |
116 | 122 |
1 | <!--卖家求购变现--> | 1 | <!--卖家求购变现--> |
2 | <template> | 2 | <template> |
3 | <LayoutApp :show-back="true" title="变现"> | 3 | <LayoutApp :show-back="true" title="变现"> |
4 | + <Scroll :options="options"> | ||
4 | <div class="body"> | 5 | <div class="body"> |
5 | <!--<TitleComp txt="变现"></TitleComp>--> | 6 | <!--<TitleComp txt="变现"></TitleComp>--> |
7 | + | ||
6 | <ProductInfo :data="originProductData" class="product-info" :priceType="'现货最高求购价:'"></ProductInfo> | 8 | <ProductInfo :data="originProductData" class="product-info" :priceType="'现货最高求购价:'"></ProductInfo> |
7 | <div class="inputView"> | 9 | <div class="inputView"> |
8 | <span class="inputViewIcon"> | 10 | <span class="inputViewIcon"> |
@@ -13,13 +15,16 @@ | @@ -13,13 +15,16 @@ | ||
13 | <OrderMargin class="order-item order-margin" :data="computeTip" :url="url" :superSell="isEntry" ></OrderMargin> | 15 | <OrderMargin class="order-item order-margin" :data="computeTip" :url="url" :superSell="isEntry" ></OrderMargin> |
14 | <OrderFee class="order-item" :data="computeTip"></OrderFee> | 16 | <OrderFee class="order-item" :data="computeTip"></OrderFee> |
15 | <AddressInfo :data="addressInfo" class="order-item"></AddressInfo> | 17 | <AddressInfo :data="addressInfo" class="order-item"></AddressInfo> |
18 | + | ||
16 | </div> | 19 | </div> |
20 | + </Scroll> | ||
17 | <div class="footer"> | 21 | <div class="footer"> |
18 | <OrderAgree :value="isAgreeTerms" @input="isAgreeTerms = !isAgreeTerms" class="agree-wrapper" :desc="agreeDesc" :url="url"></OrderAgree> | 22 | <OrderAgree :value="isAgreeTerms" @input="isAgreeTerms = !isAgreeTerms" class="agree-wrapper" :desc="agreeDesc" :url="url"></OrderAgree> |
19 | <div class="btn-wrapper"> | 23 | <div class="btn-wrapper"> |
20 | <YohoButton :txt="submitText"class="submit-btn" :disable="!isAgreeTerms" @click="submitClick"></YohoButton> | 24 | <YohoButton :txt="submitText"class="submit-btn" :disable="!isAgreeTerms" @click="submitClick"></YohoButton> |
21 | </div> | 25 | </div> |
22 | </div> | 26 | </div> |
27 | + | ||
23 | </LayoutApp> | 28 | </LayoutApp> |
24 | </template> | 29 | </template> |
25 | 30 | ||
@@ -64,6 +69,7 @@ export default { | @@ -64,6 +69,7 @@ export default { | ||
64 | url: 'http://m.yohobuy.com/activity/student/detail/renzhen?openby:yohobuy={\"action\":\"go.h5\",\"params\":{\"url\":\"https://activity.yoho.cn/feature/3187.html?title=卖家协议\"}}', | 69 | url: 'http://m.yohobuy.com/activity/student/detail/renzhen?openby:yohobuy={\"action\":\"go.h5\",\"params\":{\"url\":\"https://activity.yoho.cn/feature/3187.html?title=卖家协议\"}}', |
65 | isEntry: false, | 70 | isEntry: false, |
66 | submitText: '提交', | 71 | submitText: '提交', |
72 | + options: {pullDownRefresh: false}, | ||
67 | }; | 73 | }; |
68 | }, | 74 | }, |
69 | 75 |
@@ -66,7 +66,7 @@ export default { | @@ -66,7 +66,7 @@ export default { | ||
66 | } | 66 | } |
67 | 67 | ||
68 | span { | 68 | span { |
69 | - font-size: 0.8em; | 69 | + font-size: 0.7em; |
70 | line-height: 1.4; | 70 | line-height: 1.4; |
71 | border: 1px solid #f00;; | 71 | border: 1px solid #f00;; |
72 | color: #f00; | 72 | color: #f00; |
@@ -91,7 +91,7 @@ export default { | @@ -91,7 +91,7 @@ export default { | ||
91 | 91 | ||
92 | .sub { | 92 | .sub { |
93 | color: #999; | 93 | color: #999; |
94 | - font-size: 0.8em; | 94 | + font-size: 22px; |
95 | } | 95 | } |
96 | } | 96 | } |
97 | </style> | 97 | </style> |
-
Please register or login to post a comment