vite创建的vue项目怎么使用jsx来实现elementPlus表格表尾的合计有多行大的方法

news2024/9/22 17:35:14

vite创建的vue3项目安装@vitejs/plugin-vue-jsx

先附上代码效果
在这里插入图片描述

npm i @vitejs/plugin-vue-jsx -D
注意:vite的版本不同请安装不同版本的 /plugin-vue-jsx

我创建项目的vite版本是 4.3.9
所以我就按照了 3.0.2版本的vitejs/plugin-vue-jsx
在这里插入图片描述

安装完后需要在 vite.config.js 文件里引入
在这里插入图片描述

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import vueJsx from '@vitejs/plugin-vue-jsx'   //引入jsx
const Timestamp = new Date().getTime();

// https://vitejs.dev/config/
export default defineConfig({
  base: './',
  build: {
    sourcemap: false, // 输出.map文件,默认是false
    rollupOptions: {
      output: {
        chunkFileNames: `static/js/[name].[hash]${Timestamp}.js`,
        entryFileNames: `static/js/[name].[hash]${Timestamp}.js`,
        assetFileNames: `static/[ext]/[name].[hash]${Timestamp}.[ext]`,
      },
    }
  },
  //使用 jsx
  plugins: [vue(),vueJsx(),AutoImport({
    resolvers: [ElementPlusResolver()],
  }),
  Components({
    resolvers: [ElementPlusResolver()],
  })],
})

最后在页面代码里的 script 标签上写入 lang=‘jsx’ 就完事

<template>
  <div style="width: 100%; height: 100vh; overflow: auto">
    <el-table
      :data="tableData"
      border
      show-summary
      style="width: 100%"
      :summary-method="getSummaries"
    >
      <el-table-column prop="id" label="ID" width="100" />
      <el-table-column prop="name" label="Name" width="100" />
      <el-table-column prop="name2" label="类型" width="100" />
      <el-table-column prop="amount1" width="180" sortable label="Amount 1" />
      <el-table-column prop="amount2" width="180" sortable label="Amount 2" />
      <el-table-column prop="amount3" width="180" sortable label="Amount 3" />
      <el-table-column prop="amount1" width="180" sortable label="Amount 1" />
      <el-table-column prop="amount2" width="180" sortable label="Amount 2" />
      <el-table-column prop="amount3" width="180" sortable label="Amount 3" />
    </el-table>
  </div>
</template>
<script setup lang='jsx'>
import { ref } from "vue";
/****
 * 数据类的一定要写道 getSummaries这个方法前面,不然会报错
 * 
 */
let yslr = ref([200, 458.56, 56369.20, -1500.6]); // 移动到这里
let aa = 66;
let tableData = ref([
  {
    id: "12987122",
    name: "Tom",
    amount1: "234",
    amount2: "3.2",
    amount3: 10,
  },
  {
    id: "12987123",
    name: "Tom",
    amount1: "165",
    amount2: "4.43",
    amount3: 12,
  },
  {
    id: "12987124",
    name: "Tom",
    amount1: "324",
    amount2: "1.9",
    amount3: 9,
  },
  {
    id: "12987125",
    name: "Tom",
    amount1: "621",
    amount2: "2.2",
    amount3: 17,
  },
  {
    id: "12987126",
    name: "Tom",
    amount1: "539",
    amount2: "4.1",
    amount3: 15,
  },
]);
// 参考文章: https://blog.csdn.net/black_cat7/article/details/121220980?ops_request_misc=%257B%2522request%255Fid%2522%253A%25226E4E7131-A91A-4705-A328-06ECDA165E95%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=6E4E7131-A91A-4705-A328-06ECDA165E95&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-121220980-null-null.nonecase&utm_term=elementUi&spm=1018.2226.3001.4450
const getSummaries = (param) => {
  console.log('这个是yslr', yslr.value);

  const { columns } = param;
  const sums = [];

  columns.forEach((column, index) => {
    if (index === 0) {
      // sums[index] ===> 就是根据index==0 找到的第一列  的  最下方的合并行

      sums[index] = (
        <div className="aaaa_div" style={{ backgroundColor: 'rgba(0, 0, 0, 0)', fontSize: '15px' }}>
          总计
        </div>
      );
      return;
    }
     /**
       1.通过判断当前循环到哪个表格 column.property==>[表头字段名称]了,然后往sums数组里面的对应位置插入数据
     ** 通过 <br /> 实现换行==》多个合计行
     *! 在数组里插入html标签后,只要通过 {} 将数据处理包裹起来,就不会再被当成字符串了
     *? case 'amount1':  ===>一共有多少个表头,就有多少个case,用于根据表头,判断当前列,来生成这一列的最底部合并行的数据
   */
    switch (column.property) {
       // 第一列的合并行数据
      // ! sums[index] ===> 就是根据column.property 找到的对应列  的  最下方的合并行
      // ===> 注意,填充数据的顺序要跟名称行对应好
      case 'name2':
        sums[index] = (
          <div className="aaaa_div">
            <div className="aa_one">预算利润</div>
            <div className="aa_one">实际利润</div>
            <div className="aa_one">差额</div>
            <div className="aa_one">预算完成率</div>
          </div>
        );
        break;

      case 'amount1':
        sums[index] = (
          <div className="aaaa_div">
            {yslr.value.map((item, i) => (
              <div key={i} className="aa_one">{item}</div>
            ))}
          </div>
        );
        break;

      case 'amount2':
        sums[index] = (
          <div className="aaaa_div">
            <div className="aa_one">11111</div>
            <div className="aa_one count_row_title">22222</div>
            <div className="aa_one">33333</div>
            <div className="aa_one count_row_title">44444</div>
          </div>
        );
        break;

      case 'amount3':
        sums[index] = (
          <div className="aaaa_div">
            <div className="aa_one">11111</div>
            <div className="aa_one count_row_title">22222</div>
            <div className="aa_one">33333</div>
            <div className="aa_one count_row_title">44444</div>
          </div>
        );
        break;

      default:
        sums[index] = '';
        break;
    }
  });

  return sums;
};
function toPercent(point) {
  // var str = Number(point * 100).toFixed(1)  //  .toFixed(1)==>保留小数点后1位,自动四舍五入==> 因为截取了小数位,所以能防止js的运算失真(0.5*100=50.00..1)
  var str = parseInt(point * 100) // parseInt==>也能防止js的运算失真
  str += '%'
  return str
}
</script>

