Browse Source

对接=卡主

feature
dai 3 years ago
parent
commit
87bc798de5
  1. 54
      src/assets/scss/dataBoard/listBox.scss
  2. 5
      src/assets/scss/dataBoard/renfang/index.scss
  3. 1027
      src/router/index.js
  4. 2
      src/views/dataBoard/cpts/bread.vue
  5. 167
      src/views/dataBoard/cpts/map/popup.vue
  6. 2
      src/views/dataBoard/cpts/popup.vue
  7. 819
      src/views/dataBoard/cpts/tb.vue
  8. 2
      src/views/dataBoard/renfang/cpts/bread.vue
  9. 27
      src/views/dataBoard/renfang/cpts/fwgl.vue
  10. 21
      src/views/dataBoard/renfang/cpts/jmgl.vue
  11. 179
      src/views/dataBoard/renfang/cpts/rkyj.vue
  12. 241
      src/views/dataBoard/renfang/house/list.vue
  13. 31
      src/views/dataBoard/renfang/index.vue
  14. 284
      src/views/dataBoard/renfang/resi/class.vue
  15. 225
      src/views/dataBoard/renfang/resi/list.vue
  16. 223
      src/views/dataBoard/renfang/warn/building.vue
  17. 199
      src/views/dataBoard/renfang/warn/resi.vue

54
src/assets/scss/dataBoard/listBox.scss

