loulijun2021
2023-11-14 edd82d6c67f1f26b42e5b5a7b8a467247ffa3835
src/views/produceManager/produceStartOrder.vue
@@ -9,24 +9,64 @@
              <!--              oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')"-->
              <el-input
                id="keyWords"
                v-model="form.orderstepqrcode"
                v-model="form.wocode"
                name="produceCode"
                placeholder="请扫码或输入工单号"
                style="width: 300px"
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
              <!--                @keyup.native="e=>judgeIsScanning(e,'produceCode')"-->
              <!--              <div style="width: 90px;margin-left: 20px">生产设备:</div>-->
              <!--              <el-select-->
              <!--                v-model="form.SelectType"-->
              <!--                style="width: 200px;"-->
              <!--                placeholder="请选择"-->
              <!--                @change="selectTypeChange"-->
              <!--              >-->
              <!--                <el-option-->
              <!--                  v-for="item in ZZeqpArr"-->
              <!--                  :key="item.code"-->
              <!--                  :label="item.name"-->
              <!--                  :value="item.code"-->
              <!--                />-->
              <!--              </el-select>-->
              <div style="width: 90px;margin-left: 20px">产品编码:</div>
              <el-input
                v-model="form.partcode"
                placeholder="请输入"
                style="width: 200px"
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
              <div style="width: 90px;margin-left: 20px">产品名称:</div>
              <el-input
                v-model="form.partname"
                placeholder="请输入"
                style="width: 200px"
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
              <div style="width: 90px;margin-left: 20px">规格型号:</div>
              <el-input
                v-model="form.partspec"
                placeholder="请输入"
                style="width: 200px"
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
            </div>
            <div v-if="false" style="display: flex;padding-right: 10px">
              <el-button v-waves @click="ZZstart">
                <svg-icon icon-class="start_time" style="margin-right: 2px" />
                开始
              </el-button>
              <el-button v-waves @click="ZZreport">
                <svg-icon icon-class="report_work" style="margin-right: 2px" />
                报工
              </el-button>
            <div style="display: flex;padding-right: 10px">
              <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>
            <!--            <div v-if="false" style="display: flex;padding-right: 10px">-->
            <!--              <el-button v-waves @click="ZZstart">-->
            <!--                <svg-icon icon-class="start_time" style="margin-right: 2px" />-->
            <!--                开始-->
            <!--              </el-button>-->
            <!--              <el-button v-waves @click="ZZreport">-->
            <!--                <svg-icon icon-class="report_work" style="margin-right: 2px" />-->
            <!--                报工-->
            <!--              </el-button>-->
            <!--            </div>-->
          </div>
          <el-divider />
          <div class="elTableDiv">
@@ -63,6 +103,17 @@
                  <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="saleOrderCode"
                label="销售单号"
                width="160"
                show-tooltip-when-overflow
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.saleOrderCode?row.saleOrderCode:'/' }}
                </template>
              </el-table-column>
              <el-table-column
@@ -112,13 +163,24 @@
                show-tooltip-when-overflow
              />
              <el-table-column
                prop="start_qty"
                label="已开工数量"
                width="110"
                show-tooltip-when-overflow
              >
                <template slot-scope="{row}">
                  {{ row.start_qty }}
                </template>
              </el-table-column>
              <el-table-column
                label="未报工数量"
                width="120"
                show-tooltip-when-overflow
              >
                <!--                sortable="custom"-->
                <template slot-scope="{row}">
                  <div>{{ row.plan_qty - row.good_qty - row.ng_qty }}</div>
                  <!--                  <div>{{ row.plan_qty - row.good_qty - row.ng_qty }}</div>-->
                  <div>{{ row.start_qty - row.good_qty - row.ng_qty-row.bad_qty }}</div>
                </template>
              </el-table-column>
              <el-table-column
@@ -160,25 +222,24 @@
                width="150"
                sortable="custom"
                show-tooltip-when-overflow
                fixed="right"
              >
                <template slot-scope="{row}">
                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
                  <div v-else>/</div>
                </template>
              </el-table-column>
              <!--              <el-table-column-->
              <!--                label="操作"-->
              <!--                width="150"-->
              <!--                fixed="right"-->
              <!--              >-->
              <!--                <template slot-scope="{row}">-->
              <!--                  <div class="operationClass">-->
              <!--                    <el-button v-waves type="text" @click="edit('edit',row)">编辑</el-button>-->
              <!--                    <el-button v-waves type="text" @click="del(row)">删除</el-button>-->
              <!--                  </div>-->
              <!--                </template>-->
              <!--              </el-table-column>-->
              <el-table-column
                label="操作"
                width="150"
                fixed="right"
              >
                <template slot-scope="{row}">
                  <div class="operationClass">
                    <el-button v-waves type="text" @click="ZZstart(row)">开工</el-button>
                    <el-button v-waves type="text" @click="ZZreport(row)">报工</el-button>
                  </div>
                </template>
              </el-table-column>
            </el-table>
          </div>
          <!--分页-->
@@ -216,7 +277,6 @@
                style="width: 300px"
                @keyup.enter.native="val=>enterNative(val,'WXproduceCode')"
              />
              <!--              @keyup.native="e=>judgeIsScanning(e,'WXproduceCode')"-->
            </div>
            <div v-if="false" style="display: flex;padding-right: 10px">
@@ -263,6 +323,17 @@
                  <div v-if="row.status==='ALLO'">已派发</div>
                  <div v-if="row.status==='START'">已发料</div>
                  <div v-if="row.status==='CLOSED'">已收料</div>
                </template>
              </el-table-column>
              <el-table-column
                prop="saleOrderCode"
                label="销售单号"
                width="160"
                show-tooltip-when-overflow
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.saleOrderCode?row.saleOrderCode:'/' }}
                </template>
              </el-table-column>
              <el-table-column
