//车次安排
<template>
  <div class="container">
    <el-row>
      <el-col :span="12">
        <h2 class="bg-left title">车次安排</h2>
      </el-col>
      <el-col :span="12" class="bg-right">
        <el-button
          class="bg-bottom"
          type="primary"
          size="small"
          @click="returnsales()"
          ><img
            width="6"
            height="10"
            style="vertical-align: bottom; margin-right: 3px"
            src="../../../public/img/lujing.png"
            alt=""
          />返回</el-button
        >
      </el-col>
    </el-row>
    <ws-form
      class="position"
      ref="deptBudgetList"
      :rules="rules"
      :model="deptBudgetList"
    >
      <div class="small-title" style="font-size: 16px">任务详情</div>
      <ws-info-table>
        <!--任务编号-->
        <ws-form-item label="任务编号" span="1" prop="processNo">
          {{ deptBudgetList.processNo }}
        </ws-form-item>
        <!--货名-->
        <ws-form-item label="货名" span="1" prop="goodsName">
          {{ deptBudgetList.goodsName }}
        </ws-form-item>
        <!--重量（吨）-->
        <ws-form-item label="重量（吨）" span="1" prop="weight">
          {{ deptBudgetList.weight }}
        </ws-form-item>
        <!--发货地址-->
        <ws-form-item label="发货地址" span="1" prop="sendDetailedAddress">
          {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
          }}{{ deptBudgetList.sendArea
          }}{{ deptBudgetList.sendDetailedAddress }}
        </ws-form-item>
        <!--发货人-->
        <ws-form-item label="发货人" span="1" prop="sender" class="readonly">
          {{ deptBudgetList.sender }}
        </ws-form-item>
        <!--发货人电话-->
        <ws-form-item
          label="发货人电话"
          span="1"
          prop="senderPhone"
          class="readonly"
        >
          {{ deptBudgetList.senderPhone }}
        </ws-form-item>
        <!--收货地址-->
        <ws-form-item label="收货地址" span="1" prop="receiveDetailedAddress">
          {{ deptBudgetList.receivePrivate }}{{ deptBudgetList.receiveCity
          }}{{ deptBudgetList.receiveArea
          }}{{ deptBudgetList.receiveDetailedAddress }}
        </ws-form-item>
        <!--收货人-->
        <ws-form-item label="收货人" span="1" prop="receiver">
          {{ deptBudgetList.receiver }}
        </ws-form-item>
        <!--收货人电话-->
        <ws-form-item label="收货人电话" span="1" prop="receiverPhone">
          {{ deptBudgetList.receiverPhone }}
        </ws-form-item>
        <!--发货日期-->
        <ws-form-item label="发货日期" span="1" prop="deliveryDateStart">
          {{ deptBudgetList.deliveryDateStart }}
        </ws-form-item>
        <!--最晚到货日期-->
        <ws-form-item label="最晚到货日期" span="1" prop="deliveryDateEnd">
          {{ deptBudgetList.deliveryDateEnd }}
        </ws-form-item>
        <!--合同编号-->
        <ws-form-item label="合同编号" span="1" prop="contractNo">
          {{ deptBudgetList.contractNo }}
        </ws-form-item>
      </ws-info-table>
      <div class="small-title" style="font-size: 16px">联络员及车皮信息</div>
      <div
        class="liaison"
        v-for="(item, index) in deptBudgetList.tranCarInfoList"
        :key="index"
      >
        <ws-info-table>
          <!--姓名-->
          <ws-form-item label="姓名" span="1" prop="driver" v-show="index==0">
            <el-select
              v-model="item.driver"
              placeholder="请选择姓名"
              filterable
              :filter-method="dataFilter"
              @change="selectstaff"
            >
              <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.staffName"
                :value="item.staffName"
              />
            </el-select>
          </ws-form-item>
          <!--电话-->
          <ws-form-item label="电话" span="1" prop="driverPhone"  v-show="index==0">
            <ws-input
              v-model="item.driverPhone"
              readonly
              unselectable="on"
              placeholder="请输入电话"
              maxlength="20"
              size="small"
            />
          </ws-form-item>
          <!--发车日期-->
          <ws-form-item label="发车日期" span="1" prop="sendDateStart"  v-show="index==0">
            <ws-date-picker
              v-model="item.sendDateStart"
              type="date"
              placeholder="请选择发货日期"
              value-format="yyyy-MM-dd"
            />
          </ws-form-item>
          <!--到站日期-->
          <ws-form-item label="预计到站日期" span="1" prop="receiveDateEnd"  v-show="index==0">
            <ws-date-picker
              v-model="item.receiveDateEnd"
              type="date"
              placeholder="请选择预计到站日期"
              value-format="yyyy-MM-dd"
            />
          </ws-form-item>
          <!--车型-->
          <ws-form-item label="车型" span="1" prop="carModel"  v-show="index==0">
            <el-select
              v-model="item.carModel"
              placeholder="请选择车型"
              filterable
            >
              <el-option
                v-for="items in carModel"
                :key="items.value"
                :label="items.constValue"
                :value="items.constValue"
              />
            </el-select>
          </ws-form-item>
          <ws-form-item :label="'车厢号'" span="1" prop="boxNo"> 
            <ws-input
              v-model="item.boxNo"
              placeholder="请输入车厢号"
              maxlength="20"
              size="small"
            />
          </ws-form-item>
          <!--   -->
        </ws-info-table>
        <!-- class="del" -->
        <span
          v-if="
            item.status == '未装车' || item.status == '' || item.status == null
          "
          width="22"
          height="22"
          class="del"
          @click="del(index, item)"
          src="../../../public/img/del.png"
          alt=""
          >×</span
        >
      </div>
      <el-button class="add bg-bottom" type="primary" size="small" @click="add">
        <img width="22" height="22" src="../../../public/img/add.png" alt="" />
        <div class="spans">添加车厢</div>
      </el-button>
    </ws-form>
    <!-- 提交 -->
    <div style="text-align: right; padding: 10px" class="center">
      <el-button class="bg-bottom" type="primary" size="small" @click="submit()"
        >提交</el-button
      >
    </div>
  </div>