@ -1,15 +1,55 @@
.m-listbox-main{
.g-pgi {
min-height: 100%;
box-sizing: border-box;
margin-left:16px;
.g-listbox{
}
padding: 0 25px 50px;
}
.m-title {
display: flex;
align-items: center;
margin-top: 15px;
}
.title_img {
width: 17px;
height: 17px;
}
.tip_title {
margin-left: 8px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 22px;
}
.title_line {
margin-left: 8px;
width: 244px;
height: 1px;
background: linear-gradient(270deg, rgba(55, 198, 255, 0.1) 0%, #1995ff 100%);
}
.second-select {
margin: 0 10px 0 10px;
::v-deep .el-input {
width: 180px;
height: 36px;
.el-input__inner {
height: 100%;
padding: 0 10px;
color: #fff;
line-height: 36px;
background: #06186d;
border: 1px solid #1a64cc;
}
.el-icon-arrow-up:before {
content: "\e78f";
}
// .el-select__caret:before {
// content: '\E790'
// }
}
}
}

5
src/assets/scss/dataBoard/renfang/index.scss

@ -267,7 +267,10 @@
height: 115px;
}
.m-rkyj {
height: 253px;
height: 423px;
&.z-shrink {
height: 253px;
}
}
.m-per {

1027
src/router/index.js

File diff suppressed because it is too large

2
src/views/dataBoard/cpts/bread.vue

@ -31,7 +31,7 @@ import ScreenLoading from "./loading";
import { mapGetters } from "vuex";
export default {
name: "table",
name: "bread",
components: {
ScreenLoading,
},

167
src/views/dataBoard/cpts/map/popup.vue

@ -2,50 +2,58 @@
<div class="m-pop" ref="pop" @mousewheel="handleWheel" v-show="!hidden">
<div class="info">
<div v-if="type === '1'">
<div class="u-info-title">居民信息</div>
<div class="u-info-title">
<img
class="img"
src="@/assets/images/shuju/renfang/jm-logo.png"
alt
/>
<span>居民信息</span>
</div>
<div @click="handleClickBtn('watch-resi')" class="more-btn">
查看更多 >
</div>
<div class="item">
姓名
<span class="field">姓名</span>
<span>{{ info.user_name || "--" }}</span>
</div>
<div class="item">
所属网格
<span class="field">所属网格</span>
<span>{{ info.grid || "--" }}</span>
</div>
<div class="item">
所属小区
<span class="field">所属小区</span>
<span>{{ info.house || "--" }}</span>
</div>
<div class="item">
手机号
<span class="field">手机号</span>
<span>{{ info.telephone || "--" }}</span>
</div>
<div class="item">
性别
<span class="field">性别</span>
<span>{{ info.genderShow || "--" }}</span>
</div>
<div class="item">
身份证号
<span class="field">身份证号</span>
<span>{{ info.idcard || "--" }}</span>
</div>
<div class="item">
工作单位
<span class="field">工作单位</span>
<span>{{ info.workunit || "--" }}</span>
</div>
<div class="item">
人户状况
<span class="field">人户状况</span>
<span>{{ info.household || "--" }}</span>
</div>
<div class="item">
人员类别
<span class="field">人员类别</span>
<span>{{ info.classtype || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-resi')" class="more-btn">
更多
</div>
<div class="operate">
<div
@click="handleClickBtn('create-demand')"
@ -69,103 +77,127 @@
</div>
<div v-if="type === '2'">
<div class="u-info-title">小区信息</div>
<div class="u-info-title">
<img
class="img"
src="@/assets/images/shuju/renfang/house-logo.png"
alt
/>
<span>小区信息</span>
</div>
<div class="item">
所属组织
<span class="field">所属组织</span>
<span>{{ info.community || "--" }}</span>
</div>
<div class="item">
所属网格
<span class="field">所属网格</span>
<span>{{ info.grid || "--" }}</span>
</div>
<div class="item">
小区名称
<span class="field">小区名称</span>
<span>{{ info.village_name || "--" }}</span>
</div>
<div class="item">
关联物业
<span class="field">关联物业</span>
<span>{{ info.property || "--" }}</span>
</div>
<div class="item">
实有楼栋
<span class="field">实有楼栋</span>
<span>{{ info.building || "--" }}</span>
</div>
</div>
<div v-if="type === '3'">
<div class="u-info-title">楼栋信息</div>
<div class="u-info-title">
<img
class="img"
src="@/assets/images/shuju/renfang/house-logo.png"
alt
/>
<span>楼栋信息</span>
</div>
<div class="item">
所属小区
<span class="field">所属小区</span>
<span>{{ info.village_name || "--" }}</span>
</div>
<div class="item">
楼栋名称
<span class="field">楼栋名称</span>
<span>{{ info.village_name || "--" }}</span>
</div>
<div class="item">
楼栋类型
<span class="field">楼栋类型</span>
<span>{{ info.building_type || "--" }}</span>
</div>
<div class="item">
单元数
<span class="field">单元数</span>
<span>{{ info.unit_count || "--" }}</span>
</div>
<div class="item">
层数
<span class="field">层数</span>
<span>{{ info.levels_count || "--" }}</span>
</div>
<div class="item">
总户数
<span class="field">总户数</span>
<span>{{ info.households || "--" }}</span>
</div>
<div class="item">
人口数
<span class="field">人口数</span>
<span>{{ info.resident_count || "--" }}</span>
</div>
<div class="item">
楼长姓名
<span class="field">楼长姓名</span>
<span>{{ info.hm_name || "--" }}</span>
</div>
<div class="item">
楼长电话
<span class="field">楼长电话</span>
<span>{{ info.hm_phone || "--" }}</span>
</div>
</div>
<div v-if="type === '4'">
<div class="u-info-title">房屋信息</div>
<div class="u-info-title">
<img
class="img"
src="@/assets/images/shuju/renfang/house-logo.png"
alt
/>
<span>房屋信息</span>
</div>
<div @click="handleClickBtn('watch-house')" class="more-btn">
查看更多 >
</div>
<div class="item">
房屋名称
<span class="field">房屋名称</span>
<span>{{ info.title || "--" }}</span>
</div>
<div class="item">
房屋类型
<span class="field">房屋类型</span>
<span>{{ info.house_type || "--" }}</span>
</div>
<div class="item">
房屋用途
<span class="field">房屋用途</span>
<span>{{ info.house_usage || "--" }}</span>
</div>
<div class="item">
房屋状态
<span class="field">房屋状态</span>
<span>{{ info.house_state || "--" }}</span>
</div>
<div class="item">
房主姓名
<span class="field">房主姓名</span>
<span>{{ info.holder_name || "--" }}</span>
</div>
<div class="item">
联系方式
<span class="field">联系方式</span>
<span>{{ info.holder_phone || "--" }}</span>
</div>
<div class="item">
房主身份证
<span class="field">房主身份证</span>
<span>{{ info.holder_idcard || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-house')" class="more-btn">
更多
</div>
</div>
</div>
</div>
@ -247,7 +279,9 @@ export default {
.m-pop {
@include scrollBar2;
width: 450px;
box-sizing: border-box;
padding: 10px 0;
width: 350px;
color: #fff;
font-size: 14px;
line-height: 20px;
@ -258,10 +292,19 @@ export default {
padding: 10px;
.u-info-title {
margin-bottom: 10px;
font-size: 24px;
font-weight: bold;
color: #69efff;
line-height: 40px;
line-height: 20px;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
img {
position: relative;
top: 2px;
margin-right: 6px;
width: 16px;
vertical-align: top;
}
}
.item-pics {
@ -278,11 +321,18 @@ export default {
}
.item {
@include toe;
font-size: 18px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 34px;
color: rgba(#ffffff, 0.85);
line-height: 28px;
.field {
display: inline-block;
margin-right: 5px;
min-width: 90px;
text-align: right;
color: rgba(#ffffff, 0.65);
}
}
.list {
@ -313,18 +363,15 @@ export default {
.more-btn {
position: absolute;
right: 20px;
top: 30px;
width: 60px;
top: 28px;
width: 80px;
height: 24px;
background: rgba(221, 141, 2, 0.57);
border: 1px solid #dd8d02;
border-radius: 2px;
font-size: 16px;
font-family: PingFang SC;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 24px;
text-align: center;
color: #1a95ff;
line-height: 20px;
font-size: 14px;
text-align: right;
cursor: pointer;
}

2
src/views/dataBoard/cpts/popup.vue

@ -65,6 +65,8 @@ export default {
.m-pop {
@include shield;
position: absolute;
height: auto;
background-color: rgba(#000, 0.65);
.wrap {

819
src/views/dataBoard/cpts/tb.vue

@ -1,431 +1,424 @@
<template>
<div>
<div v-if="showTitle"
class="m-title">
<img class="title_img"
src="@/assets/images/index/list-logo.png"
alt />
<div class="tip_title">{{titleName}}</div>
<div class="title_line"></div>
</div>
<div class="m-table">
<table class="g-table"
border="0"
cellspacing="0"
cellpadding="0">
<col :align="item.align"
:width="item.width"
:key="'col' + index"
v-for="(item, index) in colList" />
<thead>
<tr class="g-table-header">
<th class="g-table-header-th"
v-for="item in header"
:key="item">
{{ item }}
</th>
</tr>
</thead>
<!-- <el-scrollbar :style="{height:treeHeight}"
<div>
<div class="m-table">
<table class="table" border="0" cellspacing="0" cellpadding="0">
<col
:align="item.align"
:width="item.width"
:key="'col' + index"
v-for="(item, index) in colList"
/>
<thead>
<tr class="table-header">
<th
class="table-header-th"
v-for="item in header"
:key="item"
>
{{ item }}
</th>
</tr>
</thead>
<!-- <el-scrollbar :style="{height:treeHeight}"
class="g-scrollar"> -->
<tbody v-if="!loading"
class="g-table-body">
<tr class="g-table-body-tr"
v-for="(value, index) in list"
:key="index"
@click="handleClickRow(index)">
<td class="td"
v-for="(item, indexs) in value"
:key="indexs">
<div v-if="typeof item === 'string' || typeof item === 'number'"
:title="item">
{{ item }}
</div>
<div v-if="typeof item === 'object' && item.type === 'img'">
<!-- <span>{{ item.type+ item.src}}</span> -->
<img style="width: 18px; height: 18px"
:src="item.src"
alt="" />
</div>
<div v-if="typeof item === 'object' && item && item.type == 'index'">
<img v-if="highlightTop3 && index == 0"
src="@/assets/img/shuju/top/1.png"
alt="" />
<img v-else-if="highlightTop3 && index == 1"
src="@/assets/img/shuju/top/2.png"
alt="" />
<img v-else-if="highlightTop3 && index == 2"
src="@/assets/img/shuju/top/3.png"
alt="" />
<span v-else>{{ index + 1 }}</span>
</div>
<a v-else-if="
typeof item === 'object' && item && item.type == 'operate'
"
v-for="btn in item.list"
:key="'operate' + index + btn"
@click.stop="handleClickBtn(index, btn)">{{ btn }}</a>
<a v-else-if="
typeof item === 'object' && item && item.type == 'people'
"
@click="handleClickPeople(item)">{{ item.name }}</a>
</td>
</tr>
</tbody>
<!-- </el-scrollbar> -->
</table>
<div class="table-status"
v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status"
v-if="list.length == 0 && !loading">
<div class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</div>
<div class="m-pagination">
<el-pagination :current-page="pageNo"
:page-size="pageSize"
background
:total="total"
layout="total">
</el-pagination>
<el-pagination :current-page="pageNo"
:page-size="pageSize"
background
:total="total"
layout="prev, pager, next, jumper, sizes"
@current-change="handlePageNoChange"
@size-change="handleSizeChange">
</el-pagination>
</div>
</div>
<tbody v-if="!loading" class="table-body">
<tr
class="table-body-tr"
v-for="(value, index) in list"
:key="index"
@click="handleClickRow(index)"
>
<td
class="td"
v-for="(item, indexs) in value"
:key="indexs"
>
<div
v-if="
typeof item === 'string' ||
typeof item === 'number'
"
:title="item"
>
{{ item }}
</div>
<div
v-if="
typeof item === 'object' &&
item.type === 'img'
"
>
<!-- <span>{{ item.type+ item.src}}</span> -->
<img
style="width: 18px; height: 18px"
:src="item.src"
alt=""
/>
</div>
<div
v-if="
typeof item === 'object' &&
item &&
item.type == 'index'
"
>
<img
v-if="highlightTop3 && index == 0"
src="@/assets/img/shuju/top/1.png"
alt=""
/>
<img
v-else-if="highlightTop3 && index == 1"
src="@/assets/img/shuju/top/2.png"
alt=""
/>
<img
v-else-if="highlightTop3 && index == 2"
src="@/assets/img/shuju/top/3.png"
alt=""
/>
<span v-else>{{ index + 1 }}</span>
</div>
<a
v-else-if="
typeof item === 'object' &&
item &&
item.type == 'operate'
"
fixed
v-for="btn in item.list"
:key="'operate' + index + btn"
@click.stop="handleClickBtn(index, btn)"
>{{ btn }}</a
>
<a
v-else-if="
typeof item === 'object' &&
item &&
item.type == 'people'
"
@click="handleClickPeople(item)"
>{{ item.name }}</a
>
</td>
</tr>
</tbody>
<!-- </el-scrollbar> -->
</table>
<div class="table-status" v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status" v-if="list.length == 0 && !loading">
<div class="no-data">
<img
src="@/assets/img/modules/visual/noData.png"
class="no-data-img"
/>
</div>
</div>
</div>
<div class="m-pagination">
<el-pagination
:current-page="pageNo"
:page-size="pageSize"
background
:total="total"
layout="total"
>
</el-pagination>
<el-pagination
:current-page="pageNo"
:page-size="pageSize"
background
:total="total"
layout="prev, pager, next, jumper, sizes"
@current-change="handlePageNoChange"
@size-change="handleSizeChange"
>
</el-pagination>
</div>
</div>
</template>
<script>
import ScreenLoading from "./loading";
import { mapGetters } from 'vuex'
import { mapGetters } from "vuex";
export default {
name: "table",
components: {
ScreenLoading,
},
props: {
//true
showTitle: {
type: Boolean,
default: true
},
//
titleName: {
type: String,
default: "列表"
},
//
colList: {
type: Array,
default: () => {
return [
// {
// align: "center",
// width: "50%",
// },
];
},
},
//
header: {
type: Array,
required: false,
default: () => {
return [];
},
},
//
list: {
type: Array,
required: false,
default: () => {
return [];
},
},
//
total: {
type: Number,
default: 0
},
loading: {
type: Boolean,
default: true,
},
highlightTop3: {
type: Boolean,
default: false,
},
},
data () {
return {
pageSize: 10,
pageNo: 1,
};
},
watch: {},
computed: {
treeHeight () {
return this.$store.state.inIframe ? this.clientHeight - 300 + this.iframeHeight + 'px' : this.clientHeight - 300 + 'px'
},
treeWidth () {
return document.documentElement.clientWidth
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
mounted () { },
created () { },
methods: {
//
handleClickRow (index) {
this.$emit("handleClickRow", index);
},
handleClickBtn (index, type) {
this.$emit("operate", index, type);
},
handleClickPeople (item) {
this.$router.push({
path: `/main-shuju/visual-basicinfo-people/${item.uid}`,
});
},
handlePageNoChange (val) {
this.$emit("handlePageNoChange", val);
},
handleSizeChange (val) {
this.$emit("handleSizeChange", val);
},
},
name: "list",
components: {
ScreenLoading,
},
props: {
//
colList: {
type: Array,
default: () => {
return [
// {
// align: "center",
// width: "50%",
// },
];
},
},
//
header: {
type: Array,
required: false,
default: () => {
return [];
},
},
//
list: {
type: Array,
required: false,
default: () => {
return [];
},
},
//
total: {
type: Number,
default: 0,
},
loading: {
type: Boolean,
default: true,
},
highlightTop3: {
type: Boolean,
default: false,
},
},
data() {
return {
pageSize: 10,
pageNo: 1,
};
},
watch: {},
computed: {
treeHeight() {
return this.$store.state.inIframe
? this.clientHeight - 300 + this.iframeHeight + "px"
: this.clientHeight - 300 + "px";
},
treeWidth() {
return document.documentElement.clientWidth;
},
...mapGetters(["clientHeight", "iframeHeight"]),
},
mounted() {},
created() {},
methods: {
//
handleClickRow(index) {
this.$emit("handleClickRow", index);
},
handleClickBtn(index, type) {
this.$emit("operate", index, type);
},
handleClickPeople(item) {
this.$router.push({
path: `/main-shuju/visual-basicinfo-people/${item.uid}`,
});
},
handlePageNoChange(val) {
this.$emit("handlePageNoChange", val);
},
handleSizeChange(val) {
this.$emit("handleSizeChange", val);
},
},
};
</script>
<style lang="scss" scoped>
.m-title {
display: flex;
align-items: center;
// margin-left: 24px;
.title_img {
width: 17px;
height: 17px;
}
.tip_title {
margin-left: 8px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 22px;
}
.title_line {
margin-left: 8px;
width: 244px;
height: 1px;
background: linear-gradient(
270deg,
rgba(55, 198, 255, 0.1) 0%,
#1995ff 100%
);
}
}
.m-table {
margin-top: 9px;
width: 100%;
.g-table {
box-sizing: border-box;
width: 100%;
height: 100%;
border: none;
table-layout: fixed;
&-header {
width: 100%;
height: 56px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
line-height: 20px;
&-th {
text-align: left;
border: none;
padding: 18px 5px 18px 24px;
// width: calc(100% / 5);
}
}
&-body {
box-sizing: border-box;
width: 100%;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 20px;
&-tr {
box-sizing: border-box;
width: 100%;
min-height: 56px;
.td {
box-sizing: border-box;
text-align: left;
border: none;
padding: 18px 5px 18px 24px;
> div {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-wrap: normal;
}
a {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #1a95ff;
line-height: 20px;
cursor: pointer;
}
}
}
&-tr:nth-child(2n-1) {
background: rgba(26, 149, 255, 0.15);
}
// &-tr:hover {
// background: url("../../../../assets/img/modules/visual/hover-bac.png")
// no-repeat center;
// background-size: 100% 100%;
// }
}
/deep/ .el-scrollbar__wrap {
width: 100% !important;
overflow-x: hidden !important;
}
}
.g-scrollar {
width: 100%;
}
.table-status {
position: relative;
height: 300px;
//
.no-data {
&-img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
}
}
margin-top: 9px;
// width: 100%;
overflow: hidden;
min-height: 300px;
.table {
box-sizing: border-box;
width: 100%;
border: none;
table-layout: fixed;
&-header {
width: 100%;
height: 56px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
line-height: 20px;
&-th {
text-align: left;
border: none;
padding: 18px 5px 18px 24px;
// width: calc(100% / 5);
}
}
&-body {
box-sizing: border-box;
width: 100%;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 20px;
&-tr {
box-sizing: border-box;
width: 100%;
min-height: 56px;
.td {
box-sizing: border-box;
text-align: left;
border: none;
padding: 18px 5px 18px 24px;
> div {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-wrap: normal;
}
a {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #1a95ff;
line-height: 20px;
cursor: pointer;
}
}
}
&-tr:nth-child(2n-1) {
background: rgba(26, 149, 255, 0.15);
}
// &-tr:hover {
// background: url("../../../../assets/img/modules/visual/hover-bac.png")
// no-repeat center;
// background-size: 100% 100%;
// }
}
/deep/ .el-scrollbar__wrap {
width: 100% !important;
overflow-x: hidden !important;
}
}
.g-scrollar {
width: 100%;
}
.table-status {
position: relative;
height: 300px;
//
.no-data {
&-img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
}
}
}
.m-pagination {
box-sizing: border-box;
margin-top: 24px;
width: 100%;
height: 40px;
display: flex;
justify-content: space-between;
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #1a95ff;
}
/deep/ .el-pagination .el-pager li {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination .btn-prev {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination .btn-next {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination__editor.el-input .el-input__inner {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination .el-select .el-input .el-input__inner {
margin-left: 14px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
box-sizing: border-box;
margin-top: 24px;
width: 100%;
height: 40px;
display: flex;
justify-content: space-between;
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #1a95ff;
}
/deep/ .el-pagination .el-pager li {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination .btn-prev {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination .btn-next {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination__editor.el-input .el-input__inner {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
/deep/ .el-pagination .el-select .el-input .el-input__inner {
margin-left: 14px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
}
}
</style>

2
src/views/dataBoard/renfang/cpts/bread.vue

@ -31,7 +31,7 @@
import { mapGetters } from "vuex";
export default {
name: "table",
name: "bread",
components: {},
props: {
//

27
src/views/dataBoard/renfang/cpts/fwgl.vue

@ -25,7 +25,7 @@
</div>
<div class="pie-right">
<div class="right-row">
<div class="row-item">
<div class="row-item" @click="toListPage">
<div class="item-one">
<img
class="img"
@ -40,7 +40,10 @@
</div>
</div>
<div class="row-item marginleft10">
<div
class="row-item marginleft10"
@click="toListPage('self_dwelling')"
>
<div class="item-one">
<img
class="img"
@ -57,7 +60,10 @@
</div>
</div>
</div>
<div class="right-row margintop18">
<div
class="right-row margintop18"
@click="toListPage('lease')"
>
<div class="row-item">
<div class="item-one">
<img
@ -73,7 +79,10 @@
</div>
</div>
<div class="row-item marginleft10">
<div
class="row-item marginleft10"
@click="toListPage('unused')"
>
<div class="item-one">
<img
class="img"
@ -168,6 +177,16 @@ export default {
},
},
methods: {
toListPage(type = "") {
this.$router.push({
path: "/dataBoard/renfang/house-list",
query: {
org_id: this.orgId,
type,
},
});
},
pieInitOk() {
this.pieInitState = true;
},

21
src/views/dataBoard/renfang/cpts/jmgl.vue

@ -21,7 +21,7 @@
</div>
<div class="pie-right">
<div class="right-row">
<div class="row-item">
<div class="row-item" @click="toResiListPage">
<div class="item-one">
<img
class="img"
@ -36,7 +36,10 @@
</div>
</div>
<div class="row-item marginleft10">
<div
class="row-item marginleft10"
@click="toResiListPage('inhabitant')"
>
<div class="item-one">
<img
class="img"
@ -54,7 +57,10 @@
</div>
</div>
<div class="right-row margintop18">
<div class="row-item">
<div
class="row-item"
@click="toResiListPage('floating')"
>
<div class="item-one">
<img
class="img"
@ -150,6 +156,15 @@ export default {
this.getData();
},
methods: {
toResiListPage(type = "") {
this.$router.push({
path: "/dataBoard/renfang/resi-list",
query: {
org_id: this.orgId,
type,
},
});
},
pieInitOk() {
this.pieInitState = true;
},

179
src/views/dataBoard/renfang/cpts/rkyj.vue

@ -1,16 +1,16 @@
<template>
<div class="rkyj-main">
<div class="m-list">
<div class="title">
<div>预警居民类别</div>
<div>
黄色预警(5-10)<img
黄色预警<img
class="img"
src="@/assets/images/shuju/renfang/remark.png"
alt
/>
</div>
<div>
红色预警(10人以上)<img
红色预警<img
class="img"
src="@/assets/images/shuju/renfang/remark.png"
alt
@ -18,35 +18,41 @@
</div>
</div>
<div class="list">
<el-scrollbar class="g-scrollar">
<div v-for="(dataitem, index) in list" :key="index" class="item">
<div class="item-title">{{ dataitem.type_name }}</div>
<div
v-for="(dataitem, index) in listData"
:key="index"
class="item"
class="item-num"
@click="
toListPage('yellow', dataitem.type, dataitem.type_name)
"
>
<div class="item-title">{{ dataitem.type }}</div>
<div class="item-num">
<img
class="img"
src="@/assets/images/shuju/renfang/warning-yellow.png"
alt
/>{{ dataitem.yellow }}
</div>
<div class="item-num">
<img
class="img"
src="@/assets/images/shuju/renfang/warning-red.png"
alt
/>{{ dataitem.red }}
</div>
<img
class="img"
src="@/assets/images/shuju/renfang/warning-yellow.png"
alt
/>{{ dataitem.yellow_warn }} {{
dataitem.yellow_threshold
}}
</div>
</el-scrollbar>
<div
class="item-num"
@click="
toListPage('red', dataitem.type, dataitem.type_name)
"
>
<img
class="img"
src="@/assets/images/shuju/renfang/warning-red.png"
alt
/>{{ dataitem.red_warn }} {{ dataitem.red_threshold }}
</div>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPostBi } from "@/js/dai/request-bipass";
export default {
props: {
@ -57,47 +63,63 @@ export default {
},
data() {
return {
listData: [
{
type: "低保人员",
yellow: 200,
red: 5,
},
{
type: "失业人员",
yellow: 2,
red: 500,
},
list: [
{
type: "老年人",
yellow: 2000,
red: 5,
type: "",
type_name: "--",
yellow_warn: "--",
red_warn: "--",
yellow_threshold: "--",
red_threshold: "--",
},
{
type: "空巢老人",
yellow: 2,
red: 5,
],
};
},
mounted() {
this.getList();
},
methods: {
toListPage(level, type_id = "", type_name) {
this.$router.push({
path: "/dataBoard/renfang/warn-building",
query: {
org_id: this.orgId,
type_id,
type_name,
level,
},
});
},
async getList() {
const url = "resident_class_warn";
const { data, code, msg } = await requestPostBi(
url,
{
type: "大病",
yellow: 2,
red: 5,
queryParam: {
org_id: this.orgId,
},
},
{
type: "慢病",
yellow: 2,
red: 5,
},
],
};
mockId: 60040087,
}
);
if (code === 0 && data && Array.isArray(data) && data.length > 0) {
this.list = data;
} else {
this.$message.error(msg);
}
},
},
mounted() {},
methods: {},
};
</script>
<style lang="scss" scoped>
.rkyj-main {
.m-list {
padding-bottom: 20px;
.title {
margin: 24px 0 24px 24px;
display: flex;
@ -120,37 +142,34 @@ export default {
// width: 100% !important;
overflow-x: hidden !important;
}
.g-scrollar {
// width: 100%;
height: 168px;
.item {
padding: 12px 20px 12px 24px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
display: flex;
justify-content: space-between;
align-items: center;
.item {
padding: 12px 20px 12px 24px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
display: flex;
justify-content: space-between;
align-items: center;
.item-title {
flex: 0 0 60px;
}
.item-title {
width: 33%;
}
.item-num {
flex: 0 0 100px;
// text-align: right;
.img {
width: 32px;
height: 32px;
margin-right: 8px;
}
.item-num {
width: 33%;
text-align: center;
.img {
display: inline-block;
width: 32px;
height: 32px;
margin-right: 8px;
}
}
.item:nth-child(2n-1) {
background: rgba(26, 149, 255, 0.15);
}
}
.item:nth-child(2n-1) {
background: rgba(26, 149, 255, 0.15);
}
}
}

241
src/views/dataBoard/renfang/house/list.vue

@ -0,0 +1,241 @@
<template>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
<house-details
@close="displayedHouseId = ''"
:house-id="displayedHouseId"
v-if="displayedHouseId"
/>
</div>
</template>
<script>
import cptTb from "@/views/dataBoard/cpts/tb";
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import houseDetails from "@/views/dataBoard/cpts/house-details";
import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "house-list",
components: {
cptTb,
cptBread,
houseDetails,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
meta: {
title: "房屋列表",
},
},
],
tableTitle: "房屋列表",
searchName: "",
orgLevel: "",
org_id: "",
houseType: "", //
loading: true,
pageSize: 10,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"所属小区",
"所属楼栋",
"单元号",
"门牌号",
"房屋类型",
"房屋用途",
"房屋状态",
"房主姓名",
"联系电话",
"证件号",
"操作",
],
displayedHouseId: "",
};
},
mounted() {
this.org_id = getQueryPara("org_id");
this.houseType = getQueryPara("type");
this.getList();
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedHouseId = item.house_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, houseType, pageNo, pageSize } = this;
this.loading = true;
const url = "house_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
houseType,
pageNo,
pageSize,
},
},
{
mockId: 60068051,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.village ? item.village : "--",
item.building ? item.building : "--",
item.unit ? item.unit : "--",
item.door ? item.door : "--",
item.house_type ? item.house_type : "--",
item.house_usage ? item.house_usage : "--",
item.house_state ? item.house_state : "--",
item.holder_name ? item.holder_name : "--",
item.holder_phone ? item.holder_phone : "--",
item.holder_idcard ? item.holder_idcard : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style>

31
src/views/dataBoard/renfang/index.vue

@ -261,6 +261,7 @@
<div class="list">
<div
class="item"
@click="toResiClassPage(item.type_id, item.name)"
:key="item.code + index"
v-for="(item, index) in resiCategoryData"
>
@ -291,7 +292,14 @@
</div>
<div class="g-right">
<div class="m-box" v-if="orgLevel == 'dis'">
<div
class="m-box"
v-if="
orgLevel == 'district' ||
orgLevel == 'street' ||
orgLevel == 'city'
"
>
<div class="box-title">
<img
src="~@/assets/images/shuju/main/card-title-bg-480.png"
@ -314,7 +322,15 @@
<div class="box-title-txt">人口预警</div>
</div>
<div class="m-subbox m-rkyj">
<div
class="m-subbox m-rkyj"
:class="{
'z-shrink':
orgLevel == 'district' ||
orgLevel == 'street' ||
orgLevel == 'city',
}"
>
<rkyj :orgId="orgData.id"></rkyj>
</div>
</div>
@ -454,6 +470,17 @@ export default {
this.loading = true;
},
toResiClassPage(type_id = "", type_name) {
this.$router.push({
path: "/dataBoard/renfang/resi-class",
query: {
org_id: this.orgId,
type_id,
type_name,
},
});
},
handleClickDotBtn(type, info) {
console.log("handleClickDotBtn", type, info);
if (type == "watch-resi") {

284
src/views/dataBoard/renfang/resi/class.vue

@ -0,0 +1,284 @@
<template>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
<div class="second-select">
<el-select
v-model="subclassId"
:popper-append-to-body="false"
placeholder="请选择"
>
<el-option
v-for="item in subclassList"
:key="item.value"
:label="item.label"
:value="item.value"
@click.native="handleChangeDate(item.value)"
>
</el-option>
</el-select>
</div>
</div>
<div class="g-listbox">
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
</div>
<resi-details
@close="displayedResiId = ''"
:resi-id="displayedResiId"
v-if="displayedResiId"
/>
</div>
</template>
<script>
import cptTb from "@/views/dataBoard/cpts/tb";
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import resiDetails from "@/views/dataBoard/cpts/resi-details";
import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "resi-list",
components: {
cptTb,
cptBread,
resiDetails,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
meta: {
title: "居民类别",
},
},
],
tableTitle: "居民类别",
searchName: "",
orgLevel: "",
org_id: "",
type_id: "", //
loading: true,
pageSize: 10,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"姓名",
"所属网格",
"所属房屋",
"手机",
"身份证",
"性别",
"出生日期",
"操作",
],
displayedResiId: "",
subclassList: [],
subclassId: "",
};
},
mounted() {
this.org_id = getQueryPara("org_id");
this.type_id = getQueryPara("type_id");
const type_name = getQueryPara("type_name");
this.getList();
this.breadList[1].meta.title = type_name;
if (this.type_id == "6") {
this.getSubclass();
}
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedResiId = item.user_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.getList();
},
async getSubclass() {
const { org_id, type_id } = this;
this.loading = true;
const url = "resident_class_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
},
},
{
mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.subclassList = data.map((item, index) => {
return {
label: item.label,
value: item.value,
};
});
} else {
this.$message.error(msg);
}
},
async getList() {
const { org_id, type_id, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_class_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
pageNo,
pageSize,
},
},
{
mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.user_name ? item.user_name : "--",
item.grid ? item.grid : "--",
item.house ? item.house : "--",
item.telephone ? item.telephone : "--",
item.idcard ? item.idcard : "--",
item.gender ? item.gender : "--",
item.birthday ? item.birthday : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style>

225
src/views/dataBoard/renfang/resi/list.vue

@ -0,0 +1,225 @@
<template>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<div class="g-listbox">
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
</div>
<resi-details
@close="displayedResiId = ''"
:resi-id="displayedResiId"
v-if="displayedResiId"
/>
</div>
</template>
<script>
import cptTb from "@/views/dataBoard/cpts/tb";
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import resiDetails from "@/views/dataBoard/cpts/resi-details";
import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "resi-list",
components: {
cptTb,
cptBread,
resiDetails,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
meta: {
title: "居民列表",
},
},
],
tableTitle: "居民列表",
searchName: "",
orgLevel: "",
org_id: "",
resiType: "", //
loading: true,
pageSize: 10,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"姓名",
"所属网格",
"所属房屋",
"手机",
"身份证",
"性别",
"出生日期",
"操作",
],
displayedResiId: "",
};
},
mounted() {
this.org_id = getQueryPara("org_id");
this.resiType = getQueryPara("type");
this.getList();
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedResiId = item.user_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, resiType, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
resiType,
pageNo,
pageSize,
},
},
{
mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.user_name ? item.user_name : "--",
item.grid ? item.grid : "--",
item.house ? item.house : "--",
item.telephone ? item.telephone : "--",
item.idcard ? item.idcard : "--",
item.gender ? item.gender : "--",
item.birthday ? item.birthday : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style>

223
src/views/dataBoard/renfang/warn/building.vue

@ -0,0 +1,223 @@
<template>
<div class="g-pgi">
<!-- 组织路由 -->
<cpt-bread
:separator="'/'"
@tap="handleClickBreadItem"
:breadList="breadList"
></cpt-bread>
<div v-if="!displayedId">
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
</div>
<resi-list :building_id="displayedId" v-if="displayedId" />
</div>
</template>
<script>
import cptTb from "@/views/dataBoard/cpts/tb";
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import resiList from "./resi";
import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "house-list",
components: {
cptTb,
cptBread,
resiList,
},
data() {
return {
breadList: [
{
type: "back",
meta: {
title: "人房总览",
},
},
{
type: "building",
meta: {
title: "预警楼栋列表",
},
},
],
tableTitle: "预警楼栋列表",
searchName: "",
orgLevel: "",
org_id: "",
type_id: "",
type_name: "",
level: "",
loading: true,
pageSize: 10,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
],
header: [
"序号",
"所属网格",
"所属小区",
"楼号",
"预警人数",
"操作",
],
displayedId: "",
};
},
mounted() {
this.org_id = getQueryPara("org_id");
this.level = getQueryPara("level");
this.type_id = getQueryPara("type_id");
const type_name = getQueryPara("type_name");
this.breadList[1].meta.title = type_name + "预警楼栋";
this.getList();
},
methods: {
handleClickBreadItem({ item }) {
if (item.type == "back") {
this.$router.back();
} else if (item.type == "building") {
this.displayedId = "";
const { breadList } = this;
this.breadList = breadList.slice(0, 2);
}
},
handleSearch() {},
showInfo(index) {
let item = this.srcTableData[index];
this.displayedId = building_id;
this.breadList.push({
meta: {
title: "预警人员列表",
},
});
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, type_id, level, pageNo, pageSize } = this;
this.loading = true;
const url =
level == "yellow"
? "resident_warn_building_y"
: "resident_warn_building_r";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
pageNo,
pageSize,
},
},
{
mockId: 60071540,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.grid ? item.grid : "--",
item.building ? item.building : "--",
item.unit ? item.unit : "--",
item.door ? item.door : "--",
{ type: "operate", list: ["查看人员"] },
];
});
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style>

199
src/views/dataBoard/renfang/warn/resi.vue

@ -0,0 +1,199 @@
<template>
<div class="g-pgi">
<div class="m-title">
<img
class="title_img"
src="@/assets/images/index/list-logo.png"
alt
/>
<div class="tip_title">{{ tableTitle }}</div>
<div class="title_line"></div>
</div>
<cpt-tb
:col-list="colList"
:loading="loading"
:header="header"
:list="list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="showInfo"
></cpt-tb>
<resi-details
@close="displayedResiId = ''"
:resi-id="displayedResiId"
v-if="displayedResiId"
/>
</div>
</template>
<script>
import cptTb from "@/views/dataBoard/cpts/tb";
import cptBread from "@/views/dataBoard/renfang/cpts/bread";
import resiDetails from "@/views/dataBoard/cpts/resi-details";
import { requestPostBi } from "@/js/dai/request-bipass";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
name: "resi-list",
props: {
building_id: {
type: String,
default: "",
},
},
components: {
cptTb,
cptBread,
resiDetails,
},
data() {
return {
tableTitle: "预警人员列表",
searchName: "",
orgLevel: "",
org_id: "",
type_id: "", //
loading: true,
pageSize: 10,
pageNo: 1,
total: 0,
srcTableData: [],
list: [],
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "20%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"姓名",
"所属网格",
"所属房屋",
"手机",
"身份证",
"性别",
"出生日期",
"操作",
],
displayedResiId: "",
};
},
mounted() {
this.getList();
},
methods: {
showInfo(index) {
let item = this.srcTableData[index];
this.displayedResiId = item.user_id;
},
handlePageNoChange(pageNo) {
this.pageNo = pageNo;
this.getList();
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.getList();
},
async getList() {
const { org_id, type_id, pageNo, pageSize } = this;
this.loading = true;
const url = "resident_class_list";
const { data, code, msg } = await requestPostBi(
url,
{
queryParam: {
org_id,
type_id,
pageNo,
pageSize,
},
},
{
mockId: 60069169,
}
);
this.loading = false;
if (code === 0) {
this.srcTableData = data;
// this.total = data.total;
this.list = data.map((item, index) => {
return [
index + 1,
item.user_name ? item.user_name : "--",
item.grid ? item.grid : "--",
item.house ? item.house : "--",
item.telephone ? item.telephone : "--",
item.idcard ? item.idcard : "--",
item.gender ? item.gender : "--",
item.birthday ? item.birthday : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg);
}
},
},
destroyed() {
console.log("我已经离开了!");
},
};
</script>
<style lang="scss" src="@/assets/scss/dataBoard/listBox.scss" scoped></style>
Loading…
Cancel
Save