Merge branch 'develop' of git.yoho.cn:fe/xianyu-ufo-app-web into develop
Showing
18 changed files
with
201 additions
and
62 deletions
@@ -3,6 +3,7 @@ import config from 'config'; | @@ -3,6 +3,7 @@ import config from 'config'; | ||
3 | import { | 3 | import { |
4 | sign | 4 | sign |
5 | } from './utils'; | 5 | } from './utils'; |
6 | +import { Toast } from 'cube-ui'; | ||
6 | 7 | ||
7 | axios.defaults.baseURL = config.axiosBaseUrl; | 8 | axios.defaults.baseURL = config.axiosBaseUrl; |
8 | axios.defaults.responseType = config.axiosResponseType; | 9 | axios.defaults.responseType = config.axiosResponseType; |
@@ -10,10 +11,23 @@ axios.defaults.headers = { | @@ -10,10 +11,23 @@ axios.defaults.headers = { | ||
10 | 'X-Requested-With': 'XMLHttpRequest' | 11 | 'X-Requested-With': 'XMLHttpRequest' |
11 | }; | 12 | }; |
12 | 13 | ||
14 | +axios.interceptors.response.use(function(response) { | ||
15 | + if (response.data.code === 9999991 || response.data.code === 9999992) { | ||
16 | + Toast.$create({ | ||
17 | + type: 'warn', | ||
18 | + mask: true, | ||
19 | + txt: response.data.message | ||
20 | + }); | ||
21 | + } | ||
22 | + return response; | ||
23 | +}, function(error) { | ||
24 | + return Promise.reject(error); | ||
25 | +}); | ||
26 | + | ||
13 | const errHandle = (error, store) => { | 27 | const errHandle = (error, store) => { |
14 | console.log(error); | 28 | console.log(error); |
15 | 29 | ||
16 | - if (error.response && error.response.status == 401) { | 30 | + if (error.response && error.response.status === 401) { |
17 | store.dispatch('setNeedLogin', { needLogin: true }); | 31 | store.dispatch('setNeedLogin', { needLogin: true }); |
18 | } | 32 | } |
19 | 33 | ||
@@ -28,7 +42,7 @@ const request = (options, store) => { | @@ -28,7 +42,7 @@ const request = (options, store) => { | ||
28 | return axios(options).then((res) => { | 42 | return axios(options).then((res) => { |
29 | return res.data; | 43 | return res.data; |
30 | }, error => { | 44 | }, error => { |
31 | - return errHandle(error, store) | 45 | + return errHandle(error, store); |
32 | }); | 46 | }); |
33 | }; | 47 | }; |
34 | 48 |
@@ -87,11 +87,9 @@ export default { | @@ -87,11 +87,9 @@ export default { | ||
87 | 87 | ||
88 | <style lang="scss"> | 88 | <style lang="scss"> |
89 | .layout { | 89 | .layout { |
90 | - position: absolute; | ||
91 | - top: 0; | ||
92 | - left: 0; | ||
93 | - right: 0; | ||
94 | - bottom: 0; | 90 | + position: relative; |
91 | + width: 100%; | ||
92 | + height: 100%; | ||
95 | overflow: hidden; | 93 | overflow: hidden; |
96 | font-size: 24px; | 94 | font-size: 24px; |
97 | display: flex; | 95 | display: flex; |
@@ -109,4 +107,6 @@ export default { | @@ -109,4 +107,6 @@ export default { | ||
109 | overflow: scroll; | 107 | overflow: scroll; |
110 | } | 108 | } |
111 | } | 109 | } |
110 | + | ||
111 | + | ||
112 | </style> | 112 | </style> |
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | </a> | 30 | </a> |
31 | </li> | 31 | </li> |
32 | <li> | 32 | <li> |
33 | - <img :src="pageData.bottom"> | 33 | + <div class="bottom-space"></div> |
34 | </li> | 34 | </li> |
35 | </ul> | 35 | </ul> |
36 | </div> | 36 | </div> |
@@ -888,6 +888,12 @@ export default { | @@ -888,6 +888,12 @@ export default { | ||
888 | width: 100%; | 888 | width: 100%; |
889 | float: left; | 889 | float: left; |
890 | } | 890 | } |
891 | + | ||
892 | + .bottom-space { | ||
893 | + width: 100%; | ||
894 | + height: 80px; | ||
895 | + display: block; | ||
896 | + } | ||
891 | } | 897 | } |
892 | 898 | ||
893 | .tab-container { | 899 | .tab-container { |
@@ -14,11 +14,18 @@ | @@ -14,11 +14,18 @@ | ||
14 | </div> | 14 | </div> |
15 | <img :src="item.image" alt=""/> | 15 | <img :src="item.image" alt=""/> |
16 | </li> | 16 | </li> |
17 | + <li> | ||
18 | + <img :src="images.rule"> | ||
19 | + </li> | ||
20 | + <li> | ||
21 | + <a href="javascript:void(0)" class="button-more" @click="gotoProductPool"> | ||
22 | + <img :src="images.more"> | ||
23 | + </a> | ||
24 | + </li> | ||
17 | </ul> | 25 | </ul> |
18 | </LayoutApp> | 26 | </LayoutApp> |
19 | </template> | 27 | </template> |
20 | 28 | ||
21 | - | ||
22 | <script> | 29 | <script> |
23 | import productData from './saleProduct.json'; | 30 | import productData from './saleProduct.json'; |
24 | 31 | ||
@@ -26,8 +33,9 @@ export default { | @@ -26,8 +33,9 @@ export default { | ||
26 | name: 'Strategy', | 33 | name: 'Strategy', |
27 | data() { | 34 | data() { |
28 | return { | 35 | return { |
29 | - productList: [] | ||
30 | - } | 36 | + productList: [], |
37 | + images: {} | ||
38 | + }; | ||
31 | }, | 39 | }, |
32 | methods: { | 40 | methods: { |
33 | goBack() { | 41 | goBack() { |
@@ -42,10 +50,23 @@ export default { | @@ -42,10 +50,23 @@ export default { | ||
42 | productId: linkItem.linkId | 50 | productId: linkItem.linkId |
43 | } | 51 | } |
44 | }); | 52 | }); |
53 | + }, | ||
54 | + gotoProductPool() { | ||
55 | + this.$router.push({ | ||
56 | + name: 'List', | ||
57 | + query: { | ||
58 | + productPool: 445 | ||
59 | + } | ||
60 | + }); | ||
45 | } | 61 | } |
46 | }, | 62 | }, |
47 | - mounted() { | 63 | + activated() { |
48 | this.productList = productData.imageList; | 64 | this.productList = productData.imageList; |
65 | + this.images = { | ||
66 | + rule: productData.imageList[0].rule, | ||
67 | + more: productData.imageList[0].more | ||
68 | + }; | ||
69 | + console.log(this.productList) | ||
49 | } | 70 | } |
50 | }; | 71 | }; |
51 | </script> | 72 | </script> |
@@ -56,6 +77,11 @@ ul { | @@ -56,6 +77,11 @@ ul { | ||
56 | list-style: none; | 77 | list-style: none; |
57 | margin: 0; | 78 | margin: 0; |
58 | padding: 0; | 79 | padding: 0; |
80 | + background-image: url("//ad.yoho.cn/html5/2019/10/activity/007/base/repeat_bg.jpg?imageslim"); | ||
81 | + background-repeat: repeat-y; | ||
82 | + background-size: 100% auto; | ||
83 | + overflow: hidden; | ||
84 | + -webkit-overflow-scrolling: touch; | ||
59 | 85 | ||
60 | li { | 86 | li { |
61 | position: relative; | 87 | position: relative; |
@@ -83,6 +109,13 @@ ul { | @@ -83,6 +109,13 @@ ul { | ||
83 | background-color: transparent; | 109 | background-color: transparent; |
84 | } | 110 | } |
85 | } | 111 | } |
112 | + | ||
113 | + .button-more { | ||
114 | + display: block; | ||
115 | + width: 530px; | ||
116 | + height: 45px; | ||
117 | + margin: 20px auto 60px auto; | ||
118 | + } | ||
86 | } | 119 | } |
87 | } | 120 | } |
88 | </style> | 121 | </style> |
1 | { | 1 | { |
2 | "imageList": [ | 2 | "imageList": [ |
3 | { | 3 | { |
4 | - "image": "//cdn.yoho.cn/saleList/bg/1p_01.jpg?imageView2/2/w/750/format/jpg", | 4 | + "image": "//cdn.yoho.cn/saleList/bg/1p_02.jpg?imageView2/2/w/750/format/jpg", |
5 | + "rule": "//ad.yoho.cn/html5/2019/10/activity/007/base/list_rule.png", | ||
6 | + "more": "//ad.yoho.cn/html5/2019/10/activity/007/base/btn_more.png", | ||
5 | "urls": [ | 7 | "urls": [ |
6 | { | 8 | { |
7 | "left": "2rem", | 9 | "left": "2rem", |
@@ -127,7 +127,7 @@ export default { | @@ -127,7 +127,7 @@ export default { | ||
127 | this.$store.dispatch('reportYas', { | 127 | this.$store.dispatch('reportYas', { |
128 | params: { | 128 | params: { |
129 | appop: 'XY_UFO_SHOW_EVENT', | 129 | appop: 'XY_UFO_SHOW_EVENT', |
130 | - param: reportParams | 130 | + param: {DATA:reportParams} |
131 | } | 131 | } |
132 | }); | 132 | }); |
133 | 133 |
@@ -59,6 +59,7 @@ export default { | @@ -59,6 +59,7 @@ export default { | ||
59 | PAGE_URL: '', | 59 | PAGE_URL: '', |
60 | listYasParams: {}, | 60 | listYasParams: {}, |
61 | homeYasParams: [], | 61 | homeYasParams: [], |
62 | + guessLikeId: 0, | ||
62 | listScrollY: 0, | 63 | listScrollY: 0, |
63 | options: { | 64 | options: { |
64 | pullUpLoad: true, | 65 | pullUpLoad: true, |
@@ -80,7 +81,7 @@ export default { | @@ -80,7 +81,7 @@ export default { | ||
80 | isFetching: false, | 81 | isFetching: false, |
81 | error: null, | 82 | error: null, |
82 | page: 0, // 当前页 | 83 | page: 0, // 当前页 |
83 | - page_size: 10, // 每页数量 | 84 | + page_size: 20, // 每页数量 |
84 | page_total: 0, // 总共多少页 | 85 | page_total: 0, // 总共多少页 |
85 | total: 0, // 总共多少条 | 86 | total: 0, // 总共多少条 |
86 | endReached: false, // 到达底部 | 87 | endReached: false, // 到达底部 |
@@ -162,6 +163,13 @@ export default { | @@ -162,6 +163,13 @@ export default { | ||
162 | appop: 'XY_UFO_MAIN_START' | 163 | appop: 'XY_UFO_MAIN_START' |
163 | } | 164 | } |
164 | }); | 165 | }); |
166 | + // 初始化 选中类目 | ||
167 | + const [firstNav] = this.navList; | ||
168 | + if(firstNav) { | ||
169 | + const {url = ''} = firstNav; | ||
170 | + this.selectedCategory = queryString.parse(url); | ||
171 | + } | ||
172 | + | ||
165 | this.refreshProductList(this.active); | 173 | this.refreshProductList(this.active); |
166 | }, | 174 | }, |
167 | methods: { | 175 | methods: { |
@@ -238,11 +246,26 @@ export default { | @@ -238,11 +246,26 @@ export default { | ||
238 | // console.log(this.homeYasParams) | 246 | // console.log(this.homeYasParams) |
239 | this.$store.dispatch('reportYas', { | 247 | this.$store.dispatch('reportYas', { |
240 | params: { | 248 | params: { |
241 | - param: this.homeYasParams, | 249 | + param: {DATA:this.homeYasParams}, |
242 | appop: 'XY_UFO_SHOW_EVENT' | 250 | appop: 'XY_UFO_SHOW_EVENT' |
243 | } | 251 | } |
244 | }); | 252 | }); |
245 | }, | 253 | }, |
254 | + reportTabYas() { | ||
255 | + let guessLikeTabParams = this.listYasParams; | ||
256 | + delete guessLikeTabParams.I_INDEX; | ||
257 | + // 防止重复上报 | ||
258 | + if(this.guessLikeId !== guessLikeTabParams.TAB_ID) { | ||
259 | + this.guessLikeId = guessLikeTabParams.TAB_ID | ||
260 | + console.log('guesslisttab',guessLikeTabParams) | ||
261 | + this.$store.dispatch('reportYas', { | ||
262 | + params: { | ||
263 | + param: guessLikeTabParams, | ||
264 | + appop: 'XY_UFO_MAIN_EVENT' | ||
265 | + } | ||
266 | + }); | ||
267 | + } | ||
268 | + }, | ||
246 | async guessLikeListParams(params) { | 269 | async guessLikeListParams(params) { |
247 | if (params && typeof params === 'object' && Object.keys(params).length) { | 270 | if (params && typeof params === 'object' && Object.keys(params).length) { |
248 | this.listYasParams = Object.assign({}, { | 271 | this.listYasParams = Object.assign({}, { |
@@ -259,8 +282,9 @@ export default { | @@ -259,8 +282,9 @@ export default { | ||
259 | this.selectedCategory = params; | 282 | this.selectedCategory = params; |
260 | this.active = Number(index); | 283 | this.active = Number(index); |
261 | this.isShow && this.$refs.scroll.scrollTo(this.navTop); | 284 | this.isShow && this.$refs.scroll.scrollTo(this.navTop); |
262 | - // this.setYasParam({index, ...params}); | ||
263 | await this.guessLikeListParams({index, ...params}); | 285 | await this.guessLikeListParams({index, ...params}); |
286 | + // tab点击 | ||
287 | + this.reportTabYas() | ||
264 | // 商品列表曝光 | 288 | // 商品列表曝光 |
265 | this.productList.list.length > 0 && this.listScrollY > 0 && this.$refs.product && this.$refs.product.yasShowEvent(this.yasHeight); | 289 | this.productList.list.length > 0 && this.listScrollY > 0 && this.$refs.product && this.$refs.product.yasShowEvent(this.yasHeight); |
266 | }, | 290 | }, |
@@ -294,7 +318,6 @@ export default { | @@ -294,7 +318,6 @@ export default { | ||
294 | await this.fetchList(this.searchParams); | 318 | await this.fetchList(this.searchParams); |
295 | 319 | ||
296 | // 列表上报数据 | 320 | // 列表上报数据 |
297 | - // this.setYasParam({index: 0, ...this.searchParams}); | ||
298 | this.guessLikeListParams({index: 0, ...this.searchParams}); | 321 | this.guessLikeListParams({index: 0, ...this.searchParams}); |
299 | }, | 322 | }, |
300 | 323 |
@@ -102,4 +102,14 @@ export default { | @@ -102,4 +102,14 @@ export default { | ||
102 | width: 100%; | 102 | width: 100%; |
103 | background-color: white; | 103 | background-color: white; |
104 | } | 104 | } |
105 | + | ||
106 | +@supports (bottom: env(safe-area-inset-bottom)) { | ||
107 | + .content { | ||
108 | + height: calc(env(safe-area-inset-bottom) + 100% + 88px); | ||
109 | + } | ||
110 | + | ||
111 | + .footer { | ||
112 | + height: calc(env(safe-area-inset-bottom) + 100px); | ||
113 | + } | ||
114 | +} | ||
105 | </style> | 115 | </style> |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | import { createNamespacedHelpers } from 'vuex'; | 10 | import { createNamespacedHelpers } from 'vuex'; |
11 | const {mapState, mapActions} = createNamespacedHelpers('home/bindAccount'); | 11 | const {mapState, mapActions} = createNamespacedHelpers('home/bindAccount'); |
12 | 12 | ||
13 | -export default { | 13 | +export default { |
14 | name: 'bind', | 14 | name: 'bind', |
15 | props: { | 15 | props: { |
16 | data: { | 16 | data: { |
1 | <template> | 1 | <template> |
2 | <LayoutApp title="闲鱼潮玩转攻略" :show-back="true" :back-action="goBack"> | 2 | <LayoutApp title="闲鱼潮玩转攻略" :show-back="true" :back-action="goBack"> |
3 | - <ul> | ||
4 | - <li v-for="(item, index) in dataList" :key="index"> | ||
5 | - <div v-if="item.urls && item.urls.length > 0" class="link-container"> | ||
6 | - <a href="javascript:;" | ||
7 | - v-for="linkItem in item.urls" | ||
8 | - :key="linkItem.link" | ||
9 | - :style="{left: linkItem.left, top: linkItem.top, width: linkItem.width, height: linkItem.height}" | ||
10 | - @click="jumpTo" | ||
11 | - :data-item="JSON.stringify(linkItem)" | ||
12 | - > | ||
13 | - </a> | ||
14 | - </div> | ||
15 | - <img :src="item.image" alt=""/> | ||
16 | - </li> | ||
17 | - </ul> | 3 | + <div class="body-warpper"> |
4 | + <ul> | ||
5 | + <li v-for="(item, index) in dataList" :key="index"> | ||
6 | + <div v-if="item.urls && item.urls.length > 0" class="link-container"> | ||
7 | + <a href="javascript:;" | ||
8 | + v-for="linkItem in item.urls" | ||
9 | + :key="linkItem.link" | ||
10 | + :style="{left: linkItem.left, top: linkItem.top, width: linkItem.width, height: linkItem.height}" | ||
11 | + @click="jumpTo" | ||
12 | + :data-item="JSON.stringify(linkItem)" | ||
13 | + > | ||
14 | + </a> | ||
15 | + </div> | ||
16 | + <img :src="item.image" alt=""/> | ||
17 | + </li> | ||
18 | + </ul> | ||
19 | + </div> | ||
20 | + | ||
21 | + | ||
18 | </LayoutApp> | 22 | </LayoutApp> |
19 | </template> | 23 | </template> |
20 | 24 | ||
@@ -57,6 +61,15 @@ export default { | @@ -57,6 +61,15 @@ export default { | ||
57 | </script> | 61 | </script> |
58 | 62 | ||
59 | <style lang="scss" scoped> | 63 | <style lang="scss" scoped> |
64 | +.body-warpper { | ||
65 | + position: relative; | ||
66 | + width: 100%; | ||
67 | + height: 100%; | ||
68 | + overflow-x: hidden; | ||
69 | + overflow-y: scroll; | ||
70 | + -webkit-overflow-scrolling: touch; | ||
71 | +} | ||
72 | + | ||
60 | ul { | 73 | ul { |
61 | width: 100%; | 74 | width: 100%; |
62 | list-style: none; | 75 | list-style: none; |
1 | <template> | 1 | <template> |
2 | <LayoutApp :title="currentTitle" :show-back="true" :back-action="goBack"> | 2 | <LayoutApp :title="currentTitle" :show-back="true" :back-action="goBack"> |
3 | - <ul> | ||
4 | - <li v-for="(item, index) in currentList" :key="index"> | ||
5 | - <img :src="item.image" alt=""/> | ||
6 | - </li> | ||
7 | - </ul> | 3 | + <div class="body-warpper"> |
4 | + <ul> | ||
5 | + <li v-for="(item, index) in currentList" :key="index"> | ||
6 | + <img :src="item.image" alt=""/> | ||
7 | + </li> | ||
8 | + </ul> | ||
9 | + </div> | ||
8 | 10 | ||
9 | </LayoutApp> | 11 | </LayoutApp> |
10 | </template> | 12 | </template> |
@@ -54,6 +56,15 @@ export default { | @@ -54,6 +56,15 @@ export default { | ||
54 | </script> | 56 | </script> |
55 | 57 | ||
56 | <style lang="scss" scoped> | 58 | <style lang="scss" scoped> |
59 | +.body-warpper { | ||
60 | + position: relative; | ||
61 | + width: 100%; | ||
62 | + height: 100%; | ||
63 | + overflow-x: hidden; | ||
64 | + overflow-y: scroll; | ||
65 | + -webkit-overflow-scrolling: touch; | ||
66 | +} | ||
67 | + | ||
57 | ul { | 68 | ul { |
58 | width: 100%; | 69 | width: 100%; |
59 | list-style: none; | 70 | list-style: none; |
@@ -78,7 +78,7 @@ export default { | @@ -78,7 +78,7 @@ export default { | ||
78 | }, | 78 | }, |
79 | searchGoods: function() { | 79 | searchGoods: function() { |
80 | this.addLocalWord(); | 80 | this.addLocalWord(); |
81 | - this.yasInput({type: 0, index: 0}); | 81 | + this.yasInput({type: 0, index: 0, query: this.query}); |
82 | this.$router.push({ | 82 | this.$router.push({ |
83 | name: 'List', | 83 | name: 'List', |
84 | query: { | 84 | query: { |
@@ -94,6 +94,7 @@ export default { | @@ -94,6 +94,7 @@ export default { | ||
94 | let query = parameters.query; | 94 | let query = parameters.query; |
95 | 95 | ||
96 | this.addLocalWord(query); | 96 | this.addLocalWord(query); |
97 | + param.query = query; | ||
97 | this.yasInput(param); | 98 | this.yasInput(param); |
98 | this.$router.push({ | 99 | this.$router.push({ |
99 | name: 'List', | 100 | name: 'List', |
@@ -136,10 +137,10 @@ export default { | @@ -136,10 +137,10 @@ export default { | ||
136 | params: { | 137 | params: { |
137 | param: { | 138 | param: { |
138 | SEARCH_POS: this.SEARCH_POS, | 139 | SEARCH_POS: this.SEARCH_POS, |
139 | - KEYWORD: this.query, | 140 | + KEYWORD: param.query, |
140 | POS_ID: param.type, | 141 | POS_ID: param.type, |
141 | TYPE_ID: 1, | 142 | TYPE_ID: 1, |
142 | - FLR_INDEX: param.index + 1, | 143 | + FLR_INDEX: param.type ? param.index + 1 : 0, |
143 | }, | 144 | }, |
144 | appop: 'XY_UFO_HOME_KEYWORD_SEARCH_C' | 145 | appop: 'XY_UFO_HOME_KEYWORD_SEARCH_C' |
145 | } | 146 | } |
@@ -21,8 +21,10 @@ | @@ -21,8 +21,10 @@ | ||
21 | class="actions" | 21 | class="actions" |
22 | :order="order" | 22 | :order="order" |
23 | @on-action=" | 23 | @on-action=" |
24 | - action => | ||
25 | - onInSaleOrderAction({ action, order, isInSale: true }) | 24 | + action => { |
25 | + onInSaleOrderAction({ action, order, isInSale: true }); | ||
26 | + onAction({ action, order, isInSale: true }); | ||
27 | + } | ||
26 | " | 28 | " |
27 | /> | 29 | /> |
28 | </div> | 30 | </div> |
@@ -51,6 +53,7 @@ import OrderActions from "../components/order-actions"; | @@ -51,6 +53,7 @@ import OrderActions from "../components/order-actions"; | ||
51 | import CountDown from "../components/count-down"; | 53 | import CountDown from "../components/count-down"; |
52 | 54 | ||
53 | import orderInSaleActionMixin from "../mixin/order-in-sale-action"; | 55 | import orderInSaleActionMixin from "../mixin/order-in-sale-action"; |
56 | +import orderActionMixin from "../mixin/order-action"; | ||
54 | 57 | ||
55 | const IN_SALE_STORE_PATH = "order/inSaleOrderList"; | 58 | const IN_SALE_STORE_PATH = "order/inSaleOrderList"; |
56 | 59 | ||
@@ -65,7 +68,7 @@ const { | @@ -65,7 +68,7 @@ const { | ||
65 | 68 | ||
66 | export default { | 69 | export default { |
67 | // 订单操作 | 70 | // 订单操作 |
68 | - mixins: [orderInSaleActionMixin], | 71 | + mixins: [orderInSaleActionMixin, orderActionMixin], |
69 | data() { | 72 | data() { |
70 | return { | 73 | return { |
71 | scrollY: 0 | 74 | scrollY: 0 |
@@ -526,6 +526,8 @@ textarea { | @@ -526,6 +526,8 @@ textarea { | ||
526 | 526 | ||
527 | html, | 527 | html, |
528 | body { | 528 | body { |
529 | + width: 100%; | ||
530 | + height: 100%; | ||
529 | font-size: 24px; | 531 | font-size: 24px; |
530 | font-family: "PingFang SC", "HiraginoSansGB-W3", "SanFranciscoText-Regular", Helvetica, Roboto, "Heiti SC", "黑体", Arial; | 532 | font-family: "PingFang SC", "HiraginoSansGB-W3", "SanFranciscoText-Regular", Helvetica, Roboto, "Heiti SC", "黑体", Arial; |
531 | line-height: 1.4; | 533 | line-height: 1.4; |
@@ -537,6 +539,24 @@ body { | @@ -537,6 +539,24 @@ body { | ||
537 | -moz-user-select: none; | 539 | -moz-user-select: none; |
538 | -ms-user-select: none; | 540 | -ms-user-select: none; |
539 | user-select: none; | 541 | user-select: none; |
542 | + | ||
543 | +} | ||
544 | + | ||
545 | +#app { | ||
546 | + position: relative; | ||
547 | + width: 100%; | ||
548 | + height: 100%; | ||
549 | +} | ||
550 | + | ||
551 | +/* 支持iphoneX下方安全区域 */ | ||
552 | +@supports (bottom: env(safe-area-inset-bottom)) { | ||
553 | + body { | ||
554 | + margin-bottom: env(safe-area-inset-bottom); | ||
555 | + } | ||
556 | + | ||
557 | + #app { | ||
558 | + height: calc(100% + env(safe-area-inset-bottom)); | ||
559 | + } | ||
540 | } | 560 | } |
541 | 561 | ||
542 | /* stylelint-disable */ | 562 | /* stylelint-disable */ |
@@ -12,7 +12,7 @@ const isTest = process.env.NODE_ENV === 'test3'; | @@ -12,7 +12,7 @@ const isTest = process.env.NODE_ENV === 'test3'; | ||
12 | const domains = { | 12 | const domains = { |
13 | // api: 'http://api.yoho.cn/', | 13 | // api: 'http://api.yoho.cn/', |
14 | // service: 'http://service.yoho.cn/', | 14 | // service: 'http://service.yoho.cn/', |
15 | - // ufo: 'http://2.yobobuy.cn', | 15 | + // ufo: 'http://2.yohobuy.com', |
16 | 16 | ||
17 | // liveApi: 'http://testapi.live.yohops.com:9999/', | 17 | // liveApi: 'http://testapi.live.yohops.com:9999/', |
18 | // singleApi: 'http://api-test3.yohops.com:9999/', | 18 | // singleApi: 'http://api-test3.yohops.com:9999/', |
@@ -168,9 +168,25 @@ const login = { | @@ -168,9 +168,25 @@ const login = { | ||
168 | }, | 168 | }, |
169 | taobaoCallback(req, res, next) { | 169 | taobaoCallback(req, res, next) { |
170 | passport.authenticate('taobao', (err, user) => { | 170 | passport.authenticate('taobao', (err, user) => { |
171 | + let redirectUrl = loginPage; | ||
172 | + let referUrl = {}; | ||
173 | + let refer; | ||
174 | + | ||
175 | + if (req.cookies.ali_backurl) { | ||
176 | + try { | ||
177 | + referUrl = JSON.parse(req.cookies.ali_backurl); | ||
178 | + } catch(e) { | ||
179 | + log.debug(JSON.stringify(e)); | ||
180 | + } | ||
181 | + | ||
182 | + refer = handleReferUrl(referUrl.b || ''); | ||
183 | + } | ||
184 | + | ||
185 | + redirectUrl += '?nodownload=1&refer=' + encodeURIComponent(refer || homePage); | ||
186 | + | ||
171 | if (err || !user) { | 187 | if (err || !user) { |
172 | log.error(`[authenticate error] source_type: taobao | err: ${JSON.stringify(err)}`); | 188 | log.error(`[authenticate error] source_type: taobao | err: ${JSON.stringify(err)}`); |
173 | - return res.redirect(loginPage); | 189 | + return res.redirect(redirectUrl); |
174 | } | 190 | } |
175 | 191 | ||
176 | const model = req.ctx(passportModel); | 192 | const model = req.ctx(passportModel); |
@@ -180,19 +196,6 @@ const login = { | @@ -180,19 +196,6 @@ const login = { | ||
180 | sourceType: 'taobao', | 196 | sourceType: 'taobao', |
181 | sourceTypeSecond: req.yoho.isAliApp ? 'xianyu' : '' | 197 | sourceTypeSecond: req.yoho.isAliApp ? 'xianyu' : '' |
182 | }).then(result => { | 198 | }).then(result => { |
183 | - let redirectUrl = loginPage; | ||
184 | - let referUrl = {}; | ||
185 | - | ||
186 | - if (req.cookies.ali_backurl) { | ||
187 | - try { | ||
188 | - referUrl = JSON.parse(req.cookies.ali_backurl); | ||
189 | - } catch(e) { | ||
190 | - log.debug(JSON.stringify(e)); | ||
191 | - } | ||
192 | - | ||
193 | - redirectUrl += '?refer=' + encodeURIComponent(handleReferUrl(referUrl.b || '')); | ||
194 | - } | ||
195 | - | ||
196 | if (result.code === 200) { | 199 | if (result.code === 200) { |
197 | if (_.get(result, 'data.is_bind') === 'N') { | 200 | if (_.get(result, 'data.is_bind') === 'N') { |
198 | redirectUrl = referUrl.b ? referUrl.b : homePage; | 201 | redirectUrl = referUrl.b ? referUrl.b : homePage; |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | <title>{{title}}</title> | 5 | <title>{{title}}</title> |
6 | <meta name="keywords" content=""> | 6 | <meta name="keywords" content=""> |
7 | <meta name="description" content=""> | 7 | <meta name="description" content=""> |
8 | - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | 8 | + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover"> |
9 | <meta name="apple-mobile-web-app-status-bar-style" content="black"> | 9 | <meta name="apple-mobile-web-app-status-bar-style" content="black"> |
10 | <meta content="yes" name="apple-mobile-web-app-capable"> | 10 | <meta content="yes" name="apple-mobile-web-app-capable"> |
11 | <meta content="telephone=no" name="format-detection"> | 11 | <meta content="telephone=no" name="format-detection"> |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | <title>{{title}} {{#unless noYohoTitle}}{{yohoTitle}}{{/unless}}</title> | 5 | <title>{{title}} {{#unless noYohoTitle}}{{yohoTitle}}{{/unless}}</title> |
6 | <meta name="keywords" content="{{keywords}}"> | 6 | <meta name="keywords" content="{{keywords}}"> |
7 | <meta name="description" content="{{description}}"> | 7 | <meta name="description" content="{{description}}"> |
8 | - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | 8 | + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no,viewport-fit=cover"> |
9 | <meta name="apple-mobile-web-app-status-bar-style" content="black"> | 9 | <meta name="apple-mobile-web-app-status-bar-style" content="black"> |
10 | <meta content="telephone=no" name="format-detection"> | 10 | <meta content="telephone=no" name="format-detection"> |
11 | <meta content="email=no" name="format-detection"> | 11 | <meta content="email=no" name="format-detection"> |
-
Please register or login to post a comment