This commit is contained in:
lcw
2025-06-08 22:23:25 +08:00
commit d9f272ca7d
1154 changed files with 276763 additions and 0 deletions

View File

@ -0,0 +1,187 @@
<template>
<div class="countBox">
<div class="topBox">
<div class="panel-heading">报表统计</div>
<MyTable :tableData="tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
<template #bbzl="{ row }">
<dict-tag :options="dict" :value="row.bbzl" :tag="false" />
</template>
</MyTable>
</div>
<div class="topBox">
<div class="panel-heading">报表查看(值班值守)</div>
<MyTable :tableData="bbcxData" :tableColumn="pageDataCk.tableColumn" :tableHeight="pageDataCk.tableHeight"
:key="pageDataCk.keyCount" :tableConfiger="pageDataCk.tableConfiger" :controlsWidth="pageDataCk.controlsWidth">
<template #ryList="{ row }">
<span v-for="(item, index) in ryData('01', row.ryList)" :key="index">{{ item.ryXm }}
</span>
</template>
<template #fb="{ row }">
<span v-for="(item, index) in ryData('02', row.ryList)" :key="index">{{ item.ryXm }}</span>
</template>
<template #zhzzb="{ row }">
<span v-for="(item, index) in ryData('03', row.ryList)" :key="index">{{ item.ryXm }}
</span>
</template>
<template #zhzfb="{ row }">
<span v-for="(item, index) in ryData('04', row.ryList)" :key="index">{{ item.ryXm }}</span>
</template>
<template #zbz="{ row }">
<span v-for="(item, index) in ryData('05', row.ryList)" :key="index">{{ item.ryXm }}
</span>
</template>
<template #mj="{ row }">
<span v-for="(item, index) in ryData('06', row.ryList)" :key="index">{{ item.ryXm }}</span>
</template>
<template #fj="{ row }">
<span v-for="(item, index) in ryData('07', row.ryList)" :key="index">{{ item.ryXm }}</span>
</template>
</MyTable>
</div>
<div class="topBox">
<div class="panel-heading">时段警力(值班值守)</div>
<div class="eharsBox">
<barEcharts :data="lineData" />
</div>
</div>
</div>
</template>
<script setup>
import barEcharts from './lineEcharts.vue'
import MyTable from "@/components/aboutTable/MyTable.vue";
import {
ref,
reactive,
computed,
watch,
onMounted,
getCurrentInstance,
onUnmounted,
} from "vue";
const props = defineProps({
lineData: {},
dict: {},
tableData: [],
bbcxData: []
})
const pageData = reactive({
// tableData:props.tableData? props.tableData:[], //表格数据
keyCount: 0,
tableHeight: 245,
tableConfiger: {
loading: false,
rowHieght: 61,
showSelectType: "null",
haveControls: false,
showIndex: false,
stripe: true
},
total: 0,
pageConfiger: {
pageSize: 10,
pageNum: 1
}, //分页
controlsWidth: 120, //操作栏宽度
tableColumn: [
{ label: "勤务报备种类", prop: "bbzl", showSolt: true },
{ label: "民警数量", prop: "mjsl" },
{ label: "辅警数量", prop: "fjsl" },
{ label: "车俩数量", prop: "clsl" },
{ label: "统计日期", prop: "tjrqStr" },
]
});
const pageDataCk = reactive({
tableData: [], //表格数据
keyCount: 0,
tableConfiger: {
loading: false,
rowHieght: 61,
showSelectType: "null",
haveControls: false,
showIndex: false,
stripe: true
},
tableHeight: 300,
total: 0,
pageConfiger: {
pageSize: 10,
pageNum: 1
}, //分页
controlsWidth: 120, //操作栏宽度
tableColumn: [
{ label: "班次", prop: "bcMc" },
{ label: "值班领导(主班)", prop: "ryList", showSolt: true },
{ label: "值班领导(副班)", prop: "fb", showSolt: true },
{ label: "指挥长(主班)", prop: "zhzzb", showSolt: true },
{ label: "指挥长(副班)", prop: "zhzfb", showSolt: true },
{ label: "值班长", prop: "zbz", showSolt: true },
{ label: "值班民警", prop: "mj", showSolt: true },
{ label: "值班辅警", prop: "fj", showSolt: true },
{ label: "频道", prop: "zbpdh" },
{ label: "呼号", prop: "zbpdhh" },
{ label: "值班电话", prop: "zbdh" },
{ label: "报备人", prop: "xtCjr" },
]
});
const ryData = (val, data) => {
switch (val) {
case "01":
return data.filter(item => item.ryZbbbzw == val)
case "02":
return data.filter(item => item.ryZbbbzw == val)
case "03":
return data.filter(item => item.ryZbbbzw == val)
case "04":
return data.filter(item => item.ryZbbbzw == val)
case "05":
return data.filter(item => item.ryZbbbzw == val)
case "06":
return data.filter(item => item.ryZbbbzw == val)
case "07":
return data.filter(item => item.ryZbbbzw == val)
}
}
</script>
<style lang="scss" scoped>
.countBox {
width: 100%;
height: 100%;
overflow-y: auto;
padding: 0 10px;
box-sizing: border-box;
.topBox {
margin-bottom: 10px;
.eharsBox {
height: 400px;
}
}
}
.panel-heading {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
padding: 10px 15px;
border-bottom: 1px solid transparent;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
background: #ECF7F7;
}
::v-deep .el-table th.el-table__cell {
background: #ECF7F7;
}
::v-deep .el-table .cell {
color: #000;
}
</style>