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

新增一个数组传递给后端

实现的效果:
在这里插入图片描述
页面

<div style="margin-bottom: 10px" v-if="totalPrice"><p style="font-weight: bolder;margin-bottom: 10px">支付计划<el-button type="text" size="small" @click="addPayInfo" icon="el-icon-plus">添加</el-button></p><ul v-for="(p,i) of payList" :key="i" class="pay-info"><li><span>{{i+1}}笔支付金额:</span><el-input v-model="p.price"@input="handleInput($event,i,'pay');onCalculate(p,i,createParams.commodityList[0].price)":disabled="!mark && p.is_amend"style="width: 200px;margin-right: 10px" size="small"></el-input></li><li><el-switchstyle="display: block"v-model="p.is_pay":disabled="!mark && p.is_amend"active-color="#13ce66"inactive-color="#ff4949"active-text="已支付"inactive-text="未支付"></el-switch></li><li><span style="vertical-align: top">备注:</span><el-input type="textarea" v-model="p.desc" :disabled="!mark && p.is_amend" style="width: 200px;margin-right: 10px" size="small"></el-input></li><li><el-button type="danger" size="mini" @click="deletePayInfo(i)" :disabled="!mark && p.is_amend" v-if="payList.length>1">删除</el-button></li></ul><div><span>需支付总价:{{totalPrice}}</span><span style="margin-left: 20px;color:#67C23A ">已计划支付总价:{{payTotal}}</span><span style="margin-left: 20px;color:#F56C6C " >未计划支付总价:<span style="color: #409EFF;cursor: pointer" @click="showUnPayTotal(unPayTotal)">{{unPayTotal}}</span></span></div></div>
data:{totalPrice : 300 //总金额payList : [{price: '',desc:'',is_pay: false}] //传递给后端的数组
}

数组内增加数据

addPayInfo(){this.payList.push({price: '',desc:'',is_pay: false})},

数组内删除数据

deletePayInfo(i){this.payList.splice(i,1)let sum = this.payList.reduce(function(acc, obj) {return acc + Number(obj.price);}, 0);this.payTotal = sum>Number(totalPrice)?0:sumthis.unPayTotal = Number(totalPrice) - this.payTotal},

剩余金额点击后直接赋值到未输入金额的输入框内

  showUnPayTotal(val){console.log(val)if(val>0 && this.payList.find(item=>item.price==='')){this.payList.find(item=>item.price==='').price = valthis.unPayTotal = 0}},

输入框值改变后执行

    handleInput(val,index,type){let dat = ("" + val) // 第一步:转成字符串.replace(/[^\d^\.]+/g, "") // 第二步:把不是数字,不是小数点的过滤掉.replace(/^0+(\d)/, "$1") // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字.replace(/^\./, "0.") // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全.match(/^\d*(\.?\d{0,2})/g)[0] || "";if(type==='commodity'){this.totalPrice = datthis.unPayTotal = Number(dat) - this.payTotal}else if(type==='pay'){this.payList[index].price = dat}},
http://www.lryc.cn/news/431646.html

相关文章:

  • Flutter集成Firebase中的Realtime Analytics
  • 2024国赛数学建模A题B题C题D题E题思路资料模型
  • C语言字面量和常量
  • 视频结构化从入门到精通——行为分析类应用
  • Redis的KeyExpirationEventMessageListener键过期监听器
  • MP4视频压缩,推荐这五大压缩操作
  • docker 安装NextERP
  • Android 存储之 SharedPreferences 框架体系编码模板
  • 弹性容器Flex中的自动外边距(Auto Margins) 的作用
  • C语言调用子函数时入/出栈(保护/恢复现场)全过程分析:以Cortex-M3为例
  • 理解Sigmoid激活函数原理和实现
  • 探秘DevSecOps黄金管道,安全与效率的完美融合
  • Redis的内存淘汰策略- volatile-lru
  • HTTP和HTTPS的区别?哪一个更适合你的网站?
  • OpenAI SORA团队负责人 通往智能的方式 报告笔记
  • 006-Sleuth(Micrometer)+ZipKin分布式链路追踪
  • AI模型:追求全能还是专精?-- 之6 语言复杂度类别(Category 0~3 类)和语言功能性类型(Type 0~Ⅲ 型)之2
  • 20240907 每日AI必读资讯
  • 深度学习基础--卷积基础模块
  • 视频智能分析打手机检测算法安防监控打手机检测算法应用场景、算法源码、算法模型介绍
  • 6.2图的存储及基本操作
  • Java语法全解析:掌握基本规则,打造稳固编程基础!
  • 同时播放多个视频
  • 伴奏提取消除人声如何操作?轻松几步玩转音乐世界
  • uniapp二维码生成
  • Android UID 和 userID 以及 appID
  • Kafka的三高设计原理
  • 生信圆桌x生信宝库:生物信息学资源与工具的终极指南
  • centos7 install rocketmq 宿主机快速搭建RocketMQ单机开发环境_centos7 单机部署rocketmq命令
  • 2024高教社杯全国大学生数学建模竞赛(A题)深度剖析 _ 建模完整过程+详细思路+代码全解析