Эх сурвалжийг харах

Merge branch 'master' of http://120.26.64.82:3000/BFFE/CABaggageData2.0

zhaoke 2 жил өмнө
parent
commit
f1561e5bdb

+ 265 - 87
src/components/Table/index.vue

@@ -1,25 +1,68 @@
 <template>
   <div class="data-table" :style="{ marginTop: marginTop }">
-    <div :style="dataTableContentStyle" v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" class="data-table-content">
+    <div
+      :style="dataTableContentStyle"
+      v-loading="loading"
+      element-loading-text="拼命加载中"
+      element-loading-spinner="el-icon-loading"
+      element-loading-background="rgba(0, 0, 0, 0.8)"
+      class="data-table-content"
+    >
       <div :class="isStatus ? 'flex' : 'flex-end'" class="data-table-btn">
         <div v-if="isStatus" class="vStatus">
           <slot name="header" />
         </div>
-        <el-button v-if="isBtn" size="small" @click="handleAdd" plain type="primary">新增</el-button>
+        <el-button
+          v-if="isBtn"
+          size="small"
+          @click="handleAdd"
+          plain
+          type="primary"
+          >新增</el-button
+        >
       </div>
       <template v-if="tableData.length">
         <div>
-          <el-table v-el-table-infinite-scroll="load" :data="filteredTableData" :summary-method="getSummaries" :span-method="tableSpanMethod" stripe :show-summary="showSummary" border ref="table" :height="tableHeight ? tableHeight : minHeight - 8 + 'vh'" class="table infinite-list" style="width: 100%; overflow: auto" @select="selectHandler">
-            <el-table-column v-if="selectionEnable" type="selection" width="35" />
+          <el-table
+            v-el-table-infinite-scroll="load"
+            :data="filteredTableData"
+            :summary-method="getSummaries"
+            :span-method="tableSpanMethod"
+            stripe
+            :show-summary="showSummary"
+            border
+            ref="table"
+            :height="tableHeight ? tableHeight : minHeight - 8 + 'vh'"
+            class="table infinite-list"
+            style="width: 100%; overflow: auto"
+            @select="selectHandler"
+          >
+            <el-table-column
+              v-if="selectionEnable"
+              type="selection"
+              width="35"
+            />
             <el-table-column v-if="isStatus" width="55">
               <template slot-scope="scope">
                 <div class="tableStatus">
-                  <div v-if="filteredTableData[scope.$index].runState == '运行'" class="status0"><span class="icon"></span></div>
+                  <div
+                    v-if="filteredTableData[scope.$index].runState == '运行'"
+                    class="status0"
+                  >
+                    <span class="icon"></span>
+                  </div>
                   <div v-else class="status1"><span class="icon"></span></div>
                 </div>
               </template>
             </el-table-column>
-            <el-table-column v-for="(item, index) in tableColsCopy" :sortable="item.needSort ? true : false" :key="index" :prop="item.columnName" :label="item.columnLabel" :show-overflow-tooltip="showOverflowTooltip">
+            <el-table-column
+              v-for="(item, index) in tableColsCopy"
+              :sortable="item.needSort ? true : false"
+              :key="index"
+              :prop="item.columnName"
+              :label="item.columnLabel"
+              :show-overflow-tooltip="showOverflowTooltip"
+            >
               <template #header>
                 <span class="colTips">
                   <el-tooltip :content="item.columnDescribe" placement="top">
@@ -27,18 +70,38 @@
                   </el-tooltip>
                 </span>
                 <span v-if="item.needFilters">
-                  <el-popover placement="bottom" trigger="click" @show="popoverShowHandler(item.columnName)" @hide="popoverHideHandler">
-                    <i slot="reference" :class="[
+                  <el-popover
+                    placement="bottom"
+                    trigger="click"
+                    @show="popoverShowHandler(item.columnName)"
+                    @hide="popoverHideHandler"
+                  >
+                    <i
+                      slot="reference"
+                      :class="[
                         'filter-arrow',
                         'el-icon-arrow-down',
                         arrowClass(item.columnName),
-                      ]" />
+                      ]"
+                    />
                     <el-form>
                       <el-form-item :label="item.columnLabel">
-                        <el-select v-model="filterValues[item.columnName]" size="small" placeholder="筛选" default-first-option filterable clearable>
-                          <el-option v-for="(option, optionIndex) in tableDataFilters[
+                        <el-select
+                          v-model="filterValues[item.columnName]"
+                          size="small"
+                          placeholder="筛选"
+                          default-first-option
+                          filterable
+                          clearable
+                        >
+                          <el-option
+                            v-for="(option, optionIndex) in tableDataFilters[
                               item.columnName
-                            ]" :key="option.value + optionIndex" :value="option.value" :label="option.text" />
+                            ]"
+                            :key="option.value + optionIndex"
+                            :value="option.value"
+                            :label="option.text"
+                          />
                         </el-select>
                       </el-form-item>
                     </el-form>
@@ -51,17 +114,77 @@
                 <div class="hd-td">
                   <div class="hd-tr">
                     <template v-if="isStatus">
-                      <el-button type="text" @click="handleLook(scope.row)" size="small" class="rmScs">查看</el-button>
-                      <el-button type="text" v-if="scope.row.runState == '停止'" @click="chanheState(scope.row)" size="small" class="rmScs">启动</el-button>
-                      <el-button type="text" v-if="scope.row.runState == '运行'" @click="chanheState(scope.row)" size="small" class="rmScs">停止</el-button>
+                      <el-button
+                        type="text"
+                        @click="handleLook(scope.row)"
+                        size="small"
+                        class="rmScs"
+                        >查看</el-button
+                      >
+                      <el-button
+                        type="text"
+                        v-if="scope.row.runState == '停止'"
+                        @click="chanheState(scope.row)"
+                        size="small"
+                        class="rmScs"
+                        >启动</el-button
+                      >
+                      <el-button
+                        type="text"
+                        v-if="scope.row.runState == '运行'"
+                        @click="chanheState(scope.row)"
+                        size="small"
+                        class="rmScs"
+                        >停止</el-button
+                      >
                     </template>
                     <!-- <el-button class="hrefBtn" type="text" @click="handleHerf(scope.row)" size="small">跳转</el-button> -->
-                    <el-button type="text" @click="handleEdit(scope.row)" size="small" class="rmScs">编辑</el-button>
-                    <el-button class="rmSc" type="text" @click="handleRemove(scope.row)" size="small">删除</el-button>
-                    <el-button class="rmScs" v-if="withColumnSet" type="text" size="small" @click="handleColumnSet(scope.row)">列设置</el-button>
-                    <el-button class="rmScs" v-if="withItemSet" type="text" size="small" @click="handleItemSet(scope.row)">数据项</el-button>
-                    <el-button class="rmScser" v-if="withlodSet" type="text" size="small" @click="handlelodSet(scope.row)">航站设置</el-button>
-                    <el-button class="rmScser" v-if="withnodeSet" type="text" size="small" @click="handlenodeSet(scope.row)">节点设置</el-button>
+                    <el-button
+                      type="text"
+                      @click="handleEdit(scope.row)"
+                      size="small"
+                      class="rmScs"
+                      >编辑</el-button
+                    >
+                    <el-button
+                      class="rmSc"
+                      type="text"
+                      @click="handleRemove(scope.row)"
+                      size="small"
+                      >删除</el-button
+                    >
+                    <el-button
+                      class="rmScs"
+                      v-if="withColumnSet"
+                      type="text"
+                      size="small"
+                      @click="handleColumnSet(scope.row)"
+                      >列设置</el-button
+                    >
+                    <el-button
+                      class="rmScs"
+                      v-if="withItemSet"
+                      type="text"
+                      size="small"
+                      @click="handleItemSet(scope.row)"
+                      >数据项</el-button
+                    >
+                    <el-button
+                      class="rmScser"
+                      v-if="withlodSet"
+                      type="text"
+                      size="small"
+                      @click="handlelodSet(scope.row)"
+                      >航站设置</el-button
+                    >
+                    <el-button
+                      class="rmScser"
+                      v-if="withnodeSet"
+                      type="text"
+                      size="small"
+                      @click="handlenodeSet(scope.row)"
+                      >节点设置</el-button
+                    >
                   </div>
                 </div>
               </template>
@@ -80,16 +203,38 @@
         <div class="dialog-content">
           <div class="title">{{ tableTitle }}</div>
           <div class="content">
-            <el-form ref="ruleForm" :model="tableForm" :label-width="labelWidth">
+            <el-form
+              ref="ruleForm"
+              :model="tableForm"
+              :label-width="labelWidth"
+            >
               <el-row :gutter="20">
-                <el-col v-for="(item, index) in tableColsCopy" :key="index" :span="rows">
+                <el-col
+                  v-for="(item, index) in tableColsCopy"
+                  :key="index"
+                  :span="rows"
+                >
                   <el-form-item :label="item.columnLabel">