</template>
<script>
import { regionData } from 'element-china-area-data'
import {
  seeCat,
  dispatchCat,
  packList,
  delhaulagestage,
} from '@/model/transport/index'
import { getstaff } from '@/model/warehouse/index'
import WsUpload from '@/components/WsUpload'
import mapDrag from '@/components/mapdrag/mapdrag'
export default {
  name: 'viewSpareMoney',
  components: {
    WsUpload,
    mapDrag,
  },
  watch: {
    vesselId(val) {
      this.getVesselData()
    },
    isShow(val) {
      this.showType = val
    },
  },
  data() {
    return {
      deptBudgetList: {
        totalStorage: 0,
      },
      options_: regionData,
      selectedOptions: [],
      center: [116.244694, 39.517344],
      personCharge: [],
      driverList: [],
      listDate: { country: '中国', level: 'country', city: '' },
      citylist: [],
      tranType: '2',
      rules: {
        warehouseName: [
          {
            required: true,
            message: '请输入仓库名称',
            trigger: 'blur',
          },
          {
            min: 2,
            max: 20,
            message: '仓库名长度不符合要求，请输入2-20字符之内',
            trigger: 'blur',
          },
        ],
      },
      size: 10,
      unitList: [],
      name: '',
      list: [],
      staffList: [],
      options: [],
      carModel: [],
      tranCarInfoList: {},
      arr: [],
    }
  },
  activated() {
    this.deptBudgetList.id = this.$route.query.id
    this.getList()
  },
  computed: {
    totalStorage: function () {
      var maxStorage = 0
      for (var i = 0; i < this.freightspace.length; i++) {
        maxStorage += Number(this.freightspace[i].maxStorage)
      }
      return maxStorage
    },
  },
  methods: {
    dataFilter(val) {
      this.deptBudgetList.personCharge = val
      if (val) {
        this.options = this.staffList.filter((item) => {
          if (
            !!~item.staffName.indexOf(val) ||
            !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
          ) {
            return true
          }
        })
      } else {
        this.options = this.staffList
      }
    },
    selectstaff(e) {
      for (var i = 0; i < this.staffList.length; i++) {
        if (this.staffList[i].staffName == e) {
          this.deptBudgetList.driverPhone = this.staffList[i].staffMobilePhone
          this.deptBudgetList.tranCarInfoList[0].driverPhone =
            this.staffList[i].staffMobilePhone
          this.deptBudgetList.personChargeKey = this.staffList[i].staffId
        }
      }
    },
    selectedAddress(e) {
      this.deptBudgetList.warehousePositioning =
        e.center.lat + ',' + e.center.lng
    },
    confirmPositioncity() {
      this.listDate.level = 'city'
      this.listDate.country = this.name
    },
    // 关闭 dialog时 处理文件url 初始化upload组件
    // handleClose() {
    //   this.dialogViewSpareMoney = false
    // },
    add() {
      this.deptBudgetList.tranCarInfoList.push({
        driver: this.deptBudgetList.tranCarInfoList[0].driver,
        driverPhone: this.deptBudgetList.tranCarInfoList[0].driverPhone,
        sendDateStart: this.deptBudgetList.tranCarInfoList[0].sendDateStart,
        receiveDateEnd: this.deptBudgetList.tranCarInfoList[0].receiveDateEnd,
        carModel: this.deptBudgetList.tranCarInfoList[0].carModel,
        boxNo: '',
        tranType: '2',
      })
    },
    del(index, row) {
      if (row.status == '未装车') {
        this.$confirm('派车信息删除后不可恢复，是否确定删除？', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning',
        }).then(() => {
          delhaulagestage({ id: row.id })
            .toPromise()
            .then((response) => {
              this.$message.success('删除成功')
              if (this.deptBudgetList.tranCarInfoList.length > 1) {
                this.deptBudgetList.tranCarInfoList.splice(index, 1)
              }
            })
        })
      } else {
        if (this.deptBudgetList.tranCarInfoList.length > 1) {
          this.deptBudgetList.tranCarInfoList.splice(index, 1)
        }
      }
    },
    //下拉司机姓名改变事件
    handleChange(value) {
      this.selectedOptions = value
    },
    returnsales() {
      this.deptBudgetList = {}
      this.freightspace = []
      this.selectedOptions = ''
      this.$router.go(-1)
    },
    // 上传附件
    uploadSuccess(data, files, url) {
      console.log(data, files, url)
    },
    submit() {
      for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
        if (!this.deptBudgetList.tranCarInfoList[i].driver) {
          this.$message({
            message: '姓名不能为空！',
            type: 'warning',
          })
          return
        }
        if (!this.deptBudgetList.tranCarInfoList[i].driverPhone) {
          this.$message({
            message: '电话不能为空！',
            type: 'warning',
          })
          return
        }
        if (!this.deptBudgetList.tranCarInfoList[i].sendDateStart) {
          this.$message({
            message: '发车日期不能为空！',
            type: 'warning',
          })
          return
        }
        if (!this.deptBudgetList.tranCarInfoList[i].receiveDateEnd) {
          this.$message({
            message: '到站日期不能为空',
            type: 'warning',
          })
          return
        }
        if (
          new Date(
            this.deptBudgetList.tranCarInfoList[i].sendDateStart
          ).getTime() >
          new Date(
            this.deptBudgetList.tranCarInfoList[i].receiveDateEnd
          ).getTime()
        ) {
          this.$message({
            message: '发车时间不能大于到站时间！',
            type: 'warning',
          })
          return
        }
        if (!this.deptBudgetList.tranCarInfoList[i].carModel) {
          this.$message({
            message: '车型不能为空！',
            type: 'warning',
          })
          return
        }
        if (!this.deptBudgetList.tranCarInfoList[i].boxNo) {
          this.$message({
            message: '车厢号不能为空',
            type: 'warning',
          })
          return
        }
      }
      this.$confirm(`提交成功后，任务将下发给相关人员，是否确定提交?`, {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          this.$refs.deptBudgetList.validate((valid) => {
            if (valid) {
              var tranCarInfo = {}
              tranCarInfo.id = this.deptBudgetList.id
              tranCarInfo.infoId = this.deptBudgetList.infoId
              tranCarInfo.tranType = '2'
              tranCarInfo.tranCarInfoList = this.deptBudgetList.tranCarInfoList
              dispatchCat(tranCarInfo)
                .toPromise()
                .then((response) => {
                  this.$message.success('提交成功')
                  this.deptBudgetList = {}
                  this.freightspace = {}
                  this.selectedOptions = ''
                  this.$router.go(-1)
                })
            } else {
              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
              return false
            }
          })
        })
        .catch(() => {
          return false
        })
    },
    getList() {
      seeCat({ id: this.deptBudgetList.id })
        .toPromise()
        .then((response) => {
          this.deptBudgetList = response
          if (response.tranCarInfoList.length == 0)
            this.deptBudgetList.tranCarInfoList = [
              {
                driver: '',
                driverPhone: '',
                sendDateStart: '',
                receiveDateEnd: '',
                carModel: '',
                boxNo: '',
                tranType: '2',
              },
            ]
        })
      //司机姓名下拉
      getstaff({ compId: sessionStorage.getItem('ws-pf_compId') })
        .toPromise()
        .then((response) => {
          this.options = response
          this.staffList = response
          //  this.deptBudgetList.tranCarInfoList.driverPhone = response
        })
      //车型
      packList({ constId: 'TRAN5' })
        .toPromise()
        .then((response) => {
          this.carModel = response
        })
    },
    selectChapterTwo(e) {
      for (var i = 0; i < this.ChapterTwoList.length; i++) {
        if (this.ChapterTwoList[i].constValue == e) {
          this.deptBudgetList.gradeKey = this.ChapterTwoList[i].constKey
        }
      }
    },
    selectunitList(e) {
      for (var i = 0; i < this.unitList.length; i++) {
        if (this.unitList[i].constValue == e) {
          this.deptBudgetList.acceptanceMethodKey = this.unitList[i].constKey
        }
      }
    },
    selectgrade(e) {
      for (var i = 0; i < this.gradeList.length; i++) {
        if (this.gradeList[i].constValue == e) {
          this.deptBudgetList.gradeKey = this.gradeList[i].constKey
        }
      }
    },
    selectgoodsName(e) {
      for (var i = 0; i < this.goodnameList.length; i++) {
        if (this.goodnameList[i].constValue == e) {
          this.deptBudgetList.goodsNameKey = this.goodnameList[i].constKey
        }
      }
    },
    selectpackingMethod(e) {
      for (var i = 0; i < this.packtypeList.length; i++) {
        if (this.packtypeList[i].constValue == e) {
          this.deptBudgetList.packingMethodKey = this.packtypeList[i].constKey
        }
      }
    },
  },
}
</script>

