简单的绑定发布事件

在绑定事情之前,我们需要对我们的需求进行分析;判断我们是否需要同时存在条件。

发布动态的时候,分为以下三种情况:

① 输入了标题,没有图片,可以发布动态
②输入了图片,没有标题,也可发布动态
③如果只输入图片,或者标题,无法发布,需要两者都同时具备,才可以发布动态

目录

一、实现思路

二、实现步骤

        ①view部分展示

        ②JavaScript 内容

        ③css中样式展示

三、效果展示

四、小结 + 注意事项


一、实现思路

        1、将标题内容布局完成,给div中的发布绑定事件

二、实现步骤

        ①view部分展示

        

<template><view class="public"><view class="upload-imgs"><view style="padding: 32rpx 0;color: #333;font-weight: bold;">内容</view><!-- 图片的数量--><!-- <view style="color: #999;">{{ fileList.length }}/6</view> --></view><view><view class="goods-desc"><!-- 文本域  articleContent:绑定--><u--textarea v-model="articleContent" placeholder="请输入我的想法..." border="none" height="100"maxlength="-1" fontSize="28rpx" class="u--textarea"></u--textarea></view></view><!-- 上传图片 fileList:图片列表 --><view class="imgs-list"><u-upload :fileList="fileList" name="1" :maxCount="9" previewImage width="70px" height="70px"@afterRead="afterRead" @delete="deletePic" multiple :capture="['album', 'camera']" accept="image":sizeType="['camera','album']"><image src="../../static/other/upload-default.png" mode="aspectFill"style="width: 70px;height: 70px"></image></u-upload></view></view><!-- 发布按钮--><view class="company-btn"><view class="talk-btn" @click="talk">发布</view></view>
</template>

        ②JavaScript 内容

        此文件由于效果展示冲突的原因,部分内容已注释,如需看效果,则可取消注释观看!

<script>import {send} from '@/XXX/XXX/XXX.js'  //引入js的内容export default {data() {return {articleContent: '',fileList: [],}},methods: {// 输入内容 绑定了发布async talk() {/*无论是标题文字为空,还是图片数量为0,都不可执行*//* 标题内容为为空 则不执行*/// if (this.articleContent === '' || this.articleContent === null) {//if (this.articleContent == '') {// 	uni.showToast({// 		title: '请输入内容!',// 		icon: 'error',// 		duration: 2000,// 	});// 	return;// }/*如果没有图片,请上传图片 if (this.fileList.length <= 0) 图片数量为0或者小于0 都不可执行*/// if (this.fileList.length <= 0) {// 	uni.showToast({// 		title: '请上传图片!',// 		icon: 'error',// 		duration: 2000,// 	});// 	return;// }/* if (this.fileList.length > 0 || this.articleContent !== '')图片为0 或者 标题内容为空,都可以执行发布,但是必须有一方,有内容,负责展示错误*/if (this.fileList.length > 0 || this.articleContent !== '') {let arr = this.fileList.map(v => v.img);let data = {articleContent: this.articleContent,articleImg: arr}// console.log(this.articleContent);// console.log(this.fileList)let res = await send(data);console.log(res, 'res')// 发布的内容 // if (res.code === 200) {uni.showToast({//title:res.msg,title: '发布成功',icon: 'success',duration: 2000,});// 同步执行,提示框还没有弹出就跳转了setTimeout(() => {uni.switchTab({url: '/pages/circle/circle'})}, 2000)} else {uni.showToast({title: '出错了~',icon: 'error',duration: 2000,});}},async afterRead(event) {// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式let lists = [].concat(event.file)let swiperListLen = this.fileList.lengthlists.map((item) => {this.fileList.push({...item,status: 'uploading',message: '上传中',})})for (let i = 0; i < lists.length; i++) {const result = await this.uploadFilePromise(lists[i].url)// console.log('result: ',result);let item = this.fileList[swiperListLen]this.fileList.splice(swiperListLen, 1, Object.assign(item, {status: 'success',message: '',url: result.urlTotal,img: result.urlImg}))swiperListLen++}// console.log(this.fileList,'fileList')},// 删除图片deletePic(event) {this.fileList.splice(event.index, 1)},uploadFilePromise(url) {let thta = thisreturn new Promise((resolve, reject) => {let a = uni.uploadFile({url: config.baseUrl + '/app/upload/image',  //上传图片的接口filePath: url,name: 'file',fileType: 'image',header: {'content-type': 'multipart/form-data'},success: (res) => {console.log('res: ', res);let data = JSON.parse(res.data)console.log('data: ', data);let urls = data.data.path //let img = data.data.urllet urlObj = {urlTotal: urls,urlImg: img}// console.log("dataxxx", url) console.log(thta.fileList, 'aaa');resolve(urlObj)},fail(err) {console.log(err);}});})},},}
</script>

        ③css中样式展示

                由于效果展示,所以page背景颜色被修改了,方便查看效果

