264 lines
6.8 KiB
Vue
264 lines
6.8 KiB
Vue
|
|
<template>
|
|||
|
|
<div>
|
|||
|
|
<div class="titleBox">
|
|||
|
|
<PageTitle title="过站汇总管理"> </PageTitle>
|
|||
|
|
</div>
|
|||
|
|
<!-- 表格 -->
|
|||
|
|
<div ref="searchBox">
|
|||
|
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
|||
|
|
</div>
|
|||
|
|
<div class="top_box">
|
|||
|
|
<div class="item_box">
|
|||
|
|
<div>过站总人数:{{ totalObj.gzryNum }}</div>
|
|||
|
|
<div class="fl_box">
|
|||
|
|
<div>入林人数:{{ totalObj.rlclNum }}</div>
|
|||
|
|
<div>出林人数:{{ totalObj.clryNum }}</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="item_box">
|
|||
|
|
<div>过站总车数:{{ totalObj.gzclNum }}</div>
|
|||
|
|
<div class="fl_box">
|
|||
|
|
<div>入林车数:{{ totalObj.rlclNum }}</div>
|
|||
|
|
<div>出林车数:{{ totalObj.clclNum }}</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="item_box">
|
|||
|
|
<div>过站物品数:{{ totalObj.gzwpNum }}</div>
|
|||
|
|
<div class="fl_box">
|
|||
|
|
<div>入林物品数:{{ totalObj.rlwpNum }}</div>
|
|||
|
|
<div>出林物品数:{{ totalObj.clwpNum }}</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="tabBox">
|
|||
|
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
|||
|
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
|
|||
|
|
@columnInfo="columnInfo">
|
|||
|
|
</MyTable>
|
|||
|
|
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
|||
|
|
...pageData.pageConfiger,
|
|||
|
|
total: pageData.total
|
|||
|
|
}"></Pages>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<Gjrxloder v-model="showGjry" :chooseShow="false" :searchData="dialogSearch" />
|
|||
|
|
<Gjclloder v-model="showGjcl" :chooseShow="false" :searchData="dialogSearch" />
|
|||
|
|
<Gjwploder v-model="showGjwp" :chooseShow="false" :searchData="dialogSearch" />
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script setup>
|
|||
|
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
|||
|
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
|||
|
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||
|
|
import Pages from "@/components/aboutTable/Pages.vue";
|
|||
|
|
import Search from "@/components/aboutTable/Search.vue";
|
|||
|
|
import Gjrxloder from "@/components/loder/gjrxloder.vue";
|
|||
|
|
import Gjclloder from "@/components/loder/gjclloder.vue";
|
|||
|
|
import Gjwploder from "@/components/loder/gjwploder.vue";
|
|||
|
|
import { isAuth } from "@/utils/tools.js";
|
|||
|
|
import { ElMessage } from "element-plus";
|
|||
|
|
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
|||
|
|
const { proxy } = getCurrentInstance();
|
|||
|
|
const { D_BZ_WPLX } = proxy.$dict("D_BZ_WPLX");
|
|||
|
|
const searchConfiger = ref([
|
|||
|
|
{
|
|||
|
|
showType: "datetimerange",
|
|||
|
|
prop: "time",
|
|||
|
|
placeholder: "请选择时间",
|
|||
|
|
label: "时间"
|
|||
|
|
}
|
|||
|
|
]);
|
|||
|
|
const totalObj = ref({});
|
|||
|
|
const showGjry = ref(false);
|
|||
|
|
const showGjcl = ref(false);
|
|||
|
|
const showGjwp = ref(false);
|
|||
|
|
const detailDiloag = ref();
|
|||
|
|
const dialogSearch = ref({});
|
|||
|
|
const pageData = reactive({
|
|||
|
|
tableData: [], //表格数据
|
|||
|
|
keyCount: 0,
|
|||
|
|
tableConfiger: {
|
|||
|
|
rowHieght: 61,
|
|||
|
|
showSelectType: "null",
|
|||
|
|
loading: false,
|
|||
|
|
haveControls: false
|
|||
|
|
},
|
|||
|
|
total: 0,
|
|||
|
|
pageConfiger: {
|
|||
|
|
pageSize: 20,
|
|||
|
|
pageCurrent: 1
|
|||
|
|
}, //分页
|
|||
|
|
controlsWidth: 250, //操作栏宽度
|
|||
|
|
tableColumn: [
|
|||
|
|
{
|
|||
|
|
label: "检查站名称",
|
|||
|
|
prop: "kkMc",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
},
|
|||
|
|
{ label: "过站总人数", prop: "gzryNum", showOverflowTooltip: true },
|
|||
|
|
{ label: "入林人数", prop: "rlclNum", showOverflowTooltip: true },
|
|||
|
|
{ label: "出林人数", prop: "clryNum", showOverflowTooltip: true },
|
|||
|
|
{
|
|||
|
|
label: "过站总车辆",
|
|||
|
|
prop: "gzclNum",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
label: "入林车辆",
|
|||
|
|
prop: "rlclNum",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "出林车辆",
|
|||
|
|
prop: "clclNum",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "过站物品数",
|
|||
|
|
prop: "gzwpNum",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "入林物品数",
|
|||
|
|
prop: "rlwpNum",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
label: "出林物品数",
|
|||
|
|
prop: "clwpNum",
|
|||
|
|
showOverflowTooltip: true
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
});
|
|||
|
|
const Auth = ref(true);
|
|||
|
|
onMounted(() => {
|
|||
|
|
tabHeightFn();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
//查询条件
|
|||
|
|
const queryCondition = ref({});
|
|||
|
|
// 统计
|
|||
|
|
const getjczgetXfllTj = () => {
|
|||
|
|
qcckGet(queryCondition.value, "/mosty-jcz/jczGjrytx/getGjrytxhzTj").then(
|
|||
|
|
(res) => {
|
|||
|
|
console.log(res, "res");
|
|||
|
|
totalObj.value = res;
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const getjczgetXfllList = () => {
|
|||
|
|
qcckGet(queryCondition.value, "/mosty-jcz/jczGjrytx/getGjrytxhzlb")
|
|||
|
|
.then((res) => {
|
|||
|
|
pageData.tableData = res.records;
|
|||
|
|
pageData.total = res.total;
|
|||
|
|
})
|
|||
|
|
.finally(() => {
|
|||
|
|
pageData.tableConfiger.loading = false;
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
getjczgetXfllTj();
|
|||
|
|
getjczgetXfllList();
|
|||
|
|
// 搜索
|
|||
|
|
const onSearch = (val) => {
|
|||
|
|
if (val.time) {
|
|||
|
|
queryCondition.value.kssj = val.time[0];
|
|||
|
|
queryCondition.value.jssj = val.time[1];
|
|||
|
|
} else {
|
|||
|
|
queryCondition.value.kssj = "";
|
|||
|
|
queryCondition.value.jssj = "";
|
|||
|
|
}
|
|||
|
|
getjczgetXfllTj();
|
|||
|
|
getjczgetXfllList();
|
|||
|
|
};
|
|||
|
|
const columnInfo = (val) => {
|
|||
|
|
// 过站类型(01 入林 02 出林) 01 入林 02 出林
|
|||
|
|
dialogSearch.value.kkId = val.row.kkId;
|
|||
|
|
switch (val.column.property) {
|
|||
|
|
case "gzryNum":
|
|||
|
|
dialogSearch.value.gzlx = "";
|
|||
|
|
showGjry.value = true;
|
|||
|
|
break;
|
|||
|
|
case "rlclNum":
|
|||
|
|
dialogSearch.value.gzlx = "01";
|
|||
|
|
showGjry.value = true;
|
|||
|
|
break;
|
|||
|
|
case "clryNum":
|
|||
|
|
dialogSearch.value.gzlx = "02";
|
|||
|
|
showGjry.value = true;
|
|||
|
|
break;
|
|||
|
|
case "gzclNum":
|
|||
|
|
dialogSearch.value.gzlx = "";
|
|||
|
|
showGjcl.value = true;
|
|||
|
|
break;
|
|||
|
|
case "rlclNum":
|
|||
|
|
dialogSearch.value.gzlx = "01";
|
|||
|
|
showGjcl.value = true;
|
|||
|
|
break;
|
|||
|
|
case "clclNum":
|
|||
|
|
dialogSearch.value.gzlx = "02";
|
|||
|
|
showGjcl.value = true;
|
|||
|
|
break;
|
|||
|
|
case "gzwpNum":
|
|||
|
|
dialogSearch.value.gzlx = "";
|
|||
|
|
showGjwp.value = true;
|
|||
|
|
break;
|
|||
|
|
case "rlwpNum":
|
|||
|
|
dialogSearch.value.gzlx = "01";
|
|||
|
|
showGjwp.value = true;
|
|||
|
|
break;
|
|||
|
|
case "clwpNum":
|
|||
|
|
dialogSearch.value.gzlx = "02";
|
|||
|
|
showGjwp.value = true;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
const changeNo = (val) => {
|
|||
|
|
pageData.pageConfiger.pageCurrent = val;
|
|||
|
|
};
|
|||
|
|
const changeSize = (val) => {
|
|||
|
|
pageData.pageConfiger.pageSize = val;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 新增
|
|||
|
|
const addEdit = (type, row) => {
|
|||
|
|
detailDiloag.value.init(type, row);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const searchBox = ref(null);
|
|||
|
|
// 表格高度计算
|
|||
|
|
const tabHeightFn = () => {
|
|||
|
|
pageData.tableHeight =
|
|||
|
|
window.innerHeight - searchBox.value.offsetHeight - 280;
|
|||
|
|
window.onresize = function () {
|
|||
|
|
tabHeightFn();
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.el-loading-mask {
|
|||
|
|
background: rgba(0, 0, 0, 0.5) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.top_box {
|
|||
|
|
display: flex;
|
|||
|
|
justify-content: space-around;
|
|||
|
|
color: #000;
|
|||
|
|
margin-bottom: 10px;
|
|||
|
|
|
|||
|
|
.item_box {
|
|||
|
|
text-align: center;
|
|||
|
|
width: 22%;
|
|||
|
|
font-size: 20px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.fl_box {
|
|||
|
|
display: flex;
|
|||
|
|
font-size: 16px;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|