@@ -360,25 +431,24 @@
                show-tooltip-when-overflow
                width="150"
                sortable="custom"
                fixed="right"
              >
                <template slot-scope="{row}">
                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
                  <div v-else>/</div>
                </template>
              </el-table-column>
              <!--              <el-table-column-->
              <!--                label="操作"-->
              <!--                width="150"-->
              <!--                fixed="right"-->
              <!--              >-->
              <!--                <template slot-scope="{row}">-->
              <!--                  <div class="operationClass">-->
              <!--                    <el-button v-waves type="text" @click="edit('edit',row)">编辑</el-button>-->
              <!--                    <el-button v-waves type="text" @click="del(row)">删除</el-button>-->
              <!--                  </div>-->
              <!--                </template>-->
              <!--              </el-table-column>-->
              <el-table-column
                label="操作"
                width="150"
                fixed="right"
              >
                <template slot-scope="{row}">
                  <div class="operationClass">
                    <el-button v-if="WXSelected==='OUT'" v-waves type="text" @click="enterNative(WXform.orderstepqrcode=row.wo_code+';'+row.stepcode,'WXproduceCode')">发料</el-button>
                    <el-button v-if="WXSelected==='IN'" v-waves type="text" @click="enterNative(WXform.orderstepqrcode=row.wo_code+';'+row.stepcode,'WXproduceCode')">收料</el-button>
                  </div>
                </template>
              </el-table-column>
            </el-table>
          </div>
          <!--分页-->
@@ -404,7 +474,6 @@
                style="width: 300px"
                @keyup.enter.native="val=>enterNative(val,'badProduceCode')"
              />
              <!--              @keyup.native="e=>judgeIsScanning(e,'badProduceCode')"-->
            </div>
          </div>
@@ -429,6 +498,17 @@
                label="序号"
                fixed
              />
              <el-table-column
                prop="saleOrderCode"
                label="销售单号"
                width="160"
                show-tooltip-when-overflow
                sortable="custom"
              >
                <template slot-scope="{row}">
                  {{ row.saleOrderCode?row.saleOrderCode:'/' }}
                </template>
              </el-table-column>
              <el-table-column
                show-tooltip-when-overflow
                prop="wo_code"
@@ -520,7 +600,7 @@
      :visible.sync="dialogVisible"
      width="850px"
      class="dialogVisible"
      :top="dialogTitle==='自制报工'?'5vh':'15vh'"
      :top="dialogTitle==='自制报工'?'10vh':'15vh'"
      :close-on-click-modal="false"
      @close="handleClose"
      @closed="handleClose"
@@ -532,6 +612,9 @@
        :model="dialogForm"
        label-width="110px"
      >
        <el-form-item label="销售单号:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.saleOrderCode?dialogForm.saleOrderCode:'/' }}</div>
        </el-form-item>
        <el-form-item label="工单编号:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.wo_code }}</div>
        </el-form-item>
@@ -572,23 +655,24 @@
        </el-form-item>
        <!--自制开始-->
        <el-form-item v-if="dialogTitle==='自制开始'" label="开工数量:">
          <div style="width: 200px">{{ dialogForm.startqty }}</div>
          <!--          <div style="width: 200px">{{  dialogForm.noreportqty }}</div>-->
          <!--          <div style="width: 200px">{{ dialogForm.startqty }}</div>-->
          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px;" />
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制开始'" prop="eqpcode" label="生产设备:">
          <el-select
            v-model="dialogForm.eqpcode"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in ZZeqpArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            />
          </el-select>
        </el-form-item>
        <!--        <el-form-item v-if="dialogTitle==='自制开始'" label="生产设备:">-->
        <!--          <div style="width: 200px">{{ form.SelectType? ZZeqpArr.find(i=>i.code===form.SelectType).name:'' }}</div>-->
        <!--          &lt;!&ndash;          <el-select&ndash;&gt;-->
        <!--          &lt;!&ndash;            v-model="dialogForm.eqpcode"&ndash;&gt;-->
        <!--          &lt;!&ndash;            style="width: 200px;"&ndash;&gt;-->
        <!--          &lt;!&ndash;            placeholder="请选择"&ndash;&gt;-->
        <!--          &lt;!&ndash;          >&ndash;&gt;-->
        <!--          &lt;!&ndash;            <el-option&ndash;&gt;-->
        <!--          &lt;!&ndash;              v-for="item in ZZeqpArr"&ndash;&gt;-->
        <!--          &lt;!&ndash;              :key="item.code"&ndash;&gt;-->
        <!--          &lt;!&ndash;              :label="item.name"&ndash;&gt;-->
        <!--          &lt;!&ndash;              :value="item.code"&ndash;&gt;-->
        <!--          &lt;!&ndash;            />&ndash;&gt;-->
        <!--          &lt;!&ndash;          </el-select>&ndash;&gt;-->
        <!--        </el-form-item>-->
        <!--     自制报工   -->
        <el-form-item v-if="dialogTitle==='自制报工'" label="下道工序:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.nextstepname }}</div>
@@ -598,9 +682,9 @@
          <div style="width: 200px">{{ dialogForm.wkshopname }}</div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" style="margin: 0 10px 0 0">
          <div style="width: 200px">{{ dialogForm.eqpname }}</div>
        </el-form-item>
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" style="margin: 0 10px 0 0">-->
        <!--          <div style="width: 200px">{{ dialogForm.eqpname }}</div>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" prop="reckway" label="计件方式:">
