Browse Source

Merge branch 'dev-huji' into test

test
dai 3 years ago
parent
commit
7d56f4bb19
  1. 53
      src/views/modules/base/community/buildTable.vue
  2. 21
      src/views/modules/base/community/community.vue
  3. 62
      src/views/modules/base/community/communityTable.vue
  4. 54
      src/views/modules/base/community/roomTable.vue
  5. 136
      src/views/modules/base/huji/chusheng/cpts/edit.vue
  6. 13
      src/views/modules/base/huji/chusheng/index.vue
  7. 485
      src/views/modules/base/huji/houseChange/houseChangeList.vue
  8. 903
      src/views/modules/base/huji/immigration/edit.vue
  9. 1046
      src/views/modules/base/huji/immigration/index.vue

53
src/views/modules/base/community/buildTable.vue

@ -52,6 +52,11 @@
class="diy-button--more"
size="small"
@click="deleteBatch">批量删除</el-button>
<el-button style=";margin-left:10px"
class="diy-button--export"
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button>
</div>
<div class="div_table_item">
@ -223,6 +228,8 @@ export default {
formShow: false,
formTitle: '新增楼栋',
yihuyidangDisabled: false,
}
},
components: {
@ -582,6 +589,40 @@ export default {
);
},
//
handleExportYihuyidang () {
this.yihuyidangDisabled = true
let title = this.agencyObj.label
title = title + '-一户一档'
let url = "/gov/org/house/exportHouseUser"
let params = {
agencyId: '',
gridId: '',
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
neighborHoodId: this.agencyObj.id
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
this.yihuyidangDisabled = false
},
(rspMsg, data) => {
this.$message.error(rspMsg);
this.yihuyidangDisabled = false
}
);
},
//
beforeUpload (file, type) {
@ -725,6 +766,18 @@ export default {
type: Boolean,
default: false,
},
ownerName: {
type: String,
default: '',
},
ownerPhone: {
type: String,
default: '',
},
rentFlag: {
type: String,
default: '',
},
}
}
</script>

21
src/views/modules/base/community/community.vue

