Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Hooke
/
tswj
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
hookehuyr
2022-05-12 23:31:32 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
14907ea66403e4d8ce1bc70fe7571540cbd00eec
14907ea6
1 parent
fba5f66a
✨ feat: 修复keepAlive页面返回在微信中适配问题
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
60 additions
and
14 deletions
src/common/mixin.js
src/components/VideoDetail/index.vue
src/store/index.js
src/views/client/bookDetail.vue
src/views/client/personIndex.vue
src/views/client/videoDetail.vue
src/common/mixin.js
View file @
14907ea
...
...
@@ -60,8 +60,6 @@ export default {
if
(
res
.
data
.
code
===
1
)
{
this
.
detail
[
`is_
${
type
}
`
]
=
res
.
data
.
data
[
`is_
${
type
}
`
];
this
.
detail
[
`
${
type
}
_num`
]
=
res
.
data
.
data
[
`
${
type
}
_num`
];
// 传回数据
this
.
$emit
(
'on-click'
,
this
.
detail
);
}
else
{
// tslint:disable-next-line: no-console
console
.
warn
(
res
);
...
...
src/components/VideoDetail/index.vue
View file @
14907ea
...
...
@@ -92,6 +92,8 @@ export default {
]
})
this.detail = _.cloneDeep(this.item);
// 传回数据
this.$emit('on-click', this.detail);
var video = mp.video();
// 监听原生video事件
var _this = this;
...
...
src/store/index.js
View file @
14907ea
...
...
@@ -7,7 +7,8 @@ export const mainStore = defineStore('main', {
count
:
0
,
auth
:
false
,
comment_num
:
0
,
video_detail
:
{}
video_detail
:
{},
scrollTop
:
0
,
};
},
getters
:
{},
...
...
@@ -20,6 +21,9 @@ export const mainStore = defineStore('main', {
},
changeVideoDetail
(
v
)
{
this
.
video_detail
=
v
;
}
},
changeScrollTop
(
v
)
{
this
.
scrollTop
=
v
;
},
},
});
...
...
src/views/client/bookDetail.vue
View file @
14907ea
...
...
@@ -122,6 +122,8 @@ import axios from '@/utils/axios';
import $ from 'jquery'
import _ from 'lodash'
import { Toast } from 'vant';
import { wxInfo } from '@/utils/tools';
const $route = useRoute();
const $router = useRouter();
...
...
@@ -265,6 +267,21 @@ onActivated(() => { // keepAlive 重置后执行回调
})
// 触发更新
prod_list.value = arr.value;
/**
* 判断微信环境
*/
if (wxInfo().isiOS || wxInfo().isAndroid) {
// TODO: 手机微信浏览器位置变动了,需要手动调整位置,但是无刷新是起作用的
const { scrollTop } = storeToRefs(store);
if (scrollTop.value) {
$("html,body").animate({ "scrollTop": scrollTop.value })
}
window.addEventListener('scroll',()=>{
if (window.scrollY) {
store.changeScrollTop(window.scrollY)
}
});
}
});
const changeRouterKeepAlive = (path, keepAlive) => {
...
...
@@ -287,6 +304,7 @@ onBeforeRouteLeave((to, from) => {
})
/*********************************************************/
</script>
<script>
...
...
@@ -296,9 +314,27 @@ export default {
mixins: [mixin.init],
data() {
return {
scrollTop: ''
}
},
created() {
mounted() {
// 监听滚动恢复
// this.$nextTick(() => {
// let top = localStorage.getItem('scrollPosTop') ? Number(localStorage.getItem('scrollPosTop')) : 0;
// $("html,body").animate({ "scrollTop": top })
// })
// setTimeout(() => {
// // let top = localStorage.getItem('scrollPosTop') ? Number(localStorage.getItem('scrollPosTop')) : 0;
// let top = Cookies.get('scrollPosTop') ? Number(Cookies.get('scrollPosTop')) : 0;
// $("html,body").animate({ "scrollTop": top })
// }, 1000)
// window.addEventListener('scroll',()=>{
// if (window.scrollY) {
// this.scrollTop = window.scrollY
// }
// localStorage.setItem('scrollPosTop', this.scrollTop)
// Cookies.set(scrollPosTop, this.scrollTop)
// })
},
methods: {
}
...
...
src/views/client/personIndex.vue
View file @
14907ea
...
...
@@ -58,21 +58,25 @@ import { storeToRefs } from 'pinia'
import VideoCard from '@/components/VideoCard/index.vue'
import { ref, onActivated } from 'vue'
import { ref, onActivated
, onMounted
} from 'vue'
import { useRoute, useRouter, onBeforeRouteLeave } from 'vue-router'
import axios from '@/utils/axios';
import _ from 'lodash';
import $ from 'jquery';
import { Toast } from 'vant';
const $route = useRoute();
const $router = useRouter();
// 获取表演者信息
const userInfo = ref({})
axios.get('/srv/?a=perf_info', {
const store = mainStore();
const userInfo = ref({});
onMounted(() => {
// 获取表演者信息
axios.get('/srv/?a=perf_info', {
params: {
perf_id: $route.query.perf_id
}
})
})
.then(res => {
if (res.data.code === 1) {
_.each(res.data.data.prod, (item) => {
...
...
@@ -90,6 +94,7 @@ axios.get('/srv/?a=perf_info', {
.catch(err => {
console.error(err);
});
})
// 关注个人用户
const followUser = (status) => {
...
...
@@ -122,8 +127,8 @@ const followUser = (status) => {
onActivated(() => { // keepAlive 重置后执行回调
// TAG: pinia应用,动态刷新数据
// 处理数据未刷新数据显示问题
const store = mainStore()
// 处理数据未刷新数据显示问题
// Pinia 解构方法:storeToRefs
const { video_detail } = storeToRefs(store);
// 如果作品信息有变化及时修正
...
...
src/views/client/videoDetail.vue
View file @
14907ea
...
...
@@ -31,8 +31,6 @@
</van-col>
</van-row>
</div>
</div>
</template>
...
...
@@ -50,12 +48,15 @@ const $route = useRoute();
const $router = useRouter();
const getUserInfo = () => {
// 从个人头像进入的,不能再往下级进入
if (!$route.query.path) {
$router.push({
path: '/client/personIndex',
query: {
perf_id: videoInfo.value.perf_id
}
})
}
}
const active = ref(0); // index 0 为简介,1 为留言
...
...
@@ -110,7 +111,7 @@ onMounted(() => {
})
.catch(err => {
console.error(err);
})
})
;
})
const onVideoDetail = (v) => {
...
...
Please
register
or
login
to post a comment