mirror of
https://github.com/jumpserver/lina.git
synced 2025-08-27 10:59:05 +00:00
perf: asset permission set
This commit is contained in:
parent
73c593cc4e
commit
8e7d8370a1
@ -55,7 +55,7 @@ export default {
|
|||||||
component: AccountFormatter,
|
component: AccountFormatter,
|
||||||
el: {
|
el: {
|
||||||
showAddTemplate: false,
|
showAddTemplate: false,
|
||||||
showVirtualAccount: false,
|
enableVirtualAccount: false,
|
||||||
value: ['@ALL'],
|
value: ['@ALL'],
|
||||||
assets: []
|
assets: []
|
||||||
},
|
},
|
||||||
|
@ -44,7 +44,7 @@ export default {
|
|||||||
component: AccountFormatter,
|
component: AccountFormatter,
|
||||||
el: {
|
el: {
|
||||||
showAddTemplate: false,
|
showAddTemplate: false,
|
||||||
showVirtualAccount: false
|
enableVirtualAccount: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
action: {},
|
action: {},
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
||||||
<div v-if="showSpecAccounts" class="spec-accounts spec-zone">
|
<div v-if="showSpecZone" class="spec-accounts spec-zone">
|
||||||
<div class="group-title">{{ $t('SpecAccount') }}</div>
|
<div class="group-title">{{ $t('SpecAccount') }}</div>
|
||||||
<TagInput
|
<TagInput
|
||||||
v-model="specAccountsInput"
|
v-model="specAccountsInput"
|
||||||
@ -33,14 +33,22 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="showNotAccounts" class="not-accounts spec-zone">
|
<!-- <div v-if="showNotAccounts" class="not-accounts spec-zone">-->
|
||||||
<div class="group-title">{{ $t('ExcludeAccount') }}</div>
|
<!-- <div class="group-title">{{ $t('ExcludeAccount') }}</div>-->
|
||||||
<TagInput v-model="excludeAccountsInput" @change="handleTagChange" />
|
<!-- <TagInput v-model="excludeAccountsInput" @change="handleTagChange" />-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
|
|
||||||
<div v-if="showVirtualAccount" class="spec-zone virtual-choices">
|
<div v-if="enableVirtualAccount" class="spec-zone virtual-choices">
|
||||||
<el-checkbox v-model="virtualChecked"> Virtual Account</el-checkbox>
|
<el-checkbox v-model="virtualChecked" @change="handleVirtualChecked">
|
||||||
<el-select v-model="virtualSelected" :multiple="true" @change="handleVirtualChecked">
|
{{ virtualAccount.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
<el-select
|
||||||
|
v-if="virtualChecked"
|
||||||
|
v-model="virtualSelected"
|
||||||
|
:multiple="true"
|
||||||
|
:placeholder="$t('SelectVirtualAccount')"
|
||||||
|
@change="handleVirtualChecked"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="i in virtualAccounts"
|
v-for="i in virtualAccounts"
|
||||||
:key="i.label"
|
:key="i.label"
|
||||||
@ -79,6 +87,7 @@ import {
|
|||||||
realChoices,
|
realChoices,
|
||||||
SameAccount,
|
SameAccount,
|
||||||
SpecAccount,
|
SpecAccount,
|
||||||
|
virtualAccount,
|
||||||
virtualAccounts
|
virtualAccounts
|
||||||
} from '@/views/perms/const'
|
} from '@/views/perms/const'
|
||||||
import ListTable from '@/components/Table/ListTable'
|
import ListTable from '@/components/Table/ListTable'
|
||||||
@ -111,7 +120,7 @@ export default {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
showVirtualAccount: {
|
enableVirtualAccount: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
@ -141,7 +150,7 @@ export default {
|
|||||||
virtualAccountsNames: [ManualAccount, SameAccount, AnonymousAccount],
|
virtualAccountsNames: [ManualAccount, SameAccount, AnonymousAccount],
|
||||||
specAccountsInput: [],
|
specAccountsInput: [],
|
||||||
specAccountsTemplate: [],
|
specAccountsTemplate: [],
|
||||||
showSpecAccounts: false,
|
showSpecZone: false,
|
||||||
getTagType: (tag) => {
|
getTagType: (tag) => {
|
||||||
if (vm.specAccountsTemplate.filter(i => i.username === tag).length > 0) {
|
if (vm.specAccountsTemplate.filter(i => i.username === tag).length > 0) {
|
||||||
return 'primary'
|
return 'primary'
|
||||||
@ -149,7 +158,7 @@ export default {
|
|||||||
return 'info'
|
return 'info'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
showNotAccounts: false,
|
showExcludeZone: false,
|
||||||
accountTemplateTable: accountTemplateTable,
|
accountTemplateTable: accountTemplateTable,
|
||||||
autocomplete: (query, cb) => {
|
autocomplete: (query, cb) => {
|
||||||
const data = {
|
const data = {
|
||||||
@ -172,10 +181,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
virtualAccount() {
|
||||||
|
return virtualAccount
|
||||||
|
}
|
||||||
|
},
|
||||||
watch: {
|
watch: {
|
||||||
realRadioSelected(val) {
|
realRadioSelected(val) {
|
||||||
this.showSpecAccounts = val === this.SPEC
|
this.showSpecZone = val === this.SPEC
|
||||||
this.showNotAccounts = val === this.EXCLUDE
|
this.showExcludeZone = val === this.EXCLUDE
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -236,6 +250,7 @@ export default {
|
|||||||
}, 100)
|
}, 100)
|
||||||
},
|
},
|
||||||
handleVirtualChecked(evt, checked) {
|
handleVirtualChecked(evt, checked) {
|
||||||
|
console.log('Vhcek cch')
|
||||||
this.outputValue()
|
this.outputValue()
|
||||||
},
|
},
|
||||||
handleRadioChanged(value) {
|
handleRadioChanged(value) {
|
||||||
@ -249,7 +264,7 @@ export default {
|
|||||||
let choicesSelected = []
|
let choicesSelected = []
|
||||||
if (this.realRadioSelected === this.ALL) {
|
if (this.realRadioSelected === this.ALL) {
|
||||||
choicesSelected = [this.ALL]
|
choicesSelected = [this.ALL]
|
||||||
} else if (this.realRadioSelected === this.SPEC && this.showSpecAccounts) {
|
} else if (this.realRadioSelected === this.SPEC && this.showSpecZone) {
|
||||||
const templateIds = this.specAccountsTemplate.map(i => `%${i.id}`)
|
const templateIds = this.specAccountsTemplate.map(i => `%${i.id}`)
|
||||||
choicesSelected = [this.realRadioSelected, ...this.specAccountsInput, ...templateIds]
|
choicesSelected = [this.realRadioSelected, ...this.specAccountsInput, ...templateIds]
|
||||||
}
|
}
|
||||||
@ -261,6 +276,8 @@ export default {
|
|||||||
choicesSelected = [...choicesSelected, ...this.virtualSelected]
|
choicesSelected = [...choicesSelected, ...this.virtualSelected]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.$log.debug('choicesSelected', choicesSelected)
|
||||||
|
|
||||||
this.$emit('input', choicesSelected)
|
this.$emit('input', choicesSelected)
|
||||||
this.$emit('change', choicesSelected)
|
this.$emit('change', choicesSelected)
|
||||||
}
|
}
|
||||||
|
@ -168,6 +168,12 @@ export const AccountLabelMapper = {
|
|||||||
[AnonymousAccount]: i18n.t('AnonymousAccount')
|
[AnonymousAccount]: i18n.t('AnonymousAccount')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const virtualAccount = {
|
||||||
|
label: i18n.t('VirtualAccounts'),
|
||||||
|
value: '@VIRTUAL',
|
||||||
|
tip: i18n.t('VirtualAccountHelpMsg')
|
||||||
|
}
|
||||||
|
|
||||||
export const realChoices = [
|
export const realChoices = [
|
||||||
{
|
{
|
||||||
label: AccountLabelMapper[AllAccount],
|
label: AccountLabelMapper[AllAccount],
|
||||||
|
Loading…
Reference in New Issue
Block a user