@ -62,7 +62,7 @@
<div class="resi-cell-value">
<el-select class="item_width_1"
v-model="rentState"
v-model="rentFlag"
placeholder="请选择"
size="small"
clearable>
@ -92,18 +92,27 @@
ref="ref_neighTable"
:staffAgencyId="staffAgencyId"
:showImportBtn="showImportBtn"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
@toNextLevel="toNextLevel"
@refreshTree="refreshTree"></build-table>
<room-table v-if="showRoomTable||selTreeObj.level==='building'"
:staffAgencyId="staffAgencyId"
:showImportBtn="showImportBtn"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
ref="ref_buildingTable"
@refreshTree="refreshTree"></room-table>
<community-table v-if="selTreeObj.level!=='building'&&selTreeObj.level!=='neighborHood'&&!showRoomTable"
@toNextLevel="toNextLevel"
:staffAgencyId="staffAgencyId"
:ownerName="ownerName"
:ownerPhone="ownerPhone"
:rentFlag="rentFlag"
ref="ref_communityTable"
@refreshTree="refreshTree"></community-table>
@ -156,7 +165,7 @@ export default {
],
ownerName: '',
ownerPhone: '',
rentState: '',
rentFlag: '',
showRoomTable: false,
selObj: {},
}
@ -197,11 +206,11 @@ export default {
methods: {
handleSearch () {
if (this.ownerName || this.ownerPhone || this.rentState) {
if (this.ownerName || this.ownerPhone || this.rentFlag) {
this.showRoomTable = true
this.$nextTick(() => {
this.$refs['ref_buildingTable'].loadTable('search', this.selTreeObj, this.ownerName, this.ownerPhone, this.rentState)
this.$refs['ref_buildingTable'].loadTable('search', this.selTreeObj, this.ownerName, this.ownerPhone, this.rentFlag)
})
} else {
this.$message.warning('请输入查询条件')
@ -214,7 +223,7 @@ export default {
resetSearch () {
this.ownerName = ''
this.ownerPhone = ''
this.rentState = ''
this.rentFlag = ''
this.pageSize = 10
this.pageNo = 1
@ -285,7 +294,7 @@ export default {
handleNodeClick (obj) {
this.ownerName = ''
this.ownerPhone = ''
this.rentState = ''
this.rentFlag = ''
this.showRoomTable = false
this.selObj = JSON.parse(JSON.stringify(obj))

62
src/views/modules/base/community/communityTable.vue

@ -61,6 +61,7 @@
size="small"
class="diy-button--delete">导入房屋数据</el-button>
</el-upload>
</div>
<el-button style="margin-left:10px"
class="diy-button--reset"
@ -75,6 +76,11 @@
class="diy-button--more"
size="small"
@click="deleteBatch">批量删除</el-button>
<el-button style=";margin-left:10px"
class="diy-button--export"
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button>
</div>
@ -217,7 +223,8 @@ export default {
files: "",
fileName: "",
uploadUlr: window.SITE_CONFIG['apiURL'] + '/gov/org/neighborhood/import'
uploadUlr: window.SITE_CONFIG['apiURL'] + '/gov/org/neighborhood/import',
yihuyidangDisabled: false,
}
},
@ -562,6 +569,47 @@ export default {
);
},
//
handleExportYihuyidang () {
this.yihuyidangDisabled = true
let title = this.agencyObj.label
title = title + '-一户一档'
let url = "/gov/org/house/exportHouseUser"
let params = {
agencyId: '',
gridId: '',
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
}
if (this.agencyObj.level === 'grid') {
params.gridId = this.agencyObj.id
params.agencyId = ''
} else {
params.gridId = ''
params.agencyId = this.agencyObj.id
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
this.yihuyidangDisabled = false
},
(rspMsg, data) => {
this.yihuyidangDisabled = false
this.$message.error(rspMsg);
}
);
},
//
beforeUpload (file, type) {
this.files = file;
@ -717,6 +765,18 @@ export default {
type: String,
default: '',
},
ownerName: {
type: String,
default: '',
},
ownerPhone: {
type: String,
default: '',
},
rentFlag: {
type: String,
default: '',
},
}
}

54
src/views/modules/base/community/roomTable.vue

@ -35,6 +35,11 @@
class="diy-button--more"
size="small"
@click="deleteBatch">批量删除</el-button>
<el-button style=";margin-left:10px"
class="diy-button--export"
size="small"
:disabled="yihuyidangDisabled"
@click="handleExportYihuyidang()">导出一户一档</el-button>
</div>
<div class="div_table_item ">
@ -231,7 +236,9 @@ export default {
value: '0',
label: '自住'
},
]
],
yihuyidangDisabled: false,
}
@ -603,6 +610,39 @@ export default {
);
},
//
handleExportYihuyidang () {
this.yihuyidangDisabled = true
let title = this.agencyObj.label
title = title + '-一户一档'
let url = "/gov/org/house/exportHouseUser"
let params = {
agencyId: '',
gridId: '',
ownerName: this.ownerName,
ownerPhone: this.ownerPhone,
rentFlag: this.rentFlag,
buildingId: this.agencyObj.id
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
this.yihuyidangDisabled = false
},
(rspMsg, data) => {
this.$message.error(rspMsg);
this.yihuyidangDisabled = false
}
);
},
//
beforeUpload (file) {
this.files = file;
@ -730,6 +770,18 @@ export default {
type: Boolean,
default: false,
},
ownerName: {
type: String,
default: '',
},
ownerPhone: {
type: String,
default: '',
},
rentFlag: {
type: String,
default: '',
},
}
}
</script>

136
src/views/modules/base/huji/chusheng/cpts/edit.vue

