在vue中点击弹框给弹框中的表格绑值

 场景描述:如下图所示,我们需要点击 ‘账单生成’ 按钮,然后里边要展示一个下图这样的表格。
最主要的是如何展示表格中的内容,一起看看吧!


<template>
    <!-- 水费 欠费-->
    <el-dialog title="水费欠费账单生成" :visible.sync="dialogVisiblePrint">
      <div id="printTest">
        <div style="text-align: center;">
          <h3>水费付款通知单</h3>
        </div>
        <div style="margin: 22px;">
          <el-descriptions title="" :column="2" style="font-size: 15px;">
            <el-descriptions-item label="业主/住户名称">{{waterInfo.lodgerName}}</el-descriptions-item>
            <el-descriptions-item label="通知书编号Invoice No"></el-descriptions-item>
            <el-descriptions-item label="客户单元Unit No">
              {{getLocationName(waterInfo.locationId)}}/
              {{getTowerName(waterInfo.towerId)}}/
              {{getFloorName(waterInfo.floorId)}}层
            </el-descriptions-item>
            <el-descriptions-item label="发单日期Lssue Date">{{waterInfo.yearToMonth}}</el-descriptions-item>
            <el-descriptions-item label="计费面积Charge Area(m²)"></el-descriptions-item>
            <el-descriptions-item label="收款终止日期Due Date">{{waterInfo.yearToMonth}}</el-descriptions-item>
          </el-descriptions>
        </div>
        <div style="margin: 18px;">
          <el-table :data="waterData" border>
            <el-table-column prop="feeName" label="收费项目" align="center"></el-table-column>
            <el-table-column prop="yearToMonth" label="缴费期间" align="center"></el-table-column>
            <el-table-column prop="unitPrice" label="单价(元)" align="center"></el-table-column>
            <el-table-column prop="meterReading" label="上期读数" align="center"></el-table-column>
            <el-table-column prop="readingAccuracy" label="本期读数" align="center"></el-table-column>
            <el-table-column prop="totalMoney" label="本期应交金额" width="120px" align="center"></el-table-column>
          </el-table>
        </div>
        <div style="margin: 22px;">
          <h4>物业服务中心盖章(Seal of Property Service Center)</h4>
        </div>
      </div>
      <div style="text-align: center;">
        <el-button type="success" v-print="'#printTest'">打印</el-button>
        <el-button type="primary" @click="dialogVisiblePrint = false">取消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
  import API from "@/components/common/newApi";
  export default {
    data() {
      return {
        /* data:[]后端获取到的数据列表。option表格配置项.form 表单*/
        form: {},
        query: {},
        areaList: [], //所属区域
        towerList: [], //所属楼栋
        floorList: [], //所属楼层
        dialogVisiblePrint: false,
        waterInfo: {}, //水费对象
        waterData: [],
      }
    },
    mounted() {
      //获取所属区域
      this.getLocationList()
      //获取所属楼层
      this.getFloorList()
      //获取所属楼栋
      this.getTowerList()
    },
    methods: {
      //水费欠费账单生成
      async printOpen(row) {
        this.dialogVisiblePrint = true
        let data = {
          waterBillId: row.waterBillId,
          type: "1",
        }
        //在接口访问之前给 水费 赋值为空
        this.waterData = []
        await API.arrearsNoteInfo(data).then(res => {
          if (res.data.code == 0) {
            //水费绑值
            this.waterInfo = res.data.data.ctyWaterBillInfo
            //水费欠费表格数据
            let waterList = res.data.data.ctyWaterBillInfo;
            this.waterData.push(waterList)
          }
        });
      },

      // 获取所属区域
      getLocationList() {
        API.getAreaList().then((res) => {
          if (res.data.code == 0) {
            this.areaList = res.data.data;
          }
        });
      },
      //根据区域id获取对应的中文
      getLocationName(id) {
        let name
        this.areaList.map(item => {
          if (item.id == id) {
            name = item.locationName
          }
        })
        return name
      },
      // 获取所属楼栋
      getTowerList(locationId = "") {
        let params = {
          data: {
            locationId: locationId,
          },
          pageNum: 1,
          pageSize: 1000,
        };
        API.getTowerList(params).then((res) => {
          if (res.data.code == 0) {
            this.towerList = res.data.data.list;
          }
        });
      },
      //根据楼栋id获取对应的中文
      getTowerName(towerId) {
        let towerName
        this.towerList.map(item => {
          if (item.towerId == towerId) {
            towerName = item.name
          }
        })
        return towerName
      },
      // 获取所属楼层
      getFloorList(towerId = "") {
        let params = {
          data: {
            towerId: towerId,
          },
          pageNum: 1,
          pageSize: 1000,
        };
        API.getFloorList(params).then((res) => {
          if (res.data.code == 0) {
            this.floorList = res.data.data.list;
          }
        });
      },
      //根据楼层id获取对应的中文
      getFloorName(floorId) {
        let floorName
        this.floorList.map(item => {
          if (item.floorId == floorId) {
            floorName = item.floorNo
          }
        })
        return floorName
      },

    }
  }