<style lang="scss" scoped>
/deep/.totalStorage .el-input__inner {
  color: #afb5cb;
  background: #f5f7fa;
}
.small-title {
  position: relative;
  padding: 10px;
  font-weight: 600;
}
.small-title::before {
  position: absolute;
  content: '';
  display: block;
  background: #5473e8;
  width: 4px;
  height: 14px;
  left: 0px;
  top: 13px;
}
.position {
  position: relative;
}
.amap-page-container {
  width: 300px;
  height: 300px;
}
.el-form {
  padding: 0 15%;
}
/deep/.ws-info-table .el-form-item {
  border-right: 1px solid transparent;
  border-bottom: 1px solid transparent;
}
.readonly {
  position: relative;
}
.readonly:after {
  content: '*';
  color: #ff2727;
  position: absolute;
  right: 8px;
  z-index: 10;
  top: 21%;
  font-size: 20px;
}
.title {
  position: relative;
}
.title::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 30px;
  background: #5473e8;
  position: absolute;
  left: 0;
}
.el-button--primary {
  background-color: #5878e8;
  border-color: #5878e8;
}
.el-col {
  background: #f6f7fc;
}
/deep/.ws-info-table .el-form-item .el-form-item__label {
  width: 100px;
  text-align: center;
  background: #fff;
  // border: 1px solid #cdd2dc;
}
.button-container {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  width: 100%;
  height: 50px;
  padding: 0 10px;
  & > div {
    margin-left: 10px;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    & > span {
      line-height: 50px;
    }
  }

  /deep/.auditFlow-box {
    position: unset;
    margin-left: 10px;
    &/deep/.auditFlow-icon {
      width: auto;
      padding-right: 30px;
    }
    &/deep/.auditFlow-main {
      position: absolute;
    }
  }
}
.box-app {
  display: inline-block;
  float: left;
  margin-left: 30px;
  line-height: 50px;
}
/deep/.el-dialog {
  .el-form-item {
    margin-bottom: 0 !important;
    .el-input--medium {
      textarea {
        min-height: 100px !important;
      }
    }
  }
}
.collapse-bottom {
  margin-bottom: 20px;
}
.input-main .textarea .el-textarea__inner {
  width: 100%;
  z-index: 1;
}
.bg-left {
  padding-left: 30px;
}
.bg-right {
  padding-right: 10px;
  text-align: right;
}
.bg-bottom {
  margin: 15px 0px;
}
.el-input--small {
  font-size: 13px;
}
.el-input {
  position: relative;
  display: inline-block;
  width: 86%;
}
.center {
  width: 90%;
  margin: 0 auto;
}
.el-form-item {
  width: 50%;
}
.el-form-item__label {
  text-align: center;
}
/*.crt-main .textarea /deep/ .el-form-item__label {*/
/*  height: 82px;*/
/*}*/
// 控制select为只读的时候显示样式

