<template>
  <div>
    <el-card>
      <el-row type="flex">
        <el-col style="flex: 1" v-show="Dictionary">
          <el-col v-if="showSearch" style="min-width: 200px; max-width: 100%">
            <el-tree
              :data="treeList"
              class="tree"
              :default-expand-all="true"
              @node-click="handleNodeClick"
              :expand-on-click-node="false"
              highlight-current
            >
              <span class="custom-tree-node" slot-scope="{ node, data }">
                <span style="font-size: 14px; font-weight: 500; width:200px">{{
                    node.label
                  }}</span>
                  <el-button
                    type="text"
                    size="mini"
                    style="margin-left: 10px"
                    v-if="data.parentCode == null"
                    @click="() => append(data,'add')"
                  >
                  新增
                </el-button>
                <el-button
                  v-if="data.parentCode != null"
                  type="text"
                  size="mini"
                  style="margin-left: 10px"
                  @click="() => append(data, 'edit')"
                >
            编辑
          </el-button>
          <el-button
            type="text"
            size="mini"
            v-if="data.parentCode != null"
            @click="delTree(data)"
          >
            删除
          </el-button>

              </span>
            </el-tree>
          </el-col>
        </el-col>

        <el-button
          type="success"
          @click="Dictionary = !Dictionary"
          icon="el-icon-arrow-left"
          v-show="Dictionary"
          class="iconButton"
        >
        </el-button>
        <el-button
          type="success"
          @click="Dictionary = !Dictionary"
          icon="el-icon-arrow-right"
          v-show="!Dictionary"
          class="iconButton"
        >
        </el-button>

        <el-col style="border-left: 3px solid #dddddd; overflow-y: hidden">
          <el-card>
            <el-form :model="query" label-width="auto" v-show="showSearch" size="mini" class="order-el-form">
              <el-row :gutter="20">
                <el-col :span="8">

                  <el-form-item label="当前部门:" class="query-form-item">
                    <el-select v-model="query.deptCode" class="width-full" placeholder="请选择" filterable clearable
                               @change="changeDept" style="width: 80%"
                    >
                      <el-option v-for="item in DeptList" :key="item.id" :label="item.name" :value="item.code"/>
                    </el-select>
                    <!--<el-option v-for="item in " :key="item.id" :label="item.name" :value="item.code"/>-->
                    <!--  <deptSelect  :value.sync="userQuery.deptCode"-->
                    <!--               :changeValue.sync="changeUsers"/>-->
                    <!--  &lt;!&ndash;<deptSelect :value.sync="query.invCode" :params.sync="filterBadInv" :changeValue.sync="invChange"/>&ndash;&gt;-->
                  </el-form-item>
                </el-col>
                <!--<el-col :span="8">-->
                <!--  <el-form-item label="当前部门:" class="query-form-item">-->
                <!--    <deptSelect style="width: 80%" :value.sync="query.deptCode"/>-->
                <!--    &lt;!&ndash;<deptSelect :value.sync="query.invCode" :params.sync="filterBadInv" :changeValue.sync="invChange"/>&ndash;&gt;-->
                <!--  </el-form-item>-->
                <!--</el-col>-->
                <el-col :span="8">
                  <el-form-item label="编码/名称:" class="query-form-item">
                    <el-input v-model="query.key" placeholder="请输入编码/工位名称" clearable style="width: 80%">
                    </el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="8">
                  <el-form-item label="工位状态:" class="query-form-item">
                    <el-select v-model="query.workplaceStatus" placeholder="工位状态" clearable style="width: 80%">
                      <el-option label="暂停" :value="0"></el-option>
                      <el-option label="启用" :value="1"></el-option>
                    </el-select>
                  </el-form-item>

                </el-col>
              </el-row>
            </el-form>
            <div class="top-right-btn">
              <el-button-group>
