You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1063 lines
25 KiB
1063 lines
25 KiB
<template>
|
|
<div class="g-main">
|
|
<div class="m-search">
|
|
<el-form ref="searchForm" :inline="true" :model="fmData" :label-width="'100px'">
|
|
<el-form-item prop="gridId" label="所属网格">
|
|
<el-select
|
|
v-model.trim="fmData.gridId"
|
|
placeholder="请选择网格"
|
|
size="small"
|
|
clearable
|
|
class="u-item-width-normal"
|
|
@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="所属房屋">
|
|
<el-select
|
|
v-model.trim="fmData.villageId"
|
|
placeholder="请选择小区"
|
|
size="small"
|
|
clearable
|
|
class="u-item-width-communitycascader"
|
|
@change="handleChangeV"
|
|
>
|
|
<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
|
|
:disabled="changeVDisabled"
|
|
class="u-item-width-buildcascader"
|
|
style="margin-left: 5px"
|
|
@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"
|
|
placeholder="单元"
|
|
size="small"
|
|
clearable
|
|
:disabled="changeBDisabled"
|
|
class="u-item-width-buildcascader"
|
|
style="margin-left: 5px"
|
|
@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"
|
|
placeholder="房号"
|
|
size="small"
|
|
clearable
|
|
:disabled="changeDDisabled"
|
|
class="u-item-width-buildcascader"
|
|
style="margin-left: 5px"
|
|
>
|
|
<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">
|
|
<el-input
|
|
v-model="fmData.name"
|
|
class="u-item-width-normal"
|
|
size="small"
|
|
clearable
|
|
placeholder="请输入"
|
|
>
|
|
</el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="联系电话" prop="mobile">
|
|
<el-input
|
|
v-model="fmData.mobile"
|
|
class="u-item-width-normal"
|
|
size="small"
|
|
clearable
|
|
placeholder="请输入"
|
|
>
|
|
</el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="证件号" prop="idCard">
|
|
<el-input
|
|
v-model="fmData.idCard"
|
|
class="u-item-width-normal"
|
|
size="small"
|
|
clearable
|
|
placeholder="请输入"
|
|
>
|
|
</el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="迁入时间" prop="startTime">
|
|
<el-date-picker
|
|
v-model="rangeTime"
|
|
type="daterange"
|
|
range-separator="至"
|
|
start-placeholder="开始日期"
|
|
end-placeholder="结束日期"
|
|
value-format="yyyy-MM-dd"
|
|
class="u-item-width-daterange2"
|
|
:picker-options="pickerOptions"
|
|
>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
|
|
<!-- <el-form-item label="享受福利"
|
|
prop="remark">
|
|
<el-select v-model.trim="fmData.isWeifare"
|
|
placeholder="享受福利"
|
|
size="small"
|
|
clearable
|
|
class="u-item-width-normal">
|
|
<el-option v-for="item in optionsWelfare"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item> -->
|
|
</el-form>
|
|
<el-row>
|
|
<el-col :span="24" align="right">
|
|
<el-button
|
|
class="diy-button--white"
|
|
size="small"
|
|
@click="resetForm('searchForm')"
|
|
>重置</el-button
|
|
>
|
|
<el-button
|
|
style="margin-left: 10px"
|
|
size="small"
|
|
class="diy-button--blue"
|
|
@click="handleSearch"
|
|
>查询</el-button
|
|
>
|
|
</el-col>
|
|
</el-row>
|
|
</div>
|
|
|
|
<div class="m-table">
|
|
<div class="u-table-btn1">
|
|
<el-button
|
|
class="diy-button--blue"
|
|
icon="el-icon-plus"
|
|
size="small"
|
|
@click="handleAdd"
|
|
>迁入登记</el-button
|
|
>
|
|
<el-button
|
|
v-if="false"
|
|
class="diy-button--white"
|
|
size="small"
|
|
@click="handleExportModule('room')"
|
|
>下载模板</el-button
|
|
>
|
|
<el-upload
|
|
:headers="$getElUploadHeaders()"
|
|
v-if="false"
|
|
ref="upload"
|
|
class="upload-btn"
|
|
action="uploadUlr"
|
|
:limit="1"
|
|
:accept="'.xls,.xlsx'"
|
|
:with-credentials="true"
|
|
:show-file-list="false"
|
|
:auto-upload="true"
|
|
:on-progress="handleProgress"
|
|
:on-success="handleExcelSuccess"
|
|
:before-upload="beforeExcelUpload"
|
|
:http-request="uploadHttpRequest"
|
|
>
|
|
<el-button
|
|
size="small"
|
|
class="diy-button--white"
|
|
:loading="importLoading"
|
|
>{{ importBtnTitle }}</el-button
|
|
>
|
|
</el-upload>
|
|
|
|
<el-button
|
|
@click="handleChu"
|
|
class="diy-button--white"
|
|
size="small"
|
|
>导出</el-button
|
|
>
|
|
</div>
|
|
|
|
<div class="m-table-item">
|
|
<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="name"
|
|
width="100"
|
|
fixed="left"
|
|
label="姓名"
|
|
align="center"
|
|
>
|
|
<template slot-scope="scope">
|
|
<a
|
|
class="name-a"
|
|
@click="handleWatch(scope.$index)"
|
|
>
|
|
{{ scope.row.name }}
|
|
</a>
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="gridName"
|
|
align="center"
|
|
label="所属网格"
|
|
min-width="160"
|
|
:show-overflow-tooltip="true"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="allName"
|
|
label="所属房屋"
|
|
align="center"
|
|
min-width="160"
|
|
:show-overflow-tooltip="true"
|
|
/>
|
|
|
|
<el-table-column
|
|
prop="mobile"
|
|
width="140"
|
|
align="center"
|
|
label="联系电话"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="idCard"
|
|
align="center"
|
|
min-width="160"
|
|
label="证件号"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="genderName"
|
|
align="center"
|
|
width="60"
|
|
label="性别"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="age"
|
|
align="center"
|
|
width="60"
|
|
label="年龄"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="inTime"
|
|
align="center"
|
|
min-width="140"
|
|
label="迁入时间"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="inReason"
|
|
align="center"
|
|
label="迁入原因"
|
|
min-width="160"
|
|
show-overflow-tooltip
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="sourceAddress"
|
|
min-width="160"
|
|
align="center"
|
|
label="由何地迁入"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="moveNumber"
|
|
min-width="160"
|
|
align="center"
|
|
label="迁移证号码"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="householderName"
|
|
min-width="100"
|
|
align="center"
|
|
label="户主姓名"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
prop="householderRelationName"
|
|
align="center"
|
|
min-width="100"
|
|
label="与户主关系"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column
|
|
fixed="right"
|
|
label="操作"
|
|
align="center"
|
|
width="190"
|
|
>
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
v-if="false"
|
|
@click="handleWatch(scope.$index)"
|
|
type="text"
|
|
class="div-table-button--blue"
|
|
size="small"
|
|
>查看</el-button
|
|
>
|
|
|
|
<el-button
|
|
@click="handleChangeRecord(scope.row)"
|
|
type="text"
|
|
size="small"
|
|
class="div-table-button--blue"
|
|
>查看</el-button
|
|
>
|
|
|
|
<el-button
|
|
@click="handleEdit(scope.$index)"
|
|
type="text"
|
|
size="small"
|
|
class="div-table-button--blue"
|
|
>编辑</el-button
|
|
>
|
|
|
|
<el-popconfirm
|
|
v-if="false"
|
|
title="删除之后无法回复,确认删除?"
|
|
@onConfirm="handleDel(scope.row, scope.$index)"
|
|
@confirm="handleDel(scope.row, scope.$index)"
|
|
>
|
|
<el-button
|
|
slot="reference"
|
|
type="text"
|
|
size="small"
|
|
class="div-table-button--delete"
|
|
style="margin-left: 10px"
|
|
>删除</el-button
|
|
>
|
|
</el-popconfirm>
|
|
<el-popconfirm
|
|
v-if="true"
|
|
title="删除之后无法回复,确认删除?"
|
|
@onConfirm="handleDelNew(scope.row)"
|
|
@confirm="handleDelNew(scope.row)"
|
|
>
|
|
<el-button
|
|
slot="reference"
|
|
type="text"
|
|
size="small"
|
|
class="div-table-button--blue"
|
|
style="margin-left: 10px"
|
|
>删除</el-button
|
|
>
|
|
</el-popconfirm>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
|
|
<div>
|
|
<el-pagination
|
|
@size-change="handleSizeChange"
|
|
@current-change="handleCurrentChange"
|
|
:current-page.sync="pageNo"
|
|
:page-sizes="[20, 50, 100, 200]"
|
|
:page-size="parseInt(pageSize)"
|
|
layout="sizes, prev, pager, next, total"
|
|
:total="total"
|
|
>
|
|
</el-pagination>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 修改弹出框 -->
|
|
<el-dialog
|
|
:visible.sync="formShow"
|
|
:close-on-click-modal="false"
|
|
:close-on-press-escape="false"
|
|
:title="formTitle"
|
|
width="670px"
|
|
top="5vh"
|
|
class="dialog-h"
|
|
@closed="handleClose"
|
|
>
|
|
<edit-form
|
|
v-if="formShow"
|
|
ref="eleEditForm"
|
|
@dialogCancle="handleClose"
|
|
@dialogOk="handleEditSuccess"
|
|
></edit-form>
|
|
</el-dialog>
|
|
|
|
<!-- 详情弹出框 -->
|
|
<el-dialog
|
|
:visible.sync="detailShow"
|
|
:close-on-click-modal="false"
|
|
:close-on-press-escape="false"
|
|
:title="'迁入详情'"
|
|
width="670px"
|
|
top="5vh"
|
|
class="dialog-h"
|
|
@closed="detailFormCancle"
|
|
>
|
|
<detail-form
|
|
v-if="detailShow"
|
|
ref="ref_form_detail"
|
|
@diaDetailClose="detailFormCancle"
|
|
></detail-form>
|
|
</el-dialog>
|
|
|
|
<!-- 变更记录 -->
|
|
<el-dialog
|
|
:visible.sync="changeRecordShow"
|
|
:close-on-click-modal="false"
|
|
:close-on-press-escape="false"
|
|
:title="'变更记录'"
|
|
width="1150px"
|
|
top="5vh"
|
|
@closed="diaClose"
|
|
>
|
|
<resi-change-record ref="ref_changerecord"></resi-change-record>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { requestPost } from "@/js/dai/request";
|
|
import nextTick from "dai-js/tools/nextTick";
|
|
import resiChangeRecord from "../../../../components/resiChangeRecord.vue";
|
|
import { mapGetters } from "vuex";
|
|
import editForm from "./edit";
|
|
import detailForm from "./detail";
|
|
import axios from "axios";
|
|
|
|
export default {
|
|
components: { editForm, detailForm, resiChangeRecord },
|
|
data() {
|
|
return {
|
|
openSearch: false,
|
|
|
|
formShow: false,
|
|
detailShow: false,
|
|
formTitle: "迁入登记",
|
|
detailShow: false,
|
|
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: "",
|
|
// isWeifare: '', //福利0否,1是
|
|
startTime: "",
|
|
endTime: "",
|
|
},
|
|
rangeTime: [],
|
|
|
|
importBtnTitle: "导入",
|
|
importLoading: false,
|
|
|
|
searchH: 0,
|
|
changeRecordShow: false,
|
|
pickerOptions: {
|
|
disabledDate: time => {
|
|
//设置选择今天以及今天以前的日期
|
|
return time.getTime() > Date.now() - 8.64e6;
|
|
}
|
|
},
|
|
};
|
|
},
|
|
computed: {
|
|
...mapGetters(["clientHeight", "iframeHeight"]),
|
|
tableHeight(){
|
|
const h = this.clientHeight - 450 + this.iframeHeigh;
|
|
const _h = this.clientHeight - 450;
|
|
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) {
|
|
if (Array.isArray(val) && val.length == 2) {
|
|
this.fmData.startTime = val[0];
|
|
this.fmData.endTime = val[1];
|
|
} else {
|
|
this.fmData.startTime = "";
|
|
this.fmData.endTime = "";
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
this.getGridList();
|
|
this.getValiheList();
|
|
this.getTableData();
|
|
this.searchH = this.$refs.searchForm.offsetHeight + 290;
|
|
},
|
|
methods: {
|
|
diaClose() {
|
|
this.changeRecordShow = false;
|
|
},
|
|
//变更记录
|
|
async handleChangeRecord(row) {
|
|
this.changeRecordShow = true;
|
|
await nextTick(200);
|
|
this.$refs.ref_changerecord.initForm(row);
|
|
},
|
|
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) {
|
|
this.fmData.villageId = "";
|
|
this.fmData.buildId = "";
|
|
this.fmData.unitId = "";
|
|
this.fmData.homeId = "";
|
|
this.getValiheList();
|
|
},
|
|
handleChangeV(val) {
|
|
this.fmData.buildId = "";
|
|
this.fmData.unitId = "";
|
|
this.fmData.homeId = "";
|
|
this.getBuildList();
|
|
},
|
|
handleChangeB(val) {
|
|
this.fmData.unitId = "";
|
|
this.fmData.homeId = "";
|
|
this.getUniList();
|
|
},
|
|
handleChangeD(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 {
|
|
this.optionsG = res.data;
|
|
}
|
|
})
|
|
.catch(() => {
|
|
return this.$message.error("网络错误");
|
|
});
|
|
},
|
|
getValiheList() {
|
|
const { user } = this.$store.state;
|
|
this.$http
|
|
.post("/actual/base/communityQuarters/listQuartersOptions", {
|
|
gridId: this.fmData.gridId,
|
|
agencyId: "",
|
|
// agencyId: user.agencyId
|
|
})
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
} else {
|
|
this.optionsV = res.data;
|
|
}
|
|
})
|
|
.catch(() => {
|
|
return this.$message.error("网络错误");
|
|
});
|
|
},
|
|
getBuildList() {
|
|
this.$http
|
|
.post("/actual/base/communityBuilding/buildingoption", {
|
|
quartersId: this.fmData.villageId,
|
|
})
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
} else {
|
|
this.optionsB = res.data;
|
|
}
|
|
})
|
|
.catch(() => {
|
|
return this.$message.error("网络错误");
|
|
});
|
|
},
|
|
getUniList() {
|
|
this.$http
|
|
.post("/actual/base/communityBuildingUnit/unitoption", {
|
|
buildingId: this.fmData.buildId,
|
|
})
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
} else {
|
|
this.optionsD = res.data;
|
|
}
|
|
})
|
|
.catch(() => {
|
|
return this.$message.error("网络错误");
|
|
});
|
|
},
|
|
getHouseList() {
|
|
this.$http
|
|
.post("/actual/base/communityHouse/houseoption", {
|
|
unitId: this.fmData.unitId,
|
|
})
|
|
.then(({ data: res }) => {
|
|
if (res.code !== 0) {
|
|
return this.$message.error(res.msg);
|
|
} else {
|
|
this.optionsH = res.data;
|
|
}
|
|
})
|
|
.catch(() => {
|
|
return this.$message.error("网络错误");
|
|
});
|
|
},
|
|
|
|
async handleExportModule() {
|
|
let url = "/actual/base/residentMoveInRecord/export";
|
|
|
|
let params = {};
|
|
await this.$http({
|
|
method: "POST",
|
|
url,
|
|
responseType: "blob",
|
|
data: params,
|
|
})
|
|
.then((res) => {
|
|
// this.download(res.data, title + '.xls')
|
|
if (res.headers["content-disposition"]) {
|
|
let fileName = window.decodeURI(
|
|
res.headers["content-disposition"]
|
|
.split(";")[1]
|
|
.split("=")[1]
|
|
);
|
|
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对象
|
|
} else this.$message.error("下载失败");
|
|
})
|
|
.catch((err) => {
|
|
return this.$message.error("网络错误");
|
|
});
|
|
},
|
|
// 上传大图标成功
|
|
handleExcelSuccess(res, file) {
|
|
if (res.code === 0 && res.msg === "success") {
|
|
console.log("resss---ppp", res);
|
|
} else {
|
|
this.$message.error(res.msg);
|
|
}
|
|
},
|
|
handleProgress(event, file, fileList) {
|
|
console.log("percentage", file.percentage);
|
|
},
|
|
|
|
beforeExcelUpload(file) {
|
|
console.log("file", file);
|
|
const isType = file.type === "application/vnd.ms-excel";
|
|
const isTypeComputer =
|
|
file.type ===
|
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
const fileType = isType || isTypeComputer;
|
|
const isLt1M = file.size / 1024 / 1024 < 10;
|
|
if (!fileType) {
|
|
this.$message.error("上传文件只能是xls/xlsx格式!");
|
|
}
|
|
|
|
if (!isLt1M) {
|
|
this.$message.error("上传文件大小不能超过 10MB!");
|
|
}
|
|
return fileType && isLt1M;
|
|
},
|
|
async uploadHttpRequest(file) {
|
|
this.importLoading = true;
|
|
this.importBtnTitle = "正在上传中...";
|
|
this.$message({
|
|
showClose: true,
|
|
dangerouslyUseHTMLString: true,
|
|
message: "导入中,请到系统管理-<a id='clickA' style='cursor: pointer;'>导入记录</a>中查看进度",
|
|
duration: 3000
|
|
});
|
|
let than = this
|
|
document.getElementById('clickA').addEventListener('click',function(){
|
|
than.$router.replace('/main/importRecord-index');
|
|
})
|
|
const formData = new FormData(); //FormData对象,添加参数只能通过append('key', value)的形式添加
|
|
formData.append("file", file.file); //添加文件对象
|
|
await this.$http
|
|
.post(
|
|
"/heart/iccommunityselforganization/importcommunityselforganization",
|
|
formData
|
|
)
|
|
.then((res) => {
|
|
if (res.data.code == 0 && res.data.msg == "success") {
|
|
// this.$message.success('导入成功')
|
|
this.getTableData();
|
|
} else this.$message.error(res.data.msg);
|
|
})
|
|
.catch((err) => {
|
|
file.onError(); //上传失败的文件会从文件列表中删除
|
|
// this.$message.error('导入失败')
|
|
});
|
|
// axios({
|
|
// url:
|
|
// window.SITE_CONFIG["apiURL"] +
|
|
// "/heart/iccommunityselforganization/importcommunityselforganization",
|
|
// method: "post",
|
|
// data: formData,
|
|
// // responseType: "blob",
|
|
// })
|
|
// .then((res) => {
|
|
// this.importLoading = false;
|
|
// this.importBtnTitle = "导入";
|
|
// console.log("resresresresresresres", res);
|
|
|
|
// this.getTableData();
|
|
// if (res.data.code == 0) {
|
|
// return this.$message.success(res.data.data || "导入成功");
|
|
// } else {
|
|
// return this.$message.error(res.data.msg);
|
|
// }
|
|
// })
|
|
// .catch((err) => {
|
|
// console.log("失败", err);
|
|
// });
|
|
this.importLoading = false;
|
|
this.importBtnTitle = "导入";
|
|
this.$refs.upload.clearFiles();
|
|
},
|
|
|
|
handleSizeChange(val) {
|
|
this.pageSize = val;
|
|
window.localStorage.setItem("pageSize", val);
|
|
this.getTableData();
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.pageNo = val;
|
|
this.getTableData();
|
|
},
|
|
|
|
handleClose() {
|
|
this.formShow = false;
|
|
},
|
|
handleSearch(val) {
|
|
this.pageNo = 1;
|
|
this.getTableData();
|
|
},
|
|
resetForm(formName) {
|
|
this.$refs[formName].resetFields();
|
|
this.handleChangeGrid();
|
|
this.rangeTime = [];
|
|
this.handleSearch();
|
|
},
|
|
async handleAdd() {
|
|
this.formShow = true;
|
|
await nextTick();
|
|
this.$refs.eleEditForm.initForm("add");
|
|
},
|
|
|
|
async handleChu() {
|
|
const url = "/actual/base/residentMoveInRecord/export";
|
|
const { pageSize, pageNo, fmData } = this;
|
|
await this.$http({
|
|
method: "POST",
|
|
url,
|
|
responseType: "blob",
|
|
data: {
|
|
pageSize,
|
|
pageNo,
|
|
...fmData,
|
|
},
|
|
})
|
|
.then((res) => {
|
|
// this.download(res.data, title + '.xls')
|
|
// this.getTemplateList()
|
|
|
|
// this.exportLoading = false
|
|
// if (res.data.code && res.data.code == 9999) {
|
|
// return this.$message.error(res.data.msg)
|
|
// }
|
|
this.formatData(res);
|
|
})
|
|
.catch((err) => {
|
|
this.exportLoading = false;
|
|
return this.$message.error("网络错误");
|
|
});
|
|
// axios({
|
|
// url: window.SITE_CONFIG['apiURL'] + url,
|
|
// method: 'post',
|
|
// data: {
|
|
// pageSize,
|
|
// pageNo,
|
|
// ...fmData
|
|
// },
|
|
// responseType: 'blob'
|
|
// })
|
|
// .then((res) => {
|
|
// 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对象
|
|
// })
|
|
// .catch((err) => {
|
|
// console.log('获取导出情失败', err)
|
|
// return this.$message.error('网络错误')
|
|
// })
|
|
},
|
|
formatData(res) {
|
|
const fileReader = new FileReader();
|
|
fileReader.onloadend = () => {
|
|
try {
|
|
const jsonData = JSON.parse(fileReader.result); // 说明是普通对象数据,后台转换失败
|
|
// 后台信息
|
|
return this.$message.error(jsonData.msg);
|
|
} catch (err) {
|
|
// 解析成对象失败,说明是正常的文件流
|
|
// 下载文件
|
|
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 handleWatch(rowIndex) {
|
|
// this.formShow = true
|
|
// await nextTick()
|
|
// this.$refs.eleEditForm.initForm('detail', this.tableData[rowIndex].moveInId)
|
|
|
|
this.detailShow = true;
|
|
|
|
this.$nextTick(() => {
|
|
this.$refs.ref_form_detail.initForm(
|
|
this.tableData[rowIndex].moveInId
|
|
);
|
|
});
|
|
},
|
|
|
|
detailFormCancle() {
|
|
this.detailShow = false;
|
|
},
|
|
|
|
async handleEdit(rowIndex) {
|
|
this.formShow = true;
|
|
await nextTick();
|
|
this.$refs.eleEditForm.initForm(
|
|
"edit",
|
|
this.tableData[rowIndex].moveInId
|
|
);
|
|
},
|
|
handleEditSuccess() {
|
|
this.handleClose();
|
|
this.getTableData();
|
|
},
|
|
|
|
async handleDel(rowData, rowIndex) {
|
|
const url = "/actual/base/residentMoveInRecord/deleteById";
|
|
const { tableData } = this;
|
|
|
|
const { data, code, msg } = await requestPost(url, {
|
|
orgId: tableData[rowIndex].orgId,
|
|
});
|
|
|
|
if (code === 0) {
|
|
this.$message.success("删除成功!");
|
|
this.getTableData();
|
|
} else {
|
|
this.$message.success("操作失败!");
|
|
}
|
|
},
|
|
|
|
async handleDelNew(rowData) {
|
|
const url = "/actual/base/residentMoveInRecord/deleteById";
|
|
let params = {
|
|
id: rowData.moveInId,
|
|
};
|
|
const { data, code, msg } = await requestPost(url, params);
|
|
if (code === 0) {
|
|
this.$message.success("删除成功!");
|
|
this.getTableData();
|
|
} else {
|
|
this.$message.success("操作失败!");
|
|
}
|
|
},
|
|
|
|
async getTableData() {
|
|
const url = "/actual/base/residentMoveInRecord/list";
|
|
const { pageSize, pageNo, fmData } = this;
|
|
const { data, code, msg } = await requestPost(url, {
|
|
pageSize,
|
|
pageNo,
|
|
...fmData,
|
|
});
|
|
if (code === 0) {
|
|
this.total = data.total || 0;
|
|
this.tableData = data.list
|
|
? data.list.map((item) => {
|
|
return item;
|
|
})
|
|
: [];
|
|
} else {
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import "@/assets/scss/modules/management/list-main.scss";
|
|
</style>
|
|
|