</script>

<style>
</style>

el-descriptions标签 (描述列表):列表形式展示多个字段。

column: 一行 DescriptionsItem 的数量 (即:一行多少列),number类型

  重点代码

 


 效果图:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

短视频seo矩阵源码开发与实践分享

在短视频矩阵系统源码开发中&#xff0c;需要注意以下几个细节&#xff1a; 1. 确定系统的功能需求&#xff1a;在开发短视频矩阵系统源码时&#xff0c;必须先明确系统的功能需求&#xff0c;包括用户的基本操作、系统数据的生成和处理等。 2. 定义数据库结构&#xff1a;短…

零售数字化转型如何破局?这篇文章全说清了!

“数字化转型”&#xff0c;一个老生常谈的话题。自19世纪互联网崭露头角&#xff0c;亚马逊和eBay等电商平台崛起&#xff0c;引领电子商务的发展。传统零售业开始意识到在线渠道的重要性&#xff0c;并纷纷推出自己的电子商务网站&#xff0c;从自此进入数字化转型的赛道当中…

利用电价运行策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

STM32单片机语音识别台灯控制系统人检测亮度调节

实践制作DIY- GC00156-语音识别台灯控制系统 一、功能说明&#xff1a; 基于STM32单片机设计-语音识别台灯控制系统 二、功能说明&#xff1a; 电路&#xff1a;STM32F103C系列最小系统串口语音识别模块LED灯板1个红外传感器 1.任何时候没有人则关闭灯。有人可以自动打开灯。…

激斗云计算:互联网大厂打响新一轮排位战

大模型如同一辆时代列车&#xff0c;所有科技大厂都想上车。 自去年底ChatGPT一炮而红&#xff0c;国内外数十家科技大厂、创业公司、机构相继下场&#xff0c;一时间掀起大模型的热浪。 《中国人工智能大模型地图研究报告》显示&#xff0c;截至今年5月28日&#xff0c;中国…

contentEditable属性

我们最常用的输入文本内容便是input与textarea&#xff0c;但是有一个属性&#xff0c;可以让我们在很多标签中&#xff0c;如div,table,p,span,body等&#xff0c;可以像input输入框一样&#xff0c;实现文本编辑&#xff0c;这便是contentEditable属性 之前有用到这个属性是在…

快速搭建一个美观且易用的 Django 管理后台 —— django-xadmin

Django-xadmin&#xff08;也称为Xadmin&#xff09;是一个第三方的 Django 应用程序&#xff0c;它提供了一系列工具和模板来快速开发基于 Django 的后台管理界面。使用 Django-xadmin 可以用很少的代码就创建出一个强大的、具备实时查看数据、增、删、改等基本操作的 Django …

LiveNVR监控流媒体Onvif/RTSP功能-安全控制HTTP接口鉴权开启禁止游客访问开启后401 Unauthorized如何播放调用接口

LiveNVR安全控制HTTP接口鉴权开启禁止游客访问开启后401 Unauthorized如何播放调用接口&#xff1f; 1、安全控制1.1、接口鉴权1.2、禁止游客访问 2、401 Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.2.1、携带 CookieToken2.1.2.2、携带 U…

C人脸识别

1、原始图片&#xff1a; 2、灰度化下&#xff1a; 3、均值滤波&#xff1a; 4、 二值图加边缘检测 5、生成积分图 6、把待检测的人脸区域划分为25个&#xff0c;因为是一个数组&#xff0c;这样分别统计每个区域的像素个数&#xff1a; x0: 60, y0: 100, x1: 157, y1: 200 …

