loulijun2021
2023-02-17 45d04a1212f6894c68063b77d911ed7a6ba9de96
src/views/scgl/sckbg.vue
@@ -12,17 +12,17 @@
                v-model="form.orderstepqrcode"
                name="produceCode"
                style="width: 300px"
                @keyup.native="e=>judgeIsScanning(e,'produceCode')"
                @keyup.enter.native="val=>enterNative(val,'produceCode')"
              />
              <!--                @keyup.native="e=>judgeIsScanning(e,'produceCode')"-->
            </div>
            <div v-if="false" style="display: flex;padding-right: 10px">
              <el-button @click="ZZstart">
              <el-button v-waves @click="ZZstart">
                <svg-icon icon-class="start_time" style="margin-right: 2px" />
                开始
              </el-button>
              <el-button @click="ZZreport">
              <el-button v-waves @click="ZZreport">
                <svg-icon icon-class="report_work" style="margin-right: 2px" />
                报工
              </el-button>
@@ -31,6 +31,8 @@
          <el-divider />
          <div class="elTableDiv">
            <el-table
              ref="tableDataRef"
              class="tableFixed"
              :data="tableData"
              :height="isIpad? (tableHeight+50):tableHeight"
              border
@@ -49,6 +51,7 @@
              />
              <el-table-column
                prop="status"
                show-tooltip-when-overflow
                label="状态"
                sortable="custom"
                width="80"
@@ -58,6 +61,8 @@
                  <div v-if="row.status==='ALLO'">已派发</div>
                  <div v-if="row.status==='START'">开工</div>
                  <div v-if="row.status==='CLOSED'">完工</div>
                  <div v-if="row.status==='NOSCHED'">待排程</div>
                  <div v-if="row.status==='SCHED'">已排程</div>
                </template>
              </el-table-column>
              <el-table-column
@@ -72,6 +77,7 @@
                label="产品编码"
                min-width="110"
                sortable="custom"
                show-tooltip-when-overflow
              />
              <el-table-column
                prop="partname"
@@ -103,10 +109,12 @@
                label="任务数量"
                width="110"
                sortable="custom"
                show-tooltip-when-overflow
              />
              <el-table-column
                label="未报工数量"
                width="120"
                show-tooltip-when-overflow
              >
                <!--                sortable="custom"-->
                <template slot-scope="{row}">
@@ -115,6 +123,7 @@
              </el-table-column>
              <el-table-column
                prop="good_qty"
                show-tooltip-when-overflow
                label="已报工数量"
                sortable="custom"
                width="160"
@@ -122,6 +131,7 @@
              <el-table-column
                prop="ng_qty"
                label="不良数量"
                show-tooltip-when-overflow
                width="150"
                sortable="custom"
              />
@@ -129,16 +139,18 @@
                prop="bad_qty"
                label="已报废数量"
                width="120"
                show-tooltip-when-overflow
                sortable="custom"
              />
              <el-table-column
                prop="plan_startdate"
                label="计划开工日期"
                show-tooltip-when-overflow
                width="150"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div>
                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
                  <div v-else>/</div>
                </template>
              </el-table-column>
@@ -147,10 +159,11 @@
                label="计划完工日期"
                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-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
                  <div v-else>/</div>
                </template>
              </el-table-column>
@@ -161,8 +174,8 @@
              <!--              >-->
              <!--                <template slot-scope="{row}">-->
              <!--                  <div class="operationClass">-->
              <!--                    <el-button type="text" @click="edit('edit',row)">编辑</el-button>-->
              <!--                    <el-button type="text" @click="del(row)">删除</el-button>-->
              <!--                    <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>-->
