zhongxiaoyu 2 жил өмнө
parent
commit
996f90ed5f

+ 5 - 3
src/api/dataIntegration.js

@@ -1,7 +1,7 @@
 /*
  * @Author: Badguy
  * @Date: 2022-04-13 14:35:17
- * @LastEditTime: 2022-05-06 09:34:36
+ * @LastEditTime: 2022-05-06 12:32:57
  * @LastEditors: your name
  * @Description: 数据整合接口
  * have a nice day!
@@ -64,10 +64,12 @@ export const queryMap = {
   departureFlight: 39,
   transferFlight: 40,
   container: 41,
-  trasferOutBaggage: 42,
-  trasferInBaggage: 43,
   baggageDetailsByID: 44,
   baggageBasicInfoByID: 45,
+  baggageByFlightNO: 46,
+  transferInBaggage: 47,
+  transferOutBaggage: 48,
+  flightInfo: 49,
   baggageTrackByID: 61
 }
 

+ 4 - 4
src/router/routes/routes-file-four.js

@@ -1,7 +1,7 @@
 /*
  * @Author: Badguy
  * @Date: 2022-04-25 16:01:34
- * @LastEditTime: 2022-05-06 09:23:45
+ * @LastEditTime: 2022-05-06 11:09:32
  * @LastEditors: your name
  * @Description: 账号管理
  * have a nice day!
@@ -180,7 +180,7 @@ const accountRoutes = {
   ]
 }
 
-//高级查询
+// 高级查询
 const advanceRoutes = {
   path: '/advance',
   component: Layout,
@@ -211,13 +211,13 @@ const advanceRoutes = {
               component: () => import('@/views/advancedQuery/views/advancedHome.vue')
             },
             {
-              path: 'flight',
+              path: 'flightView',
               name: 'advancedFlight',
               component: () => import('@/views/advancedQuery/views/advancedFlight.vue'),
               meta: { title: '航班视图' }
             },
             {
-              path: 'bag',
+              path: 'baggageView',
               name: 'advancedBag',
               component: () => import('@/views/advancedQuery/views/advancedBag.vue'),
               meta: { title: '行李视图' }

+ 35 - 36
src/views/advancedQuery/views/advancedHome.vue

@@ -9,8 +9,7 @@
             size="small"
             type="date"
             placeholder="选择开始日期时间"
-          >
-          </el-date-picker>
+          />
         </div>
         <div class="interfaceLog_head_time_end">
           <el-date-picker
@@ -35,7 +34,7 @@
           <div
             class="setting"
             @click="show"
-          ></div>
+          />
         </div>
       </Search>
     </div>
@@ -228,9 +227,9 @@
               <el-col :span="8">
                 <el-form-item label="当前状态">
                   <el-input
-                    size="small"
                     v-model="form.status"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -241,25 +240,25 @@
                   prop="flightNumber"
                 >
                   <el-input
-                    size="small"
                     v-model="form.flightNumber"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="起飞站">
                   <el-input
-                    size="small"
                     v-model="form.station"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="目的地">
                   <el-input
-                    size="small"
                     v-model="form.destination"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -267,26 +266,26 @@
               <el-col :span="8">
                 <el-form-item label="行李牌号">
                   <el-input
-                    size="small"
                     v-model="form.grade"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="特殊行李类型">
                   <el-input
-                    size="small"
                     v-model="form.type"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="容器编号">
                   <el-input
+                    v-model="form.container"
                     disabled
                     size="small"
-                    v-model="form.container"
-                  ></el-input>
+                  />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -294,25 +293,25 @@
               <el-col :span="8">
                 <el-form-item label="旅客姓名">
                   <el-input
-                    size="small"
                     v-model="form.name"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="PNR">
                   <el-input
-                    size="small"
                     v-model="form.pnr"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
                 <el-form-item label="值机序号">
                   <el-input
-                    size="small"
                     v-model="form.check"
-                  ></el-input>
+                    size="small"
+                  />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -322,8 +321,8 @@
           <el-button
             size="medium"
             class="r24"
-            @click="onCheckGj"
             type="primary"
+            @click="onCheckGj"
           >确定</el-button>
           <el-button
             size="medium"
@@ -451,17 +450,17 @@ export default {
         let azNum = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/
         let top2 = /^[a-zA-Z]{2}\w*$/
         let num = /^[0-9]+$/
-        //纯字母则为旅客姓名
+        // 纯字母则为旅客姓名
         if (az.test(val)) {
           this.form['name'] = val
           this.onCheckGj()
         }
-        //字母加数字且前两位为字母则为航班号
+        // 字母加数字且前两位为字母则为航班号
         else if (azNum.test(val) && top2.test(val)) {
           this.form['flightNumber'] = val
           this.onCheckGj()
         }
-        //纯数字且位数等于10则为行李牌号
+        // 纯数字且位数等于10则为行李牌号
         else if (num.test(val) && num.length == 10) {
           this.form['grade'] = val
           this.onCheckGj()
@@ -471,11 +470,11 @@ export default {
         // this.sempleQueryByStatMain(searchData)
       }
     },
-    //清除查询
+    // 清除查询
     clearSearchData() {
       this.tableData = []
     },
-    //列设置-确定
+    // 列设置-确定
     onCheck() {
       this.tableColsCopy = _.cloneDeep(this.checkList)
       const datas = _.sortBy(this.tableColsCopy, o => o.showOrder)
@@ -483,20 +482,20 @@ export default {
       this.tableCopy = this.checkList
       this.rowFlag = false
     },
-    //弹框展开
+    // 弹框展开
     show() {
       this.tableCopy = this.checkList
       this.rowFlag = true
     },
-    //弹框关闭
+    // 弹框关闭
     close() {
       this.rowFlag = false
       this.checkList = this.tableCopy
       this.tableColsCopy = _.cloneDeep(this.checkList)
     },
-    //高级查询-确定
+    // 高级查询-确定
     onCheckGj() {
-      //参数顺序   【航班开始日期,航班结束日期,航班号,航班号,行李牌号,行李牌号,起飞站,起飞站,目的站,目的站,特殊行李类型,特殊 行李类型,旅客姓名大写拼音,旅客姓名大写拼音,pnr,pnr,值机号,值机号】
+      // 参数顺序   【航班开始日期,航班结束日期,航班号,航班号,行李牌号,行李牌号,起飞站,起飞站,目的站,目的站,特殊行李类型,特殊 行李类型,旅客姓名大写拼音,旅客姓名大写拼音,pnr,pnr,值机号,值机号】
       this.dataContent = []
       this.dataContent = []
       const { time, status, flightNumber, destination, station, grade, type, container, name, pnr, check } = this.form
@@ -548,10 +547,10 @@ export default {
     },
     // 表格行点击处理
     flightClickHandler(row) {
-      this.$router.push({ path: '/advance/flight', query: row })
+      this.$router.push({ path: '/advance/flightView', query: row })
     },
     baggageClickHandler(row) {
-      this.$router.push({ path: '/advance/bag', query: row })
+      this.$router.push({ path: '/advance/baggageView', query: row })
     },
     // 综合查询
     async integratedQuery(obj = {}) {
@@ -586,7 +585,7 @@ export default {
         console.log('出错了', error)
       }
     },
-    //简单查询 废弃
+    // 简单查询 废弃
     async sempleQueryByStatMain(dataContent) {
       try {
         const res = await getQuery({

+ 115 - 42
src/views/baggageManagement/components/baggage/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2022-01-17 10:39:22
- * @LastEditTime: 2022-05-06 10:25:52
+ * @LastEditTime: 2022-05-06 13:38:45
  * @LastEditors: your name
  * @Description: 行李视图
 -->
@@ -27,32 +27,16 @@
       <div class="part1_info">
         <el-row :gutter="12">
           <!-- 第一行 -->
-          <el-col :span="3"><span class="label">行李牌号:</span><span class="content">{{ baggageBasicInfo.bagNo }}</span></el-col>
-          <el-col :span="4"><span class="label">企业或团队名称:</span><span class="content">{{ baggageBasicInfo.teamOrGroup }}</span></el-col>
-          <el-col :span="3"><span class="label">值机位置:</span><span class="content">{{ baggageBasicInfo.checkInLocation }}</span></el-col>
-          <el-col :span="3"><span class="label">特殊行李类型:</span><span class="content">{{ baggageBasicInfo.specialType }}</span></el-col>
-          <el-col :span="4"><span class="label">PNR编号:</span><span class="content">{{ baggageBasicInfo.PNR }}</span></el-col>
-          <el-col :span="4"><span class="label">旅客姓名大写拼音:</span><span class="content">{{ baggageBasicInfo.name }}</span></el-col>
-          <el-col :span="3"><span class="label">装载序列号:</span><span class="content">{{ baggageBasicInfo.loadSequenceIndex }}</span></el-col>
-          <!-- 第二行 -->
-          <el-col :span="3"><span class="label">总件数:</span><span class="content">{{ baggageBasicInfo.totalNumber }}</span></el-col>
-          <el-col :span="4"><span class="label">总重量:</span><span class="content">{{ baggageBasicInfo.totalWeight }}</span></el-col>
-          <el-col :span="3"><span class="label">尺寸:</span><span class="content">{{ baggageBasicInfo.size }}</span></el-col>
-          <el-col :span="3"><span class="label">外部特征描述:</span><span class="content">{{ baggageBasicInfo.externalCharacterization }}</span></el-col>
-          <el-col :span="4"><span class="label">常旅客号:</span><span class="content">{{ baggageBasicInfo.frequentFlyerNumber }}</span></el-col>
-          <el-col :span="4"><span class="label">常旅客级别:</span><span class="content">{{ baggageBasicInfo.frequentFlyerClass }}</span></el-col>
-          <el-col :span="3"><span class="label">是否取消值机:</span><span class="content">{{ baggageBasicInfo.whetherToCancelTheCheckIn }}</span></el-col>
-          <!-- 第三行 -->
-          <el-col :span="3"><span class="label">是否可装载:</span><span class="content">{{ baggageBasicInfo.isItLoadable }}</span></el-col>
-          <el-col :span="4"><span class="label">是否可运输:</span><span class="content">{{ baggageBasicInfo.isItTransportable }}</span></el-col>
-          <el-col :span="3"><span class="label">行李激活状态:</span><span class="content">{{ baggageBasicInfo.activeState }}</span></el-col>
-          <el-col :span="3"><span class="label">无BSM状态:</span><span class="content">{{ baggageBasicInfo.noBSM }}</span></el-col>
-          <el-col :span="4"><span class="label">中转标记:</span><span class="content">{{ baggageBasicInfo.transitSign }}</span></el-col>
-          <el-col :span="4"><span class="label">速运标记:</span><span class="content">{{ baggageBasicInfo.expressSign }}</span></el-col>
-          <el-col :span="3"><span class="label">破损标记:</span><span class="content">{{ baggageBasicInfo.brokenSign }}</span></el-col>
-          <!-- 第四行 -->
-          <el-col :span="3"><span class="label">投诉标记:</span><span class="content">{{ baggageBasicInfo.complaintSign }}</span></el-col>
-          <el-col :span="4"><span class="label">赔偿标记:</span><span class="content">{{ baggageBasicInfo.compensationSign }}</span></el-col>
+          <el-col
+            v-for="(item, index) in baggageBasicInfoCols"
+            :key="index"
+            :span="[1, 4, 5].includes(index % 7) ? 4 : 3"
+          >
+            <span class="label">{{ item.label }}:</span><span
+              class="content"
+              :title="baggageBasicInfo[item.content]"
+            >{{ baggageBasicInfo[item.content] }}</span>
+          </el-col>
         </el-row>
       </div>
     </div>
@@ -86,7 +70,7 @@
               v-for="(item, index) in stepData"
               :key="index"
               class="stepItem"
-              :class="{ activeItem: item.NodeNameEN }"
+              :class="{ activeItem: item.DealTime }"
             >
               <span class="head">
                 <!-- {{ item.airPort }} -->
@@ -251,16 +235,101 @@ export default {
       departureAirport: '',
       landingAirport: '',
       queryData: {},
-      baggageBasicInfo: {
-        BagSN: '3666149457',
-        SpecialType: null,
-        PassengerInfoStatus: null,
-        PassengerNameUpcase: 'AIJIAMEI',
-        bagExcType: null,
-        TeamOrGroup: null,
-        PNR: null,
-        BagStatus: null
+      baggageBasicInfoCols: [
+        {
+          label: '行李牌号',
+          content: 'bagNo'
+        },
+        {
+          label: '企业或团队名称',
+          content: 'teamOrGroup'
+        },
+        {
+          label: '值机位置',
+          content: 'checkInLocation'
+        },
+        {
+          label: '特殊行李类型',
+          content: 'specialType'
+        },
+        {
+          label: 'PNR编号',
+          content: 'PNR'
+        },
+        {
+          label: '旅客姓名大写拼音',
+          content: 'name'
+        },
+        {
+          label: '装载序列号',
+          content: 'loadSequenceIndex'
+        },
+        {
+          label: '总件数',
+          content: 'totalNumber'
+        },
+        {
+          label: '总重量',
+          content: 'totalWeight'
+        },
+        {
+          label: '尺寸',
+          content: 'size'
+        },
+        {
+          label: '外部特征描述',
+          content: 'externalCharacterization'
+        },
+        {
+          label: '常旅客号',
+          content: 'frequentFlyerNumber'
+        },
+        {
+          label: '常旅客级别',
+          content: 'frequentFlyerClass'
+        },
+        {
+          label: '是否取消值机',
+          content: 'whetherToCancelTheCheckIn'
+        },
+        {
+          label: '是否可装载',
+          content: 'isItLoadable'
+        },
+        {
+          label: '是否可运输',
+          content: 'isItTransportable'
+        },
+        {
+          label: '行李激活状态',
+          content: 'activeState'
+        },
+        {
+          label: '无BSM状态',
+          content: 'noBSM'
+        },
+        {
+          label: '中转标记',
+          content: 'transitSign'
+        },
+        {
+          label: '速运标记',
+          content: 'expressSign'
+        },
+        {
+          label: '破损标记',
+          content: 'brokenSign'
+        },
+        {
+          label: '投诉标记',
+          content: 'complaintSign'
       },
+        {
+          label: '赔偿标记',
+          content: 'compensationSign'
+        }
+      ],
+      baggageBasicInfo: {},
       dialogVisibledele: false,
       active: 2,
       infoBtn: '跟踪信息',
@@ -373,19 +442,23 @@ export default {
       try {
         const [baggageBasicInfo, baggageTrack, baggageDetails] = await Promise.all([
           this.queryBaggageBasicInfo(dataContent),
-          this.queryBaggageTrack(dataContent),
+          this.queryBaggageTrack(new Array(2).fill(dataContent).flat()),
           this.queryBaggageDetails(new Array(6).fill(dataContent).flat())
         ])
         baggageBasicInfo.length && (this.baggageBasicInfo = baggageBasicInfo[0])
-        this._.sortBy(baggageTrack, item => item.DealTime).forEach((item, index) => {
-          item.NodeNameEN && this.stepData.splice(index, 1, item)
-        })
-        this.baggageTableData = baggageDetails.map(item => {
+        // this._.sortBy(baggageTrack, item => item.DealTime).forEach((item, index) => {
+        //   item.NodeNameEN && this.stepData.splice(index, 1, item)
+        // })
+        this.baggageTableData = this._.sortBy(baggageDetails, item => item.dealTime).map(item => {
           item['dealTime'] = item['dealTime'].split('T')[1]
           item['departureAirport'] = `${item['departureAirport']}\n${item['departureTime'].split('T')[1]}`
           item['landingAirport'] = `${item['landingAirport']}\n${item['landingTime'].split('T')[1]}`
           return item
         })
+        baggageTrack.forEach((item, index) => {
+          item['DealTime'] = item['DealTime'].replace('T', '\n')
+          this.stepData.splice(index, 1, item)
+        })
       } catch (error) {
         console.log('错误', error)
       }

+ 223 - 184
src/views/baggageManagement/components/flight/index.vue

@@ -1,7 +1,7 @@
 <!--
  * @Author: your name
  * @Date: 2022-01-17 10:39:22
- * @LastEditTime: 2022-05-06 09:53:10
+ * @LastEditTime: 2022-05-06 13:28:30
  * @LastEditors: your name
  * @Description: 航班视图
 -->
@@ -10,8 +10,8 @@
     <div class="flight-wrap">
       <div class="part1">
         <div class="title">
-          {{ infoData.PlanDepartureApt }} - {{ infoData.FlightNO }} -
-          {{ infoData.PlanLandingApt }}
+          {{ flightInfo.PlanDepartureApt }} - {{ flightInfo.FlightNO }} -
+          {{ flightInfo.PlanLandingApt }}
         </div>
         <div class="part1_info">
           <div class="part1_info_box">
@@ -20,7 +20,7 @@
                 <span>起飞机场简称:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.planDepartureaptName }}</span>
+                <span>{{ flightInfo.Name }}</span>
               </el-col>
             </el-row>
 
@@ -29,7 +29,7 @@
                 <span>起飞机场三字码:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.PlanDepartureApt }}</span>
+                <span>{{ flightInfo.PlanDepartureApt }}</span>
               </el-col>
             </el-row>
 
@@ -38,7 +38,7 @@
                 <span>起飞机场航站楼:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.DepartureBuild }}</span>
+                <span>{{ flightInfo.DepartureBuild }}</span>
               </el-col>
             </el-row>
 
@@ -46,23 +46,23 @@
               <el-col :span="12">
                 <span>
                   日期:
-                  <!-- {{ infoData.PlanDepartureTime.split("T")[0] }} -->
+                  {{ flightInfo.PlanDepartureTime && flightInfo.PlanDepartureTime.split("T")[0] }}
                 </span>
               </el-col>
               <el-col :span="12">
                 <span>
                   时间:
-                  <!-- {{ infoData.PlanDepartureTime.split("T")[1] }} -->
+                  {{ flightInfo.PlanDepartureTime && flightInfo.PlanDepartureTime.split("T")[1] }}
                 </span>
               </el-col>
             </el-row>
 
             <el-row>
               <el-col :span="12">
-                <span>登机口:{{ infoData.BordingGate }}</span>
+                <span>登机口:{{ flightInfo.Carousel }}</span>
               </el-col>
               <el-col :span="12">
-                <span>停机位:{{ infoData.StandForDeparture }}</span>
+                <span>停机位:{{ flightInfo.StandForDepartrue }}</span>
               </el-col>
             </el-row>
           </div>
@@ -72,7 +72,7 @@
                 <span>航班号:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.FlightNO }}</span>
+                <span>{{ flightInfo.FlightNO }}</span>
               </el-col>
             </el-row>
 
@@ -81,7 +81,7 @@
                 <span>航班状态:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.FlightStatus }}</span>
+                <span>{{ flightInfo.FlightStatus }}</span>
               </el-col>
             </el-row>
 
@@ -90,7 +90,7 @@
                 <span>托运旅客数:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.passagernum }}</span>
+                <span>{{ flightInfo.passagernum }}</span>
               </el-col>
             </el-row>
 
@@ -99,7 +99,7 @@
                 <span>终点行李数:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.terminus }}</span>
+                <span>{{ flightInfo.terminus }}</span>
               </el-col>
             </el-row>
 
@@ -108,7 +108,7 @@
                 <span>中转行李数:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.transfer_all }}</span>
+                <span>{{ flightInfo.transfer_all }}</span>
               </el-col>
             </el-row>
           </div>
@@ -118,7 +118,7 @@
                 <span>降落机场简称:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.PlanLandingaptName }}</span>
+                <span>{{ flightInfo.PlanLandingaptName }}</span>
               </el-col>
             </el-row>
 
@@ -127,7 +127,7 @@
                 <span>降落机场三字码:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.PlanLandingApt }}</span>
+                <span>{{ flightInfo.PlanLandingApt }}</span>
               </el-col>
             </el-row>
 
@@ -136,7 +136,7 @@
                 <span>降落机场航站楼:</span>
               </el-col>
               <el-col :span="12">
-                <span>{{ infoData.LandingBuild }}</span>
+                <span>{{ flightInfo.LandingBuild }}</span>
               </el-col>
             </el-row>
 
@@ -144,23 +144,23 @@
               <el-col :span="12">
                 <span>
                   日期:
-                  <!-- {{ infoData.PlanLandingTime.split("T")[0] }} -->
+                  {{ flightInfo.PlanLandingTime && flightInfo.PlanLandingTime.split("T")[0] }}
                 </span>
               </el-col>
               <el-col :span="12">
                 <span>
                   时间:
-                  <!-- {{ infoData.PlanLandingTime.split("T")[1] }} -->
+                  {{ flightInfo.PlanLandingTime && flightInfo.PlanLandingTime.split("T")[1] }}
                 </span>
               </el-col>
             </el-row>
 
             <el-row>
               <el-col :span="12">
-                <span>提取转盘:{{ infoData.Carousel }}</span>
+                <span>提取转盘:{{ flightInfo.Carousel }}</span>
               </el-col>
               <el-col :span="12">
-                <span>停机位:{{ infoData.StandForLanding }}</span>
+                <span>停机位:{{ flightInfo.StandForLanding }}</span>
               </el-col>
             </el-row>
           </div>
@@ -168,13 +168,15 @@
       </div>
       <div class="part2">
         <el-table
+          ref="containerTable"
           :data="containerTableData"
           border
           style="width: 100%"
-          height="344"
+          height="344px"
           stripe
           size="mini"
           show-summary
+          :summary-method="summaryMethod"
           :header-cell-style="{ color: '#101116' }"
         >
           <el-table-column
@@ -193,13 +195,15 @@
       >
         <div class="title">中转进</div>
         <el-table
-          :data="transferInTableData"
+          ref="transferInBaggageTable"
+          :data="transferInBaggageTableData"
           border
           style="width: 100%"
           height="162"
           stripe
           size="mini"
           show-summary
+          :summary-method="summaryMethod"
           :header-cell-style="{ color: '#101116' }"
         >
           <el-table-column
@@ -218,13 +222,15 @@
       >
         <div class="title">中转出</div>
         <el-table
-          :data="transferOutTableData"
+          ref="transferOutBaggageTable"
+          :data="transferOutBaggageTableData"
           border
           style="width: 100%"
           height="162"
           stripe
           size="mini"
           show-summary
+          :summary-method="summaryMethod"
           :header-cell-style="{ color: '#101116' }"
         >
           <el-table-column
@@ -239,15 +245,15 @@
       </div>
       <div class="part4">
         <div class="title">
-          <el-cascader
+          <!-- <el-cascader
             placeholder="全部行李"
             :options="options"
             :props="props"
             collapse-tags
             size="mini"
             clearable
-          />
-          <div class="search">
+          /> -->
+          <!-- <div class="search">
             <el-input
               v-model="keyWords"
               placeholder="请输入需要搜索姓名或行李编号"
@@ -259,7 +265,7 @@
               type="primary"
               size="mini"
             >搜索</el-button>
-          </div>
+          </div> -->
           <el-switch
             v-model="openUTC"
             active-text="开启UTC"
@@ -279,13 +285,15 @@
           />
         </div>
         <el-table
-          ref="table"
-          :data="baggageTableData"
+          ref="baggageTable"
+          :data="flightBaggageTableData"
           border
           style="width: 100%"
           height="320"
           stripe
           size="mini"
+          show-summary
+          :summary-method="summaryMethod"
           :header-cell-style="{ color: '#101116' }"
           @row-click="rowClick"
         >
@@ -340,32 +348,32 @@
 </template>
 <script>
 import Dialog from '@/layout/components/Dialog/index.vue'
-import { baggageSearchIO, baggageSearchIOContainer, baggageSearchIOAll } from '@/api/flight'
+import { queryMap, myQuery } from '@/api/dataIntegration'
 import tableColsMixin from '../../mixins/tableCols'
 
-const arrivalBaggageTableColumn = [
-  { name: '旅客姓名', prop: 'name', align: 'center', sortable: 'custom' },
-  { name: '行李牌号', prop: 'bagNo', align: 'center' },
-  {
-    name: '特殊行李类型',
-    prop: 'specialType',
-    align: 'center',
-    sortable: 'custom'
-  },
-  {
-    name: '容器编号',
-    prop: 'containerNo',
-    align: 'center',
-    sortable: 'custom'
-  },
-  { name: '装载序号', prop: 'loadSequenceIndex', align: 'center' },
-  { name: '卸载', prop: 'uninstall', align: 'center' },
-  { name: '到达', prop: 'arrival', align: 'center' },
-  { name: '提取', prop: 'extract', align: 'center' },
-  { name: '旅客仓位', prop: 'positionNo', align: 'center' },
-  { name: '中转标志', prop: 'transitStatus', align: 'center' },
-  { name: '卷宗号', prop: 'fileNumber', align: 'center' }
-]
+// const arrivalBaggageTableColumn = [
+//   { name: '旅客姓名', prop: 'name', align: 'center', sortable: 'custom' },
+//   { name: '行李牌号', prop: 'bagNo', align: 'center' },
+//   {
+//     name: '特殊行李类型',
+//     prop: 'specialType',
+//     align: 'center',
+//     sortable: 'custom'
+//   },
+//   {
+//     name: '容器编号',
+//     prop: 'containerNo',
+//     align: 'center',
+//     sortable: 'custom'
+//   },
+//   { name: '装载序号', prop: 'loadSequenceIndex', align: 'center' },
+//   { name: '卸载', prop: 'uninstall', align: 'center' },
+//   { name: '到达', prop: 'arrival', align: 'center' },
+//   { name: '提取', prop: 'extract', align: 'center' },
+//   { name: '旅客仓位', prop: 'positionNo', align: 'center' },
+//   { name: '中转标志', prop: 'transitStatus', align: 'center' },
+//   { name: '卷宗号', prop: 'fileNumber', align: 'center' }
+// ]
 const departureBaggageTableColumn = [
   { name: '旅客姓名', prop: 'name', align: 'center', sortable: 'custom' },
   { name: '行李牌号', prop: 'bagNo', align: 'center' },
@@ -398,7 +406,8 @@ export default {
   mixins: [tableColsMixin],
   data() {
     return {
-      infoData: {},
+      queryData: {},
+      flightInfo: {},
       keyWords: '',
       openUTC: true,
       props: { multiple: true },
@@ -407,154 +416,184 @@ export default {
         { value: 0, label: 'VIP行李' }
       ],
       containerTableColumn: [
-        { name: '容器编号', prop: 'containerNo', align: 'center' },
-        { name: '类型', prop: 'type', align: 'center' },
-        { name: '行李数', prop: 'total', align: 'center' }
+        { name: '容器编号', prop: 'containerNumber', align: 'center' },
+        { name: '类型', prop: 'style', align: 'center' },
+        { name: '行李数', prop: 'numberOfBags', align: 'center' }
       ],
       transferInTableColumn: [
-        { name: '航班号', prop: 'preFlightNo', align: 'center' },
-        { name: '日期', prop: 'preFlightDate', align: 'center' },
-        { name: '时间', prop: 'preFlightLandingDateTime', align: 'center' },
-        { name: '始发站', prop: 'preAirportName', align: 'center' },
-        { name: '航班状态', prop: 'flightStatus', align: 'center' },
-        { name: '中转数', prop: 'total', align: 'center' }
+        { name: '航班号', prop: 'PreFlightNO', align: 'center' },
+        { name: '日期', prop: 'PreFlightDate', align: 'center' },
+        { name: '时间', prop: 'prePlanLandingTime', align: 'center' },
+        { name: '始发站', prop: 'PlanDepartureApt', align: 'center' },
+        { name: '航班状态', prop: 'FlightStatus', align: 'center' },
+        { name: '中转数', prop: 'totalNumber', align: 'center' }
       ],
       transferOutTableColumn: [
-        { name: '航班号', prop: 'transferFlightNo', align: 'center' },
-        { name: '日期', prop: 'transferFlightDate', align: 'center' },
-        { name: '时间', prop: 'transferFlightTime', align: 'center' },
-        { name: '目的站', prop: 'destinationAirportName', align: 'center' },
-        { name: '中转数', prop: 'total', align: 'center' }
+        { name: '航班号', prop: 'TransferFlightNO', align: 'center' },
+        { name: '日期', prop: 'TransferFlightDate', align: 'center' },
+        { name: '时间', prop: 'flightTime', align: 'center' },
+        { name: '始发站', prop: 'PlanDepartureApt', align: 'center' },
+        { name: '目的站', prop: 'PlanLandingApt', align: 'center' },
+        { name: '中转数', prop: 'transferNumber', align: 'center' }
       ],
-      tableCols:
-        this.$route.matched[0].path === '/arrival' || this.$route.matched[1].path === '/transfer/arrival'
-          ? arrivalBaggageTableColumn
-          : departureBaggageTableColumn,
+      // tableCols:
+      //   this.$route.matched[0].path === '/arrival' || this.$route.matched[1].path === '/transfer/arrival'
+      //     ? arrivalBaggageTableColumn
+      //     : departureBaggageTableColumn,
+      tableCols: departureBaggageTableColumn,
       containerTableData: [], // 容器统计
-      transferInTableData: [], // 中转进
-      transferOutTableData: [], // 中转出
-      baggageTableData: [] // 行列表
+      transferInBaggageTableData: [], // 中转进
+      transferOutBaggageTableData: [], // 中转出
+      flightBaggageTableData: [] // 行李列表
     }
   },
   created() {
-    this.infoData = this._.cloneDeep(this.$route.query)
-    this.infoData['terminus'] = this['transfer_out_all']
-      ? this.infoData['checkin'] - this['transfer_out_all']
-      : this.infoData['checkin']
-    console.log(this.infoData)
-    // const dataIn = {
-    //   flightNO: this.infoData.FlightNO,
-    //   flightDate: this.infoData.FlightDate,
-    //   preFlightNO: true,
-    //   transferFlightNO: false
-    // }
-    // const dataOut = {
-    //   flightNO: this.infoData.FlightNO,
-    //   flightDate: this.infoData.FlightDate,
-    //   preFlightNO: false,
-    //   transferFlightNO: true
-    // }
-    // const containerData = {
-    //   flightNO: this.infoData.FlightNO,
-    //   flightDate: this.infoData.FlightDate,
-    //   preFlightNO: true,
-    //   transferFlightNO: true
-    // }
-
-    // const searchAllData = {
-    //   flightNO: this.infoData.FlightNO,
-    //   flightDate: this.infoData.FlightDate,
-    //   preFlightNO: true,
-    //   transferFlightNO: true
-    // }
-    // this.getbaggageSearchIn(dataIn)
-    // this.getbaggageSearchOut(dataOut)
-    // this.getBaggageSearchIOContainer(containerData)
-    // this.getBaggageSearchIOAll(searchAllData)
+    this.queryData = this._.cloneDeep(this.$route.query)
+    console.log(this.queryData)
+    const queryData = [this.queryData.FlightNO, this.queryData.FlightDate]
+    this.queryAll(queryData)
+  },
+  updated() {
+    this.$nextTick(() => {
+      this.$refs['containerTable'].doLayout()
+      this.$refs['transferInBaggageTable'].doLayout()
+      this.$refs['transferOutBaggageTable'].doLayout()
+      this.$refs['baggageTable'].doLayout()
+    })
   },
   methods: {
-    async getBaggageSearchIOAll(data) {
-      const getNodeInfo = node => `${node.locationPointDescribe ? node.locationPointDescribe : node.locationPoint}\n
-            ${node.realTime}`
-      try {
-        const result = await baggageSearchIOAll(data)
-        this.baggageTableData = result.returnData.map(element => {
-          element['nodeInfos'].forEach(node => {
-            switch (node.nodeCode) {
-              case 'CHECKIN':
-                element['checkIn'] = getNodeInfo(node)
-                break
-              case 'SECURITY':
-                element['security'] = getNodeInfo(node)
-                break
-              case 'SORT':
-                element['sorting'] = getNodeInfo(node)
-                break
-              case 'LOAD':
-                element['loading'] = getNodeInfo(node)
-                break
-              case 'INF':
-                element['installed'] = getNodeInfo(node)
-                break
-              case 'UNLOAD':
-                element['security'] = getNodeInfo(node)
-                element['arrival'] = getNodeInfo(node)
-                break
-              case 'TiQu':
-                element['extract'] = getNodeInfo(node)
-                break
-              default:
-                break
+    // 合计行
+    summaryMethod({ columns, data }) {
+      const sums = []
+      if (columns.length > 0) {
+        columns.forEach((column, index) => {
+          if (index === 0) {
+            sums[index] = '合计'
+          } else if (
+            // 需要计算的列
+            ['numberOfBags', 'totalNumber', 'transferNumber'].includes(column.property)
+          ) {
+            const values = data.map(item => Number(item[column.property]))
+            if (values.some(value => !isNaN(value))) {
+              sums[index] = values.reduce((prev, curr) => {
+                const value = Number(curr)
+                if (!isNaN(value)) {
+                  return Number(prev) + Number(curr)
+                } else {
+                  return Number(prev)
+                }
+              }, 0)
+            } else {
+              sums[index] = 0
             }
-          })
-          return element
+          } else {
+            // 过滤某些字段不参与计算
+            sums[index] = '-'
+          }
         })
-        // result.returnData.forEach(element => {
-        //   element['checkIn'] = element.checkInLocation + '\n' + element.checkInTime
-        //   element['security'] = element.securityStatus + '\n' + element.securityTime
-        //   element['sorting'] = element.sortingNo + '\n' + element.sortingTime
-        //   element['loading'] = element.loadingNumber + '\n' + element.loadingTime
-        //   element['installed'] = element.installedNumber + '\n' + element.installedTime
-        //   element['uninstall'] = element.uninstall + '\n' + element.uninstallTime
-        //   element['arrival'] = element.reach + '\n' + element.timeOfArrival
-        //   element['extract'] = element.extract + '\n' + element.extractionTime
-        // })
-        // this.baggageTableData = this._.cloneDeep(result.returnData)
-      } catch (error) {
-        console.log(error)
       }
+      return sums
     },
-    async getBaggageSearchIOContainer(data) {
-      try {
-        const result = await baggageSearchIOContainer(data)
-        this.containerTableData = this._.cloneDeep(result.returnData)
-      } catch (error) {
-        console.log(error)
-      }
+    // async getBaggageSearchIOAll(data) {
+    //   const getNodeInfo = node => `${node.locationPointDescribe ? node.locationPointDescribe : node.locationPoint}\n
+    //         ${node.realTime}`
+    //   try {
+    //     const result = await baggageSearchIOAll(data)
+    //     this.flightBaggageTableData = result.returnData.map(element => {
+    //       element['nodeInfos'].forEach(node => {
+    //         switch (node.nodeCode) {
+    //           case 'CHECKIN':
+    //             element['checkIn'] = getNodeInfo(node)
+    //             break
+    //           case 'SECURITY':
+    //             element['security'] = getNodeInfo(node)
+    //             break
+    //           case 'SORT':
+    //             element['sorting'] = getNodeInfo(node)
+    //             break
+    //           case 'LOAD':
+    //             element['loading'] = getNodeInfo(node)
+    //             break
+    //           case 'INF':
+    //             element['installed'] = getNodeInfo(node)
+    //             break
+    //           case 'UNLOAD':
+    //             element['security'] = getNodeInfo(node)
+    //             element['arrival'] = getNodeInfo(node)
+    //             break
+    //           case 'TiQu':
+    //             element['extract'] = getNodeInfo(node)
+    //             break
+    //           default:
+    //             break
+    //         }
+    //       })
+    //       return element
+    //     })
+    //     // result.returnData.forEach(element => {
+    //     //   element['checkIn'] = element.checkInLocation + '\n' + element.checkInTime
+    //     //   element['security'] = element.securityStatus + '\n' + element.securityTime
+    //     //   element['sorting'] = element.sortingNo + '\n' + element.sortingTime
+    //     //   element['loading'] = element.loadingNumber + '\n' + element.loadingTime
+    //     //   element['installed'] = element.installedNumber + '\n' + element.installedTime
+    //     //   element['uninstall'] = element.uninstall + '\n' + element.uninstallTime
+    //     //   element['arrival'] = element.reach + '\n' + element.timeOfArrival
+    //     //   element['extract'] = element.extract + '\n' + element.extractionTime
+    //     // })
+    //     // this.flightBaggageTableData = this._.cloneDeep(result.returnData)
+    //   } catch (error) {
+    //     console.log(error)
+    //   }
+    // },
+    rowClick(row) {
+      row['flightNo'] = this.queryData.FlightNO
+      row['flightDate'] = this.queryData.FlightDate
+      this.$router.push({
+        path: `/${this.$route.path.split('/').slice(1, -1).join('/')}/baggageView`,
+        query: row
+      })
     },
-    async getbaggageSearchIn(data) {
-      try {
-        const result = await baggageSearchIO(data)
-        this.transferInTableData = this._.cloneDeep(result.returnData)
-      } catch (error) {
-        console.log(error)
-      }
+    queryflightInfo(dataContent) {
+      return myQuery(queryMap.flightInfo, ...dataContent)
+    },
+    queryContainer(dataContent) {
+      return myQuery(queryMap.container, ...dataContent)
+    },
+    queryTrasferOutBaggage(dataContent) {
+      return myQuery(queryMap.transferOutBaggage, ...dataContent)
     },
-    async getbaggageSearchOut(data) {
+    queryTrasferInBaggage(dataContent) {
+      return myQuery(queryMap.transferInBaggage, ...dataContent)
+    },
+    queryBaggageByFlightNO(dataContent) {
+      return myQuery(queryMap.baggageByFlightNO, ...dataContent)
+    },
+    async queryAll(dataContent) {
       try {
-        const result = await baggageSearchIO(data)
-        this.transferOutTableData = this._.cloneDeep(result.returnData)
+        const [
+          flightInfo,
+          containerTableDataData,
+          transferOutBaggageTableData,
+          transferInBaggageTableData,
+          flightBaggageTableData
+        ] = await Promise.all([
+          this.queryflightInfo(dataContent),
+          this.queryContainer(dataContent),
+          this.queryTrasferOutBaggage(dataContent),
+          this.queryTrasferInBaggage(dataContent),
+          this.queryBaggageByFlightNO(dataContent)
+        ])
+        this.flightInfo = flightInfo
+        this.containerTableData = containerTableDataData
+        this.transferOutBaggageTableData = transferOutBaggageTableData.map(item => {
+          item['flightTime'] = item['flightDate'].split('T')[1]
+          return item
+        })
+        this.transferInBaggageTableData = transferInBaggageTableData
+        this.flightBaggageTableData = flightBaggageTableData
       } catch (error) {
-        console.log(error)
+        console.log('错误', error)
       }
-    },
-    rowClick(row, column, event) {
-      row['flightNo'] = this.infoData.FlightNO
-      row['flightDate'] = this.infoData.FlightDate
-      this.$router.push({
-        path: `/${this.$route.path.split('/').slice(1, -1).join('/')}/baggageView`,
-        query: row
-      })
     }
   }
 }