<template>
  <!--  <el-dialog title="收货地址" :visible.sync="dialogFormVisible">-->
  <el-container>
    <el-header style="width: 100%; height: 80px;font-size: 12px">
      <el-form :inline="true"  label-width="60px"  label-position="left">
        <el-row>
          <el-col :span="22">
            <el-form-item label="状态:">
              <el-select v-model="queryParam.zt" placeholder="状态" clearable @change="ztChange">
                <el-option
                  v-for="item in statusOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="船号:">
              <vxe-pulldown ref="xDown4" transfer >
                <template #default>
                  <vxe-input
                    v-model="queryParam.dcch"
                    placeholder="船号"
                    style="height: 28px;
                    line-height: 28px; width: 140px;"
                    suffix-icon="vxe-icon--search"
                    @keyup="keyupEvent4"
                    @focus="focusEvent4"
                  />
                </template>
                <template #dropdown>
                  <div class="my-dropdown  mytable " style="width: 250px">
                    <vxe-grid
                      highlight-hover-row
                      height="auto"
                      :data="projectData"
                      :columns="projectColumns"
                      @cell-click="cellClickEvent"
                      show-overflow
                    >
                      <template #wgbsEdit="{ row}">
                        <vxe-checkbox v-model="row.wgbs"  checked-value="Y" unchecked-value="N"   disabled ></vxe-checkbox>
                      </template>
                    </vxe-grid>
                  </div>
                </template>
              </vxe-pulldown>
            </el-form-item>
            <el-form-item label="批量:">
              <el-input v-model="queryParam.pl" type="search" placeholder="批量" ></el-input>
            </el-form-item>
            <el-form-item label="分段:">
              <el-input v-model="queryParam.fd" type="search" placeholder="分段" ></el-input>
            </el-form-item>
            <el-form-item label="套料图:">
              <el-input v-model="queryParam.tlth" type="search" placeholder="套料图" style="width: 130px" ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="2">
            <el-form-item style="float: right" >
              <el-button type="success" @click="initList">查询</el-button>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20"  >
            <VxeSelect v-model="plParam.qy" ref="qyRef" clearable :options="qyList" @change="qyChange" style="margin-left: 10px;width: 125px" placeholder="选择区域"/>
            <VxeSelect v-model="plParam.dw" ref="dwRef" clearable :options="dwList" style="width: 115px" placeholder="选择垛位"/>
            <VxeButton status="primary" content="批量" @click="pl" />
          </el-col>
          <el-col :span="4" >
            <el-form-item style="float: right" >
              <el-button type="success" @click="slpgclick">保存</el-button>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-header>
    <el-container  style="padding-top: 0px">
      <el-container>
        <el-main>
          <PPComponent ref="ppComponentRef" :height="695" />
        </el-main>
      </el-container>
    </el-container>
  </el-container>
</template>

