<style scoped>
.combottomDiv {
  width: inherit;
}

.lineMG .query_box {
  font-size: 12px;
  padding: 29px 0;
  padding-right: 30px;
  display: flex;
  justify-content: space-between;
}

.lineMG .el-switch.is-checked .el-switch__core {
  border-color: #4bca81;
  background-color: #4bca81;
}

.lineMG .addCompany {
  width: 440px;
  max-height: 600px;
}

.lineMG .addCompany .el-dialog__body {
  height: 486px;
  overflow: auto;
}

.lineMG .query_box div label {
  display: inline-block;
  min-width: 80px;
  text-align: right;
  font-style: normal;
  margin: 0 20px 0 0;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
}

input[type="number"] {
  -moz-appearance: textfield;
}

.lineType {
  width: 51px;
  height: 24px;
  display: inline-block;
  text-align: center;
  line-height: 24px;
  margin-top: 25px;
  border-radius: 4px;
  background-color: #ff9c00;
  color: #ffffff;
}

.lineMG .LMTable tr {
  height: 70px;
  text-align: center !important;
  background-color: #fff;
}

.comPanyNum {
  font-size: 14px;
  color: #333333;
  display: inline-block;
  font-weight: bold;
  cursor: pointer;
  margin-bottom: 5px;
  text-decoration: underline;
}

.comPanyNum:hover {
  color: #e95252;
}

.zhicai:first-child {
  margin-top: 23px;
}

.zhicai {
  color: #47bf8c;
}

.partCompany {
  padding: 0;
  box-shadow: 0px 1px 3px 0px #dedede;
}

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

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

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

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

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

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

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

.LineName {
  display: inline-block;
  width: 170px;
  margin: 30px 0 0 20px;
  text-align: left;
}

.lineMG .LM_Back {
  background-color: #f2f2f2;
}

.redType {
  color: #e95252;
}

.lineMG .tbDiv {
  overflow-y: auto;
}

.departListDiv {
  width: 100%;
  height: 200px;
  overflow-y: auto;
}

.lineMG .tbDiv::-webkit-scrollbar {
  width: 4px;
  height: 8px;
}

.lineMG .tbDiv::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
  border-radius: 4px;
  background: #ededed;
}

.lineMG .tbDiv::-webkit-scrollbar-thumb {
  border-radius: 4px;
  -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
  background: #c9c9c9;
}

.departListDiv::-webkit-scrollbar {
  width: 4px;
  height: 8px;
}

.departListDiv::-webkit-scrollbar-track {
  -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
  border-radius: 4px;
  background: #ededed;
}

.departListDiv::-webkit-scrollbar-thumb {
  border-radius: 4px;
  -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
  background: #c9c9c9;
}

.LMTable {
  width: 100%;
  font-size: 12px;
}

.lineMG .LMTable tr th {
  border-bottom: 1px solid #d1d1d1;
}

.lineMG .tbDiv .LMTable td {
  border-bottom: 1px solid #d1d1d1;
  border-right: 1px solid #d1d1d1;
  position: relative;
  text-align: center;
  padding: 5px;
  min-width: 250px;
}

.lineMG .tbDiv table {
  padding-right: 80px;
  margin-top: 10px;
  border-top: 1px solid #d1d1d1;
  border-left: 1px solid #d1d1d1;
  border-right: 1px solid #d1d1d1;
}

.upFentan {
  text-decoration: underline;
  cursor: pointer;
  position: absolute;
  right: 13px;
  top: 32%;
}

.subCountryList {
  width: 150px;
  text-align: left;
  display: inline-block;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  position: relative;
  top: 3px;
}

.lineMG ._addLineTB tr {
  height: 40px !important;
}

.saveCompanyBtn {
  margin-top: 20px;
}

.setItem {
  cursor: pointer;
  text-decoration: underline;
  position: absolute;
  right: 13px;
  top: 32%;
}

._LMComdiv {
  float: left;
  width: 32%;
  text-align: left;
  margin-top: 20px;
}

