楼盘表
Showing
6 changed files
with
694 additions
and
564 deletions
| 1 | /* | 1 | /* |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-06-08 13:43:33 | 4 | * @LastEditTime: 2023-06-16 16:06:39 |
| 5 | */ | 5 | */ |
| 6 | import request from '@/utils/request' | 6 | import request from "@/utils/request"; |
| 7 | let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl')) | 7 | let SERVER = window.config |
| 8 | const url = SERVER.SERVERAPI + '/rest/zhcx/lpcx/' | 8 | ? window.config |
| 9 | // | 9 | : JSON.parse(localStorage.getItem("ApiUrl")); |
| 10 | const url = SERVER.SERVERAPI + "/rest/zhcx/lpcx/"; | ||
| 11 | // | ||
| 10 | /** | 12 | /** |
| 11 | * @description:楼盘查询- 根据条件进行列表查询 | 13 | * @description:楼盘查询- 根据条件进行列表查询 |
| 12 | * @param {*} data | 14 | * @param {*} data |
| 13 | * @author: renchao | 15 | * @author: renchao |
| 14 | */ | 16 | */ |
| 15 | export function getLpZrz (data) { | 17 | export function getLpZrz(data) { |
| 16 | return request({ | 18 | return request({ |
| 17 | url: 'service-lpb-zq/rest/zhcx/lpcx/getLpZrz', | 19 | url: "service-lpb-zq/rest/zhcx/lpcx/getLpZrz", |
| 18 | method: 'post', | 20 | method: "post", |
| 19 | data: data | 21 | data: data, |
| 20 | }) | 22 | }); |
| 21 | } | 23 | } |
| 22 | 24 | ||
| 23 | /** | 25 | /** |
| ... | @@ -25,32 +27,47 @@ export function getLpZrz (data) { | ... | @@ -25,32 +27,47 @@ export function getLpZrz (data) { |
| 25 | * @param {*} zrzbsm | 27 | * @param {*} zrzbsm |
| 26 | * @author: renchao | 28 | * @author: renchao |
| 27 | */ | 29 | */ |
| 28 | export function getLpb (zrzbsm) { | 30 | export function getLpb(zrzbsm) { |
| 29 | return request({ | 31 | return request({ |
| 30 | url: 'service-lpb-zq/rest/zhcx/lpcx/getLpb?scyclx=1&zrzbsm=' + zrzbsm, | 32 | url: "service-lpb-zq/rest/zhcx/lpcx/getLpb?scyclx=0&zrzbsm=" + zrzbsm, |
| 31 | method: 'get' | 33 | method: "get", |
| 32 | }) | 34 | }); |
| 33 | } | 35 | } |
| 34 | /** | 36 | /** |
| 35 | * @description: 获取楼盘表房屋用途,房屋性质右侧房屋用途统计数据 | 37 | * @description: 获取楼盘表房屋用途,房屋性质右侧房屋用途统计数据 |
| 36 | * @param {*} zrzbsm | 38 | * @param {*} zrzbsm |
| 37 | * @author: renchao | 39 | * @author: renchao |
| 38 | */ | 40 | */ |
| 39 | export function getLpbFwytAndQlxz (zrzbsm) { | 41 | export function getLpbFwytAndQlxz(zrzbsm) { |
| 40 | return request({ | 42 | return request({ |
| 41 | url: 'service-lpb-zq/rest/zhcx/lpcx/getLpbFwytAndQlxz?scyclx=1&zrzbsm=' + zrzbsm, | 43 | url: |
| 42 | method: 'get' | 44 | "service-lpb-zq/rest/zhcx/lpcx/getLpbFwytAndQlxz?scyclx=0&zrzbsm=" + |
| 43 | }) | 45 | zrzbsm, |
| 46 | method: "get", | ||
| 47 | }); | ||
| 44 | } | 48 | } |
| 45 | /** | 49 | /** |
| 46 | * @description: 获取楼盘表缺失项统计 | 50 | * @description: 获取楼盘表缺失项统计 |
| 47 | * @param {*} zrzbsm | 51 | * @param {*} zrzbsm |
| 48 | * @author: renchao | 52 | * @author: renchao |
| 49 | */ | 53 | */ |
| 50 | export function getLpbQsxtj (zrzbsm) { | 54 | export function getLpbQsxtj(zrzbsm) { |
| 51 | return request({ | 55 | return request({ |
| 52 | url: url + 'getLpbQsxtj?scyclx=1&zrzbsm=' + zrzbsm, | 56 | url: "service-lpb-zq/rest/zhcx/lpcx/getLpbQsxtj?scyclx=0&zrzbsm=" + zrzbsm, |
| 53 | method: 'get' | 57 | method: "get", |
| 54 | }) | 58 | }); |
| 55 | } | 59 | } |
| 56 | 60 | ||
| 61 | /** | ||
| 62 | * @description: 楼盘表 获取单元状态统计数据 | ||
| 63 | * @param {*} data | ||
| 64 | * zrzbsm 自然幢标识码 | ||
| 65 | * scyclx 实测预测类型 0预测,1实测 | ||
| 66 | * @return {*} | ||
| 67 | */ | ||
| 68 | export function getLpbTj(zrzbsm) { | ||
| 69 | return request({ | ||
| 70 | url: "service-lpb-zq/rest/zhcx/lpcx/getLpbTj?scyclx=0&zrzbsm=" + zrzbsm, | ||
| 71 | method: "get", | ||
| 72 | }); | ||
| 73 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="edit"> | 2 | <div class="edit"> |
| 3 | <el-tabs type="card" v-model="activeName" > | 3 | <el-tabs type="card" v-model="activeName"> |
| 4 | <el-tab-pane label="楼盘页面" name="first"></el-tab-pane> | 4 | <el-tab-pane label="楼盘页面" name="first"></el-tab-pane> |
| 5 | <el-tab-pane label="单元列表页面" name="second"></el-tab-pane> | 5 | <el-tab-pane label="单元列表页面" name="second"></el-tab-pane> |
| 6 | </el-tabs> | 6 | </el-tabs> |
| 7 | <div class="tab-content" v-if="activeName=='first'" ref="tabContent" :style="{ height: lpbContentHight + 'px' }" v-show="bjztFlag"> | 7 | <div |
| 8 | <!-- 楼盘表主体 --> | 8 | class="tab-content" |
| 9 | <div class="lp-overview" :style="{ width: lpbContentwidth + 'px' }"> | 9 | v-if="activeName == 'first'" |
| 10 | <lpbContent ref="lpbContent" :zrzbsm="formData.bsm" :key="time"></lpbContent> | 10 | ref="tabContent" |
| 11 | </div> | 11 | :style="{ height: lpbContentHight + 'px' }" |
| 12 | <!-- 右侧图例 --> | 12 | v-show="bjztFlag" |
| 13 | <div class="lp-legend"> | 13 | > |
| 14 | <div class="handleCol"> | 14 | <!-- 楼盘表主体 --> |
| 15 | <div class="btn" @click="legendToggle"> | 15 | <div class="lp-overview" :style="{ width: lpbContentwidth + 'px' }"> |
| 16 | <i v-show="!legendToggleFlag" class="el-icon-d-arrow-left"></i> | 16 | <lpbContent |
| 17 | <i v-show="legendToggleFlag" class="el-icon-d-arrow-right"></i> | 17 | ref="lpbContent" |
| 18 | </div> | 18 | :zrzbsm="formData.bsm" |
| 19 | <div :class="selectedZt == 'dyzt' ? 'dyzt selectedZt' : 'dyzt'" @click="selectedZt = 'dyzt'"> | 19 | :key="time" |
| 20 | <span>单元状态</span> | 20 | ></lpbContent> |
| 21 | </div> | 21 | </div> |
| 22 | <div :class="selectedZt == 'fwxz' ? 'fwxz selectedZt' : 'fwxz'" @click="selectedZt = 'fwxz'"> | 22 | <!-- 右侧图例 --> |
| 23 | <span>房屋性质</span> | 23 | <div class="lp-legend"> |
| 24 | </div> | 24 | <div class="handleCol"> |
| 25 | <div :class="selectedZt == 'fwyt' ? 'fwyt selectedZt' : 'fwyt'" @click="selectedZt = 'fwyt'"> | 25 | <div class="btn" @click="legendToggle"> |
| 26 | <span>房屋用途</span> | 26 | <i v-show="!legendToggleFlag" class="el-icon-d-arrow-left"></i> |
| 27 | </div> | 27 | <i v-show="legendToggleFlag" class="el-icon-d-arrow-right"></i> |
| 28 | <div :class="selectedZt == 'qsx' ? 'qsx selectedZt' : 'qsx'" @click="selectedZt = 'qsx'"> | 28 | </div> |
| 29 | <span>缺失项</span> | 29 | <div |
| 30 | </div> | 30 | :class="selectedZt == 'dyzt' ? 'dyzt selectedZt' : 'dyzt'" |
| 31 | @click="selectedZt = 'dyzt'" | ||
| 32 | > | ||
| 33 | <span>单元状态</span> | ||
| 34 | </div> | ||
| 35 | <div | ||
| 36 | :class="selectedZt == 'fwxz' ? 'fwxz selectedZt' : 'fwxz'" | ||
| 37 | @click="selectedZt = 'fwxz'" | ||
| 38 | > | ||
| 39 | <span>房屋性质</span> | ||
| 40 | </div> | ||
| 41 | <div | ||
| 42 | :class="selectedZt == 'fwyt' ? 'fwyt selectedZt' : 'fwyt'" | ||
| 43 | @click="selectedZt = 'fwyt'" | ||
| 44 | > | ||
| 45 | <span>房屋用途</span> | ||
| 46 | </div> | ||
| 47 | <div | ||
| 48 | :class="selectedZt == 'qsx' ? 'qsx selectedZt' : 'qsx'" | ||
| 49 | @click="selectedZt = 'qsx'" | ||
| 50 | > | ||
| 51 | <span>缺失项</span> | ||
| 52 | </div> | ||
| 53 | </div> | ||
| 54 | <div | ||
| 55 | class="legendTable-wrap" | ||
| 56 | :style="{ width: legendToggleFlag ? '200px' : '0' }" | ||
| 57 | > | ||
| 58 | <table | ||
| 59 | class="legendTable" | ||
| 60 | v-show="selectedZt == 'dyzt'" | ||
| 61 | cellspacing="1" | ||
| 62 | cellpadding="1" | ||
| 63 | border="1" | ||
| 64 | > | ||
| 65 | <tr> | ||
| 66 | <th>状态</th> | ||
| 67 | <th>套数</th> | ||
| 68 | <th>面积</th> | ||
| 69 | </tr> | ||
| 70 | <tr | ||
| 71 | v-for="(item, index) in dyztList" | ||
| 72 | :key="index" | ||
| 73 | class="cp" | ||
| 74 | @click="handleChoosedH(item.bsms, item.color)" | ||
| 75 | > | ||
| 76 | <td> | ||
| 77 | <i | ||
| 78 | class="fa fa-circle" | ||
| 79 | :style="{ backgroundColor: item.color }" | ||
| 80 | ></i | ||
| 81 | >{{ item.name }} | ||
| 82 | </td> | ||
| 83 | <td>{{ item.ts }}</td> | ||
| 84 | <td>{{ item.mj }}</td> | ||
| 85 | </tr> | ||
| 86 | </table> | ||
| 31 | 87 | ||
| 32 | </div> | 88 | <table |
| 33 | <div class="legendTable-wrap" :style="{ width: legendToggleFlag ? '204px' : '0' }"> | 89 | class="legendTable" |
| 34 | <table class="legendTable" v-show="selectedZt == 'dyzt'" cellspacing="1" cellpadding="1" border="1"> | 90 | v-show="selectedZt == 'fwxz'" |
| 35 | <tr> | 91 | cellspacing="1" |
| 36 | <th>状态</th> | 92 | cellpadding="1" |
| 37 | <th>套数</th> | 93 | border="1" |
| 38 | <th>面积</th> | 94 | > |
| 39 | </tr> | 95 | <tr> |
| 40 | <tr v-for="(item, index) in dyztList" :key="index" class="cp" | 96 | <th>性质</th> |
| 41 | @click="handleChoosedH(item.bsms, item.color)"> | 97 | <th>套数</th> |
| 42 | <td> | 98 | <th>面积</th> |
| 43 | <i class="circle" :style="{ 'background-color': item.color }"></i>{{ item.name }} | 99 | </tr> |
| 44 | </td> | 100 | <tr |
| 45 | <td>{{ item.ts }}</td> | 101 | v-for="(item, index) in fwxzList" |
| 46 | <td>{{ item.mj }}</td> | 102 | :key="index" |
| 47 | </tr> | 103 | class="cp" |
| 48 | </table> | 104 | @click="handleChoosedH(item.bsms, item.color)" |
| 49 | <table class="legendTable" v-show="selectedZt == 'fwxz'" cellspacing="1" cellpadding="1" border="1"> | 105 | > |
| 50 | <tr> | 106 | <td> |
| 51 | <th>性质</th> | 107 | <i |
| 52 | <th>套数</th> | 108 | class="fa fa-circle" |
| 53 | <th>面积</th> | 109 | :style="{ backgroundColor: item.color }" |
| 54 | </tr> | 110 | ></i |
| 55 | <tr v-for="(item, index) in fwxzList" :key="index" class="cp" | 111 | >{{ item.name }} |
| 56 | @click="handleChoosedH(item.bsms, item.color)"> | 112 | </td> |
| 57 | <td> | 113 | <td>{{ item.ts }}</td> |
| 58 | <i class="circle" :style="{ 'background-color': item.color }"></i>{{ item.name }} | 114 | <td>{{ item.mj }}</td> |
| 59 | </td> | 115 | </tr> |
| 60 | <td>{{ item.ts }}</td> | 116 | <tr v-show="fwxzList.length < 1"> |
| 61 | <td>{{ item.mj }}</td> | 117 | <td colspan="3" class="tac">暂无数据</td> |
| 62 | </tr> | 118 | </tr> |
| 63 | <tr v-show="fwxzList.length < 1"> | 119 | </table> |
| 64 | <td colspan="3" class="tac">暂无数据</td> | ||
| 65 | </tr> | ||
| 66 | </table> | ||
| 67 | 120 | ||
| 68 | <table class="legendTable" v-show="selectedZt == 'fwyt'" cellspacing="1" cellpadding="1" border="1"> | 121 | <table |
| 69 | <tr> | 122 | class="legendTable" |
| 70 | <th>用途</th> | 123 | v-show="selectedZt == 'fwyt'" |
| 71 | <th>套数</th> | 124 | cellspacing="1" |
| 72 | <th>面积</th> | 125 | cellpadding="1" |
| 73 | </tr> | 126 | border="1" |
| 74 | <tr v-for="(item, index) in fwytList" :key="index" class="cp" | 127 | > |
| 75 | @click="handleChoosedH(item.bsms, item.color)"> | 128 | <tr> |
| 76 | <td> | 129 | <th>用途</th> |
| 77 | <i class="circle" :style="{ 'background-color': item.color }"></i>{{ item.name }} | 130 | <th>套数</th> |
| 78 | </td> | 131 | <th>面积</th> |
| 79 | <td>{{ item.ts }}</td> | 132 | </tr> |
| 80 | <td>{{ item.mj }}</td> | 133 | <tr |
| 81 | </tr> | 134 | v-for="(item, index) in fwytList" |
| 82 | <tr v-show="fwytList.length < 1"> | 135 | :key="index" |
| 83 | <td colspan="3" class="tac">暂无数据</td> | 136 | class="cp" |
| 84 | </tr> | 137 | @click="handleChoosedH(item.bsms, item.color)" |
| 85 | </table> | 138 | > |
| 139 | <td> | ||
| 140 | <i | ||
| 141 | class="fa fa-circle" | ||
| 142 | :style="{ backgroundColor: item.color }" | ||
| 143 | ></i | ||
| 144 | >{{ item.name }} | ||
| 145 | </td> | ||
| 146 | <td>{{ item.ts }}</td> | ||
| 147 | <td>{{ item.mj }}</td> | ||
| 148 | </tr> | ||
| 149 | <tr v-show="fwytList.length < 1"> | ||
| 150 | <td colspan="3" class="tac">暂无数据</td> | ||
| 151 | </tr> | ||
| 152 | </table> | ||
| 86 | 153 | ||
| 87 | <table class="legendTable" v-show="selectedZt == 'qsx'" cellspacing="1" cellpadding="1" border="1"> | 154 | <table |
| 88 | <tr> | 155 | class="legendTable" |
| 89 | <th>数据缺失项</th> | 156 | v-show="selectedZt == 'qsx'" |
| 90 | <th>套数</th> | 157 | cellspacing="1" |
| 91 | <th>面积</th> | 158 | cellpadding="1" |
| 92 | </tr> | 159 | border="1" |
| 93 | <tr v-for="(item, index) in qsxList" :key="index" class="cp" @click="handleChoosedH(item.bsms, item.color)"> | 160 | > |
| 94 | <td> | 161 | <tr> |
| 95 | <i class="circle" :style="{ 'background-color': item.color }"></i>{{ item.name }} | 162 | <th>数据缺失项</th> |
| 96 | </td> | 163 | <th>套数</th> |
| 97 | <td>{{ item.ts }}</td> | 164 | <th>面积</th> |
| 98 | <td>0</td> | 165 | </tr> |
| 99 | </tr> | 166 | <tr |
| 100 | <tr v-show="qsxList.length < 1"> | 167 | v-for="(item, index) in qsxList" |
| 101 | <td colspan="3" class="tac">暂无数据</td> | 168 | :key="index" |
| 102 | </tr> | 169 | class="cp" |
| 103 | </table> | 170 | @click="handleChoosedH(item.bsms, item.color)" |
| 104 | </div> | 171 | > |
| 105 | </div> | 172 | <td> |
| 106 | </div> | 173 | <i |
| 174 | class="fa fa-circle" | ||
| 175 | :style="{ backgroundColor: item.color }" | ||
| 176 | ></i | ||
| 177 | >{{ item.name }} | ||
| 178 | </td> | ||
| 179 | <td>{{ item.ts }}</td> | ||
| 180 | <td>0</td> | ||
| 181 | </tr> | ||
| 182 | <tr v-show="qsxList.length < 1"> | ||
| 183 | <td colspan="3" class="tac">暂无数据</td> | ||
| 184 | </tr> | ||
| 185 | </table> | ||
| 186 | </div> | ||
| 187 | </div> | ||
| 188 | </div> | ||
| 107 | <!-- 单元列表页面--> | 189 | <!-- 单元列表页面--> |
| 108 | <selectZrzH v-else :sqywInfo="formData" /> | 190 | <selectZrzH v-else :sqywInfo="formData" /> |
| 109 | </div> | 191 | </div> |
| 110 | </template> | 192 | </template> |
| 111 | 193 | ||
| 112 | <script> | 194 | <script> |
| 113 | import lpbContent from "./lpbContent/index"; | 195 | import lpbContent from "./lpbContent/index"; |
| 114 | import selectZrzH from "../ywbl/ywsq/components/selectZrzH" | 196 | import selectZrzH from "../ywbl/ywsq/components/selectZrzH"; |
| 115 | import { getLpbFwytAndQlxz,getLpbQsxtj } from '@/api/lpb' | 197 | import { getLpbFwytAndQlxz, getLpbQsxtj, getLpbTj } from "@/api/lpb"; |
| 116 | export default { | 198 | export default { |
| 117 | name: "lpb", | 199 | name: "lpb", |
| 118 | props: { | 200 | props: { |
| 119 | formData: { | 201 | formData: { |
| 120 | type: Object, | 202 | type: Object, |
| 121 | default: {} | 203 | default: {}, |
| 122 | } | 204 | }, |
| 123 | }, | 205 | }, |
| 124 | components: { | 206 | components: { |
| 125 | lpbContent, | 207 | lpbContent, |
| 126 | selectZrzH | 208 | selectZrzH, |
| 127 | }, | 209 | }, |
| 128 | data () { | 210 | data() { |
| 129 | return { | 211 | return { |
| 130 | activeName:"first", | 212 | activeName: "first", |
| 131 | bsms: [], | 213 | bsms: [], |
| 132 | dialogVisible: false, | 214 | dialogVisible: false, |
| 133 | scyclx: "0", //1是实测 0是预测 | 215 | scyclx: "0", //1是实测 0是预测 |
| 134 | menuType: "", | 216 | menuType: "", |
| 135 | selectedZt: "dyzt", //图例选中项,默认选中单元状态 | 217 | selectedZt: "dyzt", //图例选中项,默认选中单元状态 |
| 136 | dyztList: [ | 218 | dyztList: [ |
| 137 | { | 219 | { |
| 138 | name: "未确权", | 220 | name: "未确权", |
| 139 | color: "#83AAFE", | 221 | color: "#83AAFE", |
| 140 | ts: "12", | 222 | ts: "12", |
| 141 | mj: "1633", | 223 | mj: "1633", |
| 142 | }, | 224 | }, |
| 143 | { | 225 | { |
| 144 | name: "已确权", | 226 | name: "已确权", |
| 145 | color: "#6EDEE1", | 227 | color: "#6EDEE1", |
| 146 | ts: "22", | 228 | ts: "22", |
| 147 | mj: "3109", | 229 | mj: "3109", |
| 148 | }, | 230 | }, |
| 149 | { | 231 | { |
| 150 | name: "已备案", | 232 | name: "已备案", |
| 151 | color: "#8ADC88", | 233 | color: "#8ADC88", |
| 152 | ts: "3", | 234 | ts: "3", |
| 153 | mj: "409", | 235 | mj: "409", |
| 154 | }, | 236 | }, |
| 155 | { | 237 | { |
| 156 | name: "预抵押", | 238 | name: "预抵押", |
| 157 | color: "#F2AD67", | 239 | color: "#F2AD67", |
| 158 | ts: "11", | 240 | ts: "11", |
| 159 | mj: "1466", | 241 | mj: "1466", |
| 160 | }, | 242 | }, |
| 161 | { | 243 | { |
| 162 | name: "在建抵押", | 244 | name: "在建抵押", |
| 163 | color: "#F191C8", | 245 | color: "#F191C8", |
| 164 | ts: "13", | 246 | ts: "13", |
| 165 | mj: "1792", | 247 | mj: "1792", |
| 166 | }, | 248 | }, |
| 167 | { | 249 | { |
| 168 | name: "抵押", | 250 | name: "抵押", |
| 169 | color: "#FF8282", | 251 | color: "#FF8282", |
| 170 | ts: "14", | 252 | ts: "14", |
| 171 | mj: "13", | 253 | mj: "13", |
| 172 | }, | 254 | }, |
| 173 | { | 255 | { |
| 174 | name: "查封", | 256 | name: "查封", |
| 175 | color: "#D7CECF", | 257 | color: "#D7CECF", |
| 176 | ts: "9", | 258 | ts: "9", |
| 177 | mj: "1436", | 259 | mj: "1436", |
| 178 | }, | 260 | }, |
| 179 | { | 261 | { |
| 180 | name: "异议", | 262 | name: "异议", |
| 181 | color: "#D4A3EB", | 263 | color: "#D4A3EB", |
| 182 | ts: "34", | 264 | ts: "34", |
| 183 | mj: "4342", | 265 | mj: "4342", |
| 184 | }, | 266 | }, |
| 185 | { | 267 | { |
| 186 | name: "限制", | 268 | name: "限制", |
| 187 | color: "#A5A3FB", | 269 | color: "#A5A3FB", |
| 188 | ts: "2", | 270 | ts: "2", |
| 189 | mj: "285", | 271 | mj: "285", |
| 190 | }, | 272 | }, |
| 191 | ], | 273 | ], |
| 192 | fwxzList: [], | 274 | fwxzList: [], |
| 193 | fwytList: [], | 275 | fwytList: [], |
| 194 | qsxList: [], | 276 | qsxList: [], |
| 195 | legendToggleFlag: false, | 277 | legendToggleFlag: false, |
| 196 | lpbContentHight: "", | 278 | lpbContentHight: "", |
| 197 | lpbContentwidth: "", | 279 | lpbContentwidth: "", |
| 198 | time: "", | 280 | time: "", |
| 199 | dyztBsmList: {}, //单元状态bsmList | 281 | dyztBsmList: {}, //单元状态bsmList |
| 200 | bjztFlag: true, | 282 | bjztFlag: true, |
| 201 | qsztList: [], | 283 | qsztList: [], |
| 202 | }; | 284 | }; |
| 203 | }, | 285 | }, |
| 204 | created () { | 286 | created() { |
| 205 | window.addEventListener("resize", this.getHeight); | 287 | window.addEventListener("resize", this.getHeight); |
| 206 | console.log(this.formData); | 288 | console.log(this.formData); |
| 207 | this.getHeight(); | 289 | this.getHeight(); |
| 208 | }, | 290 | }, |
| 209 | mounted () { | 291 | mounted() { |
| 210 | //获取各项单元状态的户bsm | 292 | //获取各项单元状态的户bsm |
| 211 | // this.getDyztBsmList(); | 293 | this.getDyztBsmList(); |
| 212 | //获取房屋用途统计数据 | 294 | //获取房屋用途统计数据 |
| 213 | this.getLpbFwytAndQlxz(); | 295 | this.getLpbFwytAndQlxz(); |
| 214 | // 楼盘表绘制区域宽度计算:楼盘表区域宽度-图例宽度34-滚动条宽度6 | 296 | // 楼盘表绘制区域宽度计算:楼盘表区域宽度-图例宽度34-滚动条宽度6 |
| 215 | setTimeout(() => { | 297 | setTimeout(() => { |
| 216 | this.lpbContentwidth = ((document.documentElement.clientWidth || document.body.clientWidth) - 340) - 34 - 6; | 298 | this.lpbContentwidth = |
| 217 | }, 100); | 299 | (document.documentElement.clientWidth || document.body.clientWidth) - |
| 218 | }, | 300 | 340 - |
| 219 | methods: { | 301 | 34 - |
| 220 | /* handleTabClick(event){ | 302 | 6; |
| 303 | }, 100); | ||
| 304 | }, | ||
| 305 | methods: { | ||
| 306 | /* handleTabClick(event){ | ||
| 221 | if(event.name=="first"){ | 307 | if(event.name=="first"){ |
| 222 | this.$router.push({ | 308 | this.$router.push({ |
| 223 | path:"/lpb/index", | 309 | path:"/lpb/index", |
| ... | @@ -228,284 +314,264 @@ export default { | ... | @@ -228,284 +314,264 @@ export default { |
| 228 | }) | 314 | }) |
| 229 | } | 315 | } |
| 230 | },*/ | 316 | },*/ |
| 231 | //获取高度计算lpb内容区高度 | 317 | //获取高度计算lpb内容区高度 |
| 232 | getHeight () { | 318 | getHeight() { |
| 233 | this.lpbContentHight = window.innerHeight - 190; | 319 | this.lpbContentHight = window.innerHeight - 190; |
| 234 | }, | 320 | }, |
| 235 | //图例的展开收起 | 321 | //图例的展开收起 |
| 236 | legendToggle () { | 322 | legendToggle() { |
| 237 | this.legendToggleFlag = !this.legendToggleFlag; | 323 | this.legendToggleFlag = !this.legendToggleFlag; |
| 238 | }, | 324 | }, |
| 239 | //切换房屋状态 | 325 | //切换房屋状态 |
| 240 | handleChoosedH (bsms, color) { | 326 | handleChoosedH(bsms, color) { |
| 241 | //每次切换房屋状态,将之前高亮的户边框颜色重置为默认 | 327 | debugger |
| 242 | this.$refs.lpbContent.choosedList = []; | 328 | this.$refs.lpbContent.changeChoosed(bsms, color); |
| 243 | this.$refs.lpbContent.$refs.hBsm.forEach((item) => { | 329 | }, |
| 244 | item.style.border = ''; | 330 | //获取各项单元状态统计数据 |
| 245 | item.className = ''; | 331 | getDyztBsmList() { |
| 246 | }); | 332 | getLpbTj(this.formData.bsm).then((res) => { |
| 247 | this.bsms = bsms; | 333 | if (res.code === 200) { |
| 248 | //清除选中户 | 334 | this.dyztList = res.result; |
| 249 | this.$nextTick(() => { | 335 | this.dyztList.splice(1, 0, this.dyztList[8]); |
| 250 | //给hBsmList传值 | 336 | this.dyztList.pop(); |
| 251 | // console.log(bsms,'bsms'); | 337 | this.dyztList.forEach((item) => { |
| 252 | this.$refs.lpbContent.choosedList = bsms; | 338 | item.ts = item.bsms.length; |
| 253 | this.$refs.lpbContent.borderColor = color; | 339 | switch (item.name) { |
| 254 | }) | 340 | case "Qqzt": |
| 255 | }, | 341 | item.color = "#6EDEE1"; |
| 256 | //获取各项单元状态统计数据 | 342 | item.name = "已确权"; |
| 257 | getDyztBsmList () { | 343 | break; |
| 258 | let data = { | 344 | case "Wqqzt": |
| 259 | zrzbsm: 'ca71bcc498794a1e0ec3ac93869719f6', | 345 | item.color = "#83AAFE"; |
| 260 | scyclx: 1, | 346 | item.name = "未确权"; |
| 261 | }; | 347 | break; |
| 262 | getLpbTj(data).then((res) => { | 348 | case "Bazt": |
| 263 | if (res.code === 200) { | 349 | item.color = "#8ADC88"; |
| 264 | this.dyztList = res.result; | 350 | item.name = "已备案"; |
| 265 | this.dyztList.splice(1, 0, this.dyztList[8]); | 351 | break; |
| 266 | this.dyztList.pop(); | 352 | case "Ydyzt": |
| 267 | this.dyztList.forEach(item => { | 353 | item.color = "#F2AD67"; |
| 268 | item.ts = item.bsms.length; | 354 | item.name = "预抵押"; |
| 269 | switch (item.name) { | 355 | break; |
| 270 | case 'Qqzt': | 356 | case "Zjgcdyzt": |
| 271 | item.color = "#6EDEE1"; | 357 | item.color = "#F191C8"; |
| 272 | item.name = "已确权" | 358 | item.name = "在建抵押"; |
| 273 | break; | 359 | break; |
| 274 | case 'Wqqzt': | 360 | case "Dyzt": |
| 275 | item.color = "#83AAFE"; | 361 | item.color = "#FF8282"; |
| 276 | item.name = "未确权" | 362 | item.name = "抵押"; |
| 277 | break; | 363 | break; |
| 278 | case 'Bazt': | 364 | case "Cfzt": |
| 279 | item.color = "#8ADC88"; | 365 | item.color = "#D7CECF"; |
| 280 | item.name = "已备案" | 366 | item.name = "查封"; |
| 281 | break; | 367 | break; |
| 282 | case 'Ydyzt': | 368 | case "Yyzt": |
| 283 | item.color = "#F2AD67"; | 369 | item.color = "#D4A3EB"; |
| 284 | item.name = "预抵押" | 370 | item.name = "异议"; |
| 285 | break; | 371 | break; |
| 286 | case 'Zjgcdyzt': | 372 | case "Xzzt": |
| 287 | item.color = "#F191C8"; | 373 | item.color = "#A5A3FB"; |
| 288 | item.name = "在建抵押" | 374 | item.name = "限制"; |
| 289 | break; | 375 | break; |
| 290 | case 'Dyzt': | 376 | default: |
| 291 | item.color = "#FF8282"; | 377 | break; |
| 292 | item.name = "抵押" | 378 | } |
| 293 | break; | 379 | }); |
| 294 | case 'Cfzt': | 380 | } |
| 295 | item.color = "#D7CECF"; | 381 | }); |
| 296 | item.name = "查封" | 382 | }, |
| 297 | break; | 383 | // 获取房屋用途和房屋性质及缺失项统计数据 |
| 298 | case 'Yyzt': | 384 | getLpbFwytAndQlxz() { |
| 299 | item.color = "#D4A3EB"; | 385 | getLpbFwytAndQlxz(this.formData.bsm).then((res) => { |
| 300 | item.name = "异议" | 386 | if (res.code === 200) { |
| 301 | break; | 387 | // this.fwytList = res.result |
| 302 | case 'Xzzt': | 388 | this.fwytList = res.result.fwyt; |
| 303 | item.color = "#A5A3FB"; | 389 | this.fwxzList = res.result.qlxz; |
| 304 | item.name = "限制" | 390 | if (this.fwytList.length > 0) { |
| 305 | break; | 391 | this.fwytList.forEach((item) => { |
| 306 | default: | 392 | item.color = "#2591FD"; |
| 307 | break; | 393 | item.ts = item.bsms.length; |
| 308 | } | 394 | }); |
| 309 | }) | 395 | } |
| 310 | } | 396 | if (this.fwxzList.length > 0) { |
| 311 | }); | 397 | this.fwxzList.forEach((item) => { |
| 312 | }, | 398 | item.color = "#2591FD"; |
| 313 | // 获取房屋用途和房屋性质及缺失项统计数据 | 399 | item.ts = item.bsms.length; |
| 314 | getLpbFwytAndQlxz () { | 400 | }); |
| 315 | getLpbFwytAndQlxz('ca71bcc498794a1e0ec3ac93869719f6').then((res) => { | 401 | } |
| 316 | if (res.code === 200) { | 402 | } |
| 317 | // this.fwytList = res.result | 403 | }); |
| 318 | this.fwytList = res.result.fwyt; | 404 | getLpbQsxtj(this.formData.bsm).then((res) => { |
| 319 | this.fwxzList = res.result.qlxz; | 405 | if (res.code === 200) { |
| 320 | if (this.fwytList.length > 0) { | 406 | this.qsxList = [ |
| 321 | this.fwytList.forEach(item => { | 407 | { |
| 322 | item.color = "#2591FD"; | 408 | name: "坐落", |
| 323 | item.ts = item.bsms.length | 409 | bsms: res.result.zl.bsms, |
| 324 | }) | 410 | color: "#2591FD", |
| 325 | } | 411 | ts: res.result.zl.bsms.length, |
| 326 | if (this.fwxzList.length > 0) { | 412 | }, |
| 327 | this.fwxzList.forEach(item => { | 413 | { |
| 328 | item.color = "#2591FD"; | 414 | name: "分层分户图", |
| 329 | item.ts = item.bsms.length | 415 | bsms: res.result.fcfht.bsms, |
| 330 | }) | 416 | color: "#2591FD", |
| 331 | } | 417 | ts: res.result.fcfht.bsms.length, |
| 332 | } | 418 | }, |
| 333 | }); | 419 | { |
| 334 | // getLpbQsxtj('ca71bcc498794a1e0ec3ac93869719f6').then((res) => { | 420 | name: "室号", |
| 335 | // if (res.code === 200) { | 421 | bsms: res.result.shbw.bsms, |
| 336 | // this.qsxList = [ | 422 | color: "#2591FD", |
| 337 | // { | 423 | ts: res.result.shbw.bsms.length, |
| 338 | // name: '坐落', | 424 | }, |
| 339 | // bsms: res.result.zl.bsms, | 425 | ]; |
| 340 | // color: '#2591FD', | 426 | } |
| 341 | // ts: res.result.zl.bsms.length | 427 | }); |
| 342 | // }, | 428 | }, |
| 343 | // { | 429 | }, |
| 344 | // name: '分层分户图', | 430 | computed: {}, |
| 345 | // bsms: res.result.fcfht.bsms, | 431 | destroyed() { |
| 346 | // color: '#2591FD', | 432 | window.removeEventListener("resize", this.getHeight); |
| 347 | // ts: res.result.fcfht.bsms.length | 433 | }, |
| 348 | // }, | 434 | watch: { |
| 349 | // { | 435 | //树结构和图例伸缩时修改楼盘表主要内容区宽度 |
| 350 | // name: '室号', | 436 | legendToggleFlag(n) { |
| 351 | // bsms: res.result.shbw.bsms, | 437 | if (n) { |
| 352 | // color: '#2591FD', | 438 | this.lpbContentwidth -= 204; |
| 353 | // ts: res.result.shbw.bsms.length | 439 | } else { |
| 354 | // } | 440 | this.lpbContentwidth += 204; |
| 355 | // ] | 441 | } |
| 356 | // } | 442 | }, |
| 357 | // }); | 443 | selectedZt(n) { |
| 358 | } | 444 | this.legendToggleFlag = true; |
| 359 | }, | 445 | }, |
| 360 | computed: {}, | 446 | }, |
| 361 | destroyed () { | ||
| 362 | window.removeEventListener("resize", this.getHeight); | ||
| 363 | }, | ||
| 364 | watch: { | ||
| 365 | //树结构和图例伸缩时修改楼盘表主要内容区宽度 | ||
| 366 | legendToggleFlag (n) { | ||
| 367 | if (n) { | ||
| 368 | this.lpbContentwidth -= 204; | ||
| 369 | } else { | ||
| 370 | this.lpbContentwidth += 204; | ||
| 371 | } | ||
| 372 | }, | ||
| 373 | selectedZt (n) { | ||
| 374 | this.legendToggleFlag = true; | ||
| 375 | }, | ||
| 376 | }, | ||
| 377 | }; | 447 | }; |
| 378 | </script> | 448 | </script> |
| 379 | <style scoped lang="scss"> | 449 | <style scoped lang="scss"> |
| 450 | table { | ||
| 451 | border-width: 0; | ||
| 452 | border-collapse: collapse; | ||
| 453 | border-spacing: 0; | ||
| 454 | } | ||
| 380 | .edit { | 455 | .edit { |
| 381 | height: 100%; | 456 | height: 100%; |
| 382 | background-color: #F4F9FF; | 457 | background-color: #f4f9ff; |
| 383 | .tab-content { | 458 | .tab-content { |
| 384 | border: 1px solid #dedede; | 459 | border: 1px solid #dedede; |
| 385 | background-color: #ffffff; | 460 | background-color: #ffffff; |
| 386 | display: flex; | 461 | display: flex; |
| 387 | &::-webkit-scrollbar { | 462 | &::-webkit-scrollbar { |
| 388 | width: 1px; | 463 | width: 1px; |
| 389 | } | 464 | } |
| 390 | .lp-tree { | 465 | .lp-tree { |
| 391 | height: 100%; | 466 | height: 100%; |
| 392 | overflow: hidden; | 467 | overflow: hidden; |
| 393 | transition: 0.5s; | 468 | transition: 0.5s; |
| 394 | .treeData { | 469 | .treeData { |
| 395 | margin-top: 20px; | 470 | margin-top: 20px; |
| 396 | margin-left: 26px; | 471 | margin-left: 26px; |
| 397 | float: left; | 472 | float: left; |
| 398 | } | 473 | } |
| 399 | } | 474 | } |
| 400 | .w0 { | 475 | .w0 { |
| 401 | width: 0; | 476 | width: 0; |
| 402 | } | 477 | } |
| 403 | .w260 { | 478 | .w260 { |
| 404 | width: 260px; | 479 | width: 260px; |
| 405 | } | 480 | } |
| 406 | .lp-overview { | 481 | .lp-overview { |
| 407 | transition: 0.5s; | 482 | transition: 0.5s; |
| 408 | flex: 1; | 483 | flex: 1; |
| 409 | border: 1px solid rgb(236, 236, 236); | 484 | border: 1px solid rgb(236, 236, 236); |
| 410 | border-top: 0; | 485 | border-top: 0; |
| 411 | border-bottom: 0; | 486 | border-bottom: 0; |
| 412 | margin-right: 10px; | 487 | margin-right: 10px; |
| 413 | box-sizing: border-box; | 488 | box-sizing: border-box; |
| 414 | } | 489 | } |
| 415 | .lp-legend { | ||
| 416 | transition: 0.5s; | ||
| 417 | height: 100%; | ||
| 418 | font-size: 14px; | ||
| 419 | .handleCol { | ||
| 420 | width: 34px; | ||
| 421 | float: right; | ||
| 422 | height: 100%; | ||
| 423 | .btn { | ||
| 424 | cursor: pointer; | ||
| 425 | height: 40px; | ||
| 426 | line-height: 40px; | ||
| 427 | text-align: center; | ||
| 428 | background-color: #0091ff; | ||
| 429 | color: #fff; | ||
| 430 | border-bottom: 1px solid #e6e6e6; | ||
| 431 | } | ||
| 432 | .dyzt, | ||
| 433 | .fwxz, | ||
| 434 | .fwyt, | ||
| 435 | .qsx { | ||
| 436 | height: 122px; | ||
| 437 | } | ||
| 438 | .dyzt, | ||
| 439 | .fwxz, | ||
| 440 | .fwyt, | ||
| 441 | .qsx { | ||
| 442 | cursor: pointer; | ||
| 443 | border-bottom: 1px solid #e6e6e6; | ||
| 444 | border-left: 1px solid #e6e6e6; | ||
| 445 | |||
| 446 | span { | ||
| 447 | text-align: center; | ||
| 448 | height: 100%; | ||
| 449 | -webkit-writing-mode: vertical-rl; | ||
| 450 | writing-mode: vertical-rl; | ||
| 451 | line-height: 34px; | ||
| 452 | letter-spacing: 2px; | ||
| 453 | } | ||
| 454 | } | ||
| 455 | |||
| 456 | .selectedZt { | ||
| 457 | background-color: #0091ff; | ||
| 458 | color: #fff; | ||
| 459 | } | ||
| 460 | } | ||
| 461 | 490 | ||
| 462 | .legendTable-wrap { | 491 | .lp-legend { |
| 463 | transition: 0.5s; | 492 | transition: 0.5s; |
| 464 | float: right; | 493 | height: 100%; |
| 465 | overflow: hidden; | 494 | font-size: 14px; |
| 466 | 495 | .handleCol { | |
| 467 | .legendTable { | 496 | width: 34px; |
| 468 | margin-top: -1px; | 497 | float: right; |
| 469 | border-color: #e4ebf4 !important; | 498 | height: 100%; |
| 470 | border-collapse: collapse; | 499 | .btn { |
| 471 | border-spacing: 0; | 500 | cursor: pointer; |
| 472 | tr { | 501 | height: 40px; |
| 473 | height: 40px; | 502 | line-height: 40px; |
| 474 | line-height: 40px; | 503 | text-align: center; |
| 475 | 504 | background-color: #5a78de; | |
| 476 | th:first-child { | 505 | color: #fff; |
| 477 | width: 80px; | 506 | border-bottom: 1px solid #e6e6e6; |
| 478 | } | 507 | } |
| 479 | 508 | .dyzt, | |
| 480 | th { | 509 | .fwxz, |
| 481 | width: 60px; | 510 | .fwyt, |
| 482 | height: 40px; | 511 | .qsx { |
| 483 | white-space: nowrap; | 512 | height: 122px; |
| 484 | } | 513 | } |
| 485 | 514 | .dyzt, | |
| 486 | td { | 515 | .fwxz, |
| 487 | height: 40px; | 516 | .fwyt, |
| 488 | text-align: center; | 517 | .qsx { |
| 489 | white-space: nowrap; | 518 | cursor: pointer; |
| 490 | .circle{ | 519 | border-bottom: 1px solid #e6e6e6; |
| 491 | display: inline-block; | 520 | border-left: 1px solid #e6e6e6; |
| 492 | width: 12px; | 521 | span { |
| 493 | height: 12px; | 522 | text-align: center; |
| 494 | border-radius: 6px; | 523 | height: 100%; |
| 495 | margin-right: 2px; | 524 | -webkit-writing-mode: vertical-rl; |
| 496 | position: relative; | 525 | writing-mode: vertical-rl; |
| 497 | top: 1px; | 526 | line-height: 34px; |
| 498 | } | 527 | letter-spacing: 2px; |
| 499 | } | 528 | } |
| 500 | 529 | } | |
| 501 | td:first-child { | 530 | .selectedZt { |
| 502 | text-align: left; | 531 | // background-color: #5A78DE; |
| 503 | text-indent: 2px; | 532 | color: #3d59c4; |
| 504 | } | 533 | } |
| 505 | } | 534 | } |
| 506 | } | 535 | .legendTable-wrap { |
| 507 | } | 536 | transition: 0.5s; |
| 508 | } | 537 | float: right; |
| 509 | } | 538 | overflow: hidden; |
| 539 | .legendTable { | ||
| 540 | margin-top: -1px; | ||
| 541 | .fa-circle { | ||
| 542 | display: inline-block; | ||
| 543 | width: 12px; | ||
| 544 | height: 12px; | ||
| 545 | border-radius: 50%; | ||
| 546 | vertical-align: middle; | ||
| 547 | margin-right: 4px; | ||
| 548 | } | ||
| 549 | tr { | ||
| 550 | height: 40px; | ||
| 551 | line-height: 40px; | ||
| 552 | border-color: #d8e0ea !important; | ||
| 553 | th:first-child { | ||
| 554 | width: 80px; | ||
| 555 | } | ||
| 556 | th { | ||
| 557 | width: 60px; | ||
| 558 | height: 40px; | ||
| 559 | white-space: nowrap; | ||
| 560 | background-color: #eceef2; | ||
| 561 | } | ||
| 562 | td { | ||
| 563 | height: 40px; | ||
| 564 | text-align: center; | ||
| 565 | white-space: nowrap; | ||
| 566 | } | ||
| 567 | td:first-child { | ||
| 568 | text-align: left; | ||
| 569 | text-indent: 2px; | ||
| 570 | } | ||
| 571 | } | ||
| 572 | } | ||
| 573 | } | ||
| 574 | } | ||
| 575 | } | ||
| 510 | } | 576 | } |
| 511 | </style> | 577 | </style> | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | * @Author: yangwei | 2 | * @Author: yangwei |
| 3 | * @Date: 2023-02-28 15:47:12 | 3 | * @Date: 2023-02-28 15:47:12 |
| 4 | * @LastEditors: yangwei | 4 | * @LastEditors: yangwei |
| 5 | * @LastEditTime: 2023-03-02 16:35:36 | 5 | * @LastEditTime: 2023-06-16 16:14:51 |
| 6 | * @FilePath: \bdcdj-web\src\views\lpb\lpbContent\ch.vue | 6 | * @FilePath: \bdcdj-web\src\views\lpb\lpbContent\ch.vue |
| 7 | * @Description: | 7 | * @Description: |
| 8 | * | 8 | * |
| ... | @@ -37,7 +37,7 @@ | ... | @@ -37,7 +37,7 @@ |
| 37 | :data-qszt="hs.qszt" | 37 | :data-qszt="hs.qszt" |
| 38 | ref="hBsm" | 38 | ref="hBsm" |
| 39 | :key="hsIndex" | 39 | :key="hsIndex" |
| 40 | style="border-color: rgb(230, 230, 230)" | 40 | :style="{'border-color': borderColor}" |
| 41 | :class="hs.select ? 'tdSelect' : ''" | 41 | :class="hs.select ? 'tdSelect' : ''" |
| 42 | @click="handleClickH($event.target, hs.bsm, hs)" | 42 | @click="handleClickH($event.target, hs.bsm, hs)" |
| 43 | @dblclick="dbclick(hs.bsm)" | 43 | @dblclick="dbclick(hs.bsm)" |
| ... | @@ -82,7 +82,12 @@ | ... | @@ -82,7 +82,12 @@ |
| 82 | <script> | 82 | <script> |
| 83 | export default { | 83 | export default { |
| 84 | name: "BdcdjWebCh", | 84 | name: "BdcdjWebCh", |
| 85 | inject: ["openMenu", "selectAll"], | 85 | inject: { |
| 86 | openMenu:{value:'openMenu',default:null}, | ||
| 87 | selectAll:{value:'selectAll',default:null}, | ||
| 88 | changeChoosedObj:{value:'changeChoosedObj',default:null}, | ||
| 89 | clearChangeChoosedObj:{value:'clearChangeChoosedObj',default:null} | ||
| 90 | }, | ||
| 86 | props: { | 91 | props: { |
| 87 | ch: { | 92 | ch: { |
| 88 | type: Array, | 93 | type: Array, |
| ... | @@ -101,6 +106,8 @@ export default { | ... | @@ -101,6 +106,8 @@ export default { |
| 101 | hqsztList: [], | 106 | hqsztList: [], |
| 102 | //区分单双击事件的定时器 | 107 | //区分单双击事件的定时器 |
| 103 | time: null, | 108 | time: null, |
| 109 | // 边框颜色 | ||
| 110 | borderColor:'rgb(230, 230, 230)' | ||
| 104 | }; | 111 | }; |
| 105 | }, | 112 | }, |
| 106 | mounted() {}, | 113 | mounted() {}, |
| ... | @@ -108,48 +115,32 @@ export default { | ... | @@ -108,48 +115,32 @@ export default { |
| 108 | // 层选中事件 | 115 | // 层选中事件 |
| 109 | handleClickC(e, item) { | 116 | handleClickC(e, item) { |
| 110 | //判断点击的层是否选中 | 117 | //判断点击的层是否选中 |
| 111 | if (e.target.className.indexOf("tdSelect") == -1) { | 118 | // if (e.target.className.indexOf("tdSelect") == -1) { |
| 112 | //未选中→选中 | 119 | // //未选中→选中 |
| 113 | e.target.className += " tdSelect"; //加边框 | 120 | // e.target.className += " tdSelect"; //加边框 |
| 114 | this.cbsmList.push(item.bsm); | 121 | // this.cbsmList.push(item.bsm); |
| 115 | } else { | 122 | // } else { |
| 116 | //选中→未选中 | 123 | // //选中→未选中 |
| 117 | e.target.className = "floor"; | 124 | // e.target.className = "floor"; |
| 118 | this.cbsmList = this.cbsmList.filter((i) => i != item.bsm); | 125 | // this.cbsmList = this.cbsmList.filter((i) => i != item.bsm); |
| 119 | } | 126 | // } |
| 120 | // this.$parent.getCbsm(this.cbsmList); | 127 | // this.$parent.getCbsm(this.cbsmList); |
| 121 | }, | 128 | }, |
| 122 | //户单击事件 | 129 | //户单击事件 |
| 123 | handleClickH(e, bsm, hs) { | 130 | handleClickH(e, bsm, hs) { |
| 124 | let self = this; | ||
| 125 | // 开启延时器,200ms的间隔区分单击和双击,解决双击时执行两次单击事件 | ||
| 126 | clearTimeout(self.time); | ||
| 127 | self.time = setTimeout(() => { | ||
| 128 | // this.closeMenu(); | ||
| 129 | //判断点击的户是否选中 | ||
| 130 | if (!hs.select) { | ||
| 131 | //未选中→选中 | ||
| 132 | hs.select = true; //加边框 | ||
| 133 | this.hbsmList.push(bsm); // 将户bsm放进hbsmList | ||
| 134 | this.hqsztList.push(hs.qszt); // 将户qszt放进hqsztList | ||
| 135 | } else { | ||
| 136 | //选中→未选中 | ||
| 137 | hs.select = false; | ||
| 138 | this.hbsmList = this.hbsmList.filter((i) => i != bsm); | ||
| 139 | this.hqsztList = this.hqsztList.filter((i) => i != hs.qszt); | ||
| 140 | } | ||
| 141 | }, 200); | ||
| 142 | }, | 131 | }, |
| 143 | // 户单元状态点击事件 | 132 | // 户单元状态点击事件 |
| 144 | hDyztClick(e, bsm, hs) { | 133 | hDyztClick(e, bsm, hs) { |
| 145 | this.handleClickH(e.target.parentNode, bsm, hs); | 134 | // this.handleClickH(e.target.parentNode, bsm, hs); |
| 146 | }, | 135 | }, |
| 147 | //户双击事件 | 136 | //户双击事件 |
| 148 | dbclick(bsm) { | 137 | dbclick(bsm) { |
| 149 | clearTimeout(this.time); | 138 | // clearTimeout(this.time); |
| 150 | }, | 139 | }, |
| 151 | //幢单元全选/反选 | 140 | //幢单元全选/反选 |
| 152 | zdySelectAll(val) { | 141 | zdySelectAll(val,flag) { |
| 142 | // 手动点击全部取消选中 | ||
| 143 | !flag && this.clearChangeChoosedObj() | ||
| 153 | this.ch.forEach((c) => { | 144 | this.ch.forEach((c) => { |
| 154 | c.hs.forEach((h) => { | 145 | c.hs.forEach((h) => { |
| 155 | if (val) { | 146 | if (val) { |
| ... | @@ -158,10 +149,16 @@ export default { | ... | @@ -158,10 +149,16 @@ export default { |
| 158 | this.hbsmList.push(h.bsm) | 149 | this.hbsmList.push(h.bsm) |
| 159 | } else { | 150 | } else { |
| 160 | h.select = false; | 151 | h.select = false; |
| 152 | this.borderColor = 'rgb(230, 230, 230)' | ||
| 161 | this.hbsmList = [] | 153 | this.hbsmList = [] |
| 162 | } | 154 | } |
| 163 | }); | 155 | }); |
| 164 | }); | 156 | }); |
| 157 | this.$refs.hBsm && this.$refs.hBsm.forEach((item) => { | ||
| 158 | // item.style.borderColor = this.borderColor | ||
| 159 | item.style.backgroundColor = '#fff'; | ||
| 160 | // item.style.border = `1px solid ${this.borderColor}` | ||
| 161 | }); | ||
| 165 | }, | 162 | }, |
| 166 | }, | 163 | }, |
| 167 | watch: { | 164 | watch: { |
| ... | @@ -172,6 +169,34 @@ export default { | ... | @@ -172,6 +169,34 @@ export default { |
| 172 | immediate: true, | 169 | immediate: true, |
| 173 | deep: true, | 170 | deep: true, |
| 174 | }, | 171 | }, |
| 172 | changeChoosedObj: { | ||
| 173 | handler(val) { | ||
| 174 | debugger | ||
| 175 | //清除选中户 | ||
| 176 | this.borderColor = 'rgb(230, 230, 230)'; | ||
| 177 | this.zdySelectAll(false,true) | ||
| 178 | if (val.bsms.length) { | ||
| 179 | this.$refs.hBsm.forEach((item) => { | ||
| 180 | val.bsms.forEach((i,ind) => { | ||
| 181 | if (item.dataset.bsm == i) { | ||
| 182 | if (ind == 0) { | ||
| 183 | //定位到第一个户所在位置 | ||
| 184 | window.lpbContent.$refs.lpbContent.scrollTop = item.offsetTop; | ||
| 185 | window.lpbContent.$refs.lpbContent.scrollLeft = item.offsetLeft; | ||
| 186 | } | ||
| 187 | item.style.border = '1px solid '+ val.color; | ||
| 188 | // item.style.backgroundColor = val.color; | ||
| 189 | } | ||
| 190 | }); | ||
| 191 | }); | ||
| 192 | }else{ | ||
| 193 | this.borderColor = 'rgb(230, 230, 230)' | ||
| 194 | } | ||
| 195 | |||
| 196 | }, | ||
| 197 | immediate: true, | ||
| 198 | deep: true, | ||
| 199 | }, | ||
| 175 | }, | 200 | }, |
| 176 | }; | 201 | }; |
| 177 | </script> | 202 | </script> |
| ... | @@ -181,16 +206,26 @@ export default { | ... | @@ -181,16 +206,26 @@ export default { |
| 181 | display: flex; | 206 | display: flex; |
| 182 | flex-direction: column-reverse; | 207 | flex-direction: column-reverse; |
| 183 | .chTable { | 208 | .chTable { |
| 184 | margin-left: -1px; | 209 | // margin-left: -1px; |
| 185 | border-color: #e4ebf4 !important; | 210 | border-color: #e4ebf4 !important; |
| 186 | border-collapse: collapse; | 211 | border-collapse: collapse; |
| 187 | border-spacing: 0; | 212 | border-spacing: 0; |
| 188 | // position: relative; | 213 | // position: relative; |
| 189 | tr { | 214 | tr { |
| 215 | .floor { | ||
| 216 | min-width: 56px; | ||
| 217 | background: #e8f2ff; | ||
| 218 | border: 1px solid #acbae8; | ||
| 219 | } | ||
| 220 | &:first-child { | ||
| 221 | .floor { | ||
| 222 | border-radius: 4px 0px 0px 1px; | ||
| 223 | } | ||
| 224 | } | ||
| 190 | td { | 225 | td { |
| 191 | min-width: 138px; | 226 | min-width: 138px; |
| 192 | height: 72px; | 227 | height: 64px; |
| 193 | line-height: 72px; | 228 | line-height: 64px; |
| 194 | text-align: center; | 229 | text-align: center; |
| 195 | cursor: pointer; | 230 | cursor: pointer; |
| 196 | position: relative; | 231 | position: relative; |
| ... | @@ -204,7 +239,7 @@ export default { | ... | @@ -204,7 +239,7 @@ export default { |
| 204 | left: 6px; | 239 | left: 6px; |
| 205 | top: 6px; | 240 | top: 6px; |
| 206 | border: 1px solid; | 241 | border: 1px solid; |
| 207 | border-radius: 8px; | 242 | border-radius: 3px 0px 3px 0px; |
| 208 | } | 243 | } |
| 209 | .lin { | 244 | .lin { |
| 210 | color: #f7b500; | 245 | color: #f7b500; |
| ... | @@ -223,7 +258,7 @@ export default { | ... | @@ -223,7 +258,7 @@ export default { |
| 223 | width: 138px; | 258 | width: 138px; |
| 224 | height: 18px; | 259 | height: 18px; |
| 225 | position: absolute; | 260 | position: absolute; |
| 226 | bottom: 32px; | 261 | bottom: 28px; |
| 227 | box-sizing: border-box; | 262 | box-sizing: border-box; |
| 228 | padding: 0 6px; | 263 | padding: 0 6px; |
| 229 | li { | 264 | li { |
| ... | @@ -239,7 +274,8 @@ export default { | ... | @@ -239,7 +274,8 @@ export default { |
| 239 | } | 274 | } |
| 240 | } | 275 | } |
| 241 | .tdSelect { | 276 | .tdSelect { |
| 242 | border: 1px solid #006cff !important; | 277 | border: 1px solid ; |
| 278 | border-color: #5A78DE !important; | ||
| 243 | background-image: url("./images/tdSelect.png"); | 279 | background-image: url("./images/tdSelect.png"); |
| 244 | background-repeat: no-repeat; | 280 | background-repeat: no-repeat; |
| 245 | background-position: right top; | 281 | background-position: right top; | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="lpbContent-wrap" ref="lpbContentWrap"> | 2 | <div class="lpbContent-wrap" ref="lpbContentWrap"> |
| 3 | <div class="lpbContent"> | 3 | <div class="lpbContent" ref="lpbContent"> |
| 4 | <!-- 纵向倒序排列 逻辑幢位于独立幢单元和独立层户的上方 --> | 4 | <!-- 纵向倒序排列 逻辑幢位于独立幢单元和独立层户的上方 --> |
| 5 | <div class="ch-zdy-wrap"> | 5 | <div class="ch-zdy-wrap"> |
| 6 | <!-- 幢单元 --> | 6 | <!-- 幢单元 --> |
| ... | @@ -13,9 +13,10 @@ | ... | @@ -13,9 +13,10 @@ |
| 13 | </div> | 13 | </div> |
| 14 | <!-- 自然幢名称 --> | 14 | <!-- 自然幢名称 --> |
| 15 | <p class="lpb-xmmc"> | 15 | <p class="lpb-xmmc"> |
| 16 | <el-checkbox @change="zdySelectAll($event)">{{ | 16 | <!-- <el-checkbox @change="zdySelectAll($event)">{{ |
| 17 | lpbData.xmmc | 17 | lpbData.xmmc |
| 18 | }}</el-checkbox> | 18 | }}</el-checkbox> --> |
| 19 | {{lpbData.xmmc}} | ||
| 19 | </p> | 20 | </p> |
| 20 | <!-- 右键菜单 --> | 21 | <!-- 右键菜单 --> |
| 21 | <ul | 22 | <ul |
| ... | @@ -38,6 +39,8 @@ export default { | ... | @@ -38,6 +39,8 @@ export default { |
| 38 | return { | 39 | return { |
| 39 | openMenu: this.openMenu, | 40 | openMenu: this.openMenu, |
| 40 | selectAll: this.selectAllObj, | 41 | selectAll: this.selectAllObj, |
| 42 | changeChoosedObj:this.changeChoosedObj, | ||
| 43 | clearChangeChoosedObj:this.clearChangeChoosedObj | ||
| 41 | }; | 44 | }; |
| 42 | }, | 45 | }, |
| 43 | name: "", | 46 | name: "", |
| ... | @@ -72,20 +75,27 @@ export default { | ... | @@ -72,20 +75,27 @@ export default { |
| 72 | //右键菜单定位位置 | 75 | //右键菜单定位位置 |
| 73 | lpbChLeft: 100, | 76 | lpbChLeft: 100, |
| 74 | lpbChTop: 100, | 77 | lpbChTop: 100, |
| 78 | // 改变户选中状态 | ||
| 79 | changeChoosedObj:{ | ||
| 80 | bsms:[], | ||
| 81 | color:'' | ||
| 82 | } | ||
| 75 | }; | 83 | }; |
| 76 | }, | 84 | }, |
| 77 | mounted() { | 85 | mounted() { |
| 78 | this.getLpb("dfc08a0cc6a25188990ea53d1d2c500e"); | 86 | this.getLpb(this.zrzbsm); |
| 79 | // setTimeout(() => { | 87 | window.lpbContent = this; |
| 80 | // //让滚动条滚动至最下面 -6是横向滚动条的高度 | ||
| 81 | // this.$refs.lpbContent.scrollTop = | ||
| 82 | // this.$refs.lpbContent.scrollHeight - | ||
| 83 | // this.$refs.lpbContent.clientHeight - | ||
| 84 | // 6; | ||
| 85 | // }, 200); | ||
| 86 | // window.lpbContent = this; | ||
| 87 | }, | 88 | }, |
| 88 | methods: { | 89 | methods: { |
| 90 | // 改变户选中状态 | ||
| 91 | changeChoosed(bsms, color){ | ||
| 92 | debugger | ||
| 93 | this.changeChoosedObj.bsms = bsms; | ||
| 94 | this.changeChoosedObj.color = color; | ||
| 95 | }, | ||
| 96 | clearChangeChoosedObj(){ | ||
| 97 | this.changeChoosedObj.bsms = []; | ||
| 98 | }, | ||
| 89 | //全选户 | 99 | //全选户 |
| 90 | zdySelectAll(val) { | 100 | zdySelectAll(val) { |
| 91 | this.selectAllObj.selectAll = val; | 101 | this.selectAllObj.selectAll = val; |
| ... | @@ -113,7 +123,7 @@ export default { | ... | @@ -113,7 +123,7 @@ export default { |
| 113 | openMenu(e, item, type) { | 123 | openMenu(e, item, type) { |
| 114 | this.lpbChLeft = e.pageX - 96; | 124 | this.lpbChLeft = e.pageX - 96; |
| 115 | this.lpbChTop = e.pageY - 23; | 125 | this.lpbChTop = e.pageY - 23; |
| 116 | this.lpbChVisible = true; | 126 | // this.lpbChVisible = true; |
| 117 | }, | 127 | }, |
| 118 | //关闭户右键菜单 | 128 | //关闭户右键菜单 |
| 119 | closeMenu() { | 129 | closeMenu() { | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | --> | 10 | --> |
| 11 | <template> | 11 | <template> |
| 12 | <div class="ljzs-wrap"> | 12 | <div class="ljzs-wrap"> |
| 13 | <div v-for="ljzarr in ljzsCptd" :key="ljzarr[0].bsm"> | 13 | <div v-for="ljzarr in ljzsCptd" :style="{'margin-bottom': ljzarr.length == 1 ? '34px':'80px'}" :key="ljzarr[0].bsm"> |
| 14 | <!-- 多个同起始层逻辑幢 横向排列 --> | 14 | <!-- 多个同起始层逻辑幢 横向排列 --> |
| 15 | <div class="ch-zdy-wrap" v-if="ljzarr.length > 1"> | 15 | <div class="ch-zdy-wrap" v-if="ljzarr.length > 1"> |
| 16 | <div v-for="ljz in ljzarr" :key="ljz.ljzmc" class="same-floor-ljz"> | 16 | <div v-for="ljz in ljzarr" :key="ljz.ljzmc" class="same-floor-ljz"> |
| ... | @@ -94,7 +94,7 @@ export default { | ... | @@ -94,7 +94,7 @@ export default { |
| 94 | display: flex; | 94 | display: flex; |
| 95 | flex-direction: column-reverse; | 95 | flex-direction: column-reverse; |
| 96 | > div { | 96 | > div { |
| 97 | margin-bottom: 80px; | 97 | // margin-bottom: 80px; |
| 98 | margin-right: 20px; | 98 | margin-right: 20px; |
| 99 | display: flex; | 99 | display: flex; |
| 100 | flex-direction: column; | 100 | flex-direction: column; |
| ... | @@ -110,8 +110,8 @@ export default { | ... | @@ -110,8 +110,8 @@ export default { |
| 110 | } | 110 | } |
| 111 | .ljz-xmmc { | 111 | .ljz-xmmc { |
| 112 | position: absolute; | 112 | position: absolute; |
| 113 | width: calc(100% + 1px); | 113 | width: calc(100% - 4px); |
| 114 | bottom: -60px; | 114 | bottom: -34px; |
| 115 | } | 115 | } |
| 116 | } | 116 | } |
| 117 | .cs-none { | 117 | .cs-none { | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | * @Author: yangwei | 2 | * @Author: yangwei |
| 3 | * @Date: 2023-02-28 16:29:04 | 3 | * @Date: 2023-02-28 16:29:04 |
| 4 | * @LastEditors: yangwei | 4 | * @LastEditors: yangwei |
| 5 | * @LastEditTime: 2023-03-02 14:45:19 | 5 | * @LastEditTime: 2023-06-08 13:58:58 |
| 6 | * @FilePath: \bdcdj-web\src\views\lpb\lpbContent\zdys.vue | 6 | * @FilePath: \bdcdj-web\src\views\lpb\lpbContent\zdys.vue |
| 7 | * @Description: | 7 | * @Description: |
| 8 | * | 8 | * |
| ... | @@ -13,9 +13,10 @@ | ... | @@ -13,9 +13,10 @@ |
| 13 | <div v-for="zdy in realZdys" :key="zdy.bsm"> | 13 | <div v-for="zdy in realZdys" :key="zdy.bsm"> |
| 14 | <!-- 幢单元名称 --> | 14 | <!-- 幢单元名称 --> |
| 15 | <p class="lpb-xmmc"> | 15 | <p class="lpb-xmmc"> |
| 16 | <el-checkbox @change="zdySelectAll($event,zdy.bsm)">{{ | 16 | <!-- <el-checkbox @change="zdySelectAll($event,zdy.bsm)">{{ |
| 17 | zdy.zdymc | 17 | zdy.zdymc |
| 18 | }}</el-checkbox> | 18 | }}</el-checkbox> --> |
| 19 | {{zdy.zdymc}} | ||
| 19 | </p> | 20 | </p> |
| 20 | <!-- 每个幢单元下的层户 --> | 21 | <!-- 每个幢单元下的层户 --> |
| 21 | <ch-cpn :ref="zdy.bsm" :ch="zdy.cs" /> | 22 | <ch-cpn :ref="zdy.bsm" :ch="zdy.cs" /> | ... | ... |
-
Please register or sign in to post a comment