|
|
@ -10,64 +10,76 @@ |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" fixed="right" width="250" header-align="center" align="center" class="operate"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button type="text" class="div-table-button--delete" size="small" |
|
|
|
@click="handleDelete(scope.row)">删除</el-button> |
|
|
|
<el-popconfirm title="确认删除?" |
|
|
|
@confirm="handleDelete(scope.row)"> |
|
|
|
<el-button slot='reference' type="text" class="div-table-button--delete" size="small" |
|
|
|
>删除</el-button> |
|
|
|
</el-popconfirm> |
|
|
|
|
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<div> |
|
|
|
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="pageNo" |
|
|
|
:page-sizes="[10, 20, 50]" :page-size="pageSize" layout="sizes, prev, pager, next, total"> |
|
|
|
<el-pagination @size-change="handleSizeChange" :current-page="pageNo" @current-change="handleCurrentChange" :total="total" :current-page.sync="pageNo" :page-sizes="[10, 20, 50]" :page-size="pageSize" layout="total,sizes, prev, pager, next"> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
<el-dialog :visible.sync="addHouseShow" :close-on-click-modal="false" :close-on-press-escape="false" width="920px" |
|
|
|
destroy-on-close :before-close="beforeClose" top="30vh" @closed="addHouseShow = false" class="dialog-h" z-index="3000"> |
|
|
|
<el-dialog v-if="addHouseShow" :visible.sync="addHouseShow" :close-on-click-modal="false" :close-on-press-escape="false" width="920px" |
|
|
|
destroy-on-close :before-close="beforeClose" top="30vh" @closed="addHouseShow = false" class="dialog-h" |
|
|
|
z-index="3000"> |
|
|
|
<div style="padding:10px;"> |
|
|
|
<div> 所属组织:{{ gridName }}</div> |
|
|
|
<el-row> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-col :span="24"> |
|
|
|
<div class="resi-cell"> |
|
|
|
<div class="resi-cell-label">所属房屋</div> |
|
|
|
<div class="resi-cell-label">选择房屋</div> |
|
|
|
<div class="resi-cell-value"> |
|
|
|
<el-select v-model.trim="VILLAGE_ID" placeholder="请选择小区" size="small" clearable |
|
|
|
class="resi-cell-select" @clear="handleClearVillage" @change="handleChangeV" popper-class="vSelsect"> |
|
|
|
<el-option v-for="item in optionsV" :key="item.value" :label="item.label" |
|
|
|
class="resi-cell-select" @clear="handleClearVillage" @change="handleChangeV" |
|
|
|
popper-class="vSelsect"> |
|
|
|
<el-option v-for="(item, index) in optionsV" :key="index" :label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select v-model.trim="BUILD_ID" placeholder="楼号" size="small" clearable |
|
|
|
style="width: 150px;" class="resi-cell-select " :disabled="changeVDisabled" |
|
|
|
@clear="handleClearBuild" multiple collapse-tags @change="handleChangeB" popper-class="vSelsect"> |
|
|
|
<el-option v-for="item in optionsB" :key="item.value" :label="item.label" |
|
|
|
@clear="handleClearBuild" multiple collapse-tags @change="handleChangeB" |
|
|
|
popper-class="vSelsect" ref="buildS"> |
|
|
|
<el-option v-for="(item, index) in optionsB" :key="index" :label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select v-model.trim="UNIT_ID" multiple collapse-tags :disabled="changeBDisabled" |
|
|
|
placeholder="单元" size="small" clearable style="width: 150px;" class="resi-cell-select " |
|
|
|
@click="handleClearDan" @change="handleChangeD" popper-class="vSelsect"> |
|
|
|
<el-option v-for="item in optionsD" :key="item.value" :label="item.label" |
|
|
|
@clear="handleClearDan" @change="handleChangeD" popper-class="vSelsect"> |
|
|
|
<el-option v-for="(item, index) in optionsD " :key="index" :label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select v-model.trim="HOME_ID" multiple collapse-tags :disabled="changeDDisabled" |
|
|
|
placeholder="房号" size="small" clearable style="width: 150px;" class="resi-cell-select " popper-class="vSelsect"> |
|
|
|
<el-option v-for="item in optionsH" :key="item.value" :label="item.label" |
|
|
|
placeholder="房号" size="small" clearable style="width: 150px;" class="resi-cell-select " |
|
|
|
popper-class="vSelsect" @clear="handleClearHouse" @change="handleChangeH"> |
|
|
|
<el-option v-for="(item, index) in optionsH" :key="index" :label="item.label" |
|
|
|
:value="item.value"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="btn_bto"> |
|
|
|
<el-row type="flex" justify="end" > |
|
|
|
<section> |
|
|
|
<div v-for="(item, index) in selArr" :key="index" style="margin-top: 10px;"> |
|
|
|
<span>{{ item.name }}</span><img src="../../../../assets/img/del.png" |
|
|
|
style="cursor: pointer;" @click="handelClickDel(item)" width="16px" alt=""> |
|
|
|
</div> |
|
|
|
</section> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-button type="primary" plain @click="handleClose" >取消</el-button> |
|
|
|
<div class="btn_bto"> |
|
|
|
<el-button type="primary" plain @click="handleClose">取消</el-button> |
|
|
|
<el-button type="primary" plain @click="handelSave"> 确定</el-button> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
</el-col></el-row> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -75,7 +87,7 @@ |
|
|
|
<script> |
|
|
|
|
|
|
|
|
|
|
|
import { requestGet } from "@/js/dai/request"; |
|
|
|
import { requestGet, requestPost } from "@/js/dai/request"; |
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
import { Loading } from 'element-ui' // 引入Loading服务 |
|
|
|
|
|
|
@ -84,7 +96,7 @@ export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
loading: false, |
|
|
|
pageSize: 10, |
|
|
|
pageSize: 20, |
|
|
|
pageNo: 0, |
|
|
|
tableLoading: false, |
|
|
|
microGridId: '',//微网格Id |
|
|
@ -104,7 +116,12 @@ export default { |
|
|
|
BUILD_ID: '', |
|
|
|
UNIT_ID: '', |
|
|
|
HOME_ID: '', |
|
|
|
selArr:[] |
|
|
|
selArr: [], |
|
|
|
prevSelectedOptionsB: [], |
|
|
|
prevSelectedOptionsD: [], |
|
|
|
prevSelectedOptionsH: [], |
|
|
|
total:0 |
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
components: { |
|
|
@ -129,12 +146,13 @@ export default { |
|
|
|
|
|
|
|
async loadTable() { |
|
|
|
this.tableLoading = true |
|
|
|
const url = `/gov/org/house/getMicroGridHouseList?microGridId=${this.microGridId}` |
|
|
|
const url = `/gov/org/house/getMicroGridHouseList?microGridId=${this.microGridId}&pageSize=${this.pageSize}&pageNo=${this.pageNo}` |
|
|
|
// const url = "http://yapi.elinkservice.cn/mock/245/heart/userdemand/recordList" |
|
|
|
const { data, code, msg } = await requestGet(url) |
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
this.tableData = data || [] |
|
|
|
this.tableData = data.list || [] |
|
|
|
this.total = data.total |
|
|
|
} else { |
|
|
|
this.$message.error(msg) |
|
|
|
} |
|
|
@ -218,16 +236,44 @@ export default { |
|
|
|
this.getBuildList() |
|
|
|
}, |
|
|
|
handleChangeB(val) { |
|
|
|
console.log('val', val) |
|
|
|
const selected = val.filter(item => !this.prevSelectedOptionsB.includes(item)); |
|
|
|
const unselected = this.prevSelectedOptionsB.filter(item => !val.includes(item)); |
|
|
|
console.log(unselected); |
|
|
|
if (unselected.length > 0) { |
|
|
|
this.selArr = this.selArr.filter(item => item.id !== unselected[0]) |
|
|
|
} else { |
|
|
|
this.getMicroGridHouseName(selected[selected.length - 1], 'building') |
|
|
|
} |
|
|
|
this.prevSelectedOptionsB = [...val]; |
|
|
|
// 在这里处理选中或取消选中的逻辑 |
|
|
|
this.UNIT_ID = '' |
|
|
|
this.HOME_ID = '' |
|
|
|
this.getUniList() |
|
|
|
}, |
|
|
|
handleChangeD(val) { |
|
|
|
console.log('val', val) |
|
|
|
const selected = val.filter(item => !this.prevSelectedOptionsD.includes(item)); |
|
|
|
const unselected = this.prevSelectedOptionsD.filter(item => !val.includes(item)); |
|
|
|
if (unselected.length > 0) { |
|
|
|
this.selArr = this.selArr.filter(item => item.id !== unselected[0]) |
|
|
|
} else { |
|
|
|
this.getMicroGridHouseName(selected[selected.length - 1], 'unit') |
|
|
|
} |
|
|
|
this.prevSelectedOptionsD = [...val]; |
|
|
|
|
|
|
|
this.HOME_ID = '' |
|
|
|
this.getHouseList() |
|
|
|
}, |
|
|
|
handleChangeH(val) { |
|
|
|
const selected = val.filter(item => !this.prevSelectedOptionsH.includes(item)); |
|
|
|
const unselected = this.prevSelectedOptionsH.filter(item => !val.includes(item)); |
|
|
|
if (unselected.length > 0) { |
|
|
|
this.selArr = this.selArr.filter(item => item.id !== unselected[0]) |
|
|
|
} else { |
|
|
|
this.getMicroGridHouseName(selected[selected.length - 1], 'house') |
|
|
|
} |
|
|
|
this.prevSelectedOptionsH = [...val]; |
|
|
|
|
|
|
|
}, |
|
|
|
handleClearVillage() { |
|
|
|
this.BUILD_ID = '' |
|
|
|
this.HOME_ID = '' |
|
|
@ -236,10 +282,15 @@ export default { |
|
|
|
this.BUILD_ID = '' |
|
|
|
this.UNIT_ID = '' |
|
|
|
this.HOME_ID = '' |
|
|
|
this.selArr = [] |
|
|
|
}, |
|
|
|
handleClearDan() { |
|
|
|
this.UNIT_ID = '' |
|
|
|
this.HOME_ID = '' |
|
|
|
this.selArr = this.selArr.filter(item => item.level !== 'unit' || item.level !== 'house') || [] |
|
|
|
}, |
|
|
|
handleClearHouse() { |
|
|
|
this.selArr = this.selArr.filter(item => item.level !== 'house') || [] |
|
|
|
}, |
|
|
|
handleSizeChange(val) { |
|
|
|
this.pageSize = val |
|
|
@ -255,28 +306,81 @@ export default { |
|
|
|
this.addHouseShow = true |
|
|
|
this.getValiheList() |
|
|
|
}, |
|
|
|
beforeClose(done){ |
|
|
|
this.VILLAGE_ID = '' |
|
|
|
beforeClose(done) { |
|
|
|
this.VILLAGE_ID = ''; |
|
|
|
this.BUILD_ID = ''; |
|
|
|
this.UNIT_ID = ''; |
|
|
|
this.HOME_ID = ''; |
|
|
|
this.selArr = [] |
|
|
|
this.addHouseShow = false |
|
|
|
}, |
|
|
|
async getMicroGridHouseName(id,level) { |
|
|
|
this.tableLoading = true |
|
|
|
async getMicroGridHouseName(id, level) { |
|
|
|
const url = `/gov/org/house/getMicroGridHouseName?levelId=${id}&level=${level}` |
|
|
|
// const url = "http://yapi.elinkservice.cn/mock/245/heart/userdemand/recordList" |
|
|
|
const { data, code, msg } = await requestGet(url) |
|
|
|
if (code === 0) { |
|
|
|
this.selArr.push(data) |
|
|
|
// 判断 selArr 中是否已包含相同的 id |
|
|
|
const isIdInSelArr = this.selArr.some(item => item.id === id); |
|
|
|
if (!isIdInSelArr) { |
|
|
|
this.selArr.push(data); |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.$message.error(msg) |
|
|
|
} |
|
|
|
this.tableLoading = false |
|
|
|
}, |
|
|
|
|
|
|
|
handleClose(){ |
|
|
|
handelClickDel(val) { |
|
|
|
if (val.level === "building") { |
|
|
|
this.BUILD_ID = this.BUILD_ID.filter(item => item !== val.id); |
|
|
|
} else if (val.level === "unit") { |
|
|
|
this.UNIT_ID = this.UNIT_ID.filter(item => item !== val.id); |
|
|
|
} else if (val.level === "house") { |
|
|
|
this.HOME_ID = this.HOME_ID.filter(item => item !== val.id); |
|
|
|
} |
|
|
|
this.selArr = this.selArr.filter(item => item.id !== val.id); |
|
|
|
}, |
|
|
|
handleClose() { |
|
|
|
this.addHouseShow = false |
|
|
|
this.restData() |
|
|
|
}, |
|
|
|
handelSave(){ |
|
|
|
console.log(this.VILLAGE_ID ,this.BUILD_ID,this.UNIT_ID,this.HOME_ID); |
|
|
|
async handleDelete(row) { |
|
|
|
let parm = { |
|
|
|
houseId: row.homeId |
|
|
|
} |
|
|
|
let url = '/gov/org/house/removeMicroGridHouse' |
|
|
|
const { data, code, msg } = await requestPost(url, parm) |
|
|
|
if (code == 0) { |
|
|
|
this.loadTable() |
|
|
|
} else { |
|
|
|
console.log(mas); |
|
|
|
} |
|
|
|
}, |
|
|
|
async handelSave() { |
|
|
|
let parm = { |
|
|
|
houseIds: this.HOME_ID ? this.HOME_ID.join(',') : '', |
|
|
|
unitIds: this.UNIT_ID ? this.UNIT_ID.join(',') : '', |
|
|
|
buildingIds: this.BUILD_ID ? this.BUILD_ID.join(',') : '', |
|
|
|
microGridId: this.microGridId |
|
|
|
} |
|
|
|
let url = '/gov/org/house/addMicroGridHouse' |
|
|
|
const { data, code, msg } = await requestPost(url, parm) |
|
|
|
if (code == 0) { |
|
|
|
this.addHouseShow = false |
|
|
|
this.restData() |
|
|
|
this.loadTable() |
|
|
|
} else { |
|
|
|
console.log(mas); |
|
|
|
} |
|
|
|
}, |
|
|
|
restData(){ |
|
|
|
this.VILLAGE_ID = ''; |
|
|
|
this.UNIT_ID = []; |
|
|
|
this.BUILD_ID = []; |
|
|
|
this.HOME_ID = []; |
|
|
|
this.selArr = []; |
|
|
|
this.optionsB= []; |
|
|
|
this.optionsD= []; |
|
|
|
this.optionsH= []; |
|
|
|
}, |
|
|
|
// 开启加载动画 |
|
|
|
startLoading() { |
|
|
@ -327,6 +431,7 @@ export default { |
|
|
|
</script> |
|
|
|
<style lang="scss" scoped > |
|
|
|
@import "@/assets/scss/buttonstyle.scss"; |
|
|
|
|
|
|
|
// @import "@/assets/scss/common.scss"; |
|
|
|
.div_main { |
|
|
|
background: #ffffff; |
|
|
@ -372,5 +477,17 @@ export default { |
|
|
|
margin-top: 10px; |
|
|
|
margin-right: 50px; |
|
|
|
} |
|
|
|
.btn_bto{ |
|
|
|
display: flex; |
|
|
|
justify-content: flex-end; |
|
|
|
margin-top: 16px; |
|
|
|
} |
|
|
|
.resi-cell{ |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
.resi-cell-label{ |
|
|
|
margin-right: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
|