使用vue3script lang=ts setupelementUI plustypescript当做编写页面的语言。这个页面左边是一个充满数据的表格表格数据如下: service 2016-05-03 AccessKey Tom1 AccessSecret N89 Grove St msgsign alsjalksdjlasjdlasjkd
在使用Vue 3和TypeScript编写页面时,可以按照以下步骤来实现左侧表格、右侧表格和树形列表的功能:
-
安装Element Plus和axios(用于请求数据):
npm install element-plus axios -
在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> -
在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>
通过以上代码,你可以实现一个包含左侧表格、右侧表格和树形列表的页面,左侧表格支持多选,点击选择框时,被选中的整条数据会添加到右侧表格中并进行展示,右侧表格可以对数据进行操作,从表格中删除时,左侧表格的选择会取消。同时,树形列表的选择可以修改左侧表格的内容。请根据实际需求调整代码中的表格列和数据
原文地址: https://www.cveoy.top/t/topic/idAk 著作权归作者所有。请勿转载和采集!