diff --git a/apps/web-ele/src/adapter/vxe-table.ts b/apps/web-ele/src/adapter/vxe-table.ts index eceaf192b..cba828957 100644 --- a/apps/web-ele/src/adapter/vxe-table.ts +++ b/apps/web-ele/src/adapter/vxe-table.ts @@ -295,4 +295,5 @@ export type OnActionClickParams> = { export type OnActionClickFn> = ( params: OnActionClickParams, ) => void; +export * from '#/components/table-action'; export type * from '@vben/plugins/vxe-table'; diff --git a/apps/web-ele/src/api/infra/demo/demo01/index.ts b/apps/web-ele/src/api/infra/demo/demo01/index.ts index 5a940a61d..c54a533f3 100644 --- a/apps/web-ele/src/api/infra/demo/demo01/index.ts +++ b/apps/web-ele/src/api/infra/demo/demo01/index.ts @@ -9,7 +9,7 @@ export namespace Demo01ContactApi { export interface Demo01Contact { id: number; // 编号 name?: string; // 名字 - sex?: boolean; // 性别 + sex?: number; // 性别 birthday?: Dayjs | string; // 出生年 description?: string; // 简介 avatar: string; // 头像 @@ -46,6 +46,13 @@ export function deleteDemo01Contact(id: number) { return requestClient.delete(`/infra/demo01-contact/delete?id=${id}`); } +/** 批量删除示例联系人 */ +export function deleteDemo01ContactList(ids: number[]) { + return requestClient.delete( + `/infra/demo01-contact/delete-list?ids=${ids.join(',')}`, + ); +} + /** 导出示例联系人 */ export function exportDemo01Contact(params: any) { return requestClient.download('/infra/demo01-contact/export-excel', params); diff --git a/apps/web-ele/src/api/infra/demo/demo03/erp/index.ts b/apps/web-ele/src/api/infra/demo/demo03/erp/index.ts index f9704bf14..aac1829b7 100644 --- a/apps/web-ele/src/api/infra/demo/demo03/erp/index.ts +++ b/apps/web-ele/src/api/infra/demo/demo03/erp/index.ts @@ -34,7 +34,7 @@ export namespace Demo03StudentApi { /** 查询学生分页 */ export function getDemo03StudentPage(params: PageParam) { return requestClient.get>( - '/infra/demo03-student/page', + '/infra/demo03-student-erp/page', { params }, ); } @@ -42,28 +42,38 @@ export function getDemo03StudentPage(params: PageParam) { /** 查询学生详情 */ export function getDemo03Student(id: number) { return requestClient.get( - `/infra/demo03-student/get?id=${id}`, + `/infra/demo03-student-erp/get?id=${id}`, ); } /** 新增学生 */ export function createDemo03Student(data: Demo03StudentApi.Demo03Student) { - return requestClient.post('/infra/demo03-student/create', data); + return requestClient.post('/infra/demo03-student-erp/create', data); } /** 修改学生 */ export function updateDemo03Student(data: Demo03StudentApi.Demo03Student) { - return requestClient.put('/infra/demo03-student/update', data); + return requestClient.put('/infra/demo03-student-erp/update', data); } /** 删除学生 */ export function deleteDemo03Student(id: number) { - return requestClient.delete(`/infra/demo03-student/delete?id=${id}`); + return requestClient.delete(`/infra/demo03-student-erp/delete?id=${id}`); +} + +/** 批量删除学生 */ +export function deleteDemo03StudentList(ids: number[]) { + return requestClient.delete( + `/infra/demo03-student-erp/delete-list?ids=${ids.join(',')}`, + ); } /** 导出学生 */ export function exportDemo03Student(params: any) { - return requestClient.download('/infra/demo03-student/export-excel', params); + return requestClient.download( + '/infra/demo03-student-erp/export-excel', + params, + ); } // ==================== 子表(学生课程) ==================== @@ -71,33 +81,44 @@ export function exportDemo03Student(params: any) { /** 获得学生课程分页 */ export function getDemo03CoursePage(params: PageParam) { return requestClient.get>( - `/infra/demo03-student/demo03-course/page`, - { - params, - }, + `/infra/demo03-student-erp/demo03-course/page`, + { params }, ); } /** 新增学生课程 */ export function createDemo03Course(data: Demo03StudentApi.Demo03Course) { - return requestClient.post(`/infra/demo03-student/demo03-course/create`, data); + return requestClient.post( + `/infra/demo03-student-erp/demo03-course/create`, + data, + ); } /** 修改学生课程 */ export function updateDemo03Course(data: Demo03StudentApi.Demo03Course) { - return requestClient.put(`/infra/demo03-student/demo03-course/update`, data); + return requestClient.put( + `/infra/demo03-student-erp/demo03-course/update`, + data, + ); } /** 删除学生课程 */ export function deleteDemo03Course(id: number) { return requestClient.delete( - `/infra/demo03-student/demo03-course/delete?id=${id}`, + `/infra/demo03-student-erp/demo03-course/delete?id=${id}`, + ); +} + +/** 批量删除学生课程 */ +export function deleteDemo03CourseList(ids: number[]) { + return requestClient.delete( + `/infra/demo03-student-erp/demo03-course/delete-list?ids=${ids.join(',')}`, ); } /** 获得学生课程 */ export function getDemo03Course(id: number) { return requestClient.get( - `/infra/demo03-student/demo03-course/get?id=${id}`, + `/infra/demo03-student-erp/demo03-course/get?id=${id}`, ); } @@ -106,32 +127,43 @@ export function getDemo03Course(id: number) { /** 获得学生班级分页 */ export function getDemo03GradePage(params: PageParam) { return requestClient.get>( - `/infra/demo03-student/demo03-grade/page`, - { - params, - }, + `/infra/demo03-student-erp/demo03-grade/page`, + { params }, ); } /** 新增学生班级 */ export function createDemo03Grade(data: Demo03StudentApi.Demo03Grade) { - return requestClient.post(`/infra/demo03-student/demo03-grade/create`, data); + return requestClient.post( + `/infra/demo03-student-erp/demo03-grade/create`, + data, + ); } /** 修改学生班级 */ export function updateDemo03Grade(data: Demo03StudentApi.Demo03Grade) { - return requestClient.put(`/infra/demo03-student/demo03-grade/update`, data); + return requestClient.put( + `/infra/demo03-student-erp/demo03-grade/update`, + data, + ); } /** 删除学生班级 */ export function deleteDemo03Grade(id: number) { return requestClient.delete( - `/infra/demo03-student/demo03-grade/delete?id=${id}`, + `/infra/demo03-student-erp/demo03-grade/delete?id=${id}`, + ); +} + +/** 批量删除学生班级 */ +export function deleteDemo03GradeList(ids: number[]) { + return requestClient.delete( + `/infra/demo03-student-erp/demo03-grade/delete-list?ids=${ids.join(',')}`, ); } /** 获得学生班级 */ export function getDemo03Grade(id: number) { return requestClient.get( - `/infra/demo03-student/demo03-grade/get?id=${id}`, + `/infra/demo03-student-erp/demo03-grade/get?id=${id}`, ); } diff --git a/apps/web-ele/src/api/infra/demo/demo03/inner/index.ts b/apps/web-ele/src/api/infra/demo/demo03/inner/index.ts index a83cf4215..76b18fc01 100644 --- a/apps/web-ele/src/api/infra/demo/demo03/inner/index.ts +++ b/apps/web-ele/src/api/infra/demo/demo03/inner/index.ts @@ -1,3 +1,5 @@ +import type { Dayjs } from 'dayjs'; + import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; @@ -24,7 +26,7 @@ export namespace Demo03StudentApi { id: number; // 编号 name?: string; // 名字 sex?: number; // 性别 - birthday?: Date; // 出生日期 + birthday?: Dayjs | string; // 出生日期 description?: string; // 简介 demo03courses?: Demo03Course[]; demo03grade?: Demo03Grade; @@ -34,7 +36,7 @@ export namespace Demo03StudentApi { /** 查询学生分页 */ export function getDemo03StudentPage(params: PageParam) { return requestClient.get>( - '/infra/demo03-student/page', + '/infra/demo03-student-inner/page', { params }, ); } @@ -42,28 +44,38 @@ export function getDemo03StudentPage(params: PageParam) { /** 查询学生详情 */ export function getDemo03Student(id: number) { return requestClient.get( - `/infra/demo03-student/get?id=${id}`, + `/infra/demo03-student-inner/get?id=${id}`, ); } /** 新增学生 */ export function createDemo03Student(data: Demo03StudentApi.Demo03Student) { - return requestClient.post('/infra/demo03-student/create', data); + return requestClient.post('/infra/demo03-student-inner/create', data); } /** 修改学生 */ export function updateDemo03Student(data: Demo03StudentApi.Demo03Student) { - return requestClient.put('/infra/demo03-student/update', data); + return requestClient.put('/infra/demo03-student-inner/update', data); } /** 删除学生 */ export function deleteDemo03Student(id: number) { - return requestClient.delete(`/infra/demo03-student/delete?id=${id}`); + return requestClient.delete(`/infra/demo03-student-inner/delete?id=${id}`); +} + +/** 批量删除学生 */ +export function deleteDemo03StudentList(ids: number[]) { + return requestClient.delete( + `/infra/demo03-student-inner/delete-list?ids=${ids.join(',')}`, + ); } /** 导出学生 */ export function exportDemo03Student(params: any) { - return requestClient.download('/infra/demo03-student/export-excel', params); + return requestClient.download( + '/infra/demo03-student-inner/export-excel', + params, + ); } // ==================== 子表(学生课程) ==================== @@ -71,7 +83,7 @@ export function exportDemo03Student(params: any) { /** 获得学生课程列表 */ export function getDemo03CourseListByStudentId(studentId: number) { return requestClient.get( - `/infra/demo03-student/demo03-course/list-by-student-id?studentId=${studentId}`, + `/infra/demo03-student-inner/demo03-course/list-by-student-id?studentId=${studentId}`, ); } @@ -80,6 +92,6 @@ export function getDemo03CourseListByStudentId(studentId: number) { /** 获得学生班级 */ export function getDemo03GradeByStudentId(studentId: number) { return requestClient.get( - `/infra/demo03-student/demo03-grade/get-by-student-id?studentId=${studentId}`, + `/infra/demo03-student-inner/demo03-grade/get-by-student-id?studentId=${studentId}`, ); } diff --git a/apps/web-ele/src/api/infra/demo/demo03/normal/index.ts b/apps/web-ele/src/api/infra/demo/demo03/normal/index.ts index a04a919e9..4d22e2e27 100644 --- a/apps/web-ele/src/api/infra/demo/demo03/normal/index.ts +++ b/apps/web-ele/src/api/infra/demo/demo03/normal/index.ts @@ -36,7 +36,7 @@ export namespace Demo03StudentApi { /** 查询学生分页 */ export function getDemo03StudentPage(params: PageParam) { return requestClient.get>( - '/infra/demo03-student/page', + '/infra/demo03-student-normal/page', { params }, ); } @@ -44,28 +44,38 @@ export function getDemo03StudentPage(params: PageParam) { /** 查询学生详情 */ export function getDemo03Student(id: number) { return requestClient.get( - `/infra/demo03-student/get?id=${id}`, + `/infra/demo03-student-normal/get?id=${id}`, ); } /** 新增学生 */ export function createDemo03Student(data: Demo03StudentApi.Demo03Student) { - return requestClient.post('/infra/demo03-student/create', data); + return requestClient.post('/infra/demo03-student-normal/create', data); } /** 修改学生 */ export function updateDemo03Student(data: Demo03StudentApi.Demo03Student) { - return requestClient.put('/infra/demo03-student/update', data); + return requestClient.put('/infra/demo03-student-normal/update', data); } /** 删除学生 */ export function deleteDemo03Student(id: number) { - return requestClient.delete(`/infra/demo03-student/delete?id=${id}`); + return requestClient.delete(`/infra/demo03-student-normal/delete?id=${id}`); +} + +/** 批量删除学生 */ +export function deleteDemo03StudentList(ids: number[]) { + return requestClient.delete( + `/infra/demo03-student-normal/delete-list?ids=${ids.join(',')}`, + ); } /** 导出学生 */ export function exportDemo03Student(params: any) { - return requestClient.download('/infra/demo03-student/export-excel', params); + return requestClient.download( + '/infra/demo03-student-normal/export-excel', + params, + ); } // ==================== 子表(学生课程) ==================== @@ -73,7 +83,7 @@ export function exportDemo03Student(params: any) { /** 获得学生课程列表 */ export function getDemo03CourseListByStudentId(studentId: number) { return requestClient.get( - `/infra/demo03-student/demo03-course/list-by-student-id?studentId=${studentId}`, + `/infra/demo03-student-normal/demo03-course/list-by-student-id?studentId=${studentId}`, ); } @@ -82,6 +92,6 @@ export function getDemo03CourseListByStudentId(studentId: number) { /** 获得学生班级 */ export function getDemo03GradeByStudentId(studentId: number) { return requestClient.get( - `/infra/demo03-student/demo03-grade/get-by-student-id?studentId=${studentId}`, + `/infra/demo03-student-normal/demo03-grade/get-by-student-id?studentId=${studentId}`, ); } diff --git a/apps/web-ele/src/views/infra/demo/demo01/data.ts b/apps/web-ele/src/views/infra/demo/demo01/data.ts new file mode 100644 index 000000000..b621b9708 --- /dev/null +++ b/apps/web-ele/src/views/infra/demo/demo01/data.ts @@ -0,0 +1,149 @@ +import type { VbenFormSchema } from '#/adapter/form'; +import type { VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { Demo01ContactApi } from '#/api/infra/demo/demo01'; + +import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; + +/** 新增/修改的表单 */ +export function useFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'id', + component: 'Input', + dependencies: { + triggerFields: [''], + show: () => false, + }, + }, + { + fieldName: 'name', + label: '名字', + rules: 'required', + component: 'Input', + componentProps: { + placeholder: '请输入名字', + }, + }, + { + fieldName: 'sex', + label: '性别', + rules: 'required', + component: 'RadioGroup', + componentProps: { + options: getDictOptions(DICT_TYPE.SYSTEM_USER_SEX, 'number'), + buttonStyle: 'solid', + optionType: 'button', + }, + }, + { + fieldName: 'birthday', + label: '出生年', + rules: 'required', + component: 'DatePicker', + componentProps: { + showTime: true, + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + }, + }, + { + fieldName: 'description', + label: '简介', + rules: 'required', + component: 'RichTextarea', + }, + { + fieldName: 'avatar', + label: '头像', + component: 'ImageUpload', + }, + ]; +} + +/** 列表的搜索表单 */ +export function useGridFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'name', + label: '名字', + component: 'Input', + componentProps: { + allowClear: true, + placeholder: '请输入名字', + }, + }, + { + fieldName: 'sex', + label: '性别', + component: 'Select', + componentProps: { + allowClear: true, + options: getDictOptions(DICT_TYPE.SYSTEM_USER_SEX, 'number'), + placeholder: '请选择性别', + }, + }, + { + fieldName: 'createTime', + label: '创建时间', + component: 'RangePicker', + componentProps: { + ...getRangePickerDefaultProps(), + allowClear: true, + }, + }, + ]; +} + +/** 列表的字段 */ +export function useGridColumns(): VxeTableGridOptions['columns'] { + return [ + { type: 'checkbox', width: 40 }, + { + field: 'id', + title: '编号', + minWidth: 120, + }, + { + field: 'name', + title: '名字', + minWidth: 120, + }, + { + field: 'sex', + title: '性别', + minWidth: 120, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.SYSTEM_USER_SEX }, + }, + }, + { + field: 'birthday', + title: '出生年', + minWidth: 120, + formatter: 'formatDateTime', + }, + { + field: 'description', + title: '简介', + minWidth: 120, + }, + { + field: 'avatar', + title: '头像', + minWidth: 120, + }, + { + field: 'createTime', + title: '创建时间', + minWidth: 120, + formatter: 'formatDateTime', + }, + { + title: '操作', + width: 200, + fixed: 'right', + slots: { default: 'actions' }, + }, + ]; +} diff --git a/apps/web-ele/src/views/infra/demo/demo01/index.vue b/apps/web-ele/src/views/infra/demo/demo01/index.vue new file mode 100644 index 000000000..552fc73a3 --- /dev/null +++ b/apps/web-ele/src/views/infra/demo/demo01/index.vue @@ -0,0 +1,185 @@ + + + diff --git a/apps/web-ele/src/views/infra/demo/demo01/modules/form.vue b/apps/web-ele/src/views/infra/demo/demo01/modules/form.vue new file mode 100644 index 000000000..943b97698 --- /dev/null +++ b/apps/web-ele/src/views/infra/demo/demo01/modules/form.vue @@ -0,0 +1,91 @@ + + + diff --git a/apps/web-ele/src/views/system/user/index.vue b/apps/web-ele/src/views/system/user/index.vue index 7b0417e36..51776e637 100644 --- a/apps/web-ele/src/views/system/user/index.vue +++ b/apps/web-ele/src/views/system/user/index.vue @@ -10,7 +10,7 @@ import { downloadFileFromBlobPart } from '@vben/utils'; import { ElLoading, ElMessage } from 'element-plus'; -import { useVbenVxeGrid } from '#/adapter/vxe-table'; +import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { deleteUser, exportUser, @@ -18,7 +18,6 @@ import { updateUserStatus, } from '#/api/system/user'; import { DocAlert } from '#/components/doc-alert'; -import { ACTION_ICON, TableAction } from '#/components/table-action'; import { $t } from '#/locales'; import { DICT_TYPE, getDictLabel } from '#/utils';