小小儁爺
2024-08-06 7de17bdd69eb8700e5e74f17b265afdaca80c32c
src/views/produceManager/workOrder.vue
@@ -5,10 +5,10 @@
      <div class="bodyTopButtonGroup" style="justify-content: space-between">
        <div style="display: flex">
          <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>
          <el-button v-waves type="primary" icon="el-icon-connection" @click="send('send')">派发</el-button>
          <el-button v-waves type="primary" icon="el-icon-connection" @click="batchSend()">批量派发</el-button>
        </div>
        <el-button v-waves icon="el-icon-switch-button" @click="orderClose">关闭工单</el-button>
        <!--        <el-button v-waves icon="el-icon-switch-button" @click="orderClose">关闭工单</el-button>-->
      </div>
      <div class="bodyTopFormGroup">
@@ -43,7 +43,10 @@
            <el-form-item label="源单单号" style="display: flex;">
              <el-input v-model="form.sourceorder" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item label="单据类型" style=" display: flex;">
            <el-form-item label="销售订单" style="display: flex;">
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="单据类型" style=" display: flex;">
              <el-select
                v-model="form.ordertype"
                :popper-append-to-body="false"
@@ -135,24 +138,25 @@
          :cell-style="this.$cellStyle"
          @sort-change="sortChange"
          @row-click="rowClick"
          @selection-change="handleSelectionChange"
        >
          <!--          <el-table-column-->
          <!--            type="selection"-->
          <!--            width="50"-->
          <!--          />-->
          <el-table-column
            type="selection"
            width="50"
            fixed
          >
            <template slot-scope="{row}">
              <el-radio
                v-model="radioSelected"
                :label="row.wo_code"
                style="color: transparent;padding-left: 10px;"
              />
              <!--              @change.native="getCurrentRow(row.wo_code)"-->
            </template>
          </el-table-column>
            :selectable="selected"
          />
          <!--          <el-table-column-->
          <!--            width="50"-->
          <!--            fixed-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <el-radio-->
          <!--                v-model="radioSelected"-->
          <!--                :label="row.wo_code"-->
          <!--                style="color: transparent;padding-left: 10px;"-->
          <!--              />-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            prop="RowNum"
            width="50"
@@ -173,8 +177,8 @@
              <div v-if="row.status==='ALLO'">已派发</div>
              <div v-if="row.status==='START'">开工</div>
              <div v-if="row.status==='CLOSED'">完工</div>
              <div v-if="row.status==='NOSCHED'">待排程</div>
              <div v-if="row.status==='SCHED'">已排程</div>
              <!--              <div v-if="row.status==='NOSCHED'">待排程</div>-->
              <!--              <div v-if="row.status==='SCHED'">已排程</div>-->
            </template>
          </el-table-column>
          <el-table-column
@@ -197,6 +201,18 @@
            </template>
          </el-table-column>
          <el-table-column
            prop="saleOrderCode"
            label="销售订单"
            sortable="custom"
            show-tooltip-when-overflow
            min-width="160"
          >
            <template slot-scope="{row}">
              <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="wotype"
            label="单据类型"
            sortable="custom"
@@ -209,6 +225,13 @@
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="printcount"
            label="打印次数"
            show-tooltip-when-overflow
            sortable="custom"
            min-width="120"
          />
          <el-table-column
            prop="partcode"
            label="产品编码"
@@ -330,11 +353,27 @@
          />
          <el-table-column
            label="操作"
            width="120"
            width="140"
            fixed="right"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-tooltip class="item" effect="dark" content="派发" placement="top">
                  <i
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-connection"
                    style="cursor: pointer;margin-right: 15px"
                    @click="send('send',row)"
                  />
                </el-tooltip>
                <el-tooltip class="item" effect="dark" content="工单关闭" placement="top">
                  <i
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-switch-button"
                    style="cursor: pointer;margin-right: 15px"
                    @click="orderClose(row.wo_code)"
                  />
                </el-tooltip>
                <el-tooltip class="item" effect="dark" content="打印工单" placement="top">
                  <!--                  <i-->
                  <!--                    class="el-icon-tickets"-->
@@ -345,7 +384,7 @@
                    :style="{color:$store.state.settings.theme}"
                    class="el-icon-printer"
                    style="cursor: pointer;margin-right: 15px"
                    @click="handlePrint(row.wo_code)"
                    @click="handlePrint(row.wo_code,row.saleOrderCode)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
