perf: 批量添加账号 模版添加 样式修改

This commit is contained in:
feng 2023-04-07 16:10:31 +08:00
parent a1906fd925
commit cc7dd80a8a
6 changed files with 55 additions and 24 deletions

View File

@ -37,11 +37,14 @@ export default {
encryptPassword: {
type: Boolean,
default: true
},
addTemplate: {
type: Boolean,
default: false
}
},
data() {
return {
selectedTemplate: false,
loading: true,
usernameChanged: false,
defaultPrivilegedAccounts: ['root', 'administrator'],
@ -82,6 +85,7 @@ export default {
},
template: {
component: Select2,
rules: [Required],
el: {
multiple: false,
ajax: {
@ -92,17 +96,12 @@ export default {
}
},
hidden: () => {
return this.platform || this.asset
},
on: {
change: ([event]) => {
this.selectedTemplate = !!event
}
return this.platform || this.asset || !this.addTemplate
}
},
on_invalid: {
rules: [Required],
label: this.$t('ops.RunasPolicy'),
label: this.$t('accounts.AccountPolicy'),
helpText: this.$t('accounts.BulkCreateStrategy'),
hidden: () => {
return this.platform || this.asset
@ -124,7 +123,7 @@ export default {
}
},
hidden: () => {
return this.selectedTemplate
return this.addTemplate
}
},
username: {
@ -143,12 +142,12 @@ export default {
}
},
hidden: () => {
return this.selectedTemplate
return this.addTemplate
}
},
privileged: {
hidden: () => {
return this.selectedTemplate
return this.addTemplate
}
},
su_from: {
@ -170,51 +169,46 @@ export default {
secret: {
label: this.$t('assets.Password'),
component: UpdateToken,
hidden: (formValue) => formValue.secret_type !== 'password' || this.selectedTemplate
hidden: (formValue) => formValue.secret_type !== 'password' || this.addTemplate
},
ssh_key: {
label: this.$t('assets.PrivateKey'),
component: UploadSecret,
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.selectedTemplate
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.addTemplate
},
passphrase: {
label: this.$t('assets.Passphrase'),
component: UpdateToken,
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.selectedTemplate
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.addTemplate
},
token: {
label: this.$t('assets.Token'),
component: UploadSecret,
hidden: (formValue) => formValue.secret_type !== 'token' || this.selectedTemplate
hidden: (formValue) => formValue.secret_type !== 'token' || this.addTemplate
},
access_key: {
id: 'access_key',
label: this.$t('assets.AccessKey'),
component: UploadSecret,
hidden: (formValue) => formValue.secret_type !== 'access_key' || this.selectedTemplate
hidden: (formValue) => formValue.secret_type !== 'access_key' || this.addTemplate
},
secret_type: {
type: 'radio-group',
options: [],
hidden: () => {
return this.selectedTemplate
return this.addTemplate
}
},
push_now: {
helpText: this.$t('accounts.AccountPush.WindowsPushHelpText'),
hidden: () => {
const automation = this.iPlatform.automation || {}
return !automation.push_account_enabled || !automation.ansible_enabled || !this.$hasPerm('accounts.push_account')
}
},
is_active: {
hidden: () => {
return this.selectedTemplate
return !automation.push_account_enabled || !automation.ansible_enabled || !this.$hasPerm('accounts.push_account') || this.addTemplate
}
},
comment: {
hidden: () => {
return this.selectedTemplate
return this.addTemplate
}
}
},

View File

@ -16,6 +16,7 @@
ref="form"
:account="account"
:asset="asset"
:add-template="addTemplate"
@add="addAccount"
@edit="editAccount"
/>
@ -37,6 +38,10 @@ export default {
type: Boolean,
default: false
},
addTemplate: {
type: Boolean,
default: false
},
asset: {
type: Object,
default: null

View File

@ -22,6 +22,16 @@
@add="addAccountSuccess"
@bulk-create-done="showBulkCreateResult($event)"
/>
<AccountCreateUpdate
v-if="showAddTemplateDialog"
:account="account"
:asset="iAsset"
:add-template="true"
:title="accountCreateUpdateTitle"
:visible.sync="showAddTemplateDialog"
@add="addAccountSuccess"
@bulk-create-done="showBulkCreateResult($event)"
/>
<ResultDialog
v-if="showResultDialog"
:result="createAccountResults"
@ -105,6 +115,7 @@ export default {
showUpdateSecretDialog: false,
showResultDialog: false,
showAddDialog: false,
showAddTemplateDialog: false,
createAccountResults: [],
accountCreateUpdateTitle: this.$t('assets.AddAccount'),
iAsset: this.asset,
@ -307,6 +318,24 @@ export default {
})
}
},
{
name: 'add-template',
title: this.$t('common.TemplateAdd'),
type: 'primary',
has: !(this.platform || this.asset),
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.accountCreateUpdateTitle = this.$t('assets.AddAccount')
vm.showAddTemplateDialog = true
})
}
},
...this.headerExtraActions
],
extraMoreActions: [

View File

@ -1,6 +1,7 @@
{
"": "",
"accounts": {
"AccountPolicy": "Account policy",
"BulkCreateStrategy": "When creating accounts that do not meet the requirements, such as key type non-compliance and unique key constraints, the above policies can be selected.",
"HistoryDate": "History date",
"SameTypeAccountTip": "An account with the same user name and key type already exists",

View File

@ -1,6 +1,7 @@
{
"": "",
"accounts": {
"AccountPolicy": "アカウントポリシー",
"BulkCreateStrategy": "作成時に要件を満たしていないアカウント(例:鍵タイプが規則に合わない、一意のキー制約がある、上記のポリシーを選択することができます)について。",
"HistoryDate": "历史日期",
"SameTypeAccountTip": "同じユーザー名、鍵タイプのアカウントはすでに存在します",

View File

@ -2,6 +2,7 @@
"": "",
"accounts": {
"AddAccountResult": "账号批量添加结果",
"AccountPolicy": "账号策略",
"BulkCreateStrategy": "创建时对于不符合要求的账号,如:密钥类型不合规,唯一键约束,可选择以上策略。",
"AccountTemplate": "账号模版",
"HistoryDate": "日期",