@@ -201,16 +214,17 @@
                v-model="WXform.orderstepqrcode"
                name="WXproduceCode"
                style="width: 300px"
                @keyup.native="e=>judgeIsScanning(e,'WXproduceCode')"
                @keyup.enter.native="val=>enterNative(val,'WXproduceCode')"
              />
              <!--              @keyup.native="e=>judgeIsScanning(e,'WXproduceCode')"-->
            </div>
            <div v-if="false" style="display: flex;padding-right: 10px">
              <el-button @click="WXsend">
              <el-button v-waves @click="WXsend">
                <svg-icon icon-class="start_time" style="margin-right: 2px" />
                发料
              </el-button>
              <el-button @click="WXback">
              <el-button v-waves @click="WXback">
                <svg-icon icon-class="report_work" style="margin-right: 2px" />
                收料
              </el-button>
@@ -219,6 +233,8 @@
          <el-divider />
          <div class="elTableDiv">
            <el-table
              ref="tableDataRef"
              class="tableFixed"
              :data="WXtableData"
              :height="isIpad? (tableHeight+50):tableHeight"
              border
@@ -238,6 +254,7 @@
              <el-table-column
                prop="status"
                label="状态"
                show-tooltip-when-overflow
                sortable="custom"
                width="80"
              >
@@ -258,6 +275,7 @@
              <el-table-column
                prop="partcode"
                label="产品编码"
                show-tooltip-when-overflow
                width="110"
                sortable="custom"
              />
@@ -272,6 +290,7 @@
                prop="stepname"
                label="工序"
                width="120"
                show-tooltip-when-overflow
                sortable="custom"
              />
              <!--              <el-table-column-->
@@ -288,12 +307,14 @@
              <el-table-column
                prop="plan_qty"
                label="任务数量"
                show-tooltip-when-overflow
                width="110"
                sortable="custom"
              />
              <el-table-column
                label="未报工数量"
                label="未收料数量"
                width="120"
                show-tooltip-when-overflow
              >
                <!--                sortable="custom"-->
                <template slot-scope="{row}">
@@ -303,12 +324,14 @@
              <el-table-column
                prop="good_qty"
                label="已收料数量"
                show-tooltip-when-overflow
                sortable="custom"
                width="160"
              />
              <el-table-column
                prop="ng_qty"
                label="不良数量"
                show-tooltip-when-overflow
                width="150"
                sortable="custom"
              />
@@ -317,27 +340,30 @@
                label="已报废数量"
                min-width="120"
                sortable="custom"
                show-tooltip-when-overflow
              />
              <el-table-column
                prop="plan_startdate"
                label="计划开工日期"
                show-tooltip-when-overflow
                width="150"
                sortable="custom"
              >
                <template slot-scope="{row}">
                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div>
                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
                  <div v-else>/</div>
                </template>
              </el-table-column>
              <el-table-column
                prop="plan_enddate"
                label="计划完工日期"
                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-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
                  <div v-else>/</div>
                </template>
              </el-table-column>
@@ -348,8 +374,8 @@
              <!--              >-->
              <!--                <template slot-scope="{row}">-->
              <!--                  <div class="operationClass">-->
              <!--                    <el-button type="text" @click="edit('edit',row)">编辑</el-button>-->
              <!--                    <el-button type="text" @click="del(row)">删除</el-button>-->
              <!--                    <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>-->
@@ -376,14 +402,17 @@
                v-model="badForm.orderstepqrcode"
                name="badProduceCode"
                style="width: 300px"
                @keyup.native="e=>judgeIsScanning(e,'badProduceCode')"
                @keyup.enter.native="val=>enterNative(val,'badProduceCode')"
              />
              <!--              @keyup.native="e=>judgeIsScanning(e,'badProduceCode')"-->
            </div>
          </div>
          <el-divider />
          <div class="elTableDiv">
            <el-table
              ref="tableDataRef"
              class="tableFixed"
              :data="badTableData"
              :height="isIpad? (tableHeight+50):tableHeight"
              border
