<template>
  <!-- 新增运输作业页面 -->
  <div id="contractDetails">
    <page-title>运输预约</page-title>
    <div class="orderType from">
      <span class="text">订单类别：</span>
      <el-select
        class="select"
        v-model="orderType"
        placeholder="请选择"
      >
        <el-option
          v-for="item in orderTypeList"
          :key="item.value"
          :label="item.label"
          :value="item.value"
        >
        </el-option>
      </el-select>
      <span class="span"></span>
    </div>
    <div class="material from">
      <span class="text">物资：</span>
      <el-input class="input" v-model="materialName" disabled> </el-input>
      <el-button type="primary" @click="ondrawer(1)">浏览</el-button>
    </div>

    <div class="forwardingUnit from">
      <span class="text">发货单位：</span>
      <el-input class="input" v-model="supplierName" disabled> </el-input>
      <el-button type="primary" @click="ondrawer(2)">浏览</el-button>
    </div>
    <div class="remark from">
      <span class="text">船名：</span>
      <el-input class="input" v-model="remark" @blur="onBlur"> </el-input>
      <span class="span"></span>
    </div>
    <div class="forwardingUnit from">
      <span class="text">卸货点：</span>
      <el-input class="input" v-model="unloadPointName" disabled> </el-input>
      <el-button type="primary" @click="ondrawer(4)">浏览</el-button>
    </div>
    <div class="lineId from">
      <span class="text">选择路线：</span>
      <el-input class="input" v-model="lineName" disabled> </el-input>
      <el-button type="primary" @click="ondrawer(5)">浏览</el-button>
    </div>
    <div class="lineId from">
      <span class="text">采购订单号：</span>
      <el-input class="input" v-model="purchaseOrderNo" disabled> </el-input>
      <el-button type="primary" @click="ondrawer(6)">浏览</el-button>
    </div>
    <div class="contractTitle from">
      <dil-form :formId="219" v-model="form1"></dil-form>
    </div>
    <div class="truckList1">
      <div class="truckList from">
        <span class="text">选择车辆：</span>
        <el-button type="primary" @click="ondrawer(3)" class="truckBtn"
          >浏览</el-button
        >
      </div>
    </div>
    <div class="lineId from">
      <span class="text">该批车辆是否一车多趟：</span>
      <el-switch
        v-model="isMoreTrips"
        active-text="是"
        inactive-text="否">
      </el-switch>
    </div>
    <div class="truckListTable">
      <el-table
        :data="selectionList"
        border
        style="width: 100%"
        highlight-current-row
      >
        <el-table-column type="index" width="50" label="序号" align="center">
        </el-table-column>
        <el-table-column
          v-for="(item, i) in tableTop"
          :key="i"
          :prop="item.prop"
          :label="item.label"
          align="center"
          show-overflow-tooltip
        >
          <template slot="scope" v-if="item.th_name !== '重量'">
            <span>{{ item.label }}</span>
          </template>
          <!-- 插入输入框 -->
          <template slot-scope="scope">
            <template v-if="item.slot">
              <template v-if="item.prop == 'orderMaterialWeight'">
                <el-input
                  style="width: 250px"
                  v-model.number="scope.row.orderMaterialWeight"
                ></el-input>
              </template>
            </template>
            <template v-else>
              <span>{{ scope.row[item.prop] }}</span>
            </template>
          </template>
        </el-table-column>

        <el-table-column fixed="right" label="操作" width="100">
          <template slot-scope="scope">
            <el-button type="text" size="small" @click="onClick(scope.$index)"
              >删除</el-button
            >
          </template>
        </el-table-column>
      </el-table>
    </div>
    <!-- 模态窗口 -->
    <el-drawer :visible.sync="drawer" :direction="direction" size="40%">
      <div class="drawer_top">
        <el-input
          placeholder="请输入内容"
          v-model="input"
          style="margin-top: 10px; margin-right: 10px; width: 250px"
          clearable
        ></el-input>
        <el-button type="primary" class="btn" @click="onclick">
          <i class="el-icon-search"></i>查询
        </el-button>
      </div>
      <div class="drawer_table1" v-show="onDrawerNumber == 1">
        <dilTable
          v-bind.sync="frist"
          @radio-change="currentRadioChange1"
          :isKuang="isKuang"
          @func="func"
          :isHeigth="isHeigth"
          :shiyHeigth="shiyHeigth"
          :drawer="drawer"
        ></dilTable>
      </div>
      <div v-show="onDrawerNumber == 2">
        <dilTable
          v-bind.sync="secend"
          @radio-change="currentRadioChange2"
          :isKuang="isKuang"
          @func="func"
          :isHeigth="isHeigth1"
          :shiyHeigth="shiyHeigth1"
          :drawer="drawer"
        ></dilTable>
      </div>
      <div v-show="onDrawerNumber == 3">
        <dilTable
          v-bind.sync="third"
          @selection-change="currentRadioChange3"
          :isKuang="isKuang"
          @func="func"
          :isHeigth="isHeigth2"
          :shiyHeigth="shiyHeigth2"
          :drawer="drawer"
        ></dilTable>
      </div>
      <div v-show="onDrawerNumber == 4">
        <dilTable
          v-bind.sync="unloadPoint"
          @radio-change="currentRadioChange4"
          :isKuang="isKuang"
          @func="func"
          :isHeigth="isHeigth3"
          :shiyHeigth="shiyHeigth3"
          :drawer="drawer"
        ></dilTable>
      </div>
      <div v-show="onDrawerNumber == 5">
        <dilTable
          v-bind.sync="line"
          @radio-change="currentRadioChange5"
          :isKuang="isKuang"
          @func="func"
          :isHeigth="isHeigth4"
          :shiyHeigth="shiyHeigth4"
          :drawer="drawer"
        ></dilTable>
      </div>
      <div v-show="onDrawerNumber == 6">
        <dilTable
          v-bind.sync="purchaseOrder"
          @radio-change="currentRadioChange6"
          :isKuang="isKuang"
          @func="func"
          :isHeigth="isHeigth5"
          :shiyHeigth="shiyHeigth5"
          :drawer="drawer"
        ></dilTable>
      </div>
    </el-drawer>
    <div class="button_box">
      <el-button @click="onClickCancel">返回</el-button>
      <el-button type="primary" @click="onClickConfirm">确认</el-button>
    </div>
  </div>
