vue element ui table表套table表和表单(expand)

BiKABi又回来了,今天抽空把之前自己重新封装的一个表格套表格和表单的记录一下,经常用element ui 的小伙伴们应该知道,官方给的文档只有单独的套表格或者是表单,下面直接上代码

效果图

在这里插入图片描述

HTML代码

1.表格根据自己的需求该
2.之前想拿到表的表单数据一直踩坑,每次拿数据都拿到的是所有的,所以就想到用下标的方法直接拿数据就可以formData.rawMaterialsForDetailList[scope.$index].dataListform这样就可以不会出现明明第一条数据有2条,第二条数据有1条,但是拿出来每个都是3条的问题了

<el-table
          :data="formData.rawMaterialsForDetailList"
          ref="multipleTable"
          border
          style="margin: 10px 0 0 0;"
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="expand">
            <template slot-scope="scope">
              <div
                v-for="item2 in formData.rawMaterialsForDetailList[scope.$index].dataListform"
                :key="item2"
              >
                <!-- <span>{{item2}}</span> -->
                <span>{{item2.name}}</span>
                <el-table
                  :data="item2.dataList"
                  ref="multipleTable"
                  border
                  style="margin: 10px 0 0 0;"
                  @selection-change="handleSelectionChange"
                >
                  <el-table-column label="派工单" align="center" prop="a"></el-table-column>
                  <el-table-column label="制程工艺" align="center" prop="b"></el-table-column>
                  <el-table-column label="派工数" align="center" width="100" prop="c"></el-table-column>
                  <el-table-column label="当前工序" align="center">
                    <el-table-column label="名称" align="center" prop="d"></el-table-column>
                    <el-table-column label="完工数" align="center" prop="e"></el-table-column>
                    <el-table-column label="占比%" align="center" prop="f"></el-table-column>
                  </el-table-column>
                </el-table>
              </div>
            </template>

            <!-- </div> -->
          </el-table-column>
          <el-table-column label="品名" align="center" prop="partNo"></el-table-column>
          <el-table-column label="图号" align="center" prop="picNo"></el-table-column>
          <el-table-column label="版次" align="center" width="100" prop="picVersion"></el-table-column>
          <el-table-column label="材质" align="center" prop="gradeName"></el-table-column>
          <el-table-column label="变更类型" align="center" prop="specs"></el-table-column>
          <el-table-column label="变更原因" align="center" prop="gradeName"></el-table-column>
          <el-table-column label="单套数" align="center">
            <el-table-column label="变更前" align="center" prop="totalNum"></el-table-column>
            <el-table-column label="变更后" align="center" prop="totalNum"></el-table-column>
          </el-table-column>
          <el-table-column label="套数" align="center">
            <el-table-column label="变更前" align="center" prop="singleDosage"></el-table-column>
            <el-table-column label="变更后" align="center" prop="singleDosage"></el-table-column>
          </el-table-column>
          <el-table-column label="总数" align="center">
            <el-table-column label="变更前" align="center" prop="totalContent"></el-table-column>
            <el-table-column label="变更后" align="center" prop="totalContent"></el-table-column>
          </el-table-column>
          <el-table-column label="单位" align="center" width="100" prop="unitNo"></el-table-column>
          <el-table-column label="交期" align="center">
            <el-table-column label="变更前" align="center" prop="dateRequired"></el-table-column>
            <el-table-column label="变更后" align="center" width="180" prop="dateRequired"></el-table-column>
          </el-table-column>
          <el-table-column label="紧急程度" align="center" prop="kc"></el-table-column>
        </el-table>

JS代码

1.这里我只是模拟的数据格式,换成接口就可以

//   表单定义
      formData: {
        projectNo: "",
        createName: "",
        orderDate: "",
        orderSerial: "",
        orderNo: "",
        remark: "",
        filePathList: [],
        rawMaterialsForDetailList: [
          {
            partNo: "1111111",
            dataListform: [
              {
                name: "OD20200723001-01",
                dataList: [
                  {
                    a: "PG20200728001",
                    b: "BR->CNC1->M->CNC1->QC",
                    c: "50",
                    d: "CNC1",
                    e: "40",
                    f: "80%",
                  },
                  {
                    a: "PG20200728001",
                    b: "BR->CNC1->M->CNC1->QC",
                    c: "50",
                    d: "CNC1",
                    e: "40",
                    f: "80%",
                  },                                   
                ],
              },
              {
                name: "OD20200723001-02",
                dataList: [
                  {
                    a: "PG20200728002",
                    b: "BR->CNC1->M->CNC1->QC",
                    c: "50",
                    d: "CNC1",
                    e: "40",
                    f: "80%",
                  },
                ],
              },
            ],
          },
          {
            partNo: "1111111",
            dataListform: [
              {
                name: "OD20200723001-03",
                dataList: [
                  {
                    a: "PG20200728003",
                    b: "BR->CNC1->M->CNC1->QC",
                    c: "50",
                    d: "CNC1",
                    e: "40",
                    f: "80%",
                  },
                ],
              },
            ],
          },
        ],
        code: "",
        id: "",
      },
    };

希望对你有帮助
如有错误,请斧正!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下步骤来导出 Vue Element UI 格数据: 1. 首先,确保您已经安装了 Element UI 和相关的依赖。您可以通过以下命令来安装 Element UI: ```bash npm install element-ui ``` 2. 在您的 Vue 组件中,导入并注册 Element UITable 组件。在需要使用格的地方,使用 `<el-table>` 标签包裹数据。 ```vue <template> <div> <el-button type="primary" @click="exportTable">导出格</el-button> <el-table :data="tableData"> <!-- 格列定义 --> </el-table> </div> </template> <script> import { ElTable, ElTableColumn } from 'element-ui'; export default { components: { ElTable, ElTableColumn, }, data() { return { tableData: [ // 格数据 ], }; }, methods: { exportTable() { // 导出格逻辑 }, }, }; </script> ``` 3. 在 `exportTable` 方法中,编写导出格的逻辑。您可以使用第三方库,如 `xlsx` 或 `file-saver` 来实现导出功能。以 `xlsx` 为例,您可以按照以下步骤进行安装和使用: - 安装 `xlsx` 和 `file-saver`: ```bash npm install xlsx file-saver ``` - 在导出格的方法中使用 `xlsx` 和 `file-saver`: ```javascript import XLSX from 'xlsx'; import { saveAs } from 'file-saver'; exportTable() { const wb = XLSX.utils.table_to_book(this.$refs.table.$el); const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }); saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'table.xlsx'); }, ``` 以上代码将使用 `xlsx` 将格数据转换为工作簿,然后使用 `file-saver` 将工作簿保存为名为 `table.xlsx` 的文件。 请注意,您需要根据您的实际项目结构和需求进行适当的调整。这只是一个基本的示例,您可能需要根据您的格结构和数据格式进行更多的自定义和处理。 希望这可以帮助到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值