@@ -401,18 +430,21 @@
                fixed
              />
              <el-table-column
                show-tooltip-when-overflow
                prop="wo_code"
                label="工单号"
                min-width="160"
                sortable="custom"
              />
              <el-table-column
                show-tooltip-when-overflow
                prop="partcode"
                label="产品编码"
                min-width="110"
                sortable="custom"
              />
              <el-table-column
                show-tooltip-when-overflow
                prop="partname"
                min-width="160"
                label="产品名称"
@@ -421,6 +453,7 @@
              <el-table-column
                prop="stepname"
                label="工序"
                show-tooltip-when-overflow
                min-width="120"
                sortable="custom"
              />
@@ -428,6 +461,7 @@
                prop="plan_qty"
                label="任务数量"
                width="110"
                show-tooltip-when-overflow
                sortable="custom"
              />
              <el-table-column
@@ -435,11 +469,13 @@
                label="已报工数量"
                sortable="custom"
                min-width="160"
                show-tooltip-when-overflow
              />
              <el-table-column
                prop="ng_qty"
                label="不良数量"
                width="150"
                show-tooltip-when-overflow
                sortable="custom"
              />
              <el-table-column
@@ -447,6 +483,7 @@
                label="已报废数量"
                width="120"
                sortable="custom"
                show-tooltip-when-overflow
              />
              <el-table-column
                label="操作"
@@ -455,7 +492,7 @@
              >
                <template slot-scope="{row}">
                  <div class="operationClass">
                    <el-button type="text" @click="repairHandle(row)">维修处理</el-button>
                    <el-button v-waves type="text" @click="repairHandle(row)">维修处理</el-button>
                  </div>
                </template>
              </el-table-column>
@@ -478,6 +515,7 @@
    </div>
    <el-dialog
      v-el-drag-dialog
      :title="dialogTitle"
      :visible.sync="dialogVisible"
      width="850px"
@@ -555,7 +593,16 @@
        <el-form-item v-if="dialogTitle==='自制报工'" label="下道工序:">
          <div style="width: 200px">{{ dialogForm.nextstepname }}</div>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" prop="usergroupcode" label="生产班组:">
        <el-form-item v-if="dialogTitle==='自制报工'" prop="reckway" label="计件方式:">
          <el-radio-group v-model="dialogForm.reckway" style="width: 200px;" @change="reckwayChange">
            <el-radio label="group">班组</el-radio>
            <el-radio label="person">个人</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='group'" prop="usergroupcode" label="生产班组:">
          <el-select
            v-model="dialogForm.usergroupcode"
            style="width: 200px;"
@@ -570,6 +617,23 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='person'" prop="operation" label="报工人员:">
          <el-select
            v-model="dialogForm.operation"
            style="width: 200px;"
            placeholder="请选择"
            @change="usergroupChange"
          >
            <el-option
              v-for="item in OperationArr"
              :key="item.usercode"
              :label="item.username"
              :value="item.usercode"
            />
          </el-select>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='自制报工'" label="设备名称:" prop="eqpcode">
          <el-select
            v-model="dialogForm.eqpcode"
@@ -598,6 +662,7 @@
            placeholder="请选择"
            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
            multiple
            collapse-tags
          >
            <el-option
              v-for="item in badArr"
@@ -610,29 +675,32 @@
        <!--        <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-select
            v-model="dialogForm.operation"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in OperationArr"
              :key="item.usercode"
              :label="item.username"
              :value="item.usercode"
            />
          </el-select>
        </el-form-item>
        <!--        注释-->
        <!--        <el-form-item v-if="dialogTitle==='自制报工'" label="报工人:">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.operation"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in OperationArr"-->
        <!--              :key="item.usercode"-->
        <!--              :label="item.username"-->
        <!--              :value="item.usercode"-->
        <!--            />-->
        <!--          </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==='自制报工'">
          <i class="el-icon-s-operation" style="color:#42b983;" /> 人员列表
          <el-button type="primary" style="margin: 10px 0" @click="userAdd">增行</el-button>
        <div v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='group'">
          <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 人员列表
          <el-button v-waves type="primary" style="margin: 10px 0" @click="userAdd">增行</el-button>
          <el-table
            ref="userTableDataRef"
            :data="userTableData"
            border
            class="tableFixed"
            :row-class-name="tableRowClassName"
            :header-cell-style="this.$headerCellStyle"
            :cell-style="this.$cellStyle"
