<template>
  <div>
    <div class="query-box" style="border-bottom: none;">
      <ul>
        <li>
          <span>
            <em>{{$t('advmanager.v_line')}}</em>
            <el-select v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')" @change="getLinePlaceList()">
              <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
              <el-option v-for="item in queryCommonData.LineList" :label='item.LineName' :value='item.LineID'
                :key='item.LineID'>
              </el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>{{$t('Operation.Op_Country')}}/{{$t('system.query_dest')}}</em>
            <el-select v-model="msg.PlaceID" filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList()">
              <el-option :label="$t('pub.unlimitedSel')" :value="0"></el-option>
              <el-option v-for="item in queryCommonData.PlaceList" :label="item.PlaceName" :value="item.PlaceID"
                :key="item.LtID"></el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>{{$t('advmanager.v_xilie')}}</em>
            <el-select v-model="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')">
              <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
              <el-option v-for="item in queryCommonData.LineTeamList" :label='item.LtName' :value='item.LtID'
                :key='item.LtID'>
              </el-option>
            </el-select>
          </span>
        </li>
        <li>
          <span>
            <em>地接团号</em>
            <el-input v-model='msg.CombinationNum'></el-input>
          </span>
        </li>
        <li>
          <span>
            <em>团号</em>
            <el-input v-model='msg.TCNUM'></el-input>
          </span>
        </li>
        <li><span><em>{{$t('pub.date')}}</em>
            <el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
            -
            <el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
          </span>
        </li>
        <li><span><em>状态</em></span>
          <el-select v-model='msg.PriceStatus'>
            <el-option label='正常' value='0' key='0'></el-option>
            <el-option label='取消' value='1' key='1'></el-option>
          </el-select>
        </li>
        <li>
          <input type="button" class="normalBtn" :value="$t('pub.searchBtn')" @click="getList();resetPageIndex()" />
        </li>
      </ul>
    </div>
    <div class="mt10 fz14 color333 busIconStyle">
      车辆状态&nbsp;&nbsp;&nbsp;已确定:<span style="color:#4BCA81 ;">√</span>未确定:<span
        style="color: #ff6600;">O</span>未分配:<span style="color:#E95252 ;">X</span>
    </div>
    <div style="width: 100%;  overflow-x: auto;padding-bottom: 10px; margin-top: 10px; " class="ownScrollbarStyle"
      :style="{height: boxHeight + 'px'}">
      <table border="0" cellspacing="1" cellpadding="0" class="busStatisticsTalbe" v-loading='loading'>
        <tr>
          <th class="w100">序号</th>
          <th width="110">出发地</th>
          <th width="110">酒店</th>
          <th width="150">航班时间</th>
          <th width="150">公司团号</th>
          <th width="100">线路负责人</th>
          <th width="70">进出点</th>
          <th width="80">机位总数<br />(Y/E/F/单地接)</th>
          <th width="80">领队</th>
          <th width="80">导游</th>
          <th width="150">车型</th>
          <th width="100" v-for='item in thLengthTitle'>{{item}}</th>
          <th width="150">车辆状态</th>
          <th width="150">车费总计</th>
          <th width="80">配车天数</th>
          <th width="120">{{$t('hotel.table_operat')}}</th>
        </tr>
        <tbody v-for="(outItem,outindex) in DataList" :class="{splitTrCss:outindex%2!=0}">
          <template v-for="(item,index) in outItem.StaticsReportList">
            <tr>
              <td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
                <div class="w100">{{outItem.NewCombinationNum}}</div>
              </td>
              <td>
                <div class="w80">
                  {{item.StartCityNames}}
                </div>
              </td>
              <td>
                <el-popover width="750" trigger="click" popper-class="Bus_HotelPop">
                  <commonHotelInfo :HotelObj="item.CommonReport.PriceHotelResult" :showHotelObj="showHotelObj">
                  </commonHotelInfo>
                  <div slot="reference" class="w80" style="cursor:pointer;text-decoration:underline;">酒店信息</div>
                </el-popover>
              </td>
              <td>
                <div class="w120">
                  {{item.FlightDate}}
                  <el-popover popper-class="busStatistics_tripDetails" width="550" trigger="click">
                    <table width="100%" border="0" cellspacing="0" cellpadding="0">
                      <tr class="_color_666" style="text-align:center;">
                        <th width="60">{{$t('Airticket.Air_segment')}}</th>
                        <th width="80">{{$t('system.query_flightNum')}}</th>
                        <th width="150">起飞时间</th>
                        <th width="150">到达时间</th>
                        <th width="100">经停城市</th>
                      </tr>
                      <tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;">
                        <td class="_d_name _color_666">
                          <span v-if="din==0">{{$t('Airticket.Air_go')}}</span>
                          <span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span>
                          <span
                            v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span>
                        </td>
                        <td>
                          <div>{{ds.Flight_number}}</div>
                          <div style="margin-top:5px;">{{ds.AlName}}</div>
                        </td>
                        <td>
                          <div>{{ds.FlightDate}} {{ds.Departure_time}}</div>
                          <div style="margin-top:5px;">{{ds.dName}}</div>
                        </td>
                        <td>
                          <div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div>
                          <div style="margin-top:5px;">{{ds.aName}}</div>
                        </td>
                        <td>{{ds.StopoverName}}</td>
                      </tr>
                    </table>
                    <el-button slot="reference" class="normalBtn mt5"
                      style='height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button>
                  </el-popover>
                </div>
              </td>
              <td>
                <div class="w120 link">
                  <p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}</p>
                </div>
              </td>
              <td>
                <div class="w80">{{item.CreateByName}}</div>
              </td>
              <td>
                <div class="w80">{{item.InOut}}</div>
              </td>
              <td>
                <div class="w100 link">
                  <p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')">
                    {{item.TotalSeat}}/{{item.CommonReport.HouseStatistics.RealityYSeatNum}}/{{item.CommonReport.HouseStatistics.RealityESeatNum}}/{{item.CommonReport.HouseStatistics.RealityFSeatNum}}/{{item.CommonReport.HouseStatistics.SingleDMNum}}
                  </p>
                </div>
              </td>
              <td>
                <div class="w80">{{item.LeaderName}}</div>
              </td>
              <td>
                <div class="w80">{{item.GuideName}}</div>
              </td>
              <td>
                <div class="w80">
                  <template
                    v-if="item.CommonReport&&item.CommonReport.BusPlanListReport&&item.CommonReport.BusPlanListReport.length>0&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList&&item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0]">
                    {{item.CommonReport.BusPlanListReport[0].BusPlanOrderList[0].MainBusTypeStr}}
                  </template>
                </div>
              </td>
              <td v-for="(x,ww) in item.CommonReport.BusPlanListReport" style="vertical-align: top;">
                <div class="w100">
                  <template v-if="x.BusPlanOrderList" v-for="(childItem,childIndex) in x.BusPlanOrderList">
                    <p class="pDateStyle" v-if="childIndex==0"> {{childItem.PlanDateStr}}</p>
                    <p class="pDateStyle">
                      {{(childItem.AirportPickUpStr!=""?childItem.AirportPickUpStr:"") }}
                      <span style="color: #4BCA81;" v-if="(childItem.AirportPickUpStr!='')">√</span>
                      <span style="color: #E95252;" v-else>X</span>
                      <template v-if="x.BusPlanOrderList.length>1 && x.BusPlanOrderList.length-1!=childIndex">
                        <br />
                      </template>
                    </p>
                  </template>
                </div>
              </td>
              <td v-for="is in item.isCha"></td>
              <td>
                <div class="w80 fbold fz16">
                  <span style="color: #E95252;" v-if="item.CommonReport.BusOrderState==-1">X</span>
                  <span style="color: #ff6600;" v-else-if="item.CommonReport.BusOrderState==0">O</span>
                  <span style="color: #4BCA81;" v-else-if="item.CommonReport.BusOrderState==1">√</span></div>
              </td>
              <td>
                <div class="w150">
                  {{GetTotalPrice(item.CommonReport.BusPlanListReport,item.CommonReport.HouseStatistics.RealityNum)}}
                </div>
              </td>
              <td>
                <div class="w100">
                  {{GetPeiChe(item.CommonReport.BusPlanListReport)}}
                </div>
              </td>
              <td :rowspan="2*outItem.StaticsReportList.length" v-if='index==0'>
                <div class="w100 link">
                  <span @click="goUrlX('BusInfo',item,outItem,'车配信息')">详情</span>
                  <span @click="GoDownLoad(outItem)">手配书</span>
                </div>
              </td>
            </tr>
            <tr>
              <td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
                <div class="link">
                  <p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
                  <div v-show="item.DMCRemark!=''" class="colorE95252">地接备注:{{item.DMCRemark}}</div>
                  <div v-show="item.OPRemark!=''" class="colorE95252"> OP备注(对外):{{item.OPRemark}}</div>
                  <div v-show="item.OPInnerRemark!=''" class="colorE95252">OP备注(对内):{{item.OPInnerRemark}}</div>
                </div>
              </td>
            </tr>
          </template>
        </tbody>
      </table>
    </div>
    <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
      layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination>
  </div>
