213 lines
5.9 KiB
Vue
213 lines
5.9 KiB
Vue
|
|
<!--
|
|||
|
|
* @Author: your name
|
|||
|
|
* @Date: 2020-03-22 11:36:21
|
|||
|
|
* @LastEditTime: 2023-04-10 17:02:18
|
|||
|
|
* @LastEditors: Please set LastEditors
|
|||
|
|
* @Description: In User Settings Edit
|
|||
|
|
* @FilePath: \xfxt_web\src\views\xfxt\home\componets\left-home.vue
|
|||
|
|
-->
|
|||
|
|
<template>
|
|||
|
|
<div class="qs-box">
|
|||
|
|
<div class="popTitle">{{ childTitle }}巡逻里程情况</div>
|
|||
|
|
<div class="popBody" style="max-height: 600px; overflow: auto">
|
|||
|
|
<div class="tjtitle">
|
|||
|
|
<el-date-picker
|
|||
|
|
v-model="searchDay"
|
|||
|
|
type="date"
|
|||
|
|
placeholder="选择日期"
|
|||
|
|
style="width: 150px"
|
|||
|
|
value-format="YYYY-MM-DD"
|
|||
|
|
@change="changeDay"
|
|||
|
|
/>
|
|||
|
|
<div class="tjli lightblue">
|
|||
|
|
当日应巡逻里程:<span>{{ allNums <= 0 ? 0 : allNums}}</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="tjli green">
|
|||
|
|
当日实际巡逻里程:<span>{{ alreadyNums <=0 ? 0 : alreadyNums }}</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="tjli orange">
|
|||
|
|
当日未巡逻里程:<span>{{ notNums <= 0 ? 0 : notNums }}</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<el-table
|
|||
|
|
ref="table"
|
|||
|
|
:data="tableChildData"
|
|||
|
|
border
|
|||
|
|
class="table flex-auto overflow-auto margin-tp-10"
|
|||
|
|
row-class-name="table-row"
|
|||
|
|
cell-class-name="table-cell"
|
|||
|
|
header-row-class-name="table-header-row"
|
|||
|
|
header-cell-class-name="table-header-cell"
|
|||
|
|
style="width: 100%"
|
|||
|
|
>
|
|||
|
|
<!-- @row-click="getScore" -->
|
|||
|
|
<el-table-column label="巡逻里程率" align="center">
|
|||
|
|
<el-table-column prop="ssbm" label="单位" align="center">
|
|||
|
|
<template #default="{ row }">
|
|||
|
|
<el-tooltip effect="dark" :content="row.ssbm" placement="right">
|
|||
|
|
<span>{{ row.ssbm }}</span>
|
|||
|
|
</el-tooltip>
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
<el-table-column prop="yxllc" label="应巡逻里程" align="center" />
|
|||
|
|
<el-table-column prop="sjxllc" label="实际巡逻里程" align="center" />
|
|||
|
|
<el-table-column label="未巡逻里程" align="center" prop="wxllc" />
|
|||
|
|
<el-table-column label="巡逻里程得扣分" align="center" prop="xllckf" />
|
|||
|
|
<el-table-column label="巡逻里程得分" align="center" prop="xllcf" />
|
|||
|
|
<el-table-column label="比例" align="center" prop="pccbl">
|
|||
|
|
<template #default="{ row }">
|
|||
|
|
<p v-if="row.yxllc">
|
|||
|
|
{{
|
|||
|
|
((Number(row.sjxllc) / Number(row.yxllc)) * 100).toFixed(2)
|
|||
|
|
}}%
|
|||
|
|
</p>
|
|||
|
|
<p v-else>0%</p>
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
</el-table-column>
|
|||
|
|
</el-table>
|
|||
|
|
<div class="fenye">
|
|||
|
|
<el-pagination
|
|||
|
|
class="pagination"
|
|||
|
|
@size-change="handleSizeChange"
|
|||
|
|
@current-change="handleCurrentChange"
|
|||
|
|
:current-page="childlistQuery.pageCurrent"
|
|||
|
|
:page-sizes="[10, 20, 50, 100]"
|
|||
|
|
:page-size="childlistQuery.pageSize"
|
|||
|
|
layout="total, sizes, prev, pager, next, jumper"
|
|||
|
|
:total="total"
|
|||
|
|
></el-pagination>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script setup>
|
|||
|
|
import { timeValidate } from "@/utils/tools";
|
|||
|
|
import { JXgetPageList, getStatistics } from "@/api/performance";
|
|||
|
|
import { defineProps, watch, ref, onMounted, nextTick } from "vue";
|
|||
|
|
import { parseTime, timestampToStr } from "@/utils/index";
|
|||
|
|
const props = defineProps({
|
|||
|
|
childTitle: {
|
|||
|
|
default: "",
|
|||
|
|
type: String
|
|||
|
|
},
|
|||
|
|
searchType: {
|
|||
|
|
default: "",
|
|||
|
|
type: String
|
|||
|
|
},
|
|||
|
|
ssbmdm: {
|
|||
|
|
default: "",
|
|||
|
|
type: String
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
const childlistQuery = ref({
|
|||
|
|
pageCurrent: 1,
|
|||
|
|
pageSize: 20,
|
|||
|
|
type: "01",
|
|||
|
|
searchType: props.searchType,
|
|||
|
|
kssj: "",
|
|||
|
|
jssj: "",
|
|||
|
|
ssbmdm: props.ssbmdm,
|
|||
|
|
cxcj: "02"
|
|||
|
|
});
|
|||
|
|
const userInfo = ref(JSON.parse(localStorage.getItem("userInfo")));
|
|||
|
|
const searchDay = ref("");
|
|||
|
|
const allNums = ref("");
|
|||
|
|
const tableChildData = ref([]);
|
|||
|
|
const alreadyNums = ref("");
|
|||
|
|
const notNums = ref("");
|
|||
|
|
const total = ref(0);
|
|||
|
|
const allList = ref([]);
|
|||
|
|
onMounted(() => {
|
|||
|
|
searchDay.value = timeValidate(new Date(),'ymd');
|
|||
|
|
childlistQuery.value.kssj = timeValidate(new Date(),'ymd');;
|
|||
|
|
childlistQuery.value.jssj = timeValidate(new Date(),'ymd');;
|
|||
|
|
getChildTableList();
|
|||
|
|
_getStatistics();
|
|||
|
|
});
|
|||
|
|
watch(
|
|||
|
|
() => [props.ssbmdm, props.searchType],
|
|||
|
|
() => {
|
|||
|
|
childlistQuery.value.ssbmdm = props.ssbmdm;
|
|||
|
|
childlistQuery.value.searchType = props.searchType;
|
|||
|
|
getChildTableList();
|
|||
|
|
_getStatistics();
|
|||
|
|
},
|
|||
|
|
{ deep: true }
|
|||
|
|
);
|
|||
|
|
// 获取弹窗表格初始化数据
|
|||
|
|
const getChildTableList = () => {
|
|||
|
|
JXgetPageList(childlistQuery.value).then((res) => {
|
|||
|
|
tableChildData.value = res.records;
|
|||
|
|
total.value = res.total;
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
const _getStatistics = () => {
|
|||
|
|
let { searchType, ssbmdm, kssj } = childlistQuery.value;
|
|||
|
|
let params = {
|
|||
|
|
searchType: searchType,
|
|||
|
|
ssbmdm: ssbmdm,
|
|||
|
|
time: kssj
|
|||
|
|
};
|
|||
|
|
getStatistics(params).then((res) => {
|
|||
|
|
alreadyNums.value = res.sjxllc;
|
|||
|
|
allNums.value = res.yxllc;
|
|||
|
|
notNums.value = res.wxllc;
|
|||
|
|
});
|
|||
|
|
};
|
|||
|
|
/**
|
|||
|
|
* pageSize 改变触发
|
|||
|
|
*/
|
|||
|
|
const handleSizeChange = (currentSize) => {
|
|||
|
|
childlistQuery.value.pageSize = currentSize;
|
|||
|
|
getChildTableList();
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 页码改变触发
|
|||
|
|
*/
|
|||
|
|
const handleCurrentChange = (currentPage) => {
|
|||
|
|
childlistQuery.value.pageCurrent = currentPage;
|
|||
|
|
getChildTableList();
|
|||
|
|
};
|
|||
|
|
const changeDay = (val) => {
|
|||
|
|
childlistQuery.value.kssj = val;
|
|||
|
|
childlistQuery.value.jssj = val;
|
|||
|
|
childlistQuery.value.pageCurrent=1
|
|||
|
|
getChildTableList();
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.popTitle {
|
|||
|
|
color: #72d8ff;
|
|||
|
|
line-height: 24px;
|
|||
|
|
font-size: 18px;
|
|||
|
|
text-align: center;
|
|||
|
|
}
|
|||
|
|
.tjtitle {
|
|||
|
|
margin-top: 30px;
|
|||
|
|
margin-bottom: 30px;
|
|||
|
|
display: flex;
|
|||
|
|
flex-direction: row;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
.tjli {
|
|||
|
|
flex: 1;
|
|||
|
|
text-align: center;
|
|||
|
|
font-size: 18px;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
::v-deep .el-table th.el-table__cell {
|
|||
|
|
background: #0d2944 !important;
|
|||
|
|
color: #61f9ff;
|
|||
|
|
}
|
|||
|
|
.qs-box {
|
|||
|
|
::v-deep .el-table__body-wrapper {
|
|||
|
|
height: 40vh;
|
|||
|
|
overflow: auto;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</style>
|