.hide-sel {
  .el-input__inner {
    border: 0px;
  }
  .el-icon-arrow-up {
    display: none;
  }
  .el-textarea__inner {
    background-color: #fff !important;
    border: 0;
  }
  .el-date-editor {
    i {
      display: none;
    }
  }
  .is-disabled {
    .el-input__inner:hover {
      background-color: #fff !important;
      border: 0;
    }
    color: #606266;
    .el-input__inner {
      background-color: #fff !important;
      border: 0;
      color: #606266;
    }
    .el-textarea__inner {
      background-color: #fff !important;
      border: 0;
      color: #606266;
    }
  }
}

// 控制select为只读的时候显示样式
/deep/.ws-class-table-col {
  height: auto;
  padding: 0px 2px;
  /deep/.el-input__inner {
    padding: 0px 2px;
  }
}
/deep/.is-disabled {
  .el-input__prefix,
  .el-input__suffix {
    display: none;
  }
  .el-input__inner {
    background-color: #fff;
    border-color: #fff !important;
    color: #000 !important;
    font-size: 14px;
    cursor: text;
    padding: 0 !important;
  }
}
//减号
.del {
  position: absolute;
  cursor: pointer;
  margin-left: 224px;
  margin-top: -52px;
}
.winseaview-view {
  padding: 0 0 20px;
}
.container {
  overflow: scroll;
  height: 93vh;
}
.ws-info-table .el-form-item {
  width: 33.3333%;
}
.readonly:after {
  display: none;
}
.el-textarea__inner {
  display: none;
}
.el-form {
  margin-top: 50px;
}
.readonly {
  width: 16%;
}

