feat: 新建连接视图.

This commit is contained in:
lijiahangmax
2023-12-17 17:56:10 +08:00
parent 5f485172e7
commit 856c80c28c
7 changed files with 608 additions and 529 deletions

View File

@@ -4,21 +4,20 @@
<div class="host-group-container">
<a-scrollbar>
<a-tree v-model:selected-keys="selectedGroup"
:data="hosts.groupTree"
:blockNode="true"
class="host-tree block-tree"
@select="chooseGroup">
:data="groupTree"
:blockNode="true">
<!-- 组内数量 -->
<template #extra="node">
<span class="node-host-count span-blue">{{ hosts?.treeNodes[node.key]?.length || 0 }}</span>
<span class="node-host-count span-blue">{{ treeNodes[node.key]?.length || 0 }}</span>
</template>
</a-tree>
</a-scrollbar>
</div>
<!-- 主机列表 -->
<host-list class="host-list"
:hostList="hosts.hostList"
empty-value="当前分组内无授权主机!" />
<host-list-view class="host-list"
:hostList="hostList"
empty-value="当前分组内无授权主机!" />
</div>
</template>
@@ -29,19 +28,28 @@
</script>
<script lang="ts" setup>
import type { AuthorizedHostQueryResponse } from '@/api/asset/asset-authorized-data';
import { ref } from 'vue';
import HostList from './host-list.vue';
import { computed } from 'vue';
import { HostQueryResponse } from '@/api/asset/host';
import { HostGroupQueryResponse } from '@/api/asset/host-group';
import HostListView from './host-list-view.vue';
const props = defineProps<{
hosts: AuthorizedHostQueryResponse
modelValue: number,
groupTree: Array<HostGroupQueryResponse>;
hostList: Array<HostQueryResponse>;
treeNodes: Record<string, Array<number>>;
}>();
const selectedGroup = ref([0]);
const emits = defineEmits(['update:modelValue']);
const chooseGroup = () => {
console.log(selectedGroup.value[0]);
};
const selectedGroup = computed({
get() {
return [props.modelValue];
},
set(e) {
emits('update:modelValue', e[0]);
}
});
</script>

View File

@@ -1,8 +1,115 @@
<template>
<!-- 主机列表 -->
<host-list class="list-view-container"
:hostList="hostList"
:empty-value="emptyValue" />
<div class="hosts-list-container">
<a-list size="large"
max-height="100%"
:hoverable="true"
:data="hostList">
<!-- 空数据 -->
<template #empty>
<a-empty>
<template #image>
<icon-desktop />
</template>
{{ emptyValue }}
</a-empty>
</template>
<!-- 数据 -->
<template #item="{ item }">
<a-list-item class="host-item-wrapper" @click="openTerminal(item)">
<div class="host-item">
<!-- 左侧图标-名称 -->
<div class="flex-center host-item-left">
<!-- 图标 -->
<span class="host-item-left-icon">
<icon-desktop />
</span>
<!-- 名称 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
:content="`${item.name} (${item.code})`">
<span class="host-item-text host-item-left-name">
{{ `${item.name} (${item.code})` }}
</span>
</a-tooltip>
</div>
<!-- 中间ip -->
<div class="flex-center host-item-center">
<!-- ip -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
:content="item.address">
<span class="host-item-text host-item-center-address">
{{ item.address }}
</span>
</a-tooltip>
</div>
<!-- 右侧tag-操作 -->
<div class="flex-center host-item-right">
<!-- tags -->
<div class="host-item-right-tags">
<template v-if="item.tags?.length">
<a-tag v-for="(tag, i) in item.tags"
class="host-item-text"
:key="tag.id"
:style="{
maxWidth: `calc(${100 / item.tags.length}% - ${i !== item.tags.length - 1 ? '8px' : '0px'})`,
marginRight: `${i !== item.tags.length - 1 ? '8px' : '0'}`,
}"
:color="dataColor(tag.name, tagColor)">
{{ tag.name }}
</a-tag>
</template>
</div>
<!-- 操作 -->
<div class="host-item-right-actions">
<!-- 连接主机 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
content="连接主机">
<div class="terminal-sidebar-icon-wrapper">
<div class="terminal-sidebar-icon" @click.stop="openTerminal(item)">
<icon-thunderbolt />
</div>
</div>
</a-tooltip>
<!-- 连接设置 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
content="连接设置">
<div class="terminal-sidebar-icon-wrapper">
<div class="terminal-sidebar-icon" @click.stop="openSetting(item)">
<icon-settings />
</div>
</div>
</a-tooltip>
<!-- 收藏 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
content="收藏">
<div class="terminal-sidebar-icon-wrapper">
<div class="terminal-sidebar-icon" @click.stop="setFavorite(item)">
<icon-star-fill class="favorite" v-if="item.favorite" />
<icon-star v-else />
</div>
</div>
</a-tooltip>
</div>
</div>
</div>
</a-list-item>
</template>
</a-list>
</div>
</template>
<script lang="ts">
@@ -13,20 +120,148 @@
<script lang="ts" setup>
import type { HostQueryResponse } from '@/api/asset/host';
import HostList from './host-list.vue';
import useFavorite from '@/hooks/favorite';
import { dataColor } from '@/utils';
import { tagColor } from '@/views/asset/host-list/types/const';
const props = defineProps<{
hostList: Array<HostQueryResponse>,
emptyValue: string
}>();
const { toggle: toggleFavorite, loading: favoriteLoading } = useFavorite('HOST');
// 打开终端
const openTerminal = (item: any) => {
console.log('ter', item);
};
// 打开配置
const openSetting = (item: any) => {
console.log('set', item);
};
// 设置收藏
const setFavorite = async (item: any) => {
if (favoriteLoading.value) {
return;
}
await toggleFavorite(item, item.id);
};
</script>
<style lang="less" scoped>
.list-view-container {
max-height: 100%;
width: 100%;
overflow: auto;
position: relative;
@host-item-height: 56px;
:deep(.arco-list-bordered) {
border: 1px solid var(--color-fill-3);
.arco-empty {
padding: 16px 0;
flex-direction: column;
.arco-empty-image {
margin-bottom: 0;
}
}
.arco-list-item:not(:last-child) {
border-bottom: 1px solid var(--color-fill-3);
}
.arco-list-item:hover {
background-color: var(--color-fill-2);
}
}
.host-item-wrapper {
padding: 0 !important;
height: @host-item-height;
cursor: pointer;
font-size: 12px;
color: var(--color-content-text-2);
.host-item {
width: 100%;
padding: 0 18px;
display: flex;
justify-content: space-between;
align-items: center;
height: @host-item-height;
&-text {
display: inline-block;
white-space: pre;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
}
}
.host-item-left {
width: 35%;
&-icon {
width: 32px;
height: 32px;
border-radius: 32px;
margin-right: 10px;
font-size: 16px;
display: flex;
justify-content: center;
align-items: center;
color: var(--color-text-3);
background: var(--color-fill-3);
}
&-name {
max-width: calc(100% - 32px - 12px - 8px);
}
}
.host-item-center {
width: 25%;
&-address {
max-width: 100%;
}
}
.host-item-right {
width: 40%;
height: 100%;
flex-direction: column;
justify-content: center;
position: relative;
&-tags {
// 必须设置 最外层用的是 min-width
position: absolute;
width: 100%;
}
&-actions {
position: absolute;
display: none;
width: 100%;
justify-content: flex-end;
}
}
&:hover {
.host-item-right-tags {
display: none;
}
.host-item-right-actions {
display: flex;
}
}
}
.favorite {
color: rgb(var(--yellow-6));
}
</style>

View File

@@ -1,268 +0,0 @@
<template>
<div class="hosts-list-container">
<a-list size="large"
max-height="100%"
:hoverable="true"
:data="hostList">
<!-- 空数据 -->
<template #empty>
<a-empty>
<template #image>
<icon-desktop />
</template>
{{ emptyValue }}
</a-empty>
</template>
<!-- 数据 -->
<template #item="{ item }">
<a-list-item class="host-item-wrapper" @click="openTerminal(item)">
<div class="host-item">
<!-- 左侧图标-名称 -->
<div class="flex-center host-item-left">
<!-- 图标 -->
<span class="host-item-left-icon">
<icon-desktop />
</span>
<!-- 名称 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
:content="`${item.name} (${item.code})`">
<span class="host-item-text host-item-left-name">
{{ `${item.name} (${item.code})` }}
</span>
</a-tooltip>
</div>
<!-- 中间ip -->
<div class="flex-center host-item-center">
<!-- ip -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
:content="item.address">
<span class="host-item-text host-item-center-address">
{{ item.address }}
</span>
</a-tooltip>
</div>
<!-- 右侧tag-操作 -->
<div class="flex-center host-item-right">
<!-- tags -->
<div class="host-item-right-tags">
<template v-if="item.tags?.length">
<a-tag v-for="(tag, i) in item.tags"
class="host-item-text"
:key="tag.id"
:style="{
maxWidth: `calc(${100 / item.tags.length}% - ${i !== item.tags.length - 1 ? '8px' : '0px'})`,
marginRight: `${i !== item.tags.length - 1 ? '8px' : '0'}`,
}"
:color="dataColor(tag.name, tagColor)">
{{ tag.name }}
</a-tag>
</template>
</div>
<!-- 操作 -->
<div class="host-item-right-actions">
<!-- 连接主机 -->
<a-tooltip position="top"
:mini="true"
:popup-visible="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
content="连接主机">
<div class="terminal-sidebar-icon-wrapper">
<div class="terminal-sidebar-icon" @click.stop="openTerminal(item)">
<icon-thunderbolt />
</div>
</div>
</a-tooltip>
<!-- 连接设置 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
content="连接设置">
<div class="terminal-sidebar-icon-wrapper">
<div class="terminal-sidebar-icon" @click.stop="openSetting(item)">
<icon-settings />
</div>
</div>
</a-tooltip>
<!-- 收藏 -->
<a-tooltip position="top"
:mini="true"
content-class="terminal-tooltip-content"
arrow-class="terminal-tooltip-content"
content="收藏">
<div class="terminal-sidebar-icon-wrapper">
<div class="terminal-sidebar-icon" @click.stop="setFavorite(item)">
<icon-star-fill class="favorite" v-if="item.favorite" />
<icon-star v-else />
</div>
</div>
</a-tooltip>
</div>
</div>
</div>
</a-list-item>
</template>
</a-list>
</div>
</template>
<script lang="ts">
export default {
name: 'hostList'
};
</script>
<script lang="ts" setup>
import type { HostQueryResponse } from '@/api/asset/host';
import useFavorite from '@/hooks/favorite';
import { dataColor } from '@/utils';
import { tagColor } from '@/views/asset/host-list/types/const';
const props = defineProps<{
hostList: Array<HostQueryResponse>,
emptyValue: string
}>();
const { toggle: toggleFavorite, loading: favoriteLoading } = useFavorite('HOST');
// 打开终端
const openTerminal = (item: any) => {
console.log('ter', item);
};
// 打开配置
const openSetting = (item: any) => {
console.log('set', item);
};
// 设置收藏
const setFavorite = async (item: any) => {
if (favoriteLoading.value) {
return;
}
await toggleFavorite(item, item.id);
};
</script>
<style lang="less" scoped>
@host-item-height: 56px;
:deep(.arco-list-bordered) {
border: 1px solid var(--color-fill-3);
.arco-empty {
padding: 16px 0;
flex-direction: column;
.arco-empty-image {
margin-bottom: 0;
}
}
.arco-list-item:not(:last-child) {
border-bottom: 1px solid var(--color-fill-3);
}
.arco-list-item:hover {
background-color: var(--color-fill-2);
}
}
.host-item-wrapper {
padding: 0 !important;
height: @host-item-height;
cursor: pointer;
font-size: 12px;
color: var(--color-content-text-2);
.host-item {
width: 100%;
padding: 0 18px;
display: flex;
justify-content: space-between;
align-items: center;
height: @host-item-height;
&-text {
display: inline-block;
white-space: pre;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
}
}
.host-item-left {
width: 35%;
&-icon {
width: 32px;
height: 32px;
border-radius: 32px;
margin-right: 10px;
font-size: 16px;
display: flex;
justify-content: center;
align-items: center;
color: var(--color-text-3);
background: var(--color-fill-3);
}
&-name {
max-width: calc(100% - 32px - 12px - 8px);
}
}
.host-item-center {
width: 25%;
&-address {
max-width: 100%;
}
}
.host-item-right {
width: 40%;
height: 100%;
flex-direction: column;
justify-content: center;
position: relative;
&-tags {
// 必须设置 最外层用的是 min-width
position: absolute;
width: 100%;
}
&-actions {
position: absolute;
display: none;
width: 100%;
justify-content: flex-end;
}
}
&:hover {
.host-item-right-tags {
display: none;
}
.host-item-right-actions {
display: flex;
}
}
}
.favorite {
color: rgb(var(--yellow-6));
}
</style>

