perf: 【ANTD】优化代码生成示例 demo03 normal
parent
92e65f34bf
commit
11316a7c76
|
@ -36,7 +36,7 @@ export namespace Demo03StudentApi {
|
||||||
/** 查询学生分页 */
|
/** 查询学生分页 */
|
||||||
export function getDemo03StudentPage(params: PageParam) {
|
export function getDemo03StudentPage(params: PageParam) {
|
||||||
return requestClient.get<PageResult<Demo03StudentApi.Demo03Student>>(
|
return requestClient.get<PageResult<Demo03StudentApi.Demo03Student>>(
|
||||||
'/infra/demo03-student/page',
|
'/infra/demo03-student-normal/page',
|
||||||
{ params },
|
{ params },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -44,28 +44,38 @@ export function getDemo03StudentPage(params: PageParam) {
|
||||||
/** 查询学生详情 */
|
/** 查询学生详情 */
|
||||||
export function getDemo03Student(id: number) {
|
export function getDemo03Student(id: number) {
|
||||||
return requestClient.get<Demo03StudentApi.Demo03Student>(
|
return requestClient.get<Demo03StudentApi.Demo03Student>(
|
||||||
`/infra/demo03-student/get?id=${id}`,
|
`/infra/demo03-student-normal/get?id=${id}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 新增学生 */
|
/** 新增学生 */
|
||||||
export function createDemo03Student(data: Demo03StudentApi.Demo03Student) {
|
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) {
|
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) {
|
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 deleteDemo03StudentByIds(ids: number[]) {
|
||||||
|
return requestClient.delete(
|
||||||
|
`/infra/demo03-student-normal/delete-batch?ids=${ids.join(',')}`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 导出学生 */
|
/** 导出学生 */
|
||||||
export function exportDemo03Student(params: any) {
|
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) {
|
export function getDemo03CourseListByStudentId(studentId: number) {
|
||||||
return requestClient.get<Demo03StudentApi.Demo03Course[]>(
|
return requestClient.get<Demo03StudentApi.Demo03Course[]>(
|
||||||
`/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) {
|
export function getDemo03GradeByStudentId(studentId: number) {
|
||||||
return requestClient.get<Demo03StudentApi.Demo03Grade>(
|
return requestClient.get<Demo03StudentApi.Demo03Grade>(
|
||||||
`/infra/demo03-student/demo03-grade/get-by-student-id?studentId=${studentId}`,
|
`/infra/demo03-student-normal/demo03-grade/get-by-student-id?studentId=${studentId}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,13 @@ async function onDelete(row: Demo01ContactApi.Demo01Contact) {
|
||||||
|
|
||||||
const deleteIds = ref<number[]>([]); // 待删除示例联系人 ID
|
const deleteIds = ref<number[]>([]); // 待删除示例联系人 ID
|
||||||
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
||||||
|
function setDeleteIds({
|
||||||
|
records,
|
||||||
|
}: {
|
||||||
|
records: Demo01ContactApi.Demo01Contact[];
|
||||||
|
}) {
|
||||||
|
deleteIds.value = records.map((item) => item.id);
|
||||||
|
}
|
||||||
/** 批量删除示例联系人 */
|
/** 批量删除示例联系人 */
|
||||||
async function onDeleteBatch() {
|
async function onDeleteBatch() {
|
||||||
const hideLoading = message.loading({
|
const hideLoading = message.loading({
|
||||||
|
@ -133,20 +140,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
||||||
},
|
},
|
||||||
} as VxeTableGridOptions<Demo01ContactApi.Demo01Contact>,
|
} as VxeTableGridOptions<Demo01ContactApi.Demo01Contact>,
|
||||||
gridEvents: {
|
gridEvents: {
|
||||||
checkboxAll: ({
|
checkboxAll: setDeleteIds,
|
||||||
records,
|
checkboxChange: setDeleteIds,
|
||||||
}: {
|
|
||||||
records: Demo01ContactApi.Demo01Contact[];
|
|
||||||
}) => {
|
|
||||||
deleteIds.value = records.map((item) => item.id);
|
|
||||||
},
|
|
||||||
checkboxChange: ({
|
|
||||||
records,
|
|
||||||
}: {
|
|
||||||
records: Demo01ContactApi.Demo01Contact[];
|
|
||||||
}) => {
|
|
||||||
deleteIds.value = records.map((item) => item.id);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -68,6 +68,13 @@ async function onDelete(row: Demo03StudentApi.Demo03Course) {
|
||||||
|
|
||||||
const deleteIds = ref<number[]>([]); // 待删除学生课程 ID
|
const deleteIds = ref<number[]>([]); // 待删除学生课程 ID
|
||||||
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
||||||
|
function setDeleteIds({
|
||||||
|
records,
|
||||||
|
}: {
|
||||||
|
records: Demo03StudentApi.Demo03Course[];
|
||||||
|
}) {
|
||||||
|
deleteIds.value = records.map((item) => item.id);
|
||||||
|
}
|
||||||
/** 批量删除学生课程 */
|
/** 批量删除学生课程 */
|
||||||
async function onDeleteBatch() {
|
async function onDeleteBatch() {
|
||||||
const hideLoading = message.loading({
|
const hideLoading = message.loading({
|
||||||
|
@ -136,20 +143,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
||||||
},
|
},
|
||||||
} as VxeTableGridOptions<Demo03StudentApi.Demo03Course>,
|
} as VxeTableGridOptions<Demo03StudentApi.Demo03Course>,
|
||||||
gridEvents: {
|
gridEvents: {
|
||||||
checkboxAll: ({
|
checkboxAll: setDeleteIds,
|
||||||
records,
|
checkboxChange: setDeleteIds,
|
||||||
}: {
|
|
||||||
records: Demo03StudentApi.Demo03Course[];
|
|
||||||
}) => {
|
|
||||||
deleteIds.value = records.map((item) => item.id);
|
|
||||||
},
|
|
||||||
checkboxChange: ({
|
|
||||||
records,
|
|
||||||
}: {
|
|
||||||
records: Demo03StudentApi.Demo03Course[];
|
|
||||||
}) => {
|
|
||||||
deleteIds.value = records.map((item) => item.id);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,13 @@ async function onDelete(row: Demo03StudentApi.Demo03Grade) {
|
||||||
|
|
||||||
const deleteIds = ref<number[]>([]); // 待删除学生班级 ID
|
const deleteIds = ref<number[]>([]); // 待删除学生班级 ID
|
||||||
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
||||||
|
function setDeleteIds({
|
||||||
|
records,
|
||||||
|
}: {
|
||||||
|
records: Demo03StudentApi.Demo03Grade[];
|
||||||
|
}) {
|
||||||
|
deleteIds.value = records.map((item) => item.id);
|
||||||
|
}
|
||||||
/** 批量删除学生班级 */
|
/** 批量删除学生班级 */
|
||||||
async function onDeleteBatch() {
|
async function onDeleteBatch() {
|
||||||
const hideLoading = message.loading({
|
const hideLoading = message.loading({
|
||||||
|
@ -136,16 +143,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
||||||
},
|
},
|
||||||
} as VxeTableGridOptions<Demo03StudentApi.Demo03Grade>,
|
} as VxeTableGridOptions<Demo03StudentApi.Demo03Grade>,
|
||||||
gridEvents: {
|
gridEvents: {
|
||||||
checkboxAll: ({ records }: { records: Demo03StudentApi.Demo03Grade[] }) => {
|
checkboxAll: setDeleteIds,
|
||||||
deleteIds.value = records.map((item) => item.id);
|
checkboxChange: setDeleteIds,
|
||||||
},
|
|
||||||
checkboxChange: ({
|
|
||||||
records,
|
|
||||||
}: {
|
|
||||||
records: Demo03StudentApi.Demo03Grade[];
|
|
||||||
}) => {
|
|
||||||
deleteIds.value = records.map((item) => item.id);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,7 @@ export function useGridColumns(
|
||||||
onActionClick?: OnActionClickFn<Demo03StudentApi.Demo03Student>,
|
onActionClick?: OnActionClickFn<Demo03StudentApi.Demo03Student>,
|
||||||
): VxeTableGridOptions<Demo03StudentApi.Demo03Student>['columns'] {
|
): VxeTableGridOptions<Demo03StudentApi.Demo03Student>['columns'] {
|
||||||
return [
|
return [
|
||||||
|
{ type: 'checkbox', width: 40 },
|
||||||
{
|
{
|
||||||
field: 'id',
|
field: 'id',
|
||||||
title: '编号',
|
title: '编号',
|
||||||
|
|
|
@ -5,17 +5,18 @@ import type {
|
||||||
} from '#/adapter/vxe-table';
|
} from '#/adapter/vxe-table';
|
||||||
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
|
import type { Demo03StudentApi } from '#/api/infra/demo/demo03/normal';
|
||||||
|
|
||||||
import { h } from 'vue';
|
import { computed, h, ref } from 'vue';
|
||||||
|
|
||||||
import { Page, useVbenModal } from '@vben/common-ui';
|
import { Page, useVbenModal } from '@vben/common-ui';
|
||||||
import { Download, Plus } from '@vben/icons';
|
import { Download, Plus, Trash2 } from '@vben/icons';
|
||||||
import { downloadFileFromBlobPart } from '@vben/utils';
|
import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';
|
||||||
|
|
||||||
import { Button, message } from 'ant-design-vue';
|
import { Button, message } from 'ant-design-vue';
|
||||||
|
|
||||||
import { useVbenVxeGrid } from '#/adapter/vxe-table';
|
import { useVbenVxeGrid } from '#/adapter/vxe-table';
|
||||||
import {
|
import {
|
||||||
deleteDemo03Student,
|
deleteDemo03Student,
|
||||||
|
deleteDemo03StudentByIds,
|
||||||
exportDemo03Student,
|
exportDemo03Student,
|
||||||
getDemo03StudentPage,
|
getDemo03StudentPage,
|
||||||
} from '#/api/infra/demo/demo03/normal';
|
} from '#/api/infra/demo/demo03/normal';
|
||||||
|
@ -55,7 +56,32 @@ async function onDelete(row: Demo03StudentApi.Demo03Student) {
|
||||||
await deleteDemo03Student(row.id as number);
|
await deleteDemo03Student(row.id as number);
|
||||||
message.success($t('ui.actionMessage.deleteSuccess', [row.id]));
|
message.success($t('ui.actionMessage.deleteSuccess', [row.id]));
|
||||||
onRefresh();
|
onRefresh();
|
||||||
} catch {
|
} finally {
|
||||||
|
hideLoading();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const deleteIds = ref<number[]>([]); // 待删除学生 ID
|
||||||
|
const showDeleteBatchBtn = computed(() => isEmpty(deleteIds.value));
|
||||||
|
function setDeleteIds({
|
||||||
|
records,
|
||||||
|
}: {
|
||||||
|
records: Demo03StudentApi.Demo03Student[];
|
||||||
|
}) {
|
||||||
|
deleteIds.value = records.map((item) => item.id);
|
||||||
|
}
|
||||||
|
/** 批量删除学生 */
|
||||||
|
async function onDeleteBatch() {
|
||||||
|
const hideLoading = message.loading({
|
||||||
|
content: $t('ui.actionMessage.deleting'),
|
||||||
|
duration: 0,
|
||||||
|
key: 'action_process_msg',
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
await deleteDemo03StudentByIds(deleteIds.value);
|
||||||
|
message.success($t('ui.actionMessage.deleteSuccess'));
|
||||||
|
onRefresh();
|
||||||
|
} finally {
|
||||||
hideLoading();
|
hideLoading();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,6 +139,10 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
||||||
search: true,
|
search: true,
|
||||||
},
|
},
|
||||||
} as VxeTableGridOptions<Demo03StudentApi.Demo03Student>,
|
} as VxeTableGridOptions<Demo03StudentApi.Demo03Student>,
|
||||||
|
gridEvents: {
|
||||||
|
checkboxAll: setDeleteIds,
|
||||||
|
checkboxChange: setDeleteIds,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -139,6 +169,17 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
||||||
>
|
>
|
||||||
{{ $t('ui.actionTitle.export') }}
|
{{ $t('ui.actionTitle.export') }}
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button
|
||||||
|
:icon="h(Trash2)"
|
||||||
|
type="primary"
|
||||||
|
danger
|
||||||
|
class="ml-2"
|
||||||
|
:disabled="showDeleteBatchBtn"
|
||||||
|
@click="onDeleteBatch"
|
||||||
|
v-access:code="['infra:demo03-student:delete']"
|
||||||
|
>
|
||||||
|
批量删除
|
||||||
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
|
@ -11,6 +11,13 @@ const props = defineProps<{
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const [Form, formApi] = useVbenForm({
|
const [Form, formApi] = useVbenForm({
|
||||||
|
commonConfig: {
|
||||||
|
componentProps: {
|
||||||
|
class: 'w-full',
|
||||||
|
},
|
||||||
|
formItemClass: 'col-span-2',
|
||||||
|
labelWidth: 80,
|
||||||
|
},
|
||||||
layout: 'horizontal',
|
layout: 'horizontal',
|
||||||
schema: useDemo03GradeFormSchema(),
|
schema: useDemo03GradeFormSchema(),
|
||||||
showDefaultActions: false,
|
showDefaultActions: false,
|
||||||
|
|
|
@ -61,8 +61,8 @@ const [Modal, modalApi] = useVbenModal({
|
||||||
// 提交表单
|
// 提交表单
|
||||||
const data = (await formApi.getValues()) as Demo03StudentApi.Demo03Student;
|
const data = (await formApi.getValues()) as Demo03StudentApi.Demo03Student;
|
||||||
// 拼接子表的数据
|
// 拼接子表的数据
|
||||||
data.demo03courses = demo03CourseFormRef.value?.getData();
|
data.demo03Courses = demo03CourseFormRef.value?.getData();
|
||||||
data.demo03grade = await demo03GradeFormRef.value?.getValues();
|
data.demo03Grade = await demo03GradeFormRef.value?.getValues();
|
||||||
try {
|
try {
|
||||||
await (formData.value?.id
|
await (formData.value?.id
|
||||||
? updateDemo03Student(data)
|
? updateDemo03Student(data)
|
||||||
|
@ -80,7 +80,6 @@ const [Modal, modalApi] = useVbenModal({
|
||||||
formData.value = undefined;
|
formData.value = undefined;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
let data = modalApi.getData<Demo03StudentApi.Demo03Student>();
|
let data = modalApi.getData<Demo03StudentApi.Demo03Student>();
|
||||||
if (!data) {
|
if (!data) {
|
||||||
|
|
Loading…
Reference in New Issue