@@ -368,6 +407,22 @@
      />
      <div class="elTableDiv">
        <div
          v-if="$store.state.settings.orgType === 'W'"
          style="position:absolute;z-index: 1000;left: 20px;top: -50px"
        >
          <el-switch
            v-model="switchButton"
            style="display: block"
            active-text="所有车间"
            inactive-text="当前车间"
            @change="rowClick"
          />
          <!--          active-color="#13ce66"-->
          <!--          inactive-color="#ff4949"-->
        </div>
        <el-table
          :data="tableDataDetail"
          border
@@ -436,37 +491,38 @@
            show-tooltip-when-overflow
            prop="ng_qty"
          />
          <el-table-column
            label="操作"
            width="120"
            fixed="right"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-tooltip class="item" effect="dark" content="打印工序" placement="top">
                  <i
                    v-if="tableDataDetail.length!==row.seq"
                    class="el-icon-printer"
                    :style="{color:$store.state.settings.theme}"
                    style="cursor: pointer;margin-right: 15px"
                    @click="supplementSmallClick(row)"
                  />
                </el-tooltip>
                <el-tooltip class="item" effect="dark" content="补打生产入库条码" placement="top">
                  <i
                    v-if="tableDataDetail.length===row.seq"
                    class="  el-icon-camera"
                    :style="{color:$store.state.settings.theme}"
                    style="cursor: pointer;margin-right: 15px"
                    @click="getProductInHouseLabCode(row.wo_code)"
                  />
                </el-tooltip>
              </div>
            </template>
          </el-table-column>
          <!--          <el-table-column-->
          <!--            label="操作"-->
          <!--            width="120"-->
          <!--            fixed="right"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <div class="operationClass">-->
          <!--                <el-tooltip class="item" effect="dark" content="打印工序" placement="top">-->
          <!--                  <i-->
          <!--                    v-if="tableDataDetail.length!==row.seq"-->
          <!--                    class="el-icon-printer"-->
          <!--                    :style="{color:$store.state.settings.theme}"-->
          <!--                    style="cursor: pointer;margin-right: 15px"-->
          <!--                    @click="supplementSmallClick(row)"-->
          <!--                  />-->
          <!--                </el-tooltip>-->
          <!--                <el-tooltip class="item" effect="dark" content="补打生产入库条码" placement="top">-->
          <!--                  <i-->
          <!--                    v-if="tableDataDetail.length===row.seq"-->
          <!--                    class="  el-icon-camera"-->
          <!--                    :style="{color:$store.state.settings.theme}"-->
          <!--                    style="cursor: pointer;margin-right: 15px"-->
          <!--                    @click="getProductInHouseLabCode(row.wo_code)"-->
          <!--                  />-->
          <!--                </el-tooltip>-->
          <!--              </div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
        </el-table>
      </div>
    </div>
    <!--新增派发对话框-->
    <el-dialog
      v-el-drag-dialog
@@ -510,43 +566,49 @@
          <!--          <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />-->
          <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" />
        </el-form-item>
        <div style="display: flex">
          <el-form-item label="工单类型" prop="mesorderstus">
            <el-select
              v-model="dialogForm.ordertype"
              :popper-append-to-body="false"
              style="width: 200px"
              :disabled="operation!=='add'"
              placeholder="请选择"
              @change="mesordertypeChange"
            >
              <el-option
                v-for="item in ordertypeArr"
                :key="item.code"
                :label="item.name"
                :value="item.code"
              />
            </el-select>
          </el-form-item>
          <div style="display: flex;flex-wrap: nowrap">
            <el-form-item label="源单单号">
              <el-input
                v-model="dialogForm.sourceorder"
                :disabled="dialogForm.ordertype==='PO'"
                style="width: 172px"
              />
            </el-form-item>
        <!--        <div style="display: flex">-->
        <el-form-item label="工单类型" prop="mesorderstus">
          <el-select
            v-model="dialogForm.ordertype"
            :popper-append-to-body="false"
            style="width: 200px"
            :disabled="operation!=='add'"
            placeholder="请选择"
            @change="mesordertypeChange"
          >
            <el-option
              v-for="item in ordertypeArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        </el-form-item>
        <!--          <div style="display: flex;flex-wrap: nowrap">-->
        <el-form-item label="源单单号">
          <el-input
            v-model="dialogForm.sourceorder"
            :disabled="dialogForm.ordertype==='PO'"
            style="width: 200px"
          >
            <el-button
              v-waves
              type="primary"
              style="padding: 0 10px;margin-left: -8px;margin-top: 3px"
              class="el-icon-search"
              slot="append"
              icon="el-icon-search"
              :disabled="operation!=='add'||dialogForm.ordertype==='PO'"
              @click="mesordertsourcesearchclick"
            />
          </div>
        </div>
          </el-input>
        </el-form-item>
        <!--            <el-button-->
        <!--              v-waves-->
        <!--              type="primary"-->
        <!--              style="padding: 0 10px;margin-left: -8px;margin-top: 3px"-->
        <!--              class="el-icon-search"-->
        <!--              :disabled="operation!=='add'||dialogForm.ordertype==='PO'"-->
        <!--              @click="mesordertsourcesearchclick"-->
        <!--            />-->
        <!--          </div>-->
        <!--        </div>-->
        <el-form-item label="工单数量" prop="mesqty">
          <el-input
            v-model="dialogForm.mesqty"
