2025.02.28 工作代码提交
This commit is contained in:
parent
ff3913769c
commit
1fb340263b
|
@ -1,12 +1,12 @@
|
|||
<script setup>
|
||||
/** 底部菜单导航
|
||||
/** 底部菜单导航
|
||||
* 底部导航的规则
|
||||
* 视频端显示:
|
||||
* 视频 商城 消息 我的(视频我的)
|
||||
* 商城端显示:
|
||||
* 视频 商城 消息 个人中心(商城我的)
|
||||
*/
|
||||
import {
|
||||
import {
|
||||
ref,
|
||||
computed,
|
||||
onMounted,
|
||||
|
@ -14,17 +14,17 @@ import {
|
|||
getCurrentInstance,
|
||||
reactive,
|
||||
watch,
|
||||
} from 'vue'
|
||||
import {
|
||||
} from 'vue'
|
||||
import {
|
||||
onLoad,
|
||||
} from "@dcloudio/uni-app"
|
||||
// 工具库
|
||||
import util from '@/common/js/util';
|
||||
const {
|
||||
} from "@dcloudio/uni-app"
|
||||
// 工具库
|
||||
import util from '@/common/js/util';
|
||||
const {
|
||||
proxy
|
||||
} = getCurrentInstance()
|
||||
// 接收参数
|
||||
const props = defineProps({
|
||||
} = getCurrentInstance()
|
||||
// 接收参数
|
||||
const props = defineProps({
|
||||
page: {
|
||||
type: String,
|
||||
},
|
||||
|
@ -33,16 +33,16 @@ const props = defineProps({
|
|||
type: String,
|
||||
default: 'light',
|
||||
},
|
||||
})
|
||||
// 用户信息
|
||||
const userinfo = computed(() => {
|
||||
})
|
||||
// 用户信息
|
||||
const userinfo = computed(() => {
|
||||
let resuilt = uni.$store.state.userinfo
|
||||
return resuilt
|
||||
})
|
||||
// 展示模式 商城shop 默认default
|
||||
const mode = computed(() => uni.$store.state.tabbarMode)
|
||||
// 底部菜单
|
||||
const menu = computed(() => {
|
||||
})
|
||||
// 展示模式 商城shop 默认default
|
||||
const mode = computed(() => uni.$store.state.tabbarMode)
|
||||
// 底部菜单
|
||||
const menu = computed(() => {
|
||||
let arr = [{
|
||||
page: 'index',
|
||||
type: 'option',
|
||||
|
@ -96,12 +96,12 @@ const menu = computed(() => {
|
|||
break;
|
||||
}
|
||||
return arr
|
||||
})
|
||||
// 安全区高度
|
||||
let safeHeight = ref(0)
|
||||
})
|
||||
// 安全区高度
|
||||
let safeHeight = ref(0)
|
||||
|
||||
// 弹窗菜单
|
||||
const showMenu = computed(() => {
|
||||
// 弹窗菜单
|
||||
const showMenu = computed(() => {
|
||||
let result = []
|
||||
|
||||
// 验证登录
|
||||
|
@ -133,19 +133,17 @@ const showMenu = computed(() => {
|
|||
// name: '家政',
|
||||
// })
|
||||
return result
|
||||
})
|
||||
})
|
||||
|
||||
// 未读数量
|
||||
const noReadNum = ref(0)
|
||||
// 未读数量
|
||||
const noReadNum = ref(0)
|
||||
|
||||
const getReadNum = () => {
|
||||
const getReadNum = () => {
|
||||
getNoReadNum()
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({ getReadNum })
|
||||
|
||||
// 加载完成之后
|
||||
onMounted(() => {
|
||||
// 加载完成之后
|
||||
onMounted(() => {
|
||||
// 开启监听
|
||||
addListener()
|
||||
// 隐藏tabbar
|
||||
|
@ -154,23 +152,21 @@ onMounted(() => {
|
|||
uni.getSystemInfo().then(rs => {
|
||||
safeHeight.value = rs.safeArea + 'px'
|
||||
})
|
||||
// 获取未读消息数量
|
||||
getNoReadNum()
|
||||
|
||||
//
|
||||
// proxy.$refs.alert.open()
|
||||
|
||||
})
|
||||
onLoad(() => {
|
||||
// 获取未读消息数量
|
||||
getNoReadNum()
|
||||
})
|
||||
})
|
||||
|
||||
// 卸载
|
||||
onUnmounted(() => {
|
||||
// 卸载
|
||||
onUnmounted(() => {
|
||||
uni.$off('changeMine')
|
||||
})
|
||||
})
|
||||
|
||||
// 开启监听
|
||||
function addListener() {
|
||||
// 开启监听
|
||||
function addListener() {
|
||||
// 修改个人中心的状态
|
||||
uni.$on('changeMine', (value) => {
|
||||
uni.$store.commit('setState', {
|
||||
|
@ -178,13 +174,13 @@ function addListener() {
|
|||
value,
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 点击菜单
|
||||
* @param {Object} item 当前点击的菜单项
|
||||
*/
|
||||
function handleMenu(item) {
|
||||
function handleMenu(item) {
|
||||
if (item.type != 'middle') {
|
||||
// 判断是否配置页
|
||||
if (item.page) uni.switchTab({
|
||||
|
@ -198,13 +194,13 @@ function handleMenu(item) {
|
|||
}
|
||||
//
|
||||
proxy.$refs.alert.open()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 内容
|
||||
* @param {Object} ev
|
||||
*/
|
||||
function handleAlert(ev) {
|
||||
function handleAlert(ev) {
|
||||
const index = ev.detail.index
|
||||
const item = showMenu.value[index]
|
||||
// 验证
|
||||
|
@ -220,15 +216,15 @@ function handleAlert(ev) {
|
|||
})
|
||||
//
|
||||
proxy.$refs.alert.close()
|
||||
}
|
||||
}
|
||||
|
||||
// 获取未读消息数量
|
||||
function getNoReadNum() {
|
||||
// 获取未读消息数量
|
||||
function getNoReadNum() {
|
||||
if (userinfo.value.isRealName) {
|
||||
// 验证sdk是否准备完毕
|
||||
let isReady = uni.$chat.isReady();
|
||||
if (!isReady) {
|
||||
setTimeout(function () {
|
||||
setTimeout(function() {
|
||||
getNoReadNum();
|
||||
}, 800);
|
||||
return
|
||||
|
@ -239,7 +235,11 @@ function getNoReadNum() {
|
|||
noReadNum.value = +unreadCount > 99 ? '99+' : unreadCount;
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
getReadNum
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -252,9 +252,10 @@ function getNoReadNum() {
|
|||
|
||||
<view class="option" :class="{ active: item.page === page }" v-if="item.type == 'option'">
|
||||
<text class="text">{{ item.name }}</text>
|
||||
<view class="pot" v-if="item.page == 'news' && noReadNum != 0">{{ noReadNum }}</view>
|
||||
</view>
|
||||
|
||||
<text class="pot" v-if="item.page == 'news' && noReadNum != 0">{{ noReadNum }}</text>
|
||||
|
||||
<view class="middle" v-else-if="item.type === 'middle'">
|
||||
<image class="img" src="/static/footerMenuPlus.png" mode="aspectFit" v-if="subject == 'dark'" />
|
||||
<image class="img" src="/static/footerMenuPlus1.png" mode="aspectFit"
|
||||
|
@ -290,15 +291,15 @@ function getNoReadNum() {
|
|||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
$boderSize: 2rpx;
|
||||
$boderSize: 2rpx;
|
||||
|
||||
// 幽灵盒子
|
||||
.ghost {
|
||||
// 幽灵盒子
|
||||
.ghost {
|
||||
height: 120rpx;
|
||||
}
|
||||
}
|
||||
|
||||
// 菜单
|
||||
.menuBox {
|
||||
// 菜单
|
||||
.menuBox {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
@ -320,6 +321,7 @@ $boderSize: 2rpx;
|
|||
|
||||
.item {
|
||||
/* #ifndef APP-NVUE */
|
||||
position: relative;
|
||||
display: flex;
|
||||
/* #endif */
|
||||
align-items: center;
|
||||
|
@ -363,25 +365,32 @@ $boderSize: 2rpx;
|
|||
.option {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
// 消息气泡
|
||||
.pot {
|
||||
position: absolute;
|
||||
top: -16rpx;
|
||||
right: -30rpx;
|
||||
height: 24rpx;
|
||||
/* #ifndef APP-NVUE */
|
||||
min-width: 24rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
/* #endif */
|
||||
line-height: 24rpx;
|
||||
border-radius: 24rpx;
|
||||
/* #ifdef APP-NVUE */
|
||||
line-height: 28rpx;
|
||||
/* #endif */
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
top: 5rpx;
|
||||
right: 5rpx;
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
border-radius: 100rpx;
|
||||
background: #FF6B17;
|
||||
color: #fff;
|
||||
font-size: 20rpx;
|
||||
padding: 4rpx;
|
||||
text-align: center;
|
||||
z-index: 11;
|
||||
}
|
||||
}
|
||||
|
||||
.middle {
|
||||
.img {
|
||||
|
@ -389,10 +398,10 @@ $boderSize: 2rpx;
|
|||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 弹窗
|
||||
.alert {
|
||||
// 弹窗
|
||||
.alert {
|
||||
margin-bottom: 120rpx;
|
||||
background-color: #f8f8f8;
|
||||
border-radius: 30rpx;
|
||||
|
@ -406,5 +415,5 @@ $boderSize: 2rpx;
|
|||
.itemBox {
|
||||
// padding: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -130,13 +130,11 @@
|
|||
userId: userinfo.value.id,
|
||||
// 评论的父id
|
||||
childrenParentId: reply.id || 0,
|
||||
|
||||
}
|
||||
}).then(rs => {
|
||||
console.log('saveComment', rs)
|
||||
if (rs.code == 200) {
|
||||
proxy.$refs.comment.close()
|
||||
detail.comment++
|
||||
// 刷新列表
|
||||
refreshList()
|
||||
setTimeout(() => {
|
||||
|
@ -144,7 +142,10 @@
|
|||
content.value = ''
|
||||
}, 500)
|
||||
// 修改被评论的视频数据
|
||||
uni.$emit('updateVideo', detail)
|
||||
uni.$emit('updateVideo', {
|
||||
...detail,
|
||||
...rs.data,
|
||||
})
|
||||
return
|
||||
}
|
||||
util.alert({
|
||||
|
|
|
@ -474,7 +474,7 @@
|
|||
if (isLong.value) return
|
||||
play()
|
||||
isLong.value = true
|
||||
videoCtx.value.playbackRate(2)
|
||||
videoCtx.value.playbackRate(1.5)
|
||||
}
|
||||
|
||||
// 前往数据中心
|
||||
|
@ -509,6 +509,7 @@
|
|||
<view class="main f1">
|
||||
<view class="videoBox f1" @touchmove.stop="" @touchstart="onTouchStart" @touchend="onTouchEnd"
|
||||
@touchcancel="onTouchCancel" @longpress="longtap">
|
||||
|
||||
<statusBar />
|
||||
|
||||
<!-- 视频 增加判断防止重复加载 -->
|
||||
|
@ -530,7 +531,7 @@
|
|||
<!-- 倍速播放提示 -->
|
||||
<view class="speedBox" v-if="isLong">
|
||||
<view class="speed ptb5 plr10">
|
||||
<text class="f22 cfff">2倍速播放中...</text>
|
||||
<text class="f22 cfff">1.5倍速播放中...</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
@ -587,7 +588,8 @@
|
|||
|
||||
<!-- 只有公开赞显示点赞数 -->
|
||||
<view class="txt mt10">
|
||||
<text class="text" v-if="item.isLike == 0 && item.likeType == 0">{{ item.likeCount }}</text>
|
||||
<text class="text"
|
||||
v-if="item.isLike == 0 && item.likeType == 0">{{ item.likeCount }}</text>
|
||||
<text class="text" v-else-if="item.isLike == 0 && item.likeType == 1">隐私赞</text>
|
||||
<text class="text" v-else>点赞</text>
|
||||
</view>
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
function getDetail() {
|
||||
api.shop.productDetail({
|
||||
query: {
|
||||
userId: userinfo.value.id,
|
||||
userId: userinfo.value.id || '',
|
||||
// 产品id
|
||||
productionId: proId.value
|
||||
}
|
||||
|
|
|
@ -360,7 +360,7 @@ function handleDate(timestamp) {
|
|||
<view class="mark pa t0 r0 cfff f22 cir" v-if="item.unreadCount">{{ item.unreadCount }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="col f1 ml20">
|
||||
<view class="col oh f1 ml20">
|
||||
<view class="rows">
|
||||
<view class="name f1 thd c333 f32">{{ item.name }}</view>
|
||||
<view class="datetime c999 f22">
|
||||
|
|
|
@ -228,8 +228,8 @@
|
|||
const videoRefList = proxy.$refs[`videoRef${tabIndex.value}`]
|
||||
// 暂停视频
|
||||
if (videoRefList) {
|
||||
// videoRefList[videoRefList.length - 2].pause()
|
||||
videoRefList[current[tabIndex.value]].pause()
|
||||
videoRefList[videoRefList.length - 2].pause()
|
||||
// videoRefList[current[tabIndex.value]].pause()
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -806,7 +806,7 @@
|
|||
@touchend="onTouchend($event,index)" @loadmore="item.getMoreList">
|
||||
<cell class="cell" :style="[{height: viewSize.height + 'px'}]" :ref="`cellRef` + index"
|
||||
v-for="(secItem,secIndex) in item.listData()" :key="secItem.id" @click.stop>
|
||||
<!-- <template v-if="current[tabIndex] < secIndex + 2 && current[tabIndex] > secIndex - 2"> -->
|
||||
<template v-if="current[tabIndex] < secIndex + 2 && current[tabIndex] > secIndex - 2">
|
||||
<!-- 视频 -->
|
||||
<indexVideo :ref="'videoRef' + index" :tabIndex="index" :current="current[tabIndex]"
|
||||
:width="viewSize.width" :height="viewSize.height" :item="secItem" :index="secIndex"
|
||||
|
@ -815,7 +815,7 @@
|
|||
@onPlay="handleVideoOnPlay" @onPause="handleVideoOnPause" @like="videoLike"
|
||||
@longtap="$refs.moreMenuRef.open(secItem)" @showFastCollect="handleShowFastCollect"
|
||||
@showProduct="handleShowProduct" @proBuy="handleProBuy" />
|
||||
<!-- </template> -->
|
||||
</template>
|
||||
</cell>
|
||||
</list>
|
||||
</view>
|
||||
|
|
Loading…
Reference in New Issue