</template>

<script>
  import commonHotelInfo from "../commonPage/commonHotelInfo.vue";
  export default {
    data() {
      return {
        userInfo: {}, //用户信息
        loading: false,
        currentPage: 1,
        total: 0,
        msg: {
          pageIndex: 1,
          pageSize: 10,
          SelectType: 4,
          LineId: 0,
          PlaceID: 0,
          LineteamId: 0,
          StartDate: '',
          EndDate: '',
          PriceStatus: "0",
          CombinationNum: ""
        },
        queryCommonData: {
          PlaceList: [],
          LineList: [],
          LineTeamList: [],
        },
        thLengthTitle: [],
        DataList: [],
        colspanTotal: 0,
        isCha: 0,
        boxHeight: 0,
        showHotelObj: {
          showPrice: false, //是否显示价格
          showPay: false, //是否显示支付方式
          showZhan: false, //占房时间
          showBtnList: false, //是否下载、确认按钮
          ShowTaxType: false, //显示税入税别
          ShowRebateRatio: false, //显示返佣比列
          ShowSupplier: false, //是否显示供应商
          showCaozuoTime: false, //操作时间
          colspanLength: 6 //跨行
        }
      }
    },
    components: {
      commonHotelInfo
    },
    methods: {
      getLineList() {
        this.apipost("line_post_GetAllList", {}, res => {
          if (res.data.resultCode == 1) {
            this.queryCommonData.LineList = res.data.data;
            this.queryCommonData.PlaceList = []
            this.queryCommonData.LineTeamList = []
          } else {
            this.Error(res.data.message);
          }
        });
      },
      //获取目的地列表
      getLinePlaceList() {
        this.msg.PlaceID = 0;
        this.msg.LineteamId = 0;
        let msg = {
          lineID: this.msg.LineId,
        }
        this.apipost('team_post_GetLinePlace', msg, res => {
          if (res.data.resultCode == 1) {
            this.queryCommonData.PlaceList = res.data.data
            this.queryCommonData.LineTeamList = []
          }
        })
      },
      //获取系列列表
      getLineTeamList() {
        this.msg.LineteamId = 0
        let msg = {
          lineID: this.msg.LineId,
          placeID: this.msg.PlaceID,
          isTOOP: 1
        }
        this.apipost('team_post_GetList', msg, res => {
          if (res.data.resultCode == 1) {
            this.queryCommonData.LineTeamList = res.data.data
          }
        })
      },
      GetTotalPrice(obj) { //车费总价
        let totalPrice = 0;
        obj.forEach(busInfo => {
          if (busInfo.BusPlanOrderList) {
            busInfo.BusPlanOrderList.forEach(subItem => {
              if (subItem.CostPrice != undefined) {
                totalPrice += subItem.CostPrice;
              }
            });
          }
        });
        return totalPrice;
      },

      GetPeiChe(obj) { //配车信息
        let jieji = "";
        let songji = "";
        let allStr = "";
        let DayNum = 0;
        obj.forEach((busInfo, index) => {
          if (index == 0) {
            if (busInfo.BusPlanOrderList) {
              busInfo.BusPlanOrderList.forEach(subItem => {
                if (subItem.AirportPickUpStr != "") {
                  jieji += subItem.AirportPickUpStr + ",";
                } else {
                  jieji += "接机,";
                }

              });
            }
          } else if (index == (obj.length - 1)) {
            if (busInfo.BusPlanOrderList) {
              busInfo.BusPlanOrderList.forEach(subItem => {
                if (subItem.AirportPickUpStr != "") {
                  songji += subItem.AirportPickUpStr + ",";
                } else {
                  songji += "送机,";
                }
              });
            }

          } else {
            DayNum += 1;
          }
        });
        if (parseInt(DayNum) > 0) {
          allStr += jieji.substring(0, jieji.lastIndexOf(',')) + "+" + DayNum + "天"
        }
        if (songji.length > 0) {
          allStr += "+" + songji.substring(0, songji.lastIndexOf(','))
        }
        return allStr;
      },
      GoDownLoad(item) {
        this.$router.push({
          name: "busHandBook",
          query: {
            "TCID": item.TCIDs,
            blank: 'y',
            tab: "手配依赖书"
          }
        })
      },
      goUrlX(path, obj, outItem, title) {
        this.$router.push({
          name: path,
          query: {
            "TCID": outItem.TCIDs,
            StartDate: obj.StartDateStr,
            DayNum: obj.DayNum,
            TotalNumber: obj.TotalSeat, //机位总数
            RealityYSeatNum: obj.CommonReport.HouseStatistics.RealityYSeatNum,
            RealityESeatNum: obj.CommonReport.HouseStatistics.RealityESeatNum,
            RealityFSeatNum: obj.CommonReport.HouseStatistics.RealityFSeatNum,
            LeaderName: obj.LeaderName,
            GuideName: obj.GuideName,
            NewCombinationNum: outItem.NewCombinationNum,
            blank: 'y',
            title: obj.Titles,
            TCNUMS: obj.TCNUMS,
            InOut: obj.InOut,
            RealityNum: obj.CommonReport.HouseStatistics.RealityNum,
            tab: title
          }
        })
      },
      goUrlR(path, obj, title) {
        this.$router.push({
          name: path,
          query: {
            "ID": obj,
            blank: 'y',
            tab: title
          }
        })
      },
      goUrlT(path, obj, title) {
        this.$router.push({
          name: path,
          query: {
            "id": obj,
            blank: 'y',
            tab: title
          }
        })
      },
      goUrl(path, obj, title) {
        this.$router.push({
          name: path,
          query: {
            "id": obj.TCIDS,
            'TCNUM': obj.TCNUMS,
            'flightTotal': obj.TotalSeat,
            'GuestNum': obj.CommonReport.HouseStatistics.RealityNum,
            'NewCombinationNum': obj.NewCombinationNum,
            blank: 'y',
            tab: title
          }
        })
      },
      handleCurrentChange(val) {
        this.msg.pageIndex = val;
        this.getList();
      },
      resetPageIndex() {
        this.msg.pageIndex = 1;
        this.currentPage = 1;
      },
      getList() {
        this.loading = true
        this.apipost('bus_Get_GetBusUniteCombinationNumService_V2', this.msg, res => {
          this.loading = false;
          if (res.data.resultCode == 1) {
            this.total = res.data.data.count;
            this.DataList = res.data.data.pageData.data;
            this.thLengthTitle = [];
            this.colspanTotal = res.data.data.pageData.columnsCount + 13;
            for (let i = 1; i <= res.data.data.pageData.columnsCount; i++) {
              this.thLengthTitle.push('第' + i + '天');
            }
            this.DataList.forEach(outItem => {
              outItem.StaticsReportList.forEach(item => {
                if (item.CommonReport.BusPlanListReport.length < res.data.data.pageData.data.length) {
                  item.isCha = res.data.data.pageData.columnsCount - item.CommonReport.BusPlanListReport
                    .length;
                } else {
                  item.isCha = 0;;
                }
              })
            })
            this.$forceUpdate();
          } else {
            this.Error(res.data.message);
          }
        }, err => {})
      },
    },
    mounted() {
      this.userInfo = this.getLocalStorage();
      if (this.userInfo.RB_Group_id == 2) {
        this.msg.LineId = 14;
      }
      let myDate = new Date();
      let nowDate =
        myDate.getFullYear() +
        "-" +
        parseInt(myDate.getMonth() + 1) +
        "-" +
        myDate.getDate();
      this.msg.StartDate = nowDate;

      let width = window.innerWidth - 50;
      let height = window.innerHeight - 65 - 210;
      this.boxHeight = height;
      this.offsetwidth = width;
      this.getList();
      this.getLineList();
    },
  }

