//车次安排
<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 }}
        </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 }}
        </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"
      >
        <ws-info-table>
          <!--姓名-->
          <ws-form-item label="姓名" span="1" prop="driver">
            <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">
            <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">
            <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">
            <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">
            <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-info-table>
        <ws-info-table>
          <div
            style="width: 100%"
            class="flex position carnum"
            v-for="(item1, index) in freightspace"
            :key="index"
          >
            <!--车厢号-->
            <ws-form-item
              :label="'车厢号-' + (index + 1)"
              span="1"
              prop="boxNo"
            >
              <ws-input
                v-model="item1.trainNo"
                placeholder="请输入车厢号"
                maxlength="20"
                size="small"
              />
              <span
                width="22"
                height="22"
                class="del"
                @click="del(index)"
                src="../../../public/img/del.png"
                alt=""
                >×</span
              >
            </ws-form-item>
          </div>
        </ws-info-table>
      </div>
      <el-button class="add bg-bottom" type="primary" size="small" @click="add">
        <img
          width="22"
          height="22"
          @click="add"
          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(deptBudgetList)"
        >提交</el-button
      >
    </div>
  </div>
</template>
<script>
import { regionData, CodeToText, TextToCode } from 'element-china-area-data'
import { seeCat, dispatchCat, packList } 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,
      heightData: '600px',
      zoom: 7,
      selectedOptions: [],
      center: [116.244694, 39.517344],
      window: '',
      radio: 1,
      personCharge: [],
      district: null,
      driverList: [],
      listDate: { country: '中国', level: 'country', city: '' },
      citylist: [],
      compId: sessionStorage.getItem('ws-pf_compId'),
      tranType: 2,
      rules: {
        warehouseName: [
          {
            required: true,
            message: '请输入仓库名称',
            trigger: 'blur',
          },
          {
            min: 2,
            max: 20,
            message: '仓库名长度不符合要求，请输入2-20字符之内',
            trigger: 'blur',
          },
        ],
      },
      appendixIdsAdd: '',
      size: 10,
      value1: '',
      unitList: [],
      freightspace: [],
      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
        }
      }
    },
    marker: function (item) {
      this.deptBudgetList.warehousePositioning =
        item.lnglat.lat + ',' + item.lnglat.lng
    },
    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.freightspace.push({
        trainNo: '',
      })
    },
    del(index) {
      if (this.freightspace.length > 1) {
        this.freightspace.splice(index, 1)
      }
    },
    //下拉司机姓名改变事件
    selectdriver() {},
    handleChange(value) {
      this.selectedOptions = value
    },
    returnsales() {
      this.deptBudgetList = {}
      this.freightspace = []
      this.selectedOptions = ''
      this.$router.push({ path: 'tranManagementTransporTationFire' })
    },
    // confirmPosition() {
    //   this.draggable = false
    // },
    // 上传附件
    uploadSuccess(data, files, url) {
      console.log(data, files, url)
    },
    submit(deptBudgetList) {
      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
        }
      }
      for (var j = 0; j < this.freightspace.length; j++) {
        if (!this.freightspace[j].trainNo) {
          this.$message({
            message: '车厢号不能为空',
            type: 'warning',
          })
          return
        }
      }

      this.$confirm(`提交成功后，任务将下发给相关人员，是否确定提交?`, {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          this.$refs.deptBudgetList.validate((valid) => {
            if (valid) {
              for (var i = 0; i < this.freightspace.length; i++) {
                var num = this.freightspace[i].trainNo
                this.arr.push(num)
              }
              this.deptBudgetList.totalStorage = this.totalStorage
              this.tranCarInfoList.driver =
                this.deptBudgetList.tranCarInfoList[0].driver
              this.tranCarInfoList.driverPhone =
                this.deptBudgetList.tranCarInfoList[0].driverPhone
              this.tranCarInfoList.sendDateStart =
                this.deptBudgetList.tranCarInfoList[0].sendDateStart
              this.tranCarInfoList.receiveDateEnd =
                this.deptBudgetList.tranCarInfoList[0].receiveDateEnd
              this.tranCarInfoList.carModel =
                this.deptBudgetList.tranCarInfoList[0].carModel.toString()
              this.tranCarInfoList.id =
                this.deptBudgetList.tranCarInfoList[0].id
              this.tranCarInfoList.tranType = this.tranType
              this.tranCarInfoList.boxNo = this.arr.toString()
              var tranCarInfo = {}
              var tranList = [this.tranCarInfoList]
              tranCarInfo.id = this.deptBudgetList.id
              tranCarInfo.infoId = this.deptBudgetList.infoId
              tranCarInfo.tranCarInfoList = tranList
              // dispatchCat({tranCarInfo:{tranCarInfoList:[this.tranCarInfoList],id:this.deptBudgetList.id}
              dispatchCat(tranCarInfo)
                .toPromise()
                .then((response) => {
                  this.$message.success('添加成功')
                  this.deptBudgetList = {}
                  this.freightspace = {}
                  this.selectedOptions = ''
                  this.$router.push({
                    path: 'tranManagementTransporTationFire',
                  })
                })
            } else {
              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
              return false
            }
          })
        })
        .catch(() => {
          return false
        })
    },
    resetForm(deptBudgetList) {
      this.$refs[deptBudgetList].resetFields()
    },

    getList() {
      seeCat({ id: this.deptBudgetList.id })
        .toPromise()
        .then((response) => {
          this.deptBudgetList = response
          if (response.tranCarInfoList.length > 0) {
            if (response.tranCarInfoList[0].boxNo) {
              this.list = response.tranCarInfoList[0].boxNo.split(',')
              for (var i = 0; i < this.list.length; i++) {
                var num = this.list[i]
                this.freightspace.push({
                  trainNo: num,
                })
              }
            }
          } else {
            this.deptBudgetList.tranCarInfoList = [
              {
                driver: '',
                driverPhone: '',
                sendDateStart: '',
                receiveDateEnd: '',
                carModel: '',
              },
            ]
          }
          if (!this.deptBudgetList.tranCarInfoList[0].boxNo ) {
            this.freightspace = [
              {
                trainNo: '',
              },
            ]
          }
        })
      //司机姓名下拉
      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
        })
    },
    handleExamine() {},
    approve() {},
    // returnsales() {
    //   this.$router.push({ path: 'purchaseContract' })
    // },
    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
        }
      }
    },
    // 编辑
    editClick(item, index) {
      const map = JSON.parse(JSON.stringify(item))
      if (Object.is(item.id, 1)) {
        return
      }
      if (Object.is(this.unitList[index].flag, 'delete')) {
        map.flag = 'check'
        this.$set(this.unitList, index, map)
      } else {
        map.flag = 'delete'
        this.$set(this.unitList, index, map)
      }
    },
    // 删除
    deleteClick(item, index) {
      if (Object.is(item.constKey, 1)) {
        return
      }
      if (!item.constValue) {
        this.unitList.splice(index, 1)
        return
      }
      delxiala({ id: this.unitList[index].id })
        .toPromise()
        .then((response) => {
          this.getUnitList()
          this.pleaseChoose = ''
        })
    },
  },
}
</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;
}

.del {
  position: absolute;
  // right: -38px;
  top: 9px;
  cursor: pointer;
  right: 0;
  display: inline-block;
  font-size: 20px;
  width: 16px;
  height: 10px;
  line-height: 0px;
}

.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__content {
  padding: 0 25px;
  border-left: 1px solid transparent;
  background: #fff;
}
/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;
}

.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;
  }
}
.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__content {
  background: #f5f7fa;
  border-radius: 4px;
  border: 1px solid #d8dce6;
  font-family: PingFangSC-Regular, PingFang SC;
  margin-bottom: 5px;
  background-color: #fff;
  font-size: 14px;
  font-weight: 400;
  color: #8890b1;
  line-height: 16px;
}
/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/.ws-info-table .el-form-item .el-form-item__content {
  background: #f5f7fa;
  border-radius: 4px;
  border: 1px solid #d8dce6;
}
/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: 30%;
  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;
}
.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;
}
</style>