话题组件

main
Connor 2024-06-05 12:43:54 +08:00
parent 531881359a
commit 29ea97eedf
3 changed files with 610 additions and 363 deletions

View File

@ -9,6 +9,8 @@
}, },
"pages": [ "pages": [
{ {
"path": "pages/index", "path": "pages/index",
"style": { "style": {

View File

@ -1,85 +1,420 @@
<template> <template>
<view class="post-item"> <!-- 话题 -->
<view class="post-list-item"> <view class="center-content-post">
<view @click.stop="toUser('跳转到用户个人空间')"> <view class="center-content-post-padding">
<up-avatar :src="src" size="50"></up-avatar> <view class="center-content-post-head">
</view> <!-- 左对齐 -->
<view class="center"> <view class="flex alignCenter">
<view class="post-top-box"> <!-- 头像 -->
<view class="uname"> <div class="avatar-container">
<text v-if="userType == 1" class="official"></text> <u-avatar class="avatar-1" size="84rpx" :src="postValue.avatar"></u-avatar>
<text class="username">{{ username.substring(0, 10) }}</text> <image v-if="postValue.isOfficial" class="official-1" src="../static/images/icon/tu3-6.png"></image>
</view> </div>
<view class=""> <!-- 用户名 -->
<text v-if="postTop>0" class="officials"></text> <view class="center-content-post-head-title">
<text v-if="poststatus==1" class="officials"></text> <text class="center-content-post-head-title-uname">{{postValue.uname}}</text>
<text v-if="poststatus==2" class="officials"></text> <text class="center-content-post-head-title-timeAddress">{{postValue.createTime + '·' + postValue.address}}</text>
</view> </view>
</view> </view>
<view> <!-- 右对齐 -->
<text class="time">{{createTime}}</text> <view class="flex alignCenter" v-if="postViewIndex != 0">
<text class="no-focus-text" v-if="postValue.isFocus" @click="addFocus(index)"></text>
<text class="focus-text" v-else @click="cancelFocus()"></text>
</view> </view>
</view> </view>
</view> <text class="center-content-post-title" v-if="postValue.title">{{postValue.title}}</text>
<view class="post-content"> <text class="center-content-post-content-0" v-if="postViewType == 0">{{postValue.content}}</text>
<rich-text class="post-text" :nodes="postcontent"></rich-text> <text class="center-content-post-content-1" v-if="postViewType == 1">{{postValue.content}}</text>
<block v-if="posttype == 1"> <!-- 图片 -->
<up-album :urls="urls2" multipleSize="95" space="3"></up-album> <!--一张图片-->
<block v-if="postValue.media.length == 1">
<image :lazy-load="true" mode="aspectFill" class="img-style-1" :src="postValue.media[0]"
@tap="previewImage(postValue.media[0], postValue.media)"></image>
</block> </block>
<!--二张图片-->
<block v-if="postValue.media.length == 2">
<view class="img-style-2">
<image :lazy-load="true" v-for="(mediaItem, index2) in postValue.media" :key="index2"
@tap.stop="previewImage(mediaItem, postValue.media)" mode="aspectFill"
:src="mediaItem"></image>
</view> </view>
<!-- 位置 --> </block>
<view class="address" v-if="postaddress"> <!--三张图片-->
<u-icon class="icon" name="map-fill"></u-icon> <block v-if="postValue.media.length >= 3">
<text>{{ postaddress }}</text> <u-album :urls="postValue.media" singleSize="660rpx" multipleSize="220rpx" space="10rpx" maxCount="3"></u-album>
</block>
<!-- tab -->
<view class="center-content-post-tab" style="display: flex;">
<text
class="center-content-post-tab-text"
v-for="(tabItem, index2) in postValue.tab" :key="index2"
:text="'#' + tabItem">{{'#' + tabItem}}</text>
</view> </view>
<!-- 底部 --> <view class="post-list-bottom" v-if="postViewType == 0" style="display: flex; justify-content: space-between;">
<view class="post-list-bottom"> <!-- 靠左对齐 -->
<view class="">
<view class="p-item">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu2-9.png" mode=""></image>
<text class="count">{{ postValue.transmitCount }}</text>
</view>
</view>
<!-- 靠右对齐 -->
<view class="flex alignCenter">
<view v-if="postValue.isLike" class="p-item" @click.stop="cancelCollection()">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-8.png" mode=""></image>
<text class="count">{{ postValue.likeCount }}</text>
</view>
<!-- 靠右对齐 -->
<view v-if="!postValue.isLike" class="p-item" @click.stop="addCollection()">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-7.png" mode=""></image>
<text class="count">{{ postValue.likeCount }}</text>
</view>
<!-- 靠右对齐 -->
<view class="p-item margin50"> <view class="p-item margin50">
<!-- <text class="iconfont icon-quanzi"></text> --> <image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-3.png" mode=""></image>
<u-icon name="share"></u-icon> <text class="count">{{ postValue.commentCount }}</text>
<text class="count">{{ readCount }}</text>
</view> </view>
<view v-show="isLike" class="p-item" @click.stop="cancelCollection('取消点赞')">
<u-icon name="heart-fill" color="#cc0000"></u-icon> <!-- 靠右对齐 -->
<text class="count">{{ likeCount }}</text> <view class="p-item margin50" v-if="postValue.ifFavorite" @click.stop="cancelFavorite()">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-2.png" mode=""></image>
<text class="count">{{ postValue.favoriteCount }}</text>
</view> </view>
<view v-show="!isLike" class="p-item" @click.stop="addCollection('点赞')">
<u-icon name="heart"></u-icon> <!-- 靠右对齐 -->
<text class="count">{{ likeCount }}</text> <view class="p-item margin50" v-if="!postValue.ifFavorite" @click.stop="addFavorite()">
</view> <image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-1.png" mode=""></image>
<view class="p-item margin50"> <text class="count">{{ postValue.favoriteCount }}</text>
<!-- <text class="iconfont icon-pinglun"></text> -->
<u-icon name="chat"></u-icon>
<text class="count">{{ commentCount }}</text>
</view> </view>
</view> </view>
</view> </view>
</view>
<u-line></u-line>
</view>
</template> </template>
<script> <script setup>
export default { import { ref, reactive, onMounted, getCurrentInstance } from 'vue';
props: { const props = defineProps({
talkPost: { postValue: Object,
type: Object, postViewIndex: Number,
required: true postViewType: Number
} });
}, // const postValue = reactive(
methods: { // {
toUser(message) { // avatar: 'https://k.sinaimg.cn/n/sports/transform/400/w600h600/20220130/dd38-eed53ba750d1d8c87eca8b57eda879a5.jpg/w700d1q75cms.jpg?by=cms_fixed_width',
// // uname: '',
console.log(message); // createTime: '11',
}, // address: '',
cancelCollection(message) { // isFocus: false,
// // isOfficial: true,
console.log(message); // title: '·,',
}, // content: '......',
addCollection(message) { // type: '1',
// // media: [
console.log(message); // 'https://tu.sioe.cn/gj/qiege/image.jpg',
} // 'https://picx.zhimg.com/v2-3b4fc7e3a1195a081d0259246c38debc_720w.jpg?source=172ae18b',
} // 'https://bpic.51yuansu.com/backgd/cover/00/63/09/64b52b1426fff_800.jpg?x-oss-process=image/resize,w_780/sharpen,100',
// 'https://tu.sioe.cn/gj/qiege/image.jpg',
// ],
// tab: ['', ''],
// transmitCount: 136,
// isLike: true,
// likeCount: 999,
// commentCount: 136,
// ifFavorite: true,
// favoriteCount: 136
// }
// );
const previewImage = (url, urls) => {
uni.previewImage({
current: url, // http
urls: urls // http
});
};
const cancelCollection = () => {
props.postValue.likeCount -= 1;
props.postValue.isLike = !props.postValue.isLike;
};
const addCollection = () => {
props.postValue.likeCount += 1;
props.postValue.isLike = !props.postValue.isLike;
};
const cancelFavorite = () => {
props.postValue.favoriteCount -= 1;
props.postValue.ifFavorite = !props.postValue.ifFavorite;
};
const addFavorite = () => {
props.postValue.favoriteCount += 1;
props.postValue.ifFavorite = !props.postValue.ifFavorite;
};
const cancelFocus = () => {
props.postValue.isFocus = !props.postValue.isFocus;
};
const addFocus = () => {
props.postValue.isFocus = !props.postValue.isFocus;
}; };
</script> </script>
<style> <style lang="scss">
.center-content-post {
}
.center-content-post-padding {
padding: 46rpx 32rpx;
}
.center-content-post-head {
display: flex;
justify-content: space-between;
}
.center-content-post-head-title {
display: flex;
flex-direction: column;
margin-left: 20rpx;
}
.center-content-post-head-title-uname {
font-weight: 400;
font-size: 30rpx;
text-align: left;
color: #000000;
align-self: flex-start; /* 垂直起始对齐 */
margin-bottom: 20rpx;
height: 32rpx;
line-height: 32rpx;
}
.center-content-post-head-title-timeAddress {
font-weight: 400;
font-size: 30rpx;
text-align: left;
color: #999999;
align-self: flex-end; /* 垂直结束对齐 */
height: 30rpx;
line-height: 30rpx;
}
.no-focus-text {
font-weight: 400;
width: 58rpx;
// height: 30rpx;
font-size: 28rpx;
text-align: left;
color: #3477FC;
}
.focus-text {
font-weight: 400;
/* width: 58rpx; */
// height: 30rpx;
font-size: 28rpx;
text-align: left;
color: #2553b4;
}
.center-content-post-title{
display: block;
font-weight: 600;
/* width: 670rpx; */
// height: 80rpx;
font-size: 32rpx;
text-align: left;
color: #000000;
margin-top: 30rpx;
display: -webkit-box; /* 将文本视为弹性盒子 */
-webkit-line-clamp: 2; /* 设置最大行数 */
-webkit-box-orient: vertical; /* 垂直方向排列文本 */
overflow: hidden; /* 隐藏超出部分 */
}
.center-content-post-content-0{
display: block;
font-weight: 400;
/* width: 670rpx; */
// height: 80rpx;
font-size: 32rpx;
text-align: left;
color: #333333;
margin-top: 18rpx;
margin-bottom: 28rpx;
display: -webkit-box; /* 将文本视为弹性盒子 */
-webkit-line-clamp: 2; /* 设置最大行数 */
-webkit-box-orient: vertical; /* 垂直方向排列文本 */
overflow: hidden; /* 隐藏超出部分 */
}
.center-content-post-content-1{
display: block;
font-weight: 400;
/* width: 670rpx; */
// height: 80rpx;
font-size: 32rpx;
text-align: left;
color: #333333;
margin-top: 18rpx;
margin-bottom: 28rpx;
}
.u-album__row[data-v-723ad357] {
justify-content: center !important;
}
.u-album__row.data-v-723ad357 {
justify-content: center !important;
/* height: 200rpx !important; */
}
.u-album__row__wrapper {}
.data-v-6fcabaad {
border-radius: 20rpx 20rpx 20rpx 20rpx;
/* width: 200rpx !important;
height: 200rpx !important; */
}
.center-content-post-tab{
margin-top: 20rpx;
margin-bottom: 20rpx;
}
.post-list-bottom {
display: flex;
justify-content: center; /* 水平居中 */
}
.p-item {
display: flex;
align-items: center; /* 垂直居中 */
justify-content: center; /* 水平居中 */
}
.center-content-post-tab-text{
font-weight: 400;
/* width: 139rpx; */
// height: 26rpx;
font-size: 24rpx;
text-align: left;
color: #3477FC;
/* width: 130rpx; */
// height: 44rpx;
// line-height: 44rpx;
border-radius: 10rpx 10rpx 10rpx 10rpx;
background: #f7f8fa;
padding: 8rpx;
/* margin-left: 50rpx; */
}
.center-content-post-tab-text:nth-child(2) {
/* 您的样式 */
margin-left: 24rpx; /* 添加额外的左边距 */
}
.margin50 {
margin-left: 50rpx; /* 添加额外的左边距 */
}
.count{
font-weight: 400;
width: 48rpx;
/* height: 23rpx; */
font-size: 28rpx;
text-align: left;
color: #787878;
margin-left: 10rpx;
}
.box-a {
margin-top: 42rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.box-b {
width: calc(33.33% - 16rpx); /* 每行三个元素,减去外边距的总宽度 */
margin-bottom: 24rpx;
}
.box-c {
// width: 100%;
// height: 82rpx;
border-radius: 16rpx;
background: #f7f8fc;
border: 2rpx solid transparent;
box-sizing: border-box;
cursor: pointer;
overflow: hidden;
}
.offtext {
font-weight: 400;
font-size: 30rpx;
text-align: center;
font-family: "Microsoft YaHei";
// line-height: 82rpx;
display: block;
cursor: pointer;
transition: all 0.3s ease;
padding: 12rpx 0;
}
.boxtext {
font-weight: 600;
color: #91b4ff;
}
.box-d {
border-color: #91b4ff;
}
.avatar-container {
position: relative;
}
.avatar-1 {
position: relative;
}
.official-1 {
position: absolute;
width: 32rpx;
height: 32rpx;
bottom: 0;
right: 0;
}
.img-style-1 {
display: block;
width: 100%;
height: 600rpx;
border-radius: 6px;
overflow: hidden;
width: 686rpx;
height: 370rpx;
border-radius: 18rpx 18rpx 18rpx 18rpx;
background: #b3d7ff;
}
.img-style-2 {
display: flex;
image {
margin: 6rpx;
width: 100%;
height: 306rpx;
border-radius: 18rpx 18rpx 18rpx 18rpx;
}
}
.image-container {
display: inline-block;
position: relative; /* 设置父元素为相对定位 */
width: 46rpx;
height: 46rpx;
}
</style> </style>

View File

@ -63,115 +63,12 @@
<view class="center-content-focus-line"></view> <view class="center-content-focus-line"></view>
</view> </view>
<!-- 话题 --> <view class="" v-for="(postItem, postIndex) in postList" :key="postIndex">
<view class="center-content-post" v-for="(item, index) in postList" :key="index"> <PostView :postValue="postItem" :postViewIndex="viewIndex" :postViewType="0"></PostView>
<!-- <view class="center-content-post-head flex alignCenter justifyBetween">
<u-avatar size="84rpx" :src="item.avatar"></u-avatar>
<view class="center-content-post-head-title">
<text class="center-content-post-head-title-uname">{{item.uname}}</text>
<text class="center-content-post-head-title-timeAddress">{{item.createTime + '·' + item.address}}</text>
</view>
<text v-if="item.isFocus"></text>
<text>已关注</text>
</view> -->
<view class="center-content-post-padding">
<view class="center-content-post-head">
<!-- 左对齐 -->
<view class="flex alignCenter">
<!-- 头像 -->
<div class="avatar-container">
<u-avatar class="avatar-1" size="84rpx" :src="item.avatar"></u-avatar>
<image v-if="item.isOfficial" class="official-1" src="../static/images/icon/tu3-6.png"></image>
</div>
<!-- 用户名 -->
<view class="center-content-post-head-title">
<text class="center-content-post-head-title-uname">{{item.uname}}</text>
<text class="center-content-post-head-title-timeAddress">{{item.createTime + '·' + item.address}}</text>
</view>
</view>
<!-- 右对齐 -->
<view class="flex alignCenter" v-if="viewIndex != 0">
<text class="no-focus-text" v-if="item.isFocus" @click="addFocus(index)"></text>
<text class="focus-text" v-else @click="cancelFocus(index)"></text>
</view>
</view>
<text class="center-content-post-title" v-if="item.title">{{item.title}}</text>
<text class="center-content-post-content">{{item.content}}</text>
<!-- 图片 -->
<!--一张图片-->
<block v-if="item.media.length == 1">
<image :lazy-load="true" mode="aspectFill" class="img-style-1" :src="item.media[0]"
@tap="previewImage(item.media[0], item.media)"></image>
</block>
<!--二张图片-->
<block v-if="item.media.length == 2">
<view class="img-style-2">
<image :lazy-load="true" v-for="(mediaItem, index2) in item.media" :key="index2"
@tap.stop="previewImage(mediaItem, item.media)" mode="aspectFill"
:src="mediaItem"></image>
</view>
</block>
<!--三张图片-->
<block v-if="item.media.length >= 3">
<u-album :urls="item.media" singleSize="660rpx" multipleSize="220rpx" space="10rpx" maxCount="3"></u-album>
</block>
<!-- tab -->
<view class="center-content-post-tab" style="display: flex;">
<text
class="center-content-post-tab-text"
v-for="(tabItem, index2) in item.tab" :key="index2"
:text="'#' + tabItem">{{'#' + tabItem}}</text>
</view>
<view class="post-list-bottom" style="display: flex; justify-content: space-between;">
<!-- 靠左对齐 -->
<view class="">
<view class="p-item">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu2-9.png" mode=""></image>
<text class="count">{{ item.transmitCount }}</text>
</view>
</view>
<!-- 靠右对齐 -->
<view class="flex alignCenter">
<view v-if="item.isLike" class="p-item" @click.stop="cancelCollection(index)">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-8.png" mode=""></image>
<text class="count">{{ item.likeCount }}</text>
</view>
<!-- 靠右对齐 -->
<view v-if="!item.isLike" class="p-item" @click.stop="addCollection(index)">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-7.png" mode=""></image>
<text class="count">{{ item.likeCount }}</text>
</view>
<!-- 靠右对齐 -->
<view class="p-item margin50">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-3.png" mode=""></image>
<text class="count">{{ item.commentCount }}</text>
</view>
<!-- 靠右对齐 -->
<view class="p-item margin50" v-if="item.ifFavorite" @click.stop="cancelFavorite(index)">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-2.png" mode=""></image>
<text class="count">{{ item.favoriteCount }}</text>
</view>
<!-- 靠右对齐 -->
<view class="p-item margin50" v-if="!item.ifFavorite" @click.stop="addFavorite(index)">
<image style="width: 40rpx; height: 40rpx;" src="../static/images/icon/tu3-1.png" mode=""></image>
<text class="count">{{ item.favoriteCount }}</text>
</view>
</view>
</view> </view>
</view> </view>
<u-line></u-line>
</view>
</view>
<!-- 热门弹出层 --> <!-- 热门弹出层 -->
<u-popup :round="20" :show="searchOpen" mode="bottom" @close="searchOpen = false" @open="searchOpen = true"> <u-popup :round="20" :show="searchOpen" mode="bottom" @close="searchOpen = false" @open="searchOpen = true">
@ -230,39 +127,55 @@
</view> </view>
</template> </template>
<script> <script setup>
export default { import { ref, reactive, onMounted, getCurrentInstance } from 'vue';
data() { import {onReachBottom,onLoad} from "@dcloudio/uni-app";
return { import PostView from "@/pages/common/postview/index.vue";
viewIndex: 0,
searchOpen: false,
lefther: 0, const { proxy } = getCurrentInstance();
searchPrerequisite: '热门', onReachBottom(() => {
postTypeOpen: false, console.log('触底了')
postTypeList: ['发布话题', '发布活动'], })
bgColor: 'rgba(170, 0, 0, 0)',
searchPrerequisiteList: [ const viewIndex = ref(0);
const searchOpen = ref(false);
const lefther = ref(0);
const searchPrerequisite = ref('热门');
const postTypeOpen = ref(false);
const bgColor = ref('rgba(170, 0, 0, 0)');
const postTypeList = ['发布话题', '发布活动'];
const searchPrerequisiteList = [
'热门', '最新', '筛选3', '筛选4', '筛选5', '筛选6', '筛选7', '筛选8', '筛选9' '热门', '最新', '筛选3', '筛选4', '筛选5', '筛选6', '筛选7', '筛选8', '筛选9'
], ];
list1: [{
name: '关注', const list1 = reactive([
}, { { name: '关注' },
name: '推荐', { name: '推荐' }
}], ]);
focusList: [{
const focusList = reactive([
{
avatar: 'https://k.sinaimg.cn/n/sports/transform/400/w600h600/20220130/dd38-eed53ba750d1d8c87eca8b57eda879a5.jpg/w700d1q75cms.jpg?by=cms_fixed_width', avatar: 'https://k.sinaimg.cn/n/sports/transform/400/w600h600/20220130/dd38-eed53ba750d1d8c87eca8b57eda879a5.jpg/w700d1q75cms.jpg?by=cms_fixed_width',
uname: '爱吃饭的小张' uname: '爱吃饭的小张'
},{ },
{
avatar: 'https://oss.1381801.com/forum/202308/11/093616ccxkx99wchwrrw1a.jpg', avatar: 'https://oss.1381801.com/forum/202308/11/093616ccxkx99wchwrrw1a.jpg',
uname: '喜欢你没道理' uname: '喜欢你没道理'
},{ },
{
avatar: 'https://picx.zhimg.com/v2-02f89d05a781ffed9fd2e32654d93135_720w.jpg?source=172ae18b', avatar: 'https://picx.zhimg.com/v2-02f89d05a781ffed9fd2e32654d93135_720w.jpg?source=172ae18b',
uname: '恋爱60秒' uname: '恋爱60秒'
},{ },
{
avatar: 'https://www.tboxn.com/wp-content/uploads/2022/11/%E5%A4%B4%E5%83%8F.png', avatar: 'https://www.tboxn.com/wp-content/uploads/2022/11/%E5%A4%B4%E5%83%8F.png',
uname: '爱吃饭的小张' uname: '爱吃饭的小张'
}], }
postList: [{ ]);
const postList = reactive([
{
avatar: 'https://k.sinaimg.cn/n/sports/transform/400/w600h600/20220130/dd38-eed53ba750d1d8c87eca8b57eda879a5.jpg/w700d1q75cms.jpg?by=cms_fixed_width', avatar: 'https://k.sinaimg.cn/n/sports/transform/400/w600h600/20220130/dd38-eed53ba750d1d8c87eca8b57eda879a5.jpg/w700d1q75cms.jpg?by=cms_fixed_width',
uname: '爱吃饭的小张', uname: '爱吃饭的小张',
createTime: '11分钟前', createTime: '11分钟前',
@ -270,7 +183,7 @@
isFocus: false, isFocus: false,
isOfficial: true, isOfficial: true,
title: '怎么评论爱德华·艾尔加这位音乐家及其他的作品,欢迎大家发表自己的看法?', title: '怎么评论爱德华·艾尔加这位音乐家及其他的作品,欢迎大家发表自己的看法?',
content: '八年前,学弟在工地上杀了一个工友,杀人前,他给警察打了电话,预告杀人的时间和地点,并......', content: '八年前,学弟在工地上杀了一个工友,杀人前,他给警察打了电话,预告杀人的时间和地点,并超出部分测试超出部分测试超出部分测试超出部分测试......超出部分测试超出部分测试超出部分测试超出部分测试',
type: '1', type: '1',
media: [ media: [
'https://tu.sioe.cn/gj/qiege/image.jpg', 'https://tu.sioe.cn/gj/qiege/image.jpg',
@ -278,39 +191,35 @@
'https://bpic.51yuansu.com/backgd/cover/00/63/09/64b52b1426fff_800.jpg?x-oss-process=image/resize,w_780/sharpen,100', 'https://bpic.51yuansu.com/backgd/cover/00/63/09/64b52b1426fff_800.jpg?x-oss-process=image/resize,w_780/sharpen,100',
'https://tu.sioe.cn/gj/qiege/image.jpg', 'https://tu.sioe.cn/gj/qiege/image.jpg',
], ],
tab: [ tab: ['学术讨论组', '校园风景'],
'学术讨论组',
'校园风景'
],
transmitCount: 136, transmitCount: 136,
isLike: true, isLike: true,
likeCount: 999, likeCount: 999,
commentCount: 136, commentCount: 136,
ifFavorite: true, ifFavorite: true,
favoriteCount: 136 favoriteCount: 136
},{ },
{
avatar: 'https://oss.1381801.com/forum/202308/11/093616ccxkx99wchwrrw1a.jpg', avatar: 'https://oss.1381801.com/forum/202308/11/093616ccxkx99wchwrrw1a.jpg',
uname: '喜欢你没道理', uname: '喜欢你没道理',
createTime: '2024-5-5', createTime: '2024-5-5',
address: '南开大学', address: '南开大学',
isFocus: false, isFocus: false,
isOfficial: false, isOfficial: false,
// title: '·,',
content: '是一个中文互联网高质量问答社区和创作者聚集的原创内容平台于2011年1月正式上线', content: '是一个中文互联网高质量问答社区和创作者聚集的原创内容平台于2011年1月正式上线',
type: '1', type: '1',
media: [ media: [
'https://tu.sioe.cn/gj/qiege/image.jpg', 'https://tu.sioe.cn/gj/qiege/image.jpg',
], ],
tab: [ tab: ['校园风景'],
'校园风景'
],
transmitCount: 13, transmitCount: 13,
isLike: false, isLike: false,
likeCount: 99, likeCount: 99,
commentCount: 13, commentCount: 13,
ifFavorite: true, ifFavorite: true,
favoriteCount: 13 favoriteCount: 13
},{ },
{
avatar: 'https://picx.zhimg.com/v2-02f89d05a781ffed9fd2e32654d93135_720w.jpg?source=172ae18b', avatar: 'https://picx.zhimg.com/v2-02f89d05a781ffed9fd2e32654d93135_720w.jpg?source=172ae18b',
uname: '恋爱60秒', uname: '恋爱60秒',
createTime: '2024-5-4', createTime: '2024-5-4',
@ -324,29 +233,24 @@
'https://tu.sioe.cn/gj/qiege/image.jpg', 'https://tu.sioe.cn/gj/qiege/image.jpg',
'https://picx.zhimg.com/v2-3b4fc7e3a1195a081d0259246c38debc_720w.jpg?source=172ae18b' 'https://picx.zhimg.com/v2-3b4fc7e3a1195a081d0259246c38debc_720w.jpg?source=172ae18b'
], ],
tab: [ tab: ['校园风景'],
'校园风景'
],
transmitCount: 13, transmitCount: 13,
isLike: false, isLike: false,
likeCount: 99, likeCount: 99,
commentCount: 13, commentCount: 13,
ifFavorite: false, ifFavorite: false,
favoriteCount: 13 favoriteCount: 13
}]
} }
}, ]);
onLoad() {
console.log(this.$store.state.user.QNDomain); const previewImage = (url, urls) => {
},
methods: {
previewImage(url, urls) {
uni.previewImage({ uni.previewImage({
current: url, // http current: url, // http
urls: urls // http urls: urls // http
}); });
}, };
toScanCode() {
const toScanCode = () => {
// //
uni.scanCode({ uni.scanCode({
success: function (res) { success: function (res) {
@ -354,69 +258,75 @@
console.log('条码内容:' + res.result); console.log('条码内容:' + res.result);
} }
}); });
}, };
togglePostType() {
this.postTypeOpen = !this.postTypeOpen; const togglePostType = () => {
}, postTypeOpen.value = !postTypeOpen.value;
toEarch() { };
console.log()
this.$tab.navigateTo('/pages/search/index') const toEarch = () => {
}, proxy.$tab.navigateTo('/pages/search/index');
rightClick() { };
console.log('rightClick');
}, const rightClick = () => {
leftClick() { console.log('rightClick');
console.log('leftClick'); };
},
click(item) { const leftClick = () => {
console.log('item', item); console.log('leftClick');
this.viewIndex = item.index; };
},
cancelCollection(index) { const click = (item) => {
console.log(111,index) viewIndex.value = item.index;
this.postList[index].likeCount -= 1; };
this.postList[index].isLike = !this.postList[index].isLike;
}, const cancelCollection = (index) => {
addCollection(index) { postList[index].likeCount -= 1;
console.log(111,index) postList[index].isLike = !postList[index].isLike;
this.postList[index].likeCount += 1; };
this.postList[index].isLike = !this.postList[index].isLike;
}, const addCollection = (index) => {
cancelFavorite(index) { postList[index].likeCount += 1;
console.log(111,index) postList[index].isLike = !postList[index].isLike;
this.postList[index].favoriteCount -= 1; };
this.postList[index].ifFavorite = !this.postList[index].ifFavorite;
}, const cancelFavorite = (index) => {
addFavorite(index) { postList[index].favoriteCount -= 1;
console.log(111,index) postList[index].ifFavorite = !postList[index].ifFavorite;
this.postList[index].favoriteCount += 1; };
this.postList[index].ifFavorite = !this.postList[index].ifFavorite;
}, const addFavorite = (index) => {
cancelFocus(index) { postList[index].favoriteCount += 1;
console.log(111,index) postList[index].ifFavorite = !postList[index].ifFavorite;
this.postList[index].isFocus = !this.postList[index].isFocus; };
}
, const cancelFocus = (index) => {
addFocus(index) { postList[index].isFocus = !postList[index].isFocus;
console.log(111,index) };
this.postList[index].isFocus = !this.postList[index].isFocus;
}, const addFocus = (index) => {
handerLi(res) { postList[index].isFocus = !postList[index].isFocus;
this.lefther = res; };
console.log(res)
this.searchPrerequisite = this.searchPrerequisiteList[res] const handerLi = (res) => {
setTimeout(() => { lefther.value = res;
this.searchOpen = !this.searchOpen searchPrerequisite.value = searchPrerequisiteList[res];
}, 350); setTimeout(() => {
searchOpen.value = !searchOpen.value;
}, 350);
};
const handerShowHand = () => {
searchOpen.value = !searchOpen.value;
};
onMounted(() => {
console.log(proxy.$store.state.user.QNDomain);
});
},
handerShowHand() {
this.searchOpen = !this.searchOpen
}
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
// //
:deep(.u-navbar__content__left.data-v-f631659b, .u-navbar__content__right.data-v-f631659b){ :deep(.u-navbar__content__left.data-v-f631659b, .u-navbar__content__right.data-v-f631659b){