Arco Design 之Table表格

此篇文章为table表格示例,包含列、data数据、展开、选中、自定义等相关属性

官网地址:Arco Design Vue

 基础表格

<a-table :columns="columns1" :data="tableData1" />

const columns1 = [
  { title: "编号", dataIndex: "no"},
  { title: "名称", dataIndex: "name"},
  { title: "性别", dataIndex: "sex"},
  { title: "年龄", dataIndex: "age", slotName: "age"}
];
const tableData1 = reactive([
  { name: "张三", no: "01", sex: "男",age:26 },
  { name: "秀儿", no: "02", sex: "女",age:25 },
  { name: "李四", no: "03", sex: "男",age:27 }
]);

可编辑表格 

<!-- 需要编辑的列 在columns里加对应的 slotName -->
<a-table :columns="columns1" :data="tableData1">
  <template #age="{ record, rowIndex }">
    <a-input v-model="record.age" />
  </template>
</a-table>

 复选框表格

<!--row-key="id"为唯一标识 selected-keys为选中的数据 -->
<a-table row-key="id" :columns="columns" :data="tableData" v-model:selected-keys="selectedRowKeys" :row-selection="rowSelection">
</a-table>

<script lang="ts" setup>
   const selectedRowKeys = ref([])
   const rowSelection = reactive({
     type: 'checkbox',
     showCheckedAll: true,
     checkStrictly: false
   })
</script>

树形表格数据 

<a-table row-key="no" :columns="columns" :data="tableData" v-model:selected-keys="selectedRowKeys" :row-selection="rowSelection">
</a-table>
// 数据源tableData  里有 children 字段时会展示为树形表格
const tableData = reactive([
  { name: "张三",no: "01", sex: "男", age:26 , children:[{ name: "小张", no: "1-1", sex: "男" ,age:5 }]},
  { name: "秀儿", no: "02", sex: "女",age:25 , children:[{ name: "小王", no: "2-1", sex: "女", :2 }]},
  { name: "李四", no: "03",  sex: "男", age:27 }
]);

表格不展示默认的分页

pagination属性设置为 false

<a-table row-key="id" :columns="columns" :data="tableData" :pagination="false" />

示例图 

图1-基础表格
图1-基础表格
图2-可编辑表格
图2-可编辑表格
图2-复选框表格
图3-复选框表格
图4-树形表格数据

此文章会持续更新 ~ 点赞👍关注 不迷路~

您可以使用Vue3中的v-contextmenu指令来实现在arco-design表格组件内部自定义右键菜单,并且位置固定在右键点击范围。 首先,在arco-design表格组件上绑定v-contextmenu指令,并且传入一个方法名,该方法名用于在右键点击时触发显示自定义菜单的操作。例如: ```html <template> <div> <AcoTable v-bind="$props" v-contextmenu="showContextMenu"></AcoTable> </div> </template> <script> export default { props: { // arco-design表格组件的props }, methods: { showContextMenu(e) { // 显示自定义菜单的操作 } } } </script> ``` 然后,在该组件内部定义自定义菜单的模板,例如: ```html <template id="my-context-menu"> <div class="my-context-menu"> <ul> <li>菜单项1</li> <li>菜单项2</li> <li>菜单项3</li> </ul> </div> </template> ``` 最后,在showContextMenu方法中,根据鼠标点击的位置动态计算出自定义菜单的位置,并且使用Vue3中的teleport组件将自定义菜单渲染到body元素下。例如: ```javascript showContextMenu(e) { e.preventDefault(); // 阻止原本的右键菜单弹出 const contextMenu = document.querySelector('#my-context-menu'); const { clientX, clientY } = e; contextMenu.style.left = `${clientX}px`; contextMenu.style.top = `${clientY}px`; const portal = document.createElement('div'); document.body.appendChild(portal); createVNode(Teleport, { to: 'body' }, [ createVNode(contextMenu.content.cloneNode(true)) ]).mount(portal); } ``` 在以上代码中,使用document.querySelector方法获取自定义菜单的模板,然后根据鼠标点击的位置动态计算出自定义菜单的位置,并且使用Vue3中的teleport组件将自定义菜单渲染到body元素下。 最后,您需要在CSS中定义自定义菜单的样式,使其固定在右键点击范围。例如: ```css .my-context-menu { position: fixed; z-index: 9999; background-color: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } ``` 通过以上步骤,您就可以在arco-design表格组件内部实现自定义右键菜单,并且位置固定在右键点击范围了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值