naive-ui Table操作行

在这里插入图片描述
在这里插入图片描述

<template>
  <TitleShow title="农技知识培训"></TitleShow>
  <div class="table-box">
    <n-data-table
      :columns="columns"
      :data="tableData"
      :row-props="clickRow"
      :single-line="true"
      :bordered="false"
      max-height="2rem"
    />
  </div>
  <CommonDialog
    :is-show-dialog="isShowDialog"
    :dialog-name="dialogName"
    @close="isShowDialog = false"
  >
    <div>内容部分</div>
  </CommonDialog>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import TitleShow from 'src/components/titleShow/TitleShow.vue'
import CommonDialog from 'src/components/dialog/CommonDialog1.vue'
import { NDataTable, DataTableColumn } from 'naive-ui'
interface RowData {
  [key: string]: string
}
const tableData = ref<any[]>([])
const columns: DataTableColumn[] = [
  {
    align: 'center',
    key: 'key1',
    title: '标题',
    width: '50%'
  },
  {
    align: 'center',
    key: 'key2',
    title: '分类'
  },
  {
    align: 'center',
    key: 'key3',
    title: '发布时间',
    width: '30%'
  }
]
const isShowDialog = ref(false)
const dialogName = ref('')

function clickRow(row: RowData) {
  return {
    style: 'cursor: pointer;',
    onClick: () => {
      openInfoDialog(row)
    }
  }
}
// 打开弹框
function openInfoDialog(row: RowData) {
  dialogName.value = row.label
  isShowDialog.value = true
}

onMounted(() => {
  getTableData()
})

function getTableData() {
  for (let i = 0; i < 10; i++) {
    tableData.value.push({
      key1: '春季家离3种主要生...',
      key2: '畜牧',
      key3: '2023-04-24'
    })
  }
}
</script>

<style scoped lang="scss">
.table-box {
  margin: 10px 0;
  &:deep(.n-data-table) {
    .n-data-table-th {
      padding: 4px 6px;
    }
    .n-data-table-td {
      border-bottom: 10px solid rgba(6, 42, 75, 0.8);
      padding: 4px 6px;
    }
  }
}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值