vue2实现在el-table里修改数据,插入输入框,并且根据输入数据,影响该行其他关联数据

ops/2024/12/14 4:31:28/
   <div class="content-all"><div class="content-tit">填写内容</div><div class="content-text"><el-radio v-model="radio" label="1">计划负荷</el-radio><el-radio v-model="radio" label="2">申报量</el-radio><el-button type="primary" @click="modification()">批量修改</el-button><el-table:data="tableDataFill"height="290"style="width: 99%; margin-top: 20px"><el-table-columnprop="runDate"label="响应日"width="110"></el-table-column><el-table-columnprop="period"label="响应时段"></el-table-column><el-table-column prop="tag" label="需求类型"><template slot-scope="scope"><el-tag:type="scope.row.demandFlag === '1' ? 'primary' : 'success'"disable-transitions>{{ scope.row.demandFlag === "1" ? "削峰" : "填谷" }}</el-tag></template></el-table-column><el-table-columnprop="baseLine"label="基线负荷(MW)"></el-table-column><el-table-columnv-if="radio === '2'"prop="planeLine"label="计划负荷(MW)"></el-table-column><el-table-column label="计划负荷(MW)" v-if="radio === '1'"><template slot-scope="scope"><el-inputv-model="scope.row.planeLine"placeholder="输入计划负荷"type="number"@input="updateDemandResp(scope.row)"oninput="if(value<0)value=0"></el-input></template></el-table-column><el-table-columnprop="typicalLine"label="典型负荷(MW)"></el-table-column><el-table-columnprop="tradeCount"label="历史交易量(MW)"></el-table-column><el-table-columnprop="demandResp"label="申报量(MW)"v-if="radio === '1'"></el-table-column><el-table-columnv-if="radio === '2'"prop="demandResp"label="申报量(MW)"><template slot-scope="scope"><el-inputv-model="scope.row.demandResp"placeholder="输入申报量"@input="updatePlaneLine(scope.row)"></el-input></template></el-table-column></el-table></div></div>

js块

 methods: {updateDemandResp(row) {const baseLine = +row.baseLine || 0;const tradeCount = +row.tradeCount || 0;const plannedLoad = +row.planeLine || 0;//  申报量row.demandResp = plannedLoad - baseLine - tradeCount;console.log("111", row.demandResp);if (row.demandFlag === "1" && row.demandResp > 0) {row.demandResp = 0;} else if (row.demandFlag === "1" && row.demandResp < 0) {row.demandResp = row.demandResp.toFixed(2);} else if (row.demandFlag === "-1" && row.demandResp > 0) {row.demandResp = +row.demandResp.toFixed(2);} else if (row.demandFlag === "-1" && row.demandResp < 0) {row.demandResp = 0;}this.updateTableDataFill(row);},updatePlaneLine(row) {const baseLine = +row.baseLine || 0;const tradeCount = +row.tradeCount || 0;const declaredAmount = +row.demandResp || 0;//  计划负荷row.planeLine = baseLine + tradeCount + declaredAmount;if (row.planeLine < 0) {row.planeLine = 0;}this.updateTableDataFill(row);},updateTableDataFill(row) {const index = this.tableDataFill.findIndex((item) => item.runDate === row.runDate && item.period === row.period);if (index !== -1) {this.$set(this.tableDataFill, index, {...this.tableDataFill[index],...row,});}},

比如,实现申报量 根据填写的计划负荷计算,数值=计划负荷-基线负荷-历史交易量,并且校验填谷申报量≥0,削峰申报量≤0,计划负荷根据填写的申报量计算,数值=基线负荷+历史交易量+申报量,并且校验计划负荷≥0

输入为来自输入字段的字符串保留。
无论何时进行计算,都会使用parseFloat()对值进行转换。这有效地处理任何非数字输入,确保只对有效数字进行计算。无效输入将默认为0。
处理非数字字符串:

parseFloat()函数的作用是将字符串转换为浮点数。如果解析失败(例如,输入为空或不是数字),我们将通过返回到0来优雅地处理它。
动态更新:

updateDemandResp()和updatePlaneLine()中的逻辑保持不变,确保在用户输入后立即进行重新计算。
空字符串初始化:

tableDataFill属性planeLine和demandasp被初始化为空字符串,允许用户输入初始处理为字符串的值。
 


http://www.ppmy.cn/ops/141719.html

相关文章

Horovod:分布式深度学习训练库;Horovod库中DistributedOptimizer

目录 Horovod:分布式深度学习训练库 环境准备 代码示例 运行脚本 Horovod库中DistributedOptimizer DistributedOptimizer的作用 举例说明 Horovod:分布式深度学习训练库 Horovod是一个开源的分布式深度学习训练库,它能够在多个节点(机器)和多个GPU上高效地并行运行…

信创国产化时代:打造安全高效的信创网站解决方案

在全球科技竞争日益激烈的背景下&#xff0c;信创国产化已经成为中国信息技术领域的重要战略选择。信创国产化&#xff0c;即信息技术应用创新与国产化&#xff0c;旨在通过自主研发和创新&#xff0c;推动核心技术的国产化&#xff0c;减少对外部技术的依赖&#xff0c;确保国…

ESlint代码规范,手动与自动修复

规范说明 规则参考 - ESLint - 插件化的 JavaScript 代码检查工具 规范说明 ​ ​ 可看到是main.js文件报错分别是第三行第30个字符&#xff0c;以及第七行第一个字符 后面则是规范说明&#xff0c;可以根据说明查找相应的规范 一.手动修正 ctrl f 可以搜索 二.自动修正 …

动态规划 —— 子数组系列-环形子数组的最大和

江河入海&#xff0c;知识涌动&#xff0c;这是我参与江海计划的第7篇。 1. 环形子数组的最大和 题目链接&#xff1a; 918. 环形子数组的最大和 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/maximum-sum-circular-subarray/description/ 2. 题目解析…

单体到微服务:电商平台架构的演变与可扩展性探索

目录 一、整体理解可扩展性 二、从电商平台架构发展看架构的可扩展性 &#xff08;一&#xff09;单体架构 &#xff08;二&#xff09;分布式架构 &#xff08;三&#xff09;SOA架构 &#xff08;四&#xff09;微服务架构 三、1号店App服务端架构升级说明 &#xff…

MBox20网关助力汽车零部件企业实现与效率飞跃

背景概述 该企业为一家深耕汽车零部件制造的传统企业&#xff0c;拥有高效运作的自动化生产线体系&#xff0c;专注于汽车发动机零部件的生产制造。然而&#xff0c;面对市场需求的瞬息万变及消费者个性化需求的日益凸显&#xff0c;该企业正遭遇生产效率瓶颈、质量控制挑战、…

【漏洞复现】Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【漏洞复现】Apache Solr 身份认证绕过导致任意文件读取漏洞复现(CVE-2024-45216) 一、漏洞概述1.1漏洞简介1.2组件描述1.3漏洞描述二、漏洞复现2.1 应用协议2.2 环境…

本地无需公网可访问开源趣味艺术画板 paint-board

paint-board 一款用于绘画或涂鸦的工具&#xff0c;它非常轻量而且很有趣&#xff0c;集成了多种创意画笔和绘画功能&#xff0c;能够支持形状绘制、橡皮擦、自定义画板等操作&#xff0c;并可以将作品保存为图片。 第一步&#xff0c;本地部署安装 paint-board 1&#xff0c…