import { tableData } from "../../data"; import { delay } from "@pureadmin/utils"; import { ref, onMounted, reactive } from "vue"; import type { PaginationProps } from "@pureadmin/table"; import ThumbUp from "~icons/ri/thumb-up-line"; import Hearts from "~icons/ri/hearts-line"; import Empty from "./empty.svg?component"; import { parseTime } from "@/utils/time"; export function useColumns() { const loading = ref(true); const columns: TableColumnList = [ { sortable: true, label: "考勤日期", prop: "tm", cellRenderer: ({ row }) => (
{ parseTime(row.tm) }
) }, { sortable: true, label: "项目名称", prop: "projName" }, { sortable: true, label: "区域名称", prop: "locName" }, { sortable: true, label: "考勤基站", prop: "ancAddr" }, { sortable: true, label: "考勤人次", prop: "attendPerson", // filterMultiple: false, // filterClassName: "pure-table-filter", // filters: [ // { text: "≥16000", value: "more" }, // { text: "<16000", value: "less" } // ], // filterMethod: (value, { requiredNumber }) => { // return value === "more" // ? requiredNumber >= 16000 // : requiredNumber < 16000; // } }, { sortable: true, label: "到岗人次", prop: "arrivePerson" }, { sortable: true, label: "在线人次", prop: "onlinePerson" }, { sortable: true, label: "到岗率", minWidth: 100, prop: "satisfaction", cellRenderer: ({ row }) => (
{row.attendPerson > 0 ? Math.round(row.arrivePerson/row.attendPerson* 100) : 0}% {/* 98 ? Hearts : ThumbUp} color="#e85f33" /> */}
) }, { label: "操作", fixed: "right", slot: "operation" } ]; /** 分页配置 */ const pagination = reactive({ pageSize: 10, currentPage: 1, layout: "prev, pager, next", total: 0, align: "center" }); function onCurrentChange(page: number) { console.log("onCurrentChange", page); loading.value = true; delay(300).then(() => { loading.value = false; }); } onMounted(() => { pagination.total = tableData.value.length; loading.value = false; }); return { Empty, loading, columns, pagination, onCurrentChange }; }