@@ -657,29 +741,106 @@
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" label="合格数量:" prop="startqty">
          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px;" />
          <!--          <el-input v-model="dialogForm.noreportqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />-->
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:">
          <el-input v-model="dialogForm.noputqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
          <!--          <el-input-->
          <!--            v-model="dialogForm.noputqty"-->
          <!--            readonly-->
          <!--            oninput="value=value.replace(/[^0-9.]/g,'')"-->
          <!--            style="width: 200px;"-->
          <!--          />-->
          <div style="width:200px">
            {{ dialogForm.noputqty }}
          </div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:">
          <el-select
            v-model="dialogForm.badcode"
            style="width: 200px;"
            placeholder="请选择"
            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
            multiple
            collapse-tags
        <el-form-item v-if="dialogTitle==='自制报工'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 520px;" />
        </el-form-item>
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.badcode"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"-->
        <!--            multiple-->
        <!--            collapse-tags-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in badArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:">
          <el-input
            v-model="badInput"
            placeholder="请输入数量"
            class="input-with-select"
            style="width: 300px;"
            oninput="value=value.replace(/[^0-9]/g,'')"
          >
            <el-option
              v-for="item in badArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            <el-select
              slot="prepend"
              v-model="badSelected"
              multiple
              placeholder="请选择"
              clearable
              style="width: 150px"
              collapse-tags
            >
              <el-option
                v-for="item in badArr"
                :key="item.code"
                :label="item.name"
                :value="item.code"
              />
            </el-select>
            <el-button
              slot="append"
              icon="el-icon-plus"
              @click="plusClick"
            />
          </el-select>
          </el-input>
        </el-form-item>
        <div
          v-for="(item,index) in BADNAME"
          v-if="dialogTitle==='自制报工'"
          :key="item+index"
          style="margin-left: 25px;display: flex;  line-height: 24px;"
        >
          <div
            style="
                   width: 22px;height: 22px;background: #42b983;
                   display: flex;
                   justify-content: center;
                   align-content: center;
                   color: #fff;
                   line-height: 22px;
                   border-radius: 50%;
                   "
          >{{ index+1 }}</div>
          <div style="margin: 0 20px">{{ item.name }}</div>
          <div>{{ item.badqty }}</div>
          <div style="margin-left: 20px">
            <i
              class="el-icon-delete"
              style="color:#42b983;cursor: pointer"
              @click="deleteClick(item,index)"
            />
          </div>
        </div>
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="报工人员:">-->
        <!--          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />-->
        <!--        </el-form-item>-->
@@ -698,9 +859,7 @@
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='自制报工'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
        <div v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='group'">
          <div style="display: flex;align-items:center;height: 40px;margin-bottom: 10px">
            <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" />
@@ -758,7 +917,7 @@
                <el-input
                  v-if="row.isVisible===1||row.isVisible===2"
                  v-model="row.ratio"
                  oninput="value=value.replace(/[^0-9.]/g,'')"
                  oninput="value=value.replace(/[^0-9]/g,'')"
                  placeholder="请输入"
                />
                <div v-else> {{ row.ratio }}</div>
@@ -787,15 +946,15 @@
            </el-table-column>
          </el-table>
          <!--分页-->
          <pagination
            :total="UserTotal"
            :page.sync="Userform.page"
            :limit.sync="Userform.rows"
            align="right"
            layout="total,prev, pager, next,sizes"
            popper-class="select_bottom"
            @pagination="getMesOrderStepSearch"
          />
          <!--          <pagination-->
          <!--            :total="UserTotal"-->
          <!--            :page.sync="Userform.page"-->
          <!--            :limit.sync="Userform.rows"-->
          <!--            align="right"-->
          <!--            layout="total,prev, pager, next,sizes"-->
          <!--            popper-class="select_bottom"-->
          <!--            @pagination="getMesOrderStepSearch"-->
          <!--          />-->
        </div>
        <!--     外协发料-->
        <el-form-item
@@ -841,7 +1000,7 @@
          label="发料数量:"
          prop="fqty"
        >
          <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
          <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px;" />
        </el-form-item>
        <!--     外协收料-->
        <el-form-item
@@ -895,41 +1054,84 @@
          <el-input
            v-model="dialogForm.sqty"
            style="width: 200px"
            oninput="value=value.replace(/[^0-9.]/g,'')"
            :disabled="dialogForm.wxcode===''"
            oninput="value=value.replace(/[^0-9]/g,'')"
          />
        </el-form-item>
        <el-form-item
          v-if="dialogTitle==='外协收料'"
          label="不良数量:"
          prop="noputqty"
        >
          <div style="width: 200px;">
            {{ dialogForm.noputqty }}
          </div>
          <!--                  <el-input-->
          <!--                    v-model="dialogForm.noputqty"-->
          <!--                    style="width: 200px"-->
          <!--                    oninput="value=value.replace(/[^0-9.]/g,'')"-->
          <!--                  />-->
        </el-form-item>
        <el-form-item v-if="dialogTitle==='外协收料'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
        <el-form-item v-if="dialogTitle==='外协收料'" label="不良数量:">
          <el-input
            v-model="dialogForm.noputqty"
            style="width: 200px"
            oninput="value=value.replace(/[^0-9.]/g,'')"
          />
        </el-form-item>
        <el-form-item
          v-if="dialogTitle==='外协收料'"
          label="不良原因:"
        >
          <!--          prop="badcode"-->
          <el-select
            v-model="dialogForm.badcode"
            style="width: 200px;"
            multiple
            collapse-tags
            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
            placeholder="请选择"
            v-model="badInput"
            placeholder="请输入数量"
            class="input-with-select"
            style="width: 300px;"
            oninput="value=value.replace(/[^0-9]/g,'')"
          >
            <el-option
              v-for="item in badArr"
              :key="item.code"
              :label="item.name"
              :value="item.code"
            <el-select
              slot="prepend"
              v-model="badSelected"
              multiple
              placeholder="请选择"
              clearable
              style="width: 150px"
              collapse-tags
            >
              <el-option
                v-for="item in badArr"
                :key="item.code"
                :label="item.name"
                :value="item.code"
              />
            </el-select>
            <el-button
              slot="append"
              icon="el-icon-plus"
              @click="plusClick"
            />
          </el-select>
          </el-input>
        </el-form-item>
        <!--        <el-form-item-->
        <!--          v-if="dialogTitle==='外协收料'"-->
        <!--          label="不良原因:"-->
        <!--        >-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.badcode"-->
        <!--            style="width: 200px;"-->
        <!--            multiple-->
        <!--            collapse-tags-->
        <!--            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in badArr"-->
        <!--              :key="item.code"-->
        <!--              :label="item.name"-->
        <!--              :value="item.code"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <!--        <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.operation"-->
