uniapp开发一个交流社区小程序

news2024/9/23 19:27:30

uniapp开发一个交流社区小程序

假期的时候简单学了一下uniapp,想开发一款类似百度贴吧的交流社区来练练手。本篇文章主要记录开发过程,文末附上项目地址。

主要需要开发以下几个页面。

  • 信息页面
  • 热榜页面
  • 用户主页
  • 用户信息页
信息页面
该页面的功能主要用来展示信息,并且实现分享、浏览量、点赞以及二级评论等功能。

部分代码展示:

		// 点击评论帖子
		clickCommentPost(post) {
			console.log('clickCommentPost');
			// 重置评论框
			this.$refs.starCommentReplyRef.resetCommentReply()
			this.$refs.starCommentReplyRef.focus = true
			this.goArea('#comment-up-area')
		},
		// 点击删除评论
		clickDeleteComment(comment) {
			uni.showModal({
				title: '提示',
				content: '确定要删除该评论吗?',
				success: async (res) => {
					if (res.confirm) {
						uni.showLoading({
							title: '删除中',
							mask: true
						})
						await uniCloud.callFunction({
							name: 'star-community-comment',
							data: {
								flag: 3,
								data: {
									id: comment.id,
									updateData: {
										status: 3, // 0 审核中 1 正常 2 审核不通过 3 已删除 4 已违规
									}
								}
							}
						})
						if (comment.status === 1) {
							this.changePostCommentCount(comment.post_id, -1)
						}
						this.mescroll.resetUpScroll()
						uni.hideLoading()
						uni.showToast({
							title: '删除成功'
						})
						this.post = await this.getPost(this.post.id)
					}
				}
			})
		},
		// 选中评论
		selectComment(comment) {
			console.log('selectComment');

			// 重置评论框
			this.$refs.starCommentReplyRef.resetCommentReply()

			if (comment.father_id) {
				this.$refs.starCommentReplyRef.to_father_id = comment.father_id
				this.$refs.starCommentReplyRef.to_child_id = comment.id
			} else {
				this.$refs.starCommentReplyRef.to_father_id = comment.id
			}
			this.$refs.starCommentReplyRef.to_user_id = comment.user_id
			this.$refs.starCommentReplyRef.placeholder = `回复:${comment.nickname}`
			this.$refs.starCommentReplyRef.focus = true
		},

结果展示:
社区主页
在这里插入图片描述

热榜页面
该页面的功能主要根据算法,推断出热门的文章并展示。

部分代码展示:

	// 拉取帖子列表
	async getPostList(page) {
		let vuex_user = this.vuex_user
		let res = await uniCloud.callFunction({
			name: 'star-community-post',
			data: {
				flag: 6,
				data: {
					match: {
						status: 1, // 0 审核中 1 正常 2 审核不通过 3 已删除 4 已违规
						school: this.tabCurrent === 0 ? vuex_user.school : undefined,
						createTime: {
							$gte: Date.now() - 3 * 24 * 60 * 60 * 1000
						}
					},
					addFields: {
						hot: {
							$divide: [{
								$sum: [{
										$multiply: ["$shareCount", 1000]
									},
									{
										$multiply: ["$viewCount", 10]
									},
									{
										$multiply: ["$commentCount", 1000]
									},
									{
										$multiply: ["$likeCount", 1000]
									},
									{
										$multiply: ["$recommendCount", 2000]
									}
								]
							}, 10]
						}
					},
					sort: {
						hot: -1,
						createTime: -1,
					},
					skip: (page.num - 1) * page.size,
					limit: page.size
				}
			}
		})
		return res.result.data
		// return mockPost.generateRandomPosts(size)
	},

结果展示:

在这里插入图片描述

用户主页
该页面就是传统的我的页面,可以查看当前账户发布的文章、浏览量、粉丝数等相关信息,并且支持自定义主页背景图。

部分代码展示:

	// 下拉刷新
	async onPullDownRefresh() {
			this.user = await this.getUser(this.user.id)
			this.mescroll.resetUpScroll()
			uni.stopPullDownRefresh()
		},
	async onLoad(option) {
			console.log('option.id', option?.id);
			let vuex_user = this.vuex_user
			console.log('vuex_user.id', vuex_user.id);
			if (option?.id) {
				// 根据id判断 我的主页 还是 ta的主页
				let user_id = option.id
				if (user_id === vuex_user.id) {
					console.log('我的主页');
					this.user = vuex_user
				} else {
					console.log('ta的主页');
					this.user = await this.getUser(user_id)
					await this.getIsCare(user_id)
				}
			} else {
				console.log('我的主页');
				this.user = vuex_user
			}
		},
		async onShow() {
			if (this.user) {
				this.user = await this.getUser(this.user.id)
			}
		},

结果展示:
在这里插入图片描述
在这里插入图片描述

用户信息页
这里使用的是uniapp提供的uni-id用户体系,提供了用户注册、用户登录、用户退出、用户信息修改等一系列功能。

结果展示:
在这里插入图片描述

整个项目已经打包发上uniapp插件市场中,附上项目地址https://ext.dcloud.net.cn/plugin?id=15412,下载后开箱即用。

附上项目体验二维码:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1430705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国标GB/T 28181详解:设备视音频文件检索消息流程

目 录 一、设备视音频文件检索 二、设备视音频文件检索的基本要求 三、命令流程 1、流程图 2、流程描述 四、协议接口 五、产品说明 六、设备视音频文件检索的作用 七、参考 在国标GBT28181中,定义了设备视音频文件检索消息的流程,主…

ubuntu 安装 kvmQemu no active connection to install on

更新 apt sudo apt update检查虚拟化是否开启 0 不开,其余数字表示开启,开不开都可以,不开性能弱,只能跑 x86 系统 egrep -c (vmx|svm) /proc/cpuinfo安装 sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virt…