@@ -586,118 +648,119 @@
        <el-form-item label="产品规格" prop="partspec">
          <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
        </el-form-item>
        <div style="display: flex">
          <el-form-item label="生产车间" prop="wkshopcode">
            <el-select
              v-model="dialogForm.wkshopcode"
              filterable
              :popper-append-to-body="false"
              style="width: 200px;"
              placeholder="请选择"
              :disabled="dialogForm.partcode===''"
              @change="val=>wkshopcodeChange(val,dialogForm.partcode)"
            >
              <el-option
                v-for="item in wkshopArr"
                :key="item.org_code"
                :label="item.org_name"
                :value="item.org_code"
              />
            </el-select>
          </el-form-item>
          <div style="display: flex;flex-wrap: nowrap">
            <el-form-item label="工艺路线" prop="routecode">
              <el-select
                v-model="dialogForm.routecode"
                filterable
                :popper-append-to-body="false"
                style="width: 172px"
                placeholder="请选择"
                :disabled="dialogForm.wkshopcode===''"
                @change="routecodeChange"
              >
                <el-option
                  v-for="item in routeArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>
            </el-form-item>
            <el-button
              v-waves
              type="primary"
              style="padding: 0 10px;margin-left: -8px;margin-top:3px"
              class="el-icon-search"
              @click="searchClick"
            />
            <!--            :disabled="dialogForm.routecode===''"-->
          </div>
        </div>
        <el-form-item label="是否排程" prop="isAps">
          <el-radio-group v-model="dialogForm.isAps" style="width:200px" @change="changeIsAps">
            <el-radio key="Y" label="Y" value="Y">是</el-radio>
            <el-radio key="N" label="N" value="N">否</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="物料清单" :prop="dialogForm.isAps==='Y'?'bomId':''">
        <!--        <div style="display: flex">-->
        <el-form-item label="生产车间" prop="wkshopcode">
          <el-select
            v-model="dialogForm.bomId"
            v-model="dialogForm.wkshopcode"
            filterable
            :disabled="dialogForm.isAps==='N'"
            :popper-append-to-body="false"
            style="width: 200px;"
            placeholder="请选择"
            :disabled="dialogForm.partcode===''"
            @change="val=>wkshopcodeChange(val,dialogForm.partcode)"
          >
            <el-option
              v-for="item in bomIdArr"
              :key="item.id"
              :label="item.version"
              :value="item.id"
              v-for="item in wkshopArr"
              :key="item.org_code"
              :label="item.org_name"
              :value="item.org_code"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="计划开始时间" prop="planstartdate">
          <el-date-picker
            v-model="dialogForm.planstartdate"
            type="date"
            :clearable="false"
            value-format="yyyy-MM-dd"
            :picker-options="pickerOptions"
            style="width: 200px"
            placeholder="选择日期"
          />
        </el-form-item>
        <el-form-item label="计划完成时间" prop="planenddate">
          <el-date-picker
            v-model="dialogForm.planenddate"
            type="date"
            :clearable="false"
            value-format="yyyy-MM-dd"
            style="width: 200px"
            placeholder="选择日期"
            :picker-options="pickerOptions"
          />
        </el-form-item>
        <el-form-item label="工单等级" prop="orderlev">
        <!--          <div style="display: flex;flex-wrap: nowrap">-->
        <el-form-item label="工艺路线" prop="routecode">
          <el-select
            v-model="dialogForm.orderlev"
            v-model="dialogForm.routecode"
            filterable
            :popper-append-to-body="false"
            style="width: 200px"
            placeholder="请选择"
            :disabled="dialogForm.wkshopcode===''"
            @change="routecodeChange"
          >
            <el-option
              v-for="item in orderlevArr"
              v-for="item in routeArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="工价管控" required>
          <el-switch
            v-model="dialogForm.is_steprice"
            active-color="#13ce66"
            inactive-color="#eee"
            @change="routecodeChange"
          />
        </el-form-item>
        <!--        <el-form-item label="是否排程" prop="isAps">-->
        <!--          <el-radio-group v-model="dialogForm.isAps" style="width:200px" @change="changeIsAps">-->
        <!--            <el-radio key="Y" label="Y" value="Y">是</el-radio>-->
        <!--            <el-radio key="N" label="N" value="N">否</el-radio>-->
        <!--          </el-radio-group>-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="物料清单" :prop="dialogForm.isAps==='Y'?'bomId':''">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.bomId"-->
        <!--            filterable-->
        <!--            :disabled="dialogForm.isAps==='N'"-->
        <!--            :popper-append-to-body="false"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in bomIdArr"-->
        <!--              :key="item.id"-->
        <!--              :label="item.version"-->
        <!--              :value="item.id"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="计划开始时间" prop="planstartdate">-->
        <!--          <el-date-picker-->
        <!--            v-model="dialogForm.planstartdate"-->
        <!--            type="date"-->
        <!--            :clearable="false"-->
        <!--            value-format="yyyy-MM-dd"-->
        <!--            :picker-options="pickerOptions"-->
        <!--            style="width: 200px"-->
        <!--            placeholder="选择日期"-->
        <!--          />-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="计划完成时间" prop="planenddate">-->
        <!--          <el-date-picker-->
        <!--            v-model="dialogForm.planenddate"-->
        <!--            type="date"-->
        <!--            :clearable="false"-->
        <!--            value-format="yyyy-MM-dd"-->
        <!--            style="width: 200px"-->
        <!--            placeholder="选择日期"-->
        <!--            :picker-options="pickerOptions"-->
        <!--          />-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="工单等级" prop="orderlev">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.orderlev"-->
        <!--            filterable-->
        <!--            :popper-append-to-body="false"-->
        <!--            style="width: 200px"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in orderlevArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
      </el-form>
      <div style="display: flex;justify-content: flex-end;margin-top: -50px;">
        {{ routeStepArr }}
      </div>
      <!--        工艺路线放大镜对话框-->
      <el-dialog
