51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
import DisableDevtool from 'disable-devtool';
|
||
import { ElMessageBox } from 'element-plus';
|
||
|
||
/**
|
||
* 安全警告的HTML模板, 使用Tailwind CSS样式
|
||
*/
|
||
const SECURITY_WARNING_TEMPLATE = `
|
||
<div class='flex flex-col items-center gap-4 p-2'>
|
||
<div class='text-red-500 dark:text-red-400'>
|
||
<i class='el-icon-warning text-2xl'></i>
|
||
</div>
|
||
<div class='text-center'>
|
||
<p class='text-base font-medium text-gray-900 dark:text-gray-100'>
|
||
不合规操作,系统将在5秒后自动关闭退出!
|
||
</p>
|
||
<p class='mt-2 text-sm text-gray-600 dark:text-gray-400'>
|
||
如您频繁此类操作,系统将记录上报。
|
||
</p>
|
||
</div>
|
||
</div>`;
|
||
|
||
/**
|
||
* Element Plus 消息框配置选项
|
||
*/
|
||
const ALERT_OPTIONS = {
|
||
type: 'error',
|
||
showClose: false,
|
||
center: true,
|
||
closeOnClickModal: false,
|
||
closeOnPressEscape: false,
|
||
dangerouslyUseHTMLString: true,
|
||
};
|
||
|
||
export default () => {
|
||
if (import.meta.env.VITE_APP_DEBUG_SWITCH === 'false') return;
|
||
|
||
const debugKey = import.meta.env.VITE_APP_DEBUG_KEY;
|
||
let flag = false;
|
||
DisableDevtool({
|
||
md5: DisableDevtool.md5(debugKey),
|
||
disableMenu: false,
|
||
ondevtoolopen: (type, next) => {
|
||
if (!flag) ElMessageBox.alert(SECURITY_WARNING_TEMPLATE, '安全警告', ALERT_OPTIONS);
|
||
flag = true;
|
||
setTimeout(() => {
|
||
next();
|
||
}, 5000);
|
||
},
|
||
});
|
||
};
|