@@ -944,12 +1146,46 @@
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
        <el-form-item v-if="dialogTitle==='外协收料'" label="备注:">
          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
        </el-form-item>
      </el-form>
      <div v-if="dialogTitle==='外协收料'" style="display: flex;flex-direction: column">
        <!--明天接着写外协收料,供应商对应的已收未收详情-->
      <div
        v-if="dialogTitle==='外协收料'&&BADNAME.length>0"
        style="height: 30px;margin-left:30px;"
      >
        不良数量明细:
      </div>
      <div
        v-for="(item,index) in BADNAME"
        v-if="dialogTitle==='外协收料'"
        :key="item+index"
        style="margin-left: 30px;display: flex;  line-height: 24px;"
      >
        <div
          style="
                   width: 22px;height: 22px;background: #42b983;
                   display: flex;
                   justify-content: center;
                   align-content: center;
                   color: #fff;
                   line-height: 22px;
                   border-radius: 50%;
                   "
        >{{ index+1 }}</div>
        <div style="margin: 0 20px">{{ item.name }}</div>
        <div>{{ item.badqty }}</div>
        <div style="margin-left: 20px">
          <i
            class="el-icon-delete"
            style="color:#42b983;cursor: pointer"
            @click="deleteClick(item,index)"
          />
        </div>
      </div>
      <div v-if="dialogTitle==='外协收料'" style="margin-top: 20px;;display: flex;flex-direction: column">
        <div style="height: 30px;margin-left:30px;">
          可收料供应商:
        </div>
@@ -992,7 +1228,8 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >提交/打印</el-button>
          >提 交</el-button>
          <!--          /打印-->
          <el-button
            v-if="dialogTitle==='自制报工'&&dialogForm.nextstepname!==''"
            v-waves
@@ -1000,7 +1237,7 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >提交</el-button>
          >提 交</el-button>
          <el-button
            v-if="dialogTitle==='外协发料'"
            v-waves
@@ -1008,7 +1245,7 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >发料</el-button>
          >发 料</el-button>
          <el-button
            v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname===''"
            v-waves
@@ -1016,7 +1253,8 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >收料/打印</el-button>
          >收 料</el-button>
          <!--          /打印-->
          <el-button
            v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname!==''"
            v-waves
@@ -1024,7 +1262,7 @@
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >收料</el-button>
          >收 料</el-button>
        </div>
      </span>
    </el-dialog>
@@ -1123,6 +1361,9 @@
        :model="badDialogForm"
        label-width="110px"
      >
        <el-form-item label="销售单号:">
          <div style="width: 200px">{{ badDialogForm.saleOrderCode? badDialogForm.saleOrderCode:'/' }}</div>
        </el-form-item>
        <el-form-item label="工单编号:">
          <div style="width: 200px">{{ badDialogForm.wo_code }}</div>
        </el-form-item>
@@ -1271,9 +1512,10 @@
            v-waves
            type="primary"
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            @click="badDialogVisibleConfirm "
          >保 存/打 印</el-button>
            :disabled="$store.state.app.buttonIsDisabled||badTableDataDialog.length===0||badTableDataDialog.find(i=>i.isVisible===1)"
            @click="badDialogVisibleConfirm"
          >保 存</el-button>
          <!--          /打 印-->
        </div>
      </span>
    </el-dialog>
