|
@@ -0,0 +1,181 @@
|
|
|
+import type { CreateCrudOptionsRet, CreateCrudOptionsProps } from '@fast-crud/fast-crud';
|
|
|
+import dayjs from 'dayjs';
|
|
|
+import { dict } from '@fast-crud/fast-crud';
|
|
|
+import { getArchives, getFile } from './api';
|
|
|
+export default function createCrudOptions(crudOptionsProps: CreateCrudOptionsProps): CreateCrudOptionsRet {
|
|
|
+ return {
|
|
|
+ crudOptions: {
|
|
|
+ pagination: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ request: {
|
|
|
+ pageRequest: async ({ page, query }) => {
|
|
|
+ query.studentNumber = crudOptionsProps.context?.studentNumber;
|
|
|
+ const { data } = await getArchives(query);
|
|
|
+ return { records: data, total: 0, currentPage: page.offset, pageSize: page.limit };
|
|
|
+ },
|
|
|
+ addRequest: () => {
|
|
|
+ return Promise.resolve(true);
|
|
|
+ },
|
|
|
+ editRequest: () => {
|
|
|
+ return Promise.resolve(true);
|
|
|
+ },
|
|
|
+ delRequest: () => {
|
|
|
+ return Promise.resolve(true);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ rowHandle: {
|
|
|
+ show: true,
|
|
|
+ buttons: {
|
|
|
+ remove: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ edit: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ view: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ review: {
|
|
|
+ text: null,
|
|
|
+ size: 'small',
|
|
|
+ icon: 'lucide:view',
|
|
|
+ tooltip: {
|
|
|
+ slots: {
|
|
|
+ default() {
|
|
|
+ return '查看文件';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ click: async ({ row }) => {
|
|
|
+ const { data } = await getFile(row.archiveNumber);
|
|
|
+ crudOptionsProps.context?.viewActiveFunc(row.arctype, data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ toolbar: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ actionbar: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ search: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ columns: {
|
|
|
+ studentNumber: {
|
|
|
+ title: '学员编号',
|
|
|
+ search: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ type: 'text',
|
|
|
+ column: {
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ show: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ arctype: {
|
|
|
+ title: '档案类型',
|
|
|
+ type: 'text',
|
|
|
+ column: {
|
|
|
+ align: 'center'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ filetype: {
|
|
|
+ title: '类别',
|
|
|
+ type: 'dict-select',
|
|
|
+ dict: dict({
|
|
|
+ data: [
|
|
|
+ { value: 'avatar', label: '头像' },
|
|
|
+ { value: 'prefile', label: '个人资料' },
|
|
|
+ { value: 'scores', label: '考核' },
|
|
|
+ { value: 'attendance', label: '出勤' },
|
|
|
+ { value: 'other', label: '其他' }
|
|
|
+ ]
|
|
|
+ })
|
|
|
+ },
|
|
|
+ remarks: {
|
|
|
+ title: '备注',
|
|
|
+ type: 'text',
|
|
|
+ column: {
|
|
|
+ align: 'center'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ validityTime: {
|
|
|
+ title: '档案有效期',
|
|
|
+ type: 'datetime',
|
|
|
+ column: {
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ 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');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ createTime: {
|
|
|
+ key: 'createTime',
|
|
|
+ title: '创建时间',
|
|
|
+ type: 'datetime',
|
|
|
+ column: {
|
|
|
+ align: 'center'
|
|
|
+ },
|
|
|
+ form: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ 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: {
|
|
|
+ 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');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+}
|