79d4a20c by yangwei

在建工程抵押首次楼盘表部分功能修改

1 parent 44bfb0bf
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-17 10:32:45
* @LastEditTime: 2023-09-20 10:24:29
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
......@@ -108,3 +108,19 @@ export function sjClmxDelete (bsmClmx) {
method: 'delete'
})
}
/**
* @description: 获取自然幢列表
* @param {*} data
* @author: renchao
*/
export function getZrzListByBsmSlsq (params) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/zjgcdy/getZrzListByBsmSlsq',
method: 'get',
params
})
}
......
......@@ -2,7 +2,7 @@
* @Author: yangwei
* @Date: 2023-02-28 15:47:12
* @LastEditors: yangwei
* @LastEditTime: 2023-09-15 14:52:50
* @LastEditTime: 2023-09-20 15:54:25
* @FilePath: \bdcdj-web\src\views\lpb\lpbContent\ch.vue
* @Description:
*
......@@ -119,14 +119,14 @@ export default {
},
mounted() {
// 根据申请单元列表数据处理选中户
console.log("window.unitData",window.unitData);
if(window.unitData && window.unitData.length){
let unitIdList = []
window.unitData.forEach(e => {
this.unitIdList.push(e.bdcdyid)
unitIdList.push(e.bdcdyid)
})
this.ch.forEach((c) => {
c.hs.forEach((h) => {
if (h.dyhbsm.indexOf(this.unitIdList) > -1) {
if (unitIdList.indexOf(h.dyhbsm) > -1) {
h.select = true;
// 使用hbsmList时,需要去重
this.hbsmList.push(h.bsm)
......
......@@ -19,7 +19,7 @@
}}</el-checkbox>
</p>
<el-button type="primary" class="save-btn" v-if="!onlyShow && showSave" @click="saveLpb">保存</el-button>
<el-button type="primary" class="save-btn" v-if="!onlyShow" @click="submitForm" :loading="loading">发起申请</el-button>
<el-button type="primary" class="save-btn" v-if="!onlyShow && !showSave" @click="submitForm" :loading="loading">发起申请</el-button>
<!-- 右键菜单 -->
<ul
v-show="lpbChVisible"
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-20 16:55:00
-->
<template>
<div class="edit">
<el-tabs tab-position="left">
<el-tab-pane :label="item.jzwmc" v-for="item in zrzList" :key="item.bsm">
<el-tabs type="card" v-model="activeName">
<el-tab-pane label="楼盘页面" name="first">
<div
class="tab-content"
ref="tabContent"
:style="{ height: lpbContentHight + 'px' }"
v-show="bjztFlag"
>
<!-- 楼盘表主体 -->
<div
class="lp-overview"
:style="{
width: lpbContentwidth + 'px',
'margin-right': formData.onlyShow ? '10px' : 0,
}"
>
<lpbContent
ref="lpbContent"
:zrzbsm="item.bsm"
:scyclx="formData.scyclx"
:onlyShow="formData.onlyShow"
:showSave="formData.showSave"
:unitData="formData.unitData"
:sqywInfo="formData"
:key="item.bsm"
></lpbContent>
</div>
<!-- 右侧图例 -->
<div class="lp-legend" v-if="formData.onlyShow">
<div class="handleCol">
<div class="btn" @click="legendToggle">
<i
v-show="!legendToggleFlag"
class="el-icon-d-arrow-left"
></i>
<i
v-show="legendToggleFlag"
class="el-icon-d-arrow-right"
></i>
</div>
<div
:class="selectedZt == 'dyzt' ? 'dyzt selectedZt' : 'dyzt'"
@click="selectedZt = 'dyzt'"
>
<span>单元状态</span>
</div>
<div
:class="selectedZt == 'fwxz' ? 'fwxz selectedZt' : 'fwxz'"
@click="selectedZt = 'fwxz'"
>
<span>房屋性质</span>
</div>
<div
:class="selectedZt == 'fwyt' ? 'fwyt selectedZt' : 'fwyt'"
@click="selectedZt = 'fwyt'"
>
<span>房屋用途</span>
</div>
<div
:class="selectedZt == 'qsx' ? 'qsx selectedZt' : 'qsx'"
@click="selectedZt = 'qsx'"
>
<span>缺失项</span>
</div>
</div>
<div
class="legendTable-wrap"
:style="{ width: legendToggleFlag ? '200px' : '0' }"
>
<table
class="legendTable"
v-show="selectedZt == 'dyzt'"
cellspacing="1"
cellpadding="1"
border="1"
>
<tr>
<th>状态</th>
<th>套数</th>
<th>面积</th>
</tr>
<tr
v-for="(item, index) in dyztList"
:key="index"
class="cp"
@click="handleChoosedH(item.bsms, item.color)"
>
<td>
<i
class="fa fa-circle"
:style="{ backgroundColor: item.color }"
></i
>{{ item.name }}
</td>
<td>{{ item.ts }}</td>
<td>{{ item.mj }}</td>
</tr>
</table>
<table
class="legendTable"
v-show="selectedZt == 'fwxz'"
cellspacing="1"
cellpadding="1"
border="1"
>
<tr>
<th>性质</th>
<th>套数</th>
<th>面积</th>
</tr>
<tr
v-for="(item, index) in fwxzList"
:key="index"
class="cp"
@click="handleChoosedH(item.bsms, item.color)"
>
<td>
<i
class="fa fa-circle"
:style="{ backgroundColor: item.color }"
></i
>{{ item.name }}
</td>
<td>{{ item.ts }}</td>
<td>{{ item.mj }}</td>
</tr>
<tr v-show="fwxzList.length < 1">
<td colspan="3" class="tac">暂无数据</td>
</tr>
</table>
<table
class="legendTable"
v-show="selectedZt == 'fwyt'"
cellspacing="1"
cellpadding="1"
border="1"
>
<tr>
<th>用途</th>
<th>套数</th>
<th>面积</th>
</tr>
<tr
v-for="(item, index) in fwytList"
:key="index"
class="cp"
@click="handleChoosedH(item.bsms, item.color)"
>
<td>
<i
class="fa fa-circle"
:style="{ backgroundColor: item.color }"
></i
>{{ item.name }}
</td>
<td>{{ item.ts }}</td>
<td>{{ item.mj }}</td>
</tr>
<tr v-show="fwytList.length < 1">
<td colspan="3" class="tac">暂无数据</td>
</tr>
</table>
<table
class="legendTable"
v-show="selectedZt == 'qsx'"
cellspacing="1"
cellpadding="1"
border="1"
>
<tr>
<th>数据缺失项</th>
<th>套数</th>
<th>面积</th>
</tr>
<tr
v-for="(item, index) in qsxList"
:key="index"
class="cp"
@click="handleChoosedH(item.bsms, item.color)"
>
<td>
<i
class="fa fa-circle"
:style="{ backgroundColor: item.color }"
></i
>{{ item.name }}
</td>
<td>{{ item.ts }}</td>
<td>0</td>
</tr>
<tr v-show="qsxList.length < 1">
<td colspan="3" class="tac">暂无数据</td>
</tr>
</table>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="单元列表页面" name="second">
<!-- 单元列表页面-->
<selectZrzH :sqywInfo="formData" :zrzbsm="item.bsm" />
</el-tab-pane>
</el-tabs>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import lpbContent from "./lpbContent/index";
import selectZrzH from "../ywbl/ywsq/components/selectZrzH";
import { getLpbFwytAndQlxz, getLpbQsxtj, getLpbTj } from "@/api/lpcx.js";
import { getZrzListByBsmSlsq } from "@/api/workflow/zjgcdyFlow.js";
export default {
name: "lpb",
props: {
formData: {
type: Object,
default: () => {
return {};
},
},
},
components: {
lpbContent,
selectZrzH,
},
data() {
return {
activeName: "first",
bsms: [],
dialogVisible: false,
scyclx: "0", //1是实测 0是预测
menuType: "",
selectedZt: "dyzt", //图例选中项,默认选中单元状态
dyztList: [
{
name: "未确权",
color: "#83AAFE",
ts: "12",
mj: "1633",
},
{
name: "已确权",
color: "#6EDEE1",
ts: "22",
mj: "3109",
},
{
name: "已备案",
color: "#8ADC88",
ts: "3",
mj: "409",
},
{
name: "预抵押",
color: "#F2AD67",
ts: "11",
mj: "1466",
},
{
name: "在建抵押",
color: "#F191C8",
ts: "13",
mj: "1792",
},
{
name: "抵押",
color: "#FF8282",
ts: "14",
mj: "13",
},
{
name: "查封",
color: "#D7CECF",
ts: "9",
mj: "1436",
},
{
name: "异议",
color: "#D4A3EB",
ts: "34",
mj: "4342",
},
{
name: "限制",
color: "#A5A3FB",
ts: "2",
mj: "285",
},
],
fwxzList: [],
fwytList: [],
qsxList: [],
legendToggleFlag: false,
lpbContentHight: "",
lpbContentwidth: "",
time: "",
dyztBsmList: {}, //单元状态bsmList
bjztFlag: true,
qsztList: [],
zrzList: [],
};
},
created() {
window.addEventListener("resize", this.getHeight);
this.getHeight();
let params = {
bsmSlsq: this.formData.bsmSlsq,
djlx: this.formData.djlx,
};
window.djlx && getZrzListByBsmSlsq(params).then((res) => {
if (res.code === 200) {
this.zrzList = res.result;
}
});
},
mounted() {
//获取各项单元状态的户bsm
this.formData.onlyShow && this.getDyztBsmList();
//获取房屋用途统计数据
this.formData.onlyShow && this.getLpbFwytAndQlxz();
// 楼盘表绘制区域宽度计算:楼盘表区域宽度-图例宽度34-滚动条宽度6
setTimeout(() => {
this.lpbContentwidth =
(document.documentElement.clientWidth || document.body.clientWidth) -
340 -
34 -
6;
}, 100);
},
methods: {
/* handleTabClick(event){
if(event.name=="first"){
this.$router.push({
path:"/lpb/index",
})
}else if(event.name=="second"){
this.$router.push({
path:"/ywbl/ywsq/components/selectAllHInfo",
})
}
},*/
//获取高度计算lpb内容区高度
/**
* @description: 获取高度计算lpb内容区高度
* @author: renchao
*/
getHeight() {
this.lpbContentHight = window.innerHeight - 226;
},
//图例的展开收起
/**
* @description: 图例的展开收起
* @author: renchao
*/
legendToggle() {
this.legendToggleFlag = !this.legendToggleFlag;
},
//切换房屋状态
/**
* @description: 切换房屋状态
* @param {*} bsms
* @param {*} color
* @author: renchao
*/
handleChoosedH(bsms, color) {
this.$refs.lpbContent.changeChoosed(bsms, color);
},
//获取各项单元状态统计数据
/**
* @description: 获取各项单元状态统计数据
* @author: renchao
*/
getDyztBsmList() {
getLpbTj(this.formData.bsm).then((res) => {
if (res.code === 200) {
this.dyztList = res.result;
this.dyztList.splice(1, 0, this.dyztList[8]);
this.dyztList.pop();
this.dyztList.forEach((item) => {
item.ts = item.bsms.length;
switch (item.name) {
case "Qqzt":
item.color = "#6EDEE1";
item.name = "已确权";
break;
case "Wqqzt":
item.color = "#83AAFE";
item.name = "未确权";
break;
case "Bazt":
item.color = "#8ADC88";
item.name = "已备案";
break;
case "Ydyzt":
item.color = "#F2AD67";
item.name = "预抵押";
break;
case "Zjgcdyzt":
item.color = "#F191C8";
item.name = "在建抵押";
break;
case "Dyzt":
item.color = "#FF8282";
item.name = "抵押";
break;
case "Cfzt":
item.color = "#D7CECF";
item.name = "查封";
break;
case "Yyzt":
item.color = "#D4A3EB";
item.name = "异议";
break;
case "Xzzt":
item.color = "#A5A3FB";
item.name = "限制";
break;
default:
break;
}
});
}
});
},
// 获取房屋用途和房屋性质及缺失项统计数据
/**
* @description: 获取房屋用途和房屋性质及缺失项统计数据
* @author: renchao
*/
getLpbFwytAndQlxz() {
getLpbFwytAndQlxz(this.formData.bsm).then((res) => {
if (res.code === 200) {
// this.fwytList = res.result
this.fwytList = res.result.fwyt;
this.fwxzList = res.result.qlxz;
if (this.fwytList.length > 0) {
this.fwytList.forEach((item) => {
item.color = "#2591FD";
item.ts = item.bsms.length;
});
}
if (this.fwxzList.length > 0) {
this.fwxzList.forEach((item) => {
item.color = "#2591FD";
item.ts = item.bsms.length;
});
}
}
});
// getLpbQsxtj(this.formData.bsm).then((res) => {
// if (res.code === 200) {
// this.qsxList = [
// {
// name: "坐落",
// bsms: res.result.zl.bsms,
// color: "#2591FD",
// ts: res.result.zl.bsms.length,
// },
// {
// name: "分层分户图",
// bsms: res.result.fcfht.bsms,
// color: "#2591FD",
// ts: res.result.fcfht.bsms.length,
// },
// {
// name: "室号",
// bsms: res.result.shbw.bsms,
// color: "#2591FD",
// ts: res.result.shbw.bsms.length,
// },
// ];
// }
// });
},
},
computed: {},
destroyed() {
window.removeEventListener("resize", this.getHeight);
},
watch: {
//树结构和图例伸缩时修改楼盘表主要内容区宽度
legendToggleFlag(n) {
if (n) {
this.lpbContentwidth -= 204;
} else {
this.lpbContentwidth += 204;
}
},
selectedZt(n) {
this.legendToggleFlag = true;
},
},
};
</script>
<style scoped lang="scss">
table {
border-width: 0;
border-collapse: collapse;
border-spacing: 0;
}
.edit {
height: 100%;
.tab-content {
border: 1px solid #dedede;
border-left: 0;
background-color: #ffffff;
display: flex;
&::-webkit-scrollbar {
width: 1px;
}
.lp-tree {
height: 100%;
overflow: hidden;
transition: 0.5s;
.treeData {
margin-top: 20px;
margin-left: 26px;
float: left;
}
}
.w0 {
width: 0;
}
.w260 {
width: 260px;
}
.lp-overview {
transition: 0.5s;
flex: 1;
border: 1px solid rgb(236, 236, 236);
border-top: 0;
border-bottom: 0;
box-sizing: border-box;
}
.lp-legend {
transition: 0.5s;
height: 100%;
font-size: 14px;
.handleCol {
width: 34px;
float: right;
height: 100%;
.btn {
cursor: pointer;
height: 40px;
line-height: 40px;
text-align: center;
background-color: #5a78de;
color: #fff;
border-bottom: 1px solid #e6e6e6;
}
.dyzt,
.fwxz,
.fwyt,
.qsx {
height: 122px;
}
.dyzt,
.fwxz,
.fwyt,
.qsx {
cursor: pointer;
border-bottom: 1px solid #e6e6e6;
border-left: 1px solid #e6e6e6;
span {
text-align: center;
height: 100%;
-webkit-writing-mode: vertical-rl;
writing-mode: vertical-rl;
line-height: 34px;
letter-spacing: 2px;
}
}
.selectedZt {
// background-color: #5A78DE;
color: #3d59c4;
}
}
.legendTable-wrap {
transition: 0.5s;
float: right;
overflow: hidden;
.legendTable {
margin-top: -1px;
.fa-circle {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 50%;
vertical-align: middle;
margin-right: 4px;
}
tr {
height: 40px;
line-height: 40px;
border-color: #d8e0ea !important;
th:first-child {
width: 80px;
}
th {
width: 60px;
height: 40px;
white-space: nowrap;
background-color: #eceef2;
}
td {
height: 40px;
text-align: center;
white-space: nowrap;
}
td:first-child {
text-align: left;
text-indent: 2px;
}
}
}
}
}
}
}
</style>
\ No newline at end of file
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-18 11:11:19
* @LastEditTime: 2023-09-20 16:56:46
*/
import { getPrintTemplateByCode } from "@/api/print";
import { uploadUndo } from "@/api/clxx";
......@@ -157,20 +157,30 @@ export default {
)
break;
case "B8":
getZrzbsmList(this.bsmSlsq).then((res) => {
!window.djlx && getZrzbsmList(this.bsmSlsq).then((res) => {
if (res.code === 200) {
this.$popupDialog('楼盘表', 'lpb/index', {
bsm: res.result[0],
onlyShow: false,
unitData: window.unitData
unitData: window.unitData,
bsmSlsq:this.bsmSlsq,
showSave:true,
djlx: window.djlx
}, '90%', true)
} else {
this.$message.error(res.message)
}
})
.catch((err) => {
this.$message.error(err)
});
.catch((err) => {
this.$message.error(err)
});
window.djlx && this.$popupDialog('楼盘表', 'lpb/zjgcdy', {
onlyShow: false,
unitData: window.unitData,
bsmSlsq:this.bsmSlsq,
showSave:true,
djlx: window.djlx
}, '90%', true)
break;
// 图形定位
case "B-TXDW":
......
......@@ -339,6 +339,7 @@
this.loading = false
if (res.code === 200 && res.result) {
this.ruleForm = res.result;
window.djlx = res.result.sldy.djlx
this.czrOptions = this.ruleForm.qlrList;
this.ruleForm.qlrList.forEach((item) => {
if (item.sfczr == 1) {
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-09-13 10:01:27
* @LastEditTime: 2023-09-20 17:08:30
-->
<template>
<!-- 主体权利信息查询 -->
......@@ -38,7 +38,7 @@
</div>
<!-- 表格 -->
<div class="loadingtext">
<lb-table ref="table" @row-click="handleRowClick" :page-size="pageData.pageSize" :calcHeight="210"
<lb-table ref="table" @row-click="handleRowClick" :page-size="pageData.pageSize" :calcHeight="this.zrzbsm ? 390 : 290"
:current-page.sync="pageData.currentPage" :total="tableData.total" @size-change="handleSizeChange" @select="select"
@p-current-change="handleCurrentChange" @selection-change="handleSelectionChange" :column="tableData.columns"
:data="tableData.data">
......@@ -52,7 +52,7 @@
</template>
<script>
import store from '@/store/index.js'
import { ywPopupDialog,ywPopupCacel } from "@/utils/popup.js";
import { ywPopupDialog,popupCacel } from "@/utils/popup.js";
import { datas, sendThis } from "../javascript/selectAllHInfo.js";
import { defaultParameters } from "../javascript/publicDefaultPar.js";
import table from "@/utils/mixin/table";
......@@ -64,7 +64,10 @@
props: {
isJump: { type: Boolean, default: false },
sqywInfo: { type: Object, default: () => { } },
zrzbsm: {
type: String,
default: "",
},
},
data () {
return {
......@@ -88,7 +91,7 @@
*/
queryClick () {
this.$startLoading();
this.queryForm.zrzbsm = this.sqywInfo.bsm;
this.queryForm.zrzbsm = this.zrzbsm || this.sqywInfo.bsm;
// this.queryForm.zrzbsm = this.sqywInfo.zrzbsm;
selectHQjdc({ ...this.queryForm, ...this.pageData }).then((res) => {
this.$endLoading();
......@@ -143,7 +146,7 @@
* @author: renchao
*/
close(){
ywPopupCacel()
popupCacel()
},
/**
* @description: handleSelectionChange
......