@@ -649,9 +717,10 @@
            <el-table-column
              prop="username"
              label="人员名称"
              show-tooltip-when-overflow
            >
              <template slot-scope="{row}">
                <div v-if="row.isVisible===0">{{ row.username }}</div>
                <el-select
                  v-if="row.isVisible===1"
                  v-model="row.username"
@@ -666,8 +735,25 @@
                    :value="item.usercode"
                  />
                </el-select>
                <div v-else>{{ row.username }}</div>
              </template>
            </el-table-column>
            <el-table-column
              prop="ratio"
              label="分配比例(%)"
              show-tooltip-when-overflow
            >
              <template slot-scope="{row}">
                <el-input
                  v-if="row.isVisible===1||row.isVisible===2"
                  v-model="row.ratio"
                  oninput="value=value.replace(/[^0-9.]/g,'')"
                  placeholder="请输入"
                />
                <div v-else> {{ row.ratio }}</div>
              </template>
            </el-table-column>
            <el-table-column
              prop="RowNum"
              label="操作"
@@ -675,9 +761,10 @@
            >
              <template slot-scope="{row}">
                <div class="operationClass">
                  <el-button v-if="row.isVisible===0" type="text" @click="userDel(row)">删除</el-button>
                  <el-button v-if="row.isVisible===1&&!userIsSave" type="text" @click="userSave(row)">保存</el-button>
                  <el-button v-if="row.isVisible===1" type="text" @click="userCancel(row)">取消</el-button>
                  <el-button v-if="(row.isVisible===1&&!userIsSave)||row.isVisible===2" v-waves type="text" @click="userSave(row)">保存</el-button>
                  <el-button v-if="row.isVisible===1" v-waves type="text" @click="userCancel(row)">取消</el-button>
                  <el-button v-if="row.isVisible===0" v-waves type="text" @click="userDel(row)">删除</el-button>
                  <el-button v-if="row.isVisible===0" v-waves type="text" @click="editRatio(row)">修改比例</el-button>
                </div>
              </template>
            </el-table-column>
@@ -813,6 +900,7 @@
            v-model="dialogForm.badcode"
            style="width: 200px;"
            multiple
            collapse-tags
            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
            placeholder="请选择"
          >
@@ -824,37 +912,82 @@
            />
          </el-select>
        </el-form-item>
        <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">
          <el-select
            v-model="dialogForm.operation"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in OperationArr"
              :key="item.usercode"
              :label="item.username"
              :value="item.usercode"
            />
          </el-select>
        </el-form-item>
        <!--        <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">-->
        <!--          <el-select-->
        <!--            v-model="dialogForm.operation"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in OperationArr"-->
        <!--              :key="item.usercode"-->
        <!--              :label="item.username"-->
        <!--              :value="item.usercode"-->
        <!--            />-->
        <!--          </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>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button @click="dialogVisibleCancel">取 消</el-button>
          <el-button v-if="dialogTitle==='自制开始'" type="primary" @click="dialogVisibleConfirm">开 工</el-button>
          <el-button v-if="dialogTitle==='自制报工'" type="primary" @click="dialogVisibleConfirm">提交/打印</el-button>
          <el-button v-if="dialogTitle==='外协发料'" type="primary" @click="dialogVisibleConfirm">发料</el-button>
          <el-button v-if="dialogTitle==='外协收料'" type="primary" @click="dialogVisibleConfirm">收料/打印</el-button>
          <el-button v-waves @click="dialogVisibleCancel">取 消</el-button>
          <el-button
            v-if="dialogTitle==='自制开始'"
            v-waves
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >开 工</el-button>
          <el-button
            v-if="dialogTitle==='自制报工'&&dialogForm.nextstepname===''"
            v-waves
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >提交/打印</el-button>
          <el-button
            v-if="dialogTitle==='自制报工'&&dialogForm.nextstepname!==''"
            v-waves
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >提交</el-button>
          <el-button
            v-if="dialogTitle==='外协发料'"
            v-waves
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >发料</el-button>
          <el-button
            v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname===''"
            v-waves
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >收料/打印</el-button>
          <el-button
            v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname!==''"
            v-waves
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            type="primary"
            @click="dialogVisibleConfirm"
          >收料</el-button>
        </div>
      </span>
    </el-dialog>
    <!--打印预览页面  小标签-->
    <el-dialog
      v-el-drag-dialog
      title="预览"
      :visible.sync="dialogVisible2"
      width="1140"