@@ -1342,7 +1584,13 @@
      radioSelected: '', // 工序选中
      WXradioSelected: '', // 工序选中
      form: {
        orderstepqrcode: '', // 扫描的二维码信息
        // orderstepqrcode: '', // 扫描的二维码信息
        // SelectType: '', // 设备编码
        wocode: '',
        partcode: '', // 产品编码
        partname: '', // 产品名称
        partspec: '', // 规格型号
        prop: 'lm_date', // 排序字段
        order: 'desc', // 排序字段
        page: 1, // 第几页
@@ -1368,6 +1616,7 @@
      dialogVisible: false,
      dialogTitle: '', // 自制开始、自制报工、外协发料、外协收料
      dialogForm: {
        saleOrderCode: '',
        wo_code: '', // 工单编号
        partcode: '', // 产品编码
        partname: '', // 产品名称
@@ -1402,14 +1651,22 @@
        startqtySum: '', // 不能超过的数值
        reckway: 'group', // 计件方式
        reckway: 'person', // 计件方式
        operation: getCookie('navTabId'), // 报工人(收料人)
        remarks: '', // 备注
        // isbott: true,
        inbarcode: ''// 末道工序时 打印的入库码
      },
      badSelected: [], // 已选的不良原因数组
      badInput: '',
      BAD: [],
      BADNAME: [],
      ZZuserArr: [], // 自制用户所有
      ZZtreams: [], // 自制生产班组数组
      ZZeqpArr: [], // 自制设备名称
@@ -1510,33 +1767,6 @@
      countJudgeIsScanningInput: 0 // 判断扫码框的个数
    }
  },
  watch: {
    // 'form.orderstepqrcode': {
    //   handler(newValue) {
    //     this.form.orderstepqrcode = newValue
    //
    //     // 在这里调用,并执行this.fnThrottle(this.search, 500, 2000)();
    //     this.fnThrottle(this.enterNative, 500, 2000, 'produceCode')()
    //   }
    // },
    // 'WXform.orderstepqrcode': {
    //   handler(newValue) {
    //     this.form.orderstepqrcode = newValue
    //
    //     // 在这里调用,并执行this.fnThrottle(this.search, 500, 2000)();
    //     this.fnThrottle(this.enterNative, 500, 2000, 'WXproduceCode')()
    //   }
    // },
    // 'badForm.orderstepqrcode': {
    //   handler(newValue) {
    //     this.form.orderstepqrcode = newValue
    //
    //     // 在这里调用,并执行this.fnThrottle(this.search, 500, 2000)();
    //     this.fnThrottle(this.enterNative, 500, 2000, 'badProduceCode')()
    //   }
    // }
  },
  created() {
    this.getMesOrderStepSearch()
    this.tabClick()
@@ -1653,107 +1883,12 @@
        })
      }
    },
    // 防抖      //扫码用的是防抖
    fnThrottle(method, delay, duration, belong) {
      var that = this
      var timer = this.timer
      var begin = new Date().getTime()
      return function() {
        var current = new Date().getTime()
        clearTimeout(timer)
        if (current - begin >= duration) {
          // method()
          // that.VALUE()
          begin = current
        } else {
          that.timer = setTimeout(function() {
            // method()
            if (belong === 'produceCode') {
              that.enterNative(that.form.orderstepqrcode, belong)
            }
            if (belong === 'WXproduceCode') {
              that.enterNative(that.WXform.orderstepqrcode, belong)
            }
            if (belong === 'badProduceCode') {
              that.enterNative(that.badForm.orderstepqrcode, belong)
            }
          }, delay)
        }
      }
    },
    // 判断是否是扫码枪扫码
    judgeIsScanning2(e, belong) {
      if (belong === 'produceCode' && this.form.orderstepqrcode.toString().length === 0) {
        this.judgeIsScanningArr = []
        this.countJudgeIsScanningInput = 0
      }
      if (belong === 'WXproduceCode' && this.WXform.orderstepqrcode.toString().length === 0) {
        this.judgeIsScanningArr = []
        this.countJudgeIsScanningInput = 0
      }
      const timenow = e.timeStamp
      // console.log(timenow, 1)
      // let flag = true
      let flag = false
      this.judgeIsScanningArr.push(timenow)
      let i
      for (i in this.judgeIsScanningArr) {
        console.log(Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]))
        // flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1
        if (Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1) {
          this.countJudgeIsScanningInput++
        }
        if (this.countJudgeIsScanningInput >= 3) {
          flag = true
        }
        if (i > 0 && this.judgeIsScanningArr.length === parseInt(i) + 1) {
          if (flag) {
            console.log(flag, 1)
            this.fnThrottle(this.enterNative, 500, 2000, belong)()
            return
          }
        }
      }
      // // for (i in this.judgeIsScanningArr) {
      // // console.log(i)
      // // console.log( this.judgeIsScanningArr)
      // console.log(Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]))
      // if (Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 10) {
      //   this.countJudgeIsScanningInput++
      // }
      // if (this.countJudgeIsScanningInput > this.judgeIsScanningArr.length / 2) {
      //   flag = true
      // }
      // // flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1
      // // if (i > 0 && this.judgeIsScanningArr.length === parseInt(i) + 1) {
      // if (flag) {
      //   console.log(flag, 2)
      //   this.fnThrottle(this.enterNative, 500, 2000, belong)()
      //   return
      // }
      // // }
      // // }
    },
    // 判断是否是扫码枪扫码
    judgeIsScanning(e, belong) {
      const timenow = e.timeStamp
      let flag = true
      this.judgeIsScanningArr.push(timenow)
      let i
      for (i in this.judgeIsScanningArr) {
        flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1
        if (i > 0 && this.judgeIsScanningArr.length === parseInt(i) + 1) {
          if (flag) {
            this.fnThrottle(this.enterNative, 500, 2000, belong)()
            return
          }
        }
      }
    },
    // 扫码键盘回车事件
    async enterNative(val, belong) {
      if (getCookie('description') !== 'W') {
        return this.$message.info('该角色无此操作权限!')
      }
      console.log(val, belong, 89898989)
      // 开工:code="200"  count=0
      // 报工:code="200"  count=1
@@ -1761,25 +1896,31 @@
      // 收料:code="200"  count=3
      // 走列表形式 code="200"  count=4
      if (belong === 'produceCode') {
        const orderstepqrcode = this.form.orderstepqrcode
        const data = {
          OperType: 'ZZ',
          orderstepqrcode: orderstepqrcode,
          SelectType: ''
        }
        const res = await MesOrderStepStart(data)
        if (res.code === '200' && res.count === 0) {
          await this.ZZstart(res.data)
        }
        if (res.code === '200' && res.count === 1) {
          await this.ZZreport(res.data)
        }
        // console.log('asd')
        // await this.getMesOrderStepStartSelectEqp()
        await this.getMesOrderStepSearch()
        // const orderstepqrcode = this.form.orderstepqrcode
        // const data = {
        //   OperType: 'ZZ',
        //   orderstepqrcode: orderstepqrcode,
        //   SelectType: this.form.SelectType,
        //   stu_torgcode: getCookie('stu_torgcode')
        // }
        // const res = await MesOrderStepStart(data)
        // if (res.code === '200' && res.count === 0) {
        //   await this.ZZstart(res.data)
        // }
        // if (res.code === '200' && res.count === 1) {
        //   await this.ZZreport(res.data)
        // }
      }
      if (belong === 'WXproduceCode') {
        const orderstepqrcode = this.WXform.orderstepqrcode
        const data = {
          OperType: 'WX',
          orderstepqrcode: orderstepqrcode,
          stu_torgcode: getCookie('stu_torgcode'),
          SelectType: this.WXSelected// OUT、IN
        }
        const res = await MesOrderStepStart(data)
@@ -1802,71 +1943,101 @@
    search() {
      this.getMesOrderStepSearch()
    },
    reset() {
      this.form.wocode = ''
      this.form.partcode = ''
      this.form.partname = ''
      this.form.partspec = ''
      this.getMesOrderStepSearch()
    },
    // 自制开始
    async ZZstart(obj) {
      // if (!this.ZZisExecutable) {
      //   return this.$message.info('请先扫码工序二维码!')
      // }
      // this.dialogForm.isbott = obj.isbott === 'Y'
      const data = {
        OperType: 'ZZ',
        orderstepqrcode: obj.wo_code + ';' + obj.stepcode,
        SelectType: 'START',
        stu_torgcode: getCookie('stu_torgcode')
      }
      const { data: res } = await MesOrderStepStart(data)
      // console.log(JSON.parse(JSON.stringify(res)), 321)
      this.dialogTitle = '自制开始'
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
        this.dialogForm.partspec = obj.partspec
        this.dialogForm.stepseq = obj.seq
        this.dialogForm.stepcode = obj.stepcode
        this.dialogForm.stepname = obj.stepname
        this.dialogForm.stepdesc = obj.stepdesc
        this.dialogForm.planqty = obj.planqty
        this.dialogForm.reportqty = obj.reportqty
        this.dialogForm.noreportqty = obj.noreportqty
        this.dialogForm.saleOrderCode = res.saleOrderCode
        this.dialogForm.wo_code = res.wo_code
        this.dialogForm.partcode = res.partnumber
        this.dialogForm.partname = res.partname
        this.dialogForm.partspec = res.partspec
        this.dialogForm.stepseq = res.seq
        this.dialogForm.stepcode = res.stepcode
        this.dialogForm.stepname = res.stepname
        this.dialogForm.stepdesc = res.stepdesc
        this.dialogForm.planqty = res.planqty
        this.dialogForm.reportqty = res.reportqty
        this.dialogForm.noreportqty = res.noreportqty
        // this.dialogForm.startqty = obj.startqty
        this.dialogForm.startqty = obj.noreportqty
        this.dialogForm.startqty = res.noreportqty
      })
      await this.getMesOrderStepStartSelectEqp()
    },
    // 自制报工
    async ZZreport(obj) {
      // if (!this.ZZisExecutable) {
      //   return this.$message.info('请先扫码工序二维码!')
      // }
      const data = {
        OperType: 'ZZ',
        orderstepqrcode: obj.wo_code + ';' + obj.stepcode,
        SelectType: 'REPORT',
        stu_torgcode: getCookie('stu_torgcode')
      }
      this.form.orderstepqrcode = obj.wo_code + ';' + obj.stepcode
      const { data: res } = await MesOrderStepStart(data)
      // console.log(JSON.parse(JSON.stringify(res)), 322)
      this.dialogTitle = '自制报工'
      this.dialogVisible = true
      this.dialogForm.saleOrderCode = res.saleOrderCode
      this.dialogForm.wo_code = res.wo_code
      this.dialogForm.partcode = res.partnumber
      this.dialogForm.partname = res.partname
      this.dialogForm.partspec = res.partspec
      this.dialogForm.stepseq = res.seq
      this.dialogForm.stepcode = res.stepcode
      this.dialogForm.stepname = res.stepname
      this.dialogForm.stepdesc = res.stepdesc
      this.dialogForm.planqty = res.planqty
      this.dialogForm.reportqty = res.reportqty
      this.dialogForm.noputqty = res.noputqty
      this.dialogForm.noreportqty = res.noreportqty
      // this.dialogForm.startqty = res.startqty
      this.dialogForm.startqty = res.noreportqty
      this.dialogForm.nextstepname = res.nextstepname
      this.dialogForm.nextstepcode = res.nextstepcode
      this.dialogForm.startqtySum = res.noreportqty
      // console.log(this.dialogForm.startqtySum, 2)
      this.dialogForm.eqpname = res.eqpname
      this.dialogForm.eqpcode = res.eqpcode
      console.log(res.wkshopcode, 7)
      this.dialogForm.wkshopcode = res.wkshopcode
      this.dialogForm.wkshopname = res.wkshopname
      this.$nextTick(() => {
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
        this.dialogForm.partspec = obj.partspec
        this.dialogForm.stepseq = obj.seq
        this.dialogForm.stepcode = obj.stepcode
        this.dialogForm.stepname = obj.stepname
        this.dialogForm.stepdesc = obj.stepdesc
        this.dialogForm.planqty = obj.planqty
        this.dialogForm.reportqty = obj.reportqty
        this.dialogForm.noputqty = obj.noputqty
        this.dialogForm.noreportqty = obj.noreportqty
        // this.dialogForm.startqty = obj.startqty
        this.dialogForm.startqty = obj.noreportqty
        this.dialogForm.nextstepname = obj.nextstepname
        this.dialogForm.nextstepcode = obj.nextstepcode
        this.dialogForm.startqtySum = obj.noreportqty
        this.dialogForm.eqpname = obj.eqpname
        this.dialogForm.eqpcode = obj.eqpcode
        this.dialogForm.wkshopcode = obj.wkshopcode
        this.dialogForm.wkshopname = obj.wkshopname
        this.$refs.userTableDataRef.doLayout()
      })
      await this.getMesOrderStepStartSelectEqp()
      await this.getMesOrderStepReportSelectUserGroup()
      await this.getMesOrderStepSelectCause('ZZ')
      await this.getMesOrderSelectUserZZ()
@@ -1884,6 +2055,7 @@
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.saleOrderCode = obj.saleOrderCode
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
@@ -1917,12 +2089,13 @@
        }
      })
      console.log(this.WXouterprovide2, 2)
      // console.log(this.WXouterprovide2, 2)
      this.dialogTitle = '外协收料'
      this.dialogVisible = true
      this.$nextTick(() => {
        this.dialogForm.saleOrderCode = obj.saleOrderCode
        this.dialogForm.wo_code = obj.wo_code
        this.dialogForm.partcode = obj.partnumber
        this.dialogForm.partname = obj.partname
@@ -1996,6 +2169,31 @@
      const { data: res } = await MesOrderStepSelectCause({ orderstepqrcode: orderstepqrcode })
      this.badArr = res
    },
    // 开工选择设备改变时
    selectTypeChange(val) {
      this.form.SelectType = val
      const orderstepqrcode = this.form.orderstepqrcode
      const data = {
        OperType: 'ZZ',
        orderstepqrcode: orderstepqrcode,
        SelectType: this.form.SelectType,
        stu_torgcode: getCookie('stu_torgcode')
      }
      MesOrderStepStart(data).then(res => {
        if (res.code === '200' && res.count === 0) {
          this.ZZstart(res.data)
        }
        if (res.code === '200' && res.count === 1) {
          this.ZZreport(res.data)
        }
      }).catch(e => {
        this.form.orderstepqrcode = ''
        this.form.SelectType = ''
      })
    },
    // 报工查询用户表
    async getUserTableData() {
      const { data: res } = await MesOrderGroupSelectUser({ usergroupcode: this.dialogForm.usergroupcode })
@@ -2020,11 +2218,12 @@
    calculatedValue() {
      const total = 100
      let value = 0
      this.userTableData.forEach(item => {
        item.ratio = parseFloat((100 / this.userTableData.length).toFixed(2))
        value += item.ratio
      })
      console.log(value, 1)
      this.UserTotal = this.userTableData.length
      if (value !== total) {
        // let temp = this.userTableData
@@ -2051,6 +2250,43 @@
      })
    },
    plusClick() {
      // console.log(this.badSelected, this.badInput)
      if (this.badSelected.length < 1) {
        return this.$message.info('请选择不良原因!')
      }
      if (this.badInput.toString().trim().length < 1) {
        return this.$message.info('请输入不良数量!')
      }
      this.BAD.push({
        defect_code: this.badSelected.sort().join(','),
        badqty: this.badInput
      })
      const NAME = []
      this.badSelected.forEach(item => {
        const name = this.badArr.find(it => it.code === item).name
        NAME.push(name)
      })
      this.BADNAME.push({
        name: NAME.join(','), badqty: this.badInput
      })
      // console.log(typeof this.dialogForm.noputqty)
      this.dialogForm.noputqty += parseFloat(this.badInput)
      this.badSelected = []
      this.badInput = ''
    },
    deleteClick(val, index) {
      console.log(val, 2)
      this.dialogForm.noputqty -= parseFloat(val.badqty)
      this.BADNAME.splice(index, 1)
      this.BAD.splice(index, 1)
    },
    // 用户添加
    userAdd() {
      if (this.userTableData.find(i => i.isVisible === 1)) {
@@ -2058,7 +2294,6 @@
      }
      let number = Math.random() * Math.random()// 作为删除时的标识符
      number = number === 0 ? (10 + Math.random()) : number
      console.log(this.userTableData, 6)
      this.userTableData.unshift({ usercode: '', username: '', isVisible: 1, number: number, ratio: 0 })
      this.calculatedValue()
    },
@@ -2124,41 +2359,46 @@
    },
    // 对话框关闭事件
    handleClose() {
      this.BAD = []
      this.BADNAME = []
      this.badSelected = []
      this.badInput = ''
      this.judgeIsScanningArr = []
      this.form.orderstepqrcode = ''
      this.WXform.orderstepqrcode = ''
      this.badForm.orderstepqrcode = ''
      this.dialogForm.wo_code = '', // 工单编号
      this.dialogForm.partcode = '', // 产品编码
      this.dialogForm.partname = '', // 产品名称
      this.dialogForm.partspec = '', // 产品规格
      this.dialogForm.stepseq = '', // 工序序号
      this.dialogForm.stepcode = '', // 工序编码
      this.dialogForm.stepname = '', // 当前工序名
      this.dialogForm.nextstepname = '', // 下一道工序名
      this.dialogForm.stepdesc = '', // 工序描述
      this.dialogForm.planqty = '', // 任务数量
      this.dialogForm.reportqty = '', // 已报数量
      this.dialogForm.noreportqty = '', // 未报数量
      this.dialogForm.startqty = '', // 开(报)工数量
      this.dialogForm.wo_code = '' // 工单编号
      this.dialogForm.partcode = '' // 产品编码
      this.dialogForm.partname = '' // 产品名称
      this.dialogForm.partspec = '' // 产品规格
      this.dialogForm.stepseq = ''// 工序序号
      this.dialogForm.stepcode = '' // 工序编码
      this.dialogForm.stepname = '' // 当前工序名
      this.dialogForm.nextstepname = ''// 下一道工序名
      this.dialogForm.stepdesc = '' // 工序描述
      this.dialogForm.planqty = '' // 任务数量
      this.dialogForm.reportqty = '' // 已报数量
      this.dialogForm.noreportqty = '' // 未报数量
      this.dialogForm.startqty = '' // 开(报)工数量
      this.dialogForm.wxcode = '', // 外协供应商编码
      this.dialogForm.outuser = '', // 发料人员
      this.dialogForm.taskqty = '', // 任务数量
      this.dialogForm.fqty = '', // 发料数量
      this.dialogForm.wxcode = '' // 外协供应商编码
      this.dialogForm.outuser = '' // 发料人员
      this.dialogForm.taskqty = '' // 任务数量
      this.dialogForm.fqty = '' // 发料数量
      this.dialogForm.inuser = getCookie('navTabId'), // 收料人员  默认登录人员
      this.dialogForm.sqty = '', // 收料数量
      this.dialogForm.ngqty = '', // 不良数量
      this.dialogForm.badcode = '', // 不良原因编码
      this.dialogForm.inuser = getCookie('navTabId') // 收料人员  默认登录人员
      this.dialogForm.sqty = '' // 收料数量
      this.dialogForm.ngqty = '' // 不良数量
      this.dialogForm.badcode = '' // 不良原因编码
      this.dialogForm.noputqty = '', // 不良数量
      this.dialogForm.noputqty = '' // 不良数量
      this.dialogForm.eqpcode = '', // 生产设备编码
      this.dialogForm.eqpcode = '' // 生产设备编码
      this.dialogForm.usergroupcode = '', // 班组编码
      this.dialogForm.reportuser = '', // 报工人员
      this.dialogForm.usergroupcode = '' // 班组编码
      this.dialogForm.reportuser = '' // 报工人员
      this.dialogForm.startqtySum = '' // 不能超过的数值
@@ -2168,11 +2408,14 @@
      // this.dialogForm.inbarcode = '' // 入库码
      this.dialogForm.reckway = 'group'
      this.dialogForm.reckway = 'person'
      this.dialogForm.remarks = '' // 备注
      this.dialogForm.operation = getCookie('navTabId') // 报工人(收料人)
      this.userTableData = [] // 人员列表
      this.form.SelectType = ''
      this.ZZeqpArr = []
      this.$refs.dialogForm.clearValidate()
    },