-                    <template v-if="
+                    <template
+                      v-if="
                         item.listqueryTemplateID ||
                         item.listqueryTemplateID == 0
-                      ">
-                      <el-select size="small" clearable style="width: 100%" v-model="tableForm[item.columnName]" @change="changeSelect(item.columnName)" placeholder="请选择">
-                        <el-option v-for="item in tableOptions[item.columnName]" :key="item.v" :label="item.k" :value="item.v">
+                      "
+                    >
+                      <el-select
+                        size="small"
+                        clearable
+                        style="width: 100%"
+                        v-model="tableForm[item.columnName]"
+                        @change="changeSelect(item.columnName)"
+                        placeholder="请选择"
+                      >
+                        <el-option
+                          v-for="item in tableOptions[item.columnName]"
+                          :key="item.v"
+                          :label="item.k"
+                          :value="item.v"
+                        >
                         </el-option>
                       </el-select>
                     </template>
@@ -97,7 +242,11 @@
                       <el-input size="small" :rows="1" type="textarea" v-model="tableForm[item.columnName]"></el-input>
                     </template> -->
                     <template v-else>
-                      <el-input size="small" v-model="tableForm[item.columnName]" @change="inputChangeHandler(item.columnName)"></el-input>
+                      <el-input
+                        size="small"
+                        v-model="tableForm[item.columnName]"
+                        @change="inputChangeHandler(item.columnName)"
+                      ></el-input>
                     </template>
                   </el-form-item>
                 </el-col>
@@ -105,7 +254,13 @@
             </el-form>
           </div>
           <div class="foot right t30">
-            <el-button size="medium" @click="handleOk" class="r24" type="primary">确定</el-button>
+            <el-button
+              size="medium"
+              @click="handleOk"
+              class="r24"
+              type="primary"
+              >确定</el-button
+            >
             <el-button @click="flag = false" size="medium">取消</el-button>
           </div>
         </div>
@@ -114,11 +269,20 @@
         <div class="airportInfoDialog">
           <div class="title del-title">删除</div>
           <div class="content del-content">
-            <span class="el-icon-error error r10"></span>您是否确认删除<span class="error l10">{{ rmTitle }}</span>
+            <span class="el-icon-error error r10"></span>您是否确认删除<span
+              class="error l10"
+              >{{ rmTitle }}</span
+            >
           </div>
           <div class="foot right Delfoot t30">
-            <el-button size="medium" class="r24" @click="tableRemove" type="danger">删除</el-button>
+            <el-button
+              size="medium"
+              class="r24"
+              @click="tableRemove"
+              type="danger"
+              >删除</el-button
+            >
             <el-button size="medium" @click="rmFlag = false">取消</el-button>
           </div>
         </div>
@@ -131,7 +295,12 @@
 import { setTableFilters } from "@/utils/table";
 import Dialog from "@/layout/components/Dialog/index.vue";
 import NoData from "@/components/nodata";