@@ -875,7 +1008,9 @@
            >
              <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="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>
@@ -921,14 +1056,15 @@
      </div>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button @click="dialogVisible2 = false">取 消</el-button>
          <el-button v-print="printObj2" type="primary">确 定</el-button>
          <el-button v-waves @click="dialogVisible2 = false">取 消</el-button>
          <el-button v-waves v-print="printObj2" type="primary">确 定</el-button>
        </div>
      </span>
    </el-dialog>
    <!--    不良处理列表对话框-->
    <el-dialog
      v-el-drag-dialog
      title="维修处理"
      :visible.sync="badDialogVisible"
      width="990px"
@@ -971,24 +1107,25 @@
          <div style="width: 200px">{{ badDialogForm.ng_qty }}</div>
        </el-form-item>
        <el-form-item label="维修人员:">
          <el-select
            v-model="badDialogForm.operation"
            style="width: 200px;"
            placeholder="请选择"
          >
            <el-option
              v-for="item in OperationArr"
              :key="item.usercode"
              :label="item.username"
              :value="item.usercode"
            />
          </el-select>
        </el-form-item>
        <!--        注释-->
        <!--        <el-form-item label="维修人员:">-->
        <!--          <el-select-->
        <!--            v-model="badDialogForm.operation"-->
        <!--            style="width: 200px;"-->
        <!--            placeholder="请选择"-->
        <!--          >-->
        <!--            <el-option-->
        <!--              v-for="item in OperationArr"-->
        <!--              :key="item.usercode"-->
        <!--              :label="item.username"-->
        <!--              :value="item.usercode"-->
        <!--            />-->
        <!--          </el-select>-->
        <!--        </el-form-item>-->
      </el-form>
      <div style="margin-bottom:20px">
        <i class="el-icon-s-operation" style="color:#42b983;" /> 不良信息明细:
        <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 不良信息明细:
      </div>
      <div class="elTableDiv">
        <el-table
@@ -1072,11 +1209,11 @@
          >
            <template slot-scope="{row}">
              <div class="operationClass">
                <el-button v-if="row.isVisible===0" type="text" @click="badEdit(row)">编辑</el-button>
                <el-button v-if="row.isVisible===0" type="text" @click="badDel(row)">删除</el-button>
                <el-button v-if="row.isVisible===0" v-waves type="text" @click="badEdit(row)">编辑</el-button>
                <el-button v-if="row.isVisible===0" v-waves type="text" @click="badDel(row)">删除</el-button>
                <el-button v-if="row.isVisible===1" type="text" @click="badSave(row)">确认</el-button>
                <el-button v-if="row.isVisible===1" type="text" @click="badCancel(row)">取消</el-button>
                <el-button v-if="row.isVisible===1" v-waves type="text" @click="badSave(row)">确认</el-button>
                <el-button v-if="row.isVisible===1" v-waves type="text" @click="badCancel(row)">取消</el-button>
              </div>
            </template>
          </el-table-column>
