mirror of
https://github.com/jumpserver/lina.git
synced 2026-01-13 11:24:17 +00:00
perf: 修改工单
This commit is contained in:
@@ -186,6 +186,7 @@ export default {
|
||||
const url = this.validActions.detailApiUrl
|
||||
return this.$axios.get(url, { disableFlashErrorMsg: true }).then(data => {
|
||||
this.$emit('update:object', data)
|
||||
this.$emit('getObjectDone', data)
|
||||
}).catch(error => {
|
||||
if (error.response && error.response.status === 404) {
|
||||
const msg = this.$t('common.ObjectNotFoundOrDeletedMsg')
|
||||
|
||||
@@ -61,8 +61,7 @@ export default {
|
||||
},
|
||||
showTickets() {
|
||||
return this.publicSettings.TICKETS_ENABLED &&
|
||||
this.publicSettings.XPACK_LICENSE_IS_VALID &&
|
||||
!this.isOrgAuditor
|
||||
this.publicSettings['XPACK_LICENSE_IS_VALID']
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -167,7 +167,8 @@ export const allRoleRoutes = [
|
||||
children: TicketsRoutes,
|
||||
hidden: true,
|
||||
meta: {
|
||||
licenseRequired: true
|
||||
licenseRequired: true,
|
||||
permissions: [rolec.PERM_AUDIT]
|
||||
// hidden: ({ settings }) => {
|
||||
// return !settings.TICKETS_ENABLED
|
||||
// }
|
||||
|
||||
@@ -1,61 +1,71 @@
|
||||
import i18n from '@/i18n/i18n'
|
||||
import empty from '@/layout/empty'
|
||||
import rolec from '@/utils/role'
|
||||
export default [
|
||||
{
|
||||
path: 'tickets',
|
||||
name: 'TicketList',
|
||||
component: () => import('@/views/tickets/TicketList'),
|
||||
meta: { title: i18n.t('route.Tickets'), icon: 'check-square-o', activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/:id',
|
||||
name: 'TicketDetail',
|
||||
component: () => import('@/views/tickets/TicketDetail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/request-asset-perm/create',
|
||||
name: 'RequestAssetPermTicketCreateUpdate',
|
||||
component: () => import('@/views/tickets/RequestAssetPerm/RequestAssetPermTicketCreateUpdate'),
|
||||
meta: { title: i18n.t('route.TicketCreate'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/request-asset-perm/:id',
|
||||
name: 'AssetsTicketDetail',
|
||||
component: () => import('@/views/tickets/RequestAssetPerm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/login-asset-confirm/:id',
|
||||
name: 'loginAssetTicketDetail',
|
||||
component: () => import('@/views/tickets/LoginAssetConfirm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/request-application-perm/create',
|
||||
name: 'RequestApplicationPermTicketCreateUpdate',
|
||||
component: () => import('@/views/tickets/RequestApplicationPerm/RequestApplicationPermTicketCreateUpdate'),
|
||||
meta: { title: i18n.t('route.TicketCreate'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/request-application-perm/:id',
|
||||
name: 'AppsTicketDetail',
|
||||
component: () => import('@/views/tickets/RequestApplicationPerm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'tickets/command-confirm/:id',
|
||||
name: 'CommandConfirmDetail',
|
||||
component: () => import('@/views/tickets/CommandConfirm/Detail/index'),
|
||||
meta: { title: i18n.t('route.CommandConfirm'), activeMenu: '/tickets/tickets' },
|
||||
hidden: true
|
||||
component: empty,
|
||||
meta: { permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true,
|
||||
redirect: '',
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
name: 'TicketList',
|
||||
component: () => import('@/views/tickets/TicketList'),
|
||||
meta: { title: i18n.t('route.Tickets'), icon: 'check-square-o', activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'request-asset-perm/create',
|
||||
name: 'RequestAssetPermTicketCreateUpdate',
|
||||
component: () => import('@/views/tickets/RequestAssetPerm/RequestAssetPermTicketCreateUpdate'),
|
||||
meta: { title: i18n.t('route.TicketCreate'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'request-asset-perm/:id',
|
||||
name: 'AssetsTicketDetail',
|
||||
component: () => import('@/views/tickets/RequestAssetPerm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'login-asset-confirm/:id',
|
||||
name: 'LoginAssetTicketDetail',
|
||||
component: () => import('@/views/tickets/LoginAssetConfirm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'request-application-perm/create',
|
||||
name: 'RequestApplicationPermTicketCreateUpdate',
|
||||
component: () => import('@/views/tickets/RequestApplicationPerm/RequestApplicationPermTicketCreateUpdate'),
|
||||
meta: { title: i18n.t('route.TicketCreate'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'request-application-perm/:id',
|
||||
name: 'AppsTicketDetail',
|
||||
component: () => import('@/views/tickets/RequestApplicationPerm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'command-confirm/:id',
|
||||
name: 'CommandConfirmDetail',
|
||||
component: () => import('@/views/tickets/CommandConfirm/Detail/index'),
|
||||
meta: { title: i18n.t('route.CommandConfirm'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: ':id',
|
||||
name: 'TicketDetail',
|
||||
component: () => import('@/views/tickets/TicketDetail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets/tickets', permissions: [rolec.PERM_AUDIT] },
|
||||
hidden: true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: 'flows',
|
||||
|
||||
@@ -105,7 +105,7 @@ export default [
|
||||
},
|
||||
{
|
||||
path: 'tickets/login-asset-confirm/:id',
|
||||
name: 'loginAssetTicketDetail',
|
||||
name: 'LoginAssetTicketDetail',
|
||||
component: () => import('@/views/tickets/LoginAssetConfirm/Detail/index'),
|
||||
meta: { title: i18n.t('route.TicketDetail'), activeMenu: '/tickets', permissions: [rolec.PERM_USE] },
|
||||
hidden: true
|
||||
|
||||
@@ -35,6 +35,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
console.log('Ticket detail mounted', this.$route)
|
||||
},
|
||||
methods: {
|
||||
getObjectName() {
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
<template>
|
||||
<GenericDetailPage :object.sync="ticket" :active-menu.sync="config.activeMenu" v-bind="config" v-on="$listeners">
|
||||
<GenericDetailPage
|
||||
:object.sync="ticket"
|
||||
:active-menu.sync="config.activeMenu"
|
||||
v-bind="config"
|
||||
@getObjectDone="afterGetTicket"
|
||||
v-on="$listeners"
|
||||
>
|
||||
<component :is="config.activeMenu" :object="ticket" />
|
||||
</GenericDetailPage>
|
||||
</template>
|
||||
@@ -22,7 +28,8 @@ export default {
|
||||
type_display: '',
|
||||
status: '',
|
||||
assignees_display: '',
|
||||
date_created: ''
|
||||
date_created: '',
|
||||
done: 0
|
||||
},
|
||||
config: {
|
||||
activeMenu: 'TicketDetail',
|
||||
@@ -40,6 +47,21 @@ export default {
|
||||
methods: {
|
||||
getObjectName() {
|
||||
return this.ticket.title
|
||||
},
|
||||
afterGetTicket(ticket) {
|
||||
const ticketRouteMapper = {
|
||||
'apply_asset': 'AssetsTicketDetail',
|
||||
'apply_application': 'AppsTicketDetail',
|
||||
'login_confirm': 'LoginAssetTicketDetail',
|
||||
'login_asset_confirm': 'CommandConfirmDetail'
|
||||
}
|
||||
const routeName = ticketRouteMapper[ticket.type]
|
||||
setTimeout(() => {
|
||||
this.$router.push({
|
||||
name: routeName,
|
||||
params: { id: this.$route.params['id'] }
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ export default {
|
||||
} else if (row.type === 'apply_application') {
|
||||
return 'AppsTicketDetail'
|
||||
} else if (row.type === 'login_asset_confirm') {
|
||||
return 'loginAssetTicketDetail'
|
||||
return 'LoginAssetTicketDetail'
|
||||
} else if (row.type === 'command_confirm') {
|
||||
return 'CommandConfirmDetail'
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user