@@ -1246,11 +1309,14 @@
              style="display: flex;justify-content: space-between"
            >
              <div class="elForm">
                <el-form-item label="工单编号:" class="formContent">
                  {{ formApprove.mesordercode }}
                <el-form-item label="销售单号:" class="formContent">
                  {{ formApprove.saleOrderCode }}
                </el-form-item>
                <el-form-item label="源单单号:" class="formContent">
                  {{ formApprove.m_po }}
                </el-form-item>
                <el-form-item label="工单编号:" class="formContent">
                  {{ formApprove.mesordercode }}
                </el-form-item>
                <el-form-item label="产品编码:" class="formContent">
                  {{ formApprove.partcode }}
@@ -1362,7 +1428,7 @@
          <el-button v-waves @click="dialogVisibleBackPreview">返 回</el-button>
          <!--            <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">确 定</el-button>-->
          <!--            <el-button v-waves type="primary" @click="dialogVisibleConfirm">确 定/打 印</el-button>-->
          <el-button v-waves v-print="printObj" type="primary">打 印</el-button>
          <el-button v-waves v-print="printObj" type="primary" @click="printObjGetApi">打 印</el-button>
        </div>
      </span>
    </el-dialog>
@@ -1956,6 +2022,196 @@
      </span>
    </el-dialog>
    <!--    批量派发对话框-->
    <el-dialog
      v-el-drag-dialog
      title="批量派发"
      :visible.sync="dialogVisible3"
      width="900px"
      top="10vh"
      :close-on-click-modal="false"
      @closed="handleClose3"
      @close="handleClose3"
    >
      <div style="height: 600px;padding-right: 20px;overflow: auto">
        <el-alert
          v-if="multipleSelection.length-formData3.length>0"
          :title="'当前选中'+multipleSelection.length+'个工单,有'+(multipleSelection.length-formData3.length)+'个工单未指定工艺路线,已过滤!'"
          type="error"
        />
        <div v-for="(i,index) in formData3" :key="index">
          <el-divider content-position="left">第{{ index+1 }}个工单</el-divider>
          <el-form
            ref="dialogForm"
            inline
            :model="i"
            label-width="110px"
          >
            <el-form-item
              label="工单状态"
              prop="mesorderstus"
            >
              <el-select
                v-model="i.mesorderstus"
                disabled
                filterable
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in erporderstusArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="工单编号" prop="mesordercode">
              <el-input v-model="i.mesordercode" disabled style="width: 200px" />
            </el-form-item>
            <el-form-item label="工单类型" prop="mesorderstus">
              <el-select
                v-model="i.ordertype"
                :popper-append-to-body="false"
                style="width: 200px"
                :disabled="operation!=='add'"
                placeholder="请选择"
                @change="mesordertypeChange"
              >
                <el-option
                  v-for="item in ordertypeArr"
                  :key="item.code"
                  :label="item.name"
                  :value="item.code"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="源单单号">
              <el-input
                v-model="i.sourceorder"
                :disabled="i.ordertype==='PO'"
                style="width: 200px"
              >
                <!--            <el-button-->
                <!--              slot="append"-->
                <!--              icon="el-icon-search"-->
                <!--              :disabled="operation!=='add'||dialogForm.ordertype==='PO'"-->
                <!--              @click="mesordertsourcesearchclick"-->
                <!--            />-->
              </el-input>
            </el-form-item>
            <el-form-item label="工单数量" prop="mesqty">
              <el-input
                v-model="i.mesqty"
                oninput="value=value.replace(/[^0-9.]/g,'')"
                :disabled="operation!=='add'"
                style="width: 200px"
              />
            </el-form-item>
            <el-form-item
              v-if="operation==='add'"
              label="产品名称/编码"
              prop="partcode"
            >
              <el-select
                v-model="i.partcode"
                filterable
                :disabled="operation!=='add'"
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
                @change="partcodeChangeDialog"
              >
                <el-option
                  v-for="item in partArr"
                  :key="item.partcode"
                  :label="item.partname+'/'+item.partcode"
                  :value="item.partcode"
                />
              </el-select>
            </el-form-item>
            <el-form-item v-if="operation!=='add'" label="产品名称" prop="partname">
              <el-input v-model="i.partname" disabled style="width: 200px" />
            </el-form-item>
            <el-form-item label="产品编码">
              <el-input v-model="i.partcode" disabled style="width: 200px" />
            </el-form-item>
            <el-form-item label="产品规格" prop="partspec">
              <el-input v-model="i.partspec" disabled style="width: 200px" />
            </el-form-item>
            <!--        <div style="display: flex">-->
            <el-form-item label="生产车间" prop="wkshopcode">
              <el-input v-model="i.wkshopname" disabled style="width: 200px" />
              <!--              <el-select-->
              <!--                v-model="i.wkshopcode"-->
              <!--                filterable-->
              <!--                :popper-append-to-body="false"-->
              <!--                style="width: 200px;"-->
              <!--                placeholder="请选择"-->
              <!--                disabled-->
              <!--              >-->
              <!--                <el-option-->
              <!--                  v-for="item in wkshopArr"-->
              <!--                  :key="item.org_code"-->
              <!--                  :label="item.org_name"-->
              <!--                  :value="item.org_code"-->
              <!--                />-->
              <!--              </el-select>-->
            </el-form-item>
            <el-form-item label="工艺路线" prop="routecode">
              <el-select
                v-model="i.routecode"
                filterable
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
                :disabled="i.wkshopcode===''"
              >
                <el-option
                  v-for="item in i.children"
                  :key="item.routecode"
                  :label="item.routename"
                  :value="item.routecode"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="工价管控" required>
              <el-switch
                v-model="i.is_steprice"
                active-color="#13ce66"
                inactive-color="#eee"
                @change="routecodeChange2(i)"
              />
            </el-form-item>
          </el-form>
          <div style="display: flex;justify-content: flex-end;margin-top: -50px;margin-right: 50px">
            {{ i.children.find(it=>it.routecode===i.routecode).stepname }}
          </div>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button v-waves @click="dialogVisible3=false">取 消</el-button>
          <el-button
            v-waves
            type="primary"
            :disabled="submitButtonIsDisabled"
            @click="dialogVisibleConfirm3"
          >确 定</el-button>
        </div>
      </span>
    </el-dialog>
  </div>