@ -22,6 +22,7 @@
clearable
class="resi-cell-select"
@change="handleChangeGrid"
:disabled="formType === 'edit'"
style="width: 250px"
>
<el-option
@ -48,6 +49,7 @@
class="resi-cell-select"
@clear="handleClearVillage"
@change="handleChangeV"
:disabled="formType === 'edit'"
style="margin-right: 8px; width: 120px"
>
<el-option
@ -65,7 +67,7 @@
clearable
style="margin-right: 8px; width: 120px"
class="resi-cell-select"
:disabled="changeVDisabled"
:disabled="changeVDisabled || formType === 'edit'"
@clear="handleClearBuild"
@change="handleChangeB"
>
@ -79,7 +81,7 @@
</el-select>
<el-select
v-model.trim="fmData.unitId"
:disabled="changeBDisabled"
:disabled="changeBDisabled || formType === 'edit'"
placeholder="单元"
size="small"
clearable
@ -98,7 +100,7 @@
</el-select>
<el-select
v-model.trim="fmData.homeId"
:disabled="changeDDisabled"
:disabled="changeDDisabled || formType === 'edit'"
placeholder="房号"
size="small"
clearable
@ -128,17 +130,23 @@
show-word-limit
style="width: 200px; margin-right: 20px"
placeholder="请输入姓名 "
:disabled="formType === 'edit'"
v-model="fmData.name"
>
</el-input>
<el-checkbox v-model="fmData.isWelfare" true-label="1" false-label="0"
<el-checkbox
v-model="fmData.isWelfare"
:disabled="formType === 'edit'"
true-label="1"
false-label="0"
>享受福利</el-checkbox
>
<el-checkbox
v-model="fmData.isResiUser"
v-model="fmData.isCheck"
true-label="1"
false-label="0"
:disabled="formType === 'edit'"
@change="checkResiAvailable"
>补充居民信息</el-checkbox
>
@ -157,6 +165,7 @@
show-word-limit
placeholder="请输入手机号 "
v-model="fmData.mobile"
:disabled="formType === 'edit'"
>
</el-input>
</el-form-item>
@ -172,6 +181,7 @@
placeholder="请输入身份证号"
v-model="fmData.idCard"
@blur="handleBlurId"
:disabled="formType === 'edit'"
></el-input>
</el-form-item>
@ -188,6 +198,7 @@
clearable
style="width: 120px"
class="resi-cell-select"
:disabled="formType === 'edit'"
>
<el-option
v-for="item in optionsGender"
@ -210,6 +221,7 @@
type="date"
placeholder="出生日期"
value-format="yyyy-MM-dd"
:disabled="formType === 'edit'"
>
</el-date-picker>
</el-form-item>
@ -292,7 +304,7 @@
<el-form-item
label="户主姓名"
prop="houseHolderName"
prop="householderName"
label-width="150px"
style="display: block"
>
@ -302,19 +314,19 @@
show-word-limit
placeholder="请输入户主姓名"
:disabled="fmData.alreadyHaveMaster"
v-model="fmData.houseHolderName"
v-model="fmData.householderName"
>
</el-input>
</el-form-item>
<el-form-item
label="与户主关系"
prop="houseHolderRelation"
prop="householderRelation"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="fmData.houseHolderRelation"
v-model.trim="fmData.householderRelation"
placeholder="与户主关系"
size="small"
clearable
@ -365,21 +377,17 @@
</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";
import { computedCard } from "@/utils/index";
import { isCard, isMobile } from "@/utils/validate";
import { isCard } from "@/utils/validate";
var map;
var search;
var markers;
var infoWindowList;
let loading; //
function iniFmData() {
return {
id: "",
gridId: "",
villageId: "",
buildId: "",
@ -389,15 +397,16 @@ function iniFmData() {
mobile: "",
idCard: "",
isWelfare: "0", //01
isResiUser: "0",
isCheck: "0",
isReplace: "0",
gender: "",
birthplace: "",
father: "",
mother: "",
count: "",
reportDate: "",
houseHolderName: "",
houseHolderRelation: "",
householderName: "",
householderRelation: "",
alreadyHaveMaster: false,
};
}
@ -414,6 +423,7 @@ export default {
optionsH: [],
optionsD: [],
optionsG: [],
optionsRelation: [],
optionsGender: [
{
value: "1",
@ -424,9 +434,9 @@ export default {
label: "女",
},
],
optionsRelation: [],
fmData: iniFmData(),
checkResult: {},
};
},
components: {},
@ -483,9 +493,9 @@ export default {
methods: {
async checkResiAvailable() {
const {
fmData: { idCard, isResiUser },
fmData: { idCard, isCheck },
} = this;
if (isResiUser == "1" && isCard(idCard)) {
if (isCheck == "1" && isCard(idCard)) {
const { data, code, msg } = await requestPost(
"/epmetuser/icresiuser/checkuser",
{
@ -494,6 +504,7 @@ export default {
}
);
if (code === 0) {
this.checkResult = data;
if (!data.moveInstatus) {
this.$message({
type: "error",
@ -570,11 +581,10 @@ export default {
return this.$message.error(res.msg);
} else {
console.log("获取查询详情成功", res.data);
this.optionsRelation = res.data;
if (res.data) {
this.optionsRelation = res.data;
}
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
@ -680,37 +690,41 @@ export default {
console.log("获取户主信息成功", res.data);
const { name } = res.data;
if (name) {
this.fmData.houseHolderName = name;
this.fmData.householderName = name;
this.alreadyHaveMaster = true;
} else {
this.alreadyHaveMaster = false;
}
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
handleAddStaff() {
this.fmData.organizationPersonnel = [
...this.fmData.organizationPersonnel,
{ personName: "", personPhone: "" },
];
},
handleDelStaff(index) {
const { organizationPersonnel } = this.fmData;
organizationPersonnel.splice(index, 1);
this.fmData.organizationPersonnel = organizationPersonnel;
},
async initForm(type, row) {
this.$refs.ref_form.resetFields();
this.formType = type;
console.log(row);
if (row) {
this.fmData = { ...this.fmData, ...row };
// this.fmData = { ...this.fmData, ...row };
this.getInfo(row.id);
this.getValiheList();
this.getBuildList();
this.getUniList();
this.getHouseList();
}
},
async getInfo(id) {
const { data, code, msg } = await requestPost(
"/epmetuser/icBirthRecord/" + id,
{
// id,
}
);
if (code === 0) {
this.fmData = { ...this.fmData, ...data };
} else {
this.$message.error(msg);
}
},
@ -738,14 +752,38 @@ export default {
async submit() {
let url = "";
if (this.formType === "add") {
url = "/epmetuser/birth/save";
url = "/epmetuser/icBirthRecord/save";
} else if (this.formType === "edit") {
url = "/epmetuser/icBirthRecord/update";
} else {
url = "/epmetuser/birth/edit";
return;
}
this.fmData.orgId = this.orgId;
const { fmData, checkResult } = this;
if (
fmData.isCheck == "1" &&
checkResult.resiHomeId != fmData.homeId &&
checkResult.status == "0"
) {
await this.$confirm(
"居民信息中房屋信息与当前选择房屋不一致,是否更新?",
"提示",
{
confirmButtonText: "更新",
cancelButtonText: "不更新",
type: "warning",
center: true,
}
)
.then(() => {
this.fmData.isReplace = "1";
})
.catch(() => {
this.fmData.isReplace = "0";
});
}
const { data, code, msg } = await requestPost(url, this.fmData);
const { data, code, msg } = await requestPost(url, fmData);
if (code === 0) {
this.$message({
@ -766,7 +804,11 @@ export default {
this.$emit("dialogCancle");
},
resetData() {
this.orgId = "";
this.checkResult = {};
this.optionsB = [];
this.optionsH = [];
this.optionsD = [];
this.optionsRelation = [];
this.fmData = iniFmData();
},
//

13
src/views/modules/base/huji/chusheng/index.vue

@ -159,7 +159,7 @@
<el-form-item label="享受福利" prop="remark">
<el-select
v-model.trim="fmData.welfare"
v-model.trim="fmData.isWelfare"
placeholder="享受福利"
size="small"
clearable
@ -303,11 +303,11 @@
<el-table-column prop="reportDate" align="center" label="申报户口日期">
</el-table-column>
<el-table-column prop="houseHolderName" align="center" label="户主姓名">
<el-table-column prop="householderName" align="center" label="户主姓名">
</el-table-column>
<el-table-column
prop="houseHolderRelation"
prop="householderRelation"
align="center"
label="与户主关系"
>
@ -435,7 +435,7 @@ export default {
name: "",
mobile: "",
idCard: "",
welfare: "", //01
isWelfare: "", //01
birthdayStart: "",
birthdayEnd: "",
birthdayTime: ["", ""],
@ -764,8 +764,7 @@ export default {
},
async handleChu() {
const url =
"/heart/iccommunityselforganization/exportcommunityselforganization";
const url = "/epmetuser/icBirthRecord/export";
const { pageSize, pageNo, fmData } = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
@ -834,7 +833,7 @@ export default {
},
async getTableData() {
const url = "/epmetuser/birth/page";
const url = "/epmetuser/icBirthRecord/page";
const { pageSize, pageNo, fmData } = this;
const { data, code, msg } = await requestPost(url, {
pageSize,

485
src/views/modules/base/huji/houseChange/houseChangeList.vue

@ -0,0 +1,485 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'90px'">
<div>
<el-form-item label="所属网格"
prop="gridId">
<el-select class="item_width_1"
v-model="formData.gridId"
placeholder="全部"
size="small"
@change="handleChangeG"
clearable>
<el-option v-for="item in gridList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属房屋">
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="neighborHoodId">
<el-select v-model.trim="formData.neighborHoodId"
:disabled="!this.formData.gridId"
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="buildingId">
<el-select v-model.trim="formData.buildingId"
placeholder="楼号"
:disabled="!this.formData.neighborHoodId"
size="small"
clearable
class="resi-cell-select resi-cell-select-middle list_item_width_1"
@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="buildingUnitId">
<el-select v-model.trim="formData.buildingUnitId"
placeholder="单元"
size="small"
:disabled="!this.formData.buildingId"
clearable
class="resi-cell-select resi-cell-select-middle list_item_width_1"
@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="houseId">
<el-select v-model.trim="formData.houseId"
placeholder="房号"
:disabled="!this.formData.buildingUnitId"
size="small"
clearable
class="resi-cell-select resi-cell-select-middle list_item_width_1">
<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="startDate">
<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-button style="margin-left:30px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<el-table ref="ref_table"
class="table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="gridName"
header-align="center"
align="center"
show-overflow-tooltip
label="所属网格"
min-width="150">
</el-table-column>
<el-table-column prop="houseName"
header-align="center"
align="center"
show-overflow-tooltip
label="所属房屋"
min-width="150">
</el-table-column>
<el-table-column prop="changeBefore"
header-align="center"
align="center"
show-overflow-tooltip
label="变更前"
min-width="250">
</el-table-column>
<el-table-column prop="changeAfter"
header-align="center"
align="center"
show-overflow-tooltip
label="变更后"
min-width="250">
</el-table-column>
<el-table-column prop="changeTime"
header-align="center"
align="center"
label="变更时间"
width="130">
</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="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import util from '@js/util.js';
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
total: 0,
pageSize: 20,
pageNo: 1,
tableLoading: false,
optionsV: [],
optionsB: [],
optionsH: [],
optionsD: [],
tableData: [],
agencyId: '',
gridList: [],//list--
timeRange: [],
formData: {
gridId: '',//Id
neighborHoodId: '',//ID
buildingId: '',//ID
buildingUnitId: '',//ID
houseId: '',//ID
startDate: '',//eg20220510
endDate: '',//eg20220510
}
}
},
components: {
},
async created () {
},
activated () {
this.$refs['ref_table'].doLayout()
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
//
await this.loadGrid()
await this.loadTable()
},
methods: {
handleSearch () {
this.loadTable()
},
async loadGrid () {
const url = "/gov/org/customergrid/gridoption"
let params = {
agencyId: this.agencyId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.gridList = data
} else {
this.$message.error(msg)
}
},
async loadTable () {
this.tableLoading = true
const url = "/gov/org/icHouseChangeRecord/list"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icEpidemicSpecialAttention/list"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
handleChangeG (val) {
console.log('val', val)
this.formData.neighborHoodId = ''
this.formData.buildingId = ''
this.formData.buildingUnitId = ''
this.formData.houseId = ''
this.getValiheList()
this.getBuildList()
this.getUniList()
this.getHouseList()
},
handleChangeV (val) {
console.log('val', val)
this.formData.buildingId = ''
this.formData.buildingUnitId = ''
this.formData.houseId = ''
this.getBuildList()
this.getUniList()
this.getHouseList()
},
handleChangeB (val) {
console.log('val', val)
this.formData.buildingUnitId = ''
this.formData.houseId = ''
this.getUniList()
this.getHouseList()
},
handleChangeD () {
this.formData.houseId = ''
this.getHouseList()
},
getValiheList () {
const { user } = this.$store.state
this.$http
.post('/gov/org/icneighborhood/neighborhoodoption', { gridId: this.formData.gridId })
.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.formData.neighborHoodId })
.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.formData.buildingId })
.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', { buildingUnitId: this.formData.buildingUnitId })
.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('网络错误')
})
},
handleTimeChange (time) {
if (time) {
const startTimeArray = util.dateFormatter(time[0], 'date').split('-')
const endTimeArray = util.dateFormatter(time[1], 'date').split('-')
this.formData.startDate = startTimeArray[0] + startTimeArray[1] + startTimeArray[2]
this.formData.endDate = endTimeArray[0] + endTimeArray[1] + endTimeArray[2]
// this.startTimeShow = startTimeArray[0] + '' + startTimeArray[1] + '' + startTimeArray[2] + ''
// this.endTimeShow = endTimeArray[0] + '' + endTimeArray[1] + '' + endTimeArray[2] + ''
} else {
this.formData.startDate = ''
this.formData.endDate = ''
// this.startTimeShow = ''
// this.endTimeShow = ''
}
},
//
resetSearch () {
this.timeRange = []
this.formData = {
gridId: '',//Id
neighborHoodId: '',//ID
buildingId: '',//ID
buildingUnitId: '',//ID
houseId: '',//ID
startDate: '',//eg20220510
endDate: '',//eg20220510
}
this.pageNo = 1
// this.loadTable()
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 415 + this.iframeHeight : this.clientHeight - 415
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/epidemic.scss";
</style>

903
src/views/modules/base/huji/immigration/edit.vue

@ -0,0 +1,903 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<el-form
ref="ref_form"
:inline="true"
:model="fmData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
>
<el-form-item
label="所属网格 "
prop="gridId"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="fmData.gridId"
placeholder="请选择"
size="small"
clearable
class="item_width_1"
:disabled="formType === 'edit'"
@change="handleChangeGrid"
>
<el-option
v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="所属房屋 "
prop="homeId"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="fmData.villageId"
placeholder="请选择小区"
size="small"
clearable
class="resi-cell-select"
@clear="handleClearVillage"
@change="handleChangeV"
:disabled="formType === 'edit'"
style="margin-right: 8px; width: 120px"
>
<el-option
v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model.trim="fmData.buildId"
placeholder="楼号"
size="small"
clearable
style="margin-right: 8px; width: 120px"
class="resi-cell-select"
:disabled="changeVDisabled || formType === 'edit'"
@clear="handleClearBuild"
@change="handleChangeB"
>
<el-option
v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model.trim="fmData.unitId"
:disabled="changeBDisabled || formType === 'edit'"
placeholder="单元"
size="small"
clearable
style="margin-right: 8px; width: 120px"
class="resi-cell-select"
@click="handleClearDan"
@change="handleChangeD"
>
<el-option
v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model.trim="fmData.homeId"
:disabled="changeDDisabled || formType === 'edit'"
placeholder="房号"
size="small"
clearable
@change="handleChangeH"
style="width: 120px"
class="resi-cell-select"
>
<el-option
v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="姓名"
prop="name"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
style="margin-right: 20px"
placeholder="请输入姓名 "
v-model="fmData.name"
:disabled="formType === 'edit'"
>
</el-input>
<el-checkbox v-model="fmData.isWelfare" true-label="1" false-label="0" :disabled="formType === 'edit'"
>享受福利</el-checkbox
>
<el-checkbox
v-model="fmData.isCheck"
true-label="1"
false-label="0"
:disabled="formType === 'edit'"
@change="checkResiAvailable"
>补充居民信息</el-checkbox
>
</el-form-item>
<el-form-item
label="手机号"
prop="mobile"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="number"
maxlength="11"
show-word-limit
placeholder="请输入手机号 "
:disabled="formType === 'edit'"
v-model="fmData.mobile"
>
</el-input>
</el-form-item>
<el-form-item
label="身份证号"
prop="idCard"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入身份证号"
v-model="fmData.idCard"
:disabled="formType === 'edit'"
@blur="handleBlurId"
></el-input>
</el-form-item>
<el-form-item
label="性别"
prop="principalName"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="fmData.gender"
placeholder="性别"
size="small"
clearable
class="item_width_1"
:disabled="formType === 'edit'"
>
<el-option
v-for="item in optionsGender"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="年龄"
prop="age"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="number"
show-word-limit
placeholder="请输入"
v-model="fmData.age"
:disabled="formType === 'edit'"
>
</el-input>
</el-form-item>
<el-form-item
label="迁入日期"
prop="inTime"
label-width="150px"
style="display: block"
>
<el-date-picker
v-model="fmData.inTime"
type="datetime"
placeholder="迁入时间"
value-format="yyyy-MM-dd HH:mm:ss"
class="item_width_1"
:disabled="formType === 'edit'"
>
</el-date-picker>
</el-form-item>
<el-form-item
label="迁入原因"
prop="inReason"
label-width="150px"
style="display: block"
>
<el-input
type="textarea"
class="item_width_2"
placeholder="请输入迁入原因"
v-model="fmData.inReason"
>
</el-input>
</el-form-item>
<el-form-item
label="来源地"
prop="sourceAddress"
label-width="150px"
style="display: block"
>
<el-cascader ref="nowArea" class="item_width_1" :props="areaProps"
v-model="nowAllCode" clearable @change="handleNowArea"></el-cascader>
<!-- <el-input
class="item_width_1"
placeholder="请输入来源地"
v-model="fmData.sourceAddress"
> -->
</el-input>
</el-form-item>
<el-form-item
label="详细地址"
prop="address"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入详细地址"
v-model="fmData.address"
>
</el-input>
</el-form-item>
<el-form-item
label="迁移证号码"
prop="moveNumber"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入迁移证号码"
v-model="fmData.moveNumber"
>
</el-input>
</el-form-item>
<el-form-item
label="户主姓名"
prop="householderName"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入户主姓名"
v-model="fmData.householderName"
>
</el-input>
</el-form-item>
<el-form-item
label="与户主关系"
prop="householderRelation"
label-width="150px"
style="display: block"
>
<el-select
v-model.trim="fmData.householderRelation"
placeholder="与户主关系"
size="small"
clearable
class="item_width_1"
>
<el-option
v-for="item in optionsRelation"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</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 { requestPost } from "@/js/dai/request";
import formVltHelper from 'dai-js/tools/formVltHelper'
import { computedCard } from '@/utils/index'
import { isCard, isMobile } from '@/utils/validate'
function iniFmData() {
return {
gridId: '',
villageId: '',
buildId: '',
unitId: '',
homeId: '',
name: '',
mobile: '',
idCard: '',
isWelfare: '0', //01
isCheck: '0',
gender: '',
age: '',
inTime: '',
inReason: '',
sourceAddress: '',
address: '',
sourceAddressPathCode: '',
sourceAddressCode: '',
householderName: '',
moveNumber: '',
householderRelation: '',
alreadyHaveMaster: false,
isReplace: '0'
}
}
export default {
data() {
return {
formType: 'add', // addeditdetail
btnDisable: false,
optionsV: [],
optionsB: [],
optionsH: [],
optionsD: [],
optionsG: [],
nowAllCode: [],
optionsGender: [
{
value: '1',
label: '男'
},
{
value: '2',
label: '女'
}
],
optionsRelation: [],
fmData: iniFmData(),
areaProps: {
// checkStrictly: true,
lazy: true,
lazyLoad: this.lzayLoadArea
},
userInfo: {}
}
},
components: {},
computed: {
dataRule() {
let checkIdCard = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入身份证'))
} else {
if (!isCard(value)) {
callback(new Error('身份证号格式不正确'))
}
callback()
}
}
return {
gridId: [
{ required: true, message: '所属网格不能为空', trigger: 'blur' }
],
homeId: [
{ required: true, message: '所属房屋不能为空', trigger: 'blur' }
],
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
idCard: [
{ required: true, message: '身份证号不能为空', trigger: 'blur' },
{ required: true, validator: checkIdCard, trigger: 'blur' }
],
inTime: [
{ required: true, message: '迁入时间不能为空', trigger: 'blur' }
],
inReason: [
{ required: true, message: '迁入原因不能为空', trigger: 'blur' }
],
sourceAddress: [
{ required: true, message: '来源地不能为空', trigger: 'blur' }
],
address: [
{ required: true, message: '详细地址不能为空', trigger: 'blur' }
]
}
},
changeVDisabled() {
return !this.fmData.villageId
},
changeBDisabled() {
return !this.fmData.buildId
},
changeDDisabled() {
return !this.fmData.unitId
}
},
props: {},
watch: {},
async mounted() {
this.getGridList()
this.getValiheList()
this.getRelationList()
},
methods: {
lzayLoadArea(node, resolve) {
// this.getArea(node, resolve)
setTimeout(() => {
this.getArea(node, resolve)
}, 200)
},
async checkResiAvailable() {
const {
fmData: { idCard, isResiUser }
} = this
if (isCard(idCard)) {
const { data, code, msg } = await requestPost(
'/epmetuser/icresiuser/checkuser',
{
idCard,
agencyId: this.$store.state.user.agencyId
}
)
if (code === 0) {
if (!data.moveInstatus) {
this.$message({
type: 'error',
message: `请联系${data.resiAgencyName}迁出该居民后操作`
})
this.btnDisable = true
}
this.userInfo = { ...data }
} else {
this.$message.error(msg)
}
}
},
handleNowArea(val) {
console.log('val-----', val)
console.log('label-----', this.$refs.nowArea.getCheckedNodes())
if (val.length > 0) {
const labels = this.$refs.nowArea.getCheckedNodes()[0].pathLabels
this.fmData.sourceAddressCode = val[val.length - 1]
this.fmData.sourceAddress = labels.join('-')
this.fmData.sourceAddressPathCode = val.join(',')
console.log('sourceAddress', this.fmData.sourceAddressPathCode)
this.$refs.ref_form.clearValidate('sourceAddress')
} else {
this.fmData.sourceAddressCode = ''
this.fmData.sourceAddress = ''
this.fmData.sourceAddressPathCode = ''
}
},
handleBlurId(val) {
const { sex, age } = computedCard(this.fmData.idCard)
if (val) {
this.fmData.age = age
this.fmData.gender = sex == 1 ? '1' : '2'
this.checkResiAvailable()
}
},
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.fmData.householderName = ''
this.fmData.householderRelation = ''
this.getValiheList()
},
handleChangeV(val) {
console.log('val', val)
this.fmData.buildId = ''
this.fmData.unitId = ''
this.fmData.homeId = ''
this.fmData.householderName = ''
this.fmData.householderRelation = ''
this.getBuildList()
},
handleChangeB(val) {
console.log('val', val)
this.fmData.unitId = ''
this.fmData.homeId = ''
this.fmData.householderName = ''
this.fmData.householderRelation = ''
this.getUniList()
},
handleChangeD(val) {
console.log('val', val)
this.fmData.homeId = ''
this.fmData.householderName = ''
this.fmData.householderRelation = ''
this.getHouseList()
},
handleChangeH(val) {
console.log('val', val)
this.getHouseMaster()
},
async getArea (node, resolve) {
const url = "/commonservice/areacode/nextarea"
let params = {
parentLevel: node.data ? node.data.level : '',
parentAreaCode: node.data ? node.data.code : ''
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
const nodes = data.map(item => ({
value: item.areaCode, //
label: item.areaName,
code: item.areaCode,
level: item.level,
leaf: node.level >= 4 // 5
}))
resolve(nodes)
} else {
this.$message.error(msg)
}
},
getRelationList() {
const { user } = this.$store.state
this.$http
.post('/sys/dict/data/relationship', {
formCode: 'resi_base_info'
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取查询详情成功', res.data)
this.optionsRelation = res.data
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
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('网络错误')
})
},
getHouseMaster() {
const { homeId } = this.fmData
if (!homeId) return (this.alreadyHaveMaster = false)
this.$http
.post('/epmetuser/icresiuser/queryhousehold/' + homeId, {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取户主信息成功', res.data)
if (res.data) {
const { name } = res.data
this.fmData.householderName = name
this.alreadyHaveMaster = true
} else {
this.alreadyHaveMaster = false
}
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
async initForm(type, id) {
this.$refs.ref_form.resetFields()
this.formType = type
if (id) {
await this.getDatail(id)
}
if (this.formType != 'add') {
this.getBuildList()
this.getUniList()
this.getHouseList()
}
},
async getDatail(moveInId) {
let url = '/epmetuser/icMoveIn/detail'
const params = {
moveInId: moveInId || ''
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.fmData = { ...data }
this.nowAllCode = data.sourceAddressPathCode && data.sourceAddressPathCode.split(',')
} else this.$message.error(msg)
},
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.fmData.mobile)) {
return this.$message({
type: 'error',
message: '手机号格式有误'
})
}
if (this.fmData.isCheck && this.userInfo && this.userInfo.resiHomeId) {
const { user } = this.$store.state
if (user.agencyId == this.userInfo.resiAgencyId) {
if (this.userInfo.resiHomeId !== this.fmData.homeId) {
this.$confirm('居民信息中房屋信息与当前选择房屋不一致,是否更新?', '提示', {
confirmButtonText: '更新',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.fmData.isReplace = '1'
this.submit()
}).catch(() => {
this.fmData.isReplace = '0'
this.submit()
});
return
}
}
} else this.submit()
}
})
},
async submit() {
let url = ''
if (this.formType === 'add') {
url = '/epmetuser/icMoveIn/add'
} else {
url = '/epmetuser/icMoveIn/edit'
this.fmData.orgId = this.orgId
}
const { data, code, msg } = await requestPost(url, this.fmData)
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.nowAllCode = []
this.btnDisable = false
this.fmData = iniFmData()
}
}
}
</script>
<style lang="scss" scoped>
.item_width_1 {
width: 220px;
}
.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>
<style>
.el-dialog__body {
padding: 0 10px 20px !important;
}
</style>

1046
src/views/modules/base/huji/immigration/index.vue

File diff suppressed because it is too large
Loading…
Cancel
Save