From dc1879fd0713eed48b2c75af5f29a1085291d276 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 07 五月 2024 14:40:55 +0800
Subject: [PATCH] 1.文件替换
---
src/views/produce/stepReport.vue | 1512 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,509 insertions(+), 3 deletions(-)
diff --git a/src/views/produce/stepReport.vue b/src/views/produce/stepReport.vue
index 42bbb50..b48169f 100644
--- a/src/views/produce/stepReport.vue
+++ b/src/views/produce/stepReport.vue
@@ -1,11 +1,1517 @@
-<template />
+<template>
+ <div>
+ <div class="body" style="padding-top: 10px;" :style="{height:mainHeight+'px'}">
+
+ <div style="position: absolute;right:36px;z-index: 2;top: 13px">
+ <el-button
+ v-if="activeName==='鐢熶骇鍒楄〃'&&tableData.length>0"
+ v-waves
+ icon="el-icon-thumb"
+ type="primary"
+ :disabled="radioSelected===''"
+ @click="report()"
+ >鎶ュ伐
+ </el-button>
+ <el-button
+ v-if="activeName==='澶栧崗鍙戞枡'&&tableData.length>0"
+ v-waves
+ type="primary"
+ icon="el-icon-thumb"
+ :disabled="radioSelected===''"
+ @click="sendOut()"
+ >鍙戞枡
+ </el-button>
+ <el-button
+ v-if="activeName==='澶栧崗鏀舵枡'&&tableData.length>0"
+ v-waves
+ type="primary"
+ icon="el-icon-thumb"
+ :disabled="radioSelected===''"
+ @click="takeIn()"
+ >鏀舵枡
+ </el-button>
+ <el-button
+ v-if="activeName==='涓嶈壇寰呭鐞�'&&tableData.length>0"
+ v-waves
+ type="primary"
+ icon="el-icon-thumb"
+ :disabled="radioSelected===''"
+ @click="handleBad()"
+ >澶勭悊
+ </el-button>
+ </div>
+
+ <div v-if="form.wocode" style="position: absolute;left: 460px;z-index: 2;top: 23px;font-weight: bolder">
+ 褰撳墠宸ュ崟鍙蜂负锛歿{ form.wocode }}
+ </div>
+
+ <el-tabs
+ ref="elTabs"
+ v-model="activeName"
+ type="border-card"
+ @tab-click="tabClick"
+ >
+
+ <el-tab-pane
+ v-for="item in elTabsArr"
+ :key="item.code"
+ :label="item.name"
+ :name="item.name"
+ >
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+
+ <el-form-item label="宸ュ崟鍙�" style=" display: flex;">
+ <el-input
+ v-model="workOrderCurrentValue"
+ :name="'produceCode'+item.code"
+ placeholder="璇锋壂鎻忔垨杈撳叆"
+ style="width: 300px"
+
+ @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+ />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input
+ v-model="form.partcode"
+ placeholder="璇疯緭鍏�"
+ style="width: 200px"
+
+ @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+ />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input
+ v-model="form.partname"
+ placeholder="璇疯緭鍏�"
+
+ style="width: 200px"
+ @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+ />
+ </el-form-item>
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <!-- <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">-->
+ <!-- <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ :key="'tableDataRef'+item.code"
+ class="tableFixed"
+ :data="tableData"
+ :height="tableHeight+50"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:tableHeight+'px'}"
+ highlight-current-row
+ :header-cell-style="headerCellStyle()"
+ :cell-style="cellStyle()"
+ @sort-change="sortChange"
+ @row-click="rowClick"
+ >
+ <el-table-column
+ width="50"
+ fixed
+ >
+ <template slot-scope="{row}">
+ <el-radio
+ v-model="radioSelected"
+ :label="row.id"
+ style="color: transparent;padding-left: 10px;"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ v-if="activeName!=='涓嶈壇寰呭鐞�'"
+ prop="status"
+ show-tooltip-when-overflow
+ label="鐘舵��"
+ sortable="custom"
+ width="80"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.status==='NEW'">鏂拌鍗�</div>
+ <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
+ <div v-if="row.status==='START'">寮�宸�</div>
+ <div v-if="row.status==='CLOSED'">瀹屽伐</div>
+ <div v-if="row.status==='NOSCHED'">寰呮帓绋�</div>
+ <div v-if="row.status==='SCHED'">宸叉帓绋�</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟鍙�"
+ min-width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ min-width="110"
+ sortable="custom"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="partname"
+ min-width="110"
+ show-tooltip-when-overflow
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ min-width="110"
+ show-tooltip-when-overflow
+ label="瑙勬牸鍨嬪彿"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.partspec ? row.partspec : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ min-width="110"
+ show-tooltip-when-overflow
+ label="杞﹂棿鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ width="120"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ sortable="custom"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'"
+ prop="fqty"
+ show-tooltip-when-overflow
+ label="宸插彂鏂欐暟閲�"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="good_qty"
+ show-tooltip-when-overflow
+ :label="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'?'宸叉敹鏂欐暟閲�':'鍚堟牸鏁伴噺'"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ width="120"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ width="120"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ width="120"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button v-if="activeName==='鐢熶骇鍒楄〃'" v-waves icon="el-icon-thumb" type="text" @click="report(row)">
+ 鎶ュ伐
+ </el-button>
+ <el-button
+ v-if="activeName==='澶栧崗鍙戞枡'"
+ v-waves
+ icon="el-icon-thumb"
+ type="text"
+ @click="sendOut(row)"
+ >鍙戞枡
+ </el-button>
+ <el-button v-if="activeName==='澶栧崗鏀舵枡'" v-waves icon="el-icon-thumb" type="text" @click="takeIn(row)">
+ 鏀舵枡
+ </el-button>
+ <el-button
+ v-if="activeName==='涓嶈壇寰呭鐞�'"
+ v-waves
+ icon="el-icon-thumb"
+ type="text"
+ @click="handleBad(row)"
+ >澶勭悊
+ </el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="search"
+ />
+ </el-tab-pane>
+
+ </el-tabs>
+
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="dialogTitle"
+ :visible.sync="dialogVisible"
+ width="1160px"
+ :close-on-click-modal="false"
+ :top="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'? '6vh':'15vh'"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
+ <!-- <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'||activeName==='涓嶈壇寰呭鐞�'" content-position="left">鍩烘湰淇℃伅</el-divider>-->
+ <el-divider v-if="activeName==='鐢熶骇鍒楄〃'" content-position="left">鎶ュ伐淇℃伅</el-divider>
+ <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鏀舵枡淇℃伅</el-divider>
+ <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">寰呭鐞嗕俊鎭�</el-divider>
+ <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.wo_code }}</div>
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.partnumber }}</div>
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.partname }}</div>
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.partspec ? dialogForm.partspec : '/' }}</div>
+ </el-form-item>
+ <el-form-item label="褰撳墠宸ュ簭" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.stepname }}</div>
+ </el-form-item>
+ <el-form-item label="涓嬮亾宸ュ簭" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.nextstepname ? dialogForm.nextstepname : '/' }}</div>
+ </el-form-item>
+ <el-form-item label="浠诲姟鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.planqty }}</div>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="鍚堟牸鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.noreportqty }}</div>
+ </el-form-item>
+ <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.noputqty }}</div>
+ </el-form-item>
+
+ <el-form-item
+ v-if="activeName!=='涓嶈壇寰呭鐞�'"
+ :label="activeName==='鐢熶骇鍒楄〃'? '鏈姤/宸叉姤':(activeName==='澶栧崗鍙戞枡'?'鏈彂/宸插彂':'鏈敹/宸叉敹')"
+ class="dialogFormItem"
+ >
+ <div class="dialogFormItemDiv">{{ dialogForm.noreportqty + '/' + dialogForm.reportqty }}</div>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv" style="color:red;">{{ dialogForm.noputqty }}</div>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="鎶ュ伐璁惧" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.eqpcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ clearable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in eqpArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="璁′欢鏂瑰紡" class="dialogFormItem">
+ <el-radio-group
+ v-model="dialogForm.reckway"
+ style="width: 200px;"
+ @change="reckwayChange"
+ >
+ <el-radio label="person">涓汉</el-radio>
+ <el-radio label="group">鐝粍</el-radio>
+ </el-radio-group>
+ </el-form-item>
+
+ <el-form-item
+ v-if="activeName==='鐢熶骇鍒楄〃'"
+ :prop="dialogForm.reckway==='group'?'usergroupcode':''"
+ label="鎶ュ伐鐝粍"
+ class="dialogFormItem"
+ >
+ <el-select
+ v-model="dialogForm.usergroupcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :disabled="dialogForm.reckway!=='group'"
+ :popper-append-to-body="false"
+ @change="usergroupChange"
+ >
+ <el-option
+ v-for="item in usergroupArr"
+ :key="item.usergroupcode"
+ :label="item.usergroupname"
+ :value="item.usergroupcode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="reportuser" label="鎶ュ伐浜哄憳" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.reportuser"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ multiple
+ collapse-tags
+ :multiple-limit="dialogForm.reckway==='group'?0:1"
+ :disabled="dialogForm.reckway==='group'&&dialogForm.usergroupcode===''"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in reportuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="startqty" label="鍚堟牸鏁伴噺" class="dialogFormItem">
+ <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'" prop="wxcode" label="澶栧崗渚涙柟" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.wxcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in wxArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="outuser" label="鍙戞枡浜哄憳" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.outuser"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in reportuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="fqty" label="鍙戞枡鏁伴噺" class="dialogFormItem">
+ <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="inuser" label="鏀舵枡浜哄憳" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.inuser"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in reportuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="sqty" label="鏀舵枡鏁伴噺" class="dialogFormItem">
+ <el-input v-model="dialogForm.sqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" content-position="left">涓嶈壇鏄庣粏淇℃伅</el-divider>
+ <el-button
+ v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
+ v-waves
+ type="primary"
+ icon="el-icon-circle-plus-outline"
+ @click="addDefect"
+ >鏂板
+ </el-button>
+ <el-table
+ v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
+ ref="defectTableDataRef"
+ key="defectTableDataKey"
+ :data="defectTableData"
+ border
+ row-class-name="custom-row"
+ height="200"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ align="center"
+ width="50"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="缂洪櫡缂栫爜/鍚嶇О"
+ align="center"
+ min-width="450"
+ >
+ <template slot-scope="{row}">
+ <el-select
+ v-model="row.code"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨"
+ multiple
+ filterable
+ >
+ <!-- collapse-tags-->
+ <el-option
+ v-for="item in defectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="badqty"
+ label="涓嶈壇鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.badqty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ @change="badqtyChange"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="50"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-left: 7px;"
+ @click="defectDel(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鍙敹鏂欎緵搴斿晢</el-divider>
+ <div
+ v-for="(item,index) in dialogForm.list"
+ v-if="item.fqty>0"
+ :key="item.name"
+ style="display: flex;line-height: 26px;height: 26px;margin-left:30px;align-items: center"
+ >
+ <div
+ style="color: #fff;width: 22px;height: 22px;display: flex;justify-content: center;align-items: center;border-radius: 50%"
+ :style="{backgroundColor:$store.state.settings.theme}"
+ >{{ index + 1 }}
+ </div>
+ <div style="margin-left:30px;width: 160px;" class="ellipsis">
+ {{ item.tp }}
+ </div>
+ <div style="margin-left:30px;">
+ 鍙敹鏁伴噺锛歿{ item.acceptQty }}
+ </div>
+ </div>
+
+ <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">涓嶈壇淇℃伅鏄庣粏</el-divider>
+ <el-table
+ v-if="activeName==='涓嶈壇寰呭鐞�'"
+ ref="badTableDataDataRef"
+ key="badTableDataDataKey"
+ :data="badTableData"
+ border
+ row-class-name="custom-row"
+ height="300"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ align="center"
+ width="50"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="step_code"-->
+ <!-- label="宸ュ簭缂栫爜"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- align="center"-->
+ <!-- />-->
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="report_qty"
+ label="鍚堟牸鏁伴噺"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="defect_name"
+ label="涓嶈壇鍘熷洜"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="repair_qty"
+ label="缁翠慨鍚堟牸鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.repair_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.laborbad_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.materielbad_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column-->
+ <!-- prop="badqty"-->
+ <!-- label="涓嶈壇鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- align="center"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-input-->
+ <!-- v-model="row.badqty"-->
+ <!-- placeholder="璇疯緭鍏ユ暟閲�"-->
+ <!-- oninput="value=value.replace(/[^0-9]/g,'')"-->
+ <!-- style="width: 100%"-->
+ <!-- @click.stop=""-->
+ <!-- @change="badqtyChange"-->
+ <!-- />-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="50"-->
+ <!-- align="center"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-delete"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="margin-left: 7px;"-->
+ <!-- @click="defectDel(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ </el-table>
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import $ from 'jquery'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ EditOrderNgStepSeave,
+ MesOrderNgStepSearch,
+ MesOrderNgSubStepSearch,
+ MesOrderStepSearch, MesOrderStepStart,
+ MesOrderWxStepSearch, SavaMesOrderStepIn, SavaMesOrderStepOut, SavaMesOrderStepReport
+} from '@/api/WorkOrder'
+import {
+ CustomerPermissions,
+ DefectPermissions,
+ EqpPermissions,
+ GroupsPermissions,
+ GroupsPersonPermissions,
+ PersonPermissions, PrentOrganizationNoCompany
+} from '@/api/GeneralBasicData'
+import { nanoid } from 'nanoid'
+import { LabelBarCode } from '@/api/systemSetting'
+import { getCookie } from '@/utils/auth'
+
export default {
- name: 'StepReport'
+ name: 'SCKBG',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟鍙�
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ activeName: '鐢熶骇鍒楄〃',
+ elTabsArr: [
+ { code: 'ZZ', name: '鐢熶骇鍒楄〃' },
+ { code: 'OUT', name: '澶栧崗鍙戞枡' },
+ { code: 'IN', name: '澶栧崗鏀舵枡' },
+ { code: 'BAD', name: '涓嶈壇寰呭鐞�' }
+ ],
+
+ radioSelected: '', // 澶氶�夋閫変腑鍊�
+
+ dialogVisible: false,
+ dialogTitle: '', // 瀵硅瘽妗嗗皬鏍囬
+
+ dialogForm: {
+ 'wo_code': '',
+ 'partnumber': '',
+ 'partname': '',
+ 'partspec': '',
+ 'seq': '',
+ 'stepcode': '',
+ 'stepname': '',
+ 'stepprice': '', // 宸ュ簭鍗曚环
+ 'nextstepcode': '',
+ 'nextstepname': '',
+ 'nextstepprice': '',
+ 'stepdesc': '',
+ 'planqty': 0,
+ 'startqty': 0, //
+ 'noreportqty': 0, // 鏈姤鏁伴噺
+ 'reportqty': 0, // 宸叉姤鏁伴噺
+ 'noputqty': 0, // 涓嶈壇鏁伴噺
+ 'wkshopcode': '',
+ 'wkshopname': '',
+ 'eqpcode': '',
+ 'eqpname': '',
+
+ remarks: '', // 澶囨敞
+ inbarcode: '', // 鍏ュ簱鏉$爜
+ defectlist: '', // 涓嶈壇姹囨��
+ reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+ usergroupcode: '', // 鐝粍缂栫爜
+ reportuser: [], // 鎶ュ伐浜哄憳
+
+ wxcode: '',
+ outuser: '',
+ fqty: '',
+ inuser: '',
+ sqty: '',
+ list: ''
+
+ },
+ dialogFormRules: {
+ eqpcode: [
+ { required: true, message: '璇烽�夋嫨鎶ュ伐璁惧', trigger: ['blur', 'change'] }
+ ],
+ usergroupcode: [
+ { required: true, message: '璇烽�夋嫨鎶ュ伐鐝粍', trigger: ['blur', 'change'] }
+ ],
+ reportuser: [
+ { required: true, message: '璇烽�夋嫨鎶ュ伐浜哄憳', trigger: ['blur', 'change'] }
+ ],
+ startqty: [
+ { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] }
+ ],
+ wxcode: [
+ { required: true, message: '璇烽�夋嫨澶栧崗渚涙柟', trigger: ['blur', 'change'] }
+ ],
+ outuser: [
+ { required: true, message: '璇烽�夋嫨鍙戞枡浜哄憳', trigger: ['blur', 'change'] }
+ ],
+ inuser: [
+ { required: true, message: '璇烽�夋嫨鏀舵枡浜哄憳', trigger: ['blur', 'change'] }
+ ],
+ fqty: [
+ { required: true, message: '璇疯緭鍏ュ彂鏂欐暟閲�', trigger: ['blur', 'change'] }
+ ],
+ sqty: [
+ { required: true, message: '璇疯緭鍏ユ敹鏂欐暟閲�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ reckwayArr: [// 鎶ュ伐绫诲瀷
+ { code: 'group', name: '鐝粍' },
+ { code: 'person', name: '涓汉' }
+ ],
+ reportuserArr: [], // 鎶ュ伐浜哄憳
+ usergroupArr: [], // 鎶ュ伐鐝粍
+ eqpArr: [], // 鎶ュ伐璁惧
+ defectArr: [], // 涓嶈壇缂洪櫡
+ wxArr: [], // 寰�鏉ュ崟浣嶄笅鎷�
+
+ defectTableData: [],
+ badTableData: [],
+ workOrderCurrentValue: ''
+
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.tabClick()
+
+ this.getAllSelectArr()
+ },
+ methods: {
+ async getAllSelectArr() {
+ const { data: res1 } = await GroupsPermissions()// 鐝粍
+ this.usergroupArr = res1
+
+ const { data: res2 } = await PersonPermissions() // 浜哄憳
+ this.reportuserArr = res2
+
+ const { data: res3 } = await DefectPermissions() // 缂洪櫡
+ this.defectArr = res3
+
+ const { data: res4 } = await EqpPermissions() // 璁惧
+ this.eqpArr = res4
+
+ const { data: res5 } = await CustomerPermissions() // 寰�鏉ュ崟浣�
+ this.wxArr = res5
+
+ const { data: res6 } = await PrentOrganizationNoCompany()// 鏃犲叕鍙哥殑缁勭粐涓嬫媺
+ this.wkshopcodeArr = res6
+ },
+ tabClick() {
+ let belong
+ switch (this.activeName) {
+ case '鐢熶骇鍒楄〃':
+ belong = 'produceCodeZZ'
+ this.dialogTitle = '鎶ュ伐'
+ break
+ case '澶栧崗鍙戞枡':
+ belong = 'produceCodeOUT'
+ this.dialogTitle = '鍙戞枡'
+ break
+ case '澶栧崗鏀舵枡':
+ belong = 'produceCodeIN'
+ this.dialogTitle = '鏀舵枡'
+ break
+ case '涓嶈壇寰呭鐞�':
+ belong = 'produceCodeBAD'
+ this.dialogTitle = '涓嶈壇澶勭悊'
+ break
+ }
+ this.enterNative(this.form.wocode, belong)
+
+ this.radioSelected = ''
+ },
+ enterNative(val, belong) {
+ if (belong === 'produceCodeZZ') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeZZ\']')[0].focus()
+ })
+ }
+ if (belong === 'produceCodeOUT') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeOUT\']')[0].focus()
+ })
+ }
+ if (belong === 'produceCodeIN') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeIN\']')[0].focus()
+ })
+ }
+ if (belong === 'produceCodeBAD') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeBAD\']')[0].focus()
+ })
+ }
+ this.search()
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.search()
+ },
+ // 鏌ヨ
+ async search() {
+ this.form.wocode = this.workOrderCurrentValue
+ this.workOrderCurrentValue = ''
+ if (this.activeName === '鐢熶骇鍒楄〃') {
+ const res = await MesOrderStepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ }
+ if (this.activeName === '澶栧崗鍙戞枡' || this.activeName === '澶栧崗鏀舵枡') {
+ const res = await MesOrderWxStepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ }
+
+ if (this.activeName === '涓嶈壇寰呭鐞�') {
+ const res = await MesOrderNgStepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ }
+ },
+ // 鎶ュ伐
+ report(row) {
+ if (row) {
+ this.getMesOrderStepStart('ZZ', '', row.wo_code, row.stepcode)
+ } else {
+ const temp = this.tableData.find(i => i.id === this.radioSelected)
+ this.getMesOrderStepStart('ZZ', '', temp.wo_code, temp.stepcode)
+ }
+ },
+ // 鍙戞枡
+ sendOut(row) {
+ if (row) {
+ this.getMesOrderStepStart('WX', 'OUT', row.wo_code, row.stepcode)
+ } else {
+ const temp = this.tableData.find(i => i.id === this.radioSelected)
+ this.getMesOrderStepStart('WX', 'OUT', temp.wo_code, temp.stepcode)
+ }
+ },
+ // 鏀舵枡
+ takeIn(row) {
+ if (row) {
+ this.getMesOrderStepStart('WX', 'IN', row.wo_code, row.stepcode)
+ } else {
+ const temp = this.tableData.find(i => i.id === this.radioSelected)
+ this.getMesOrderStepStart('WX', 'IN', temp.wo_code, temp.stepcode)
+ }
+ },
+ // 涓嶈壇澶勭悊 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
+ async handleBad(row) {
+ const data = {
+ wocode: row ? row.wo_code : this.tableData.find(i => i.id === this.radioSelected).wo_code,
+ stepcode: row ? row.stepcode : this.tableData.find(i => i.id === this.radioSelected).stepcode
+ }
+ let res = await MesOrderNgSubStepSearch(data)
+ if (res.code === '200') {
+ res = res.data
+ this.dialogForm.wo_code = res.data1.wo_code
+ this.dialogForm.partnumber = res.data1.partnumber
+ this.dialogForm.partname = res.data1.partname
+ this.dialogForm.partspec = res.data1.partspec
+ this.dialogForm.seq = res.data1.seq
+ this.dialogForm.stepcode = res.data1.stepcode
+ this.dialogForm.stepname = res.data1.stepname
+ this.dialogForm.stepprice = res.data1.stepprice
+ this.dialogForm.nextstepcode = res.data1.nextstepcode
+ this.dialogForm.nextstepname = res.data1.nextstepname
+ this.dialogForm.nextstepprice = res.data1.nextstepprice
+ this.dialogForm.stepdesc = res.data1.stepdesc
+ this.dialogForm.planqty = res.data1.planqty
+ this.dialogForm.startqty = res.data1.startqty
+ this.dialogForm.noreportqty = res.data1.noreportqty // 鍚堟牸鏁伴噺
+ this.dialogForm.reportqty = res.data1.reportqty
+ this.dialogForm.noputqty = res.data1.noputqty // 涓嶈壇鏁伴噺
+ this.dialogForm.wkshopcode = res.data1.wkshopcode
+ this.dialogForm.wkshopname = res.data1.wkshopname
+ this.dialogForm.eqpcode = res.data1.eqpcode
+ this.dialogForm.eqpname = res.data1.eqpname
+
+ res.data2.forEach(item => {
+ item.repair_qty = 0
+ item.laborbad_qty = 0
+ item.materielbad_qty = 0
+ })
+
+ this.badTableData = res.data2
+
+ this.dialogVisible = true
+ }
+ },
+ // 鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
+ async getMesOrderStepStart(OperType, SelectType, wocode, stepcode) {
+ const data = {
+ OperType, SelectType, wocode, stepcode
+ }
+ let res = await MesOrderStepStart(data)
+ if (res.code === '200') {
+ res = res.data
+ this.dialogForm.wo_code = res.wo_code
+ this.dialogForm.partnumber = res.partnumber
+ this.dialogForm.partname = res.partname
+ this.dialogForm.partspec = res.partspec
+ this.dialogForm.seq = res.seq
+ this.dialogForm.stepcode = res.stepcode
+ this.dialogForm.stepname = res.stepname
+ this.dialogForm.stepprice = res.stepprice
+ this.dialogForm.nextstepcode = res.nextstepcode
+ this.dialogForm.nextstepname = res.nextstepname
+ this.dialogForm.nextstepprice = res.nextstepprice
+ this.dialogForm.stepdesc = res.stepdesc
+ this.dialogForm.planqty = res.planqty
+ this.dialogForm.startqty = res.startqty
+ this.dialogForm.noreportqty = res.noreportqty// 鏈姤鏁伴噺
+ this.dialogForm.reportqty = res.reportqty // 宸叉姤鏁伴噺
+ this.dialogForm.noputqty = res.noputqty
+ this.dialogForm.wkshopcode = res.wkshopcode
+ this.dialogForm.wkshopname = res.wkshopname
+ this.dialogForm.eqpcode = res.eqpcode
+ this.dialogForm.eqpname = res.eqpname
+
+ if (this.activeName === '澶栧崗鏀舵枡') {
+ this.dialogForm.list = []
+ res.list.forEach(i => {
+ i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty) - parseFloat(i.materielbad_qty)
+ if (i.acceptQty > 0) {
+ this.dialogForm.list.push(i)
+ }
+ })
+ }
+
+ // this.dialogForm.list = res.list
+
+ this.dialogVisible = true
+ }
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ 'wo_code': '',
+ 'partnumber': '',
+ 'partname': '',
+ 'partspec': '',
+ 'seq': '',
+ 'stepcode': '',
+ 'stepname': '',
+ 'stepprice': '', // 宸ュ簭鍗曚环
+ 'nextstepcode': '',
+ 'nextstepname': '',
+ 'nextstepprice': '',
+ 'stepdesc': '',
+ 'planqty': 0,
+ 'startqty': 0, //
+ 'noreportqty': 0, // 鏈姤鏁伴噺
+ 'reportqty': 0, // 宸叉姤鏁伴噺
+ 'noputqty': 0, // 涓嶈壇鏁伴噺
+ 'wkshopcode': '',
+ 'wkshopname': '',
+ 'eqpcode': '',
+ 'eqpname': '',
+
+ wxcode: '',
+ outuser: '',
+ fqty: '',
+ inuser: '',
+ sqty: '',
+ list: '',
+
+ remarks: '', // 澶囨敞
+ inbarcode: '', // 鍏ュ簱鏉$爜
+ defectlist: '', // 涓嶈壇姹囨��
+ reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+ usergroupcode: '', // 鐝粍缂栫爜
+ reportuser: [] // 鎶ュ伐浜哄憳
+
+ }
+
+ this.defectTableData = []
+ this.badTableData = []
+
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ this.tabClick()
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(async valid => {
+ if (valid) {
+ if (this.activeName === '鐢熶骇鍒楄〃') {
+ if (this.defectTableData.find(i => i.code.length === 0)) {
+ return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+ return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+ }
+
+ if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
+ return this.$message.info('鍚堟牸鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鏈姤鏁伴噺!')
+ }
+ let inbarcode = ''
+ if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
+ const data1 = {
+ rightcode: getCookie('ruleCode'),
+ partcode: this.dialogForm.partnumber,
+ qty: this.dialogForm.startqty,
+ onelabqty: this.dialogForm.startqty
+ }
+
+ const res1 = await LabelBarCode(data1)
+ inbarcode = res1.data[0].labcode
+ }
+
+ const defectlist = []
+ this.defectTableData.forEach(i => {
+ defectlist.push({
+ defect_code: i.code.join(','),
+ badqty: i.badqty
+ })
+ })
+ const data = {
+ mesordercode: this.dialogForm.wo_code,
+ partcode: this.dialogForm.partnumber,
+ stepseq: this.dialogForm.seq,
+ stepcode: this.dialogForm.stepcode,
+ stepprice: this.dialogForm.stepprice,
+ eqpcode: this.dialogForm.eqpcode,
+ inbarcode,
+ reckway: this.dialogForm.reckway,
+ usergroupcode: this.dialogForm.usergroupcode,
+ reportuser: this.dialogForm.reportuser.join(','),
+ taskqty: this.dialogForm.planqty,
+ // startqty: this.dialogForm.startqty,
+ // reportqty: this.dialogForm.reportqty,
+
+ startqty: this.dialogForm.startqty,
+ reportqty: this.dialogForm.startqty, // 鎶ュ伐鏁伴噺
+
+ defectlist,
+ remarks: ''
+ }
+ // console.log(JSON.parse(JSON.stringify(this.defectTableData)))
+ // console.log(JSON.parse(JSON.stringify(data)))
+
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await SavaMesOrderStepReport(data)
+ if (res.code === '200') {
+ this.$notify.success('鎶ュ伐鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鎶ュ伐澶辫触锛�')
+ }
+ }
+
+ if (this.activeName === '澶栧崗鍙戞枡') {
+ if (parseFloat(this.dialogForm.fqty) < 1) {
+ return this.$message.info('鍙戞枡鏁伴噺涓嶈兘涓洪浂锛�')
+ }
+ if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) {
+ return this.$message.info('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺!')
+ }
+ const data = {
+ mesordercode: this.dialogForm.wo_code,
+ partcode: this.dialogForm.partnumber,
+ stepseq: this.dialogForm.seq,
+ stepcode: this.dialogForm.stepcode,
+
+ wxcode: this.dialogForm.wxcode,
+ outuser: this.dialogForm.outuser,
+ taskqty: this.dialogForm.planqty,
+ fqty: this.dialogForm.fqty
+ }
+ // console.log(JSON.stringify(data))
+
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await SavaMesOrderStepOut(data)
+ if (res.code === '200') {
+ this.$notify.success('鍙戞枡鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鍙戞枡澶辫触锛�')
+ }
+ }
+
+ if (this.activeName === '澶栧崗鏀舵枡') {
+ if (this.defectTableData.find(i => i.code.length === 0)) {
+ return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+ return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+ }
+
+ if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
+ return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鍙敹鏁伴噺!')
+ }
+
+ if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode)) {
+ if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode).acceptQty < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
+ return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庤渚涘簲鍟嗗彲鏀舵暟閲�!')
+ }
+ } else {
+ return this.$message.info('姝や緵搴斿晢鏃犲彲鏀舵暟閲�!')
+ }
+
+ let inbarcode = ''
+ if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
+ const data1 = {
+ rightcode: getCookie('ruleCode'),
+ partcode: this.dialogForm.partnumber,
+ qty: this.dialogForm.startqty,
+ onelabqty: this.dialogForm.startqty
+ }
+
+ const res1 = await LabelBarCode(data1)
+ inbarcode = res1.data[0].labcode
+ }
+ const defectlist = []
+ this.defectTableData.forEach(i => {
+ defectlist.push({
+ defect_code: i.code.join(','),
+ badqty: i.badqty
+ })
+ })
+
+ const data = {
+ mesordercode: this.dialogForm.wo_code,
+ partcode: this.dialogForm.partnumber,
+ stepseq: this.dialogForm.seq,
+ stepcode: this.dialogForm.stepcode,
+
+ wxcode: this.dialogForm.wxcode,
+ inbarcode,
+ inuser: this.dialogForm.inuser,
+ taskqty: this.dialogForm.planqty,
+ sqty: this.dialogForm.sqty,
+ defectlist,
+ remarks: ''
+ }
+ // console.log(JSON.parse(JSON.stringify(data)), 1)
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await SavaMesOrderStepIn(data)
+ if (res.code === '200') {
+ this.$notify.success('鏀舵枡鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鏀舵枡澶辫触锛�')
+ }
+ }
+
+ if (this.activeName === '涓嶈壇寰呭鐞�') {
+ let flag = false
+ this.badTableData.forEach(i => {
+ if (parseFloat(i.repair_qty) + parseFloat(i.laborbad_qty) + parseFloat(i.materielbad_qty) > parseFloat(i.ng_qty)) {
+ flag = true
+ }
+ })
+ if (flag) {
+ return this.$message.info('缁翠慨鍚堟牸鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺涓嶈兘澶т簬涓嶈壇鏁伴噺锛�')
+ }
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await EditOrderNgStepSeave({ Data: this.badTableData })
+ if (res.code === '200') {
+ this.$notify.success('鎻愪氦鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鎻愪氦澶辫触锛�')
+ }
+ }
+ }
+ })
+ },
+ // 缂洪櫡鏂板
+ addDefect() {
+ if (this.defectTableData.find(i => i.code.length === 0)) {
+ return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+ return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+ }
+
+ this.defectTableData.push({
+ uuid: nanoid(), code: [], badqty: ''
+ })
+ },
+ // 缂洪櫡鍒犻櫎
+ defectDel(row) {
+ this.defectTableData = this.defectTableData.filter(i => i.uuid !== row.uuid)
+
+ this.dialogForm.noputqty = 0
+ this.defectTableData.forEach(i => {
+ this.dialogForm.noputqty += parseFloat(i.badqty)
+ })
+ },
+ badqtyChange(val) {
+ this.dialogForm.noputqty = 0
+ this.defectTableData.forEach(i => {
+ this.dialogForm.noputqty += parseFloat(i.badqty)
+ })
+ },
+ reckwayChange(val) {
+ // console.log(val)
+ this.dialogForm.usergroupcode = ''
+ this.dialogForm.reportuser = []
+ },
+ async usergroupChange(val) {
+ const { data: res } = await GroupsPersonPermissions({ groupcode: val })
+ this.dialogForm.reportuser = res[0].usercode_list ? res[0].usercode_list.split(',') : []
+ },
+ rowClick(row, event, column) {
+ this.radioSelected = row.id
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 275
+ // this.$refs.tableDataRef.doLayout()
+ })
+ },
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.workOrderCurrentValue = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.search()
+ },
+
+ headerCellStyle() {
+ return this.$headerCellStyle
+ },
+ cellStyle() {
+ return this.$cellStyle
+ }
+ }
}
</script>
+<style lang="scss" scoped>
-<style scoped>
+::v-deep .elTableDiv .el-radio__label {
+ display: none !important;
+}
+
+.dialogFormItem {
+ margin: 0 10px 0 0;
+}
+
+.dialogFormItemDiv {
+ width: 200px;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-dialog .el-form-item__label {
+ font-weight: lighter !important;
+}
+
+::v-deep .el-dialog .el-divider__text {
+ font-weight: bolder !important;
+}
</style>
--
Gitblit v1.9.3