<template>
  <div class="DirectQuotation clearfix" v-loading="loading">
    <DirectQuotation ref="QuotationPrice" :postConfig="postData" :dayCostPrice="dayCostPriceList"
      :otherPrice="otherPrice" :teamPrice="teamPrice" :LineList="LineList" :CostCurrencyList="CostCurrencyList"
      :CostNumberList="CostNumberList" :CurrencyNumberListExt="CurrencyNumberListExt"></DirectQuotation>
    <div class="btnFixedDiv">
      <div class="toTop">
        <i class="iconfont icon-huidaodingbu"></i>
      </div>
      <div class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="SaveData(2)">提交</div>
      <div class="DTSaveBtn" style="display:none;">复制</div>
      <div class="DTSaveBtn caogao" :class="{'disClick':!isSubmit}" @click="SaveData(1)">
        <span>保存</span>
        <span>草稿</span>
      </div>
    </div>
  </div>
</template>
<script>
  import DirectQuotation from "../TravelNewQuotation/DirectNewQuotation";

  export default {
    data() {
      return {
        ConfigID: 0,
        //基本配置
        postData: {
          ID: 0,
          StartCityId: 0,
          LineId: 0,
          LineteamId: 0,
          Title: "",
          IsOrder: 1,
          IsSubstitution: 1,
          IsB2B: 1,
          IsB2C: 1,
          FSeat: 0,
          CSeat: 0,
          YSeat: 0,
          //最低成团人数
          LowNum: 0,
          //OP备注
          OpRemark: "",
          //产品经理备注
          ProductRecommend: "",
          IsDirect: 0, //是否直采(0-否-1-是)【全部默认非直采】
          PriceIsDirect: 1, //是否直采报价(1-否-2-是)【全部默认非直采】
          PDFAlias: "", //pdf别名
          ImgCover: "", //封面图
          DayNum: 0, //天数
          NightNum: 0, //晚数
          StartCityId: 0,
          ReturnArriveCityId: 0, //返回抵达城市
          CustomerName: "", //客户名称
          TeamType: 0, //团队类型
          TravelState: 1, //团控状态(1-草稿,2-待审核,3-审核通过,4-审核拒绝,5已撤销)
          OutBranchId: -1, //出团公司
          OutDateTime: "", //出发时间
          OfferPayType: 0, //报价单付款方式
          SaleOfferPayType:0,//售价付款方式
        },
        dayCostPriceList: [], //报价列表
        isSubmit: true,
        otherPrice: {
          CostId: 0, //主键编号
          ConfigID: 0, //配置编号
          OfferId: 0, //报价单编号
          InlandAirTicketCurrency: 0, //内陆段机位币种
          InlandAirTicketMoney: 0, //内陆段机位金额(每人)
          InlandShipTicketCurrency: 0, //内陆段船票币种
          InlandShipTicketMoney: 0, //内陆段船票金额(每人)
          InlandTrainTicketCurrency: 0, //内陆段火车币种
          InlandTrainTicketMoney: 0, //内陆段火车金额(每人)
          VisaMoney: 0, //签证费用(每人)
          SafeMoney: 0, //保险费用(每人)
          LeaderTripMoney: 0, //领队小费
          DriverGuideMoney: 0, //司机小费
          SalesCommissionMoney: 0, //销售提成
          OfficeCommissionMoney: 0, //作业处提成
          TripMoney: 0, //小费
          GuidePeopleMoney: 0, //导游人头费
          AirTicketMoeny: 0, //机票成本费用
          KBMoney: 0, //KB人头费
          AirTicketShareMoney: 0, //机票分摊费用
          TicketShareMoney: 0, //门票分摊费用,
          SingleRoomShareMoney: 0, //单房差分摊费用
          InlandTrafficShareMoney: 0, //内陆段交通分摊费用
          OtherShareMoney: 0, //杂费分摊费用
          OtherRemark: "", //其他价格备注
          VisaMoneyCurrencyId: 0, //签证费币种
          SafeMoneyCurrencyId: 0, //保险费币种
          LeaderTripMoneyCurrencyId: 0, //领队小费币种
          DriverGuideMoneyCurrencyId: 0, //司机小费币种
          LeaderGuideDriveZhuSu: 0, //领队导游住宿费
          GuideMoneyCurrencyId: 0, //导游小费币种
          GuideMoney: 0, //导游小费
          InternationalAirTicket: 0, //国际段机票
          InternationalAirTicketCurrency: 0, //国际段机票币种
          GuideComplement: 0, //导游回补
          TipComplement: 0, //小费回补
        },
        CostCurrencyList: [], //选择的币种
        CostNumberList: [], //人数
        CurrencyNumberListExt: [], //币种和人数列表
        //团报价信息
        teamPrice: {
          QuotationId: 0, //主键编号
          TeamId: 0, //团期编号
          ConfigID: 0, //团队配置编号
          OfferId: 0, //报价编号
          B2BMemberPrice: 0, //同业会员价
          B2BPrice: 0, //同业价格
          B2CMemberPrice: 0, //直客会员价,
          B2CPrice: 0, //直客价格
          ChildNeedPrice: 0, //小孩占床价格,
          ChildNoNeedPrice: 0, //小孩不占床价格
          BabyPrice: 0, //婴儿价格
          BabyChargePrice: 0, //婴儿附加费
          OldManChargePrice: 0, //老人附加费
          VisaPrice: 0, //签证
          OtherPrice: 0, //杂费
          SingleRoomPrice: 0, //单房差
          SingleDMCPrice: 0, //单地接
          RebatePrice: 0, //同行返佣
          DiscountPrice: 0, //早鸟优惠
          IsSupportChildren: 1, //是否支持儿童出游(1-支持,2-不支持)
          SafeMoney: 0, //保险费
          PeopleNumber: 0, //人数
          AirticketMoney: 0, //机票费用
          BackVisaPrice: 0, //退签证费
          BackSafeMoney: 0, //退保险费
          ContractUrl: "", //合同地址
          PriceRemark: "", //定价备注
          ContractArray: [],
        },
        LineList: [], //线路列表
        loading: false
      };
    },
    methods: {
      //表单提交
      submitForm(type) {
        this.$refs["QuotationPrice"].submitForm(type);
      },
      //保存数据
      SaveData(type) {
        var currencyNumList = [];
        if (this.CurrencyNumberListExt != null && this.CurrencyNumberListExt.length > 0) {
          this.CurrencyNumberListExt.forEach((item, index) => {
            item.currencyNumberList.forEach(subItem => {
              currencyNumList.push(subItem);
            });
          });
        }
        this.postData.TravelState = type;
        var nObj = {
          config: this.postData,
          dayCostPriceList: this.dayCostPriceList,
          otherPrice: this.otherPrice,
          teamPrice: this.teamPrice,
          CostCurrencyList: this.CostCurrencyList,
          CostNumberList: this.CostNumberList,
          CurrencyNumberListExt: currencyNumList
        };
        this.loading = true;
        this.apipost(
          "travel_post_SetConfigOffer_V2", nObj,
          res => {
            this.loading = false;
            if (res.data.resultCode == 1) {
              this.Success(res.data.message);
              if (this.postData.TeamType == 1) {
                this.goUrl('newQuotation2');
              } else {
                this.goUrl('newQuotation');
              }
            } else {
              this.Error(res.data.message);
            }
          },
          err => {}
        );
      },
      goUrl(path) {
        this.$router.push({
          path: path,
          query: {
            cache: true
          }
        });
      },
      getPostData() {
        let configId = this.$route.query.configId;
        let offerId = 0;
        if (this.$route.query.offerid) {
          offerId = this.$route.query.offerid;
        }
        let msg = {
          ID: configId,
          offerId: offerId
        };
        this.apipost(
          "travel_get_GetMyTravelInfo_V2",
          msg,
          res => {
            if (res.data.resultCode == 1) {
              var tempData = res.data.data;
              if (tempData.ID && tempData.ID > 0) {
                this.postData.ID = tempData.ID;
              }
              if (tempData.LineId && tempData.LineId > 0) {
                this.postData.LineId = tempData.LineId;
              }
              if (tempData.LineteamId && tempData.LineteamId > 0) {
                this.postData.LineteamId = tempData.LineteamId;
              }
              if (tempData.CSeat && tempData.CSeat > 0) {
                this.postData.CSeat = tempData.CSeat;
              }
              if (tempData.FSeat && tempData.FSeat > 0) {
                this.postData.FSeat = tempData.FSeat;
              }
              if (tempData.YSeat && tempData.YSeat > 0) {
                this.postData.YSeat = tempData.YSeat;
              }
              if (tempData.LowNum && tempData.LowNum > 0) {
                this.postData.LowNum = tempData.LowNum;
              }
              if (tempData.Title && tempData.Title != '') {
                this.postData.Title = tempData.Title;
              }
              if (tempData.DayNum && tempData.DayNum > 0) {
                this.postData.DayNum = tempData.DayNum;
              }
              if (tempData.NightNum && tempData.NightNum > 0) {
                this.postData.NightNum = tempData.NightNum;
              }
              this.postData.CustomerName = tempData.CustomerName;
              this.postData.OutBranchId = tempData.OutBranchId;
              this.postData.OutDateTime = tempData.OutDateTime;
              this.postData.OfferPayType = tempData.OfferPayType;
              this.postData.SaleOfferPayType=tempData.SaleOfferPayType;
              this.LineList = tempData.LineList;
              if (tempData.dayCostPriceList && tempData.dayCostPriceList != null && tempData.dayCostPriceList.length >
                0) {
                this.dayCostPriceList = tempData.dayCostPriceList;
              }

              if (tempData.otherPrice) {
                this.otherPrice = tempData.otherPrice;
              }
              if (tempData.teamPrice) {
                this.teamPrice = tempData.teamPrice;
              }
              if (tempData.CostNumberList && tempData.CostNumberList != null && tempData.CostNumberList.length > 0) {
                this.CostNumberList = tempData.CostNumberList;
              }
              if (tempData.CostCurrencyList && tempData.CostCurrencyList != null && tempData.CostCurrencyList.length >
                0) {
                this.CostCurrencyList = tempData.CostCurrencyList;
              }
              if (tempData.CurrencyNumberListExt && tempData.CurrencyNumberListExt != null && tempData
                .CurrencyNumberListExt.length > 0) {
                this.CurrencyNumberListExt = tempData.CurrencyNumberListExt;
              }
              if (this.CostCurrencyList && this.CostCurrencyList.length > 0 &&
                this.CurrencyNumberListExt) {
                this.CostCurrencyList.forEach(item => {
                  let currencyNumberItem = {
                    Key: item.CurrencyId,
                    currencyNumberList: []
                  };
                  if (this.CurrencyNumberListExt.length == 0) {
                    this.CurrencyNumberListExt.push(currencyNumberItem);
                  }
                });
              }
            } else {
              this.Error(res.data.message);
            }
          },
          err => {}
        );
      },
    },
    created() {
      if (this.$route.query.TeamType) {
        this.postData.TeamType = this.$route.query.TeamType;
      }
      this.getPostData();
    },
    components: {
      DirectQuotation: DirectQuotation
    }
  };

</script>