feat:asset 机柜配置 & overview title调整 & 系统设置basic timezone
This commit is contained in:
@@ -381,7 +381,7 @@ const en = {
|
|||||||
clickToUpload:'Upload',//'上传'
|
clickToUpload:'Upload',//'上传'
|
||||||
clickToCover:'Cover',//'覆盖'
|
clickToCover:'Cover',//'覆盖'
|
||||||
sshKeyWasConfig:'SSH-KEY configured',//'SSH-KEY已配置'
|
sshKeyWasConfig:'SSH-KEY configured',//'SSH-KEY已配置'
|
||||||
exporter:'Exporter'
|
exporter:'Exporter',
|
||||||
},
|
},
|
||||||
editAssetTab:{
|
editAssetTab:{
|
||||||
title:'New asset',//'新增资产'
|
title:'New asset',//'新增资产'
|
||||||
@@ -583,7 +583,8 @@ const en = {
|
|||||||
scrapeInterval:'Scrape Interval',
|
scrapeInterval:'Scrape Interval',
|
||||||
storageRetention:'Local Retention',
|
storageRetention:'Local Retention',
|
||||||
systemName:'System Name',
|
systemName:'System Name',
|
||||||
curUrl:'Current site URL'
|
curUrl:'Current site URL',
|
||||||
|
timezone:'Timezone'
|
||||||
},
|
},
|
||||||
email:{
|
email:{
|
||||||
email:'Email',
|
email:'Email',
|
||||||
|
|||||||
@@ -124,12 +124,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<span v-if="tabView">{{assetData.purchaseDate}}</span>
|
<span v-if="tabView">{{assetData.purchaseDate}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="right-box-sub-title">{{$t('asset.createAssetTab.dc')}}</div>
|
<div class="right-box-sub-title">{{$t('asset.createAssetTab.location')}}</div>
|
||||||
<div class="line-100 right-box-line"></div>
|
<div class="line-100 right-box-line"></div>
|
||||||
<!------------------------------------------IDC---------------------------------------------->
|
<!------------------------------------------IDC---------------------------------------------->
|
||||||
<el-form-item :label="$t('asset.createAssetTab.dcName')" class="right-box-form-content" prop="idcId">
|
<!--<el-form-item :label="$t('asset.createAssetTab.dcName')" class="right-box-form-content" prop="idcId">
|
||||||
<template v-if="!tabView">
|
<template v-if="!tabView">
|
||||||
<!-- <el-select popper-class="asset-dropdown" size="mini" v-model="assetData.idcId" clearable @change="getSingleIDCData" class="right-box-row-with-btn" placeholder="">-->
|
<!– <el-select popper-class="asset-dropdown" size="mini" v-model="assetData.idcId" clearable @change="getSingleIDCData" class="right-box-row-with-btn" placeholder="">–>
|
||||||
<el-select popper-class="asset-dropdown" size="small" v-model="assetData.idcId" clearable @change="getSingleIDCData" placeholder="">
|
<el-select popper-class="asset-dropdown" size="small" v-model="assetData.idcId" clearable @change="getSingleIDCData" placeholder="">
|
||||||
<el-option
|
<el-option
|
||||||
:id="'asset-edit-idc-op-'+item.id"
|
:id="'asset-edit-idc-op-'+item.id"
|
||||||
@@ -141,9 +141,9 @@
|
|||||||
<span class="asset-dropdown-label-txt">{{ item.name }}</span>
|
<span class="asset-dropdown-label-txt">{{ item.name }}</span>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
<!-- <div class="right-box-row-btn ">-->
|
<!– <div class="right-box-row-btn ">–>
|
||||||
<!-- <idc-config-box placement="left" @after="getIDCOptionData"></idc-config-box>-->
|
<!– <idc-config-box placement="left" @after="getIDCOptionData"></idc-config-box>–>
|
||||||
<!-- </div>-->
|
<!– </div>–>
|
||||||
</template>
|
</template>
|
||||||
<span v-if="tabView">{{assetViewData.idcName}}</span>
|
<span v-if="tabView">{{assetViewData.idcName}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -159,10 +159,10 @@
|
|||||||
<el-divider></el-divider>
|
<el-divider></el-divider>
|
||||||
|
|
||||||
|
|
||||||
<!------------------------------------------cabinet---------------------------------------------->
|
<!–----------------------------------------cabinet--------------------------------------------–>
|
||||||
<el-form-item :label="$t('asset.createAssetTab.cabinet')" class="right-box-form-content">
|
<el-form-item :label="$t('asset.createAssetTab.cabinet')" class="right-box-form-content">
|
||||||
<template v-if="!tabView">
|
<template v-if="!tabView">
|
||||||
<!-- <el-select clearable v-model="assetData.cabinetId" clearable class="right-box-row-with-btn" popper-class="asset-dropdown"-->
|
<!– <el-select clearable v-model="assetData.cabinetId" clearable class="right-box-row-with-btn" popper-class="asset-dropdown"–>
|
||||||
<el-select clearable v-model="assetData.cabinetId" clearable popper-class="asset-dropdown"
|
<el-select clearable v-model="assetData.cabinetId" clearable popper-class="asset-dropdown"
|
||||||
:disabled="assetData.idcId==''?true:false" size="small" placeholder=""
|
:disabled="assetData.idcId==''?true:false" size="small" placeholder=""
|
||||||
@change="getSingleCabinetData">
|
@change="getSingleCabinetData">
|
||||||
@@ -174,23 +174,38 @@
|
|||||||
:value="item.id"
|
:value="item.id"
|
||||||
>
|
>
|
||||||
<span class="asset-dropdown-label-txt">{{ item.name }}</span>
|
<span class="asset-dropdown-label-txt">{{ item.name }}</span>
|
||||||
<!-- <div class="asset-dropdown-label-icons">-->
|
<!– <div class="asset-dropdown-label-icons">–>
|
||||||
<!-- <span class="asset-dropdown-btn asset-dropdown-btn-delete"-->
|
<!– <span class="asset-dropdown-btn asset-dropdown-btn-delete"–>
|
||||||
<!-- @click.stop="deleteData('cabinet',item.id)" :id="'asset-edit-cabinet-op-del-'+item.id">-->
|
<!– @click.stop="deleteData('cabinet',item.id)" :id="'asset-edit-cabinet-op-del-'+item.id">–>
|
||||||
<!-- <i class="el-icon-delete"></i>-->
|
<!– <i class="el-icon-delete"></i>–>
|
||||||
<!-- </span>-->
|
<!– </span>–>
|
||||||
<!-- <cabinet-config-box placement="left" :post-cabinet="item" button-class="asset-dropdown-btn" @after="getCabinetOptionData">-->
|
<!– <cabinet-config-box placement="left" :post-cabinet="item" button-class="asset-dropdown-btn" @after="getCabinetOptionData">–>
|
||||||
<!-- <i slot="optionZone" class="nz-icon nz-icon-edit"></i>-->
|
<!– <i slot="optionZone" class="nz-icon nz-icon-edit"></i>–>
|
||||||
<!-- </cabinet-config-box>-->
|
<!– </cabinet-config-box>–>
|
||||||
<!-- </div>-->
|
<!– </div>–>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
<!-- <div class="right-box-row-btn ">-->
|
<!– <div class="right-box-row-btn ">–>
|
||||||
<!-- <cabinet-config-box placement="left" :post-cabinet="addCabinetData" @after="getCabinetOptionData"></cabinet-config-box>-->
|
<!– <cabinet-config-box placement="left" :post-cabinet="addCabinetData" @after="getCabinetOptionData"></cabinet-config-box>–>
|
||||||
<!-- </div>-->
|
<!– </div>–>
|
||||||
</template>
|
</template>
|
||||||
<span v-if="tabView">{{assetViewData.cabinetName}}</span>
|
<span v-if="tabView">{{assetViewData.cabinetName}}</span>
|
||||||
|
</el-form-item>-->
|
||||||
|
<el-form-item :label="$t('asset.editAssetTab.location')">
|
||||||
|
<el-cascader :props="locationCascaderProps" popper-class="location-selector" size="small" style="width: 100%" id="locationSelector" ref="locationSelector" @visible-change="locationSelectorExpand" v-clickoutside="closeDropdown" >
|
||||||
|
<template slot-scope="{node,data}">
|
||||||
|
<label class="el-checkbox cabinet-u-label" :for="node.value" v-if="node.isLeaf" :class="{'is-disabled':data.occupy == true}">
|
||||||
|
<span class="el-checkbox__input">
|
||||||
|
<input type="checkbox" name="cabinetU" :value="node.value" class="el-checkbox__original" aria-hidden="true" :id="node.value" @change="cabinetUStateChange" :checked="data.occupy == true || data.checked ==true?'checked':''" :disabled="data.occupy == true"/>
|
||||||
|
<span class="el-checkbox__inner" :class="{'is-disabled is-disabled-bg is-disabled-check':data.occupy == true}"></span>
|
||||||
|
</span>
|
||||||
|
<span class="el-checkbox__label" style="width: 100px;;" :class="{'is-disabled':data.occupy == true}">{{node.label}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</el-cascader>
|
||||||
|
{{this.checkedUStart?this.checkedUStart.value:''}}
|
||||||
|
{{this.checkedUEnd?this.checkedUEnd.value:''}}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('asset.editAssetTab.uSize')">
|
<el-form-item :label="$t('asset.editAssetTab.uSize')">
|
||||||
<span>{{cabinetSelectedData.uSize}}</span>
|
<span>{{cabinetSelectedData.uSize}}</span>
|
||||||
@@ -241,6 +256,7 @@
|
|||||||
'account-config-box': accountConfig,
|
'account-config-box': accountConfig,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
let $temp=this;
|
||||||
return {
|
return {
|
||||||
visible: '',
|
visible: '',
|
||||||
vendorModelData: '',
|
vendorModelData: '',
|
||||||
@@ -435,7 +451,15 @@
|
|||||||
module:{},
|
module:{},
|
||||||
accountValideResult:true,
|
accountValideResult:true,
|
||||||
changeProtocolSwitch:true,
|
changeProtocolSwitch:true,
|
||||||
exporterDisableSwitch:false
|
exporterDisableSwitch:false,
|
||||||
|
locationCascaderProps:{
|
||||||
|
lazy:true,
|
||||||
|
lazyLoad:$temp.locationLazyMethod
|
||||||
|
},
|
||||||
|
cabinetUState:[],
|
||||||
|
checkedUStart:null,//记录前一次选中的节点
|
||||||
|
checkedUEnd:null,//记录前一次选中的节点
|
||||||
|
storedTriggerMethod:null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/*computed: {
|
/*computed: {
|
||||||
@@ -498,6 +522,216 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
closeDropdown:function(){
|
||||||
|
this.$refs.locationSelector.dropDownVisible = false;
|
||||||
|
this.$refs.locationSelector.toggleDropDownVisible=this.storedTriggerMethod;
|
||||||
|
},
|
||||||
|
locationSelectorExpand:function(flag){
|
||||||
|
this.storedTriggerMethod=this.$refs.locationSelector.toggleDropDownVisible;
|
||||||
|
if(flag){
|
||||||
|
this.$refs.locationSelector.toggleDropDownVisible=(value)=>{}
|
||||||
|
document.querySelector('#locationSelector').onclick=()=>{
|
||||||
|
this.$refs.locationSelector.dropDownVisible = !this.$refs.locationSelector.dropDownVisible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cabinetUStateChange:function(e){
|
||||||
|
let defaultUsize=1;
|
||||||
|
if(this.assetData.modelId && this.assetData.modelId !=''){
|
||||||
|
let currentModel=this.allModelUlData.find((item,index)=>{
|
||||||
|
return item.id= this.assetData.modelId[1];
|
||||||
|
})
|
||||||
|
console.log(currentModel)
|
||||||
|
if(currentModel && currentModel.usize){
|
||||||
|
defaultUsize=currentModel.usize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(e.target.checked == true ){//选中
|
||||||
|
if(!this.checkedUStart){//第一次选中
|
||||||
|
let range=this.findEnoughCabinet(e.target.value,defaultUsize);
|
||||||
|
if(range[0] != -1&&range[1] != -1){
|
||||||
|
this.changeRange(range[0],range[1])
|
||||||
|
this.checkedUStart=this.cabinetUState[range[0]];
|
||||||
|
this.checkedUEnd=this.cabinetUState[range[1]];
|
||||||
|
}else{
|
||||||
|
e.target.checked = false;
|
||||||
|
console.warn("don't have enough cabinet");
|
||||||
|
}
|
||||||
|
}else{//第二次选中
|
||||||
|
if(this.checkedUStart.value - e.target.value >1 ){ //在选中的之前选择且不连续
|
||||||
|
this.changeRange(e.target.value -1,this.checkedUStart.value -2)
|
||||||
|
this.checkedUStart=this.cabinetUState[e.target.value -1]
|
||||||
|
}else if(e.target.value - this.checkedUEnd.value > 1){//在选中的之后选择且不连续
|
||||||
|
this.changeRange(this.checkedUEnd.value,e.target.value -1);
|
||||||
|
this.checkedUEnd=this.cabinetUState[e.target.value -1]
|
||||||
|
}else if(this.checkedUStart.value - e.target.value == 1){
|
||||||
|
this.checkedUStart=this.cabinetUState[e.target.value-1]
|
||||||
|
}else if(e.target.value - this.checkedUEnd.value == 1){
|
||||||
|
this.checkedUEnd=this.cabinetUState[e.target.value-1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{//取消选中
|
||||||
|
if(e.target.value == this.checkedUStart.value){//消减头部
|
||||||
|
if(this.checkedUEnd.value - this.checkedUStart.value >= defaultUsize){
|
||||||
|
this.$set(this.cabinetUState[e.target.value -1],'checked',false);
|
||||||
|
this.checkedUStart = this.cabinetUState[e.target.value];
|
||||||
|
}else{
|
||||||
|
this.changeRange(this.checkedUStart.value-1,this.checkedUEnd.value-1,false);
|
||||||
|
this.checkedUStart=null;
|
||||||
|
this.checkedUEnd=null;
|
||||||
|
}
|
||||||
|
}else if(e.target.value == this.checkedUEnd.value){//消减尾部
|
||||||
|
if(this.checkedUEnd.value - this.checkedUStart.value >= defaultUsize) {
|
||||||
|
this.$set(this.cabinetUState[e.target.value - 1], 'checked', false);
|
||||||
|
this.checkedUEnd = this.cabinetUState[e.target.value - 2];
|
||||||
|
}else{
|
||||||
|
this.changeRange(this.checkedUStart.value-1,this.checkedUEnd.value-1,false);
|
||||||
|
this.checkedUStart=null;
|
||||||
|
this.checkedUEnd=null;
|
||||||
|
}
|
||||||
|
}else{//截断
|
||||||
|
if(this.checkedUEnd.value - this.checkedUStart.value < defaultUsize){//刚好是model 的usize
|
||||||
|
this.changeRange(this.checkedUStart.value-1,this.checkedUEnd.value-1,false);
|
||||||
|
this.checkedUStart=null;
|
||||||
|
this.checkedUEnd=null;
|
||||||
|
}else{
|
||||||
|
if(e.target.value - this.checkedUStart.value >= defaultUsize){ //低位的机柜足够
|
||||||
|
this.changeRange(this.checkedUStart.value-1,e.target.value -2 );
|
||||||
|
this.changeRange(e.target.value -1 ,this.checkedUEnd.value-1,false);
|
||||||
|
this.checkedUEnd=this.cabinetUState[e.target.value -2];
|
||||||
|
}else{ //低位的机柜不够
|
||||||
|
this.changeRange(this.checkedUStart.value-1,this.checkedUStart.value-1+defaultUsize-1);
|
||||||
|
e.target.checked=true;//解决无法改变当前点击的checkbox状态
|
||||||
|
this.changeRange(this.checkedUStart.value-1+defaultUsize, this.checkedUEnd.value -1,false);
|
||||||
|
this.checkedUEnd=this.cabinetUState[this.checkedUStart.value-1+defaultUsize-1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.modifyInput();
|
||||||
|
},
|
||||||
|
modifyInput:function(){
|
||||||
|
let input=document.querySelector('#locationSelector input');
|
||||||
|
let arr=input.value.split('/');
|
||||||
|
if(this.checkedUStart && this.checkedUEnd){
|
||||||
|
arr[arr.length-1]=this.checkedUStart.value +'-' +this.checkedUEnd.value;
|
||||||
|
}else{
|
||||||
|
arr[arr.length-1]='';
|
||||||
|
}
|
||||||
|
let value='';
|
||||||
|
arr.forEach((item,index)=>{
|
||||||
|
value +=item +'/';
|
||||||
|
})
|
||||||
|
input.value=value.substr(0,value.length-1);
|
||||||
|
},
|
||||||
|
changeRange:function(start, end,state=true){
|
||||||
|
if(start == -1 || end ==-1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let startIndex=start;
|
||||||
|
while(startIndex <= end){
|
||||||
|
this.$set(this.cabinetUState[startIndex],'checked',state);
|
||||||
|
startIndex++;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
findEnoughCabinet:function(clickIndex,defaultSize){
|
||||||
|
if(defaultSize == 1){
|
||||||
|
return [clickIndex-1,clickIndex-1];
|
||||||
|
}
|
||||||
|
let left=this.cabinetUState.slice(0,clickIndex-1).reverse();
|
||||||
|
let right=this.cabinetUState.slice(clickIndex,this.cabinetUState.length);
|
||||||
|
let leftCount=0;
|
||||||
|
for(let i=0;i<left.length;i++){
|
||||||
|
let node=left[i];
|
||||||
|
if(!node.occupy){
|
||||||
|
leftCount++
|
||||||
|
}else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let rightCount=0;
|
||||||
|
for(let i=0;i<right.length;i++){
|
||||||
|
let node=right[i];
|
||||||
|
if(!node.occupy){
|
||||||
|
rightCount++
|
||||||
|
}else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(rightCount >= defaultSize-1){
|
||||||
|
return [clickIndex-1,clickIndex-1+defaultSize-1]
|
||||||
|
}else if(leftCount + rightCount >= defaultSize -1){
|
||||||
|
return [clickIndex -1 -(defaultSize-1 - rightCount),clickIndex -1 + rightCount]
|
||||||
|
}else{
|
||||||
|
return [-1,-1]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
locationLazyMethod:function(node,resolve){
|
||||||
|
if(node.level == 0){
|
||||||
|
this.$get('idc').then(response=>{
|
||||||
|
if(response.code == 200){
|
||||||
|
let idcInfos=response.data.list;
|
||||||
|
let nodes=idcInfos.map((item,index)=>{
|
||||||
|
item.label=item.name;
|
||||||
|
item.value=item.id;
|
||||||
|
item.leaf=false;
|
||||||
|
return item;
|
||||||
|
})
|
||||||
|
return resolve(nodes)
|
||||||
|
}else{
|
||||||
|
this.$message.error(response.msg);
|
||||||
|
return resolve([]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else if(node.level == 1){
|
||||||
|
this.$get('cabinet?idcId='+node.value).then(response=>{
|
||||||
|
if(response.code == 200){
|
||||||
|
let cabinetInfos=response.data.list;
|
||||||
|
let nodes=cabinetInfos.map((item,index)=>{
|
||||||
|
item.label=item.name;
|
||||||
|
item.value=item.id;
|
||||||
|
item.leaf=false;
|
||||||
|
return item;
|
||||||
|
})
|
||||||
|
return resolve(nodes)
|
||||||
|
}else{
|
||||||
|
this.$message.error(response.msg);
|
||||||
|
return resolve([]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else if(node.level == 2){
|
||||||
|
console.log(1111)
|
||||||
|
this.$get('cabinet/u?id='+node.value).then(response=>{
|
||||||
|
if(response.code == 200){
|
||||||
|
let nodes=[];
|
||||||
|
for(let i=1;i<=response.data.total;i++){
|
||||||
|
let node={
|
||||||
|
label:i,
|
||||||
|
value:i,
|
||||||
|
occupy:false,
|
||||||
|
checked:false,
|
||||||
|
leaf:true,
|
||||||
|
}
|
||||||
|
if(response.data.occupy.find((item=>{return i == item}))){
|
||||||
|
node.occupy=true;
|
||||||
|
}
|
||||||
|
nodes.push(node)
|
||||||
|
}
|
||||||
|
if(this.cabinetUState&& this.cabinetUState.length>0){
|
||||||
|
this.changeRange(0,this.cabinetUState.length-1,false)
|
||||||
|
}
|
||||||
|
this.cabinetUState=nodes;
|
||||||
|
this.checkedUStart=null;
|
||||||
|
this.checkedUEnd=null;
|
||||||
|
return resolve(nodes)
|
||||||
|
}else{
|
||||||
|
this.$message.error(response.msg);
|
||||||
|
return resolve([]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
clickos() {
|
clickos() {
|
||||||
this.sendStateData('close');
|
this.sendStateData('close');
|
||||||
},
|
},
|
||||||
@@ -1308,3 +1542,31 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style >
|
||||||
|
.location-selector{
|
||||||
|
width: 512px;
|
||||||
|
}
|
||||||
|
.location-selector .el-select-dropdown__item {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.location-selector .el-cascader-node__prefix{
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
.cabinet-u-label .el-checkbox__original:checked + span{
|
||||||
|
background-color: orange;
|
||||||
|
}
|
||||||
|
.cabinet-u-label .el-checkbox__original:checked + span:after{
|
||||||
|
-webkit-transform: rotate(45deg) scaleY(1);
|
||||||
|
transform: rotate(45deg) scaleY(1);
|
||||||
|
}
|
||||||
|
.cabinet-u-label .is-disabled{
|
||||||
|
cursor: not-allowed;
|
||||||
|
border-color: #C0C4CC;
|
||||||
|
}
|
||||||
|
.cabinet-u-label .is-disabled-bg{
|
||||||
|
background-color: #F2F6FC !important;
|
||||||
|
}
|
||||||
|
.cabinet-u-label .is-disabled-check:after{
|
||||||
|
border-color: #C0C4CC !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -69,6 +69,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-autocomplete>
|
</el-autocomplete>
|
||||||
|
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.uSize')" prop="uSize">
|
||||||
|
<el-input v-model.number="currentModel.uSize" :max="47" size="small"></el-input>
|
||||||
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
@@ -105,7 +108,8 @@
|
|||||||
assetStat: {total: '', inStock: '', outStock: ''},
|
assetStat: {total: '', inStock: '', outStock: ''},
|
||||||
remark: '',
|
remark: '',
|
||||||
vendorCode: '',
|
vendorCode: '',
|
||||||
typeCode: ''
|
typeCode: '',
|
||||||
|
uSize:1,
|
||||||
},
|
},
|
||||||
rightBox: {
|
rightBox: {
|
||||||
show: false,
|
show: false,
|
||||||
@@ -122,7 +126,10 @@
|
|||||||
],
|
],
|
||||||
vendor: [
|
vendor: [
|
||||||
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
||||||
]
|
],
|
||||||
|
uSize: [
|
||||||
|
{type: 'number', min: 1, max: 47,message: this.$t('validate.uSize'),trigger: 'blur'}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
vendorData: [], //vendor下拉列表的数据
|
vendorData: [], //vendor下拉列表的数据
|
||||||
typeData: [], //type下拉列表的数据
|
typeData: [], //type下拉列表的数据
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="asset" ref="asset">
|
<div class="asset" ref="asset">
|
||||||
<div class="content-left">
|
<div class="content-left">
|
||||||
<el-scrollbar ref="leftScrollbar" style="height: 100%">
|
|
||||||
<div class="sidebar-title">{{$t('asset.asset')}}</div>
|
<div class="sidebar-title">{{$t('asset.asset')}}</div>
|
||||||
<div class="sidebar-info">
|
<div class="sidebar-info" style="height: 90%">
|
||||||
|
<el-scrollbar ref="leftScrollbar" style="height: 100%">
|
||||||
<!--<div class="sidebar-info-header">ALL</div>-->
|
<!--<div class="sidebar-info-header">ALL</div>-->
|
||||||
<!--<el-checkbox :indeterminate="checkAllHandler" class="sidebar-info-item" v-model="checkAllFlag" @change="dcSelectAll" :true-label="1" :false-label="0">
|
<!--<el-checkbox :indeterminate="checkAllHandler" class="sidebar-info-item" v-model="checkAllFlag" @change="dcSelectAll" :true-label="1" :false-label="0">
|
||||||
<div class="sidebar-info-item-txt" style="font-weight: bold;">All</div>
|
<div class="sidebar-info-item-txt" style="font-weight: bold;">All</div>
|
||||||
@@ -85,8 +86,8 @@
|
|||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
|
|||||||
@@ -107,7 +107,8 @@
|
|||||||
assetStat: {total: '', inStock: '', outStock: ''},
|
assetStat: {total: '', inStock: '', outStock: ''},
|
||||||
remark: '',
|
remark: '',
|
||||||
vendorCode: '',
|
vendorCode: '',
|
||||||
typeCode: ''
|
typeCode: '',
|
||||||
|
uSize:1,
|
||||||
},
|
},
|
||||||
pageObj: {
|
pageObj: {
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
@@ -279,7 +280,8 @@
|
|||||||
assetStat: {total: '', inStock: '', outStock: ''},
|
assetStat: {total: '', inStock: '', outStock: ''},
|
||||||
remark: '',
|
remark: '',
|
||||||
vendorCode: '',
|
vendorCode: '',
|
||||||
typeCode: ''
|
typeCode: '',
|
||||||
|
uSize:1,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -51,6 +51,9 @@
|
|||||||
<el-form-item :label="$t('config.system.basic.storageRetention')" prop="storage_local_retention">
|
<el-form-item :label="$t('config.system.basic.storageRetention')" prop="storage_local_retention">
|
||||||
<el-input v-model.number="basic.storage_local_retention" ></el-input><span class="nz-input-append">h</span>
|
<el-input v-model.number="basic.storage_local_retention" ></el-input><span class="nz-input-append">h</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('config.system.basic.timezone')" prop="timezone">
|
||||||
|
<el-input v-model.number="basic.timezone" ></el-input>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-min-width-100" @click="resetForm('basicForm')" style="top:2px">{{$t('overall.reset')}}</el-button>
|
<el-button class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-min-width-100" @click="resetForm('basicForm')" style="top:2px">{{$t('overall.reset')}}</el-button>
|
||||||
<el-button type="primary" @click="saveSetInfo('basic','basicForm')" class="nz-btn nz-btn-size-normal nz-btn-style-normal nz-btn-min-width-100">{{$t('overall.submit')}}</el-button>
|
<el-button type="primary" @click="saveSetInfo('basic','basicForm')" class="nz-btn nz-btn-size-normal nz-btn-style-normal nz-btn-min-width-100">{{$t('overall.submit')}}</el-button>
|
||||||
@@ -120,6 +123,9 @@
|
|||||||
<el-tab-pane :label="$t('config.system.ldap.ldap')" name="ldap">
|
<el-tab-pane :label="$t('config.system.ldap.ldap')" name="ldap">
|
||||||
<div class="system-config-form">
|
<div class="system-config-form">
|
||||||
<el-form :model="ldap" label-width="180px" size="small" ref="ldapForm" :rules="ldap.ldap_enable == 'on'?ldapRules:{}" :validate-on-rule-change="false">
|
<el-form :model="ldap" label-width="180px" size="small" ref="ldapForm" :rules="ldap.ldap_enable == 'on'?ldapRules:{}" :validate-on-rule-change="false">
|
||||||
|
<el-form-item :label="$t('config.system.ldap.active')" prop="ldap_enable">
|
||||||
|
<el-checkbox v-model="ldap.ldap_enable" true-label='on' false-label='off' @change="switchChange('ldapForm')"></el-checkbox>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="$t('config.system.ldap.address')" prop="ldap_address">
|
<el-form-item :label="$t('config.system.ldap.address')" prop="ldap_address">
|
||||||
<el-input v-model="ldap.ldap_address"></el-input>
|
<el-input v-model="ldap.ldap_address"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -138,9 +144,6 @@
|
|||||||
<el-form-item :label="$t('config.system.ldap.map')" prop="ldap_mapping">
|
<el-form-item :label="$t('config.system.ldap.map')" prop="ldap_mapping">
|
||||||
<el-input v-model="ldap.ldap_mapping"></el-input>
|
<el-input v-model="ldap.ldap_mapping"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('config.system.ldap.active')" prop="ldap_enable">
|
|
||||||
<el-checkbox v-model="ldap.ldap_enable" true-label='on' false-label='off' @change="switchChange('ldapForm')"></el-checkbox>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-min-width-100" @click="resetForm('ldapForm')" style="top:2px">{{$t('overall.reset')}}</el-button>
|
<el-button class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-min-width-100" @click="resetForm('ldapForm')" style="top:2px">{{$t('overall.reset')}}</el-button>
|
||||||
<el-button class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-min-width-100" @click="testSetInfo('ldap','ldapForm')" style="top:2px">{{$t('config.system.email.testConnection')}}</el-button>
|
<el-button class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-min-width-100" @click="testSetInfo('ldap','ldapForm')" style="top:2px">{{$t('config.system.email.testConnection')}}</el-button>
|
||||||
@@ -153,11 +156,11 @@
|
|||||||
<div class="system-config-form">
|
<div class="system-config-form">
|
||||||
<el-form :model="reset" label-width="180px" size="small" ref="resetForm" :rules="resetRules" :validate-on-rule-change="false">
|
<el-form :model="reset" label-width="180px" size="small" ref="resetForm" :rules="resetRules" :validate-on-rule-change="false">
|
||||||
<el-form-item prop="type">
|
<el-form-item prop="type">
|
||||||
<!-- <el-checkbox-group v-model="reset.type">-->
|
<el-checkbox-group v-model="reset.type">
|
||||||
<!-- <div v-for="(item,index) in resetOptions" :key="item.value+index">-->
|
<div v-for="(item,index) in resetOptions" :key="item.value+index">
|
||||||
<!-- <el-checkbox :value="item.value" :label="item.label" ></el-checkbox>-->
|
<el-checkbox :value="item.value" :label="item.label" :disabled="true" :checked="true"></el-checkbox>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </el-checkbox-group>-->
|
</el-checkbox-group>
|
||||||
<div class="el-checkbox-group">
|
<div class="el-checkbox-group">
|
||||||
<div v-for="(item,index) in resetOptions" :key="item.value+index" >
|
<div v-for="(item,index) in resetOptions" :key="item.value+index" >
|
||||||
<label class="el-checkbox sys-reset-label" :for="item.value" >
|
<label class="el-checkbox sys-reset-label" :for="item.value" >
|
||||||
@@ -201,6 +204,7 @@
|
|||||||
storage_local_retention:15*24,
|
storage_local_retention:15*24,
|
||||||
system_name:'',
|
system_name:'',
|
||||||
current_site_url:'',
|
current_site_url:'',
|
||||||
|
timezone:'',
|
||||||
},
|
},
|
||||||
basicRules:{
|
basicRules:{
|
||||||
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
|
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
|
||||||
@@ -209,6 +213,7 @@
|
|||||||
asset_ping_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
asset_ping_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
||||||
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
||||||
storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
||||||
|
timezone:[{validator:positiveInteger,trigger:'blur'}],
|
||||||
},
|
},
|
||||||
basicRules2:{
|
basicRules2:{
|
||||||
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
|
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
|
||||||
@@ -216,6 +221,7 @@
|
|||||||
alert_api:[{required:true,message:this.$t('validate.required'),trigger:'blur'},,{validator:host,trigger: 'blur'}],
|
alert_api:[{required:true,message:this.$t('validate.required'),trigger:'blur'},,{validator:host,trigger: 'blur'}],
|
||||||
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
||||||
storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
storage_local_retention:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
||||||
|
timezone:[{validator:positiveInteger,trigger:'blur'}],
|
||||||
},
|
},
|
||||||
email:{
|
email:{
|
||||||
email_enable: 'on',
|
email_enable: 'on',
|
||||||
|
|||||||
@@ -68,7 +68,11 @@
|
|||||||
geo:{
|
geo:{
|
||||||
map:'',
|
map:'',
|
||||||
|
|
||||||
roam:true,//鼠标是否可以控制缩放
|
roam:'scale',//鼠标是否可以控制缩放
|
||||||
|
scaleLimit:{
|
||||||
|
min:0.7,
|
||||||
|
max:1.5
|
||||||
|
},
|
||||||
// center:[],//当前视角的中心点,用经纬度表示
|
// center:[],//当前视角的中心点,用经纬度表示
|
||||||
label: { //控制显示地图名称
|
label: { //控制显示地图名称
|
||||||
normal: {
|
normal: {
|
||||||
@@ -92,15 +96,6 @@
|
|||||||
right:0,
|
right:0,
|
||||||
bottom:0,
|
bottom:0,
|
||||||
},
|
},
|
||||||
dataRange:{
|
|
||||||
x: '-1000 px', //图例横轴位置
|
|
||||||
y: '-1000 px', //图例纵轴位置
|
|
||||||
splitList: [
|
|
||||||
{ start: 1, end: 1, label: 'astana', color: '#cfc5de' },
|
|
||||||
{ start: 2, end: 2, label: '天津', color: '#f1ebd1' },
|
|
||||||
{ start: 3, end: 3, label: '上海', color: '#feffdb' },
|
|
||||||
]
|
|
||||||
},
|
|
||||||
tooltip : {
|
tooltip : {
|
||||||
trigger: 'item',
|
trigger: 'item',
|
||||||
type:'cross',
|
type:'cross',
|
||||||
|
|||||||
@@ -127,6 +127,8 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
.hide-div{
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<div class="overview-right content-right" id="mainDisplay">
|
<div class="overview-right content-right" id="mainDisplay">
|
||||||
<!--标题-->
|
<!--标题-->
|
||||||
<div class="overview-content-header">
|
<div class="overview-content-header">
|
||||||
<div class="header-title">{{$t('dashboard.overview.contentTitle')}}</div>
|
<div class="header-title" :class="{'hide-div':!isFullScreen}">{{$t('dashboard.overview.contentTitle')}}</div>
|
||||||
<div class="header-tool">
|
<div class="header-tool">
|
||||||
<div class="tool-container">
|
<div class="tool-container">
|
||||||
<div class="time">{{sysTime}}</div>
|
<div class="time">{{sysTime}}</div>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<table-box :pop-data="dataCenterStatData" ref="dataCenterTab" ></table-box>
|
<table-box :pop-data="dataCenterStatData" ref="dataCenterTab" ></table-box>
|
||||||
</div>
|
</div>
|
||||||
<div style="flex: 3;">
|
<div style="flex: 3;">
|
||||||
<chart-box chart-title="DataCenter" chart-type="map" :map="map" ref="dataCenterMap"></chart-box>
|
<chart-box chart-title="" chart-type="map" :map="map" ref="dataCenterMap"></chart-box>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user