</template>
@@ -1964,9 +2220,20 @@
import {
  AddUpdateMesOrder,
  ClosedMesOrder,
  DeleteMesOrder, MesBadOrderSearch, JobCreationSonAddVison,
  MesOrderSearch, PartSelectRoute, RouteSelectWkshop, SearchWorkStep, SelectRouteOrWkshop,
  SelectRouteStep, AddMesOrderCodeSearch, ProductInHouseLabCode
  DeleteMesOrder,
  MesBadOrderSearch,
  JobCreationSonAddVison,
  MesOrderSearch,
  PartSelectRoute,
  RouteSelectWkshop,
  SearchWorkStep,
  SelectRouteOrWkshop,
  SelectRouteStep,
  AddMesOrderCodeSearch,
  ProductInHouseLabCode,
  UpdateMesOrderPrintCount,
  BatchSearchRouteStep,
  BatchWorkSave
} from '@/api/produceManager'
import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/makeModel'
import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
@@ -1999,6 +2266,7 @@
        partcode: '', // 产品编码
        ordertype: '', // ordertype
        sourceorder: '', // 源单单号
        saleordercode: '', // 销售订单
        partname: '', // 产品名称
        partspec: '', // 产品规格
        creatuser: '', // 创建人员
@@ -2014,9 +2282,9 @@
        // { code: 'CREATED', name: '已关闭' }
        { code: 'ALLO', name: '已派发' },
        { code: 'START', name: '开工' },
        { code: 'CLOSED', name: '完工' },
        { code: 'NOSCHED', name: '待排程' },
        { code: 'SCHED', name: '已排程' }
        { code: 'CLOSED', name: '完工' }
        // { code: 'NOSCHED', name: '待排程' },
        // { code: 'SCHED', name: '已排程' }
      ],
      total: 10,
      radioSelected: '',
