feat:asset 列表机房弹框 及其他调整
1.机房配置抽取组件 2.idc配置组件增加详情查看 3.idc配置组件增加联动更新
This commit is contained in:
@@ -57,9 +57,11 @@
|
|||||||
<el-menu-item :index="'3-' + index">
|
<el-menu-item :index="'3-' + index">
|
||||||
<div @click="jumpToAsset('asset',item.id)">
|
<div @click="jumpToAsset('asset',item.id)">
|
||||||
<span>{{item.name}}</span>
|
<span>{{item.name}}</span>
|
||||||
<idc-config-box :post-idc="item" placement="left" @after="getIDCOptionData" :button-class="'menu-edit'">
|
<idc-config-box :post-idc="item" ref="idcConfigBox" placement="left" @after="getIDCOptionData" :button-class="'menu-edit'">
|
||||||
<template v-slot:optionZone>
|
<template v-slot:optionZone>
|
||||||
|
<div @click="closeAllPop">
|
||||||
<i class="el-icon-edit-outline" @click="getIDCOptionData(item.id)" style="color: inherit"></i>
|
<i class="el-icon-edit-outline" @click="getIDCOptionData(item.id)" style="color: inherit"></i>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</idc-config-box>
|
</idc-config-box>
|
||||||
<!--<el-popover
|
<!--<el-popover
|
||||||
@@ -425,6 +427,11 @@
|
|||||||
window.location.reload();
|
window.location.reload();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
closeAllPop:function(){
|
||||||
|
this.$refs.idcConfigBox.forEach((item)=>{
|
||||||
|
item.show(false)
|
||||||
|
})
|
||||||
|
},
|
||||||
getProjectList() {
|
getProjectList() {
|
||||||
this.$get('project', {}).then(response => {
|
this.$get('project', {}).then(response => {
|
||||||
if (response.code == 200) {
|
if (response.code == 200) {
|
||||||
|
|||||||
202
nezha-fronted/src/components/common/popBox/cabinetConfig.vue
Normal file
202
nezha-fronted/src/components/common/popBox/cabinetConfig.vue
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
<template>
|
||||||
|
<el-popover :placement="placement" width="400" @hide="hidePop" ref="popBox" v-model="popBox.show">
|
||||||
|
<div class="">
|
||||||
|
<div class="pop-window-assetType-content">
|
||||||
|
<div class="pop-top-btns">
|
||||||
|
<button type="button" @click="saveOrToEdit" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
||||||
|
<span class="top-tool-btn-txt" v-if="popBox.isEdit">{{$t('overall.save')}}</span>
|
||||||
|
<span class="top-tool-btn-txt" v-else>{{$t('overall.edit')}}</span>
|
||||||
|
</button>
|
||||||
|
<button type="button" @click="esc" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
||||||
|
<span class="top-tool-btn-txt"><i class="el-icon-close"></i></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<!--标题-->
|
||||||
|
<div class="pop-title">{{title}}</div>
|
||||||
|
<!--表单内容-->
|
||||||
|
<el-form class="pop-item-wider" :model="cabinet" ref="cabinetForm" :rules="rules">
|
||||||
|
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.name')" prop="name">
|
||||||
|
<el-input size='mini' v-model="cabinet.name" v-if="popBox.isEdit"/>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{cabinet.name}}</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.uSize')" prop="uSize">
|
||||||
|
<div :class="{'right-box-form-content-txt':!popBox.isEdit}" >{{cabinet.uSize}}</div>
|
||||||
|
<el-slider v-model.number="cabinet.uSize" :max="47" v-if="popBox.isEdit"></el-slider>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.remark')">
|
||||||
|
<el-input size='mini' v-model="cabinet.remark" type="textarea" :rows="2" v-if="popBox.isEdit"/>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{cabinet.remark}}</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.DC')" prop="idcId">
|
||||||
|
<el-select size='mini' v-model="cabinet.idcId" clearable style="width: 100%;" placeholder="" v-if="popBox.isEdit">
|
||||||
|
<el-option v-for="item in idcDatas" :key="item.key" :label="item.name" :value="item.id">
|
||||||
|
<span>{{ item.name }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{idc?idc.name:''}}</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<span :class="buttonClass" @click.prevent.stop="" slot="reference">
|
||||||
|
<slot name="optionZone">
|
||||||
|
<i class="el-icon-plus"></i>
|
||||||
|
</slot>
|
||||||
|
</span>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "cabinetConfig",
|
||||||
|
props:{
|
||||||
|
postCabinet:{type:Object},
|
||||||
|
placement:{type:String},
|
||||||
|
buttonClass:{type:String},
|
||||||
|
isEdit:{type:Boolean,default:true}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.init();
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return {
|
||||||
|
title:"",
|
||||||
|
rules:{
|
||||||
|
name: [
|
||||||
|
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
||||||
|
],
|
||||||
|
uSize: [
|
||||||
|
{required: true, type: 'number', min: 1, max: 47, message: this.$t('validate.required'), trigger: 'blur'}
|
||||||
|
],
|
||||||
|
idcId: [
|
||||||
|
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
cabinet:{},
|
||||||
|
popBox:{isEdit:false,show:false},
|
||||||
|
idcDatas:[],
|
||||||
|
idc:null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
init:function(){
|
||||||
|
this.getIdcDatas();
|
||||||
|
},
|
||||||
|
resetData:function(){
|
||||||
|
let temp=this;
|
||||||
|
temp.cabinet={
|
||||||
|
name:'',
|
||||||
|
uSize:0,
|
||||||
|
idcId:null,
|
||||||
|
remark:''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
saveOrToEdit(){
|
||||||
|
if (!this.popBox.isEdit) {
|
||||||
|
this.toEdit(this.cabinet);
|
||||||
|
} else {
|
||||||
|
this.save();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
save:function(){
|
||||||
|
let temp=this;
|
||||||
|
temp.$refs.cabinetForm.validate((valid => {
|
||||||
|
if(valid){
|
||||||
|
if (temp.cabinet.id) {
|
||||||
|
this.$put('cabinet', temp.cabinet).then(res => {
|
||||||
|
const h = temp.$createElement;
|
||||||
|
if (res.code === 200) {
|
||||||
|
temp.$message({duration: 2000, type: 'success', message: temp.$t("tip.saveSuccess")});
|
||||||
|
temp.$emit("after",temp.cabinet.idcId);
|
||||||
|
temp.esc();
|
||||||
|
} else {
|
||||||
|
temp.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
temp.$post('cabinet', temp.cabinet).then(res => {
|
||||||
|
const h = temp.$createElement;
|
||||||
|
if (res.code === 200) {
|
||||||
|
temp.$message({duration: 2000, type: 'success', message: temp.$t("tip.saveSuccess")});
|
||||||
|
temp.$emit("after",temp.cabinet.idcId);
|
||||||
|
temp.esc();
|
||||||
|
} else {
|
||||||
|
temp.$message.error(res.msg);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
},
|
||||||
|
show:function(isShow,isEdit){
|
||||||
|
this.popBox.show=isShow;
|
||||||
|
this.popBox.isEdit=isEdit;
|
||||||
|
},
|
||||||
|
toEdit:function(u){
|
||||||
|
this.cabinet = Object.assign({}, u);
|
||||||
|
this.popBox.isEdit = true;
|
||||||
|
this.title = this.$t('asset.createAssetTab.editCabinetTab.title') + " ID:" + this.cabinet.id;
|
||||||
|
this.popBox.show = true;
|
||||||
|
},
|
||||||
|
getIdcDatas:function(){
|
||||||
|
let temp=this;
|
||||||
|
temp.$get('idc').then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
temp.idcDatas = response.data.list;
|
||||||
|
for (let i in temp.idcDatas){
|
||||||
|
let item=temp.idcDatas[i];
|
||||||
|
if(item.id==temp.cabinet.idcId){
|
||||||
|
temp.idc=item;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openBox:function(){
|
||||||
|
this.popBox.show=true;
|
||||||
|
},
|
||||||
|
esc:function(){
|
||||||
|
this.popBox.show=false;
|
||||||
|
},
|
||||||
|
hidePop:function(){//隐藏事件触发方法
|
||||||
|
if(this.postCabinet&&this.postCabinet.id){
|
||||||
|
this.cabinet=this.postCabinet;
|
||||||
|
}else{
|
||||||
|
this.resetData();
|
||||||
|
}
|
||||||
|
this.clearValidate();
|
||||||
|
},
|
||||||
|
clearValidate:function(){
|
||||||
|
this.$refs.cabinetForm.clearValidate();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
postCabinet: {
|
||||||
|
immediate: true,
|
||||||
|
deep: true,
|
||||||
|
handler(n, o) {
|
||||||
|
if (n && n.id) {
|
||||||
|
this.title =this.popBox.isEdit? this.$t('asset.createAssetTab.editCabinetTab.title') + " ID:" + n.id : this.$t('asset.createAssetTab.cabinet') + " ID:" + n.id;
|
||||||
|
this.cabinet=n;
|
||||||
|
} else {
|
||||||
|
this.title = this.$t('asset.createAssetTab.AddCabinetTab.title');
|
||||||
|
this.resetData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
isEdit:{
|
||||||
|
immediate: true,
|
||||||
|
handler(n, o) {
|
||||||
|
this.popBox.isEdit=n;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -3,11 +3,12 @@
|
|||||||
<div class="">
|
<div class="">
|
||||||
<!-- begin--顶部按钮-->
|
<!-- begin--顶部按钮-->
|
||||||
<div class="pop-top-btns">
|
<div class="pop-top-btns">
|
||||||
<button type="button" v-if="popBox.isEdit && idc.id != ''" @click="del" class="nz-btn nz-btn-size-small nz-btn-style-light">
|
<button type="button" v-if="idc.id != ''" @click="del" class="nz-btn nz-btn-size-small nz-btn-style-light">
|
||||||
<span class="top-tool-btn-txt">{{$t('overall.delete')}}</span>
|
<span class="top-tool-btn-txt">{{$t('overall.delete')}}</span>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" @click="save" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
<button type="button" @click="saveOrToEdit" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
||||||
<span class="top-tool-btn-txt">{{$t('overall.save')}}</span>
|
<span class="top-tool-btn-txt" v-if="popBox.isEdit">{{$t('overall.save')}}</span>
|
||||||
|
<span class="top-tool-btn-txt" v-else>{{$t('overall.edit')}}</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button type="button" @click="esc" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
<button type="button" @click="esc" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
||||||
@@ -20,18 +21,22 @@
|
|||||||
<div class="pop-item-wider">
|
<div class="pop-item-wider">
|
||||||
<el-form class="right-box-form" :model="idc" label-position="left" label-width="150px" :rules="rules" ref="idcForm">
|
<el-form class="right-box-form" :model="idc" label-position="left" label-width="150px" :rules="rules" ref="idcForm">
|
||||||
<el-form-item :label="$t('asset.createAssetTab.dcName')" prop="name">
|
<el-form-item :label="$t('asset.createAssetTab.dcName')" prop="name">
|
||||||
<el-input type="text" placeholder="" v-model="idc.name" size="mini" maxlength="64"></el-input>
|
<el-input type="text" placeholder="" v-model="idc.name" size="mini" maxlength="64" v-if="popBox.isEdit"></el-input>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{idc.name}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.location')" prop="location">
|
<el-form-item :label="$t('asset.createAssetTab.location')" prop="location">
|
||||||
<el-input type="text" placeholder="" v-model="idc.location" size="mini"></el-input>
|
<el-input type="text" placeholder="" v-model="idc.location" size="mini" v-if="popBox.isEdit"></el-input>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{idc.location}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.principal')" prop="principal">
|
<el-form-item :label="$t('asset.createAssetTab.principal')" prop="principal">
|
||||||
<el-select v-model="idc.principal" clearable size="mini" placeholder="">
|
<el-select v-model="idc.principal" clearable size="mini" placeholder="" v-if="popBox.isEdit">
|
||||||
<el-option v-for="item in principals" :key="item.id" :label="item.username" :value="item.userId"></el-option>
|
<el-option v-for="item in principals" :key="item.id" :label="item.username" :value="item.userId"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{idc.principal}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.tel')" prop="tel" >
|
<el-form-item :label="$t('asset.createAssetTab.tel')" prop="tel" >
|
||||||
<el-input type="text" placeholder="" v-model="idc.tel" size="mini"></el-input>
|
<el-input type="text" placeholder="" v-model="idc.tel" size="mini" v-if="popBox.isEdit"></el-input>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!popBox.isEdit">{{idc.tel}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@@ -50,7 +55,8 @@
|
|||||||
props:{
|
props:{
|
||||||
postIdc:{type:Object},
|
postIdc:{type:Object},
|
||||||
placement:{type:String},
|
placement:{type:String},
|
||||||
buttonClass:{type:String}
|
buttonClass:{type:String},
|
||||||
|
isEdit:{type:Boolean,default:true}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.init();
|
this.init();
|
||||||
@@ -90,7 +96,7 @@
|
|||||||
},
|
},
|
||||||
idc:{},
|
idc:{},
|
||||||
principals:[],
|
principals:[],
|
||||||
popBox:{isEdit:false,show:false}
|
popBox:{isEdit:true,show:false}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
@@ -118,6 +124,13 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
saveOrToEdit:function(){
|
||||||
|
if (!this.popBox.isEdit) {
|
||||||
|
this.toEdit(this.idc);
|
||||||
|
} else {
|
||||||
|
this.save();
|
||||||
|
}
|
||||||
|
},
|
||||||
save:function(){
|
save:function(){
|
||||||
let temp=this;
|
let temp=this;
|
||||||
temp.$refs.idcForm.validate((valide)=>{
|
temp.$refs.idcForm.validate((valide)=>{
|
||||||
@@ -126,8 +139,9 @@
|
|||||||
if(!temp.idc.id){
|
if(!temp.idc.id){
|
||||||
temp.$post('idc', temp.idc).then(response => {
|
temp.$post('idc', temp.idc).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
temp.$message({duration: 1000, type: 'success', message: temp.$t("tip.deleteSuccess")});
|
temp.$message({duration: 1000, type: 'success', message: temp.$t("tip.saveSuccess")});
|
||||||
temp.$emit("after");
|
temp.$emit("after");
|
||||||
|
temp.$store.commit('assetDcListChange');
|
||||||
temp.esc();
|
temp.esc();
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(response.msg);
|
this.$message.error(response.msg);
|
||||||
@@ -136,8 +150,9 @@
|
|||||||
}else{
|
}else{
|
||||||
this.$put('idc', temp.idc).then(response => {
|
this.$put('idc', temp.idc).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
temp.$message({duration: 1000, type: 'success', message: temp.$t("tip.deleteSuccess")});
|
temp.$message({duration: 1000, type: 'success', message: temp.$t("tip.saveSuccess")});
|
||||||
temp.$emit("after");
|
temp.$emit("after");
|
||||||
|
temp.$store.commit('assetDcListChange');
|
||||||
temp.esc();
|
temp.esc();
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(response.msg);
|
this.$message.error(response.msg);
|
||||||
@@ -150,6 +165,16 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
toEdit:function(u){
|
||||||
|
this.idc = Object.assign({}, u);
|
||||||
|
this.popBox.isEdit = true;
|
||||||
|
this.title = this.$t('asset.createAssetTab.editIdcTab.title') + " ID:" + this.idc.id
|
||||||
|
this.popBox.show = true;
|
||||||
|
},
|
||||||
|
show:function(isShow,isEdit){
|
||||||
|
this.popBox.show=isShow;
|
||||||
|
this.popBox.isEdit=isEdit;
|
||||||
|
},
|
||||||
esc:function(){
|
esc:function(){
|
||||||
this.popBox.show=false;
|
this.popBox.show=false;
|
||||||
},
|
},
|
||||||
@@ -191,16 +216,20 @@
|
|||||||
handler(n, o) {
|
handler(n, o) {
|
||||||
if (n && n.id) {
|
if (n && n.id) {
|
||||||
this.title = this.$t('asset.createAssetTab.editIdcTab.title') + " ID:" + n.id;
|
this.title = this.$t('asset.createAssetTab.editIdcTab.title') + " ID:" + n.id;
|
||||||
this.popBox.isEdit=true;
|
|
||||||
this.idc=n;
|
this.idc=n;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.title = this.$t('asset.createAssetTab.AddIdcTab.title');
|
this.title = this.$t('asset.createAssetTab.AddIdcTab.title');
|
||||||
this.popBox.isEdit=false;
|
|
||||||
this.resetData();
|
this.resetData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
isEdit:{
|
||||||
|
immediate: true,
|
||||||
|
handler(n, o) {
|
||||||
|
this.popBox.isEdit=n;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<el-form class="pop-item-wider" :model="account" :rules="rules" ref="accountForm">
|
<el-form class="pop-item-wider" :model="account" :rules="rules" ref="accountForm">
|
||||||
<el-form-item :label="$t('asset.createAssetTab.loginType')" size="mini">
|
<el-form-item :label="$t('asset.createAssetTab.loginType')" size="mini">
|
||||||
<div class="nz-btn-group float-left" style="padding-top: 4px;">
|
<div class="nz-btn-group float-left" style="padding-top: 4px;" v-if="isEdit">
|
||||||
<button type="button" @click="changeLoginType(1)"
|
<button type="button" @click="changeLoginType(1)"
|
||||||
class="nz-btn nz-btn-size-small float-left"
|
class="nz-btn nz-btn-size-small float-left"
|
||||||
:class="{'nz-btn-disabled nz-btn-style-normal' : account.authType == 1, 'nz-btn-style-light' : account.authType == 2}">
|
:class="{'nz-btn-disabled nz-btn-style-normal' : account.authType == 1, 'nz-btn-style-light' : account.authType == 2}">
|
||||||
@@ -14,17 +14,20 @@
|
|||||||
<span>{{$t('asset.createAssetTab.ssh')}}</span>
|
<span>{{$t('asset.createAssetTab.ssh')}}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="right-box-form-content-txt" v-if="!isEdit">{{account.authType}}</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.account')" prop="user">
|
<el-form-item :label="$t('asset.createAssetTab.account')" prop="user">
|
||||||
<el-input size="mini" v-model="account.user"/>
|
<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>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.password')" v-show="account.authType==1" >
|
<el-form-item :label="$t('asset.createAssetTab.password')" v-show="account.authType==1" v-if="isEdit">
|
||||||
<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" >
|
||||||
<el-input size="mini" v-model="account.port"/>
|
<el-input size="mini" v-model="account.port" v-if="isEdit"/>
|
||||||
|
<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">
|
<el-form-item :label="this.$t('asset.createAssetTab.ssh')" v-show="account.authType==2" prop="file" v-if="isEdit">
|
||||||
<el-upload class="upload-demo" ref="upload" action="" :file-list="uploadFileList" :on-change="handleChange" :auto-upload="false">
|
<el-upload class="upload-demo" ref="upload" action="" :file-list="uploadFileList" :on-change="handleChange" :auto-upload="false">
|
||||||
<div slot="tip" class="el-upload__tip" v-if="account.privateKey" >{{$t('asset.createAssetTab.sshKeyWasConfig')}}</div>
|
<div slot="tip" class="el-upload__tip" v-if="account.privateKey" >{{$t('asset.createAssetTab.sshKeyWasConfig')}}</div>
|
||||||
<button type="button" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
<button type="button" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
||||||
@@ -42,7 +45,8 @@ export default {
|
|||||||
name: "accountConfig",
|
name: "accountConfig",
|
||||||
props:{
|
props:{
|
||||||
account:{type:Object},
|
account:{type:Object},
|
||||||
asComponent:{type:Boolean,default:false}
|
asComponent:{type:Boolean,default:false},
|
||||||
|
isEdit:{type:Boolean,default:true}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -8,9 +8,12 @@
|
|||||||
<el-checkbox class="sidebar-info-item" :class="{'sidebar-info-item-active': checkList.indexOf(item.id) != -1}"
|
<el-checkbox class="sidebar-info-item" :class="{'sidebar-info-item-active': checkList.indexOf(item.id) != -1}"
|
||||||
v-for="(item,key) in checkListData" :key="key" :label=item.id>
|
v-for="(item,key) in checkListData" :key="key" :label=item.id>
|
||||||
<span>{{item.name}}</span>
|
<span>{{item.name}}</span>
|
||||||
<idc-config-box :post-idc="addIdcData" placement="left" @after="getIDCOptionData" :button-class="'checkbox-edit'">
|
<idc-config-box ref="idcConfigBox" :post-idc="item" placement="left" @after="getIDCOptionData" :button-class="'checkbox-edit'">
|
||||||
<template v-slot:optionZone>
|
<template v-slot:optionZone>
|
||||||
|
<span @click="closeAllPop">
|
||||||
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit')"></i>
|
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit')"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</idc-config-box>
|
</idc-config-box>
|
||||||
<!--<el-popover
|
<!--<el-popover
|
||||||
@@ -139,15 +142,19 @@
|
|||||||
<div class="tab-input-square link">{{scope.row.alertNum}}</div>
|
<div class="tab-input-square link">{{scope.row.alertNum}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="item.prop=='dataCenter'">
|
<div v-if="item.prop=='dataCenter'">
|
||||||
<idc-config-box :post-idc="JSON.parse(JSON.stringify(scope.row.idc))" placement="left" @after="getAssetData(null, true)" :button-class="'checkbox-edit'">
|
<idc-config-box :post-idc="JSON.parse(JSON.stringify(scope.row.idc))" ref="idcConfigBox" :is-edit="false" placement="left" @after="getAssetData(null, true)" :button-class="'checkbox-edit'">
|
||||||
<template v-slot:optionZone>
|
<template v-slot:optionZone>
|
||||||
<span class="link">{{scope.row.idc.name}}</span>
|
<span class="link" @click="closeAllPop">{{scope.row.idc.name}}</span>
|
||||||
</template>
|
</template>
|
||||||
</idc-config-box>
|
</idc-config-box>
|
||||||
<!--<span class="link">{{scope.row.idc.name}}</span>-->
|
<!--<span class="link">{{scope.row.idc.name}}</span>-->
|
||||||
</div>
|
</div>
|
||||||
<div v-if="item.prop=='cabinet'">
|
<div v-if="item.prop=='cabinet'">
|
||||||
<span class="link">{{returnData(scope.row.cabinet)}}</span>
|
<cabinet-config-box v-if="scope.row.cabinet&&scope.row.cabinet!='--'" ref="cabinetConfigBox" placement="left" :is-edit="false" :post-cabinet="JSON.parse(JSON.stringify(scope.row.cabinet))" @after="getAssetData(null, true)">
|
||||||
|
<span slot="optionZone" @click="closeAllPop" class="link">{{returnData(scope.row.cabinet)}}</span>
|
||||||
|
</cabinet-config-box>
|
||||||
|
<span v-else>{{returnData(scope.row.cabinet)}}</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="item.prop=='model'">
|
<div v-if="item.prop=='model'">
|
||||||
<span>{{scope.row.model.name}}</span>
|
<span>{{scope.row.model.name}}</span>
|
||||||
@@ -623,6 +630,14 @@
|
|||||||
this.getAssetData();
|
this.getAssetData();
|
||||||
this.getIDCOptionData();
|
this.getIDCOptionData();
|
||||||
},
|
},
|
||||||
|
closeAllPop:function(){
|
||||||
|
this.$refs.idcConfigBox.forEach((item)=>{
|
||||||
|
item.show(false)
|
||||||
|
})
|
||||||
|
this.$refs.cabinetConfigBox.forEach((item)=>{
|
||||||
|
item.show(false)
|
||||||
|
})
|
||||||
|
},
|
||||||
search(searchObj) {
|
search(searchObj) {
|
||||||
this.searchLabel = {};
|
this.searchLabel = {};
|
||||||
this.pageObj.pageNo = 1;
|
this.pageObj.pageNo = 1;
|
||||||
|
|||||||
@@ -387,113 +387,9 @@
|
|||||||
:value="item.id"
|
:value="item.id"
|
||||||
>
|
>
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<el-popover
|
<cabinet-config-box placement="left" :post-cabinet="item" button-class="config-dropdown-btn" @after="getCabinetOptionData">
|
||||||
placement="left"
|
<i slot="optionZone" class="el-icon-edit-outline"></i>
|
||||||
trigger="manual"
|
</cabinet-config-box>
|
||||||
v-model="item[item.name]"
|
|
||||||
width="400"
|
|
||||||
>
|
|
||||||
<div class="pop-window-assetType-content">
|
|
||||||
<div class="pop-top-btns">
|
|
||||||
<button type="button" @click="editData('cabinet',item)" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
|
||||||
<span class="top-tool-btn-txt">{{$t('overall.save')}}</span>
|
|
||||||
</button>
|
|
||||||
<button type="button" @click="item[item.name] = false" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
|
||||||
<span class="top-tool-btn-txt"><i class="el-icon-close"></i></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<!--标题-->
|
|
||||||
<div class="pop-title">{{$t('asset.createAssetTab.editCabinetTab.title')}}</div>
|
|
||||||
<!--表单内容-->
|
|
||||||
<el-form class="pop-item-wider" :model="popCabinetData" ref="cabEditForm" :rules="cabRules">
|
|
||||||
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.name')" prop="name">
|
|
||||||
<el-input size="mini" v-model="popCabinetData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.uSize')" prop="uSize">
|
|
||||||
<div>{{popCabinetData.uSize}}</div>
|
|
||||||
<el-slider v-model.number="popCabinetData.uSize" :max="47"></el-slider>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.remark')">
|
|
||||||
<el-input v-model="popCabinetData.remark"
|
|
||||||
type="textarea"
|
|
||||||
size="mini"
|
|
||||||
:rows="2"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.DC')">
|
|
||||||
<el-select v-model="popCabinetData.idcId" clearable placeholder="" size="mini" style="width: 100%;" prop="idcId">
|
|
||||||
<el-option
|
|
||||||
v-for="item in IDCOptionData"
|
|
||||||
:key="item.key"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
|
||||||
<span>{{ item.name }}</span>
|
|
||||||
<!-- <el-popover-->
|
|
||||||
<!-- placement="top"-->
|
|
||||||
<!-- v-model="item[item.name+item.id]"-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- <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+item.id] = 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">标题</span>-->
|
|
||||||
<!-- <el-form-item label="DC Name">-->
|
|
||||||
<!-- <el-input v-model="addCabIDCData.name"/>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="Location">-->
|
|
||||||
<!-- <el-input v-model="addCabIDCData.location"/>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="负责人">-->
|
|
||||||
<!-- <el-select v-model="addCabIDCData.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="Tel">-->
|
|
||||||
<!-- <el-input v-model="addCabIDCData.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+item.id]= false">-->
|
|
||||||
<!-- {{$t('overall.cancel')}}-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <div class="right-box-bottom-btn right-box-bottom-btn-50"-->
|
|
||||||
<!-- @click="editData('idc',item,'CabIDC')">-->
|
|
||||||
<!-- {{$t('overall.save')}}-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <span class="config-dropdown-btn" slot="reference"-->
|
|
||||||
<!-- @click="getSingleIDCData(item.id,'edit')"><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)"><i-->
|
|
||||||
<!-- class="el-icon-delete"></i></span>-->
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
<span class="config-dropdown-btn" slot="reference"
|
|
||||||
@click.stop="getSingleCabinetData(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('cabinet',item.id)">
|
@click.stop="deleteData('cabinet',item.id)">
|
||||||
@@ -503,107 +399,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">
|
||||||
<el-popover
|
<cabinet-config-box placement="left" :post-cabinet="addCabinetData" @after="getCabinetOptionData"></cabinet-config-box>
|
||||||
placement="left"
|
|
||||||
trigger="click"
|
|
||||||
v-model="popCabinetVisible"
|
|
||||||
width="400"
|
|
||||||
>
|
|
||||||
<div class="pop-window-assetType-content">
|
|
||||||
<div class="pop-top-btns">
|
|
||||||
<button type="button" @click="addNewData('cabinet')" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
|
||||||
<span class="top-tool-btn-txt">{{$t('overall.save')}}</span>
|
|
||||||
</button>
|
|
||||||
<button type="button" @click="popoverClose('cabinet')" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
|
||||||
<span class="top-tool-btn-txt"><i class="el-icon-close"></i></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<!--标题-->
|
|
||||||
<div class="pop-title">{{$t('asset.createAssetTab.AddCabinetTab.title')}}</div>
|
|
||||||
<!--表单内容-->
|
|
||||||
<el-form class="pop-item-wider" :model="addCabinetData" ref="cabAddForm" :rules="cabRules">
|
|
||||||
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.name')" prop="name">
|
|
||||||
<el-input size='mini' v-model="addCabinetData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.uSize')" prop="uSize">
|
|
||||||
<div>{{addCabinetData.uSize}}</div>
|
|
||||||
<el-slider v-model.number="addCabinetData.uSize" :max="47"></el-slider>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.remark')">
|
|
||||||
<el-input size='mini' v-model="addCabinetData.remark" type="textarea" :rows="2"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.DC')" prop="idcId">
|
|
||||||
<el-select size='mini' v-model="addCabinetData.idcId" clearable style="width: 100%;" placeholder="">
|
|
||||||
<el-option
|
|
||||||
v-for="item in IDCOptionData"
|
|
||||||
:key="item.key"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
|
||||||
<span>{{ item.name }}</span>
|
|
||||||
<!--<el-popover
|
|
||||||
placement="left"
|
|
||||||
v-model="item[item.id+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.id+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.editIdcTab.dcName')">
|
|
||||||
<el-input v-model="addCabIDCData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.createAssetTab.editIdcTab.location')">
|
|
||||||
<el-input v-model="addCabIDCData.location"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.createAssetTab.editIdcTab.principal')">
|
|
||||||
<el-select v-model="addCabIDCData.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="$t('asset.createAssetTab.editIdcTab.tel')">
|
|
||||||
<el-input v-model="addCabIDCData.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.id+item.name]= false">
|
|
||||||
{{$t('overall.cancel')}}
|
|
||||||
</div>
|
|
||||||
<div class="right-box-bottom-btn right-box-bottom-btn-50"
|
|
||||||
@click="editData('idc',item,'CabIDC')">
|
|
||||||
{{$t('overall.save')}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="config-dropdown-btn" slot="reference"
|
|
||||||
@click="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)"><i
|
|
||||||
class="el-icon-delete"></i></span>-->
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</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.uSize')">
|
<el-form-item :label="this.$t('asset.createAssetTab.uSize')">
|
||||||
@@ -1032,8 +828,6 @@
|
|||||||
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);
|
||||||
debugger
|
|
||||||
console.log(this.assetData.accounts)
|
|
||||||
for(let i in this.assetData.accounts){
|
for(let i in this.assetData.accounts){
|
||||||
let account=this.assetData.accounts[i];
|
let account=this.assetData.accounts[i];
|
||||||
if(account.user){
|
if(account.user){
|
||||||
@@ -1105,7 +899,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
uploadFile:function(file){
|
uploadFile:function(file){
|
||||||
console.log(file)
|
|
||||||
this.assetData.accounts[0].file=file.file;
|
this.assetData.accounts[0].file=file.file;
|
||||||
},
|
},
|
||||||
clearFile:function(){
|
clearFile:function(){
|
||||||
|
|||||||
@@ -416,112 +416,9 @@
|
|||||||
:value="item.id"
|
:value="item.id"
|
||||||
>
|
>
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<el-popover
|
<cabinet-config-box placement="left" :post-cabinet="item" button-class="config-dropdown-btn" @after="getCabinetOptionData">
|
||||||
placement="left"
|
<i slot="optionZone" class="el-icon-edit-outline"></i>
|
||||||
trigger="manual"
|
</cabinet-config-box>
|
||||||
v-model="item[item.name]"
|
|
||||||
width="400"
|
|
||||||
>
|
|
||||||
<div class="pop-window-assetType-content">
|
|
||||||
<div class="pop-top-btns">
|
|
||||||
<button type="button" @click="editData('cabinet',item)" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
|
||||||
<span class="top-tool-btn-txt">{{$t('overall.save')}}</span>
|
|
||||||
</button>
|
|
||||||
<button type="button" @click="item[item.name] = false" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
|
||||||
<span class="top-tool-btn-txt"><i class="el-icon-close"></i></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<!--标题-->
|
|
||||||
<div class="pop-title">{{$t('asset.createAssetTab.editCabinetTab.title')}}</div>
|
|
||||||
<!--表单内容-->
|
|
||||||
<el-form class="pop-item-wider" :model="popCabinetData" ref="cabEditForm" :rules="cabRules">
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.name')" prop="name">
|
|
||||||
<el-input size="mini" v-model="popCabinetData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.uSize')" prop="uSize">
|
|
||||||
<div>{{popCabinetData.uSize}}</div>
|
|
||||||
<el-slider v-model.number="popCabinetData.uSize" :max="47"></el-slider>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.remark')">
|
|
||||||
<el-input v-model="popCabinetData.remark"
|
|
||||||
type="textarea"
|
|
||||||
:rows="2"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.DC')" prop="idcId">
|
|
||||||
<el-select v-model="popCabinetData.idcId" clearable placeholder="" size="mini" style="width: 100%;">
|
|
||||||
<el-option
|
|
||||||
v-for="ite in item.children"
|
|
||||||
:key="ite.id"
|
|
||||||
:label="ite.name"
|
|
||||||
:value="ite.id"
|
|
||||||
>
|
|
||||||
<span>{{ ite.name }}</span>
|
|
||||||
<!--<el-popover
|
|
||||||
placement="left"
|
|
||||||
v-model="ite[ite.name+ite.id]"
|
|
||||||
>
|
|
||||||
<div class="pop-window-assetType-content">
|
|
||||||
<div class="right-box-top-btns">
|
|
||||||
<div class="right-box-top-btn right-box-top-btn-full"
|
|
||||||
@click="ite[ite.name+ite.id] = 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">标题</span>
|
|
||||||
<el-form-item label="DC Name">
|
|
||||||
<el-input v-model="addCabIDCData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="Location">
|
|
||||||
<el-input v-model="addCabIDCData.location"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="负责人">
|
|
||||||
<el-select v-model="addCabIDCData.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="Tel">
|
|
||||||
<el-input v-model="addCabIDCData.tel"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="right-box-bottom-btns">
|
|
||||||
<div class="right-box-bottom-btn right-box-bottom-btn-cancel"
|
|
||||||
@click="ite[ite.name+ite.id]= false">
|
|
||||||
{{$t('overall.cancel')}}
|
|
||||||
</div>
|
|
||||||
<div class="right-box-bottom-btn right-box-bottom-btn-50"
|
|
||||||
@click="editData('idc',ite,'CabIDC')">
|
|
||||||
{{$t('overall.save')}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="config-dropdown-btn" slot="reference"
|
|
||||||
@click="getSingleIDCData(ite.id,'edit',ite)">11<i
|
|
||||||
class="el-icon-edit-outline"></i></span>
|
|
||||||
</el-popover>
|
|
||||||
<span class="config-dropdown-btn config-dropdown-btn-delete"
|
|
||||||
@click.stop="deleteData('idc',ite.id)"><i
|
|
||||||
class="el-icon-delete"></i></span>-->
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
<span class="config-dropdown-btn" slot="reference"
|
|
||||||
@click.stop="getSingleCabinetData(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('cabinet',item.id)">
|
@click.stop="deleteData('cabinet',item.id)">
|
||||||
@@ -531,99 +428,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">
|
||||||
<el-popover
|
<cabinet-config-box placement="left" :post-cabinet="addCabinetData" @after="getCabinetOptionData"></cabinet-config-box>
|
||||||
placement="left"
|
|
||||||
trigger="click"
|
|
||||||
v-model="editPopCabinetVisible"
|
|
||||||
width="400"
|
|
||||||
>
|
|
||||||
<div class="pop-window-assetType-content">
|
|
||||||
<div class="pop-top-btns">
|
|
||||||
<button type="button" @click="addNewData('cabinet')" class="nz-btn nz-btn-size-small nz-btn-style-normal">
|
|
||||||
<span class="top-tool-btn-txt">{{$t('overall.save')}}</span>
|
|
||||||
</button>
|
|
||||||
<button type="button" @click="editPopoverClose('cabinet')" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square">
|
|
||||||
<span class="top-tool-btn-txt"><i class="el-icon-close"></i></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<!--标题-->
|
|
||||||
<div class="pop-title">{{$t('asset.createAssetTab.AddCabinetTab.title')}}</div>
|
|
||||||
<!--表单内容-->
|
|
||||||
<el-form class="pop-item-wider" :model="addCabinetData" ref="cabAddForm" :rules="cabRules">
|
|
||||||
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.name')" prop="name">
|
|
||||||
<el-input size="mini" v-model="addCabinetData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.uSize')" prop="uSize">
|
|
||||||
<div>{{addCabinetData.uSize}}</div>
|
|
||||||
<el-slider v-model.number="addCabinetData.uSize"></el-slider>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.remark')">
|
|
||||||
<el-input v-model="addCabinetData.remark"
|
|
||||||
type="textarea" size='mini'
|
|
||||||
:rows="1"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.DC')" prop="idcId">
|
|
||||||
<el-select size='mini' v-model="addCabinetData.idcId" clearable style="width: 100%;" placeholder="">
|
|
||||||
<el-option
|
|
||||||
v-for="item in IDCOptionData"
|
|
||||||
:key="item.key"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
>
|
|
||||||
<span>{{ item.name }}</span>
|
|
||||||
<!--<el-popover
|
|
||||||
placement="left"
|
|
||||||
v-model="item[item.id+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.id+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.editAssetTab.editIdcTab.title')}}</span>
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editIdcTab.dcName')">
|
|
||||||
<el-input v-model="addCabIDCData.name"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editIdcTab.location')">
|
|
||||||
<el-input v-model="addCabIDCData.location"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="$t('asset.editAssetTab.editIdcTab.principal')">
|
|
||||||
<el-select v-model="addCabIDCData.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="$t('asset.editAssetTab.editIdcTab.tel')">
|
|
||||||
<el-input v-model="addCabIDCData.tel"/>
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<span class="config-dropdown-btn" slot="reference"
|
|
||||||
@click="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)"><i
|
|
||||||
class="el-icon-delete"></i></span>-->
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
<div slot="reference"><i class="el-icon-plus"></i></div>
|
|
||||||
</el-popover>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<span v-if="tabView">{{assetViewData.cabinetName}}</span>
|
<span v-if="tabView">{{assetViewData.cabinetName}}</span>
|
||||||
@@ -637,7 +442,7 @@
|
|||||||
<!--cli-->
|
<!--cli-->
|
||||||
<div class="asset-sub-title">{{$t('asset.createAssetTab.cli')}}</div>
|
<div class="asset-sub-title">{{$t('asset.createAssetTab.cli')}}</div>
|
||||||
<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>
|
<account-config-box v-for="(item,index) in assetData.accounts" :is-edit="!tabView" :account="item" :key="index" ref="accountConfigBox"></account-config-box>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@@ -1118,16 +923,7 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
uploadFile:function(file){
|
|
||||||
|
|
||||||
},
|
|
||||||
clearFile:function(){
|
|
||||||
if(this.$refs.upload){
|
|
||||||
this.$refs.upload.clearFiles();
|
|
||||||
}
|
|
||||||
this.uploadFileList=[];
|
|
||||||
this.assetData.accounts[0].privateKey='';
|
|
||||||
},
|
|
||||||
addNewData(type) {
|
addNewData(type) {
|
||||||
if (type === 'IDC') {
|
if (type === 'IDC') {
|
||||||
const h = this.$createElement;
|
const h = this.$createElement;
|
||||||
|
|||||||
@@ -33,7 +33,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope" :column="item">
|
<template slot-scope="scope" :column="item">
|
||||||
<span v-if="item.prop == 'idc'" class="link">{{scope.row[item.prop].name}}</span>
|
<idc-config-box v-if="item.prop == 'idc'" ref="idcConfigBox" :post-idc="JSON.parse(JSON.stringify(scope.row[item.prop]))" :is-edit="false" placement="left" @after="getIdcData" :button-class="'checkbox-edit'">
|
||||||
|
<template v-slot:optionZone>
|
||||||
|
<span class="link" @click="closeAllPop">{{scope.row[item.prop].name}}</span>
|
||||||
|
</template>
|
||||||
|
</idc-config-box>
|
||||||
|
|
||||||
|
|
||||||
<span v-else-if="item.prop == 'type'">
|
<span v-else-if="item.prop == 'type'">
|
||||||
{{scope.row[item.prop] == '1' ? 'Global' : ''}}
|
{{scope.row[item.prop] == '1' ? 'Global' : ''}}
|
||||||
{{scope.row[item.prop] == '2' ? 'Per-Datacenter' : ''}}
|
{{scope.row[item.prop] == '2' ? 'Per-Datacenter' : ''}}
|
||||||
@@ -466,6 +472,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
getTableData: function() {
|
getTableData: function() {
|
||||||
|
this.tableData=[];
|
||||||
this.$set(this.searchLabel, "pageNo", this.pageObj.pageNo);
|
this.$set(this.searchLabel, "pageNo", this.pageObj.pageNo);
|
||||||
this.$set(this.searchLabel, "pageSize", this.pageObj.pageSize);
|
this.$set(this.searchLabel, "pageSize", this.pageObj.pageSize);
|
||||||
this.$get('promServer', this.searchLabel).then(response => {
|
this.$get('promServer', this.searchLabel).then(response => {
|
||||||
@@ -541,7 +548,6 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.idcData.forEach(item => {
|
this.idcData.forEach(item => {
|
||||||
if (item.id === data) {
|
if (item.id === data) {
|
||||||
console.log(item)
|
|
||||||
this.popIdcData.name = item.name
|
this.popIdcData.name = item.name
|
||||||
this.popIdcData.location = item.location
|
this.popIdcData.location = item.location
|
||||||
this.popIdcData.principal = item.principal
|
this.popIdcData.principal = item.principal
|
||||||
@@ -576,6 +582,11 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
closeAllPop:function(){
|
||||||
|
this.$refs.idcConfigBox.forEach((item)=>{
|
||||||
|
item.show(false)
|
||||||
|
})
|
||||||
|
},
|
||||||
},
|
},
|
||||||
mounted: function() {
|
mounted: function() {
|
||||||
this.getIdcData();
|
this.getIdcData();
|
||||||
|
|||||||
@@ -26,9 +26,10 @@ import addEndpointBox from './components/common/rightBox/addEndpointBox'; //endp
|
|||||||
import assetAddUnit from "./components/page/asset/assetAddUnit"; //资产添加组件
|
import assetAddUnit from "./components/page/asset/assetAddUnit"; //资产添加组件
|
||||||
import assetEditUnit from "./components/page/asset/assetEditUnit"; //资产添加组件
|
import assetEditUnit from "./components/page/asset/assetEditUnit"; //资产添加组件
|
||||||
import alertConfigBox from "./components/common/rightBox/alertConfigBox"; //告警规则弹框组件
|
import alertConfigBox from "./components/common/rightBox/alertConfigBox"; //告警规则弹框组件
|
||||||
import dcConfigBox from "./components/common/dcConfig"; //idc配置弹框组件
|
import dcConfigBox from "./components/common/popBox/dcConfig"; //idc配置弹框组件
|
||||||
import panelBox from "./components/common/rightBox/panelBox"; //面板弹框组件
|
import panelBox from "./components/common/rightBox/panelBox"; //面板弹框组件
|
||||||
import moduleListPop from "./components/page/asset/moduleListPop"; //面板弹框组件
|
import moduleListPop from "./components/page/asset/moduleListPop"; //面板弹框组件
|
||||||
|
import cabinetConfigBox from "./components/common/popBox/cabinetConfig"; //面板弹框组件
|
||||||
|
|
||||||
Vue.component("Pagination", Pagination);
|
Vue.component("Pagination", Pagination);
|
||||||
Vue.component("searchInput", searchInput);
|
Vue.component("searchInput", searchInput);
|
||||||
@@ -43,6 +44,7 @@ Vue.component("alert-config-box", alertConfigBox);
|
|||||||
Vue.component("idc-config-box", dcConfigBox);
|
Vue.component("idc-config-box", dcConfigBox);
|
||||||
Vue.component("panel-box", panelBox);
|
Vue.component("panel-box", panelBox);
|
||||||
Vue.component("module-list-pop", moduleListPop);
|
Vue.component("module-list-pop", moduleListPop);
|
||||||
|
Vue.component("cabinet-config-box", cabinetConfigBox);
|
||||||
|
|
||||||
Vue.prototype.$axios = axios;
|
Vue.prototype.$axios = axios;
|
||||||
Vue.prototype.$post = post;
|
Vue.prototype.$post = post;
|
||||||
|
|||||||
Reference in New Issue
Block a user