.LineRank {
  width: 24px;
  height: 24px;
  background-color: #2aaef2;
  border-radius: 50%;
  text-align: center;
  line-height: 24px;
  color: #fff;
  margin: 15px auto 5px;
}

.lineMG .joinDepart {
  display: inline-block;
  margin-right: 50px;
  text-align: left;
  float: left;
  width: 180px;
}

.lineMG .LM_Rank {
  text-align: center;
}

._LowDisMoney {
  text-align: left;
  margin: 20px 0 0 25px;
}

.LM_Btcontent {
  margin-left: 20px;
}

.LM_ul li {
  height: 78px;
  margin: 20px 0 0px 0px;
  transition: linear all 0.5s;
  background-color: #fff;
  font-size: 12px;
  border: 1px solid #dddddd;
  overflow: hidden;
  position: relative;
}

.LM_BTNList {
  margin-top: 25px;
}

.lineMG .el-button-group .el-button {
  padding: 5px;
}

.lineMG .LM_ul>li:hover {
  box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
  transition: all linear 0.5s;
}

.lineMG .el-date-editor.el-input,
.el-date-editor.el-input__inner {
  width: auto;
}

.SP_datePicker .el-input__inner {
  padding-right: 0 !important;
}

.SP_AddTicket {
  margin: 10px 10px 0 30px;
}
</style>
<template>
  <div class="flexOne lineMG">
    <div class="query-box">
      <ul>
        <li>
          <span>
            <em>时间</em>
            <el-date-picker class="w150" type="date" v-model='msg.QDate' value-format="yyyy-MM-dd" placeholder="">
            </el-date-picker>
          </span>
        </li>
        <li>
          <input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')"
            @click="resetPageIndex(), initDataTable()" />
          <input type="button" class="normalBtn" :value="$t('pub.addBtn')"
            @click="clearInfo(), isShowDIv = true, divTitle = '新增报价'" />
        </li>
      </ul>
    </div>
    <div class="commonContent" v-loading="loading">
      <ul class="LM_ul">
        <li v-for="(item, index) in tableData" :key="index">
          <el-row :gutter="10">
            <el-col :span="3">
              <span class="LineName">{{ item.StartDate }} 至 {{ item.EndDate }}</span>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>成本价</div>
                {{ item.CostPrice }}
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>库存</div>
                <div>{{ item.Inventory }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>B2B价格</div>
                <div>{{ item.B2BPrice }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>B2C价格</div>
                <div>{{ item.B2CPrice }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>内部价格</div>
                <div>{{ item.SalesPrice }}</div>
              </div>
            </el-col>
            <el-col :span="3">
              <div class="_LowDisMoney">
                <div>机场</div>
                <div>{{ item.AirportName }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>备注</div>
                <div>{{ item.Remark }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>币种</div>
                <div>{{ getCurrencyName(item.CurrencyId ) }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="_LowDisMoney">
                <div>汇率</div>
                <div>{{ item.CurrentRate }}</div>
              </div>
            </el-col>
            <el-col :span="2">
              <div class="LM_BTNList">
                <el-tooltip class="item" effect="dark" :content="$t('system.table_edit')" placement="top-start">
                  <el-button type="primary" circle icon="el-icon-edit"
                    @click="isShowDIv = true, divTitle = '修改报价', updateData(item)"></el-button>
                </el-tooltip>
                <el-tooltip class="item" effect="dark" :content="$t('system.table_delete')" placement="top-start">
                  <el-button type="danger" circle icon="el-icon-delete" @click="isdelete(item.Id)"></el-button>
                </el-tooltip>
              </div>
            </el-col>
          </el-row>
        </li>
      </ul>
      <div class="noData" v-show="noData">
        {{ $t('system.content_noData') }}
      </div>
    </div>
    <div class="combottomDiv" v-if="isShowDIv">
      <div class="combottomTitle">{{ divTitle }}</div>
      <div class="">
        <el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="100px">
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_StartDate')" prop="StartDate">
              <el-date-picker class="SP_datePicker" :clearable="false" v-model='addMsg.StartDate' type="date"
                :picker-options="addPickerBeginDateBefore" value-format="yyyy-MM-dd" placeholder="">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_EndDate')" prop="EndDate">
              <el-date-picker class="SP_datePicker" :clearable="false" v-model='addMsg.EndDate' type="date"
                value-format="yyyy-MM-dd" :picker-options="addPickerBeginDateAfter" placeholder="">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_CostPrice')" prop="CostPrice">
              <el-input v-model="addMsg.CostPrice" @keyup.native="checkPrice(addMsg, 'CostPrice')"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_Inventory')" prop="Inventory">
              <el-input type="text" maxlength="8" v-model="addMsg.Inventory"
                @keyup.native="checkInteger(addMsg, 'Inventory')"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_B2BPrice')" prop="B2BPrice">
              <el-input type="text" v-model="addMsg.B2BPrice" @keyup.native="checkPrice(addMsg, 'B2BPrice')"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_B2CPrice')" prop="B2CPrice">
              <el-input type="text" v-model="addMsg.B2CPrice" @keyup.native="checkPrice(addMsg, 'B2CPrice')"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_SalesPrice')" prop="SalesPrice">
              <el-input type="text" v-model="addMsg.SalesPrice"
                @keyup.native="checkPrice(addMsg, 'SalesPrice')"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item label="机场" prop="AirportId" v-if="dataInfo.CarType == 1 || dataInfo.CarType == 2">
              <el-select v-model="addMsg.AirportId" filterable placeholder="请选择机场">
                <!-- <el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option> -->
                <el-option v-for="item in AirportList" :key="item.AirportId" :label="item.AirportName"
                  :value="item.AirportId"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_Currency')" prop="CurrencyId">
              <el-select placeholder="请选币种" filterable @change="getCurrentRate(addMsg.CurrencyId)"
                v-model="addMsg.CurrencyId">
                <el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
                <el-option v-for="item in allCurrencyList" :key="item.ID" :label="item.Name" :value="item.ID">
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <el-form-item :label="$t('hotel.hotel_CurrentRate')" prop="CurrentRate">
              <el-input v-model='addMsg.CurrentRate' @keyup.native="checkRate(addMsg, 'CurrentRate')"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item :label="$t('hotel.hotel_remark')" prop="Remark">
              <el-input type="textarea" v-model="addMsg.Remark"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="4">
            <div style="position: absolute;right: 10px;top: 12px;">
              <button type="success" class="normalBtn subPrice" @click="submitForm('addMsg')">{{ comBtnText }}</button>
              <input type="button" class="normalBtn" @click="isShowDIv = false" value="取消" />
            </div>
          </el-col>
        </el-form>
      </div>
    </div>
    <el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
      layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="msg.total">
    </el-pagination>
  </div>
</template>
<script>
export default {
  data() {
    var validateCurrent = (rule, value, callback) => {
      if (value === 0) {
        callback(new Error("请选择币种"));
      }
    };
    return {
      querys: null,
      //供应商列表
      AirportList: [],
      //门票编号
      ProductId: "",
      //景点编号
      CarId: "",
      //是否自定(自定-不需要选择供应商,)
      IsSelfBook: false,
      //提交报价中
      comBtnText: "保存",
      //新增数据
      addMsg: {
        ID: 0,
        CarId: 0,
        ProductId: 0,
        StartDate: "",
        EndDate: "",
        Inventory: 0,//库存数量
        B2BPrice: 0.0,//B2B价格
        B2CPrice: 0.0,//B2C价格
        SalesPrice: 0.0,//内部价格
        Remark: "",
        CostPrice: 0.0,//成本价格

        CurrencyId: 0,//币种
        CurrentRate: 0.0,//汇率
        AirportId: '',//机场ID (接送机才有)
      },
      rules: {
        //表单必填验证
        StartDate: [
          {
            required: true,
            message: "开始日期必填",
            trigger: "change"
          }
        ],
        EndDate: [
          {
            required: true,
            message: "结束日期必填",
            trigger: "change"
          }
        ],
        CostPrice: [
          {
            required: true,
            message: "请输入成本价",
            trigger: "change"
          },
          {
            pattern: this.$commonUtils.Regex.el_Isdecimal,
            message: "请输入两位小数"
          }
        ],
        Inventory: [
          {
            required: true,
            message: "请输入库存",
            trigger: "change"
          },
          {
            pattern: this.$commonUtils.Regex.el_isInteger,
            message: "请输入正确的数字"
          }
        ],
        B2BPrice: [
          {
            required: true,
            message: "请输入B2B价格",
            trigger: "change"
          },
          {
            pattern: this.$commonUtils.Regex.el_Isdecimal,
            message: "请输入两位小数"
          }
        ],
        B2CPrice: [
          {
            required: true,
            message: "请输入B2C价格",
            trigger: "change"
          },
          {
            pattern: this.$commonUtils.Regex.el_Isdecimal,
            message: "请输入两位小数"
          }
        ],
        SalesPrice: [
          {
            required: true,
            message: "请输入成本价格",
            trigger: "change"
          },
          {
            pattern: this.$commonUtils.Regex.el_Isdecimal,
            message: "请输入两位小数"
          }
        ],
        AirportId: [
          {
            required: true,
            message: "请选择机场",
            trigger: "change"
          },
        ],
        CurrencyId: [
          // {
          //   validator:validateCurrent,
          //   trigger: "change"
          // }
        ],
        CurrentRate: [
          {
            required: true,
            message: "请输输入汇率",
            trigger: "change"
          }
        ]
      },
      msg: {
        pageIndex: 1,
        pageSize: 14,
        CarId: 0,
        ProductId: 0,
        QDate: "",
        // EndDate: "",
        total: 0,
        currentPage: 1
      },
      tableData: [],
      isShowDIv: false,
      loading: true,
      noData: false,
      SelectDefaultValue: 0,
      //所有币种
      allCurrencyList: [],
      addPickerBeginDateBefore: {
        disabledDate: time => {
          let endTime = new Date(this.addMsg.EndDate);
          return endTime.getTime() < time.getTime();
        }
      },
      addPickerBeginDateAfter: {
        disabledDate: time => {
          // let startTime = new Date(this.addMsg.StartDate);
          let startTime = new Date(this.getBeforeDate(1,new Date(this.addMsg.StartDate).Format("yyyy-MM-dd")));
          return startTime.getTime() >= time.getTime();
        }
      },
      dataInfo: null
    };
  },
  methods: {
    //初始化列表数据
    initDataTable() {
      this.loading = true;
      this.apipost(
        "CarSingle_post_GetCarSinglePricePageList",
        this.msg,
        res => {
          this.loading = false;
          if (res.data.resultCode == 1) {
            this.msg.total = res.data.data.count;
            this.tableData = res.data.data.pageData;
            this.noData = !this.msg.total > 0;
          }
        },
        null
      );
    },
    resetPageIndex() {
      this.msg.pageIndex = 1;
      this.msg.currentPage = 1;
    },
    handleCurrentChange(val) {
      this.msg.pageIndex = val;
      this.initDataTable();
    },
    //重置信息
    clearInfo() {
      this.addMsg.Id = 0;
      this.addMsg.Inventory = "";
      this.addMsg.B2BPrice = "";
      this.addMsg.B2CPrice = "";
      this.addMsg.SalesPrice = "";
      this.addMsg.Remark = "";
      this.addMsg.CostPrice = "";
      this.addMsg.StartDate = "";
      this.addMsg.EndDate = "";
      this.addMsg.CurrencyId = 0;
      this.addMsg.CurrentRate = "";
      this.addMsg.AirportId = "";
    },
    //修改报价信息
    updateData(item) {
      this.addMsg = {
        Id: item.Id,
        CarId: this.CarId,
        ProductId: this.ProductId,
        StartDate: item.StartDate,
        EndDate: item.EndDate,
        Inventory: item.Inventory,//库存数量
        B2BPrice: item.B2BPrice,//B2B价格
        B2CPrice: item.B2CPrice,//B2C价格
        SalesPrice: item.SalesPrice,//内部价格
        Remark: item.Remark,
        CostPrice: item.CostPrice,//成本价格

        CurrencyId: item.CurrencyId,//币种
        CurrentRate: item.CurrentRate,//汇率
        AirportId: item.AirportId,
      }
    },
    //获取所有币种
    getAllCurrency() {
      this.apipost(
        "financeinfo_post_GetList",
        {},
        res => {
          if (res.data.resultCode == 1) {
            this.allCurrencyList = res.data.data;
          }
        },
        err => { }
      );
    },
    //获取当前下拉选中币种汇率
    getCurrentRate(currencyId) {
      this.addMsg.CurrentRate = 0.0;
      this.allCurrencyList.forEach(x => {
        if (x.ID == currencyId) {
          this.addMsg.CurrentRate = x.Rate;
        }
      });
    },
    //获取去币种名
    getCurrencyName(currencyId) {
      let currencyName = "";
      this.allCurrencyList.forEach(x => {
        if (x.ID == currencyId) {
          currencyName = x.Name + "(" + x.Code + ")";
        }
      });
      return currencyName;
    },
    //HK新增查询条件
    initAirport() {
      this.apipost(
        "CarSingle_post_GetCarSingleAirportList",
        { ProductId: this.ProductId },
        response => {
          if (response.data.resultCode == 1) {
            this.AirportList = response.data.data;
          }
        },
        null
      );
    },
    // 获取产品详情
    getInfo() {
      this.apipost(
        "CarSingle_post_GetCarSingleProductInfo",
        {
          ProductId: this.ProductId
        },
        res => {
          if (res.data.resultCode == 1) {
            this.dataInfo = res.data.data;
          }
        }
      );
    },
    //提交景点报价
    hotelOfferSet() {
      let that = this
      this.addMsg.ProductId = this.ProductId;
      this.addMsg.CarId = this.CarId;
      let msg = []
      msg.push(this.addMsg)
      this.apipost(
        "CarSingle_post_SetCarSinglePrice",
        msg,
        res => {
          if (res.data.resultCode == 1) {
            that.initDataTable();
            that.Success("保存成功!");
            that.isShowDIv = false;
            that.resetForm("addMsg");
            // this.goUrl('CharteringProductList', this.CarId);
          } else {
            this.Error(res.data.message);
          }
        },
        null
      );
    },
    isdelete(Id) {
      var that = this;
      that.Confirm("是否删除?", function () {
        that.apipost(
          "ticketcouponsprice_post_Remove",
          {
            PriceId: Id
          },
          res => {
            if (res.data.resultCode == 1) {
              that.Success("删除成功!");
              that.initDataTable();
              // that.goUrl('ticketManagement', that.CarId);
            } else {
              that.Error(res.data.message);
            }
          },
          null
        );
      });
    },
    //提交创建、修改表单
    submitForm(addMsg) {
      let that = this;
      that.$refs[addMsg].validate(valid => {
        if (valid) {
          that.hotelOfferSet();
        } else {
          return false;
        }
      });
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    //获取供应商是否显示
    getSuplier() {
      this.apipost(
        "ticketcoupons_post_Get",
        {
          ID: this.CarId
        },
        res => {
          if (res.data.resultCode == 1) {
            this.IsSelfBook = res.data.data.IsSelfBook;
          }
        }
      );
    },
    goUrl(path, id) {
      this.$router.push({
        name: path,
        query: {
          id: id
        }
      });
    },
  },
  mounted() {
    if (this.$route.query && this.$route.query.obj) {
      this.querys = JSON.parse(this.$route.query.obj)
      this.CarId = this.querys.CarId;
      this.ProductId = this.querys.ProductId;
      this.msg.CarId = this.querys.CarId;
      this.msg.ProductId = this.querys.ProductId;
    }

    this.getSuplier();
    this.initAirport();
    this.getAllCurrency();
    this.initDataTable();
    this.getInfo()
  }
};
</script>