chenrui  2 years ago
parent
commit
04cf22f194

+ 7 - 3
public/config.js

@@ -5,7 +5,7 @@ var LOOP_INTERVAL = {
   waybill: 15 * 1000,
   goods: 15 * 1000,
   dashboard: 15 * 1000,
-}
+};
 
 // const PLATFROM_CONFIG = {
 //   baseNewUrl: "http://120.26.64.82:8083/", //登录前的http请求地址
@@ -310,7 +310,11 @@ var DATACONTENT_ID = {
   modePullgoods: 1803628, //拉货统计
   modePulltable: 1803631, //拉货统计表
   modeDomestictable: 1803644, //国内进港保障时间统计
-}
+  modeDomesticexportTable: 1803669, //国内出港
+  modeDomesticentryTable: 1803670, //国内进港
+  modeInternationalexportTable: 1803671, //国际出港
+  modeInternationaladvanceTable: 1803672, //国际进港
+};
 
 var SERVICE_ID = {
   /***-----账号管理------***/
@@ -345,4 +349,4 @@ var SERVICE_ID = {
 
   /***-----离港管理------***/
   departureScId: 8011, //发送报警预警日志信息
-}
+};

+ 37 - 1
src/router/routes/routes-file-seven.ts

@@ -10,7 +10,7 @@ const HomeRoutes = {
     title: "统计分析",
     elSvgIcon: "analyseIcon",
     breadcrumb: false,
-    roles: ["statistical_analysis_page"],
+    // roles: ["statistical_analysis_page"],
   },
   children: [
     {
@@ -67,6 +67,42 @@ const HomeRoutes = {
       component: () =>
         import("@/views/statisticalanalysis/domesticinbound/index.vue"),
     },
+    {
+      path: "/statisticalanalysis/domesticdeparture",
+      name: "Domesticdeparture",
+      meta: {
+        title: "航班统计国内出港",
+      },
+      component: () =>
+        import("@/views/statisticalanalysis/domesticdeparture/index.vue"),
+    },
+    {
+      path: "/statisticalanalysis/domesticentry",
+      name: "Domesticentry",
+      meta: {
+        title: "航班统计国内进港",
+      },
+      component: () =>
+        import("@/views/statisticalanalysis/domesticentry/index.vue"),
+    },
+    {
+      path: "/statisticalanalysis/Internationalexport",
+      name: "Internationalexport",
+      meta: {
+        title: "航班统计国际出港",
+      },
+      component: () =>
+        import("@/views/statisticalanalysis/Internationalexport/index.vue"),
+    },
+    {
+      path: "/statisticalanalysis/Internationaladvance",
+      name: "Internationaladvance",
+      meta: {
+        title: "航班统计国际进港",
+      },
+      component: () =>
+        import("@/views/statisticalanalysis/Internationaladvance/index.vue"),
+    },
   ],
 };
 

+ 259 - 0
src/views/statisticalanalysis/Internationaladvance/index.vue

