mirror of
https://github.com/jumpserver/lina.git
synced 2025-09-25 14:25:23 +00:00
feat: 修改部分交互
This commit is contained in:
@@ -713,6 +713,8 @@
|
|||||||
"instantAdhoc": "即时命令",
|
"instantAdhoc": "即时命令",
|
||||||
"AdhocManage": "命令管理",
|
"AdhocManage": "命令管理",
|
||||||
"PlaybookManage": "Playbook管理",
|
"PlaybookManage": "Playbook管理",
|
||||||
|
"PlaybookUpdate": "更新Playbook",
|
||||||
|
"PlaybookDetail": "Playbook详情",
|
||||||
"history": "历史记录",
|
"history": "历史记录",
|
||||||
"createAdhoc": "创建命令",
|
"createAdhoc": "创建命令",
|
||||||
"AdhocDetail": "命令详情",
|
"AdhocDetail": "命令详情",
|
||||||
|
@@ -181,7 +181,7 @@ export default {
|
|||||||
meta: {
|
meta: {
|
||||||
title: i18n.t('route.updateAdhoc'),
|
title: i18n.t('route.updateAdhoc'),
|
||||||
permissions: [],
|
permissions: [],
|
||||||
activeMenu: '/workbench/ops/adhoc'
|
activeMenu: '/workbench/ops/scripts'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -192,7 +192,7 @@ export default {
|
|||||||
meta: {
|
meta: {
|
||||||
title: i18n.t('ops.createAdhoc'),
|
title: i18n.t('ops.createAdhoc'),
|
||||||
permissions: [],
|
permissions: [],
|
||||||
activeMenu: '/workbench/ops/adhoc'
|
activeMenu: '/workbench/ops/scripts'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -203,18 +203,29 @@ export default {
|
|||||||
meta: {
|
meta: {
|
||||||
title: i18n.t('route.AdhocDetail'),
|
title: i18n.t('route.AdhocDetail'),
|
||||||
permissions: [],
|
permissions: [],
|
||||||
activeMenu: '/workbench/ops/adhoc'
|
activeMenu: '/workbench/ops/scripts'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'playbook/create',
|
path: 'playbook/:id/update',
|
||||||
name: 'PlaybookCreate',
|
name: 'PlaybookUpdate',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: () => import('@/views/ops/ScriptManage/Playbook/PlaybookUpdateCreate'),
|
component: () => import('@/views/ops/ScriptManage/Playbook/PlaybookUpdate'),
|
||||||
meta: {
|
meta: {
|
||||||
title: i18n.t('route.PlaybookCreate'),
|
title: i18n.t('ops.PlaybookUpdate'),
|
||||||
permissions: [],
|
permissions: [],
|
||||||
activeMenu: '/workbench/ops/playbook'
|
activeMenu: '/workbench/ops/scripts'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'playbook/:id',
|
||||||
|
component: () => import('@/views/ops/ScriptManage/Playbook/PlaybookDetail'),
|
||||||
|
name: 'PlaybookDetail',
|
||||||
|
hidden: true,
|
||||||
|
meta: {
|
||||||
|
title: i18n.t('ops.PlaybookDetail'),
|
||||||
|
permissions: [],
|
||||||
|
activeMenu: '/workbench/ops/scripts'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -15,8 +15,12 @@ export default {
|
|||||||
tableConfig: {
|
tableConfig: {
|
||||||
url: '/api/v1/ops/adhocs/',
|
url: '/api/v1/ops/adhocs/',
|
||||||
columns: [
|
columns: [
|
||||||
'name', 'module', 'date_updated', 'date_created', 'actions'
|
'name', 'module', 'args', 'comment', 'date_updated', 'date_created', 'actions'
|
||||||
],
|
],
|
||||||
|
columnsShow: {
|
||||||
|
min: ['name', 'actions'],
|
||||||
|
default: ['name', 'module', 'comment', 'args', 'comment', 'date_created', 'actions']
|
||||||
|
},
|
||||||
columnsMeta: {
|
columnsMeta: {
|
||||||
name: {
|
name: {
|
||||||
formatterArgs: {
|
formatterArgs: {
|
||||||
|
@@ -14,7 +14,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
url: '/api/v1/ops/adhocs/',
|
url: '/api/v1/ops/adhocs/',
|
||||||
fields: [
|
fields: [
|
||||||
[this.$t('common.Basic'), ['name', 'module', 'args']]
|
[this.$t('common.Basic'), ['name', 'comment', 'module', 'args']]
|
||||||
],
|
],
|
||||||
initial: {
|
initial: {
|
||||||
module: 'shell',
|
module: 'shell',
|
||||||
@@ -22,15 +22,14 @@ export default {
|
|||||||
},
|
},
|
||||||
fieldsMeta: {
|
fieldsMeta: {
|
||||||
args: {
|
args: {
|
||||||
label: 'content',
|
|
||||||
component: CodeEditor
|
component: CodeEditor
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
createSuccessNextRoute: {
|
createSuccessNextRoute: {
|
||||||
name: 'Adhoc'
|
name: 'ScriptManage'
|
||||||
},
|
},
|
||||||
updateSuccessNextRoute: {
|
updateSuccessNextRoute: {
|
||||||
name: 'Adhoc'
|
name: 'ScriptManage'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,13 +21,17 @@ export default {
|
|||||||
tableConfig: {
|
tableConfig: {
|
||||||
url: '/api/v1/ops/playbooks/',
|
url: '/api/v1/ops/playbooks/',
|
||||||
columns: [
|
columns: [
|
||||||
'name', 'path', 'date_updated', 'date_created', 'actions'
|
'name', 'comment', 'date_created', 'date_updated', 'creator', 'actions'
|
||||||
],
|
],
|
||||||
|
columnsShow: {
|
||||||
|
min: ['name', 'actions'],
|
||||||
|
default: ['name', 'comment', 'date_created', 'actions']
|
||||||
|
},
|
||||||
columnsMeta: {
|
columnsMeta: {
|
||||||
name: {
|
name: {
|
||||||
formatterArgs: {
|
formatterArgs: {
|
||||||
can: true,
|
can: true,
|
||||||
route: 'AdhocDetail'
|
route: 'PlaybookDetail'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@@ -35,7 +39,7 @@ export default {
|
|||||||
formatterArgs: {
|
formatterArgs: {
|
||||||
hasUpdate: true,
|
hasUpdate: true,
|
||||||
canUpdate: true,
|
canUpdate: true,
|
||||||
updateRoute: 'AdhocUpdate',
|
updateRoute: 'PlaybookUpdate',
|
||||||
hasDelete: true,
|
hasDelete: true,
|
||||||
canDelete: true,
|
canDelete: true,
|
||||||
hasClone: false,
|
hasClone: false,
|
||||||
|
@@ -0,0 +1,48 @@
|
|||||||
|
<template>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :md="14" :sm="24">
|
||||||
|
<DetailCard :title="cardTitle" :items="detailCardItems" />
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script type="text/jsx">
|
||||||
|
import DetailCard from '@/components/DetailCard'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
DetailCard
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
object: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
cardTitle() {
|
||||||
|
return this.object.name
|
||||||
|
},
|
||||||
|
detailCardItems() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
key: this.$t('common.Name'),
|
||||||
|
value: this.object.name
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: this.$t('common.Comment'),
|
||||||
|
value: this.object.comment
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
|
||||||
|
</style>
|
42
src/views/ops/ScriptManage/Playbook/PlaybookDetail/index.vue
Normal file
42
src/views/ops/ScriptManage/Playbook/PlaybookDetail/index.vue
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<template>
|
||||||
|
<GenericDetailPage :object.sync="PlaybookDetail" :active-menu.sync="config.activeMenu" v-bind="config" v-on="$listeners">
|
||||||
|
<keep-alive>
|
||||||
|
<component :is="config.activeMenu" :object="PlaybookDetail" />
|
||||||
|
</keep-alive>
|
||||||
|
</GenericDetailPage>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { GenericDetailPage } from '@/layout/components'
|
||||||
|
import PlaybookDetail from '@/views/ops/ScriptManage/Playbook/PlaybookDetail/PlaybookDetail'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
GenericDetailPage,
|
||||||
|
PlaybookDetail
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
PlaybookDetail: {},
|
||||||
|
config: {
|
||||||
|
getTitle(row) {
|
||||||
|
return row['name']
|
||||||
|
},
|
||||||
|
url: '/api/v1/ops/playbooks/',
|
||||||
|
activeMenu: 'PlaybookDetail',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
title: this.$t('ops.PlaybookDetail'),
|
||||||
|
name: 'PlaybookDetail'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
hasRightSide: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
31
src/views/ops/ScriptManage/Playbook/PlaybookUpdate.vue
Normal file
31
src/views/ops/ScriptManage/Playbook/PlaybookUpdate.vue
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<template>
|
||||||
|
<GenericCreateUpdatePage v-bind="$data" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { GenericCreateUpdatePage } from '@/layout/components'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
GenericCreateUpdatePage
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
url: '/api/v1/ops/playbooks/',
|
||||||
|
fields: [
|
||||||
|
[this.$t('common.Basic'), ['name', 'comment']]
|
||||||
|
],
|
||||||
|
createSuccessNextRoute: {
|
||||||
|
name: 'ScriptManage'
|
||||||
|
},
|
||||||
|
updateSuccessNextRoute: {
|
||||||
|
name: 'ScriptManage'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
@@ -1,49 +0,0 @@
|
|||||||
<template>
|
|
||||||
<GenericCreateUpdatePage v-bind="$data" />
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { GenericCreateUpdatePage } from '@/layout/components'
|
|
||||||
import CodeEditor from '@/components/FormFields/CodeEditor'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
GenericCreateUpdatePage
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
cmOptions: {
|
|
||||||
tabSize: 4,
|
|
||||||
mode: 'shell',
|
|
||||||
theme: 'base16-light',
|
|
||||||
lineNumbers: true,
|
|
||||||
line: true
|
|
||||||
},
|
|
||||||
url: '/api/v1/ops/adhocs/',
|
|
||||||
fields: [
|
|
||||||
[this.$t('common.Basic'), ['name', 'module', 'args']]
|
|
||||||
],
|
|
||||||
initial: {
|
|
||||||
module: 'shell',
|
|
||||||
args: ''
|
|
||||||
},
|
|
||||||
fieldsMeta: {
|
|
||||||
args: {
|
|
||||||
label: 'content',
|
|
||||||
component: CodeEditor
|
|
||||||
}
|
|
||||||
},
|
|
||||||
createSuccessNextRoute: {
|
|
||||||
name: 'Adhoc'
|
|
||||||
},
|
|
||||||
updateSuccessNextRoute: {
|
|
||||||
name: 'Adhoc'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
Reference in New Issue
Block a user