</template>
<script>
import PageTitle from "@/components/Page/Title";
import { sjTime, isNumber, isIntegerNumber } from "@/utils/sharedJsFile";
import { getCookie } from "@/utils/util.js";
export default {
  components: { PageTitle },
  data() {
    return {
       //限定first
      isHeigth:true,
      shiyHeigth:140,
      //限定second
      isHeigth1:true,
      shiyHeigth1:140,
      //限定third
      isHeigth2:true,
      shiyHeigth2:140,
      //限定unloadPoint
      isHeigth3:true,
      shiyHeigth3:140,
      //限定line
      isHeigth4:true,
      shiyHeigth4:140,
      //限定purchaseOrder
      isHeigth5:true,
      shiyHeigth5:140,
      isKuang: false,
      isKuang:false,
      //采购订单号
      purchaseOrderNo:'',
      isMoreTrips:false,
      //订单类别
      orderTypeList: [
        {
          value: 17,
          label: "老厂区",
        },
        {
          value: 18,
          label: "新厂区",
        },
      ],
      // 线路名称
      lineName: "",
      //线路id
      lineId: null,
      // 件数与重量的开关
      value: false,
      //船名
      remark: null,
      // 车辆表格表头
      tableTop: [
        {
          prop: "capacityNumber",
          label: "车牌号",
          width: "140",
        },
        {
          prop: "carrierName",
          label: "承运商",
          width: "140",
        },
        {
          prop: "orderMaterialWeight",
          label: "重量",
          slot: true,
        },
      ],
      //车辆表格数据
      selectionList: [],
      // 表单
      form1: {},
      //采购订单id
      purchaseOrderId: "",
      //物资名称
      materialName: "",
      //发货单位名称
      supplierName: "",
      //发货单位id
      supplierId: null,
      //物资id
      materialId: null,
      //是否需要打开模态窗口
      drawer: false,
      //卸货点id
      unloadPointId: "",
      //卸货点名称
      unloadPointName: "",
      //订单类别
      orderType: null,
      onDrawerNumber: 1,
      direction: "rtl",
      input: "",
      frist: {
        requestUrl: "",
        selectionType: "radio",
        mapList1: [],
      },
      secend: {
        requestUrl:"",
        selectionType: "radio",
        mapList2: [],
      },
      third: {
        requestUrl: "",
        selectionType: "select",
        mapList3: [],
      },
      unloadPoint: {
        requestUrl: "",
        selectionType: "radio",
      },
      line: {
        requestUrl: "",
        selectionType: "radio",
      },
      purchaseOrder:{
        requestUrl: "",
        selectionType: "radio",
      }
    };
  },
  watch: {
    drawer(val) {
      if (val) {
        this.input = null;
      }
    },
  },
  created() {
    if (getCookie("orgCode") == "chengyunshang") {
      this.third.requestUrl =
        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" +
        getCookie("userId");
    } else {
      this.third.requestUrl =
        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null;
    }
  },
  methods: {
    onClick(index) {
      this.selectionList.splice(index, 1);
    },
    onBlur() {
      this.getPurchaseOrderNo();
    },
    getPurchaseOrderNo() {
      let map = {
        materialId: this.materialId,
        supplierId: this.supplierId,
      };
      if (this.remark) {
        map.remark = this.remark;
      }
      console.log(this.map);
      if (this.materialId && this.supplierId) {
        this.axios.post("/api/v1/oms/selectNewOrderId", map).then((res) => {
          console.log(res);
          if (res.data.code == "200") {
            if (res.data.data == null) {
              this.$message({
                message: "没有匹配的采购订单号!",
                type: "warning",
              });
              this.form1 = [];
            } else {
              console.log();
              this.remark = res.data.data.remark;
              this.purchaseOrderId = res.data.data.purchaseOrderId;
              this.purchaseOrderNo=res.data.data.purchaseOrderNo;
              // if (res.data.data.receiveUnitId == 1) {
              //   this.orderType = 17;
              // } else {
              //   this.orderType = 18;
              // }
            }
          } else {
            this.$message.error("请求失败");
          }
        });
      }
    },
    onclick() {
      if(this.input){
        this.isKuang = true;
        if (this.onDrawerNumber == 1) {
          this.frist.requestUrl = "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&index=" + this.input;
        } else if (this.onDrawerNumber == 2) {
          this.secend.requestUrl = "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" + this.materialId + "&index=" + this.input;
        } else if (this.onDrawerNumber == 3) {
          //判断是否是承运商查询车辆
          if (getCookie("orgCode") == "chengyunshang") {
            this.third.requestUrl = "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + getCookie("userId") + "&index=" + this.input;
          } else {
            this.third.requestUrl = "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null + "&index=" + this.input;
          }
        } else if (this.onDrawerNumber == 4) {
          this.unloadPoint.requestUrl = "/api/v1/uc/getUnloadingMesByLike?apiId=374&index=" + this.input;
        } else if (this.onDrawerNumber == 5) {
          this.line.requestUrl = "/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&con=" + this.input;
        }else if (this.onDrawerNumber == 6) {
          this.purchaseOrder.requestUrl = "/api/v1/ams/getPurchaseOrderList?apiId=81&sendCompId="+this.supplierId+"&con=" + this.input+"&i="+new Date();
        }
      }else{
        if (this.onDrawerNumber == 1) {
          this.frist.requestUrl = "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&i="+new Date();
        } else if (this.onDrawerNumber == 2) {
          this.secend.requestUrl = "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" + this.materialId+"&i="+new Date();
        } else if (this.onDrawerNumber == 3) {
          //判断是否是承运商查询车辆
          if (getCookie("orgCode") == "chengyunshang") {
            this.third.requestUrl = "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + getCookie("userId")+"&i="+new Date();
          } else {
            this.third.requestUrl = "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null+"&i="+new Date();
          }
        } else if (this.onDrawerNumber == 4) {
          this.unloadPoint.requestUrl = "/api/v1/uc/getUnloadingMesByLike?apiId=374&i="+new Date();
        } else if (this.onDrawerNumber == 5) {
          this.line.requestUrl = "/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&i="+new Date();
        }else if (this.onDrawerNumber == 6) {
          this.purchaseOrder.requestUrl = "/api/v1/ams/getPurchaseOrderList?apiId=81&sendCompId="+this.supplierId+"&i="+new Date();
        }
      }
    },
    ondrawer(num) {
      this.drawer = true;
      this.onDrawerNumber = num;
      if(num == 1){
        this.frist.requestUrl = "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&index=" + this.input;
      }else if (num == 2) {
        this.secend.requestUrl = "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" + this.materialId;
      } else if (num == 3) {
        //判断是否是承运商查询车辆
        if (getCookie("orgCode") == "chengyunshang") {
          this.third.requestUrl = "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + getCookie("userId") + "&i=" + new Date();
        } else {
          this.third.requestUrl = "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null  + "&i=" + new Date();
        }
      } else if (num == 4) {
        this.unloadPoint.requestUrl = "/api/v1/uc/getUnloadingMesByLike?apiId=374&i=" + new Date();
      } else if (num == 5) {
        this.line.requestUrl ="/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&i=" + new Date() + "&con=化工材料";
      }else if (num == 6) {
        this.purchaseOrder.requestUrl = "/api/v1/ams/getPurchaseOrderList?apiId=81&i=" + new Date();
      }
      
    },
    // 返回
    onClickCancel() {
      this.$router.push("/transportationReservation");
    },
    currentRadioChange1(selection) {
      this.materialName = selection.materialName;
      this.materialId = selection.materialId;
      this.getPurchaseOrderNo();
    },
    currentRadioChange2(selection) {
      this.supplierName = selection.supplierName;
      this.supplierId = selection.supplierId;
      this.getPurchaseOrderNo();
    },
    currentRadioChange4(selection) {
      this.unloadPointId = selection.warehouseId;
      this.unloadPointName = selection.warehouseName;
    },
    currentRadioChange5(selection) {
      this.lineName = selection.lineName;
      this.lineId = selection.lineId;
    },
    currentRadioChange6(selection) {
      console.log(selection)
      if (selection.shipperId == 1) {
        this.orderType = 17;
      } else {
        this.orderType = 18;
      }
      this.materialName = selection.materialName;
      this.materialId = selection.materialId;
      this.supplierId = selection.supplierId;
      this.supplierName = selection.supplierName;
      this.purchaseOrderNo = selection.purchaseOrderNo;
      this.purchaseOrderId = selection.purchaseOrderId;
    },
    currentRadioChange3(selection) {
      this.selectionList = [];
      this.selectionList = selection;
    },
    func(res){
      console.log(res)
      this.isKuang = false;
    },
    // 确认
    onClickConfirm() {
      var state = 0;
      if (
        this.materialId &&
        this.supplierId &&
        this.form1.purchaseOrderId &&
        this.unloadPointId &&
        sjTime(this.form1.orderEntryTime) &&
        this.lineId
      ) {
        state = 1;
      } else {
        if (!this.materialId) {
          this.$message({
            message: "请选择物资!",
            type: "warning",
          });
          return;
        } else if (!this.orderType) {
          this.$message({
            message: "请选择订单类别!",
            type: "warning",
          });
          return;
        } else if (!this.supplierId) {
          this.$message({
            message: "请选择发货单位!",
            type: "warning",
          });
          return;
        } else if (!this.purchaseOrderId) {
          this.$message({
            message: "没有匹配的采购订单号!",
            type: "warning",
          });
          return;
        } else if (!this.unloadPointId) {
          this.$message({
            message: "请选择卸货地点!",
            type: "warning",
          });
          return;
        } else if (!this.lineId) {
          this.$message({
            message: "请选择运输路线!",
            type: "warning",
          });
          return;
        } else if (!sjTime(this.form1.orderEntryTime)) {
          this.$message({
            message: "请选择预估进厂时间!",
            type: "warning",
          });
          return;
        }
      }
      //开始选车
      if (this.selectionList.length == 0) {
        this.$message({
          message: "请选择车辆!",
          type: "warning",
        });
        return;
      } else {
        this.selectionList.forEach((e) => {
          if (e.orderMaterialWeight) {
            if (isNumber(e.orderMaterialWeight)) {
              if (isIntegerNumber(e.orderMaterialWeight)) {
                state = 1;
              } else {
                this.$message({
                  message: "重量只能是整数!",
                  type: "warning",
                });
                return;
              }
            } else {
              this.$message({
                message: "重量只能是数字!",
                type: "warning",
              });
              return;
            }
          } 
        });
      }
      //发送请求
        let map = {
          materialId: this.materialId,
          supplierId: this.supplierId,
          purchaseOrderId: this.purchaseOrderId,
          unloadPointId: this.unloadPointId,
          orderEntryTime: sjTime(this.form1.orderEntryTime),
          driverCapacityIdList: this.selectionList,
          orderType: this.orderType,
          lineId: this.lineId,
          isMoreTrips:this.isMoreTrips,
        };
        console.log("map",map);
        this.axios.post("/api/v1/oms/addPurOrder", map).then((res) => {
          if (res.data.code == "200") {
            this.$message({
              message: "添加成功!",
              type: "success",
            });
            this.$router.push("/transportationReservation");
          }
        });

    },
  },
};
</script>
<style lang="scss">
.contractDetails {
  width: 100%;
}
.el-drawer__container ::-webkit-scrollbar {
  display: none;
}
.from {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 5px;
  margin-bottom: 20px;
}
.remark {
  display: flex;
  justify-content: center;
  .text {
    display: inline-block;
    width: 100px;
    text-align: right;
  }
  .input {
    width: 250px;
    margin-right: 20px;
  }
}
.lineId {
  display: flex;
  justify-content: center;
  .text {
    display: inline-block;
    width: 170px;
    text-align: right;
  }
  .input {
    width: 250px;
    margin-right: 20px;
  }
  .span{
    display: inline-block;
    width: 70px;
    height: 1px;
  }
}
.material {
  display: flex;
  justify-content: center;
  margin-top: 20px;
  .text {
    display: inline-block;
    width: 170px;
    text-align: right;
  }
  .input {
    width: 250px;
    margin-right: 20px;
  }
}
.orderType {
  display: flex;
  justify-content: center;
  .text {
    display: inline-block;
    width: 110px;
    text-align: right;
  }
  .select {
    width: 250px;
  }
  .span {
    display: inline-block;
    width: 30px;
    height: 10px;
  }
}
.contractTitle {
  display: flex;
  justify-content: center;
  .el-form-item {
    display: flex;
    justify-content: center;
    .el-form-item__label {
      display: flex;
      align-items: center;
    }
    .el-input {
      width: 250px;
    }
  }
}
.forwardingUnit {
  display: flex;
  justify-content: center;
  .text {
    display: inline-block;
    width: 170px;
    text-align: right;
  }
  .input {
    width: 250px;
    margin-right: 20px;
  }
}
.truckList1 {
  width: 100%;
  .truckList {
    width: 96%;
    .text {
      display: inline-block;
      width: 120px;
      text-align: right;
    }
    .truckBtn {
      width: 250px;
    }
  }
}
.drawer_top{
  margin-top: -50px;
  width: 100%;height: 60px;
  display: flex;
  align-items: center;
}
.drawer_table1{
  width: 100%;height: 500px;
}
.button_box {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100px;
}
</style>