From 86c30ab5d8fa74bf77bdd75d8008a6d87dab28b6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 26 九月 2025 16:00:07 +0800
Subject: [PATCH] 打包修改
---
src/pages_template/pages/comment/reply.vue | 249 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 249 insertions(+), 0 deletions(-)
diff --git a/src/pages_template/pages/comment/reply.vue b/src/pages_template/pages/comment/reply.vue
new file mode 100644
index 0000000..7df6d5f
--- /dev/null
+++ b/src/pages_template/pages/comment/reply.vue
@@ -0,0 +1,249 @@
+<script setup>
+import { ref, onMounted } from 'vue';
+
+const commentList = ref([]);
+const comment = ref({});
+
+onMounted(() => {
+ getReply();
+});
+
+// 鐐硅禐
+const getLike = (index) => {
+ if (index === 0 || index > 0) {
+ commentList.value[index].isLike = !commentList.value[index].isLike;
+ if (commentList.value[index].isLike) {
+ commentList.value[index].likeNum++;
+ } else {
+ commentList.value[index].likeNum--;
+ }
+ } else {
+ if (comment.value.isLike) {
+ comment.value.isLike = !comment.value.isLike;
+ comment.value.likeNum--;
+ } else {
+ comment.value.isLike = !comment.value.isLike;
+ comment.value.likeNum++;
+ }
+ }
+};
+
+// 鍥炲鍒楄〃
+const getReply = () => {
+ comment.value = {
+ id: 1,
+ name: '鍙惰交鐪�',
+ date: '12-25 18:58',
+ contentText: '鎴戜笉淇′紛鏈椾細娌℃湁鍚庣画鍙嶅簲锛岀編鍥借偗瀹氫細涓轰粖澶╃殑浜嬫儏浠樺嚭浠d环鐨�',
+ url: 'https://cdn.uviewui.com/uview/template/SmilingDog.jpg',
+ allReply: 12,
+ likeNum: 33,
+ isLikes: false
+ };
+ commentList.value = [
+ {
+ name: '鏂板叓鍑�',
+ date: '12-25 18:58',
+ contentText: '涓嶈涔辨墦骞垮憡鍟婂杺锛佽櫧鐒舵槸鐪熺殑瓒呭ソ鐢�',
+ url: 'https://cdn.uviewui.com/uview/template/SmilingDog.jpg',
+ likeNum: 33,
+ isLike: false,
+ reply: {
+ name: 'uview',
+ contentStr: 'uview鏄熀浜巙niapp鐨勪竴涓猆I妗嗘灦锛屼唬鐮佷紭缇庣畝娲侊紝瀹囧畽瓒呯骇鏃犳晫褰╄櫣鏃嬭浆濂界敤锛岀敤瀹冿紒'
+ }
+ },
+ {
+ name: '鍙惰交鐪�1',
+ date: '01-25 13:58',
+ url: 'https://cdn.uviewui.com/uview/template/SmilingDog.jpg',
+ contentText: '鎴戜笉淇′紛鏈椾細娌℃湁鍚庣画鍙嶅簲锛岀編鍥借偗瀹氫細涓轰粖澶╃殑浜嬫儏浠樺嚭浠d环鐨�',
+ allReply: 0,
+ likeNum: 11,
+ isLike: false,
+ reply: {
+ name: '绮樼矘',
+ contentStr: '浠婂ぉ鍚冧粈涔堬紝鏄庡ぉ鍚冧粈涔堬紝鏅氫笂鍚冧粈涔堬紝鎴戝彧鏄竴鍙皬鐚挭涓轰粈涔堣鐑︽伡杩欎箞澶�'
+ }
+ },
+ {
+ name: '鍙惰交鐪�2',
+ date: '03-25 13:58',
+ contentText: '鎴戜笉淇′紛鏈椾細娌℃湁鍚庣画鍙嶅簲锛岀編鍥借偗瀹氫細涓轰粖澶╃殑浜嬫儏浠樺嚭浠d环鐨�',
+ allReply: 0,
+ likeNum: 21,
+ url: 'https://cdn.uviewui.com/uview/template/SmilingDog.jpg',
+ isLike: false,
+ allReply: 2,
+ reply: {
+ name: '璞嗗寘',
+ contentStr: '鎯冲悆鍐扮硸钁姦绮樿眴鍖咃紝浣嗘病閽�5555.........'
+ }
+ },
+ {
+ name: '鍙惰交鐪�3',
+ date: '06-20 13:58',
+ contentText: '鎴戜笉淇′紛鏈椾細娌℃湁鍚庣画鍙嶅簲锛岀編鍥借偗瀹氫細涓轰粖澶╃殑浜嬫儏浠樺嚭浠d环鐨�',
+ allReply: 0,
+ likeNum: 150,
+ url: 'https://cdn.uviewui.com/uview/template/SmilingDog.jpg',
+ isLike: false
+ }
+ ];
+};
+</script>
+
+<template>
+ <view class="wrap">
+ <view class="comment">
+ <view class="top">
+ <view class="left">
+ <view class="heart-photo">
+ <image :src="comment.url" mode=""></image>
+ </view>
+ <view class="user-info">
+ <view class="name">{{ comment.name }}</view>
+ <view class="date">06-25 13:58</view>
+ </view>
+ </view>
+ <view class="right" :class="{ highlight: comment.isLike }">
+ {{ comment.likeNum }}
+ <u-icon v-if="!comment.isLike" name="thumb-up" class="like" color="#9a9a9a" :size="30"
+ @click="getLike"></u-icon>
+ <u-icon v-if="comment.isLike" name="thumb-up-fill" class="like" :size="30"
+ @click="getLike"></u-icon>
+ </view>
+ </view>
+ <view class="content">{{ comment.contentText }}</view>
+ </view>
+ <view class="all-reply">
+ <view class="all-reply-top">鍏ㄩ儴鍥炲锛坽{ comment.allReply }}锛�</view>
+ <view class="item" v-for="(item, index) in commentList" :key="index">
+ <view class="comment">
+ <view class="top">
+ <view class="left">
+ <view class="heart-photo">
+ <image :src="item.url" mode=""></image>
+ </view>
+ <view class="user-info">
+ <view class="name">{{ item.name }}</view>
+ <view class="date">{{ item.date }}</view>
+ </view>
+ </view>
+ <view class="right" :class="{ highlight: item.isLike }">
+ <view class="num">{{ item.likeNum }}</view>
+ <u-icon v-if="!item.isLike" name="thumb-up" class="like" :size="30" color="#9a9a9a"
+ @click="getLike(index)"></u-icon>
+ <u-icon v-if="item.isLike" name="thumb-up-fill" class="like" :size="30"
+ @click="getLike(index)"></u-icon>
+ </view>
+ </view>
+ <view class="reply" v-if="item.reply">
+ <view class="username">{{ item.reply.name }}</view>
+ <view class="text">{{ item.reply.contentStr }}</view>
+ </view>
+ <view class="content">{{ item.contentText }}</view>
+ </view>
+ </view>
+ </view>
+ </view>
+</template>
+
+<style lang="scss" scoped>
+page {
+ background-color: #f2f2f2;
+}
+
+.comment {
+ padding: 30rpx;
+ font-size: 32rpx;
+ background-color: #ffffff;
+
+ .top {
+ display: flex;
+ justify-content: space-between;
+ }
+
+ .left {
+ display: flex;
+
+ .heart-photo {
+ image {
+ width: 64rpx;
+ height: 64rpx;
+ border-radius: 50%;
+ background-color: #f2f2f2;
+ }
+ }
+
+ .user-info {
+ margin-left: 10rpx;
+
+ .name {
+ color: #5677fc;
+ font-size: 28rpx;
+ margin-bottom: 4rpx;
+ }
+
+ .date {
+ font-size: 20rpx;
+ color: $u-light-color;
+ }
+ }
+ }
+
+ .right {
+ display: flex;
+ font-size: 20rpx;
+ align-items: center;
+ color: #9a9a9a;
+
+ .like {
+ margin-left: 6rpx;
+ }
+
+ .num {
+ font-size: 26rpx;
+ color: #9a9a9a;
+ }
+ }
+
+ .highlight {
+ color: #5677fc;
+
+ .num {
+ color: #5677fc;
+ }
+ }
+}
+
+.all-reply {
+ margin-top: 10rpx;
+ padding-top: 20rpx;
+ background-color: #ffffff;
+
+ .all-reply-top {
+ margin-left: 20rpx;
+ padding-left: 20rpx;
+ border-left: solid 4rpx #5677fc;
+ font-size: 30rpx;
+ font-weight: bold;
+ }
+
+ .item {
+ border-bottom: solid 2rpx $u-border-color;
+ }
+
+ .reply {
+ padding: 20rpx;
+ background-color: rgb(242, 242, 242);
+ border-radius: 12rpx;
+ margin: 10rpx 0;
+
+ .username {
+ font-size: 24rpx;
+ color: #7a7a7a;
+ }
+ }
+}
+</style>
--
Gitblit v1.9.3