@@ -1085,8 +1222,14 @@
      </div>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button @click="badDialogVisibleCancel">取 消</el-button>
          <el-button type="primary" @click="badDialogVisibleConfirm ">保 存/打 印</el-button>
          <el-button v-waves @click="badDialogVisibleCancel">取 消</el-button>
          <el-button
            v-waves
            type="primary"
            :loading="$store.state.app.buttonIsDisabled"
            :disabled="$store.state.app.buttonIsDisabled"
            @click="badDialogVisibleConfirm "
          >保 存/打 印</el-button>
        </div>
      </span>
    </el-dialog>
@@ -1116,6 +1259,8 @@
import QRCode from 'qrcodejs2'
import { getCookie } from '@/utils/auth'
import { handleDatetime2 } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
@@ -1123,6 +1268,7 @@
  components: {
    Pagination
  },
  directives: { elDragDialog, waves },
  data() {
    const validateName = (rule, value, callback) => {
      if (!value) {
@@ -1196,7 +1342,7 @@
        taskqty: '', // 任务数量
        fqty: '', // 发料数量
        inuser: '', // 收料人员
        inuser: getCookie('navTabId'), // 收料人员
        sqty: '', // 收料数量
        ngqty: '', // 不良数量
        badcode: '', // 不良原因编码
@@ -1209,6 +1355,8 @@
        reportuser: '', // 报工人员
        startqtySum: '', // 不能超过的数值
        reckway: 'group', // 计件方式
        operation: getCookie('navTabId'), // 报工人(收料人)
        remarks: ''// 备注
@@ -1254,6 +1402,9 @@
        ],
        startqty: [
          { required: true, message: '请输入报工数量', trigger: ['blur', 'change'] }
        ],
        operation: [
          { required: true, message: '请选择报工人员', trigger: ['blur', 'change'] }
        ]
      },
      activeName: '',
@@ -1305,7 +1456,8 @@
      badTableDataDialog: [], // 不良对话框table表格
      OperationArr: [], // 人员数组
      sendButtonIsDisabled: false, // 下达按钮是否可点击
      judgeIsScanningArr: []// 判断是否扫码数组
      judgeIsScanningArr: [], // 判断是否扫码数组
      countJudgeIsScanningInput: 0 // 判断扫码框的个数
    }
  },
  watch: {
@@ -1353,7 +1505,16 @@
    this.getMesOrderSelectUserAll() // 获取所有人员
  },
  methods: {
    // 计件方式值改变时
    reckwayChange() {
      this.dialogForm.usergroupcode = ''
      this.dialogForm.operation = ''
      this.userTableData = []
      // console.log(this.$refs.dialogForm, 'log')
      // this.$nextTick(() => {
      //   this.$refs.dialogForm.resetFields()
      // })
    },
    tableRowClassName({ row, rowIndex }) {
      return 'custom-row'
    },
@@ -1468,6 +1629,61 @@
          }, 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) {
@@ -1715,16 +1931,56 @@
        number = number === 0 ? (10 + Math.random()) : number
        item.isVisible = 0
        item.number = number
        // item.ratio = parseFloat((100 / this.userTableData.length).toFixed(2))
      })
      this.ZZuserArr = [...this.ZZuserArr].filter(x => [...this.userTableData].every(y => y.usercode !== x.usercode))
      this.calculatedValue()
      this.$refs.tableDataRef.doLayout()
    },
    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)
      if (value !== total) {
        // let temp = this.userTableData
        // temp[temp.length-1].ratio=temp[temp.length-1].ratio+(total-value)
        this.userTableData[ this.userTableData.length - 1].ratio = parseFloat((this.userTableData[ this.userTableData.length - 1].ratio + (total - value)).toFixed(2))
      }
    },
    // 修改分配比列
    editRatio(row) {
      // console.log(row, 'row')
      this.userTableData.forEach((item, index) => {
        if (item.number === row.number) {
          const number = Math.random() * Math.random()// 作为删除时的标识符
          this.userTableData.splice(index, 1, {
            usercode: row.usercode,
            username: row.username,
            ratio: row.ratio,
            isVisible: 2,
            number: number === 0 ? (10 + Math.random()) : number
          })
        }
      })
    },
    // 用户添加
    userAdd() {
      if (this.userTableData.find(i => i.isVisible === 1)) {
        return this.$message.info('请先保存当前行信息!')
      }
      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 })
      this.userTableData.unshift({ usercode: '', username: '', isVisible: 1, number: number, ratio: 0 })
      this.calculatedValue()
    },
    // 用户列表删除
    userDel(row) {
@@ -1738,12 +1994,17 @@
          this.userTableData.splice(index, 1)
        }
      })
      this.calculatedValue()
    },
    // 用户列表保存
    userSave(row) {
      console.log(row, 123)
      if (row.usercode === '') {
        return this.$message.info('人员名称不能为空!')
      }
      if (row.ratio === '') {
        return this.$message.info('分配比列不能为空!')
      }
      this.ZZuserArr.forEach((item, index) => {
@@ -1806,7 +2067,7 @@
      this.dialogForm.taskqty = '', // 任务数量
      this.dialogForm.fqty = '', // 发料数量
      this.dialogForm.inuser = '', // 收料人员
      this.dialogForm.inuser = getCookie('navTabId'), // 收料人员  默认登录人员
      this.dialogForm.sqty = '', // 收料数量
      this.dialogForm.ngqty = '', // 不良数量
      this.dialogForm.badcode = '', // 不良原因编码
@@ -1820,7 +2081,11 @@
      this.dialogForm.startqtySum = '' // 不能超过的数值
      this.dialogForm.reckway = '' // 计件方式
      this.dialogForm.nextstepcode = '' // 下道工序编码
      this.dialogForm.reckway = 'group'
      this.dialogForm.remarks = '' // 备注
      this.dialogForm.operation = getCookie('navTabId') // 报工人(收料人)
@@ -1851,11 +2116,13 @@
              taskqty: this.dialogForm.planqty, // 任务数量
              fqty: this.dialogForm.fqty // 发料数量
            }
            this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepOut(data).then(res => {
              if (res.code === '200') {
                this.$message.success('发料成功!')
                this.dialogVisible = false
                this.$message.success('发料成功!')
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
              } else {
                this.$message.error('发料失败!')
              }
@@ -1886,16 +2153,18 @@
              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
            }
            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.operation).username)
                  // 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.dialogVisible = false
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
              } else {
                this.$message.error('收料失败!')
              }