<!--                <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button>-->
                <el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button>
                <el-button type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
                <el-button type="primary" icon="el-icon-plus" @click="addCargowWorkplace">新增上货工位</el-button>
              </el-button-group>
            </div>
            <el-table v-loading="loading" :data="list" style="width: 100%" :row-style="{height: '32px' }"
                      highlight-current-row @current-change="handCurrentChange"
            >
              <el-table-column type="index" label="序号"></el-table-column>
              <el-table-column label="工位编码" prop="workplaceId" width="90"></el-table-column>
              <el-table-column label="工位名称" prop="workplaceName" width="120"></el-table-column>
              <!--<el-table-column label="工位类型" prop="workplaceType" width="90">-->
              <!--  <template slot-scope="scope">-->
              <!--    <span>{{ workplaceTypeMao[scope.row.workplaceType] }}</span>-->
              <!--  </template>-->
              <!--</el-table-column>-->
              <!--              <el-table-column label="库存预警数" prop="invRemindNumber" width="90"></el-table-column>-->
              <el-table-column label="工位状态" prop="workplaceStatus" width="90">
                <template slot-scope="scope">
                  <span>{{ workplaceStatusMap[scope.row.workplaceStatus] }}</span>
                </template>
              </el-table-column>
              <el-table-column label="工位类型" prop="workPlaceClass" width="90">
                <template slot-scope="scope">
                  <span>{{ workPlaceClasss[scope.row.workPlaceClass] }}</span>
                </template>
              </el-table-column>
              <el-table-column label="货位上架" prop="queueStatus" width="90">
                <template slot-scope="scope">
                  <span>{{ queueStatusMap[scope.row.queueStatus] }}</span>
                </template>
              </el-table-column>
              <!--<el-table-column label="所属组别" prop="categoryName" width="90"></el-table-column>-->
              <!--<el-table-column label="单据类型编号" prop="busTypeCode" width="100"></el-table-column>-->
              <!--<el-table-column label="单据类型名称" prop="busTypeName" width="100"></el-table-column>-->
              <!--<el-table-column label="单据来源系统" prop="fromTypeName" width="100"></el-table-column>-->
              <el-table-column label="所属部门" prop="deptCodeName" width="90"></el-table-column>
              <!--<el-table-column label="默认仓库" prop="invName" width="90"></el-table-column>-->

              <el-table-column label="工位负责人" prop="employeeName" width="90"></el-table-column>

              <el-table-column label="创建时间" prop="createTime" width="140"></el-table-column>
              <el-table-column label="备注" prop="remake" width="140"></el-table-column>
              <el-table-column label="操作" fixed="right" width="240">
                <template slot-scope="scope">
                  <el-button
                    type="text"
                    size="small"
                    @click.native.stop="printLabel(scope.row)"
                  >工位标签
                  </el-button>
                  <el-button
                    type="text"
                    size="small"
                    @click.native.stop="printQueueList(scope.row)"
                  >货位标签
                  </el-button>

                  <el-button
                    type="text"
                    size="small"
                    @click.native.stop="edit(scope.row)"
                  >编辑
                  </el-button>
                  <el-button
                    type="text"
                    size="small"
                    @click.native.stop="deleteWorkplace(scope.row)"
                  >删除
                  </el-button>
                </template>
              </el-table-column>
            </el-table>
            <pagination
              :total="total"
              :limit.sync="query.limit"
              :page.sync="query.page"
              @pagination="getList"
            >
            </pagination>
          </el-card>

          <el-tabs type="border-card" style="margin: 15px" @tab-click="handleTabClick">
            <el-tab-pane>
              <!--              {{ workplaceName }}--->
              <span slot="label">采集工位</span>
              <el-form :inline="true" :model="cargowQuery" class="query-form" size="mini"
                       style="margin-bottom: 10px"
              >
                <el-form-item class="query-form-item" label="采集工位名称:">
                  <el-input
                    v-model="cargowQuery.keyWords"
                    placeholder="采集工位/业务名称"
                    clearable
                  ></el-input>
                </el-form-item>
                <el-form-item>
                  <el-button-group>
                    <el-button
                      type="primary"
                      icon="el-icon-refresh"
                      @click="onCollectList"
                    >重置
                    </el-button>
                    <el-button type="primary" @click="loadCollectList"
                               icon="el-icon-search"
                    >查询
                    </el-button
                    >
                    <el-button type="primary" @click="chooseCollect"
                               icon="el-icon-plus"
                    >选入采集工位
                    </el-button
                    >
                  </el-button-group>
                </el-form-item>
              </el-form>
              <el-table :data="collectList" style="width: 100%;" :row-style="{height: '32px' }"
                        highlight-current-row
              >
                <el-table-column type="index" label="序号"></el-table-column>
                <!--                <el-table-column label="业务类型编码 " prop="documentTypeCode" width="100"></el-table-column>-->
                <el-table-column label="采集工位名称" prop="collectName"></el-table-column>
                <el-table-column label="业务名称 " prop="busTypeName"></el-table-column>
                <el-table-column label="操作" fixed="right" width="120">
                  <template slot-scope="scope">
                    <!--                    <el-button-->
                    <!--                      type="text"-->
                    <!--                      size="small"-->
                    <!--                      @click.native.stop="updateBusType(scope.row)"-->
                    <!--                    >编辑-->
                    <!--                    </el-button>-->
                    <el-button
                      type="text"
                      size="small"
                      @click.native.stop="removeCollect(scope.row)"
                    >删除
                    </el-button>
                  </template>
                </el-table-column>
              </el-table>
              <pagination
                :total="collectTotal"
                :limit.sync="cargowQuery.limit"
                :page.sync="cargowQuery.page"
                @pagination="getCargowBindCollectList()"
              >
              </pagination>
            </el-tab-pane>
            <el-tab-pane label="取货架" name="huojia">
              <!--              {{ workplaceName }}--->
              <freightManage
                ref="freightManage"
                :workplaceId="workplaceId"
              ></freightManage>
            </el-tab-pane>
          </el-tabs>
        </el-col>

        <el-dialog
          title="选入采集工位"
          :visible.sync="chooseCollectDialogVisible"
          width="60%"
          v-if="chooseCollectDialogVisible"
          :close-on-click-modal="false"
          :close-on-press-escape="false"
          @close=""
        >
          <addCollectWorkplace
            :deptCode="deptCode"
            :workplaceId="workplaceId"
            :collectWorks="collectWorks"
            :closeDialog="closeDialog"
          >

          </addCollectWorkplace>
        </el-dialog>

        <el-dialog
          :title="fromMap[fromName]"
          :visible.sync="addWorkplaceDialogVisible"
          width="60%"
          v-if="addWorkplaceDialogVisible"
          :close-on-press-escape="false"
          :close-on-click-modal="false"
          :show-close="false"
        >
          <el-form :model="formData" style="width: 100%;" ref="dataForm" :rules="formRules"
                   label-width="auto"
          >
            <el-row :gutter="24">
              <el-col :span="12" class="el-col">
                <el-form-item label="工位编码:" prop="workplaceId" class="query-form-item">
                  <el-input
                    disabled
                    v-model="formData.workplaceId" style="width: 80%"
                    auto-complete="off"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="12" class="el-col">
                <el-form-item label="工位名称:" prop="workplaceName" class="query-form-item">
                  <el-input
                    v-model="formData.workplaceName" style="width: 80%"
                    auto-complete="off"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="24">
              <el-col :span="12" class="el-col">
                <el-form-item label="工位状态:" prop="workplaceStatus" class="query-form-item">
                  <el-select v-model="formData.workplaceStatus" style="width: 80%" placeholder="工位状态">
                    <el-option label="暂停" :value=0></el-option>
                    <el-option label="启用" :value=1></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <!--<el-col :span="12" class="el-col">-->
              <!--  <el-form-item label="工位类型:" prop="workPlaceClass" class="query-form-item">-->
              <!--    <el-select v-model="formData.workPlaceClass" style="width: 80%" placeholder="工位类型" disabled>-->
              <!--      <el-option label="采集工位" :value="1"></el-option>-->
              <!--      <el-option label="上货工位" :value="2"></el-option>-->
              <!--    </el-select>-->
              <!--  </el-form-item>-->
              <!--</el-col>-->
              <el-col :span="12" class="el-col">
                <el-form-item prop="deptCode" label="所属部门:">
                  <el-select v-model="formData.deptCode" placeholder="请选择部门" clearable
                             style="width: 80%"
                             @change="handleInvChange"
                  >
                    <el-option v-for="item in deptList" :key="item.id" :label="item.name" :value="item.code"/>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="24">

              <el-col :span="12" class="el-col">
                <el-form-item label="工位负责人:" prop="chargeUser" class="query-form-item">
                  <el-select v-model="formData.chargeUser" placeholder="请选择负责人"
                             style="width: 80%"
                             clearable
                  >
                    <el-option
                      v-for="item in users"
                      :key="item.id"
                      :label="item.employeeName"
                      :value="item.id"
                    >
                      <span style="float: left">{{ item.employeeName }}</span>
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12" class="el-col">
                <el-form-item label="所属组别:" prop="constituencies" class="query-form-item">
                  <el-select v-model="formData.constituencies" placeholder="请选择所属组别"
                             style="width: 80%"
                  >
                    <el-option
                      v-for="item in fromDeptOptions"
                      :key="item.code"
                      :label="item.label"
                      :value="item.code"
                    >
                      <span style="float: left">{{ item.label }}</span>
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="24">
              <el-col :span="12" class="el-col">
                <el-form-item label="按货位上架:" prop="queueStatus" class="query-form-item">
                  <el-select v-model="formData.queueStatus" style="width: 80%" placeholder="货位上架">
                    <el-option label="关闭" :value="0"></el-option>
                    <el-option label="启用" :value="1"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="12" class="el-col">
                <el-form-item label="所属业务类型:" prop="productType" class="query-form-item">
                  <el-select v-model="formData.productType" style="width: 80%" placeholder="所属业务类型">
                    <el-option label="器械业务" :value="1"></el-option>
                    <el-option label="药品业务" :value="2"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row :gutter="24">

              <el-col :span="12" class="el-col">
                <el-form-item label="备注:" prop="remake" class="query-form-item">
                  <el-input
                    v-model="formData.remake" style="width: 80%"
                    auto-complete="off"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click.native="hideForm">取消</el-button>
            <el-button
              type="primary"
              @click.native="formSubmit()"
            >提交
            </el-button
            >
          </div>
        </el-dialog>

        <el-dialog
          :title="formMap[formName]"
          append-to-body
          :close-on-click-modal="false"
          :close-on-press-escape="false"
          :visible.sync="subFormVisible"
          width="45%"
          top="5vh"
        >
          <el-form :model="subData" ref="dataForm" label-width="80px">
            <el-row :gutter="20" class="el-row" type="flex">
              <el-col class="el-col">
                <el-form-item label="上级菜单" prop="parentCode">
                  <!--<el-select v-model="subData.parentCode" placeholder="选择上级菜单"-->
                  <!--           style="width: 80%"-->
                  <!--           clearable-->
                  <!--           disabled-->
                  <!--&gt;-->
                  <!--  <el-option-->
                  <!--    v-for="item in fromDeptOptions"-->
                  <!--    :key="item.parentCode"-->
                  <!--    :label="item.parentName"-->
                  <!--    :value="item.parentCode"-->
                  <!--  >-->
                  <!--    <span style="float: left">{{ item.parentName }}</span>-->
                  <!--  </el-option>-->
                  <!--</el-select>-->
                  <el-input
                    v-model="subData.parentName" style="width: 80%"
                    placeholder="全部"
                    auto-complete="off"
                    disabled
                  >
                  </el-input>
                </el-form-item>
              </el-col>

            </el-row>
            <el-row :gutter="20" class="el-row" type="flex">
              <el-col class="el-col">
                <el-form-item label="名称" prop="name" class="query-form-item">
                  <el-input
                    v-model="subData.name" style="width: 80%"
                    placeholder="请输入名称"
                    auto-complete="off"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row class="el-row" type="flex">
              <el-col class="el-col">
                <el-form-item label="备注:" prop="remark" class="query-form-item">
                  <el-input
                    v-model="subData.remark"
                    type="textarea"
                    style="width: 80%"
                    auto-complete="off"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click.native="subFormVisible = false">取消</el-button>
            <el-button
              type="primary"
              @click.native="forInvSubmit()"
              :loading="subLoading"
            >提交
            </el-button
            >
          </div>
        </el-dialog>

        <el-dialog
          :title="plaids[plaidName]"
          :visible.sync="plaidDialogVisible"
          width="60%"
          v-if="plaidDialogVisible"
          :close-on-click-modal="false"
          :close-on-press-escape="false"
          @close=""
        >
          <addPlaidDialog
            :workplaceId="workplaceId"
            :closeDialog="closePlaidDialog"
            :queueData="queueData"
          >

          </addPlaidDialog>
        </el-dialog>

      </el-row>
    </el-card>
  </div>
