perf: AttrRulesFilterBackend support filter by attr_rules_instance, resolve detail page url params too long

This commit is contained in:
Bai
2026-04-10 19:57:36 +08:00
committed by 老广
parent 9e724e0cc2
commit 05069d6397
7 changed files with 27 additions and 8 deletions

View File

@@ -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: {

View File

@@ -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: {

View File

@@ -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)

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>