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

Vue生成类似于打卡页面

数据表格

    <el-table :data="tableData" border height="calc(100vh - 240px)" :cell-style="cellFun"><el-table-column label="姓名" show-overflow-tooltip prop="name" align="center"/><el-table-column label="手机号" show-overflow-tooltip prop="phone" align="center"/><el-table-column label="性别" show-overflow-tooltip prop="sex" align="center"/><el-table-column v-for="(item,index) in columns" :key="index"             :label="''+item.label+''" :prop="item.name"  align="center" width="40"><template slot-scope="scope"></template></el-table-column></el-table><pagination :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNum"             :total="total" @pagination="loadData"/>

设置单元格样式的方法

如果内部值大于0,则显示背景为绿色

    cellFun({row, column, rowIndex, columnIndex}) {if (columnIndex != 0 && columnIndex != 1) {let key = column.propertyif (row[key] > 0) {return {backgroundColor: '#65b00d'}}}},

数据加载的方法

//      queryParams: {  //参数
//        projectId: '',
//        yearMonthBy: '',
//        pageNum:1,
//        pageSize:10
//      },    //数据加载loadData() {getList(this.queryParams).then(res => {/**动态列的创建*/let date = new Date(this.queryParams.yearMonthBy)let days = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()this.columns = []// let dates = []//根据所选的年月生成具体的天数据for (let i = 1; i <= days; i++) {let m = date.getMonth() + 1let time = date.getFullYear() + '-' + (m > 9 ? m : '0' + m) + '-' + (i > 9 ? i : '0' + i)this.columns.push({label: i, name: 'a' + i, date: time})// dates.push(date.getFullYear() + '-' + (m > 9 ? m : '0' + m) + '-' + (i + 1 > 9 ? i : '0' + i))}console.log(this.columns)/**end*/const data = res.rows/**补全每条数据*/for (let i = 0; i < data.length; i++) {for (let j = 0; j < this.columns.length; j++) {data[i][this.columns[j].name] = 0}}/**end*//**数据匹配*///这里逻辑可以跟随自己的变更,usedDates就是你打卡的日期字符串//例如"2022-01-01","2022-01-02"for (let i = 0; i < data.length; i++) {if (data[i].usedDates) {const usedDateList = data[i].usedDates.split(",");for (let j = 0; j < usedDateList.length; j++) {for (let k = 0; k < this.columns.length; k++) {if (usedDateList[j] == this.columns[k].date) {data[i][this.columns[k].name] = 1break}}}}}/***/console.log(data)this.tableData = datathis.total = res.total})},

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

相关文章:

  • 软件工程——期末复习(2)
  • vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式
  • 【BUG】VMware|vmrest正在运行此虚拟机,无法配置或删除快照
  • STM32 串口和I2C结合案例:
  • QT6_UI设计——设置表格
  • 游戏使用辅助工具修改器检测不到游戏进程应该如何解决?多种解决方法分享
  • Java JVM(内存结构,垃圾回收,类加载,内存模型)
  • C++设计模式(桥接、享元、外观、状态)
  • 鸿蒙 DevEco Studio 设置状态栏,调用setWindowSystemBarProperties不生效
  • Spring03——基于xml的Spring应用
  • 【AIGC半月报】AIGC大模型启元:2024.12(上)
  • 本etcd系列文章补充说明
  • 【新品发布】ESP32-P4开发板 —— 启明智显匠心之作,为物联网及HMI产品注入强劲动力
  • HTML 添加 文本水印
  • 软件无线电安全之GNU Radio基础(下)
  • windows基础
  • hhdb数据库介绍(10-43)
  • JMS和消息中间件:Kafka/RocketMQ
  • 【问题解决】ArcgisGP工具使用GIS模块自动发布图层报错:过渡失败
  • Yocto bitbake and codeSonar
  • gpt-computer-assistant - 极简的 GPT-4o 客户端
  • 中国移动量子云平台:算力并网590量子比特!
  • Vue 3 中的计算属性(Computed Properties)详解
  • AWS S3 权限配置与文件上传下载指南
  • 6. 一分钟读懂“抽象工厂模式”
  • CV(2)-插值和卷积
  • 学习threejs,通过设置纹理属性来修改纹理贴图的位置和大小
  • fastadmin 后台插件制作方法
  • 9. 一分钟读懂“策略模式”
  • 65页PDF | 企业IT信息化战略规划(限免下载)