6 changed files with 953 additions and 151 deletions
@ -0,0 +1,649 @@ |
|||
<template> |
|||
<div> |
|||
<div v-show="currentPage == 'chaxun'"> |
|||
<div v-show="!showedFuncPanel"> |
|||
<div class="m-info"> |
|||
<div class="wrap"> |
|||
<div class="search"> |
|||
<div class="input"> |
|||
<!-- <el-dropdown |
|||
class="select" |
|||
placement="bottom" |
|||
v-model="searchData.type" |
|||
@command="(type) => (searchData.type = type)" |
|||
> |
|||
<span class="select-show"> |
|||
{{ { fangwu: "房屋" }[searchData.type] |
|||
}} |
|||
</span> |
|||
</el-dropdown> --> |
|||
|
|||
<input |
|||
type="text" |
|||
:placeholder="typePlaceholder[searchData.type]" |
|||
v-model="searchData.keyword" |
|||
@keyup.enter="handleClickSearchBtn" |
|||
/> |
|||
|
|||
<div |
|||
class="close-btn" |
|||
v-if="searchData.keyword != ''" |
|||
@click="searchData.keyword = ''" |
|||
> |
|||
<img src="@/assets/img/shequ/close.png" /> |
|||
</div> |
|||
</div> |
|||
<div class="btn" @click="handleClickSearchBtn">搜索</div> |
|||
</div> |
|||
|
|||
<div |
|||
class="m-tb" |
|||
v-if=" |
|||
searchData.type == 'fangwu' && |
|||
searchData.keyword != '' && |
|||
searchStatus == 'ing' |
|||
" |
|||
> |
|||
<div class="tb"> |
|||
<el-table |
|||
:data="searchFangwu.list" |
|||
v-loading="searchFangwu.loading" |
|||
border |
|||
:max-height="1000" |
|||
style="width: 100%" |
|||
> |
|||
<el-table-column |
|||
label="序号" |
|||
type="index" |
|||
align="center" |
|||
width="50" |
|||
/> |
|||
<el-table-column |
|||
prop="houseName" |
|||
label="房屋名称" |
|||
width="120" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="neighborHoodName" |
|||
label="所属小区" |
|||
width="160" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column prop="buildingName" label="所属楼栋"> |
|||
</el-table-column> |
|||
<el-table-column prop="unitNum" label="单元号"> |
|||
</el-table-column> |
|||
<el-table-column prop="doorName" label="门牌号"> |
|||
</el-table-column> |
|||
<el-table-column prop="houseType" label="类型"> |
|||
</el-table-column> |
|||
<el-table-column prop="purpose" label="用途"> |
|||
</el-table-column> |
|||
<el-table-column prop="rentFlag" label="房屋状态"> |
|||
</el-table-column> |
|||
<el-table-column prop="ownerName" label="房主姓名"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="ownerPhone" |
|||
label="房主电话" |
|||
width="110" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="ownerIdCard" |
|||
label="身份证" |
|||
width="170" |
|||
> |
|||
</el-table-column> |
|||
<el-table-column |
|||
label="操作" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
class="operate" |
|||
width="170" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
type="text" |
|||
style="color: #1c6afd; text-decoration: underline" |
|||
size="small" |
|||
@click="handleWatchSearchFangwu(scope.row)" |
|||
>查看</el-button |
|||
> |
|||
<el-button |
|||
type="text" |
|||
style="color: #1c6afd; text-decoration: underline" |
|||
size="small" |
|||
@click="checkFangwu(scope.row)" |
|||
>绑定房屋</el-button |
|||
> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination |
|||
@size-change="handleSizeChangeSearchFangwu" |
|||
@current-change="handleCurrentChangeSearchFangwu" |
|||
:current-page.sync="searchFangwu.pageNo" |
|||
:page-sizes="[20, 50, 100, 200]" |
|||
:page-size="parseInt(searchFangwu.pageSize)" |
|||
layout="sizes, prev, pager, next" |
|||
:total="searchFangwu.total" |
|||
> |
|||
</el-pagination> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div |
|||
class="m-tb" |
|||
v-if=" |
|||
searchData.type == 'xuqiu' && |
|||
searchData.keyword != '' && |
|||
searchStatus == 'ing' |
|||
" |
|||
> |
|||
<div class="tb"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- <div class="binding-house"> |
|||
<span>绑定房屋:</span> |
|||
<span>{{houseName}}</span> |
|||
</div> --> |
|||
<people-more |
|||
v-if="showedPeopleMoreInfo && currentPepeleId" |
|||
:userId="currentPepeleId" |
|||
:gridName="currentPepeleGridName" |
|||
@close="showedPeopleMoreInfo = false" |
|||
/> |
|||
|
|||
<!-- 修改弹出框 --> |
|||
<el-dialog |
|||
:visible.sync="showedFangwuInfo" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false" |
|||
title="房屋详情" |
|||
width="900px" |
|||
:modal="false" |
|||
@closed="showedFangwuInfo = false" |
|||
> |
|||
<fangwu-info |
|||
ref="fangwu_info" |
|||
@dialogCancle="showedFangwuInfo = false" |
|||
></fangwu-info> |
|||
</el-dialog> |
|||
|
|||
<!-- 修改弹出框 --> |
|||
<el-dialog |
|||
:visible.sync="showedXuqiuInfo" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false" |
|||
title="需求详情" |
|||
width="900px" |
|||
@closed="showedXuqiuInfo = false" |
|||
> |
|||
<xuqiu-info |
|||
ref="xuqiu_info" |
|||
@dialogCancle="showedXuqiuInfo = false" |
|||
></xuqiu-info> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { requestPost } from "@/js/dai/request"; |
|||
import barChart from "@/views/modules/shequ/cpts/bar-chart"; |
|||
import warningList from "@/views/modules/warning/index"; |
|||
import { mapGetters } from "vuex"; |
|||
import nextTick from "dai-js/tools/nextTick"; |
|||
import peopleMore from "@/views/modules/shequ/cpts/people-more"; |
|||
import fangwuInfo from "@/views/modules/shequ/cpts/fangwu-info"; |
|||
import xuqiuInfo from "@/views/modules/shequ/cpts/xuqiu-info"; |
|||
import scrollNotice from "@/views/modules/shequ/cpts/scroll-notice"; |
|||
|
|||
export default { |
|||
components: { |
|||
barChart, |
|||
peopleMore, |
|||
fangwuInfo, |
|||
xuqiuInfo, |
|||
warningList, |
|||
scrollNotice, |
|||
}, |
|||
|
|||
data() { |
|||
return { |
|||
searchStatus: "ini", //ing over |
|||
searchData: { |
|||
type: "fangwu", |
|||
keyword: "", |
|||
}, |
|||
|
|||
typePlaceholder: { |
|||
jumin: "请输入姓名或电话或身份证号", |
|||
fangwu: "请输入“小区名称,楼号”,如:亿联小区,1号楼", |
|||
xuqiu: "请输入需求人或需求内容或服务方", |
|||
}, |
|||
|
|||
selectedFuncIdList: [], |
|||
|
|||
funcList: [ |
|||
// { |
|||
// url: '', |
|||
// menuId: '', |
|||
// menuName: '', |
|||
// icon: '', |
|||
// } |
|||
], |
|||
|
|||
showedFuncPanel: false, |
|||
|
|||
warningChart: { |
|||
loading: false, |
|||
total: "", |
|||
list: [], |
|||
}, |
|||
|
|||
warningTb: { |
|||
pageNo: 1, |
|||
pageSize: window.localStorage.getItem("pageSize") || 20, |
|||
total: 1, |
|||
list: [], |
|||
}, |
|||
|
|||
searchJumin: { |
|||
header: [], |
|||
pageNo: 1, |
|||
pageSize: window.localStorage.getItem("pageSize") || 20, |
|||
total: 1, |
|||
list: [], |
|||
}, |
|||
|
|||
searchFangwu: { |
|||
pageNo: 1, |
|||
pageSize: window.localStorage.getItem("pageSize") || 20, |
|||
total: 1, |
|||
list: [], |
|||
}, |
|||
|
|||
searchXuqiu: { |
|||
header: [ |
|||
{ |
|||
label: "状态", |
|||
align: "center", |
|||
columnName: "statusName", |
|||
width: "120", |
|||
options: [ |
|||
{ |
|||
label: "待处理", |
|||
value: "pending", |
|||
}, |
|||
{ |
|||
label: "已取消", |
|||
value: "canceled", |
|||
}, |
|||
{ |
|||
label: "已派单", |
|||
value: "assigned", |
|||
}, |
|||
{ |
|||
label: "已接单", |
|||
value: "have_order", |
|||
}, |
|||
{ |
|||
label: "已完成", |
|||
value: "finished", |
|||
}, |
|||
], |
|||
}, |
|||
{ |
|||
label: "所属网格", |
|||
columnName: "gridName", |
|||
align: "center", |
|||
width: "", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "需求类型", |
|||
columnName: "categoryName", |
|||
align: "center", |
|||
width: "", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "需求内容", |
|||
columnName: "content", |
|||
align: "center", |
|||
width: "", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "上报类型", |
|||
columnName: "reportTypeName", |
|||
align: "center", |
|||
width: "120", |
|||
options: [ |
|||
{ |
|||
label: "社区帮办", |
|||
value: "community", |
|||
}, |
|||
{ |
|||
label: "楼长帮办", |
|||
value: "building_caption", |
|||
}, |
|||
{ |
|||
label: "党员帮办", |
|||
value: "party", |
|||
}, |
|||
{ |
|||
label: "自身上报", |
|||
value: "self_help", |
|||
}, |
|||
], |
|||
}, |
|||
{ |
|||
label: "上报人", |
|||
columnName: "reportUserName", |
|||
align: "center", |
|||
width: "120", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "上报时间", |
|||
columnName: "reportTime", |
|||
align: "center", |
|||
width: "180", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "需求人", |
|||
columnName: "demandUserName", |
|||
align: "center", |
|||
width: "80", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "服务方", |
|||
columnName: "serviceShowName", |
|||
align: "center", |
|||
width: "120", |
|||
options: [], |
|||
}, |
|||
{ |
|||
label: "服务时间", |
|||
columnName: "wantServiceTime", |
|||
align: "center", |
|||
width: "180", |
|||
options: [], |
|||
}, |
|||
], |
|||
pageNo: 1, |
|||
pageSize: window.localStorage.getItem("pageSize") || 20, |
|||
total: 1, |
|||
list: [], |
|||
}, |
|||
|
|||
// 显示人员详情 |
|||
showedPeopleMoreInfo: false, |
|||
|
|||
currentPepeleId: "", |
|||
currentPepeleGridName: "", |
|||
|
|||
// 显示人员详情 |
|||
showedFangwuInfo: false, |
|||
showedXuqiuInfo: false, |
|||
|
|||
noticeList: [ |
|||
// { |
|||
// configId: "20211210153859_f070ac2dd01129da5d9a9f2329fbd9ea1", |
|||
// noticeContent: "市北区-抚顺第二网格中南国际2号楼低保人员超出预警!", |
|||
// }, |
|||
], |
|||
|
|||
currentCategoryCode: "", |
|||
|
|||
currentPage: "chaxun", //查询 预警 |
|||
currentNoticeBuildingId: "", |
|||
currentNoticeConfigId: "", |
|||
houseName: null, |
|||
bindingForm: { |
|||
idCard: null, |
|||
homeId: null, |
|||
}, |
|||
}; |
|||
}, |
|||
computed: { |
|||
selectedFuncList() { |
|||
const { |
|||
selectedFuncIdList, |
|||
$store: { |
|||
state: { sidebarMenuList }, |
|||
}, |
|||
} = this; |
|||
let obj = {}; |
|||
sidebarMenuList.forEach((menu) => { |
|||
if (selectedFuncIdList.indexOf(menu.id) !== -1) { |
|||
obj[menu.id] = { |
|||
menuId: menu.id, |
|||
menuName: menu.name, |
|||
icon: menu.icon, |
|||
url: menu.url, |
|||
}; |
|||
} |
|||
if (menu.children && menu.children.length > 0) { |
|||
menu.children.forEach((item) => { |
|||
if (selectedFuncIdList.indexOf(item.id) !== -1) { |
|||
obj[item.id] = { |
|||
menuId: item.id, |
|||
menuName: item.name, |
|||
icon: item.icon, |
|||
url: item.url, |
|||
}; |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
return selectedFuncIdList.map((id) => obj[id]); |
|||
}, |
|||
maxTableHeight() { |
|||
// return this.clientHeight - 450; |
|||
return 420; |
|||
}, |
|||
...mapGetters(["clientHeight"]), |
|||
}, |
|||
watch: { |
|||
"searchData.keyword": function (val) { |
|||
if (val == "") { |
|||
this.searchStatus = "ini"; |
|||
} |
|||
}, |
|||
}, |
|||
props: { |
|||
bindHouse: { |
|||
type: Object, |
|||
default: {}, |
|||
}, |
|||
}, |
|||
mounted() { |
|||
this.getApiData(); |
|||
console.log( |
|||
"dynamicMenuRoutes----------------------------", |
|||
this.$store.state.sidebarMenuList |
|||
); |
|||
this.bindingForm.idCard = this.bindHouse.idCard; |
|||
}, |
|||
methods: { |
|||
// 选择房屋 |
|||
checkFangwu(val) { |
|||
console.log(val); |
|||
this.bindingForm.homeId = val.houseId; |
|||
this.$confirm("确定绑定此房屋?", "提示", { |
|||
confirmButtonText: "确定", |
|||
cancelButtonText: "取消", |
|||
type: "warning", |
|||
center: true, |
|||
}) |
|||
.then(async () => { |
|||
const url = "/epmetuser/icresiuser/bindHome"; |
|||
const { bindingForm } = this; |
|||
const res = await requestPost(url, bindingForm); |
|||
if (res.code === 0) { |
|||
this.$message.success('房屋绑定成功') |
|||
this.$emit("closeBindHouse"); |
|||
}else{ |
|||
this.$message.error(res.msg) |
|||
} |
|||
}) |
|||
.catch(() => {}); |
|||
}, |
|||
changeCategoryCode({ code }) { |
|||
this.currentCategoryCode = code || ""; |
|||
|
|||
this.warningTb.pageNo = 1; |
|||
this.getWarningTb(); |
|||
}, |
|||
|
|||
computedWidth(label) { |
|||
const wd = 20 * label.length; |
|||
return wd > 80 ? wd : 80; |
|||
}, |
|||
handleFilterSpan(row, item) { |
|||
let _val = ""; |
|||
if (item.options && item.options.length > 0) { |
|||
item.options.forEach((n) => { |
|||
if (n.value === row[item.columnName]) _val = n.label; |
|||
}); |
|||
} |
|||
return _val || row[item.columnName]; |
|||
}, |
|||
|
|||
handleClickSearchBtn() { |
|||
const { |
|||
searchData: { type, keyword }, |
|||
} = this; |
|||
if (!keyword) return this.$message.error("请输入搜索条件"); |
|||
if (type == "fangwu") { |
|||
this.searchFangwu.pageNo = 1; |
|||
this.searchFangwu.total = 0; |
|||
this.getSearchFangwu(); |
|||
} |
|||
this.searchStatus = "ing"; |
|||
}, |
|||
|
|||
handleSizeChangeWarning(val) { |
|||
console.log(`每页 ${val} 条`); |
|||
this.warningTb.pageSize = val; |
|||
window.localStorage.setItem("pageSize", val); |
|||
this.getWarningTb(); |
|||
}, |
|||
handleCurrentChangeWarning(val) { |
|||
console.log(`当前页: ${val}`); |
|||
this.warningTb.pageNo = val; |
|||
this.getWarningTb(); |
|||
}, |
|||
async handleWatchWarning(rowIndex) { |
|||
let item = this.warningTb.list[rowIndex]; |
|||
this.currentPepeleId = item.userId; |
|||
this.currentPepeleGridName = item.gridName; |
|||
await nextTick(); |
|||
this.showedPeopleMoreInfo = true; |
|||
}, |
|||
|
|||
async handleWatchSearchJumin(rowIndex) { |
|||
let item = this.searchJumin.list[rowIndex]; |
|||
this.currentPepeleId = item.icResiUserId; |
|||
this.currentPepeleGridName = item.GRID_ID; |
|||
await nextTick(); |
|||
this.showedPeopleMoreInfo = true; |
|||
}, |
|||
|
|||
handleSizeChangeSearchFangwu(val) { |
|||
console.log(`每页 ${val} 条`); |
|||
this.searchFangwu.pageSize = val; |
|||
window.localStorage.setItem("pageSize", val); |
|||
this.getSearchFangwu(); |
|||
}, |
|||
handleCurrentChangeSearchFangwu(val) { |
|||
console.log(`当前页: ${val}`); |
|||
this.searchFangwu.pageNo = val; |
|||
this.getSearchFangwu(); |
|||
}, |
|||
async handleWatchSearchFangwu(row) { |
|||
this.showedFangwuInfo = true; |
|||
await nextTick(); |
|||
this.$refs.fangwu_info.initForm("detail", row); |
|||
}, |
|||
|
|||
getApiData() { |
|||
this.getWarningTb(); |
|||
}, |
|||
|
|||
async getSearchFangwu() { |
|||
const url = "/gov/org/house/search"; |
|||
const { |
|||
searchData: { keyword }, |
|||
searchFangwu: { pageSize, pageNo }, |
|||
} = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
keyword, |
|||
pageSize, |
|||
pageNo, |
|||
}); |
|||
if (code === 0) { |
|||
console.log("列表请求成功!!!!!!!!!!!!!!"); |
|||
this.searchFangwu.total = data.total || 0; |
|||
this.searchFangwu.list = data.list |
|||
? data.list.map((item) => { |
|||
return item; |
|||
}) |
|||
: []; |
|||
} else { |
|||
} |
|||
}, |
|||
|
|||
async getWarningTb() { |
|||
const url = "/epmetuser/icresiuser/personwarn/rightlist"; |
|||
const { |
|||
warningTb: { pageSize, pageNo }, |
|||
} = this; |
|||
const { data, code, msg } = await requestPost(url, { |
|||
pageSize, |
|||
pageNo, |
|||
categoryCode: this.currentCategoryCode, |
|||
}); |
|||
if (code === 0) { |
|||
console.log("列表请求成功!!!!!!!!!!!!!!"); |
|||
this.warningTb.total = data.total || 0; |
|||
this.warningTb.list = data.list |
|||
? data.list.map((item) => { |
|||
item.typeName = item.type.join("、"); |
|||
return item; |
|||
}) |
|||
: []; |
|||
} else { |
|||
} |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" src="@/assets/scss/modules/search.scss" scoped></style> |
|||
<style lang="scss" scoped> |
|||
.logo { |
|||
font-size: 35px; |
|||
font-weight: bold; |
|||
text-align: center; |
|||
letter-spacing: 3px; |
|||
} |
|||
.binding-house { |
|||
margin: 0 100px 50px; |
|||
span { |
|||
font-size: 20px; |
|||
} |
|||
} |
|||
</style> |
Loading…
Reference in new issue