//去边框
/deep/.el-form-item {
  border-right: 0px;
  border-bottom: 0px;
}
/deep/.ws-info-table {
  border-left: 0px;
  border-top: 0px;
}
/deep/.ws-info-table .el-form-item {
  border: none;
  height: 50px;
}

/deep/.ws-info-table .el-form-item .el-form-item__label {
  background-color: #fff;
  font-size: 14px;
  font-weight: 400;
  color: #8890b1;
  line-height: 16px;
}

/deep/.flex .ws-info-table .el-form-item .el-form-item__content {
  border: 0px;
}
//联络员及车次
/deep/.liaison .ws-info-table .el-form-item {
  width: 20%;
}
/deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
  width: 40%;
  border: 0px solid #d8dce6;
  background: #f5f7fa;
}
// /deep/.liaison .flex {
//   display: contents;
// }
/deep/.liaison {
  display: contents;
  background: #f5f7fa;
  border-radius: 4px;
  border: 0px solid #d8dce6;
}
/deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
  border: none;
  border-radius: 0px;
}
.add {
  width: 100px;
  height: 34px;
  background: #f6f7fb;
  border-radius: 17px;
  color: #5473e8;
  font-size: 14px;
  border: none;
}
.add img {
  display: inline-block;
  margin-top: 3px;
  margin-left: -12px;
}
.add .spans {
  display: table-caption;
  width: 56px;
  height: 20px;
  line-height: 18px;
}
/deep/.carnum {
  display: contents;
}
/deep/.carnum .ws-info-table .el-form-item {
  width: 20%;
}
/deep/.liaison .carnum .ws-info-table .el-form-item {
  border-radius: 10px;
  right: 20px;
}
/deep/.ws-info-table .el-form-item .el-form-item__content {
  border-radius: 4px;
  border: 1px solid #d8dce6;
  margin-bottom: 5px;
  background-color: #fff;
  font-size: 14px;
  font-weight: 400;
  color: #8890b1;
  line-height: 16px;
  padding: 0 25px;
  background: #f6f7fc;
}
/deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
  padding: 0px;
}
</style>