mirror of
https://github.com/jumpserver/lina.git
synced 2026-05-17 13:03:26 +00:00
perf: AttrRulesFilterBackend support filter by attr_rules_instance, resolve detail page url params too long
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
<script>
|
||||
import { DrawerListTable as ListTable } from '@/components'
|
||||
import { toM2MJsonParams } from '@/utils/jms/index'
|
||||
import { toM2MInstanceJsonParams } from '@/utils/jms/index'
|
||||
import { DetailFormatter } from '@/components/Table/TableFormatters'
|
||||
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
|
||||
|
||||
@@ -21,10 +21,14 @@ export default {
|
||||
type: Object,
|
||||
default: () => {
|
||||
}
|
||||
},
|
||||
objectAppModel: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
const [key, value] = toM2MJsonParams(this.object.assets)
|
||||
const [key, value] = toM2MInstanceJsonParams(this.objectAppModel, this.object.id)
|
||||
const org_id = this.object.org_id || this.$store.getters.currentOrg.id
|
||||
return {
|
||||
config: {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<script>
|
||||
import { DrawerListTable as ListTable } from '@/components'
|
||||
import { toM2MJsonParams } from '@/utils/jms/index'
|
||||
import { toM2MInstanceJsonParams } from '@/utils/jms/index'
|
||||
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
|
||||
import { DetailFormatter } from '@/components/Table/TableFormatters'
|
||||
|
||||
@@ -21,10 +21,14 @@ export default {
|
||||
type: Object,
|
||||
default: () => {
|
||||
}
|
||||
},
|
||||
objectAppModel: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
const [key, value] = toM2MJsonParams(this.object.users)
|
||||
const [key, value] = toM2MInstanceJsonParams(this.objectAppModel, this.object.id)
|
||||
const org_id = this.object.org_id || this.$store.getters.currentOrg.id
|
||||
return {
|
||||
config: {
|
||||
|
||||
@@ -178,6 +178,17 @@ export function toM2MJsonParams(attrFilter) {
|
||||
return ['attr_rules', encodeURIComponent(btoa(String.fromCharCode(...data)))]
|
||||
}
|
||||
|
||||
export function toM2MInstanceJsonParams(instanceAppModel, instanceId) {
|
||||
const encoder = new TextEncoder()
|
||||
const [instanceApp, instanceModel] = instanceAppModel.split('.')
|
||||
const data = encoder.encode(JSON.stringify({
|
||||
'app': instanceApp,
|
||||
'model': instanceModel,
|
||||
'id': instanceId
|
||||
}))
|
||||
return ['attr_rules_instance', encodeURIComponent(btoa(String.fromCharCode(...data)))]
|
||||
}
|
||||
|
||||
export function IsSupportPauseSessionType(terminalType) {
|
||||
const supportedType = ['koko', 'lion', 'chen', 'kael']
|
||||
return supportedType.includes(terminalType)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<GenericDetailPage :active-menu.sync="config.activeMenu" :object.sync="instance" v-bind="config" v-on="$listeners">
|
||||
<keep-alive>
|
||||
<component :is="config.activeMenu" :object="instance" />
|
||||
<component :is="config.activeMenu" :object="instance" object-app-model="acls.LoginAssetACL" />
|
||||
</keep-alive>
|
||||
</GenericDetailPage>
|
||||
</template>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
v-on="$listeners"
|
||||
>
|
||||
<keep-alive>
|
||||
<component :is="config.activeMenu" :object="CommandFilterACL" />
|
||||
<component :is="config.activeMenu" :object="CommandFilterACL" object-app-model="acls.CommandFilterACL" />
|
||||
</keep-alive>
|
||||
</GenericDetailPage>
|
||||
</template>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<GenericDetailPage :active-menu.sync="config.activeMenu" :object.sync="TaskDetail" v-bind="config" v-on="$listeners">
|
||||
<keep-alive>
|
||||
<component :is="config.activeMenu" :object="TaskDetail" />
|
||||
<component :is="config.activeMenu" :object="TaskDetail" object-app-model="acls.ConnectMethodACL" />
|
||||
</keep-alive>
|
||||
</GenericDetailPage>
|
||||
</template>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<GenericDetailPage :active-menu.sync="config.activeMenu" :object.sync="instance" v-bind="config" v-on="$listeners">
|
||||
<keep-alive>
|
||||
<component :is="config.activeMenu" :object="instance" />
|
||||
<component :is="config.activeMenu" :object="instance" object-app-model="acls.DataMaskingRule" />
|
||||
</keep-alive>
|
||||
</GenericDetailPage>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user