@@ -0,0 +1,259 @@
+<template>
+  <div class="airportInfo">
+    <div class="variable">
+      <StatisticsHeader
+        :title="titleTop"
+        :items="formItems"
+        :data="formData"
+        :eledata="eledata"
+        with-setting
+        :withSetting="false"
+        :withExport="true"
+        :set="set"
+        :action="action"
+        :asShow="asShow"
+        @getFormData="getFormData"
+        @export="tableToExcel"
+        @upset="upset"
+      />
+    </div>
+    <div class="echart">
+      <Tableformbrs :tableList="tableList" action="9" :set="set" />
+    </div>
+  </div>
+</template>
+
+<script>
+import Echarts from "../components/echart/index.vue";
+import Tableformbrs from "../components/echart/tableforms.vue";
+import StatisticsHeader from "../components/echart/statisticsHeader.vue";
+import { export_json_to_excel } from "@/utils/Export2Excel";
+import { Query } from "@/api/webApi";
+export default {
+  name: "ChartsBar",
+  data() {
+    return {
+      asShow: false,
+      optiondata: [],
+      picShow: true, //图片表格切换
+      action: 6,
+      dataid: "collection_ecahrt0",
+      listqueryTemplateID: DATACONTENT_ID.modeInternationaladvanceTable,
+      eledata: null,
+      set: "",
+      isShow: Echarts,
+      tableList: [],
+      tableListcop: [],
+      listname: "",
+      listHeader: [],
+      tableData: {
+        time: [],
+        data1: [],
+        data2: [],
+        kg: "",
+        tyol: "",
+      },
+      formData: {
+        airport: "",
+        dateTime: "",
+      },
+      titleTop: "航班统计国际进港",
+      formItems: [
+        {
+          prop: "dateTime",
+          inputType: "datetimerange",
+          clearable: true,
+          width: "240px",
+          options: [],
+        },
+      ],
+    };
+  },
+  mounted() {
+    // this.getQuery([]);
+  },
+  watch: {
+    // 监听数据变化,重绘折线图
+    option: {
+      deep: true,
+      handler(newVal) {},
+    },
+  },
+  destroyed() {},
+  methods: {
+    getFormData(data) {
+      this.tableData.time = [];
+      this.tableData.data1 = [];
+      this.tableData.data2 = [];
+      let option = [
+        {
+          fd1: data.dateTime[0],
+          fd2: data.dateTime[1],
+        },
+      ];
+      this.getQuery(option, null);
+      this.listname =
+        "航班统计国际进港" + data.dateTime[0] + "--" + data.dateTime[1];
+      this.listHeader = [
+        "序号",
+        "执飞日期",
+        "计划航班数",
+        "已完成航班数",
+        "特货航班数",
+        "卸机航班数",
+        "机下交接航班数",
+        "货站交接航班数",
+        "理货航班数",
+        "海关放行航班数",
+        "出库航班数",
+      ];
+    },
+    //获取表格数据
+    async getQuery(data, dat) {
+      try {
+        const { code, returnData } = await Query({
+          id: this.listqueryTemplateID,
+          dataContent: data,
+        });
+        if (code == 0) {
+          this.tableData.time = [];
+          this.tableData.data1 = [];
+          this.tableData.data2 = [];
+          this.tableList = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableListcop = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableList.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          this.tableListcop.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          // let objar = {
+          //   indexs: "合计",
+          //   flightDate: returnData.listValues[0].totalPullFlightNum,
+          //   pullWeight: returnData.listValues[0].totalPullWeight,
+          // };
+          this.tableListcop.push(objar);
+          returnData.listValues.forEach((element) => {
+            this.tableData.data1 = [];
+          });
+          this.tableData.data1.push(0);
+          for (let index = 0; index < this.tableData.data2.length; index++) {
+            if (index > 0) {
+              const element =
+                (this.tableData.data2[index] -
+                  this.tableData.data2[index - 1]) /
+                this.tableData.data2[index - 1];
+              this.tableData.data1.push(
+                element.toFixed(2) ? element.toFixed(2) : 0
+              );
+              this.tableData.data1.forEach((element) => {
+                element = Number(element);
+                if (typeof element !== "number") {
+                  element = "";
+                }
+              });
+            }
+          }
+        }
+      } catch (error) {
+        this.page--;
+      }
+    },
+    //导出
+    tableToExcel() {
+      import("../../../utils/Export2Excel").then((excel) => {
+        // 设置导出表格的头部
+        const tHeader = this.listHeader;
+        // 将要导出的数据进行一个过滤
+        /**
+         * 源数据导入到excel的数据每一条重新拼成一个数组,数组里的每个元素就是filterVal里的每个字段
+         */
+        const data = this.tableListcop.map((item, index) => {
+          return [
+            item.indexs,
+            item.flightDate,
+            item.planFlightNum,
+            item.finishFlightNum,
+            item.speNum,
+            item.unloadNum,
+            item.planeDownTimeNum,
+            item.depotJoinNum,
+            item.tallyNum,
+            item.passCustomsNum,
+            item.outWarehouseNum,
+          ];
+        });
+        data[data.length - 1].indexs = "总计";
+        // 调用我们封装好的方法进行导出Excel
+        excel.export_json_to_excel({
+          // 导出的头部
+          header: tHeader,
+          // 导出的内容
+          data,
+          // 导出的文件名称
+          filename: this.listname,
+          // 导出的表格宽度是否自动
+          autoWidth: true,
+          // 导出文件的后缀类型
+          bookType: "xlsx",
+        });
+      });
+    },
+    upset(data) {
+      this.picShow = data;
+    },
+  },
+  components: {
+    Echarts,
+    StatisticsHeader,
+    Tableformbrs,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.airportInfo {
+  position: relative;
+  .header {
+    width: 103%;
+    height: 36px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: #f7f7f7;
+    position: relative;
+    left: -23px;
+    > .nav {
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #101116;
+    }
+    > .navs {
+      height: 100%;
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: bold;
+      color: #ac014d;
+      border-bottom: 2px solid #ac014d;
+    }
+  }
+  .variable {
+    width: 100%;
+    height: 64px;
+  }
+  .echart {
+    width: 100%;
+    height: 746px;
+    position: absolute;
+    background: #ffffff;
+    box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
+    border-radius: 4px;
+  }
+}
+</style>

+ 269 - 0
src/views/statisticalanalysis/Internationalexport/index.vue

@@ -0,0 +1,269 @@
+<template>
+  <div class="airportInfo">
+    <div class="variable">
+      <StatisticsHeader
+        :title="titleTop"
+        :items="formItems"
+        :data="formData"
+        :eledata="eledata"
+        with-setting
+        :withSetting="false"
+        :withExport="true"
+        :set="set"
+        :action="action"
+        :asShow="asShow"
+        @getFormData="getFormData"
+        @export="tableToExcel"
+        @upset="upset"
+      />
+    </div>
+    <div class="echart">
+      <Tableformbrs :tableList="tableList" action="8" :set="set" />
+    </div>
+  </div>
+</template>
+
+<script>
+import Echarts from "../components/echart/index.vue";
+import Tableformbrs from "../components/echart/tableforms.vue";
+import StatisticsHeader from "../components/echart/statisticsHeader.vue";
+import { export_json_to_excel } from "@/utils/Export2Excel";
+import { Query } from "@/api/webApi";
+export default {
+  name: "ChartsBar",
+  data() {
+    return {
+      asShow: false,
+      optiondata: [],
+      picShow: true, //图片表格切换
+      action: 6,
+      dataid: "collection_ecahrt0",
+      listqueryTemplateID: DATACONTENT_ID.modeInternationalexportTable,
+      eledata: null,
+      set: "",
+      isShow: Echarts,
+      tableList: [],
+      tableListcop: [],
+      listname: "",
+      listHeader: [],
+      tableData: {
+        time: [],
+        data1: [],
+        data2: [],
+        kg: "",
+        tyol: "",
+      },
+      formData: {
+        airport: "",
+        dateTime: "",
+      },
+      titleTop: "航班统计国际出港",
+      formItems: [
+        {
+          prop: "dateTime",
+          inputType: "datetimerange",
+          clearable: true,
+          width: "240px",
+          options: [],
+        },
+      ],
+    };
+  },
+  mounted() {
+    // this.getQuery([]);
+  },
+  watch: {
+    // 监听数据变化,重绘折线图
+    option: {
+      deep: true,
+      handler(newVal) {},
+    },
+  },
+  destroyed() {},
+  methods: {
+    getFormData(data) {
+      this.tableData.time = [];
+      this.tableData.data1 = [];
+      this.tableData.data2 = [];
+      let option = [
+        {
+          fd1: data.dateTime[0],
+          fd2: data.dateTime[1],
+        },
+      ];
+      this.getQuery(option, null);
+      this.listname =
+        "航班统计国际出港" + data.dateTime[0] + "--" + data.dateTime[1];
+      this.listHeader = [
+        "序号",
+        "执飞日期",
+        "计划航班数",
+        "已完成航班数",
+        "特货航班数",
+        "入园航班数",
+        "海关放行航班数",
+        "运抵货站航班数",
+        "安检放行航班数",
+        "收运核单航班数",
+        "理货航班数",
+        "发起货站交接航班数",
+        "交接复核航班数",
+        "机下交接航班数",
+        "拉下登记航班数",
+        "实配航班数",
+      ];
+    },
+    //获取表格数据
+    async getQuery(data, dat) {
+      try {
+        const { code, returnData } = await Query({
+          id: this.listqueryTemplateID,
+          dataContent: data,
+        });
+        if (code == 0) {
+          this.tableData.time = [];
+          this.tableData.data1 = [];
+          this.tableData.data2 = [];
+          this.tableList = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableListcop = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableList.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          this.tableListcop.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          // let objar = {
+          //   indexs: "合计",
+          //   flightDate: returnData.listValues[0].totalPullFlightNum,
+          //   pullWeight: returnData.listValues[0].totalPullWeight,
+          // };
+          this.tableListcop.push(objar);
+          returnData.listValues.forEach((element) => {
+            this.tableData.data1 = [];
+          });
+          this.tableData.data1.push(0);
+          for (let index = 0; index < this.tableData.data2.length; index++) {
+            if (index > 0) {
+              const element =
+                (this.tableData.data2[index] -
+                  this.tableData.data2[index - 1]) /
+                this.tableData.data2[index - 1];
+              this.tableData.data1.push(
+                element.toFixed(2) ? element.toFixed(2) : 0
+              );
+              this.tableData.data1.forEach((element) => {
+                element = Number(element);
+                if (typeof element !== "number") {
+                  element = "";
+                }
+              });
+            }
+          }
+        }
+      } catch (error) {
+        this.page--;
+      }
+    },
+    //导出
+    tableToExcel() {
+      import("../../../utils/Export2Excel").then((excel) => {
+        // 设置导出表格的头部
+        const tHeader = this.listHeader;
+        // 将要导出的数据进行一个过滤
+        /**
+         * 源数据导入到excel的数据每一条重新拼成一个数组,数组里的每个元素就是filterVal里的每个字段
+         */
+        const data = this.tableListcop.map((item, index) => {
+          return [
+            item.indexs,
+            item.flightDate,
+            item.planFlightNum,
+            item.finishFlightNum,
+            item.speNum,
+            item.enterParkNum,
+            item.enterCustomsNum,
+            item.toStationNum,
+            item.securityNum,
+            item.receiveSureNum,
+            item.tallyNum,
+            item.requestDepotJoinNum,
+            item.resureNum,
+            item.planeDownNum,
+            item.pullregisterNum,
+            item.stowageNum,
+          ];
+        });
+        data[data.length - 1].indexs = "总计";
+        // 调用我们封装好的方法进行导出Excel
+        excel.export_json_to_excel({
+          // 导出的头部
+          header: tHeader,
+          // 导出的内容
+          data,
+          // 导出的文件名称
+          filename: this.listname,
+          // 导出的表格宽度是否自动
+          autoWidth: true,
+          // 导出文件的后缀类型
+          bookType: "xlsx",
+        });
+      });
+    },
+    upset(data) {
+      this.picShow = data;
+    },
+  },
+  components: {
+    Echarts,
+    StatisticsHeader,
+    Tableformbrs,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.airportInfo {
+  position: relative;
+  .header {
+    width: 103%;
+    height: 36px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: #f7f7f7;
+    position: relative;
+    left: -23px;
+    > .nav {
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #101116;
+    }
+    > .navs {
+      height: 100%;
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: bold;
+      color: #ac014d;
+      border-bottom: 2px solid #ac014d;
+    }
+  }
+  .variable {
+    width: 100%;
+    height: 64px;
+  }
+  .echart {
+    width: 100%;
+    height: 746px;
+    position: absolute;
+    background: #ffffff;
+    box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
+    border-radius: 4px;
+  }
+}
+</style>

+ 382 - 0
src/views/statisticalanalysis/components/echart/tableforms.vue

@@ -319,6 +319,388 @@
           </el-table-column>
         </el-table>
       </template>
+      <template v-if="tableList.length && action == 6">
+        <el-table
+          :data="tableList"
+          style="width: 100%"
+          :row-style="rowStyle"
+          :style="dataTableContentStyle"
+          height="calc(100vh - 190px)"
+          max-height="calc(100vh - 190px)"
+          :stripe="tableProps.stripe"
+          :border="tableProps.border"
+          :row-key="tableProps.rowKey"
+          :highlight-current-row="tableProps.highlightCurrentRow"
+          :header-cell-class-name="tableProps.headerCellClassName"
+          :tooltip-effect="tableProps.tooltipEffect"
+          :summary-method="totalOutPrice"
+          :show-summary="tableProps.showSummary"
+        >
+          <el-table-column
+            prop="indexs"
+            label="序号"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="flightDate"
+            label="执飞日期"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planFlightNum"
+            label="计划航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="finishFlightNum"
+            label="已完成航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="ygmNum"
+            label="一个码航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="speNum"
+            label="特货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="receiveSureNum"
+            label="收运核单航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="securityNum"
+            label="安检放行航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="addCargoNum"
+            label="加货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="stowageNum"
+            label="预配载航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="depotJoinNum"
+            label="交接复核航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planeDownNum"
+            label="机下交接航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="pullNum"
+            label="拉下航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="pullSureNum"
+            label="拉回确认航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+        </el-table>
+      </template>
+      <template v-if="tableList.length && action == 7">
+        <el-table
+          :data="tableList"
+          style="width: 100%"
+          :row-style="rowStyle"
+          :style="dataTableContentStyle"
+          height="calc(100vh - 190px)"
+          max-height="calc(100vh - 190px)"
+          :stripe="tableProps.stripe"
+          :border="tableProps.border"
+          :row-key="tableProps.rowKey"
+          :highlight-current-row="tableProps.highlightCurrentRow"
+          :header-cell-class-name="tableProps.headerCellClassName"
+          :tooltip-effect="tableProps.tooltipEffect"
+          :summary-method="totalOutPrice"
+          :show-summary="tableProps.showSummary"
+        >
+          <el-table-column
+            prop="indexs"
+            label="序号"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="flightDate"
+            label="执飞日期"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planFlightNum"
+            label="计划航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="finishFlightNum"
+            label="已完成航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="speNum"
+            label="特货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="unLoadNum"
+            label="卸机航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="arriveNum"
+            label="库区到达航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="depotJoinNum"
+            label="货站交接航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="tallyNum"
+            label="理货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="outWarehouseNum"
+            label="出库航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+        </el-table>
+      </template>
+      <template v-if="tableList.length && action == 8">
+        <el-table
+          :data="tableList"
+          style="width: 100%"
+          :row-style="rowStyle"
+          :style="dataTableContentStyle"
+          height="calc(100vh - 190px)"
+          max-height="calc(100vh - 190px)"
+          :stripe="tableProps.stripe"
+          :border="tableProps.border"
+          :row-key="tableProps.rowKey"
+          :highlight-current-row="tableProps.highlightCurrentRow"
+          :header-cell-class-name="tableProps.headerCellClassName"
+          :tooltip-effect="tableProps.tooltipEffect"
+          :summary-method="totalOutPrice"
+          :show-summary="tableProps.showSummary"
+        >
+          <el-table-column
+            prop="indexs"
+            label="序号"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="flightDate"
+            label="执飞日期"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planFlightNum"
+            label="计划航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="finishFlightNum"
+            label="已完成航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="speNum"
+            label="特货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="enterParkNum"
+            label="入园航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="enterCustomsNum"
+            label="海关放行航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="toStationNum"
+            label="运抵货站航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="securityNum"
+            label="安检放行航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="receiveSureNum"
+            label="收运核单航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="tallyNum"
+            label="理货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="requestDepotJoinNum"
+            label="发起货站交接航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="resureNum"
+            label="交接复核航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planeDownNum"
+            label="机下交接航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="pullregisterNum"
+            label="拉下登记航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="stowageNum"
+            label="实配航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+        </el-table>
+      </template>
+      <template v-if="tableList.length && action == 9">
+        <el-table
+          :data="tableList"
+          style="width: 100%"
+          :row-style="rowStyle"
+          :style="dataTableContentStyle"
+          height="calc(100vh - 190px)"
+          max-height="calc(100vh - 190px)"
+          :stripe="tableProps.stripe"
+          :border="tableProps.border"
+          :row-key="tableProps.rowKey"
+          :highlight-current-row="tableProps.highlightCurrentRow"
+          :header-cell-class-name="tableProps.headerCellClassName"
+          :tooltip-effect="tableProps.tooltipEffect"
+          :summary-method="totalOutPrice"
+          :show-summary="tableProps.showSummary"
+        >
+          <el-table-column
+            prop="indexs"
+            label="序号"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="flightDate"
+            label="执飞日期"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planFlightNum"
+            label="计划航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="finishFlightNum"
+            label="已完成航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="speNum"
+            label="特货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="unloadNum"
+            label="卸机航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="planeDownTimeNum"
+            label="机下交接航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="depotJoinNum"
+            label="货站交接航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="tallyNum"
+            label="理货航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="passCustomsNum"
+            label="海关放行航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="outWarehouseNum"
+            label="出库航班数"
+            :show-overflow-tooltip="tableColumnProperty.showOverflowTooltip"
+          >
+          </el-table-column>
+        </el-table>
+      </template>
     </div>
   </div>
 </template>

+ 265 - 0
src/views/statisticalanalysis/domesticdeparture/index.vue

@@ -0,0 +1,265 @@
+<template>
+  <div class="airportInfo">
+    <div class="variable">
+      <StatisticsHeader
+        :title="titleTop"
+        :items="formItems"
+        :data="formData"
+        :eledata="eledata"
+        with-setting
+        :withSetting="false"
+        :withExport="true"
+        :set="set"
+        :action="action"
+        :asShow="asShow"
+        @getFormData="getFormData"
+        @export="tableToExcel"
+        @upset="upset"
+      />
+    </div>
+    <div class="echart">
+      <Tableformbrs :tableList="tableList" action="6" :set="set" />
+    </div>
+  </div>
+</template>
+
+<script>
+import Echarts from "../components/echart/index.vue";
+import Tableformbrs from "../components/echart/tableforms.vue";
+import StatisticsHeader from "../components/echart/statisticsHeader.vue";
+import { export_json_to_excel } from "@/utils/Export2Excel";
+import { Query } from "@/api/webApi";
+export default {
+  name: "ChartsBar",
+  data() {
+    return {
+      asShow: false,
+      optiondata: [],
+      picShow: true, //图片表格切换
+      action: 6,
+      dataid: "collection_ecahrt0",
+      listqueryTemplateID: DATACONTENT_ID.modeDomesticexportTable,
+      eledata: null,
+      set: "",
+      isShow: Echarts,
+      tableList: [],
+      tableListcop: [],
+      listname: "",
+      listHeader: [],
+      tableData: {
+        time: [],
+        data1: [],
+        data2: [],
+        kg: "",
+        tyol: "",
+      },
+      formData: {
+        airport: "",
+        dateTime: "",
+      },
+      titleTop: "航班统计国内出港",
+      formItems: [
+        {
+          prop: "dateTime",
+          inputType: "datetimerange",
+          clearable: true,
+          width: "240px",
+          options: [],
+        },
+      ],
+    };
+  },
+  mounted() {
+    // this.getQuery([]);
+  },
+  watch: {
+    // 监听数据变化,重绘折线图
+    option: {
+      deep: true,
+      handler(newVal) {},
+    },
+  },
+  destroyed() {},
+  methods: {
+    getFormData(data) {
+      this.tableData.time = [];
+      this.tableData.data1 = [];
+      this.tableData.data2 = [];
+      let option = [
+        {
+          fd1: data.dateTime[0],
+          fd2: data.dateTime[1],
+        },
+      ];
+      this.getQuery(option, null);
+      this.listname =
+        "航班统计国内出港" + data.dateTime[0] + "--" + data.dateTime[1];
+      this.listHeader = [
+        "序号",
+        "执飞日期",
+        "计划航班数",
+        "已完成航班数",
+        "一个码航班数",
+        "特货航班数",
+        "收运核单航班数",
+        "安检放行航班数",
+        "加货航班数",
+        "预配载航班数",
+        "交接复核航班数",
+        "机下交接航班数",
+        "拉下航班数",
+        "拉回确认航班数",
+      ];
+    },
+    //获取表格数据
+    async getQuery(data, dat) {
+      try {
+        const { code, returnData } = await Query({
+          id: this.listqueryTemplateID,
+          dataContent: data,
+        });
+        if (code == 0) {
+          this.tableData.time = [];
+          this.tableData.data1 = [];
+          this.tableData.data2 = [];
+          this.tableList = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableListcop = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableList.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          this.tableListcop.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          // let objar = {
+          //   indexs: "合计",
+          //   flightDate: returnData.listValues[0].totalPullFlightNum,
+          //   pullWeight: returnData.listValues[0].totalPullWeight,
+          // };
+          this.tableListcop.push(objar);
+          returnData.listValues.forEach((element) => {
+            this.tableData.data1 = [];
+          });
+          this.tableData.data1.push(0);
+          for (let index = 0; index < this.tableData.data2.length; index++) {
+            if (index > 0) {
+              const element =
+                (this.tableData.data2[index] -
+                  this.tableData.data2[index - 1]) /
+                this.tableData.data2[index - 1];
+              this.tableData.data1.push(
+                element.toFixed(2) ? element.toFixed(2) : 0
+              );
+              this.tableData.data1.forEach((element) => {
+                element = Number(element);
+                if (typeof element !== "number") {
+                  element = "";
+                }
+              });
+            }
+          }
+        }
+      } catch (error) {
+        this.page--;
+      }
+    },
+    //导出
+    tableToExcel() {
+      import("../../../utils/Export2Excel").then((excel) => {
+        // 设置导出表格的头部
+        const tHeader = this.listHeader;
+        // 将要导出的数据进行一个过滤
+        /**
+         * 源数据导入到excel的数据每一条重新拼成一个数组,数组里的每个元素就是filterVal里的每个字段
+         */
+        const data = this.tableListcop.map((item, index) => {
+          return [
+            item.indexs,
+            item.flightDate,
+            item.planFlightNum,
+            item.finishFlightNum,
+            item.ygmNum,
+            item.speNum,
+            item.receiveSureNum,
+            item.securityNum,
+            item.addCargoNum,
+            item.stowageNum,
+            item.depotJoinNum,
+            item.planeDownNum,
+            item.pullNum,
+            item.pullSureNum,
+          ];
+        });
+        data[data.length - 1].indexs = "总计";
+        // 调用我们封装好的方法进行导出Excel
+        excel.export_json_to_excel({
+          // 导出的头部
+          header: tHeader,
+          // 导出的内容
+          data,
+          // 导出的文件名称
+          filename: this.listname,
+          // 导出的表格宽度是否自动
+          autoWidth: true,
+          // 导出文件的后缀类型
+          bookType: "xlsx",
+        });
+      });
+    },
+    upset(data) {
+      this.picShow = data;
+    },
+  },
+  components: {
+    Echarts,
+    StatisticsHeader,
+    Tableformbrs,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.airportInfo {
+  position: relative;
+  .header {
+    width: 103%;
+    height: 36px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: #f7f7f7;
+    position: relative;
+    left: -23px;
+    > .nav {
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #101116;
+    }
+    > .navs {
+      height: 100%;
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: bold;
+      color: #ac014d;
+      border-bottom: 2px solid #ac014d;
+    }
+  }
+  .variable {
+    width: 100%;
+    height: 64px;
+  }
+  .echart {
+    width: 100%;
+    height: 746px;
+    position: absolute;
+    background: #ffffff;
+    box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
+    border-radius: 4px;
+  }
+}
+</style>

+ 257 - 0
src/views/statisticalanalysis/domesticentry/index.vue

@@ -0,0 +1,257 @@
+<template>
+  <div class="airportInfo">
+    <div class="variable">
+      <StatisticsHeader
+        :title="titleTop"
+        :items="formItems"
+        :data="formData"
+        :eledata="eledata"
+        with-setting
+        :withSetting="false"
+        :withExport="true"
+        :set="set"
+        :action="action"
+        :asShow="asShow"
+        @getFormData="getFormData"
+        @export="tableToExcel"
+        @upset="upset"
+      />
+    </div>
+    <div class="echart">
+      <Tableformbrs :tableList="tableList" action="7" :set="set" />
+    </div>
+  </div>
+</template>
+
+<script>
+import Echarts from "../components/echart/index.vue";
+import Tableformbrs from "../components/echart/tableforms.vue";
+import StatisticsHeader from "../components/echart/statisticsHeader.vue";
+import { export_json_to_excel } from "@/utils/Export2Excel";
+import { Query } from "@/api/webApi";
+export default {
+  name: "ChartsBar",
+  data() {
+    return {
+      asShow: false,
+      optiondata: [],
+      picShow: true, //图片表格切换
+      action: 6,
+      dataid: "collection_ecahrt0",
+      listqueryTemplateID: DATACONTENT_ID.modeDomesticentryTable,
+      eledata: null,
+      set: "",
+      isShow: Echarts,
+      tableList: [],
+      tableListcop: [],
+      listname: "",
+      listHeader: [],
+      tableData: {
+        time: [],
+        data1: [],
+        data2: [],
+        kg: "",
+        tyol: "",
+      },
+      formData: {
+        airport: "",
+        dateTime: "",
+      },
+      titleTop: "航班统计国内进港",
+      formItems: [
+        {
+          prop: "dateTime",
+          inputType: "datetimerange",
+          clearable: true,
+          width: "240px",
+          options: [],
+        },
+      ],
+    };
+  },
+  mounted() {
+    // this.getQuery([]);
+  },
+  watch: {
+    // 监听数据变化,重绘折线图
+    option: {
+      deep: true,
+      handler(newVal) {},
+    },
+  },
+  destroyed() {},
+  methods: {
+    getFormData(data) {
+      this.tableData.time = [];
+      this.tableData.data1 = [];
+      this.tableData.data2 = [];
+      let option = [
+        {
+          fd1: data.dateTime[0],
+          fd2: data.dateTime[1],
+        },
+      ];
+      this.getQuery(option, null);
+      this.listname =
+        "航班统计国内进港" + data.dateTime[0] + "--" + data.dateTime[1];
+      this.listHeader = [
+        "序号",
+        "执飞日期",
+        "计划航班数",
+        "已完成航班数",
+        "特货航班数",
+        "卸机航班数",
+        "库区到达航班数",
+        "货站交接航班数",
+        "理货航班数",
+        "出库航班数",
+      ];
+    },
+    //获取表格数据
+    async getQuery(data, dat) {
+      try {
+        const { code, returnData } = await Query({
+          id: this.listqueryTemplateID,
+          dataContent: data,
+        });
+        if (code == 0) {
+          this.tableData.time = [];
+          this.tableData.data1 = [];
+          this.tableData.data2 = [];
+          this.tableList = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableListcop = JSON.parse(JSON.stringify(returnData.listValues));
+          this.tableList.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          this.tableListcop.forEach((item, index) => {
+            item.indexs = index + 1;
+          });
+          // let objar = {
+          //   indexs: "合计",
+          //   flightDate: returnData.listValues[0].totalPullFlightNum,
+          //   pullWeight: returnData.listValues[0].totalPullWeight,
+          // };
+          this.tableListcop.push(objar);
+          returnData.listValues.forEach((element) => {
+            this.tableData.data1 = [];
+          });
+          this.tableData.data1.push(0);
+          for (let index = 0; index < this.tableData.data2.length; index++) {
+            if (index > 0) {
+              const element =
+                (this.tableData.data2[index] -
+                  this.tableData.data2[index - 1]) /
+                this.tableData.data2[index - 1];
+              this.tableData.data1.push(
+                element.toFixed(2) ? element.toFixed(2) : 0
+              );
+              this.tableData.data1.forEach((element) => {
+                element = Number(element);
+                if (typeof element !== "number") {
+                  element = "";
+                }
+              });
+            }
+          }
+        }
+      } catch (error) {
+        this.page--;
+      }
+    },
+    //导出
+    tableToExcel() {
+      import("../../../utils/Export2Excel").then((excel) => {
+        // 设置导出表格的头部
+        const tHeader = this.listHeader;
+        // 将要导出的数据进行一个过滤
+        /**
+         * 源数据导入到excel的数据每一条重新拼成一个数组,数组里的每个元素就是filterVal里的每个字段
+         */
+        const data = this.tableListcop.map((item, index) => {
+          return [
+            item.indexs,
+            item.flightDate,
+            item.planFlightNum,
+            item.finishFlightNum,
+            item.speNum,
+            item.unLoadNum,
+            item.arriveNum,
+            item.depotJoinNum,
+            item.tallyNum,
+            item.outWarehouseNum,
+          ];
+        });
+        data[data.length - 1].indexs = "总计";
+        // 调用我们封装好的方法进行导出Excel
+        excel.export_json_to_excel({
+          // 导出的头部
+          header: tHeader,
+          // 导出的内容
+          data,
+          // 导出的文件名称
+          filename: this.listname,
+          // 导出的表格宽度是否自动
+          autoWidth: true,
+          // 导出文件的后缀类型
+          bookType: "xlsx",
+        });
+      });
+    },
+    upset(data) {
+      this.picShow = data;
+    },
+  },
+  components: {
+    Echarts,
+    StatisticsHeader,
+    Tableformbrs,
+  },
+};
+</script>
+<style lang="scss" scoped>
+.airportInfo {
+  position: relative;
+  .header {
+    width: 103%;
+    height: 36px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background: #f7f7f7;
+    position: relative;
+    left: -23px;
+    > .nav {
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #101116;
+    }
+    > .navs {
+      height: 100%;
+      padding: 0 30px 0 30px;
+      cursor: pointer;
+      display: flex;
+      align-items: center;
+      font-size: 16px;
+      font-family: Microsoft YaHei;
+      font-weight: bold;
+      color: #ac014d;
+      border-bottom: 2px solid #ac014d;
+    }
+  }
+  .variable {
+    width: 100%;
+    height: 64px;
+  }
+  .echart {
+    width: 100%;
+    height: 746px;
+    position: absolute;
+    background: #ffffff;
+    box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
+    border-radius: 4px;
+  }
+}
+</style>