介绍AI绘画课,让智能工具助力创作 释放无限想象力 助你成为绘画大师

演示地址&#xff1a; www.runruncode.com/portal/article/index/id/19458/cid/81.html 画画是一项有趣的活动&#xff0c;它让人充满无限可能。对许多人来说&#xff0c;画画既是一种放松的方式&#xff0c;也是一种与创意、文化和艺术联系的途径。如果你是一个初学者&#x…

云原生——Docker容器化实战

❄️作者介绍&#xff1a;奇妙的大歪❄️ &#x1f380;个人名言&#xff1a;但行前路&#xff0c;不负韶华&#xff01;&#x1f380; &#x1f43d;个人简介&#xff1a;云计算网络运维专业人员&#x1f43d; 前言 "Docker"一词指代了多个概念&#xff0c;包括开源…

uniapp实现聊天消息触,vue3和vue2实现聊天消息触底 scrollTop ,scrollHeight Pc端H5端都适用

uniapp触底SDN链接如下(本人的另一篇博客) uniapp聊天时时触底链接 Pc端 模拟手机端H5 vue3写法 <template><div><!-- 聊天窗体 --><div class"test" id"gundong"><div class"text" v-for"p in chat"&…

2023年上半年总结

2023年上半年总结 引言问答CSDN 竞赛技能树博客原力值粉丝数贡献墙个人能力图新星计划总结 引言 老顾是一个懒癌晚期患者&#xff0c;通常情况下&#xff0c;是一条不折不扣的咸鱼&#xff0c;在工作中&#xff0c;也大多数时间都用来摸鱼了。 摸鱼时间太长&#xff0c;也就有…

RabbitMQ的集群

新建一个虚拟机,重新安装一个RabbitMQ,不会安装的可以看下面的连接: 在Linux中安装RabbitMQ_流殇꧂的博客-CSDN博客 1.修改/etc/hosts映射文件,两台虚拟机都需要修改 vim /etc/hosts 127.0.0.1 node1 localhost.localdomain localhost4 localhost4.localdomain4 ::1 node1 loca…

SpringBoot + Kotlin 中使用 GRPC 进行服务通信

示例项目见&#xff1a;kotlin-grpc 一、导入依赖&#xff1a; import com.google.protobuf.gradle.* plugins { id("org.springframework.boot") version "2.3.1.RELEASE" id("io.spring.dependency-management") version "1.0.9.REL…

idea连接远程MySQL数据库

填写URL&#xff0c;以mysql为例 格式 jdbc:mysql://ip地址:端口号/数据库名 jdbc:mysql://127.0.0.1:3306/ldentification _Information

软件测试基础知识

软件测试的生命周期 软件测试的生命周期和软件的生命周期是不一样的&#xff0c;软件包括需求分析和规划&#xff0c;设计和编码&#xff0c;测试和验证&#xff0c;部署和维护&#xff0c;退役和回收等等&#xff0c;而软件测试的生命周期则是需求分析-测试计划-测试设计&…

对 Jenkins+ANT+Jmeter 接口测试的实践

目录 1、前言 2、框架与数据准备 3、脚本设计 4、整理测试报告 1、前言 JenkinsANTJMeter是一种常见的接口测试实践方案&#xff0c;可以实现自动化的接口测试和持续集成。Jenkins是一个流行的持续集成工具&#xff0c;ANT是一个构建工具&#xff0c;而JMeter是一个功能强大…

maven配置java outofmemory选项

在maven之中选择Add VM options&#xff0c;这样命令就多出来一个关于VM options配置的属性&#xff0c;此时就可以输入对于VM的设置

Ubuntu 放弃了战斗向微软投降

导读这几天看到 Ubuntu 放弃 Unity 和 Mir 开发&#xff0c;转向 Gnome 作为默认桌面环境的新闻&#xff0c;作为一个Linux十几年的老兵和Linux桌面的开发者&#xff0c;内心颇感良多。Ubuntu 做为全世界Linux界的桌面先驱者和创新者&#xff0c;突然宣布放弃自己多年开发的Uni…