View File

@@ -0,0 +1,119 @@
<template>
<div>
<!-- 分组视图列表 -->
<host-group-view v-if="NewConnectionType.GROUP === newConnectionType"
v-model="selectedGroup"
:group-tree="hosts.groupTree"
:tree-nodes="treeNodes"
:host-list="hostList"
:filter-value="filterValue" />
<!-- 列表视图 -->
<host-list-view v-if="NewConnectionType.LIST === newConnectionType"
:hostList="hostList"
empty-value="无授权主机!" />
<!-- 我的收藏 -->
<host-list-view v-if="NewConnectionType.FAVORITE === newConnectionType"
class="list-view-container"
:hostList="hostList"
empty-value="无收藏记录, 快去点击主机右侧的进行收藏吧!" />
<!-- 最近连接 -->
<host-list-view v-if="NewConnectionType.LATEST === newConnectionType"
class="list-view-container"
:hostList="hostList"
empty-value="暂无连接记录, 快去体验吧!" />
</div>
</template>
<script lang="ts">
export default {
name: 'hostsView'
};
</script>
<script lang="ts" setup>
import { onMounted, ref, watch } from 'vue';
import { NewConnectionType } from '../../types/terminal.const';
import { AuthorizedHostQueryResponse } from '@/api/asset/asset-authorized-data';
import { HostQueryResponse } from '@/api/asset/host';
import HostGroupView from './host-group-view.vue';
import HostListView from './host-list-view.vue';
const props = defineProps<{
hosts: AuthorizedHostQueryResponse,
filterValue: string,
newConnectionType: string
}>();
const hostList = ref<Array<HostQueryResponse>>([]);
const treeNodes = ref<Record<string, Array<number>>>({});
const selectedGroup = ref(
props.hosts?.groupTree?.length
? props.hosts.groupTree[0].key
: 0
);
// 主机数据处理
const shuffleHosts = () => {
let list = [...props.hosts?.hostList];
// 过滤
const filterVal = props.filterValue.toLowerCase();
if (filterVal) {
list = filterVal.startsWith('@')
// tag 过滤
? list.filter(item => item.tags.some(tag => (tag.name as string).toLowerCase().startsWith(filterVal.substring(1, filterVal.length))))
// 名称/编码/地址 过滤
: list.filter(item => {
return (item.name as string)?.toLowerCase().indexOf(filterVal) > -1
|| (item.code as string)?.toLowerCase().indexOf(filterVal) > -1
|| (item.address as string)?.toLowerCase().indexOf(filterVal) > -1;
});
}
// 判断类型
if (NewConnectionType.GROUP === props.newConnectionType) {
// 过滤-分组
const groupNodes = { ...props.hosts.treeNodes };
Object.keys(groupNodes).forEach(k => {
groupNodes[k] = (groupNodes[k] || []).filter(item => list.some(host => host.id === item));
});
treeNodes.value = groupNodes;
// 当前组内数据
list = list.filter(item => groupNodes[selectedGroup.value]?.some(id => id === item.id));
} else if (NewConnectionType.FAVORITE === props.newConnectionType) {
// 过滤-个人收藏
list = list.filter(item => item.favorite);
}
// 排序
hostList.value = list?.sort((o1, o2) => {
if (o1.favorite || o2.favorite) {
if (o1.favorite && o2.favorite) {
return o2.id < o1.id ? 1 : -1;
}
return o2.favorite ? 1 : -1;
} else {
return o2.id < o1.id ? 1 : -1;
}
});
};
// 监听搜索值变化
watch(() => props.filterValue, shuffleHosts);
// 监听类型变化
watch(() => props.newConnectionType, shuffleHosts);
// 监听分组变化
watch(selectedGroup, shuffleHosts);
// 初始化 加载主机
onMounted(shuffleHosts);
</script>
<style lang="less" scoped>
.list-view-container {
max-height: 100%;
width: 100%;
overflow: auto;
position: relative;
}
</style>