@@ -2188,6 +2431,9 @@
          if (this.dialogTitle === '外协发料') {
            if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) {
              return this.$message.info('发料数量不能大于未发数量!')
            }
            if (parseFloat(this.dialogForm.fqty) <= 0) {
              return this.$message.info('发料数量要大于零!')
            }
            const data = {
              mesordercode: this.dialogForm.wo_code, // 工单编号
@@ -2221,26 +2467,30 @@
              return this.$message.info('收料数量加不良数量不能大于该供应商可收数量!')
            }
            if (parseFloat(this.dialogForm.noputqty) > 0) {
              if (this.dialogForm.badcode.length < 1) {
                return this.$message.info('请选择不良原因!')
              }
            if (parseFloat(this.dialogForm.sqty) <= 0) {
              return this.$message.info('收料数量要大于零!')
            }
            // if (parseFloat(this.dialogForm.noputqty) > 0) {
            //   if (this.dialogForm.badcode.length < 1) {
            //     return this.$message.info('请选择不良原因!')
            //   }
            // }
            this.dialogForm.inbarcode = ''
            // 当为末道的时候
            if (this.dialogForm.nextstepcode === '') {
              const D = {
                rightcode: '1078',
                partcode: this.dialogForm.partcode,
                qty: this.dialogForm.sqty,
                onelabqty: this.dialogForm.sqty
              }
              const r = await LabelBarCode(D)
              this.dialogForm.inbarcode = r.data[0].labcode
              this.qrForm.partspec = this.dialogForm.partspec
            }
            // if (this.dialogForm.nextstepcode === '') {
            //   const D = {
            //     rightcode: '1078',
            //     partcode: this.dialogForm.partcode,
            //     qty: this.dialogForm.sqty,
            //     onelabqty: this.dialogForm.sqty
            //   }
            //   const r = await LabelBarCode(D)
            //   this.dialogForm.inbarcode = r.data[0].labcode
            //
            //   this.qrForm.partspec = this.dialogForm.partspec
            // }
            const data = {
              mesordercode: this.dialogForm.wo_code, // 工单编号
@@ -2253,18 +2503,19 @@
              sqty: this.dialogForm.sqty, // 收料数量
              remarks: this.dialogForm.remarks, // 备注
              inbarcode: this.dialogForm.inbarcode, // 生产入库条码
              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
              defectlist: this.BAD
              // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
            }
            // console.log(JSON.stringify(data), 2)
            this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepIn(data).then(res => {
              if (res.code === '200') {
                this.dialogVisible = false
                this.$message.success('收料成功!')
                // if (this.dialogForm.nextstepcode === '') {
                // this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.inuser).username)
                this.WXprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                this.dialogVisible2 = true
                // this.WXprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                // this.dialogVisible2 = true
                // }
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
@@ -2275,12 +2526,34 @@
          }
          if (this.dialogTitle === '自制开始') {
            // console.log(parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.reportqty))
            // console.log(parseFloat(this.dialogForm.planqty), 9)
            if (parseFloat(this.dialogForm.startqty) > parseFloat(this.dialogForm.noreportqty)) {
              return this.$message.info('开工数量之和不能大于未开数量!')
            }
            // if (this.dialogForm.isbott) {
            //   if (parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.reportqty) > parseFloat(this.dialogForm.planqty)) {
            //     return this.$message.info('开工数量之和不能大于任务数量!')
            //   }
            // }
            //
            // if (!this.dialogForm.isbott) {
            //   if (parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.reportqty) > parseFloat(this.dialogForm.noreportqty)) {
            //     return this.$message.info('开工数量之和不能大于未开数量!')
            //   }
            // }
            if (parseFloat(this.dialogForm.startqty) <= 0) {
              return this.$message.info('开工数量必须大于零!')
            }
            const data = {
              mesordercode: this.dialogForm.wo_code, // 工单编号
              partcode: this.dialogForm.partcode, // 产品编码
              stepseq: this.dialogForm.stepseq, // 工序序号   暂时缺
              stepcode: this.dialogForm.stepcode, // 工序编码
              eqpcode: this.dialogForm.eqpcode, // 生产设备
              eqpcode: '', // 生产设备
              taskqty: this.dialogForm.planqty, // 任务数量
              startqty: this.dialogForm.startqty// 开始数量
            }
@@ -2298,12 +2571,18 @@
          }
          if (this.dialogTitle === '自制报工') {
            console.log(parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty))
            if (parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
              return this.$message.info('报工数量加不良数量不能大于了未报数量!')
            }
            if (this.userTableData.length < 1 && this.dialogForm.reckway === 'group') {
              return this.$message.info('人员列表不能为空!')
            }
            if (parseFloat(this.dialogForm.startqty) <= 0) {
              return this.$message.info('报工数量必须大于零!')
            }
            // this.userTableData = [...new Set(this.userTableData)]// 数组去重
            this.userTableData = this.userTableData.filter(item => item.usercode !== '')
            // 数组中对象相同的去重
@@ -2316,16 +2595,17 @@
              this.userTableData.forEach(item => {
                sum += parseFloat(item.ratio)
              })
              console.log(sum, 4)
              if (Math.round(sum * 100) / 100 !== 100) {
                return this.$message.info('分配比例总和必须为100!')
              }
            }
            if (parseFloat(this.dialogForm.noputqty) > 0) {
              if (this.dialogForm.badcode.length < 1) {
                return this.$message.info('请选择不良原因!')
              }
            }
            // if (parseFloat(this.dialogForm.noputqty) > 0) {
            //   if (this.dialogForm.badcode.length < 1) {
            //     return this.$message.info('请选择不良原因!')
            //   }
            // }
            // console.log(this.userTableData, 1)
            // const reportuser = this.userTableData.map(item => item.usercode).join(';')// 主要改的是这里的格式
@@ -2368,22 +2648,23 @@
              inbarcode: this.dialogForm.inbarcode, // 生产入库条码
              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
              defectlist: this.BAD
              // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
            }
            // console.log(JSON.parse(JSON.stringify(data)), 'data')
            // console.log(JSON.stringify(data), 'data')
            console.log(data, 'data')
            this.$store.state.app.buttonIsDisabled = true
            this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepReport(data).then(res => {
              if (res.code === '200') {
                this.dialogVisible = false
                this.$message.success('报工成功!')
                // this.dialogForm.nextstepcode===''  //当为空的时候  代表是末道工序
                // if (this.dialogForm.nextstepcode !== '') {
                this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                this.dialogVisible2 = true
                // this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                // this.dialogVisible2 = true
                // }
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
@@ -2487,8 +2768,8 @@
        if (res.code === '200' || res.code === '301') {
          this.getBadList()
          this.badDialogVisible = false
          this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
          this.dialogVisible2 = true
          // this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
          // this.dialogVisible2 = true
          this.$message.success('保存成功!')
          this.$store.state.app.buttonIsDisabled = false
@@ -2536,6 +2817,7 @@
      const { data: res } = await MesOrderNgSubStepSearch(data)
      this.$nextTick(() => {
        this.badDialogForm.saleOrderCode = res.data1.saleOrderCode
        this.badDialogForm.wo_code = res.data1.wo_code
        this.badDialogForm.partcode = res.data1.partnumber
        this.badDialogForm.partname = res.data1.partname