// 汽车调度
<template>
  <div class="container">
    <el-row>
      <el-col :span="20">
        <h2 class="bg-left title">汽车调度</h2>
      </el-col>
      <el-col :span="4" class="bg-right">
        <el-button
          class="bg-bottom"
          type="primary"
          size="small"
          @click="revert()"
          ><img
            width="6"
            height="10"
            style="vertical-align: bottom; margin-right: 3px"
            src="../../../public/img/lujing.png"
            alt=""
          />返回</el-button
        >
      </el-col>
    </el-row>
    <div class="center">
      <ws-form ref="deptBudgetList" :model="deptBudgetList" :rules="rules">
        <div class="basicInformation">
          <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">
              {{ deptBudgetList.goodsName }}
            </ws-form-item>
            <!--重量（吨）-->
            <ws-form-item
              label="重量（吨）"
              span="1"
              prop="tare"
              class="readonly"
            >
              {{ deptBudgetList.weight }}
            </ws-form-item>

            <!--发货地址-->
            <ws-form-item label="发货地址" span="1" prop="netWeight">
              {{ deptBudgetList.sendPrivate }}{{ deptBudgetList.sendCity
              }}{{ deptBudgetList.sendArea
              }}{{ deptBudgetList.sendDetailedAddress }}
            </ws-form-item>
            <!--发货人-->
            <ws-form-item label="发货人" span="1" prop="agent">
              {{ deptBudgetList.sender }}
            </ws-form-item>

            <!--发货人电话-->
            <ws-form-item label="发货人电话" span="1" prop="agent">
              {{ deptBudgetList.senderPhone }}
            </ws-form-item>
            <!--收货地址-->
            <ws-form-item label="收货地址" span="1" prop="netWeight">
              {{ 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="inOutDate"
              class="deliverydate"
            >
              {{ deptBudgetList.deliveryDateStart }}
            </ws-form-item>
            <!--最晚发货日期-->
            <ws-form-item
              label="最晚发货日期"
              span="1"
              prop="inOutDate"
              class="deliverydate"
            >
              {{ 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="driver position liaison"
            v-for="(item, index) in deptBudgetList.tranCarInfoList"
          >
            <ws-info-table>
              <div class="catNos">
                司机-{{ index + 1 }}
                <span class="noservice" v-show="item.status == '未送达'">{{
                  item.status
                }}</span>
                <span class="service" v-show="item.status == '已送达'">{{
                  item.status
                }}</span>
              </div>
              <!--司机-->
              <ws-form-item
                label="姓名："
                span="1"
                prop="driverName"
                class="siji"
              >
                <el-select
                  v-show="!item.temporaryDriverFlag"
                  v-model="item.driver"
                  placeholder="请选择司机"
                  class="typeselect"
                  @change="
                    (val) => {
                      carchange(val, index)
                    }
                  "
                >
                  <el-option
                    v-for="(items, index) in carList"
                    :key="index"
                    :label="items.driverName"
                    :value="items.driverName"
                  />
                </el-select>
                <span
                  v-show="
                    item.temporaryDriverFlag == 0 ||
                    item.temporaryDriverFlag == 1
                  "
                  >{{ item.driver }}</span
                >
              </ws-form-item>
              <!--司机电话-->
              <ws-form-item
                label="司机电话："
                span="1"
                prop="impurity"
                class="siji"
              >
                <el-select
                  v-show="!item.temporaryDriverFlag"
                  v-model="item.driverPhone"
                  placeholder="请选择司机电话"
                  class="typeselect"
                  @change="
                    (val) => {
                      phonechange(val, index)
                    }
                  "
                >
                  <el-option
                    v-for="(items, index) in carList"
                    :key="index"
                    :label="items.driverPhone"
                    :value="items.driverPhone"
                  />
                </el-select>
                <span
                  v-show="
                    item.temporaryDriverFlag == 0 ||
                    item.temporaryDriverFlag == 1
                  "
                  >{{ item.driverPhone }}</span
                >
              </ws-form-item>
              <!--车牌号-->
              <ws-form-item label="车牌号：" span="1" prop="carNo" class="siji">
                <ws-input
                  :disabled="readonly"
                  v-model="item.carNo"
                  placeholder=""
                  maxlength="120"
                  size="small"
                />
              </ws-form-item>
              <!--车型-->
              <ws-form-item
                label="车型："
                span="1"
                prop="carModel"
                class="siji"
              >
                <ws-input
                  :disabled="readonly"
                  v-model="item.carModel"
                  placeholder="请输入车型"
                  maxlength="120"
                  size="small"
                />
              </ws-form-item>
              <!--车长-->
              <ws-form-item
                label="车长："
                span="1"
                prop="carLength"
                class="siji"
              >
                <ws-input
                  :disabled="readonly"
                  v-model="item.carLength"
                  placeholder="请输入车长"
                  maxlength="120"
                  size="small"
                />
              </ws-form-item>
              <!--载重吨-->
              <ws-form-item
                label="载重（吨）："
                span="1"
                prop="loadWeight"
                class="siji zaizhong"
              >
                <ws-input
                  :disabled="readonly"
                  v-model="item.loadWeight"
                  placeholder="请输入载重（吨）"
                  maxlength="120"
                  size="small"
                />
              </ws-form-item>
            </ws-info-table>
            <span
              v-show="!item.temporaryDriverFlag"
              width="22"
              height="22"
              class="del"
              @click="del(index)"
              src="../../../public/img/del.png"
              alt=""
              >×</span
            >
          </div>
          <div style="text-align: right; color: #8890b1; font-size: 16px">
            合计{{ total }}/{{ deptBudgetList.weight }}
          </div>
          <el-button class="add" 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
          >
          <div style="text-align: right; padding: 10px">
            <el-button
              class="bg-bottom-up"
              type="primary"
              size="small"
              @click="submit()"
            >提交</el-button
            >
          </div>
        </div>
      </ws-form>
    </div>
  </div>
</template>
<script>
import Pagination from '@/components/Pagination'
import WsUpload from '@/components/WsUpload'
import {
  seeCat,
  nameXiala,
  arrange,
  dispatchCat,
} from '@/model/transport/index'
// import { dayjs, fmoney, EventBus } from 'base-core-lib'
import { dayjs, EventBus } from 'base-core-lib'
export default {
  name: 'viewSpareMoney',
  components: {
    WsUpload,
    Pagination,
  },
  watch: {
    // vesselId(val) {
    //   this.getList()
    // },
    isShow(val) {
      this.showType = val
    },
  },
  data() {
    return {
      // 是否显示
      showType: true,
      deptBudgetTotal: 0,
      currentPage: 1,
      pageSize: 10,
      searchType: 1,
      startDate: null,
      endDate: null,
      carList: [],
      // 提交类型
      readonly: true,
      appendixIdsAdd: '',
      onChange: {},
      gradeList: [],
      rules: {
        netWeight: [
          {
            required: true,
            type: 'number',
            message: '请输入活动名称',
            trigger: 'blur',
          },
        ],
      },
      size: 10,
      compId: sessionStorage.getItem('ws-pf_compId'),
      deptCircularPage: {},
      packtypeList: {},
      date: {
        year: dayjs().format('YYYY'),
        month: dayjs().format('MM'),
      },
      contractList: [],
      deptBudgetList: {
        tranCarInfoList: [],
      },
      historyList: [],
      pickerBeginDateBefore: {
        disabledDate: (time) => {
          return time.getTime() > Date.now()
        },
      },
      accessoryTFs: false,
    }
  },
  activated() {
    this.getList()
  },
  computed: {
    total: function () {
      var maxStorage = 0
      for (var i = 0; i < this.deptBudgetList.tranCarInfoList.length; i++) {
        maxStorage += Number(this.deptBudgetList.tranCarInfoList[i].loadWeight)
      }
      return maxStorage
    },
  },
  methods: {
    //返回按钮
    revert() {
      this.$router.push({ path: 'tranManagementVehicle' })
    },
    del(index) {
      if (this.deptBudgetList.tranCarInfoList.length > 1) {
        this.deptBudgetList.tranCarInfoList.splice(index, 1)
      }
    },
    add() {
      console.log(this.deptBudgetList.tranCarInfoList, 'sasasasas')
      this.deptBudgetList.tranCarInfoList.push({
        driverName: '',
        driverPhone: '',
        carLength: 0,
        carLengthKey: '',
        loadWeight: null,
        carModel: '',
        carModelKey: '',
        carNumber: '',
        disabled: false,
        tranType: '1',
      })
    },
    selectwaterContent() {},
    //提交按钮
    submit() {
      this.$confirm(`提交成功后，任务将下发给司机，是否确定提交？`, {
        cancelButtonText: '取消',
        confirmButtonText: '确定',
        type: 'warning',
      })
        .then(() => {
          this.$refs.deptBudgetList.validate((valid) => {
            if (valid) {
              var tranCarInfo = {}
              tranCarInfo.id = this.deptBudgetList.id
              tranCarInfo.infoId = this.deptBudgetList.infoId
              tranCarInfo.tranCarInfoList = this.deptBudgetList.tranCarInfoList
              dispatchCat(tranCarInfo)
                .toPromise()
                .then((response) => {
                  this.$message.success('派车成功')
                  this.$router.go(-1)
                })
            } else {
              EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
              return false
            }
          })
        })
        .catch(() => {
          return false
        })
    },

    handleClose() {
      this.accessoryTFs = false
    },

    getList() {
      seeCat({ id: this.$route.query.id })
        .toPromise()
        .then((response) => {
          if (response.tranCarInfoList.length > 0) {
            for (var i = 0; i < response.tranCarInfoList.length; i++) {
              if (response.tranCarInfoList[i].id) {
                response.tranCarInfoList[i].disabled = true
              }
            }
          }
          this.deptBudgetList = response
          if (this.deptBudgetList.tranCarInfoList.length == 0) {
            this.deptBudgetList.tranCarInfoList = [
              {
                driverName: '',
                driverPhone: '',
                carLength: 0,
                carLengthKey: '',
                loadWeight: null,
                carModel: '',
                carModelKey: '',
                carNumber: '',
                disabled: false,
                tranType: '1',
              },
            ]
          }
        })
      nameXiala({ compId: this.compId })
        .toPromise()
        .then((response) => {
          this.carList = response
        })
    },
    carchange(val, index) {
      for (var i = 0; i < this.carList.length; i++) {
        if (this.carList[i].driverName == val) {
          this.deptBudgetList.tranCarInfoList[index].driverPhone =
            this.carList[i].driverPhone
          arrange({ id: this.carList[i].id })
            .toPromise()
            .then((response) => {
              console.log(this, response)
              this.deptBudgetList.tranCarInfoList[index].carNo =
                response.carNumber
              if (response.carLoad != null) {
                this.deptBudgetList.tranCarInfoList[index].loadWeight =
                  response.carLoad
              } else {
                this.deptBudgetList.tranCarInfoList[index].loadWeight = 0
              }
              this.deptBudgetList.tranCarInfoList[index].carModel =
                response.carModel
              this.deptBudgetList.tranCarInfoList[index].carLength =
                response.carLength
              this.deptBudgetList.tranCarInfoList[index].carLengthKey =
                response.carLengthKey
              this.deptBudgetList.tranCarInfoList[index].carModelKey =
                response.carModelKey
            })
        }
      }
    },
    phonechange(val, index) {
      for (var i = 0; i < this.carList.length; i++) {
        if (this.carList[i].driverPhone == val) {
          this.deptBudgetList.tranCarInfoList[index].driver =
            this.carList[i].driverName
          arrange({ id: this.carList[i].id })
            .toPromise()
            .then((response) => {
              console.log(this, response)
              this.deptBudgetList.tranCarInfoList[index].carNo =
                response.carNumber
              if (response.carLoad != null) {
                this.deptBudgetList.tranCarInfoList[index].loadWeight =
                  response.carLoad
              } else {
                this.deptBudgetList.tranCarInfoList[index].loadWeight = 0
              }
              this.deptBudgetList.tranCarInfoList[index].carModel =
                response.carModel
              this.deptBudgetList.tranCarInfoList[index].carLength =
                response.carLength
              this.deptBudgetList.tranCarInfoList[index].carLengthKey =
                response.carLengthKey
              this.deptBudgetList.tranCarInfoList[index].carModelKey =
                response.carModelKey
            })
        }
      }
    },
    selecttaskType(e) {
      for (var i = 0; i < this.taskTypeList.length; i++) {
        if (this.taskTypeList[i].value == e) {
          this.searchType = this.taskTypeList[i].type
        }
      }
    },
    approve() {},
    listQuery() {},
  },
}
</script>
<style lang="scss" scoped>
/deep/.basicInformation {
  height:87vh;
  overflow: scroll;
  .ws-info-table {
    border: none;
  }
  .el-form-item {
    width: 33.3333%;
    border: none;
    height: 50px;
    .el-form-item__label {
      background: transparent;
      border: none;
    }
    .el-form-item__content {
      border: none;
    }
  }
}
.title {
  position: relative;
  padding-left: 10px;
}
.title::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 30px;
  background: #5473e8;
  position: absolute;
  left: 0;
}
.el-form {
  padding: 0 10%;
}
.el-button--primary {
  background-color: #5878e8;
  border-color: #5878e8;
}
.el-col {
  background: #f6f7fc;
}
.bg-right {
  text-align: right;
  padding: 16px 20px;
}
.center {
  width: 90%;
  margin: 0 auto;
}

//表格文字
/deep/.ws-info-table .el-form-item .el-form-item__label {
  text-align: left;
  font-size: 14px;
  font-weight: 400;
  color: #8890b1;
  line-height: 16px;
}
//蓝标
.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;
  padding: 4px 2px;
}
.position {
  position: relative;
}
.position .zaizhong {
  width: 16%;
}
//减号
.del {
  position: absolute;
  // right: -38px;
  top: 9px;
  cursor: pointer;
  right: 0;
  display: inline-block;
  font-size: 20px;
  width: 20px;
  height: 10px;
  line-height: 0px;
}
.driver .el-form-item {
  width: 16.63%;
}
/deep/.ws-info-table .el-form-item .el-form-item__content {
  background: #f5f7fa;
  border-radius: 4px;
  color: #8890b1;
  font-size: 14px;
}
/deep/.driver .ws-info-table .el-form-item .el-form-item__label {
  width: 72px;
}
/deep/.liaison .ws-info-table .el-form-item {
  width: 16.66%;
  color: #8890b1;
  font-size: 14px;
}
/deep/.ws-info-table .el-form-item {
 border: none;
 height: 50px;
}
/deep/.liaison .ws-info-table .el-form-item .el-form-item__label {
  width: 40%;
  border: 0px solid #d8dce6;
  background: #f5f7fa;
  text-align: center;
}
/deep/.liaison {
  background: #f5f7fa;
  border-radius: 4px;
  border: 0px solid #d8dce6;
}
/deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
  border: none;
  background: #f5f7fa;
}
.catNos {
  width: 100%;
  height: 30px;
  margin-top: 10px;
  margin-left: 20px;
  font-size: 14px;
}
/deep/.liaison .ws-info-table .el-form-item .el-form-item__content {
  // border: 0px solid #d8dce6;
  border-radius: 0px;
  border-left: none;
  border-bottom: none;
  border-top: none;
}
/deep/.liaison .ws-info-table{
  background: #F6F7FC;
border-radius: 4px;
border: 1px solid #D8DCE6;
margin-top: 20px;
}
//送达/未送达
.noservice,
.service {
  display: inline-block;
  border-radius: 4px;
  border: 1px solid #d8dce6;
  padding: 2px;
  font-size: 12px;
}
.noservice {
  background: #c4cada;
  color: #ffffff;
}
.service {
  background: #e5f1f7;
  color: #50cad4;
}
//添加司机
.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;
}
</style>
