perf: asset弹框增加校验、样式调整等

1.asset弹框增加表单校验
2.asset弹框样式调整
3.其他样式调整
This commit is contained in:
chenjinsong
2020-01-07 17:54:45 +08:00
parent e68aabf8ab
commit aaf608bb7d
6 changed files with 224 additions and 159 deletions

View File

@@ -401,7 +401,7 @@ html {
font-weight: bold; font-weight: bold;
} }
.pop-item, .pop-item-wider { .pop-item, .pop-item-wider {
padding-top: 15px; padding-top: 25px;
} }
.pop-item-wider .el-form-item__label { .pop-item-wider .el-form-item__label {
width: 80px !important; width: 80px !important;
@@ -466,6 +466,10 @@ html {
font-size: 16px; font-size: 16px;
color: black; color: black;
} }
.pop-item-wider .right-box-form .el-form-item .el-form-item__label {
font-size: 14px;
line-height: 32px;
}
.right-box-form-left.right-box-form .el-form-item .el-form-item__label { .right-box-form-left.right-box-form .el-form-item .el-form-item__label {
padding: 0 20px 0 0; padding: 0 20px 0 0;
font-size: 14px; font-size: 14px;

View File

@@ -7,8 +7,7 @@
<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-normal nz-btn-style-normal"> <button type="button" @click="save" class="nz-btn nz-btn-size-normal nz-btn-style-normal">
<span v-if="!popBox.isEdit" class="top-tool-btn-txt">{{$t('overall.save')}}</span> <span class="top-tool-btn-txt">{{$t('overall.save')}}</span>
<span v-else class="top-tool-btn-txt">{{$t('overall.edit')}}</span>
</button> </button>
<button type="button" @click="esc" class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-style-square"> <button type="button" @click="esc" class="nz-btn nz-btn-size-normal nz-btn-style-light nz-btn-style-square">
@@ -21,18 +20,18 @@
<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="small" maxlength="64"></el-input> <el-input type="text" placeholder="" v-model="idc.name" size="mini" maxlength="64"></el-input>
</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="small"></el-input> <el-input type="text" placeholder="" v-model="idc.location" size="mini"></el-input>
</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 > <el-select v-model="idc.principal" clearable size="mini">
<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>
</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="small"></el-input> <el-input type="text" placeholder="" v-model="idc.tel" size="mini"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@@ -129,34 +128,22 @@
console.log("save") console.log("save")
temp.$post('idc', temp.idc).then(response => { temp.$post('idc', temp.idc).then(response => {
if (response.code === 200) { if (response.code === 200) {
temp.$notify({ temp.$message({duration: 1000, type: 'success', message: temp.$t("tip.deleteSuccess")});
message: h('i', {style: 'color: teal'}, temp.$t("tip.saveSuccess")),
duration: 2000
});
temp.$emit("after"); temp.$emit("after");
temp.esc(); temp.esc();
} else { } else {
temp.$notify({ this.$message.error(response.msg);
message: h('i', {style: 'color: teal'}, response.msg),
duration: 2000
});
} }
}) })
}else{ }else{
console.log("edit") console.log("edit")
this.$put('idc', temp.idc).then(response => { this.$put('idc', temp.idc).then(response => {
if (response.code === 200) { if (response.code === 200) {
temp.$notify({ temp.$message({duration: 1000, type: 'success', message: temp.$t("tip.deleteSuccess")});
message: h('i', {style: 'color: teal'}, temp.$t("tip.saveSuccess")),
duration: 2000
});
temp.$emit("after"); temp.$emit("after");
temp.esc(); temp.esc();
} else { } else {
temp.$notify({ this.$message.error(response.msg);
message: h('i', {style: 'color: teal'}, response.msg),
duration: 2000
});
} }
}) })
} }
@@ -203,6 +190,7 @@
watch:{ watch:{
postIdc: { postIdc: {
immediate: true, immediate: true,
deep: true,
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;

View File

@@ -7,8 +7,13 @@
<el-checkbox-group v-model="checkList" size="small" @change="getSingleAsset(checkList)"> <el-checkbox-group v-model="checkList" size="small" @change="getSingleAsset(checkList)">
<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>
{{item.name}} <span>{{item.name}}</span>
<el-popover <idc-config-box :post-idc="addIdcData" placement="left" @after="getIDCOptionData" :button-class="'checkbox-edit'">
<template v-slot:optionZone>
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit')"></i>
</template>
</idc-config-box>
<!--<el-popover
placement="left" placement="left"
v-model="item[item.id]" v-model="item[item.id]"
> >
@@ -68,7 +73,7 @@
<span class="checkbox-edit" slot="reference" <span class="checkbox-edit" slot="reference"
@click.prevent="getSingleIDCData(item.id,'edit')"><i @click.prevent="getSingleIDCData(item.id,'edit')"><i
class="el-icon-edit-outline"></i></span> class="el-icon-edit-outline"></i></span>
</el-popover> </el-popover>-->
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
@@ -491,13 +496,16 @@
this.idcSelectedData = item this.idcSelectedData = item
} }
}); });
return
} else { } else {
this.IDCOptionData.forEach(item => { this.IDCOptionData.forEach(item => {
if (item.id === data) { if (item.id === data) {
this.addIdcData.popName = item.name this.addIdcData.id = item.id;
this.addIdcData.location = item.location this.addIdcData.name = item.name;
this.addIdcData.principal = item.principal this.addIdcData.popName = item.name;
this.addIdcData.tel = item.tel this.addIdcData.location = item.location;
this.addIdcData.principal = item.principal;
this.addIdcData.tel = item.tel;
} }
}); });
} }
@@ -585,13 +593,6 @@
padding: 0 15px; padding: 0 15px;
} }
.checkbox-edit {
position: absolute;
right: 10px;
font-size: 16px;
}
.tab-input-square { .tab-input-square {
border: 1px solid #aaaaaa; border: 1px solid #aaaaaa;
height: 25px; height: 25px;
@@ -721,4 +722,11 @@
.asset .content-left .el-checkbox__input.is-checked .el-checkbox__inner, .asset .content-left .el-checkbox__input.is-indeterminate .el-checkbox__inner { .asset .content-left .el-checkbox__input.is-checked .el-checkbox__inner, .asset .content-left .el-checkbox__input.is-indeterminate .el-checkbox__inner {
background-color: #e07700; background-color: #e07700;
} }
.checkbox-edit {
position: absolute;
right: 10px;
font-size: 16px;
}
</style> </style>

View File

@@ -247,7 +247,12 @@
:value="item.id" :value="item.id"
> >
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
<el-popover <idc-config-box :post-idc="popIdcData" placement="left" @after="getIDCOptionData" :button-class="'config-dropdown-btn'">
<template v-slot:optionZone>
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit', item)"></i>
</template>
</idc-config-box>
<!--<el-popover
placement="left" placement="left"
v-model="item[item.name]" v-model="item[item.name]"
> >
@@ -298,14 +303,15 @@
<span class="config-dropdown-btn" slot="reference" <span class="config-dropdown-btn" slot="reference"
@click.stop="getSingleIDCData(item.id,'edit',item)"><i @click.stop="getSingleIDCData(item.id,'edit',item)"><i
class="el-icon-edit-outline"></i></span> class="el-icon-edit-outline"></i></span>
</el-popover> </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)"><i @click.stop="deleteData('idc',item.id)"><i
class="el-icon-delete"></i></span> class="el-icon-delete"></i></span>
</el-option> </el-option>
</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 <idc-config-box placement="left" @after="getIDCOptionData"></idc-config-box>
<!--<el-popover
placement="left" placement="left"
trigger="click" trigger="click"
v-model="popIDCVisible" v-model="popIDCVisible"
@@ -356,7 +362,7 @@
</div> </div>
</div> </div>
<div slot="reference"><i class="el-icon-plus"></i></div> <div slot="reference"><i class="el-icon-plus"></i></div>
</el-popover> </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')">
@@ -399,13 +405,13 @@
<!--标题--> <!--标题-->
<div class="pop-title">{{$t('asset.createAssetTab.editCabinetTab.title')}}</div> <div class="pop-title">{{$t('asset.createAssetTab.editCabinetTab.title')}}</div>
<!--表单内容--> <!--表单内容-->
<div class="pop-item-wider"> <el-form class="pop-item-wider" :model="popCabinetData" ref="cabEditForm" :rules="cabRules">
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.name')"> <el-form-item :label="$t('asset.createAssetTab.editCabinetTab.name')" prop="name">
<el-input size="mini" v-model="popCabinetData.name"/> <el-input size="mini" v-model="popCabinetData.name"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.uSize')"> <el-form-item :label="$t('asset.createAssetTab.editCabinetTab.uSize')" prop="uSize">
<div>{{popCabinetData.uSize}}</div> <div>{{popCabinetData.uSize}}</div>
<el-slider v-model="popCabinetData.uSize" :max="47"></el-slider> <el-slider v-model.number="popCabinetData.uSize" :max="47"></el-slider>
</el-form-item> </el-form-item>
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.remark')"> <el-form-item :label="$t('asset.createAssetTab.editCabinetTab.remark')">
<el-input v-model="popCabinetData.remark" <el-input v-model="popCabinetData.remark"
@@ -414,7 +420,7 @@
:rows="2"/> :rows="2"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('asset.createAssetTab.editCabinetTab.DC')"> <el-form-item :label="$t('asset.createAssetTab.editCabinetTab.DC')">
<el-select v-model="popCabinetData.idcId" clearable placeholder="" size="mini" style="width: 100%;"> <el-select v-model="popCabinetData.idcId" clearable placeholder="" size="mini" style="width: 100%;" prop="idcId">
<el-option <el-option
v-for="item in IDCOptionData" v-for="item in IDCOptionData"
:key="item.key" :key="item.key"
@@ -481,7 +487,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </el-form>
</div> </div>
<span class="config-dropdown-btn" slot="reference" <span class="config-dropdown-btn" slot="reference"
@click.stop="getSingleCabinetData(item.id,'edit',item)"> @click.stop="getSingleCabinetData(item.id,'edit',item)">
@@ -515,18 +521,18 @@
<!--标题--> <!--标题-->
<div class="pop-title">{{$t('asset.createAssetTab.AddCabinetTab.title')}}</div> <div class="pop-title">{{$t('asset.createAssetTab.AddCabinetTab.title')}}</div>
<!--表单内容--> <!--表单内容-->
<div class="pop-item-wider"> <el-form class="pop-item-wider" :model="addCabinetData" ref="cabAddForm" :rules="cabRules">
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.name')"> <el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.name')" prop="name">
<el-input size='mini' v-model="addCabinetData.name"/> <el-input size='mini' v-model="addCabinetData.name"/>
</el-form-item> </el-form-item>
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.uSize')"> <el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.uSize')" prop="uSize">
<div>{{addCabinetData.uSize}}</div> <div>{{addCabinetData.uSize}}</div>
<el-slider v-model="addCabinetData.uSize" :max="47"></el-slider> <el-slider v-model.number="addCabinetData.uSize" :max="47"></el-slider>
</el-form-item> </el-form-item>
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.remark')"> <el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.remark')">
<el-input size='mini' v-model="addCabinetData.remark" type="textarea" :rows="2"/> <el-input size='mini' v-model="addCabinetData.remark" type="textarea" :rows="2"/>
</el-form-item> </el-form-item>
<el-form-item :label="this.$t('asset.createAssetTab.AddCabinetTab.DC')"> <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-select size='mini' v-model="addCabinetData.idcId" clearable style="width: 100%;" placeholder="">
<el-option <el-option
v-for="item in IDCOptionData" v-for="item in IDCOptionData"
@@ -594,7 +600,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </el-form>
</div> </div>
<div slot="reference"><i class="el-icon-plus"></i></div> <div slot="reference"><i class="el-icon-plus"></i></div>
</el-popover> </el-popover>
@@ -802,6 +808,17 @@
idcId: [ idcId: [
{required: true, message: this.$t('validate.required'), trigger: 'change'} {required: true, message: this.$t('validate.required'), trigger: 'change'}
], ],
},
cabRules: {
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'}
]
} }
} }
}, },
@@ -870,7 +887,8 @@
if (response.code === 200) { if (response.code === 200) {
this.IDCOptionData = response.data.list; this.IDCOptionData = response.data.list;
this.markOptionData(this.IDCOptionData) this.markOptionData(this.IDCOptionData)
this.$store.state.assetData.idcData = this.IDCOptionData this.$store.state.assetData.idcData = this.IDCOptionData;
this.$emit('refreshData');
} }
}) })
}, },
@@ -1010,6 +1028,8 @@
}) })
} }
if (type === 'asset') { if (type === 'asset') {
this.$refs.addAssetForm.validate((valid) => {
if (valid) {
let modelId = '' let modelId = ''
let authType = '' let authType = ''
if (this.assetData.modelId !== '') { if (this.assetData.modelId !== '') {
@@ -1042,8 +1062,10 @@
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}) });
this.$emit('refreshData', 'true') this.$emit('refreshData', 'true');
}
});
} }
if (type === 'vendor') { if (type === 'vendor') {
const h = this.$createElement; const h = this.$createElement;
@@ -1259,14 +1281,15 @@
this.clickFlush('idc', itemData) this.clickFlush('idc', itemData)
this.IDCOptionData.forEach(item => { this.IDCOptionData.forEach(item => {
if (item.id === data) { if (item.id === data) {
this.popIdcData.name = item.name this.popIdcData.id = item.id;
this.popIdcData.location = item.location this.popIdcData.name = item.name;
this.popIdcData.principal = item.principal this.popIdcData.location = item.location;
this.popIdcData.tel = item.tel this.popIdcData.principal = item.principal;
this.addCabIDCData.name = item.name this.popIdcData.tel = item.tel;
this.addCabIDCData.location = item.location this.addCabIDCData.name = item.name;
this.addCabIDCData.principal = item.principal this.addCabIDCData.location = item.location;
this.addCabIDCData.tel = item.tel this.addCabIDCData.principal = item.principal;
this.addCabIDCData.tel = item.tel;
} }
}); });
} }
@@ -1274,22 +1297,22 @@
getSingleCabinetData(data, type, item) { getSingleCabinetData(data, type, item) {
if (type !== 'edit') { if (type !== 'edit') {
this.cabinetSelectedData.uSize = 0; this.cabinetSelectedData.uSize = 0;
this.cabinetSelectedData.remark = null this.cabinetSelectedData.remark = null;
this.cabinetOptionData.forEach(items => { this.cabinetOptionData.forEach(items => {
if (items.id === data) { if (items.id === data) {
this.cabinetSelectedData.uSize = items.uSize this.cabinetSelectedData.uSize = items.uSize;
this.cabinetSelectedData.remark = items.remark this.cabinetSelectedData.remark = items.remark;
} }
}) })
} else { } else {
this.clickFlush('cabinet', item) this.clickFlush('cabinet', item)
item[item.name] = !item[item.name] item[item.name] = !item[item.name];
this.cabinetOptionData.forEach(items => { this.cabinetOptionData.forEach(items => {
if (items.id === data) { if (items.id === data) {
this.popCabinetData.name = items.name this.popCabinetData.name = items.name;
this.popCabinetData.uSize = items.uSize this.popCabinetData.uSize = items.uSize;
this.popCabinetData.remark = items.remark this.popCabinetData.remark = items.remark;
this.popCabinetData.idcId = items.idcId this.popCabinetData.idcId = items.idcId;
} }
}) })
} }

View File

@@ -21,7 +21,7 @@
<div class="right-box-title">{{this.tabView == true ? $t('asset.asset') : $t('asset.EditAsset')}}</div> <div class="right-box-title">{{this.tabView == true ? $t('asset.asset') : $t('asset.EditAsset')}}</div>
<el-scrollbar class="right-box-form-box"> <el-scrollbar class="right-box-form-box">
<el-form ref="form" :model="assetData" label-width="120px" class="right-box-form right-box-form-left" :rules="rules"> <el-form ref="assetEditForm" :model="assetData" label-width="120px" class="right-box-form right-box-form-left" :rules="rules">
<el-form-item :label="$t('asset.createAssetTab.sn')" prop="sn"> <el-form-item :label="$t('asset.createAssetTab.sn')" prop="sn">
<el-input size="mini" v-if="!tabView" v-model="assetData.sn"/> <el-input size="mini" v-if="!tabView" v-model="assetData.sn"/>
<span v-if="tabView">{{assetData.sn}}</span> <span v-if="tabView">{{assetData.sn}}</span>
@@ -271,7 +271,12 @@
:value="item.id" :value="item.id"
> >
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
<el-popover <idc-config-box :post-idc="popIdcData" placement="left" @after="getIDCOptionData" :button-class="'config-dropdown-btn'">
<template v-slot:optionZone>
<i class="el-icon-edit-outline" @click="getSingleIDCData(item.id,'edit', item)"></i>
</template>
</idc-config-box>
<!--<el-popover
placement="left" placement="left"
v-model="item[item.name]" v-model="item[item.name]"
trigger="manual" trigger="manual"
@@ -323,14 +328,15 @@
<span class="config-dropdown-btn" slot="reference" <span class="config-dropdown-btn" slot="reference"
@click.stop="getSingleIDCData(item.id,'edit',item)"><i @click.stop="getSingleIDCData(item.id,'edit',item)"><i
class="el-icon-edit-outline"></i></span> class="el-icon-edit-outline"></i></span>
</el-popover> </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)"><i @click.stop="deleteData('idc',item.id)"><i
class="el-icon-delete"></i></span> class="el-icon-delete"></i></span>
</el-option> </el-option>
</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 <idc-config-box placement="left" @after="getIDCOptionData"></idc-config-box>
<!--<el-popover
placement="left" placement="left"
v-model="editPopIDCVisible" v-model="editPopIDCVisible"
> >
@@ -380,7 +386,7 @@
</div> </div>
</div> </div>
<div slot="reference"><i class="el-icon-plus"></i></div> <div slot="reference"><i class="el-icon-plus"></i></div>
</el-popover> </el-popover>-->
</div> </div>
</template> </template>
<span v-if="tabView">{{assetViewData.idcName}}</span> <span v-if="tabView">{{assetViewData.idcName}}</span>
@@ -428,20 +434,20 @@
<!--标题--> <!--标题-->
<div class="pop-title">{{$t('asset.createAssetTab.editCabinetTab.title')}}</div> <div class="pop-title">{{$t('asset.createAssetTab.editCabinetTab.title')}}</div>
<!--表单内容--> <!--表单内容-->
<div class="pop-item-wider"> <el-form class="pop-item-wider" :model="popCabinetData" ref="cabEditForm" :rules="cabRules">
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.name')" prop="cabinet.name"> <el-form-item :label="$t('asset.editAssetTab.editCabinetTab.name')" prop="name">
<el-input size="mini" v-model="popCabinetData.name"/> <el-input size="mini" v-model="popCabinetData.name"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.uSize')" prop="cabinet.uSize"> <el-form-item :label="$t('asset.editAssetTab.editCabinetTab.uSize')" prop="uSize">
<div>{{popCabinetData.uSize}}</div> <div>{{popCabinetData.uSize}}</div>
<el-slider v-model="popCabinetData.uSize" :max="47"></el-slider> <el-slider v-model.number="popCabinetData.uSize" :max="47"></el-slider>
</el-form-item> </el-form-item>
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.remark')"> <el-form-item :label="$t('asset.editAssetTab.editCabinetTab.remark')">
<el-input v-model="popCabinetData.remark" <el-input v-model="popCabinetData.remark"
type="textarea" type="textarea"
:rows="2"/> :rows="2"/>
</el-form-item> </el-form-item>
<el-form-item :label="$t('asset.editAssetTab.editCabinetTab.DC')" prop="cabinet.idcId"> <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-select v-model="popCabinetData.idcId" clearable placeholder="" size="mini" style="width: 100%;">
<el-option <el-option
v-for="ite in item.children" v-for="ite in item.children"
@@ -509,7 +515,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </el-form>
</div> </div>
<span class="config-dropdown-btn" slot="reference" <span class="config-dropdown-btn" slot="reference"
@click.stop="getSingleCabinetData(item.id,'edit',item)"> @click.stop="getSingleCabinetData(item.id,'edit',item)">
@@ -543,20 +549,20 @@
<!--标题--> <!--标题-->
<div class="pop-title">{{$t('asset.createAssetTab.AddCabinetTab.title')}}</div> <div class="pop-title">{{$t('asset.createAssetTab.AddCabinetTab.title')}}</div>
<!--表单内容--> <!--表单内容-->
<div class="pop-item-wider"> <el-form class="pop-item-wider" :model="addCabinetData" ref="cabAddForm" :rules="cabRules">
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.name')"> <el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.name')" prop="name">
<el-input size="mini" v-model="addCabinetData.name"/> <el-input size="mini" v-model="addCabinetData.name"/>
</el-form-item> </el-form-item>
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.uSize')"> <el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.uSize')" prop="uSize">
<div>{{addCabinetData.uSize}}</div> <div>{{addCabinetData.uSize}}</div>
<el-slider v-model="addCabinetData.uSize"></el-slider> <el-slider v-model.number="addCabinetData.uSize"></el-slider>
</el-form-item> </el-form-item>
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.remark')"> <el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.remark')">
<el-input v-model="addCabinetData.remark" <el-input v-model="addCabinetData.remark"
type="textarea" size='mini' type="textarea" size='mini'
:rows="1"/> :rows="1"/>
</el-form-item> </el-form-item>
<el-form-item :label="this.$t('asset.editAssetTab.AddCabinetTab.DC')"> <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-select size='mini' v-model="addCabinetData.idcId" clearable style="width: 100%;" placeholder="">
<el-option <el-option
v-for="item in IDCOptionData" v-for="item in IDCOptionData"
@@ -614,7 +620,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </el-form>
</div> </div>
<div slot="reference"><i class="el-icon-plus"></i></div> <div slot="reference"><i class="el-icon-plus"></i></div>
</el-popover> </el-popover>
@@ -691,7 +697,6 @@
cabinetId: '', cabinetId: '',
modelId: '', modelId: '',
assetType: '', assetType: '',
cabinet: {},
accounts: [{ accounts: [{
id: '', id: '',
authType: '', authType: '',
@@ -842,6 +847,17 @@
idcId: [ idcId: [
{required: true, message: this.$t('validate.required'), trigger: 'change'} {required: true, message: this.$t('validate.required'), trigger: 'change'}
], ],
},
cabRules: {
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'}
]
} }
} }
}, },
@@ -946,7 +962,7 @@
this.IDCOptionData = response.data.list; this.IDCOptionData = response.data.list;
this.markOptionData(this.IDCOptionData) this.markOptionData(this.IDCOptionData)
this.$store.state.assetData.idcData = this.IDCOptionData this.$store.state.assetData.idcData = this.IDCOptionData
this.$emit('refreshData');
} }
}) })
}, },
@@ -1015,7 +1031,8 @@
tel: '' tel: ''
} }
if (data === 'asset') { if (data === 'asset') {
this.assetData.modelId = this.assetData.modelId.join(',').split(',')[1] //this.assetData.modelId = this.assetData.modelId.join(',').split(',')[1];
let modelId = this.assetData.modelId.join(',').split(',')[1];
let form = new FormData(); let form = new FormData();
form.append("id", this.pageObj.id); form.append("id", this.pageObj.id);
form.append("sn", this.assetData.sn); form.append("sn", this.assetData.sn);
@@ -1024,13 +1041,16 @@
form.append("purchaseDate", this.assetData.purchaseDate); form.append("purchaseDate", this.assetData.purchaseDate);
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", this.assetData.modelId); form.append("modelId", modelId);
form.append("accounts[0].id", this.assetData.accounts[0].id); form.append("accounts[0].id", this.assetData.accounts[0].id);
form.append("accounts[0].authType", this.assetData.accounts[0].authType); form.append("accounts[0].authType", this.assetData.accounts[0].authType);
form.append("accounts[0].user", this.assetData.accounts[0].user); form.append("accounts[0].user", this.assetData.accounts[0].user);
form.append("accounts[0].pwd", this.assetData.accounts[0].pwd); form.append("accounts[0].pwd", this.assetData.accounts[0].pwd);
form.append("accounts[0].port", this.assetData.accounts[0].port); form.append("accounts[0].port", this.assetData.accounts[0].port);
form.append("cert", this.assetData.accounts[0].file); form.append("cert", this.assetData.accounts[0].file);
this.$refs.assetEditForm.validate((valid) => {
if (valid) {
this.$put('asset', form).then(res => { this.$put('asset', form).then(res => {
const h = this.$createElement; const h = this.$createElement;
if (res.code === 200) { if (res.code === 200) {
@@ -1041,7 +1061,11 @@
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}) });
} else {
return false;
}
});
} else { } else {
if (data === 'model') { if (data === 'model') {
item.vendorCode = this.vendorCode item.vendorCode = this.vendorCode
@@ -1056,10 +1080,20 @@
item = obj item = obj
} }
if (data === 'cabinet') { if (data === 'cabinet') {
let v = true;
this.$refs.cabEditForm[0].validate((valid) => {
if (valid) {
item.name = this.popCabinetData.name; item.name = this.popCabinetData.name;
item.uSize = this.popCabinetData.uSize; item.uSize = this.popCabinetData.uSize;
item.remark = this.popCabinetData.remark; item.remark = this.popCabinetData.remark;
item.idcId = this.popCabinetData.idcId; item.idcId = this.popCabinetData.idcId;
} else {
v = false;
}
});
if (!v) {
return false;
}
} }
if (data === 'idc') { if (data === 'idc') {
idcData.id = item.id idcData.id = item.id
@@ -1144,6 +1178,8 @@
}) })
} }
if (type === 'cabinet') { if (type === 'cabinet') {
this.$refs.cabAddForm.validate((valid) => {
if (valid) {
this.addCabinetData.idcId = this.assetData.idcId this.addCabinetData.idcId = this.assetData.idcId
this.$post('cabinet', this.addCabinetData).then(res => { this.$post('cabinet', this.addCabinetData).then(res => {
const h = this.$createElement; const h = this.$createElement;
@@ -1154,7 +1190,12 @@
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}) });
} else {
return false;
}
});
} }
}, },
deleteData(data, item) { deleteData(data, item) {
@@ -1298,25 +1339,26 @@
this.idcSelectedData = ''; this.idcSelectedData = '';
this.IDCOptionData.forEach(item => { this.IDCOptionData.forEach(item => {
if (item.id === data) { if (item.id === data) {
this.idcSelectedData = item this.idcSelectedData = item;
} }
}); });
this.getCabinetOptionData(this.assetData.idcId); this.getCabinetOptionData(this.assetData.idcId);
this.assetData.cabinetId = '' this.assetData.cabinetId = '';
this.cabinetSelectedData.uSize = '' this.cabinetSelectedData.uSize = '';
this.cabinetSelectedData.remark = null this.cabinetSelectedData.remark = null
} else { } else {
this.clickFlush('idc', itemData) this.clickFlush('idc', itemData);
this.IDCOptionData.forEach(item => { this.IDCOptionData.forEach(item => {
if (item.id === data) { if (item.id === data) {
this.popIdcData.name = item.name this.popIdcData.id = item.id;
this.popIdcData.location = item.location this.popIdcData.name = item.name;
this.popIdcData.principal = item.principal this.popIdcData.location = item.location;
this.popIdcData.tel = item.tel this.popIdcData.principal = item.principal;
this.addCabIDCData.name = item.name this.popIdcData.tel = item.tel;
this.addCabIDCData.location = item.location this.addCabIDCData.name = item.name;
this.addCabIDCData.principal = item.principal this.addCabIDCData.location = item.location;
this.addCabIDCData.tel = item.tel this.addCabIDCData.principal = item.principal;
this.addCabIDCData.tel = item.tel;
} }
}); });
} }

View File

@@ -34,7 +34,7 @@ export default new Router({
children: [ children: [
{ {
path: '/dashboard', path: '/dashboard',
component: resolve => require(['../components/page/dashboard.vue'], resolve), component: resolve => require(['../components/page/dashboard/panel.vue'], resolve),
}, },
{ {
path: '/panel', path: '/panel',