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

VUE3中Element table表头动态展示合计信息(不是表尾合计)

一、背景 

原型上需要对两个字段动态合计,输出摘要信息

原先想到是的Element的 :summary-method,发现不是动态,所以换监听来实现

二、vue代码

   <el-table v-model="loading" :data="itemList"><el-table-column label="药品名称" prop="drugName" fixed min-width="100px" :show-overflow-tooltip="true"/><el-table-column label="规格" prop="drugSpec" :show-overflow-tooltip="true"/><el-table-column label="批号" prop="batchNo" :show-overflow-tooltip="true"/><el-table-column label="账面数" prop="batchStockDesc" min-width="90px"/><el-table-column label="盘存数" align="center"><el-table-column prop="stocktakeQty" min-width="150px"><template v-slot="scope"><el-input-number :disabled="!canEdit"v-model="scope.row.stocktakeQty":min="0"controls-position="right"size="small"/></template></el-table-column><el-table-column label="单位" prop="unit" min-width="90px"><template #default="scope"><dict-tag :options="bd_plat_drug_unit" :value="scope.row.unit" :showValue="false"/></template></el-table-column><el-table-column prop="stocktakeTinyqty" min-width="150px"><template v-slot="scope"><el-input-number :disabled="!canEdit"v-model="scope.row.stocktakeTinyqty":min="0"controls-position="right"size="small"/></template></el-table-column><el-table-column label="小单位" prop="tinyUnit" min-width="90px"><template #default="scope"><dict-tag :options="bd_plat_drug_unit" :value="scope.row.tinyUnit" :showValue="false"/></template></el-table-column></el-table-column><el-table-column label="零售" align="center"><el-table-column label="零售价" prop="retailPrice" min-width="100px" :show-overflow-tooltip="true"align="right"/><el-table-column label="盘前金额" prop="totalRetail" min-width="100px" :show-overflow-tooltip="true"align="right"/><el-table-column label="盘后金额" prop="afterTotalRetail" min-width="100px" :show-overflow-tooltip="true"align="right"><template v-slot="scope">{{scope.row.afterTotalRetail = computeTotalMoney(scope.row.stocktakeQty, scope.row.stocktakeTinyqty, scope.row.packageQty, scope.row.retailPrice)}}</template></el-table-column><el-table-column label="成本损溢金额" prop="totalLossoverRetail" min-width="120px" align="right"><template v-slot="scope">{{scope.row.totalLossoverRetail = computeDifferenceMoney(scope.row.stocktakeQty, scope.row.stocktakeTinyqty, scope.row.packageQty, scope.row.retailPrice, scope.row.totalRetail)}}</template></el-table-column></el-table-column><el-table-column label="成本" align="center"><el-table-column label="采购价" prop="purchasePrice" min-width="100px" :show-overflow-tooltip="true"align="right"/><el-table-column label="盘前金额" prop="totalPurchase" min-width="100px" :show-overflow-tooltip="true"align="right"/><el-table-column label="盘后金额" prop="afterTotalPurchase" min-width="100px" :show-overflow-tooltip="true"align="right"><template v-slot="scope">{{scope.row.afterTotalPurchase = computeTotalMoney(scope.row.stocktakeQty, scope.row.stocktakeTinyqty, scope.row.packageQty, scope.row.purchasePrice)}}</template></el-table-column><el-table-column label="成本损溢金额" prop="totalLossoverPurchase" min-width="120px":show-overflow-tooltip="true" align="right"><template v-slot="scope">{{scope.row.totalLossoverPurchase = computeDifferenceMoney(scope.row.stocktakeQty, scope.row.stocktakeTinyqty, scope.row.packageQty, scope.row.purchasePrice, scope.row.totalPurchase)}}</template></el-table-column></el-table-column><el-table-column label="生产企业" prop="firmName" min-width="80px" :show-overflow-tooltip="true"/><el-table-column label="产地" prop="producerName" min-width="80px" :show-overflow-tooltip="true"/><el-table-column label="库位码" prop="locationCode" min-width="100px" :show-overflow-tooltip="true"/><el-table-column label="操作" fixed="right" min-width="60px" align="center" v-if="canEdit"class-name="small-padding fixed-width"><template #default="scope"><el-button link type="primary" icon="Delete" title="删除" @click="handleDelete(scope.row)"/></template></el-table-column></el-table>

  其中代码,赋值给totalLossoverRetail 才能保证,后期监听时数据有发生变化

                {{scope.row.totalLossoverRetail = computeDifferenceMoney(scope.row.stocktakeQty, scope.row.stocktakeTinyqty, scope.row.packageQty, scope.row.retailPrice, scope.row.totalRetail)}}

三、方法代码

watch(itemList, () => {console.log(itemList.value, 'itemList')let totalLossoverRetail = 0let totalLossoverPurchase = 0itemList.value.forEach(item => {totalLossoverRetail = Number(totalLossoverRetail) + Number(item.totalLossoverRetail);totalLossoverPurchase = Number(totalLossoverPurchase) + Number(item.totalLossoverPurchase);})sumDescription.value = '成本损溢金额 ' + totalLossoverPurchase + ' 零售损溢金额  ' + totalLossoverRetail
}, {deep: true});

其中开启深度监听

四、效果

http://www.lryc.cn/news/482100.html

相关文章:

  • git重置的四种类型(Git Reset)
  • 【Java集合面试1】说说Java中的HashMap原理?
  • 万字长文解读机器学习——决策树
  • 内网环境,基于k8s docer 自动发包
  • 【HCIP园区网综合拓扑实验】配置步骤与详解(已施工完毕)
  • Qt 编写插件plugin,支持接口定义信号
  • Qt中 QWidget 和 QMainWindow 区别
  • Kafka集群中数据的存储是按照什么方式存储的?
  • 中断的硬件框架
  • 数据备份策略:企业防御的关键
  • Baget 私有化nuget
  • 前端函数的参数都有哪些?
  • 【CSS】什么是BFC?
  • HCIP小型园区网拓扑实验
  • GRR测量系统的重复性和再现性
  • 133.鸿蒙基础01
  • 科技查新小知识
  • docker安装portainer
  • 【Word2Vec】传统词嵌入矩阵训练方法
  • 电脑不显示wifi列表怎么办?电脑不显示WiF列表的解决办法
  • 详解 Dockerfile:从入门到实践
  • 随机变量的概率分布
  • Kafka生产者如何提高吞吐量?
  • mysql:解决windows启动失败无报错(或长时间未响应)
  • 【山——回文判断】
  • FPGA学习笔记#7 Vitis HLS 数组优化和函数优化
  • 欧几里得算法python
  • 【layui】echart的简单使用
  • ios打包文件上传App Store windows工具
  • vue2项目启用tailwindcss - 开启class=“w-[190px] mr-[20px]“ - 修复tailwindcss无效的问题