liwei19941102 пре 2 година
родитељ
комит
6e76dc52b6
3 измењених фајлова са 142 додато и 83 уклоњено
  1. 18 0
      src/api/gpsData/index.ts
  2. 1 1
      src/components/HomeComponents/stationPie.vue
  3. 123 82
      src/views/statics/passengerFlow.vue

+ 18 - 0
src/api/gpsData/index.ts

@@ -33,3 +33,21 @@ export function playdevice(codes): AxiosPromise<any> {
     method: 'post'
   });
 }
+
+
+export function liststaticFlow(query): AxiosPromise<any> {
+  return request({
+    url: `/system/carInfo/liststaticFlow`,
+    params: query,
+    method: 'get'
+  });
+}
+
+
+export function listsitesFlow(query): AxiosPromise<any> {
+  return request({
+    url: `/system/sites/flow`,
+    params: query,
+    method: 'get'
+  });
+}

+ 1 - 1
src/components/HomeComponents/stationPie.vue

@@ -227,7 +227,7 @@ onMounted(() => {
     font-size: 14px;
     color: #FFFFFE;
     line-height: 24px;
-    letter-spacing: 5px;
+    letter-spacing: 2px;
     text-align: left;
     font-style: normal;
     text-transform: none;

+ 123 - 82
src/views/statics/passengerFlow.vue

@@ -13,13 +13,14 @@
                                             <el-option v-for="item in carPathList" :key="item.id" :label="item.name"
                                                 :value="item.id" />
                                         </el-select>
-                                    </el-form-item>
+                                    </el-form-item> -->
                                     <el-form-item label="车辆">
-                                        <el-select v-model="line" placeholder="请选择车辆" style="width: 120px">
-                                            <el-option v-for="item in carInfoList" :key="item.id" :label="item.carNum"
-                                                :value="item.id" />
+                                        <el-select v-model="queryParams.carNum" placeholder="请选择车辆"
+                                            style="width: 120px">
+                                            <el-option v-for="item in carInfoList" :key="item.carNum" :label="item.carNum"
+                                                :value="item.carNum" />
                                         </el-select>
-                                    </el-form-item> -->
+                                    </el-form-item>
                                     <el-form-item label="时间" prop="carNum">
                                         <el-date-picker v-model="dataValue" type="daterange" :shortcuts="shortcuts"
                                             range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
@@ -39,6 +40,8 @@
                     </transition>
                     <el-card shadow="never">
                         <tableElm @childToParent='childrenClick' :columns="columns1" ref="table1"></tableElm>
+                        <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+                            v-model:limit="queryParams.pageSize" @pagination="searchCar" />
                     </el-card>
                 </div>
             </el-tab-pane>
@@ -49,18 +52,18 @@
                         <div class="search" v-show="showSearch" style="display: flex;flex-direction: row;">
                             <div style="width: 80%;">
                                 <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
-                                    <!-- <el-form-item label="路线">
-                                        <el-select v-model="line" placeholder="请选择路线" style="width: 120px">
+                                    <el-form-item label="路线">
+                                        <el-select v-model="queryParams2.line" placeholder="请选择路线" style="width: 120px">
                                             <el-option v-for="item in carPathList" :key="item.id" :label="item.name"
                                                 :value="item.id" />
                                         </el-select>
                                     </el-form-item>
-                                    <el-form-item label="站点">
-                                        <el-select v-model="line" placeholder="请选择车辆" style="width: 120px">
-                                            <el-option v-for="item in carInfoList" :key="item.id" :label="item.name"
-                                                :value="item.id" />
+                                    <el-form-item label="站点" prop="carNum">
+                                        <el-select v-model="queryParams2.site" placeholder="请选择站点" style="width: 300px">
+                                            <el-option v-for="item in sites" :key="item.dictLabel"
+                                                :label="item.dictLabel" :value="item.dictLabel" />
                                         </el-select>
-                                    </el-form-item> -->
+                                    </el-form-item>
                                     <el-form-item label="时间" prop="carNum">
                                         <el-date-picker v-model="dataValue2" type="daterange" :shortcuts="shortcuts"
                                             range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
@@ -80,6 +83,8 @@
                     </transition>
                     <el-card shadow="never">
                         <tableElm @childToParent='childrenClick' :columns="columns2" ref="table2"></tableElm>
+                        <pagination v-show="total2 > 0" :total="total" v-model:page="queryParams2.pageNum"
+                            v-model:limit="queryParams2.pageSize" @pagination="searchCar" />
                     </el-card>
                 </div>
             </el-tab-pane>
@@ -91,9 +96,10 @@
 import { listCarInfo, getCarInfo, delCarInfo, addCarInfo, updateCarInfo } from '@/api/carInfo';
 import { listCarSchedule, getCarSchedule, delCarSchedule, addCarSchedule, updateCarSchedule } from '@/api/carSchedule';
 import { CarInfoVO, CarInfoQuery, CarInfoForm } from '@/api/carInfo/types';
+import { updateData, listData } from "@/api/system/dict/data";
 import { listCarPath, getCarPath, delCarPath, addCarPath, updateCarPath } from '@/api/carPath';
 
-import { getCountData } from '@/api/gpsData';
+import { liststaticFlow, listsitesFlow } from '@/api/gpsData';
 import tableElm from "@/components/Public/table.vue";
 import { useRoute, useRouter } from "vue-router";
 import moment from 'moment';
@@ -111,6 +117,7 @@ const ids = ref<Array<string | number>>([]);
 const single = ref(true);
 const multiple = ref(true);
 const total = ref(0);
+const total2 = ref(0);
 const value2 = ref('')
 const carPathList = ref([])
 
@@ -133,6 +140,7 @@ const dialog = reactive<DialogOption>({
     title: ''
 });
 
+const sites = ref([]);
 const table = ref(tableElm)
 const table1 = ref(tableElm)
 const table2 = ref(tableElm)
@@ -152,17 +160,17 @@ const columns1 = ref([
     { label: '车牌号', prop: 'carNum', visible: true, isTemplate: false },
     { label: '开始时间', prop: 'startTime', visible: true, isTemplate: false, },
     { label: '结束时间', prop: 'endTime', pprop: "ext1", visible: true, isTemplate: false },
-    { label: '上车总数', prop: 'upCount', visible: true, isTemplate: false, },
-    { label: '下车总数', prop: 'downCount', pprop: "ext1", visible: true, isTemplate: false },
+    { label: '上车总数', prop: 'others.incount', visible: true, isTemplate: false, },
+    { label: '下车总数', prop: 'others.outcount', pprop: "ext1", visible: true, isTemplate: false },
 ])
 
 const columns2 = ref([
     // {label: '上层位置', prop: 'v', visible: true},
-    { label: '站点名', prop: 'siteName', visible: true, isTemplate: false },
+    { label: '站点名', prop: 'dictLabel', visible: true, isTemplate: false },
     { label: '开始时间', prop: 'startTime', visible: true, isTemplate: false, },
     { label: '结束时间', prop: 'endTime', pprop: "ext1", visible: true, isTemplate: false },
-    { label: '上车总数', prop: 'upCount', visible: true, isTemplate: false, },
-    { label: '下车总数', prop: 'downCount', pprop: "ext1", visible: true, isTemplate: false },
+    { label: '上车总数', prop: 'others.incount', visible: true, isTemplate: false, },
+    { label: '下车总数', prop: 'others.outcount', pprop: "ext1", visible: true, isTemplate: false },
 ])
 
 const initFormData: CarInfoForm = {
@@ -200,6 +208,12 @@ const data = reactive<PageData<CarInfoForm, CarInfoQuery>>({
         params: {
         }
     },
+    queryParams2: {
+        pageNum: 1,
+        pageSize: 10,
+        site:'',
+        line:[],
+    },
     rules: {
         id: [
             { required: true, message: "编号不能为空", trigger: "blur" }
@@ -248,12 +262,18 @@ const paramData = ref({
     endtime: ''
 })
 
-const { queryParams, form, rules } = toRefs(data);
+const { queryParams, queryParams2, form, rules } = toRefs(data);
 
 const goadd = () => {
     router.push("/car/work/addWork")
 }
 
+const getSites = () => {
+    listData({ dictType: "tbl_sites" }).then(res2 => {
+        sites.value = res2.rows;
+    });
+}
+
 const searchData = () => {
     console.log(dataValue.value)
 }
@@ -408,81 +428,99 @@ const initData = async () => {
     const res2 = await listCarInfo({ pageSize: 1000 });
     carInfoList.value = res2.rows
     var params = {
-        starttime:moment(dataValue2.value[0]).format("YYYY-MM-DD HH:mm:ss"),
-        endtime:moment(dataValue2.value[1]).format("YYYY-MM-DD HH:mm:ss")
+        starttime: moment(dataValue2.value[0]).format("YYYY-MM-DD HH:mm:ss"),
+        endtime: moment(dataValue2.value[1]).format("YYYY-MM-DD HH:mm:ss")
     }
-    const res3 = await listCarSchedule({ pageSize: 1000 ,params:params})
+    const res3 = await listCarSchedule({ pageSize: 1000, params: params })
+    getSites();
     carFlowList.value = [];
     siteFlowList.value = [];
-    for (var index in carInfoList.value) {
-        if (carInfoList.value[index].deviceInfos != null) {
-            var deviceCode = JSON.parse(carInfoList.value[index].deviceInfos)[0].code
-            console.log(deviceCode)
-            await getFlowData(deviceCode,carInfoList.value[index].carNum)
-        }
-        //getFlowData();
-    }
-    for(var index in res3.data){
-        if(res3.data[index].ext1 != null){
-            var siteList = JSON.parse(res3.data[index].ext1)
-            var gpsCode = ''
-            for(var j in carInfoList.value){
-                 if(carInfoList.value[j].carNum == res3.data[index]){
-                    gpsCode = JSON.parse(carInfoList.value[index].deviceInfos)[0].code
-                 }
-            }
-            for(var key in siteList){
-                var obj = siteList[key]
-                 await getSiteData(key,gpsCode,obj.intime,obj.outtime);
-            }
-        }
-    }
-    table2.value.setButton([]);
+    searchCar();
+    searchSite();
+    // for (var index in carInfoList.value) {
+    //     if (carInfoList.value[index].deviceInfos != null) {
+    //         var deviceCode = JSON.parse(carInfoList.value[index].deviceInfos)[0].code
+    //         console.log(deviceCode)
+    //         await getFlowData(deviceCode, carInfoList.value[index].carNum)
+    //     }
+    //     //getFlowData();
+    // }
+    // for (var index in res3.data) {
+    //     if (res3.data[index].ext1 != null) {
+    //         var siteList = JSON.parse(res3.data[index].ext1)
+    //         var gpsCode = ''
+    //         for (var j in carInfoList.value) {
+    //             if (carInfoList.value[j].carNum == res3.data[index]) {
+    //                 gpsCode = JSON.parse(carInfoList.value[index].deviceInfos)[0].code
+    //             }
+    //         }
+    //         for (var key in siteList) {
+    //             var obj = siteList[key]
+    //             await getSiteData(key, gpsCode, obj.intime, obj.outtime);
+    //         }
+    //     }
+    // }
+    // table2.value.setButton([]);
     // console.log(carFlowList.value)
-    table2.value.setDataList(siteFlowList.value);
+    // table2.value.setDataList(siteFlowList.value);
 }
 
-const searchCar = async() =>{
-    carFlowList.value = [];
-    for (var index in carInfoList.value) {
-        if (carInfoList.value[index].deviceInfos != null) {
-            var deviceCode = JSON.parse(carInfoList.value[index].deviceInfos)[0].code
-            await getFlowData(deviceCode,carInfoList.value[index].carNum)
+const searchCar = () => {
+    var obj = {
+        pageSize: queryParams.value.pageSize,
+        pageNum: queryParams.value.pageNum,
+        carNum: queryParams.value.carNum,
+        params: {
+            starttime: moment(dataValue.value[0]).format("YYYY-MM-DD HH:mm:ss"),
+            endtime: moment(dataValue.value[1]).format("YYYY-MM-DD HH:mm:ss")
         }
-        //getFlowData();
     }
-    table1.value.setButton([]);
-    // console.log(carFlowList.value)
-    table1.value.setDataList(carFlowList.value);
+    liststaticFlow(obj).then(res => {
+        total.value = res.total
+        table1.value.setButton([]);
+        for (var index in res.rows) {
+            res.rows[index].startTime = moment(dataValue.value[0]).format("YYYY-MM-DD HH:mm:ss")
+            res.rows[index].endTime = moment(dataValue.value[1]).format("YYYY-MM-DD HH:mm:ss")
+        }
+        table1.value.setDataList(res.rows);
+    })
 }
 
-const searchSite = async() =>{
+const searchSite = () => {
+    var sites = []
+    for(var index in carPathList.value){
+         if(queryParams2.value.line == carPathList.value[index].id){
+              for(var j in JSON.parse(carPathList.value[index].stationList)){
+                   var station = JSON.parse(carPathList.value[index].stationList)[j].data
+                   sites.push(station.dictLabel)
+              }
+         }
+    }
     var params = {
-        starttime:moment(dataValue2.value[0]).format("YYYY-MM-DD HH:mm:ss"),
-        endtime:moment(dataValue2.value[1]).format("YYYY-MM-DD HH:mm:ss")
+        starttime: moment(dataValue2.value[0]).format("YYYY-MM-DD HH:mm:ss"),
+        endtime: moment(dataValue2.value[1]).format("YYYY-MM-DD HH:mm:ss")
     }
-    const res3 = await listCarSchedule({ pageSize: 1000 ,params:params})
-    for(var index in res3.data){
-        if(res3.data[index].ext1 != null){
-            var siteList = JSON.parse(res3.data[index].ext1)
-            var gpsCode = ''
-            for(var j in carInfoList.value){
-                 if(carInfoList.value[j].carNum == res3.data[index]){
-                    gpsCode = JSON.parse(carInfoList.value[index].deviceInfos)[0].code
-                 }
-            }
-            for(var key in siteList){
-                var obj = siteList[key]
-                 await getSiteData(key,gpsCode,obj.intime,obj.outtime);
-            }
-        }
+    var obj = {
+        dictLabel:queryParams2.value.site,
+        pageSize: queryParams2.value.pageSize,
+        pageNum: queryParams2.value.pageNum,
+        params: params
     }
-    table2.value.setButton([]);
-    // console.log(carFlowList.value)
-    table2.value.setDataList(siteFlowList.value);
+    if(sites.length > 0){
+        obj.sites = sites.join(',')
+    }
+    listsitesFlow(obj).then(res => {
+        total2.value = res.total
+        for (var index in res.rows) {
+            res.rows[index].startTime = moment(dataValue.value[0]).format("YYYY-MM-DD HH:mm:ss")
+            res.rows[index].endTime = moment(dataValue.value[1]).format("YYYY-MM-DD HH:mm:ss")
+        }
+        table2.value.setButton([]);
+        table2.value.setDataList(res.rows);
+    })
 }
 
-const getFlowData = (carCode,carNum) => {
+const getFlowData = (carCode, carNum) => {
     var obj = {
         starttime: moment(dataValue.value[0]).format('YYYY-MM-DD'),
         endtime: moment(dataValue.value[1]).format('YYYY-MM-DD')
@@ -499,7 +537,7 @@ const getFlowData = (carCode,carNum) => {
     })
 }
 
-const getSiteData = (carCode,siteName,startTime,endTime) => {
+const getSiteData = (carCode, siteName, startTime, endTime) => {
     var obj = {
         starttime: startTime,
         endtime: endTime
@@ -516,7 +554,7 @@ const getSiteData = (carCode,siteName,startTime,endTime) => {
     })
 }
 
-const getStationData = (carCode,siteName) => {
+const getStationData = (carCode, siteName) => {
     var obj = {
         starttime: moment(dataValue.value[0]).format('YYYY-MM-DD'),
         endtime: moment(dataValue.value[1]).format('YYYY-MM-DD')
@@ -536,4 +574,7 @@ const getStationData = (carCode,siteName) => {
 onMounted(() => {
     initData();
 });
-</script>
+</script>
+
+
+<style></style>