dai 3 years ago
parent
commit
fce25e3e55
  1. 707
      src/assets/scss/modules/board/detailBox.scss
  2. 28
      src/js/columns/board/houseList.js
  3. 11
      src/js/columns/columns.js
  4. 237
      src/views/modules/visual/basicinfo/houseStatic/houseList copy.vue
  5. 259
      src/views/modules/visual/basicinfo/houseStatic/houseList.vue
  6. 122
      src/views/modules/visual/basicinfo/houseStatic/houseMore.vue
  7. 25
      src/views/modules/visual/basicinfo/peopleList.vue
  8. 431
      src/views/modules/visual/cpts/tb copy 2.vue
  9. 453
      src/views/modules/visual/cpts/tb copy 3.vue
  10. 52
      src/views/modules/visual/cpts/tb.vue

707
src/assets/scss/modules/board/detailBox.scss

@ -0,0 +1,707 @@
@import "../../c/config";
@import "../../c/function";
// @import "./c/common";
.m-pop {
@include shield;
background: rgba(0,0,0,0.65);
overflow-y: auto;
.wrap {
position: relative;
margin: 120px auto;
background: #00023A;
box-shadow: inset 0px 0px 40px 0px rgba(26,149,255,0.45);
border-radius: 4px;
border: 1px solid #1A95FF;
width: 820px;
padding:24px 16px 24px 16px;
.g-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: 160px;
height: 1px;
background: linear-gradient(
270deg,
rgba(55, 198, 255, 0.1) 0%,
#1995ff 100%
);
}
}
.g-close {
position: absolute;
top: 24px;
right: 19px;
cursor: pointer;
}
.g-list {
display: flex;
flex-wrap: wrap;
margin-top:48px;
margin-left:63px;
.item {
position: relative;
box-sizing: border-box;
padding: 0 8px;
width: 33%;
color: #fff;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 24px;
margin-bottom: 16px;
display: flex;
.item-field{
color: rgba(255, 255, 255, 0.85);
flex:0 0 70px;
text-align: right;
}
}
.item1 {
width: 98%;
}
.item2 {
width: 49%;
}
}
.g-btn{
display: flex;
justify-content: flex-end;
.b-close{
margin-top:13px;
// margin-right:16px;
text-align: center;
width: 60px;
height: 32px;
border-radius: 2px;
border: 1px solid rgba(26,149,255,0.45);
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #1A95FF;
line-height: 32px;
cursor: pointer;
}
}
.tabs {
margin-top: 30px;
display: flex;
align-items: center;
padding-left: 20px;
.tab-btn {
width: 30px;
text-align: center;
cursor: pointer;
}
.tab {
@include toe;
margin: 0 5px;
min-width: 80px;
padding: 0 8px;
height: 36px;
background: rgba(255, 255, 255, 0);
border: 1px solid #1257c9;
box-shadow: 0 0 10px 0 inset #1257c9;
border-radius: 2px;
text-align: center;
font-size: 17px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 36px;
cursor: pointer;
transition: all ease 0.5s;
&.z-on {
background: linear-gradient(90deg, #1a5afd, #009cff);
box-shadow: none;
}
}
}
}
}
.g-cpt {
display: flex;
flex-wrap: wrap;
justify-content: center;
margin-top: 5px;
.g-l {
width: 850px;
margin-bottom: 20px;
}
.g-r {
margin-left: 6px;
width: calc(100% - 850px - 6px);
min-width: 850px;
}
}
.m-people {
position: relative;
.title {
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
}
.more {
// position: absolute;
margin-left: auto;
margin-top: -10px;
width: 90px;
height: 29px;
line-height: 29px;
background: linear-gradient(90deg, #1a5afd, #26c4ff);
border-radius: 15px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
text-align: center;
cursor: pointer;
}
.ren {
position: relative;
margin-top: 0;
padding-bottom: 15px;
.ren-name {
position: absolute;
left: 0;
right: 0;
top: -10px;
width: 400px;
margin: 0 auto;
font-size: 24px;
line-height: 40px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
> span {
@include toe;
display: block;
text-align: center;
}
> img {
display: block;
margin: 3px auto;
}
}
.pic-ren {
margin: 0 auto;
display: block;
pointer-events: none;
}
.ren-prop {
position: absolute;
width: 100px;
height: 120px;
&.z-1 {
left: 170px;
top: 10px;
}
&.z-6 {
right: 170px;
top: 10px;
}
&.z-2 {
left: 55px;
top: 110px;
}
&.z-5 {
right: 55px;
top: 110px;
}
&.z-3 {
left: 115px;
top: 245px;
}
&.z-4 {
right: 115px;
top: 245px;
}
> img {
margin: 0 auto;
}
> span {
display: block;
font-size: 16px;
line-height: 30px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
text-align: center;
}
&:hover {
.ren-cnt {
display: block;
}
}
.ren-cnt {
position: absolute;
z-index: 10;
display: none;
box-sizing: border-box;
top: 60px;
left: 90px;
padding: 10px;
width: 162px;
min-height: 60px;
background: rgba(#b7c7e0, 0.24);
line-height: 20px;
h5 {
margin: 0;
font-size: 16px;
font-family: PingFang SC;
font-weight: 500;
color: #fefefe;
}
p {
margin: 0;
margin-top: 4px;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #fefefe;
}
}
}
}
}
.m-relation {
position: relative;
margin-top: 10px;
.title {
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
}
.info {
position: relative;
width: 410px;
height: 312px;
margin: 0 auto;
.huzhu {
position: relative;
.huzhu-bg {
display: block;
}
.huzhu-ico {
position: absolute;
display: block;
top: 90px;
left: 0;
right: 0;
margin: 0 auto;
}
.huzhu-name {
position: absolute;
display: block;
top: 170px;
width: 100%;
font-size: 24px;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 30px;
text-align: center;
}
> p {
position: absolute;
top: 200px;
font-size: 16px;
width: 100%;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
text-align: center;
}
}
.rel {
position: absolute;
width: 128px;
height: 38px;
.rel-line {
position: absolute;
z-index: 1;
}
.rel-bg {
height: 70px;
width: 128px;
}
.rel-text {
@include toe;
position: absolute;
z-index: 2;
top: 0;
left: 0;
width: 100%;
padding: 7px 10px;
line-height: 24px;
text-align: center;
color: #fff;
font-size: 18px;
font-family: PingFang SC;
font-weight: 500;
cursor: pointer;
.rel-name {
font-size: 14px;
}
}
&.z-zuo-2 {
top: 124px;
left: -33px - 128px;
.rel-line {
left: 127px;
top: -8px;
}
}
&.z-you-2 {
top: 124px;
right: -33px - 128px;
.rel-line {
right: 127px;
top: -8px;
}
}
&.z-zuo-1 {
top: 25px;
left: -33px - 128px;
.rel-line {
top: 17px;
left: 131px;
}
}
&.z-you-1 {
top: 25px;
right: -33px - 128px;
.rel-line {
top: 17px;
right: 131px;
}
}
&.z-zuo-3 {
bottom: 45px;
left: -33px - 128px;
.rel-line {
left: 131px;
bottom: -15px;
}
}
&.z-you-3 {
bottom: 45px;
right: -33px - 128px;
.rel-line {
right: 131px;
bottom: -15px;
}
}
}
}
}
.m-tb {
.title {
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
}
.tb {
height: 300px;
overflow-y: auto;
@include scrollBar;
}
}
.m-detail-main {
display: flex;
justify-content: space-between;
margin-top: 10px;
.m-list {
width: calc(50% - 3px);
&.z-only {
width: 100%;
}
.title {
margin-bottom: 10px;
padding: 4px 2px;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
align-items: center;
img {
display: block;
margin-right: 5px;
}
span {
display: block;
}
a {
display: block;
color: rgba(#fff, 0.5);
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
margin-right: 10px;
cursor: pointer;
&.z-on {
color: #fff;
cursor: default;
&:hover {
color: #fff;
text-decoration: none;
}
}
&:hover {
color: rgba(#fff, 0.5);
text-decoration: underline;
}
}
}
.list-wrap {
height: 480px;
overflow-y: auto;
@include scrollBar;
.list {
.item {
position: relative;
background-color: #104ba4;
padding: 10px 20px;
margin-bottom: 4px;
cursor: pointer;
transition: all ease 0.1s;
.item-row {
display: flex;
justify-content: space-between;
align-items: center;
.item-l {
width: 25%;
}
.item-r {
width: 75%;
}
&:hover {
&::before {
content: "";
position: absolute;
display: block;
left: 0;
top: 0;
bottom: 0;
width: 6px;
background: linear-gradient(270deg, #0336ff, #01b4ff);
border-radius: 2px;
}
&::after {
content: "";
position: absolute;
display: block;
left: 15px;
top: 0;
bottom: 0;
margin: auto 0;
width: 0;
height: 0;
border-width: 10px;
border-style: solid;
border-color: transparent transparent transparent #20edff;
}
}
}
.item-point {
text-align: center;
padding-left: 10%;
height: 16px;
font-size: 22px;
font-family: PingFang SC;
font-weight: bold;
color: #ffffff;
line-height: 12px;
}
.item-title {
padding: 10px 0;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 24px;
}
.item-date {
padding: 10px 0;
border-top: 1px dashed #8398d9;
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
opacity: 0.67;
}
&:hover {
box-shadow: 0 0 30px 5px inset #22f;
background-color: darken(#104ba4, 12);
}
}
}
}
}
}
.m-pagination {
box-sizing: border-box;
margin-top: 20px;
width: 100%;
height: 40px;
display: flex;
justify-content: flex-end;
/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
background: #0266d1;
color: #000d3f;
}
/deep/ .el-pagination .el-pager li {
background: #002e74;
}
/deep/ .el-pagination .btn-prev {
background: #002e74;
}
/deep/ .el-pagination .btn-next {
background: #002e74;
}
}
.m-hint {
position: relative;
height: 300px;
// 暂无数据
img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
}

28
src/js/columns/board/houseList.js

@ -0,0 +1,28 @@
export default [
{
key: 'index',
title: '序号',
display: ['table'],
fixed: false,
block: true,
width: 120
},
{
key: 'neighborHoodName',
title: '所属小区',
display: ['table'],
fixed: false,
block: true,
width: 100
},
{
key: 'buildingName',
title: '所属楼宇',
display: [ 'table'],
block: true,
width: 60
},
]

11
src/js/columns/columns.js

@ -25,6 +25,11 @@ import GuidanceList from './pcWork/guidanceList'
//数据统计
import OperStaticList from './dataReport/operStatic'
//房屋信息
import houseList from './board/houseList'
export default {
CustomerList: CustomerList['list'], // 客户管理——客户管理——客户列表
ConfigForm: CustomerList['configForm'], // 客户管理——客户管理——配置
@ -53,5 +58,9 @@ export default {
guidanceList:GuidanceList,
//数据统计
operStaticList:OperStaticList
operStaticList:OperStaticList,
//房屋信息
houseList:houseList
}

237
src/views/modules/visual/basicinfo/houseStatic/houseList copy.vue

@ -0,0 +1,237 @@
<template>
<div class="div_people_search">
<div class="list_box">
<div class="info_tip">
<img src="@/assets/img/shuju/title-tip.png"
alt />
<div class="tip_title">{{tableTitle}}</div>
</div>
<div class="warning-table">
<div class="table">
<div class="table-header">
<div class="td td1">序号</div>
<div class="td td2">所属小区</div>
<div class="td td2">所属楼栋</div>
<div class="td td1">单元号</div>
<div class="td td1">门牌号</div>
<div class="td td1">房屋类型</div>
<div class="td td1">房屋用途</div>
<div class="td td1">房屋状态</div>
<div class="td td1">房主姓名</div>
<div class="td td2">房主电话</div>
<div class="td td2">证件号</div>
<div class="td td1">操作</div>
</div>
<div v-if="!loading && tableData.length> 0"
class="table-body">
<div class="table-body-tr"
v-for="(item,index) in tableData"
:key='index'>
<div class="td td1">{{index+1}} </div>
<div class="td td2">{{item.neighborHoodName}} </div>
<div class="td td2">{{item.buildingName}} </div>
<div class="td td1">{{item.unitNum}} </div>
<!-- <div class="td td1">{{item.buildNum}} </div> -->
<div class="td td1">{{item.doorName}} </div>
<div class="td td1">{{item.houseType==='1'?'楼房':item.houseType==='2'?'平方':'别墅'}} </div>
<div class="td td1">{{item.purpose}} </div>
<div class="td td1">{{item.rentFlag}} </div>
<div class="td td1">{{item.ownerName}} </div>
<div class="td td2">{{item.ownerPhone}} </div>
<div class="td td2">{{item.ownerIdCard}} </div>
<div @click="handleToHouse(item)"
class="td td1 btn_detail">{{'查看'}} </div>
</div>
</div>
<div class="table-status"
v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status"
v-if="tableData.length == 0 && !loading">
<div class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</div>
</div>
<div class="pagination">
<el-pagination hide-on-single-page
background
layout="prev, pager, next, total"
:current-page="pageNo"
:page-size="pageSize"
:total="total"
@current-change="pageCurrentChangeHandle">
</el-pagination>
</div>
</div>
<house-more v-show="showedMoreInfo"
:info="info"
@close="showedMoreInfo = false" />
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import ScreenLoading from "@/views/modules/visual/cpts/loading";
import houseMore from "./houseMore";
export default {
name: "people-list",
components: {
ScreenLoading, houseMore
},
data () {
return {
showedMoreInfo: false,
tableTitle: '房屋列表',
loading: false,
tableData: [],
pageSize: 10,
pageNo: 1,
total: 0,
info: {}
};
},
mounted () {
this.tableData = []
this.loadList()
},
deactivated () {
},
methods: {
async loadList () {
this.loading = true
const url = "/gov/org/house/housestatislistdetail"
let params = {
orgId: this.orgId,
orgType: this.orgType,
rentType: this.rentType,
pageSize: this.pageSize,
pageNo: this.pageNo
}
const { data, code, msg } = await requestPost(url, params)
this.loading = false
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
},
//
handleToHouse (item) {
// this.toSubAgency('people', this.tableData[index].userId)
this.info = { ...item }
this.showedMoreInfo = true
},
pageCurrentChangeHandle (val) {
this.pageNo = val
this.loadList()
},
},
destroyed () {
console.log("我已经离开了!");
},
props: {
orgId: {
type: String,
default: "",
},
orgType: {
type: String,
default: "",
},
rentType: {
type: String,
default: "",
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>
<style
lang="scss"
src="@/assets/scss/modules/visual/searchPerson.scss"
scoped
></style>
<style lang="scss" scoped>
.div_search_list {
.el-input__inner[WarningColor="warning"] {
border-radius: 8px 0 0 8px;
height: 53px;
background-color: #01106800;
border: 2px solid #0082fb;
padding-left: 70px;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
}
}
.list_box {
width: 100%;
height: 780px;
margin: 0 auto;
}
.warning-table {
height: 640px;
}
.pagination {
padding-right: 0;
margin-top: 0;
text-align: right;
}
.g-bread {
padding: 10px 10px 15px;
::v-deep .el-breadcrumb__item {
font-size: 16px;
.el-breadcrumb__inner {
color: #fff;
}
}
::v-deep .el-breadcrumb__item:first-child {
.el-breadcrumb__inner {
color: #a0c3d9;
}
}
}
</style>

259
src/views/modules/visual/basicinfo/houseStatic/houseList.vue

@ -1,78 +1,25 @@
<template>
<div class="div_people_search">
<div class="list_box">
<div class="info_tip">
<img src="@/assets/img/shuju/title-tip.png"
alt />
<div class="tip_title">{{tableTitle}}</div>
</div>
<div class="warning-table">
<div class="table">
<div class="table-header">
<div class="td td1">序号</div>
<div class="td td2">所属小区</div>
<div class="td td2">所属楼栋</div>
<div class="td td1">单元号</div>
<div class="td td1">门牌号</div>
<div class="td td1">房屋类型</div>
<div class="td td1">房屋用途</div>
<div class="td td1">房屋状态</div>
<div class="td td1">房主姓名</div>
<div class="td td2">房主电话</div>
<div class="td td2">证件号</div>
<div class="td td1">操作</div>
</div>
<div v-if="!loading && tableData.length> 0"
class="table-body">
<div class="table-body-tr"
v-for="(item,index) in tableData"
:key='index'>
<div class="td td1">{{index+1}} </div>
<div class="td td2">{{item.neighborHoodName}} </div>
<div class="td td2">{{item.buildingName}} </div>
<div class="td td1">{{item.unitNum}} </div>
<!-- <div class="td td1">{{item.buildNum}} </div> -->
<div class="td td1">{{item.doorName}} </div>
<div class="td td1">{{item.houseType==='1'?'楼房':item.houseType==='2'?'平方':'别墅'}} </div>
<div class="td td1">{{item.purpose}} </div>
<div class="td td1">{{item.rentFlag}} </div>
<div class="td td1">{{item.ownerName}} </div>
<div class="td td2">{{item.ownerPhone}} </div>
<div class="td td2">{{item.ownerIdCard}} </div>
<div @click="handleToHouse(item)"
class="td td1 btn_detail">{{'查看'}} </div>
</div>
</div>
<div class="table-status"
v-if="loading">
<screen-loading>加载中</screen-loading>
</div>
<div class="table-status"
v-if="tableData.length == 0 && !loading">
<div class="no-data">
<img src="@/assets/img/modules/visual/noData.png"
class="no-data-img" />
</div>
</div>
</div>
</div>
<div class="pagination">
<el-pagination hide-on-single-page
background
layout="prev, pager, next, total"
:current-page="pageNo"
:page-size="pageSize"
:total="total"
@current-change="pageCurrentChangeHandle">
</el-pagination>
</div>
<div class="m-listbox-main">
<div class="g-listbox">
<!-- <cpt-tb column-type=""
ref="table"
:url="tableUrl"
:params="tableParams"
keyword="houseList"
:operations="operations"
:tableHeight="tableHeight"
@handleToHouse="handleToHouse">
</cpt-tb> -->
<cpt-tb :titleName="tableTitle"
:col-list="demand.colList"
:loading="demand.loading"
:header="demand.header"
:list="demand.list"
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="handleToHouse"></cpt-tb>
</div>
<house-more v-show="showedMoreInfo"
@ -84,44 +31,150 @@
<script>
import { requestPost } from "@/js/dai/request";
import { mapGetters } from "vuex";
import ScreenLoading from "@/views/modules/visual/cpts/loading";
import houseMore from "./houseMore";
import cptTb from "@/views/modules/visual/cpts/tb";
import CTable from '@c/CTable'
export default {
name: "people-list",
components: {
ScreenLoading, houseMore
ScreenLoading, houseMore, cptTb, CTable
},
data () {
return {
showedMoreInfo: false,
tableTitle: '房屋列表',
loading: false,
tableData: [],
pageSize: 10,
pageNo: 1,
total: 0,
info: {}
info: {},
demand: {
loading: true,
colList: [
{
align: "left",
width: "5%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "8%",
},
{
align: "left",
width: "8%",
},
{
align: "left",
width: "7%",
},
{
align: "left",
width: "7%",
},
{
align: "left",
width: "8%",
},
{
align: "left",
width: "8%",
},
{
align: "left",
width: "10%",
},
{
align: "left",
width: "15%",
},
{
align: "left",
width: "10%",
},
],
header: [
"序号",
"所属小区",
"所属楼栋",
"单元号",
"门牌号",
"房屋类型",
"房屋用途",
"房屋状态",
"房主姓名",
"房主电话",
"证件号",
"操作",
],
list: [],
},
//
tableUrl: '/gov/org/house/housestatislistdetail',
tableParams: {
orgId: this.orgId,
orgType: this.orgType,
rentType: this.rentType,
},
//
operations: [
{
lable: '查看', //
size: 'mini',
type: 'text',
slot: '',
plain: false,
methodName: 'handleToHouse', //
},
],
};
},
activated () {
this.$nextTick(() => {
// this.$refs.table.doLayout() //
})
},
mounted () {
this.tableData = []
this.loadList()
// this.$refs.table.loadData()
},
deactivated () {
},
computed: {
tableHeight () {
return this.clientHeight - 60 - 80 - 80 - 50
},
...mapGetters(['clientHeight'])
},
methods: {
async loadList () {
this.loading = true
this.demand.loading = true;
const url = "/gov/org/house/housestatislistdetail"
let params = {
orgId: this.orgId,
@ -132,29 +185,53 @@ export default {
}
const { data, code, msg } = await requestPost(url, params)
this.loading = false
this.demand.loading = false
if (code === 0) {
this.total = data.total
this.tableData = data.list
this.demand.list = data.list
this.demand.list = data.list.map((item, index) => {
return [
index + 1,
item.neighborHoodName ? item.neighborHoodName : "--",
item.buildingName ? item.buildingName : "--",
item.unitNum ? item.unitNum : "--",
item.doorName ? item.doorName : "--",
item.houseType ? item.houseType : "--",
item.purpose ? item.purpose : "--",
item.rentFlag ? item.rentFlag : "--",
item.ownerName ? item.ownerName : "--",
item.ownerPhone ? item.ownerPhone : "--",
item.ownerIdCard ? item.ownerIdCard : "--",
{ type: "operate", list: ["查看"] },
];
});
} else {
this.$message.error(msg)
}
},
//
handleToHouse (item) {
// this.toSubAgency('people', this.tableData[index].userId)
this.info = { ...item }
handleToHouse (index) {
this.info = { ... this.tableData[index] }
this.showedMoreInfo = true
},
pageCurrentChangeHandle (val) {
this.pageNo = val
this.loadList()
handlePageNoChange (pageNo) {
this.pageNo = pageNo
this.loadList(this.orgId, this.orgLevel)
},
handleSizeChange (pageSize) {
this.pageSize = pageSize
this.loadList(this.orgId, this.orgLevel)
},
},
destroyed () {
console.log("我已经离开了!");

122
src/views/modules/visual/basicinfo/houseStatic/houseMore.vue

@ -1,67 +1,75 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>更多信息</span>
<div class="g-title">
<img class="title_img"
src="@/assets/images/index/list-logo.png"
alt />
<div class="tip_title">房屋详情</div>
<div class="title_line"></div>
</div>
<div class="g-close"
@click="handleClose">
<i class="el-icon-close"
style="height:10px;width:10px;color:#1A95FF"></i>
</div>
<div class="g-list">
<div class="item item2">
<div class="item-field">所属小区</div>
<div>{{ info.neighborHoodName }}</div>
</div>
<div class="btn-close"
@click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
<div class="item item2">
<div class="item-field">所属楼栋</div>
<div>{{ info.buildingName }}</div>
</div>
<div class="item item2">
<div class="item-field">单元号</div>
<div>{{ info.unitNum }}</div>
</div>
<div class="item item2">
<div class="item-field">门牌号</div>
<div>{{ info. doorName}}</div>
</div>
<div class="item item2">
<div class="item-field">房屋类型</div>
<div>{{ info.houseType==='1'?'楼房':info.houseType==='2'?'平方':'别墅' }}</div>
</div>
<div class="item item2">
<div class="item-field">房屋用途</div>
<div>{{ info.purpose }}</div>
</div>
<div class="item item2">
<div class="item-field">房屋状态</div>
<div>{{ info. rentFlag==='1'?'出租':info.rentFlag==='0'?'自住':info.rentFlag==='2'?'闲置':'未出售'}}</div>
</div>
<div class="item item2">
<div class="item-field">房主姓名</div>
<div>{{ info. ownerName?info.ownerName:'--' }}</div>
</div>
<div class="item item2">
<div class="item-field">房主电话</div>
<div>{{ info. ownerPhone?info.ownerPhone:'--' }}</div>
</div>
<div class="item item2">
<div class="item-field">证件号</div>
<div>{{ info.ownerIdCard?info.ownerIdCard:'--' }}</div>
</div>
<div class="item item1">
<div class="item-field">备注</div>
<div>{{ info.remark?info.remark:'--' }}</div>
</div>
<div class="list">
<div class="item item2">
<span class="item-field">所属小区</span>
<span>{{ info.neighborHoodName }}</span>
</div>
<div class="item item2">
<span class="item-field">所属楼栋</span>
<span>{{ info.buildingName }}</span>
</div>
<div class="item item2">
<span class="item-field">单元号</span>
<span>{{ info.unitNum }}</span>
</div>
<div class="item item2">
<span class="item-field">门牌号</span>
<span>{{ info. doorName}}</span>
</div>
<div class="item item2">
<span class="item-field">房屋类型</span>
<span>{{ info.houseType==='1'?'楼房':info.houseType==='2'?'平方':'别墅' }}</span>
</div>
<div class="item item2">
<span class="item-field">房屋用途</span>
<span>{{ info.purpose }}</span>
</div>
<div class="item item2">
<span class="item-field">房屋状态</span>
<span>{{ info. rentFlag==='1'?'出租':info.rentFlag==='0'?'自住':info.rentFlag==='2'?'闲置':'未出售'}}</span>
</div>
<div class="item item2">
<span class="item-field">房主姓名</span>
<span>{{ info. ownerName?info.ownerName:'--' }}</span>
</div>
<div class="item item2">
<span class="item-field">房主电话</span>
<span>{{ info. ownerPhone?info.ownerPhone:'--' }}</span>
</div>
<div class="item item2">
<span class="item-field">证件号</span>
<span>{{ info.ownerIdCard?info.ownerIdCard:'--' }}</span>
</div>
<div class="item item2">
<span class="item-field">备注</span>
<span>{{ info.remark?info.remark:'--' }}</span>
</div>
</div>
</div>
<div class="g-btn">
<div class="b-close"
@click="handleClose">关闭</div>
</div>
</cpt-card>
</div>
</div>
</template>
@ -119,6 +127,6 @@ export default {
<style
lang="scss"
src="@/assets/scss/modules/visual/people.scss"
src="@/assets/scss/modules/board/detailBox.scss"
scoped
></style>

25
src/views/modules/visual/basicinfo/peopleList.vue

@ -24,7 +24,7 @@
:total="total"
@handleSizeChange="handleSizeChange"
@handlePageNoChange="handlePageNoChange"
@operate="toEventInfo"></cpt-tb>
@operate="toPersonInfo"></cpt-tb>
</div>
@ -62,6 +62,7 @@ export default {
pageSize: 10,
pageNo: 1,
total: 0,
tableData: [],
//
info: {},
@ -149,8 +150,9 @@ export default {
handleSearch () {
},
toEventInfo () {
toPersonInfo (index) {
this.info = { ... this.tableData[index] }
this.showedMoreInfo = true
},
handlePageNoChange (pageNo) {
@ -159,7 +161,6 @@ export default {
},
handleSizeChange (pageSize) {
this.pageSize = pageSize
this.loadList(this.orgId, this.orgLevel)
@ -183,8 +184,8 @@ export default {
if (code === 0) {
this.demand.total = data.total;
this.tableData = data.list
this.total = data.total;
this.demand.list = data.list.map((item, index) => {
return [
@ -205,18 +206,6 @@ export default {
}
},
//
handelToPeople (item) {
this.info = { ...item }
this.showedMoreInfo = true
},
pageCurrentChangeHandle (val) {
this.pageNo = val
this.loadList(this.orgId, this.orgLevel)
},
},
destroyed () {

431
src/views/modules/visual/cpts/tb copy 2.vue

@ -0,0 +1,431 @@
<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}"
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>
</template>
<script>
import ScreenLoading from "./loading";
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);
},
},
};
</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;
}
}
}
}
.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;
}
}
</style>

453
src/views/modules/visual/cpts/tb copy 3.vue

@ -0,0 +1,453 @@
<template>
<div class="table">
<el-table id="out-table"
ref="table"
class="tableLimit"
:height="table.height"
:data="tableData"
:style="{width: '100%'}"
border
v-loading="loading"
element-loading-text="正在加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(255, 255, 255, 0.8)"
@select="handleSelect"
@select-all="handleSelectAll"
@cell-click="handleCellClick"
@row-click="handleRowClick">
<!--设置index索引-->
<div v-if="columnType==='index'">
<el-table-column label="序号"
:type="columnType"
width="50"></el-table-column>
</div>
<!--设置checkbox-->
<div v-if="columnType==='selection'">
<el-table-column :type="columnType"></el-table-column>
</div>
<div v-if="columnType==='radio'">
<el-table-column label=""
width="35"
center>
<template slot-scope="scope">
<el-radio :label="scope.row.id"
v-model="templateRadio"
@change.native="getRadioRow(scope.$index,scope.row)">&nbsp;</el-radio>
</template>
</el-table-column>
</div>
<template v-for="col in tableColumn">
<!--渲染列-->
<el-table-column v-if="col.tableType==='span'"
:key="col.key"
:label="col.title"
:min-width="col.width"
:fixed="col.isFrozen"
show-overflow-tooltip
:align="columnAlign"
:header-align="headerAlign">
<template slot-scope="scope">
<span v-html="col.render(scope.row[col.key])"></span>
</template>
</el-table-column>
<!--图片列-->
<el-table-column v-if="col.tableType==='image'"
:key="col.key"
:label="col.title"
:min-width="col.width"
:fixed="col.isFrozen"
show-overflow-tooltip
:align="'center'"
:header-align="headerAlign"
:formatter="col.formatter">
<template slot-scope="scope">
<img v-if="scope.row[col.key]"
:src="scope.row[col.key]"
:style="{width: col.imgWidth?col.imgWidth:'50px',height:col.imgHeight?col.imgHeight:'50px'}"
class="function-icon"
:fit=" col.fill?col.fill:'fill'">
<span v-else>--</span>
</template>
</el-table-column>
<!--普通列-->
<el-table-column v-if="!col.tableType||col.tableType===''"
:key="col.key"
:label="col.title"
:min-width="col.width"
:fixed="col.isFrozen"
:align="columnAlign"
:header-align="headerAlign"
:formatter="col.formatter"></el-table-column>
</template>
<!--操作列-->
<el-table-column v-if="operations.length && operations.length > 0"
label="操作"
fixed="right"
:min-width="operationWidth"
header-align="center"
:align="buttonAlign"
class="operate">
<template slot-scope="scope">
<!--传入的操作按钮属性 -->
<el-button v-for="item in operations"
:key="item.lable"
:type="item.type"
:size="item.size"
:class="item.class"
@click.stop="handleMethod(scope.$index, scope.row,item.methodName)">{{item.lable}}</el-button>
</template>
</el-table-column>
</el-table>
<div v-if="false"
class="pagination-diy">
<div class="pagination-left">
<slot></slot>
</div>
<div class="pagination-left">
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
@prev-click="handlePrevClick"
@next-click="handleNextClick"
:current-page="pageNo"
:page-size="pageSize"
layout="jumper, prev, pager, next,sizes, total"
:total="total"></el-pagination>
</div>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
components: {},
data () {
return {
tableData: [],
pageSize: 10,
tableColumn: window.app.service.getColumns(this.keyword, 'table'),
loading: false,
table: {
height: this.tableHeight,
params: {
pageSize: Number, //
pageNo: this.pageNo //
}
},
total: 0,
selected: false,
visiblePopover: false, //
templateRadio: ''
}
},
watch: {
tableHeight (height) {
this.table.height = height
},
},
props: {
keyword: {
type: String,
required: true
},
columnType: {
type: String
},
columnAlign: {
type: String,
default: 'left'
},
headerAlign: {
type: String,
default: 'center'
},
url: {
type: String,
required: true
},
params: {
type: Object,
default () {
return {}
}
},
operations: {
type: Array,
default () {
return []
}
},
pageNo: {
type: Number,
default: 1
},
tableHeight: {
type: Number
},
pageVisible: { // page lyx 20190411
type: Boolean,
default: true
},
operationWidth: {
type: Number,
default: 120
},
filterParams: {
type: Array,
default () {
return []
}
},
//
buttonAlign: {
type: String,
default: "center"
}
},
computed: {
},
methods: {
headerCellStyle ({ row, column, rowIndex, columnIndex }) {
if (rowIndex === 0) return 'backgroundColor:red;color:#fff;'
},
render () {
this.loadData()
},
loadData () {
// eslint-disable-next-line
this.loading = true
Object.keys(this.params).forEach(key => {
if (this.params[key] instanceof Array) {
this.params[key] = this.params[key].join(',')
}
})
Object.assign(this.table.params, this.params)
//
window.app.ajax.post(
this.url,
this.table.params,
(data, rspMsg) => {
if (data) {
this.total = data.total
this.tableData = data.list
// if (this.filterParams.length > 0) {
// this.filterParams.forEach(paramItem => {
// const key = paramItem.key
// const value = paramItem.value
// this.tableData = this.tableData.filter(item => {
// item[key].indexOf(value) > 0
// })
// })
// }
}
this.loading = false
},
(rspMsg, data) => {
this.$message.error(rspMsg)
this.loading = false
}
)
},
handleClearSelection () {
//
this.$refs['table'].clearSelection()
},
//
handleSelect (selection, row) {
this.$emit('select', selection)
// console.log(selection, row)
},
//
handleSelectAll (selection) {
this.$emit('selectAll', selection)
},
handleCellClick (row, column, cell, event) { },
handleRowClick (row) {
//
this.selected = !this.selected
this.$refs['table'].toggleRowSelection(row, this.selected)
},
handleEdit (index, row) {
// tablerow-clickstop
this.handleClearSelection()
this.$refs['table'].toggleRowSelection(row)
this.$emit('update', row)
},
handleAnalyze (index, row) {
this.handleClearSelection() //
this.$refs['table'].toggleRowSelection(row, true)
this.$emit('analyze', row)
},
handleDelete (index, row) {
this.handleClearSelection() //
this.$refs['table'].toggleRowSelection(row, true)
this.$emit('delete', row)
},
handleDeleteCancel (scope) {
// popover
scope._self.$refs[`popover-${scope.$index}`].doClose()
},
handleSizeChange (pageSize) {
this.table.params.pageSize = pageSize
this.table.params.pageNo = 1
this.$nextTick(() => {
this.loadData()
})
},
//
handleCurrentChange (pageNo) {
this.table.params.pageNo = pageNo
this.$nextTick(() => {
this.loadData()
})
},
//
handlePrevClick (pageNo) {
},
//
handleNextClick (pageNo) {
},
//
getRadioRow (index, row) { //
this.$emit('selectRadioRow', row)
},
//
handleOutTable (name) {
// app.util.exportExcel(name, '#out-table')
},
// exportExcel (tHeader, filterVal) {
// require.ensure([], () => {
// const { export_json_to_excel } = require('@js/excel/Export2Excel')
// const list = this.tableData
// const data = this.formatJson(filterVal, list)
// export_json_to_excel(tHeader, data, 'excel')
// })
// },
formatJson (filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]))
},
// lyx 20190411
handleMethod (index, row, methodName) {
this.handleClearSelection()
this.$refs['table'].toggleRowSelection(row, true)
this.$emit(methodName, row)
},
//
doLayout () {
this.$refs['table'].doLayout()
},
getTableData () {
return this.tableData
}
}
}
</script>
<style lang="scss" scoped>
.table {
::v-deep .el-form-item {
margin: 0 5px !important;
// padding: 20px;
// background-color: ;
}
::v-deep .el-table,
.el-table__expanded-cell {
padding: 20px !important;
background-color: transparent !important;
}
::v-deep .el-table th {
background-color: transparent !important;
border-bottom: 1px solid #5078fc !important;
color: #fefefe !important;
}
::v-deep .el-table tr {
background-color: transparent !important;
}
::v-deep .el-table--enable-row-transition .el-table__body td,
::v-deep .el-table .cell {
background-color: transparent !important;
color: rgba(255, 255, 255, 0.7) !important;
border: none !important;
padding-left: 0 !important;
padding-right: 0 !important;
}
::v-deep .el-table th > .cell {
color: rgba(254, 254, 254, 1) !important;
font-weight: 700 !important;
}
.el-table::before {
//线
left: 0 !important;
bottom: 0 !important;
width: 100% !important;
height: 0px !important;
}
::v-deep .el-form-item__label {
color: white !important;
}
/deep/ .el-table__row > td {
border: none;
}
/* 去掉上面的线 */
/deep/ .el-table th.is-leaf {
border: none;
}
/* 去掉最下面的那一条线 */
/deep/ .el-table::before {
height: 0px;
}
}
.el-table td {
padding: 6px 0 !important;
}
.page {
padding: 0 6px;
text-align: right;
}
.operate {
text-align: center;
}
.tableLimit tr td .cell {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; /*可以显示的行数,超出部分用...表示 */
-webkit-box-orient: vertical;
}
.el-table .cell {
white-space: pre-line; /*保留换行符*/
}
.pagination-diy {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
</style>

52
src/views/modules/visual/cpts/tb.vue

@ -10,26 +10,30 @@
</div>
<div class="m-table">
<table class="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="table-header">
<th class="table-header-th"
<tr class="g-table-header">
<th class="g-table-header-th"
v-for="item in header"
:key="item">
{{ item }}
</th>
</tr>
</thead>
<tbody class="table-body">
<tr class="table-body-tr"
<!-- <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)">
@ -74,6 +78,7 @@
</td>
</tr>
</tbody>
<!-- </el-scrollbar> -->
</table>
<div class="table-status"
@ -89,6 +94,7 @@
</div>
</div>
</div>
<div class="m-pagination">
<el-pagination :current-page="pageNo"
:page-size="pageSize"
@ -111,6 +117,7 @@
<script>
import ScreenLoading from "./loading";
import { mapGetters } from 'vuex'
export default {
name: "table",
@ -178,7 +185,19 @@ export default {
};
},
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 () { },
@ -239,8 +258,8 @@ export default {
}
.m-table {
margin-top: 9px;
.table {
width: 100%;
.g-table {
box-sizing: border-box;
width: 100%;
height: 100%;
@ -312,6 +331,14 @@ export default {
// background-size: 100% 100%;
// }
}
/deep/ .el-scrollbar__wrap {
width: 100% !important;
overflow-x: hidden !important;
}
}
.g-scrollar {
width: 100%;
}
.table-status {
@ -334,7 +361,7 @@ export default {
.m-pagination {
box-sizing: border-box;
margin-top: 20px;
margin-top: 24px;
width: 100%;
height: 40px;
display: flex;
@ -344,20 +371,21 @@ export default {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.65);
color: #ffffff;
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #00023a;
background: #1a95ff;
}
/deep/ .el-pagination .el-pager li {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
color: rgba(255, 255, 255, 0.65);
border-radius: 2px;
border: 1px solid rgba(26, 149, 255, 0.45);
background: #1a95ff;
background: #00023a;
}
/deep/ .el-pagination .btn-prev {

Loading…
Cancel
Save