diff --git a/Bunny.Generate/Bunny.Generate.csproj b/Bunny.Generate/Bunny.Generate.csproj index db7cd47..9fec2a9 100644 --- a/Bunny.Generate/Bunny.Generate.csproj +++ b/Bunny.Generate/Bunny.Generate.csproj @@ -24,15 +24,11 @@ Controller.cs - TextTemplatingFileGenerator - IService.cs + TextTemplatingFileGenerator + IService.cs - - - - diff --git a/Bunny.Generate/WebTemplate/columns.tt b/Bunny.Generate/WebTemplate/columns.tt new file mode 100644 index 0000000..be9ade1 --- /dev/null +++ b/Bunny.Generate/WebTemplate/columns.tt @@ -0,0 +1,24 @@ +import { reactive } from 'vue'; +import type { FormRules } from 'element-plus'; +import { ColumnsEnum } from '@/enum/columnsEnum'; + +// 字段 +export const columns = [ + { type: 'selection' }, + { label: ColumnsEnum.tableId, prop: 'id' }, + + { label: ColumnsEnum.tableCreateTime, prop: 'createTime', sortable: true, width: 160 }, + { label: ColumnsEnum.tableUpdateTime, prop: 'updateTime', sortable: true, width: 160 }, + { label: ColumnsEnum.tableCreateUser, prop: 'createUser', width: 100, slot: 'createUser' }, + { label: ColumnsEnum.tableUpdateUser, prop: 'updateUser', width: 100, slot: 'updateUser' }, + { label: ColumnsEnum.tableOperation, prop: 'operation', slot: 'operation', width: 150, fixed: 'right' }, +]; + +// 规则 +export const rules = reactive({ + nickName: [{ required: true, message: '昵称不能为空', trigger: 'blur' }], + email: [ + { required: true, message: '邮件不能为空', trigger: 'blur' }, + { type: 'email', message: '邮箱格式错误' }, + ], +}); diff --git a/Bunny.Generate/WebTemplate/columnsEnum.ts b/Bunny.Generate/WebTemplate/columnsEnum.ts new file mode 100644 index 0000000..9d28cfb --- /dev/null +++ b/Bunny.Generate/WebTemplate/columnsEnum.ts @@ -0,0 +1,8 @@ +export enum ColumnsEnum { + tableId = '主键', + tableCreateTime = '创建时间', + tableUpdateTime = '更新时间', + tableCreateUser = '创建用户', + tableUpdateUser = '更新用户', + tableOperation = '操作', +} diff --git a/Bunny.Generate/WebTemplate/handle.tt b/Bunny.Generate/WebTemplate/handle.tt new file mode 100644 index 0000000..5c94222 --- /dev/null +++ b/Bunny.Generate/WebTemplate/handle.tt @@ -0,0 +1,92 @@ +import { useWebUserStore } from '@/store/user/webUser'; +import { reactive, ref } from 'vue'; +import type { WebUser, WebUserUpdateForm } from '../../../../../../types/store/user/webUser'; +import { messageBox } from '@/utils/message'; + +const webUserStore = useWebUserStore(); +export const ids = ref([]); +export const updateForm = reactive({ + +}); + +/** + * * 获取用户数据 + */ +export const getDataList = async () => { + webUserStore.loading = true; + await webUserStore.getUserinfoList(); + webUserStore.loading = false; +}; + +/** + * * 当前页改变时 + */ +export const onCurrentPageChange = async (value: number) => { + webUserStore.pagination.currentPage = value; + await getDataList(); +}; + +/** + * * 当分页发生变化 + * @param value + */ +export const onPageSizeChange = (value: number) => { + webUserStore.pagination.pageSize = value; + getDataList().then(); +}; + +/** + * * 选择行 + * @param itemList + */ +export const handleSelectionChange = (itemList: WebUser[]) => { + ids.value = itemList.map(item => item.id); +}; + +/** + * * 添加操作 + */ +export const onAdd = () => { + webUserStore.addDialogVisible = true; +}; + +/** + * * 当更新时 + */ +export const onUpdate = ({ row }): void => { + // 合并数据 + Object.assign(updateForm, row); + // 设置基础数据格式 + updateForm.sex = row.sex === '女' ? 0 : 1; + // 打开弹窗 + webUserStore.updateDialogVisible = true; +}; + +/** + * * 当删除时 + */ +export const onDelete = async ({ row }) => { + const result = await webUserStore.deleteUserinfo([row.id]).then(); + // 成功刷新数据 + result && (await webUserStore.getUserinfoList()); +}; + +/** + * * 批量删除 + */ +export const onDeleteBatch = async () => { + const isConfirm = await messageBox({ + message: '是否确认批量删除', + title: '删除警告', + showMessage: false, + confirmMessage: '删除成功', + cancelMessage: '取消删除', + }); + // 确认删除时执行 + if (isConfirm) { + const result = await webUserStore.deleteUserinfo(ids.value); + + // 成功刷新数据 + result && (await webUserStore.getUserinfoList()); + } +};