<style lang="less" scoped>
/deep/.el-table .cell {
  padding: 0;
}
// /deep/.el-table .el-table__cell{
//   padding: 0;
// }
</style>
<style>
.count_row_title {
  color: #f00;
}
.count_row {
  color: #36d;
}

.aaaa_div {
  /* background-color: #89f0d1; */
  text-align: center;
  display: flex;
  flex-direction: column;
}
.aa_one {
  width: 100%;
  box-sizing: border-box;
  padding: 5px 10px;
  /* border: 1px solid #000000; */
}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客刷题之JZ31.栈的压入、弹出序列(C++)

1.题目解析 本题给出两个序列&#xff0c;判断一个序列压入栈后的弹出序列是否有可能成为另一个序列&#xff0c;核心难度就是如何判断能否满足弹出序列 2.算法原理 这里的算法思路是讲压入栈的序列模拟弹出&#xff0c;即将压入的序列与弹出的序列对比&#xff0c;相同则将压入…

7、关于LoFTR

7、关于LoFTR LoFTR论文链接&#xff1a;LoFTR LoFTR的提出&#xff0c;是将Transformer模型的注意力机制在特征匹配方向的应用&#xff0c;Transformer的提取特征的机制&#xff0c;在自身进行&#xff0c;本文提出可以的两张图像之间进行特征计算&#xff0c;非常适合进行特…

GAMES101(5~6节,光栅化)

光栅化Rasterization 透视投影已知field和近平面&#xff0c;如何推导宽度&#xff1f; 根据三角函数&#xff1a;tan field / 2 (height / 2) / ||n||近平面&#xff0c;从而可以求出高度 因为知道宽高比&#xff0c;所以可以求出宽度&#xff0c;高度 * 宽/高 视口变换 …

Vulkan描述符、描述符Pool、Layout概念

1、DescriptorSetLayout为了组织和管理着色器资源&#xff08;如缓冲区、纹理、采样器等&#xff09;&#xff0c;多个相同类型的Descriptor放在一个Layout中以优化GPU对资源的访问 //DescriptorSetLayout定义了哪些描述符Descriptor类型&#xff08;Buffers、Textures、Sample…

四、搭建网站服务器超详细步骤——解决宝塔界面无法登录问题

前言 本篇博客是搭建网站服务器的第四期&#xff0c;也到了中间的一节 先分享一下我在搭建网站时的个人感受&#xff0c;我在这个环节卡住了很久 后来突然醒悟了&#xff0c;然后成功进入了宝塔界面 现在就来分享一下&#xff0c;我所遇到的问题 小伙伴们坐好了 …

LINUX和Windows提权前信息收集的两种方式

信息收集分为两种方式&#xff1a; 手动收集、自动收集&#xff1b; 手动枚举一个系统非常耗时&#xff0c;然而这种方法允许更多的控制&#xff0c;并可以帮助识别自动化工具经常遗漏的更奇特的提权提升方式&#xff1b; 一、手动收集 1、枚举用户 Windows whoami …

【C++】手动实现nique_ptr智能指针

1、自己实现封装了一个智能指针&#xff0c;并且使用了模板 目录 代码实现&#xff1a; 输出结果如下&#xff1a; 代码实现&#xff1a; #include <iostream>using namespace std;template <typename T> class UniquePtr { private:T *ptr;public://默认构造函…

