From c097849f6338059f72f548bd129f7b3dac09eaec Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Thu, 12 Sep 2024 14:28:35 +0800
Subject: [PATCH] =?UTF-8?q?:rocket:=20feat(=E6=96=B0=E5=A2=9E):=20?=
=?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=94=9F=E6=88=90=E5=86=85=E5=AE=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Bunny.Generate/Bunny.Generate.csproj | 8 +-
Bunny.Generate/WebTemplate/columns.tt | 24 ++++++
Bunny.Generate/WebTemplate/columnsEnum.ts | 8 ++
Bunny.Generate/WebTemplate/handle.tt | 92 +++++++++++++++++++++++
4 files changed, 126 insertions(+), 6 deletions(-)
create mode 100644 Bunny.Generate/WebTemplate/columns.tt
create mode 100644 Bunny.Generate/WebTemplate/columnsEnum.ts
create mode 100644 Bunny.Generate/WebTemplate/handle.tt
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());
+ }
+};