@@ -1912,11 +2181,13 @@
              taskqty: this.dialogForm.planqty, // 任务数量
              startqty: this.dialogForm.startqty// 开始数量
            }
            this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepStart(data).then(res => {
              if (res.code === '200') {
                this.$message.success('开工成功!')
                this.dialogVisible = false
                this.$message.success('开工成功!')
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
              } else {
                this.$message.error('开工失败!')
              }
@@ -1927,14 +2198,8 @@
            if (parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
              return this.$message.info('报工数量加不良数量不能大于了未报数量!')
            }
            if (this.userTableData.length < 1) {
            if (this.userTableData.length < 1 && this.dialogForm.reckway === 'group') {
              return this.$message.info('人员列表不能为空!')
            }
            if (parseFloat(this.dialogForm.noputqty) > 0) {
              if (this.dialogForm.badcode.length < 1) {
                return this.$message.info('请选择不良原因!')
              }
            }
            // this.userTableData = [...new Set(this.userTableData)]// 数组去重
            this.userTableData = this.userTableData.filter(item => item.usercode !== '')
@@ -1942,8 +2207,26 @@
            this.userTableData = this.userTableData.filter((currentValue, currentIndex, selfArr) => {
              return selfArr.findIndex(item => item.usercode === currentValue.usercode) === currentIndex
            })
            if (this.dialogForm.reckway === 'group') {
              let sum = 0
              this.userTableData.forEach(item => {
                sum += parseFloat(item.ratio)
              })
              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('请选择不良原因!')
              }
            }
            // console.log(this.userTableData, 1)
            const reportuser = this.userTableData.map(item => item.usercode).join(';')
            // const reportuser = this.userTableData.map(item => item.usercode).join(';')// 主要改的是这里的格式
            console.log(this.dialogForm.operation, 'dialogForm.operation')
            const data = {
              mesordercode: this.dialogForm.wo_code, // 工单编号
              partcode: this.dialogForm.partcode, // 产品编码
@@ -1951,27 +2234,32 @@
              stepcode: this.dialogForm.stepcode, // 工序编码
              eqpcode: this.dialogForm.eqpcode, // 设备编码
              usergroupcode: this.dialogForm.usergroupcode, // 班组编码
              reportuser: reportuser, // 报工人员
              // reportuser: reportuser, // 报工人员
              reportuser: this.dialogForm.reckway === 'group' ? this.userTableData : [{ usercode: this.dialogForm.operation, ratio: 100 }],
              taskqty: this.dialogForm.planqty, // 任务数量
              // startqty: this.dialogForm.startqty, // 开工数量
              startqty: this.dialogForm.reportqty, // 开工数量
              // reportqty: this.dialogForm.reportqty, // 报工数量
              reportqty: this.dialogForm.startqty, // 报工数量
              remarks: this.dialogForm.remarks, // 备注
              reckway: this.dialogForm.reckway, // 计件方式
              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量
              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因
            }
            // console.log(JSON.stringify(data), 'data')
            console.log(data, 'data')
            this.$store.state.app.buttonIsDisabled = true
            SavaMesOrderStepReport(data).then(res => {
              if (res.code === '200') {
                this.dialogVisible = false
                this.$message.success('报工成功!')
                if (this.dialogForm.nextstepcode === '') {
                  this.ZZprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username)
                  this.ZZprint2(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
                  this.dialogVisible2 = true
                }
                this.dialogVisible = false
                this.tabClick()
                this.$store.state.app.buttonIsDisabled = false
              } else {
                this.$message.error('报工失败!')
              }
@@ -2040,6 +2328,7 @@
        if (window.innerHeight < 769) {
          this.tableHeight = this.tableHeight - 50
        }
        this.$refs.tableDataRef.doLayout()
      })
    },
@@ -2056,13 +2345,16 @@
      const data = {
        Data: this.badTableDataDialog
      }
      EditOrderNgStepSeave(data, this.badDialogForm.operation).then(res => {
      this.$store.state.app.buttonIsDisabled = true
      EditOrderNgStepSeave(data, getCookie('navTabId')).then(res => {
        if (res.code === '200' || res.code === '301') {
          this.getBadList()
          this.badDialogVisible = false
          this.badPrint(this.OperationArr.find(item => item.usercode === this.badDialogForm.operation).username)
          this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username)
          this.dialogVisible2 = true
          return this.$message.success('保存成功!')
          this.$message.success('保存成功!')
          this.$store.state.app.buttonIsDisabled = false
        }
      })
    },
@@ -2075,7 +2367,7 @@
      this.qrForm.nextstepname = this.badDialogForm.nextstepname
      this.qrForm.operator = username
      this.qrForm.operatorTime = handleDatetime2(new Date())
      console.log(this.qrForm, 22)
      this.$nextTick(() => {
        this.bindQRCode(this.qrForm.qrvalue)
      })
@@ -2087,7 +2379,7 @@
      this.badTableDataDialog = []
      this.judgeIsScanningArr = []
    },
    async  getMesOrderSelectUserAll() {
    async getMesOrderSelectUserAll() {
      const { data: res } = await MesOrderSelectUser({ usercode: '' })
      this.OperationArr = res
    },
@@ -2370,6 +2662,15 @@
  margin-bottom: 0;
}
.tableFixed {
  ::v-deep .el-table__fixed-right {
    height: 100% !important;
  }
  ::v-deep .el-table__fixed {
    height: 100% !important;
  }
}
</style>
<style>