diff --git a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
index 0b9ad045..25c51ba5 100644
--- a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
+++ b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
@@ -17,7 +17,7 @@
-
+
@@ -36,10 +36,10 @@
-
+
-
+
diff --git a/Web/package.json b/Web/package.json
index 868899fc..eb7c7206 100644
--- a/Web/package.json
+++ b/Web/package.json
@@ -2,7 +2,7 @@
"name": "admin.net.pro",
"type": "module",
"version": "2.4.33",
- "lastBuildTime": "2024.08.16",
+ "lastBuildTime": "2024.08.19",
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
"author": "zuohuaijun",
"license": "MIT",
@@ -41,7 +41,7 @@
"js-table2excel": "^1.1.2",
"jsplumb": "^2.15.6",
"lodash-es": "^4.17.21",
- "md-editor-v3": "^4.18.1",
+ "md-editor-v3": "^4.19.1",
"mitt": "^3.0.1",
"monaco-editor": "^0.50.0",
"mqtt": "^4.3.8",
@@ -64,7 +64,7 @@
"vue-demi": "0.14.6",
"vue-draggable-plus": "^0.5.3",
"vue-grid-layout": "3.0.0-beta1",
- "vue-i18n": "^9.13.1",
+ "vue-i18n": "^9.14.0",
"vue-json-pretty": "^2.4.0",
"vue-plugin-hiprint": "0.0.57-beta28",
"vue-router": "^4.4.3",
diff --git a/Web/src/views/system/dict/index.vue b/Web/src/views/system/dict/index.vue
index c8907361..25dc4c67 100644
--- a/Web/src/views/system/dict/index.vue
+++ b/Web/src/views/system/dict/index.vue
@@ -115,6 +115,9 @@
+
+
+
@@ -140,7 +143,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysDictTypeApi, SysDictDataApi } from '/@/api-services/api';
-import { SysDictType, PageDictTypeInput, SysDictData, PageDictDataInput } from '/@/api-services/models';
+import { SysDictType, PageDictTypeInput, SysDictData, PageDictDataInput, UpdateDictDataInput } from '/@/api-services/models';
const xGridDictType = ref();
const xGridDictData = ref();
@@ -287,7 +290,7 @@ const optionsDictData = useVxeTable(
{ field: 'orderNo', title: '排序', width: 80, showOverflow: 'tooltip' },
{ field: 'status', title: '状态', width: 80, showOverflow: 'tooltip', slots: { default: 'row_status' } },
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
- { title: '操作', fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
+ { title: '操作', fixed: 'right', width: 120, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
@@ -344,6 +347,14 @@ const handleEditDictData = (row: any) => {
editRefDictData.value?.openDialog(row);
};
+// 打开复制字典值页面
+const openCopyDictData = (row: any) => {
+ state.title = '复制字典值';
+ var copyRow = JSON.parse(JSON.stringify(row)) as UpdateDictDataInput;
+ copyRow.id = 0;
+ editRefDictData.value?.openDialog(copyRow);
+};
+
// 删除字典值
const handleDeleteDictData = (row: any) => {
ElMessageBox.confirm(`确定删除字典值:【${row.value}】?`, '提示', {
diff --git a/Web/src/views/system/menu/index.vue b/Web/src/views/system/menu/index.vue
index 595bf3f5..6375aae5 100644
--- a/Web/src/views/system/menu/index.vue
+++ b/Web/src/views/system/menu/index.vue
@@ -62,12 +62,9 @@
-
-
-
-
-
-
+ 编辑
+ 删除
+ 复制
@@ -88,7 +85,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysMenuApi } from '/@/api-services/api';
-import { SysMenu } from '/@/api-services/models';
+import { SysMenu, UpdateMenuInput } from '/@/api-services/models';
const xGrid = ref();
const editMenuRef = ref>();
@@ -117,7 +114,7 @@ const options = useVxeTable(
{ field: 'orderNo', title: '排序', width: 80, showOverflow: 'tooltip' },
{ field: 'status', title: '状态', width: 100, showOverflow: 'tooltip', slots: { default: 'row_status' } },
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
- { title: '操作', fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
+ { title: '操作', fixed: 'right', width: 210, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
@@ -170,6 +167,15 @@ const handleEdit = (row: any) => {
editMenuRef.value?.openDialog(row);
};
+// 打开复制页面
+const openCopyMenu = (row: any) => {
+ state.title = '复制菜单';
+ var copyRow = JSON.parse(JSON.stringify(row)) as UpdateMenuInput;
+ copyRow.id = 0;
+ copyRow.title = '';
+ editMenuRef.value?.openDialog(copyRow);
+};
+
// 删除当前行
const handleDelete = (row: any) => {
ElMessageBox.confirm(`确定删除菜单:【${row.title}】?`, '提示', {
diff --git a/Web/src/views/system/org/index.vue b/Web/src/views/system/org/index.vue
index a1178058..b937d65d 100644
--- a/Web/src/views/system/org/index.vue
+++ b/Web/src/views/system/org/index.vue
@@ -61,12 +61,9 @@
-
-
-
-
-
-
+ 编辑
+ 删除
+ 复制
@@ -91,7 +88,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysDictDataApi, SysOrgApi } from '/@/api-services';
-import { SysOrg } from '/@/api-services/models';
+import { SysOrg, UpdateOrgInput } from '/@/api-services/models';
const xGrid = ref();
const editOrgRef = ref>();
@@ -123,7 +120,7 @@ const options = useVxeTable(
{ field: 'orderNo', title: '排序', width: 80, showOverflow: 'tooltip' },
{ field: 'status', title: '状态', width: 80, showOverflow: 'tooltip', slots: { default: 'row_status' } },
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
- { title: '操作', fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
+ { title: '操作', fixed: 'right', width: 210, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
@@ -195,6 +192,15 @@ const handleEdit = (row: any) => {
editOrgRef.value?.openDialog(row);
};
+// 打开复制页面
+const openCopyOrg = (row: any) => {
+ state.title = '复制机构';
+ var copyRow = JSON.parse(JSON.stringify(row)) as UpdateOrgInput;
+ copyRow.id = 0;
+ copyRow.name = '';
+ editOrgRef.value?.openDialog(copyRow);
+};
+
// 删除
const handleDelete = (row: any) => {
ElMessageBox.confirm(`确定删除机构:【${row.name}】?`, '提示', {
diff --git a/Web/src/views/system/pos/index.vue b/Web/src/views/system/pos/index.vue
index 0e32ba6c..fc000c57 100644
--- a/Web/src/views/system/pos/index.vue
+++ b/Web/src/views/system/pos/index.vue
@@ -45,12 +45,9 @@
-
-
-
-
-
-
+ 编辑
+ 删除
+ 复制
@@ -71,7 +68,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysPosApi } from '/@/api-services/api';
-import { PagePosOutput, PagePosInput } from '/@/api-services/models';
+import { PagePosOutput, PagePosInput, UpdatePosInput } from '/@/api-services/models';
const xGrid = ref();
const editPosRef = ref>();
@@ -103,7 +100,7 @@ const options = useVxeTable(
{ field: 'orderNo', title: '排序', width: 80, showOverflow: 'tooltip' },
{ field: 'status', title: '状态', width: 80, showOverflow: 'tooltip', slots: { default: 'row_status' } },
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
- { title: '操作', fixed: 'right', width: 100, showOverflow: true, slots: { default: 'row_buttons' } },
+ { title: '操作', fixed: 'right', width: 210, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
@@ -157,6 +154,15 @@ const handleEdit = (row: any) => {
editPosRef.value?.openDialog(row);
};
+// 打开复制页面
+const openCopyMenu = (row: any) => {
+ state.title = '复制职位';
+ var copyRow = JSON.parse(JSON.stringify(row)) as UpdatePosInput;
+ copyRow.id = 0;
+ copyRow.name = '';
+ editPosRef.value?.openDialog(copyRow);
+};
+
// 删除
const handleDelete = (row: any) => {
ElMessageBox.confirm(`确定删除职位:【${row.name}】?`, '提示', {
diff --git a/Web/src/views/system/user/index.vue b/Web/src/views/system/user/index.vue
index 9ffa027e..ee3020da 100644
--- a/Web/src/views/system/user/index.vue
+++ b/Web/src/views/system/user/index.vue
@@ -80,6 +80,9 @@
+
+
+
重置密码
解除锁定
@@ -108,10 +111,10 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysUserApi, SysOrgApi } from '/@/api-services/api';
-import { SysOrg, PageTenantInput, UserOutput } from '/@/api-services/models';
+import { SysOrg, PageTenantInput, UserOutput, UpdateUserInput } from '/@/api-services/models';
const xGrid = ref();
-const treeRef = ref>();
+// const treeRef = ref>();
const editUserRef = ref>();
const state = reactive({
treeData: [] as Array,
@@ -154,7 +157,7 @@ const options = useVxeTable(
{ field: 'status', title: '状态', width: 80, showOverflow: 'tooltip', slots: { default: 'row_status' } },
{ field: 'orderNo', title: '排序', width: 80, showOverflow: 'tooltip' },
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
- { title: '操作', fixed: 'right', width: 280, showOverflow: true, slots: { default: 'row_buttons' } },
+ { title: '操作', fixed: 'right', width: 300, showOverflow: true, slots: { default: 'row_buttons' } },
],
},
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
@@ -222,6 +225,15 @@ const handleEdit = (row: any) => {
editUserRef.value?.openDialog(row);
};
+// 打开复制页面
+const openCopyMenu = (row: any) => {
+ state.title = '复制账号';
+ var copyRow = JSON.parse(JSON.stringify(row)) as UpdateUserInput;
+ copyRow.id = 0;
+ copyRow.account = '';
+ editUserRef.value?.openDialog(copyRow);
+};
+
// 删除
const handleDelete = (row: any) => {
ElMessageBox.confirm(`确定删除账号:【${row.account}】?`, '提示', {