From 889d80d88abd7b4a60846678624f4b976c15f820 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期五, 13 六月 2025 09:07:36 +0800
Subject: [PATCH] 1.新增判断:当不良数量为零时,合格数量不能为零

---
 src/views/produce/stepReport.vue | 3373 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,691 insertions(+), 1,682 deletions(-)

diff --git a/src/views/produce/stepReport.vue b/src/views/produce/stepReport.vue
index 3779137..329fa93 100644
--- a/src/views/produce/stepReport.vue
+++ b/src/views/produce/stepReport.vue
@@ -1,1682 +1,1691 @@
-<template>
-  <div>
-    <div class="body" style="padding-top: 10px;" :style="{height:mainHeight+'px'}">
-
-      <div style="position: absolute;right:36px;z-index: 2;top: 13px">
-        <el-button
-          v-if="activeName==='鐢熶骇鍒楄〃'&&tableData.length>0"
-          v-waves
-          icon="el-icon-thumb"
-          type="primary"
-          :disabled="radioSelected===''"
-          @click="report()"
-        >鎶ュ伐
-        </el-button>
-        <el-button
-          v-if="activeName==='澶栧崗鍙戞枡'&&tableData.length>0"
-          v-waves
-          type="primary"
-          icon="el-icon-thumb"
-          :disabled="radioSelected===''"
-          @click="sendOut()"
-        >鍙戞枡
-        </el-button>
-        <el-button
-          v-if="activeName==='澶栧崗鏀舵枡'&&tableData.length>0"
-          v-waves
-          type="primary"
-          icon="el-icon-thumb"
-          :disabled="radioSelected===''"
-          @click="takeIn()"
-        >鏀舵枡
-        </el-button>
-        <el-button
-          v-if="activeName==='涓嶈壇寰呭鐞�'&&tableData.length>0"
-          v-waves
-          type="primary"
-          icon="el-icon-thumb"
-          :disabled="radioSelected===''"
-          @click="handleBad()"
-        >澶勭悊
-        </el-button>
-      </div>
-
-      <div v-if="form.wocode" style="position: absolute;left: 460px;z-index: 2;top: 23px;font-weight: bolder">
-        褰撳墠宸ュ崟鍙蜂负锛歿{ form.wocode }}
-      </div>
-
-      <el-tabs
-        ref="elTabs"
-        v-model="activeName"
-        type="border-card"
-        @tab-click="tabClick"
-      >
-
-        <el-tab-pane
-          v-for="item in elTabsArr"
-          :key="item.code"
-          :label="item.name"
-          :name="item.name"
-        >
-
-          <div class="bodyTopFormGroup">
-            <el-form
-              ref="form"
-              :model="form"
-              label-width="100px"
-              inline
-              style="display: flex;"
-            >
-              <div class="elForm">
-
-                <el-form-item label="宸ュ崟鍙�" style=" display: flex;">
-                  <el-input
-                    v-model="workOrderCurrentValue"
-                    :name="'produceCode'+item.code"
-                    placeholder="璇锋壂鎻忔垨杈撳叆"
-                    style="width: 300px"
-
-                    @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
-                  />
-                </el-form-item>
-                <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
-                  <el-input
-                    v-model="form.partcode"
-                    placeholder="璇疯緭鍏�"
-                    style="width: 200px"
-
-                    @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
-                  />
-                </el-form-item>
-                <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
-                  <el-input
-                    v-model="form.partname"
-                    placeholder="璇疯緭鍏�"
-
-                    style="width: 200px"
-                    @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
-                  />
-                </el-form-item>
-                <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
-                  <el-select
-                    v-model="form.wkshopcode"
-                    filterable
-                    :popper-append-to-body="false"
-                    style="width: 200px"
-
-                    placeholder="璇烽�夋嫨"
-                  >
-                    <el-option
-                      v-for="item in wkshopcodeArr"
-                      :key="item.torg_code"
-                      :label="item.torg_name"
-                      :value="item.torg_code"
-                    />
-                  </el-select>
-                </el-form-item>
-
-                <!--                <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">-->
-                <!--                  <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />-->
-                <!--                </el-form-item>-->
-
-              </div>
-              <div
-                class="bodySearchReset"
-                :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
-              >
-                <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
-                <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
-              </div>
-            </el-form>
-            <div
-              class="bodyTopFormExpand"
-              style="height:5px"
-            >
-              <!--          <svg-icon-->
-              <!--            v-show="mouseHoverType==='mouseout'"-->
-              <!--            style="cursor: pointer"-->
-              <!--            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
-              <!--            @mouseenter="mouseHoverType=$event.type"-->
-              <!--          />-->
-              <!--          <svg-icon-->
-              <!--            v-show="mouseHoverType==='mouseenter'"-->
-              <!--            style="cursor: pointer"-->
-              <!--            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
-              <!--            @click="isExpandForm=!isExpandForm"-->
-              <!--            @mouseout="mouseHoverType=$event.type"-->
-              <!--          />-->
-            </div>
-          </div>
-
-          <div class="elTableDiv">
-            <el-table
-              ref="tableDataRef"
-              :key="'tableDataRef'+item.code"
-              class="tableFixed"
-              :data="tableData"
-              :height="tableHeight+50"
-              border
-              row-class-name="custom-row"
-              :style="{width: 100+'%',height:tableHeight+'px'}"
-              highlight-current-row
-              :header-cell-style="headerCellStyle()"
-              :cell-style="cellStyle()"
-              @sort-change="sortChange"
-              @row-click="rowClick"
-            >
-              <el-table-column
-                width="50"
-                fixed
-              >
-                <template slot-scope="{row}">
-                  <el-radio
-                    v-model="radioSelected"
-                    :label="row.id"
-                    style="color: transparent;padding-left: 10px;"
-                  />
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="rowNum"
-                width="50"
-                label="搴忓彿"
-                fixed
-              />
-              <el-table-column
-                v-if="activeName!=='涓嶈壇寰呭鐞�'"
-                prop="status"
-                show-tooltip-when-overflow
-                label="鐘舵��"
-                sortable="custom"
-                width="80"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.status==='NEW'">鏂拌鍗�</div>
-                  <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>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="wo_code"
-                label="宸ュ崟鍙�"
-                min-width="160"
-                show-tooltip-when-overflow
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partcode"
-                label="浜у搧缂栫爜"
-                min-width="110"
-                sortable="custom"
-                show-tooltip-when-overflow
-              />
-              <el-table-column
-                prop="partname"
-                min-width="110"
-                show-tooltip-when-overflow
-                label="浜у搧鍚嶇О"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partspec"
-                min-width="110"
-                show-tooltip-when-overflow
-                label="瑙勬牸鍨嬪彿"
-                sortable="custom"
-              >
-                <template slot-scope="{row}">
-                  {{ row.partspec ? row.partspec : '/' }}
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="wkshp_name"
-                min-width="110"
-                show-tooltip-when-overflow
-                label="杞﹂棿鍚嶇О"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="stepname"
-                label="宸ュ簭鍚嶇О"
-                show-tooltip-when-overflow
-                width="120"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="plan_qty"
-                label="浠诲姟鏁伴噺"
-                width="110"
-                sortable="custom"
-                show-tooltip-when-overflow
-              />
-              <el-table-column
-                v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'"
-                prop="fqty"
-                show-tooltip-when-overflow
-                label="宸插彂鏂欐暟閲�"
-                sortable="custom"
-                width="120"
-              />
-              <el-table-column
-                prop="good_qty"
-                show-tooltip-when-overflow
-                :label="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'?'宸叉敹鏂欐暟閲�':'鍚堟牸鏁伴噺'"
-                sortable="custom"
-                width="120"
-              />
-              <el-table-column
-                prop="ng_qty"
-                label="涓嶈壇鏁伴噺"
-                show-tooltip-when-overflow
-                width="120"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="laborbad_qty"
-                label="宸ュ簾鏁伴噺"
-                width="120"
-                show-tooltip-when-overflow
-                sortable="custom"
-              />
-              <el-table-column
-                prop="materielbad_qty"
-                label="鏂欏簾鏁伴噺"
-                width="120"
-                show-tooltip-when-overflow
-                sortable="custom"
-              />
-
-              <el-table-column
-                label="鎿嶄綔"
-                width="120"
-                fixed="right"
-              >
-                <template slot-scope="{row}">
-                  <div class="operationClass">
-                    <el-button v-if="activeName==='鐢熶骇鍒楄〃'" v-waves icon="el-icon-thumb" type="text" @click="report(row)">
-                      鎶ュ伐
-                    </el-button>
-                    <el-button
-                      v-if="activeName==='澶栧崗鍙戞枡'"
-                      v-waves
-                      icon="el-icon-thumb"
-                      type="text"
-                      @click="sendOut(row)"
-                    >鍙戞枡
-                    </el-button>
-                    <el-button v-if="activeName==='澶栧崗鏀舵枡'" v-waves icon="el-icon-thumb" type="text" @click="takeIn(row)">
-                      鏀舵枡
-                    </el-button>
-                    <el-button
-                      v-if="activeName==='涓嶈壇寰呭鐞�'"
-                      v-waves
-                      icon="el-icon-thumb"
-                      type="text"
-                      @click="handleBad(row)"
-                    >澶勭悊
-                    </el-button>
-                  </div>
-                </template>
-              </el-table-column>
-            </el-table>
-          </div>
-          <!--鍒嗛〉-->
-          <pagination
-            :total="total"
-            :page.sync="form.page"
-            :limit.sync="form.rows"
-            align="right"
-            layout="total,prev, pager, next,sizes"
-            popper-class="select_bottom"
-            @pagination="search"
-          />
-        </el-tab-pane>
-
-      </el-tabs>
-
-    </div>
-
-    <!--    寮�鎶ュ伐銆佸鍗忋�佷笉鑹鐞�-->
-    <el-dialog
-      v-el-drag-dialog
-      :title="dialogTitle"
-      :visible.sync="dialogVisible"
-      width="1160px"
-      :close-on-click-modal="false"
-      :top="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'? '6vh':'15vh'"
-      @closed="handleClose"
-      @close="handleClose"
-    >
-      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
-        <!--        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'||activeName==='涓嶈壇寰呭鐞�'" content-position="left">鍩烘湰淇℃伅</el-divider>-->
-        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'" content-position="left">鎶ュ伐淇℃伅</el-divider>
-        <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鏀舵枡淇℃伅</el-divider>
-        <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">寰呭鐞嗕俊鎭�</el-divider>
-        <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.wo_code }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧缂栫爜" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.partnumber }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.partname }}</div>
-        </el-form-item>
-        <el-form-item label="瑙勬牸鍨嬪彿" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.partspec ? dialogForm.partspec : '/' }}</div>
-        </el-form-item>
-        <el-form-item label="褰撳墠宸ュ簭" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.stepname }}</div>
-        </el-form-item>
-        <el-form-item label="涓嬮亾宸ュ簭" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.nextstepname ? dialogForm.nextstepname : '/' }}</div>
-        </el-form-item>
-        <el-form-item label="浠诲姟鏁伴噺" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.planqty }}</div>
-        </el-form-item>
-
-        <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="鍚堟牸鏁伴噺" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.noreportqty }}</div>
-        </el-form-item>
-        <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
-          <div class="dialogFormItemDiv">{{ dialogForm.noputqty }}</div>
-        </el-form-item>
-
-        <el-form-item
-          v-if="activeName!=='涓嶈壇寰呭鐞�'"
-          :label="activeName==='鐢熶骇鍒楄〃'? '鏈姤/宸叉姤':(activeName==='澶栧崗鍙戞枡'?'鏈彂/宸插彂':'鏈敹/宸叉敹')"
-          class="dialogFormItem"
-        >
-          <div class="dialogFormItemDiv">{{ dialogForm.noreportqty + '/' + dialogForm.reportqty }}</div>
-        </el-form-item>
-
-        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
-          <div class="dialogFormItemDiv" style="color:red;">{{ dialogForm.noputqty }}</div>
-        </el-form-item>
-
-        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="鎶ュ伐璁惧" class="dialogFormItem">
-          <el-select
-            v-model="dialogForm.eqpcode"
-            style="width:200px"
-            placeholder="璇烽�夋嫨"
-            filterable
-            clearable
-            :popper-append-to-body="false"
-          >
-            <el-option
-              v-for="item in eqpArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-
-        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="璁′欢鏂瑰紡" class="dialogFormItem">
-          <el-radio-group
-            v-model="dialogForm.reckway"
-            style="width: 200px;"
-            @change="reckwayChange"
-          >
-            <el-radio label="person">涓汉</el-radio>
-            <el-radio label="group">鐝粍</el-radio>
-          </el-radio-group>
-        </el-form-item>
-
-        <el-form-item
-          v-if="activeName==='鐢熶骇鍒楄〃'"
-          :prop="dialogForm.reckway==='group'?'usergroupcode':''"
-          label="鎶ュ伐鐝粍"
-          class="dialogFormItem"
-        >
-          <el-select
-            v-model="dialogForm.usergroupcode"
-            style="width:200px"
-            placeholder="璇烽�夋嫨"
-            filterable
-            :disabled="dialogForm.reckway!=='group'"
-            :popper-append-to-body="false"
-            @change="usergroupChange"
-          >
-            <el-option
-              v-for="item in usergroupArr"
-              :key="item.usergroupcode"
-              :label="item.usergroupname"
-              :value="item.usergroupcode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="reportuser" label="鎶ュ伐浜哄憳" class="dialogFormItem">
-          <el-select
-            v-model="dialogForm.reportuser"
-            style="width:200px"
-            placeholder="璇烽�夋嫨"
-            filterable
-            multiple
-            collapse-tags
-            :multiple-limit="dialogForm.reckway==='group'?0:1"
-            :disabled="dialogForm.reckway==='group'&&dialogForm.usergroupcode===''"
-            :popper-append-to-body="false"
-          >
-            <el-option
-              v-for="item in reportuserArr"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="startqty" label="鍚堟牸鏁伴噺" class="dialogFormItem">
-          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
-        </el-form-item>
-
-        <el-form-item v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'" prop="wxcode" label="澶栧崗渚涙柟" class="dialogFormItem">
-          <el-select
-            v-model="dialogForm.wxcode"
-            style="width:200px"
-            placeholder="璇烽�夋嫨"
-            filterable
-            :popper-append-to-body="false"
-          >
-            <el-option
-              v-for="item in wxArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="outuser" label="鍙戞枡浜哄憳" class="dialogFormItem">
-          <el-select
-            v-model="dialogForm.outuser"
-            style="width:200px"
-            placeholder="璇烽�夋嫨"
-            filterable
-            :popper-append-to-body="false"
-          >
-            <el-option
-              v-for="item in reportuserArr"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="fqty" label="鍙戞枡鏁伴噺" class="dialogFormItem">
-          <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
-        </el-form-item>
-
-        <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="inuser" label="鏀舵枡浜哄憳" class="dialogFormItem">
-          <el-select
-            v-model="dialogForm.inuser"
-            style="width:200px"
-            placeholder="璇烽�夋嫨"
-            filterable
-            :popper-append-to-body="false"
-          >
-            <el-option
-              v-for="item in reportuserArr"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="sqty" label="鏀舵枡鏁伴噺" class="dialogFormItem">
-          <el-input v-model="dialogForm.sqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
-        </el-form-item>
-
-        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" content-position="left">涓嶈壇鏄庣粏淇℃伅</el-divider>
-        <el-button
-          v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
-          v-waves
-          type="primary"
-          icon="el-icon-circle-plus-outline"
-          @click="addDefect"
-        >鏂板
-        </el-button>
-        <el-table
-          v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
-          ref="defectTableDataRef"
-          key="defectTableDataKey"
-          :data="defectTableData"
-          border
-          row-class-name="custom-row"
-          height="200"
-          style="width: 100%;margin-top: 15px;"
-          highlight-current-row
-          :header-cell-style="this.$headerCellStyle"
-          :cell-style="this.$cellStyle"
-        >
-          <el-table-column
-            type="index"
-            label="搴忓彿"
-            align="center"
-            width="50"
-          />
-          <el-table-column
-            prop="stepcode"
-            label="缂洪櫡缂栫爜/鍚嶇О"
-            align="center"
-            min-width="450"
-          >
-            <template slot-scope="{row}">
-              <el-select
-                v-model="row.code"
-                style="width: 100%"
-                placeholder="璇烽�夋嫨"
-                multiple
-                filterable
-              >
-                <!--                collapse-tags-->
-                <el-option
-                  v-for="item in defectArr"
-                  :key="item.code"
-                  :label="item.name"
-                  :value="item.code"
-                />
-              </el-select>
-            </template>
-          </el-table-column>
-
-          <el-table-column
-            prop="badqty"
-            label="涓嶈壇鏁伴噺"
-            align="center"
-          >
-            <template slot-scope="{row}">
-              <el-input
-                v-model="row.badqty"
-                placeholder="璇疯緭鍏ユ暟閲�"
-                oninput="value=value.replace(/[^0-9]/g,'')"
-                style="width: 100%"
-                @click.stop=""
-                @change="badqtyChange"
-              />
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="鎿嶄綔"
-            width="50"
-            align="center"
-          >
-            <template slot-scope="{row}">
-              <div class="operationClass">
-                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
-                  <i
-                    class="el-icon-delete"
-                    :style="{color:$store.state.settings.theme}"
-                    style="margin-left: 7px;"
-                    @click="defectDel(row)"
-                  />
-                </el-tooltip>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鍙敹鏂欎緵搴斿晢</el-divider>
-        <div
-          v-for="(item,index) in dialogForm.list"
-          v-if="item.fqty>0"
-          :key="item.name"
-          style="display: flex;line-height: 26px;height: 26px;margin-left:30px;align-items: center"
-        >
-          <div
-            style="color: #fff;width: 22px;height: 22px;display: flex;justify-content: center;align-items: center;border-radius: 50%"
-            :style="{backgroundColor:$store.state.settings.theme}"
-          >{{ index + 1 }}
-          </div>
-          <div style="margin-left:30px;width: 160px;" class="ellipsis">
-            {{ item.tp }}
-          </div>
-          <div style="margin-left:30px;">
-            鍙敹鏁伴噺锛歿{ item.acceptQty }}
-          </div>
-        </div>
-
-        <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">涓嶈壇淇℃伅鏄庣粏</el-divider>
-        <el-table
-          v-if="activeName==='涓嶈壇寰呭鐞�'"
-          ref="badTableDataDataRef"
-          key="badTableDataDataKey"
-          :data="badTableData"
-          border
-          row-class-name="custom-row"
-          height="300"
-          style="width: 100%;margin-top: 15px;"
-          highlight-current-row
-          :header-cell-style="this.$headerCellStyle"
-          :cell-style="this.$cellStyle"
-        >
-          <el-table-column
-            type="index"
-            label="搴忓彿"
-            align="center"
-            width="50"
-          />
-          <!--          <el-table-column-->
-          <!--            prop="step_code"-->
-          <!--            label="宸ュ簭缂栫爜"-->
-          <!--            show-tooltip-when-overflow-->
-          <!--            align="center"-->
-          <!--          />-->
-          <el-table-column
-            prop="stepname"
-            label="宸ュ簭鍚嶇О"
-            show-tooltip-when-overflow
-            align="center"
-          />
-          <el-table-column
-            prop="plan_qty"
-            label="浠诲姟鏁伴噺"
-            show-tooltip-when-overflow
-            align="center"
-          />
-          <el-table-column
-            prop="report_qty"
-            label="鍚堟牸鏁伴噺"
-            show-tooltip-when-overflow
-            align="center"
-          />
-          <el-table-column
-            prop="ng_qty"
-            label="涓嶈壇鏁伴噺"
-            show-tooltip-when-overflow
-            align="center"
-          />
-          <el-table-column
-            prop="defect_name"
-            label="涓嶈壇鍘熷洜"
-            show-tooltip-when-overflow
-            align="center"
-          />
-          <el-table-column
-            prop="repair_qty"
-            label="缁翠慨鍚堟牸鏁伴噺"
-            align="center"
-          >
-            <template slot-scope="{row}">
-              <el-input
-                v-model="row.repair_qty"
-                placeholder="璇疯緭鍏ユ暟閲�"
-                oninput="value=value.replace(/[^0-9]/g,'')"
-                style="width: 100%"
-                @click.stop=""
-              />
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="laborbad_qty"
-            label="宸ュ簾鏁伴噺"
-            align="center"
-          >
-            <template slot-scope="{row}">
-              <el-input
-                v-model="row.laborbad_qty"
-                placeholder="璇疯緭鍏ユ暟閲�"
-                oninput="value=value.replace(/[^0-9]/g,'')"
-                style="width: 100%"
-                @click.stop=""
-              />
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="materielbad_qty"
-            label="鏂欏簾鏁伴噺"
-            align="center"
-          >
-            <template slot-scope="{row}">
-              <el-input
-                v-model="row.materielbad_qty"
-                placeholder="璇疯緭鍏ユ暟閲�"
-                oninput="value=value.replace(/[^0-9]/g,'')"
-                style="width: 100%"
-                @click.stop=""
-              />
-            </template>
-          </el-table-column>
-
-          <!--          <el-table-column-->
-          <!--            prop="badqty"-->
-          <!--            label="涓嶈壇鏁伴噺"-->
-          <!--            show-tooltip-when-overflow-->
-          <!--            align="center"-->
-          <!--          >-->
-          <!--            <template slot-scope="{row}">-->
-          <!--              <el-input-->
-          <!--                v-model="row.badqty"-->
-          <!--                placeholder="璇疯緭鍏ユ暟閲�"-->
-          <!--                oninput="value=value.replace(/[^0-9]/g,'')"-->
-          <!--                style="width: 100%"-->
-          <!--                @click.stop=""-->
-          <!--                @change="badqtyChange"-->
-          <!--              />-->
-          <!--            </template>-->
-          <!--          </el-table-column>-->
-
-          <!--          <el-table-column-->
-          <!--            label="鎿嶄綔"-->
-          <!--            width="50"-->
-          <!--            align="center"-->
-          <!--          >-->
-          <!--            <template slot-scope="{row}">-->
-          <!--              <div class="operationClass">-->
-          <!--                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
-          <!--                  <i-->
-          <!--                    class="el-icon-delete"-->
-          <!--                    :style="{color:$store.state.settings.theme}"-->
-          <!--                    style="margin-left: 7px;"-->
-          <!--                    @click="defectDel(row)"-->
-          <!--                  />-->
-          <!--                </el-tooltip>-->
-          <!--              </div>-->
-          <!--            </template>-->
-          <!--          </el-table-column>-->
-
-        </el-table>
-      </el-form>
-
-      <span slot="footer" class="dialog-footer">
-        <div class="footerButton">
-          <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
-          <el-button
-            v-waves
-            type="primary"
-            :loading="$store.state.app.buttonIsDisabled"
-            :disabled="$store.state.app.buttonIsDisabled"
-            @click="dialogVisibleConfirm"
-          >纭� 瀹�</el-button>
-        </div>
-      </span>
-    </el-dialog>
-
-    <!--    娴佽浆灏忔爣绛炬墦鍗�-->
-    <!--鎵撳嵃棰勮椤甸潰  灏忔爣绛�-->
-    <el-dialog
-      v-el-drag-dialog
-      title="棰勮"
-      :visible.sync="dialogVisible2"
-      width="1140"
-      top="10vh"
-      :close-on-click-modal="false"
-      @close="dialogVisible2Close"
-    >
-      <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
-      <div id="printMe2" style="padding: 30px;">
-        <div
-          style="display: flex;width: 280px;height: 150px;border: 1px solid #000;text-align: center;font-size: 10px;"
-        >
-
-          <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
-            <div
-              style="display: flex;height: 90px;border-bottom:1px solid #000;
-              justify-content: center;align-items: center;position: relative"
-            >
-              <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" />
-            </div>
-            <div
-              style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
-            >
-              <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
-              {{ qrForm.startqty }}
-            </div>
-            <div style="display: flex;height: 30px;justify-content: flex-start;align-items: center">
-              <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
-              {{ qrForm.operator }}
-            </div>
-          </div>
-
-          <div style="width:190px;display: flex;flex-direction: column">
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
-            >
-              <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
-              <div>{{ qrForm.wo_code }}</div>
-            </div>
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
-            >
-              <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
-              <div>{{ qrForm.partcode }}</div>
-            </div>
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
-            >
-              <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
-              <div>{{ qrForm.partname }}</div>
-            </div>
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
-            >
-              <div style="width:60px;margin-left: 5px;">{{ qrForm.nextstepname?'涓嬮亾宸ュ簭':'浜у搧瑙勬牸' }}:</div>
-              <div>{{ qrForm.nextstepname?qrForm.nextstepname:qrForm.partspec?qrForm.partspec:'/' }}</div>
-            </div>
-            <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
-              <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
-              <div>{{ qrForm.operatorTime }}</div>
-            </div>
-
-          </div>
-
-        </div>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <div class="footerButton">
-          <el-button v-waves @click="dialogVisible2 = false">鍙� 娑�</el-button>
-          <el-button v-waves v-print="printObj2" type="primary">纭� 瀹�</el-button>
-        </div>
-      </span>
-    </el-dialog>
-
-  </div>
-</template>
-
-<script>
-import Pagination from '@/components/Pagination'
-import $ from 'jquery'
-import elDragDialog from '@/directive/el-drag-dialog'
-import waves from '@/directive/waves'
-import {
-  EditOrderNgStepSeave,
-  MesOrderNgStepSearch,
-  MesOrderNgSubStepSearch,
-  MesOrderStepSearch, MesOrderStepStart,
-  MesOrderWxStepSearch, SavaMesOrderStepIn, SavaMesOrderStepOut, SavaMesOrderStepReport
-} from '@/api/WorkOrder'
-import {
-  CustomerPermissions,
-  DefectPermissions,
-  EqpPermissions,
-  GroupsPermissions,
-  GroupsPersonPermissions,
-  PersonPermissions, PrentOrganizationNoCompany
-} from '@/api/GeneralBasicData'
-import { nanoid } from 'nanoid'
-import { LabelBarCode } from '@/api/systemSetting'
-import { getCookie } from '@/utils/auth'
-import { handleDatetime2 } from '@/utils/global'
-import QRCode from 'qrcodejs2'
-export default {
-  name: 'StepReport',
-  components: {
-    Pagination
-  },
-  directives: { elDragDialog, waves },
-  data() {
-    return {
-      mainHeight: 0,
-      tableHeight: 0,
-      form: {
-        wkshopcode: '',
-        wocode: '', // 宸ュ崟鍙�
-        partcode: '', // 浜у搧缂栫爜
-        partname: '', // 浜у搧鍚嶇О
-        partspec: '', // 浜у搧瑙勬牸
-        prop: 'lm_date', // 鎺掑簭瀛楁
-        order: 'desc', // 鎺掑簭瀛楁
-        page: 1, // 绗嚑椤�
-        rows: 20 // 姣忛〉澶氬皯鏉�
-      },
-      wkshopcodeArr: [],
-      total: 10,
-      tableData: [],
-      activeName: '鐢熶骇鍒楄〃',
-      elTabsArr: [
-        { code: 'ZZ', name: '鐢熶骇鍒楄〃' },
-        { code: 'OUT', name: '澶栧崗鍙戞枡' },
-        { code: 'IN', name: '澶栧崗鏀舵枡' },
-        { code: 'BAD', name: '涓嶈壇寰呭鐞�' }
-      ],
-
-      radioSelected: '', // 澶氶�夋閫変腑鍊�
-
-      dialogVisible: false,
-      dialogTitle: '', // 瀵硅瘽妗嗗皬鏍囬
-
-      dialogForm: {
-        'wo_code': '',
-        'partnumber': '',
-        'partname': '',
-        'partspec': '',
-        'seq': '',
-        'stepcode': '',
-        'stepname': '',
-        'stepprice': '', // 宸ュ簭鍗曚环
-        'nextstepcode': '',
-        'nextstepname': '',
-        'nextstepprice': '',
-        'stepdesc': '',
-        'planqty': 0,
-        'startqty': 0, //
-        'noreportqty': 0, // 鏈姤鏁伴噺
-        'reportqty': 0, // 宸叉姤鏁伴噺
-        'noputqty': 0, // 涓嶈壇鏁伴噺
-        'wkshopcode': '',
-        'wkshopname': '',
-        'eqpcode': '',
-        'eqpname': '',
-
-        remarks: '', // 澶囨敞
-        inbarcode: '', // 鍏ュ簱鏉$爜
-        defectlist: '', // 涓嶈壇姹囨��
-        reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
-        usergroupcode: '', // 鐝粍缂栫爜
-        reportuser: [], // 鎶ュ伐浜哄憳
-
-        wxcode: '',
-        outuser: '',
-        fqty: '',
-        inuser: '',
-        sqty: '',
-        list: ''
-
-      },
-      dialogFormRules: {
-        eqpcode: [
-          { required: true, message: '璇烽�夋嫨鎶ュ伐璁惧', trigger: ['blur', 'change'] }
-        ],
-        usergroupcode: [
-          { required: true, message: '璇烽�夋嫨鎶ュ伐鐝粍', trigger: ['blur', 'change'] }
-        ],
-        reportuser: [
-          { required: true, message: '璇烽�夋嫨鎶ュ伐浜哄憳', trigger: ['blur', 'change'] }
-        ],
-        startqty: [
-          { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] }
-        ],
-        wxcode: [
-          { required: true, message: '璇烽�夋嫨澶栧崗渚涙柟', trigger: ['blur', 'change'] }
-        ],
-        outuser: [
-          { required: true, message: '璇烽�夋嫨鍙戞枡浜哄憳', trigger: ['blur', 'change'] }
-        ],
-        inuser: [
-          { required: true, message: '璇烽�夋嫨鏀舵枡浜哄憳', trigger: ['blur', 'change'] }
-        ],
-        fqty: [
-          { required: true, message: '璇疯緭鍏ュ彂鏂欐暟閲�', trigger: ['blur', 'change'] }
-        ],
-        sqty: [
-          { required: true, message: '璇疯緭鍏ユ敹鏂欐暟閲�', trigger: ['blur', 'change'] }
-        ]
-
-      },
-      reckwayArr: [// 鎶ュ伐绫诲瀷
-        { code: 'group', name: '鐝粍' },
-        { code: 'person', name: '涓汉' }
-      ],
-      reportuserArr: [], // 鎶ュ伐浜哄憳
-      usergroupArr: [], // 鎶ュ伐鐝粍
-      eqpArr: [], // 鎶ュ伐璁惧
-      defectArr: [], // 涓嶈壇缂洪櫡
-      wxArr: [], // 寰�鏉ュ崟浣嶄笅鎷�
-
-      defectTableData: [],
-      badTableData: [],
-      workOrderCurrentValue: '',
-
-      dialogVisible2: false, //
-      qrForm: { // 鎵撳嵃鍐呭
-        qrvalue: '',
-        startqty: '',
-        wo_code: '',
-        partcode: '',
-        partname: '',
-        partspec: '',
-        nextstepname: '',
-        operator: '', // 鎿嶄綔浜�
-        operatorTime: ''// 鎿嶄綔鏃堕棿
-      },
-      printObj2: {
-        id: 'printMe2',
-        popTitle: '鎵撳嵃妯℃澘',
-        preview: false,
-        extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
-        closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
-          console.log('11212', vue)
-          // vue.dialogVisible = false
-          vue.dialogVisible2 = false
-          vue.dialogVisible = false
-        },
-        beforeOpenCallback(vue) {
-          vue.printLoading = true
-          console.log('鎵撳紑涔嬪墠')
-        },
-        openCallback(vue) {
-          vue.printLoading = false
-          console.log('鎵ц浜嗘墦鍗�')
-        }
-      },
-      xx: ''
-    }
-  },
-  activated() {
  window.addEventListener('resize', this.getHeight)
  this.getHeight()
},
created() {
-
-  },
-  mounted() {
-    window.addEventListener('resize', this.getHeight)
-    this.getHeight()
-
-    this.tabClick()
-
-    this.getAllSelectArr()
-  },
-  methods: {
-
-    async getAllSelectArr() {
-      const { data: res1 } = await GroupsPermissions()// 鐝粍
-      this.usergroupArr = res1
-
-      const { data: res2 } = await PersonPermissions() // 浜哄憳
-      this.reportuserArr = res2
-
-      const { data: res3 } = await DefectPermissions() // 缂洪櫡
-      this.defectArr = res3
-
-      const { data: res4 } = await EqpPermissions() // 璁惧
-      this.eqpArr = res4
-
-      const { data: res5 } = await CustomerPermissions() // 寰�鏉ュ崟浣�
-      this.wxArr = res5
-
-      const { data: res6 } = await PrentOrganizationNoCompany()// 鏃犲叕鍙哥殑缁勭粐涓嬫媺
-      this.wkshopcodeArr = res6
-    },
-    tabClick() {
-      let belong
-      switch (this.activeName) {
-        case '鐢熶骇鍒楄〃':
-          belong = 'produceCodeZZ'
-          this.dialogTitle = '鎶ュ伐'
-          break
-        case '澶栧崗鍙戞枡':
-          belong = 'produceCodeOUT'
-          this.dialogTitle = '鍙戞枡'
-          break
-        case '澶栧崗鏀舵枡':
-          belong = 'produceCodeIN'
-          this.dialogTitle = '鏀舵枡'
-          break
-        case '涓嶈壇寰呭鐞�':
-          belong = 'produceCodeBAD'
-          this.dialogTitle = '涓嶈壇澶勭悊'
-          break
-      }
-      this.enterNative(this.form.wocode, belong)
-
-      this.radioSelected = ''
-    },
-    enterNative(val, belong) {
-      if (belong === 'produceCodeZZ') {
-        this.$nextTick(() => {
-          $('input[name=\'produceCodeZZ\']')[0].focus()
-        })
-      }
-      if (belong === 'produceCodeOUT') {
-        this.$nextTick(() => {
-          $('input[name=\'produceCodeOUT\']')[0].focus()
-        })
-      }
-      if (belong === 'produceCodeIN') {
-        this.$nextTick(() => {
-          $('input[name=\'produceCodeIN\']')[0].focus()
-        })
-      }
-      if (belong === 'produceCodeBAD') {
-        this.$nextTick(() => {
-          $('input[name=\'produceCodeBAD\']')[0].focus()
-        })
-      }
-      this.search()
-    },
-    // 鎺掑簭鏀瑰彉鏃�
-    sortChange({ column, prop, order }) {
-      if (order === 'descending') {
-        order = 'desc'
-      } else if (order === 'ascending') {
-        order = 'asc'
-      } else {
-        order = 'desc'
-      }
-      this.form.order = order
-      this.form.prop = prop
-      this.search()
-    },
-    // 鏌ヨ
-    async search() {
-      this.form.wocode = this.workOrderCurrentValue
-      this.workOrderCurrentValue = ''
-      if (this.activeName === '鐢熶骇鍒楄〃') {
-        const res = await MesOrderStepSearch(this.form)
-        this.tableData = res.data
-        this.total = res.count
-      }
-      if (this.activeName === '澶栧崗鍙戞枡' || this.activeName === '澶栧崗鏀舵枡') {
-        const res = await MesOrderWxStepSearch(this.form)
-        this.tableData = res.data
-        this.total = res.count
-      }
-
-      if (this.activeName === '涓嶈壇寰呭鐞�') {
-        const res = await MesOrderNgStepSearch(this.form)
-        this.tableData = res.data
-        this.total = res.count
-      }
-    },
-    // 鎶ュ伐
-    report(row) {
-      if (row) {
-        this.getMesOrderStepStart('ZZ', '', row.wo_code, row.stepcode)
-      } else {
-        const temp = this.tableData.find(i => i.id === this.radioSelected)
-        this.getMesOrderStepStart('ZZ', '', temp.wo_code, temp.stepcode)
-      }
-    },
-    // 鍙戞枡
-    sendOut(row) {
-      if (row) {
-        this.getMesOrderStepStart('WX', 'OUT', row.wo_code, row.stepcode)
-      } else {
-        const temp = this.tableData.find(i => i.id === this.radioSelected)
-        this.getMesOrderStepStart('WX', 'OUT', temp.wo_code, temp.stepcode)
-      }
-    },
-    // 鏀舵枡
-    takeIn(row) {
-      if (row) {
-        this.getMesOrderStepStart('WX', 'IN', row.wo_code, row.stepcode)
-      } else {
-        const temp = this.tableData.find(i => i.id === this.radioSelected)
-        this.getMesOrderStepStart('WX', 'IN', temp.wo_code, temp.stepcode)
-      }
-    },
-    // 涓嶈壇澶勭悊    鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
-    async handleBad(row) {
-      const data = {
-        wocode: row ? row.wo_code : this.tableData.find(i => i.id === this.radioSelected).wo_code,
-        stepcode: row ? row.stepcode : this.tableData.find(i => i.id === this.radioSelected).stepcode
-      }
-      let res = await MesOrderNgSubStepSearch(data)
-      if (res.code === '200') {
-        res = res.data
-        this.dialogForm.wo_code = res.data1.wo_code
-        this.dialogForm.partnumber = res.data1.partnumber
-        this.dialogForm.partname = res.data1.partname
-        this.dialogForm.partspec = res.data1.partspec
-        this.dialogForm.seq = res.data1.seq
-        this.dialogForm.stepcode = res.data1.stepcode
-        this.dialogForm.stepname = res.data1.stepname
-        this.dialogForm.stepprice = res.data1.stepprice
-        this.dialogForm.nextstepcode = res.data1.nextstepcode
-        this.dialogForm.nextstepname = res.data1.nextstepname
-        this.dialogForm.nextstepprice = res.data1.nextstepprice
-        this.dialogForm.stepdesc = res.data1.stepdesc
-        this.dialogForm.planqty = res.data1.planqty
-        this.dialogForm.startqty = res.data1.startqty
-        this.dialogForm.noreportqty = res.data1.noreportqty // 鍚堟牸鏁伴噺
-        this.dialogForm.reportqty = res.data1.reportqty
-        this.dialogForm.noputqty = res.data1.noputqty // 涓嶈壇鏁伴噺
-        this.dialogForm.wkshopcode = res.data1.wkshopcode
-        this.dialogForm.wkshopname = res.data1.wkshopname
-        this.dialogForm.eqpcode = res.data1.eqpcode
-        this.dialogForm.eqpname = res.data1.eqpname
-
-        res.data2.forEach(item => {
-          item.repair_qty = 0
-          item.laborbad_qty = 0
-          item.materielbad_qty = 0
-        })
-
-        this.badTableData = res.data2
-
-        this.dialogVisible = true
-      }
-    },
-    // 鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
-    async getMesOrderStepStart(OperType, SelectType, wocode, stepcode) {
-      const data = {
-        OperType, SelectType, wocode, stepcode
-      }
-      let res = await MesOrderStepStart(data)
-      if (res.code === '200') {
-        res = res.data
-        this.dialogForm.wo_code = res.wo_code
-        this.dialogForm.partnumber = res.partnumber
-        this.dialogForm.partname = res.partname
-        this.dialogForm.partspec = res.partspec
-        this.dialogForm.seq = res.seq
-        this.dialogForm.stepcode = res.stepcode
-        this.dialogForm.stepname = res.stepname
-        this.dialogForm.stepprice = res.stepprice
-        this.dialogForm.nextstepcode = res.nextstepcode
-        this.dialogForm.nextstepname = res.nextstepname
-        this.dialogForm.nextstepprice = res.nextstepprice
-        this.dialogForm.stepdesc = res.stepdesc
-        this.dialogForm.planqty = res.planqty
-        this.dialogForm.startqty = res.startqty
-        this.dialogForm.noreportqty = res.noreportqty// 鏈姤鏁伴噺
-        this.dialogForm.reportqty = res.reportqty // 宸叉姤鏁伴噺
-        this.dialogForm.noputqty = res.noputqty
-        this.dialogForm.wkshopcode = res.wkshopcode
-        this.dialogForm.wkshopname = res.wkshopname
-        this.dialogForm.eqpcode = res.eqpcode
-        this.dialogForm.eqpname = res.eqpname
-
-        if (this.activeName === '澶栧崗鏀舵枡') {
-          this.dialogForm.list = []
-          res.list.forEach(i => {
-            i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty) - parseFloat(i.materielbad_qty)
-            if (i.acceptQty > 0) {
-              this.dialogForm.list.push(i)
-            }
-          })
-        }
-
-        // this.dialogForm.list = res.list
-
-        this.dialogVisible = true
-      }
-    },
-    // 瀵硅瘽妗嗗叧闂簨浠�
-    handleClose() {
-      this.dialogForm = {
-        'wo_code': '',
-        'partnumber': '',
-        'partname': '',
-        'partspec': '',
-        'seq': '',
-        'stepcode': '',
-        'stepname': '',
-        'stepprice': '', // 宸ュ簭鍗曚环
-        'nextstepcode': '',
-        'nextstepname': '',
-        'nextstepprice': '',
-        'stepdesc': '',
-        'planqty': 0,
-        'startqty': 0, //
-        'noreportqty': 0, // 鏈姤鏁伴噺
-        'reportqty': 0, // 宸叉姤鏁伴噺
-        'noputqty': 0, // 涓嶈壇鏁伴噺
-        'wkshopcode': '',
-        'wkshopname': '',
-        'eqpcode': '',
-        'eqpname': '',
-
-        wxcode: '',
-        outuser: '',
-        fqty: '',
-        inuser: '',
-        sqty: '',
-        list: '',
-
-        remarks: '', // 澶囨敞
-        inbarcode: '', // 鍏ュ簱鏉$爜
-        defectlist: '', // 涓嶈壇姹囨��
-        reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
-        usergroupcode: '', // 鐝粍缂栫爜
-        reportuser: [] // 鎶ュ伐浜哄憳
-
-      }
-
-      this.defectTableData = []
-      this.badTableData = []
-
-      this.$refs.dialogForm.clearValidate()
-    },
-    // 瀵硅瘽妗嗗彇娑�
-    dialogVisibleCancel() {
-      this.dialogVisible = false
-      this.tabClick()
-    },
-    // 瀵硅瘽妗嗙‘璁�
-    dialogVisibleConfirm() {
-      this.$refs.dialogForm.validate(async valid => {
-        if (valid) {
-          if (this.activeName === '鐢熶骇鍒楄〃') {
-            if (this.defectTableData.find(i => i.code.length === 0)) {
-              return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
-            }
-            if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
-              return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
-            }
-
-            if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
-              return this.$message.info('鍚堟牸鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鏈姤鏁伴噺!')
-            }
-            let inbarcode = ''
-            if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
-              const data1 = {
-                rightcode: getCookie('ruleCode'),
-                partcode: this.dialogForm.partnumber,
-                qty: this.dialogForm.startqty,
-                onelabqty: this.dialogForm.startqty
-              }
-
-              const res1 = await LabelBarCode(data1)
-              inbarcode = res1.data[0].labcode
-            }
-
-            const defectlist = []
-            this.defectTableData.forEach(i => {
-              defectlist.push({
-                defect_code: i.code.join(','),
-                badqty: i.badqty
-              })
-            })
-            const data = {
-              mesordercode: this.dialogForm.wo_code,
-              partcode: this.dialogForm.partnumber,
-              stepseq: this.dialogForm.seq,
-              stepcode: this.dialogForm.stepcode,
-              stepprice: this.dialogForm.stepprice,
-              eqpcode: this.dialogForm.eqpcode,
-              inbarcode,
-              reckway: this.dialogForm.reckway,
-              usergroupcode: this.dialogForm.usergroupcode,
-              reportuser: this.dialogForm.reportuser.join(','),
-              taskqty: this.dialogForm.planqty,
-              // startqty: this.dialogForm.startqty,
-              // reportqty: this.dialogForm.reportqty,
-
-              startqty: this.dialogForm.startqty,
-              reportqty: this.dialogForm.startqty, // 鎶ュ伐鏁伴噺
-
-              defectlist,
-              remarks: ''
-            }
-            // console.log(JSON.parse(JSON.stringify(this.defectTableData)))
-            // console.log(JSON.parse(JSON.stringify(data)))
-
-            this.$store.state.app.buttonIsDisabled = true
-            const res = await SavaMesOrderStepReport(data)
-            if (res.code === '200') {
-              this.$notify.success('鎶ュ伐鎴愬姛锛�')
-              // await this.search()
-              await this.tabClick()
-              this.$store.state.app.buttonIsDisabled = false
-              this.dialogVisible = false
-
-              // 鑷埗鎶ュ伐鎵撳嵃鏍囩鍙e瓙宸插紑濂�
-              // if (JSON.parse(localStorage.getItem('mesSetting')).every) {
-              //   this.dialogVisible2 = true
-              //   this.ZZprint2(localStorage.getItem('username'))
-              // }
-            } else {
-              this.$store.state.app.buttonIsDisabled = false
-              this.$notify.error('鎶ュ伐澶辫触锛�')
-            }
-          }
-
-          if (this.activeName === '澶栧崗鍙戞枡') {
-            if (parseFloat(this.dialogForm.fqty) < 1) {
-              return this.$message.info('鍙戞枡鏁伴噺涓嶈兘涓洪浂锛�')
-            }
-            if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) {
-              return this.$message.info('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺!')
-            }
-            const data = {
-              mesordercode: this.dialogForm.wo_code,
-              partcode: this.dialogForm.partnumber,
-              stepseq: this.dialogForm.seq,
-              stepcode: this.dialogForm.stepcode,
-
-              wxcode: this.dialogForm.wxcode,
-              outuser: this.dialogForm.outuser,
-              taskqty: this.dialogForm.planqty,
-              fqty: this.dialogForm.fqty
-            }
-            // console.log(JSON.stringify(data))
-
-            this.$store.state.app.buttonIsDisabled = true
-            const res = await SavaMesOrderStepOut(data)
-            if (res.code === '200') {
-              this.$notify.success('鍙戞枡鎴愬姛锛�')
-              // await this.search()
-              await this.tabClick()
-              this.$store.state.app.buttonIsDisabled = false
-              this.dialogVisible = false
-            } else {
-              this.$store.state.app.buttonIsDisabled = false
-              this.$notify.error('鍙戞枡澶辫触锛�')
-            }
-          }
-
-          if (this.activeName === '澶栧崗鏀舵枡') {
-            if (this.defectTableData.find(i => i.code.length === 0)) {
-              return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
-            }
-            if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
-              return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
-            }
-
-            if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
-              return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鍙敹鏁伴噺!')
-            }
-
-            if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode)) {
-              if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode).acceptQty < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
-                return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庤渚涘簲鍟嗗彲鏀舵暟閲�!')
-              }
-            } else {
-              return this.$message.info('姝や緵搴斿晢鏃犲彲鏀舵暟閲�!')
-            }
-
-            let inbarcode = ''
-            if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
-              const data1 = {
-                rightcode: getCookie('ruleCode'),
-                partcode: this.dialogForm.partnumber,
-                qty: this.dialogForm.startqty,
-                onelabqty: this.dialogForm.startqty
-              }
-
-              const res1 = await LabelBarCode(data1)
-              inbarcode = res1.data[0].labcode
-            }
-            const defectlist = []
-            this.defectTableData.forEach(i => {
-              defectlist.push({
-                defect_code: i.code.join(','),
-                badqty: i.badqty
-              })
-            })
-
-            const data = {
-              mesordercode: this.dialogForm.wo_code,
-              partcode: this.dialogForm.partnumber,
-              stepseq: this.dialogForm.seq,
-              stepcode: this.dialogForm.stepcode,
-
-              wxcode: this.dialogForm.wxcode,
-              inbarcode,
-              inuser: this.dialogForm.inuser,
-              taskqty: this.dialogForm.planqty,
-              sqty: this.dialogForm.sqty,
-              defectlist,
-              remarks: ''
-            }
-            // console.log(JSON.parse(JSON.stringify(data)), 1)
-            this.$store.state.app.buttonIsDisabled = true
-            const res = await SavaMesOrderStepIn(data)
-            if (res.code === '200') {
-              this.$notify.success('鏀舵枡鎴愬姛锛�')
-              // await this.search()
-              await this.tabClick()
-              this.$store.state.app.buttonIsDisabled = false
-              this.dialogVisible = false
-            } else {
-              this.$store.state.app.buttonIsDisabled = false
-              this.$notify.error('鏀舵枡澶辫触锛�')
-            }
-          }
-
-          if (this.activeName === '涓嶈壇寰呭鐞�') {
-            let flag = false
-            this.badTableData.forEach(i => {
-              if (parseFloat(i.repair_qty) + parseFloat(i.laborbad_qty) + parseFloat(i.materielbad_qty) > parseFloat(i.ng_qty)) {
-                flag = true
-              }
-            })
-            if (flag) {
-              return this.$message.info('缁翠慨鍚堟牸鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺涓嶈兘澶т簬涓嶈壇鏁伴噺锛�')
-            }
-            this.$store.state.app.buttonIsDisabled = true
-            const res = await EditOrderNgStepSeave({ Data: this.badTableData })
-            if (res.code === '200') {
-              this.$notify.success('鎻愪氦鎴愬姛锛�')
-              // await this.search()
-              await this.tabClick()
-              this.$store.state.app.buttonIsDisabled = false
-              this.dialogVisible = false
-            } else {
-              this.$store.state.app.buttonIsDisabled = false
-              this.$notify.error('鎻愪氦澶辫触锛�')
-            }
-          }
-        }
-      })
-    },
-
-    dialogVisible2Close() {
-      this.qrForm.qrvalue = ''
-      this.qrForm.startqty = ''
-      this.qrForm.wo_code = ''
-      this.qrForm.partcode = ''
-      this.qrForm.partname = ''
-      this.qrForm.partspec = ''
-      this.qrForm.nextstepname = ''
-      this.qrForm.operator = ''
-      this.qrForm.operatorTime = ''
-      // this.$refs.qrCodeDiv2 = ''
-    },
-
-    ZZprint2(username) {
-      if (this.dialogForm.nextstepcode !== '') {
-        this.qrForm.qrvalue = this.dialogForm.wo_code + ';' + this.dialogForm.nextstepcode
-      } else {
-        this.qrForm.qrvalue = this.dialogForm.inbarcode
-      }
-
-      this.qrForm.startqty = this.dialogForm.startqty
-      this.qrForm.wo_code = this.dialogForm.wo_code
-      this.qrForm.partcode = this.dialogForm.partnumber
-      this.qrForm.partname = this.dialogForm.partname
-      this.qrForm.nextstepname = this.dialogForm.nextstepname
-      this.qrForm.operator = username
-      this.qrForm.operatorTime = handleDatetime2(new Date())
-      this.$nextTick(() => {
-        this.bindQRCode(this.qrForm.qrvalue)
-      })
-    },
-    // 鐢熸垚浜岀淮鐮�
-    bindQRCode(text) {
-      new QRCode(this.$refs.qrCodeDiv2, {
-        text: text,
-        // width: 50,
-        width: 60,
-        // height: 50,
-        height: 60,
-        colorDark: '#000', // 浜岀淮鐮侀鑹�
-        colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
-        correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
-      })
-    },
-    // 缂洪櫡鏂板
-    addDefect() {
-      if (this.defectTableData.find(i => i.code.length === 0)) {
-        return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
-      }
-      if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
-        return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
-      }
-
-      this.defectTableData.push({
-        uuid: nanoid(), code: [], badqty: ''
-      })
-    },
-    // 缂洪櫡鍒犻櫎
-    defectDel(row) {
-      this.defectTableData = this.defectTableData.filter(i => i.uuid !== row.uuid)
-
-      this.dialogForm.noputqty = 0
-      this.defectTableData.forEach(i => {
-        this.dialogForm.noputqty += parseFloat(i.badqty)
-      })
-    },
-    badqtyChange(val) {
-      this.dialogForm.noputqty = 0
-      this.defectTableData.forEach(i => {
-        this.dialogForm.noputqty += parseFloat(i.badqty)
-      })
-    },
-    reckwayChange(val) {
-      // console.log(val)
-      this.dialogForm.usergroupcode = ''
-      this.dialogForm.reportuser = []
-    },
-    async usergroupChange(val) {
-      const { data: res } = await GroupsPersonPermissions({ groupcode: val })
-      this.dialogForm.reportuser = res[0].usercode_list ? res[0].usercode_list.split(',') : []
-    },
-    rowClick(row, event, column) {
-      this.radioSelected = row.id
-    },
-    // 鑾峰彇椤甸潰楂樺害
-    getHeight() {
-      this.$nextTick(() => {
-        this.mainHeight = window.innerHeight - 85
-        this.tableHeight = this.mainHeight - 275
-        // this.$refs.tableDataRef.doLayout()
-      })
-    },
-    reset() {
-      this.form.wkshopcode = ''
-      this.form.wocode = ''
-      this.form.workOrderCurrentValue = ''
-      this.form.partcode = ''
-      this.form.partname = ''
-      this.form.partspec = ''
-      this.search()
-    },
-
-    headerCellStyle() {
-      return this.$headerCellStyle
-    },
-    cellStyle() {
-      return this.$cellStyle
-    }
-  }
-}
-</script>
-<style lang="scss" scoped>
-
-::v-deep .elTableDiv .el-radio__label {
-  display: none !important;
-}
-
-.dialogFormItem {
-  margin: 0 10px 0 0;
-}
-
-.dialogFormItemDiv {
-  width: 200px;
-}
-
-::v-deep .el-select__caret {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-
-::v-deep .el-dialog .el-form-item__label {
-  font-weight: lighter !important;
-}
-
-::v-deep .el-dialog .el-divider__text {
-  font-weight: bolder !important;
-}
-
-</style>
+<template>
+  <div>
+    <div class="body" style="padding-top: 10px;" :style="{height:mainHeight+'px'}">
+
+      <div style="position: absolute;right:36px;z-index: 2;top: 13px">
+        <el-button
+          v-if="activeName==='鐢熶骇鍒楄〃'&&tableData.length>0"
+          v-waves
+          icon="el-icon-thumb"
+          type="primary"
+          :disabled="radioSelected===''"
+          @click="report()"
+        >鎶ュ伐
+        </el-button>
+        <el-button
+          v-if="activeName==='澶栧崗鍙戞枡'&&tableData.length>0"
+          v-waves
+          type="primary"
+          icon="el-icon-thumb"
+          :disabled="radioSelected===''"
+          @click="sendOut()"
+        >鍙戞枡
+        </el-button>
+        <el-button
+          v-if="activeName==='澶栧崗鏀舵枡'&&tableData.length>0"
+          v-waves
+          type="primary"
+          icon="el-icon-thumb"
+          :disabled="radioSelected===''"
+          @click="takeIn()"
+        >鏀舵枡
+        </el-button>
+        <el-button
+          v-if="activeName==='涓嶈壇寰呭鐞�'&&tableData.length>0"
+          v-waves
+          type="primary"
+          icon="el-icon-thumb"
+          :disabled="radioSelected===''"
+          @click="handleBad()"
+        >澶勭悊
+        </el-button>
+      </div>
+
+      <div v-if="form.wocode" style="position: absolute;left: 460px;z-index: 2;top: 23px;font-weight: bolder">
+        褰撳墠宸ュ崟鍙蜂负锛歿{ form.wocode }}
+      </div>
+
+      <el-tabs
+        ref="elTabs"
+        v-model="activeName"
+        type="border-card"
+        @tab-click="tabClick"
+      >
+
+        <el-tab-pane
+          v-for="item in elTabsArr"
+          :key="item.code"
+          :label="item.name"
+          :name="item.name"
+        >
+
+          <div class="bodyTopFormGroup">
+            <el-form
+              ref="form"
+              :model="form"
+              label-width="100px"
+              inline
+              style="display: flex;"
+            >
+              <div class="elForm">
+
+                <el-form-item label="宸ュ崟鍙�" style=" display: flex;">
+                  <el-input
+                    v-model="workOrderCurrentValue"
+                    :name="'produceCode'+item.code"
+                    placeholder="璇锋壂鎻忔垨杈撳叆"
+                    style="width: 300px"
+
+                    @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+                  />
+                </el-form-item>
+                <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+                  <el-input
+                    v-model="form.partcode"
+                    placeholder="璇疯緭鍏�"
+                    style="width: 200px"
+
+                    @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+                  />
+                </el-form-item>
+                <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+                  <el-input
+                    v-model="form.partname"
+                    placeholder="璇疯緭鍏�"
+
+                    style="width: 200px"
+                    @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+                  />
+                </el-form-item>
+                <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+                  <el-select
+                    v-model="form.wkshopcode"
+                    filterable
+                    :popper-append-to-body="false"
+                    style="width: 200px"
+
+                    placeholder="璇烽�夋嫨"
+                  >
+                    <el-option
+                      v-for="item in wkshopcodeArr"
+                      :key="item.torg_code"
+                      :label="item.torg_name"
+                      :value="item.torg_code"
+                    />
+                  </el-select>
+                </el-form-item>
+
+                <!--                <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">-->
+                <!--                  <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+                <!--                </el-form-item>-->
+
+              </div>
+              <div
+                class="bodySearchReset"
+                :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+              >
+                <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+                <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+              </div>
+            </el-form>
+            <div
+              class="bodyTopFormExpand"
+              style="height:5px"
+            >
+              <!--          <svg-icon-->
+              <!--            v-show="mouseHoverType==='mouseout'"-->
+              <!--            style="cursor: pointer"-->
+              <!--            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+              <!--            @mouseenter="mouseHoverType=$event.type"-->
+              <!--          />-->
+              <!--          <svg-icon-->
+              <!--            v-show="mouseHoverType==='mouseenter'"-->
+              <!--            style="cursor: pointer"-->
+              <!--            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+              <!--            @click="isExpandForm=!isExpandForm"-->
+              <!--            @mouseout="mouseHoverType=$event.type"-->
+              <!--          />-->
+            </div>
+          </div>
+
+          <div class="elTableDiv">
+            <el-table
+              ref="tableDataRef"
+              :key="'tableDataRef'+item.code"
+              class="tableFixed"
+              :data="tableData"
+              :height="tableHeight+50"
+              border
+              row-class-name="custom-row"
+              :style="{width: 100+'%',height:tableHeight+'px'}"
+              highlight-current-row
+              :header-cell-style="headerCellStyle()"
+              :cell-style="cellStyle()"
+              @sort-change="sortChange"
+              @row-click="rowClick"
+            >
+              <el-table-column
+                width="50"
+                fixed
+              >
+                <template slot-scope="{row}">
+                  <el-radio
+                    v-model="radioSelected"
+                    :label="row.id"
+                    style="color: transparent;padding-left: 10px;"
+                  />
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="rowNum"
+                width="50"
+                label="搴忓彿"
+                fixed
+              />
+              <el-table-column
+                v-if="activeName!=='涓嶈壇寰呭鐞�'"
+                prop="status"
+                show-tooltip-when-overflow
+                label="鐘舵��"
+                sortable="custom"
+                width="80"
+              >
+                <template slot-scope="{row}">
+                  <div v-if="row.status==='NEW'">鏂拌鍗�</div>
+                  <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>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="wo_code"
+                label="宸ュ崟鍙�"
+                min-width="160"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partcode"
+                label="浜у搧缂栫爜"
+                min-width="110"
+                sortable="custom"
+                show-tooltip-when-overflow
+              />
+              <el-table-column
+                prop="partname"
+                min-width="110"
+                show-tooltip-when-overflow
+                label="浜у搧鍚嶇О"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="partspec"
+                min-width="110"
+                show-tooltip-when-overflow
+                label="瑙勬牸鍨嬪彿"
+                sortable="custom"
+              >
+                <template slot-scope="{row}">
+                  {{ row.partspec ? row.partspec : '/' }}
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="wkshp_name"
+                min-width="110"
+                show-tooltip-when-overflow
+                label="杞﹂棿鍚嶇О"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="stepname"
+                label="宸ュ簭鍚嶇О"
+                show-tooltip-when-overflow
+                width="120"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="plan_qty"
+                label="浠诲姟鏁伴噺"
+                width="110"
+                sortable="custom"
+                show-tooltip-when-overflow
+              />
+              <el-table-column
+                v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'"
+                prop="fqty"
+                show-tooltip-when-overflow
+                label="宸插彂鏂欐暟閲�"
+                sortable="custom"
+                width="120"
+              />
+              <el-table-column
+                prop="good_qty"
+                show-tooltip-when-overflow
+                :label="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'?'宸叉敹鏂欐暟閲�':'鍚堟牸鏁伴噺'"
+                sortable="custom"
+                width="120"
+              />
+              <el-table-column
+                prop="ng_qty"
+                label="涓嶈壇鏁伴噺"
+                show-tooltip-when-overflow
+                width="120"
+                sortable="custom"
+              />
+              <el-table-column
+                prop="laborbad_qty"
+                label="宸ュ簾鏁伴噺"
+                width="120"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+              <el-table-column
+                prop="materielbad_qty"
+                label="鏂欏簾鏁伴噺"
+                width="120"
+                show-tooltip-when-overflow
+                sortable="custom"
+              />
+
+              <el-table-column
+                label="鎿嶄綔"
+                width="120"
+                fixed="right"
+              >
+                <template slot-scope="{row}">
+                  <div class="operationClass">
+                    <el-button v-if="activeName==='鐢熶骇鍒楄〃'" v-waves icon="el-icon-thumb" type="text" @click="report(row)">
+                      鎶ュ伐
+                    </el-button>
+                    <el-button
+                      v-if="activeName==='澶栧崗鍙戞枡'"
+                      v-waves
+                      icon="el-icon-thumb"
+                      type="text"
+                      @click="sendOut(row)"
+                    >鍙戞枡
+                    </el-button>
+                    <el-button v-if="activeName==='澶栧崗鏀舵枡'" v-waves icon="el-icon-thumb" type="text" @click="takeIn(row)">
+                      鏀舵枡
+                    </el-button>
+                    <el-button
+                      v-if="activeName==='涓嶈壇寰呭鐞�'"
+                      v-waves
+                      icon="el-icon-thumb"
+                      type="text"
+                      @click="handleBad(row)"
+                    >澶勭悊
+                    </el-button>
+                  </div>
+                </template>
+              </el-table-column>
+            </el-table>
+          </div>
+          <!--鍒嗛〉-->
+          <pagination
+            :total="total"
+            :page.sync="form.page"
+            :limit.sync="form.rows"
+            align="right"
+            layout="total,prev, pager, next,sizes"
+            popper-class="select_bottom"
+            @pagination="search"
+          />
+        </el-tab-pane>
+
+      </el-tabs>
+
+    </div>
+
+    <!--    寮�鎶ュ伐銆佸鍗忋�佷笉鑹鐞�-->
+    <el-dialog
+      v-el-drag-dialog
+      :title="dialogTitle"
+      :visible.sync="dialogVisible"
+      width="1160px"
+      :close-on-click-modal="false"
+      :top="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'? '6vh':'15vh'"
+      @closed="handleClose"
+      @close="handleClose"
+    >
+      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
+        <!--        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'||activeName==='涓嶈壇寰呭鐞�'" content-position="left">鍩烘湰淇℃伅</el-divider>-->
+        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'" content-position="left">鎶ュ伐淇℃伅</el-divider>
+        <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鏀舵枡淇℃伅</el-divider>
+        <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">寰呭鐞嗕俊鎭�</el-divider>
+        <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.wo_code }}</div>
+        </el-form-item>
+        <el-form-item label="浜у搧缂栫爜" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.partnumber }}</div>
+        </el-form-item>
+        <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.partname }}</div>
+        </el-form-item>
+        <el-form-item label="瑙勬牸鍨嬪彿" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.partspec ? dialogForm.partspec : '/' }}</div>
+        </el-form-item>
+        <el-form-item label="褰撳墠宸ュ簭" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.stepname }}</div>
+        </el-form-item>
+        <el-form-item label="涓嬮亾宸ュ簭" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.nextstepname ? dialogForm.nextstepname : '/' }}</div>
+        </el-form-item>
+        <el-form-item label="浠诲姟鏁伴噺" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.planqty }}</div>
+        </el-form-item>
+
+        <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="鍚堟牸鏁伴噺" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.noreportqty }}</div>
+        </el-form-item>
+        <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
+          <div class="dialogFormItemDiv">{{ dialogForm.noputqty }}</div>
+        </el-form-item>
+
+        <el-form-item
+          v-if="activeName!=='涓嶈壇寰呭鐞�'"
+          :label="activeName==='鐢熶骇鍒楄〃'? '鏈姤/宸叉姤':(activeName==='澶栧崗鍙戞枡'?'鏈彂/宸插彂':'鏈敹/宸叉敹')"
+          class="dialogFormItem"
+        >
+          <div class="dialogFormItemDiv">{{ dialogForm.noreportqty + '/' + dialogForm.reportqty }}</div>
+        </el-form-item>
+
+        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
+          <div class="dialogFormItemDiv" style="color:red;">{{ dialogForm.noputqty }}</div>
+        </el-form-item>
+
+        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="鎶ュ伐璁惧" class="dialogFormItem">
+          <el-select
+            v-model="dialogForm.eqpcode"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            clearable
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in eqpArr"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"
+            />
+          </el-select>
+        </el-form-item>
+
+        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="璁′欢鏂瑰紡" class="dialogFormItem">
+          <el-radio-group
+            v-model="dialogForm.reckway"
+            style="width: 200px;"
+            @change="reckwayChange"
+          >
+            <el-radio label="person">涓汉</el-radio>
+            <el-radio label="group">鐝粍</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
+        <el-form-item
+          v-if="activeName==='鐢熶骇鍒楄〃'"
+          :prop="dialogForm.reckway==='group'?'usergroupcode':''"
+          label="鎶ュ伐鐝粍"
+          class="dialogFormItem"
+        >
+          <el-select
+            v-model="dialogForm.usergroupcode"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :disabled="dialogForm.reckway!=='group'"
+            :popper-append-to-body="false"
+            @change="usergroupChange"
+          >
+            <el-option
+              v-for="item in usergroupArr"
+              :key="item.usergroupcode"
+              :label="item.usergroupname"
+              :value="item.usergroupcode"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="reportuser" label="鎶ュ伐浜哄憳" class="dialogFormItem">
+          <el-select
+            v-model="dialogForm.reportuser"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            multiple
+            collapse-tags
+            :multiple-limit="dialogForm.reckway==='group'?0:1"
+            :disabled="dialogForm.reckway==='group'&&dialogForm.usergroupcode===''"
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in reportuserArr"
+              :key="item.usercode"
+              :label="item.username"
+              :value="item.usercode"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="startqty" label="鍚堟牸鏁伴噺" class="dialogFormItem">
+          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+        </el-form-item>
+
+        <el-form-item v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'" prop="wxcode" label="澶栧崗渚涙柟" class="dialogFormItem">
+          <el-select
+            v-model="dialogForm.wxcode"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in wxArr"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="outuser" label="鍙戞枡浜哄憳" class="dialogFormItem">
+          <el-select
+            v-model="dialogForm.outuser"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in reportuserArr"
+              :key="item.usercode"
+              :label="item.username"
+              :value="item.usercode"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="fqty" label="鍙戞枡鏁伴噺" class="dialogFormItem">
+          <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+        </el-form-item>
+
+        <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="inuser" label="鏀舵枡浜哄憳" class="dialogFormItem">
+          <el-select
+            v-model="dialogForm.inuser"
+            style="width:200px"
+            placeholder="璇烽�夋嫨"
+            filterable
+            :popper-append-to-body="false"
+          >
+            <el-option
+              v-for="item in reportuserArr"
+              :key="item.usercode"
+              :label="item.username"
+              :value="item.usercode"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="sqty" label="鏀舵枡鏁伴噺" class="dialogFormItem">
+          <el-input v-model="dialogForm.sqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+        </el-form-item>
+
+        <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" content-position="left">涓嶈壇鏄庣粏淇℃伅</el-divider>
+        <el-button
+          v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
+          v-waves
+          type="primary"
+          icon="el-icon-circle-plus-outline"
+          @click="addDefect"
+        >鏂板
+        </el-button>
+        <el-table
+          v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
+          ref="defectTableDataRef"
+          key="defectTableDataKey"
+          :data="defectTableData"
+          border
+          row-class-name="custom-row"
+          height="200"
+          style="width: 100%;margin-top: 15px;"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+        >
+          <el-table-column
+            type="index"
+            label="搴忓彿"
+            align="center"
+            width="50"
+          />
+          <el-table-column
+            prop="stepcode"
+            label="缂洪櫡缂栫爜/鍚嶇О"
+            align="center"
+            min-width="450"
+          >
+            <template slot-scope="{row}">
+              <el-select
+                v-model="row.code"
+                style="width: 100%"
+                placeholder="璇烽�夋嫨"
+                multiple
+                filterable
+              >
+                <!--                collapse-tags-->
+                <el-option
+                  v-for="item in defectArr"
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code"
+                />
+              </el-select>
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="badqty"
+            label="涓嶈壇鏁伴噺"
+            align="center"
+          >
+            <template slot-scope="{row}">
+              <el-input
+                v-model="row.badqty"
+                placeholder="璇疯緭鍏ユ暟閲�"
+                oninput="value=value.replace(/[^0-9]/g,'')"
+                style="width: 100%"
+                @click.stop=""
+                @change="badqtyChange"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鎿嶄綔"
+            width="50"
+            align="center"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+                  <i
+                    class="el-icon-delete"
+                    :style="{color:$store.state.settings.theme}"
+                    style="margin-left: 7px;"
+                    @click="defectDel(row)"
+                  />
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鍙敹鏂欎緵搴斿晢</el-divider>
+        <div
+          v-for="(item,index) in dialogForm.list"
+          v-if="item.fqty>0"
+          :key="item.name"
+          style="display: flex;line-height: 26px;height: 26px;margin-left:30px;align-items: center"
+        >
+          <div
+            style="color: #fff;width: 22px;height: 22px;display: flex;justify-content: center;align-items: center;border-radius: 50%"
+            :style="{backgroundColor:$store.state.settings.theme}"
+          >{{ index + 1 }}
+          </div>
+          <div style="margin-left:30px;width: 160px;" class="ellipsis">
+            {{ item.tp }}
+          </div>
+          <div style="margin-left:30px;">
+            鍙敹鏁伴噺锛歿{ item.acceptQty }}
+          </div>
+        </div>
+
+        <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">涓嶈壇淇℃伅鏄庣粏</el-divider>
+        <el-table
+          v-if="activeName==='涓嶈壇寰呭鐞�'"
+          ref="badTableDataDataRef"
+          key="badTableDataDataKey"
+          :data="badTableData"
+          border
+          row-class-name="custom-row"
+          height="300"
+          style="width: 100%;margin-top: 15px;"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+        >
+          <el-table-column
+            type="index"
+            label="搴忓彿"
+            align="center"
+            width="50"
+          />
+          <!--          <el-table-column-->
+          <!--            prop="step_code"-->
+          <!--            label="宸ュ簭缂栫爜"-->
+          <!--            show-tooltip-when-overflow-->
+          <!--            align="center"-->
+          <!--          />-->
+          <el-table-column
+            prop="stepname"
+            label="宸ュ簭鍚嶇О"
+            show-tooltip-when-overflow
+            align="center"
+          />
+          <el-table-column
+            prop="plan_qty"
+            label="浠诲姟鏁伴噺"
+            show-tooltip-when-overflow
+            align="center"
+          />
+          <el-table-column
+            prop="report_qty"
+            label="鍚堟牸鏁伴噺"
+            show-tooltip-when-overflow
+            align="center"
+          />
+          <el-table-column
+            prop="ng_qty"
+            label="涓嶈壇鏁伴噺"
+            show-tooltip-when-overflow
+            align="center"
+          />
+          <el-table-column
+            prop="defect_name"
+            label="涓嶈壇鍘熷洜"
+            show-tooltip-when-overflow
+            align="center"
+          />
+          <el-table-column
+            prop="repair_qty"
+            label="缁翠慨鍚堟牸鏁伴噺"
+            align="center"
+          >
+            <template slot-scope="{row}">
+              <el-input
+                v-model="row.repair_qty"
+                placeholder="璇疯緭鍏ユ暟閲�"
+                oninput="value=value.replace(/[^0-9]/g,'')"
+                style="width: 100%"
+                @click.stop=""
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="laborbad_qty"
+            label="宸ュ簾鏁伴噺"
+            align="center"
+          >
+            <template slot-scope="{row}">
+              <el-input
+                v-model="row.laborbad_qty"
+                placeholder="璇疯緭鍏ユ暟閲�"
+                oninput="value=value.replace(/[^0-9]/g,'')"
+                style="width: 100%"
+                @click.stop=""
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="materielbad_qty"
+            label="鏂欏簾鏁伴噺"
+            align="center"
+          >
+            <template slot-scope="{row}">
+              <el-input
+                v-model="row.materielbad_qty"
+                placeholder="璇疯緭鍏ユ暟閲�"
+                oninput="value=value.replace(/[^0-9]/g,'')"
+                style="width: 100%"
+                @click.stop=""
+              />
+            </template>
+          </el-table-column>
+
+          <!--          <el-table-column-->
+          <!--            prop="badqty"-->
+          <!--            label="涓嶈壇鏁伴噺"-->
+          <!--            show-tooltip-when-overflow-->
+          <!--            align="center"-->
+          <!--          >-->
+          <!--            <template slot-scope="{row}">-->
+          <!--              <el-input-->
+          <!--                v-model="row.badqty"-->
+          <!--                placeholder="璇疯緭鍏ユ暟閲�"-->
+          <!--                oninput="value=value.replace(/[^0-9]/g,'')"-->
+          <!--                style="width: 100%"-->
+          <!--                @click.stop=""-->
+          <!--                @change="badqtyChange"-->
+          <!--              />-->
+          <!--            </template>-->
+          <!--          </el-table-column>-->
+
+          <!--          <el-table-column-->
+          <!--            label="鎿嶄綔"-->
+          <!--            width="50"-->
+          <!--            align="center"-->
+          <!--          >-->
+          <!--            <template slot-scope="{row}">-->
+          <!--              <div class="operationClass">-->
+          <!--                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+          <!--                  <i-->
+          <!--                    class="el-icon-delete"-->
+          <!--                    :style="{color:$store.state.settings.theme}"-->
+          <!--                    style="margin-left: 7px;"-->
+          <!--                    @click="defectDel(row)"-->
+          <!--                  />-->
+          <!--                </el-tooltip>-->
+          <!--              </div>-->
+          <!--            </template>-->
+          <!--          </el-table-column>-->
+
+        </el-table>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button
+            v-waves
+            type="primary"
+            :loading="$store.state.app.buttonIsDisabled"
+            :disabled="$store.state.app.buttonIsDisabled"
+            @click="dialogVisibleConfirm"
+          >纭� 瀹�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
+    <!--    娴佽浆灏忔爣绛炬墦鍗�-->
+    <!--鎵撳嵃棰勮椤甸潰  灏忔爣绛�-->
+    <el-dialog
+      v-el-drag-dialog
+      title="棰勮"
+      :visible.sync="dialogVisible2"
+      width="1140"
+      top="10vh"
+      :close-on-click-modal="false"
+      @close="dialogVisible2Close"
+    >
+      <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+      <div id="printMe2" style="padding: 30px;">
+        <div
+          style="display: flex;width: 280px;height: 150px;border: 1px solid #000;text-align: center;font-size: 10px;"
+        >
+
+          <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+            <div
+              style="display: flex;height: 90px;border-bottom:1px solid #000;
+              justify-content: center;align-items: center;position: relative"
+            >
+              <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" />
+            </div>
+            <div
+              style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+            >
+              <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+              {{ qrForm.startqty }}
+            </div>
+            <div style="display: flex;height: 30px;justify-content: flex-start;align-items: center">
+              <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+              {{ qrForm.operator }}
+            </div>
+          </div>
+
+          <div style="width:190px;display: flex;flex-direction: column">
+            <div
+              style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+            >
+              <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+              <div>{{ qrForm.wo_code }}</div>
+            </div>
+            <div
+              style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+            >
+              <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+              <div>{{ qrForm.partcode }}</div>
+            </div>
+            <div
+              style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+            >
+              <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+              <div>{{ qrForm.partname }}</div>
+            </div>
+            <div
+              style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+            >
+              <div style="width:60px;margin-left: 5px;">{{ qrForm.nextstepname?'涓嬮亾宸ュ簭':'浜у搧瑙勬牸' }}:</div>
+              <div>{{ qrForm.nextstepname?qrForm.nextstepname:qrForm.partspec?qrForm.partspec:'/' }}</div>
+            </div>
+            <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+              <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+              <div>{{ qrForm.operatorTime }}</div>
+            </div>
+
+          </div>
+
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button v-waves @click="dialogVisible2 = false">鍙� 娑�</el-button>
+          <el-button v-waves v-print="printObj2" type="primary">纭� 瀹�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import $ from 'jquery'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+  EditOrderNgStepSeave,
+  MesOrderNgStepSearch,
+  MesOrderNgSubStepSearch,
+  MesOrderStepSearch, MesOrderStepStart,
+  MesOrderWxStepSearch, SavaMesOrderStepIn, SavaMesOrderStepOut, SavaMesOrderStepReport
+} from '@/api/WorkOrder'
+import {
+  CustomerPermissions,
+  DefectPermissions,
+  EqpPermissions,
+  GroupsPermissions,
+  GroupsPersonPermissions,
+  PersonPermissions, PrentOrganizationNoCompany
+} from '@/api/GeneralBasicData'
+import { nanoid } from 'nanoid'
+import { LabelBarCode } from '@/api/systemSetting'
+import { getCookie } from '@/utils/auth'
+import { handleDatetime2 } from '@/utils/global'
+import QRCode from 'qrcodejs2'
+export default {
+  name: 'StepReport',
+  components: {
+    Pagination
+  },
+  directives: { elDragDialog, waves },
+  data() {
+    return {
+      mainHeight: 0,
+      tableHeight: 0,
+      form: {
+        wkshopcode: '',
+        wocode: '', // 宸ュ崟鍙�
+        partcode: '', // 浜у搧缂栫爜
+        partname: '', // 浜у搧鍚嶇О
+        partspec: '', // 浜у搧瑙勬牸
+        prop: 'lm_date', // 鎺掑簭瀛楁
+        order: 'desc', // 鎺掑簭瀛楁
+        page: 1, // 绗嚑椤�
+        rows: 20 // 姣忛〉澶氬皯鏉�
+      },
+      wkshopcodeArr: [],
+      total: 10,
+      tableData: [],
+      activeName: '鐢熶骇鍒楄〃',
+      elTabsArr: [
+        { code: 'ZZ', name: '鐢熶骇鍒楄〃' },
+        { code: 'OUT', name: '澶栧崗鍙戞枡' },
+        { code: 'IN', name: '澶栧崗鏀舵枡' },
+        { code: 'BAD', name: '涓嶈壇寰呭鐞�' }
+      ],
+
+      radioSelected: '', // 澶氶�夋閫変腑鍊�
+
+      dialogVisible: false,
+      dialogTitle: '', // 瀵硅瘽妗嗗皬鏍囬
+
+      dialogForm: {
+        'wo_code': '',
+        'partnumber': '',
+        'partname': '',
+        'partspec': '',
+        'seq': '',
+        'stepcode': '',
+        'stepname': '',
+        'stepprice': '', // 宸ュ簭鍗曚环
+        'nextstepcode': '',
+        'nextstepname': '',
+        'nextstepprice': '',
+        'stepdesc': '',
+        'planqty': 0,
+        'startqty': 0, //
+        'noreportqty': 0, // 鏈姤鏁伴噺
+        'reportqty': 0, // 宸叉姤鏁伴噺
+        'noputqty': 0, // 涓嶈壇鏁伴噺
+        'wkshopcode': '',
+        'wkshopname': '',
+        'eqpcode': '',
+        'eqpname': '',
+
+        remarks: '', // 澶囨敞
+        inbarcode: '', // 鍏ュ簱鏉$爜
+        defectlist: '', // 涓嶈壇姹囨��
+        reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+        usergroupcode: '', // 鐝粍缂栫爜
+        reportuser: [], // 鎶ュ伐浜哄憳
+
+        wxcode: '',
+        outuser: '',
+        fqty: '',
+        inuser: '',
+        sqty: '',
+        list: ''
+
+      },
+      dialogFormRules: {
+        eqpcode: [
+          { required: true, message: '璇烽�夋嫨鎶ュ伐璁惧', trigger: ['blur', 'change'] }
+        ],
+        usergroupcode: [
+          { required: true, message: '璇烽�夋嫨鎶ュ伐鐝粍', trigger: ['blur', 'change'] }
+        ],
+        reportuser: [
+          { required: true, message: '璇烽�夋嫨鎶ュ伐浜哄憳', trigger: ['blur', 'change'] }
+        ],
+        startqty: [
+          { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] }
+        ],
+        wxcode: [
+          { required: true, message: '璇烽�夋嫨澶栧崗渚涙柟', trigger: ['blur', 'change'] }
+        ],
+        outuser: [
+          { required: true, message: '璇烽�夋嫨鍙戞枡浜哄憳', trigger: ['blur', 'change'] }
+        ],
+        inuser: [
+          { required: true, message: '璇烽�夋嫨鏀舵枡浜哄憳', trigger: ['blur', 'change'] }
+        ],
+        fqty: [
+          { required: true, message: '璇疯緭鍏ュ彂鏂欐暟閲�', trigger: ['blur', 'change'] }
+        ],
+        sqty: [
+          { required: true, message: '璇疯緭鍏ユ敹鏂欐暟閲�', trigger: ['blur', 'change'] }
+        ]
+
+      },
+      reckwayArr: [// 鎶ュ伐绫诲瀷
+        { code: 'group', name: '鐝粍' },
+        { code: 'person', name: '涓汉' }
+      ],
+      reportuserArr: [], // 鎶ュ伐浜哄憳
+      usergroupArr: [], // 鎶ュ伐鐝粍
+      eqpArr: [], // 鎶ュ伐璁惧
+      defectArr: [], // 涓嶈壇缂洪櫡
+      wxArr: [], // 寰�鏉ュ崟浣嶄笅鎷�
+
+      defectTableData: [],
+      badTableData: [],
+      workOrderCurrentValue: '',
+
+      dialogVisible2: false, //
+      qrForm: { // 鎵撳嵃鍐呭
+        qrvalue: '',
+        startqty: '',
+        wo_code: '',
+        partcode: '',
+        partname: '',
+        partspec: '',
+        nextstepname: '',
+        operator: '', // 鎿嶄綔浜�
+        operatorTime: ''// 鎿嶄綔鏃堕棿
+      },
+      printObj2: {
+        id: 'printMe2',
+        popTitle: '鎵撳嵃妯℃澘',
+        preview: false,
+        extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+        closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+          console.log('11212', vue)
+          // vue.dialogVisible = false
+          vue.dialogVisible2 = false
+          vue.dialogVisible = false
+        },
+        beforeOpenCallback(vue) {
+          vue.printLoading = true
+          console.log('鎵撳紑涔嬪墠')
+        },
+        openCallback(vue) {
+          vue.printLoading = false
+          console.log('鎵ц浜嗘墦鍗�')
+        }
+      },
+      xx: ''
+    }
+  },
+  activated() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+  },
+  created() {
+
+  },
+  mounted() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+
+    this.tabClick()
+
+    this.getAllSelectArr()
+  },
+  methods: {
+
+    async getAllSelectArr() {
+      const { data: res1 } = await GroupsPermissions()// 鐝粍
+      this.usergroupArr = res1
+
+      const { data: res2 } = await PersonPermissions() // 浜哄憳
+      this.reportuserArr = res2
+
+      const { data: res3 } = await DefectPermissions() // 缂洪櫡
+      this.defectArr = res3
+
+      const { data: res4 } = await EqpPermissions() // 璁惧
+      this.eqpArr = res4
+
+      const { data: res5 } = await CustomerPermissions() // 寰�鏉ュ崟浣�
+      this.wxArr = res5
+
+      const { data: res6 } = await PrentOrganizationNoCompany()// 鏃犲叕鍙哥殑缁勭粐涓嬫媺
+      this.wkshopcodeArr = res6
+    },
+    tabClick() {
+      let belong
+      switch (this.activeName) {
+        case '鐢熶骇鍒楄〃':
+          belong = 'produceCodeZZ'
+          this.dialogTitle = '鎶ュ伐'
+          break
+        case '澶栧崗鍙戞枡':
+          belong = 'produceCodeOUT'
+          this.dialogTitle = '鍙戞枡'
+          break
+        case '澶栧崗鏀舵枡':
+          belong = 'produceCodeIN'
+          this.dialogTitle = '鏀舵枡'
+          break
+        case '涓嶈壇寰呭鐞�':
+          belong = 'produceCodeBAD'
+          this.dialogTitle = '涓嶈壇澶勭悊'
+          break
+      }
+      this.enterNative(this.form.wocode, belong)
+
+      this.radioSelected = ''
+    },
+    enterNative(val, belong) {
+      if (belong === 'produceCodeZZ') {
+        this.$nextTick(() => {
+          $('input[name=\'produceCodeZZ\']')[0].focus()
+        })
+      }
+      if (belong === 'produceCodeOUT') {
+        this.$nextTick(() => {
+          $('input[name=\'produceCodeOUT\']')[0].focus()
+        })
+      }
+      if (belong === 'produceCodeIN') {
+        this.$nextTick(() => {
+          $('input[name=\'produceCodeIN\']')[0].focus()
+        })
+      }
+      if (belong === 'produceCodeBAD') {
+        this.$nextTick(() => {
+          $('input[name=\'produceCodeBAD\']')[0].focus()
+        })
+      }
+      this.search()
+    },
+    // 鎺掑簭鏀瑰彉鏃�
+    sortChange({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.form.order = order
+      this.form.prop = prop
+      this.search()
+    },
+    // 鏌ヨ
+    async search() {
+      this.form.wocode = this.workOrderCurrentValue
+      this.workOrderCurrentValue = ''
+      if (this.activeName === '鐢熶骇鍒楄〃') {
+        const res = await MesOrderStepSearch(this.form)
+        this.tableData = res.data
+        this.total = res.count
+      }
+      if (this.activeName === '澶栧崗鍙戞枡' || this.activeName === '澶栧崗鏀舵枡') {
+        const res = await MesOrderWxStepSearch(this.form)
+        this.tableData = res.data
+        this.total = res.count
+      }
+
+      if (this.activeName === '涓嶈壇寰呭鐞�') {
+        const res = await MesOrderNgStepSearch(this.form)
+        this.tableData = res.data
+        this.total = res.count
+      }
+    },
+    // 鎶ュ伐
+    report(row) {
+      if (row) {
+        this.getMesOrderStepStart('ZZ', '', row.wo_code, row.stepcode)
+      } else {
+        const temp = this.tableData.find(i => i.id === this.radioSelected)
+        this.getMesOrderStepStart('ZZ', '', temp.wo_code, temp.stepcode)
+      }
+    },
+    // 鍙戞枡
+    sendOut(row) {
+      if (row) {
+        this.getMesOrderStepStart('WX', 'OUT', row.wo_code, row.stepcode)
+      } else {
+        const temp = this.tableData.find(i => i.id === this.radioSelected)
+        this.getMesOrderStepStart('WX', 'OUT', temp.wo_code, temp.stepcode)
+      }
+    },
+    // 鏀舵枡
+    takeIn(row) {
+      if (row) {
+        this.getMesOrderStepStart('WX', 'IN', row.wo_code, row.stepcode)
+      } else {
+        const temp = this.tableData.find(i => i.id === this.radioSelected)
+        this.getMesOrderStepStart('WX', 'IN', temp.wo_code, temp.stepcode)
+      }
+    },
+    // 涓嶈壇澶勭悊    鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
+    async handleBad(row) {
+      const data = {
+        wocode: row ? row.wo_code : this.tableData.find(i => i.id === this.radioSelected).wo_code,
+        stepcode: row ? row.stepcode : this.tableData.find(i => i.id === this.radioSelected).stepcode
+      }
+      let res = await MesOrderNgSubStepSearch(data)
+      if (res.code === '200') {
+        res = res.data
+        this.dialogForm.wo_code = res.data1.wo_code
+        this.dialogForm.partnumber = res.data1.partnumber
+        this.dialogForm.partname = res.data1.partname
+        this.dialogForm.partspec = res.data1.partspec
+        this.dialogForm.seq = res.data1.seq
+        this.dialogForm.stepcode = res.data1.stepcode
+        this.dialogForm.stepname = res.data1.stepname
+        this.dialogForm.stepprice = res.data1.stepprice
+        this.dialogForm.nextstepcode = res.data1.nextstepcode
+        this.dialogForm.nextstepname = res.data1.nextstepname
+        this.dialogForm.nextstepprice = res.data1.nextstepprice
+        this.dialogForm.stepdesc = res.data1.stepdesc
+        this.dialogForm.planqty = res.data1.planqty
+        this.dialogForm.startqty = res.data1.startqty
+        this.dialogForm.noreportqty = res.data1.noreportqty // 鍚堟牸鏁伴噺
+        this.dialogForm.reportqty = res.data1.reportqty
+        this.dialogForm.noputqty = res.data1.noputqty // 涓嶈壇鏁伴噺
+        this.dialogForm.wkshopcode = res.data1.wkshopcode
+        this.dialogForm.wkshopname = res.data1.wkshopname
+        this.dialogForm.eqpcode = res.data1.eqpcode
+        this.dialogForm.eqpname = res.data1.eqpname
+
+        res.data2.forEach(item => {
+          item.repair_qty = 0
+          item.laborbad_qty = 0
+          item.materielbad_qty = 0
+        })
+
+        this.badTableData = res.data2
+
+        this.dialogVisible = true
+      }
+    },
+    // 鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
+    async getMesOrderStepStart(OperType, SelectType, wocode, stepcode) {
+      const data = {
+        OperType, SelectType, wocode, stepcode
+      }
+      let res = await MesOrderStepStart(data)
+      if (res.code === '200') {
+        res = res.data
+        this.dialogForm.wo_code = res.wo_code
+        this.dialogForm.partnumber = res.partnumber
+        this.dialogForm.partname = res.partname
+        this.dialogForm.partspec = res.partspec
+        this.dialogForm.seq = res.seq
+        this.dialogForm.stepcode = res.stepcode
+        this.dialogForm.stepname = res.stepname
+        this.dialogForm.stepprice = res.stepprice
+        this.dialogForm.nextstepcode = res.nextstepcode
+        this.dialogForm.nextstepname = res.nextstepname
+        this.dialogForm.nextstepprice = res.nextstepprice
+        this.dialogForm.stepdesc = res.stepdesc
+        this.dialogForm.planqty = res.planqty
+        this.dialogForm.startqty = res.startqty
+        this.dialogForm.noreportqty = res.noreportqty// 鏈姤鏁伴噺
+        this.dialogForm.reportqty = res.reportqty // 宸叉姤鏁伴噺
+        this.dialogForm.noputqty = res.noputqty
+        this.dialogForm.wkshopcode = res.wkshopcode
+        this.dialogForm.wkshopname = res.wkshopname
+        this.dialogForm.eqpcode = res.eqpcode
+        this.dialogForm.eqpname = res.eqpname
+
+        if (this.activeName === '澶栧崗鏀舵枡') {
+          this.dialogForm.list = []
+          res.list.forEach(i => {
+            i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty) - parseFloat(i.materielbad_qty)
+            if (i.acceptQty > 0) {
+              this.dialogForm.list.push(i)
+            }
+          })
+        }
+
+        // this.dialogForm.list = res.list
+
+        this.dialogVisible = true
+      }
+    },
+    // 瀵硅瘽妗嗗叧闂簨浠�
+    handleClose() {
+      this.dialogForm = {
+        'wo_code': '',
+        'partnumber': '',
+        'partname': '',
+        'partspec': '',
+        'seq': '',
+        'stepcode': '',
+        'stepname': '',
+        'stepprice': '', // 宸ュ簭鍗曚环
+        'nextstepcode': '',
+        'nextstepname': '',
+        'nextstepprice': '',
+        'stepdesc': '',
+        'planqty': 0,
+        'startqty': 0, //
+        'noreportqty': 0, // 鏈姤鏁伴噺
+        'reportqty': 0, // 宸叉姤鏁伴噺
+        'noputqty': 0, // 涓嶈壇鏁伴噺
+        'wkshopcode': '',
+        'wkshopname': '',
+        'eqpcode': '',
+        'eqpname': '',
+
+        wxcode: '',
+        outuser: '',
+        fqty: '',
+        inuser: '',
+        sqty: '',
+        list: '',
+
+        remarks: '', // 澶囨敞
+        inbarcode: '', // 鍏ュ簱鏉$爜
+        defectlist: '', // 涓嶈壇姹囨��
+        reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+        usergroupcode: '', // 鐝粍缂栫爜
+        reportuser: [] // 鎶ュ伐浜哄憳
+
+      }
+
+      this.defectTableData = []
+      this.badTableData = []
+
+      this.$refs.dialogForm.clearValidate()
+    },
+    // 瀵硅瘽妗嗗彇娑�
+    dialogVisibleCancel() {
+      this.dialogVisible = false
+      this.tabClick()
+    },
+    // 瀵硅瘽妗嗙‘璁�
+    dialogVisibleConfirm() {
+      this.$refs.dialogForm.validate(async valid => {
+        if (valid) {
+          if (this.activeName === '鐢熶骇鍒楄〃') {
+            if (this.defectTableData.find(i => i.code.length === 0)) {
+              return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+            }
+            if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+              return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+            }
+
+            if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
+              return this.$message.info('鍚堟牸鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鏈姤鏁伴噺!')
+            }
+
+            if (parseFloat(this.dialogForm.startqty) === 0 && this.defectTableData.length === 0) {
+              return this.$message.info('鍚堟牸鏁伴噺涓嶈兘涓洪浂锛�')
+            }
+
+            let inbarcode = ''
+            if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
+              const data1 = {
+                rightcode: getCookie('ruleCode'),
+                partcode: this.dialogForm.partnumber,
+                qty: this.dialogForm.startqty,
+                onelabqty: this.dialogForm.startqty
+              }
+
+              const res1 = await LabelBarCode(data1)
+              inbarcode = res1.data[0].labcode
+            }
+
+            const defectlist = []
+            this.defectTableData.forEach(i => {
+              defectlist.push({
+                defect_code: i.code.join(','),
+                badqty: i.badqty
+              })
+            })
+            const data = {
+              mesordercode: this.dialogForm.wo_code,
+              partcode: this.dialogForm.partnumber,
+              stepseq: this.dialogForm.seq,
+              stepcode: this.dialogForm.stepcode,
+              stepprice: this.dialogForm.stepprice,
+              eqpcode: this.dialogForm.eqpcode,
+              inbarcode,
+              reckway: this.dialogForm.reckway,
+              usergroupcode: this.dialogForm.usergroupcode,
+              reportuser: this.dialogForm.reportuser.join(','),
+              taskqty: this.dialogForm.planqty,
+              // startqty: this.dialogForm.startqty,
+              // reportqty: this.dialogForm.reportqty,
+
+              startqty: this.dialogForm.startqty,
+              reportqty: this.dialogForm.startqty, // 鎶ュ伐鏁伴噺
+
+              defectlist,
+              remarks: ''
+            }
+            // console.log(JSON.parse(JSON.stringify(this.defectTableData)))
+            // console.log(JSON.parse(JSON.stringify(data)))
+
+            this.$store.state.app.buttonIsDisabled = true
+            const res = await SavaMesOrderStepReport(data)
+            if (res.code === '200') {
+              this.$notify.success('鎶ュ伐鎴愬姛锛�')
+              // await this.search()
+              await this.tabClick()
+              this.$store.state.app.buttonIsDisabled = false
+              this.dialogVisible = false
+
+              // 鑷埗鎶ュ伐鎵撳嵃鏍囩鍙e瓙宸插紑濂�
+              // if (JSON.parse(localStorage.getItem('mesSetting')).every) {
+              //   this.dialogVisible2 = true
+              //   this.ZZprint2(localStorage.getItem('username'))
+              // }
+            } else {
+              this.$store.state.app.buttonIsDisabled = false
+              this.$notify.error('鎶ュ伐澶辫触锛�')
+            }
+          }
+
+          if (this.activeName === '澶栧崗鍙戞枡') {
+            if (parseFloat(this.dialogForm.fqty) < 1) {
+              return this.$message.info('鍙戞枡鏁伴噺涓嶈兘涓洪浂锛�')
+            }
+            if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) {
+              return this.$message.info('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺!')
+            }
+            const data = {
+              mesordercode: this.dialogForm.wo_code,
+              partcode: this.dialogForm.partnumber,
+              stepseq: this.dialogForm.seq,
+              stepcode: this.dialogForm.stepcode,
+
+              wxcode: this.dialogForm.wxcode,
+              outuser: this.dialogForm.outuser,
+              taskqty: this.dialogForm.planqty,
+              fqty: this.dialogForm.fqty
+            }
+            // console.log(JSON.stringify(data))
+
+            this.$store.state.app.buttonIsDisabled = true
+            const res = await SavaMesOrderStepOut(data)
+            if (res.code === '200') {
+              this.$notify.success('鍙戞枡鎴愬姛锛�')
+              // await this.search()
+              await this.tabClick()
+              this.$store.state.app.buttonIsDisabled = false
+              this.dialogVisible = false
+            } else {
+              this.$store.state.app.buttonIsDisabled = false
+              this.$notify.error('鍙戞枡澶辫触锛�')
+            }
+          }
+
+          if (this.activeName === '澶栧崗鏀舵枡') {
+            if (this.defectTableData.find(i => i.code.length === 0)) {
+              return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+            }
+            if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+              return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+            }
+
+            if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
+              return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鍙敹鏁伴噺!')
+            }
+
+            if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode)) {
+              if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode).acceptQty < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
+                return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庤渚涘簲鍟嗗彲鏀舵暟閲�!')
+              }
+            } else {
+              return this.$message.info('姝や緵搴斿晢鏃犲彲鏀舵暟閲�!')
+            }
+
+            let inbarcode = ''
+            if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
+              const data1 = {
+                rightcode: getCookie('ruleCode'),
+                partcode: this.dialogForm.partnumber,
+                qty: this.dialogForm.startqty,
+                onelabqty: this.dialogForm.startqty
+              }
+
+              const res1 = await LabelBarCode(data1)
+              inbarcode = res1.data[0].labcode
+            }
+            const defectlist = []
+            this.defectTableData.forEach(i => {
+              defectlist.push({
+                defect_code: i.code.join(','),
+                badqty: i.badqty
+              })
+            })
+
+            const data = {
+              mesordercode: this.dialogForm.wo_code,
+              partcode: this.dialogForm.partnumber,
+              stepseq: this.dialogForm.seq,
+              stepcode: this.dialogForm.stepcode,
+
+              wxcode: this.dialogForm.wxcode,
+              inbarcode,
+              inuser: this.dialogForm.inuser,
+              taskqty: this.dialogForm.planqty,
+              sqty: this.dialogForm.sqty,
+              defectlist,
+              remarks: ''
+            }
+            // console.log(JSON.parse(JSON.stringify(data)), 1)
+            this.$store.state.app.buttonIsDisabled = true
+            const res = await SavaMesOrderStepIn(data)
+            if (res.code === '200') {
+              this.$notify.success('鏀舵枡鎴愬姛锛�')
+              // await this.search()
+              await this.tabClick()
+              this.$store.state.app.buttonIsDisabled = false
+              this.dialogVisible = false
+            } else {
+              this.$store.state.app.buttonIsDisabled = false
+              this.$notify.error('鏀舵枡澶辫触锛�')
+            }
+          }
+
+          if (this.activeName === '涓嶈壇寰呭鐞�') {
+            let flag = false
+            this.badTableData.forEach(i => {
+              if (parseFloat(i.repair_qty) + parseFloat(i.laborbad_qty) + parseFloat(i.materielbad_qty) > parseFloat(i.ng_qty)) {
+                flag = true
+              }
+            })
+            if (flag) {
+              return this.$message.info('缁翠慨鍚堟牸鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺涓嶈兘澶т簬涓嶈壇鏁伴噺锛�')
+            }
+            this.$store.state.app.buttonIsDisabled = true
+            const res = await EditOrderNgStepSeave({ Data: this.badTableData })
+            if (res.code === '200') {
+              this.$notify.success('鎻愪氦鎴愬姛锛�')
+              // await this.search()
+              await this.tabClick()
+              this.$store.state.app.buttonIsDisabled = false
+              this.dialogVisible = false
+            } else {
+              this.$store.state.app.buttonIsDisabled = false
+              this.$notify.error('鎻愪氦澶辫触锛�')
+            }
+          }
+        }
+      })
+    },
+
+    dialogVisible2Close() {
+      this.qrForm.qrvalue = ''
+      this.qrForm.startqty = ''
+      this.qrForm.wo_code = ''
+      this.qrForm.partcode = ''
+      this.qrForm.partname = ''
+      this.qrForm.partspec = ''
+      this.qrForm.nextstepname = ''
+      this.qrForm.operator = ''
+      this.qrForm.operatorTime = ''
+      // this.$refs.qrCodeDiv2 = ''
+    },
+
+    ZZprint2(username) {
+      if (this.dialogForm.nextstepcode !== '') {
+        this.qrForm.qrvalue = this.dialogForm.wo_code + ';' + this.dialogForm.nextstepcode
+      } else {
+        this.qrForm.qrvalue = this.dialogForm.inbarcode
+      }
+
+      this.qrForm.startqty = this.dialogForm.startqty
+      this.qrForm.wo_code = this.dialogForm.wo_code
+      this.qrForm.partcode = this.dialogForm.partnumber
+      this.qrForm.partname = this.dialogForm.partname
+      this.qrForm.nextstepname = this.dialogForm.nextstepname
+      this.qrForm.operator = username
+      this.qrForm.operatorTime = handleDatetime2(new Date())
+      this.$nextTick(() => {
+        this.bindQRCode(this.qrForm.qrvalue)
+      })
+    },
+    // 鐢熸垚浜岀淮鐮�
+    bindQRCode(text) {
+      new QRCode(this.$refs.qrCodeDiv2, {
+        text: text,
+        // width: 50,
+        width: 60,
+        // height: 50,
+        height: 60,
+        colorDark: '#000', // 浜岀淮鐮侀鑹�
+        colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+        correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+      })
+    },
+    // 缂洪櫡鏂板
+    addDefect() {
+      if (this.defectTableData.find(i => i.code.length === 0)) {
+        return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+      }
+      if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+        return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+      }
+
+      this.defectTableData.push({
+        uuid: nanoid(), code: [], badqty: ''
+      })
+    },
+    // 缂洪櫡鍒犻櫎
+    defectDel(row) {
+      this.defectTableData = this.defectTableData.filter(i => i.uuid !== row.uuid)
+
+      this.dialogForm.noputqty = 0
+      this.defectTableData.forEach(i => {
+        this.dialogForm.noputqty += parseFloat(i.badqty)
+      })
+    },
+    badqtyChange(val) {
+      this.dialogForm.noputqty = 0
+      this.defectTableData.forEach(i => {
+        this.dialogForm.noputqty += parseFloat(i.badqty)
+      })
+    },
+    reckwayChange(val) {
+      // console.log(val)
+      this.dialogForm.usergroupcode = ''
+      this.dialogForm.reportuser = []
+    },
+    async usergroupChange(val) {
+      const { data: res } = await GroupsPersonPermissions({ groupcode: val })
+      this.dialogForm.reportuser = res[0].usercode_list ? res[0].usercode_list.split(',') : []
+    },
+    rowClick(row, event, column) {
+      this.radioSelected = row.id
+    },
+    // 鑾峰彇椤甸潰楂樺害
+    getHeight() {
+      this.$nextTick(() => {
+        this.mainHeight = window.innerHeight - 85
+        this.tableHeight = this.mainHeight - 275
+        // this.$refs.tableDataRef.doLayout()
+      })
+    },
+    reset() {
+      this.form.wkshopcode = ''
+      this.form.wocode = ''
+      this.form.workOrderCurrentValue = ''
+      this.form.partcode = ''
+      this.form.partname = ''
+      this.form.partspec = ''
+      this.search()
+    },
+
+    headerCellStyle() {
+      return this.$headerCellStyle
+    },
+    cellStyle() {
+      return this.$cellStyle
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+
+::v-deep .elTableDiv .el-radio__label {
+  display: none !important;
+}
+
+.dialogFormItem {
+  margin: 0 10px 0 0;
+}
+
+.dialogFormItemDiv {
+  width: 200px;
+}
+
+::v-deep .el-select__caret {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+::v-deep .el-dialog .el-form-item__label {
+  font-weight: lighter !important;
+}
+
+::v-deep .el-dialog .el-divider__text {
+  font-weight: bolder !important;
+}
+
+</style>

--
Gitblit v1.9.3