<style>page {background-color: #f5f5f5;}
</style>
<style lang="scss" scoped>.public {background-color: #fff;padding: 24rpx;margin: 24rpx;border-radius: 8rpx;.upload-imgs {display: flex;align-items: center;justify-content: space-between;}.imgs-list {padding-bottom: 32rpx;display: flex;align-items: center;flex-wrap: wrap;justify-content: space-between;margin: 0 auto;}}.company-btn {position: fixed;bottom: 0;left: 0;z-index: 100;right: 0;display: flex;align-items: center;justify-content: center;height: 55px;background-color: #fff;padding-bottom: env(safe-area-inset-bottom); //适配 iPhone X 以上的手机.talk-btn {width: 640rpx;height: 80rpx;line-height: 80rpx;text-align: center;background: #f51515;border-radius: 80rpx;color: #fff;letter-spacing: 2rpx;}}
</style>

三、效果展示

  1. ① 输入了标题,没有图片,可以发布动态
  2. ②输入了图片,没有标题,也可发布动态
  3.  if (this.fileList.length > 0 || this.articleContent !== '') {  //发布  }

                 

  1. ③如果只输入图片,或者标题,无法发布,需要两者都同时具备,才可以发布动态
    1.   if (this.articleContent === '' ||  this.fileList.length <= 0) {  //发布  }

                    

四、小结 + 注意事项

       

  1. 提前的div中给我们需要执行的条件赋值
  2. 在js中使用定义好的对象或者数据值
  3. 判断我们需要的条件,进行组合;如果成功则执行,反之;

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts自定义样式实现3D柱状图-长方体-圆柱体,两种样式

Echarts自定义样式实现3D柱状图-长方体-圆柱体&#xff0c;两种样式 效果图代码series配置项目 效果图 长方体 柱状体 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cbar3d-dataset&gl1 --> <!DOCTYPE html> <html lang…

数据分析师的职业规划与参考资料

数据分析师如何规划 参考&#xff1a;超详细的数据分析职业规划 一个产品的出现可以从业务和技术两个方向分析&#xff0c;业务需求技术支持产品的出现。 如果把职业也当成一个产品&#xff0c;也有类似的分析&#xff0c; 其中业务也就是领域&#xff0c;即这个业务领域的特点…

Windows/Linux双系统安装(双系统独立分盘)

一、固态硬盘、机械硬盘及U盘概述 &#xff08;一&#xff09;机械硬盘[1][3] 硬盘驱动器&#xff08;Hard Disk Drive&#xff0c;HDD&#xff09;&#xff0c;又称“机械硬盘”或“传统硬盘”&#xff0c;是电脑上使用刚性的旋转磁性盘片为基础的非依电性存储器&#xff0c;…

电脑备忘录小工具怎么添加?怎么在电脑桌面添加备忘录?

作为一名天天用电脑办公的上班族&#xff0c;如果你需要对某个项目或问题进入深入思考&#xff0c;想要快速记录想法和思路&#xff0c;这时候会选择什么样的记事方式呢&#xff1f;如果你需要记录常用的工作文字内容、工作注意事项、项目流程、待办的工作安排等&#xff0c;用…

【Spring】Spring IoC

Spring IoC 文章目录 Spring IoC1. Spring 简介2. Spring IoC2.1 概述2.2 Spring IoC 容器具体接口和实现类2.3 Spring IoC 容器管理配置方式 3. Spring IoC / DI 实现步骤4. 基于XML配置方式管理组件4.1 组件&#xff08;Bean&#xff09;信息声明配置&#xff08;IoC&#xf…

ac转dc电源芯片SM7025 支持12V/18V输出电压

AC转DC电源芯片是一种能够将交流电转换为直流电的重要器件&#xff0c;广泛应用于电子设备和电源系统中。它可以提供稳定的直流电源&#xff0c;为设备的正常运行提供保障。 AC转DC电源芯片的工作原理是利用内部的整流、滤波、变压器和稳压等电路&#xff0c;将输入的交流电转换…

苹果拒绝上架提示: “Guideline 2.1 - Performance - App Completeness”被拒排查方向解决

准则 2.1 - 性能 - 应用完整性 我们在您的应用程序中发现了一个或多个错误。具体来说&#xff0c;应用程序启动到一个空白屏幕。请查看下面的详细信息并完成后续步骤。 查看设备详细信息&#xff1a; - 设备类型&#xff1a;iPhone - OS版本&#xff1a;iOS 17.0 后续步骤 …

从gitlab上拉代码出现很多修改文件。

问题描述&#xff1a; 从gitlab上拉一个项目&#xff0c;出现以下非常多的已修改文件&#xff0c; 问题解决&#xff1a; Unix/Linux 系统使用的是 LF 用作换行符。Windows 一直使用的 CRLF&#xff08;即&#xff0c;回车 CR和换行 LF&#xff09;作为换行符。然而&#xf…

【操作系统】快速做题向 一张图弄懂如何计算运行时间,等待时间,周转时间

到达时间不等于响应时间&#xff0c;到达与相应之间的时间差就是等待时间 带权周转时间周转时间➗运行时间 这个点会与各类调度算法结合考察&#xff0c;等我之后更新。

Pingcode和HelpLook对比:哪一个知识库工具更好?

知识库工具是现代企业中不可或缺的一部分&#xff0c;它可以帮助企业更好地管理和利用知识资源&#xff0c;提高工作效率和竞争力。随着企业对于知识管理的需求不断增加&#xff0c;知识库工具也变得越来越重要。在知识库管理工具中&#xff0c;Pingcode和HelpLook经常被拿来比…

MapReduce综合应用案例 — 电信数据清洗

文章目录 第1关&#xff1a;数据清洗 第1关&#xff1a;数据清洗 测试说明 平台会对你编写的代码进行测试&#xff1a; 评测之前先在命令行启动hadoop&#xff1a;start-all.sh&#xff1b; 点击测评后MySQL所需的数据库和表会自动创建好。 PhoneLog&#xff1a;封装对象 L…

linux系统和网络(一):文件IO

本文主要探讨linux系统编程的文件IO相关知识。 文件IO 文件存在块设备中为静态文件,open打开文件,内核在进程中建立打开文件的数据结构在内存中用于记录文件的文件参数,开辟一段内存用于存放内容,将静态文件转为动态文件 打开文件后对文件的读写操作都为对动态…