Showing
6 changed files
with
85 additions
and
39 deletions
| ... | @@ -60,8 +60,6 @@ export default { | ... | @@ -60,8 +60,6 @@ export default { |
| 60 | if (res.data.code === 1) { | 60 | if (res.data.code === 1) { |
| 61 | this.detail[`is_${type}`] = res.data.data[`is_${type}`]; | 61 | this.detail[`is_${type}`] = res.data.data[`is_${type}`]; |
| 62 | this.detail[`${type}_num`] = res.data.data[`${type}_num`]; | 62 | this.detail[`${type}_num`] = res.data.data[`${type}_num`]; |
| 63 | - // 传回数据 | ||
| 64 | - this.$emit('on-click', this.detail); | ||
| 65 | } else { | 63 | } else { |
| 66 | // tslint:disable-next-line: no-console | 64 | // tslint:disable-next-line: no-console |
| 67 | console.warn(res); | 65 | console.warn(res); | ... | ... |
| ... | @@ -92,6 +92,8 @@ export default { | ... | @@ -92,6 +92,8 @@ export default { |
| 92 | ] | 92 | ] |
| 93 | }) | 93 | }) |
| 94 | this.detail = _.cloneDeep(this.item); | 94 | this.detail = _.cloneDeep(this.item); |
| 95 | + // 传回数据 | ||
| 96 | + this.$emit('on-click', this.detail); | ||
| 95 | var video = mp.video(); | 97 | var video = mp.video(); |
| 96 | // 监听原生video事件 | 98 | // 监听原生video事件 |
| 97 | var _this = this; | 99 | var _this = this; |
| ... | @@ -113,4 +115,4 @@ export default { | ... | @@ -113,4 +115,4 @@ export default { |
| 113 | padding-bottom: 0.5rem; | 115 | padding-bottom: 0.5rem; |
| 114 | } | 116 | } |
| 115 | } | 117 | } |
| 116 | -</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 118 | +</style> | ... | ... |
| ... | @@ -7,7 +7,8 @@ export const mainStore = defineStore('main', { | ... | @@ -7,7 +7,8 @@ export const mainStore = defineStore('main', { |
| 7 | count: 0, | 7 | count: 0, |
| 8 | auth: false, | 8 | auth: false, |
| 9 | comment_num: 0, | 9 | comment_num: 0, |
| 10 | - video_detail: {} | 10 | + video_detail: {}, |
| 11 | + scrollTop: 0, | ||
| 11 | }; | 12 | }; |
| 12 | }, | 13 | }, |
| 13 | getters: {}, | 14 | getters: {}, |
| ... | @@ -20,6 +21,9 @@ export const mainStore = defineStore('main', { | ... | @@ -20,6 +21,9 @@ export const mainStore = defineStore('main', { |
| 20 | }, | 21 | }, |
| 21 | changeVideoDetail (v) { | 22 | changeVideoDetail (v) { |
| 22 | this.video_detail = v; | 23 | this.video_detail = v; |
| 23 | - } | 24 | + }, |
| 25 | + changeScrollTop (v) { | ||
| 26 | + this.scrollTop = v; | ||
| 27 | + }, | ||
| 24 | }, | 28 | }, |
| 25 | }); | 29 | }); | ... | ... |
| ... | @@ -122,6 +122,8 @@ import axios from '@/utils/axios'; | ... | @@ -122,6 +122,8 @@ import axios from '@/utils/axios'; |
| 122 | import $ from 'jquery' | 122 | import $ from 'jquery' |
| 123 | import _ from 'lodash' | 123 | import _ from 'lodash' |
| 124 | import { Toast } from 'vant'; | 124 | import { Toast } from 'vant'; |
| 125 | +import { wxInfo } from '@/utils/tools'; | ||
| 126 | + | ||
| 125 | const $route = useRoute(); | 127 | const $route = useRoute(); |
| 126 | const $router = useRouter(); | 128 | const $router = useRouter(); |
| 127 | 129 | ||
| ... | @@ -265,6 +267,21 @@ onActivated(() => { // keepAlive 重置后执行回调 | ... | @@ -265,6 +267,21 @@ onActivated(() => { // keepAlive 重置后执行回调 |
| 265 | }) | 267 | }) |
| 266 | // 触发更新 | 268 | // 触发更新 |
| 267 | prod_list.value = arr.value; | 269 | prod_list.value = arr.value; |
| 270 | + /** | ||
| 271 | + * 判断微信环境 | ||
| 272 | + */ | ||
| 273 | + if (wxInfo().isiOS || wxInfo().isAndroid) { | ||
| 274 | + // TODO: 手机微信浏览器位置变动了,需要手动调整位置,但是无刷新是起作用的 | ||
| 275 | + const { scrollTop } = storeToRefs(store); | ||
| 276 | + if (scrollTop.value) { | ||
| 277 | + $("html,body").animate({ "scrollTop": scrollTop.value }) | ||
| 278 | + } | ||
| 279 | + window.addEventListener('scroll',()=>{ | ||
| 280 | + if (window.scrollY) { | ||
| 281 | + store.changeScrollTop(window.scrollY) | ||
| 282 | + } | ||
| 283 | + }); | ||
| 284 | + } | ||
| 268 | }); | 285 | }); |
| 269 | 286 | ||
| 270 | const changeRouterKeepAlive = (path, keepAlive) => { | 287 | const changeRouterKeepAlive = (path, keepAlive) => { |
| ... | @@ -287,6 +304,7 @@ onBeforeRouteLeave((to, from) => { | ... | @@ -287,6 +304,7 @@ onBeforeRouteLeave((to, from) => { |
| 287 | }) | 304 | }) |
| 288 | 305 | ||
| 289 | /*********************************************************/ | 306 | /*********************************************************/ |
| 307 | + | ||
| 290 | </script> | 308 | </script> |
| 291 | 309 | ||
| 292 | <script> | 310 | <script> |
| ... | @@ -296,9 +314,27 @@ export default { | ... | @@ -296,9 +314,27 @@ export default { |
| 296 | mixins: [mixin.init], | 314 | mixins: [mixin.init], |
| 297 | data() { | 315 | data() { |
| 298 | return { | 316 | return { |
| 317 | + scrollTop: '' | ||
| 299 | } | 318 | } |
| 300 | }, | 319 | }, |
| 301 | - created() { | 320 | + mounted() { |
| 321 | + // 监听滚动恢复 | ||
| 322 | + // this.$nextTick(() => { | ||
| 323 | + // let top = localStorage.getItem('scrollPosTop') ? Number(localStorage.getItem('scrollPosTop')) : 0; | ||
| 324 | + // $("html,body").animate({ "scrollTop": top }) | ||
| 325 | + // }) | ||
| 326 | + // setTimeout(() => { | ||
| 327 | + // // let top = localStorage.getItem('scrollPosTop') ? Number(localStorage.getItem('scrollPosTop')) : 0; | ||
| 328 | + // let top = Cookies.get('scrollPosTop') ? Number(Cookies.get('scrollPosTop')) : 0; | ||
| 329 | + // $("html,body").animate({ "scrollTop": top }) | ||
| 330 | + // }, 1000) | ||
| 331 | + // window.addEventListener('scroll',()=>{ | ||
| 332 | + // if (window.scrollY) { | ||
| 333 | + // this.scrollTop = window.scrollY | ||
| 334 | + // } | ||
| 335 | + // localStorage.setItem('scrollPosTop', this.scrollTop) | ||
| 336 | + // Cookies.set(scrollPosTop, this.scrollTop) | ||
| 337 | + // }) | ||
| 302 | }, | 338 | }, |
| 303 | methods: { | 339 | methods: { |
| 304 | } | 340 | } | ... | ... |
| ... | @@ -58,38 +58,43 @@ import { storeToRefs } from 'pinia' | ... | @@ -58,38 +58,43 @@ import { storeToRefs } from 'pinia' |
| 58 | 58 | ||
| 59 | import VideoCard from '@/components/VideoCard/index.vue' | 59 | import VideoCard from '@/components/VideoCard/index.vue' |
| 60 | 60 | ||
| 61 | -import { ref, onActivated } from 'vue' | 61 | +import { ref, onActivated, onMounted } from 'vue' |
| 62 | import { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router' | 62 | import { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router' |
| 63 | import axios from '@/utils/axios'; | 63 | import axios from '@/utils/axios'; |
| 64 | import _ from 'lodash'; | 64 | import _ from 'lodash'; |
| 65 | +import $ from 'jquery'; | ||
| 65 | import { Toast } from 'vant'; | 66 | import { Toast } from 'vant'; |
| 66 | const $route = useRoute(); | 67 | const $route = useRoute(); |
| 67 | const $router = useRouter(); | 68 | const $router = useRouter(); |
| 68 | 69 | ||
| 69 | -// 获取表演者信息 | 70 | +const store = mainStore(); |
| 70 | -const userInfo = ref({}) | 71 | + |
| 71 | -axios.get('/srv/?a=perf_info', { | 72 | +const userInfo = ref({}); |
| 72 | - params: { | 73 | +onMounted(() => { |
| 73 | - perf_id: $route.query.perf_id | 74 | + // 获取表演者信息 |
| 74 | - } | 75 | + axios.get('/srv/?a=perf_info', { |
| 75 | -}) | 76 | + params: { |
| 76 | - .then(res => { | 77 | + perf_id: $route.query.perf_id |
| 77 | - if (res.data.code === 1) { | ||
| 78 | - _.each(res.data.data.prod, (item) => { | ||
| 79 | - item.path = 'personIndex' | ||
| 80 | - }) | ||
| 81 | - userInfo.value = res.data.data; | ||
| 82 | - } else { | ||
| 83 | - console.warn(res); | ||
| 84 | - Toast({ | ||
| 85 | - icon: 'close', | ||
| 86 | - message: res.data.msg | ||
| 87 | - }); | ||
| 88 | } | 78 | } |
| 89 | }) | 79 | }) |
| 90 | - .catch(err => { | 80 | + .then(res => { |
| 91 | - console.error(err); | 81 | + if (res.data.code === 1) { |
| 92 | - }); | 82 | + _.each(res.data.data.prod, (item) => { |
| 83 | + item.path = 'personIndex' | ||
| 84 | + }) | ||
| 85 | + userInfo.value = res.data.data; | ||
| 86 | + } else { | ||
| 87 | + console.warn(res); | ||
| 88 | + Toast({ | ||
| 89 | + icon: 'close', | ||
| 90 | + message: res.data.msg | ||
| 91 | + }); | ||
| 92 | + } | ||
| 93 | + }) | ||
| 94 | + .catch(err => { | ||
| 95 | + console.error(err); | ||
| 96 | + }); | ||
| 97 | +}) | ||
| 93 | 98 | ||
| 94 | // 关注个人用户 | 99 | // 关注个人用户 |
| 95 | const followUser = (status) => { | 100 | const followUser = (status) => { |
| ... | @@ -122,8 +127,8 @@ const followUser = (status) => { | ... | @@ -122,8 +127,8 @@ const followUser = (status) => { |
| 122 | 127 | ||
| 123 | onActivated(() => { // keepAlive 重置后执行回调 | 128 | onActivated(() => { // keepAlive 重置后执行回调 |
| 124 | // TAG: pinia应用,动态刷新数据 | 129 | // TAG: pinia应用,动态刷新数据 |
| 125 | - // 处理数据未刷新数据显示问题 | ||
| 126 | const store = mainStore() | 130 | const store = mainStore() |
| 131 | + // 处理数据未刷新数据显示问题 | ||
| 127 | // Pinia 解构方法:storeToRefs | 132 | // Pinia 解构方法:storeToRefs |
| 128 | const { video_detail } = storeToRefs(store); | 133 | const { video_detail } = storeToRefs(store); |
| 129 | // 如果作品信息有变化及时修正 | 134 | // 如果作品信息有变化及时修正 | ... | ... |
| ... | @@ -31,8 +31,6 @@ | ... | @@ -31,8 +31,6 @@ |
| 31 | </van-col> | 31 | </van-col> |
| 32 | </van-row> | 32 | </van-row> |
| 33 | </div> | 33 | </div> |
| 34 | - | ||
| 35 | - | ||
| 36 | </div> | 34 | </div> |
| 37 | </template> | 35 | </template> |
| 38 | 36 | ||
| ... | @@ -50,12 +48,15 @@ const $route = useRoute(); | ... | @@ -50,12 +48,15 @@ const $route = useRoute(); |
| 50 | const $router = useRouter(); | 48 | const $router = useRouter(); |
| 51 | 49 | ||
| 52 | const getUserInfo = () => { | 50 | const getUserInfo = () => { |
| 53 | - $router.push({ | 51 | + // 从个人头像进入的,不能再往下级进入 |
| 54 | - path: '/client/personIndex', | 52 | + if (!$route.query.path) { |
| 55 | - query: { | 53 | + $router.push({ |
| 56 | - perf_id: videoInfo.value.perf_id | 54 | + path: '/client/personIndex', |
| 57 | - } | 55 | + query: { |
| 58 | - }) | 56 | + perf_id: videoInfo.value.perf_id |
| 57 | + } | ||
| 58 | + }) | ||
| 59 | + } | ||
| 59 | } | 60 | } |
| 60 | 61 | ||
| 61 | const active = ref(0); // index 0 为简介,1 为留言 | 62 | const active = ref(0); // index 0 为简介,1 为留言 |
| ... | @@ -110,7 +111,7 @@ onMounted(() => { | ... | @@ -110,7 +111,7 @@ onMounted(() => { |
| 110 | }) | 111 | }) |
| 111 | .catch(err => { | 112 | .catch(err => { |
| 112 | console.error(err); | 113 | console.error(err); |
| 113 | - }) | 114 | + }); |
| 114 | }) | 115 | }) |
| 115 | 116 | ||
| 116 | const onVideoDetail = (v) => { | 117 | const onVideoDetail = (v) => { | ... | ... |
-
Please register or login to post a comment