Oracle 面试题 | 09.精选Oracle高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【备战蓝桥杯】——循环结构终篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-yl4Tqejg4LkjZLAM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

回归预测 | Matlab实现RIME-CNN-LSTM-Attention霜冰优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现RIME-CNN-LSTM-Attention霜冰优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制) 目录 回归预测 | Matlab实现RIME-CNN-LSTM-Attention霜冰优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制&#xff0…

HP惠普暗影精灵8P笔记本OMEN Gaming Laptop 16-n0076AX原厂Win11系统镜像恢复出厂预装OEM系统

原装Windows11系统安装包,适用型号(HP暗影8plus笔记本电脑): 16-n0000AX、16-n0001AX、16-n0002AX、16-n0003AX、16-n0004AX、16-n0005AX 16-n0016AX、16-n0058AX、16-n0059AX、16-n0076AX、16-n0078AX等 链接:https://pan.baidu.com/s/1G…

Matplotlib魅力揭秘:多彩直方图绘制技巧与实战【第56篇—python:Matplotlib多彩直方图绘制】

文章目录 Matplotlib魅力揭秘:多彩直方图绘制技巧与实战1. 普通直方图2. 多变量直方图3. 堆叠直方图4. 分组直方图5. 多个子图直方图6. 折线直方图7. 曲线直方图8. 绘制密度直方图9. 自定义直方图颜色和样式结语 Matplotlib魅力揭秘:多彩直方图绘制技巧与…

C#中使用OpenCvSharp4绘制直线、矩形、圆、文本

C#中使用OpenCvSharp4绘制直线、矩形、圆、文本 继之前的Python中使用Opencv-python库绘制直线、矩形、圆、文本和VC中使用OpenCV绘制直线、矩形、圆和文字,将之前的Python和C示例代码翻译成C#语言,很简单,还是借用OpenCvSharp4库中的Line、…

CSS transition(过渡效果)详解并附带示例

CSS过渡效果(CSS transitions)是一种在元素属性值发生变化时,通过指定过渡效果来实现平滑的动画效果的方法。通过定义起始状态和结束状态之间的过渡属性,可以使元素的变化更加流畅和可视化。 过渡效果的基本语法如下:…

《幻兽帕鲁》好玩吗?幻兽帕鲁能在Mac上运行吗?

最近一款叫做《幻兽帕鲁》的新游戏走红,成为了Steam游戏平台上,连续3周的销量冠军,有不少Mac电脑用户,利用Crossover成功玩上了《幻兽帕鲁》,其实Crossover已经支持很多3A游戏,包括《赛博朋克2077》《博德之…

20.HarmonyOS App(JAVA)表格布局Layout使用方法

ability_main.xml&#xff0c;实现计算器键盘按钮 <?xml version"1.0" encoding"utf-8"?> <TableLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_parent"oho…

STL——空间配置器

空间配置器是STL六大组件之一&#xff0c;它和其他五个组件相互配合&#xff0c;起着很关键的作用。 容器&#xff1a;各种数据结构、如vector、list、stack、deque、queue、set、map、unordered_map等等算法&#xff1a;各种算法&#xff0c;如sort、serach、copy、erase 提供…

AI新宠Arc浏览器真可以取代Chrome吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

微信小程序实现吸顶、网格、瀑布流布局

微信小程序开发通常是在webview模式下编写&#xff0c;但是对小程序的渲染性能有一定的追求&#xff0c;就需要使用Skyline模式进行渲染&#xff0c;同时在这种模式下有也有一些特殊的组件&#xff0c;可以轻松的实现想要的效果&#xff0c;本文将介绍在Skyline模式下如何实现吸…

单项选择题标准化考试系统设计

工程链接放在这里 https://download.csdn.net/download/Samature/88805471使用 注意事项 登录 在这里插入图片描述 登录有初始账号&#xff1a;yzb 密码&#xff1a;123456 后续可以自己加 保存的用户信息位置和题目 problems是题目 users是用户名 可能遇到的bug CMake Er…

20240203在Ubuntu20.04.6下配置stable-diffusion-webui.git

20240203在Ubuntu20.04.6下配置stable-diffusion-webui.git 2024/2/3 11:55 【结论&#xff1a;在Ubuntu20.04.6下&#xff0c;生成512x512分辨率的图像&#xff0c;大概需要11秒钟&#xff01;】 前提条件&#xff0c;可以通过技术手段上外网&#xff01;^_首先你要有一张NVID…

苹果CMS挖片网升级版视频主题模版源码

自适应视频站正版高级挖片网收录模板&#xff0c;模板不错&#xff0c;是挖片网的升级版。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88799583 更多资源下载&#xff1a;关注我。

软件测试--接口自动化

接口自动化测试框架 目录结构 7 部分&#xff08;5个目录、2个文件&#xff09;&#xff1a; api/: 存储接口对象层&#xff08;自己封装的 接口&#xff09; scripts/: 存储测试脚本层 &#xff08;unittest框架实现的 测试类、测试方法&#xff09; data/: 存储 .json 数据…

Python基础知识:Python序列以及序列的索引、切片、相乘和相加

索引 索引就是序列中的每个元素所在的位置&#xff0c;可以通过从左往右的正数索引&#xff0c;也可以通过从右往左的负数索引。 从左往右的正数索引&#xff1a;在python序列中&#xff0c;第一个元素的索引值为0&#xff0c;第二个元素的索引值为1&#xff0c;以此类推&…

python+PyQt5实现指示灯检查

UI: 源代码&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from reading ui file CheckImageWinFrm.ui # # Created by: PyQt5 UI code generator 5.15.2 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again…