当前位置: 首页 > article >正文

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求

我想做一个可以选择媒介的内容,来进行发布媒介的功能

(媒介包含:图片、文本、视频)

2.原型设计

发布-编辑界面

通过点击下方的加号,可以自由选择添加的媒介类型

但是因为预览中无法看到视频的效果,所以我这里就完成了添加文本和图片的效果 

添加一些内容后的样子:

可以分段发布图片和文本的效果

也可以对其进行预览,这样可以观察别人浏览自己作品的场景

 

如果确定好了,就可以返回发布内容啦!

3.核心代码 - 抽屉效果实现

抽屉效果参考了,uniapp官网的抽屉组件

uni-app官网icon-default.png?t=O83Ahttps://uniapp.dcloud.net.cn/component/uniui/uni-drawer.html

我改编后的具体代码如下所示:

<template>
	<view >
		<uni-card is-full :is-shadow="false">
		</uni-card>
		<uni-section title="左侧滑出" type="line">
			<view class="example-body" >
				<wd-icon @click="showDrawer('showRight')" class="add-content" color="#ffffff" name="add" size="32rpx"></wd-icon>
				<uni-drawer class="drawer-content" ref="showRight" mode="right" :width="320" @change="change($event,'showRight')">
					<view class="close">
						<view class="add-tip" >
							<wd-icon @click="closeDrawer('showRight',-1)" name="close" size="16px"></wd-icon>
							<text>请选择添加的内容</text>
							<text></text>
						</view>
					</view>
					<view class="add-select">
						<text class="item" @click="closeDrawer('showRight',0)">图片</text>
						<text class="item" @click="closeDrawer('showRight',1)">文本</text>
					</view>
				</uni-drawer>
			</view>
		</uni-section>
	</view>
</template>


<script>
	export default {
		data() {
			return {
				showRight: false,
			}
		},
		methods: {
			
			// 打开窗口
			showDrawer(e) {
				this.$refs[e].open()
			},
			// 关闭窗口
			closeDrawer(e,index) {
				this.$refs[e].close()
				  this.$emit('custom-event', index);
			},
			// 抽屉状态发生变化触发
			change(e, type) {
				console.log((type === 'showLeft' ? '左窗口' : '右窗口') + (e ? '打开' : '关闭'));
				this[type] = e
			}
		}
		
	}
</script>

<style lang="scss" scoped>


.example-body {
	padding: 10px;
	background-color: red;
	border-radius: 10rpx;
	margin: 20rpx;
	padding: 20rpx 25rpx;
	background-color: #00e900;
	font-size: 30rpx;
	color: #282c35;
	border-radius: 40rpx;
	box-shadow: 0 0 20rpx rgba(228, 228, 228, 0.5); 
	
	.add-content{
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 20rpx;
		
	}	
	

}

.close {
	padding: 10px;
}

.add-tip{
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 30rpx;
	padding-top: 40px;
}

.drawer-content{
	display: flex;
	flex-direction: column;
	
	.add-select{
		display: flex;
		flex-direction: column;
		
		.item{
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			padding: 30rpx;
			margin: 0rpx 40rpx;
			border-bottom: #e3e3e3 solid 1rpx;
			
			&:active{
				background-color: #ececec ;
			}
		}
	}
}
</style>

4.未开发说明:

隐式设置和定时发布还未开发


http://www.kler.cn/a/411722.html

相关文章:

  • Jupyter Notebook的安装和配置提示功能
  • 文件内容扫描工具
  • Elasticsearch面试内容整理-常见问题和解决方案
  • 卷积神经网络学习记录
  • 分布式kettle调度平台v6.4.0新功能介绍
  • 5. Autogen官网教程 (Tool Use)
  • Testbench仿真脚本编写指北
  • 机器学习周报(11.18-11.24)
  • C++:final 关键字用于阻止类被继承或阻止虚函数被进一步重写
  • Node.js笔记(三)局域网聊天室构建1
  • 在 Taro 中实现系统主题适配:亮/暗模式
  • 自动驾驶系统研发系列—智能驾驶倒车盲区终结者:智能侧向警告与制动技术解析
  • MATLAB支持的距离度量
  • 【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
  • uniapp定义new plus.nativeObj.View实现APP端全局弹窗
  • MDETR - Modulated Detection for End-to-End Multi-Modal Understanding
  • STM32的AFIO讲解
  • Java 爬虫深度解析销量和商品详情数据获取
  • MongoDB 和 Redis 是两种不同类型的数据库比较
  • 探索Python的HTTP之旅:揭秘Requests库的神秘面纱
  • 【leetcode】全排列 回溯法
  • 高效制作定期Excel报表:自动化与模板化的策略
  • OpenCV 计算图像清晰度
  • 2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
  • JavaApi.JDBC( 重点 )
  • 数据结构——用数组实现栈和队列