mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-02 23:40:24 +08:00
feat: redis支持flushdb、菜单资源支持拖拽排序、禁用等
This commit is contained in:
@@ -11,7 +11,7 @@ const config = {
|
||||
baseWsUrl: `${(window as any).globalConfig.BaseWsUrl || `${location.protocol == 'https:' ? 'wss:' : 'ws:'}//${getBaseApiUrl()}`}/api`,
|
||||
|
||||
// 系统版本
|
||||
version: 'v1.4.2'
|
||||
version: 'v1.4.3'
|
||||
}
|
||||
|
||||
export default config
|
||||
@@ -48,14 +48,17 @@ const showTagInfo = async () => {
|
||||
const tagPaths = [];
|
||||
let nowTag = '';
|
||||
for (let tagStr of tagStrs) {
|
||||
if (nowTag) {
|
||||
nowTag = `${nowTag}/${tagStr}`
|
||||
} else {
|
||||
nowTag = tagStr
|
||||
if (!tagStr) {
|
||||
continue;
|
||||
}
|
||||
tagPaths.push(nowTag)
|
||||
if (nowTag) {
|
||||
nowTag = `${nowTag}${tagStr}/`;
|
||||
} else {
|
||||
nowTag = tagStr + '/';
|
||||
}
|
||||
tagPaths.push(nowTag);
|
||||
}
|
||||
state.tags = await tagApi.listByQuery.request({ tagPaths: tagPaths.join(',') })
|
||||
state.tags = await tagApi.listByQuery.request({ tagPaths: tagPaths.join(',') });
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
<div>
|
||||
<el-row>
|
||||
<el-col :span="4">
|
||||
<el-button type="primary" icon="plus" @click="addQueryTab({ id: nowDbInst.id, dbs: nowDbInst.databases }, state.db)"
|
||||
<el-button type="primary" icon="plus"
|
||||
@click="addQueryTab({ id: nowDbInst.id, dbs: nowDbInst.databases }, state.db)"
|
||||
size="small">新建查询</el-button>
|
||||
</el-col>
|
||||
<el-col :span="20" v-if="state.db">
|
||||
@@ -23,7 +24,8 @@
|
||||
</el-row>
|
||||
<el-row type="flex">
|
||||
<el-col :span="4" style="border-left: 1px solid #eee; margin-top: 10px">
|
||||
<tag-tree ref="tagTreeRef" @node-click="nodeClick" :load="loadNode" :load-contextmenu-items="getContextmenuItems" @current-contextmenu-click="onCurrentContextmenuClick"
|
||||
<tag-tree ref="tagTreeRef" @node-click="nodeClick" :load="loadNode"
|
||||
:load-contextmenu-items="getContextmenuItems" @current-contextmenu-click="onCurrentContextmenuClick"
|
||||
:height="state.tagTreeHeight">
|
||||
<template #prefix="{ data }">
|
||||
<span v-if="data.type == NodeType.DbInst">
|
||||
@@ -246,7 +248,7 @@ const nodeClick = async (data: any) => {
|
||||
const dataType = data.type;
|
||||
// 点击数据库,修改当前数据库信息
|
||||
if (dataType === NodeType.Db || dataType === NodeType.SqlMenu || dataType === NodeType.TableMenu || dataType === NodeType.DbInst) {
|
||||
changeSchema({ id: params.id, name: params.name, type: params.type, tagPath: params.tagPath, databases: params.database}, params.db);
|
||||
changeSchema({ id: params.id, name: params.name, type: params.type, tagPath: params.tagPath, databases: params.database }, params.db);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -490,7 +492,7 @@ const registerSqlCompletionItemProvider = () => {
|
||||
// // const nextToken = nextTokens[0].toLowerCase()
|
||||
const tokens = textBeforePointer.trim().split(/\s+/)
|
||||
const lastToken = tokens[tokens.length - 1].toLowerCase()
|
||||
const secondToken = tokens.length >2 && tokens[tokens.length - 2].toLowerCase() || ''
|
||||
const secondToken = tokens.length > 2 && tokens[tokens.length - 2].toLowerCase() || ''
|
||||
|
||||
const dbs = nowTab.params?.dbs?.split(' ') || [];
|
||||
// console.log("光标前文本:=>" + textBeforePointerMulti)
|
||||
@@ -499,34 +501,34 @@ const registerSqlCompletionItemProvider = () => {
|
||||
let suggestions: languages.CompletionItem[] = []
|
||||
const tables = await dbInst.loadTables(db);
|
||||
|
||||
async function hintTableColumns (tableName, db) {
|
||||
let dbHits = await dbInst.loadDbHints(db)
|
||||
let columns = dbHits[tableName]
|
||||
let suggestions: languages.CompletionItem[] = []
|
||||
columns?.forEach((a: string, index: any) => {
|
||||
// 字段数据格式 字段名 字段注释, 如: create_time [datetime][创建时间]
|
||||
const nameAndComment = a.split(" ")
|
||||
const fieldName = nameAndComment[0]
|
||||
suggestions.push({
|
||||
label: {
|
||||
label: a,
|
||||
description: 'column'
|
||||
},
|
||||
kind: monaco.languages.CompletionItemKind.Property,
|
||||
detail: '', // 不显示detail, 否则选中时备注等会被遮挡
|
||||
insertText: fieldName + ' ', // create_time
|
||||
range,
|
||||
sortText: 100 + index + '' // 使用表字段声明顺序排序,排序需为字符串类型
|
||||
});
|
||||
})
|
||||
return suggestions
|
||||
async function hintTableColumns(tableName: any, db: any) {
|
||||
let dbHits = await dbInst.loadDbHints(db)
|
||||
let columns = dbHits[tableName]
|
||||
let suggestions: languages.CompletionItem[] = []
|
||||
columns?.forEach((a: string, index: any) => {
|
||||
// 字段数据格式 字段名 字段注释, 如: create_time [datetime][创建时间]
|
||||
const nameAndComment = a.split(" ")
|
||||
const fieldName = nameAndComment[0]
|
||||
suggestions.push({
|
||||
label: {
|
||||
label: a,
|
||||
description: 'column'
|
||||
},
|
||||
kind: monaco.languages.CompletionItemKind.Property,
|
||||
detail: '', // 不显示detail, 否则选中时备注等会被遮挡
|
||||
insertText: fieldName + ' ', // create_time
|
||||
range,
|
||||
sortText: 100 + index + '' // 使用表字段声明顺序排序,排序需为字符串类型
|
||||
});
|
||||
})
|
||||
return suggestions
|
||||
}
|
||||
|
||||
if (lastToken.indexOf('.') > -1 || secondToken.indexOf('.') > -1) {
|
||||
// 如果是.触发代码提示,则进行【 库.表名联想 】 或 【 表别名.表字段联想 】
|
||||
let str = lastToken.substring(0, lastToken.lastIndexOf('.'))
|
||||
if(lastToken.trim().startsWith('.')){
|
||||
str = secondToken
|
||||
if (lastToken.trim().startsWith('.')) {
|
||||
str = secondToken
|
||||
}
|
||||
|
||||
// 库.表名联想
|
||||
@@ -556,27 +558,27 @@ const registerSqlCompletionItemProvider = () => {
|
||||
let db = tableInfo.dbName;
|
||||
// 取出表名并提示
|
||||
let suggestions = await hintTableColumns(tableName, db);
|
||||
if(suggestions.length > 0){
|
||||
if (suggestions.length > 0) {
|
||||
return { suggestions };
|
||||
}
|
||||
}
|
||||
return { suggestions: [] }
|
||||
}else{
|
||||
// 如果sql里含有表名,则提示表字段
|
||||
let mat = textBeforePointerMulti.match(/from\n*\s+\n*(\w+)\n*\s+\n*/i)
|
||||
if(mat && mat.length > 1){
|
||||
let tableName = mat[1]
|
||||
// 取出表名并提示
|
||||
let suggestions = await hintTableColumns(tableName, db);
|
||||
if(suggestions.length > 0){
|
||||
return { suggestions };
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 如果sql里含有表名,则提示表字段
|
||||
let mat = textBeforePointerMulti.match(/from\n*\s+\n*(\w+)\n*\s+\n*/i)
|
||||
if (mat && mat.length > 1) {
|
||||
let tableName = mat[1]
|
||||
// 取出表名并提示
|
||||
let addSuggestions = await hintTableColumns(tableName, db);
|
||||
if (addSuggestions.length > 0) {
|
||||
suggestions = suggestions.concat(addSuggestions)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 表名联想
|
||||
tables.forEach((tableMeta: any) => {
|
||||
const {tableName, tableComment} = tableMeta;
|
||||
const { tableName, tableComment } = tableMeta;
|
||||
suggestions.push({
|
||||
label: {
|
||||
label: tableName + ' - ' + tableComment,
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog v-model="addDataDialog.visible" :title="addDataDialog.title" :destroy-on-close="true" width="600px">
|
||||
<el-form ref="dataForm" :model="addDataDialog.data" label-width="160px">
|
||||
<el-form ref="dataForm" :model="addDataDialog.data" label-width="160px" size="small">
|
||||
<el-form-item v-for="column in columns" class="w100" :prop="column.columnName" :label="column.columnName"
|
||||
:required="column.nullable != 'YES' && column.columnKey != 'PRI'">
|
||||
<el-input-number v-if="DbInst.isNumber(column.columnType)"
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
<el-button @click="scan()" icon="bottom" plain>scan</el-button>
|
||||
<el-button @click="showNewKeyDialog" type="primary" icon="plus" plain
|
||||
v-auth="'redis:data:save'"></el-button>
|
||||
<el-button @click="flushDb" type="danger" plain v-auth="'redis:data:save'">flush</el-button>
|
||||
</el-form-item>
|
||||
<div style="float: right">
|
||||
<span>keys: {{ state.dbsize }}</span>
|
||||
@@ -338,11 +339,6 @@ const showKeyDetail = async (row: any) => {
|
||||
state.keyDetailDialog.visible = true;
|
||||
};
|
||||
|
||||
const closeKeyDetail = () => {
|
||||
|
||||
// state.keyDetailDialog.visible = false;
|
||||
}
|
||||
|
||||
const showNewKeyDialog = () => {
|
||||
notNull(state.scanParam.id, '请先选择redis');
|
||||
notNull(state.scanParam.db, "请选择要操作的库")
|
||||
@@ -350,6 +346,24 @@ const showNewKeyDialog = () => {
|
||||
state.newKeyDialog.visible = true;
|
||||
}
|
||||
|
||||
const flushDb = () => {
|
||||
ElMessageBox.confirm(`确定清空[${state.scanParam.db}]库的所有key?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
redisApi.flushDb
|
||||
.request({
|
||||
id: state.scanParam.id,
|
||||
db: state.scanParam.db,
|
||||
})
|
||||
.then(() => {
|
||||
ElMessage.success('清除成功!');
|
||||
searchKey();
|
||||
});
|
||||
}).catch(() => { });
|
||||
}
|
||||
|
||||
const cancelNewKey = () => {
|
||||
resetKeyDetailInfo();
|
||||
state.newKeyDialog.visible = false;
|
||||
|
||||
@@ -33,6 +33,7 @@ export const redisApi = {
|
||||
|
||||
del: Api.newDelete("/redis/{id}/{db}/scan/{cursor}/{count}"),
|
||||
delKey: Api.newDelete("/redis/{id}/{db}/key"),
|
||||
flushDb: Api.newDelete("/redis/{id}/{db}/flushdb"),
|
||||
|
||||
lrem: Api.newPost("/redis/{id}/{db}/lrem"),
|
||||
getListValue: Api.newGet("/redis/{id}/{db}/list-value"),
|
||||
|
||||
@@ -6,7 +6,8 @@ export const resourceApi = {
|
||||
save: Api.newPost("/sys/resources"),
|
||||
update: Api.newPut("/sys/resources/{id}"),
|
||||
del: Api.newDelete("/sys/resources/{id}"),
|
||||
changeStatus: Api.newPut("/sys/resources/{id}/{status}")
|
||||
changeStatus: Api.newPut("/sys/resources/{id}/{status}"),
|
||||
sort: Api.newPost("/sys/resources/sort")
|
||||
}
|
||||
|
||||
export const roleApi = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="system-menu-dialog-container layout-pd">
|
||||
<el-dialog :title="title" :destroy-on-close="true" v-model="dialogVisible" width="800px">
|
||||
<el-form :model="form" :inline="true" ref="menuForm" :rules="rules" label-width="95px">
|
||||
<el-form :model="form" :inline="true" ref="menuForm" :rules="rules" label-width="100px">
|
||||
<el-row :gutter="35">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||
<el-form-item class="w100" prop="type" label="类型" required>
|
||||
@@ -19,31 +19,60 @@
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||
<el-form-item class="w100" prop="code" label="path|code">
|
||||
<template #label>
|
||||
path|code
|
||||
<el-tooltip effect="dark" content="菜单类型则为访问路径(若菜单路径不以'/'开头则访问地址会自动拼接父菜单路径)、否则为资源唯一编码"
|
||||
placement="top">
|
||||
<el-icon>
|
||||
<question-filled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-input v-model.trim="form.code" placeholder="菜单不以'/'开头则自动拼接父菜单路径"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||
<el-form-item class="w100" label="序号" prop="weight" required>
|
||||
<el-input v-model.number="form.weight" type="number" placeholder="请输入序号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
|
||||
<el-form-item class="w100" label="图标">
|
||||
<icon-selector v-model="form.meta.icon" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
|
||||
<el-form-item class="w100" prop="code" label="路由名">
|
||||
<el-form-item class="w100">
|
||||
<template #label>
|
||||
路由名
|
||||
<el-tooltip effect="dark" content="与vue的组件名一致才可使组件缓存生效,如ResourceList" placement="top">
|
||||
<el-icon>
|
||||
<question-filled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-input v-model.trim="form.meta.routeName" placeholder="请输入路由名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
|
||||
<el-form-item class="w100" prop="code" label="组件路径">
|
||||
<el-form-item class="w100" prop="code">
|
||||
<template #label>
|
||||
组件路径
|
||||
<el-tooltip effect="dark" content="访问的组件路径,如:`system/resource/ResourceList`,默认在`views`目录下"
|
||||
placement="top">
|
||||
<el-icon>
|
||||
<question-filled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-input v-model.trim="form.meta.component" placeholder="请输入组件路径"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
|
||||
<el-form-item class="w100" prop="code" label="是否缓存">
|
||||
<el-form-item class="w100" prop="isKeepAlive">
|
||||
<template #label>
|
||||
是否缓存
|
||||
<el-tooltip effect="dark" content="选择是则会被`keep-alive`缓存(重新进入页面不会刷新页面及重新请求数据),需要路由名与vue的组件名一致" placement="top">
|
||||
<el-icon>
|
||||
<question-filled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-select v-model="form.meta.isKeepAlive" placeholder="请选择" class="w100">
|
||||
<el-option v-for="item in trueFalseOption" :key="item.value" :label="item.label"
|
||||
:value="item.value"> </el-option>
|
||||
@@ -51,7 +80,15 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
|
||||
<el-form-item class="w100" prop="code" label="是否隐藏">
|
||||
<el-form-item class="w100">
|
||||
<template #label>
|
||||
是否隐藏
|
||||
<el-tooltip effect="dark" content="选择隐藏则路由将不会出现在菜单栏中,但仍然可以访问。禁用则不可访问与操作" placement="top">
|
||||
<el-icon>
|
||||
<question-filled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-select v-model="form.meta.isHide" placeholder="请选择" class="w100">
|
||||
<el-option v-for="item in trueFalseOption" :key="item.value" :label="item.label"
|
||||
:value="item.value"> </el-option>
|
||||
@@ -67,10 +104,16 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" v-if="form.type === menuTypeValue">
|
||||
<el-form-item class="w100" prop="code" label="外链">
|
||||
<el-form-item class="w100" prop="linkType">
|
||||
<template #label>
|
||||
外链
|
||||
<el-tooltip effect="dark" content="内嵌: 以iframe展示、外链: 新标签打开" placement="top">
|
||||
<el-icon>
|
||||
<question-filled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<el-select class="w100" @change="changeIsIframe" v-model="form.meta.linkType" placeholder="请选择">
|
||||
<!-- <el-option v-for="item in trueFalseOption" :key="item.value" :label="item.label"
|
||||
:value="item.value"> </el-option> -->
|
||||
<el-option :key="0" label="否" :value="0"> </el-option>
|
||||
<el-option :key="1" label="内嵌" :value="1"> </el-option>
|
||||
<el-option :key="2" label="外链" :value="2"> </el-option>
|
||||
@@ -146,13 +189,6 @@ const rules = {
|
||||
trigger: ['change', 'blur'],
|
||||
},
|
||||
],
|
||||
weight: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入序号',
|
||||
trigger: ['change', 'blur'],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
const trueFalseOption = [
|
||||
@@ -174,7 +210,6 @@ const state = reactive({
|
||||
pid: null,
|
||||
code: null,
|
||||
type: null,
|
||||
weight: 0,
|
||||
meta: {
|
||||
routeName: '',
|
||||
icon: '',
|
||||
|
||||
@@ -3,19 +3,20 @@
|
||||
<div class="toolbar">
|
||||
<div>
|
||||
<span style="font-size: 14px">
|
||||
<SvgIcon name="info-filled" />红色字体表示禁用状态
|
||||
<SvgIcon name="info-filled" />红色、橙色字体表示禁用状态
|
||||
</span>
|
||||
</div>
|
||||
<el-button v-auth="'resource:add'" type="primary" icon="plus" @click="addResource(false)">添加</el-button>
|
||||
</div>
|
||||
<el-tree class="none-select" :indent="38" node-key="id" :props="props" :data="data"
|
||||
@node-expand="handleNodeExpand" @node-collapse="handleNodeCollapse"
|
||||
:default-expanded-keys="defaultExpandedKeys" :expand-on-click-node="false">
|
||||
<el-tree class="none-select" :indent="38" node-key="id" :props="props" :data="data" @node-expand="handleNodeExpand"
|
||||
@node-collapse="handleNodeCollapse" :default-expanded-keys="defaultExpandedKeys" :expand-on-click-node="false"
|
||||
draggable :allow-drop="allowDrop" @node-drop="handleDrop">
|
||||
<template #default="{ data }">
|
||||
<span class="custom-tree-node">
|
||||
<span style="font-size: 13px" v-if="data.type === menuTypeValue">
|
||||
<span style="color: #3c8dbc">【</span>
|
||||
{{ data.name }}
|
||||
<span v-if="data.status == 1">{{ data.name }}</span>
|
||||
<span v-if="data.status == -1" style="color: #e6a23c;">{{ data.name }}</span>
|
||||
<span style="color: #3c8dbc">】</span>
|
||||
<el-tag v-if="data.children !== null" size="small">{{ data.children.length }}</el-tag>
|
||||
</span>
|
||||
@@ -31,21 +32,17 @@
|
||||
<el-link v-auth="'resource:update'" @click.prevent="editResource(data)" class="ml5" type="primary"
|
||||
icon="edit" :underline="false" />
|
||||
|
||||
<el-link v-auth="'resource:add'" @click.prevent="addResource(data)"
|
||||
v-if="data.type === menuTypeValue" icon="circle-plus" :underline="false"
|
||||
type="success" class="ml5" />
|
||||
<el-link v-auth="'resource:add'" @click.prevent="addResource(data)" v-if="data.type === menuTypeValue"
|
||||
icon="circle-plus" :underline="false" type="success" class="ml5" />
|
||||
|
||||
<el-link v-auth="'resource:changeStatus'" @click.prevent="changeStatus(data, -1)"
|
||||
v-if="data.status === 1 && data.type === permissionTypeValue"
|
||||
icon="circle-close" :underline="false" type="warning" class="ml5" />
|
||||
v-if="data.status === 1" icon="circle-close" :underline="false" type="warning" class="ml5" />
|
||||
|
||||
<el-link v-auth="'resource:changeStatus'" @click.prevent="changeStatus(data, 1)"
|
||||
v-if="data.status === -1 && data.type === permissionTypeValue"
|
||||
type="success" icon="circle-check" :underline="false" plain class="ml5" />
|
||||
v-if="data.status === -1" type="success" icon="circle-check" :underline="false" plain class="ml5" />
|
||||
|
||||
<el-link v-auth="'resource:delete'" v-if="data.children == null && data.name !== '首页'"
|
||||
@click.prevent="deleteMenu(data)" type="danger" icon="delete" :underline="false" plain
|
||||
class="ml5" />
|
||||
<el-link v-auth="'resource:delete'" @click.prevent="deleteMenu(data)" type="danger" icon="delete"
|
||||
:underline="false" plain class="ml5" />
|
||||
</span>
|
||||
</template>
|
||||
</el-tree>
|
||||
@@ -61,7 +58,9 @@
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="名称">{{ infoDialog.data.name }}</el-descriptions-item>
|
||||
<el-descriptions-item label="code[菜单path]">{{ infoDialog.data.code }}</el-descriptions-item>
|
||||
<el-descriptions-item label="序号">{{ infoDialog.data.weight }}</el-descriptions-item>
|
||||
<el-descriptions-item v-if="infoDialog.data.type == menuTypeValue" label="图标">
|
||||
<SvgIcon :name="infoDialog.data.meta.icon" />
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="infoDialog.data.type == menuTypeValue" label="路由名">
|
||||
{{ infoDialog.data.meta.routeName }}
|
||||
</el-descriptions-item>
|
||||
@@ -117,7 +116,7 @@ const state = reactive({
|
||||
type: null,
|
||||
title: '',
|
||||
visible: false,
|
||||
data: { pid: 0, type: 1, weight: 1 },
|
||||
data: { pid: 0, type: 1 },
|
||||
// 资源类型选择是否选
|
||||
typeDisabled: true,
|
||||
},
|
||||
@@ -134,7 +133,6 @@ const state = reactive({
|
||||
modifier: '',
|
||||
createTime: '',
|
||||
updateTime: '',
|
||||
weight: null,
|
||||
code: '',
|
||||
},
|
||||
},
|
||||
@@ -182,7 +180,7 @@ const deleteMenu = (data: any) => {
|
||||
|
||||
const addResource = (data: any) => {
|
||||
let dialog = state.dialogForm;
|
||||
dialog.data = { pid: 0, type: 1, weight: 1 };
|
||||
dialog.data = { pid: 0, type: 1 };
|
||||
// 添加顶级菜单情况
|
||||
if (!data) {
|
||||
dialog.typeDisabled = true;
|
||||
@@ -213,7 +211,6 @@ const addResource = (data: any) => {
|
||||
} else {
|
||||
dialog.data.type = menuTypeValue;
|
||||
}
|
||||
dialog.data.weight = data.children.length + 1;
|
||||
}
|
||||
dialog.visible = true;
|
||||
};
|
||||
@@ -242,7 +239,7 @@ const changeStatus = async (data: any, status: any) => {
|
||||
id: data.id,
|
||||
status: status,
|
||||
});
|
||||
data.status = status;
|
||||
search();
|
||||
ElMessage.success((status === 1 ? '启用' : '禁用') + '成功!');
|
||||
};
|
||||
|
||||
@@ -271,6 +268,51 @@ const handleNodeCollapse = (data: any, node: any) => {
|
||||
}
|
||||
};
|
||||
|
||||
const allowDrop = (draggingNode: any, dropNode: any, type: any) => {
|
||||
// 如果是插入至目标节点
|
||||
if (type === 'inner') {
|
||||
// 只有目标节点下没有子节点才允许移动
|
||||
if (!dropNode.data.children || dropNode.data.children == 0) {
|
||||
// 只有权限节点可移动至菜单节点下 或者移动菜单
|
||||
return (draggingNode.data.type == permissionTypeValue && dropNode.data.type == menuTypeValue) ||
|
||||
(draggingNode.data.type == menuTypeValue && dropNode.data.type == menuTypeValue)
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return draggingNode.data.type === dropNode.data.type;
|
||||
}
|
||||
|
||||
const handleDrop = async (
|
||||
draggingNode: any,
|
||||
dropNode: any,
|
||||
dropType: any,
|
||||
) => {
|
||||
const draggingData = draggingNode.data;
|
||||
const dropData = dropNode.data;
|
||||
if (draggingData.pid !== dropData.pid) {
|
||||
draggingData.pid = dropData.pid;
|
||||
}
|
||||
if (dropType === 'inner') {
|
||||
draggingData.weight = 1;
|
||||
draggingData.pid = dropData.id;
|
||||
}
|
||||
if (dropType === 'before') {
|
||||
draggingData.weight = dropData.weight - 1;
|
||||
}
|
||||
if (dropType === 'after') {
|
||||
draggingData.weight = dropData.weight + 1;
|
||||
}
|
||||
|
||||
await resourceApi.sort.request([
|
||||
{
|
||||
id: draggingData.id,
|
||||
name: draggingData.name,
|
||||
pid: draggingData.pid,
|
||||
weight: draggingData.weight
|
||||
},
|
||||
])
|
||||
}
|
||||
|
||||
const removeDeafultExpandId = (id: any) => {
|
||||
let index = state.defaultExpandedKeys.indexOf(id);
|
||||
if (index > -1) {
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
node.label
|
||||
}}</span>
|
||||
|
||||
<el-link @click.prevent="info(data)" style="margin-left: 25px" icon="InfoFilled" type="info"
|
||||
:underline="false" />
|
||||
<!-- <el-link @click.prevent="info(data)" style="margin-left: 25px" icon="InfoFilled" type="info"
|
||||
:underline="false" /> -->
|
||||
</span>
|
||||
</template>
|
||||
</el-tree>
|
||||
|
||||
@@ -15,7 +15,7 @@ require (
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2
|
||||
go.mongodb.org/mongo-driver v1.11.4 // mongo
|
||||
golang.org/x/crypto v0.9.0 // ssh
|
||||
golang.org/x/crypto v0.10.0 // ssh
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
// gorm
|
||||
gorm.io/driver/mysql v1.5.0
|
||||
@@ -58,7 +58,7 @@ require (
|
||||
golang.org/x/image v0.0.0-20220302094943-723b81ca9867 // indirect
|
||||
golang.org/x/net v0.10.0 // indirect
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
|
||||
golang.org/x/sys v0.8.0 // indirect
|
||||
golang.org/x/text v0.9.0 // indirect
|
||||
golang.org/x/sys v0.9.0 // indirect
|
||||
golang.org/x/text v0.10.0 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
)
|
||||
|
||||
@@ -52,6 +52,7 @@ func (r *Redis) Hset(rc *req.Ctx) {
|
||||
g := rc.GinCtx
|
||||
hashValue := new(form.HashValue)
|
||||
ginx.BindJsonAndValid(g, hashValue)
|
||||
rc.ReqParam = hashValue
|
||||
|
||||
hv := hashValue.Value[0]
|
||||
res, err := r.getRedisIns(rc).GetCmdable().HSet(context.TODO(), hashValue.Key, hv["field"].(string), hv["value"]).Result()
|
||||
|
||||
@@ -148,7 +148,7 @@ func (r *Redis) Scan(rc *req.Ctx) {
|
||||
func (r *Redis) TtlKey(rc *req.Ctx) {
|
||||
ri, key := r.checkKeyAndGetRedisIns(rc)
|
||||
ttl, err := ri.GetCmdable().TTL(context.Background(), key).Result()
|
||||
biz.ErrIsNil(err, "ttl失败: %s")
|
||||
biz.ErrIsNilAppendErr(err, "ttl失败: %s")
|
||||
|
||||
if ttl == -1 {
|
||||
rc.ResData = -1
|
||||
@@ -187,3 +187,10 @@ func (r *Redis) PersistKey(rc *req.Ctx) {
|
||||
rc.ReqParam = fmt.Sprintf("%s -> 移除key[%s]的过期时间", ri.Info.GetLogDesc(), key)
|
||||
ri.GetCmdable().Persist(context.Background(), key)
|
||||
}
|
||||
|
||||
// 清空库
|
||||
func (r *Redis) FlushDb(rc *req.Ctx) {
|
||||
ri := r.getRedisIns(rc)
|
||||
rc.ReqParam = fmt.Sprintf("%s -> flushdb", ri.Info.GetLogDesc())
|
||||
ri.GetCmdable().FlushDB(context.Background())
|
||||
}
|
||||
|
||||
@@ -91,6 +91,14 @@ func InitRedisRouter(router *gin.RouterGroup) {
|
||||
Handle(rs.PersistKey)
|
||||
})
|
||||
|
||||
flushDbL := req.NewLogInfo("redis-flushdb").WithSave(true)
|
||||
redis.DELETE(":id/:db/flushdb", func(c *gin.Context) {
|
||||
req.NewCtxWithGin(c).
|
||||
WithLog(flushDbL).
|
||||
WithRequiredPermission(saveDataP).
|
||||
Handle(rs.FlushDb)
|
||||
})
|
||||
|
||||
// 获取string类型值
|
||||
redis.GET(":id/:db/string-value", func(c *gin.Context) {
|
||||
req.NewCtxWithGin(c).Handle(rs.GetStringValue)
|
||||
|
||||
@@ -2,6 +2,7 @@ package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"mayfly-go/internal/sys/api/form"
|
||||
"mayfly-go/internal/sys/api/vo"
|
||||
"mayfly-go/internal/sys/application"
|
||||
@@ -46,8 +47,20 @@ func (r *Resource) DelResource(rc *req.Ctx) {
|
||||
}
|
||||
|
||||
func (r *Resource) ChangeStatus(rc *req.Ctx) {
|
||||
re := &entity.Resource{}
|
||||
re.Id = uint64(ginx.PathParamInt(rc.GinCtx, "id"))
|
||||
re.Status = int8(ginx.PathParamInt(rc.GinCtx, "status"))
|
||||
r.ResourceApp.Save(re)
|
||||
rid := uint64(ginx.PathParamInt(rc.GinCtx, "id"))
|
||||
status := int8(ginx.PathParamInt(rc.GinCtx, "status"))
|
||||
rc.ReqParam = fmt.Sprintf("id = %d, status = %d", rid, status)
|
||||
r.ResourceApp.ChangeStatus(rid, status)
|
||||
}
|
||||
|
||||
func (r *Resource) Sort(rc *req.Ctx) {
|
||||
var rs []form.ResourceForm
|
||||
rc.GinCtx.ShouldBindJSON(&rs)
|
||||
rc.ReqParam = rs
|
||||
|
||||
for _, v := range rs {
|
||||
sortE := &entity.Resource{Pid: v.Pid, Weight: v.Weight}
|
||||
sortE.Id = uint64(v.Id)
|
||||
r.ResourceApp.Sort(sortE)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ type ResourceManageVO struct {
|
||||
Name string `json:"name"`
|
||||
Type int `json:"type"`
|
||||
Status int `json:"status"`
|
||||
Weight int `json:"weight"`
|
||||
Creator string `json:"creator"`
|
||||
CreateTime *time.Time `json:"createTime"`
|
||||
}
|
||||
|
||||
@@ -4,8 +4,11 @@ import (
|
||||
"mayfly-go/internal/sys/domain/entity"
|
||||
"mayfly-go/internal/sys/domain/repository"
|
||||
"mayfly-go/pkg/biz"
|
||||
"mayfly-go/pkg/global"
|
||||
"mayfly-go/pkg/model"
|
||||
"mayfly-go/pkg/utils"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Resource interface {
|
||||
@@ -17,6 +20,10 @@ type Resource interface {
|
||||
|
||||
Save(entity *entity.Resource)
|
||||
|
||||
ChangeStatus(resourceId uint64, status int8)
|
||||
|
||||
Sort(re *entity.Resource)
|
||||
|
||||
Delete(id uint64)
|
||||
|
||||
GetAccountResources(accountId uint64, toEntity any)
|
||||
@@ -45,6 +52,7 @@ func (r *resourceAppImpl) GetByIdIn(ids []uint64, toEntity any, orderBy ...strin
|
||||
}
|
||||
|
||||
func (r *resourceAppImpl) Save(resource *entity.Resource) {
|
||||
// 更新操作
|
||||
if resource.Id != 0 {
|
||||
if resource.Code != "" {
|
||||
oldRes := r.GetById(resource.Id, "Code")
|
||||
@@ -54,17 +62,88 @@ func (r *resourceAppImpl) Save(resource *entity.Resource) {
|
||||
}
|
||||
}
|
||||
model.UpdateById(resource)
|
||||
} else {
|
||||
if pid := resource.Pid; pid != 0 {
|
||||
biz.IsTrue(r.GetById(uint64(pid)) != nil, "该父资源不存在")
|
||||
}
|
||||
// 默认启用状态
|
||||
if resource.Status == 0 {
|
||||
resource.Status = entity.ResourceStatusEnable
|
||||
}
|
||||
r.checkCode(resource.Code)
|
||||
model.Insert(resource)
|
||||
return
|
||||
}
|
||||
|
||||
// 生成随机八位唯一标识符
|
||||
ui := utils.RandString(8)
|
||||
if pid := resource.Pid; pid != 0 {
|
||||
pResource := r.GetById(uint64(pid))
|
||||
biz.IsTrue(pResource != nil, "该父资源不存在")
|
||||
resource.UiPath = pResource.UiPath + ui + entity.ResourceUiPathSp
|
||||
} else {
|
||||
resource.UiPath = ui + entity.ResourceUiPathSp
|
||||
}
|
||||
// 默认启用状态
|
||||
if resource.Status == 0 {
|
||||
resource.Status = entity.ResourceStatusEnable
|
||||
}
|
||||
r.checkCode(resource.Code)
|
||||
resource.Weight = int(time.Now().Unix())
|
||||
model.Insert(resource)
|
||||
}
|
||||
|
||||
func (r *resourceAppImpl) ChangeStatus(resourceId uint64, status int8) {
|
||||
resource := r.resourceRepo.GetById(resourceId)
|
||||
biz.NotNil(resource, "资源不存在")
|
||||
resource.Status = status
|
||||
r.resourceRepo.UpdateByUiPathLike(resource)
|
||||
}
|
||||
|
||||
func (r *resourceAppImpl) Sort(sortResource *entity.Resource) {
|
||||
resource := r.resourceRepo.GetById(sortResource.Id)
|
||||
biz.NotNil(resource, "资源不存在")
|
||||
// 未改变父节点,则更新排序值即可
|
||||
if sortResource.Pid == resource.Pid {
|
||||
saveE := &entity.Resource{Weight: sortResource.Weight}
|
||||
saveE.Id = sortResource.Id
|
||||
r.Save(saveE)
|
||||
return
|
||||
}
|
||||
|
||||
// 若资源原本唯一标识路径为:xxxx/yyyy/zzzz/,则获取其父节点路径标识 xxxx/yyyy/ 与自身节点标识 zzzz/
|
||||
splitStr := strings.Split(resource.UiPath, entity.ResourceUiPathSp)
|
||||
// 获取 zzzz/
|
||||
resourceUi := splitStr[len(splitStr)-2] + entity.ResourceUiPathSp
|
||||
// 获取父资源路径 xxxx/yyyy/
|
||||
var parentResourceUiPath string
|
||||
if len(splitStr) > 2 {
|
||||
parentResourceUiPath = strings.Split(resource.UiPath, resourceUi)[0]
|
||||
} else {
|
||||
parentResourceUiPath = resourceUi
|
||||
}
|
||||
|
||||
newParentResourceUiPath := ""
|
||||
if sortResource.Pid != 0 {
|
||||
newParentResource := r.resourceRepo.GetById(uint64(sortResource.Pid))
|
||||
biz.NotNil(newParentResource, "父资源不存在")
|
||||
newParentResourceUiPath = newParentResource.UiPath
|
||||
}
|
||||
|
||||
children := r.resourceRepo.GetChildren(resource.UiPath)
|
||||
for _, v := range children {
|
||||
if v.Id == sortResource.Id {
|
||||
continue
|
||||
}
|
||||
updateUiPath := &entity.Resource{}
|
||||
updateUiPath.Id = v.Id
|
||||
if parentResourceUiPath == resourceUi {
|
||||
updateUiPath.UiPath = newParentResourceUiPath + v.UiPath
|
||||
} else {
|
||||
updateUiPath.UiPath = strings.ReplaceAll(v.UiPath, parentResourceUiPath, newParentResourceUiPath)
|
||||
}
|
||||
r.Save(updateUiPath)
|
||||
}
|
||||
|
||||
// 更新零值使用map,因为pid=0表示根节点
|
||||
updateMap := map[string]interface{}{
|
||||
"pid": sortResource.Pid,
|
||||
"weight": sortResource.Weight,
|
||||
"ui_path": newParentResourceUiPath + resourceUi,
|
||||
}
|
||||
condition := new(entity.Resource)
|
||||
condition.Id = sortResource.Id
|
||||
global.Db.Model(condition).Updates(updateMap)
|
||||
}
|
||||
|
||||
func (r *resourceAppImpl) checkCode(code string) {
|
||||
@@ -73,19 +152,18 @@ func (r *resourceAppImpl) checkCode(code string) {
|
||||
}
|
||||
|
||||
func (r *resourceAppImpl) Delete(id uint64) {
|
||||
// 查找pid == id的资源
|
||||
condition := &entity.Resource{Pid: int(id)}
|
||||
var resources resourceList
|
||||
r.resourceRepo.GetResourceList(condition, &resources)
|
||||
resource := r.resourceRepo.GetById(id)
|
||||
biz.NotNil(resource, "资源不存在")
|
||||
|
||||
biz.IsTrue(len(resources) == 0, "请先删除该资源的所有子资源")
|
||||
model.DeleteById(condition, id)
|
||||
// 删除角色关联的资源信息
|
||||
model.DeleteByCondition(&entity.RoleResource{ResourceId: id})
|
||||
// 删除当前节点及其所有子节点
|
||||
children := r.resourceRepo.GetChildren(resource.UiPath)
|
||||
for _, v := range children {
|
||||
r.resourceRepo.Delete(v.Id)
|
||||
// 删除角色关联的资源信息
|
||||
model.DeleteByCondition(&entity.RoleResource{ResourceId: v.Id})
|
||||
}
|
||||
}
|
||||
|
||||
func (r *resourceAppImpl) GetAccountResources(accountId uint64, toEntity any) {
|
||||
r.resourceRepo.GetAccountResources(accountId, toEntity)
|
||||
}
|
||||
|
||||
type resourceList []entity.Resource
|
||||
|
||||
@@ -5,6 +5,7 @@ import "mayfly-go/pkg/model"
|
||||
type Resource struct {
|
||||
model.Model
|
||||
Pid int `json:"pid"`
|
||||
UiPath string // 唯一标识路径
|
||||
Type int8 `json:"type"` // 1:菜单路由;2:资源(按钮等)
|
||||
Status int8 `json:"status"` // 1:可用;-1:不可用
|
||||
Code string `json:"code"`
|
||||
@@ -24,4 +25,7 @@ const (
|
||||
// 资源状态
|
||||
ResourceTypeMenu int8 = 1
|
||||
ResourceTypePermission int8 = 2
|
||||
|
||||
// 唯一标识路径分隔符
|
||||
ResourceUiPathSp string = "/"
|
||||
)
|
||||
|
||||
@@ -18,4 +18,10 @@ type Resource interface {
|
||||
|
||||
// 获取账号资源列表
|
||||
GetAccountResources(accountId uint64, toEntity any)
|
||||
|
||||
// 获取所有子节点id
|
||||
GetChildren(uiPath string) []entity.Resource
|
||||
|
||||
// 根据uiPath右匹配更新所有相关类资源
|
||||
UpdateByUiPathLike(resource *entity.Resource)
|
||||
}
|
||||
|
||||
@@ -38,6 +38,18 @@ func (r *resourceRepoImpl) GetByCondition(condition *entity.Resource, cols ...st
|
||||
return model.GetBy(condition, cols...)
|
||||
}
|
||||
|
||||
func (r *resourceRepoImpl) GetChildren(uiPath string) []entity.Resource {
|
||||
sql := "SELECT id, ui_path FROM t_sys_resource WHERE ui_path LIKE ?"
|
||||
var rs []entity.Resource
|
||||
model.GetListBySql2Model(sql, &rs, uiPath+"%")
|
||||
return rs
|
||||
}
|
||||
|
||||
func (r *resourceRepoImpl) UpdateByUiPathLike(resource *entity.Resource) {
|
||||
sql := "UPDATE t_sys_resource SET status=? WHERE (ui_path LIKE ?)"
|
||||
model.ExecSql(sql, resource.Status, resource.UiPath+"%")
|
||||
}
|
||||
|
||||
func (r *resourceRepoImpl) GetAccountResources(accountId uint64, toEntity any) {
|
||||
sql := `SELECT
|
||||
m.id,
|
||||
@@ -51,7 +63,7 @@ func (r *resourceRepoImpl) GetAccountResources(accountId uint64, toEntity any) {
|
||||
FROM
|
||||
t_sys_resource m
|
||||
WHERE
|
||||
m.STATUS = 1
|
||||
m.status = 1
|
||||
AND m.id IN (
|
||||
SELECT DISTINCT
|
||||
( rmb.resource_id )
|
||||
|
||||
@@ -38,6 +38,13 @@ func InitResourceRouter(router *gin.RouterGroup) {
|
||||
Handle(r.ChangeStatus)
|
||||
})
|
||||
|
||||
sort := req.NewLogInfo("资源排序").WithSave(true)
|
||||
db.POST("sort", func(c *gin.Context) {
|
||||
req.NewCtxWithGin(c).
|
||||
WithLog(sort).
|
||||
Handle(r.Sort)
|
||||
})
|
||||
|
||||
delResource := req.NewLogInfo("删除资源").WithSave(true)
|
||||
dePermission := req.NewPermission("resource:delete")
|
||||
db.DELETE(":id", func(c *gin.Context) {
|
||||
|
||||
@@ -72,20 +72,15 @@ func (p *tagTreeAppImpl) Save(tag *entity.TagTree) {
|
||||
if tag.Pid != 0 {
|
||||
parentTag := p.tagTreeRepo.SelectById(tag.Pid)
|
||||
biz.NotNil(parentTag, "父节点不存在")
|
||||
tag.CodePath = parentTag.CodePath + entity.CodePathSeparator + tag.Code
|
||||
tag.CodePath = parentTag.CodePath + tag.Code + entity.CodePathSeparator
|
||||
} else {
|
||||
tag.CodePath = tag.Code
|
||||
tag.CodePath = tag.Code + entity.CodePathSeparator
|
||||
}
|
||||
// 判断该路径是否存在
|
||||
var hasLikeTags []entity.TagTree
|
||||
p.tagTreeRepo.SelectByCondition(&entity.TagTreeQuery{CodePathLike: tag.CodePath}, &hasLikeTags)
|
||||
biz.IsTrue(len(hasLikeTags) == 0, "已存在该标签路径开头的标签, 请修改该标识code")
|
||||
|
||||
// 校验同级标签,是否有以该code为开头的标识符
|
||||
p.tagTreeRepo.SelectByCondition(&entity.TagTreeQuery{Pid: tag.Pid}, &hasLikeTags)
|
||||
for _, v := range hasLikeTags {
|
||||
biz.IsTrue(!strings.HasPrefix(tag.Code, v.Code), "同级标签下的[%s]与[%s]存在相似开头字符, 请修改该标识code", v.Code, tag.Code)
|
||||
}
|
||||
p.tagTreeRepo.Insert(tag)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1,17 +1,3 @@
|
||||
/*
|
||||
Navicat Premium Data Transfer
|
||||
|
||||
Source Server Type : MySQL
|
||||
Source Server Version : 50730
|
||||
Source Schema : mayfly-go
|
||||
|
||||
Target Server Type : MySQL
|
||||
Target Server Version : 50730
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 18/11/2021 14:33:55
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
@@ -419,106 +405,107 @@ COMMIT;
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `t_sys_resource`;
|
||||
CREATE TABLE `t_sys_resource` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pid` int(11) NOT NULL COMMENT '父节点id',
|
||||
`type` tinyint(255) NOT NULL COMMENT '1:菜单路由;2:资源(按钮等)',
|
||||
`status` int(255) NOT NULL COMMENT '状态;1:可用,-1:禁用',
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pid` int NOT NULL COMMENT '父节点id',
|
||||
`ui_path` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '唯一标识路径',
|
||||
`type` tinyint NOT NULL COMMENT '1:菜单路由;2:资源(按钮等)',
|
||||
`status` int NOT NULL COMMENT '状态;1:可用,-1:禁用',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '名称',
|
||||
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '菜单路由为path,其他为唯一标识',
|
||||
`weight` int(11) DEFAULT NULL COMMENT '权重顺序',
|
||||
`weight` int DEFAULT NULL COMMENT '权重顺序',
|
||||
`meta` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '元数据',
|
||||
`creator_id` bigint(20) NOT NULL,
|
||||
`creator_id` bigint NOT NULL,
|
||||
`creator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
|
||||
`modifier_id` bigint(20) NOT NULL,
|
||||
`modifier_id` bigint NOT NULL,
|
||||
`modifier` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
|
||||
`create_time` datetime NOT NULL,
|
||||
`update_time` datetime NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='资源表';
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `t_sys_resource_ui_path_IDX` (`ui_path`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='资源表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of t_sys_resource
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `t_sys_resource` (id,pid,`type`,status,name,code,weight,meta,creator_id,creator,modifier_id,modifier,create_time,update_time) VALUES
|
||||
(1,0,1,1,'首页','/home',1,'{"component":"home/Home","icon":"HomeFilled","isAffix":true,"isKeepAlive":true,"routeName":"Home"}',1,'admin',1,'admin','2021-05-25 16:44:41','2023-03-14 14:27:07'),
|
||||
(2,0,1,1,'机器管理','/machine',4,'{"icon":"Monitor","isKeepAlive":true,"redirect":"machine/list","routeName":"Machine"}',1,'admin',1,'admin','2021-05-25 16:48:16','2022-10-06 14:58:49'),
|
||||
(3,2,1,1,'机器列表','machines',2,'{"component":"ops/machine/MachineList","icon":"Monitor","isKeepAlive":true,"routeName":"MachineList"}',2,'admin',1,'admin','2021-05-25 16:50:04','2023-03-15 17:14:44'),
|
||||
(4,0,1,1,'系统管理','/sys',8,'{"icon":"Setting","isKeepAlive":true,"redirect":"/sys/resources","routeName":"sys"}',1,'admin',1,'admin','2021-05-26 15:20:20','2022-10-06 14:59:53'),
|
||||
(5,4,1,1,'资源管理','resources',3,'{"component":"system/resource/ResourceList","icon":"Menu","isKeepAlive":true,"routeName":"ResourceList"}',1,'admin',1,'admin','2021-05-26 15:23:07','2023-03-14 15:44:34'),
|
||||
(11,4,1,1,'角色管理','roles',2,'{"component":"system/role/RoleList","icon":"Menu","isKeepAlive":true,"routeName":"RoleList"}',1,'admin',1,'admin','2021-05-27 11:15:35','2023-03-14 15:44:22'),
|
||||
(12,3,2,1,'机器终端按钮','machine:terminal',4,'',1,'admin',1,'admin','2021-05-28 14:06:02','2021-05-31 17:47:59'),
|
||||
(14,4,1,1,'账号管理','accounts',1,'{"component":"system/account/AccountList","icon":"Menu","isKeepAlive":true,"routeName":"AccountList"}',1,'admin',1,'admin','2021-05-28 14:56:25','2023-03-14 15:44:10'),
|
||||
(15,3,2,1,'文件管理按钮','machine:file',5,NULL,1,'admin',1,'admin','2021-05-31 17:44:37','2021-05-31 17:48:07'),
|
||||
(16,3,2,1,'机器添加按钮','machine:add',1,NULL,1,'admin',1,'admin','2021-05-31 17:46:11','2021-05-31 19:34:15'),
|
||||
(17,3,2,1,'机器编辑按钮','machine:update',2,NULL,1,'admin',1,'admin','2021-05-31 17:46:23','2021-05-31 19:34:18'),
|
||||
(18,3,2,1,'机器删除按钮','machine:del',3,NULL,1,'admin',1,'admin','2021-05-31 17:46:36','2021-05-31 19:34:17'),
|
||||
(19,14,2,1,'角色分配按钮','account:saveRoles',1,NULL,1,'admin',1,'admin','2021-05-31 17:50:51','2021-05-31 19:19:30'),
|
||||
(20,11,2,1,'分配菜单&权限按钮','role:saveResources',1,NULL,1,'admin',1,'admin','2021-05-31 17:51:41','2021-05-31 19:33:37'),
|
||||
(21,14,2,1,'账号删除按钮','account:del',2,'null',1,'admin',1,'admin','2021-05-31 18:02:01','2021-06-10 17:12:17'),
|
||||
(22,11,2,1,'角色删除按钮','role:del',2,NULL,1,'admin',1,'admin','2021-05-31 18:02:29','2021-05-31 19:33:38'),
|
||||
(23,11,2,1,'角色新增按钮','role:add',3,NULL,1,'admin',1,'admin','2021-05-31 18:02:44','2021-05-31 19:33:39'),
|
||||
(24,11,2,1,'角色编辑按钮','role:update',4,NULL,1,'admin',1,'admin','2021-05-31 18:02:57','2021-05-31 19:33:40'),
|
||||
(25,5,2,1,'资源新增按钮','resource:add',1,NULL,1,'admin',1,'admin','2021-05-31 18:03:33','2021-05-31 19:31:47'),
|
||||
(26,5,2,1,'资源删除按钮','resource:delete',2,NULL,1,'admin',1,'admin','2021-05-31 18:03:47','2021-05-31 19:29:40'),
|
||||
(27,5,2,1,'资源编辑按钮','resource:update',3,NULL,1,'admin',1,'admin','2021-05-31 18:04:03','2021-05-31 19:29:40'),
|
||||
(28,5,2,1,'资源禁用启用按钮','resource:changeStatus',4,NULL,1,'admin',1,'admin','2021-05-31 18:04:33','2021-05-31 18:04:33'),
|
||||
(29,14,2,1,'账号添加按钮','account:add',3,NULL,1,'admin',1,'admin','2021-05-31 19:23:42','2021-05-31 19:23:42'),
|
||||
(30,14,2,1,'账号编辑修改按钮','account:update',4,NULL,1,'admin',1,'admin','2021-05-31 19:23:58','2021-05-31 19:23:58'),
|
||||
(31,14,2,1,'账号管理基本权限','account',0,'null',1,'admin',1,'admin','2021-05-31 21:25:06','2021-06-22 11:20:34'),
|
||||
(32,5,2,1,'资源管理基本权限','resource',0,NULL,1,'admin',1,'admin','2021-05-31 21:25:25','2021-05-31 21:25:25'),
|
||||
(33,11,2,1,'角色管理基本权限','role',0,NULL,1,'admin',1,'admin','2021-05-31 21:25:40','2021-05-31 21:25:40'),
|
||||
(34,14,2,1,'账号启用禁用按钮','account:changeStatus',5,NULL,1,'admin',1,'admin','2021-05-31 21:29:48','2021-05-31 21:29:48'),
|
||||
(36,0,1,1,'DBMS','/dbms',5,'{"icon":"Coin","isKeepAlive":true,"routeName":"DBMS"}',1,'admin',1,'admin','2021-06-01 14:01:33','2023-03-15 17:31:08'),
|
||||
(37,3,2,1,'添加文件配置','machine:addFile',6,'null',1,'admin',1,'admin','2021-06-01 19:54:23','2021-06-01 19:54:23'),
|
||||
(38,36,1,1,'数据操作','sql-exec',1,'{"component":"ops/db/SqlExec","icon":"Coin","isKeepAlive":true,"routeName":"SqlExec"}',1,'admin',1,'admin','2021-06-03 09:09:29','2023-03-15 17:31:21'),
|
||||
(39,0,1,1,'个人中心','/personal',2,'{"component":"personal/index","icon":"UserFilled","isHide":true,"isKeepAlive":true,"routeName":"Personal"}',1,'admin',1,'admin','2021-06-03 14:25:35','2023-03-14 14:28:36'),
|
||||
(40,3,2,1,'文件管理-新增按钮','machine:file:add',7,'null',1,'admin',1,'admin','2021-06-08 11:06:26','2021-06-08 11:12:28'),
|
||||
(41,3,2,1,'文件管理-删除按钮','machine:file:del',8,'null',1,'admin',1,'admin','2021-06-08 11:06:49','2021-06-08 11:06:49'),
|
||||
(42,3,2,1,'文件管理-写入or下载文件权限','machine:file:write',9,'null',1,'admin',1,'admin','2021-06-08 11:07:27','2021-06-08 11:07:27'),
|
||||
(43,3,2,1,'文件管理-文件上传按钮','machine:file:upload',10,'null',1,'admin',1,'admin','2021-06-08 11:07:42','2021-06-08 11:07:42'),
|
||||
(44,3,2,1,'文件管理-删除文件按钮','machine:file:rm',11,'null',1,'admin',1,'admin','2021-06-08 11:08:12','2021-06-08 11:08:12'),
|
||||
(45,3,2,1,'脚本管理-保存脚本按钮','machine:script:save',12,'null',1,'admin',1,'admin','2021-06-08 11:09:01','2021-06-08 11:09:01'),
|
||||
(46,3,2,1,'脚本管理-删除按钮','machine:script:del',13,'null',1,'admin',1,'admin','2021-06-08 11:09:27','2021-06-08 11:09:27'),
|
||||
(47,3,2,1,'脚本管理-执行按钮','machine:script:run',14,'null',1,'admin',1,'admin','2021-06-08 11:09:50','2021-06-08 11:09:50'),
|
||||
(49,36,1,1,'数据库管理','dbs',2,'{"component":"ops/db/DbList","icon":"Coin","isKeepAlive":true,"routeName":"DbList"}',1,'admin',1,'admin','2021-07-07 15:13:55','2023-03-15 17:31:28'),
|
||||
(54,49,2,1,'数据库保存','db:save',1,'null',1,'admin',1,'admin','2021-07-08 17:30:36','2021-07-08 17:31:05'),
|
||||
(55,49,2,1,'数据库删除','db:del',2,'null',1,'admin',1,'admin','2021-07-08 17:30:48','2021-07-08 17:30:48'),
|
||||
(57,3,2,1,'基本权限','machine',0,'null',1,'admin',1,'admin','2021-07-09 10:48:02','2021-07-09 10:48:02'),
|
||||
(58,49,2,1,'基本权限','db',0,'null',1,'admin',1,'admin','2021-07-09 10:48:22','2021-07-09 10:48:22'),
|
||||
(59,38,2,1,'基本权限','db:exec',1,'null',1,'admin',1,'admin','2021-07-09 10:50:13','2021-07-09 10:50:13'),
|
||||
(60,0,1,1,'Redis','/redis',6,'{"icon":"iconfont icon-redis","isKeepAlive":true,"routeName":"RDS"}',1,'admin',1,'admin','2021-07-19 20:15:41','2023-03-15 16:44:59'),
|
||||
(61,60,1,1,'数据操作','data-operation',1,'{"component":"ops/redis/DataOperation","icon":"iconfont icon-redis","isKeepAlive":true,"routeName":"DataOperation"}',1,'admin',1,'admin','2021-07-19 20:17:29','2023-03-15 16:37:50'),
|
||||
(62,61,2,1,'基本权限','redis:data',1,'null',1,'admin',1,'admin','2021-07-19 20:18:54','2021-07-19 20:18:54'),
|
||||
(63,60,1,1,'redis管理','manage',2,'{"component":"ops/redis/RedisList","icon":"iconfont icon-redis","isKeepAlive":true,"routeName":"RedisList"}',1,'admin',1,'admin','2021-07-20 10:48:04','2023-03-15 16:38:00'),
|
||||
(64,63,2,1,'基本权限','redis:manage',1,'null',1,'admin',1,'admin','2021-07-20 10:48:26','2021-07-20 10:48:26'),
|
||||
(71,61,2,1,'数据保存','redis:data:save',6,'null',1,'admin',1,'admin','2021-08-17 11:20:37','2021-08-17 11:20:37'),
|
||||
(72,3,2,1,'终止进程','machine:killprocess',6,'null',1,'admin',1,'admin','2021-08-17 11:20:37','2021-08-17 11:20:37'),
|
||||
(79,0,1,1,'Mongo','/mongo',7,'{"icon":"iconfont icon-mongo","isKeepAlive":true,"routeName":"Mongo"}',1,'admin',1,'admin','2022-05-13 14:00:41','2023-03-16 14:23:22'),
|
||||
(80,79,1,1,'数据操作','mongo-data-operation',1,'{"component":"ops/mongo/MongoDataOp","icon":"iconfont icon-mongo","isKeepAlive":true,"routeName":"MongoDataOp"}',1,'admin',1,'admin','2022-05-13 14:03:58','2023-03-15 17:15:02'),
|
||||
(81,80,2,1,'基本权限','mongo:base',1,'null',1,'admin',1,'admin','2022-05-13 14:04:16','2022-05-13 14:04:16'),
|
||||
(82,79,1,1,'Mongo管理','mongo-manage',2,'{"component":"ops/mongo/MongoList","icon":"iconfont icon-mongo","isKeepAlive":true,"routeName":"MongoList"}',1,'admin',1,'admin','2022-05-16 18:13:06','2023-03-15 17:26:55'),
|
||||
(83,82,2,1,'基本权限','mongo:manage:base',1,'null',1,'admin',1,'admin','2022-05-16 18:13:25','2022-05-16 18:13:25'),
|
||||
(84,4,1,1,'操作日志','syslogs',4,'{"component":"system/syslog/SyslogList","icon":"Tickets","routeName":"SyslogList"}',1,'admin',1,'admin','2022-07-13 19:57:07','2023-03-14 15:44:45'),
|
||||
(85,84,2,1,'操作日志基本权限','syslog',1,'null',1,'admin',1,'admin','2022-07-13 19:57:55','2022-07-13 19:57:55'),
|
||||
(87,4,1,1,'系统配置','configs',5,'{"component":"system/config/ConfigList","icon":"Setting","isKeepAlive":true,"routeName":"ConfigList"}',1,'admin',1,'admin','2022-08-25 22:18:55','2023-03-15 11:06:07'),
|
||||
(88,87,2,1,'基本权限','config:base',1,'null',1,'admin',1,'admin','2022-08-25 22:19:35','2022-08-25 22:19:35'),
|
||||
(93,0,1,1,'标签管理','/tag',3,'{"icon":"CollectionTag","isKeepAlive":true,"routeName":"Tag"}',1,'admin',1,'admin','2022-10-24 15:18:40','2022-10-24 15:24:29'),
|
||||
(94,93,1,1,'标签树','tag-trees',1,'{"component":"ops/tag/TagTreeList","icon":"CollectionTag","isKeepAlive":true,"routeName":"TagTreeList"}',1,'admin',1,'admin','2022-10-24 15:19:40','2023-03-14 14:30:51'),
|
||||
(95,93,1,1,'团队管理','teams',2,'{"component":"ops/tag/TeamList","icon":"UserFilled","isKeepAlive":true,"routeName":"TeamList"}',1,'admin',1,'admin','2022-10-24 15:20:09','2023-03-14 14:31:03'),
|
||||
(96,94,2,1,'保存标签','tag:save',1,'null',1,'admin',1,'admin','2022-10-24 15:20:40','2022-10-26 13:58:36'),
|
||||
(97,95,2,1,'保存团队','team:save',1,'null',1,'admin',1,'admin','2022-10-24 15:20:57','2022-10-26 13:58:56'),
|
||||
(98,94,2,1,'删除标签','tag:del',2,'null',1,'admin',1,'admin','2022-10-26 13:58:47','2022-10-26 13:58:47'),
|
||||
(99,95,2,1,'删除团队','team:del',2,'null',1,'admin',1,'admin','2022-10-26 13:59:06','2022-10-26 13:59:06'),
|
||||
(100,95,2,1,'新增团队成员','team:member:save',3,'null',1,'admin',1,'admin','2022-10-26 13:59:27','2022-10-26 13:59:27'),
|
||||
(101,95,2,1,'移除团队成员','team:member:del',4,'null',1,'admin',1,'admin','2022-10-26 13:59:43','2022-10-26 13:59:43'),
|
||||
(102,95,2,1,'保存团队标签','team:tag:save',5,'null',1,'admin',1,'admin','2022-10-26 13:59:57','2022-10-26 13:59:57'),
|
||||
(103,2,1,1,'授权凭证','authcerts',6,'{"component":"ops/machine/authcert/AuthCertList","icon":"Unlock","isKeepAlive":true,"routeName":"AuthCertList"}',1,'admin',1,'admin','2023-02-23 11:36:26','2023-03-14 14:33:28'),
|
||||
(104,103,2,1,'基本权限','authcert',1,'null',1,'admin',1,'admin','2023-02-23 11:37:24','2023-02-23 11:37:24'),
|
||||
(105,103,2,1,'保存权限','authcert:save',2,'null',1,'admin',1,'admin','2023-02-23 11:37:54','2023-02-23 11:37:54'),
|
||||
(106,103,2,1,'删除权限','authcert:del',3,'null',1,'admin',1,'admin','2023-02-23 11:38:09','2023-02-23 11:38:09'),
|
||||
(108,61,2,1,'数据删除','redis:data:del',3,'null',1,'admin',1,'admin','2023-03-14 17:20:00','2023-03-14 17:20:00'),
|
||||
(109,3,2,1,'关闭连接','machine:close-cli',6,'null',1,'admin',1,'admin','2023-03-16 16:11:04','2023-03-16 16:11:04');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(1, 0, 'Aexqq77l/', 1, 1, '首页', '/home', 10000000, '{"component":"home/Home","icon":"HomeFilled","isAffix":true,"isKeepAlive":true,"routeName":"Home"}', 1, 'admin', 1, 'admin', '2021-05-25 16:44:41', '2023-03-14 14:27:07');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(2, 0, '12sSjal1/', 1, 1, '机器管理', '/machine', 49999998, '{"icon":"Monitor","isKeepAlive":true,"redirect":"machine/list","routeName":"Machine"}', 1, 'admin', 1, 'admin', '2021-05-25 16:48:16', '2022-10-06 14:58:49');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(3, 2, '12sSjal1/lskeiql1/', 1, 1, '机器列表', 'machines', 20000000, '{"component":"ops/machine/MachineList","icon":"Monitor","isKeepAlive":true,"routeName":"MachineList"}', 2, 'admin', 1, 'admin', '2021-05-25 16:50:04', '2023-03-15 17:14:44');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(4, 0, 'Xlqig32x/', 1, 1, '系统管理', '/sys', 60000001, '{"icon":"Setting","isKeepAlive":true,"redirect":"/sys/resources","routeName":"sys"}', 1, 'admin', 1, 'admin', '2021-05-26 15:20:20', '2022-10-06 14:59:53');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(5, 4, 'Xlqig32x/UGxla231/', 1, 1, '资源管理', 'resources', 9999999, '{"component":"system/resource/ResourceList","icon":"Menu","isKeepAlive":true,"routeName":"ResourceList"}', 1, 'admin', 1, 'admin', '2021-05-26 15:23:07', '2023-03-14 15:44:34');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(11, 4, 'Xlqig32x/lxqSiae1/', 1, 1, '角色管理', 'roles', 10000001, '{"component":"system/role/RoleList","icon":"Menu","isKeepAlive":true,"routeName":"RoleList"}', 1, 'admin', 1, 'admin', '2021-05-27 11:15:35', '2023-03-14 15:44:22');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(12, 3, '12sSjal1/lskeiql1/Alw1Xkq3/', 2, 1, '机器终端按钮', 'machine:terminal', 40000000, '', 1, 'admin', 1, 'admin', '2021-05-28 14:06:02', '2021-05-31 17:47:59');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(14, 4, 'Xlqig32x/sfslfel/', 1, 1, '账号管理', 'accounts', 9999999, '{"component":"system/account/AccountList","icon":"Menu","isKeepAlive":true,"routeName":"AccountList"}', 1, 'admin', 1, 'admin', '2021-05-28 14:56:25', '2023-03-14 15:44:10');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(15, 3, '12sSjal1/lskeiql1/Lsew24Kx/', 2, 1, '文件管理按钮', 'machine:file', 50000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 17:44:37', '2021-05-31 17:48:07');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(16, 3, '12sSjal1/lskeiql1/exIsqL31/', 2, 1, '机器添加按钮', 'machine:add', 10000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 17:46:11', '2021-05-31 19:34:15');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(17, 3, '12sSjal1/lskeiql1/Liwakg2x/', 2, 1, '机器编辑按钮', 'machine:update', 20000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 17:46:23', '2021-05-31 19:34:18');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(18, 3, '12sSjal1/lskeiql1/Lieakenx/', 2, 1, '机器删除按钮', 'machine:del', 30000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 17:46:36', '2021-05-31 19:34:17');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(19, 14, 'Xlqig32x/sfslfel/UUiex2xA/', 2, 1, '角色分配按钮', 'account:saveRoles', 10000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 17:50:51', '2021-05-31 19:19:30');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(20, 11, 'Xlqig32x/lxqSiae1/EMq2Kxq3/', 2, 1, '分配菜单&权限按钮', 'role:saveResources', 10000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 17:51:41', '2021-05-31 19:33:37');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(21, 14, 'Xlqig32x/sfslfel/Uexax2xA/', 2, 1, '账号删除按钮', 'account:del', 20000000, 'null', 1, 'admin', 1, 'admin', '2021-05-31 18:02:01', '2021-06-10 17:12:17');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(22, 11, 'Xlqig32x/lxqSiae1/Elxq2Kxq3/', 2, 1, '角色删除按钮', 'role:del', 20000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:02:29', '2021-05-31 19:33:38');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(23, 11, 'Xlqig32x/lxqSiae1/342xKxq3/', 2, 1, '角色新增按钮', 'role:add', 30000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:02:44', '2021-05-31 19:33:39');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(24, 11, 'Xlqig32x/lxqSiae1/LexqKxq3/', 2, 1, '角色编辑按钮', 'role:update', 40000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:02:57', '2021-05-31 19:33:40');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(25, 5, 'Xlqig32x/UGxla231/Elxq23XK/', 2, 1, '资源新增按钮', 'resource:add', 10000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:03:33', '2021-05-31 19:31:47');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(26, 5, 'Xlqig32x/UGxla231/eloq23XK/', 2, 1, '资源删除按钮', 'resource:delete', 20000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:03:47', '2021-05-31 19:29:40');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(27, 5, 'Xlqig32x/UGxla231/JExq23XK/', 2, 1, '资源编辑按钮', 'resource:update', 30000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:04:03', '2021-05-31 19:29:40');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(28, 5, 'Xlqig32x/UGxla231/Elex13XK/', 2, 1, '资源禁用启用按钮', 'resource:changeStatus', 40000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 18:04:33', '2021-05-31 18:04:33');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(29, 14, 'Xlqig32x/sfslfel/xlawx2xA/', 2, 1, '账号添加按钮', 'account:add', 30000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 19:23:42', '2021-05-31 19:23:42');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(30, 14, 'Xlqig32x/sfslfel/32xax2xA/', 2, 1, '账号编辑修改按钮', 'account:update', 40000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 19:23:58', '2021-05-31 19:23:58');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(31, 14, 'Xlqig32x/sfslfel/eubale13/', 2, 1, '账号管理基本权限', 'account', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-05-31 21:25:06', '2021-06-22 11:20:34');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(32, 5, 'Xlqig32x/UGxla231/321q23XK/', 2, 1, '资源管理基本权限', 'resource', 10000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 21:25:25', '2021-05-31 21:25:25');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(33, 11, 'Xlqig32x/lxqSiae1/908xKxq3/', 2, 1, '角色管理基本权限', 'role', 10000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 21:25:40', '2021-05-31 21:25:40');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(34, 14, 'Xlqig32x/sfslfel/32alx2xA/', 2, 1, '账号启用禁用按钮', 'account:changeStatus', 50000000, NULL, 1, 'admin', 1, 'admin', '2021-05-31 21:29:48', '2021-05-31 21:29:48');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(36, 0, 'dbms23ax/', 1, 1, 'DBMS', '/dbms', 49999999, '{"icon":"Coin","isKeepAlive":true,"routeName":"DBMS"}', 1, 'admin', 1, 'admin', '2021-06-01 14:01:33', '2023-03-15 17:31:08');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(37, 3, '12sSjal1/lskeiql1/Keiqkx4L/', 2, 1, '添加文件配置', 'machine:addFile', 60000000, 'null', 1, 'admin', 1, 'admin', '2021-06-01 19:54:23', '2021-06-01 19:54:23');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(38, 36, 'dbms23ax/exaeca2x/', 1, 1, '数据操作', 'sql-exec', 10000000, '{"component":"ops/db/SqlExec","icon":"Coin","isKeepAlive":true,"routeName":"SqlExec"}', 1, 'admin', 1, 'admin', '2021-06-03 09:09:29', '2023-03-15 17:31:21');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(39, 0, 'sl3as23x/', 1, 1, '个人中心', '/personal', 19999999, '{"component":"personal/index","icon":"UserFilled","isHide":true,"isKeepAlive":true,"routeName":"Personal"}', 1, 'admin', 1, 'admin', '2021-06-03 14:25:35', '2023-03-14 14:28:36');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(40, 3, '12sSjal1/lskeiql1/Keal2Xke/', 2, 1, '文件管理-新增按钮', 'machine:file:add', 70000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:06:26', '2021-06-08 11:12:28');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(41, 3, '12sSjal1/lskeiql1/Ihfs2xaw/', 2, 1, '文件管理-删除按钮', 'machine:file:del', 80000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:06:49', '2021-06-08 11:06:49');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(42, 3, '12sSjal1/lskeiql1/', 2, 1, '文件管理-写入or下载文件权限', 'machine:file:write', 90000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:07:27', '2021-06-08 11:07:27');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(43, 3, '12sSjal1/lskeiql1/Ljewix43/', 2, 1, '文件管理-文件上传按钮', 'machine:file:upload', 100000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:07:42', '2021-06-08 11:07:42');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(44, 3, '12sSjal1/lskeiql1/L12wix43/', 2, 1, '文件管理-删除文件按钮', 'machine:file:rm', 110000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:08:12', '2021-06-08 11:08:12');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(45, 3, '12sSjal1/lskeiql1/Ljewisd3/', 2, 1, '脚本管理-保存脚本按钮', 'machine:script:save', 120000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:09:01', '2021-06-08 11:09:01');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(46, 3, '12sSjal1/lskeiql1/Ljeew43/', 2, 1, '脚本管理-删除按钮', 'machine:script:del', 130000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:09:27', '2021-06-08 11:09:27');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(47, 3, '12sSjal1/lskeiql1/ODewix43/', 2, 1, '脚本管理-执行按钮', 'machine:script:run', 140000000, 'null', 1, 'admin', 1, 'admin', '2021-06-08 11:09:50', '2021-06-08 11:09:50');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(49, 36, 'dbms23ax/xleaiec2/', 1, 1, '数据库管理', 'dbs', 20000000, '{"component":"ops/db/DbList","icon":"Coin","isKeepAlive":true,"routeName":"DbList"}', 1, 'admin', 1, 'admin', '2021-07-07 15:13:55', '2023-03-15 17:31:28');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(54, 49, 'dbms23ax/xleaiec2/leix3Axl/', 2, 1, '数据库保存', 'db:save', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-07-08 17:30:36', '2021-07-08 17:31:05');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(55, 49, 'dbms23ax/xleaiec2/ygjL3sxA/', 2, 1, '数据库删除', 'db:del', 20000000, 'null', 1, 'admin', 1, 'admin', '2021-07-08 17:30:48', '2021-07-08 17:30:48');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(57, 3, '12sSjal1/lskeiql1/OJewex43/', 2, 1, '基本权限', 'machine', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-07-09 10:48:02', '2021-07-09 10:48:02');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(58, 49, 'dbms23ax/xleaiec2/AceXe321/', 2, 1, '基本权限', 'db', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-07-09 10:48:22', '2021-07-09 10:48:22');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(59, 38, 'dbms23ax/exaeca2x/ealcia23/', 2, 1, '基本权限', 'db:exec', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-07-09 10:50:13', '2021-07-09 10:50:13');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(60, 0, 'RedisXq4/', 1, 1, 'Redis', '/redis', 50000001, '{"icon":"iconfont icon-redis","isKeepAlive":true,"routeName":"RDS"}', 1, 'admin', 1, 'admin', '2021-07-19 20:15:41', '2023-03-15 16:44:59');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(61, 60, 'RedisXq4/Exitx4al/', 1, 1, '数据操作', 'data-operation', 10000000, '{"component":"ops/redis/DataOperation","icon":"iconfont icon-redis","isKeepAlive":true,"routeName":"DataOperation"}', 1, 'admin', 1, 'admin', '2021-07-19 20:17:29', '2023-03-15 16:37:50');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(62, 61, 'RedisXq4/Exitx4al/LSjie321/', 2, 1, '基本权限', 'redis:data', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-07-19 20:18:54', '2021-07-19 20:18:54');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(63, 60, 'RedisXq4/Eoaljc12/', 1, 1, 'redis管理', 'manage', 20000000, '{"component":"ops/redis/RedisList","icon":"iconfont icon-redis","isKeepAlive":true,"routeName":"RedisList"}', 1, 'admin', 1, 'admin', '2021-07-20 10:48:04', '2023-03-15 16:38:00');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(64, 63, 'RedisXq4/Eoaljc12/IoxqAd31/', 2, 1, '基本权限', 'redis:manage', 10000000, 'null', 1, 'admin', 1, 'admin', '2021-07-20 10:48:26', '2021-07-20 10:48:26');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(71, 61, 'RedisXq4/Exitx4al/IUlxia23/', 2, 1, '数据保存', 'redis:data:save', 60000000, 'null', 1, 'admin', 1, 'admin', '2021-08-17 11:20:37', '2021-08-17 11:20:37');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(72, 3, '12sSjal1/lskeiql1/LIEwix43/', 2, 1, '终止进程', 'machine:killprocess', 60000000, 'null', 1, 'admin', 1, 'admin', '2021-08-17 11:20:37', '2021-08-17 11:20:37');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(79, 0, 'Mongo452/', 1, 1, 'Mongo', '/mongo', 50000002, '{"icon":"iconfont icon-mongo","isKeepAlive":true,"routeName":"Mongo"}', 1, 'admin', 1, 'admin', '2022-05-13 14:00:41', '2023-03-16 14:23:22');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(80, 79, 'Mongo452/eggago31/', 1, 1, '数据操作', 'mongo-data-operation', 10000000, '{"component":"ops/mongo/MongoDataOp","icon":"iconfont icon-mongo","isKeepAlive":true,"routeName":"MongoDataOp"}', 1, 'admin', 1, 'admin', '2022-05-13 14:03:58', '2023-03-15 17:15:02');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(81, 80, 'Mongo452/eggago31/egjglal3/', 2, 1, '基本权限', 'mongo:base', 10000000, 'null', 1, 'admin', 1, 'admin', '2022-05-13 14:04:16', '2022-05-13 14:04:16');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(82, 79, 'Mongo452/ghxagl43/', 1, 1, 'Mongo管理', 'mongo-manage', 20000000, '{"component":"ops/mongo/MongoList","icon":"iconfont icon-mongo","isKeepAlive":true,"routeName":"MongoList"}', 1, 'admin', 1, 'admin', '2022-05-16 18:13:06', '2023-03-15 17:26:55');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(83, 82, 'Mongo452/ghxagl43/egljbla3/', 2, 1, '基本权限', 'mongo:manage:base', 10000000, 'null', 1, 'admin', 1, 'admin', '2022-05-16 18:13:25', '2022-05-16 18:13:25');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(84, 4, 'Xlqig32x/exlaeAlx/', 1, 1, '操作日志', 'syslogs', 20000000, '{"component":"system/syslog/SyslogList","icon":"Tickets","routeName":"SyslogList"}', 1, 'admin', 1, 'admin', '2022-07-13 19:57:07', '2023-03-14 15:44:45');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(85, 84, 'Xlqig32x/exlaeAlx/3xlqeXql/', 2, 1, '操作日志基本权限', 'syslog', 10000000, 'null', 1, 'admin', 1, 'admin', '2022-07-13 19:57:55', '2022-07-13 19:57:55');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(87, 4, 'Xlqig32x/Ulxaee23/', 1, 1, '系统配置', 'configs', 10000002, '{"component":"system/config/ConfigList","icon":"Setting","isKeepAlive":true,"routeName":"ConfigList"}', 1, 'admin', 1, 'admin', '2022-08-25 22:18:55', '2023-03-15 11:06:07');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(88, 87, 'Xlqig32x/Ulxaee23/exlqguA3/', 2, 1, '基本权限', 'config:base', 10000000, 'null', 1, 'admin', 1, 'admin', '2022-08-25 22:19:35', '2022-08-25 22:19:35');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(93, 0, 'Tag3fhad/', 1, 1, '标签管理', '/tag', 20000001, '{"icon":"CollectionTag","isKeepAlive":true,"routeName":"Tag"}', 1, 'admin', 1, 'admin', '2022-10-24 15:18:40', '2022-10-24 15:24:29');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(94, 93, 'Tag3fhad/glxajg23/', 1, 1, '标签树', 'tag-trees', 10000000, '{"component":"ops/tag/TagTreeList","icon":"CollectionTag","isKeepAlive":true,"routeName":"TagTreeList"}', 1, 'admin', 1, 'admin', '2022-10-24 15:19:40', '2023-03-14 14:30:51');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(95, 93, 'Tag3fhad/Bjlag32x/', 1, 1, '团队管理', 'teams', 20000000, '{"component":"ops/tag/TeamList","icon":"UserFilled","isKeepAlive":true,"routeName":"TeamList"}', 1, 'admin', 1, 'admin', '2022-10-24 15:20:09', '2023-03-14 14:31:03');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(96, 94, 'Tag3fhad/glxajg23/gkxagt23/', 2, 1, '保存标签', 'tag:save', 10000000, 'null', 1, 'admin', 1, 'admin', '2022-10-24 15:20:40', '2022-10-26 13:58:36');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(97, 95, 'Tag3fhad/Bjlag32x/GJslag32/', 2, 1, '保存团队', 'team:save', 10000000, 'null', 1, 'admin', 1, 'admin', '2022-10-24 15:20:57', '2022-10-26 13:58:56');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(98, 94, 'Tag3fhad/glxajg23/xjgalte2/', 2, 1, '删除标签', 'tag:del', 20000000, 'null', 1, 'admin', 1, 'admin', '2022-10-26 13:58:47', '2022-10-26 13:58:47');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(99, 95, 'Tag3fhad/Bjlag32x/Gguca23x/', 2, 1, '删除团队', 'team:del', 20000000, 'null', 1, 'admin', 1, 'admin', '2022-10-26 13:59:06', '2022-10-26 13:59:06');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(100, 95, 'Tag3fhad/Bjlag32x/Lgidsq32/', 2, 1, '新增团队成员', 'team:member:save', 30000000, 'null', 1, 'admin', 1, 'admin', '2022-10-26 13:59:27', '2022-10-26 13:59:27');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(101, 95, 'Tag3fhad/Bjlag32x/Lixaue3G/', 2, 1, '移除团队成员', 'team:member:del', 40000000, 'null', 1, 'admin', 1, 'admin', '2022-10-26 13:59:43', '2022-10-26 13:59:43');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(102, 95, 'Tag3fhad/Bjlag32x/Oygsq3xg/', 2, 1, '保存团队标签', 'team:tag:save', 50000000, 'null', 1, 'admin', 1, 'admin', '2022-10-26 13:59:57', '2022-10-26 13:59:57');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(103, 2, '12sSjal1/exahgl32/', 1, 1, '授权凭证', 'authcerts', 60000000, '{"component":"ops/machine/authcert/AuthCertList","icon":"Unlock","isKeepAlive":true,"routeName":"AuthCertList"}', 1, 'admin', 1, 'admin', '2023-02-23 11:36:26', '2023-03-14 14:33:28');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(104, 103, '12sSjal1/exahgl32/egxahg24/', 2, 1, '基本权限', 'authcert', 10000000, 'null', 1, 'admin', 1, 'admin', '2023-02-23 11:37:24', '2023-02-23 11:37:24');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(105, 103, '12sSjal1/exahgl32/yglxahg2/', 2, 1, '保存权限', 'authcert:save', 20000000, 'null', 1, 'admin', 1, 'admin', '2023-02-23 11:37:54', '2023-02-23 11:37:54');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(106, 103, '12sSjal1/exahgl32/Glxag234/', 2, 1, '删除权限', 'authcert:del', 30000000, 'null', 1, 'admin', 1, 'admin', '2023-02-23 11:38:09', '2023-02-23 11:38:09');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(108, 61, 'RedisXq4/Exitx4al/Gxlagheg/', 2, 1, '数据删除', 'redis:data:del', 30000000, 'null', 1, 'admin', 1, 'admin', '2023-03-14 17:20:00', '2023-03-14 17:20:00');
|
||||
INSERT INTO t_sys_resource (id, pid, ui_path, `type`, status, name, code, weight, meta, creator_id, creator, modifier_id, modifier, create_time, update_time) VALUES(109, 3, '12sSjal1/lskeiql1/KMdsix43/', 2, 1, '关闭连接', 'machine:close-cli', 60000000, 'null', 1, 'admin', 1, 'admin', '2023-03-16 16:11:04', '2023-03-16 16:11:04');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
@@ -569,170 +556,170 @@ CREATE TABLE `t_sys_role_resource` (
|
||||
-- Records of t_sys_role_resource
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `t_sys_role_resource` (id,role_id,resource_id,creator_id,creator,create_time) VALUES
|
||||
(1,1,1,1,'admin','2021-05-27 15:07:39'),
|
||||
(323,1,2,1,'admin','2021-05-28 09:04:50'),
|
||||
(326,1,4,1,'admin','2021-05-28 09:04:50'),
|
||||
(327,1,5,1,'admin','2021-05-28 09:04:50'),
|
||||
(328,1,11,1,'admin','2021-05-28 09:04:50'),
|
||||
(335,1,14,1,'admin','2021-05-28 17:42:21'),
|
||||
(336,1,3,1,'admin','2021-05-28 17:42:43'),
|
||||
(337,1,12,1,'admin','2021-05-28 17:42:43'),
|
||||
(338,6,2,1,'admin','2021-05-28 19:19:38'),
|
||||
(339,6,3,1,'admin','2021-05-28 19:19:38'),
|
||||
(342,6,1,1,'admin','2021-05-29 01:31:22'),
|
||||
(343,5,1,1,'admin','2021-05-31 14:05:23'),
|
||||
(344,5,4,1,'admin','2021-05-31 14:05:23'),
|
||||
(345,5,14,1,'admin','2021-05-31 14:05:23'),
|
||||
(346,5,5,1,'admin','2021-05-31 14:05:23'),
|
||||
(347,5,11,1,'admin','2021-05-31 14:05:23'),
|
||||
(348,5,3,1,'admin','2021-05-31 16:33:14'),
|
||||
(349,5,12,1,'admin','2021-05-31 16:33:14'),
|
||||
(350,5,2,1,'admin','2021-05-31 16:33:14'),
|
||||
(353,1,15,1,'admin','2021-05-31 17:48:33'),
|
||||
(354,1,16,1,'admin','2021-05-31 17:48:33'),
|
||||
(355,1,17,1,'admin','2021-05-31 17:48:33'),
|
||||
(356,1,18,1,'admin','2021-05-31 17:48:33'),
|
||||
(358,1,20,1,'admin','2021-05-31 17:52:08'),
|
||||
(360,1,22,1,'admin','2021-05-31 18:05:04'),
|
||||
(361,1,23,1,'admin','2021-05-31 18:05:04'),
|
||||
(362,1,24,1,'admin','2021-05-31 18:05:04'),
|
||||
(363,1,25,1,'admin','2021-05-31 18:05:04'),
|
||||
(364,1,26,1,'admin','2021-05-31 18:05:04'),
|
||||
(365,1,27,1,'admin','2021-05-31 18:05:04'),
|
||||
(366,1,28,1,'admin','2021-05-31 18:05:04'),
|
||||
(369,1,31,1,'admin','2021-05-31 21:25:56'),
|
||||
(370,1,32,1,'admin','2021-05-31 21:25:56'),
|
||||
(371,1,33,1,'admin','2021-05-31 21:25:56'),
|
||||
(374,1,36,1,'admin','2021-06-01 14:01:57'),
|
||||
(375,1,19,1,'admin','2021-06-01 17:34:03'),
|
||||
(376,1,21,1,'admin','2021-06-01 17:34:03'),
|
||||
(377,1,29,1,'admin','2021-06-01 17:34:03'),
|
||||
(378,1,30,1,'admin','2021-06-01 17:34:03'),
|
||||
(379,1,34,1,'admin','2021-06-01 17:34:03'),
|
||||
(380,1,37,1,'admin','2021-06-03 09:09:42'),
|
||||
(381,1,38,1,'admin','2021-06-03 09:09:42'),
|
||||
(383,1,40,1,'admin','2021-06-08 11:21:52'),
|
||||
(384,1,41,1,'admin','2021-06-08 11:21:52'),
|
||||
(385,1,42,1,'admin','2021-06-08 11:21:52'),
|
||||
(386,1,43,1,'admin','2021-06-08 11:21:52'),
|
||||
(387,1,44,1,'admin','2021-06-08 11:21:52'),
|
||||
(388,1,45,1,'admin','2021-06-08 11:21:52'),
|
||||
(389,1,46,1,'admin','2021-06-08 11:21:52'),
|
||||
(390,1,47,1,'admin','2021-06-08 11:21:52'),
|
||||
(391,6,39,1,'admin','2021-06-08 15:10:58'),
|
||||
(392,6,15,1,'admin','2021-06-08 15:10:58'),
|
||||
(395,6,31,1,'admin','2021-06-08 15:10:58'),
|
||||
(396,6,33,1,'admin','2021-06-08 15:10:58'),
|
||||
(397,6,32,1,'admin','2021-06-08 15:10:58'),
|
||||
(398,6,4,1,'admin','2021-06-08 15:10:58'),
|
||||
(399,6,14,1,'admin','2021-06-08 15:10:58'),
|
||||
(400,6,11,1,'admin','2021-06-08 15:10:58'),
|
||||
(401,6,5,1,'admin','2021-06-08 15:10:58'),
|
||||
(403,7,1,1,'admin','2021-07-06 15:07:09'),
|
||||
(405,1,49,1,'admin','2021-07-07 15:14:17'),
|
||||
(410,1,54,1,'admin','2021-07-08 17:32:19'),
|
||||
(411,1,55,1,'admin','2021-07-08 17:32:19'),
|
||||
(413,1,57,1,'admin','2021-07-09 10:48:50'),
|
||||
(414,1,58,1,'admin','2021-07-09 10:48:50'),
|
||||
(418,8,57,1,'admin','2021-07-09 10:49:46'),
|
||||
(419,8,12,1,'admin','2021-07-09 10:49:46'),
|
||||
(420,8,15,1,'admin','2021-07-09 10:49:46'),
|
||||
(421,8,38,1,'admin','2021-07-09 10:49:46'),
|
||||
(423,8,2,1,'admin','2021-07-09 10:49:46'),
|
||||
(425,8,3,1,'admin','2021-07-09 10:49:46'),
|
||||
(426,8,36,1,'admin','2021-07-09 10:49:46'),
|
||||
(428,1,59,1,'admin','2021-07-09 10:50:20'),
|
||||
(429,8,59,1,'admin','2021-07-09 10:50:32'),
|
||||
(431,6,57,1,'admin','2021-07-12 16:44:12'),
|
||||
(433,1,60,1,'admin','2021-07-19 20:19:29'),
|
||||
(434,1,61,1,'admin','2021-07-19 20:19:29'),
|
||||
(435,1,62,1,'admin','2021-07-19 20:19:29'),
|
||||
(436,1,63,1,'admin','2021-07-20 10:48:39'),
|
||||
(437,1,64,1,'admin','2021-07-20 10:48:39'),
|
||||
(444,7,39,1,'admin','2021-09-09 10:10:30'),
|
||||
(450,6,16,1,'admin','2021-09-09 15:52:38'),
|
||||
(451,6,17,1,'admin','2021-09-09 15:52:38'),
|
||||
(452,6,18,1,'admin','2021-09-09 15:52:38'),
|
||||
(453,6,37,1,'admin','2021-09-09 15:52:38'),
|
||||
(454,6,40,1,'admin','2021-09-09 15:52:38'),
|
||||
(455,6,41,1,'admin','2021-09-09 15:52:38'),
|
||||
(456,6,42,1,'admin','2021-09-09 15:52:38'),
|
||||
(457,6,43,1,'admin','2021-09-09 15:52:38'),
|
||||
(458,6,44,1,'admin','2021-09-09 15:52:38'),
|
||||
(459,6,45,1,'admin','2021-09-09 15:52:38'),
|
||||
(460,6,46,1,'admin','2021-09-09 15:52:38'),
|
||||
(461,6,47,1,'admin','2021-09-09 15:52:38'),
|
||||
(462,6,36,1,'admin','2021-09-09 15:52:38'),
|
||||
(463,6,38,1,'admin','2021-09-09 15:52:38'),
|
||||
(464,6,59,1,'admin','2021-09-09 15:52:38'),
|
||||
(465,6,49,1,'admin','2021-09-09 15:52:38'),
|
||||
(466,6,58,1,'admin','2021-09-09 15:52:38'),
|
||||
(467,6,54,1,'admin','2021-09-09 15:52:38'),
|
||||
(468,6,55,1,'admin','2021-09-09 15:52:38'),
|
||||
(469,6,60,1,'admin','2021-09-09 15:52:38'),
|
||||
(470,6,61,1,'admin','2021-09-09 15:52:38'),
|
||||
(471,6,62,1,'admin','2021-09-09 15:52:38'),
|
||||
(472,6,63,1,'admin','2021-09-09 15:52:38'),
|
||||
(473,6,64,1,'admin','2021-09-09 15:52:38'),
|
||||
(479,6,19,1,'admin','2021-09-09 15:53:56'),
|
||||
(480,6,21,1,'admin','2021-09-09 15:53:56'),
|
||||
(481,6,29,1,'admin','2021-09-09 15:53:56'),
|
||||
(482,6,30,1,'admin','2021-09-09 15:53:56'),
|
||||
(483,6,34,1,'admin','2021-09-09 15:53:56'),
|
||||
(484,6,20,1,'admin','2021-09-09 15:53:56'),
|
||||
(485,6,22,1,'admin','2021-09-09 15:53:56'),
|
||||
(486,6,23,1,'admin','2021-09-09 15:53:56'),
|
||||
(487,6,24,1,'admin','2021-09-09 15:53:56'),
|
||||
(488,6,25,1,'admin','2021-09-09 15:53:56'),
|
||||
(489,6,26,1,'admin','2021-09-09 15:53:56'),
|
||||
(490,6,27,1,'admin','2021-09-09 15:53:56'),
|
||||
(491,6,28,1,'admin','2021-09-09 15:53:56'),
|
||||
(492,8,42,1,'admin','2021-11-05 15:59:16'),
|
||||
(493,8,43,1,'admin','2021-11-05 15:59:16'),
|
||||
(494,8,47,1,'admin','2021-11-05 15:59:16'),
|
||||
(495,8,60,1,'admin','2021-11-05 15:59:16'),
|
||||
(496,8,61,1,'admin','2021-11-05 15:59:16'),
|
||||
(497,8,62,1,'admin','2021-11-05 15:59:16'),
|
||||
(500,1,72,1,'admin','2022-07-14 11:03:09'),
|
||||
(501,1,71,1,'admin','2022-07-14 11:03:09'),
|
||||
(502,1,79,1,'admin','2022-07-14 11:03:09'),
|
||||
(503,1,80,1,'admin','2022-07-14 11:03:09'),
|
||||
(504,1,81,1,'admin','2022-07-14 11:03:09'),
|
||||
(505,1,82,1,'admin','2022-07-14 11:03:09'),
|
||||
(506,1,83,1,'admin','2022-07-14 11:03:09'),
|
||||
(507,1,84,1,'admin','2022-07-14 11:10:11'),
|
||||
(508,1,85,1,'admin','2022-07-14 11:10:11'),
|
||||
(510,1,87,1,'admin','2022-07-14 11:10:11'),
|
||||
(511,1,88,1,'admin','2022-10-08 10:54:06'),
|
||||
(512,8,80,1,'admin','2022-10-08 10:54:34'),
|
||||
(513,8,81,1,'admin','2022-10-08 10:54:34'),
|
||||
(515,8,79,1,'admin','2022-10-08 10:54:34'),
|
||||
(516,1,93,1,'admin','2022-10-26 20:03:14'),
|
||||
(517,1,94,1,'admin','2022-10-26 20:03:14'),
|
||||
(518,1,96,1,'admin','2022-10-26 20:03:14'),
|
||||
(519,1,98,1,'admin','2022-10-26 20:03:14'),
|
||||
(520,1,95,1,'admin','2022-10-26 20:03:14'),
|
||||
(521,1,97,1,'admin','2022-10-26 20:03:14'),
|
||||
(522,1,99,1,'admin','2022-10-26 20:03:14'),
|
||||
(523,1,100,1,'admin','2022-10-26 20:03:14'),
|
||||
(524,1,101,1,'admin','2022-10-26 20:03:14'),
|
||||
(525,1,102,1,'admin','2022-10-26 20:03:14'),
|
||||
(527,1,106,1,'admin','2023-02-23 14:30:54'),
|
||||
(528,1,103,1,'admin','2023-02-23 14:30:54'),
|
||||
(529,1,105,1,'admin','2023-02-23 14:31:00'),
|
||||
(530,1,104,1,'admin','2023-02-24 13:40:26'),
|
||||
(532,1,108,1,'admin','2023-03-14 17:28:06'),
|
||||
(533,6,79,1,'admin','2023-03-14 17:28:50'),
|
||||
(534,6,80,1,'admin','2023-03-14 17:28:50'),
|
||||
(535,6,81,1,'admin','2023-03-14 17:28:50'),
|
||||
(536,6,82,1,'admin','2023-03-14 17:28:50'),
|
||||
(537,6,83,1,'admin','2023-03-14 17:28:50'),
|
||||
(538,6,84,1,'admin','2023-03-14 17:29:00'),
|
||||
(539,6,85,1,'admin','2023-03-14 17:29:00'),
|
||||
(540,6,87,1,'admin','2023-03-14 17:29:00'),
|
||||
(541,6,88,1,'admin','2023-03-14 17:29:00'),
|
||||
(544,1,109,1,'admin','2023-03-16 16:11:25');
|
||||
INSERT INTO `t_sys_role_resource` (role_id,resource_id,creator_id,creator,create_time) VALUES
|
||||
(1,'admin','2021-05-27 15:07:39'),
|
||||
(1,2,1,'admin','2021-05-28 09:04:50'),
|
||||
(1,4,1,'admin','2021-05-28 09:04:50'),
|
||||
(1,5,1,'admin','2021-05-28 09:04:50'),
|
||||
(1,11,1,'admin','2021-05-28 09:04:50'),
|
||||
(1,14,1,'admin','2021-05-28 17:42:21'),
|
||||
(1,3,1,'admin','2021-05-28 17:42:43'),
|
||||
(1,12,1,'admin','2021-05-28 17:42:43'),
|
||||
(6,2,1,'admin','2021-05-28 19:19:38'),
|
||||
(6,3,1,'admin','2021-05-28 19:19:38'),
|
||||
(6,1,1,'admin','2021-05-29 01:31:22'),
|
||||
(5,1,1,'admin','2021-05-31 14:05:23'),
|
||||
(5,4,1,'admin','2021-05-31 14:05:23'),
|
||||
(5,14,1,'admin','2021-05-31 14:05:23'),
|
||||
(5,5,1,'admin','2021-05-31 14:05:23'),
|
||||
(5,11,1,'admin','2021-05-31 14:05:23'),
|
||||
(5,3,1,'admin','2021-05-31 16:33:14'),
|
||||
(5,12,1,'admin','2021-05-31 16:33:14'),
|
||||
(5,2,1,'admin','2021-05-31 16:33:14'),
|
||||
(1,15,1,'admin','2021-05-31 17:48:33'),
|
||||
(1,16,1,'admin','2021-05-31 17:48:33'),
|
||||
(1,17,1,'admin','2021-05-31 17:48:33'),
|
||||
(1,18,1,'admin','2021-05-31 17:48:33'),
|
||||
(1,20,1,'admin','2021-05-31 17:52:08'),
|
||||
(1,22,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,23,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,24,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,25,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,26,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,27,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,28,1,'admin','2021-05-31 18:05:04'),
|
||||
(1,31,1,'admin','2021-05-31 21:25:56'),
|
||||
(1,32,1,'admin','2021-05-31 21:25:56'),
|
||||
(1,33,1,'admin','2021-05-31 21:25:56'),
|
||||
(1,36,1,'admin','2021-06-01 14:01:57'),
|
||||
(1,19,1,'admin','2021-06-01 17:34:03'),
|
||||
(1,21,1,'admin','2021-06-01 17:34:03'),
|
||||
(1,29,1,'admin','2021-06-01 17:34:03'),
|
||||
(1,30,1,'admin','2021-06-01 17:34:03'),
|
||||
(1,34,1,'admin','2021-06-01 17:34:03'),
|
||||
(1,37,1,'admin','2021-06-03 09:09:42'),
|
||||
(1,38,1,'admin','2021-06-03 09:09:42'),
|
||||
(1,40,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,41,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,42,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,43,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,44,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,45,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,46,1,'admin','2021-06-08 11:21:52'),
|
||||
(1,47,1,'admin','2021-06-08 11:21:52'),
|
||||
(6,39,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,15,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,31,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,33,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,32,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,4,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,14,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,11,1,'admin','2021-06-08 15:10:58'),
|
||||
(6,5,1,'admin','2021-06-08 15:10:58'),
|
||||
(7,1,1,'admin','2021-07-06 15:07:09'),
|
||||
(1,49,1,'admin','2021-07-07 15:14:17'),
|
||||
(1,54,1,'admin','2021-07-08 17:32:19'),
|
||||
(1,55,1,'admin','2021-07-08 17:32:19'),
|
||||
(1,57,1,'admin','2021-07-09 10:48:50'),
|
||||
(1,58,1,'admin','2021-07-09 10:48:50'),
|
||||
(8,57,1,'admin','2021-07-09 10:49:46'),
|
||||
(8,12,1,'admin','2021-07-09 10:49:46'),
|
||||
(8,15,1,'admin','2021-07-09 10:49:46'),
|
||||
(8,38,1,'admin','2021-07-09 10:49:46'),
|
||||
(8,2,1,'admin','2021-07-09 10:49:46'),
|
||||
(8,3,1,'admin','2021-07-09 10:49:46'),
|
||||
(8,36,1,'admin','2021-07-09 10:49:46'),
|
||||
(1,59,1,'admin','2021-07-09 10:50:20'),
|
||||
(8,59,1,'admin','2021-07-09 10:50:32'),
|
||||
(6,57,1,'admin','2021-07-12 16:44:12'),
|
||||
(1,60,1,'admin','2021-07-19 20:19:29'),
|
||||
(1,61,1,'admin','2021-07-19 20:19:29'),
|
||||
(1,62,1,'admin','2021-07-19 20:19:29'),
|
||||
(1,63,1,'admin','2021-07-20 10:48:39'),
|
||||
(1,64,1,'admin','2021-07-20 10:48:39'),
|
||||
(7,39,1,'admin','2021-09-09 10:10:30'),
|
||||
(6,16,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,17,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,18,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,37,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,40,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,41,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,42,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,43,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,44,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,45,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,46,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,47,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,36,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,38,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,59,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,49,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,58,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,54,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,55,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,60,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,61,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,62,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,63,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,64,1,'admin','2021-09-09 15:52:38'),
|
||||
(6,19,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,21,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,29,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,30,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,34,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,20,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,22,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,23,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,24,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,25,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,26,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,27,1,'admin','2021-09-09 15:53:56'),
|
||||
(6,28,1,'admin','2021-09-09 15:53:56'),
|
||||
(8,42,1,'admin','2021-11-05 15:59:16'),
|
||||
(8,43,1,'admin','2021-11-05 15:59:16'),
|
||||
(8,47,1,'admin','2021-11-05 15:59:16'),
|
||||
(8,60,1,'admin','2021-11-05 15:59:16'),
|
||||
(8,61,1,'admin','2021-11-05 15:59:16'),
|
||||
(8,62,1,'admin','2021-11-05 15:59:16'),
|
||||
(1,72,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,71,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,79,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,80,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,81,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,82,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,83,1,'admin','2022-07-14 11:03:09'),
|
||||
(1,84,1,'admin','2022-07-14 11:10:11'),
|
||||
(1,85,1,'admin','2022-07-14 11:10:11'),
|
||||
(1,87,1,'admin','2022-07-14 11:10:11'),
|
||||
(1,88,1,'admin','2022-10-08 10:54:06'),
|
||||
(8,80,1,'admin','2022-10-08 10:54:34'),
|
||||
(8,81,1,'admin','2022-10-08 10:54:34'),
|
||||
(8,79,1,'admin','2022-10-08 10:54:34'),
|
||||
(1,93,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,94,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,96,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,98,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,95,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,97,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,99,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,100,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,101,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,102,1,'admin','2022-10-26 20:03:14'),
|
||||
(1,106,1,'admin','2023-02-23 14:30:54'),
|
||||
(1,103,1,'admin','2023-02-23 14:30:54'),
|
||||
(1,105,1,'admin','2023-02-23 14:31:00'),
|
||||
(1,104,1,'admin','2023-02-24 13:40:26'),
|
||||
(1,108,1,'admin','2023-03-14 17:28:06'),
|
||||
(6,79,1,'admin','2023-03-14 17:28:50'),
|
||||
(6,80,1,'admin','2023-03-14 17:28:50'),
|
||||
(6,81,1,'admin','2023-03-14 17:28:50'),
|
||||
(6,82,1,'admin','2023-03-14 17:28:50'),
|
||||
(6,83,1,'admin','2023-03-14 17:28:50'),
|
||||
(6,84,1,'admin','2023-03-14 17:29:00'),
|
||||
(6,85,1,'admin','2023-03-14 17:29:00'),
|
||||
(6,87,1,'admin','2023-03-14 17:29:00'),
|
||||
(6,88,1,'admin','2023-03-14 17:29:00'),
|
||||
(1,109,1,'admin','2023-03-16 16:11:25');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
@@ -760,7 +747,7 @@ CREATE TABLE `t_tag_tree` (
|
||||
-- Records of t_tag_tree
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `t_tag_tree` VALUES (33, 0, 'default', 'default', '默认', '默认标签', '2022-10-26 20:04:19', 1, 'admin', '2022-10-26 20:04:19', 1, 'admin');
|
||||
INSERT INTO `t_tag_tree` VALUES (33, 0, 'default', 'default/', '默认', '默认标签', '2022-10-26 20:04:19', 1, 'admin', '2022-10-26 20:04:19', 1, 'admin');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
@@ -786,7 +773,7 @@ CREATE TABLE `t_tag_tree_team` (
|
||||
-- Records of t_tag_tree_team
|
||||
-- ----------------------------
|
||||
BEGIN;
|
||||
INSERT INTO `t_tag_tree_team` VALUES (31, 33, 'default', 3, '2022-10-26 20:04:45', 1, 'admin', '2022-10-26 20:04:45', 1, 'admin');
|
||||
INSERT INTO `t_tag_tree_team` VALUES (31, 33, 'default/', 3, '2022-10-26 20:04:45', 1, 'admin', '2022-10-26 20:04:45', 1, 'admin');
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
|
||||
@@ -4,7 +4,7 @@ import "fmt"
|
||||
|
||||
const (
|
||||
AppName = "mayfly-go"
|
||||
Version = "v1.4.2"
|
||||
Version = "v1.4.3"
|
||||
)
|
||||
|
||||
func GetAppInfo() string {
|
||||
|
||||
@@ -231,3 +231,7 @@ func GetListBySql(sql string, params ...any) []map[string]any {
|
||||
func GetListBySql2Model(sql string, toEntity any, params ...any) error {
|
||||
return global.Db.Raw(sql, params...).Find(toEntity).Error
|
||||
}
|
||||
|
||||
func ExecSql(sql string, params ...any) {
|
||||
global.Db.Exec(sql, params...)
|
||||
}
|
||||
|
||||
@@ -33,13 +33,19 @@ func gormMysql() *gorm.DB {
|
||||
SkipInitializeWithVersion: false, // 根据版本自动配置
|
||||
}
|
||||
|
||||
sqlLogLevel := logger.Error
|
||||
logConf := config.Conf.Log
|
||||
// 如果为配置文件中配置的系统日志级别为debug,则打印gorm执行的sql信息
|
||||
if logConf.Level == "debug" {
|
||||
sqlLogLevel = logger.Info
|
||||
}
|
||||
gormLogger := logger.New(
|
||||
log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer(日志输出的目标,前缀和日志包含的内容——译者注)
|
||||
logger.Config{
|
||||
SlowThreshold: time.Second, // 慢 SQL 阈值
|
||||
LogLevel: logger.Error, // 日志级别, 改为logger.Info即可显示sql语句
|
||||
IgnoreRecordNotFoundError: true, // 忽略ErrRecordNotFound(记录未找到)错误
|
||||
Colorful: true, // 禁用彩色打印
|
||||
SlowThreshold: time.Second, // 慢 SQL 阈值
|
||||
LogLevel: sqlLogLevel, // 日志级别, 改为logger.Info即可显示sql语句
|
||||
IgnoreRecordNotFoundError: true, // 忽略ErrRecordNotFound(记录未找到)错误
|
||||
Colorful: true, // 禁用彩色打印
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user