<script>
import { VXETable } from 'vxe-table'
import {
  saveDmPgdXd, getDmPgd, getPgdBase, saveDmPgdFk, saveDmPgdJs, saveDmPgdXdBack, getQmPgd
} from '@/api/jhzxgl/pgd'
import { mapGetters } from 'vuex'
import XEUtils from 'xe-utils'
import {null2str} from "@/utils/rpkj";
import { getToken } from '@/utils/auth'
import { startLoading, endLoading } from '@/utils'
import { Message } from 'element-ui'
import {saveDmppxxb, getDmppxxbList, saveBfwz} from "@/api/jhzxgl/ypp";
import PPComponent from "@/views/zyjhzx/bfang/comps/PPComponent.vue";
import {EventBus} from "@/event-bus";
import {getBFangDwxx} from "@/views/zyjhzx/bfang/comps/api";
export default {
  name:'YppGL',
  components: {PPComponent},
  data() {
    return {
      qyList:[],
      dwList:[],
      plParam:{
        qy:'',
        dw:''
      },
      queryParam: {
        dcch:'',
        pl:'',
        fd:'',
        fkyy:'',
        zt:'01',
        'lx':'d',
        qgkw:'',
        tlth:'',
        qy:'',
        dw:''
      },
      statusOptions: [
        {
          value: "01",
          label: "未配盘",
        },
        {
          value: "02",
          label: "已配盘·",
        },
      ],
      inParam:{
        qy:'',
        dw:''
      },
      dwxxs:[],
      zyqs:[],
      zyrys:[],
      list: [],
      heads: { token: getToken() },
      uploadAction: process.env.VUE_APP_BASE_API + '/dmCzplpNew/uploadPl',
      dictData:{},
      height: '500px',
      projectData:[],
      projectData1:[],
      projectColumns: [
        {field: 'cbbm', title: '船号',width: 110},
        { field: 'wgbs', title: '完工标识', width: 80,
          slots:{
            default: 'wgbsEdit'
          },
        },
      ],
    }
  },
  computed: {
    ...mapGetters(['name', 'bmbm'])
  },
  created() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
    this.initBase()
    this.getDw()
  },
  methods: {
    pl(){
      EventBus.$emit('pl', this.plParam)
    },
    getDw(){
      getBFangDwxx().then((res)=>{
        this.qyData=res.data
        this.qyList=[]
        Object.keys(this.qyData).forEach(key=>{
          const qy={label:key,value:key};
          this.qyList.push(qy)
        })
      })
    },
    qyChange({value}){
      this.dwList=[]
      this.qyData[value]?.forEach(item=>{
        const dw={label:item.dwh,value:item.dwh};
        this.dwList.push(dw)
      })
    },
    cellClickEvent({row}) {
      this.queryParam.dcch = row.cbbm
      this.$refs.xDown4.hidePanel()
    },
    focusEvent4() {
      this.$refs.xDown4.showPanel()
    },
    keyupEvent4() {
      if (this.queryParam.dcch) {
        this.projectData = this.projectData1.filter(row => row.cbbm.indexOf(this.queryParam.dcch.toUpperCase()) > -1)
      } else {
        this.projectData = this.projectData1.slice(0)
      }
    },
    ztChange(){
      this.list=[]
    },
    bzClick(){
      this.dictData.dwxxs= this.dwxxs.filter(fst=>fst.qy===this.queryParam.qy)
    },
    bzClick1(){
      this.dictData.dwxxs1= this.dwxxs.filter(fst=>fst.qy===this.inParam.qy)
    },
    async updates2() {
      let selectRecords = this.$refs.xGrid.getCheckboxRecords()
      const dw = this.dictData.dwxxs.filter(item => item.dwh === this.inParam.dw && item.qy === this.inParam.qy)
      if (selectRecords.length > 0 && dw.length > 0) {
        const selectDw = dw[0]

        for (let i = 0; i < selectRecords.length; i++) {
          const item = selectRecords[i]
          if (selectDw.dcCh && selectDw.dcPl && selectDw.dcFd) {
            if (item.czbh !== selectDw.dcCh || item.pl !== selectDw.dcPl || item.fd !== selectDw.dcFd) {
              const res = await VXETable.modal.confirm(`您确定要摆放到已经存放了${selectDw.dcCh},${selectDw.dcPl},${selectDw.dcFd}的垛位吗？`)
              if (res !== 'confirm') {
                break
              }
            }
          }

          selectRecords[i].qq = this.inParam.qy
          selectRecords[i].dw = this.inParam.dw
        }

        this.$refs.xGrid.updateData(this.list)
      }
    },
    updates(type){
      let selectRecords = this.$refs.xGrid.getCheckboxRecords()

      if(selectRecords.length>0){
        for(let i = 0; i < selectRecords.length; i++) {
          if(type==='1'){

            selectRecords[i].slksrq = this.inParam.slks
          }else if (type==='2'){
            selectRecords[i].dmFkry = this.inParam.slry
            selectRecords[i].dmFkrq = this.inParam.sljs
          }

        }
        this.$refs.xGrid.updateData(this.list)
      }

    },
    activeRowMethod({ row, rowIndex }){
      return true;
    },
    initBase(){
      getPgdBase({}).then(res=>{
        this.zyqs=res.data.zyqs
        this.dwxxs=res.data.dwxxs
        this.zyrys=res.data.zyrys
        this.dictData = res.data
        this.projectData=res.data.cbbm
        this.projectData1=res.data.cbbm
      })
    },
    plClick(){
      let selectRecords = this.$refs.xGrid.getCheckboxRecords()
      if(selectRecords.length>0){
        for(let i = 0; i < selectRecords.length; i++) {
          selectRecords[i].fkyy = this.queryParam.fkyy
        }
        this.$refs.xGrid.updateData(this.list)
      }
    },
    saveclick(){
      if(this.queryParam.zt!=='02'){
        return
      }
      let obj=this.$refs.xGrid.getCheckboxRecords()
      saveDmPgdFk(obj).then(res=>{
        if(res.success){
          this.initList()
        }
      })
    },
    slpgclick(){
      EventBus.$emit('bfSave', {})
      let obj=this.$refs.xGrid.getCheckboxRecords()
      if(obj.length===0){
        return
      }
      if (this.queryParam.zt==='01') {
          this.$confirm('保存？', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() =>{
            let selectRecords = this.$refs.xGrid.getCheckboxRecords()
            const dw = this.dictData.dwxxs.filter(item => item.dwh === this.inParam.dw && item.qy === this.inParam.qy)
            if (dw.length > 0) {
              const selectDw = dw[0]
              if (!selectDw.dcCh && !selectDw.dcPl && !selectDw.dcFd) {
                selectDw.dcCh = selectRecords[0].czbh
                selectDw.dcPl = selectRecords[0].pl
                selectDw.dcFd = selectRecords[0].fd
                saveBfwz({edit:[selectDw]}).then(res=>{})
              }
            }
            saveDmppxxb(obj).then(res=>{
              if(res.success){
                this.initList()
              }
            })

          })
      }
    },
    xdClick(){
      if(this.queryParam.zt!=="02"){
        return
      }
      let obj=this.$refs.xGrid.getCheckboxRecords()
      if(obj.length===0){
        return
      }
      this.$confirm('接收？', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() =>{
        saveDmPgdJs(obj).then(res=>{
          if(res.success){
            this.$message({ message: '接收成功', type: 'success' })
            this.initList()
          }
        })

      })
    },
    initList() {
      if (this.queryParam.dcch === '') {
        this.$message.warning('选择船只编号')
        return
      }
      const data={
        dcCh:this.queryParam.dcch,
        zyq:this.bmbm,
        dcPl:this.queryParam.pl,
      }
      EventBus.$emit('bfSearch', data)
    },
    selectChange(row) {
      this.$refs.xGrid.clearEdit() // 清除单元格激活状态
      null2str(row.row)
    },
    getHeight() {
      this.height = window.innerHeight - 190
    },
  }
}
</script>
<style lang="scss" scoped >
.el-header{margin:0;padding: 5px;height:auto;
  .el-input{
    width: 80px;
  }
  .el-select{
    width: 90px;
  }
}

.el-container{padding: 0;margin:0;}
.el-main{padding: 0;}
.el-col{padding: 0;height: 32px;}
.el-aside{background: #fff;padding: 0}
.el-container{padding: 0}
.el-row {}
.el-row:last-child {margin-bottom: 0; }

.tableStyles{
  background: #0a76a4;
}

.my-dropdown {
  width: 400px;
  height: 400px;
  background-color: #fff;
  border: 1px solid #dcdfe6;
  box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
  font-size: 12px;

}
.mytable1{

}
.borderClass{

}
.vxe-input {
  display: inline-block !important;
  position: relative !important;
  width: auto;
}
.el-input {
  display: inline-block !important;
  position: relative !important;
  width: auto;
}
.keyword-lighten {
  color: #000;
  background-color: #FFFF00;
}

.vxe-textarea--inner {
  line-height: inherit;
}
.el-form-item__label-wrap {
  margin-left: 0px !important;
  float: left;
}
.fontClass{
  font-size: 12px;
  font-weight: bold;
}


</style>