【2024数学建模国赛赛题思路】C题第四套思路已出丨仅供参考

问题一思路分析 假定各种农作物未来的预期销售量、种植成本、亩产量和销售价格相对于2023年保持稳定&#xff0c;每季种植的农作物在当季销售。如果某种作物每季的总产量超过相应的预期销售量&#xff0c;超过部分不能正常销售。请针对以下两种情况&#xff0c;分别给出该乡村…

语法分析例题

答案&#xff1a;A 选项B&#xff0c;选项C&#xff0c;选项D都只有在程序运行后才能看出来是否正确 答案&#xff1a;D 自己写一个C程序&#xff0c;未赋值&#xff0c;就可以看出可以运行&#xff0c;但结果是乱码 #include<stdio.h>int main() {int a;int b;b10;bb…

图形推理-错题集

001 解析&#xff1a; 002 解析&#xff1a; 003 解析&#xff1a; 004 005 006

day09-IO-字符流其它流

一、字符流 字符流&#xff08;只能做文本文件的处理&#xff09;字符输入流 Reader--FileReader字符输出流 Writer--FileWriter ​ 使用文件字符输入流的好处&#xff1a;读取中文不会出现乱码问题 1.1 字符输入流 构造器说明public FileReader (File file)创建字符输入流管道…

软件测试永远的家——银行测试,YYDS

为什么做金融类软件测试举个栗子&#xff0c;银行里的软件测试工程师。横向跟互联网公司里的测试来说&#xff0c;薪资相对稳定&#xff0c;加班少甚至基本没有&#xff0c;业务稳定。实在是测试类岗位中的香饽饽&#xff01; 一、什么是金融行业 金融业是指经营金融商品的特…

VSCode中latex文件(Misplaced alignment tab character .LaTeX

Misplaced alignment tab character &.LaTeX 先给出参考文章1 Misplaced alignment tab character &.LaTeX 把bib文件中的 &改为 and 。删除原有的bbl文件、重新运行 选择这个运行 这个错误在overleaf上并没有遇到、在vscode上遇到了 方法二就是把 &改为…

医用介入导管的种类以及在线检测设备

关键字&#xff1a;介入导管生产线&#xff0c;医用导管检测设备&#xff0c;指引导管测径仪&#xff0c;球囊导管测量仪&#xff0c;医用导管测量&#xff0c;医用导管生产线&#xff0c;溶栓导管测径仪&#xff0c;造影导管测量仪 介入导管在医疗领域&#xff0c;特别是血管内…

机器学习之实战篇——MNIST手写数字0~9识别(全连接神经网络模型)

机器学习之实战篇——Mnist手写数字0~9识别&#xff08;全连接神经网络模型&#xff09; 文章传送MNIST数据集介绍&#xff1a;实验过程实验环境导入模块导入MNIST数据集创建神经网络模型进行训练&#xff0c;测试&#xff0c;评估模型优化 文章传送 机器学习之监督学习&#…

别再羡慕别人啦,四种方法轻松打造自己的IP形象

大家好&#xff0c;我是宇航&#xff0c;10年技术专家&#xff0c;专注于AI绘画&#xff0c;AI视频 做自媒体的小伙伴第一件事儿就是起一个IP名称和制作IP图像。制作图像这件事儿对于很多小伙伴来说都不太容易&#xff0c;有的小伙伴制作了很久还是没有做出自己满意的图像。 …

使用Python本地搭建http.server文件共享服务并实现公网环境远程访问——“cpolar内网穿透”

前言 本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言&#xff0c;在自己的电脑上搭建一个共享文件服务器&#xff0c;并通过cpolar创建的公网地址&#xff0c;打造一个可以随时随地远程访问的私人云盘。 数据共享作为和连接作为互联网的基础应用&#xff…

Spring Boot项目更改项目名称

背景&#xff1a;新项目开始前&#xff0c;往往需要初始化功能&#xff0c;拿到基础版本后更改项目对应的名称等信息。 更改步骤如下&#xff1a; 1、修改目录名称。 打开本地项目&#xff0c;右键修改项目名称。 2、修改maven项目的pom依赖 修改parent及modules项目名称&…

C++语法知识点合集:7.string类

文章目录 一、标准库中的string类1.string类2.auto和范围for3.string类的常用接口说明 二、string类的模拟实现1. 经典的string类问题2.浅拷贝3.深拷贝 一、标准库中的string类 1.string类 string是表示字符串的字符串类该类的接口与常规容器的接口基本相同&#xff0c;再添加…

鸿蒙 HarmonyOS 下拉控件

✍️作者简介&#xff1a;小北编程&#xff08;专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向&#xff09; &#x1f433;博客主页&#xff1a; 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN &#x1f514;如果文章对您有一定的帮助请&#x1f…