在使用Vue 3和TypeScript编写页面时,可以按照以下步骤来实现左侧表格、右侧表格和树形列表的功能:

  1. 安装Element Plus和axios(用于请求数据):

    npm install element-plus axios
    
  2. 在Vue文件中引入所需的组件和样式:

    <template>
      <div>
        <el-table
          v-model="selectedRows"
          :data="tableData"
          @selection-change="handleSelectionChange"
          style="width: 100%"
          border
          stripe
          row-key="AccessKey"
          :row-class-name="rowClassName"
          :default-expand-all="true"
        >
          <el-table-column type="selection" width="55"></el-table-column>
          <el-table-column prop="AccessKey" label="Access Key"></el-table-column>
          <el-table-column prop="AccessSecret" label="Access Secret"></el-table-column>
          <el-table-column prop="msgsign" label="Msg Sign"></el-table-column>
          <el-table-column prop="status" label="Status"></el-table-column>
        </el-table>
      </div>
    </template>
    
    <script setup lang="ts">
    import { ref, reactive, computed } from 'vue';
    import { ElTable, ElTableColumn } from 'element-plus';
    
    const tableData = reactive([
      {
        service: '2016-05-03',
        AccessKey: 'Tom1',
        AccessSecret: 'N89, Grove St',
        msgsign: 'alsjalksdjlasjdlasjkd',
        status: '拉德季阿里打开1',
      },
      {
        service: '2016-05-03',
        AccessKey: 'Tom2',
        AccessSecret: 'No. 18rove St',
        msgsign: 'lajlkjskdjalksdjjkd',
        status: '拉德季阿里打开2',
      },
      {
        service: '2016-05-03',
        AccessKey: 'Tom3',
        AccessSecret: 'No. 18rove St',
        msgsign: 'alsdjlajldlasjkd',
        status: '拉德季阿里打开3',
      },
      {
        service: '2016-05-03',
        AccessKey: 'Tom4',
        AccessSecret: 'No. 18e St',
        msgsign: 'alsdjlaklksdjlasjdlasjkd',
        status: '拉德季阿里打开4',
      },
    ]);
    
    const selectedRows = ref([]);
    
    const handleSelectionChange = (rows) => {
      selectedRows.value = rows;
    };
    
    const rowClassName = (row) => {
      return selectedRows.value.includes(row) ? 'row-selected' : '';
    };
    
    export { tableData, selectedRows, handleSelectionChange, rowClassName };
    </script>
    
    <style scoped>
    .row-selected {
      background-color: #e6f7ff !important;
    }
    </style>
    
  3. 在Vue文件中添加右侧表格和树形列表的代码:

    <template>
      <div>
        <!-- 左侧表格 -->
        <el-table
          v-model="selectedRows"
          :data="tableData"
          @selection-change="handleSelectionChange"
          style="width: 100%"
          border
          stripe
          row-key="AccessKey"
          :row-class-name="rowClassName"
          :default-expand-all="true"
        >
          <!-- 表格列 -->
        </el-table>
    
        <!-- 右侧表格 -->
        <el-table
          v-if="selectedRows.length > 0"
          :data="selectedRows"
          style="width: 100%"
          border
          stripe
          row-key="AccessKey"
        >
          <!-- 表格列 -->
        </el-table>
    
        <!-- 树形列表 -->
        <el-tree
          :data="treeData"
          :props="treeProps"
          show-checkbox
          @check-change="handleCheckChange"
        ></el-tree>
      </div>
    </template>
    
    <script setup lang="ts">
    import { ref, reactive } from 'vue';
    import { ElTable, ElTableColumn, ElTree } from 'element-plus';
    
    const tableData = reactive([
      // 表格数据
    ]);
    
    const selectedRows = ref([]);
    
    const handleSelectionChange = (rows) => {
      selectedRows.value = rows;
    };
    
    const rowClassName = (row) => {
      return selectedRows.value.includes(row) ? 'row-selected' : '';
    };
    
    const treeData = reactive([
      // 树形列表数据
    ]);
    
    const treeProps = {
      children: 'children',
      label: 'label',
    };
    
    const handleCheckChange = (data) => {
      // 处理树形列表选择事件
    };
    
    export { tableData, selectedRows, handleSelectionChange, rowClassName, treeData, treeProps, handleCheckChange };
    </script>
    
    <style scoped>
    .row-selected {
      background-color: #e6f7ff !important;
    }
    </style>
    

通过以上代码,你可以实现一个包含左侧表格、右侧表格和树形列表的页面,左侧表格支持多选,点击选择框时,被选中的整条数据会添加到右侧表格中并进行展示,右侧表格可以对数据进行操作,从表格中删除时,左侧表格的选择会取消。同时,树形列表的选择可以修改左侧表格的内容。请根据实际需求调整代码中的表格列和数据

使用vue3script lang=ts setupelementUI plustypescript当做编写页面的语言。这个页面左边是一个充满数据的表格表格数据如下: service 2016-05-03 AccessKey Tom1 AccessSecret N89 Grove St msgsign alsjalksdjlasjdlasjkd

原文地址: https://www.cveoy.top/t/topic/idAk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录