更新页面

This commit is contained in:
Esacpe 2025-05-19 17:22:53 +08:00
parent 6555a6d277
commit a5eb5d1d90
3 changed files with 184 additions and 9 deletions

View File

@ -104,7 +104,6 @@
</template>
<script setup>
import elTableInfiniteScroll from 'el-table-infinite-scroll';
import {
nextTick,
onMounted,
@ -159,6 +158,10 @@ const props = defineProps({
fixed: {
type: String,
default: "right"
},
tabelModel:{
type: String,
default: "table"
}
});
//
@ -315,7 +318,7 @@ const createScroll = () => {
//
const loadTable = () => {
emit("changePage");
emit("changePage",props.tabelModel);
};
onUnmounted(() => {

View File

@ -104,7 +104,7 @@ const props = defineProps({
default: 180
},
tableHeight: {
type: Number
type: Number || String
},
treePros: {
type: Object,

View File

@ -1,5 +1,6 @@
<template>
<div class="yp—home flex">
<!-- 左边 -->
<div class="leftbox">
<div class="title">
<span v-for="idx in 3" :key="idx" :class="'sircleL'+idx" class="sircle mr5"></span>
@ -21,13 +22,46 @@
</div>
</div>
</div>
<!-- 右边 -->
<div class="rightbox">
<div class="title">
<span v-for="idx in 3" :key="idx" :class="'sircleL'+idx" class="sircle mr5"></span>
<span class="ml10 mr10">研判统计</span>
<span v-for="idx in 3" :key="idx" :class="'sircleR'+idx" class="sircle ml5"></span>
<el-button class="btn" type="primary">研判报告</el-button>
</div>
<div class="commCnt">
<div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
</div>
<ul class="listBox" :style="{height:pageData.boxHeight+'px'}">
<li class="list-item" ref="listBoxRef" v-for="(it,idx) in list" :key="idx">
<div class="comm-title title-s">{{ it.title }}</div>
<div class="list-table" >
<MyTable
:tableData="it.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount+idx"
:isScroll="it.tableData.length >3 ? true : false"
:fixed="false"
:tabelModel="it.title"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@changePage="changePage"
>
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" size="small">详情</el-link>
<el-link type="primary" size="small">网上会商</el-link>
<el-link type="primary" size="small">处置</el-link>
<el-link type="primary" size="small">反馈</el-link>
</template>
</MyTable>
</div>
</li>
</ul>
</div>
<div class="commCnt"></div>
</div>
</div>
</template>
@ -35,7 +69,12 @@
<script setup>
import MoreBarEcharts from "@/views/home/echarts/moreBarEcharts.vue";
import LineEcharts from "@/views/home/echarts/moreLineEcharts.vue";
import { reactive } from 'vue';
import Search from "@/components/aboutTable/Search.vue";
import MyTable from "@/components/aboutTable/DarkTable.vue";
import { nextTick, onMounted, reactive ,ref } from 'vue';
import { fa } from "element-plus/es/locale.mjs";
const searchBox = ref();
const listBoxRef = ref();
const obj = reactive({
data_cztj:{
xData:['上访','诈骗','敲诈勒索','盗窃','涉黄','涉毒','强奸猥亵','灾害事故','自杀'],
@ -55,14 +94,81 @@ const obj = reactive({
{label:'已会商',val:[40,30,20,50,30,44,50,45,62]},
]
}
})
const searchConfiger = ref([
{ label: "专题来源", prop: "ztly", placeholder: "请选择", showType: "select"},
{ label: "所属专题", prop: "sszt", placeholder: "请输入", showType: "input"},
{ label: "线索内容", prop: "xsnr", placeholder: "请输入", showType: "input"},
{ label: "时间段", prop: "sjd", placeholder: "请输入", showType: "daterange"},
{ label: "会商情况", prop: "hsqk", placeholder: "请选择", showType: "select"},
])
const list = reactive([
{ title:'上访', tableData:[
{ bt:' 张三上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 李四上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
]},
{ title:'诈骗', tableData:[
{ bt:' 张三上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 李四上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 赵二上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
]},
{ title:'敲诈勒索',tableData:[
{ bt:' 张三上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 李四上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
{ bt:' 王五上访', nr:'低价快速的还是', rs:'25', ztfl:'上访', sbsj:'2025/02/19',},
]},
{ title:'盗窃',tableData:[]},
{ title:'涉黄',tableData:[]},
{ title:'涉赌',tableData:[]},
{ title:'涉毒',tableData:[]},
{ title:'强奸猥亵',tableData:[]},
])
const pageData = reactive({
tableColumn:[
{ label: "线索标题",width:65, prop: "bt",showOverflowTooltip: true},
{ label: "线索内容",width:60, prop: "nr",showOverflowTooltip: true},
{ label: "涉及人数",width:60, prop: "rs",showOverflowTooltip: true},
{ label: "专题分类",width:60, prop: "ztfl",showOverflowTooltip: true},
{ label: "上报时间",width:60, prop: "sbsj",showOverflowTooltip: true},
],
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "null",
loading: false,
showIndex:false,
rowHeight: 30,
},
controlsWidth: 200, //
});
onMounted(() => {
tabHeightFn();
});
//
const changePage = (val) => {
console.log(val,'滚动加载');
};
//
const tabHeightFn = () => {
pageData.boxHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
nextTick(() => {
pageData.tableHeight = listBoxRef.value[0].offsetHeight - 40;
});
window.onresize = function () {
tabHeightFn();
};
};
</script>
<style lang="scss" scoped>
.yphome{
width: 100%;
height: 100%;
@ -96,6 +202,7 @@ const obj = reactive({
justify-content: center;
height: 60px;
font-size: 24px;
position: relative;
.sircle{
display: inline-block;
}
@ -117,6 +224,12 @@ const obj = reactive({
.sircleR3{
@include common(8px,0.5);
}
.btn{
position: absolute;
top: 50%;
right: 10px;
transform: translateY(-50%);
}
}
.commCnt{
@ -139,6 +252,7 @@ const obj = reactive({
border-radius: 4px 4px 4px 4px;
}
}
.echartsBox{
height: calc(100% - 30px);
margin-top: 4px;
@ -146,4 +260,62 @@ const obj = reactive({
}
</style>
.listBox{
margin-top: 4px;
border-radius: 10px;
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
.list-item{
width: 49.5%;
height: calc(100% / 4 - 5px);
box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.02);
border-radius: 8px 8px 8px 8px;
border: 1px solid #E8EDF6;
padding: 4px 10px;
box-sizing: border-box;
.title-s{
font-size: 14px;
}
.list-table{
height: calc(100% - 25px);
margin-top: 5px;
}
}
.list-item:nth-child(2n+1){
margin-right: 1%;
}
}
::v-deep .searchBox{
margin-bottom:0 !important;
padding: 2px !important;
}
::v-deep .pageSearch .box .item {
width: 16%;
}
::v-deep .el-table .table_blue_row {
background: #fff !important;
}
::v-deep .el-table th.el-table__cell{
font-size: 13px;
background: #EFF5F7;
}
::v-deep .el-table__empty-block{
width: 100%!important;
}
::v-deep .el-scrollbar__view{
border-right: none;
}
::v-deep .el-table .el-table__cell{
padding: 0;
}
::v-deep .el-table th.el-table__cell>.cell{
padding: 6px 0;
}
</style>