feat:添加asset-account配置开关逻辑
This commit is contained in:
@@ -123,6 +123,7 @@ const en = {
|
|||||||
tel:'Phone number is invalid',
|
tel:'Phone number is invalid',
|
||||||
host:'IP Address is invalid',
|
host:'IP Address is invalid',
|
||||||
fileSize:'upload file is too large',
|
fileSize:'upload file is too large',
|
||||||
|
port:'Port is invalide',
|
||||||
config: {
|
config: {
|
||||||
account: {
|
account: {
|
||||||
|
|
||||||
@@ -217,7 +218,8 @@ const en = {
|
|||||||
upload:'Upload',
|
upload:'Upload',
|
||||||
clickToUpload:'Upload',
|
clickToUpload:'Upload',
|
||||||
clickToCover:'Cover',
|
clickToCover:'Cover',
|
||||||
sshKeyWasConfig:'SSH-KEY has been configured'
|
sshKeyWasConfig:'SSH-KEY has been configured',
|
||||||
|
exporter:'Exporter'
|
||||||
},
|
},
|
||||||
editAssetTab:{
|
editAssetTab:{
|
||||||
title:'Create Asset',
|
title:'Create Asset',
|
||||||
|
|||||||
@@ -20,11 +20,11 @@
|
|||||||
<el-input size="mini" v-model="account.user" v-if="isEdit"/>
|
<el-input size="mini" v-model="account.user" v-if="isEdit"/>
|
||||||
<div class="right-box-form-content-txt" v-if="!isEdit">{{account.user}}</div>
|
<div class="right-box-form-content-txt" v-if="!isEdit">{{account.user}}</div>
|
||||||
</el-form-item>
|
</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-input size="mini" type="password" v-model="account.pwd"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.port')" prop="port" >
|
<el-form-item :label="$t('asset.createAssetTab.port')" prop="port" style="display: inline-block">
|
||||||
<el-input size="mini" v-model="account.port" v-if="isEdit"/>
|
<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>
|
<div class="right-box-form-content-txt" v-if="!isEdit">{{account.port}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="this.$t('asset.createAssetTab.ssh')" v-show="account.authType==2" prop="file" v-if="isEdit">
|
<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",
|
name: "accountConfig",
|
||||||
props:{
|
props:{
|
||||||
account:{type:Object},
|
account:{type:Object},
|
||||||
asComponent:{type:Boolean,default:false},
|
asComponent:{type:Boolean,default:true},//历史原因增加的逻辑,可删除
|
||||||
isEdit:{type:Boolean,default:true}
|
isEdit:{type:Boolean,default:true}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -69,11 +69,23 @@ export default {
|
|||||||
if(!value || value == ''){
|
if(!value || value == ''){
|
||||||
callback(new Error(this.$t('validate.required')))
|
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{
|
}else{
|
||||||
if(this.account.user){
|
if(this.account.user){
|
||||||
if(!value || value == ''){
|
if(!value || value == ''){
|
||||||
callback(new Error(this.$t('validate.required')))
|
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();
|
callback();
|
||||||
@@ -92,7 +104,7 @@ export default {
|
|||||||
{ validator: validataUser, trigger: 'blur'}
|
{ validator: validataUser, trigger: 'blur'}
|
||||||
],
|
],
|
||||||
port:[
|
port:[
|
||||||
{ validator: validatePort, trigger: 'blur'}
|
{ validator: validatePort, trigger: 'change'}
|
||||||
],
|
],
|
||||||
file:[
|
file:[
|
||||||
{ validator: validateFile, trigger: 'change'}
|
{ validator: validateFile, trigger: 'change'}
|
||||||
|
|||||||
@@ -259,58 +259,7 @@
|
|||||||
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit', item)"></i>
|
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit', item)"></i>
|
||||||
</template>
|
</template>
|
||||||
</idc-config-box>
|
</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"
|
<span class="config-dropdown-btn config-dropdown-btn-delete"
|
||||||
@click.stop="deleteData('idc',item.id)" :id="'asset-add-idc-op-del-'+item.id"><i
|
@click.stop="deleteData('idc',item.id)" :id="'asset-add-idc-op-del-'+item.id"><i
|
||||||
class="el-icon-delete"></i></span>
|
class="el-icon-delete"></i></span>
|
||||||
@@ -318,58 +267,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
<div class="right-box-row-btn right-box-row-btn-small">
|
<div class="right-box-row-btn right-box-row-btn-small">
|
||||||
<idc-config-box placement="left" @after="getIDCOptionData"></idc-config-box>
|
<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>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="this.$t('asset.createAssetTab.location')">
|
<el-form-item :label="this.$t('asset.createAssetTab.location')">
|
||||||
@@ -417,9 +315,16 @@
|
|||||||
<span>{{cabinetSelectedData.remark}}</span>
|
<span>{{cabinetSelectedData.remark}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--CLI-->
|
<!--CLI-->
|
||||||
<div class="asset-sub-title">{{$t('asset.createAssetTab.cli')}}</div>
|
<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>
|
<div class="line-100 asset-line"></div>
|
||||||
<account-config-box v-for="(item,index) in assetData.accounts" :account="item" :key="index" ref="accountConfigBox"></account-config-box>
|
<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-form>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@@ -455,8 +360,10 @@
|
|||||||
pwd: '',
|
pwd: '',
|
||||||
port: '',
|
port: '',
|
||||||
uploadFile:null
|
uploadFile:null
|
||||||
}]
|
}],
|
||||||
|
exporter:0
|
||||||
},
|
},
|
||||||
|
accountSwitch:false,//true 开启,false 关闭
|
||||||
assetStateOption: [
|
assetStateOption: [
|
||||||
{
|
{
|
||||||
value: 1,
|
value: 1,
|
||||||
@@ -594,7 +501,8 @@
|
|||||||
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
uploadFileList:[]
|
uploadFileList:[],
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/*computed: {
|
/*computed: {
|
||||||
@@ -618,6 +526,11 @@
|
|||||||
},
|
},
|
||||||
'assetData.idcId': function(n, o) {
|
'assetData.idcId': function(n, o) {
|
||||||
this.addCabinetData.idcId = n;
|
this.addCabinetData.idcId = n;
|
||||||
|
},
|
||||||
|
'assetData.exporter':function(n,o){
|
||||||
|
if(parseInt(n) === 1){
|
||||||
|
this.accountSwitch=true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -824,8 +737,11 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (type === 'asset') {
|
if (type === 'asset') {
|
||||||
this.$refs.accountConfigBox[0].validateAccount();
|
let accountValideResult=true;
|
||||||
let accountValideResult=this.$refs.accountConfigBox[0].validateResult;
|
if(this.$refs.accountConfigBox&&this.$refs.accountConfigBox.length>0){
|
||||||
|
this.$refs.accountConfigBox[0].validateAccount();
|
||||||
|
accountValideResult=this.$refs.accountConfigBox[0].validateResult;
|
||||||
|
}
|
||||||
this.$refs.addAssetForm.validate((valid) => {
|
this.$refs.addAssetForm.validate((valid) => {
|
||||||
if (valid&&accountValideResult) {
|
if (valid&&accountValideResult) {
|
||||||
let modelId = ''
|
let modelId = ''
|
||||||
@@ -848,18 +764,21 @@
|
|||||||
form.append("idcId", this.assetData.idcId);
|
form.append("idcId", this.assetData.idcId);
|
||||||
form.append("cabinetId", this.assetData.cabinetId);
|
form.append("cabinetId", this.assetData.cabinetId);
|
||||||
form.append("modelId", modelId);
|
form.append("modelId", modelId);
|
||||||
for(let i in this.assetData.accounts){
|
if(this.accountSwitch){
|
||||||
let account=this.assetData.accounts[i];
|
for(let i in this.assetData.accounts){
|
||||||
if(account.user){
|
let account=this.assetData.accounts[i];
|
||||||
form.append("accounts["+i+"].authType",account.authType);
|
if(account.user){
|
||||||
form.append("accounts["+i+"].user", account.user);
|
form.append("accounts["+i+"].authType",account.authType);
|
||||||
form.append("accounts["+i+"].port", account.port);
|
form.append("accounts["+i+"].user", account.user);
|
||||||
form.append("accounts["+i+"].pwd", account.pwd);
|
form.append("accounts["+i+"].port", account.port);
|
||||||
if(account.authType==2){
|
form.append("accounts["+i+"].pwd", account.pwd);
|
||||||
form.append('cert',account.uploadFile?account.uploadFile.raw:null);
|
if(account.authType==2){
|
||||||
|
form.append('cert',account.uploadFile?account.uploadFile.raw:null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
form.append("exporter",parseInt(this.assetData.exporter));
|
||||||
this.$post('asset', form,{'Content-Type': 'multipart/form-data'}).then(res => {
|
this.$post('asset', form,{'Content-Type': 'multipart/form-data'}).then(res => {
|
||||||
const h = this.$createElement;
|
const h = this.$createElement;
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
|
|||||||
Reference in New Issue
Block a user