View File

@@ -17,16 +17,15 @@
placeholder="输入名称/编码/IP @标签"
:allow-clear="true"
:data="filterOptions"
:filter-option="searchFilter"
@change="shuffleHosts">
<template #option="{ data: { raw: { value, isTag} } }">
:filter-option="searchFilter">
<template #option="{ data: { raw: { label, isTag} } }">
<!-- tag -->
<a-tag v-if="isTag" :color="dataColor(value, tagColor)">
{{ value }}
<a-tag v-if="isTag" :color="dataColor(label, tagColor)">
{{ label }}
</a-tag>
<!-- 文本 -->
<template v-else>
{{ value }}
{{ label }}
</template>
</template>
</a-auto-complete>
@@ -57,24 +56,11 @@
Oops! 无授权主机 请联系管理员授权后重试!
</a-empty>
<!-- 主机列表 -->
<div v-else class="host-view-container">
<!-- 分组视图列表 -->
<host-group-view v-if="NewConnectionType.GROUP === newConnectionType"
:hosts="hosts"
:filter-value="filterValue" />
<!-- 列表视图 -->
<host-list-view v-if="NewConnectionType.LIST === newConnectionType"
:host-list="hostList"
empty-value="无授权主机!" />
<!-- 我的收藏 -->
<host-list-view v-if="NewConnectionType.FAVORITE === newConnectionType"
:host-list="[]"
empty-value="无收藏记录, 快去点击主机右侧的进行收藏吧!" />
<!-- 最近连接 -->
<host-list-view v-if="NewConnectionType.LATEST === newConnectionType"
:host-list="[]"
empty-value="暂无连接记录, 快去体验吧!" />
</div>
<hosts-view v-else
class="host-view-container"
:hosts="hosts"
:filter-value="filterValue"
:new-connection-type="newConnectionType" />
</div>
</div>
</div>
@@ -90,62 +76,34 @@
<script lang="ts" setup>
import type { SelectOptionData } from '@arco-design/web-vue';
import type { AuthorizedHostQueryResponse } from '@/api/asset/asset-authorized-data';
import type { HostQueryResponse } from '@/api/asset/host';
import { getCurrentAuthorizedHost } from '@/api/asset/asset-authorized-data';
import { onBeforeMount, ref, watch } from 'vue';
import { onBeforeMount, ref } from 'vue';
import { NewConnectionType, NewConnectionTypeKey } from '../../types/terminal.const';
import useLoading from '@/hooks/loading';
import { useDictStore } from '@/store';
import { dataColor } from '@/utils';
import { tagColor } from '@/views/asset/host-list/types/const';
import HostGroupView from './host-group-view.vue';
import HostListView from './host-list-view.vue';
import HostsView from './hosts-view.vue';
const { loading, setLoading } = useLoading();
const { toOptions } = useDictStore();
const newConnectionType = ref(NewConnectionType.LIST);
const filterValue = ref();
const newConnectionType = ref(NewConnectionType.GROUP);
const filterValue = ref('');
const filterOptions = ref<Array<SelectOptionData>>([]);
const hosts = ref<AuthorizedHostQueryResponse>({} as AuthorizedHostQueryResponse);
const hostList = ref<Array<HostQueryResponse>>([]);
// 修改连接类型
const changeConnectionType = () => {
// FIXME 持久化
};
// 过滤输入
const searchFilter = (searchValue: string, option: SelectOptionData) => {
if (searchValue.startsWith('@')) {
// tag 过滤
return option.isTag && (option.value as string).toLowerCase().startsWith(searchValue.substring(1, searchValue.length).toLowerCase());
return option.isTag && (option.label as string).toLowerCase().startsWith(searchValue.substring(1, searchValue.length).toLowerCase());
} else {
// 文本过滤
return !option.isTag && (option.value as string).toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
return !option.isTag && (option.label as string).toLowerCase().indexOf(searchValue.toLowerCase()) > -1;
}
};
// 数据处理
const shuffleHosts = () => {
let list = [...hosts.value?.hostList];
// 过滤
if (filterValue.value) {
console.log(filterValue.value);
}
// 排序
hostList.value = list?.sort((o1, o2) => {
if (o1.favorite || o2.favorite) {
if (o1.favorite && o2.favorite) {
return o2.id < o1.id ? 1 : -1;
}
return o2.favorite ? 1 : -1;
} else {
return o2.id < o1.id ? 1 : -1;
}
});
};
// 初始化过滤器项
const initFilterOptions = () => {
// 添加 tags
@@ -155,21 +113,20 @@
.sort((o1, o2) => o1.id - o2.id)
.map(s => s.name);
[...new Set(tagNames)].map(value => {
return { value: value, isTag: true };
return { label: value, value: `@${value}`, isTag: true };
}).forEach(s => filterOptions.value.push(s));
// 添加主机信息
const hostMeta = hosts.value.hostList?.map(s => {
return [s.name, s.code, s.address];
}).flat(1);
[...new Set(hostMeta)].map(value => {
return { value };
return { label: value, value };
}).forEach(s => filterOptions.value.push(s));
// // 添加主机信息
// hosts.value.hostList?.map(s => {
// return `${s.name} (${s.code}) - ${s.address}`;
// }).map(value => {
// return { value };
// }).forEach(s => filterOptions.value.push(s));
};
// 修改连接类型
const changeConnectionType = () => {
// FIXME 持久化类型
};
// 初始化
@@ -180,8 +137,6 @@
hosts.value = data;
// 初始化过滤项
initFilterOptions();
// 处理数据
shuffleHosts();
} finally {
setLoading(false);
}

View File