@@ -2037,6 +2305,9 @@
        mesqty: '', // 工单数量
        routecode: '', // 工艺路线编码
        is_steprice: false, // 是否工价管理
        wkshopcode: '', // 生产车间编码
        planstartdate: '', // 计划开始时间
        planenddate: '', // 计划完成时间
@@ -2114,12 +2385,15 @@
        },
        beforeOpenCallback(vue) {
          vue.printLoading = true
          console.log('打开之前')
          console.log()
          console.log('打开之前8888')
        },
        openCallback(vue) {
          vue.printLoading = false
          console.log('执行了打印')
          console.log('执行了打印9999')
        },
        clickMounted(vue) {
          console.log('点击了打印按钮1223451')
          // vue.printContent.popTitle = vue.tableHead // 动态设置页眉
        }
      },
@@ -2147,13 +2421,17 @@
          // vue.dialogVisible = false
        },
        beforeOpenCallback(vue) {
          // window.print()
          vue.printLoading = true
          console.log('打开之前')
          console.log()
          console.log('打开之前000')
        },
        openCallback(vue) {
          vue.printLoading = false
          console.log('执行了打印')
          console.log('执行了打印eee')
        },
        clickMounted(vue) {
          console.log('点击了打印按钮1111')
          // vue.printContent.popTitle = vue.tableHead // 动态设置页眉
        }
      },
      qrForm: {
@@ -2217,7 +2495,16 @@
      isLastPrint: false, // 是否是末道打印
      lastPrintArr: [], // 末道打印的数组(所有)
      lastPrintArrSelected: []// 末道打印的数组(选中)
      lastPrintArrSelected: [], // 末道打印的数组(选中)
      switchButton: false,
      routeStepArr: '',
      dialogVisible3: false,
      multipleSelection: [],
      formData3: []
    }
  },
  created() {
@@ -2255,6 +2542,7 @@
        partspec: this.form.partspec, // 产品规格
        creatuser: this.form.creatuser, // 创建人员
        sourceorder: this.form.sourceorder, // 源单单号
        saleordercode: this.form.saleordercode, // 销售订单
        ordertype: this.form.ordertype, // 单据类型
        createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 创建时间
        prop: this.form.prop, // 排序字段
@@ -2318,6 +2606,7 @@
      this.form.paydate = ''
      this.form.creatuser = ''
      this.form.sourceorder = ''
      this.form.saleordercode = ''
      this.form.creatuser = ''
      this.form.ordertype = ''
      this.getMesOrderSearch()
@@ -2369,14 +2658,31 @@
      // this.submitButtonIsDisabled = false
    },
    // 工艺路线值改变
    async routecodeChange(partcode, routecode) {
      // const data = {
      //   partcode,
      //   routecode
      // }
    async routecodeChange() {
      if (this.dialogForm.routecode) {
        const data = {
          partcode: this.dialogForm.partcode,
          routecode: this.dialogForm.routecode,
          wkshopcode: this.dialogForm.wkshopcode,
          is_steprice: this.dialogForm.is_steprice ? 'Y' : 'N'
        }
        await SelectRouteOrWkshop(data).then((res) => {
          console.log(res, 1)
          SelectRouteStep({ routecode: this.dialogForm.routecode }).then(res2 => {
            console.log(res2)
            this.routeStepArr = res2.data.map(i => i.stepname).join(',')
          })
          this.submitButtonIsDisabled = false
        }).catch(err => {
          // console.log(err, 2)
          this.submitButtonIsDisabled = true
        })
      }
    },
    // 生产车间值改变时
    async  wkshopcodeChange(wkshopcode, partcode) {
    async wkshopcodeChange(wkshopcode, partcode) {
      const data = {
        partcode,
        wkshopcode
@@ -2387,6 +2693,7 @@
      if (res.length === 1) {
        this.dialogForm.routecode = res[0].code
        await this.routecodeChange()
      } else {
        this.dialogForm.routecode = ''
      }
@@ -2430,12 +2737,12 @@
      this.dialogVisibleTask = false
    },
    // 派发
    send(operation) {
      if (this.radioSelected.length < 1) {
        return this.$message.info('请先选择工单!')
      }
      const row = this.tableData.find(item => item.wo_code === this.radioSelected)
    send(operation, row) {
      // if (this.radioSelected.length < 1) {
      //   return this.$message.info('请先选择工单!')
      // }
      //
      // const row = this.tableData.find(item => item.wo_code === this.radioSelected)
      if (row.status !== 'NEW') {
        return this.$message.info('此工单为非新工单状态,不可派发!')
@@ -2491,16 +2798,17 @@
      })
    },
    // 工单关闭事件
    orderClose() {
      if (this.radioSelected.length < 1) {
        return this.$message.info('请先选择工单!')
      }
    orderClose(wo_code) {
      // if (this.radioSelected.length < 1) {
      //   return this.$message.info('请先选择工单!')
      // }
      console.log('工单关闭事件')
      this.tableData.forEach(item => {
        if (item.wo_code === this.radioSelected) {
          if (item.status === 'START') {
            return this.$message.info('当前工单未完工,无法关闭!')
          } else if (item.status === 'CLOSED') {
        if (item.wo_code === wo_code) {
          // if (item.status === 'START') {
          //   return this.$message.info('当前工单未完工,无法关闭!')
          // } else
          if (item.status === 'CLOSED') {
            return this.$message.info('工单已关闭,无需再关闭!')
          } else {
            this.$confirm('是否确认关闭工单?', '提示', {
@@ -2541,6 +2849,7 @@
    },
    // 对话框关闭事件
    handleClose() {
      this.routeStepArr = ''
      this.dialogForm.partname = '' // 产品名称
      this.dialogForm.partspec = '' // 产品规格
      this.dialogForm.wkshopname = '' // 生产车间名称
@@ -2556,6 +2865,7 @@
      this.dialogForm.routecode = '' // 工艺路线编码
      this.dialogForm.wkshopcode = '' // 生产车间编码
      this.dialogForm.is_steprice = false// 是否工价管理
      this.dialogForm.planstartdate = '' // 计划开始时间
      this.dialogForm.planenddate = '' // 计划完成时间
      this.dialogForm.orderlev = '' // 工单等级
@@ -2664,11 +2974,12 @@
      this.dialogVisibleSearch = false
    },
    // 处理打印
    handlePrint(wo_code) {
    handlePrint(wo_code, saleOrderCode) {
      // const number = Math.random() * Math.random()
      // this.number = number === 0 ? (10 + Math.random()) : number
      // console.log(number)
      console.log(this.formApprove.saleOrderCode, 321)
      this.formApprove.saleOrderCode = this.formApprove.saleOrderCode !== '' ? this.formApprove.saleOrderCode : saleOrderCode
      const data2 = {
        username: getCookie('admin'),
        mesordercode: wo_code || this.dialogForm.mesordercode
@@ -2756,6 +3067,7 @@
    dialogVisibleConfirmClose() {
      // this.dialogForm.mesordercode = ''
      this.formApprove.saleOrderCode = ''
      this.formApprove.mesordercode = ''
      this.formApprove.m_po = ''
      this.formApprove.partcode = ''
@@ -2769,6 +3081,14 @@
      this.tableDataPrint = []
    },
    async  printObjGetApi() {
      const res = await UpdateMesOrderPrintCount({ wo_code: this.formApprove.mesordercode })
      if (res.code === '200') {
        this.getMesOrderSearch()
      }
    },
    // 补打按钮
    supplementClick() {
      this.dialogVisibleTask = false
@@ -3053,8 +3373,12 @@
    },
    //  行点击事件
    async rowClick(row, event, column) {
      this.radioSelected = row.wo_code
      const { data: res } = await SearchWorkStep({ wo_code: row.wo_code })
      this.formApprove.saleOrderCode = row.saleOrderCode
      this.radioSelected = row.wo_code ? row.wo_code : this.radioSelected
      const { data: res } = await SearchWorkStep({
        wo_code: this.radioSelected,
        storg_code: this.$store.state.settings.orgType === 'W' ? (this.switchButton ? '' : getCookie('stu_torgcode')) : ''
      })
      this.tableDataDetail = res
    },
    // 打印工单
@@ -3103,6 +3427,117 @@
        this.$forceUpdate()
      }, 500)
    },
    handleSelectionChange(val) {
      this.multipleSelection = val
      console.log(this.multipleSelection)
    },
    // 批量派发
    async  batchSend() {
      if (this.multipleSelection.length === 0) {
        return this.$message.info('请先勾选相对应的工单!')
      }
      const data = []
      this.multipleSelection.forEach(i => {
        data.push({
          'wkshopcode': i.wkshp_code,
          'code': i.partcode,
          'name': i.wo_code,
          'flag': ''
        })
      })
      const { data: res } = await BatchSearchRouteStep(data)
      this.formData3 = []
      this.multipleSelection.forEach((item, index) => {
        item.stepname = res[index].children.length > 0 ? res[index].children[0].stepname : ''
        if (item.stepname) {
          this.formData3.push({
            'mesorderstus': item.status,
            'sourceorder': item.m_po,
            'ordertype': item.wotype,
            'mesordercode': item.wo_code,
            'partcode': item.partcode,
            'mesqty': item.plan_qty,
            'routecode': res[index].children.length > 0 ? res[index].children[0].routecode : '',
            'wkshopcode': item.wkshp_code,
            'wkshopname': item.wkshp_name,
            'partname': item.partname,
            'partspec': item.partspec,
            'planstartdate': item.plan_startdate,
            'planenddate': item.plan_enddate,
            'orderlev': item.piroque,
            children: res[index].children,
            is_steprice: false,
            'is_aps': '',
            'bom_id': ''
          })
        }
      })
      if (this.formData3.length === 0) {
        return this.$message.info('未有符合可派发工单!')
      }
      this.dialogVisible3 = true
    },
    // 批量派发确定事件
    async dialogVisibleConfirm3() {
      const data = []
      this.formData3.forEach(i => {
        data.push({
          'mesorderstus': i.mesorderstus,
          'sourceorder': i.sourceorder,
          'ordertype': i.ordertype,
          'mesordercode': i.mesordercode,
          'partcode': i.partcode,
          'mesqty': i.mesqty,
          'routecode': i.routecode,
          'wkshopcode': i.wkshopcode,
          'planstartdate': i.planstartdate,
          'planenddate': i.planenddate,
          'orderlev': i.orderlev,
          'is_aps': 'N',
          'bom_id': ''
        })
      })
      const res = await BatchWorkSave(data)
      if (res.code === '200') {
        this.dialogVisible3 = false
        this.$message.success('批量派发成功!')
        await this.getMesOrderSearch()
      } else {
        this.$message.error('批量派发失败!')
      }
    },
    // 批量派发关闭事件
    handleClose3() {
      this.formData3 = []
      this.submitButtonIsDisabled = false
    },
    selected(row, index) {
      return row.status === 'NEW'
    },
    async  routecodeChange2(val) {
      if (val.routecode) {
        const data = {
          partcode: val.partcode,
          routecode: val.routecode,
          wkshopcode: val.wkshopcode,
          is_steprice: val.is_steprice ? 'Y' : 'N'
        }
        await SelectRouteOrWkshop(data).then((res) => {
          this.submitButtonIsDisabled = false
        }).catch(err => {
          // console.log(err, 2)
          this.submitButtonIsDisabled = true
        })
      }
    }
  }
}