11 changed files with 1766 additions and 927 deletions
@ -0,0 +1,531 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div class="dialog-h-content scroll-h"> |
||||
|
<el-form ref="ref_form" |
||||
|
:inline="true" |
||||
|
:model="dataForm" |
||||
|
:rules="dataRule" |
||||
|
:disabled="formType === 'detail'" |
||||
|
class="form"> |
||||
|
<el-form-item label="组织名称 " |
||||
|
prop="organizationName" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="请输入组织名称 " |
||||
|
v-model="dataForm.organizationName"> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="分类名称 " |
||||
|
prop="categoryCode" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-select v-model="dataForm.categoryCode" |
||||
|
placeholder="请选择" |
||||
|
clearable> |
||||
|
<el-option v-for="item in categoryList" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="组织人数 " |
||||
|
prop="organizationPersonCount" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
type="number" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="请输入组织人数 " |
||||
|
v-model="dataForm.organizationPersonCount"> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="组织成员 " |
||||
|
prop="organizationPersonnel" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<div class="m-staffs"> |
||||
|
<div class="item" |
||||
|
:key="'staff' + index" |
||||
|
v-for="(item, index) in dataForm.organizationPersonnel"> |
||||
|
<el-input class="item_width_1" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="成员姓名" |
||||
|
v-model="item.personName" /> |
||||
|
|
||||
|
<el-input style="margin-left: 10px" |
||||
|
class="item_width_1" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="联系电话" |
||||
|
v-model="item.personPhone" /> |
||||
|
|
||||
|
<el-button style="margin-left: 10px" |
||||
|
size="small" |
||||
|
@click="handleDelStaff(index)">删除</el-button> |
||||
|
</div> |
||||
|
|
||||
|
<div class="item-add"> |
||||
|
<el-button size="small" |
||||
|
@click="handleAddStaff">添加</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="服务事项" |
||||
|
prop="serviceItem" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
type="textarea" |
||||
|
maxlength="1000" |
||||
|
show-word-limit |
||||
|
:rows="3" |
||||
|
placeholder="请输入服务事项,不超过1000字" |
||||
|
v-model="dataForm.serviceItem"></el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="负责人 " |
||||
|
prop="principalName" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="请输入负责人 " |
||||
|
v-model="dataForm.principalName"> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="联系电话 " |
||||
|
prop="principalPhone" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
maxlength="50" |
||||
|
show-word-limit |
||||
|
placeholder="请输入联系电话 " |
||||
|
v-model="dataForm.principalPhone"> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="创建时间" |
||||
|
prop="organizationCreatedTime" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-date-picker v-model="dataForm.organizationCreatedTime" |
||||
|
placeholder="创建时间" |
||||
|
value-format="yyyy-MM-dd"> |
||||
|
</el-date-picker> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="位置坐标" |
||||
|
prop="longitude" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<div style="width: 500px"> |
||||
|
<el-input class="item_width_4" |
||||
|
maxlength="50" |
||||
|
placeholder="请输入关键字" |
||||
|
v-model="dataForm.address"> |
||||
|
</el-input> |
||||
|
<el-button style="margin-left: 10px" |
||||
|
type="primary" |
||||
|
size="small" |
||||
|
@click="handleSearchMap">查询</el-button> |
||||
|
<div id="app" |
||||
|
class="div_map"></div> |
||||
|
<div style="margin-top: 10px"> |
||||
|
<span>经度</span> |
||||
|
<el-input class="item_width_3" |
||||
|
maxlength="50" |
||||
|
placeholder="请输入经度" |
||||
|
v-model="dataForm.longitude"> |
||||
|
</el-input> |
||||
|
<span style="margin-left: 20px">纬度</span> |
||||
|
<el-input class="item_width_3" |
||||
|
maxlength="50" |
||||
|
placeholder="请输入纬度" |
||||
|
v-model="dataForm.latitude"> |
||||
|
</el-input> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="备注" |
||||
|
prop="remark" |
||||
|
label-width="150px" |
||||
|
style="display: block"> |
||||
|
<el-input class="item_width_1" |
||||
|
type="textarea" |
||||
|
maxlength="500" |
||||
|
show-word-limit |
||||
|
:rows="3" |
||||
|
placeholder="请输入备注,不超过500字" |
||||
|
v-model="dataForm.remark"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
<div class="div_btn resi-btns"> |
||||
|
<el-button size="small" |
||||
|
@click="handleCancle">取 消</el-button> |
||||
|
<el-button v-if="formType != 'detail'" |
||||
|
type="primary" |
||||
|
size="small" |
||||
|
:disabled="btnDisable" |
||||
|
@click="handleComfirm">确 定</el-button> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { mapGetters } from "vuex"; |
||||
|
import { Loading } from "element-ui"; // 引入Loading服务 |
||||
|
import { requestPost } from "@/js/dai/request"; |
||||
|
import formVltHelper from "dai-js/tools/formVltHelper"; |
||||
|
|
||||
|
var map; |
||||
|
var search; |
||||
|
var markers; |
||||
|
var infoWindowList; |
||||
|
let loading; // 加载动画 |
||||
|
|
||||
|
export default { |
||||
|
data () { |
||||
|
return { |
||||
|
formType: "add", //表单操作类型 add新增,edit编辑,detail详情 |
||||
|
|
||||
|
btnDisable: false, |
||||
|
|
||||
|
orgId: "", |
||||
|
dataForm: { |
||||
|
organizationName: "", |
||||
|
categoryCode: "", |
||||
|
serviceItem: "", |
||||
|
organizationPersonCount: "", |
||||
|
principalName: "", |
||||
|
principalPhone: "", |
||||
|
organizationCreatedTime: "", |
||||
|
address: "", |
||||
|
remark: "", |
||||
|
longitude: "", |
||||
|
latitude: "", |
||||
|
organizationPersonnel: [], |
||||
|
}, |
||||
|
categoryList: [], |
||||
|
}; |
||||
|
}, |
||||
|
components: {}, |
||||
|
computed: { |
||||
|
dataRule () { |
||||
|
return { |
||||
|
organizationName: [ |
||||
|
{ required: true, message: "组织名称 不能为空", trigger: "blur" }, |
||||
|
{ |
||||
|
min: 1, |
||||
|
max: 50, |
||||
|
message: "组织名称 长度在 1 到 50个字符", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
categoryCode: [ |
||||
|
{ required: true, message: "分类名称不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
organizationPersonCount: [ |
||||
|
{ required: true, message: "组织人数不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
serviceItem: [ |
||||
|
{ required: true, message: "服务事项不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
principalName: [ |
||||
|
{ required: true, message: "负责人不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
principalPhone: [ |
||||
|
{ required: true, message: "联系电话不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
longitude: [ |
||||
|
{ required: true, message: "位置坐标不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
}, |
||||
|
props: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async created () { |
||||
|
this.getCategoryList(); |
||||
|
}, |
||||
|
async mounted () { |
||||
|
this.initMap(); |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
async getCategoryList () { |
||||
|
const url = "/sys/dict/data/dictlist"; |
||||
|
const params = { |
||||
|
dictType: "self_org_category", |
||||
|
}; |
||||
|
const { data, code, msg } = await requestPost(url, params); |
||||
|
if (code === 0) { |
||||
|
this.categoryList = data; |
||||
|
} else { |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}, |
||||
|
handleAddStaff () { |
||||
|
this.dataForm.organizationPersonnel = [ |
||||
|
...this.dataForm.organizationPersonnel, |
||||
|
{ personName: "", personPhone: "" }, |
||||
|
]; |
||||
|
}, |
||||
|
handleDelStaff (index) { |
||||
|
const { organizationPersonnel } = this.dataForm; |
||||
|
organizationPersonnel.splice(index, 1); |
||||
|
this.dataForm.organizationPersonnel = organizationPersonnel; |
||||
|
}, |
||||
|
// 地图初始化函数,本例取名为init,开发者可根据实际情况定义 |
||||
|
initMap () { |
||||
|
// 定义地图中心点坐标 |
||||
|
var center = new window.TMap.LatLng(36.0722275, 120.38945519); |
||||
|
// 定义map变量,调用 TMap.Map() 构造函数创建地图 |
||||
|
map = new window.TMap.Map(document.getElementById("app"), { |
||||
|
center: center, // 设置地图中心点坐标 |
||||
|
zoom: 17.2, // 设置地图缩放级别 |
||||
|
pitch: 43.5, // 设置俯仰角 |
||||
|
rotation: 45, // 设置地图旋转角度 |
||||
|
}); |
||||
|
|
||||
|
search = new window.TMap.service.Search({ pageSize: 10 }); |
||||
|
// 新建一个地点搜索类 |
||||
|
markers = new TMap.MultiMarker({ |
||||
|
map: map, |
||||
|
geometries: [], |
||||
|
}); |
||||
|
infoWindowList = Array(10); |
||||
|
|
||||
|
// 监听地图平移结束 |
||||
|
map.on("panend", () => { |
||||
|
this.handleMoveCenter(); |
||||
|
}); |
||||
|
this.handleMoveCenter(); |
||||
|
}, |
||||
|
|
||||
|
setMarker (lat, lng) { |
||||
|
markers.setGeometries([]); |
||||
|
markers.add([ |
||||
|
{ |
||||
|
id: "4", |
||||
|
styleId: "marker", |
||||
|
position: new TMap.LatLng(lat, lng), |
||||
|
properties: { |
||||
|
title: "marker4", |
||||
|
}, |
||||
|
}, |
||||
|
]); |
||||
|
}, |
||||
|
|
||||
|
handleSearchMap () { |
||||
|
infoWindowList.forEach((infoWindow) => { |
||||
|
infoWindow.close(); |
||||
|
}); |
||||
|
infoWindowList.length = 0; |
||||
|
markers.setGeometries([]); |
||||
|
// 在地图显示范围内以给定的关键字搜索地点 |
||||
|
search |
||||
|
.searchRectangle({ |
||||
|
keyword: this.dataForm.address, |
||||
|
bounds: map.getBounds(), |
||||
|
}) |
||||
|
.then((result) => { |
||||
|
let { data } = result; |
||||
|
if (Array.isArray(data) && data.length > 0) { |
||||
|
const { |
||||
|
location: { lat, lng }, |
||||
|
} = data[0]; |
||||
|
map.setCenter(new TMap.LatLng(lat, lng)); |
||||
|
this.setMarker(lat, lng); |
||||
|
this.dataForm.latitude = lat; |
||||
|
this.dataForm.longitude = lng; |
||||
|
} else { |
||||
|
this.$message.error("未检索到相关位置坐标"); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
handleMoveCenter () { |
||||
|
//修改地图中心点 |
||||
|
const center = map.getCenter(); |
||||
|
const lat = center.getLat(); |
||||
|
const lng = center.getLng(); |
||||
|
this.dataForm.latitude = lat; |
||||
|
this.dataForm.longitude = lng; |
||||
|
this.setMarker(lat, lng); |
||||
|
}, |
||||
|
|
||||
|
async initForm (type, row) { |
||||
|
this.$refs.ref_form.resetFields(); |
||||
|
|
||||
|
this.formType = type; |
||||
|
console.log(row); |
||||
|
if (row) { |
||||
|
this.dataForm = { ...this.dataForm, ...row }; |
||||
|
this.orgId = this.dataForm.orgId; |
||||
|
map.setCenter(new TMap.LatLng(row.latitude, row.longitude)); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async handleComfirm () { |
||||
|
this.btnDisable = true; |
||||
|
setTimeout(() => { |
||||
|
this.btnDisable = false; |
||||
|
}, 10000); |
||||
|
this.$refs["ref_form"].validate((valid, messageObj) => { |
||||
|
if (!valid) { |
||||
|
app.util.validateRule(messageObj); |
||||
|
this.btnDisable = false; |
||||
|
} else { |
||||
|
// if (!formVltHelper.userOrMobile(this.dataForm.principalPhone)) { |
||||
|
// return this.$message({ |
||||
|
// type: "error", |
||||
|
// message: "手机号格式有误", |
||||
|
// }); |
||||
|
// } |
||||
|
const { |
||||
|
dataForm: { organizationPersonnel }, |
||||
|
} = this; |
||||
|
let vlt = organizationPersonnel.every((item) => { |
||||
|
return ( |
||||
|
item.personName && |
||||
|
item.personPhone |
||||
|
); |
||||
|
}); |
||||
|
if (!vlt) { |
||||
|
return this.$message({ |
||||
|
type: "error", |
||||
|
message: "成员姓名/手机号为空", |
||||
|
}); |
||||
|
} |
||||
|
this.submit(); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
async submit () { |
||||
|
let url = ""; |
||||
|
if (this.formType === "add") { |
||||
|
url = "/heart/iccommunityselforganization/addcommunityselforganization"; |
||||
|
// url = "http://yapi.elinkservice.cn/mock/245/gov/org/neighborhood/neighborhoodadd" |
||||
|
} else { |
||||
|
url = |
||||
|
"/heart/iccommunityselforganization/editcommunityselforganization"; |
||||
|
|
||||
|
this.dataForm.orgId = this.orgId; |
||||
|
} |
||||
|
|
||||
|
const { data, code, msg } = await requestPost(url, this.dataForm); |
||||
|
|
||||
|
if (code === 0) { |
||||
|
this.$message({ |
||||
|
type: "success", |
||||
|
message: "操作成功", |
||||
|
}); |
||||
|
this.resetData(); |
||||
|
this.$emit("dialogOk"); |
||||
|
this.btnDisable = false; |
||||
|
} else { |
||||
|
this.btnDisable = false; |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
handleCancle () { |
||||
|
this.resetData(); |
||||
|
this.$emit("dialogCancle"); |
||||
|
}, |
||||
|
resetData () { |
||||
|
this.orgId = ""; |
||||
|
this.dataForm = { |
||||
|
organizationName: "", |
||||
|
serviceItem: "", |
||||
|
organizationPersonCount: "", |
||||
|
categoryCode: "", |
||||
|
principalName: "", |
||||
|
principalPhone: "", |
||||
|
organizationCreatedTime: "", |
||||
|
address: "", |
||||
|
remark: "", |
||||
|
longitude: "", |
||||
|
latitude: "", |
||||
|
organizationPersonnel: [], |
||||
|
}; |
||||
|
}, |
||||
|
// 开启加载动画 |
||||
|
startLoading () { |
||||
|
loading = Loading.service({ |
||||
|
lock: true, // 是否锁定 |
||||
|
text: "正在加载……", // 加载中需要显示的文字 |
||||
|
background: "rgba(0,0,0,.7)", // 背景颜色 |
||||
|
}); |
||||
|
}, |
||||
|
// 结束加载动画 |
||||
|
endLoading () { |
||||
|
// clearTimeout(timer); |
||||
|
if (loading) { |
||||
|
loading.close(); |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.item_width_1 { |
||||
|
width: 500px; |
||||
|
} |
||||
|
.item_width_2 { |
||||
|
width: 400px; |
||||
|
} |
||||
|
.item_width_3 { |
||||
|
margin-left: 10px; |
||||
|
width: 200px; |
||||
|
} |
||||
|
.item_width_4 { |
||||
|
width: 200px; |
||||
|
} |
||||
|
|
||||
|
.div_map { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
|
||||
|
.div_btn { |
||||
|
// display: flex; |
||||
|
// justify-content: flex-end; |
||||
|
} |
||||
|
.el-tabs { |
||||
|
margin: 0 20px; |
||||
|
} |
||||
|
.el-upload__tip { |
||||
|
color: rgb(155, 155, 155); |
||||
|
margin: 0; |
||||
|
} |
||||
|
.form { |
||||
|
margin-top: 30px; |
||||
|
} |
||||
|
|
||||
|
.m-staffs { |
||||
|
width: 468px; |
||||
|
.item { |
||||
|
display: flex; |
||||
|
justify-content: space-around; |
||||
|
margin-bottom: 7px; |
||||
|
} |
||||
|
.item-add { |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -1,104 +1,215 @@ |
|||||
<template> |
<template> |
||||
<div> |
<div> |
||||
<base-page |
<base-page |
||||
:searchParams="searchParams" |
:searchParams="searchParams" |
||||
:tableParams="tableParams" |
:tableParams="tableParams" |
||||
:tableUrl="tableUrl" |
:tableUrl="tableUrl" |
||||
:addUrl="addUrl" |
:addUrl="addUrl" |
||||
:editUrl="editUrl" |
:editUrl="editUrl" |
||||
:delUrl="delUrl" |
:delUrl="delUrl" |
||||
:exportUrl="exportUrl" |
:infoUrl="infoUrl" |
||||
:editParams="editParams" |
:exportUrl="exportUrl" |
||||
></base-page> |
:importUrl="importUrl" |
||||
</div> |
:mubanUrl="mubanUrl" |
||||
</template> |
:editParams="editParams" |
||||
|
idName="enterpriseId" |
||||
<script> |
></base-page> |
||||
import basePage from "@/views/modules/cpts/base/index"; |
</div> |
||||
|
</template> |
||||
export default { |
|
||||
props: {}, |
<script> |
||||
|
import basePage from "@/views/modules/cpts/base/index"; |
||||
data() { |
|
||||
return { |
export default { |
||||
searchParams: [ |
props: {}, |
||||
{ |
|
||||
field: "服务类别", |
data() { |
||||
keyName: "serviceType", |
return { |
||||
type: "select", |
searchParams: [ |
||||
optionUrl: "/sys/dict/data/dictlist", |
{ field: "场所名称", keyName: "placeOrgName", type: "input" }, |
||||
optionUrlParams: { |
{ field: "联系电话", keyName: "mobile", type: "input" }, |
||||
dictType: "ic_service_type", |
{ |
||||
}, |
field: "场所区域", |
||||
optionList: [], |
keyName: "gridId", |
||||
}, |
type: "select", |
||||
{ field: "服务组织", keyName: "orgName", type: "input" }, |
optionUrl: "/gov/org/customergrid/gridoption", |
||||
{ field: "服务地址", keyName: "address", type: "input" }, |
optionUrlParams: { |
||||
{ field: "备注", keyName: "remark", type: "input" }, |
agencyId: this.$store.state.user.agencyId, |
||||
], |
purpose: "query", |
||||
|
}, |
||||
tableParams: [ |
optionList: [], |
||||
{ field: "序号", keyName: "", type: "no" }, |
}, |
||||
{ field: "服务类别", keyName: "serviceType", type: "text" }, |
{ |
||||
{ field: "服务组织名称", keyName: "orgName", type: "text" }, |
field: "场所类型", |
||||
{ field: "服务地址", keyName: "address", type: "text" }, |
keyName: "placeType", |
||||
{ field: "备注", keyName: "remark", type: "text" }, |
type: "select", |
||||
], |
optionUrl: "/gov/org/coverage/dict-select-list/enterprise_patrol", |
||||
tableUrl: "/heart/icServiceOrg/list", |
optionUrlParams: {}, |
||||
exportUrl: "/gov/project/icEvent/export", |
optionList: [], |
||||
|
}, |
||||
editParams: [ |
{ |
||||
{ |
field: "规模", |
||||
field: "服务类别", |
keyName: "scale", |
||||
keyName: "serviceType", |
type: "select", |
||||
type: "select", |
optionUrl: "/sys/dict/data/dictlist", |
||||
optionUrl: "/sys/dict/data/dictlist", |
optionUrlParams: { |
||||
optionUrlParams: { |
dictType: "scale", |
||||
dictType: "ic_service_type", |
}, |
||||
}, |
optionList: [], |
||||
optionList: [], |
}, |
||||
editDisabled: true, |
{ |
||||
rules: [ |
field: "巡查结果", |
||||
{ required: true, message: "服务类别不能为空", trigger: "blur" }, |
keyName: "result", |
||||
], |
type: "select", |
||||
}, |
optionUrl: "", |
||||
{ |
optionUrlParams: {}, |
||||
field: "服务组织", |
optionList: [ |
||||
keyName: "orgName", |
{ |
||||
type: "input", |
value: "0", |
||||
maxlength: 100, |
label: "合格", |
||||
editDisabled: true, |
}, |
||||
rules: [ |
{ |
||||
{ |
value: "0", |
||||
required: true, |
label: "不合格", |
||||
message: "服务组织名称不能为空", |
}, |
||||
trigger: "blur", |
], |
||||
}, |
}, |
||||
], |
{ field: "隐患明细", keyName: "detailed", type: "input" }, |
||||
}, |
], |
||||
{ |
|
||||
field: "服务地址", |
tableParams: [ |
||||
keyName: "address", |
{ field: "序号", keyName: "", type: "no" }, |
||||
type: "address", |
{ field: "场所名称", keyName: "placeOrgName", type: "text" }, |
||||
supKeys: ["longitude", "latitude"], |
{ field: "场所地址", keyName: "address", type: "text" }, |
||||
supValues: ["", ""], |
{ field: "场所类型", keyName: "placeType", type: "text" }, |
||||
}, |
{ field: "规模", keyName: "scale", type: "text" }, |
||||
{ field: "备注", keyName: "remark", type: "input" }, |
{ field: "负责人", keyName: "personInCharge", type: "text" }, |
||||
], |
{ field: "联系电话", keyName: "mobile", type: "text" }, |
||||
|
{ field: "最新检查时间", keyName: "remark", type: "text" }, |
||||
addUrl: "/heart/icServiceOrg/add", |
{ field: "最新结果", keyName: "result", type: "text" }, |
||||
editUrl: "/heart/icServiceOrg/edit", |
], |
||||
delUrl: "/heart/icServiceOrg/del", |
tableUrl: "/gov/org/enterprise/list", |
||||
}; |
mubanUrl: "/gov/org/enterprise/download-tem", |
||||
}, |
importUrl: "/gov/org/enterprise/import", |
||||
components: { basePage }, |
exportUrl: "/gov/org/enterprise/export", |
||||
computed: {}, |
|
||||
watch: {}, |
addUrl: "/gov/org/enterprise/addOrUpdate", |
||||
|
editUrl: "/gov/org/enterprise/addOrUpdate", |
||||
async mounted() {}, |
infoUrl: "/gov/org/enterprise/detail/", |
||||
|
delUrl: "/gov/org/enterprise/delete/", |
||||
methods: {}, |
|
||||
}; |
editParams: [ |
||||
</script> |
{ |
||||
|
field: "场所类型", |
||||
<style lang="scss" scoped></style> |
keyName: "placeType", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/enterprise_patrol", |
||||
|
optionUrlParams: { |
||||
|
// dictType: "ic_service_type", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ required: true, message: "场所类型不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所区域", |
||||
|
keyName: "gridId", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/customergrid/gridoption", |
||||
|
optionUrlParams: { |
||||
|
agencyId: this.$store.state.user.agencyId, |
||||
|
purpose: "query", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ required: true, message: "场所区域不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所名称", |
||||
|
keyName: "placeOrgName", |
||||
|
type: "input", |
||||
|
maxlength: 100, |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "场所名称不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "规模", |
||||
|
keyName: "scale", |
||||
|
type: "select", |
||||
|
optionUrl: "/sys/dict/data/dictlist", |
||||
|
optionUrlParams: { |
||||
|
dictType: "scale", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: false, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "规模不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "负责人", |
||||
|
keyName: "personInCharge", |
||||
|
type: "input", |
||||
|
|
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "负责人不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "联系电话", |
||||
|
keyName: "mobile", |
||||
|
type: "input", |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "联系电话不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所地址", |
||||
|
keyName: "address", |
||||
|
type: "address", |
||||
|
supKeys: ["longitude", "latitude"], |
||||
|
supValues: ["", ""], |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "场所地址坐标不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
|
|||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["anzhibangjiao"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,788 @@ |
|||||
|
<template> |
||||
|
<div class="resi-container"> |
||||
|
<el-card ref="searchCard" class="search-card"> |
||||
|
<el-form |
||||
|
ref="searchForm" |
||||
|
:inline="true" |
||||
|
:model="fmData" |
||||
|
:label-width="'100px'" |
||||
|
class="demo-form-inline" |
||||
|
> |
||||
|
<div> |
||||
|
<el-form-item prop="gridId" label="所属网格"> |
||||
|
<div class="resi-cell-value"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.gridId" |
||||
|
placeholder="请选择网格" |
||||
|
size="small" |
||||
|
clearable |
||||
|
class="resi-cell-select" |
||||
|
@change="handleChangeGrid" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in optionsG" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="所属房屋"> |
||||
|
<div class="resi-cell-value"> |
||||
|
<div class="resi-cell-col"> |
||||
|
<el-form-item prop="villageId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.villageId" |
||||
|
placeholder="请选择小区" |
||||
|
size="small" |
||||
|
clearable |
||||
|
class="resi-cell-select" |
||||
|
@change="handleChangeV" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in optionsV" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item prop="buildId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.buildId" |
||||
|
placeholder="楼号" |
||||
|
size="small" |
||||
|
clearable |
||||
|
:disabled="changeVDisabled" |
||||
|
class="resi-cell-select resi-cell-select-middle" |
||||
|
@change="handleChangeB" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in optionsB" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item prop="unitId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.unitId" |
||||
|
placeholder="单元" |
||||
|
size="small" |
||||
|
clearable |
||||
|
:disabled="changeBDisabled" |
||||
|
class="resi-cell-select resi-cell-select-middle" |
||||
|
@change="handleChangeD" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in optionsD" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item prop="homeId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.homeId" |
||||
|
placeholder="房号" |
||||
|
size="small" |
||||
|
clearable |
||||
|
:disabled="changeDDisabled" |
||||
|
class="resi-cell-select resi-cell-select-middle" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in optionsH" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<el-form-item label="姓名" prop="name"> |
||||
|
<el-input |
||||
|
v-model="fmData.name" |
||||
|
class="resi-cell-input" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入" |
||||
|
> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="手机号" prop="mobile"> |
||||
|
<el-input |
||||
|
v-model="fmData.mobile" |
||||
|
class="resi-cell-input" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入" |
||||
|
> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="身份证号" prop="idCard"> |
||||
|
<el-input |
||||
|
v-model="fmData.idCard" |
||||
|
class="resi-cell-input" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入" |
||||
|
> |
||||
|
</el-input> |
||||
|
</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> |
||||
|
</div> |
||||
|
</el-form> |
||||
|
</el-card> |
||||
|
<el-card class="resi-card-table"> |
||||
|
<div class="resi-row-btn"> |
||||
|
<el-button @click="handleChu" class="diy-button--reset" size="small" |
||||
|
>导出</el-button |
||||
|
> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="tableData" |
||||
|
border |
||||
|
style="width: 100%" |
||||
|
class="resi-table" |
||||
|
:height="tableHeight" |
||||
|
> |
||||
|
<el-table-column |
||||
|
label="序号" |
||||
|
fixed="left" |
||||
|
type="index" |
||||
|
align="center" |
||||
|
width="50" |
||||
|
/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="GRID_ID" |
||||
|
align="center" |
||||
|
label="所属网格" |
||||
|
min-width="160" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="HOME_ID" |
||||
|
label="所属家庭" |
||||
|
align="center" |
||||
|
min-width="160" |
||||
|
:show-overflow-tooltip="true" |
||||
|
/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="NAME" |
||||
|
align="center" |
||||
|
label="姓名" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="MOBILE" |
||||
|
width="140" |
||||
|
align="center" |
||||
|
label="手机号" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="GENDER" align="center" width="60" label="性别"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="ID_CARD" |
||||
|
align="center" |
||||
|
min-width="160" |
||||
|
label="身份证号" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="BIRTHDAY" |
||||
|
align="center" |
||||
|
label="出生日期" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="REMARKS" |
||||
|
align="center" |
||||
|
label="备注" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column fixed="right" label="操作" align="center" width="120"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button |
||||
|
@click="handleWatch(scope.$index)" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
>查看</el-button |
||||
|
> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
<div> |
||||
|
<el-pagination |
||||
|
@size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentChange" |
||||
|
:current-page.sync="pageNo" |
||||
|
:page-sizes="[20, 50, 100, 200]" |
||||
|
:page-size="parseInt(pageSize)" |
||||
|
layout="sizes, prev, pager, next, total" |
||||
|
:total="total" |
||||
|
> |
||||
|
</el-pagination> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
|
||||
|
<people-more |
||||
|
v-if="showedPeopleMoreInfo && currentPepeleId" |
||||
|
:userId="currentPepeleId" |
||||
|
:gridName="currentPepeleGridName" |
||||
|
@close="showedPeopleMoreInfo = false" |
||||
|
/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { requestPost } from "@/js/dai/request"; |
||||
|
import nextTick from "dai-js/tools/nextTick"; |
||||
|
import { mapGetters } from "vuex"; |
||||
|
import peopleMore from "@/views/modules/shequ/cpts/people-more"; |
||||
|
|
||||
|
export default { |
||||
|
props: { |
||||
|
elseParams: { |
||||
|
type: Array, |
||||
|
default: () => [], |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
components: { peopleMore }, |
||||
|
data() { |
||||
|
return { |
||||
|
openSearch: false, |
||||
|
|
||||
|
formShow: false, |
||||
|
formTitle: "", |
||||
|
|
||||
|
pageNo: 1, |
||||
|
pageSize: window.localStorage.getItem("pageSize") || 20, |
||||
|
total: 1, |
||||
|
|
||||
|
tableData: [], |
||||
|
|
||||
|
optionsV: [], |
||||
|
optionsB: [], |
||||
|
optionsH: [], |
||||
|
optionsD: [], |
||||
|
optionsG: [], |
||||
|
|
||||
|
optionsWelfare: [ |
||||
|
{ |
||||
|
value: "1", |
||||
|
label: "是", |
||||
|
}, |
||||
|
{ |
||||
|
value: "0", |
||||
|
label: "否", |
||||
|
}, |
||||
|
], |
||||
|
|
||||
|
fmData: { |
||||
|
gridId: "", |
||||
|
villageId: "", |
||||
|
buildId: "", |
||||
|
unitId: "", |
||||
|
homeId: "", |
||||
|
name: "", |
||||
|
mobile: "", |
||||
|
idCard: "", |
||||
|
}, |
||||
|
rangeTime: [], |
||||
|
|
||||
|
searchH: 0, |
||||
|
tableHeight: 0, |
||||
|
|
||||
|
// 显示人员详情 |
||||
|
showedPeopleMoreInfo: false, |
||||
|
|
||||
|
currentPepeleId: "", |
||||
|
currentPepeleGridName: "", |
||||
|
}; |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters(["clientHeight", "iframeHeight"]), |
||||
|
maxTableHeight() { |
||||
|
console.log("computed-searchH---", this.searchH); |
||||
|
const h = this.clientHeight - this.searchH + this.iframeHeight; |
||||
|
const _h = this.clientHeight - this.searchH; |
||||
|
console.log("computed-searchH---_h", _h); |
||||
|
return this.$store.state.inIframe ? h : _h; |
||||
|
}, |
||||
|
|
||||
|
changeVDisabled() { |
||||
|
return !this.fmData.villageId; |
||||
|
}, |
||||
|
changeBDisabled() { |
||||
|
return !this.fmData.buildId; |
||||
|
}, |
||||
|
changeDDisabled() { |
||||
|
return !this.fmData.unitId; |
||||
|
}, |
||||
|
}, |
||||
|
watch: { |
||||
|
rangeTime: function (val) { |
||||
|
console.log("val----", val); |
||||
|
if (Array.isArray(val) && val.length == 2) { |
||||
|
this.fmData.startTime = val[0]; |
||||
|
this.fmData.endTime = val[1]; |
||||
|
} else { |
||||
|
this.fmData.startTime = ""; |
||||
|
this.fmData.endTime = ""; |
||||
|
} |
||||
|
}, |
||||
|
searchH() { |
||||
|
const h = this.clientHeight - this.searchH + this.iframeHeight; |
||||
|
const _h = this.clientHeight - this.searchH; |
||||
|
console.log("computed-searchH---_h", _h); |
||||
|
|
||||
|
this.$nextTick(() => { |
||||
|
this.tableHeight = this.$store.state.inIframe ? h : _h; |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.getGridList(); |
||||
|
this.getValiheList(); |
||||
|
this.getTableData(); |
||||
|
this.searchH = this.$refs.searchCard.$el.offsetHeight + 270; |
||||
|
console.log("searchH----", this.$refs.searchCard.$el.offsetHeight); |
||||
|
}, |
||||
|
methods: { |
||||
|
async handleWatch(rowIndex) { |
||||
|
let item = this.tableData[rowIndex]; |
||||
|
this.currentPepeleId = item.icResiUserId; |
||||
|
this.currentPepeleGridName = item.GRID_ID; |
||||
|
await nextTick(); |
||||
|
this.showedPeopleMoreInfo = true; |
||||
|
}, |
||||
|
|
||||
|
handleClearVillage() { |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
}, |
||||
|
handleClearBuild() { |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
}, |
||||
|
handleClearDan() { |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
}, |
||||
|
handleChangeGrid(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.villageId = ""; |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getValiheList(); |
||||
|
}, |
||||
|
handleChangeV(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getBuildList(); |
||||
|
}, |
||||
|
handleChangeB(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getUniList(); |
||||
|
}, |
||||
|
handleChangeD(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getHouseList(); |
||||
|
}, |
||||
|
|
||||
|
getGridList() { |
||||
|
const { user } = this.$store.state; |
||||
|
this.$http |
||||
|
.post("/gov/org/customergrid/gridoption", { |
||||
|
agencyId: user.agencyId, |
||||
|
purpose: "query", |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsG = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getValiheList() { |
||||
|
const { user } = this.$store.state; |
||||
|
this.$http |
||||
|
.post("/gov/org/icneighborhood/neighborhoodoption", { |
||||
|
gridId: this.fmData.gridId, |
||||
|
agencyId: "", |
||||
|
// agencyId: user.agencyId |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsV = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getBuildList() { |
||||
|
this.$http |
||||
|
.post("/gov/org/icbuilding/buildingoption", { |
||||
|
neighborHoodId: this.fmData.villageId, |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsB = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getUniList() { |
||||
|
this.$http |
||||
|
.post("/gov/org/icbuildingunit/unitoption", { |
||||
|
buildingId: this.fmData.buildId, |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsD = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getHouseList() { |
||||
|
this.$http |
||||
|
.post("/gov/org/ichouse/houseoption", { unitId: this.fmData.unitId }) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsH = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
handleSizeChange(val) { |
||||
|
console.log(`每页 ${val} 条`); |
||||
|
this.pageSize = val; |
||||
|
window.localStorage.setItem("pageSize", val); |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
handleCurrentChange(val) { |
||||
|
console.log(`当前页: ${val}`); |
||||
|
this.pageNo = val; |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
|
||||
|
handleClose() { |
||||
|
this.formShow = false; |
||||
|
}, |
||||
|
handleSearch(val) { |
||||
|
console.log(this.fmData); |
||||
|
this.pageNo = 1; |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
resetForm(formName) { |
||||
|
this.$refs[formName].resetFields(); |
||||
|
this.handleSearch(); |
||||
|
}, |
||||
|
|
||||
|
computeQueryParams() { |
||||
|
const { elseParams, fmData } = this; |
||||
|
|
||||
|
return { |
||||
|
formCode: "resi_base_info", |
||||
|
pageNo: 1, |
||||
|
pageSize: 20, |
||||
|
conditions: [ |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "GRID_ID", |
||||
|
columnValue: [fmData.gridId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "VILLAGE_ID", |
||||
|
columnValue: [fmData.villageId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "BUILD_ID", |
||||
|
columnValue: [fmData.buildId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "UNIT_ID", |
||||
|
columnValue: [fmData.unitId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "HOME_ID", |
||||
|
columnValue: [fmData.homeId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "like", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "NAME", |
||||
|
columnValue: [fmData.name], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "like", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "MOBILE", |
||||
|
columnValue: [fmData.mobile], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "like", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "ID_CARD", |
||||
|
columnValue: [fmData.idCard], |
||||
|
}, |
||||
|
...elseParams, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
async handleChu() { |
||||
|
const url = "/epmetuser/icMoveIn/export"; |
||||
|
const { pageSize, pageNo } = this; |
||||
|
await this.$http({ |
||||
|
method: "POST", |
||||
|
url, |
||||
|
responseType: "blob", |
||||
|
data: { |
||||
|
pageSize, |
||||
|
pageNo, |
||||
|
...this.computeQueryParams(), |
||||
|
}, |
||||
|
}) |
||||
|
.then((res) => { |
||||
|
console.log("res----dddd", res); |
||||
|
this.formatData(res); |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
console.log("err", err); |
||||
|
this.exportLoading = false; |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
formatData(res) { |
||||
|
const fileReader = new FileReader(); |
||||
|
fileReader.onloadend = () => { |
||||
|
try { |
||||
|
const jsonData = JSON.parse(fileReader.result); // 说明是普通对象数据,后台转换失败 |
||||
|
// 后台信息 |
||||
|
console.log("jsonData---1", jsonData); |
||||
|
return this.$message.error(jsonData.msg); |
||||
|
} catch (err) { |
||||
|
// 解析成对象失败,说明是正常的文件流 |
||||
|
// 下载文件 |
||||
|
console.log("errr-----", err, this); |
||||
|
this.downloadFile(res); |
||||
|
} |
||||
|
}; |
||||
|
fileReader.readAsText(res.data); |
||||
|
}, |
||||
|
downloadFile(res) { |
||||
|
if (res.headers["content-disposition"]) { |
||||
|
let fileName = window.decodeURI( |
||||
|
res.headers["content-disposition"].split(";")[1].split("=")[1] |
||||
|
); |
||||
|
console.log("filename", fileName); |
||||
|
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); |
||||
|
var url = window.URL.createObjectURL(blob); |
||||
|
var aLink = document.createElement("a"); |
||||
|
aLink.style.display = "none"; |
||||
|
aLink.href = url; |
||||
|
aLink.setAttribute("download", fileName); |
||||
|
document.body.appendChild(aLink); |
||||
|
aLink.click(); |
||||
|
document.body.removeChild(aLink); //下载完成移除元素 |
||||
|
window.URL.revokeObjectURL(url); //释放掉blob对象 |
||||
|
this.$message.success("导出成功"); |
||||
|
this.$emit("close"); |
||||
|
} else this.$message.error("下载失败"); |
||||
|
}, |
||||
|
|
||||
|
async getTableData() { |
||||
|
const url = "/epmetuser/icresiuser/listresi"; |
||||
|
const { pageSize, pageNo, fmData } = this; |
||||
|
const { data, code, msg } = await requestPost(url, { |
||||
|
pageSize, |
||||
|
pageNo, |
||||
|
...this.computeQueryParams(), |
||||
|
}); |
||||
|
if (code === 0) { |
||||
|
console.log("列表请求成功!!!!!!!!!!!!!!"); |
||||
|
this.total = data.total || 0; |
||||
|
this.tableData = data.list |
||||
|
? data.list.map((item) => { |
||||
|
return item; |
||||
|
}) |
||||
|
: []; |
||||
|
} else { |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</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; |
||||
|
} |
||||
|
} |
||||
|
.resi-card-table { |
||||
|
margin-top: 20px; |
||||
|
} |
||||
|
.resi-row-btn { |
||||
|
margin-bottom: 13px; |
||||
|
.upload-btn { |
||||
|
display: inline-block; |
||||
|
margin: 0 10px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.resi-btns { |
||||
|
margin-top: 20px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
.resi-container .resi-card { |
||||
|
position: relative; |
||||
|
overflow: visible; |
||||
|
} |
||||
|
|
||||
|
.demo-form-inline { |
||||
|
// display: flex; |
||||
|
// align-items: center; |
||||
|
// margin-bottom: 20px; |
||||
|
|
||||
|
.resi-cell-label { |
||||
|
flex-shrink: 0; |
||||
|
min-width: 0; |
||||
|
box-sizing: border-box; |
||||
|
margin-right: 15px; |
||||
|
// text-align: right; |
||||
|
// line-height: 32; |
||||
|
} |
||||
|
.resi-cell-label1 { |
||||
|
width: max-content; |
||||
|
} |
||||
|
.resi-cell-value-radio { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
min-height: 32px; |
||||
|
} |
||||
|
.resi-cell-input { |
||||
|
width: 200px; |
||||
|
} |
||||
|
.resi-cell--daterange { |
||||
|
max-width: 260px; |
||||
|
} |
||||
|
.resi-cell-select { |
||||
|
width: 200px; |
||||
|
box-sizing: border-box; |
||||
|
margin-right: 10px; |
||||
|
&-middle { |
||||
|
width: 120px; |
||||
|
} |
||||
|
&-small { |
||||
|
width: 88px; |
||||
|
} |
||||
|
} |
||||
|
.resi-cell-select:last-child { |
||||
|
margin-right: 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.mt10 { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["buliangqingshaonian"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["shequjiaozheng"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["xidurenyuan"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["xiejiaorenyuan"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -1,840 +1,35 @@ |
|||||
<template> |
<template> |
||||
<div class="resi-container"> |
<div> |
||||
<el-card ref="searchCard" class="search-card"> |
<base-page :elseParams="elseParams"></base-page> |
||||
<el-form |
|
||||
ref="searchForm" |
|
||||
:inline="true" |
|
||||
:model="fmData" |
|
||||
:label-width="'100px'" |
|
||||
class="demo-form-inline" |
|
||||
> |
|
||||
<div> |
|
||||
<el-form-item prop="gridId" label="所属网格"> |
|
||||
<div class="resi-cell-value"> |
|
||||
<el-select |
|
||||
v-model.trim="fmData.gridId" |
|
||||
placeholder="请选择网格" |
|
||||
size="small" |
|
||||
clearable |
|
||||
class="resi-cell-select" |
|
||||
@change="handleChangeGrid" |
|
||||
> |
|
||||
<el-option |
|
||||
v-for="item in optionsG" |
|
||||
:key="item.value" |
|
||||
:label="item.label" |
|
||||
:value="item.value" |
|
||||
> |
|
||||
</el-option> |
|
||||
</el-select> |
|
||||
</div> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="所属房屋"> |
|
||||
<div class="resi-cell-value"> |
|
||||
<div class="resi-cell-col"> |
|
||||
<el-form-item prop="villageId"> |
|
||||
<el-select |
|
||||
v-model.trim="fmData.villageId" |
|
||||
placeholder="请选择小区" |
|
||||
size="small" |
|
||||
clearable |
|
||||
class="resi-cell-select" |
|
||||
@change="handleChangeV" |
|
||||
> |
|
||||
<el-option |
|
||||
v-for="item in optionsV" |
|
||||
:key="item.value" |
|
||||
:label="item.label" |
|
||||
:value="item.value" |
|
||||
> |
|
||||
</el-option> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
<el-form-item prop="buildId"> |
|
||||
<el-select |
|
||||
v-model.trim="fmData.buildId" |
|
||||
placeholder="楼号" |
|
||||
size="small" |
|
||||
clearable |
|
||||
:disabled="changeVDisabled" |
|
||||
class="resi-cell-select resi-cell-select-middle" |
|
||||
@change="handleChangeB" |
|
||||
> |
|
||||
<el-option |
|
||||
v-for="item in optionsB" |
|
||||
:key="item.value" |
|
||||
:label="item.label" |
|
||||
:value="item.value" |
|
||||
> |
|
||||
</el-option> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
<el-form-item prop="unitId"> |
|
||||
<el-select |
|
||||
v-model.trim="fmData.unitId" |
|
||||
placeholder="单元" |
|
||||
size="small" |
|
||||
clearable |
|
||||
:disabled="changeBDisabled" |
|
||||
class="resi-cell-select resi-cell-select-middle" |
|
||||
@change="handleChangeD" |
|
||||
> |
|
||||
<el-option |
|
||||
v-for="item in optionsD" |
|
||||
:key="item.value" |
|
||||
:label="item.label" |
|
||||
:value="item.value" |
|
||||
> |
|
||||
</el-option> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
<el-form-item prop="homeId"> |
|
||||
<el-select |
|
||||
v-model.trim="fmData.homeId" |
|
||||
placeholder="房号" |
|
||||
size="small" |
|
||||
clearable |
|
||||
:disabled="changeDDisabled" |
|
||||
class="resi-cell-select resi-cell-select-middle" |
|
||||
> |
|
||||
<el-option |
|
||||
v-for="item in optionsH" |
|
||||
:key="item.value" |
|
||||
:label="item.label" |
|
||||
:value="item.value" |
|
||||
> |
|
||||
</el-option> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</div> |
|
||||
</div> |
|
||||
</el-form-item> |
|
||||
</div> |
|
||||
|
|
||||
<div> |
|
||||
<el-form-item label="姓名" prop="name"> |
|
||||
<el-input |
|
||||
v-model="fmData.name" |
|
||||
class="resi-cell-input" |
|
||||
size="small" |
|
||||
clearable |
|
||||
placeholder="请输入" |
|
||||
> |
|
||||
</el-input> |
|
||||
</el-form-item> |
|
||||
|
|
||||
<el-form-item label="手机号" prop="mobile"> |
|
||||
<el-input |
|
||||
v-model="fmData.mobile" |
|
||||
class="resi-cell-input" |
|
||||
size="small" |
|
||||
clearable |
|
||||
placeholder="请输入" |
|
||||
> |
|
||||
</el-input> |
|
||||
</el-form-item> |
|
||||
|
|
||||
<el-form-item label="身份证号" prop="idCard"> |
|
||||
<el-input |
|
||||
v-model="fmData.idCard" |
|
||||
class="resi-cell-input" |
|
||||
size="small" |
|
||||
clearable |
|
||||
placeholder="请输入" |
|
||||
> |
|
||||
</el-input> |
|
||||
</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> |
|
||||
</div> |
|
||||
</el-form> |
|
||||
</el-card> |
|
||||
<el-card class="resi-card-table"> |
|
||||
<div class="resi-row-btn"> |
|
||||
<el-button @click="handleChu" class="diy-button--reset" size="small" |
|
||||
>导出</el-button |
|
||||
> |
|
||||
</div> |
|
||||
<el-table |
|
||||
:data="tableData" |
|
||||
border |
|
||||
style="width: 100%" |
|
||||
class="resi-table" |
|
||||
:height="tableHeight" |
|
||||
> |
|
||||
<el-table-column |
|
||||
label="序号" |
|
||||
fixed="left" |
|
||||
type="index" |
|
||||
align="center" |
|
||||
width="50" |
|
||||
/> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="GRID_ID" |
|
||||
align="center" |
|
||||
label="所属网格" |
|
||||
min-width="160" |
|
||||
:show-overflow-tooltip="true" |
|
||||
> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="HOME_ID" |
|
||||
label="所属家庭" |
|
||||
align="center" |
|
||||
min-width="160" |
|
||||
:show-overflow-tooltip="true" |
|
||||
/> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="NAME" |
|
||||
align="center" |
|
||||
label="姓名" |
|
||||
:show-overflow-tooltip="true" |
|
||||
> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="MOBILE" |
|
||||
width="140" |
|
||||
align="center" |
|
||||
label="手机号" |
|
||||
:show-overflow-tooltip="true" |
|
||||
> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column prop="GENDER" align="center" width="60" label="性别"> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="ID_CARD" |
|
||||
align="center" |
|
||||
min-width="160" |
|
||||
label="身份证号" |
|
||||
:show-overflow-tooltip="true" |
|
||||
> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="BIRTHDAY" |
|
||||
align="center" |
|
||||
label="出生日期" |
|
||||
:show-overflow-tooltip="true" |
|
||||
> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column |
|
||||
prop="REMARKS" |
|
||||
align="center" |
|
||||
label="备注" |
|
||||
:show-overflow-tooltip="true" |
|
||||
> |
|
||||
</el-table-column> |
|
||||
|
|
||||
<el-table-column fixed="right" label="操作" align="center" width="120"> |
|
||||
<template slot-scope="scope"> |
|
||||
<el-button |
|
||||
@click="handleWatch(scope.$index)" |
|
||||
type="text" |
|
||||
size="small" |
|
||||
>查看</el-button |
|
||||
> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
</el-table> |
|
||||
|
|
||||
<div> |
|
||||
<el-pagination |
|
||||
@size-change="handleSizeChange" |
|
||||
@current-change="handleCurrentChange" |
|
||||
:current-page.sync="pageNo" |
|
||||
:page-sizes="[20, 50, 100, 200]" |
|
||||
:page-size="parseInt(pageSize)" |
|
||||
layout="sizes, prev, pager, next, total" |
|
||||
:total="total" |
|
||||
> |
|
||||
</el-pagination> |
|
||||
</div> |
|
||||
</el-card> |
|
||||
|
|
||||
<people-more |
|
||||
v-if="showedPeopleMoreInfo && currentPepeleId" |
|
||||
:userId="currentPepeleId" |
|
||||
:gridName="currentPepeleGridName" |
|
||||
@close="showedPeopleMoreInfo = false" |
|
||||
/> |
|
||||
</div> |
</div> |
||||
</template> |
</template> |
||||
|
|
||||
<script> |
<script> |
||||
import { requestPost } from "@/js/dai/request"; |
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
import nextTick from "dai-js/tools/nextTick"; |
|
||||
import { mapGetters } from "vuex"; |
|
||||
import peopleMore from "@/views/modules/shequ/cpts/people-more"; |
|
||||
|
|
||||
export default { |
export default { |
||||
components: { peopleMore }, |
props: {}, |
||||
|
|
||||
data() { |
data() { |
||||
return { |
return { |
||||
openSearch: false, |
elseParams: [ |
||||
|
|
||||
formShow: false, |
|
||||
formTitle: "", |
|
||||
|
|
||||
pageNo: 1, |
|
||||
pageSize: window.localStorage.getItem("pageSize") || 20, |
|
||||
total: 1, |
|
||||
|
|
||||
tableData: [], |
|
||||
|
|
||||
optionsV: [], |
|
||||
optionsB: [], |
|
||||
optionsH: [], |
|
||||
optionsD: [], |
|
||||
optionsG: [], |
|
||||
|
|
||||
optionsWelfare: [ |
|
||||
{ |
|
||||
value: "1", |
|
||||
label: "是", |
|
||||
}, |
|
||||
{ |
{ |
||||
value: "0", |
queryType: "equal", |
||||
label: "否", |
tableName: "ic_resi_user", |
||||
|
columnName: "IS_XFRY", |
||||
|
columnValue: ["1"], |
||||
}, |
}, |
||||
], |
], |
||||
|
|
||||
fmData: { |
|
||||
gridId: "", |
|
||||
villageId: "", |
|
||||
buildId: "", |
|
||||
unitId: "", |
|
||||
homeId: "", |
|
||||
name: "", |
|
||||
mobile: "", |
|
||||
idCard: "", |
|
||||
}, |
|
||||
rangeTime: [], |
|
||||
|
|
||||
searchH: 0, |
|
||||
tableHeight: 0, |
|
||||
|
|
||||
// 显示人员详情 |
|
||||
showedPeopleMoreInfo: false, |
|
||||
|
|
||||
currentPepeleId: "", |
|
||||
currentPepeleGridName: "", |
|
||||
}; |
}; |
||||
}, |
}, |
||||
computed: { |
components: { basePage }, |
||||
...mapGetters(["clientHeight", "iframeHeight"]), |
computed: {}, |
||||
maxTableHeight() { |
watch: {}, |
||||
console.log("computed-searchH---", this.searchH); |
|
||||
const h = this.clientHeight - this.searchH + this.iframeHeight; |
|
||||
const _h = this.clientHeight - this.searchH; |
|
||||
console.log("computed-searchH---_h", _h); |
|
||||
return this.$store.state.inIframe ? h : _h; |
|
||||
}, |
|
||||
|
|
||||
changeVDisabled() { |
|
||||
return !this.fmData.villageId; |
|
||||
}, |
|
||||
changeBDisabled() { |
|
||||
return !this.fmData.buildId; |
|
||||
}, |
|
||||
changeDDisabled() { |
|
||||
return !this.fmData.unitId; |
|
||||
}, |
|
||||
}, |
|
||||
watch: { |
|
||||
rangeTime: function (val) { |
|
||||
console.log("val----", val); |
|
||||
if (Array.isArray(val) && val.length == 2) { |
|
||||
this.fmData.startTime = val[0]; |
|
||||
this.fmData.endTime = val[1]; |
|
||||
} else { |
|
||||
this.fmData.startTime = ""; |
|
||||
this.fmData.endTime = ""; |
|
||||
} |
|
||||
}, |
|
||||
searchH() { |
|
||||
const h = this.clientHeight - this.searchH + this.iframeHeight; |
|
||||
const _h = this.clientHeight - this.searchH; |
|
||||
console.log("computed-searchH---_h", _h); |
|
||||
|
|
||||
this.$nextTick(() => { |
|
||||
this.tableHeight = this.$store.state.inIframe ? h : _h; |
|
||||
}); |
|
||||
}, |
|
||||
}, |
|
||||
mounted() { |
|
||||
this.getGridList(); |
|
||||
this.getValiheList(); |
|
||||
this.getTableData(); |
|
||||
this.searchH = this.$refs.searchCard.$el.offsetHeight + 270; |
|
||||
console.log("searchH----", this.$refs.searchCard.$el.offsetHeight); |
|
||||
}, |
|
||||
methods: { |
|
||||
async handleWatch(rowIndex) { |
|
||||
let item = this.tableData[rowIndex]; |
|
||||
this.currentPepeleId = item.icResiUserId; |
|
||||
this.currentPepeleGridName = item.GRID_ID; |
|
||||
await nextTick(); |
|
||||
this.showedPeopleMoreInfo = true; |
|
||||
}, |
|
||||
|
|
||||
handleClearVillage() { |
|
||||
this.fmData.buildId = ""; |
|
||||
this.fmData.homeId = ""; |
|
||||
}, |
|
||||
handleClearBuild() { |
|
||||
this.fmData.buildId = ""; |
|
||||
this.fmData.unitId = ""; |
|
||||
this.fmData.homeId = ""; |
|
||||
}, |
|
||||
handleClearDan() { |
|
||||
this.fmData.unitId = ""; |
|
||||
this.fmData.homeId = ""; |
|
||||
}, |
|
||||
handleChangeGrid(val) { |
|
||||
console.log("val", val); |
|
||||
this.fmData.villageId = ""; |
|
||||
this.fmData.buildId = ""; |
|
||||
this.fmData.unitId = ""; |
|
||||
this.fmData.homeId = ""; |
|
||||
this.getValiheList(); |
|
||||
}, |
|
||||
handleChangeV(val) { |
|
||||
console.log("val", val); |
|
||||
this.fmData.buildId = ""; |
|
||||
this.fmData.unitId = ""; |
|
||||
this.fmData.homeId = ""; |
|
||||
this.getBuildList(); |
|
||||
}, |
|
||||
handleChangeB(val) { |
|
||||
console.log("val", val); |
|
||||
this.fmData.unitId = ""; |
|
||||
this.fmData.homeId = ""; |
|
||||
this.getUniList(); |
|
||||
}, |
|
||||
handleChangeD(val) { |
|
||||
console.log("val", val); |
|
||||
this.fmData.homeId = ""; |
|
||||
this.getHouseList(); |
|
||||
}, |
|
||||
|
|
||||
getGridList() { |
|
||||
const { user } = this.$store.state; |
|
||||
this.$http |
|
||||
.post("/gov/org/customergrid/gridoption", { |
|
||||
agencyId: user.agencyId, |
|
||||
purpose: "query", |
|
||||
}) |
|
||||
.then(({ data: res }) => { |
|
||||
if (res.code !== 0) { |
|
||||
return this.$message.error(res.msg); |
|
||||
} else { |
|
||||
console.log("获取查询详情成功", res.data); |
|
||||
this.optionsG = res.data; |
|
||||
} |
|
||||
}) |
|
||||
.catch(() => { |
|
||||
return this.$message.error("网络错误"); |
|
||||
}); |
|
||||
}, |
|
||||
getValiheList() { |
|
||||
const { user } = this.$store.state; |
|
||||
this.$http |
|
||||
.post("/gov/org/icneighborhood/neighborhoodoption", { |
|
||||
gridId: this.fmData.gridId, |
|
||||
agencyId: "", |
|
||||
// agencyId: user.agencyId |
|
||||
}) |
|
||||
.then(({ data: res }) => { |
|
||||
if (res.code !== 0) { |
|
||||
return this.$message.error(res.msg); |
|
||||
} else { |
|
||||
console.log("获取查询详情成功", res.data); |
|
||||
this.optionsV = res.data; |
|
||||
} |
|
||||
}) |
|
||||
.catch(() => { |
|
||||
return this.$message.error("网络错误"); |
|
||||
}); |
|
||||
}, |
|
||||
getBuildList() { |
|
||||
this.$http |
|
||||
.post("/gov/org/icbuilding/buildingoption", { |
|
||||
neighborHoodId: this.fmData.villageId, |
|
||||
}) |
|
||||
.then(({ data: res }) => { |
|
||||
if (res.code !== 0) { |
|
||||
return this.$message.error(res.msg); |
|
||||
} else { |
|
||||
console.log("获取查询详情成功", res.data); |
|
||||
this.optionsB = res.data; |
|
||||
} |
|
||||
}) |
|
||||
.catch(() => { |
|
||||
return this.$message.error("网络错误"); |
|
||||
}); |
|
||||
}, |
|
||||
getUniList() { |
|
||||
this.$http |
|
||||
.post("/gov/org/icbuildingunit/unitoption", { |
|
||||
buildingId: this.fmData.buildId, |
|
||||
}) |
|
||||
.then(({ data: res }) => { |
|
||||
if (res.code !== 0) { |
|
||||
return this.$message.error(res.msg); |
|
||||
} else { |
|
||||
console.log("获取查询详情成功", res.data); |
|
||||
this.optionsD = res.data; |
|
||||
} |
|
||||
}) |
|
||||
.catch(() => { |
|
||||
return this.$message.error("网络错误"); |
|
||||
}); |
|
||||
}, |
|
||||
getHouseList() { |
|
||||
this.$http |
|
||||
.post("/gov/org/ichouse/houseoption", { unitId: this.fmData.unitId }) |
|
||||
.then(({ data: res }) => { |
|
||||
if (res.code !== 0) { |
|
||||
return this.$message.error(res.msg); |
|
||||
} else { |
|
||||
console.log("获取查询详情成功", res.data); |
|
||||
this.optionsH = res.data; |
|
||||
} |
|
||||
}) |
|
||||
.catch(() => { |
|
||||
return this.$message.error("网络错误"); |
|
||||
}); |
|
||||
}, |
|
||||
|
|
||||
handleSizeChange(val) { |
async mounted() {}, |
||||
console.log(`每页 ${val} 条`); |
|
||||
this.pageSize = val; |
|
||||
window.localStorage.setItem("pageSize", val); |
|
||||
this.getTableData(); |
|
||||
}, |
|
||||
handleCurrentChange(val) { |
|
||||
console.log(`当前页: ${val}`); |
|
||||
this.pageNo = val; |
|
||||
this.getTableData(); |
|
||||
}, |
|
||||
|
|
||||
handleClose() { |
methods: {}, |
||||
this.formShow = false; |
|
||||
}, |
|
||||
handleSearch(val) { |
|
||||
console.log(this.fmData); |
|
||||
this.pageNo = 1; |
|
||||
this.getTableData(); |
|
||||
}, |
|
||||
resetForm(formName) { |
|
||||
this.$refs[formName].resetFields(); |
|
||||
this.handleSearch(); |
|
||||
}, |
|
||||
|
|
||||
async handleChu() { |
|
||||
const url = "/epmetuser/icMoveIn/export"; |
|
||||
const { pageSize, pageNo, fmData } = this; |
|
||||
await this.$http({ |
|
||||
method: "POST", |
|
||||
url, |
|
||||
responseType: "blob", |
|
||||
data: { |
|
||||
pageSize, |
|
||||
pageNo, |
|
||||
...{ |
|
||||
formCode: "resi_base_info", |
|
||||
pageNo: 1, |
|
||||
pageSize: 20, |
|
||||
conditions: [ |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "GRID_ID", |
|
||||
columnValue: [fmData.gridId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "VILLAGE_ID", |
|
||||
columnValue: [fmData.villageId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "BUILD_ID", |
|
||||
columnValue: [fmData.buildId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "UNIT_ID", |
|
||||
columnValue: [fmData.unitId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "HOME_ID", |
|
||||
columnValue: [fmData.homeId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "like", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "NAME", |
|
||||
columnValue: [fmData.name], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "like", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "MOBILE", |
|
||||
columnValue: [fmData.mobile], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "like", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "ID_CARD", |
|
||||
columnValue: [fmData.idCard], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "IS_XFRY", |
|
||||
columnValue: ["1"], |
|
||||
}, |
|
||||
], |
|
||||
}, |
|
||||
}, |
|
||||
}) |
|
||||
.then((res) => { |
|
||||
console.log("res----dddd", res); |
|
||||
this.formatData(res); |
|
||||
}) |
|
||||
.catch((err) => { |
|
||||
console.log("err", err); |
|
||||
this.exportLoading = false; |
|
||||
return this.$message.error("网络错误"); |
|
||||
}); |
|
||||
}, |
|
||||
formatData(res) { |
|
||||
const fileReader = new FileReader(); |
|
||||
fileReader.onloadend = () => { |
|
||||
try { |
|
||||
const jsonData = JSON.parse(fileReader.result); // 说明是普通对象数据,后台转换失败 |
|
||||
// 后台信息 |
|
||||
console.log("jsonData---1", jsonData); |
|
||||
return this.$message.error(jsonData.msg); |
|
||||
} catch (err) { |
|
||||
// 解析成对象失败,说明是正常的文件流 |
|
||||
// 下载文件 |
|
||||
console.log("errr-----", err, this); |
|
||||
this.downloadFile(res); |
|
||||
} |
|
||||
}; |
|
||||
fileReader.readAsText(res.data); |
|
||||
}, |
|
||||
downloadFile(res) { |
|
||||
if (res.headers["content-disposition"]) { |
|
||||
let fileName = window.decodeURI( |
|
||||
res.headers["content-disposition"].split(";")[1].split("=")[1] |
|
||||
); |
|
||||
console.log("filename", fileName); |
|
||||
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); |
|
||||
var url = window.URL.createObjectURL(blob); |
|
||||
var aLink = document.createElement("a"); |
|
||||
aLink.style.display = "none"; |
|
||||
aLink.href = url; |
|
||||
aLink.setAttribute("download", fileName); |
|
||||
document.body.appendChild(aLink); |
|
||||
aLink.click(); |
|
||||
document.body.removeChild(aLink); //下载完成移除元素 |
|
||||
window.URL.revokeObjectURL(url); //释放掉blob对象 |
|
||||
this.$message.success("导出成功"); |
|
||||
this.$emit("close"); |
|
||||
} else this.$message.error("下载失败"); |
|
||||
}, |
|
||||
|
|
||||
async getTableData() { |
|
||||
const url = "/epmetuser/icresiuser/listresi"; |
|
||||
const { pageSize, pageNo, fmData } = this; |
|
||||
const { data, code, msg } = await requestPost(url, { |
|
||||
pageSize, |
|
||||
pageNo, |
|
||||
...{ |
|
||||
formCode: "resi_base_info", |
|
||||
pageNo: 1, |
|
||||
pageSize: 20, |
|
||||
conditions: [ |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "GRID_ID", |
|
||||
columnValue: [fmData.gridId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "VILLAGE_ID", |
|
||||
columnValue: [fmData.villageId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "BUILD_ID", |
|
||||
columnValue: [fmData.buildId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "UNIT_ID", |
|
||||
columnValue: [fmData.unitId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "HOME_ID", |
|
||||
columnValue: [fmData.homeId], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "like", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "NAME", |
|
||||
columnValue: [fmData.name], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "like", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "MOBILE", |
|
||||
columnValue: [fmData.mobile], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "like", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "ID_CARD", |
|
||||
columnValue: [fmData.idCard], |
|
||||
}, |
|
||||
{ |
|
||||
queryType: "equal", |
|
||||
tableName: "ic_resi_user", |
|
||||
columnName: "IS_XFRY", |
|
||||
columnValue: ["1"], |
|
||||
}, |
|
||||
], |
|
||||
}, |
|
||||
}); |
|
||||
if (code === 0) { |
|
||||
console.log("列表请求成功!!!!!!!!!!!!!!"); |
|
||||
this.total = data.total || 0; |
|
||||
this.tableData = data.list |
|
||||
? data.list.map((item) => { |
|
||||
return item; |
|
||||
}) |
|
||||
: []; |
|
||||
} else { |
|
||||
} |
|
||||
}, |
|
||||
}, |
|
||||
}; |
}; |
||||
</script> |
</script> |
||||
|
|
||||
<style lang="scss" scoped> |
<style lang="scss" scoped></style> |
||||
@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; |
|
||||
} |
|
||||
} |
|
||||
.resi-card-table { |
|
||||
margin-top: 20px; |
|
||||
} |
|
||||
.resi-row-btn { |
|
||||
margin-bottom: 13px; |
|
||||
.upload-btn { |
|
||||
display: inline-block; |
|
||||
margin: 0 10px; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.resi-btns { |
|
||||
margin-top: 20px; |
|
||||
text-align: center; |
|
||||
} |
|
||||
|
|
||||
.resi-container .resi-card { |
|
||||
position: relative; |
|
||||
overflow: visible; |
|
||||
} |
|
||||
|
|
||||
.demo-form-inline { |
|
||||
// display: flex; |
|
||||
// align-items: center; |
|
||||
// margin-bottom: 20px; |
|
||||
|
|
||||
.resi-cell-label { |
|
||||
flex-shrink: 0; |
|
||||
min-width: 0; |
|
||||
box-sizing: border-box; |
|
||||
margin-right: 15px; |
|
||||
// text-align: right; |
|
||||
// line-height: 32; |
|
||||
} |
|
||||
.resi-cell-label1 { |
|
||||
width: max-content; |
|
||||
} |
|
||||
.resi-cell-value-radio { |
|
||||
display: flex; |
|
||||
align-items: center; |
|
||||
min-height: 32px; |
|
||||
} |
|
||||
.resi-cell-input { |
|
||||
width: 200px; |
|
||||
} |
|
||||
.resi-cell--daterange { |
|
||||
max-width: 260px; |
|
||||
} |
|
||||
.resi-cell-select { |
|
||||
width: 200px; |
|
||||
box-sizing: border-box; |
|
||||
margin-right: 10px; |
|
||||
&-middle { |
|
||||
width: 120px; |
|
||||
} |
|
||||
&-small { |
|
||||
width: 88px; |
|
||||
} |
|
||||
} |
|
||||
.resi-cell-select:last-child { |
|
||||
margin-right: 0; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.mt10 { |
|
||||
margin-top: 10px; |
|
||||
} |
|
||||
</style> |
|
||||
|
|||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["zhaoshizhaohuojingshenbing"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
Loading…
Reference in new issue