import type { CreateCrudOptionsRet, CreateCrudOptionsProps } from '@fast-crud/fast-crud'; import dayjs from 'dayjs'; import { queryScore } from '../api'; export default function createCrudOptions(crudOptionsProps: CreateCrudOptionsProps): CreateCrudOptionsRet { return { crudOptions: { request: { pageRequest: async ({ page, query }) => { query.subjectId = crudOptionsProps.context?.subjectId; const { total, data } = await queryScore(page.offset + 1, page.limit, query); return { records: data, total, currentPage: page.offset, pageSize: page.limit }; }, addRequest: () => { return Promise.resolve(true); }, editRequest: () => { return Promise.resolve(true); }, delRequest: () => { return Promise.resolve(true); } }, rowHandle: { show: false }, toolbar: { show: false }, actionbar: { show: false }, search: { show: true, buttons: { search: { show: true }, reset: { show: true }, custom: { show: true, text: '关闭', click: () => { crudOptionsProps.context?.viewActiveCloseFunc(); } } } }, columns: { studentNumber: { title: '学员编号', search: { show: true }, type: 'text', column: { align: 'center', width: 240 }, form: { show: false } }, testDate: { title: '考试日期', type: 'datetime', search: { show: false }, column: { align: 'center' }, form: { show: false }, valueBuilder(context) { const { value, row, key } = context; if (value) { row[key] = dayjs(value).valueOf(); } }, valueResolve(context) { const { value, form, key } = context; if (value) { form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss'); } } }, score: { title: '成绩', type: 'number', search: { show: false }, form: { show: false }, column: { align: 'center' } }, createTime: { key: 'createTime', title: '创建时间', type: 'datetime', column: { width: 250, align: 'center' }, search: { show: false }, valueBuilder(context) { const { value, row, key } = context; if (value) { row[key] = dayjs(value).valueOf(); } }, valueResolve(context) { const { value, form, key } = context; if (value) { form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss'); } } }, modifyTime: { title: '修改时间', key: 'modifyTime', type: 'datetime', align: 'center', column: { width: 250, align: 'center' }, valueBuilder(context) { const { value, row, key } = context; if (value) { row[key] = dayjs(value).valueOf(); } }, valueResolve(context) { const { value, form, key } = context; if (value) { form[key] = dayjs(value).format('YYYY-MM-DD HH:mm:ss'); } } }, passRate: { title: '及格率', type: 'text', search: { show: false }, column: { align: 'center' } }, excelRate: { title: '通过率', type: 'text', search: { show: false }, column: { align: 'center' } }, comment: { title: '备注信息', type: 'text', search: { show: false }, column: { align: 'center', width: 300 } } } } }; }