9 changed files with 2189 additions and 7 deletions
@ -0,0 +1,656 @@ |
|||
<template> |
|||
<div> |
|||
<div v-show="currentPage == 'chaxun'"> |
|||
<div v-show="!showedFuncPanel"> |
|||
<div class="m-info"> |
|||
<div class="wrap"> |
|||
<div class="logo"> |
|||
<span>房屋查询</span> |
|||
</div> |
|||
|
|||
<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] |
|||
}}<i class="el-icon-arrow-down el-icon--right"></i> |
|||
</span> |
|||
<el-dropdown-menu slot="dropdown"> |
|||
<el-dropdown-item command="fangwu">房屋</el-dropdown-item> |
|||
</el-dropdown-menu> |
|||
</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> |
@ -0,0 +1,725 @@ |
|||
<template> |
|||
<div v-if="pageLoading" class="resi-container"> |
|||
<el-card ref="searchCard" class="search-card"> |
|||
<div class=""> |
|||
<el-form ref="searchForm" :inline="true" :model="searchForm" size="small" label-width="100px" class="demo-form-inline"> |
|||
<div> |
|||
<!-- <el-form-item label="所属党组织" prop="partyOrgId"> |
|||
<el-cascader |
|||
v-model="partyOrgRange" |
|||
:options="optionsG" |
|||
:props="partyProps" |
|||
clearable |
|||
@change="handlePartyChange"></el-cascader> |
|||
</el-form-item> --> |
|||
<el-form-item label="姓名" prop="name"> |
|||
<el-input v-model="searchForm.name" placeholder="请输入" class="input-width" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="手机号" prop="mobile"> |
|||
<el-input v-model="searchForm.mobile" placeholder="请输入" class="input-width" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证" prop="idCard"> |
|||
<el-input v-model="searchForm.idCard" placeholder="请输入" class="input-width" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="审核状态" prop="status"> |
|||
<el-select v-model="searchForm.status" filterable :disabled="disabled" placeholder="请选择" class="input-width" clearable> |
|||
<el-option |
|||
v-for="item in zwList" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
|
|||
</el-form-item> |
|||
</div> |
|||
<el-form-item label="申请时间" |
|||
prop="startTime"> |
|||
<el-date-picker v-model="timeRange" |
|||
size="small" |
|||
type="daterange" |
|||
value-format="yyyy-MM-dd" |
|||
@change="handleTimeChange" |
|||
range-separator="至" |
|||
start-placeholder="开始时间" |
|||
end-placeholder="结束时间"> |
|||
</el-date-picker> |
|||
|
|||
</el-form-item> |
|||
|
|||
<el-form-item> |
|||
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button> |
|||
<el-button class="diy-button--reset" size="small" @click="resetForm('searchForm')">重置</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
</el-card> |
|||
<el-card class="resi-card-table"> |
|||
|
|||
<!-- <div class="resi-row-btn"> |
|||
<el-button class="diy-button--add" size="small" @click="handleAdd">批量审核</el-button> |
|||
|
|||
</div> --> |
|||
|
|||
<el-table |
|||
:data="tableData" |
|||
row-key="id" |
|||
v-loading="tableLoading" |
|||
border |
|||
:height="tableHeight" |
|||
style="width: 100%" |
|||
class="resi-table" |
|||
@select="handleSelection" |
|||
> |
|||
<!-- <el-table-column type="selection" align="center" width="50"> |
|||
</el-table-column> --> |
|||
<el-table-column label="序号" type="index" align="center" width="50"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="name" |
|||
label="姓名" |
|||
align="center" |
|||
width="100" |
|||
/> |
|||
<el-table-column |
|||
prop="gender" |
|||
label="性别" |
|||
align="center" |
|||
width="100" |
|||
/> |
|||
<el-table-column |
|||
prop="idCard" |
|||
label="身份证号" |
|||
align="center" |
|||
min-width="180" |
|||
/> |
|||
<el-table-column |
|||
prop="mobile" |
|||
label="手机号" |
|||
align="center" |
|||
min-width="160" |
|||
/> |
|||
<el-table-column |
|||
prop="gridName" |
|||
label="所在网格" |
|||
align="center" |
|||
min-width="160" |
|||
show-overflow-tooltip |
|||
/> |
|||
<el-table-column |
|||
prop="title" |
|||
label="标题" |
|||
align="center" |
|||
show-overflow-tooltip |
|||
min-width="180" |
|||
/> |
|||
<el-table-column |
|||
prop="ruleName" |
|||
label="类别" |
|||
align="center" |
|||
min-width="160" |
|||
/> |
|||
<el-table-column |
|||
prop="createdTime" |
|||
label="申请时间" |
|||
align="center" |
|||
width="160" |
|||
/> |
|||
<el-table-column |
|||
prop="status" |
|||
label="审核状态" |
|||
align="center" |
|||
show-overflow-tooltip |
|||
width="100" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.status == 0">待审核</span> |
|||
<span v-else-if="scope.row.status == 2">已通过</span> |
|||
<span v-else-if="scope.row.status == 1">已驳回</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column fixed="right" label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
@click="handleLook(scope.row)" |
|||
type="text" |
|||
size="small" |
|||
class="btn-color-look" |
|||
>查看</el-button |
|||
> |
|||
<el-button |
|||
v-if="scope.row.status == 0" |
|||
@click="handleEdit(scope.row, 'edit')" |
|||
type="text" |
|||
size="small" |
|||
class="btn-color-edit" |
|||
>审核</el-button |
|||
> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:current-page.sync="currentPage" |
|||
:page-sizes="[20, 50, 100, 200]" |
|||
:page-size="pageSize" |
|||
layout="sizes, prev, pager, next, total" |
|||
:total="total" |
|||
> |
|||
</el-pagination> |
|||
</div> |
|||
</el-card> |
|||
<el-dialog title="审核信息" :visible.sync="dialogFormVisible"> |
|||
<template v-if="!isBatch"> |
|||
<div class="d-title">{{ detailInfo.title }}</div> |
|||
<div class="d-desc">{{ detailInfo.statement }}</div> |
|||
<div class="input-width1" style="display: flex;"> |
|||
<el-image |
|||
v-for="item in detailInfo.annexList" |
|||
:key="item" |
|||
style="width: 100px; height: 100px; margin-right: 10px;" |
|||
:src="item" |
|||
:preview-src-list="detailInfo.annexList"> |
|||
</el-image> |
|||
</div> |
|||
<div class="d-tips">申请人:{{ detailInfo.showName }}</div> |
|||
<div class="d-tips">申请时间:{{ detailInfo.createdTime }}</div> |
|||
<el-divider></el-divider> |
|||
</template> |
|||
<div class=""></div> |
|||
<el-form :model="form"> |
|||
<el-form-item label="申请类别:" :label-width="'100px'"> |
|||
<span>{{ detailInfo.ruleName }}</span> |
|||
</el-form-item> |
|||
<el-form-item label="申请积分:" :label-width="'100px'"> |
|||
<span>{{ detailInfo.pointValue }}</span> |
|||
</el-form-item> |
|||
<el-form-item label="审核状态:" prop="status" :label-width="'100px'"> |
|||
<el-select v-model="form.status" placeholder="请选择" :disabled="disabled" class="input-width"> |
|||
<el-option |
|||
v-for="item in zwLists" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="备注:" prop="remark" :label-width="'100px'"> |
|||
<el-input v-model="form.remark" type="textarea" :disabled="disabled" autocomplete="off" class="input-width"></el-input> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="handlerCancle">取 消</el-button> |
|||
<el-button v-if="!disabled" type="primary" @click="handleSubmit">确 定</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
<el-dialog title="详情" :visible.sync="dialogVisible" width="800px"> |
|||
<el-form :model="detailInfo" inline> |
|||
|
|||
<div> |
|||
<el-form-item label="所属网格:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.gridName}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="姓名:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.name}}</div> |
|||
</el-form-item> |
|||
|
|||
</div> |
|||
<div> |
|||
<!-- <el-form-item label="性别" prop="remark" :label-width="'100px'"> |
|||
<el-input v-model="form.remark" autocomplete="off" class="input-width"></el-input> |
|||
</el-form-item> --> |
|||
<el-form-item label="手机号:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.mobile}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="身份证:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.idCard}}</div> |
|||
</el-form-item> |
|||
</div> |
|||
<div> |
|||
|
|||
<el-form-item label="积分类别:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.ruleName}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="积分分值:" prop="status" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.pointValue}}</div> |
|||
</el-form-item> |
|||
</div> |
|||
<div> |
|||
<el-form-item label="标题:" prop="status" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.title}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="内容:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.statement}}</div> |
|||
</el-form-item> |
|||
|
|||
</div> |
|||
<el-form-item label="附件:" :label-width="'100px'"> |
|||
<div class="input-width1" style="display: flex;"> |
|||
<el-image |
|||
v-for="item in detailInfo.annexList" |
|||
:key="item" |
|||
style="width: 100px; height: 100px; margin-right: 10px;" |
|||
:src="item" |
|||
:preview-src-list="detailInfo.annexList"> |
|||
</el-image> |
|||
</div> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="handlerCancle">关闭</el-button> |
|||
<!-- <el-button type="primary" @click="handleSubmit">确 定</el-button> --> |
|||
</div> |
|||
</el-dialog> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapGetters } from 'vuex' |
|||
export default { |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
dialogFormVisible: false, |
|||
tableLoading: false, |
|||
disabled: false, |
|||
pageLoading: false, |
|||
isBatch: false, |
|||
currentPage: 1, |
|||
pageSize: 20, |
|||
total: null, |
|||
tableData: [], |
|||
searchH: 0, |
|||
addType: 'add', |
|||
optionsG: [], |
|||
zwLists: [ |
|||
{ |
|||
label: '通过', |
|||
value: '2' |
|||
}, |
|||
{ |
|||
label: '驳回', |
|||
value: '1' |
|||
} |
|||
], |
|||
zwList: [ |
|||
{ |
|||
label: '待审核', |
|||
value: '0' |
|||
}, |
|||
{ |
|||
label: '已通过', |
|||
value: '2' |
|||
}, |
|||
{ |
|||
label: '已驳回', |
|||
value: '1' |
|||
} |
|||
], |
|||
selectionList: [], |
|||
tempList: [], |
|||
partyOrgRange: [], |
|||
timeRange: [], |
|||
customerId: '', |
|||
searchForm: { |
|||
// partyOrgId: '', |
|||
mobile: '', |
|||
idCard: '', |
|||
name: '', |
|||
status: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
categoryCode: 'party_building' |
|||
}, |
|||
form: { |
|||
ids: [], |
|||
status: '2', |
|||
remark: '' |
|||
}, |
|||
detailInfo: {}, |
|||
partyProps: { |
|||
label: 'partyOrgName', |
|||
value: 'id', |
|||
checkStrictly: true |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters(['clientHeight', 'iframeHeight']), |
|||
tableHeight() { |
|||
const h = this.clientHeight - this.searchH - 280 + this.iframeHeigh |
|||
const _h = this.clientHeight - 280 - this.searchH |
|||
return this.$store.state.inIframe ? h : _h |
|||
} |
|||
}, |
|||
async created() { |
|||
this.customerId = localStorage.getItem('customerId') |
|||
this.getTableData() |
|||
this.getGridList('query') |
|||
this.pageLoading = true |
|||
|
|||
}, |
|||
|
|||
mounted() { |
|||
|
|||
this.$nextTick(() => { |
|||
this.searchH = this.$refs.searchCard.$el.offsetHeight |
|||
console.log('tableHeight', this.tableHeight) |
|||
}) |
|||
|
|||
}, |
|||
methods: { |
|||
handleSelection(val) { |
|||
this.selectionList = [...val] |
|||
}, |
|||
handleSizeChange(val) { |
|||
console.log(`每页 ${val} 条`) |
|||
this.pageSize = val |
|||
this.getTableData() |
|||
}, |
|||
handleCurrentChange(val) { |
|||
console.log(`当前页: ${val}`) |
|||
this.currentPage = val |
|||
if (this.selectionList.length > 0 && val !== 1) { |
|||
this.tempList = [...this.tempList, ...this.selectionList] |
|||
} |
|||
this.getTableData() |
|||
}, |
|||
handlePartyChange(val) { |
|||
console.log('val------pp', val) |
|||
this.searchForm.partyOrgId = val[val.length - 1] |
|||
}, |
|||
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] |
|||
}, |
|||
handleTimeChange (val) { |
|||
if (val.length > 0) { |
|||
this.searchForm.startTime = val[0] |
|||
this.searchForm.endTime = val[1] |
|||
} else { |
|||
this.searchForm.startTime = '' |
|||
this.searchForm.endTime = '' |
|||
} |
|||
|
|||
}, |
|||
|
|||
handleDelimg(item, index) { |
|||
this.form.imageList.splice(index, 1) |
|||
}, |
|||
handleSearch(val) { |
|||
console.log('searchhh--', val) |
|||
this.currentPage = 1 |
|||
this.getTableData() |
|||
}, |
|||
resetForm(formName) { |
|||
this.timeRange = [] |
|||
this.searchForm.startTime = '' |
|||
this.searchForm.endTime = '' |
|||
this.$refs[formName].resetFields() |
|||
this.handleSearch() |
|||
}, |
|||
handleAdd() { |
|||
if (this.selectionList.length == 0) return this.$message.warning('请选择数据') |
|||
this.dialogFormVisible = true |
|||
}, |
|||
|
|||
handlerCancle() { |
|||
this.detailInfo = {} |
|||
this.selectionList = [] |
|||
this.tempList = [] |
|||
this.disabled = false |
|||
this.form = { |
|||
ids: [], |
|||
status: '2', |
|||
remark: '' |
|||
} |
|||
this.dialogFormVisible = false |
|||
this.dialogVisible = false |
|||
}, |
|||
async handleLook(row) { |
|||
this.disabled = true |
|||
this.isBatch = false |
|||
await this.getDetail(row.id) |
|||
this.dialogFormVisible = true |
|||
}, |
|||
async handleEdit(row, addType) { |
|||
this.form.ids = [row.id] |
|||
this.isBatch = false |
|||
// this.detailInfo = { ...row } |
|||
await this.getDetail(row.id) |
|||
this.dialogFormVisible = true |
|||
}, |
|||
|
|||
handleDel(row) { |
|||
let params = { |
|||
ids: [row.id] |
|||
} |
|||
console.log('row1', row) |
|||
this.$http |
|||
.post('/resi/partymember/icPartyMember/delete', [row.id]) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.$message.success('删除成功') |
|||
this.getTableData() |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
async handleSubmit() { |
|||
|
|||
if (this.form.ids.length == 0) { |
|||
if (this.tempList.length > 0) this.form.ids = Array.from(new Set(this.tempList.map(item => item.id))) |
|||
else this.form.ids = Array.from(new Set(this.selectionList.map(item => item.id))) |
|||
|
|||
} |
|||
this.$http |
|||
.post('/point/apply/examine/submit', this.form) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.$message.success('操作成功') |
|||
this.handlerCancle() |
|||
this.getTableData() |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
async getDetail(id) { |
|||
let params = { |
|||
id, |
|||
} |
|||
this.$http |
|||
.post(`/point/apply/detail/${id}`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.detailInfo = { ...res.data } |
|||
if (this.disabled) { |
|||
this.form.status = res.data.status |
|||
this.form.remark = res.data.remark |
|||
} |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
console.log('row4', err) |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
async getGridList(type, agencyId) { |
|||
const { user } = await this.$store.state |
|||
console.log('user---ppp', user) |
|||
// addorupdate query |
|||
await this.$http |
|||
.get('/resi/partymember/icPartyOrg/getSearchTreelist', { params: {agencyId: agencyId || user.agencyId} }) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
console.log('获取查询详情成功', res.data) |
|||
|
|||
this.optionsG = this.deepArrTOnull(res.data) |
|||
} |
|||
}) |
|||
.catch(() => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
deepArrTOnull(arr) { |
|||
let a = [] |
|||
a = arr.map(item => { |
|||
return { |
|||
...item, |
|||
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null |
|||
} |
|||
}) |
|||
return a |
|||
}, |
|||
async getTableData() { |
|||
this.tableLoading = true |
|||
const { user } = await this.$store.state |
|||
let params = { |
|||
...this.searchForm, |
|||
agencyId: user.agencyId, |
|||
pageNo: this.currentPage, |
|||
pageSize: this.pageSize |
|||
} |
|||
await this.$http |
|||
.post('/point/apply/listall', params) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.tableData = res.data.list |
|||
this.total = res.data.total |
|||
} |
|||
}) |
|||
.catch(() => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
this.tableLoading = false |
|||
} |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/buttonstyle.scss"; |
|||
|
|||
.resi-container .resi-card-table { |
|||
::v-deep .el-table th { |
|||
color: #fff; |
|||
background-color: rgba(33, 149, 254, 1); |
|||
// border-right: 1px solid rgba(33, 149, 254, 1); |
|||
} |
|||
} |
|||
.resi-table { |
|||
::v-deep .el-button--text { |
|||
text-decoration: underline; |
|||
} |
|||
::v-deep .btn-color-del { |
|||
margin-left: 10px; |
|||
color: rgba(213, 16, 16, 1); |
|||
} |
|||
::v-deep .btn-color-edit { |
|||
color: rgba(0, 167, 169, 1); |
|||
} |
|||
} |
|||
.input-width { |
|||
width: 200px; |
|||
|
|||
} |
|||
.form-wr { |
|||
.input-width { |
|||
width: 260px; |
|||
|
|||
} |
|||
.input-width-textarea { |
|||
width: 500px; |
|||
} |
|||
.imsg-list { |
|||
display: flex; |
|||
align-items: center; |
|||
.imgs-item { |
|||
position: relative; |
|||
margin-right: 10px; |
|||
.el-icon-delete { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
font-size: 18px; |
|||
color: red; |
|||
z-index: 3; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.div-content { |
|||
width: 100%; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.d-title { |
|||
text-align: center; |
|||
font-size: 18px; |
|||
} |
|||
.d-desc { |
|||
margin: 10px 0; |
|||
// font-size: ; |
|||
text-indent: 2em; |
|||
line-height: 16px; |
|||
} |
|||
.d-tips { |
|||
color: #999; |
|||
margin-top: 10px; |
|||
} |
|||
</style> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.resi-row-btn { |
|||
display: flex; |
|||
margin-bottom: 13px; |
|||
::v-deep .el-button { |
|||
// margin-left: 10px; |
|||
border: 0; |
|||
} |
|||
::v-deep .el-select { |
|||
margin-right: 10px; |
|||
} |
|||
.el-button--success { |
|||
background: rgba(34, 193, 195, 1); |
|||
} |
|||
.el-button { |
|||
margin-left: 10px; |
|||
border: 0; |
|||
} |
|||
.el-button--success { |
|||
background: rgba(34, 193, 195, 1); |
|||
} |
|||
.el-button--warning { |
|||
background: rgba(254, 179, 73, 1); |
|||
} |
|||
.el-button--danger { |
|||
background: rgba(254, 98, 82, 1); |
|||
} |
|||
} |
|||
.avatar-uploader { |
|||
::v-deep |
|||
.el-upload { |
|||
cursor: pointer; |
|||
position: relative; |
|||
overflow: hidden; |
|||
} |
|||
.el-upload:hover { |
|||
border-color: #409EFF; |
|||
} |
|||
.avatar { |
|||
width: 100px; |
|||
height: 100px; |
|||
display: block; |
|||
} |
|||
.avatar-uploader-icon { |
|||
border: 1px dashed #d9d9d9; |
|||
border-radius: 6px; |
|||
font-size: 28px; |
|||
color: #8c939d; |
|||
width: 100px; |
|||
height: 100px; |
|||
line-height: 100px; |
|||
text-align: center; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
.resi-btns { |
|||
margin-top: 20px; |
|||
text-align: center; |
|||
} |
|||
.input-width1 { |
|||
width: 250px; |
|||
} |
|||
</style> |
@ -0,0 +1,728 @@ |
|||
<template> |
|||
<div v-if="pageLoading" class="resi-container"> |
|||
<el-card ref="searchCard" class="search-card"> |
|||
<div class=""> |
|||
<el-form ref="searchForm" :inline="true" :model="searchForm" size="small" label-width="100px" class="demo-form-inline"> |
|||
<div> |
|||
<!-- <el-form-item label="所属党组织" prop="partyOrgId"> |
|||
<el-cascader |
|||
v-model="partyOrgRange" |
|||
:options="optionsG" |
|||
:props="partyProps" |
|||
clearable |
|||
@change="handlePartyChange"></el-cascader> |
|||
</el-form-item> --> |
|||
<el-form-item label="姓名" prop="name"> |
|||
<el-input v-model="searchForm.name" placeholder="请输入" class="input-width" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="手机号" prop="mobile"> |
|||
<el-input v-model="searchForm.mobile" placeholder="请输入" class="input-width" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证" prop="idCard"> |
|||
<el-input v-model="searchForm.idCard" placeholder="请输入" class="input-width" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="审核状态" prop="status"> |
|||
<el-select v-model="searchForm.status" filterable :disabled="disabled" placeholder="请选择" class="input-width" clearable> |
|||
<el-option |
|||
v-for="item in zwList" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
|
|||
</el-form-item> |
|||
</div> |
|||
<el-form-item label="申请时间" |
|||
prop="startTime"> |
|||
<el-date-picker v-model="timeRange" |
|||
size="small" |
|||
type="daterange" |
|||
value-format="yyyy-MM-dd" |
|||
@change="handleTimeChange" |
|||
range-separator="至" |
|||
start-placeholder="开始时间" |
|||
end-placeholder="结束时间"> |
|||
</el-date-picker> |
|||
|
|||
</el-form-item> |
|||
|
|||
<el-form-item> |
|||
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button> |
|||
<el-button class="diy-button--reset" size="small" @click="resetForm('searchForm')">重置</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
</el-card> |
|||
<el-card class="resi-card-table"> |
|||
|
|||
<!-- <div class="resi-row-btn"> |
|||
<el-button class="diy-button--add" size="small" @click="handleAdd">批量审核</el-button> |
|||
|
|||
</div> --> |
|||
|
|||
<el-table |
|||
:data="tableData" |
|||
row-key="id" |
|||
v-loading="tableLoading" |
|||
border |
|||
:height="tableHeight" |
|||
style="width: 100%" |
|||
class="resi-table" |
|||
@select="handleSelection" |
|||
> |
|||
<!-- <el-table-column type="selection" align="center" width="50"> |
|||
</el-table-column> --> |
|||
<el-table-column label="序号" type="index" align="center" width="50"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="name" |
|||
label="姓名" |
|||
align="center" |
|||
width="100" |
|||
/> |
|||
<el-table-column |
|||
prop="gender" |
|||
label="性别" |
|||
align="center" |
|||
width="100" |
|||
/> |
|||
<el-table-column |
|||
prop="idCard" |
|||
label="身份证号" |
|||
align="center" |
|||
min-width="180" |
|||
/> |
|||
<el-table-column |
|||
prop="mobile" |
|||
label="手机号" |
|||
align="center" |
|||
min-width="160" |
|||
/> |
|||
<el-table-column |
|||
prop="gridName" |
|||
label="所在网格" |
|||
align="center" |
|||
min-width="160" |
|||
show-overflow-tooltip |
|||
/> |
|||
<el-table-column |
|||
prop="title" |
|||
label="标题" |
|||
align="center" |
|||
show-overflow-tooltip |
|||
min-width="180" |
|||
/> |
|||
<el-table-column |
|||
prop="ruleName" |
|||
label="类别" |
|||
align="center" |
|||
min-width="160" |
|||
/> |
|||
<el-table-column |
|||
prop="createdTime" |
|||
label="申请时间" |
|||
align="center" |
|||
width="160" |
|||
/> |
|||
<el-table-column |
|||
prop="status" |
|||
label="审核状态" |
|||
align="center" |
|||
show-overflow-tooltip |
|||
width="100" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.status == 0">待审核</span> |
|||
<span v-else-if="scope.row.status == 2">已通过</span> |
|||
<span v-else-if="scope.row.status == 1">已驳回</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column fixed="right" label="操作" align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button |
|||
@click="handleLook(scope.row)" |
|||
type="text" |
|||
size="small" |
|||
class="btn-color-look" |
|||
>查看</el-button |
|||
> |
|||
<el-button |
|||
v-if="scope.row.status == 0" |
|||
@click="handleEdit(scope.row, 'edit')" |
|||
type="text" |
|||
size="small" |
|||
class="btn-color-edit" |
|||
>审核</el-button |
|||
> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<div> |
|||
<el-pagination |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
:current-page.sync="currentPage" |
|||
:page-sizes="[20, 50, 100, 200]" |
|||
:page-size="pageSize" |
|||
layout="sizes, prev, pager, next, total" |
|||
:total="total" |
|||
> |
|||
</el-pagination> |
|||
</div> |
|||
</el-card> |
|||
<el-dialog title="审核信息" :visible.sync="dialogFormVisible"> |
|||
<template v-if="!isBatch"> |
|||
<div class="d-title">{{ detailInfo.title }}</div> |
|||
<div class="d-desc">{{ detailInfo.statement }}</div> |
|||
<div class="input-width1" style="display: flex;"> |
|||
<el-image |
|||
v-for="item in detailInfo.annexList" |
|||
:key="item" |
|||
style="width: 100px; height: 100px; margin-right: 10px;" |
|||
:src="item" |
|||
:preview-src-list="detailInfo.annexList"> |
|||
</el-image> |
|||
</div> |
|||
<div class="d-tips">申请人:{{ detailInfo.showName }}</div> |
|||
<div class="d-tips">申请时间:{{ detailInfo.createdTime }}</div> |
|||
<el-divider></el-divider> |
|||
</template> |
|||
<div class=""></div> |
|||
<el-form :model="form"> |
|||
<el-form-item label="申请类别:" :label-width="'100px'"> |
|||
<span>{{ detailInfo.ruleName }}</span> |
|||
</el-form-item> |
|||
<el-form-item label="申请积分:" :label-width="'100px'"> |
|||
<span>{{ detailInfo.pointValue }}</span> |
|||
</el-form-item> |
|||
<el-form-item label="审核状态:" prop="status" :label-width="'100px'"> |
|||
<el-select v-model="form.status" placeholder="请选择" :disabled="disabled" class="input-width"> |
|||
<el-option |
|||
v-for="item in zwLists" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="备注:" prop="remark" :label-width="'100px'"> |
|||
<el-input v-model="form.remark" type="textarea" :disabled="disabled" autocomplete="off" class="input-width"></el-input> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="handlerCancle">取 消</el-button> |
|||
<el-button v-if="!disabled" type="primary" @click="handleSubmit">确 定</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
<el-dialog title="详情" :visible.sync="dialogVisible" width="800px"> |
|||
<el-form :model="detailInfo" inline> |
|||
|
|||
<div> |
|||
<el-form-item label="所属网格:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.gridName}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="姓名:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.name}}</div> |
|||
</el-form-item> |
|||
|
|||
</div> |
|||
<div> |
|||
<!-- <el-form-item label="性别" prop="remark" :label-width="'100px'"> |
|||
<el-input v-model="form.remark" autocomplete="off" class="input-width"></el-input> |
|||
</el-form-item> --> |
|||
<el-form-item label="手机号:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.mobile}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="身份证:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.idCard}}</div> |
|||
</el-form-item> |
|||
</div> |
|||
<div> |
|||
|
|||
<el-form-item label="积分类别:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.ruleName}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="积分分值:" prop="status" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.pointValue}}</div> |
|||
</el-form-item> |
|||
</div> |
|||
<div> |
|||
<el-form-item label="标题:" prop="status" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.title}}</div> |
|||
</el-form-item> |
|||
<el-form-item label="内容:" :label-width="'100px'"> |
|||
<div class="input-width1">{{detailInfo.statement}}</div> |
|||
</el-form-item> |
|||
|
|||
</div> |
|||
<el-form-item label="附件:" :label-width="'100px'"> |
|||
<div class="input-width1" style="display: flex;"> |
|||
<el-image |
|||
v-for="item in detailInfo.annexList" |
|||
:key="item" |
|||
style="width: 100px; height: 100px; margin-right: 10px;" |
|||
:src="item" |
|||
:preview-src-list="detailInfo.annexList"> |
|||
</el-image> |
|||
</div> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="handlerCancle">关闭</el-button> |
|||
<!-- <el-button type="primary" @click="handleSubmit">确 定</el-button> --> |
|||
</div> |
|||
</el-dialog> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { mapGetters } from 'vuex' |
|||
export default { |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
dialogFormVisible: false, |
|||
tableLoading: false, |
|||
disabled: false, |
|||
pageLoading: false, |
|||
currentPage: 1, |
|||
pageSize: 20, |
|||
total: null, |
|||
tableData: [], |
|||
searchH: 0, |
|||
addType: 'add', |
|||
optionsG: [], |
|||
zwLists: [ |
|||
{ |
|||
label: '通过', |
|||
value: '2' |
|||
}, |
|||
{ |
|||
label: '驳回', |
|||
value: '1' |
|||
} |
|||
], |
|||
zwList: [ |
|||
{ |
|||
label: '待审核', |
|||
value: '0' |
|||
}, |
|||
{ |
|||
label: '已通过', |
|||
value: '2' |
|||
}, |
|||
{ |
|||
label: '已驳回', |
|||
value: '1' |
|||
} |
|||
], |
|||
selectionList: [], |
|||
tempList: [], |
|||
partyOrgRange: [], |
|||
timeRange: [], |
|||
customerId: '', |
|||
isBatch: false, |
|||
searchForm: { |
|||
// partyOrgId: '', |
|||
mobile: '', |
|||
idCard: '', |
|||
name: '', |
|||
status: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
categoryCode: 'moral_education' |
|||
}, |
|||
form: { |
|||
ids: [], |
|||
status: '2', |
|||
remark: '' |
|||
}, |
|||
detailInfo: {}, |
|||
partyProps: { |
|||
label: 'partyOrgName', |
|||
value: 'id', |
|||
checkStrictly: true |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters(['clientHeight', 'iframeHeight']), |
|||
tableHeight() { |
|||
const h = this.clientHeight - this.searchH - 280 + this.iframeHeigh |
|||
const _h = this.clientHeight - 280 - this.searchH |
|||
return this.$store.state.inIframe ? h : _h |
|||
} |
|||
}, |
|||
async created() { |
|||
this.customerId = localStorage.getItem('customerId') |
|||
this.getTableData() |
|||
this.getGridList('query') |
|||
this.pageLoading = true |
|||
|
|||
}, |
|||
|
|||
mounted() { |
|||
|
|||
this.$nextTick(() => { |
|||
this.searchH = this.$refs.searchCard.$el.offsetHeight |
|||
console.log('tableHeight', this.tableHeight) |
|||
}) |
|||
|
|||
}, |
|||
methods: { |
|||
handleSelection(val) { |
|||
this.selectionList = [...val] |
|||
}, |
|||
handleSizeChange(val) { |
|||
console.log(`每页 ${val} 条`) |
|||
this.pageSize = val |
|||
this.getTableData() |
|||
}, |
|||
handleCurrentChange(val) { |
|||
console.log(`当前页: ${val}`) |
|||
this.currentPage = val |
|||
if (this.selectionList.length > 0 && val !== 1) { |
|||
this.tempList = [...this.tempList, ...this.selectionList] |
|||
} |
|||
this.getTableData() |
|||
}, |
|||
handlePartyChange(val) { |
|||
console.log('val------pp', val) |
|||
this.searchForm.partyOrgId = val[val.length - 1] |
|||
}, |
|||
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] |
|||
}, |
|||
handleTimeChange (val) { |
|||
if (val.length > 0) { |
|||
this.searchForm.startTime = val[0] |
|||
this.searchForm.endTime = val[1] |
|||
} else { |
|||
this.searchForm.startTime = '' |
|||
this.searchForm.endTime = '' |
|||
} |
|||
|
|||
}, |
|||
|
|||
handleDelimg(item, index) { |
|||
this.form.imageList.splice(index, 1) |
|||
}, |
|||
handleSearch(val) { |
|||
console.log('searchhh--', val) |
|||
this.currentPage = 1 |
|||
this.getTableData() |
|||
}, |
|||
resetForm(formName) { |
|||
this.timeRange = [] |
|||
this.searchForm.startTime = '' |
|||
this.searchForm.endTime = '' |
|||
this.$refs[formName].resetFields() |
|||
this.handleSearch() |
|||
}, |
|||
handleAdd() { |
|||
if (this.selectionList.length == 0) return this.$message.warning('请选择数据') |
|||
this.isBatch = true |
|||
this.dialogFormVisible = true |
|||
}, |
|||
|
|||
handlerCancle() { |
|||
this.detailInfo = {} |
|||
this.selectionList = [] |
|||
this.tempList = [] |
|||
this.disabled = false |
|||
this.isBatch = false |
|||
this.form = { |
|||
ids: [], |
|||
status: '2', |
|||
remark: '' |
|||
} |
|||
this.dialogFormVisible = false |
|||
this.dialogVisible = false |
|||
}, |
|||
async handleLook(row) { |
|||
this.disabled = true |
|||
this.isBatch = false |
|||
await this.getDetail(row.id) |
|||
this.dialogFormVisible = true |
|||
}, |
|||
async handleEdit(row, addType) { |
|||
this.form.ids = [row.id] |
|||
this.isBatch = false |
|||
// this.detailInfo = { ...row } |
|||
await this.getDetail(row.id) |
|||
this.dialogFormVisible = true |
|||
}, |
|||
|
|||
handleDel(row) { |
|||
let params = { |
|||
ids: [row.id] |
|||
} |
|||
console.log('row1', row) |
|||
this.$http |
|||
.post('/resi/partymember/icPartyMember/delete', [row.id]) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.$message.success('删除成功') |
|||
this.getTableData() |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
async handleSubmit() { |
|||
|
|||
if (this.form.ids.length == 0) { |
|||
if (this.tempList.length > 0) this.form.ids = Array.from(new Set(this.tempList.map(item => item.id))) |
|||
else this.form.ids = Array.from(new Set(this.selectionList.map(item => item.id))) |
|||
|
|||
} |
|||
this.$http |
|||
.post('/point/apply/examine/submit', this.form) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.$message.success('操作成功') |
|||
this.handlerCancle() |
|||
this.getTableData() |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
async getDetail(id) { |
|||
let params = { |
|||
id, |
|||
} |
|||
this.$http |
|||
.post(`/point/apply/detail/${id}`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.detailInfo = { ...res.data } |
|||
if (this.disabled) { |
|||
this.form.status = res.data.status |
|||
this.form.remark = res.data.remark |
|||
} |
|||
|
|||
// this.dialogVisible = true |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
console.log('row4', err) |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
async getGridList(type, agencyId) { |
|||
const { user } = await this.$store.state |
|||
console.log('user---ppp', user) |
|||
// addorupdate query |
|||
await this.$http |
|||
.get('/resi/partymember/icPartyOrg/getSearchTreelist', { params: {agencyId: agencyId || user.agencyId} }) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
console.log('获取查询详情成功', res.data) |
|||
|
|||
this.optionsG = this.deepArrTOnull(res.data) |
|||
} |
|||
}) |
|||
.catch(() => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
}, |
|||
deepArrTOnull(arr) { |
|||
let a = [] |
|||
a = arr.map(item => { |
|||
return { |
|||
...item, |
|||
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null |
|||
} |
|||
}) |
|||
return a |
|||
}, |
|||
async getTableData() { |
|||
this.tableLoading = true |
|||
const { user } = await this.$store.state |
|||
let params = { |
|||
...this.searchForm, |
|||
agencyId: user.agencyId, |
|||
pageNo: this.currentPage, |
|||
pageSize: this.pageSize |
|||
} |
|||
await this.$http |
|||
.post('/point/apply/listall', params) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} else { |
|||
this.tableData = res.data.list |
|||
this.total = res.data.total |
|||
} |
|||
}) |
|||
.catch(() => { |
|||
return this.$message.error('网络错误') |
|||
}) |
|||
this.tableLoading = false |
|||
} |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/buttonstyle.scss"; |
|||
|
|||
.resi-container .resi-card-table { |
|||
::v-deep .el-table th { |
|||
color: #fff; |
|||
background-color: rgba(33, 149, 254, 1); |
|||
// border-right: 1px solid rgba(33, 149, 254, 1); |
|||
} |
|||
} |
|||
.resi-table { |
|||
::v-deep .el-button--text { |
|||
text-decoration: underline; |
|||
} |
|||
::v-deep .btn-color-del { |
|||
margin-left: 10px; |
|||
color: rgba(213, 16, 16, 1); |
|||
} |
|||
::v-deep .btn-color-edit { |
|||
color: rgba(0, 167, 169, 1); |
|||
} |
|||
} |
|||
.input-width { |
|||
width: 200px; |
|||
|
|||
} |
|||
.form-wr { |
|||
.input-width { |
|||
width: 260px; |
|||
|
|||
} |
|||
.input-width-textarea { |
|||
width: 500px; |
|||
} |
|||
.imsg-list { |
|||
display: flex; |
|||
align-items: center; |
|||
.imgs-item { |
|||
position: relative; |
|||
margin-right: 10px; |
|||
.el-icon-delete { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0; |
|||
font-size: 18px; |
|||
color: red; |
|||
z-index: 3; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.div-content { |
|||
width: 100%; |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
white-space: nowrap; |
|||
} |
|||
.d-title { |
|||
text-align: center; |
|||
font-size: 18px; |
|||
} |
|||
.d-desc { |
|||
margin: 10px 0; |
|||
// font-size: ; |
|||
text-indent: 2em; |
|||
line-height: 16px; |
|||
} |
|||
.d-tips { |
|||
color: #999; |
|||
margin-top: 10px; |
|||
} |
|||
</style> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.resi-row-btn { |
|||
display: flex; |
|||
margin-bottom: 13px; |
|||
::v-deep .el-button { |
|||
// margin-left: 10px; |
|||
border: 0; |
|||
} |
|||
::v-deep .el-select { |
|||
margin-right: 10px; |
|||
} |
|||
.el-button--success { |
|||
background: rgba(34, 193, 195, 1); |
|||
} |
|||
.el-button { |
|||
margin-left: 10px; |
|||
border: 0; |
|||
} |
|||
.el-button--success { |
|||
background: rgba(34, 193, 195, 1); |
|||
} |
|||
.el-button--warning { |
|||
background: rgba(254, 179, 73, 1); |
|||
} |
|||
.el-button--danger { |
|||
background: rgba(254, 98, 82, 1); |
|||
} |
|||
} |
|||
.avatar-uploader { |
|||
::v-deep |
|||
.el-upload { |
|||
cursor: pointer; |
|||
position: relative; |
|||
overflow: hidden; |
|||
} |
|||
.el-upload:hover { |
|||
border-color: #409EFF; |
|||
} |
|||
.avatar { |
|||
width: 100px; |
|||
height: 100px; |
|||
display: block; |
|||
} |
|||
.avatar-uploader-icon { |
|||
border: 1px dashed #d9d9d9; |
|||
border-radius: 6px; |
|||
font-size: 28px; |
|||
color: #8c939d; |
|||
width: 100px; |
|||
height: 100px; |
|||
line-height: 100px; |
|||
text-align: center; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
.resi-btns { |
|||
margin-top: 20px; |
|||
text-align: center; |
|||
} |
|||
.input-width1 { |
|||
width: 250px; |
|||
} |
|||
</style> |
Loading…
Reference in new issue