@@ -21,12 +21,15 @@ CREATE TABLE `_copy`
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_extra
-- Table structure for code_snippet
-- ----------------------------
DROP TABLE IF EXISTS `data_extra`;
CREATE TABLE `data_extra`
DROP TABLE IF EXISTS `code_snippet`;
CREATE TABLE `code_snippet`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
`prefix` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '触发前缀',
`snippet` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '代码片段',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
@@ -36,7 +39,56 @@ CREATE TABLE `data_extra`
) ENGINE = InnoDB
AUTO_INCREMENT = 1
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci
COLLATE = utf8mb4_general_ci COMMENT = '代码片段'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for command_template
-- ----------------------------
DROP TABLE IF EXISTS `command_template`;
CREATE TABLE `command_template`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
`command` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '命令',
`timeout` int(0) NULL DEFAULT 0 COMMENT '超时时间ms 0不超时',
`parameter` json NULL COMMENT '参数',
`prepare_render` tinyint(1) NULL DEFAULT 0 COMMENT '是否使用脚本渲染 0不使用 1使用',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '命令模板'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_extra
-- ----------------------------
DROP TABLE IF EXISTS `data_extra`;
CREATE TABLE `data_extra`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` bigint(0) NULL DEFAULT NULL COMMENT '用户id',
`rel_id` bigint(0) NULL DEFAULT NULL COMMENT '数据id',
`type` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据类型',
`extra_info` json NULL COMMENT '额外信息',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id` (`user_id`) USING BTREE,
INDEX `idx_type_rel_id` (`type`, `rel_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '数据推展信息表'
ROW_FORMAT = Dynamic;
-- ----------------------------
@@ -58,7 +110,7 @@ CREATE TABLE `data_group`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_type` (`type`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 28
AUTO_INCREMENT = 29
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '数据分组'
ROW_FORMAT = Dynamic;
@@ -82,7 +134,7 @@ CREATE TABLE `data_group_rel`
INDEX `idx_group_rel` (`group_id`, `rel_id`) USING BTREE,
INDEX `idx_type` (`type`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 59
AUTO_INCREMENT = 114
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '数据分组关联'
ROW_FORMAT = Dynamic;
@@ -108,7 +160,7 @@ CREATE TABLE `data_permission`
INDEX `idx_role_id` (`role_id`) USING BTREE,
INDEX `idx_type_rel` (`type`, `rel_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 10
AUTO_INCREMENT = 166
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci
ROW_FORMAT = Dynamic;
@@ -132,7 +184,7 @@ CREATE TABLE `dict_key`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_key` (`key_name`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 17
AUTO_INCREMENT = 26
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '字典配置项'
ROW_FORMAT = Dynamic;
@@ -158,7 +210,7 @@ CREATE TABLE `dict_value`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_key_id` (`key_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 114
AUTO_INCREMENT = 173
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '字典配置值'
ROW_FORMAT = Dynamic;
@@ -179,9 +231,9 @@ CREATE TABLE `favorite`
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_type` (`user_id`, `type`) USING BTREE
INDEX `idx_type_user` (`type`, `user_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 21
AUTO_INCREMENT = 92
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '收藏关联'
ROW_FORMAT = Dynamic;
@@ -202,7 +254,7 @@ CREATE TABLE `history_value`
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 14
AUTO_INCREMENT = 26
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '历史归档表'
ROW_FORMAT = Dynamic;
@@ -224,7 +276,7 @@ CREATE TABLE `host`
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 4
AUTO_INCREMENT = 8
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '主机'
ROW_FORMAT = Dynamic;
@@ -249,7 +301,7 @@ CREATE TABLE `host_config`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_host_type` (`host_id`, `type`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 10
AUTO_INCREMENT = 14
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '主机配置'
ROW_FORMAT = Dynamic;
@@ -295,7 +347,7 @@ CREATE TABLE `host_key`
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 8
AUTO_INCREMENT = 18
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '主机秘钥'
ROW_FORMAT = Dynamic;
@@ -329,7 +381,7 @@ CREATE TABLE `operator_log`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_id` (`user_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 490
AUTO_INCREMENT = 759
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '操作日志'
ROW_FORMAT = Dynamic;
@@ -352,36 +404,11 @@ CREATE TABLE `preference`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_user_type` (`user_id`, `type`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 6
AUTO_INCREMENT = 9
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '用户偏好'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for snippet
-- ----------------------------
DROP TABLE IF EXISTS `snippet`;
CREATE TABLE `snippet`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`group_id` bigint(0) NULL DEFAULT NULL COMMENT '分组id',
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
`command` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '命令',
`parameter` json NULL COMMENT '命令参数',
`prepare_render` tinyint(1) NULL DEFAULT 0 COMMENT '是否使用脚本渲染 0不渲染 1渲染',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_group` (`group_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '命令片段'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for system_menu
-- ----------------------------
@@ -397,6 +424,7 @@ CREATE TABLE `system_menu`
`visible` tinyint(0) NULL DEFAULT 1 COMMENT '是否可见 0不可见 1可见',
`status` tinyint(0) NULL DEFAULT 1 COMMENT '菜单状态 0停用 1启用',
`cache` tinyint(0) NULL DEFAULT 1 COMMENT '是否缓存 0不缓存 1缓存',
`new_window` tinyint(0) NULL DEFAULT 0 COMMENT '新窗口打开 0关闭 1开启',
`icon` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '菜单图标',
`path` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '链接地址',
`component` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '组件名称',
@@ -407,7 +435,7 @@ CREATE TABLE `system_menu`
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 134
AUTO_INCREMENT = 147
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci COMMENT = '菜单表'
ROW_FORMAT = Dynamic;
@@ -523,7 +551,7 @@ CREATE TABLE `tag`
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_type` (`type`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 30
AUTO_INCREMENT = 31
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '标签枚举'
ROW_FORMAT = Dynamic;
@@ -545,62 +573,12 @@ CREATE TABLE `tag_rel`
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_tag` (`tag_id`) USING BTREE
INDEX `idx_tag` (`tag_id`) USING BTREE,
INDEX `idx_type_rel` (`tag_type`, `rel_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 164
AUTO_INCREMENT = 219
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '标签关联'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for terminal_config
-- ----------------------------
DROP TABLE IF EXISTS `terminal_config`;
CREATE TABLE `terminal_config`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` bigint(0) NULL DEFAULT NULL COMMENT '用户id',
`font_family` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字体',
`font_size` tinyint(0) NULL DEFAULT NULL COMMENT '字体大小',
`cursor_style` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '光标样式',
`cursor_blink` tinyint(0) NULL DEFAULT 1 COMMENT '光标是否闪烁 0不闪烁 1闪烁',
`theme` json NULL COMMENT '主题',
`background_image` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '背景图片地址',
`background_transparent` tinyint(0) NULL DEFAULT NULL COMMENT '背景图片透明度',
`background_size` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '背景图片大小',
`visible_keywords` tinyint(0) NULL DEFAULT 0 COMMENT '是否显示关键字 0不显示 1显示',
`visible_link` tinyint(0) NULL DEFAULT 0 COMMENT '是否显示url 0不显示 1显示',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '终端配置'
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for terminal_theme
-- ----------------------------
DROP TABLE IF EXISTS `terminal_theme`;
CREATE TABLE `terminal_theme`
(
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主题名称',
`config` json NULL COMMENT '主题配置',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建人',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '更新人',
`deleted` tinyint(1) NULL DEFAULT 0 COMMENT '是否删除 0未删除 1已删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT = '终端主题'
ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -1,4 +1,4 @@
-- 默认管理员账号
-- 默认管理员账号
-- 账号: admin 密码: admin
INSERT INTO `system_user` VALUES (1, 'admin', 'c3284d0f94606de1fd2af172aba15bf3', '管理员呀', 'http', '122', '122', 1, '2023-08-17 14:23:59', '2023-07-13 22:11:57', '2023-08-17 14:23:59', NULL, NULL, 0);
@@ -9,75 +9,77 @@ INSERT INTO `system_role` VALUES (1, '管理员', 'admin', 1, '2023-07-16 21:13:
INSERT INTO `system_user_role` VALUES (1, 1, 1, '2023-07-16 21:15:49', '2023-07-17 18:18:02', '1', '1', 0);
-- 菜单配置
INSERT INTO `system_menu` VALUES (1, 0, '工作台', NULL, 1, 10, 1, 1, 1, 'IconComputer', NULL, 'workplace', '2023-07-28 10:51:50', '2023-09-11 15:27:52', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (5, 0, '用户设置', NULL, 1, 400, 1, 1, 1, 'icon-user', NULL, 'user', '2023-07-28 10:55:38', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (8, 0, '项目地址 github', NULL, 1, 1000, 1, 1, 1, 'icon-github', 'https://github.com/lijiahangmax/orion-ops-pro', '', '2023-07-28 11:04:59', '2023-10-12 15:21:22', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (10, 5, '角色管理', NULL, 2, 10, 1, 1, 1, 'IconUserGroup', '', 'userRole', '2023-07-28 10:55:52', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (11, 0, '项目地址 gitee', NULL, 1, 1010, 1, 1, 1, 'icon-gitlab', 'https://gitee.com/lijiahangmax/orion-ops-pro', '', '2023-08-02 18:08:07', '2023-08-11 18:11:34', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (12, 0, '系统设置', NULL, 1, 500, 1, 1, 1, 'icon-tool', NULL, 'system', '2023-08-02 18:24:24', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (13, 12, '系统菜单', '', 2, 10, 1, 1, 1, 'icon-menu', NULL, 'systemMenu', '2023-08-02 18:29:01', '2023-12-04 13:00:57', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (17, 1, '操作1', '123', 3, 1, 1, 1, 1, 'IconDoubleLeft', '111', '', '2023-08-08 18:05:57', '2023-09-20 17:05:20', '1', '1', 0);
INSERT INTO `system_menu` VALUES (20, 10, '创建角色', 'infra:system-role:create', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:36:54', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (21, 10, '修改角色', 'infra:system-role:update', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:37:33', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (22, 10, '更新状态', 'infra:system-role:update-status', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:37:58', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (23, 10, '查询角色', 'infra:system-role:query', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:38:26', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (24, 10, '分配菜单', 'infra:system-role:grant-menu', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:39:41', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (25, 10, '删除角色', 'infra:system-role:delete', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:40:45', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (26, 13, '创建菜单', 'infra:system-menu:create', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:41:30', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (27, 13, '修改菜单', 'infra:system-menu:update', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:41:55', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (28, 13, '修改状态', 'infra:system-menu:update-status', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:42:41', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (29, 13, '查询菜单', 'infra:system-menu:query', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:42:57', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (30, 13, '删除菜单', 'infra:system-menu:delete', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-15 16:43:16', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (48, 5, '用户管理', NULL, 2, 10, 1, 1, 1, 'IconUserAdd', NULL, 'userUser', '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (49, 48, '创建用户', 'infra:system-user:create', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (50, 48, '修改用户', 'infra:system-user:update', 3, 20, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (51, 48, '查询用户', 'infra:system-user:query', 3, 30, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (52, 48, '删除用户', 'infra:system-user:delete', 3, 40, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (53, 13, '刷新缓存', 'infra:system-menu:refresh-cache', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 10:29:10', '2023-10-27 15:52:13', '1', '1', 0);
INSERT INTO `system_menu` VALUES (60, 48, '修改用户状态', 'infra:system-user:update-status', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 11:49:04', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (61, 48, '分配用户角色', 'infra:system-user:grant-role', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 11:49:23', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (62, 48, '重置用户密码', 'infra:system-user:reset-password', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-08-16 11:49:50', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (63, 0, '资产管理', NULL, 1, 300, 1, 1, 1, 'IconStorage', NULL, 'asset', '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (64, 63, '主机管理', NULL, 2, 40, 1, 1, 1, 'IconDesktop', NULL, 'assetHostList', '2023-09-11 14:17:31', '2023-11-30 23:56:21', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (65, 64, '查询主机', 'asset:host:query', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (66, 64, '创建主机', 'asset:host:create', 3, 20, 1, 1, 1, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (67, 64, '修改主机', 'asset:host:update', 3, 30, 1, 1, 1, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (68, 64, '删除主机', 'asset:host:delete', 3, 40, 1, 1, 1, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (69, 64, '导出主机', 'asset:host:export', 3, 50, 1, 1, 1, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (70, 64, '修改配置', 'asset:host:update-config', 3, 60, 1, 1, 1, NULL, NULL, NULL, '2023-09-14 16:27:18', '2023-10-27 01:15:14', '1', '1', 0);
INSERT INTO `system_menu` VALUES (72, 63, '主机身份', NULL, 2, 60, 1, 1, 1, 'IconIdcard', NULL, 'assetHostIdentity', '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (73, 72, '查询主机身份', 'asset:host-identity:query', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (74, 72, '创建主机身份', 'asset:host-identity:create', 3, 20, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (75, 72, '修改主机身份', 'asset:host-identity:update', 3, 30, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (76, 72, '删除主机身份', 'asset:host-identity:delete', 3, 40, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (77, 72, '导出主机身份', 'asset:host-identity:export', 3, 50, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (79, 63, '主机秘钥', NULL, 2, 50, 1, 1, 1, 'IconLock', NULL, 'assetHostKey', '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (80, 79, '查询主机秘钥', 'asset:host-key:query', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (81, 79, '创建主机秘钥', 'asset:host-key:create', 3, 20, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (82, 79, '修改主机秘钥', 'asset:host-key:update', 3, 30, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (83, 79, '删除主机秘钥', 'asset:host-key:delete', 3, 40, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (84, 79, '查询主机秘钥详情', 'asset:host-key:query-detail', 3, 50, 1, 1, 1, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-11-09 15:52:57', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (94, 5, '个人中心', NULL, 2, 20, 0, 1, 0, 'IconUser', NULL, 'userInfo', '2023-10-08 18:53:01', '2023-11-02 11:47:34', '1', '1', 0);
INSERT INTO `system_menu` VALUES (97, 12, '数据字典项', NULL, 2, 20, 1, 1, 1, 'IconBook', NULL, 'systemDictKey', '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (99, 97, '创建字典配置项', 'infra:dict-key:create', 3, 110, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (100, 97, '修改字典配置项', 'infra:dict-key:update', 3, 120, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (101, 97, '删除字典配置项', 'infra:dict-key:delete', 3, 130, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (105, 12, '数据字典值', NULL, 2, 30, 1, 1, 1, 'IconNav', NULL, 'systemDictValue', '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (106, 105, '查询字典配置值', 'infra:dict-value:query', 3, 210, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (107, 105, '创建字典配置值', 'infra:dict-value:create', 3, 220, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (108, 105, '修改字典配置值', 'infra:dict-value:update', 3, 230, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (109, 105, '删除字典配置值', 'infra:dict-value:delete', 3, 240, 1, 1, 1, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (120, 97, '查询字典配置项', 'infra:dict-key:create', 3, 100, 1, 1, 1, NULL, NULL, NULL, '2023-10-20 11:27:12', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (121, 97, '刷新缓存', 'infra:dict-key:refresh-cache', 3, 140, 1, 1, 1, NULL, NULL, NULL, '2023-10-27 15:50:04', '2023-10-27 15:54:36', '1', '1', 0);
INSERT INTO `system_menu` VALUES (122, 5, '操作日志', NULL, 2, 30, 1, 1, 1, 'IconCalendarClock', NULL, 'userOperatorLog', '2023-11-01 14:09:36', '2023-11-01 14:09:36', '1', '1', 0);
INSERT INTO `system_menu` VALUES (123, 122, '查询操作日志', 'infra:operator-log:query', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-11-02 11:22:54', '2023-11-02 11:22:54', '1', '1', 0);
INSERT INTO `system_menu` VALUES (124, 48, '查询用户会话', 'infra:system-user:query-session', 3, 50, 1, 1, 1, NULL, NULL, NULL, '2023-11-02 11:24:14', '2023-11-02 11:24:14', '1', '1', 0);
INSERT INTO `system_menu` VALUES (125, 48, '下线用户会话', 'infra:system-user:offline-session', 3, 60, 1, 1, 1, NULL, NULL, NULL, '2023-11-02 11:24:37', '2023-11-02 11:24:37', '1', '1', 0);
INSERT INTO `system_menu` VALUES (129, 64, '编辑主机分组', 'asset:host-group:update', 3, 100, 1, 1, 1, NULL, NULL, NULL, '2023-11-13 18:16:32', '2023-12-01 01:47:58', '1', '1', 0);
INSERT INTO `system_menu` VALUES (133, 144, '主机分组授权', 'asset:host-group:grant', 3, 10, 1, 1, 1, NULL, NULL, NULL, '2023-11-23 18:08:57', '2023-11-30 22:39:53', '1', '1', 0);
INSERT INTO `system_menu` VALUES (142, 144, '主机秘钥授权', 'asset:host-key:grant', 3, 20, 1, 1, 1, NULL, NULL, NULL, '2023-11-30 21:06:13', '2023-11-30 22:39:47', '1', '1', 0);
INSERT INTO `system_menu` VALUES (143, 144, '主机身份授权', 'asset:host-identity:grant', 3, 30, 1, 1, 1, NULL, NULL, NULL, '2023-11-30 21:06:26', '2023-11-30 22:40:11', '1', '1', 0);
INSERT INTO `system_menu` VALUES (144, 63, '资产授权', NULL, 2, 70, 1, 1, 1, 'icon-safe', NULL, 'assetGrant', '2023-11-30 22:38:57', '2023-11-30 22:39:06', '1', '1', 0);
INSERT INTO `system_menu` VALUES (1, 0, '工作台', NULL, 1, 10, 1, 1, 1, 0, 'IconComputer', NULL, 'workplace', '2023-07-28 10:51:50', '2023-09-11 15:27:52', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (5, 0, '用户设置', NULL, 1, 700, 1, 1, 1, 0, 'icon-user', NULL, 'user', '2023-07-28 10:55:38', '2023-12-05 11:16:50', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (8, 0, '项目地址 github', NULL, 1, 1000, 1, 1, 1, 0, 'icon-github', 'https://github.com/lijiahangmax/orion-ops-pro', '', '2023-07-28 11:04:59', '2023-10-12 15:21:22', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (10, 5, '角色管理', NULL, 2, 10, 1, 1, 1, 0, 'IconUserGroup', '', 'userRole', '2023-07-28 10:55:52', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (11, 0, '项目地址 gitee', NULL, 1, 1010, 1, 1, 1, 0, 'icon-gitlab', 'https://gitee.com/lijiahangmax/orion-ops-pro', '', '2023-08-02 18:08:07', '2023-08-11 18:11:34', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (12, 0, '系统设置', NULL, 1, 800, 1, 1, 1, 0, 'icon-tool', NULL, 'system', '2023-08-02 18:24:24', '2023-12-05 11:16:57', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (13, 12, '系统菜单', '', 2, 10, 1, 1, 1, 0, 'icon-menu', NULL, 'systemMenu', '2023-08-02 18:29:01', '2023-12-04 13:00:57', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (17, 1, '操作1', '123', 3, 1, 1, 1, 1, 0, 'IconDoubleLeft', '111', '', '2023-08-08 18:05:57', '2023-09-20 17:05:20', '1', '1', 0);
INSERT INTO `system_menu` VALUES (20, 10, '创建角色', 'infra:system-role:create', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:36:54', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (21, 10, '修改角色', 'infra:system-role:update', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:37:33', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (22, 10, '更新状态', 'infra:system-role:update-status', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:37:58', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (23, 10, '查询角色', 'infra:system-role:query', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:38:26', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (24, 10, '分配菜单', 'infra:system-role:grant-menu', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:39:41', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (25, 10, '删除角色', 'infra:system-role:delete', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:40:45', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (26, 13, '创建菜单', 'infra:system-menu:create', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:41:30', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (27, 13, '修改菜单', 'infra:system-menu:update', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:41:55', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (28, 13, '修改状态', 'infra:system-menu:update-status', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:42:41', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (29, 13, '查询菜单', 'infra:system-menu:query', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:42:57', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (30, 13, '删除菜单', 'infra:system-menu:delete', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-15 16:43:16', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (48, 5, '用户管理', NULL, 2, 10, 1, 1, 1, 0, 'IconUserAdd', NULL, 'userUser', '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (49, 48, '创建用户', 'infra:system-user:create', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (50, 48, '修改用户', 'infra:system-user:update', 3, 20, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (51, 48, '查询用户', 'infra:system-user:query', 3, 30, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (52, 48, '删除用户', 'infra:system-user:delete', 3, 40, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 10:19:24', '2023-10-27 01:20:46', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (53, 13, '刷新缓存', 'infra:system-menu:refresh-cache', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 10:29:10', '2023-10-27 15:52:13', '1', '1', 0);
INSERT INTO `system_menu` VALUES (60, 48, '修改用户状态', 'infra:system-user:update-status', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 11:49:04', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (61, 48, '分配用户角色', 'infra:system-user:grant-role', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 11:49:23', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (62, 48, '重置用户密码', 'infra:system-user:reset-password', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-08-16 11:49:50', '2023-10-27 01:20:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (63, 0, '资产管理', NULL, 1, 300, 1, 1, 1, 0, 'IconStorage', NULL, 'asset', '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (64, 63, '主机管理', NULL, 2, 40, 1, 1, 1, 0, 'IconDesktop', NULL, 'assetHostList', '2023-09-11 14:17:31', '2023-11-30 23:56:21', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (65, 64, '查询主机', 'asset:host:query', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (66, 64, '创建主机', 'asset:host:create', 3, 20, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (67, 64, '修改主机', 'asset:host:update', 3, 30, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (68, 64, '删除主机', 'asset:host:delete', 3, 40, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (69, 64, '导出主机', 'asset:host:export', 3, 50, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-11 14:17:31', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (70, 64, '修改配置', 'asset:host:update-config', 3, 60, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-14 16:27:18', '2023-10-27 01:15:14', '1', '1', 0);
INSERT INTO `system_menu` VALUES (72, 63, '主机身份', NULL, 2, 60, 1, 1, 1, 0, 'IconIdcard', NULL, 'assetHostIdentity', '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (73, 72, '查询主机身份', 'asset:host-identity:query', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (74, 72, '创建主机身份', 'asset:host-identity:create', 3, 20, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (75, 72, '修改主机身份', 'asset:host-identity:update', 3, 30, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (76, 72, '删除主机身份', 'asset:host-identity:delete', 3, 40, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (77, 72, '导出主机身份', 'asset:host-identity:export', 3, 50, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (79, 63, '主机秘钥', NULL, 2, 50, 1, 1, 1, 0, 'IconLock', NULL, 'assetHostKey', '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (80, 79, '查询主机秘钥', 'asset:host-key:query', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (81, 79, '创建主机秘钥', 'asset:host-key:create', 3, 20, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (82, 79, '修改主机秘钥', 'asset:host-key:update', 3, 30, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (83, 79, '删除主机秘钥', 'asset:host-key:delete', 3, 40, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-10-27 01:15:14', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (84, 79, '查询主机秘钥详情', 'asset:host-key:query-detail', 3, 50, 1, 1, 1, 0, NULL, NULL, NULL, '2023-09-20 11:47:18', '2023-11-09 15:52:57', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (94, 5, '个人中心', NULL, 2, 20, 0, 1, 0, 0, 'IconUser', NULL, 'userInfo', '2023-10-08 18:53:01', '2023-11-02 11:47:34', '1', '1', 0);
INSERT INTO `system_menu` VALUES (97, 12, '数据字典项', NULL, 2, 20, 1, 1, 1, 0, 'IconBook', NULL, 'systemDictKey', '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (99, 97, '创建字典配置项', 'infra:dict-key:create', 3, 110, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (100, 97, '修改字典配置项', 'infra:dict-key:update', 3, 120, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (101, 97, '删除字典配置项', 'infra:dict-key:delete', 3, 130, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (105, 12, '数据字典值', NULL, 2, 30, 1, 1, 1, 0, 'IconNav', NULL, 'systemDictValue', '2023-10-17 11:38:13', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (106, 105, '查询字典配置值', 'infra:dict-value:query', 3, 210, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (107, 105, '创建字典配置值', 'infra:dict-value:create', 3, 220, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (108, 105, '修改字典配置值', 'infra:dict-value:update', 3, 230, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (109, 105, '删除字典配置值', 'infra:dict-value:delete', 3, 240, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-17 11:38:18', '2023-10-27 01:16:10', NULL, '1', 0);
INSERT INTO `system_menu` VALUES (120, 97, '查询字典配置项', 'infra:dict-key:create', 3, 100, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-20 11:27:12', '2023-10-27 01:16:10', '1', '1', 0);
INSERT INTO `system_menu` VALUES (121, 97, '刷新缓存', 'infra:dict-key:refresh-cache', 3, 140, 1, 1, 1, 0, NULL, NULL, NULL, '2023-10-27 15:50:04', '2023-10-27 15:54:36', '1', '1', 0);
INSERT INTO `system_menu` VALUES (122, 5, '操作日志', NULL, 2, 30, 1, 1, 1, 0, 'IconCalendarClock', NULL, 'userOperatorLog', '2023-11-01 14:09:36', '2023-11-01 14:09:36', '1', '1', 0);
INSERT INTO `system_menu` VALUES (123, 122, '查询操作日志', 'infra:operator-log:query', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-02 11:22:54', '2023-11-02 11:22:54', '1', '1', 0);
INSERT INTO `system_menu` VALUES (124, 48, '查询用户会话', 'infra:system-user:query-session', 3, 50, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-02 11:24:14', '2023-11-02 11:24:14', '1', '1', 0);
INSERT INTO `system_menu` VALUES (125, 48, '下线用户会话', 'infra:system-user:offline-session', 3, 60, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-02 11:24:37', '2023-11-02 11:24:37', '1', '1', 0);
INSERT INTO `system_menu` VALUES (129, 64, '编辑主机分组', 'asset:host-group:update', 3, 100, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-13 18:16:32', '2023-12-01 01:47:58', '1', '1', 0);
INSERT INTO `system_menu` VALUES (133, 144, '主机分组授权', 'asset:host-group:grant', 3, 10, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-23 18:08:57', '2023-11-30 22:39:53', '1', '1', 0);
INSERT INTO `system_menu` VALUES (142, 144, '主机秘钥授权', 'asset:host-key:grant', 3, 20, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-30 21:06:13', '2023-11-30 22:39:47', '1', '1', 0);
INSERT INTO `system_menu` VALUES (143, 144, '主机身份授权', 'asset:host-identity:grant', 3, 30, 1, 1, 1, 0, NULL, NULL, NULL, '2023-11-30 21:06:26', '2023-11-30 22:40:11', '1', '1', 0);
INSERT INTO `system_menu` VALUES (144, 63, '资产授权', NULL, 2, 70, 1, 1, 1, 0, 'icon-safe', NULL, 'assetGrant', '2023-11-30 22:38:57', '2023-11-30 22:39:06', '1', '1', 0);
INSERT INTO `system_menu` VALUES (145, 0, '主机运维', NULL, 1, 400, 1, 1, 1, 1, 'IconDesktop', NULL, 'hostOps', '2023-12-04 23:33:25', '2023-12-05 14:51:46', '1', '1', 0);
INSERT INTO `system_menu` VALUES (146, 145, 'Terminal', NULL, 2, 10, 1, 1, 1, 1, 'icon-code-square', NULL, 'hostTerminal', '2023-12-04 23:38:01', '2023-12-13 21:09:13', '1', '1', 0);
-- 字典项
INSERT INTO `dict_key` VALUES (1, 'operatorLogModule', 'STRING', '[]', '操作日志模块', '2023-10-21 02:04:22', '2023-10-30 14:11:38', '1', '1', 0);
@@ -92,7 +94,13 @@ INSERT INTO `dict_key` VALUES (10, 'systemRoleStatus', 'INTEGER', '[{\"name\": \
INSERT INTO `dict_key` VALUES (11, 'hostAuthTypeType', 'STRING', '[]', '主机身份验证方式', '2023-10-27 14:29:12', '2023-10-27 14:29:12', '1', '1', 0);
INSERT INTO `dict_key` VALUES (15, 'operatorLogResult', 'INTEGER', '[{\"name\": \"color\", \"type\": \"COLOR\"}]', '操作日志结果', '2023-10-31 17:35:28', '2023-10-31 17:42:50', '2', '2', 0);
INSERT INTO `dict_key` VALUES (16, 'operatorRiskLevel', 'STRING', '[{\"name\": \"color\", \"type\": \"COLOR\"}]', '操作风险等级', '2023-11-01 16:03:00', '2023-11-01 16:03:00', '1', '1', 0);
INSERT INTO `dict_key` VALUES (19, 'systemMenuNewWindow', 'INTEGER', '[]', '菜单是否开启新窗口', '2023-12-05 14:14:29', '2023-12-05 14:14:29', '1', '1', 0);
INSERT INTO `dict_key` VALUES (20, 'terminalDarkTheme', 'STRING', '[]', '终端暗色模式', '2023-12-08 15:35:36', '2023-12-08 15:53:23', '1', '1', 0);
INSERT INTO `dict_key` VALUES (21, 'terminalFontFamily', 'STRING', '[]', '终端字体样式', '2023-12-11 16:46:24', '2023-12-11 17:10:32', '1', '1', 0);
INSERT INTO `dict_key` VALUES (22, 'terminalFontSize', 'INTEGER', '[]', '终端字体大小', '2023-12-11 17:07:25', '2023-12-11 17:07:25', '1', '1', 0);
INSERT INTO `dict_key` VALUES (23, 'terminalFontWeight', 'STRING', '[]', '终端文本粗细', '2023-12-11 17:18:43', '2023-12-11 17:21:36', '1', '1', 0);
INSERT INTO `dict_key` VALUES (24, 'terminalCursorStyle', 'STRING', '[]', '终端光标样式', '2023-12-11 18:24:47', '2023-12-11 18:26:11', '1', '1', 0);
INSERT INTO `dict_key` VALUES (25, 'terminalNewConnectionType', 'STRING', '[]', '终端新建连接类型', '2023-12-14 17:24:19', '2023-12-14 17:24:19', '1', '1', 0);
-- 字典值
INSERT INTO `dict_value` VALUES (3, 4, 'systemMenuType', '1', '父菜单', '{}', 10, '2023-10-26 15:58:59', '2023-10-26 15:58:59', '1', '1', 0);
INSERT INTO `dict_value` VALUES (4, 4, 'systemMenuType', '2', '子菜单', '{}', 20, '2023-10-26 16:44:34', '2023-10-26 16:44:34', '1', '1', 0);
@@ -175,3 +183,47 @@ INSERT INTO `dict_value` VALUES (112, 2, 'operatorLogType', 'host-group:update-r
INSERT INTO `dict_value` VALUES (113, 2, 'operatorLogType', 'host-group:grant', '主机分组授权', '{}', 50, '2023-11-23 18:10:14', '2023-11-23 18:10:14', '1', '1', 0);
INSERT INTO `dict_value` VALUES (122, 2, 'operatorLogType', 'host-key:grant', '主机秘钥授权', '{}', 40, '2023-11-30 21:03:55', '2023-11-30 21:04:16', '1', '1', 0);
INSERT INTO `dict_value` VALUES (123, 2, 'operatorLogType', 'host-identity:grant', '主机身份授权', '{}', 40, '2023-11-30 21:04:48', '2023-11-30 21:04:48', '1', '1', 0);
INSERT INTO `dict_value` VALUES (124, 19, 'systemMenuNewWindow', '0', '关闭', '{}', 10, '2023-12-05 14:15:17', '2023-12-05 14:15:17', '1', '1', 0);
INSERT INTO `dict_value` VALUES (125, 19, 'systemMenuNewWindow', '1', '开启', '{}', 20, '2023-12-05 14:15:24', '2023-12-05 14:15:24', '1', '1', 0);
INSERT INTO `dict_value` VALUES (126, 20, 'terminalDarkTheme', 'dark', '暗色', '{}', 10, '2023-12-08 15:36:48', '2023-12-08 15:52:33', '1', '1', 0);
INSERT INTO `dict_value` VALUES (127, 20, 'terminalDarkTheme', 'light', '亮色', '{}', 20, '2023-12-08 15:36:59', '2023-12-08 15:52:33', '1', '1', 0);
INSERT INTO `dict_value` VALUES (128, 20, 'terminalDarkTheme', 'auto', '自动', '{}', 30, '2023-12-08 15:37:04', '2023-12-08 15:52:33', '1', '1', 0);
INSERT INTO `dict_value` VALUES (129, 21, 'terminalFontFamily', '_', '默认', '{}', 10, '2023-12-11 16:46:48', '2023-12-11 17:54:03', '1', '1', 0);
INSERT INTO `dict_value` VALUES (130, 21, 'terminalFontFamily', 'Courier New', 'Courier New', '{}', 20, '2023-12-11 16:46:57', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (131, 21, 'terminalFontFamily', 'Fira Code', 'Fira Code', '{}', 30, '2023-12-11 16:47:04', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (132, 21, 'terminalFontFamily', 'JetBrains Mono', 'JetBrains Mono', '{}', 40, '2023-12-11 16:47:09', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (135, 21, 'terminalFontFamily', 'Alibaba Sans', 'Alibaba Sans', '{}', 70, '2023-12-11 16:47:28', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (137, 21, 'terminalFontFamily', 'Source Code Pro', 'Source Code Pro', '{}', 90, '2023-12-11 16:47:43', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (139, 21, 'terminalFontFamily', 'Lucida Console', 'Lucida Console', '{}', 110, '2023-12-11 16:47:58', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (140, 21, 'terminalFontFamily', 'Arial', 'Arial', '{}', 120, '2023-12-11 16:48:03', '2023-12-11 17:07:39', '1', '1', 0);
INSERT INTO `dict_value` VALUES (142, 22, 'terminalFontSize', '10', '10px', '{}', 10, '2023-12-11 17:08:04', '2023-12-11 17:08:04', '1', '1', 0);
INSERT INTO `dict_value` VALUES (143, 22, 'terminalFontSize', '11', '11px', '{}', 20, '2023-12-11 17:08:08', '2023-12-11 17:08:08', '1', '1', 0);
INSERT INTO `dict_value` VALUES (144, 22, 'terminalFontSize', '12', '12px', '{}', 30, '2023-12-11 17:08:11', '2023-12-11 17:08:11', '1', '1', 0);
INSERT INTO `dict_value` VALUES (145, 22, 'terminalFontSize', '13', '13px', '{}', 40, '2023-12-11 17:08:16', '2023-12-11 17:08:16', '1', '1', 0);
INSERT INTO `dict_value` VALUES (146, 22, 'terminalFontSize', '14', '14px', '{}', 50, '2023-12-11 17:08:21', '2023-12-11 17:08:21', '1', '1', 0);
INSERT INTO `dict_value` VALUES (147, 22, 'terminalFontSize', '15', '15px', '{}', 60, '2023-12-11 17:08:29', '2023-12-11 17:08:29', '1', '1', 0);
INSERT INTO `dict_value` VALUES (148, 22, 'terminalFontSize', '16', '16px', '{}', 70, '2023-12-11 17:08:35', '2023-12-11 17:08:35', '1', '1', 0);
INSERT INTO `dict_value` VALUES (149, 22, 'terminalFontSize', '17', '17px', '{}', 80, '2023-12-11 17:08:48', '2023-12-11 17:08:48', '1', '1', 0);
INSERT INTO `dict_value` VALUES (150, 22, 'terminalFontSize', '18', '18px', '{}', 90, '2023-12-11 17:08:55', '2023-12-11 17:08:55', '1', '1', 0);
INSERT INTO `dict_value` VALUES (151, 22, 'terminalFontSize', '19', '19px', '{}', 100, '2023-12-11 17:09:00', '2023-12-11 17:09:00', '1', '1', 0);
INSERT INTO `dict_value` VALUES (152, 22, 'terminalFontSize', '20', '20px', '{}', 110, '2023-12-11 17:09:07', '2023-12-11 17:09:07', '1', '1', 0);
INSERT INTO `dict_value` VALUES (153, 22, 'terminalFontSize', '21', '21px', '{}', 120, '2023-12-11 17:09:12', '2023-12-11 17:09:12', '1', '1', 0);
INSERT INTO `dict_value` VALUES (154, 22, 'terminalFontSize', '22', '22px', '{}', 130, '2023-12-11 17:09:17', '2023-12-11 17:09:17', '1', '1', 0);
INSERT INTO `dict_value` VALUES (155, 23, 'terminalFontWeight', 'normal', 'normal', '{}', 140, '2023-12-11 17:19:05', '2023-12-11 17:19:05', '1', '1', 0);
INSERT INTO `dict_value` VALUES (156, 23, 'terminalFontWeight', 'bold', 'bold', '{}', 150, '2023-12-11 17:19:11', '2023-12-11 17:19:11', '1', '1', 0);
INSERT INTO `dict_value` VALUES (157, 23, 'terminalFontWeight', '100', '100', '{}', 160, '2023-12-11 17:19:17', '2023-12-11 17:19:17', '1', '1', 0);
INSERT INTO `dict_value` VALUES (158, 23, 'terminalFontWeight', '200', '200', '{}', 170, '2023-12-11 17:19:21', '2023-12-11 17:19:44', '1', '1', 0);
INSERT INTO `dict_value` VALUES (159, 23, 'terminalFontWeight', '300', '300', '{}', 180, '2023-12-11 17:19:25', '2023-12-11 17:20:06', '1', '1', 0);
INSERT INTO `dict_value` VALUES (160, 23, 'terminalFontWeight', '400', '400', '{}', 190, '2023-12-11 17:19:35', '2023-12-11 17:19:59', '1', '1', 0);
INSERT INTO `dict_value` VALUES (161, 23, 'terminalFontWeight', '500', '500', '{}', 200, '2023-12-11 17:20:15', '2023-12-11 17:20:43', '1', '1', 0);
INSERT INTO `dict_value` VALUES (162, 23, 'terminalFontWeight', '600', '600', '{}', 210, '2023-12-11 17:20:18', '2023-12-11 17:20:49', '1', '1', 0);
INSERT INTO `dict_value` VALUES (163, 23, 'terminalFontWeight', '700', '700', '{}', 220, '2023-12-11 17:20:22', '2023-12-11 17:20:54', '1', '1', 0);
INSERT INTO `dict_value` VALUES (164, 23, 'terminalFontWeight', '800', '800', '{}', 230, '2023-12-11 17:20:25', '2023-12-11 17:20:58', '1', '1', 0);
INSERT INTO `dict_value` VALUES (165, 23, 'terminalFontWeight', '900', '900', '{}', 240, '2023-12-11 17:20:29', '2023-12-11 17:21:09', '1', '1', 0);
INSERT INTO `dict_value` VALUES (166, 24, 'terminalCursorStyle', 'block', '', '{}', 10, '2023-12-11 18:26:36', '2023-12-11 18:48:35', '1', '1', 0);
INSERT INTO `dict_value` VALUES (167, 24, 'terminalCursorStyle', 'underline', '', '{}', 20, '2023-12-11 18:27:32', '2023-12-11 18:27:32', '1', '1', 0);
INSERT INTO `dict_value` VALUES (168, 24, 'terminalCursorStyle', 'bar', '', '{}', 30, '2023-12-11 18:27:57', '2023-12-11 18:48:25', '1', '1', 0);
INSERT INTO `dict_value` VALUES (169, 25, 'terminalNewConnectionType', 'group', '分组', '{}', 10, '2023-12-14 17:24:43', '2023-12-14 17:24:43', '1', '1', 0);
INSERT INTO `dict_value` VALUES (170, 25, 'terminalNewConnectionType', 'list', '列表', '{}', 20, '2023-12-14 17:24:49', '2023-12-14 17:24:49', '1', '1', 0);
INSERT INTO `dict_value` VALUES (171, 25, 'terminalNewConnectionType', 'favorite', '收藏', '{}', 30, '2023-12-14 17:25:00', '2023-12-14 17:25:00', '1', '1', 0);
INSERT INTO `dict_value` VALUES (172, 25, 'terminalNewConnectionType', 'latest', '最近连接', '{}', 40, '2023-12-14 17:25:10', '2023-12-14 17:25:10', '1', '1', 0);