Files
mp-10584/src/utils/plug-uitl.ts
赵忠林 482e2a2718 chore(config): 添加项目配置文件和隐私协议
- 添加 .editorconfig 文件统一代码风格
- 添加 .env.development 和 .env.example 环境配置文件
- 添加 .eslintignore 和 .eslintrc.js 代码检查配置
- 添加 .gitignore 版本控制忽略文件配置
- 添加 .prettierignore 格式化忽略配置
- 添加隐私协议HTML文件
- 添加API密钥管理组件基础结构
2026-01-26 14:05:01 +08:00

54 lines
1.4 KiB
TypeScript

import { createVNode } from 'vue';
import { Company } from '@/api/system/company/model';
import { message, Modal } from 'ant-design-vue';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { messageLoading } from 'ele-admin-pro';
import { clone } from '@/api/system/menu';
import useFormData from '@/utils/use-form-data';
import { Menu } from '@/api/system/menu/model';
// 表单数据
const { form } = useFormData<Menu>({
title: '',
icon: '',
path: '',
component: '',
tenantId: undefined,
tenantName: ''
});
/**
* 一键克隆
* @param item
*/
export const onClone = (item: Company) => {
const tenantId = Number(localStorage.getItem('TenantId'));
if (tenantId == item.tenantId) {
message.error('不能克隆自己');
return false;
}
// 提交状态
Modal.confirm({
title: '确认操作吗?',
content: `将复制【${item.tenantName}】的所有菜单和权限(不含数据),原有企业数据不会删除。`,
icon: createVNode(ExclamationCircleOutlined),
maskClosable: true,
onOk: () => {
const hide = messageLoading('模块安装中请稍等...', 0);
form.tenantId = item.tenantId;
clone(form)
.then((msg) => {
hide();
message.success(msg);
setTimeout(() => {
window.open('/', '_self');
}, 1000);
})
.catch((e) => {
hide();
message.error(e.message);
});
}
});
};