😎增加账号、菜单、机构、职位、字典值复制功能
This commit is contained in:
parent
7525ea2fa0
commit
85d02a8997
@ -17,7 +17,7 @@
|
||||
<PackageReference Include="AngleSharp" Version="1.1.2" />
|
||||
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
||||
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
||||
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.15.1" />
|
||||
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.15.2" />
|
||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.5.4" />
|
||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.5.4" />
|
||||
<PackageReference Include="Furion.Pure" Version="4.9.5.4" />
|
||||
@ -36,10 +36,10 @@
|
||||
<PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.8" />
|
||||
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.5.0" />
|
||||
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.7.0" />
|
||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.166" />
|
||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.167" />
|
||||
<PackageReference Include="SSH.NET" Version="2024.1.0" />
|
||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.4" />
|
||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1070" />
|
||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1071" />
|
||||
<PackageReference Include="UAParser" Version="3.1.47" />
|
||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||
</ItemGroup>
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -115,6 +115,9 @@
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysDictType/delete'" @click="handleDeleteDictData(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="复制">
|
||||
<el-button icon="ele-CopyDocument" text type="primary" v-auth="'sysDictType/add'" @click="openCopyDictData(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -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<VxeGridInstance>();
|
||||
const xGridDictData = ref<VxeGridInstance>();
|
||||
@ -287,7 +290,7 @@ const optionsDictData = useVxeTable<SysDictData>(
|
||||
{ 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}】?`, '提示', {
|
||||
|
||||
@ -62,12 +62,9 @@
|
||||
<ModifyRecord :data="row" />
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysMenu/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysMenu/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysMenu/update'" @click="handleEdit(row)"> 编辑 </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysMenu/delete'" @click="handleDelete(row)"> 删除 </el-button>
|
||||
<el-button icon="ele-CopyDocument" text type="primary" v-auth="'sysMenu/add'" @click="openCopyMenu(row)"> 复制 </el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -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<VxeGridInstance>();
|
||||
const editMenuRef = ref<InstanceType<typeof EditMenu>>();
|
||||
@ -117,7 +114,7 @@ const options = useVxeTable<SysMenu>(
|
||||
{ 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}】?`, '提示', {
|
||||
|
||||
@ -61,12 +61,9 @@
|
||||
<ModifyRecord :data="row" />
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" size="small" text type="primary" @click="handleEdit(row)" v-auth="'sysOrg/update'"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" size="small" text type="danger" @click="handleDelete(row)" v-auth="'sysOrg/delete'"></el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Edit" text type="primary" @click="handleEdit(row)" v-auth="'sysOrg/update'"> 编辑 </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" @click="handleDelete(row)" v-auth="'sysOrg/delete'"> 删除 </el-button>
|
||||
<el-button icon="ele-CopyDocument" text type="primary" @click="openCopyOrg(row)" v-auth="'sysOrg/add'"> 复制 </el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -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<VxeGridInstance>();
|
||||
const editOrgRef = ref<InstanceType<typeof EditOrg>>();
|
||||
@ -123,7 +120,7 @@ const options = useVxeTable<SysOrg>(
|
||||
{ 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}】?`, '提示', {
|
||||
|
||||
@ -45,12 +45,9 @@
|
||||
<ModifyRecord :data="row" />
|
||||
</template>
|
||||
<template #row_buttons="{ row }">
|
||||
<el-tooltip content="编辑" placement="top">
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPos/update'" @click="handleEdit(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPos/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-Edit" text type="primary" v-auth="'sysPos/update'" @click="handleEdit(row)"> 编辑 </el-button>
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysPos/delete'" @click="handleDelete(row)"> 删除 </el-button>
|
||||
<el-button icon="ele-CopyDocument" text type="primary" v-auth="'sysPos/add'" @click="openCopyMenu(row)"> 复制 </el-button>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</el-card>
|
||||
@ -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<VxeGridInstance>();
|
||||
const editPosRef = ref<InstanceType<typeof EditPos>>();
|
||||
@ -103,7 +100,7 @@ const options = useVxeTable<PagePosOutput>(
|
||||
{ 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}】?`, '提示', {
|
||||
|
||||
@ -80,6 +80,9 @@
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button icon="ele-Delete" text type="danger" v-auth="'sysUser/delete'" @click="handleDelete(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="复制" placement="top">
|
||||
<el-button icon="ele-CopyDocument" text type="primary" v-auth="'sysUser/add'" @click="openCopyMenu(row)"> </el-button>
|
||||
</el-tooltip>
|
||||
<el-button icon="ele-RefreshLeft" text type="danger" v-auth="'sysUser/resetPwd'" @click="resetQueryPwd(row)">重置密码</el-button>
|
||||
<el-button icon="ele-Unlock" text type="primary" v-auth="'sysUser/unlockLogin'" @click="handleUnlock(row)">解除锁定</el-button>
|
||||
</template>
|
||||
@ -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<VxeGridInstance>();
|
||||
const treeRef = ref<InstanceType<typeof OrgTree>>();
|
||||
// const treeRef = ref<InstanceType<typeof OrgTree>>();
|
||||
const editUserRef = ref<InstanceType<typeof EditUser>>();
|
||||
const state = reactive({
|
||||
treeData: [] as Array<SysOrg>,
|
||||
@ -154,7 +157,7 @@ const options = useVxeTable<UserOutput>(
|
||||
{ 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}】?`, '提示', {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user