feat:添加asset-account配置开关逻辑
This commit is contained in:
@@ -123,6 +123,7 @@ const en = {
|
||||
tel:'Phone number is invalid',
|
||||
host:'IP Address is invalid',
|
||||
fileSize:'upload file is too large',
|
||||
port:'Port is invalide',
|
||||
config: {
|
||||
account: {
|
||||
|
||||
@@ -217,7 +218,8 @@ const en = {
|
||||
upload:'Upload',
|
||||
clickToUpload:'Upload',
|
||||
clickToCover:'Cover',
|
||||
sshKeyWasConfig:'SSH-KEY has been configured'
|
||||
sshKeyWasConfig:'SSH-KEY has been configured',
|
||||
exporter:'Exporter'
|
||||
},
|
||||
editAssetTab:{
|
||||
title:'Create Asset',
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
<el-input size="mini" v-model="account.user" v-if="isEdit"/>
|
||||
<div class="right-box-form-content-txt" v-if="!isEdit">{{account.user}}</div>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('asset.createAssetTab.password')" v-show="account.authType==1" v-if="isEdit">
|
||||
<el-form-item :label="$t('asset.createAssetTab.password')" v-show="account.authType==1" v-if="isEdit" style="display: inline-block">
|
||||
<el-input size="mini" type="password" v-model="account.pwd"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('asset.createAssetTab.port')" prop="port" >
|
||||
<el-input size="mini" v-model="account.port" v-if="isEdit"/>
|
||||
<el-form-item :label="$t('asset.createAssetTab.port')" prop="port" style="display: inline-block">
|
||||
<el-input size="mini" v-model.number="account.port" v-if="isEdit"/>
|
||||
<div class="right-box-form-content-txt" v-if="!isEdit">{{account.port}}</div>
|
||||
</el-form-item>
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.ssh')" v-show="account.authType==2" prop="file" v-if="isEdit">
|
||||
@@ -45,7 +45,7 @@ export default {
|
||||
name: "accountConfig",
|
||||
props:{
|
||||
account:{type:Object},
|
||||
asComponent:{type:Boolean,default:false},
|
||||
asComponent:{type:Boolean,default:true},//历史原因增加的逻辑,可删除
|
||||
isEdit:{type:Boolean,default:true}
|
||||
},
|
||||
created() {
|
||||
@@ -69,11 +69,23 @@ export default {
|
||||
if(!value || value == ''){
|
||||
callback(new Error(this.$t('validate.required')))
|
||||
}
|
||||
if(typeof value != 'number'){
|
||||
callback(new Error(this.$t('validate.number')))
|
||||
}
|
||||
if(value < 1 ||value > 65535){
|
||||
callback(new Error(this.$t('validate.port')))
|
||||
}
|
||||
}else{
|
||||
if(this.account.user){
|
||||
if(!value || value == ''){
|
||||
callback(new Error(this.$t('validate.required')))
|
||||
}
|
||||
if(typeof value != 'number'){
|
||||
callback(new Error(this.$t('validate.number')))
|
||||
}
|
||||
if(value < 1 ||value > 65535){
|
||||
callback(new Error(this.$t('validate.port')))
|
||||
}
|
||||
}
|
||||
}
|
||||
callback();
|
||||
@@ -92,7 +104,7 @@ export default {
|
||||
{ validator: validataUser, trigger: 'blur'}
|
||||
],
|
||||
port:[
|
||||
{ validator: validatePort, trigger: 'blur'}
|
||||
{ validator: validatePort, trigger: 'change'}
|
||||
],
|
||||
file:[
|
||||
{ validator: validateFile, trigger: 'change'}
|
||||
|
||||
@@ -259,58 +259,7 @@
|
||||
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit', item)"></i>
|
||||
</template>
|
||||
</idc-config-box>
|
||||
<!--<el-popover
|
||||
placement="left"
|
||||
v-model="item[item.name]"
|
||||
>
|
||||
<div class="pop-window-assetType-content">
|
||||
<div class="right-box-top-btns">
|
||||
<div class="right-box-top-btn right-box-top-btn-full"
|
||||
@click="item[item.name] = false">
|
||||
<div class="right-box-btn-icon">
|
||||
<i class="el-icon-close"></i>
|
||||
</div>
|
||||
<span>{{$t('overall.esc')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pop-window">
|
||||
<span style="display: block;padding-bottom: 20px">{{$t('asset.createAssetTab.editIdcTab.title')}}</span>
|
||||
<el-form-item :label="$t('asset.createAssetTab.dcName')">
|
||||
<el-input v-model="popIdcData.name"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('asset.createAssetTab.location')">
|
||||
<el-input v-model="popIdcData.location"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('asset.createAssetTab.principal')">
|
||||
<el-select v-model="popIdcData.principal" clearable size="mini">
|
||||
<el-option
|
||||
v-for="item in idcUserData"
|
||||
:key="item.key"
|
||||
:label="item.username"
|
||||
:value="item.userId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('asset.createAssetTab.editIdcTab.tel')">
|
||||
<el-input size="mini" v-model="popIdcData.tel"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-box-bottom-btns">
|
||||
<div class="right-box-bottom-btn right-box-bottom-btn-cancel"
|
||||
@click.stop="item[item.name]= false">
|
||||
{{$t('overall.cancel')}}
|
||||
</div>
|
||||
<div class="right-box-bottom-btn right-box-bottom-btn-50"
|
||||
@click="editData('idc',item)">
|
||||
{{$t('overall.save')}}
|
||||
</div>
|
||||
</div>
|
||||
<span class="config-dropdown-btn" slot="reference"
|
||||
@click.stop="getSingleIDCData(item.id,'edit',item)"><i
|
||||
class="el-icon-edit-outline"></i></span>
|
||||
</el-popover>-->
|
||||
|
||||
<span class="config-dropdown-btn config-dropdown-btn-delete"
|
||||
@click.stop="deleteData('idc',item.id)" :id="'asset-add-idc-op-del-'+item.id"><i
|
||||
class="el-icon-delete"></i></span>
|
||||
@@ -318,58 +267,7 @@
|
||||
</el-select>
|
||||
<div class="right-box-row-btn right-box-row-btn-small">
|
||||
<idc-config-box placement="left" @after="getIDCOptionData"></idc-config-box>
|
||||
<!--<el-popover
|
||||
placement="left"
|
||||
trigger="click"
|
||||
v-model="popIDCVisible"
|
||||
>
|
||||
<div class="pop-window-assetType-content">
|
||||
<div class="right-box-top-btns">
|
||||
<div class="right-box-top-btn right-box-top-btn-full"
|
||||
@click="popoverClose('idc')">
|
||||
<div class="right-box-btn-icon">
|
||||
<i class="el-icon-close"></i>
|
||||
</div>
|
||||
<span>{{$t('overall.esc')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pop-window">
|
||||
<span
|
||||
style="display: block;padding-bottom: 20px">{{$t('asset.createAssetTab.AddIdcTab.title')}}</span>
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.AddIdcTab.dcName')">
|
||||
<el-input v-model="addIdcData.name"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.AddIdcTab.location')">
|
||||
<el-input v-model="addIdcData.location"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.AddIdcTab.principal')">
|
||||
<el-select size="mini" v-model="addIdcData.principal" clearable>
|
||||
<el-option
|
||||
v-for="item in idcUserData"
|
||||
:key="item.key"
|
||||
:label="item.username"
|
||||
:value="item.userId"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.AddIdcTab.tel')">
|
||||
<el-input v-model="addIdcData.tel"/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-box-bottom-btns">
|
||||
<div class="right-box-bottom-btn right-box-bottom-btn-cancel"
|
||||
@click="popoverClose('idc')">
|
||||
{{$t('overall.cancel')}}
|
||||
</div>
|
||||
<div class="right-box-bottom-btn right-box-bottom-btn-50"
|
||||
@click="addNewData('IDC')">
|
||||
{{$t('overall.save')}}
|
||||
</div>
|
||||
</div>
|
||||
<div slot="reference"><i class="el-icon-plus"></i></div>
|
||||
</el-popover>-->
|
||||
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.location')">
|
||||
@@ -418,8 +316,15 @@
|
||||
</el-form-item>
|
||||
<!--CLI-->
|
||||
<div class="asset-sub-title" >{{$t('asset.createAssetTab.cli')}}</div>
|
||||
<el-switch v-model="accountSwitch" active-color="#1166bb" :disabled="parseInt(assetData.exporter)===1"></el-switch>
|
||||
<div class="line-100 asset-line"></div>
|
||||
<template v-if="accountSwitch">
|
||||
<account-config-box v-for="(item,index) in assetData.accounts" :account="item" :key="index" ref="accountConfigBox"></account-config-box>
|
||||
</template>
|
||||
|
||||
<el-form-item :label="this.$t('asset.createAssetTab.exporter')">
|
||||
<el-switch v-model="assetData.exporter" active-color="#1166bb" active-value="1" inactive-value="0"></el-switch>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
@@ -455,8 +360,10 @@
|
||||
pwd: '',
|
||||
port: '',
|
||||
uploadFile:null
|
||||
}]
|
||||
}],
|
||||
exporter:0
|
||||
},
|
||||
accountSwitch:false,//true 开启,false 关闭
|
||||
assetStateOption: [
|
||||
{
|
||||
value: 1,
|
||||
@@ -594,7 +501,8 @@
|
||||
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
||||
]
|
||||
},
|
||||
uploadFileList:[]
|
||||
uploadFileList:[],
|
||||
|
||||
}
|
||||
},
|
||||
/*computed: {
|
||||
@@ -618,6 +526,11 @@
|
||||
},
|
||||
'assetData.idcId': function(n, o) {
|
||||
this.addCabinetData.idcId = n;
|
||||
},
|
||||
'assetData.exporter':function(n,o){
|
||||
if(parseInt(n) === 1){
|
||||
this.accountSwitch=true;
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -824,8 +737,11 @@
|
||||
})
|
||||
}
|
||||
if (type === 'asset') {
|
||||
let accountValideResult=true;
|
||||
if(this.$refs.accountConfigBox&&this.$refs.accountConfigBox.length>0){
|
||||
this.$refs.accountConfigBox[0].validateAccount();
|
||||
let accountValideResult=this.$refs.accountConfigBox[0].validateResult;
|
||||
accountValideResult=this.$refs.accountConfigBox[0].validateResult;
|
||||
}
|
||||
this.$refs.addAssetForm.validate((valid) => {
|
||||
if (valid&&accountValideResult) {
|
||||
let modelId = ''
|
||||
@@ -848,6 +764,7 @@
|
||||
form.append("idcId", this.assetData.idcId);
|
||||
form.append("cabinetId", this.assetData.cabinetId);
|
||||
form.append("modelId", modelId);
|
||||
if(this.accountSwitch){
|
||||
for(let i in this.assetData.accounts){
|
||||
let account=this.assetData.accounts[i];
|
||||
if(account.user){
|
||||
@@ -860,6 +777,8 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
form.append("exporter",parseInt(this.assetData.exporter));
|
||||
this.$post('asset', form,{'Content-Type': 'multipart/form-data'}).then(res => {
|
||||
const h = this.$createElement;
|
||||
if (res.code === 200) {
|
||||
|
||||
Reference in New Issue
Block a user