</script>
<style>
  .splitTrCss td {
    background: #eee !important;
  }

  .busIconStyle>span {
    margin-right: 20px;
    font-weight: bold;
  }

  .busStatisticsTalbe {
    background: #ccc;
  }

  .busStatisticsTalbe tr th {
    background: #E6E6E6;
    height: 40px;
    font-size: 12px;
    color: #333;
  }

  .busStatisticsTalbe tr {
    background: #fff;
    text-align: center;
    height: 40px;
  }

  .busStatisticsTalbe tr td {
    font-size: 12px;
  }

  .busStatisticsTalbe tr td .pDateStyle {
    border-bottom: 1px solid #ccc;
    min-height: 24px;
    line-height: 24px;
    margin-top: 0;
    box-sizing: content-box;
    padding: 0 10px;
  }

  .busStatisticsTalbe tr td .pDateStyle:last-child {
    border-bottom: none;
  }

  .busStatisticsTalbe tr td .link p:hover {
    text-decoration: underline;
    cursor: pointer;
  }

  .busStatisticsTalbe tr td .link span:hover {
    text-decoration: underline;
    cursor: pointer;
  }

  .busStatistics_tripDetails {
    padding: 0;
    box-shadow: 0px 1px 3px 0px #dedede;
    max-height: 400px;
    overflow-y: auto;
  }

  .busStatistics_tripDetails .popper__arrow::after {
    border-bottom-color: #ededed !important;
  }

  .busStatistics_tripDetails table {
    padding: 10px 0 0 20px;
    background-color: #ededed;
    border-collapse: collapse;
    border: 1px solid #d2d2d2;
    font-size: 12px;
  }

  .busStatistics_tripDetails table th {
    background-color: #ededed;
    padding: 5px;
  }

  .busStatistics_tripDetails table td {
    background-color: #ffffff;
    padding: 9px 15px;
    color: #333333;
    border: 1px solid #d2d2d2;
  }

  .busStatistics_tripDetails table td._d_name {
    background-color: #ededed;
  }

  .busStatistics_tripDetails table ._color_666 {
    color: #666666;
  }

  .busStatistics_tripDetails table tr._color_666 th {
    padding: 9px 15px;
  }

  .Bus_HotelPop {
    overflow: auto;
    max-height: 350px;
  }

</style>