129 lines
3.0 KiB
JavaScript
129 lines
3.0 KiB
JavaScript
import { NDataTable, NIcon, NButton } from 'naive-ui'
|
|
import { getTask } from '@/api/gantt'
|
|
import {
|
|
HelpCircleOutline,
|
|
CreateOutline,
|
|
TrashBinOutline,
|
|
AddCircleOutline,
|
|
EnterOutline,
|
|
} from '@vicons/ionicons5'
|
|
|
|
export default defineComponent({
|
|
setup() {
|
|
const columns = [
|
|
{
|
|
title: '任务名称/事件名称',
|
|
key: 'name',
|
|
width: 220,
|
|
render: row => {
|
|
return (
|
|
<div class="inline-flex items-center gap-2">
|
|
<NIcon>
|
|
<HelpCircleOutline />
|
|
</NIcon>
|
|
{row.name}
|
|
</div>
|
|
)
|
|
},
|
|
},
|
|
{
|
|
title: '开始时间',
|
|
key: 'start',
|
|
},
|
|
{
|
|
title: '结束时间',
|
|
key: 'end',
|
|
},
|
|
{
|
|
title: '类型',
|
|
key: 'type',
|
|
},
|
|
{
|
|
title: '图片',
|
|
key: 'avatar',
|
|
render(row) {
|
|
if (row.avatar) {
|
|
return <img src={row.avatar} width="50" alt="" />
|
|
} else {
|
|
return <span>-</span>
|
|
}
|
|
},
|
|
},
|
|
{
|
|
title: '操作',
|
|
key: 'action',
|
|
render(row) {
|
|
return (
|
|
<div class="flex justify-end">
|
|
{row.type === 'task' ? (
|
|
<>
|
|
<NButton
|
|
type="primary"
|
|
size="small"
|
|
quaternary
|
|
onClick={() => handleEdit(row)}
|
|
>
|
|
<NIcon>
|
|
<EnterOutline />
|
|
</NIcon>
|
|
</NButton>
|
|
<NButton
|
|
type="primary"
|
|
size="small"
|
|
quaternary
|
|
onClick={() => handleEdit(row)}
|
|
>
|
|
<NIcon>
|
|
<CreateOutline />
|
|
</NIcon>
|
|
</NButton>
|
|
</>
|
|
) : null}
|
|
{/* {!row.avatar ? (
|
|
<NButton
|
|
type="success"
|
|
size="small"
|
|
quaternary
|
|
onClick={() => handleEdit(row)}
|
|
>
|
|
<NIcon>
|
|
<AddCircleOutline />
|
|
</NIcon>
|
|
</NButton>
|
|
) : (
|
|
<></>
|
|
)} */}
|
|
|
|
<NButton
|
|
type="error"
|
|
size="small"
|
|
quaternary
|
|
onClick={() => handleEdit(row)}
|
|
>
|
|
<NIcon>
|
|
<TrashBinOutline />
|
|
</NIcon>
|
|
</NButton>
|
|
</div>
|
|
)
|
|
},
|
|
},
|
|
]
|
|
const tableData = ref([])
|
|
onMounted(async () => {
|
|
const res = await getTask()
|
|
tableData.value = res
|
|
})
|
|
|
|
return () => (
|
|
<NDataTable
|
|
class="h-full"
|
|
flex-height
|
|
columns={columns}
|
|
data={tableData.value}
|
|
row-key={row => row.name}
|
|
/>
|
|
)
|
|
},
|
|
})
|