</template>

<script>


import { filterList } from '@/api/system/invWarehouse'
import {
  addWorkplace,
  createWorkplaceId,
  deleteWorkplace,
  getUsers,
  listPage, printQueues,
  printWorkLabel, updateWorkplace
} from '@/api/basic/workPlace/sysWorkplaceManage'
import { addTree, deleteTree, getTree, updateTree } from '@/api/basic/collectPoint/collectPointManage'
import { delCollect, getBindCollectList } from '@/api/basic/collectPoint/cargowWorkplaceManage'
import addCollectWorkplace from './addCollectWorkplace'
import addPlaidDialog from './addPlaidDialog'
import freightManage from "./freightManage"
import {  printQueueLabel } from '@/api/basic/workPlace/SysWorkplaceQueue'
import { getWorkplaceFreightList } from '@/api/basic/workPlace/SysWorkplaceFreight'

export default {
  components: { addCollectWorkplace, addPlaidDialog,freightManage },
  data() {
    return {
      Dictionary: false,
      showSearch: true,
      workplaceCode: '6001',
      treeList: [
        {
          code: '1001',
          parentCode: null,
          label: '全部'
        }
      ],
      query: {
        page: 1,
        limit: 10,
        code: null,
        workplaceStatus: 1,
        workPlaceClass: 2,
        deptCode: this.$store.getters.locDeptCode
      },
      freightQuery: {
        page: 1,
        limit: 4,
        workPlaceIdFk: "",
        key: "",
        // code: null,
        // workplaceStatus: 1,
        // workPlaceClass: 2,
        // deptCode: this.$store.getters.locDeptCode
      },
      DeptList: [],
      list: [],
      collectList: [],
      queueList: [],
      collectList1: [],
      collectAndTypeIds: [],
      users: [],
      busTypeTotal: 0,
      total: 0,
      subFormVisible: false,
      subData: {
        parentName: '全部',
        parentCode: '1001'
      },
      isMatchings: {
        0: '否',
        1: '是'
      },
      operationTypes: {
        1: '扫码生成业务单',
        2: '按单校验三期',
        3: '按单不校验三期'
      },
      inoutTypes: {
        1: '是',
        2: '否'
      },
      autoTagTypes: {
        1: '是',
        0: '否'
      },
      monopolys: {
        1: '是',
        0: '否'
      },
      corpTypeMap: {
        1: '客户',
        2: '供应商',
        3: '内部科室',
        4: '特殊往来'
      },
      checkInserts: {
        1: '自动添加',
        2: '自动不添加',
        3: '根据提醒决定'
      },
      orderCirTypes: {
        1: '流通计量单位',
        2: '使用计量单位'
      },
      inAndOutTypes: {
        1: '入库',
        2: '出库',
        3: '流转'
      },
      workplaceStatusMap: {
        0: '暂停',
        1: '启用'
      },
      workPlaceClasss: {
        1: '采集工位',
        2: '上货工位'
      },
      queueStatusMap: {
        0: '关闭',
        1: '启用'
      },
      orderFinishVerifys: {
        0: '完全赋码',
        1: '部分赋码',
        2: '赋码超出',
        4: ''
      },
      warnTypeMap: {
        1: '信息提醒',
        2: '信息弹框提醒',
        3: '不提醒'
      },
      isPopulars: {
        1: '是',
        0: '否'
      },
      shippers: {
        1: '原始单据的发货方',
        2: '原始单据的收货方',
        3: '用户所属仓库'
      },
      consignees: {
        1: '原始单据的收货方',
        2: '原始单据的发货方',
        3: '供应商',
        4: '客户',
        5: '特殊往来',
        6: '内部科室',
        7: '填写'
      },
      userList: [],
      userLoading: false,
      rowData: {
        workplaceName: '工位'
      },
      cargowQuery: {
        page: 1,
        limit: 10,
        keyWords: null,
        workPlaceCode: null
      },
      queueQuery: {
        page: 1,
        limit: 10,
        key: null,
        workPlaceIdFk: null
      },
      queueData: null,
      collectTotal: 0,
      queueTotal: 0,
      busQuery: {
        busKey: '',
        workplaceCode: null,
        page: 1,
        limit: 10
      },
      chooseCollectDialogVisible: false,
      plaidDialogVisible: false,
      workplaceId: null,
      collectWorkPlaceCodes: [],
      collectBusTypeCodes: [],
      collectWorks: [],
      plaidName: 'add',
      plaids: {
        'add': '新增货位',
        'edit': '编辑货位'
      },
      fromName: 'add',
      fromMap: {
        'add': '新增上货工位',
        'edit': '编辑上货工位'
      },
      formName: 'add',
      formMap: {
        add: '新增分组',
        edit: '编辑分组'
      },
      groupData: null,
      addWorkplaceDialogVisible: false,
      formData: {
        workplaceId: null,
        workplaceName: null,
        workplaceStatus: 1,
        workplaceType: 3,
        workPlaceClass: 2,
        deptCode: null,
        chargeUser: null,
        constituencies: null,
        invRemindNumber: 0,
        queueStatus: 0,
        remake: null,
        productType:1
      },
      fromDeptOptions: [],
      invQuery: {
        invCode: '',
        deptCode: ''
      },
      formRules: {
        workplaceName: [
          { required: true, message: '请输入工位名称', trigger: 'blur' }
        ],
        workplaceStatus: [
          { required: true, message: '请选择工位状态', trigger: 'blur' }
        ],
        productType: [
          {required: true, message: '请选择所属业务类型', trigger: 'blur'}
        ]
        // workplaceType: [
        //   { required: true, message: '请选择工位类型', trigger: 'blur' }
        // ]
      },
      deptCode: null,

    }
  },
  computed: {},
  methods: {
    append(data, formName) {//新增 编辑
      this.formName = formName
      if (formName === 'edit') {
        this.subData = JSON.parse(JSON.stringify(data))
        this.subData.name = JSON.parse(JSON.stringify(data.label))
      } else if (formName === 'add') {
        this.subData = {
          parentCode: JSON.parse(JSON.stringify(data)).code
        }
        let parentData = {
          parentCode: JSON.parse(JSON.stringify(data)).code,
          parentName: JSON.parse(JSON.stringify(data.label))
        }
        this.fromDeptOptions.push(parentData)
      }
      this.subFormVisible = true
    },
    delTree(row) {
      deleteTree(row).then(res => {
        if (res.code == 20000) {
          this.$message.success('删除成功')
          this.getLstTree()
        } else {
          this.$message.error(res.message)
        }
      })
    },
    hideSearch() {
      this.showSearch = !this.showSearch
    },
    onSubmit() {
      this.collectList = []
      // this.workplaceName = '工位'
      this.query.page = 1
      this.getList()
    },
    onReset() {
      this.collectList = []
      this.$router.push({
        path: ''
      })
      this.query = {
        page: 1,
        limit: 20,
        workplaceStatus: 1,
        workPlaceClass: 2,
        deptCode: this.$store.getters.locDeptCode
      }
      this.getList()
      this.collectList = []
    },
    changeDept() {
      this.collectList = []
      this.getList()
      this.$refs.freightManage.getAllList();
    },
    handleInvChange(deptCode) {
      this.invQuery.deptCode = deptCode
      this.formData.chargeUser = null
      getUsers(this.invQuery).then(res => {
        if (res.code == 20000) {
          this.users = res.data.list || []
        } else {
          this.$message.error('错误')
        }
      })
    },
    getDepts() {
      let data =
        {
          enable: true
        }
      filterList(data).then(res => {
        if (res.code == 20000) {
          this.DeptList = res.data.list || []
        }
      })
    },
    getList() {
      listPage(this.query).then(res => {
        if (res.code != 20000) {
          return this.$message.error(res.message)
        }
        this.list = res.data.list || []
        this.total = res.data.total || 0
      })
    },
    handCurrentChange(row) {
      this.rowData = row
      this.workplaceName = row.workplaceName
      // this.userQuery.workplaceCode = row.workplaceId
      this.workplaceId = row.workplaceId
      // this.getUserBindWork(this.cargowQuery)
      // this.getWorkBindBusTypes()
      this.getCargowBindCollectList()
      //获取货架列表

      this.$refs.freightManage.getAllList(row.workplaceId)
    },
    getFreightList(){
      getWorkplaceFreightList(this.freightQuery).then(res => {
        if (res.code == 20000){
          this.freightList = res.data.list || []
          this.total =  res.data.total || 0
        }else {
          this.total = 0
          this.freightList = []
        }
      })
    },
    getCargowBindCollectList() {
      this.cargowQuery.workPlaceCode = this.rowData.workplaceId
      getBindCollectList(this.cargowQuery).then(res => {
        if (res.code != 20000) {
          return this.$message.error('获取失败')
        }
        this.collectList = res.data.list || []
        this.collectTotal = res.data.total || 0

      })
    },


    onCollectList() {
      if (this.rowData.workplaceId == null) {
        return this.$message.error('请选择上货工位')
      }
      this.$router.push({
        path: ''
      })
      this.cargowQuery = {
        page: 1,
        limit: 10,
        keyWords: null,
        workPlaceCode: null
      }
        this.getCargowBindCollectList()
    },
    loadCollectList() {
      if (this.rowData.workplaceId == null) {
        return this.$message.error('请选择上货工位')
      }
      this.cargowQuery.page = 1
      this.getCargowBindCollectList()
    },
    loadQueueList() {
      if (this.rowData.workplaceId == null) {
        return this.$message.error('请选择上货工位')
      }
      this.queueQuery.page = 1
    },
    chooseCollect() {
      if (this.rowData.workplaceId == null) {
        return this.$message.error('请选择上货工位')
      }
      this.cargowQuery.workPlaceCode = this.rowData.workplaceId
      this.cargowQuery.limit = 1000
      getBindCollectList(this.cargowQuery).then(res => {
        if (res.code != 20000) {
          return this.$message.error('获取失败')
        }
        this.deptCode = this.rowData.deptCode
        this.collectList1 = res.data.list || []
        this.collectWorks = this.collectList1.map(item => item.collectAndTypeCodes)
        this.chooseCollectDialogVisible = true
        this.cargowQuery.limit = 10
      })

      // this.collectWorks = this.collectWorkPlaceCodes.concat(this.collectBusTypeCodes);

    },

    removeCollect(row) {
      this.$confirm('此操作将永久删除该采集工位, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delCollect(row).then(res => {
          if (res.code != 20000) {
            this.$message.error(res.message)
          } else {
            this.$message.success('删除成功')
            this.getCargowBindCollectList()
          }
        })
      }).catch(() => {

      })
    },
    handleNodeClick(row) {
      this.groupData = row
      this.query.code = row.code
      if (this.query.code == 1001) {
        this.query.code = null
      }
      this.getList()
    },
    closeDialog() {
      this.getCargowBindCollectList()
      this.chooseCollectDialogVisible = false
    },

    printLabel(row) {
      row.labelId = 6
      printWorkLabel(row).then((response) => {
        const binaryData = []
        binaryData.push(response)
        let url = window.URL.createObjectURL(
          new Blob(binaryData, { type: 'application/pdf' })
        )
        this.loading = false
        window.open(url)
      }).catch(() => {
        this.loading = false
      })
    },
    deleteWorkplace(row) {
      this.$confirm('此操作将永久删除该工位, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteWorkplace(row).then(res => {
          if (res.code != 20000) {
            this.$message.error(res.message)
          } else {
            this.$message.success(res.data)
            this.getList()
          }
        })
      }).catch(() => {

      })
    },
    //增加上货工位
    addCargowWorkplace() {
      this.fromName = 'add'
      this.formData = {
        workplaceId: null,
        workplaceName: null,
        workplaceStatus: 1,
        workPlaceClass: 2,
        deptCode: null,
        chargeUser: null,
        constituencies: '1001',
        invRemindNumber: 0,
        queueStatus:0,
        remake: null,
        productType:1
      }
      if (this.groupData != null) {
        this.formData.constituencies = this.groupData.code
      }
      // if (this.)
      this.getDeptList()
      createWorkplaceId().then(res => {
        if (res.code == 20000) {
          if (res.data == null) {
            this.formData.workplaceId = this.workplaceCode + 1002
            this.addWorkplaceDialogVisible = true
            this.getTree()
          } else {
            this.getTree()
            this.formData.workplaceId = res.data
            this.addWorkplaceDialogVisible = true
          }
        } else {
          this.$message.error('获取错误')
        }
      }).catch(() => {
        this.$message.error('获取错误')
      })
    },
    hideForm() {
      this.addWorkplaceDialogVisible = false
      this.getList()
      this.collectList = []
    },
    formSubmit() {
      // this.formData.constituencies = this.groupData.code
      if (this.formData.constituencies == null) {
        this.formData.constituencies = '1001'
      }
      if (this.fromName == 'add') {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            addWorkplace(this.formData).then(res => {
              if (res.code != 20000) {
                return this.$message.error('新增错误')
              }
              this.addWorkplaceDialogVisible = false
              this.$message.success('新增成功')
              this.getList()
            }).catch(() => {

            })
          } else {
            // this.$message.error('请完善必填信息')
          }
        })
      } else {
        updateWorkplace(this.formData).then(res => {
          if (res.code != 20000) {
            return this.$message.error(res.message)
          }
          this.addWorkplaceDialogVisible = false
          this.$message.success('更新成功')
          this.getList()
        }).catch(() => {
          this.addWorkplaceDialogVisible = false
        })
      }

    },
    getTree() {
      getTree(this.query)
        .then((response) => {
          var treeList = response.data || []
          const filteredList = treeList.filter(item => item.parentCode != null)
          if (treeList.length == 0) {
            this.fromDeptOptions = [
              {
                code: '1001',
                parentCode: null,
                label: '全部'
              }
            ]
          } else {
            this.fromDeptOptions = treeList
          }
        })
        .catch(() => {
        })
    },
    forInvSubmit() {
      if (this.formName === 'edit') {
        updateTree(this.subData).then(res => {
          if (res.code == 20000) {
            this.subFormVisible = false
            this.getLstTree()
            this.$message.success('成功')
          } else {
            this.$message.error(res.message)
          }
        }).catch(() => {

        })
      } else {
        addTree(this.subData).then(res => {
          if (res.code == 20000) {
            this.subFormVisible = false
            this.getLstTree()
            this.$message.success('成功')
          } else {
            this.$message.error(res.message)
          }
        }).catch(() => {

        })
      }

    },
    getLstTree() {
      getTree(this.query)
        .then((response) => {
          var invlist = response.data || []
          if (invlist.length == 0) {
            this.treeList = this.handleTree(this.treeList, 'code', 'parentCode')
          } else {
            this.treeList = this.handleTree(invlist, 'code', 'parentCode')
          }
        })
        .catch(() => {
        })
    },
    getDeptList() {
      this.deptList = []
      let data =
        {
          enable: true
        }
      filterList(data).then(res => {
        if (res.code == 20000) {
          this.deptList = res.data.list || []
        }
      })
    },
    edit(row) {
      this.formData = row
      this.formData.queueStatus =  Number(row.queueStatus)
      // this.formData.invCode = String(row.invCode)
      if (row.chargeUser == 0) {
        this.formData.chargeUser = null
      } else if (row.chargeUser == 1) {
        this.formData.chargeUser = Number(row.chargeUser)
      } else {
        this.formData.chargeUser = row.chargeUser
      }
      this.fromName = 'edit'
      this.invQuery.deptCode = row.deptCode
      getUsers(this.invQuery).then(res => {
        if (res.code == 20000) {
          this.users = res.data.list || []
        } else {
          this.$message.error('错误')
        }
      })
      this.getTree()
      this.addWorkplaceDialogVisible = true
    },
    //工位分格
    addPlaid() {
      if (this.rowData.workplaceId == null) {
        return this.$message.error('请选择上货工位')
      }
      this.queueData = null
      this.plaidDialogVisible = true
    },
    updateQueue(row) {
      this.queueData = row
      this.plaidName = 'edit'
      this.plaidDialogVisible = true
    },
    closePlaidDialog() {
      this.plaidDialogVisible = false
    },
    printQueue(row) {
      row.labelId = 8
      printQueueLabel(row).then(res  => {
        const binaryData = []
        binaryData.push(res)
        let url = window.URL.createObjectURL(
          new Blob(binaryData, { type: 'application/pdf' })
        )
        this.loading = false
        window.open(url)
      }).catch(() => {
        this.loading = false
      })
    },
    printQueueList(row) {
      row.labelId = 8
      printQueues(row).then(res => {
        const binaryData = []
        binaryData.push(res)
        let url = window.URL.createObjectURL(
          new Blob(binaryData, { type: 'application/pdf' })
        )
        this.loading = false
        window.open(url)

      }).catch((error) => {
        this.$message.error('工位未绑定货位')
      })
    },
    // handleTabClick(tab){
    //   if (tab.name === 'huojia') {
    //     if (this.$refs.freightManage) {
    //       this.$refs.freightManage.getAllList();
    //     }
    //   }
    // }
  },
  created() {
    this.getDepts()
    this.getList()
    this.getTree()
    this.getLstTree()
    this.getDeptList()
  }
}
</script>

<style scoped>
.iconButton {
  margin-left: 0px;
  height: 30px;
}
</style>