-import { Query, GeneralDataReception, Start, Stop } from "@/api/dataIntegration";
+import {
+  Query,
+  GeneralDataReception,
+  Start,
+  Stop,
+} from "@/api/dataIntegration";
 export default {
   name: "DataTable",
   props: {
@@ -234,10 +403,10 @@ export default {
     fixedWidth: {
       type: String,
       default: "180px",
-    }
+    },
   },
   components: { Dialog, NoData },
-  data () {
+  data() {
     return {
       loading: false,
       flag: false,
@@ -267,7 +436,7 @@ export default {
     };
   },
   computed: {
-    dataTableContentStyle () {
+    dataTableContentStyle() {
       const style = {};
       if (this.minHeight) {
         style["min-height"] = this.minHeight;
@@ -278,7 +447,7 @@ export default {
       return style;
     },
     //设置表头-下拉-箭头样式
-    arrowClass () {
+    arrowClass() {
       return function (prop) {
         let classString = "";
         if (this.colShowFilter === prop) {
@@ -295,7 +464,7 @@ export default {
       };
     },
     //设置表头-下拉-选中数据
-    filteredTableData () {
+    filteredTableData() {
       return this.tableData.filter((item) => {
         let flag = true;
         Object.entries(this.filterValues).forEach(([key, value]) => {
@@ -309,7 +478,7 @@ export default {
   },
   watch: {
     dataContent: {
-      handler (val) {
+      handler(val) {
         if (val) {
           console.log(val);
           if (val.companyID) {
@@ -320,27 +489,36 @@ export default {
       },
       deep: true,
     },
+    dataId: {
+      if(val) {
+        console.log(val);
+        if (val.companyID) {
+          this.resetTable();
+          this.getQuery();
+        }
+      },
+    },
   },
-  mounted () {
+  mounted() {
     this.getQuery();
   },
-  updated () {
+  updated() {
     this.$refs["table"]?.doLayout();
   },
   methods: {
-    load () {
+    load() {
       // console.log("分页");
       if (this.noMore || this.loading) {
         return;
       }
       this.getQuery();
     },
-    resetTable () {
+    resetTable() {
       this.page = 0;
       this.noMore = false;
       this.tableData = [];
     },
-    changeSelect (data) {
+    changeSelect(data) {
       if (this.tableForm[data] === "") {
         this.tableForm[data] = null;
       }
@@ -348,13 +526,13 @@ export default {
         this.tableForm[data];
       // console.log(this.tableForm)
     },
-    inputChangeHandler (data) {
+    inputChangeHandler(data) {
       if (this.tableForm[data] === "") {
         this.tableForm[data] = null;
       }
     },
     //获取表格数据
-    async getQuery () {
+    async getQuery() {
       try {
         this.loading = true;
         const { code, returnData } = await Query({
@@ -393,7 +571,7 @@ export default {
       }
     },
     //表格-增/删/改
-    async generalDataReception (data) {
+    async generalDataReception(data) {
       try {
         data = {
           ...data,
@@ -427,17 +605,17 @@ export default {
       }
     },
     // 表格勾选
-    toggleRowSelection (row, isSelected) {
+    toggleRowSelection(row, isSelected) {
       this.$refs["table"].toggleRowSelection(row, isSelected);
     },
     // 表格初始勾选
-    selectTableRows (tableData, selectFlagName) {
+    selectTableRows(tableData, selectFlagName) {
       tableData.forEach((row) => {
         this.$refs["table"].toggleRowSelection(row, !!row[selectFlagName]);
       });
     },
     //初始化表格
-    initTableData () {
+    initTableData() {
       this.tableColsCopy = this.tableCols.filter((item) => item.needShow);
       // console.log(this.tableColsCopy);
       // debugger;
@@ -466,7 +644,7 @@ export default {
       // this.getSelectDataAll(reqUts)
     },
     //获取所有获取弹框-下拉数据-请求状态
-    getSelectDataAll (reqUts) {
+    getSelectDataAll(reqUts) {
       Promise.all(reqUts)
         .then((res) => {
           this.proAll = true;
@@ -476,7 +654,7 @@ export default {
         });
     },
     //获取弹框-下拉数据
-    async getSelectData (id) {
+    async getSelectData(id) {
       const { code, returnData } = await Query({
         id,
         dataContent: [],
@@ -488,7 +666,7 @@ export default {
       }
     },
     //重组table-显示名称
-    setTable () {
+    setTable() {
       this.tableArrs.forEach((item) => {
         this.tableOptions[item].forEach((p) => {
           this.tableDataCopy.forEach((msg) => {
@@ -507,7 +685,7 @@ export default {
       this.tableData = this.tableDataCopy;
     },
     //分组
-    tableGroup (tableData) {
+    tableGroup(tableData) {
       const spanArr = [];
       let pos = 0;
       let ifYj = this.tableGroups[0];
@@ -527,14 +705,14 @@ export default {
       this.spanArr = spanArr;
       this.pos = pos;
     },
-    popoverShowHandler (prop) {
+    popoverShowHandler(prop) {
       this.colShowFilter = prop;
     },
-    popoverHideHandler () {
+    popoverHideHandler() {
       this.colShowFilter = "";
     },
     //分组
-    tableSpanMethod ({ row, column, rowIndex, columnIndex }) {
+    tableSpanMethod({ row, column, rowIndex, columnIndex }) {
       if (this.tableGroups.includes(column["property"])) {
         const _row = this.spanArr[rowIndex];
         const _col = _row > 0 ? 1 : 0;
@@ -545,7 +723,7 @@ export default {
       }
     },
     //合计
-    getSummaries (param) {
+    getSummaries(param) {
       const { columns, data } = param;
       const sums = [];
       columns.forEach((column, index) => {
@@ -569,15 +747,15 @@ export default {
       return sums;
     },
     //弹框-确定
-    handleOk () {
+    handleOk() {
       this.submitClickHandler();
     },
     //滚动
-    tableLoad () {
+    tableLoad() {
       console.log("d");
     },
     //表格-新增
-    handleAdd () {
+    handleAdd() {
       // this.flag = true;
       //   this.tableType = "add";
       //   this.tableTitle = "新增";
@@ -613,7 +791,7 @@ export default {
       // console.log(this.tableOptions);
     },
     //表格-编辑
-    async handleEdit (row) {
+    async handleEdit(row) {
       if (this.isDialog) {
         if (this.editId) {
           let data = await this.queryOriginRow(
@@ -653,7 +831,7 @@ export default {
         this.$emit("handleEdit", row);
       }
     },
-    async queryOriginRow (editId, queryTemplateColumnSetID) {
+    async queryOriginRow(editId, queryTemplateColumnSetID) {
       try {
         const { code, returnData } = await Query({
           id: editId,
@@ -669,11 +847,11 @@ export default {
       }
     },
     //表格-跳转
-    handleHerf (row) {
+    handleHerf(row) {
       alert("跳转");
     },
     // 新增/编辑-确认
-    submitClickHandler () {
+    submitClickHandler() {
       this.$refs["ruleForm"].validate((valid) => {
         if (valid) {
           if (this.tableType == "add") {
@@ -688,19 +866,19 @@ export default {
       });
     },
     //表格-删除
-    handleRemove (row) {
+    handleRemove(row) {
       this.rmFlag = true;
       // this.rmTitle = row.className || row.username || row.serviceName || row.queryTemplateName;
       this.rmTitle = row[this.rowTitle];
       this.tableObj = row;
     },
     //表格-删除-确认
-    tableRemove () {
+    tableRemove() {
       this.tableObj.event = 3;
       this.generalDataReception(this.tableObj);
     },
     // 表格-跳转列设置页
-    handleColumnSet (row) {
+    handleColumnSet(row) {
       this.$router.push({
         path: "/systemSettings/queryTemplateChild",
         query: {
@@ -709,7 +887,7 @@ export default {
       });
     },
     // 表格-跳转数据项设置页
-    handleItemSet (row) {
+    handleItemSet(row) {
       this.$router.push({
         path: "/systemSettings/datastructureChild",
         query: {
@@ -718,7 +896,7 @@ export default {
       });
     },
     // 表格-跳转航站设置页
-    handlelodSet (row) {
+    handlelodSet(row) {
       this.$router.push({
         path: "/BasicsData/airportInfoChild",
         query: {
@@ -727,7 +905,7 @@ export default {
       });
     },
     // 表格-节点置页
-    handlenodeSet (row) {
+    handlenodeSet(row) {
       this.$router.push({
         path: "/BasicsData/deployNodeChild",
         query: {
@@ -736,48 +914,48 @@ export default {
       });
     },
     // 表格-查看
-    handleLook (row) {
+    handleLook(row) {
       this.$router.push({
-        name: 'serviceTopology',
+        name: "serviceTopology",
         params: {
           serviceID: row.serviceID,
-          serviceName: row.serviceName
+          serviceName: row.serviceName,
         },
       });
     },
     // 表格-启动/停止
-    async chanheState (row) {
-      const runState = row.runState == '运行' ? 0 : 1
-      const serviceID = row.serviceID
-      this.changeBtn(runState, serviceID)
+    async chanheState(row) {
+      const runState = row.runState == "运行" ? 0 : 1;
+      const serviceID = row.serviceID;
+      this.changeBtn(runState, serviceID);
     },
     // 表格-选中行
-    selectHandler (selection, row) {
+    selectHandler(selection, row) {
       this.$emit("selection-change", selection, row);
     },
-    async changeBtn (state, id) {
-      let res = null
+    async changeBtn(state, id) {
+      let res = null;
       // const { code, message } = await GeneralDataReception({
       //   serviceId: 61,
       //   dataContent: JSON.stringify(obj)
       // })
       if (state) {
         res = await Start({
-          serviceId: id
-        })
+          serviceId: id,
+        });
       } else {
         res = await Stop({
-          serviceId: id
-        })
+          serviceId: id,
+        });
       }
       if (res.code == 0) {
-        this.$message.success(res.message)
+        this.$message.success(res.message);
         this.resetTable();
         this.getQuery();
       } else {
-        this.$message.error(res.message)
+        this.$message.error(res.message);
       }
-    }
+    },
   },
 };
 </script>

+ 1 - 1
src/router/routes/routes-file-one.js

@@ -14,7 +14,7 @@ const BasicsDataRoutes = {
           path: '/BasicsData',
           name: 'airlineCompanyInfo',
           component: () => import('@/views/BasicsData/views/airlineCompany/airlineCompanyInfo'),
-          meta: { title: '航司信息维护', roles: ['airline_information_page'] },
+          meta: { title: '航司信息维护' },
           hidden: true,
           src: require('@/assets/nav/ic_data_top_default @2x.png'),
           srcer: require('@/assets/nav/ic_data_top_check@2x.png')

+ 281 - 78
src/views/advancedQuery/views/advancedHome.vue

@@ -25,11 +25,30 @@
             @change="endDateChangeHandler"
           />
         </div> -->
-        <el-date-picker v-model="flightDate" size="small" type="daterange" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="dateRangePickerOptions" />
+        <el-date-picker
+          v-model="flightDate"
+          size="small"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="dateRangePickerOptions"
+        />
       </div>
-      <Search ref="search" class="advanced-search" :is-title="false" :is-slot="true" :search-tooltip="'请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)'" @getSearchData="getSearchData" @clearSearchData="clearSearchData">
+      <Search
+        ref="search"
+        class="advanced-search"
+        :is-title="false"
+        :is-slot="true"
+        :search-tooltip="'请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)'"
+        @getSearchData="getSearchData"
+        @clearSearchData="clearSearchData"
+      >
         <div class="flex-wrap">
-          <button class="btnAn" @click="dialogShow">高级查询</button>
+          <button
+            class="btnAn"
+            @click="dialogShow"
+          >高级查询</button>
           <!-- <div
             class="setting"
             @click="show"
@@ -38,11 +57,48 @@
       </Search>
     </div>
     <!--表格-->
-    <div v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" class="advance__table">
-      <el-table ref="table" max-height="100%" class="table" :data="dealedTableData" border stripe fit height="calc(100vh - 158px)" style="width: 100%" show-summary :summary-method="summaryRow(tableData.length)" :header-cell-class-name="headerCellClass" :row-class-name="tableRowClassName" :cell-class-name="cellClass" :span-method="objectSpanMethod" @cell-click="cellClickHandler">
-        <el-table-column v-for="col in tableCols" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed">
+    <div
+      v-loading="loading"
+      element-loading-text="拼命加载中"
+      element-loading-spinner="el-icon-loading"
+      element-loading-background="rgba(0, 0, 0, 0.8)"
+      class="advance__table"
+    >
+      <el-table
+        ref="table"
+        max-height="100%"
+        class="table"
+        :data="dealedTableData"
+        border
+        stripe
+        fit
+        height="calc(100vh - 158px)"
+        style="width: 100%"
+        show-summary
+        :summary-method="summaryRow(tableData.length)"
+        :header-cell-class-name="headerCellClass"
+        :row-class-name="tableRowClassName"
+        :cell-class-name="cellClass"
+        :span-method="objectSpanMethod"
+        @cell-click="cellClickHandler"
+      >
+        <el-table-column
+          v-for="col in tableCols"
+          :key="col.prop"
+          :prop="col.prop"
+          :label="col.label"
+          :width="col.width"
+          :fixed="col.fixed"
+          :formatter="tableFormat"
+        >
           <template #header>
-            <TableHeaderCell :label="col.label" :filter-options="tableDataFilters[col.prop]" :filter-values.sync="filterValues[col.prop]" :sortable="col.sortable" :sort-rule.sync="tableDataSortRules[col.prop]" />
+            <TableHeaderCell
+              :label="col.label"
+              :filter-options="tableDataFilters[col.prop]"
+              :filter-values.sync="filterValues[col.prop]"
+              :sortable="col.sortable"
+              :sort-rule.sync="tableDataSortRules[col.prop]"
+            />
           </template>
         </el-table-column>
       </el-table>
@@ -84,61 +140,183 @@
       </div>
     </Dialog> -->
     <!--高级查询-->
-    <Dialog width="852px" :flag="gjFlag">
-      <div ref="dialog" class="rowDialog" :tabindex="0" @keyup.enter="onCheckGj(true)" @keyup.self.esc="gjFlag=false">
+    <Dialog
+      width="852px"
+      :flag="gjFlag"
+    >
+      <div
+        ref="dialog"
+        class="rowDialog"
+        :tabindex="0"
+        @keyup.enter="onCheckGj(true)"
+        @keyup.self.esc="gjFlag=false"
+      >
         <div class="title">高级查询</div>
         <div class="content">
-          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+          <el-form
+            ref="form"
+            :model="form"
+            :rules="rules"
+            label-width="100px"
+          >
             <el-row :gutter="20">
-              <el-col v-for="item in formItems" :key="item.prop" :span="item.span || 8">
-                <el-form-item :label="item.label" :prop="item.prop">
+              <el-col
+                v-for="item in formItems"
+                :key="item.prop"
+                :span="item.span || 8"
+              >
+                <el-form-item
+                  :label="item.label"
+                  :prop="item.prop"
+                >
                   <template v-if="item.prop === 'flightDate'">
-                    <el-date-picker v-model="flightDate" size="small" type="daterange" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="dateRangePickerOptions" @keyup.esc.native="dialogFocus" />
+                    <el-date-picker
+                      v-model="flightDate"
+                      size="small"
+                      type="daterange"
+                      value-format="yyyy-MM-dd"
+                      start-placeholder="开始日期"
+                      end-placeholder="结束日期"
+                      :picker-options="dateRangePickerOptions"
+                      @keyup.esc.native="dialogFocus"
+                    />
                   </template>
                   <template v-else-if="item.prop === 'status'">
-                    <el-select v-model="form.status" size="small" filterable default-first-option clearable @keyup.esc.native="dialogFocus">
-                      <el-option v-for="option in statusList" :key="option.ID" :label="option.StatusName" :value="option.StatusCode" />
+                    <el-select
+                      v-model="form.status"
+                      size="small"
+                      filterable
+                      default-first-option
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        v-for="option in statusList"
+                        :key="option.ID"
+                        :label="option.StatusName"
+                        :value="option.StatusCode"
+                      />
                     </el-select>
                   </template>
                   <template v-else-if="item.prop === 'specialType'">
-                    <el-select v-model="form.specialType" size="small" filterable allow-create default-first-option clearable @keyup.esc.native="dialogFocus">
-                      <el-option v-for="option in baggageTypeList" :key="option.specialType" :label="option.specialType" :value="option.specialType" />
+                    <el-select
+                      v-model="form.specialType"
+                      size="small"
+                      filterable
+                      allow-create
+                      default-first-option
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        v-for="option in baggageTypeList"
+                        :key="option.specialType"
+                        :label="option.specialType"
+                        :value="option.specialType"
+                      />
                     </el-select>
                   </template>
                   <template v-else-if="item.prop === 'unLoad'">
-                    <el-select v-model="form.unLoad" size="small" clearable @keyup.esc.native="dialogFocus">
-                      <el-option label="已翻减" :value="1" />
-                      <el-option label="待翻减" :value="0" />
+                    <el-select
+                      v-model="form.unLoad"
+                      size="small"
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        label="已翻减"
+                        :value="1"
+                      />
+                      <el-option
+                        label="待翻减"
+                        :value="0"
+                      />
                     </el-select>
                   </template>
                   <template v-else-if="item.prop === 'checkIn'">
-                    <el-select v-model="form.checkIn" size="small" clearable @keyup.esc.native="dialogFocus">
-                      <el-option label="是" :value="1" />
-                      <el-option label="否" :value="0" />
+                    <el-select
+                      v-model="form.checkIn"
+                      size="small"
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        label="是"
+                        :value="1"
+                      />
+                      <el-option
+                        label="否"
+                        :value="0"
+                      />
                     </el-select>
                   </template>
                   <template v-else-if="item.prop === 'active'">
-                    <el-select v-model="form.active" size="small" clearable @keyup.esc.native="dialogFocus">
-                      <el-option label="是" :value="1" />
-                      <el-option label="否" :value="0" />
+                    <el-select
+                      v-model="form.active"
+                      size="small"
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        label="是"
+                        :value="1"
+                      />
+                      <el-option
+                        label="否"
+                        :value="0"
+                      />
                     </el-select>
                   </template>
                   <template v-else-if="item.prop === 'transferIn'">
-                    <el-select v-model="form.transferIn" size="small" clearable @keyup.esc.native="dialogFocus">
-                      <el-option label="是" :value="1" />
-                      <el-option label="否" :value="0" />
+                    <el-select
+                      v-model="form.transferIn"
+                      size="small"
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        label="是"
+                        :value="1"
+                      />
+                      <el-option
+                        label="否"
+                        :value="0"
+                      />
                     </el-select>
                   </template>
                   <template v-else-if="item.prop === 'canceled'">
-                    <el-select v-model="form.canceled" size="small" clearable @keyup.esc.native="dialogFocus">
-                      <el-option label="是" :value="1" />
-                      <el-option label="否" :value="0" />
+                    <el-select
+                      v-model="form.canceled"
+                      size="small"
+                      clearable
+                      @keyup.esc.native="dialogFocus"
+                    >
+                      <el-option
+                        label="是"
+                        :value="1"
+                      />
+                      <el-option
+                        label="否"
+                        :value="0"
+                      />
                     </el-select>
                   </template>
                   <template v-else>
-                    <el-popover v-model="item.hintVisible" placement="right" trigger="manual">
+                    <el-popover
+                      v-model="item.hintVisible"
+                      placement="right"
+                      trigger="manual"
+                    >
                       <span>{{ item.hintText }}</span>
-                      <el-input :ref="'input-' + item.prop" slot="reference" v-model="form[item.prop]" size="small" @focus="item.hintVisible = true" @blur="item.hintVisible = false" @keyup.esc.native="dialogFocus" />
+                      <el-input
+                        :ref="'input-' + item.prop"
+                        slot="reference"
+                        v-model="form[item.prop]"
+                        size="small"
+                        @focus="item.hintVisible = true"
+                        @blur="item.hintVisible = false"
+                        @keyup.esc.native="dialogFocus"
+                      />
                     </el-popover>
                   </template>
                 </el-form-item>
@@ -147,8 +325,16 @@
           </el-form>
         </div>
         <div class="foot right t30">
-          <el-button size="medium" class="r24" type="primary" @click="onCheckGj(true)">确定</el-button>
-          <el-button size="medium" @click="closeCheckGj">取消</el-button>
+          <el-button
+            size="medium"
+            class="r24"
+            type="primary"
+            @click="onCheckGj(true)"
+          >确定</el-button>
+          <el-button
+            size="medium"
+            @click="closeCheckGj"
+          >取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -159,7 +345,7 @@
 import Search from '@/components/SearchWithTooltip'
 import Dialog from '@/layout/components/Dialog'
 import { parseTime } from '@/utils/index'
-import { queryMap, myQuery } from '@/api/dataIntegration'
+import { myQuery } from '@/api/dataIntegration'
 import { mapGetters } from 'vuex'
 import TableHeaderCell from '@/components/TableHeaderCell'
 import { setTableFilters } from '@/utils/table'
@@ -167,7 +353,7 @@ import { setTableFilters } from '@/utils/table'
 export default {
   name: 'Advance',
   components: { Search, Dialog, TableHeaderCell },
-  data () {
+  data() {
     return {
       loading: false,
       colDialogFlag: false,
@@ -460,7 +646,7 @@ export default {
   },
   computed: {
     ...mapGetters(['clickedCells', 'queryForm']),
-    dealedTableData () {
+    dealedTableData() {
       const filtered = this.tableData.filter(item => {
         let flag = true
         Object.entries(this.filterValues).forEach(([key, arr]) => {
@@ -486,7 +672,7 @@ export default {
   },
   watch: {
     flightDate: {
-      handler (val) {
+      handler(val) {
         if (val === null) {
           this.flightDate = ['', '']
         }
@@ -494,7 +680,7 @@ export default {
       deep: true
     },
     dealedTableData: {
-      handler (val) {
+      handler(val) {
         this.spanArr = []
         let contactDot = this.contactDot
         val.forEach((item, index, arr) => {
@@ -520,7 +706,7 @@ export default {
       deep: true
     }
   },
-  created () {
+  created() {
     Object.values(this.tableCols).forEach(({ prop, filterable, sortable }) => {
       if (filterable) {
         this.$set(this.tableDataFilters, prop, [])
@@ -538,7 +724,7 @@ export default {
     // }
     // this.statItemsQueryByStatMain(dataContent);
   },
-  mounted () {
+  mounted() {
     // window.addEventListener('keyup', () => {
     //   console.dir(document.activeElement)
     // })
@@ -569,13 +755,13 @@ export default {
       this.onCheckGj()
     }
   },
-  updated () {
+  updated() {
     // table数据更新
     this.$nextTick(() => {
       this.$refs.table.doLayout()
     })
   },
-  beforeDestroy () {
+  beforeDestroy() {
     // console.log(this.$route.matched.filter(item => item.name && item.meta.title))
     if (this.$route.matched.filter(item => item.name && item.meta.title).length > 1) {
       this.$store.dispatch('app/setQueryForm', {
@@ -587,13 +773,13 @@ export default {
     }
   },
   methods: {
-    dialogShow () {
+    dialogShow() {
       this.gjFlag = true
       this.$nextTick(() => {
         this.dialogFocus()
       })
     },
-    dialogFocus () {
+    dialogFocus() {
       this.$refs['dialog'].focus()
     },
     // startDateChangeHandler(val) {
@@ -626,17 +812,17 @@ export default {
     //     this.$message.info('时间跨度不能超过三天,请重新选择')
     //   }
     // },
-    dateRangePickHandler ({ maxDate, minDate }) {
+    dateRangePickHandler({ maxDate, minDate }) {
       if (!maxDate) {
         this.pickedDate = minDate
       } else {
         this.pickedDate = null
       }
     },
-    dateRangeDisabled (date) {
+    dateRangeDisabled(date) {
       return this.pickedDate ? Math.abs(date - this.pickedDate) > 2 * 24 * 60 * 60 * 1000 : false
     },
-    objectSpanMethod ({ row, column, rowIndex, columnIndex }) {
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
       if (['passengerNameUpcase', 'bagWeight'].includes(column.property)) {
         const _row = this.spanArr[rowIndex]
         const _col = _row > 0 ? 1 : 0
@@ -647,7 +833,7 @@ export default {
       }
     },
     // 给表头单元格加上 ascending 或 descending 使用 element 自带的排序箭头变色
-    headerCellClass ({ row, column, rowIndex, columnIndex }) {
+    headerCellClass({ row, column, rowIndex, columnIndex }) {
       const classes = []
       const rule = this.tableDataSortRules[column.property]
       if (rule) {
@@ -655,16 +841,16 @@ export default {
       }
       return classes.join(' ')
     },
-    tableRowClassName ({ row, rowIndex }) {
+    tableRowClassName({ row, rowIndex }) {
       const classes = []
       if (row.deleted === 'DEL') {
         classes.push('bgl-deleted')
       }
       return classes.join(' ')
     },
-    cellClass ({ row, column, rowIndex, columnIndex }) {
+    cellClass({ row, column, rowIndex, columnIndex }) {
       const classes = []
-      if (['flightNO', 'transferFlightNO', 'bagSN'].includes(column.property)) {
+      if (['flightNO', 'bagSN', 'preFlightNO', 'transferFlightNO'].includes(column.property) && row[column.property]) {
         classes.push('cell-click')
         if (
           this.clickedCells.some(
@@ -679,8 +865,8 @@ export default {
       }
       return classes.join(' ')
     },
-    cellClickHandler (row, column, cell, event) {
-      if (['flightNO', 'transferFlightNO', 'bagSN'].includes(column.property)) {
+    cellClickHandler(row, column, cell, event) {
+      if (['flightNO', 'bagSN', 'preFlightNO', 'transferFlightNO'].includes(column.property)) {
         this.$store.dispatch('keepAlive/addClickedCell', {
           row,
           columnProp: column.property,
@@ -697,22 +883,31 @@ export default {
             }
           })
           break
+        case 'bagSN':
+          this.$router.push({
+            path: '/advance/baggageView',
+            query: {
+              flightNO: row.flightNO,
+              flightDate: row.flightDate,
+              bagSN: row.bagSN
+            }
+          })
+          break
         case 'transferFlightNO':
           this.$router.push({
             path: '/advance/flightView',
             query: {
               flightNO: row.transferFlightNO,
-              flightDate: row.flightDate
+              flightDate: row.transferFlightDate
             }
           })
           break
-        case 'bagSN':
+        case 'preFlightNO':
           this.$router.push({
-            path: '/advance/baggageView',
+            path: '/advance/flightView',
             query: {
-              flightNO: row.flightNO,
-              flightDate: row.flightDate,
-              bagSN: row.bagSN
+              flightNO: row.preFlightNO,
+              flightDate: row.preFlightDate
             }
           })
           break
@@ -720,8 +915,20 @@ export default {
           break
       }
     },
+    tableFormat(row, column, cellValue) {
+      switch (column.property) {
+        case 'departureTime':
+          return cellValue.replace('T', ' ')
+        case 'deleted':
+          return cellValue === 'DEL' ? cellValue : ''
+        case 'activated':
+          return cellValue === 1 ? '激活' : '未激活'
+        default:
+          return cellValue ?? ''
+      }
+    },
     // 查询
-    getSearchData (val) {
+    getSearchData(val) {
       this.clearForm()
       if (this.flightDate[0] === '' || this.flightDate[1] === '' || val === '') {
         this.$message.error('请先输入完整查询信息')
@@ -755,18 +962,18 @@ export default {
       }
     },
     // 清除查询
-    clearSearchData () {
+    clearSearchData() {
       this.clearForm()
       this.tableData = []
     },
     // 清除表单
-    clearForm () {
+    clearForm() {
       Object.keys(this.form).forEach(key => {
         this.form[key] = ''
       })
     },
     // 高级查询-确定
-    onCheckGj (singleJump) {
+    onCheckGj(singleJump) {
       /* 参数顺序
       【航班开始日期,航班结束日期,航班号,航班号,行李牌号,行李牌号,起飞站,起飞站,目的站,目的站,特殊行李类型,特殊行李类型,旅客姓名大写拼音,旅客姓名大写拼音,
       PNR,PNR,值机号,值机号,中转进航班,中转进航班,中转出航班,中转出航班,容器编号,容器编号,
@@ -825,10 +1032,10 @@ export default {
         this.$message.error('请先选择要查询的时间')
       }
     },
-    closeCheckGj () {
+    closeCheckGj() {
       this.gjFlag = false
     },
-    setDataContent (...dataContent) {
+    setDataContent(...dataContent) {
       dataContent.forEach(target => {
         target = typeof target === 'string' ? target.trim() : target
         if ((target ?? '') !== '') {
@@ -839,7 +1046,7 @@ export default {
       })
     },
     // 数据查询
-    async statItemsQueryByStatMain (dataContent, singleJump) {
+    async statItemsQueryByStatMain(dataContent, singleJump) {
       this.loading = true
       this.tableData = []
       try {
@@ -881,11 +1088,7 @@ export default {
             }
           }
           const tableData = this._.sortBy(result, ['flightDate', 'departureTime', 'passengerNameUpcase', 'bagSN'])
-          this.tableData = tableData.map((item, index, arr) => {
-            item['deleted'] === 'DEL' || (item['deleted'] = '')
-            item['activated'] = item['activated'] === 'I' ? '未激活' : '激活'
-            return item
-          })
+          this.tableData = tableData
           setTableFilters(this.tableData, this.tableDataFilters)
         } else {
           this.$message.info('未查询到匹配结果')
@@ -896,7 +1099,7 @@ export default {
       this.loading = false
     },
     // 特殊行李类型下拉选项查询
-    async baggageTypeQuery () {
+    async baggageTypeQuery() {
       try {
         const result = await myQuery(DATACONTENT_ID.baggageTypeId)
         this.baggageTypeList = result
@@ -921,7 +1124,7 @@ export default {
     //   }
     // },
     // 统计行数
-    summaryRow (num) {
+    summaryRow(num) {
       return function () {
         return ['合计', `共${num}件`]
       }
@@ -942,7 +1145,7 @@ export default {
       width: 32px;
       cursor: pointer;
       background-size: 100% 100%;
-      background: url("../../../assets/baggage/ic_setting.png") no-repeat;
+      background: url('../../../assets/baggage/ic_setting.png') no-repeat;
       margin-left: 12px;
       position: relative;
       top: 2px;
@@ -969,7 +1172,7 @@ export default {
       padding: 0;
       text-align: center;
       font-size: 14px;
-      font-family: Helvetica, "Microsoft YaHei";
+      font-family: Helvetica, 'Microsoft YaHei';
       letter-spacing: 0;
     }
     .cell-click {

+ 3 - 1
src/views/baggageManagement/components/arrival/index.vue

@@ -190,6 +190,7 @@
             :prop="childCol.prop"
             :label="childCol.label"
             :width="childCol.width"
+            :formatter="tableFormat"
           >
             <template #header>
               <el-tooltip
@@ -254,6 +255,7 @@ import TimeZoneSelector from '@/components/TimeZoneSelector'
 import terminalMixin from '../../mixins/terminal'
 import formMixin from '../../mixins/form'
 import tableColsMixin from '../../mixins/tableCols'
+import timeZoneMixin from '../../mixins/timeZone'
 import { getQuery } from '@/api/flight'
 import TableHeaderCell from '@/components/TableHeaderCell'
 import { setTableFilters } from '@/utils/table'
@@ -261,7 +263,7 @@ import { setTableFilters } from '@/utils/table'
 export default {
   name: 'DepartureTerminalView',
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
-  mixins: [terminalMixin, formMixin, tableColsMixin],
+  mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
   data() {
     return {
       orderNum: ['0', '0', '0', '0', '0', '0'], // 默认总数

+ 4 - 4
src/views/baggageManagement/components/baggage/index.vue

@@ -664,8 +664,8 @@ export default {
       return myQuery(queryMap.message, ...dataContent)
     },
     async queryBaggageAll(queryData = this.queryData) {
-      const { flightNO, flightDate, BagSN } = queryData
-      const dataContent = [flightNO, flightDate, BagSN]
+      const { flightNO, flightDate, bagSN } = queryData
+      const dataContent = [flightNO, flightDate, bagSN]
       try {
         const [
           baggageBasicInfo,
@@ -703,8 +703,8 @@ export default {
       }
     },
     async baggageMessageQuery() {
-      const { flightNO, flightDate, BagSN } = this.queryData
-      const dataContent = [flightNO, flightDate, BagSN]
+      const { flightNO, flightDate, bagSN } = this.queryData
+      const dataContent = [flightNO, flightDate, bagSN]
       try {
         const result = await this.queryMessage(dataContent)
         this.messageList = result.map(message => {

+ 181 - 57
src/views/baggageManagement/components/departure/index.vue

@@ -8,8 +8,17 @@
 <template>
   <div class="departure-one">
     <!--功能区-表单-->
-    <div ref="formWrap" class="terminal-form-wrap">
-      <el-form ref="form" :inline="true" :model="formData" :rules="rules" class="form">
+    <div
+      ref="formWrap"
+      class="terminal-form-wrap"
+    >
+      <el-form
+        ref="form"
+        :inline="true"
+        :model="formData"
+        :rules="rules"
+        class="form"
+      >
         <div class="form-left">
           <el-form-item prop="currentAirport">
             <!-- <el-cascader
@@ -24,8 +33,20 @@
             filterable
             @change="setCurrentAirport"
           /> -->
-            <el-select v-model="formData.currentAirport" class="input-shadow" size="small" filterable placeholder="请选择机场" @change="airPortChange">
-              <el-option v-for="(item, index) in AirportList" :key="index" :label="item.planDepartureApt" :value="item.planDepartureApt" />
+            <el-select
+              v-model="formData.currentAirport"
+              class="input-shadow"
+              size="small"
+              filterable
+              placeholder="请选择机场"
+              @change="airPortChange"
+            >
+              <el-option
+                v-for="(item, index) in AirportList"
+                :key="index"
+                :label="item.planDepartureApt"
+                :value="item.planDepartureApt"
+              />
             </el-select>
           </el-form-item>
           <!-- <el-form-item prop="startDate">
@@ -52,65 +73,168 @@
               @change="endDateChangeHandler"
             />
           </el-form-item> -->
-          <el-form-item prop="flightDate" label="航班日期">
-            <el-date-picker v-model="formData.flightDate" size="small" type="daterange" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="dateRangePickerOptions" @change="dateChangeHandler" />
+          <el-form-item
+            prop="flightDate"
+            label="航班日期"
+          >
+            <el-date-picker
+              v-model="formData.flightDate"
+              size="small"
+              type="daterange"
+              value-format="yyyy-MM-dd"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="dateRangePickerOptions"
+              @change="dateChangeHandler"
+            />
           </el-form-item>
           <el-form-item>
             <div class="box-item">
               <p>预计装载总数:</p>
-              <li v-for="(item, index) in orderNum" :key="index" :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }">
+              <li
+                v-for="(item, index) in orderNum"
+                :key="index"
+                :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
+              >
                 <span v-if="!isNaN(item)">
                   <i ref="numberItem">0123456789</i>
                 </span>
-                <span v-else class="comma">{{ item }}</span>
+                <span
+                  v-else
+                  class="comma"
+                >{{ item }}</span>
               </li>
             </div>
           </el-form-item>
         </div>
-        <div class="form-right" @keyup.enter="onSubmit(0)">
+        <div
+          class="form-right"
+          @keyup.enter="onSubmit(0)"
+        >
           <el-form-item prop="search">
-            <el-popover :value="popoverVisible" placement="bottom" trigger="manual">
+            <el-popover
+              :value="popoverVisible"
+              placement="bottom"
+              trigger="manual"
+            >
               <span>请输入航班号(示例:CA1234)或行李牌号(示例:1234567890)</span>
-              <el-input slot="reference" v-model="formData.search" class="input-shadow" style="width: 240px; margin-left: 105px" size="small" placeholder="请输入内容" prefix-icon="el-icon-search" clearable @focus="popoverVisible = true" @blur="popoverVisible = false" />
+              <el-input
+                slot="reference"
+                v-model="formData.search"
+                class="input-shadow"
+                style="width: 240px; margin-left: 105px"
+                size="small"
+                placeholder="请输入内容"
+                prefix-icon="el-icon-search"
+                clearable
+                @focus="popoverVisible = true"
+                @blur="popoverVisible = false"
+              />
             </el-popover>
           </el-form-item>
           <el-form-item>
-            <el-button class="btn-shadow" size="mini" type="primary" @click="onSubmit(0)">搜索</el-button>
+            <el-button
+              class="btn-shadow"
+              size="mini"
+              type="primary"
+              @click="onSubmit(0)"
+            >搜索</el-button>
           </el-form-item>
           <el-form-item v-is="['i_timeIcon']">
             <TimeZoneSelector />
           </el-form-item>
           <el-form-item>
-            <img class="btn-img btn-shadow" src="../../../../assets/baggage/ic_setting.png" @click="show">
+            <img
+              class="btn-img btn-shadow"
+              src="../../../../assets/baggage/ic_setting.png"
+              @click="show"
+            >
           </el-form-item>
         </div>
       </el-form>
     </div>
     <!--表格-->
-    <div v-loading="loading" class="terminal-table" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
-      <el-table ref="table" class="table" :height="computedTableHeight" :data="dealedTableData" :header-cell-class-name="headerCellClass" :row-class-name="tableRowClassName" :cell-class-name="cellClass" show-summary :summary-method="summaryMethod" border stripe fit @cell-click="cellClickHandler">
-        <el-table-column v-for="col in tableColsCopy" :key="col.prop" :prop="col.prop" :label="col.label" :width="col.width" :fixed="col.fixed" :formatter="tableFormat">
+    <div
+      v-loading="loading"
+      class="terminal-table"
+      element-loading-text="拼命加载中"
+      element-loading-spinner="el-icon-loading"
+      element-loading-background="rgba(0, 0, 0, 0.8)"
+    >
+      <el-table
+        ref="table"
+        class="table"
+        :height="computedTableHeight"
+        :data="dealedTableData"
+        :header-cell-class-name="headerCellClass"
+        :row-class-name="tableRowClassName"
+        :cell-class-name="cellClass"
+        show-summary
+        :summary-method="summaryMethod"
+        border
+        stripe
+        fit
+        @cell-click="cellClickHandler"
+      >
+        <el-table-column
+          v-for="col in tableColsCopy"
+          :key="col.prop"
+          :prop="col.prop"
+          :label="col.label"
+          :width="col.width"
+          :fixed="col.fixed"
+          :formatter="tableFormat"
+        >
           <template #header>
-            <el-tooltip :content="col.disc" placement="top">
-              <TableHeaderCell :label="col.label" :filter-options="tableDataFilters[col.prop]" :filter-values.sync="filterValues[col.prop]" :sortable="col.sortable" :sort-rule.sync="tableDataSortRules[col.prop]" />
+            <el-tooltip
+              :content="col.disc"
+              placement="top"
+            >
+              <TableHeaderCell
+                :label="col.label"
+                :filter-options="tableDataFilters[col.prop]"
+                :filter-values.sync="filterValues[col.prop]"
+                :sortable="col.sortable"
+                :sort-rule.sync="tableDataSortRules[col.prop]"
+              />
             </el-tooltip>
           </template>
         </el-table-column>
       </el-table>
     </div>
     <!--列设置-->
-    <Dialog :flag="dialogFlag" class="dialog-check-cols">
+    <Dialog
+      :flag="dialogFlag"
+      class="dialog-check-cols"
+    >
       <div class="col-dialog">
         <div class="title">列设置</div>
         <div class="content">
-          <el-tree :data="tableCols" :class="colsCheckClass" show-checkbox node-key="index" :default-expand-all="true" :props="{
+          <el-tree
+            :data="tableCols"
+            :class="colsCheckClass"
+            show-checkbox
+            node-key="index"
+            :default-expand-all="true"
+            :props="{
               label: 'label',
               children: 'children'
-            }" :default-checked-keys="checkedKeysTemp" @check="handleCheck" />
+            }"
+            :default-checked-keys="checkedKeysTemp"
+            @check="handleCheck"
+          />
         </div>
         <div class="foot right t30">
-          <el-button size="medium" class="r24" type="primary" @click="onCheck">确定</el-button>
-          <el-button size="medium" @click="hide">取消</el-button>
+          <el-button
+            size="medium"
+            class="r24"
+            type="primary"
+            @click="onCheck"
+          >确定</el-button>
+          <el-button
+            size="medium"
+            @click="hide"
+          >取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -132,7 +256,7 @@ export default {
   name: 'DepartureTerminalView',
   components: { Dialog, TimeZoneSelector, TableHeaderCell },
   mixins: [terminalMixin, formMixin, tableColsMixin, timeZoneMixin],
-  data () {
+  data() {
     return {
       orderNum: ['0', '0', '0', '0', '0', '0'], // 默认总数
       popoverVisible: false,
@@ -195,77 +319,77 @@ export default {
         {
           prop: 'checkInTravellerNumber',
           label: '托运旅客',
-          disc: '指航班已办理行李托运业务的旅客人数,含取消托运的旅客人数',
+          disc: '指航班已办理行李托运业务的旅客人数,含取消托运的旅客人数'
         },
         {
           prop: 'checkInNumber',
           label: '值机数',
-          disc: '指已办理值机托运的行李数量,含取消托运的行李数量,含未激活',
+          disc: '指已办理值机托运的行李数量,含取消托运的行李数量,含未激活'
         },
         {
           prop: 'unActive',
           label: '未激活',
-          disc: '指最后的 BSM 报文“.S”中行李状态为“I”的行李数量,含取消托运的行李数量',
+          disc: '指最后的 BSM 报文“.S”中行李状态为“I”的行李数量,含取消托运的行李数量'
         },
         {
           prop: 'preLoad',
           label: '预计装载',
-          disc: '指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活',
+          disc: '指已办理值机托运的行李数量,不含取消托运的行李数量,不包含未激活'
         },
         {
           prop: 'checkNumber',
           label: '安检',
-          disc: '指进行安检的行李数量,含取消托运的行李数量',
+          disc: '指进行安检的行李数量,含取消托运的行李数量'
         },
         {
           prop: 'sortNumber',
           label: '分拣',
-          disc: '指已分拣完成的行李数量,含取消托运的行李数量',
+          disc: '指已分拣完成的行李数量,含取消托运的行李数量'
         },
         {
           prop: 'loadNumber',
           label: '装车',
-          disc: '指已在分拣口装车完成的行李数量,含取消托运的行李数量',
+          disc: '指已在分拣口装车完成的行李数量,含取消托运的行李数量'
         },
         {
           prop: 'landingNumber',
           label: '装机',
-          disc: '指装机完成的行李数量,不含取消托运的行李数量',
+          disc: '指装机完成的行李数量,不含取消托运的行李数量'
         },
         {
           prop: 'tounLoad',
           label: '待翻减',
-          disc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,而没有完成翻减的行李数量(须翻减总数减去已翻减数)',
+          disc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,而没有完成翻减的行李数量(须翻减总数减去已翻减数)'
         },
         {
           prop: 'unLoad',
           label: '已翻减',
-          disc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,且已完成翻减的行李数量',
+          disc: '指旅客在办理行李托运后,旅客取消该行李的托运并且行李此时已经过装车节点,且已完成翻减的行李数量'
         },
         {
           prop: 'noCheckInNumber',
           label: '取消托运',
-          disc: '指旅客在办理行李托运后,又取消托运的行李总数量',
+          disc: '指旅客在办理行李托运后,又取消托运的行李总数量'
         },
         {
           prop: 'noBSM',
           label: '无BSM',
-          disc: '行李有处理信息(BPM)但无值机信息(BSM)的行李数量',
+          disc: '行李有处理信息(BPM)但无值机信息(BSM)的行李数量'
         },
         {
           prop: 'warning',
           label: '风险预警',
-          disc: '指依据航班信息中预计起飞时间和当前时间差,与根据分拣到停机位设置的报警阈值对比,超过阈值的为风险行李,本项显示风险预警行李数量',
+          disc: '指依据航班信息中预计起飞时间和当前时间差,与根据分拣到停机位设置的报警阈值对比,超过阈值的为风险行李,本项显示风险预警行李数量'
         },
         {
           prop: 'exceptions',
           label: '离港异常',
-          disc: '指航班关闭货仓门后,应装而未装的行李数量',
+          disc: '指航班关闭货仓门后,应装而未装的行李数量'
         },
         {
           prop: 'midIn',
           label: '中转进行李',
-          disc: '指从其他航班中转到当前航班的行李数量',
+          disc: '指从其他航班中转到当前航班的行李数量'
         }
       ],
       tableDataSortRules: {
@@ -279,22 +403,22 @@ export default {
       hasSetTableScroll: false
     }
   },
-  mounted () {
+  mounted() {
     this.getAirPortData()
   },
-  beforeDestroy () {
+  beforeDestroy() {
     if (this.loopEvent) {
       clearInterval(this.loopEvent)
       this.loopEvent = null
     }
   },
   computed: {
-    singleDay () {
+    singleDay() {
       return this.startDate === this.endDate
     }
   },
   methods: {
-    resetLoopEvent () {
+    resetLoopEvent() {
       this.loading = true
       this.hasSetTableScroll = false
       if (this.loopEvent) {
@@ -306,13 +430,13 @@ export default {
         that.getTableData()
       }, 3000)
     },
-    airPortChange () {
+    airPortChange() {
       this.resetLoopEvent()
     },
-    dateChangeHandler () {
+    dateChangeHandler() {
       this.resetLoopEvent()
     },
-    async getAirPortData () {
+    async getAirPortData() {
       try {
         const res = await getQuery({
           id: DATACONTENT_ID.departureAirMainId,
@@ -329,7 +453,7 @@ export default {
         console.log('出错了', error)
       }
     },
-    tableRowClassName ({ row, rowIndex }) {
+    tableRowClassName({ row, rowIndex }) {
       const classes = []
       if (row.flightStatus === 'DLY') {
         classes.push('bgl-delayed')
@@ -345,7 +469,7 @@ export default {
       }
       return classes.join(' ')
     },
-    headerCellClass ({ row, column }) {
+    headerCellClass({ row, column }) {
       const classes = []
       if (['warning', 'exceptions', 'midIn'].includes(column.property)) {
         classes.push('bgl-huang')
@@ -367,7 +491,7 @@ export default {
     //   this.flightAttrQuery(params)
     // },
     // 获取表格数据
-    async getTableData () {
+    async getTableData() {
       if (!this.formData.currentAirport || !this.startDate || !this.endDate) {
         return
       }
@@ -392,7 +516,7 @@ export default {
         console.log('出错了', error)
       }
     },
-    initTableData (tableData) {
+    initTableData(tableData) {
       this.leaveCount = 0
       this.baggageCount = 0
       tableData.forEach(item => {
@@ -414,7 +538,7 @@ export default {
         this.setTableScroll()
       })
     },
-    setTableScroll () {
+    setTableScroll() {
       if (!this.singleDay || this.hasSetTableScroll || this.leaveCount === 0) {
         return
       }
@@ -434,7 +558,7 @@ export default {
       }, 0)
       this.hasSetTableScroll = true
     },
-    setNumberTransform () {
+    setNumberTransform() {
       const numberItems = this.$refs.numberItem // 拿到数字的ref,计算元素数量
       const numberArr = this.orderNum.filter(item => !isNaN(item))
       // 结合CSS 对数字字符进行滚动,显示订单数量
@@ -444,7 +568,7 @@ export default {
       }
     },
 
-    toOrderNum (num) {
+    toOrderNum(num) {
       num = num.toString()
       if (num.length < 6) {
         num = '0' + num // 如未满八位数,添加"0"补位
@@ -482,7 +606,7 @@ export default {
       optgroup,
       select,
       textarea {
-        font-family: Helvetica, "Microsoft YaHei";
+        font-family: Helvetica, 'Microsoft YaHei';
         font-size: 14px;
       }
       .el-switch__label {
@@ -588,7 +712,7 @@ export default {
       padding: 0;
       text-align: center;
       font-size: 14px;
-      font-family: Helvetica, "Microsoft YaHei";
+      font-family: Helvetica, 'Microsoft YaHei';
       letter-spacing: 0;
     }
     .cell-click {
@@ -621,7 +745,7 @@ export default {
         &.redBorder {
           position: relative;
           &::after {
-            content: "";
+            content: '';
             position: absolute;
             left: 0;
             bottom: 0;
@@ -641,7 +765,7 @@ export default {
         background: lightcoral !important;
         position: relative;
         &::after {
-          content: "";
+          content: '';
           display: block;
           width: 100%;
           height: 100%;

+ 1 - 1
src/views/baggageManagement/components/flight/index.vue

@@ -806,7 +806,7 @@ export default {
           this.$router.push({
             path: `/${this.$route.path.split('/').slice(1, -1).join('/')}/baggageView`,
             query: {
-              BagSN: row.BagSN,
+              bagSN: row.BagSN,
               flightNO: this.queryData.flightNO,
               flightDate: this.queryData.flightDate
             }

+ 2 - 6
src/views/baggageManagement/mixins/timeZone.js

@@ -9,10 +9,6 @@
 import { timeInZone } from '@/utils/table'
 import { mapGetters } from 'vuex'
 
-function getTimeInZone(time, timeZone) {
-  return timeInZone((time ?? '').replace('T', ' '), timeZone)
-}
-
 export default {
   computed: {
     ...mapGetters(['timeZone'])
@@ -21,9 +17,9 @@ export default {
     // 表格数据格式化
     tableFormat(row, column, cellValue) {
       switch (column.property) {
-        case 'PlanLandingTime':
+        case 'arrivalTime':
         case 'planDepartureTime':
-          return timeInZone(cellValue, this.timeZone)
+          return timeInZone((cellValue ?? '').replace('T', ' '), this.timeZone)
         case 'actualDepartureTime':
         case 'actualLandingTime':
           return timeInZone((cellValue ?? '').replace('T', ' '), this.timeZone).replace(' ', '\n')

+ 24 - 4
src/views/statisticsCharts/components/statisticsHeader.vue

@@ -13,6 +13,9 @@
         :key="item.prop"
         :prop="item.prop"
         :label="item.label"
+        :style="{
+          width: item.width || '144px'
+        }"
       >
         <template v-if="item.inputType === 'input'">
           <el-input
@@ -69,10 +72,10 @@
       </el-form-item>
       <el-form-item v-if="formItems.length">
         <el-button
+          type="primary"
           size="small"
-          style="height:33px;border-radius:4px"
           @click="getData"
-        >查询</el-button>
+        >{{ buttonText }}</el-button>
       </el-form-item>
     </el-form>
   </div>
@@ -94,6 +97,10 @@ export default {
     data: {
       type: Object,
       default: undefined
+    },
+    buttonText: {
+      type: String,
+      default: '查询'
     }
   },
   data() {
@@ -175,7 +182,7 @@ export default {
         {
           prop: 'interval',
           inputType: 'select',
-          placeholder: '请选择统计时间维度',
+          placeholder: '统计时间维度',
           clearable: true,
           options: [
             {
@@ -200,6 +207,7 @@ export default {
           prop: 'dateTime',
           inputType: 'datePicker',
           clearable: true,
+          width: '240px',
           options: []
         },
         {
@@ -446,6 +454,9 @@ export default {
       &:not(:last-child) {
         margin-right: 8px;
       }
+      &:nth-last-child(2) {
+        margin-right: 16px;
+      }
       .el-form-item__content {
         height: 32px;
         line-height: 30px;
@@ -470,15 +481,20 @@ export default {
         .el-date-editor--daterange.el-input__inner,
         .el-date-editor--timerange.el-input,
         .el-date-editor--timerange.el-input__inner {
-          width: 230px;
+          width: 100%;
           border-radius: 4px;
           border-color: #ffffff;
+          color: #303133;
+          font-family: Helvetica, 'Microsoft YaHei';
           &:hover {
             border-color: #c0c4cc;
           }
           &.is-active {
             border-color: #409eff;
           }
+          .el-input__icon {
+            color: #303133;
+          }
           .el-range-separator {
             line-height: 28px;
           }
@@ -500,6 +516,10 @@ export default {
             }
           }
         }
+        .el-button {
+          border-radius: 4px;
+          font-family: Helvetica, 'Microsoft YaHei';
+        }
       }
     }
   }

+ 20 - 16
src/views/statisticsCharts/views/nodeStatisticsCharts.vue

@@ -8,6 +8,7 @@
         title="扫描节点与位置分析"
         :items="formItems"
         :data="formData"
+        button-text="开始分析"
         @getFormData="getFormData"
       />
     </div>
@@ -99,21 +100,13 @@ export default {
           inputType: 'select',
           placeholder: '请选择进离港',
           clearable: true,
-          options: [
-            {
-              label: '离港',
-              value: 'L'
-            },
-            {
-              label: '进港',
-              value: 'X'
-            }
-          ]
+          options: []
         },
         {
           prop: 'dateTime',
           inputType: 'datePicker',
           clearable: true,
+          width: '240px',
           options: []
         }
       ],
@@ -163,7 +156,7 @@ export default {
     }
   },
   computed: {
-    ...mapGetters(['sidebar', 'permission_routes'])
+    ...mapGetters(['sidebar'])
   },
   watch: {
     // 监听数据变化 重绘图形
@@ -202,11 +195,15 @@ export default {
     getFormData(data) {
       this.getData(data)
     },
-    // 243 时间类型 查询范围 开始时间  结束时间  进离  航线/航站/航站楼
-    // 244 时间类型 开始时间  结束时间  进离  基地分公司
+    // 243 时间类型 查询范围 开始时间  结束时间  进离  航线/航站/航站楼
+    // 244 时间类型 开始时间  结束时间  进离  基地分公司
     async getData(data) {
-      let params = []
-      if (data.airport === '') {
+      const params = []
+      if (data.range === '航线' && data.airline === '') {
+        this.$message.warning('请先选择航线')
+        return
+      }
+      if (data.range === '航站' && data.airport === '') {
         this.$message.warning('请先选择航站')
         return
       }
@@ -219,7 +216,14 @@ export default {
         return
       }
       const id = DATACONTENT_ID.nodeStatistics
-      params = [data.airport, data.inOrOut, data.dateTime[0], data.dateTime[1]]
+      if (data.range === '航线') {
+        params.push(data.airline)
+      } else if (data.range === '航站') {
+        params.push(data.airport)
+      } else {
+        params.push('全部')
+      }
+      params.push(data.inOrOut, data.dateTime[0], data.dateTime[1])
       try {
         const res = await Query({
           id: id,

+ 1 - 1
src/views/systemSettings/views/queryTemplate/queryTemplateadd.vue

@@ -130,7 +130,7 @@ export default {
     },
     async getSelectOption (ID) {
       try {
-        const { listValues } = await myQuery(ID)
+        const listValues = await myQuery(ID)
         return listValues
       } catch (error) {
         this.$message.error(error)

+ 2 - 2
src/views/systemSettings/views/queryTemplate/queryTemplateedit.vue

@@ -124,7 +124,7 @@ export default {
     async queryQueryTemplateByID (queryTemplateID) {
       try {
         const templateInfo = await myQuery(DATACONTENT_ID.sysQueryEditId, queryTemplateID)
-        Object.entries(templateInfo.listValues[0]).forEach(([key, value]) => {
+        Object.entries(templateInfo[0]).forEach(([key, value]) => {
           this.ruleForm[key] = value
         })
       } catch (error) {
@@ -149,7 +149,7 @@ export default {
     },
     async getSelectOption (ID) {
       try {
-        const { listValues } = await myQuery(ID)
+        const listValues = await myQuery(ID)
         return listValues
       } catch (error) {
         this.$message.error(error)

+ 2 - 2
src/views/systemSettings/views/serviceManagement/serviceAdd.vue

@@ -294,7 +294,7 @@ export default {
     },
     async getSelectOption (ID) {
       try {
-        const { listValues } = await myQuery(ID)
+        const listValues = await myQuery(ID)
         return listValues
       } catch (error) {
         this.$message.error(error)
@@ -303,7 +303,7 @@ export default {
     },
     async queryServiceByID (serviceID) {
       const serviceInfo = await myQuery(39, serviceID)
-      Object.entries(serviceInfo.listValues[0]).forEach(([key, value]) => {
+      Object.entries(serviceInfo[0]).forEach(([key, value]) => {
         this.serviceForm[key] = value
       })
     }

+ 2 - 2
src/views/systemSettings/views/serviceManagement/serviceEdit.vue

@@ -315,7 +315,7 @@ export default {
     },
     async getSelectOption (ID) {
       try {
-        const { listValues } = await myQuery(ID)
+        const listValues = await myQuery(ID)
         return listValues
       } catch (error) {
         this.$message.error(error)
@@ -324,7 +324,7 @@ export default {
     },
     async queryServiceByID (serviceID) {
       const serviceInfo = await myQuery(DATACONTENT_ID.sysServiceEditId, serviceID)
-      Object.entries(serviceInfo.listValues[0]).forEach(([key, value]) => {
+      Object.entries(serviceInfo[0]).forEach(([key, value]) => {
         this.serviceForm[key] = value
       })
     },