104 lines
2.4 KiB
Vue
104 lines
2.4 KiB
Vue
<template>
|
||
<ContentWrap>
|
||
<div style="width: 100%; height: 500px">
|
||
<el-auto-resizer>
|
||
<template #default="{ height, width }">
|
||
<el-table-v2 :columns="columns" :data="tableData" :width="width" :height="height" fixed />
|
||
</template>
|
||
</el-auto-resizer>
|
||
<el-pagination
|
||
:current-page="queryParms.pageNo"
|
||
:page-size="queryParms.pageSize"
|
||
layout="total, prev, pager, next"
|
||
:total="tableTotal"
|
||
@size-change="getList"
|
||
@current-change="getList"
|
||
/>
|
||
</div>
|
||
</ContentWrap>
|
||
</template>
|
||
<script setup lang="ts">
|
||
import { Column, TableV2FixedDir } from 'element-plus'
|
||
import * as NoticeApi from '@/api/system/notice'
|
||
import { XTextButton } from '@/components/XButton'
|
||
const { t } = useI18n() // 国际化
|
||
|
||
const columns: Column<any>[] = [
|
||
{
|
||
key: 'id',
|
||
dataKey: 'id', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填id
|
||
title: 'id', //显示在单元格表头的文本
|
||
width: 80, //当前列的宽度,必须设置
|
||
fixed: true //是否固定列
|
||
},
|
||
{
|
||
key: 'title',
|
||
dataKey: 'title',
|
||
title: '公告标题',
|
||
width: 180
|
||
},
|
||
{
|
||
key: 'type',
|
||
dataKey: 'type',
|
||
title: '公告类型',
|
||
width: 180
|
||
},
|
||
{
|
||
key: 'status',
|
||
dataKey: 'status',
|
||
title: t('common.status'),
|
||
width: 180
|
||
},
|
||
{
|
||
key: 'content',
|
||
dataKey: 'content',
|
||
title: '公告内容',
|
||
width: 180
|
||
},
|
||
{
|
||
key: 'createTime',
|
||
dataKey: 'createTime',
|
||
title: t('common.createTime'),
|
||
width: 180
|
||
},
|
||
{
|
||
key: 'actionbtns',
|
||
dataKey: 'actionbtns', //需要渲染当前列的数据字段,如{id:9527,name:'Mike'},则填id
|
||
title: '操作', //显示在单元格表头的文本
|
||
width: 80, //当前列的宽度,必须设置
|
||
fixed: TableV2FixedDir.RIGHT, //是否固定列
|
||
align: 'center',
|
||
cellRenderer: (date) =>
|
||
h(XTextButton, {
|
||
onClick: () => handleDelete(date.rowData),
|
||
type: 'danger',
|
||
preIcon: 'ep:delete',
|
||
title: t('action.del')
|
||
})
|
||
}
|
||
]
|
||
|
||
const tableData = ref([])
|
||
|
||
const tableTotal = ref(0)
|
||
|
||
const queryParms = reactive({
|
||
title: '',
|
||
status: undefined,
|
||
pageNo: 1,
|
||
pageSize: 10
|
||
})
|
||
|
||
const getList = async () => {
|
||
const res = await NoticeApi.getNoticePageApi(queryParms)
|
||
tableData.value = res.list
|
||
tableTotal.value = res.total
|
||
}
|
||
|
||
const handleDelete = (row) => {
|
||
console.info(row.id)
|
||
}
|
||
|
||
getList()
|
||
</script>
|