feat:添加asset-account配置开关逻辑

This commit is contained in:
wangwenrui
2020-01-16 10:43:07 +08:00
parent 7f894f6b79
commit ea224c512d
3 changed files with 58 additions and 125 deletions

View File

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

View File

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

View File

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