From c34f771c22b4650c858b7d468ab00541a693bb4f Mon Sep 17 00:00:00 2001 From: 小小儁爺 <1694218219@qq.com> Date: 星期三, 05 三月 2025 10:51:53 +0800 Subject: [PATCH] 1.生产工单中 新增批量修改功能 --- src/views/workOrder/workOrderSend.vue | 6963 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 3,514 insertions(+), 3,449 deletions(-) diff --git a/src/views/workOrder/workOrderSend.vue b/src/views/workOrder/workOrderSend.vue index 1ef759f..131a0dc 100644 --- a/src/views/workOrder/workOrderSend.vue +++ b/src/views/workOrder/workOrderSend.vue @@ -1,3449 +1,3514 @@ -<template> - <div> - <div class="body" :style="{height:mainHeight+'px'}"> - - <!-- <div class="bodyTopButtonGroup" style="justify-content: space-between">--> - <!-- <div style="display: flex">--> - <!-- <!– <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>–>--> - <!-- <!– <el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>–>--> - <!-- </div>--> - - <!-- <!– <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>–>--> - <!-- </div>--> - - <div class="bodyTopFormGroup" style="margin-top: 10px;"> - <el-form - ref="form" - :model="form" - label-width="100px" - inline - style="display: flex;" - > - <div class="elForm"> - <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-select - v-model="form.mesorderstus" - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - disabled - filterable - @change="erporderstusChange" - > - <el-option - v-for="item in erporderstusArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;"> - <el-input v-model="form.mesordercode" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="婧愬崟鍗曞彿" style="display: flex;"> - <el-input v-model="form.sourceorder" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="閿�鍞鍗�" style="display: flex;"> - <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="鍗曟嵁绫诲瀷" style=" display: flex;"> - <el-select - v-model="form.ordertype" - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - > - <!-- @change="mesordertypeChange"--> - <el-option - v-for="item in ordertypeArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;"> - <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;"> - <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;"> - <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;"> - <el-input v-model="form.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandForm" label="鍒涘缓鏃堕棿" style=" display: flex;"> - <!-- <el-date-picker--> - <!-- v-model="form.createdate"--> - <!-- type="daterange"--> - <!-- :clearable="false"--> - <!-- range-separator="~"--> - <!-- start-placeholder="寮�濮嬫棩鏈�"--> - <!-- end-placeholder="缁撴潫鏃ユ湡"--> - <!-- size="mini"--> - <!-- />--> - <el-date-picker - v-model="form.createdate" - type="date" - size="mini" - :clearable="false" - class="dateMini" - format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - /> - </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" - > - <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" - class="tableFixed" - :data="tableData" - :height="isExpandForm?tableHeight:(tableHeight+80)+'px'" - border - :summary-method="getSummaries" - show-summary - :row-class-name="tableRowClassName" - :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - @sort-change="sortChange" - @selection-change="handleSelectionChange" - > - <!-- @row-click="rowClick"--> - <!-- <el-table-column--> - <!-- type="selection"--> - <!-- width="50"--> - <!-- :selectable="selected"--> - <!-- />--> - <el-table-column - prop="rowNum" - width="50" - label="搴忓彿" - fixed - /> - <el-table-column - prop="status" - label="宸ュ崟鐘舵��" - sortable="custom" - width="110" - show-tooltip-when-overflow - > - <template slot-scope="{row}"> - <div v-if="row.status==='NEW'">鏂板伐鍗�</div> - <!-- <div v-if="row.status==='CREATING'">鎵ц涓�</div>--> - <!-- <div v-if="row.status==='CREATED'">宸插叧闂�</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="宸ュ崟缂栧彿" - show-tooltip-when-overflow - sortable="custom" - min-width="160" - /> - <el-table-column - prop="m_po" - label="婧愬崟鍗曞彿" - sortable="custom" - show-tooltip-when-overflow - min-width="160" - > - <template slot-scope="{row}"> - <div v-if="row.m_po">{{ row.m_po }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="saleOrderCode" - label="閿�鍞鍗�" - sortable="custom" - show-tooltip-when-overflow - min-width="160" - > - <template slot-scope="{row}"> - <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="wotype" - label="鍗曟嵁绫诲瀷" - sortable="custom" - show-tooltip-when-overflow - min-width="120" - > - <template slot-scope="{row}"> - <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div> - <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="partcode" - label="浜у搧缂栫爜" - show-tooltip-when-overflow - sortable="custom" - min-width="120" - /> - <el-table-column - prop="partname" - min-width="150" - label="浜у搧鍚嶇О" - show-tooltip-when-overflow - sortable="custom" - /> - <el-table-column - prop="partspec" - label="浜у搧瑙勬牸" - sortable="custom" - width="110" - show-tooltip-when-overflow - > - <template slot-scope="{row}"> - <div v-if="row.partspec">{{ row.partspec }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="plan_qty" - label="宸ュ崟鏁�" - sortable="custom" - show-tooltip-when-overflow - width="100" - /> - <el-table-column - prop="wkshp_name" - label="鐢熶骇杞﹂棿" - show-tooltip-when-overflow - sortable="custom" - width="120" - > - <template slot-scope="{row}"> - <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="saleOrderDeliveryDate" - label="棰勮浜や粯鏃ユ湡" - sortable="custom" - width="130" - > - <template slot-scope="{row}"> - <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <!-- <el-table-column--> - <!-- prop="data_sources"--> - <!-- show-tooltip-when-overflow--> - <!-- label="鏁版嵁鏉ユ簮"--> - <!-- sortable="custom"--> - <!-- width="120"--> - <!-- />--> - - <el-table-column - prop="lm_user" - show-tooltip-when-overflow - label="鍒涘缓浜哄憳" - sortable="custom" - width="120" - /> - <el-table-column - prop="lm_date" - label="鍒涘缓鏃堕棿" - show-tooltip-when-overflow - width="160" - sortable="custom" - /> - <el-table-column - label="鎿嶄綔" - width="120" - fixed="right" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <!-- <el-tooltip class="item" effect="dark" content="淇敼" placement="top">--> - <!-- <i--> - <!-- class="el-icon-edit-outline"--> - <!-- :style="{color:$store.state.settings.theme}"--> - <!-- @click.stop="edit('edit',row)"--> - <!-- />--> - <!-- </el-tooltip>--> - - <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> - <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" /> - </el-tooltip> - - <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top"> - <!-- <i--> - <!-- class="el-icon-tickets"--> - <!-- style="cursor: pointer;color: #42b983;margin-right: 15px"--> - <!-- @click="check(row)"--> - <!-- />--> - <i - :style="{color:$store.state.settings.theme}" - class="el-icon-printer" - style="cursor: pointer;margin-right: 15px" - @click.stop="handlePrint(row.wo_code)" - /> - </el-tooltip> - - <el-tooltip class="item" effect="dark" content="璇︽儏" placement="top"> - <i - class="el-icon-view" - style="cursor: pointer;" - :style="{color:$store.state.settings.theme}" - @click.stop="edit('view',row)" - /> - </el-tooltip> - - </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,jumper" - popper-class="select_bottom" - @pagination="getMesOrderSearch" - /> - - <!-- <div class="elTableDiv">--> - <!-- <el-table--> - <!-- :data="tableDataDetail"--> - <!-- border--> - <!-- height="210px"--> - <!-- :row-class-name="tableRowClassName"--> - <!-- highlight-current-row--> - <!-- :header-cell-style="this.$headerCellStyle"--> - <!-- :cell-style="this.$cellStyle"--> - <!-- >--> - <!-- <!– <el-table-column–>--> - <!-- <!– width="50"–>--> - <!-- <!– type="index"–>--> - <!-- <!– prop="搴忓彿"–>--> - <!-- <!– fixed–>--> - <!-- <!– /> –>--> - <!-- <el-table-column--> - <!-- width="50"--> - <!-- prop="seq"--> - <!-- label="搴忓彿"--> - <!-- fixed--> - <!-- />--> - <!-- <el-table-column--> - <!-- prop="wo_code"--> - <!-- show-tooltip-when-overflow--> - <!-- label="宸ュ崟缂栧彿"--> - <!-- width="160"--> - <!-- />--> - - <!-- <!– <el-table-column–>--> - <!-- <!– prop="partcode"–>--> - <!-- <!– label="浜у搧缂栫爜"–>--> - <!-- <!– width="150"–>--> - <!-- <!– show-tooltip-when-overflow–>--> - <!-- <!– />–>--> - <!-- <!– <el-table-column–>--> - <!-- <!– prop="partname"–>--> - <!-- <!– label="浜у搧鍚嶇О"–>--> - <!-- <!– width="200"–>--> - <!-- <!– show-tooltip-when-overflow–>--> - <!-- <!– />–>--> - - <!-- <el-table-column--> - <!-- label="宸ュ簭缂栫爜"--> - <!-- prop="step_code"--> - <!-- show-tooltip-when-overflow--> - <!-- width="150"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="宸ュ簭鍚嶇О"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="stepname"--> - <!-- width="150"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="宸茬敓浜ф暟閲�"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="produceq_qty"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="鍚堟牸鏁伴噺"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="good_qty"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="涓嶈壇鏁伴噺"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="ng_qty"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="宸ュ簾鏁伴噺"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="laborbad_qty"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="鏂欏簾鏁伴噺"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="materielbad_qty"--> - <!-- />--> - <!-- <el-table-column--> - <!-- label="寰呬骇鏁伴噺"--> - <!-- show-tooltip-when-overflow--> - <!-- prop="delive_qty"--> - <!-- />--> - <!-- <!– <el-table-column–>--> - <!-- <!– label="鎿嶄綔"–>--> - <!-- <!– width="120"–>--> - <!-- <!– fixed="right"–>--> - <!-- <!– >–>--> - <!-- <!– <template slot-scope="{row}">–>--> - <!-- <!– <div class="operationClass">–>--> - <!-- <!– <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ簭" placement="top">–>--> - <!-- <!– <i–>--> - <!-- <!– v-if="tableDataDetail.length!==row.seq"–>--> - <!-- <!– class="el-icon-printer"–>--> - <!-- <!– :style="{color:$store.state.settings.theme}"–>--> - <!-- <!– style="cursor: pointer;margin-right: 15px"–>--> - <!-- <!– @click="supplementSmallClick(row)"–>--> - <!-- <!– />–>--> - <!-- <!– </el-tooltip>–>--> - <!-- <!– <el-tooltip class="item" effect="dark" content="琛ユ墦鐢熶骇鍏ュ簱鏉$爜" placement="top">–>--> - <!-- <!– <i–>--> - <!-- <!– v-if="tableDataDetail.length===row.seq"–>--> - <!-- <!– class=" el-icon-camera"–>--> - <!-- <!– :style="{color:$store.state.settings.theme}"–>--> - <!-- <!– style="cursor: pointer;margin-right: 15px"–>--> - <!-- <!– @click="getProductInHouseLabCode(row.wo_code)"–>--> - <!-- <!– />–>--> - <!-- <!– </el-tooltip>–>--> - <!-- <!– </div>–>--> - <!-- <!– </template>–>--> - <!-- <!– </el-table-column>–>--> - <!-- </el-table>--> - <!-- </div>--> - </div> - <!--鏂板娲惧彂瀵硅瘽妗�--> - <el-dialog - v-el-drag-dialog - :title="operation==='add'?'鏂板':'娲惧彂'" - :visible.sync="dialogVisible" - width="1200px" - top="8vh" - :close-on-click-modal="false" - @closed="handleClose" - @close="handleClose" - > - <el-form - ref="dialogForm" - inline - :rules="dialogFormRules" - :model="dialogForm" - label-width="110px" - > - - <el-divider content-position="left">鍩烘湰淇℃伅</el-divider> - - <el-form-item - label="宸ュ崟鐘舵��" - prop="mesorderstus" - > - <el-select - v-model="dialogForm.mesorderstus" - disabled - filterable - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in erporderstusArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - - <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode"> - <!-- <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />--> - <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" /> - </el-form-item> - <!-- <div style="display: flex">--> - <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus"> - <el-select - v-model="dialogForm.ordertype" - :popper-append-to-body="false" - style="width: 200px" - :disabled="operation!=='add'" - placeholder="璇烽�夋嫨" - @change="mesordertypeChange" - > - <el-option - v-for="item in ordertypeArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <!-- <div style="display: flex;flex-wrap: nowrap">--> - <el-form-item label="婧愬崟鍗曞彿"> - <el-input - v-model="dialogForm.sourceorder" - :disabled="dialogForm.ordertype==='PO'" - style="width: 200px" - > - <el-button - slot="append" - icon="el-icon-search" - :disabled="operation!=='add'||dialogForm.ordertype==='PO'" - @click="mesordertsourcesearchclick" - /> - </el-input> - </el-form-item> - <!-- <el-button--> - <!-- v-waves--> - <!-- type="primary"--> - <!-- style="padding: 0 10px;margin-left: -8px;margin-top: 3px"--> - <!-- class="el-icon-search"--> - <!-- :disabled="operation!=='add'||dialogForm.ordertype==='PO'"--> - <!-- @click="mesordertsourcesearchclick"--> - <!-- />--> - <!-- </div>--> - <!-- </div>--> - <el-form-item label="宸ュ崟鏁伴噺" prop="mesqty"> - <el-input - v-model="dialogForm.mesqty" - oninput="value=value.replace(/[^\d]/g,'')" - style="width: 200px" - /> - <!-- oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"--> - </el-form-item> - <el-form-item - label="浜у搧鍚嶇О/缂栫爜" - prop="partcode" - > - <el-select - v-model="dialogForm.partcode" - filterable - :disabled="operation!=='add'" - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - @change="partcodeChangeDialog" - > - <el-option - v-for="item in partArr" - :key="item.partcode" - :label="item.partname+'/'+item.partcode" - :value="item.partcode" - /> - </el-select> - </el-form-item> - <!-- <el-form-item v-if="operation!=='add'" label="浜у搧鍚嶇О" prop="partname">--> - <!-- <el-input v-model="dialogForm.partname" disabled style="width: 200px" />--> - <!-- </el-form-item>--> - <!-- <el-form-item v-if="operation!=='add'" label="浜у搧缂栫爜">--> - <!-- <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />--> - <!-- </el-form-item>--> - <el-form-item label="浜у搧瑙勬牸" prop="partspec"> - <el-input v-model="dialogForm.partspec" disabled style="width: 200px" /> - </el-form-item> - <!-- :disabled="dialogForm.partcode===''"--> - <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode"> - <el-select - v-model="dialogForm.wkshopcode" - filterable - :popper-append-to-body="false" - style="width: 200px;" - placeholder="璇烽�夋嫨杞﹂棿" - > - <el-option - v-for="item in wkshopArr" - :key="item.torg_code" - :label="item.torg_name" - :value="item.torg_code" - /> - </el-select> - </el-form-item> - <el-form-item label="棰勮浜や粯鏃ユ湡" prop="deliverydate"> - <el-date-picker - v-model="dialogForm.deliverydate" - type="date" - size="mini" - :clearable="false" - class="dateMini" - :picker-options="pickerOptions" - format="yyyy-MM-dd" - value-format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - /> - <!-- :disabled="dialogForm.deliverydate"--> - </el-form-item> - - <el-divider content-position="left">宸ュ簭淇℃伅</el-divider> - - <div style="display: flex;align-items: center"> - <!-- <div style="font-weight: bolder">宸ュ簭閫夋嫨锛�</div>--> - <!-- <el-drag-select--> - <!-- v-model="stepSelectedValue"--> - <!-- style="width:930px;"--> - <!-- multiple--> - <!-- placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"--> - <!-- @change="stepSelectedValueChange"--> - <!-- >--> - <!-- <el-option--> - <!-- v-for="item in stepSelectArr"--> - <!-- :key="item.stepcode"--> - <!-- :label="item.stepname"--> - <!-- :value="item.stepcode"--> - <!-- />--> - <!-- </el-drag-select>--> - </div> - - <el-table - ref="stepTableDataRef" - :data="stepTableData" - border - :row-class-name="tableRowClassName" - height="300" - style="width: 100%;margin-top: 15px;" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - row-key="stepcode" - > - <el-table-column - type="index" - label="搴忓彿" - width="50" - /> - <!-- <el-table-column--> - <!-- prop="stepcode"--> - <!-- show-tooltip-when-overflow--> - <!-- label="宸ュ簭缂栫爜"--> - <!-- />--> - <el-table-column - prop="stepname" - label="宸ュ簭鍚嶇О" - show-tooltip-when-overflow - /> - <el-table-column - prop="stepprice" - label="鐢熶骇鍗曚环" - show-tooltip-when-overflow - > - <!-- <template slot-scope="{row}">--> - <!-- <el-input--> - <!-- v-model="row.stepprice"--> - <!-- placeholder="璇疯緭鍏ュ伐搴忓崟浠�"--> - <!-- oninput="value=value.replace(/[^0-9.]/g,'')"--> - <!-- style="width: 100%"--> - <!-- @click.stop=""--> - <!-- />--> - <!-- </template>--> - </el-table-column> - <el-table-column - prop="produceq_qty" - label="宸茬敓鎴愭暟閲�" - show-tooltip-when-overflow - /> - <el-table-column - prop="good_qty" - label="鍚堟牸鏁伴噺" - show-tooltip-when-overflow - /> - <el-table-column - prop="ng_qty" - label="涓嶈壇鏁伴噺" - show-tooltip-when-overflow - /> - <el-table-column - prop="laborbad_qty" - label="宸ュ簾鏁伴噺" - show-tooltip-when-overflow - /> - <el-table-column - prop="materielbad_qty" - label="鏂欏簾鏁伴噺" - show-tooltip-when-overflow - /> - <el-table-column - prop="delive_qty" - label="寰呬骇鏁伴噺" - show-tooltip-when-overflow - /> - <!-- <el-table-column--> - <!-- label="鎿嶄綔"--> - <!-- width="120"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div class="operationClass">--> - <!-- <!– <el-tooltip class="item" effect="dark" content="绉诲姩" placement="top">–>--> - <!-- <i--> - <!-- class="el-icon-rank"--> - <!-- :style="{color:$store.state.settings.theme}"--> - <!-- style="cursor: move"--> - <!-- />--> - <!-- <!– </el-tooltip>–>--> - <!-- <!– @click="edit('edit',row)"–>--> - - <!-- <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: 15px;"--> - <!-- @click="stepDel(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 v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">棰勮</el-button>--> - <el-button - v-if="operation!=='view'" - v-waves - type="primary" - :loading="$store.state.app.buttonIsDisabled" - :disabled="$store.state.app.buttonIsDisabled" - @click="dialogVisibleConfirm" - >纭� 瀹�</el-button> - </div> - </span> - </el-dialog> - - <!-- 宸ュ簭浠诲姟瀵硅瘽妗�--> - <el-dialog - v-el-drag-dialog - title="宸ュ簭浠诲姟" - :visible.sync="dialogVisibleTask" - width="840px" - top="15vh" - class="dialogVisibleSearch" - :close-on-click-modal="false" - @close="dialogVisibleTaskClose" - > - <el-button - v-waves - style="margin-bottom: 15px" - type="primary" - @click="supplementClick" - >琛ユ墦 - </el-button> - <el-table - :data="taskTableData" - border - :row-class-name="tableRowClassName" - height="300" - style="width: 100%;" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - > - <el-table-column - prop="seq" - width="50" - label="搴忓彿" - fixed - /> - <el-table-column - prop="wo_code" - show-tooltip-when-overflow - label="宸ュ崟缂栧彿" - width="200" - /> - <el-table-column - prop="stepcode" - label="宸ュ簭缂栫爜" - show-tooltip-when-overflow - /> - <el-table-column - prop="stepname" - show-tooltip-when-overflow - label="宸ュ簭鍚嶇О" - /> - <!-- <el-table-column--> - <!-- prop="flwtype"--> - <!-- label="宸ュ簭绫诲瀷"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.flwtype==='W'">澶栧崗</div>--> - <!-- <div v-if="row.flwtype==='Z'">鑷埗</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column--> - <!-- prop="descr"--> - <!-- label="宸ュ簭鎻忚堪"--> - <!-- />--> - <el-table-column - prop="plan_qty" - show-tooltip-when-overflow - label="浠诲姟鏁伴噺" - /> - <el-table-column - prop="good_qty" - show-tooltip-when-overflow - label="鍚堟牸鏁伴噺" - /> - <el-table-column - prop="ng_qty" - show-tooltip-when-overflow - label="涓嶈壇鏁伴噺" - /> - <el-table-column - label="鎿嶄綔" - fixed="right" - > - <template slot-scope="{row}"> - <el-button v-waves type="text" style="padding: 0;" @click="supplementSmallClick(row)">琛ユ墦</el-button> - </template> - </el-table-column> - </el-table> - - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="dialogVisibleBack">杩� 鍥�</el-button> - <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>--> - </div> - </span> - </el-dialog> - - <!-- 婧愬崟鍗曞彿瀵硅瘽妗�--> - <el-dialog - v-el-drag-dialog - title="婧愬崟鍗曞彿" - :visible.sync="dialogVisibleSource" - width="1200px" - top="10vh" - class="dialogVisibleSearch" - :close-on-click-modal="false" - @close="dialogVisibleSourceClose" - > - <div class="bodyTopFormGroup"> - <el-form - ref="sourceForm" - :model="sourceForm" - label-width="100px" - inline - style="display: flex;justify-content: space-between" - > - <div class="elForm" style="justify-content: flex-start"> - <!-- <el-form-item--> - <!-- label="棰勮寮�宸ユ椂闂�"--> - <!-- label-width="100px"--> - <!-- style=" display: flex;font-size: 14px;margin-top: 3px"--> - <!-- >--> - <!-- <el-date-picker--> - <!-- v-model="sourceForm.paystartdate"--> - <!-- type="daterange"--> - <!-- range-separator="~"--> - <!-- class="timeMini"--> - <!-- size="mini"--> - <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"--> - <!-- :clearable="false"--> - <!-- start-placeholder="寮�濮嬫棩鏈�"--> - <!-- end-placeholder="缁撴潫鏃ユ湡"--> - <!-- />--> - <!-- <!– :picker-options="expireTimeOption"–>--> - - <!-- </el-form-item>--> - <!-- <el-form-item--> - <!-- label="棰勮瀹屽伐鏃堕棿"--> - <!-- label-width="100px"--> - <!-- style=" display: flex;font-size: 14px;margin-top: 3px"--> - <!-- >--> - <!-- <el-date-picker--> - <!-- v-model="sourceForm.payenddate"--> - <!-- type="daterange"--> - <!-- :clearable="false"--> - <!-- class="timeMini"--> - <!-- range-separator="~"--> - <!-- start-placeholder="寮�濮嬫棩鏈�"--> - <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;"--> - <!-- end-placeholder="缁撴潫鏃ユ湡"--> - <!-- size="mini"--> - <!-- />--> - <!-- </el-form-item>--> - <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;"> - <el-select - v-model="sourceForm.mesordercode" - filterable - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in erporderstusArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;"> - <el-input v-model="sourceForm.sourceorder" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="浜у搧缂栫爜" style=" display: flex;"> - <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - - <el-form-item v-show="isExpandDialog" label="浜у搧鍚嶇О" style=" display: flex;"> - <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandDialog" label="浜у搧瑙勬牸" style=" display: flex;"> - <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - <el-form-item v-show="isExpandDialog" label="鍒涘缓浜哄憳" style=" display: flex;"> - <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" /> - </el-form-item> - - <el-form-item - v-show="isExpandDialog" - label="鍒涘缓鏃堕棿" - label-width="100px" - style=" display: flex;font-size: 14px;margin-top: 3px" - > - <el-date-picker - v-model="sourceForm.createdate" - type="daterange" - range-separator="~" - class="timeMini" - size="mini" - style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;" - :clearable="false" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - /> - <!-- :picker-options="expireTimeOption"--> - - </el-form-item> - - </div> - - <div style="display: flex;align-items: start;margin-top: 3px;z-index: 2;justify-content: end"> - <el-button v-waves type="primary" icon="el-icon-search" @click="sourceSearch">鏌ヨ</el-button> - <el-button v-waves type="info" icon="el-icon-refresh" @click="sourceReset">閲嶇疆</el-button> - </div> - - </el-form> - <div - class="bodyTopFormExpand" - > - <svg-icon - v-show="mouseHoverTypeDialog==='mouseout'" - style="cursor: pointer" - :icon-class="!isExpandDialog?'doubleDown3':'doubleUp3'" - @mouseenter="mouseHoverTypeDialog=$event.type" - /> - <svg-icon - v-show="mouseHoverTypeDialog==='mouseenter'" - style="cursor: pointer" - :icon-class="!isExpandDialog?'doubleDown':'doubleUp'" - @click="isExpandDialog=!isExpandDialog" - @mouseout="mouseHoverTypeDialog=$event.type" - /> - </div> - </div> - - <div class="elTableDiv"> - <el-table - :data="sourceTableData" - :height="isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px'" - border - :row-class-name="tableRowClassName" - :style="{width: 100+'%',height:isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - @sort-change="sourceSortChange" - @row-click="getCurrentRowSource" - > - <!-- <el-table-column--> - <!-- type="selection"--> - <!-- width="50"--> - <!-- />--> - <el-table-column - width="50" - fixed - > - <template slot-scope="{row}"> - <el-radio - v-model="radioSelectedId" - :label="row.id" - style="color: transparent;padding-left: 10px;" - /> - <!-- @change.native="getCurrentRowSource(row.id)"--> - </template> - </el-table-column> - <el-table-column - prop="RowNum" - width="50" - fixed - label="搴忓彿" - /> - <!-- <el-table-column--> - <!-- prop="status"--> - <!-- label="宸ュ崟鐘舵��"--> - <!-- show-tooltip-when-overflow--> - <!-- sortable="custom"--> - <!-- width="110"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.status==='NEW'">鏂拌鍗�</div>--> - <!-- <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div>--> - <!-- <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div>--> - <!-- <div v-if="row.status==='CLOSED'">宸插叧闂�</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <el-table-column - label="宸ュ崟缂栧彿" - prop="wo_code" - show-tooltip-when-overflow - min-width="150" - sortable="custom" - > - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.m_po">{{ row.m_po }}</div>--> - <!-- <div v-else>{{ row.wo_code }}</div>--> - <!-- </template>--> - </el-table-column> - <el-table-column - prop="partcode" - label="浜у搧缂栫爜" - sortable="custom" - show-tooltip-when-overflow - min-width="150" - /> - <el-table-column - prop="partname" - label="浜у搧鍚嶇О" - sortable="custom" - show-tooltip-when-overflow - min-width="150" - /> - <el-table-column - prop="partspec" - label="浜у搧瑙勬牸" - show-tooltip-when-overflow - sortable="custom" - min-width="110" - > - <template slot-scope="{row}"> - <div v-if="row.partspec">{{ row.partspec }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="plan_qty" - label="浠诲姟鏁伴噺" - width="150" - show-tooltip-when-overflow - sortable="custom" - /> - - <el-table-column - prop="bad_qty" - label="鎶ュ簾鏁伴噺" - width="150" - show-tooltip-when-overflow - sortable="custom" - /> - - <!-- <el-table-column--> - <!-- prop="relse_qty"--> - <!-- show-tooltip-when-overflow--> - <!-- label="宸蹭笅鍗曟暟閲�"--> - <!-- width="150"--> - <!-- sortable="custom"--> - <!-- />--> - <el-table-column - prop="wkshp_name" - label="鐢熶骇杞﹂棿" - show-tooltip-when-overflow - sortable="custom" - width="150" - > - <template slot-scope="{row}"> - <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="plan_startdate" - label="棰勮寮�宸ユ椂闂�" - show-tooltip-when-overflow - sortable="custom" - width="130" - > - <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 - prop="plan_enddate" - label="棰勮瀹屽伐鏃堕棿" - show-tooltip-when-overflow - sortable="custom" - width="130" - > - <template slot-scope="{row}"> - <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="lm_user" - label="鍒涘缓浜哄憳" - show-tooltip-when-overflow - sortable="custom" - width="150" - > - <template slot-scope="{row}"> - <div v-if="row.lm_user">{{ row.lm_user }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <el-table-column - prop="lm_date" - label="鍒涘缓鏃堕棿" - show-tooltip-when-overflow - width="130" - sortable="custom" - > - <template slot-scope="{row}"> - <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div> - <div v-else>/</div> - </template> - </el-table-column> - <!-- <el-table-column--> - <!-- label="鎿嶄綔"--> - <!-- fixed="right"--> - <!-- width="80"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div class="operationClass">--> - <!-- <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top">--> - <!-- <!– <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>–>--> - <!-- <i--> - <!-- class="el-icon-bottom"--> - <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"--> - <!-- @click="edit('edit',row)"--> - <!-- />--> - <!-- </el-tooltip>--> - <!-- </div>--> - <!-- </template>--> - <!-- </el-table-column>--> - </el-table> - </div> - <!--鍒嗛〉--> - <pagination - :total="sourceFormTotal" - :page.sync="sourceForm.page" - :limit.sync="sourceForm.rows" - align="right" - layout="total,prev, pager, next,sizes" - popper-class="select_bottom" - @pagination="getMesBadOrderSearch" - /> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="dialogVisibleSourceBack">杩� 鍥�</el-button> - <el-button v-waves type="primary" @click="dialogVisibleSourceConfirm">纭� 瀹�</el-button> - </div> - </span> - </el-dialog> - - <!--鎵撳嵃棰勮瀵硅瘽妗� 澶ф爣绛�--> - <el-dialog - v-el-drag-dialog - title="" - :visible.sync="dialogVisibleApprove" - width="812px" - class="dialogVisibleConfirmClass" - append-to-body - :close-on-click-modal="false" - @close="dialogVisibleConfirmClose" - > - <!-- 瑕佹墦鍗扮殑鍖哄煙 --> - <div id="printMe" style="padding: 30px"> - <div style="font-size: 26px; text-align: center">娴佺▼鍗�</div> - - <div style="display: flex;justify-content: space-around;margin-top: 20px; position: relative;"> - <div style="width: 78%"> - <el-form - ref="formApprove" - :model="formApprove" - label-width="80px" - inline - style="display: flex;justify-content: space-between" - > - <div class="elForm"> - <el-form-item label="宸ュ崟缂栧彿:" class="formContent"> - {{ formApprove.mesordercode }} - </el-form-item> - <el-form-item label="婧愬崟鍗曞彿:" class="formContent"> - {{ formApprove.m_po }} - </el-form-item> - <el-form-item label="浜у搧缂栫爜:" class="formContent"> - {{ formApprove.partcode }} - </el-form-item> - <el-form-item label="浜у搧鍚嶇О:" class="formContent"> - {{ formApprove.partname }} - </el-form-item> - <el-form-item label="浜у搧瑙勬牸:" class="formContent"> - {{ formApprove.partspec }} - </el-form-item> - <el-form-item label="宸ュ崟鏁伴噺:" class="formContent"> - {{ formApprove.plan_qty }} - </el-form-item> - <!-- <el-form-item label="宸ヨ壓璺嚎:" class="formContent">--> - <!-- {{ formApprove.routename }}--> - <!-- </el-form-item>--> - <el-form-item label="鎵撳嵃浜哄憳:" class="formContent"> - <!-- {{ localStorage.getItem('username') }}--> - {{ formApprove.routename }} - </el-form-item> - <el-form-item label="鎵撳嵃鏃堕棿:" class="formContent"> - {{ formApprove.lm_date }} - </el-form-item> - </div> - </el-form> - </div> - <div - id="qrCode" - style="width: 22%;height:90px; - margin-top: 20px; - overflow-y: scroll;display: flex; - justify-content: center; - position: relative;" - > - <div id="qrCode0" ref="qrCodeDiv0" /> - </div> - <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" /> - <div - style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px" - /> - </div> - - <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />--> - <el-table - id="table" - :data="tableDataPrint" - border - class="tableDataPrint" - :header-cell-style="{ background: '#c0c0c0',textAlign:'center',color:'#000',borderColor:'#000'}" - :cell-style="{textAlign: 'center',color:'#000',borderColor:'#000'}" - style="width: 100%;margin-top: 20px;text-align: center;border-color: #000" - > - <el-table-column - id="column0" - prop="seq" - label="宸ュ簭鍙�" - width="70" - align="center" - /> - <el-table-column - id="column1" - prop="stepqrcode" - label="宸ュ簭浜岀淮鐮�" - width="100" - align="center" - > - <template slot-scope="{row}"> - <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" /> - </template> - </el-table-column> - <el-table-column - id="column2" - prop="stepname" - label="宸ュ簭" - width="120" - align="center" - /> - <el-table-column - id="column3" - prop="plan_qty" - label="鍔犲伐鏁伴噺" - width="100" - align="center" - /> - <el-table-column - id="column4" - prop="good_qty" - width="100" - align="center" - label="鍚堟牸鏁伴噺" - /> - <el-table-column - id="column5" - width="100" - prop="ng_qty" - align="center" - label="涓嶈壇鏁伴噺" - /> - <el-table-column - id="column6" - prop="desc" - align="center" - width="120" - label="澶囨敞" - /> - </el-table> - </div> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="dialogVisibleBackPreview">杩� 鍥�</el-button> - <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>--> - <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�/鎵� 鍗�</el-button>--> - <el-button v-waves v-print="printObj" type="primary">鎵� 鍗�</el-button> - </div> - </span> - </el-dialog> - - <!--鎵撳嵃棰勮椤甸潰 灏忔爣绛�--> - <el-dialog - v-el-drag-dialog - title="棰勮" - :visible.sync="dialogVisible2" - width="1000" - top="10vh" - :close-on-click-modal="false" - @close="dialogVisible2Close" - > - <div style="height: 650px;overflow:auto;"> - <!-- 涓嬫媺妗嗛�夋嫨鎵撳嵃灏哄--> - <div v-if="!isLastPrint" style="display: flex;align-items: center;margin: 0 0 20px 0"> - <div>閫夋嫨鎵撳嵃灏哄锛�</div> - <el-select - v-model="printSize" - :popper-append-to-body="false" - style="width: 200px" - placeholder="璇烽�夋嫨" - @change="printSizeChange" - > - - <el-option - v-for="item in printSizeSelectArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </div> - <!-- 瑕佹墦鍗扮殑鍖哄煙 --> - <!-- <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">--> - <div v-if="!isLastPrint" :style="printMe2StylePadding(printSize)"> - <!-- 80 * 50--> - <div - v-if="printSize===0" - style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" - > - - <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> - <div - style="display: flex;height: 96px;border-bottom:1px solid #000; - justify-content: center;align-items: center;position: relative" - > - <div - id="qrCode2" - ref="qrCodeDiv2" - style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" - /> - </div> - <div - style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" - > - <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> - {{ qrForm.startqty }} - </div> - <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> - <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> - {{ qrForm.operator }} - </div> - </div> - - <div style="width:190px;display: flex;flex-direction: column"> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> - <div>{{ qrForm.wo_code }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> - <div>{{ qrForm.partcode }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> - <div>{{ qrForm.partname }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div> - <div>{{ qrForm.nextstepname }}</div> - </div> - <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> - <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> - <div>{{ qrForm.operatorTime }}</div> - </div> - - </div> - - </div> - <!-- 78 * 60 --> - <div - v-if="printSize===1" - style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" - > - - <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> - <div - style="display: flex;height: 96px;border-bottom:1px solid #000; - justify-content: center;align-items: center;position: relative" - > - <div - id="qrCode2" - ref="qrCodeDiv2" - style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" - /> - </div> - <div - style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" - > - <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> - {{ qrForm.startqty }} - </div> - <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> - <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> - {{ qrForm.operator }} - </div> - </div> - - <div style="width:190px;display: flex;flex-direction: column"> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> - <div>{{ qrForm.wo_code }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> - <div>{{ qrForm.partcode }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> - <div>{{ qrForm.partname }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div> - <div>{{ qrForm.nextstepname }}</div> - </div> - <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> - <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> - <div>{{ qrForm.operatorTime }}</div> - </div> - - </div> - - </div> - <!-- 60 * 40 --> - <div - v-if="printSize===2" - style="display: flex;width: 220px;height: 130px;border: 1px solid #000;text-align: center;font-size: 12px" - > - - <div style="width: 70px;display: flex;flex-direction: column;border-right: 1px solid #000"> - <div - style="display: flex;height: 60%;border-bottom:1px solid #000; - justify-content: center;align-items: center;position: relative" - > - <div - id="qrCode2" - ref="qrCodeDiv2" - style="overflow-y: hidden;height:71%;position: absolute;left: 7px;" - /> - </div> - <div - style="display: flex;height: 20%;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" - > - <div style="margin-left: 3px; ">鏁伴噺:{{ qrForm.startqty }}</div> - </div> - <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;"> - <div style="margin-left: 3px; ">鎿嶄綔:{{ qrForm.operator }}</div> - - </div> - </div> - - <div style="width:150px;display: flex;flex-direction: column"> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="margin-left: 3px;">缂栧彿:{{ qrForm.wo_code }}</div> - - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" - > - <div style="margin-left: 3px;">浜у搧缂栫爜:{{ qrForm.partcode }}</div> - - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="margin-left: 3px;">浜у搧鍚嶇О:{{ qrForm.partname }}</div> - - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="margin-left: 3px;">涓嬮亾宸ュ簭:{{ qrForm.nextstepname }}</div> - - </div> - <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> - <div style=" margin-left: 3px;">鏃堕棿: {{ qrForm.operatorTime }}</div> - <!-- <div>{{ qrForm.operatorTime?qrForm.operatorTime.substring(5):'' }}</div>--> - <!-- <div>{{ qrForm.operatorTime }}</div>--> - </div> - - </div> - - </div> - <div - v-if="printSize===5" - style="display: flex;width: 140px;height: 80px;border: 1px solid #000;text-align: center;font-size: 10px;" - > - - <div v-if="false" style="width: 45px;display: flex;flex-direction: column;border-right: 1px solid #000"> - <div - style="display: flex;height: 60px;border-bottom:1px solid #000; - justify-content: center;align-items: center;position: relative" - > - <div - id="qrCode2" - ref="qrCodeDiv2" - style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" - /> - </div> - <div - style="display: flex;height: 20px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" - > - <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> - {{ qrForm.startqty }} - </div> - <div style="display: flex;height: 20px;justify-content: flex-start;align-items: center"> - <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> - {{ qrForm.operator }} - </div> - </div> - - <div style="width:100%;display: flex;flex-direction: column;"> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center;text-align: left" - > - <!-- <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>--> - <div>{{ qrForm.wo_code }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center ;text-align: left" - > - <!-- <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>--> - <div>{{ qrForm.partcode }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left" - > - <!-- <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>--> - <div>{{ qrForm.partname }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left" - > - <!-- <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>--> - <div>{{ qrForm.nextstepname }}</div> - </div> - <div style="display: flex;height: 20%;justify-content: center;align-items: center;text-align: left"> - <!-- <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>--> - <div>{{ qrForm.operatorTime }}</div> - </div> - - </div> - - </div> - </div> - - <div v-if="isLastPrint" style="display: flex;flex-direction: column"> - - <div style="display: flex;font-weight: bold;font-size: 16px;margin-bottom: 20px;"> - <div style="width: 48%;"> - 璇烽�夋嫨鍏ュ簱鏉$爜 - </div> - <div style="width: 48%;margin-left: 4%;"> - 宸查�変腑鐨勫叆搴撴潯鐮� - </div> - </div> - - <div style="display: flex;"> - <!-- 璇烽�夋嫨鍏ュ簱鏉$爜--> - <div style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;"> - <div - v-for="(item,index) in lastPrintArr" - :key="item.inbarcode" - :style="{marginTop:index===0?'':'15px'}" - style="display: flex;align-items: center;" - > - - <!-- v-if="printSize===0"--> - <div style="margin-right:40px"> - <el-checkbox - :key="item.inbarcode" - v-model="item.checked" - @change="val=>inbarcodeChange(val,item)" - /> - </div> - <div - style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" - > - - <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> - <div - style="display: flex;height: 96px;border-bottom:1px solid #000; - justify-content: center;align-items: center;position: relative" - > - <div - id="qrCode2" - ref="qrCodeDiv2" - style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" - /> - </div> - <div - style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" - > - <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> - {{ item.good_qty }} - </div> - <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> - <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> - {{ item.username }} - </div> - </div> - - <div style="width:190px;display: flex;flex-direction: column"> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> - <div>{{ item.wo_code }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> - <div>{{ item.partcode }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> - <div>{{ item.partname }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div> - <div>{{ item.partspec ? item.partspec : '/' }}</div> - </div> - <div - style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> - <div>{{ item.lm_date }}</div> - </div> - - </div> - - </div> - - </div> - </div> - - <!-- 宸查�変腑鐨勫叆搴撴潯鐮�--> - <div - style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;margin-left: 50px;" - > - <div id="printMe2"> - <div - v-for="(item,index) in lastPrintArrSelected" - v-if="item.checked" - :key="item.inbarcode" - :style="{marginTop:index===0?'':'15px'}" - style="display: flex;align-items: center;" - > - <div - style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" - > - - <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> - <div - style="display: flex;height: 96px;border-bottom:1px solid #000; - justify-content: center;align-items: center;position: relative" - > - <div - id="qrCode3" - ref="qrCodeDiv3" - style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" - /> - </div> - <div - style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" - > - <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> - {{ item.good_qty }} - </div> - <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> - <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> - {{ item.username }} - </div> - </div> - - <div style="width:190px;display: flex;flex-direction: column"> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> - <div>{{ item.wo_code }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> - <div>{{ item.partcode }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> - <div>{{ item.partname }}</div> - </div> - <div - style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div> - <div>{{ item.partspec ? item.partspec : '/' }}</div> - </div> - <div - style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left" - > - <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> - <div>{{ item.lm_date }}</div> - </div> - - </div> - - </div> - - </div> - </div> - - </div> - - </div> - - </div> - - </div> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="dialogVisible2 = false;">鍙� 娑�</el-button> - <el-button v-waves v-print="printObj2" type="primary">鎵� 鍗�</el-button> - </div> - </span> - </el-dialog> - - <!-- 宸ヨ壓璺嚎瀵硅瘽妗�--> - <el-dialog - v-el-drag-dialog - :close-on-click-modal="false" - title="鍏宠仈宸ヨ壓璺嚎" - :visible.sync="dialogVisibleRoute" - width="800px" - top="10vh" - :fullscreen="isIpad" - class="dialogVisibleRoute" - @closed="handleCloseRoute" - @close="handleCloseRoute" - > - <div> - <i class="el-icon-s-comment" style="color:#42b983;" /> 浜у搧鍚嶇О锛歿{ dialogFormRoute.projectName }} - </div> - <el-divider /> - <div style="margin-bottom: 10px"> - <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ヨ壓璺嚎闆嗗悎 - </div> - - <div class="myCheckboxGroup"> - <div - v-for="item in dialogFormRoute.routeOperationArr" - :key="item.code" - :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}" - class="myCheckbox" - @click="myCheckboxClick(item)" - > - <input - class="myCheckboxInput" - type="checkbox" - :value="item.code" - :name="item.name" - :style="{color:item.isSelected2?'#42b983':'#fff'}" - @click="myCheckboxInputClick(item)" - >{{ item.name }} - <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�--> - <!-- onClick="event.cancelBubble = true"--> - </div> - </div> - - <el-divider /> - <div> - <i class="el-icon-s-operation" style="color:#42b983;" /> 榛樿宸ヨ壓璺嚎 - </div> - <div style="margin-top: 20px"> - <el-select - v-model="defaultroute_code" - filterable - style="width: 200px;" - placeholder="璇烽�夋嫨" - class="defaultroute_code" - > - <el-option - v-for="item in defaultroute_codeArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </div> - <el-divider /> - <div style="margin-bottom: 10px"> - <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ュ簭鍒楄〃 - </div> - <div style="overflow-y: scroll"> - <el-table - ref="projectTableData" - :data="projectTableData" - border - height="280" - :row-class-name="tableRowClassName" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - > - <el-table-column - prop="seq" - width="100" - label="宸ュ簭搴忓彿" - fixed - /> - <el-table-column - prop="stepcode" - label="宸ュ簭缂栫爜" - show-tooltip-when-overflow - /> - <el-table-column - prop="stepname" - label="宸ュ簭鍚嶇О" - show-tooltip-when-overflow - /> - <el-table-column - prop="enable" - label="鍚敤鐘舵��" - fixed="right" - > - <template slot-scope="{row}"> - <div v-if="row.enable==='Y'"> - <svg-icon icon-class="circleYes" style="margin-right: 2px" /> - 鏄� - </div> - <div v-if="row.enable==='N'"> - <svg-icon icon-class="circleNo" style="margin-right: 2px" /> - 鍚� - </div> - </template> - </el-table-column> - </el-table> - </div> - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-waves @click="routeDialogVisibleCancel">鍙� 娑�</el-button> - <el-button v-waves type="primary" @click="routeDialogVisibleConfirm">纭� 瀹�</el-button> - </div> - </span> - </el-dialog> - - </div> -</template> - -<script> -import Pagination from '@/components/Pagination' -import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global' -import { getCookie } from '@/utils/auth' -import QRCode from 'qrcodejs2' -import $ from 'jquery' -import elDragDialog from '@/directive/el-drag-dialog' -import waves from '@/directive/waves' -import { - AddMesOrderCodeSearch, - AddUpdateMesOrder, DeleteMesOrder, - MesBadOrderSearch, MesOrderDistribution, - MesOrderSearch, - UpdateMesOrderStepSearch -} from '@/api/WorkOrder' -import { PartSelect } from '@/api/ProductModel' -import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData' -import Sortable from 'sortablejs' -import ElDragSelect from '@/components/DragSelect' -import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui - -export default { - name: 'WorkOrderSend', - components: { - Pagination, ElDragSelect - }, - directives: { elDragDialog, waves }, - data() { - return { - mouseHoverType: 'mouseout', - mouseHoverTypeDialog: 'mouseout', - isExpandForm: false, - isIpad: false, - mainHeight: 0, - tableHeight: 0, - username: '', - form: { - wkshopcode: '', - mesorderstus: 'ALLO', // 宸ュ崟鐘舵�佺爜 - mesordercode: '', // 宸ュ崟缂栧彿 - partcode: '', // 浜у搧缂栫爜 - ordertype: '', // ordertype - sourceorder: '', // 婧愬崟鍗曞彿 - saleordercode: '', // 閿�鍞鍗� - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - creatuser: '', // 鍒涘缓浜哄憳 - createdate: '', // 鍒涘缓鏃堕棿 - prop: 'lm_date', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - erporderstusArr: [ - // { code: 'NEW', name: '鏂板伐鍗�' } - // { code: 'CREATING', name: '鎵ц涓�' }, - // { code: 'CREATED', name: '宸插叧闂�' } - { code: 'ALLO', name: '宸叉淳鍙�' } - // { code: 'START', name: '寮�宸�' }, - // { code: 'CLOSED', name: '瀹屽伐' } - // { code: 'NOSCHED', name: '寰呮帓绋�' }, - // { code: 'SCHED', name: '宸叉帓绋�' } - ], - wkshopcodeArr: [], - total: 10, - tableData: [], - dialogVisible: false, - dialogForm: { - mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜 - mesordercode: '', // 宸ュ崟缂栧彿 - ordertype: 'PO', // 宸ュ崟绫诲瀷 - sourceorderid: '', // 婧愬崟id - sourceorder: '', // 婧愬崟鍗曞彿 - - partcode: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - - mesqty: '', // 宸ュ崟鏁伴噺 - wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜 - wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О - - deliverydate: '', // 浜や粯鏃堕棿 - data_sources: '', // 鏁版嵁鏉ユ簮 - - mesmaxqty: 0// 宸ュ崟鐨勬渶澶у�� - }, - ordertypeArr: [// 宸ュ崟绫诲瀷 - { code: 'PO', name: '鏍囧噯宸ュ崟' }, - { code: 'FO', name: '鎶ュ簾琛ュ崟' } - ], - partArr: [], // 浜у搧淇℃伅 - wkshopArr: [], // 鐢熶骇杞﹂棿鏁扮粍 - routeArr: [], // 宸ヨ壓璺嚎鏁扮粍 - orderlevArr: [ - { code: 1, name: '鐗圭骇' }, - { code: 2, name: '绱ф��' }, - { code: 3, name: '姝e父' } - ], // 宸ュ崟绛夌骇鏁扮粍 - operation: '', - dialogFormRules: { - mesorderstus: [ - { required: true, message: '璇烽�夋嫨璁㈠崟鐘舵��', trigger: ['blur', 'change'] } - ], - partcode: [ - { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] } - ], - mesordercode: [ - { required: true, validator: validateCode, trigger: ['blur', 'change'] } - ], - mesqty: [ - { required: true, message: '璇疯緭鍏ュ伐鍗曟暟閲�', trigger: ['blur', 'change'] } - ], - wkshopcode: [ - { required: true, message: '璇烽�夋嫨鐢熶骇杞﹂棿', trigger: ['blur', 'change'] } - ], - deliverydate: [ - { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] } - ], - planstartdate: [ - { required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: ['blur', 'change'] } - ], - planenddate: [ - { required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: ['blur', 'change'] } - ], - orderlev: [ - { required: true, message: '璇烽�夋嫨宸ュ崟绛夌骇', trigger: ['blur', 'change'] } - ], - isAps: [ - { required: true, message: '璇烽�夋嫨鏄惁鎺掔▼', trigger: ['blur', 'change'] } - ], - bomId: [ - { required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] } - ] - - }, - dialogVisibleTask: false, - taskTableData: [], - - dialogVisibleSearch: false, - searchTableData: [], - dialogVisibleApprove: false, - tableDataPrint: [], // 鎵撳嵃椤甸潰鍐呭 - printObj: { - id: 'printMe', - popTitle: '鎵撳嵃妯℃澘', - preview: false, - extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', - closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛� - console.log('11212', vue) - // vue.dialogVisible = false - vue.dialogVisibleApprove = false - }, - beforeOpenCallback(vue) { - vue.printLoading = true - console.log('鎵撳紑涔嬪墠') - console.log() - }, - openCallback(vue) { - vue.printLoading = false - console.log('鎵ц浜嗘墦鍗�') - } - }, - - formApprove: { - m_po: '', // 婧愬崟鍗曞彿 - mesordercode: '', - partcode: '', - partname: '', - partspec: '', - plan_qty: '', - routename: '', - lm_date: '' - }, - number: '', - dialogVisible2: false, - printObj2: { - id: 'printMe2', - popTitle: '鎵撳嵃妯℃澘', - preview: false, - extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', - closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛� - console.log('11212', vue) - // vue.dialogVisible = false - // vue.dialogVisible2 = false - // vue.dialogVisible = false - }, - beforeOpenCallback(vue) { - vue.printLoading = true - console.log('鎵撳紑涔嬪墠') - console.log() - }, - openCallback(vue) { - vue.printLoading = false - console.log('鎵ц浜嗘墦鍗�') - } - }, - qrForm: { - qrvalue: '', - startqty: '', - wo_code: '', - partcode: '', - partname: '', - nextstepname: '', - operator: '', // 鎿嶄綔浜� - operatorTime: ''// 鎿嶄綔鏃堕棿 - }, - dialogVisibleSource: false, - sourceTableData: [], - sourceForm: { - mesordercode: '', // 宸ュ崟缂栧彿 - sourceorder: '', // 璁㈠崟缂栧彿 - saleordercode: '', // 閿�鍞鍗曞彿 - partcode: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - creatuser: '', // 鍒涘缓浜哄憳 - // paystartdate: '', // 浜や粯鏃堕棿 - // paystartdate: '', // 棰勮寮�宸ユ椂闂� - // payenddate: '', // 棰勮瀹屽伐鏃堕棿 - createdate: '', // 鍒涘缓鏃堕棿 - - prop: 'lm_date', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - sourceFormTotal: 10, - radioSelectedId: '', - isExpandDialog: false, // 瀵硅瘽妗嗚〃鍗曟槸鍚﹀睍寮�锛岄粯璁や笉灞曞紑 - dialogVisibleRoute: false, - dialogFormRoute: { - projectName: '', // 浜у搧鍚嶇О - projectCode: '', // 浜у搧浠g爜 - routeOperationArr: [] // 宸ヨ壓璺嚎闆嗗悎 - }, - defaultroute_code: '', // 榛樿宸ヨ壓璺嚎閫変腑鍊� - defaultroute_codeArr: '', // 榛樿宸ヨ壓璺嚎鏁扮粍 - projectTableData: [], // 璁惧鍒楄〃 - tableDataDetail: [], // 鐐瑰嚮宸ュ崟琛ㄧ殑琛� 鏄剧ず璇︾粏淇℃伅 - printSize: 0, - printSizeSelectArr: [// 瀹�*楂� - { code: 0, name: '80*50' }, - { code: 1, name: '78*60' }, - { code: 2, name: '60*40' } - // { code: 2, name: '50*60' }, - // { code: 3, name: '50*40' }, - // { code: 4, name: '50*80' }, - // { code: 5, name: '40*30' } - ], - pickerOptions: { - disabledDate(time) { - return time.getTime() < Date.now() - 8.64e7 - } - }, - - isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗� - lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�) - lastPrintArrSelected: [], // 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑) - - switchButton: false, - - routeStepArr: '', - - stepTableData: [], - sortable: null, - stepSelectArr: [], // 宸ュ簭涓嬫媺鏁版嵁 - stepSelectedValue: [], // 涓嬫媺閫変腑鍊� - - multipleSelection: [] - } - }, - watch: { - 'stepSelectedValue': { - // deep: true, - handler: function(val) { - // do something with the new and old value of stepSelectedValue - console.log(val, 1) - const arr = JSON.parse(JSON.stringify(this.stepTableData)) - const arrStepcode = arr.map(i => i.stepcode) - this.stepTableData = [] - val.forEach(i => { - this.stepTableData.push( - { - stepcode: i, - stepname: this.stepSelectArr.find(j => j.stepcode === i).stepname, - stepprice: arrStepcode.includes(i) ? arr.find(j => j.stepcode === i).stepprice : 0 - } - ) - }) - } - } - }, - activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { - this.handleRequest() - }, - mounted() { - window.addEventListener('resize', this.getHeight) - this.getHeight() - - // this.$nextTick(() => { - // this.setSort() - // }) - }, - methods: { - setSort() { - const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0] - this.sortable = Sortable.create(el, { - ghostClass: 'sortable-ghost', // Class name for the drop placeholder, - setData: function(dataTransfer) { - // to avoid Firefox bug - // Detail see : https://github.com/RubaXa/Sortable/issues/1012 - dataTransfer.setData('Text', '') - }, - onEnd: evt => { - const targetRow = this.stepTableData.splice(evt.oldIndex, 1)[0] - this.stepTableData.splice(evt.newIndex, 0, targetRow) - - this.stepSelectedValue = this.stepTableData.map(i => i.stepcode) - // for show the changes, you can delete in you code - // const tempIndex = this.newList.splice(evt.oldIndex, 1)[0] - // this.newList.splice(evt.newIndex, 0, tempIndex) - } - }) - }, - tableRowClassName({ row, rowIndex }) { - return 'custom-row' - }, - handleRequest() { - this.getMesOrderSearch().then(res => { - if (res.code === '200') { - this.getSelect() - this.getPrentOrganizationNoCompany() - } - }) - }, - async getPrentOrganizationNoCompany() { - const { data: res } = await PrentOrganizationNoCompany() - this.wkshopcodeArr = res - }, - async getMesOrderSearch() { - // let tempDate = this.form.createdate - // if (tempDate.length > 0) { - // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) - // } - - const data = { - wkshopcode: this.form.wkshopcode, // - mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜 - mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿 - partcode: this.form.partcode, // 浜у搧缂栫爜 - partname: this.form.partname, // 浜у搧鍚嶇О - partspec: this.form.partspec, // 浜у搧瑙勬牸 - creatuser: this.form.creatuser, // 鍒涘缓浜哄憳 - sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿 - saleordercode: this.form.saleordercode, // 閿�鍞鍗� - ordertype: this.form.ordertype, // 鍗曟嵁绫诲瀷 - createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿 - prop: this.form.prop, // 鎺掑簭瀛楁 - order: this.form.order, // 鎺掑簭瀛楁 - page: this.form.page, // 绗嚑椤� - rows: this.form.rows // 姣忛〉澶氬皯鏉� - } - const res = await MesOrderSearch(data) - this.tableData = res.data - this.total = res.count - - // this.form.createdate = tempDate - return { code: res.code } - }, - async getSelect() { - // 鑾峰彇浜у搧淇℃伅 - const { data: res1 } = await PartSelect() - this.partArr = res1 - - // 鑾峰彇缁勭粐 - const { data: res2 } = await PrentOrganization() - this.wkshopArr = res2 - - // 鑾峰彇宸ュ簭 - const { data: res3 } = await StepData() - this.stepSelectArr = res3 - }, - // 璁㈠崟鐘舵�佹敼鍙樻椂 - erporderstusChange(val) { - this.form.mesorderstus = val - }, - // 鎺掑簭鏀瑰彉鏃� - 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.getMesOrderSearch() - }, - sourceSortChange({ column, prop, order }) { - if (order === 'descending') { - order = 'desc' - } else if (order === 'ascending') { - order = 'asc' - } else { - order = 'desc' - } - this.sourceForm.order = order - this.sourceForm.prop = prop - this.getMesBadOrderSearch() - }, - // 鏌ヨ - search() { - this.getMesOrderSearch() - }, - - // 閲嶇疆 - reset(val) { - this.form.wkshopcode = '' - this.form.mesorderstus = 'ALLO' - this.form.mesordercode = '' - this.form.partcode = '' - this.form.partname = '' - this.form.partspec = '' - this.form.paydate = '' - this.form.creatuser = '' - this.form.sourceorder = '' - this.form.ordertype = '' - this.form.createdate = '' - this.getMesOrderSearch() - }, - // 鏂板鎸夐挳 - async add(operation) { - const { data: res } = await AddMesOrderCodeSearch() - this.dialogForm.mesordercode = res - this.operation = operation - this.dialogVisible = true - this.dialogForm.data_sources = 'MES' - - this.$nextTick(() => { - this.setSort() - }) - }, - // 宸ュ簭浠诲姟 - async check(row) { - // const { data: res } = await SearchWorkStep({ wo_code: row.wo_code }) - // this.taskTableData = res - // - // if (this.taskTableData.length === 0) { - // return this.$message.info('鏃犵敓浜т换鍔℃暟鎹紒') - // } - // this.dialogForm.mesordercode = res[0].wo_code - // this.dialogVisibleTask = true - }, - dialogVisibleBack() { - this.dialogVisibleTask = false - }, - handleSelectionChange(val) { - this.multipleSelection = val.map(i => i.wo_code) - }, - - selected(row, index) { - return row.status === 'NEW' && row.isstep === 'Y' - }, - // 娲惧彂 - send() { - this.$confirm('鏄惁纭娲惧彂?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - MesOrderDistribution(this.multipleSelection).then(res => { - if (res.code === '200') { - this.$notify.success('娲惧彂鎴愬姛!') - if (this.form.page > 1 && this.tableData.length === 1) { - this.form.page-- - } - this.getMesOrderSearch() - } - }) - }).catch(() => { - this.$notify.info('宸插彇娑堟淳鍙�') - }) - }, - // 鍒犻櫎鎸夐挳 - async del(row) { - if (row.status === 'START' || row.status === 'CLOSED' || row.status === 'SCHED') { - return this.$message.info('姝ゅ伐鍗曚笉鍙垹闄わ紒') - } - this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - const data = { - souceid: row.sourceid ? row.sourceid : '', - wocode: row.wo_code, - m_po: row.m_po, - orderqty: row.plan_qty - } - DeleteMesOrder(data).then(res => { - if (res.code === '200') { - this.$notify.success('鍒犻櫎鎴愬姛!') - if (this.form.page > 1 && this.tableData.length === 1) { - this.form.page-- - } - this.getMesOrderSearch() - } - }) - }).catch(() => { - this.$notify.info('宸插彇娑堝垹闄�') - }) - }, - - // 淇敼鎸夐挳 - async edit(operation, row) { - this.operation = operation - - this.dialogForm.data_sources = row.data_sources - this.dialogForm.mesorderstus = row.status - this.dialogForm.mesordercode = row.wo_code - this.dialogForm.ordertype = row.wotype - this.dialogForm.sourceorderid = row.sourceid - this.dialogForm.sourceorder = row.m_po - this.dialogForm.partcode = row.partcode - this.dialogForm.partname = row.partname - this.dialogForm.partspec = row.partspec - this.dialogForm.wkshopcode = row.wkshp_code - this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11) - this.dialogForm.mesqty = row.plan_qty - - const data = { - sourceid: this.dialogForm.sourceorderid, - sourcewo: this.dialogForm.sourceorder, - wocode: this.dialogForm.mesordercode, - data_sources: this.dialogForm.data_sources - } - const { data: res } = await UpdateMesOrderStepSearch(data) - this.dialogForm.mesmaxqty = res.canupdate_qty - this.stepTableData = res.stepdata - // res.stepdata.forEach(i => { - // this.stepTableData.push( - // { - // stepcode: i.step_code, - // stepname: i.stepname, - // stepprice: i.stepprice - // } - // ) - // }) - // this.stepSelectedValue = this.stepTableData.map(i => i.stepcode) - - this.dialogVisible = true - }, - // 宸ュ崟鍏抽棴浜嬩欢 - orderClose() { - console.log('宸ュ崟鍏抽棴浜嬩欢') - }, - // 瀵硅瘽妗嗕骇鍝佷俊鎭�兼敼鍙� - partcodeChangeDialog(val) { - console.log(val) - this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname - this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode - this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec - }, - // 瀵硅瘽妗嗗叧闂簨浠� - handleClose() { - this.dialogForm = { - mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜 - mesordercode: '', // 宸ュ崟缂栧彿 - ordertype: 'PO', // 宸ュ崟绫诲瀷 - sourceorderid: '', // 婧愬崟id - sourceorder: '', // 婧愬崟鍗曞彿 - - partcode: '', // 浜у搧缂栫爜 - partname: '', // 浜у搧鍚嶇О - partspec: '', // 浜у搧瑙勬牸 - - mesqty: '', // 宸ュ崟鏁伴噺 - wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜 - wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О - - deliverydate: '', // 浜や粯鏃堕棿 - data_sources: '' // 鏁版嵁鏉ユ簮 - } - this.stepSelectedValue = [] - this.stepTableData = [] - this.$refs.dialogForm.clearValidate() - }, - // 瀵硅瘽妗嗗彇娑� - dialogVisibleCancel() { - this.dialogVisible = false - }, - // 瀵硅瘽妗嗙‘璁� - dialogVisibleConfirm() { - this.$refs.dialogForm.validate(valid => { - if (valid) { - if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) { - return this.$message.info('婧愬崟鍗曞彿涓嶈兘涓虹┖锛�') - } - - if (this.dialogForm.data_sources === 'ERP' && this.dialogForm.mesmaxqty < this.dialogForm.mesqty) { - return this.$message.info('姝ゅ伐鍗曠殑鏈�澶т慨鏀规暟鍊间负锛�' + this.dialogForm.mesmaxqty) - } - - const workListSub = [] - this.stepTableData.forEach((i, j) => { - workListSub.push( - { - stepseq: j + 1, - stepcode: i.stepcode, - stepprice: i.stepprice, - isbott: j === 0 ? 'Y' : 'N', - isend: j === this.stepTableData.length - 1 ? 'Y' : 'N' - } - ) - }) - - const data = { - wostatus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵�� - wocode: this.dialogForm.mesordercode, // 宸ュ崟鍙� - wotype: this.dialogForm.ordertype, // 宸ュ崟绫诲瀷 - sourceid: this.dialogForm.sourceorderid, // 婧愬崟id - sourcewo: this.dialogForm.sourceorder, // 婧愬崟鍗曞彿 - partcode: this.dialogForm.partcode, // 浜у搧缂栧彿 - wkshopcode: this.dialogForm.wkshopcode, - woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺 - deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿 - data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮 - isstep: workListSub.length > 0 ? 'Y' : 'N', // - workListSub - } - - this.$store.state.app.buttonIsDisabled = true - AddUpdateMesOrder(data, this.operation === 'add' ? 'Add' : 'Update').then(res => { - if (res.code === '200') { - this.dialogVisible = false - // this.handlePrint() - this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '娲惧彂鎴愬姛锛�') - this.getMesOrderSearch() - this.$store.state.app.buttonIsDisabled = false - } else { - this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '娲惧彂澶辫触锛�') - } - }) - } - }) - }, - // 娲惧彂鎵撳嵃 - async sendPrint() { - const data = { - username: getCookie('admin'), - // username: getCookie('username'), - mesordercode: this.dialogForm.mesordercode - } - const res = await MesOrderPrintSearch1(data) - // const res = await PrintOrder(data) - if (res.code === '200') { - // 鍙傛暟鍏蜂綋璇存槑璇峰弬鑰冨府鍔╂枃妗d腑鐨勨�淲EB鎶ヨ〃(B/S鎶ヨ〃)->WEB鎶ヨ〃瀹㈡埛绔�->鍚姩鍙傛暟璇存槑鈥濋儴鍒� - var args = { - type: 'print', // preview print - showOptionDlg: false, // 濡傛灉涓嶆樉绀烘墦鍗板璇濇鑰岀洿鎺ユ墦鍗帮紝灏嗘琛屾敞閲婂幓鎺夊嵆鍙� - report: urlAddRandomNo('./static/grf/浜у搧娴佷紶鍗旳4.grf'), - data: res.data - } - webapp_ws_ajax_run(args) - } - }, - - // 鑾峰彇椤甸潰楂樺害 - getHeight() { - this.$nextTick(() => { - this.mainHeight = window.innerHeight - 85 - this.tableHeight = this.mainHeight - 245 - if (window.innerHeight < 769) { - this.tableHeight = this.tableHeight - 20 - } - this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367 - this.$refs.tableDataRef.doLayout() - }) - }, - // 宸ヨ壓璺嚎鏀惧ぇ闀滅偣鍑� - async searchClick() { - if (this.dialogForm.routecode === '') { - return this.$message.info('璇峰厛閫夋嫨宸ヨ壓璺嚎锛�') - } - this.dialogVisibleSearch = true - const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode }) - this.searchTableData = res - }, - dialogVisibleSearchBack() { - this.dialogVisibleSearch = false - }, - // 澶勭悊鎵撳嵃 - handlePrint(wo_code) { - // const number = Math.random() * Math.random() - // this.number = number === 0 ? (10 + Math.random()) : number - // console.log(number) - - const data2 = { - mesordercode: wo_code || this.dialogForm.mesordercode - } - MesOrderPrintSearch(data2).then(res2 => { - if (res2.code === '200') { - const res3 = res2.data.recordset - - this.tableDataPrint = res3 - this.formApprove.mesordercode = res3[0].wo_code - this.formApprove.m_po = res3[0].m_po || '/' - this.formApprove.partcode = res3[0].partcode - this.formApprove.partname = res3[0].partname - this.formApprove.partspec = res3[0].partspec || '/' - this.formApprove.plan_qty = res3[0].plan_qty - this.formApprove.routename = localStorage.getItem('username') // 鎵撳嵃浜哄憳 - this.formApprove.lm_date = res3[0].lm_date - - this.$nextTick(() => { - res3.forEach(i => { - this.bindQRCode(i.seq, i.stepqrcode, 'small') - }) - this.bindQRCode('0', this.formApprove.mesordercode, 'big') - - const div = document.getElementById('qrCode') - // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏� - div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴 - // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴 - }) - this.dialogVisibleApprove = true - } - }) - }, - dialogVisibleTaskClose() { - this.dialogForm.mesordercode = '' - }, - /* - * 鎵嬪姩鐐瑰嚮鎵撳嵃 - * */ - // 杩斿洖鎸夐挳 - dialogVisibleBackPreview() { - this.dialogVisibleApprove = false - }, - // dialogVisibleConfirmPreview(param) { - // this.$refs.dialogForm.validate(valid => { - // if (valid) { - // const data = { - // username: getCookie('admin'), - // mesordercode: this.dialogForm.mesordercode - // } - // MesOrderPrintSearch1(data).then(res => { - // if (res.code === '200') { - // this.dialogVisibleApprove = true - // console.log(res, 11) - // } - // }) - // } - // }) - // }, - // 鐢熸垚浜岀淮鐮� 宸ュ崟鎶ヨ〃浜岀淮鐮� - bindQRCode(seq, text, size) { - if (size === 'big') { - console.log(text, 1) - new QRCode(this.$refs.qrCodeDiv0, { - text: text, - width: size === 'big' ? 90 : 60, - height: size === 'big' ? 90 : 60, - // colorDark: '#333333', // 浜岀淮鐮侀鑹� - colorDark: '#000', // 浜岀淮鐮侀鑹� - colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 - correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H - }) - } else { - new QRCode(this.$refs['qrCodeDiv' + seq], { - text: text, - width: size === 'big' ? 90 : 60, - height: size === 'big' ? 90 : 60, - // colorDark: '#333333', // 浜岀淮鐮侀鑹� - colorDark: '#000', // 浜岀淮鐮侀鑹� - colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 - correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H - }) - } - }, - - dialogVisibleConfirmClose() { - // this.dialogForm.mesordercode = '' - this.formApprove.mesordercode = '' - this.formApprove.m_po = '' - this.formApprove.partcode = '' - this.formApprove.partname = '' - this.formApprove.partspec = '' - this.formApprove.plan_qty = '' - this.formApprove.routename = '' - this.formApprove.lm_date = '' - - // this.$refs.qrCodeDiv0.title = '' - - this.tableDataPrint = [] - }, - // 琛ユ墦鎸夐挳 - supplementClick() { - this.dialogVisibleTask = false - this.handlePrint() - }, - // 琛ユ墦灏忔爣绛� - supplementSmallClick(row) { - // let obj = {} - console.log(row, 21) - // this.taskTableData.forEach((item, index) => { - this.tableDataDetail.forEach((item, index) => { - if (item.seq === row.seq) { - console.log(item) - this.qrForm = { - // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode, - qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode, - // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty, - startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty, - wo_code: item.wo_code, - partcode: item.partcode, - partname: item.partname, - // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname, - nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname, - operator: getCookie('username'), - operatorTime: handleDatetime2(new Date()) - } - this.$nextTick(() => { - console.log(this.qrForm.qrvalue, 3333) - this.bindQRCode2(this.qrForm.qrvalue) - - const div = document.getElementById('qrCode2') - // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏� - div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴 - // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴 - }) - } - }) - - // this.dialogVisibleTask = false - this.dialogVisible2 = true - console.log(this.qrForm, 1111) - }, - // 琛ユ墦鐢熶骇鍏ュ簱鏉$爜 - async getProductInHouseLabCode(ordercode) { - const res = await ProductInHouseLabCode({ ordercode }) - console.log(res) - this.isLastPrint = true - - this.lastPrintArr = res.data - - this.dialogVisible2 = true - - // 鐢熶骇浜岀淮鐮� - this.$nextTick(() => { - this.lastPrintArr.forEach((i, index) => { - i.checked = false - new QRCode(this.$refs.qrCodeDiv2[index], { - text: i.inbarcode, - width: this.printSize !== 2 ? 60 : 55, - height: this.printSize !== 2 ? 60 : 55, - colorDark: '#000', // 浜岀淮鐮侀鑹� - colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 - correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H - }) - }) - }) - }, - dialogVisible2Close() { - this.qrForm.qrvalue = '' - this.qrForm.startqty = '' - this.qrForm.wo_code = '' - this.qrForm.partcode = '' - this.qrForm.partname = '' - this.qrForm.nextstepname = '' - this.qrForm.operator = '' - this.qrForm.operatorTime = '' - // this.$refs.qrCodeDiv2 = '' - this.isLastPrint = false - this.lastPrintArr = [] - this.lastPrintArrSelected = [] - }, - // 鐢熸垚浜岀淮鐮� 宸ュ簭鏍囩浜岀淮鐮� - bindQRCode2(text) { - new QRCode(this.$refs.qrCodeDiv2, { - text: text, - width: this.printSize !== 2 ? 60 : 55, - height: this.printSize !== 2 ? 60 : 55, - colorDark: '#000', // 浜岀淮鐮侀鑹� - colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 - correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H - }) - }, - // 鎶ュ簾琛ュ崟鎯呭喌涓嬪彲鐐瑰嚮閫夋嫨 - mesordertsourcesearchclick() { - if (this.dialogForm.ordertype === 'PO') { - return this.$message.info('宸ュ崟绫诲瀷涓烘姤搴熻ˉ鍗曟儏鍐典笅鍙�夋嫨锛�') - } - - this.getMesBadOrderSearch() - - this.dialogVisibleSource = true - }, - async getMesBadOrderSearch() { - // let tempDate2 = this.sourceForm.paystartdate - // if (tempDate2.length > 0) { - // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) - // } - - let tempDate = this.sourceForm.createdate - if (tempDate.length > 0) { - tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) - } - - const data = { - mesordercode: this.sourceForm.mesordercode, // 宸ュ崟缂栧彿 - sourceorder: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙� - saleordercode: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙� - partcode: this.sourceForm.partcode, // 浜у搧缂栫爜 - partname: this.sourceForm.partname, // 浜у搧鍚嶇О - partspec: this.sourceForm.partspec, // 浜у搧瑙勬牸 - // paystartdate: tempDate2, // 浜や粯鏃堕棿 - // payenddate: tempDate, // 浜や粯鏃堕棿 - creatuser: this.sourceForm.creatuser, // 鍒涘缓浜哄憳 - createdate: tempDate, // 鍒涘缓鏃堕棿 - - prop: this.sourceForm.prop, // 鎺掑簭瀛楁 - order: this.sourceForm.order, // 鎺掑簭瀛楁 - page: this.sourceForm.page, // 绗嚑椤� - rows: this.sourceForm.rows // 姣忛〉澶氬皯鏉� - - } - - const res = await MesBadOrderSearch(data) - this.sourceTableData = res.data - this.sourceFormTotal = res.count - }, - // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭� - // getCurrentRowSource2(id) { - // this.radioSelectedId = id - // }, - // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭� - getCurrentRowSource(row, event, column) { - this.radioSelectedId = row.id - this.dialogForm.mesqty = row.bad_qty - }, - sourceSearch() { - this.getMesBadOrderSearch() - }, - sourceReset() { - this.sourceForm.mesordercode = '' - this.sourceForm.sourceorder = '' - this.sourceForm.partcode = '' - this.sourceForm.partname = '' - this.sourceForm.partspec = '' - // this.sourceForm.paystartdate = '' - // this.sourceForm.payenddate = '' - this.sourceForm.creatuser = '' - this.sourceForm.createdate = '' - this.getMesBadOrderSearch() - }, - dialogVisibleSourceClose() { - this.radioSelectedId = '' - - this.sourceForm.mesordercode = '' - this.sourceForm.sourceorder = '' - this.sourceForm.partcode = '' - this.sourceForm.partname = '' - this.sourceForm.partspec = '' - this.sourceForm.paystartdate = '' - this.sourceForm.payenddate = '' - this.sourceForm.creatuser = '' - this.sourceForm.createdate = '' - - this.isExpandDialog = false - this.sourceTableData = [] - }, - dialogVisibleSourceBack() { - this.dialogVisibleSource = false - }, - dialogVisibleSourceConfirm() { - console.log(this.radioSelectedId) - this.sourceTableData.forEach(item => { - if (item.id === this.radioSelectedId) { - this.dialogForm.sourceorder = item.wo_code - this.dialogForm.partcode = item.partcode - this.dialogForm.partspec = item.partspec - } - }) - this.dialogVisibleSource = false - }, - mesordertypeChange(val) { - if (val === 'PO') { - this.dialogForm.sourceorder = '' - this.dialogForm.partcode = '' - this.dialogForm.partspec = '' - } - }, - /* 鍏宠仈宸ヨ壓璺嚎妯″潡*/ - // 鍏宠仈宸ヨ壓璺嚎 - async routeClick(row) { - console.log(row) - // this.defaultroute_code = row.default_route - this.dialogFormRoute.projectCode = row.partcode - this.dialogFormRoute.projectName = row.partname - this.dialogVisibleRoute = true - const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode }) - this.dialogFormRoute.routeOperationArr = res - - this.dialogFormRoute.routeOperationArr.forEach((item, index) => { - item.isSelected1 = false - item.isSelected2 = false - if (index === 0) { - item.isSelected1 = true - this.projectTableData = item.Data - } - if (item.flag === 'Y') { - item.isSelected2 = true - this.$nextTick(() => { - $('input:checkbox').eq(index).prop('checked', true) - }) - } - }) - - this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y') - }, - // 瀵硅瘽妗嗗叧闂� - handleCloseRoute() { - this.dialogFormRoute.routeOperationArr = [] - this.defaultroute_codeArr = [] - this.defaultroute_code = '' - this.projectTableData = [] - }, - // 鍙栨秷 - routeDialogVisibleCancel() { - this.dialogVisibleRoute = false - }, - // 纭畾 - async routeDialogVisibleConfirm() { - const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) - if (this.defaultroute_code === '' && temp.length > 0) { - return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�') - } - - // 鎻愪氦鏍煎紡 - const data = [] - this.dialogFormRoute.routeOperationArr.forEach(item => { - if (item.isSelected2) { - data.push({ code: item.code, name: item.name }) - } - }) - - const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data) - if (res.code === '200') { - this.$message.success('淇濆瓨鎴愬姛锛�') - await this.getMesOrderSearch() - this.dialogVisibleRoute = false - } - }, - // 澶х洅瀛愮偣鍑讳簨浠� - myCheckboxClick(val) { - console.log(val, 1) - this.dialogFormRoute.routeOperationArr.forEach(item => { - item.isSelected1 = val.code === item.code - }) - - this.projectTableData = val.Data - }, - // 灏忕洅瀛愮偣鍑讳簨浠� - myCheckboxInputClick(val) { - console.log(val, 2) - val.isSelected2 = !val.isSelected2 - - this.dialogFormRoute.routeOperationArr.forEach((item, index) => { - if (val.code === item.code) { - item.flag = !item.flag - } - }) - if (val.code === this.defaultroute_code) { - this.defaultroute_code = '' - } - this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) - }, - // 琛岀偣鍑讳簨浠� - async rowClick(row, event, column) { - const data = { - sourceid: row.sourceid, - sourcewo: row.m_po, - wocode: row.wo_code, - data_sources: row.data_sources - } - const { data: res } = await UpdateMesOrderStepSearch(data) - this.tableDataDetail = res.stepdata - }, - // 宸ュ簭鍒犻櫎 - stepDel(row) { - console.log(row) - const index = this.stepSelectedValue.findIndex(i => i === row.stepcode) - this.stepSelectedValue.splice(index, 1) - }, - // 鎵撳嵃宸ュ崟 - printOrder() { - - }, - // 閫夋嫨鎵撳嵃灏哄鐨勫ぇ灏忓�兼敼鍙� - printSizeChange(val) { - this.$nextTick(() => { - this.bindQRCode2(this.qrForm.qrvalue) - }) - }, - printMe2StylePadding(val) { - if (val === 0) { - return { paddingLeft: '10px', paddingTop: '5px' } - } - if (val === 5) { - return { paddingLeft: '15px', paddingTop: '7px' } - } - }, - - inbarcodeChange(val, item) { - // 褰� lastPrintArrSelected涓湭鏈夊綋鍓嶅嬀閫夌殑鍊兼槸 璧皃ush item 鍚﹀垯璧拌繃婊ゆ帀item - if (val) { - this.lastPrintArrSelected.push(item) - } else { - this.lastPrintArrSelected = this.lastPrintArrSelected.filter(i => i.inbarcode !== item.inbarcode) - } - - // 鐢熶骇浜岀淮鐮� - this.$nextTick(() => { - this.lastPrintArrSelected.forEach((i, index) => { - console.log(i.inbarcode, 'i.inbarcode') - new QRCode(this.$refs.qrCodeDiv3[index], { - text: i.inbarcode, - width: 60, - height: 60, - colorDark: '#000', // 浜岀淮鐮侀鑹� - colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 - correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H - }) - }) - - // const div = document.getElementById('qrCode3') - // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶搴曢儴 - - this.$forceUpdate() - }, 500) - }, - stepSelectedValueChange(val) { - // console.log(val, 123) - }, - getSummaries(param) { - const { columns, data } = param - const sums = [] - const i = 8 - columns.forEach((column, index) => { - if (index === i) { - sums[index] = '鎬绘暟' - return - } - const values = data.map(item => Number(item[column.property])) - if (column.property === 'plan_qty') { - sums[index] = values.reduce((prev, curr) => { - const value = Number(curr) - if (!isNaN(value)) { - return prev + curr - // return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100 - } - }, 0) - - sums[index] += ' 鍗�' - } - }) - - this.$nextTick(() => { - this.$refs.tableDataRef.doLayout() - }) - return sums - } - } -} -</script> -<style> -.sortable-ghost { - opacity: .8; - color: #fff !important; - background: #42b983 !important; -} -</style> -<style lang="scss" scoped> -$main_color: #42b983; - -.dialogVisibleRoute { - .myCheckboxGroup { - display: flex; - flex-wrap: wrap; - - .myCheckbox { - //border: 1px solid $main_color; - border: 1px solid #eee; - display: flex; - min-width: 100px; - padding: 10px; - margin: 10px 30px 0 0; - border-radius: 5px; - cursor: default; - - .myCheckboxInput { - margin: 1px 5px 0 0; - cursor: pointer; - } - - } - - //.myCheckbox{ - // border: 1px solid $main_color; - //} - - input[type=checkbox] { - cursor: pointer; - position: relative; - width: 14px; - height: 14px; - font-size: 14px; - } - - input[type=checkbox]::after { - position: absolute; - top: 0; - //color: rgb(130, 35, 35); - color: $main_color; - width: 14px; - height: 14px; - display: inline-block; - visibility: visible; - padding-left: 0px; - text-align: center; - content: ' '; - border-radius: 3px - } - - input[type=checkbox]:checked::after { - //content: "鉁�"; - content: "鈭�"; - color: #fff; - font-size: 12px; - font-weight: bold; - background-color: $main_color; - } - } -} - -.dialogVisibleRoute { - ::v-deep .el-dialog__body { - padding: 20px 20px !important; - } -} - -.defaultroute_code ::v-deep .el-input__suffix-inner { - display: flex; - align-items: center; - justify-content: center; - margin-top: -3px; -} - -.el-date-editor { - font-size: 14px; -} - -::v-deep .el-dialog__body { - padding: 20px 100px !important; -} - -.dialogVisibleSearch ::v-deep .el-dialog__body { - padding: 20px 20px !important; -} - -.dialogVisibleConfirmClass ::v-deep .el-dialog__body { - padding: 20px 20px !important; -} - -::v-deep .el-table .caret-wrapper { - transform: scale(0.8); -} - -::v-deep .el-button--text { - color: $main_color; - font-size: 14px; - cursor: pointer; -} - -::v-deep .el-radio.is-bordered + .el-radio.is-bordered { - margin: 10px 30px 0px 0; -} - -.body ::v-deep .el-form-item { - margin-bottom: 0; -} - -.elForm ::v-deep .el-form-item { - margin-bottom: 0; -} - -.elTableDiv { - ::v-deep .el-radio__label { - display: none; - } - -} - -.el-table::before { - height: 0; -} - -//.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit { -// border-bottom: 2px solid #000 ; -// //outline: #000 solid 2px !important; -//} - -.tableDataPrint ::v-deep div.cell { - display: flex !important; - align-items: center !important; - justify-content: center !important; -} - -.formContent { - width: 240px; -} - -</style> - -<style media="print"> -/*@media print {*/ -@page { - size: auto; - margin: 3mm; -} - -</style> -<style> -.formContent .el-form-item__label { - color: #000 !important; -} -</style> -<!--鍏叡椤甸潰鏍峰紡--> -<style lang="scss" scoped> -$main_color: #42b983; - -::v-deep .el-range-input { - font-size: 14px !important; -} - -::v-deep .el-range__icon { - line-height: 28px !important; -} - -::v-deep .el-range-separator { - line-height: 28px !important; -} - -::v-deep .el-range-input { - font-size: 14px; -} - -::v-deep .el-range-separator { - display: flex; - justify-content: center; - align-items: center; -} - -//::v-deep .el-button--primary, .el-button--default, .el-button--info { -// height: 34px; -// display: flex; -// align-items: center; -// padding: 0 15px; -//} - -::v-deep .el-button--primary { - //background-color: $main_color !important; -} - -::v-deep .el-button--default { - background-color: #f8f8fa; - border: none; -} - -::v-deep .el-input__inner { - height: 34px; - line-height: 34px; - //color: #a7a7a7; -} - -::v-deep .el-dialog__body { - padding: 20px 100px !important; -} - -::v-deep .dialogVisibleRoles .el-dialog__body { - padding: 20px 20px !important; -} - -::v-deep .importPickerClass .el-dialog__body { - padding: 20px 20px !important; -} - -::v-deep .el-dialog__footer { - display: flex; - justify-content: flex-end; -} - -::v-deep .el-table .caret-wrapper { - transform: scale(0.8); -} - -::v-deep .cell { - display: flex; - align-items: center; - justify-content: space-between; -} - -::v-deep .el-table::before { - height: 0; -} - -::v-deep .el-table__body-wrapper { - background-color: #f8f8fa; -} - -::v-deep .el-table__body .el-table__row.hover-row td { - background-color: #eaecef; -} - -::v-deep .el-form--inline .el-form-item__label { - color: #a7a7a7; -} - -.body ::v-deep .el-divider { - border: 1px solid #eee; - width: 99%; - margin: 10px auto; -} - -.body ::v-deep .el-form-item { - margin-bottom: 0; -} - -.userDialogVisible ::v-deep .el-form-item { - margin-bottom: 0; -} - -.dateMini { - ::v-deep .el-input__inner { - line-height: 34px; - height: 34px; - width: 200px; - display: flex; - font-size: 14px !important; - align-items: center !important; - } - - ::v-deep .el-input__prefix { - margin-top: -3px; - } - - //::v-deep .el-range__icon{ - // line-height: 28px; - //} -} - -::v-deep .el-select__caret { - display: flex; - align-items: center; - justify-content: center; -} - -.tableFixed { - ::v-deep .el-table__fixed-right { - height: 100% !important; - } - - ::v-deep .el-table__fixed { - height: 100% !important; - } -} -</style> -<style> - -.el-table .custom-row { - background: #f8f8fa; -} -</style> +<template> + <div> + <div class="body" :style="{height:mainHeight+'px'}"> + + <!-- <div class="bodyTopButtonGroup" style="justify-content: space-between">--> + <!-- <div style="display: flex">--> + <!-- <!– <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>–>--> + <!-- <!– <el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>–>--> + <!-- </div>--> + + <!-- <!– <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>–>--> + <!-- </div>--> + + <div class="bodyTopFormGroup" style="margin-top: 10px;"> + <el-form + ref="form" + :model="form" + label-width="100px" + inline + style="display: flex;" + > + <div class="elForm"> + <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-select + v-model="form.mesorderstus" + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + disabled + filterable + @change="erporderstusChange" + > + <el-option + v-for="item in erporderstusArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;"> + <el-input v-model="form.mesordercode" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="婧愬崟鍗曞彿" style="display: flex;"> + <el-input v-model="form.sourceorder" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="閿�鍞鍗�" style="display: flex;"> + <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="鍗曟嵁绫诲瀷" style=" display: flex;"> + <el-select + v-model="form.ordertype" + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + > + <!-- @change="mesordertypeChange"--> + <el-option + v-for="item in ordertypeArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;"> + <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;"> + <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;"> + <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;"> + <el-input v-model="form.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandForm" label="鍒涘缓鏃堕棿" style=" display: flex;"> + <!-- <el-date-picker--> + <!-- v-model="form.createdate"--> + <!-- type="daterange"--> + <!-- :clearable="false"--> + <!-- range-separator="~"--> + <!-- start-placeholder="寮�濮嬫棩鏈�"--> + <!-- end-placeholder="缁撴潫鏃ユ湡"--> + <!-- size="mini"--> + <!-- />--> + <el-date-picker + v-model="form.createdate" + type="date" + size="mini" + :clearable="false" + class="dateMini" + format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + /> + </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" + > + <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" + class="tableFixed" + :data="tableData" + :height="isExpandForm?tableHeight:(tableHeight+80)+'px'" + border + :summary-method="getSummaries" + show-summary + :row-class-name="tableRowClassName" + :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + @sort-change="sortChange" + @selection-change="handleSelectionChange" + > + <!-- @row-click="rowClick"--> + <!-- <el-table-column--> + <!-- type="selection"--> + <!-- width="50"--> + <!-- :selectable="selected"--> + <!-- />--> + <el-table-column + prop="rowNum" + width="50" + label="搴忓彿" + fixed + /> + <el-table-column + prop="status" + label="宸ュ崟鐘舵��" + sortable="custom" + width="110" + show-tooltip-when-overflow + > + <template slot-scope="{row}"> + <div v-if="row.status==='NEW'">鏂板伐鍗�</div> + <!-- <div v-if="row.status==='CREATING'">鎵ц涓�</div>--> + <!-- <div v-if="row.status==='CREATED'">宸插叧闂�</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="宸ュ崟缂栧彿" + show-tooltip-when-overflow + sortable="custom" + min-width="160" + /> + <el-table-column + prop="m_po" + label="婧愬崟鍗曞彿" + sortable="custom" + show-tooltip-when-overflow + min-width="160" + > + <template slot-scope="{row}"> + <div v-if="row.m_po">{{ row.m_po }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="saleOrderCode" + label="閿�鍞鍗�" + sortable="custom" + show-tooltip-when-overflow + min-width="160" + > + <template slot-scope="{row}"> + <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="wotype" + label="鍗曟嵁绫诲瀷" + sortable="custom" + show-tooltip-when-overflow + min-width="120" + > + <template slot-scope="{row}"> + <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div> + <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="partcode" + label="浜у搧缂栫爜" + show-tooltip-when-overflow + sortable="custom" + min-width="120" + /> + <el-table-column + prop="partname" + min-width="150" + label="浜у搧鍚嶇О" + show-tooltip-when-overflow + sortable="custom" + /> + <el-table-column + prop="partspec" + label="浜у搧瑙勬牸" + sortable="custom" + width="110" + show-tooltip-when-overflow + > + <template slot-scope="{row}"> + <div v-if="row.partspec">{{ row.partspec }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="plan_qty" + label="宸ュ崟鏁�" + sortable="custom" + show-tooltip-when-overflow + width="100" + /> + <el-table-column + prop="priuserdefnvc1" + label="瀹㈡埛鍚嶇О" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc6" + label="瀹㈡埛缂栫爜" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc2" + label="瀵瑰唴鍚嶇О" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc3" + label="CTP鏃ユ湡" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc4" + label="閽㈠垁缂栧彿" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="priuserdefnvc5" + label="鐩掑瀷" + width="110" + sortable="custom" + > + <template slot-scope="{row}"> + {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }} + </template> + </el-table-column> + <el-table-column + prop="wkshp_name" + label="鐢熶骇杞﹂棿" + show-tooltip-when-overflow + sortable="custom" + width="120" + > + <template slot-scope="{row}"> + <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="saleOrderDeliveryDate" + label="棰勮浜や粯鏃ユ湡" + sortable="custom" + width="130" + > + <template slot-scope="{row}"> + <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <!-- <el-table-column--> + <!-- prop="data_sources"--> + <!-- show-tooltip-when-overflow--> + <!-- label="鏁版嵁鏉ユ簮"--> + <!-- sortable="custom"--> + <!-- width="120"--> + <!-- />--> + + <el-table-column + prop="lm_user" + show-tooltip-when-overflow + label="鍒涘缓浜哄憳" + sortable="custom" + width="120" + /> + <el-table-column + prop="lm_date" + label="鍒涘缓鏃堕棿" + show-tooltip-when-overflow + width="160" + sortable="custom" + /> + <el-table-column + label="鎿嶄綔" + width="120" + fixed="right" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <!-- <el-tooltip class="item" effect="dark" content="淇敼" placement="top">--> + <!-- <i--> + <!-- class="el-icon-edit-outline"--> + <!-- :style="{color:$store.state.settings.theme}"--> + <!-- @click.stop="edit('edit',row)"--> + <!-- />--> + <!-- </el-tooltip>--> + + <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> + <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" /> + </el-tooltip> + + <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top"> + <!-- <i--> + <!-- class="el-icon-tickets"--> + <!-- style="cursor: pointer;color: #42b983;margin-right: 15px"--> + <!-- @click="check(row)"--> + <!-- />--> + <i + :style="{color:$store.state.settings.theme}" + class="el-icon-printer" + style="cursor: pointer;margin-right: 15px" + @click.stop="handlePrint(row.wo_code)" + /> + </el-tooltip> + + <el-tooltip class="item" effect="dark" content="璇︽儏" placement="top"> + <i + class="el-icon-view" + style="cursor: pointer;" + :style="{color:$store.state.settings.theme}" + @click.stop="edit('view',row)" + /> + </el-tooltip> + + </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,jumper" + popper-class="select_bottom" + @pagination="getMesOrderSearch" + /> + + <!-- <div class="elTableDiv">--> + <!-- <el-table--> + <!-- :data="tableDataDetail"--> + <!-- border--> + <!-- height="210px"--> + <!-- :row-class-name="tableRowClassName"--> + <!-- highlight-current-row--> + <!-- :header-cell-style="this.$headerCellStyle"--> + <!-- :cell-style="this.$cellStyle"--> + <!-- >--> + <!-- <!– <el-table-column–>--> + <!-- <!– width="50"–>--> + <!-- <!– type="index"–>--> + <!-- <!– prop="搴忓彿"–>--> + <!-- <!– fixed–>--> + <!-- <!– /> –>--> + <!-- <el-table-column--> + <!-- width="50"--> + <!-- prop="seq"--> + <!-- label="搴忓彿"--> + <!-- fixed--> + <!-- />--> + <!-- <el-table-column--> + <!-- prop="wo_code"--> + <!-- show-tooltip-when-overflow--> + <!-- label="宸ュ崟缂栧彿"--> + <!-- width="160"--> + <!-- />--> + + <!-- <!– <el-table-column–>--> + <!-- <!– prop="partcode"–>--> + <!-- <!– label="浜у搧缂栫爜"–>--> + <!-- <!– width="150"–>--> + <!-- <!– show-tooltip-when-overflow–>--> + <!-- <!– />–>--> + <!-- <!– <el-table-column–>--> + <!-- <!– prop="partname"–>--> + <!-- <!– label="浜у搧鍚嶇О"–>--> + <!-- <!– width="200"–>--> + <!-- <!– show-tooltip-when-overflow–>--> + <!-- <!– />–>--> + + <!-- <el-table-column--> + <!-- label="宸ュ簭缂栫爜"--> + <!-- prop="step_code"--> + <!-- show-tooltip-when-overflow--> + <!-- width="150"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="宸ュ簭鍚嶇О"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="stepname"--> + <!-- width="150"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="宸茬敓浜ф暟閲�"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="produceq_qty"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="鍚堟牸鏁伴噺"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="good_qty"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="涓嶈壇鏁伴噺"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="ng_qty"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="宸ュ簾鏁伴噺"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="laborbad_qty"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="鏂欏簾鏁伴噺"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="materielbad_qty"--> + <!-- />--> + <!-- <el-table-column--> + <!-- label="寰呬骇鏁伴噺"--> + <!-- show-tooltip-when-overflow--> + <!-- prop="delive_qty"--> + <!-- />--> + <!-- <!– <el-table-column–>--> + <!-- <!– label="鎿嶄綔"–>--> + <!-- <!– width="120"–>--> + <!-- <!– fixed="right"–>--> + <!-- <!– >–>--> + <!-- <!– <template slot-scope="{row}">–>--> + <!-- <!– <div class="operationClass">–>--> + <!-- <!– <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ簭" placement="top">–>--> + <!-- <!– <i–>--> + <!-- <!– v-if="tableDataDetail.length!==row.seq"–>--> + <!-- <!– class="el-icon-printer"–>--> + <!-- <!– :style="{color:$store.state.settings.theme}"–>--> + <!-- <!– style="cursor: pointer;margin-right: 15px"–>--> + <!-- <!– @click="supplementSmallClick(row)"–>--> + <!-- <!– />–>--> + <!-- <!– </el-tooltip>–>--> + <!-- <!– <el-tooltip class="item" effect="dark" content="琛ユ墦鐢熶骇鍏ュ簱鏉$爜" placement="top">–>--> + <!-- <!– <i–>--> + <!-- <!– v-if="tableDataDetail.length===row.seq"–>--> + <!-- <!– class=" el-icon-camera"–>--> + <!-- <!– :style="{color:$store.state.settings.theme}"–>--> + <!-- <!– style="cursor: pointer;margin-right: 15px"–>--> + <!-- <!– @click="getProductInHouseLabCode(row.wo_code)"–>--> + <!-- <!– />–>--> + <!-- <!– </el-tooltip>–>--> + <!-- <!– </div>–>--> + <!-- <!– </template>–>--> + <!-- <!– </el-table-column>–>--> + <!-- </el-table>--> + <!-- </div>--> + </div> + <!--鏂板娲惧彂瀵硅瘽妗�--> + <el-dialog + v-el-drag-dialog + :title="operation==='add'?'鏂板':'娲惧彂'" + :visible.sync="dialogVisible" + width="1200px" + top="8vh" + :close-on-click-modal="false" + @closed="handleClose" + @close="handleClose" + > + <el-form + ref="dialogForm" + inline + :rules="dialogFormRules" + :model="dialogForm" + label-width="110px" + > + + <el-divider content-position="left">鍩烘湰淇℃伅</el-divider> + + <el-form-item + label="宸ュ崟鐘舵��" + prop="mesorderstus" + > + <el-select + v-model="dialogForm.mesorderstus" + disabled + filterable + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in erporderstusArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + + <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode"> + <!-- <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />--> + <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" /> + </el-form-item> + <!-- <div style="display: flex">--> + <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus"> + <el-select + v-model="dialogForm.ordertype" + :popper-append-to-body="false" + style="width: 200px" + :disabled="operation!=='add'" + placeholder="璇烽�夋嫨" + @change="mesordertypeChange" + > + <el-option + v-for="item in ordertypeArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <!-- <div style="display: flex;flex-wrap: nowrap">--> + <el-form-item label="婧愬崟鍗曞彿"> + <el-input + v-model="dialogForm.sourceorder" + :disabled="dialogForm.ordertype==='PO'" + style="width: 200px" + > + <el-button + slot="append" + icon="el-icon-search" + :disabled="operation!=='add'||dialogForm.ordertype==='PO'" + @click="mesordertsourcesearchclick" + /> + </el-input> + </el-form-item> + <!-- <el-button--> + <!-- v-waves--> + <!-- type="primary"--> + <!-- style="padding: 0 10px;margin-left: -8px;margin-top: 3px"--> + <!-- class="el-icon-search"--> + <!-- :disabled="operation!=='add'||dialogForm.ordertype==='PO'"--> + <!-- @click="mesordertsourcesearchclick"--> + <!-- />--> + <!-- </div>--> + <!-- </div>--> + <el-form-item label="宸ュ崟鏁伴噺" prop="mesqty"> + <el-input + v-model="dialogForm.mesqty" + oninput="value=value.replace(/[^\d]/g,'')" + style="width: 200px" + /> + <!-- oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"--> + </el-form-item> + <el-form-item + label="浜у搧鍚嶇О/缂栫爜" + prop="partcode" + > + <el-select + v-model="dialogForm.partcode" + filterable + :disabled="operation!=='add'" + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + @change="partcodeChangeDialog" + > + <el-option + v-for="item in partArr" + :key="item.partcode" + :label="item.partname+'/'+item.partcode" + :value="item.partcode" + /> + </el-select> + </el-form-item> + <!-- <el-form-item v-if="operation!=='add'" label="浜у搧鍚嶇О" prop="partname">--> + <!-- <el-input v-model="dialogForm.partname" disabled style="width: 200px" />--> + <!-- </el-form-item>--> + <!-- <el-form-item v-if="operation!=='add'" label="浜у搧缂栫爜">--> + <!-- <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />--> + <!-- </el-form-item>--> + <el-form-item label="浜у搧瑙勬牸" prop="partspec"> + <el-input v-model="dialogForm.partspec" disabled style="width: 200px" /> + </el-form-item> + <!-- :disabled="dialogForm.partcode===''"--> + <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode"> + <el-select + v-model="dialogForm.wkshopcode" + filterable + :popper-append-to-body="false" + style="width: 200px;" + placeholder="璇烽�夋嫨杞﹂棿" + > + <el-option + v-for="item in wkshopArr" + :key="item.torg_code" + :label="item.torg_name" + :value="item.torg_code" + /> + </el-select> + </el-form-item> + <el-form-item label="棰勮浜や粯鏃ユ湡" prop="deliverydate"> + <el-date-picker + v-model="dialogForm.deliverydate" + type="date" + size="mini" + :clearable="false" + class="dateMini" + :picker-options="pickerOptions" + format="yyyy-MM-dd" + value-format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + /> + <!-- :disabled="dialogForm.deliverydate"--> + </el-form-item> + + <el-divider content-position="left">宸ュ簭淇℃伅</el-divider> + + <div style="display: flex;align-items: center"> + <!-- <div style="font-weight: bolder">宸ュ簭閫夋嫨锛�</div>--> + <!-- <el-drag-select--> + <!-- v-model="stepSelectedValue"--> + <!-- style="width:930px;"--> + <!-- multiple--> + <!-- placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"--> + <!-- @change="stepSelectedValueChange"--> + <!-- >--> + <!-- <el-option--> + <!-- v-for="item in stepSelectArr"--> + <!-- :key="item.stepcode"--> + <!-- :label="item.stepname"--> + <!-- :value="item.stepcode"--> + <!-- />--> + <!-- </el-drag-select>--> + </div> + + <el-table + ref="stepTableDataRef" + :data="stepTableData" + border + :row-class-name="tableRowClassName" + height="300" + style="width: 100%;margin-top: 15px;" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + row-key="stepcode" + > + <el-table-column + type="index" + label="搴忓彿" + width="50" + /> + <!-- <el-table-column--> + <!-- prop="stepcode"--> + <!-- show-tooltip-when-overflow--> + <!-- label="宸ュ簭缂栫爜"--> + <!-- />--> + <el-table-column + prop="stepname" + label="宸ュ簭鍚嶇О" + show-tooltip-when-overflow + /> + <el-table-column + prop="stepprice" + label="鐢熶骇鍗曚环" + show-tooltip-when-overflow + > + <!-- <template slot-scope="{row}">--> + <!-- <el-input--> + <!-- v-model="row.stepprice"--> + <!-- placeholder="璇疯緭鍏ュ伐搴忓崟浠�"--> + <!-- oninput="value=value.replace(/[^0-9.]/g,'')"--> + <!-- style="width: 100%"--> + <!-- @click.stop=""--> + <!-- />--> + <!-- </template>--> + </el-table-column> + <el-table-column + prop="produceq_qty" + label="宸茬敓鎴愭暟閲�" + show-tooltip-when-overflow + /> + <el-table-column + prop="good_qty" + label="鍚堟牸鏁伴噺" + show-tooltip-when-overflow + /> + <el-table-column + prop="ng_qty" + label="涓嶈壇鏁伴噺" + show-tooltip-when-overflow + /> + <el-table-column + prop="laborbad_qty" + label="宸ュ簾鏁伴噺" + show-tooltip-when-overflow + /> + <el-table-column + prop="materielbad_qty" + label="鏂欏簾鏁伴噺" + show-tooltip-when-overflow + /> + <el-table-column + prop="delive_qty" + label="寰呬骇鏁伴噺" + show-tooltip-when-overflow + /> + <!-- <el-table-column--> + <!-- label="鎿嶄綔"--> + <!-- width="120"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div class="operationClass">--> + <!-- <!– <el-tooltip class="item" effect="dark" content="绉诲姩" placement="top">–>--> + <!-- <i--> + <!-- class="el-icon-rank"--> + <!-- :style="{color:$store.state.settings.theme}"--> + <!-- style="cursor: move"--> + <!-- />--> + <!-- <!– </el-tooltip>–>--> + <!-- <!– @click="edit('edit',row)"–>--> + + <!-- <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: 15px;"--> + <!-- @click="stepDel(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 v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">棰勮</el-button>--> + <el-button + v-if="operation!=='view'" + v-waves + type="primary" + :loading="$store.state.app.buttonIsDisabled" + :disabled="$store.state.app.buttonIsDisabled" + @click="dialogVisibleConfirm" + >纭� 瀹�</el-button> + </div> + </span> + </el-dialog> + + <!-- 宸ュ簭浠诲姟瀵硅瘽妗�--> + <el-dialog + v-el-drag-dialog + title="宸ュ簭浠诲姟" + :visible.sync="dialogVisibleTask" + width="840px" + top="15vh" + class="dialogVisibleSearch" + :close-on-click-modal="false" + @close="dialogVisibleTaskClose" + > + <el-button + v-waves + style="margin-bottom: 15px" + type="primary" + @click="supplementClick" + >琛ユ墦 + </el-button> + <el-table + :data="taskTableData" + border + :row-class-name="tableRowClassName" + height="300" + style="width: 100%;" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + > + <el-table-column + prop="seq" + width="50" + label="搴忓彿" + fixed + /> + <el-table-column + prop="wo_code" + show-tooltip-when-overflow + label="宸ュ崟缂栧彿" + width="200" + /> + <el-table-column + prop="stepcode" + label="宸ュ簭缂栫爜" + show-tooltip-when-overflow + /> + <el-table-column + prop="stepname" + show-tooltip-when-overflow + label="宸ュ簭鍚嶇О" + /> + <!-- <el-table-column--> + <!-- prop="flwtype"--> + <!-- label="宸ュ簭绫诲瀷"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.flwtype==='W'">澶栧崗</div>--> + <!-- <div v-if="row.flwtype==='Z'">鑷埗</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column--> + <!-- prop="descr"--> + <!-- label="宸ュ簭鎻忚堪"--> + <!-- />--> + <el-table-column + prop="plan_qty" + show-tooltip-when-overflow + label="浠诲姟鏁伴噺" + /> + <el-table-column + prop="good_qty" + show-tooltip-when-overflow + label="鍚堟牸鏁伴噺" + /> + <el-table-column + prop="ng_qty" + show-tooltip-when-overflow + label="涓嶈壇鏁伴噺" + /> + <el-table-column + label="鎿嶄綔" + fixed="right" + > + <template slot-scope="{row}"> + <el-button v-waves type="text" style="padding: 0;" @click="supplementSmallClick(row)">琛ユ墦</el-button> + </template> + </el-table-column> + </el-table> + + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="dialogVisibleBack">杩� 鍥�</el-button> + <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>--> + </div> + </span> + </el-dialog> + + <!-- 婧愬崟鍗曞彿瀵硅瘽妗�--> + <el-dialog + v-el-drag-dialog + title="婧愬崟鍗曞彿" + :visible.sync="dialogVisibleSource" + width="1200px" + top="10vh" + class="dialogVisibleSearch" + :close-on-click-modal="false" + @close="dialogVisibleSourceClose" + > + <div class="bodyTopFormGroup"> + <el-form + ref="sourceForm" + :model="sourceForm" + label-width="100px" + inline + style="display: flex;justify-content: space-between" + > + <div class="elForm" style="justify-content: flex-start"> + <!-- <el-form-item--> + <!-- label="棰勮寮�宸ユ椂闂�"--> + <!-- label-width="100px"--> + <!-- style=" display: flex;font-size: 14px;margin-top: 3px"--> + <!-- >--> + <!-- <el-date-picker--> + <!-- v-model="sourceForm.paystartdate"--> + <!-- type="daterange"--> + <!-- range-separator="~"--> + <!-- class="timeMini"--> + <!-- size="mini"--> + <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"--> + <!-- :clearable="false"--> + <!-- start-placeholder="寮�濮嬫棩鏈�"--> + <!-- end-placeholder="缁撴潫鏃ユ湡"--> + <!-- />--> + <!-- <!– :picker-options="expireTimeOption"–>--> + + <!-- </el-form-item>--> + <!-- <el-form-item--> + <!-- label="棰勮瀹屽伐鏃堕棿"--> + <!-- label-width="100px"--> + <!-- style=" display: flex;font-size: 14px;margin-top: 3px"--> + <!-- >--> + <!-- <el-date-picker--> + <!-- v-model="sourceForm.payenddate"--> + <!-- type="daterange"--> + <!-- :clearable="false"--> + <!-- class="timeMini"--> + <!-- range-separator="~"--> + <!-- start-placeholder="寮�濮嬫棩鏈�"--> + <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;"--> + <!-- end-placeholder="缁撴潫鏃ユ湡"--> + <!-- size="mini"--> + <!-- />--> + <!-- </el-form-item>--> + <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;"> + <el-select + v-model="sourceForm.mesordercode" + filterable + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in erporderstusArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;"> + <el-input v-model="sourceForm.sourceorder" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="浜у搧缂栫爜" style=" display: flex;"> + <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + + <el-form-item v-show="isExpandDialog" label="浜у搧鍚嶇О" style=" display: flex;"> + <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandDialog" label="浜у搧瑙勬牸" style=" display: flex;"> + <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item v-show="isExpandDialog" label="鍒涘缓浜哄憳" style=" display: flex;"> + <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" /> + </el-form-item> + + <el-form-item + v-show="isExpandDialog" + label="鍒涘缓鏃堕棿" + label-width="100px" + style=" display: flex;font-size: 14px;margin-top: 3px" + > + <el-date-picker + v-model="sourceForm.createdate" + type="daterange" + range-separator="~" + class="timeMini" + size="mini" + style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;" + :clearable="false" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + /> + <!-- :picker-options="expireTimeOption"--> + + </el-form-item> + + </div> + + <div style="display: flex;align-items: start;margin-top: 3px;z-index: 2;justify-content: end"> + <el-button v-waves type="primary" icon="el-icon-search" @click="sourceSearch">鏌ヨ</el-button> + <el-button v-waves type="info" icon="el-icon-refresh" @click="sourceReset">閲嶇疆</el-button> + </div> + + </el-form> + <div + class="bodyTopFormExpand" + > + <svg-icon + v-show="mouseHoverTypeDialog==='mouseout'" + style="cursor: pointer" + :icon-class="!isExpandDialog?'doubleDown3':'doubleUp3'" + @mouseenter="mouseHoverTypeDialog=$event.type" + /> + <svg-icon + v-show="mouseHoverTypeDialog==='mouseenter'" + style="cursor: pointer" + :icon-class="!isExpandDialog?'doubleDown':'doubleUp'" + @click="isExpandDialog=!isExpandDialog" + @mouseout="mouseHoverTypeDialog=$event.type" + /> + </div> + </div> + + <div class="elTableDiv"> + <el-table + :data="sourceTableData" + :height="isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px'" + border + :row-class-name="tableRowClassName" + :style="{width: 100+'%',height:isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + @sort-change="sourceSortChange" + @row-click="getCurrentRowSource" + > + <!-- <el-table-column--> + <!-- type="selection"--> + <!-- width="50"--> + <!-- />--> + <el-table-column + width="50" + fixed + > + <template slot-scope="{row}"> + <el-radio + v-model="radioSelectedId" + :label="row.id" + style="color: transparent;padding-left: 10px;" + /> + <!-- @change.native="getCurrentRowSource(row.id)"--> + </template> + </el-table-column> + <el-table-column + prop="RowNum" + width="50" + fixed + label="搴忓彿" + /> + <!-- <el-table-column--> + <!-- prop="status"--> + <!-- label="宸ュ崟鐘舵��"--> + <!-- show-tooltip-when-overflow--> + <!-- sortable="custom"--> + <!-- width="110"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.status==='NEW'">鏂拌鍗�</div>--> + <!-- <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div>--> + <!-- <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div>--> + <!-- <div v-if="row.status==='CLOSED'">宸插叧闂�</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <el-table-column + label="宸ュ崟缂栧彿" + prop="wo_code" + show-tooltip-when-overflow + min-width="150" + sortable="custom" + > + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.m_po">{{ row.m_po }}</div>--> + <!-- <div v-else>{{ row.wo_code }}</div>--> + <!-- </template>--> + </el-table-column> + <el-table-column + prop="partcode" + label="浜у搧缂栫爜" + sortable="custom" + show-tooltip-when-overflow + min-width="150" + /> + <el-table-column + prop="partname" + label="浜у搧鍚嶇О" + sortable="custom" + show-tooltip-when-overflow + min-width="150" + /> + <el-table-column + prop="partspec" + label="浜у搧瑙勬牸" + show-tooltip-when-overflow + sortable="custom" + min-width="110" + > + <template slot-scope="{row}"> + <div v-if="row.partspec">{{ row.partspec }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="plan_qty" + label="浠诲姟鏁伴噺" + width="150" + show-tooltip-when-overflow + sortable="custom" + /> + + <el-table-column + prop="bad_qty" + label="鎶ュ簾鏁伴噺" + width="150" + show-tooltip-when-overflow + sortable="custom" + /> + + <!-- <el-table-column--> + <!-- prop="relse_qty"--> + <!-- show-tooltip-when-overflow--> + <!-- label="宸蹭笅鍗曟暟閲�"--> + <!-- width="150"--> + <!-- sortable="custom"--> + <!-- />--> + <el-table-column + prop="wkshp_name" + label="鐢熶骇杞﹂棿" + show-tooltip-when-overflow + sortable="custom" + width="150" + > + <template slot-scope="{row}"> + <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="plan_startdate" + label="棰勮寮�宸ユ椂闂�" + show-tooltip-when-overflow + sortable="custom" + width="130" + > + <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 + prop="plan_enddate" + label="棰勮瀹屽伐鏃堕棿" + show-tooltip-when-overflow + sortable="custom" + width="130" + > + <template slot-scope="{row}"> + <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="lm_user" + label="鍒涘缓浜哄憳" + show-tooltip-when-overflow + sortable="custom" + width="150" + > + <template slot-scope="{row}"> + <div v-if="row.lm_user">{{ row.lm_user }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <el-table-column + prop="lm_date" + label="鍒涘缓鏃堕棿" + show-tooltip-when-overflow + width="130" + sortable="custom" + > + <template slot-scope="{row}"> + <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div> + <div v-else>/</div> + </template> + </el-table-column> + <!-- <el-table-column--> + <!-- label="鎿嶄綔"--> + <!-- fixed="right"--> + <!-- width="80"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div class="operationClass">--> + <!-- <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top">--> + <!-- <!– <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>–>--> + <!-- <i--> + <!-- class="el-icon-bottom"--> + <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"--> + <!-- @click="edit('edit',row)"--> + <!-- />--> + <!-- </el-tooltip>--> + <!-- </div>--> + <!-- </template>--> + <!-- </el-table-column>--> + </el-table> + </div> + <!--鍒嗛〉--> + <pagination + :total="sourceFormTotal" + :page.sync="sourceForm.page" + :limit.sync="sourceForm.rows" + align="right" + layout="total,prev, pager, next,sizes" + popper-class="select_bottom" + @pagination="getMesBadOrderSearch" + /> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="dialogVisibleSourceBack">杩� 鍥�</el-button> + <el-button v-waves type="primary" @click="dialogVisibleSourceConfirm">纭� 瀹�</el-button> + </div> + </span> + </el-dialog> + + <!--鎵撳嵃棰勮瀵硅瘽妗� 澶ф爣绛�--> + <el-dialog + v-el-drag-dialog + title="" + :visible.sync="dialogVisibleApprove" + width="812px" + class="dialogVisibleConfirmClass" + append-to-body + :close-on-click-modal="false" + @close="dialogVisibleConfirmClose" + > + <!-- 瑕佹墦鍗扮殑鍖哄煙 --> + <div id="printMe" style="padding: 30px"> + <div style="font-size: 26px; text-align: center">娴佺▼鍗�</div> + + <div style="display: flex;justify-content: space-around;margin-top: 20px; position: relative;"> + <div style="width: 78%"> + <el-form + ref="formApprove" + :model="formApprove" + label-width="80px" + inline + style="display: flex;justify-content: space-between" + > + <div class="elForm"> + <el-form-item label="宸ュ崟缂栧彿:" class="formContent"> + {{ formApprove.mesordercode }} + </el-form-item> + <el-form-item label="婧愬崟鍗曞彿:" class="formContent"> + {{ formApprove.m_po }} + </el-form-item> + <el-form-item label="浜у搧缂栫爜:" class="formContent"> + {{ formApprove.partcode }} + </el-form-item> + <el-form-item label="浜у搧鍚嶇О:" class="formContent"> + {{ formApprove.partname }} + </el-form-item> + <el-form-item label="浜у搧瑙勬牸:" class="formContent"> + {{ formApprove.partspec }} + </el-form-item> + <el-form-item label="宸ュ崟鏁伴噺:" class="formContent"> + {{ formApprove.plan_qty }} + </el-form-item> + <!-- <el-form-item label="宸ヨ壓璺嚎:" class="formContent">--> + <!-- {{ formApprove.routename }}--> + <!-- </el-form-item>--> + <el-form-item label="鎵撳嵃浜哄憳:" class="formContent"> + <!-- {{ localStorage.getItem('username') }}--> + {{ formApprove.routename }} + </el-form-item> + <el-form-item label="鎵撳嵃鏃堕棿:" class="formContent"> + {{ formApprove.lm_date }} + </el-form-item> + </div> + </el-form> + </div> + <div + id="qrCode" + style="width: 22%;height:90px; + margin-top: 20px; + overflow-y: scroll;display: flex; + justify-content: center; + position: relative;" + > + <div id="qrCode0" ref="qrCodeDiv0" /> + </div> + <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" /> + <div + style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px" + /> + </div> + + <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />--> + <el-table + id="table" + :data="tableDataPrint" + border + class="tableDataPrint" + :header-cell-style="{ background: '#c0c0c0',textAlign:'center',color:'#000',borderColor:'#000'}" + :cell-style="{textAlign: 'center',color:'#000',borderColor:'#000'}" + style="width: 100%;margin-top: 20px;text-align: center;border-color: #000" + > + <el-table-column + id="column0" + prop="seq" + label="宸ュ簭鍙�" + width="70" + align="center" + /> + <el-table-column + id="column1" + prop="stepqrcode" + label="宸ュ簭浜岀淮鐮�" + width="100" + align="center" + > + <template slot-scope="{row}"> + <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" /> + </template> + </el-table-column> + <el-table-column + id="column2" + prop="stepname" + label="宸ュ簭" + width="120" + align="center" + /> + <el-table-column + id="column3" + prop="plan_qty" + label="鍔犲伐鏁伴噺" + width="100" + align="center" + /> + <el-table-column + id="column4" + prop="good_qty" + width="100" + align="center" + label="鍚堟牸鏁伴噺" + /> + <el-table-column + id="column5" + width="100" + prop="ng_qty" + align="center" + label="涓嶈壇鏁伴噺" + /> + <el-table-column + id="column6" + prop="desc" + align="center" + width="120" + label="澶囨敞" + /> + </el-table> + </div> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="dialogVisibleBackPreview">杩� 鍥�</el-button> + <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>--> + <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�/鎵� 鍗�</el-button>--> + <el-button v-waves v-print="printObj" type="primary">鎵� 鍗�</el-button> + </div> + </span> + </el-dialog> + + <!--鎵撳嵃棰勮椤甸潰 灏忔爣绛�--> + <el-dialog + v-el-drag-dialog + title="棰勮" + :visible.sync="dialogVisible2" + width="1000" + top="10vh" + :close-on-click-modal="false" + @close="dialogVisible2Close" + > + <div style="height: 650px;overflow:auto;"> + <!-- 涓嬫媺妗嗛�夋嫨鎵撳嵃灏哄--> + <div v-if="!isLastPrint" style="display: flex;align-items: center;margin: 0 0 20px 0"> + <div>閫夋嫨鎵撳嵃灏哄锛�</div> + <el-select + v-model="printSize" + :popper-append-to-body="false" + style="width: 200px" + placeholder="璇烽�夋嫨" + @change="printSizeChange" + > + + <el-option + v-for="item in printSizeSelectArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </div> + <!-- 瑕佹墦鍗扮殑鍖哄煙 --> + <!-- <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">--> + <div v-if="!isLastPrint" :style="printMe2StylePadding(printSize)"> + <!-- 80 * 50--> + <div + v-if="printSize===0" + style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" + > + + <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> + <div + style="display: flex;height: 96px;border-bottom:1px solid #000; + justify-content: center;align-items: center;position: relative" + > + <div + id="qrCode2" + ref="qrCodeDiv2" + style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" + /> + </div> + <div + style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" + > + <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> + {{ qrForm.startqty }} + </div> + <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> + <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> + {{ qrForm.operator }} + </div> + </div> + + <div style="width:190px;display: flex;flex-direction: column"> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> + <div>{{ qrForm.wo_code }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> + <div>{{ qrForm.partcode }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> + <div>{{ qrForm.partname }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div> + <div>{{ qrForm.nextstepname }}</div> + </div> + <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> + <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> + <div>{{ qrForm.operatorTime }}</div> + </div> + + </div> + + </div> + <!-- 78 * 60 --> + <div + v-if="printSize===1" + style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" + > + + <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> + <div + style="display: flex;height: 96px;border-bottom:1px solid #000; + justify-content: center;align-items: center;position: relative" + > + <div + id="qrCode2" + ref="qrCodeDiv2" + style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" + /> + </div> + <div + style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" + > + <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> + {{ qrForm.startqty }} + </div> + <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> + <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> + {{ qrForm.operator }} + </div> + </div> + + <div style="width:190px;display: flex;flex-direction: column"> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> + <div>{{ qrForm.wo_code }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> + <div>{{ qrForm.partcode }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> + <div>{{ qrForm.partname }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div> + <div>{{ qrForm.nextstepname }}</div> + </div> + <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> + <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> + <div>{{ qrForm.operatorTime }}</div> + </div> + + </div> + + </div> + <!-- 60 * 40 --> + <div + v-if="printSize===2" + style="display: flex;width: 220px;height: 130px;border: 1px solid #000;text-align: center;font-size: 12px" + > + + <div style="width: 70px;display: flex;flex-direction: column;border-right: 1px solid #000"> + <div + style="display: flex;height: 60%;border-bottom:1px solid #000; + justify-content: center;align-items: center;position: relative" + > + <div + id="qrCode2" + ref="qrCodeDiv2" + style="overflow-y: hidden;height:71%;position: absolute;left: 7px;" + /> + </div> + <div + style="display: flex;height: 20%;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" + > + <div style="margin-left: 3px; ">鏁伴噺:{{ qrForm.startqty }}</div> + </div> + <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;"> + <div style="margin-left: 3px; ">鎿嶄綔:{{ qrForm.operator }}</div> + + </div> + </div> + + <div style="width:150px;display: flex;flex-direction: column"> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="margin-left: 3px;">缂栧彿:{{ qrForm.wo_code }}</div> + + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" + > + <div style="margin-left: 3px;">浜у搧缂栫爜:{{ qrForm.partcode }}</div> + + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="margin-left: 3px;">浜у搧鍚嶇О:{{ qrForm.partname }}</div> + + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="margin-left: 3px;">涓嬮亾宸ュ簭:{{ qrForm.nextstepname }}</div> + + </div> + <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"> + <div style=" margin-left: 3px;">鏃堕棿: {{ qrForm.operatorTime }}</div> + <!-- <div>{{ qrForm.operatorTime?qrForm.operatorTime.substring(5):'' }}</div>--> + <!-- <div>{{ qrForm.operatorTime }}</div>--> + </div> + + </div> + + </div> + <div + v-if="printSize===5" + style="display: flex;width: 140px;height: 80px;border: 1px solid #000;text-align: center;font-size: 10px;" + > + + <div v-if="false" style="width: 45px;display: flex;flex-direction: column;border-right: 1px solid #000"> + <div + style="display: flex;height: 60px;border-bottom:1px solid #000; + justify-content: center;align-items: center;position: relative" + > + <div + id="qrCode2" + ref="qrCodeDiv2" + style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" + /> + </div> + <div + style="display: flex;height: 20px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" + > + <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> + {{ qrForm.startqty }} + </div> + <div style="display: flex;height: 20px;justify-content: flex-start;align-items: center"> + <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> + {{ qrForm.operator }} + </div> + </div> + + <div style="width:100%;display: flex;flex-direction: column;"> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center;text-align: left" + > + <!-- <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>--> + <div>{{ qrForm.wo_code }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center ;text-align: left" + > + <!-- <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>--> + <div>{{ qrForm.partcode }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left" + > + <!-- <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>--> + <div>{{ qrForm.partname }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left" + > + <!-- <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>--> + <div>{{ qrForm.nextstepname }}</div> + </div> + <div style="display: flex;height: 20%;justify-content: center;align-items: center;text-align: left"> + <!-- <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>--> + <div>{{ qrForm.operatorTime }}</div> + </div> + + </div> + + </div> + </div> + + <div v-if="isLastPrint" style="display: flex;flex-direction: column"> + + <div style="display: flex;font-weight: bold;font-size: 16px;margin-bottom: 20px;"> + <div style="width: 48%;"> + 璇烽�夋嫨鍏ュ簱鏉$爜 + </div> + <div style="width: 48%;margin-left: 4%;"> + 宸查�変腑鐨勫叆搴撴潯鐮� + </div> + </div> + + <div style="display: flex;"> + <!-- 璇烽�夋嫨鍏ュ簱鏉$爜--> + <div style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;"> + <div + v-for="(item,index) in lastPrintArr" + :key="item.inbarcode" + :style="{marginTop:index===0?'':'15px'}" + style="display: flex;align-items: center;" + > + + <!-- v-if="printSize===0"--> + <div style="margin-right:40px"> + <el-checkbox + :key="item.inbarcode" + v-model="item.checked" + @change="val=>inbarcodeChange(val,item)" + /> + </div> + <div + style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" + > + + <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> + <div + style="display: flex;height: 96px;border-bottom:1px solid #000; + justify-content: center;align-items: center;position: relative" + > + <div + id="qrCode2" + ref="qrCodeDiv2" + style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" + /> + </div> + <div + style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" + > + <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> + {{ item.good_qty }} + </div> + <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> + <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> + {{ item.username }} + </div> + </div> + + <div style="width:190px;display: flex;flex-direction: column"> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> + <div>{{ item.wo_code }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> + <div>{{ item.partcode }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> + <div>{{ item.partname }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div> + <div>{{ item.partspec ? item.partspec : '/' }}</div> + </div> + <div + style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> + <div>{{ item.lm_date }}</div> + </div> + + </div> + + </div> + + </div> + </div> + + <!-- 宸查�変腑鐨勫叆搴撴潯鐮�--> + <div + style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;margin-left: 50px;" + > + <div id="printMe2"> + <div + v-for="(item,index) in lastPrintArrSelected" + v-if="item.checked" + :key="item.inbarcode" + :style="{marginTop:index===0?'':'15px'}" + style="display: flex;align-items: center;" + > + <div + style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;" + > + + <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000"> + <div + style="display: flex;height: 96px;border-bottom:1px solid #000; + justify-content: center;align-items: center;position: relative" + > + <div + id="qrCode3" + ref="qrCodeDiv3" + style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" + /> + </div> + <div + style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" + > + <div style="margin-left: 5px;width: 28px">鏁伴噺:</div> + {{ item.good_qty }} + </div> + <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center"> + <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div> + {{ item.username }} + </div> + </div> + + <div style="width:190px;display: flex;flex-direction: column"> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div> + <div>{{ item.wo_code }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div> + <div>{{ item.partcode }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div> + <div>{{ item.partname }}</div> + </div> + <div + style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div> + <div>{{ item.partspec ? item.partspec : '/' }}</div> + </div> + <div + style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left" + > + <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div> + <div>{{ item.lm_date }}</div> + </div> + + </div> + + </div> + + </div> + </div> + + </div> + + </div> + + </div> + + </div> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="dialogVisible2 = false;">鍙� 娑�</el-button> + <el-button v-waves v-print="printObj2" type="primary">鎵� 鍗�</el-button> + </div> + </span> + </el-dialog> + + <!-- 宸ヨ壓璺嚎瀵硅瘽妗�--> + <el-dialog + v-el-drag-dialog + :close-on-click-modal="false" + title="鍏宠仈宸ヨ壓璺嚎" + :visible.sync="dialogVisibleRoute" + width="800px" + top="10vh" + :fullscreen="isIpad" + class="dialogVisibleRoute" + @closed="handleCloseRoute" + @close="handleCloseRoute" + > + <div> + <i class="el-icon-s-comment" style="color:#42b983;" /> 浜у搧鍚嶇О锛歿{ dialogFormRoute.projectName }} + </div> + <el-divider /> + <div style="margin-bottom: 10px"> + <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ヨ壓璺嚎闆嗗悎 + </div> + + <div class="myCheckboxGroup"> + <div + v-for="item in dialogFormRoute.routeOperationArr" + :key="item.code" + :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}" + class="myCheckbox" + @click="myCheckboxClick(item)" + > + <input + class="myCheckboxInput" + type="checkbox" + :value="item.code" + :name="item.name" + :style="{color:item.isSelected2?'#42b983':'#fff'}" + @click="myCheckboxInputClick(item)" + >{{ item.name }} + <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�--> + <!-- onClick="event.cancelBubble = true"--> + </div> + </div> + + <el-divider /> + <div> + <i class="el-icon-s-operation" style="color:#42b983;" /> 榛樿宸ヨ壓璺嚎 + </div> + <div style="margin-top: 20px"> + <el-select + v-model="defaultroute_code" + filterable + style="width: 200px;" + placeholder="璇烽�夋嫨" + class="defaultroute_code" + > + <el-option + v-for="item in defaultroute_codeArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </div> + <el-divider /> + <div style="margin-bottom: 10px"> + <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ュ簭鍒楄〃 + </div> + <div style="overflow-y: scroll"> + <el-table + ref="projectTableData" + :data="projectTableData" + border + height="280" + :row-class-name="tableRowClassName" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + > + <el-table-column + prop="seq" + width="100" + label="宸ュ簭搴忓彿" + fixed + /> + <el-table-column + prop="stepcode" + label="宸ュ簭缂栫爜" + show-tooltip-when-overflow + /> + <el-table-column + prop="stepname" + label="宸ュ簭鍚嶇О" + show-tooltip-when-overflow + /> + <el-table-column + prop="enable" + label="鍚敤鐘舵��" + fixed="right" + > + <template slot-scope="{row}"> + <div v-if="row.enable==='Y'"> + <svg-icon icon-class="circleYes" style="margin-right: 2px" /> + 鏄� + </div> + <div v-if="row.enable==='N'"> + <svg-icon icon-class="circleNo" style="margin-right: 2px" /> + 鍚� + </div> + </template> + </el-table-column> + </el-table> + </div> + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-waves @click="routeDialogVisibleCancel">鍙� 娑�</el-button> + <el-button v-waves type="primary" @click="routeDialogVisibleConfirm">纭� 瀹�</el-button> + </div> + </span> + </el-dialog> + + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' +import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global' +import { getCookie } from '@/utils/auth' +import QRCode from 'qrcodejs2' +import $ from 'jquery' +import elDragDialog from '@/directive/el-drag-dialog' +import waves from '@/directive/waves' +import { + AddMesOrderCodeSearch, + AddUpdateMesOrder, DeleteMesOrder, + MesBadOrderSearch, MesOrderDistribution, + MesOrderSearch, + UpdateMesOrderStepSearch +} from '@/api/WorkOrder' +import { PartSelect } from '@/api/ProductModel' +import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData' +import Sortable from 'sortablejs' +import ElDragSelect from '@/components/DragSelect' +import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui + +export default { + name: 'WorkOrderSend', + components: { + Pagination, ElDragSelect + }, + directives: { elDragDialog, waves }, + data() { + return { + mouseHoverType: 'mouseout', + mouseHoverTypeDialog: 'mouseout', + isExpandForm: false, + isIpad: false, + mainHeight: 0, + tableHeight: 0, + username: '', + form: { + wkshopcode: '', + mesorderstus: 'ALLO', // 宸ュ崟鐘舵�佺爜 + mesordercode: '', // 宸ュ崟缂栧彿 + partcode: '', // 浜у搧缂栫爜 + ordertype: '', // ordertype + sourceorder: '', // 婧愬崟鍗曞彿 + saleordercode: '', // 閿�鍞鍗� + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + creatuser: '', // 鍒涘缓浜哄憳 + createdate: '', // 鍒涘缓鏃堕棿 + prop: 'lm_date', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + erporderstusArr: [ + // { code: 'NEW', name: '鏂板伐鍗�' } + // { code: 'CREATING', name: '鎵ц涓�' }, + // { code: 'CREATED', name: '宸插叧闂�' } + { code: 'ALLO', name: '宸叉淳鍙�' } + // { code: 'START', name: '寮�宸�' }, + // { code: 'CLOSED', name: '瀹屽伐' } + // { code: 'NOSCHED', name: '寰呮帓绋�' }, + // { code: 'SCHED', name: '宸叉帓绋�' } + ], + wkshopcodeArr: [], + total: 10, + tableData: [], + dialogVisible: false, + dialogForm: { + mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜 + mesordercode: '', // 宸ュ崟缂栧彿 + ordertype: 'PO', // 宸ュ崟绫诲瀷 + sourceorderid: '', // 婧愬崟id + sourceorder: '', // 婧愬崟鍗曞彿 + + partcode: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + + mesqty: '', // 宸ュ崟鏁伴噺 + wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜 + wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О + + deliverydate: '', // 浜や粯鏃堕棿 + data_sources: '', // 鏁版嵁鏉ユ簮 + + mesmaxqty: 0// 宸ュ崟鐨勬渶澶у�� + }, + ordertypeArr: [// 宸ュ崟绫诲瀷 + { code: 'PO', name: '鏍囧噯宸ュ崟' }, + { code: 'FO', name: '鎶ュ簾琛ュ崟' } + ], + partArr: [], // 浜у搧淇℃伅 + wkshopArr: [], // 鐢熶骇杞﹂棿鏁扮粍 + routeArr: [], // 宸ヨ壓璺嚎鏁扮粍 + orderlevArr: [ + { code: 1, name: '鐗圭骇' }, + { code: 2, name: '绱ф��' }, + { code: 3, name: '姝e父' } + ], // 宸ュ崟绛夌骇鏁扮粍 + operation: '', + dialogFormRules: { + mesorderstus: [ + { required: true, message: '璇烽�夋嫨璁㈠崟鐘舵��', trigger: ['blur', 'change'] } + ], + partcode: [ + { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] } + ], + mesordercode: [ + { required: true, validator: validateCode, trigger: ['blur', 'change'] } + ], + mesqty: [ + { required: true, message: '璇疯緭鍏ュ伐鍗曟暟閲�', trigger: ['blur', 'change'] } + ], + wkshopcode: [ + { required: true, message: '璇烽�夋嫨鐢熶骇杞﹂棿', trigger: ['blur', 'change'] } + ], + deliverydate: [ + { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] } + ], + planstartdate: [ + { required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: ['blur', 'change'] } + ], + planenddate: [ + { required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: ['blur', 'change'] } + ], + orderlev: [ + { required: true, message: '璇烽�夋嫨宸ュ崟绛夌骇', trigger: ['blur', 'change'] } + ], + isAps: [ + { required: true, message: '璇烽�夋嫨鏄惁鎺掔▼', trigger: ['blur', 'change'] } + ], + bomId: [ + { required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] } + ] + + }, + dialogVisibleTask: false, + taskTableData: [], + + dialogVisibleSearch: false, + searchTableData: [], + dialogVisibleApprove: false, + tableDataPrint: [], // 鎵撳嵃椤甸潰鍐呭 + printObj: { + id: 'printMe', + popTitle: '鎵撳嵃妯℃澘', + preview: false, + extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', + closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛� + console.log('11212', vue) + // vue.dialogVisible = false + vue.dialogVisibleApprove = false + }, + beforeOpenCallback(vue) { + vue.printLoading = true + console.log('鎵撳紑涔嬪墠') + console.log() + }, + openCallback(vue) { + vue.printLoading = false + console.log('鎵ц浜嗘墦鍗�') + } + }, + + formApprove: { + m_po: '', // 婧愬崟鍗曞彿 + mesordercode: '', + partcode: '', + partname: '', + partspec: '', + plan_qty: '', + routename: '', + lm_date: '' + }, + number: '', + dialogVisible2: false, + printObj2: { + id: 'printMe2', + popTitle: '鎵撳嵃妯℃澘', + preview: false, + extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>', + closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛� + console.log('11212', vue) + // vue.dialogVisible = false + // vue.dialogVisible2 = false + // vue.dialogVisible = false + }, + beforeOpenCallback(vue) { + vue.printLoading = true + console.log('鎵撳紑涔嬪墠') + console.log() + }, + openCallback(vue) { + vue.printLoading = false + console.log('鎵ц浜嗘墦鍗�') + } + }, + qrForm: { + qrvalue: '', + startqty: '', + wo_code: '', + partcode: '', + partname: '', + nextstepname: '', + operator: '', // 鎿嶄綔浜� + operatorTime: ''// 鎿嶄綔鏃堕棿 + }, + dialogVisibleSource: false, + sourceTableData: [], + sourceForm: { + mesordercode: '', // 宸ュ崟缂栧彿 + sourceorder: '', // 璁㈠崟缂栧彿 + saleordercode: '', // 閿�鍞鍗曞彿 + partcode: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + creatuser: '', // 鍒涘缓浜哄憳 + // paystartdate: '', // 浜や粯鏃堕棿 + // paystartdate: '', // 棰勮寮�宸ユ椂闂� + // payenddate: '', // 棰勮瀹屽伐鏃堕棿 + createdate: '', // 鍒涘缓鏃堕棿 + + prop: 'lm_date', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + sourceFormTotal: 10, + radioSelectedId: '', + isExpandDialog: false, // 瀵硅瘽妗嗚〃鍗曟槸鍚﹀睍寮�锛岄粯璁や笉灞曞紑 + dialogVisibleRoute: false, + dialogFormRoute: { + projectName: '', // 浜у搧鍚嶇О + projectCode: '', // 浜у搧浠g爜 + routeOperationArr: [] // 宸ヨ壓璺嚎闆嗗悎 + }, + defaultroute_code: '', // 榛樿宸ヨ壓璺嚎閫変腑鍊� + defaultroute_codeArr: '', // 榛樿宸ヨ壓璺嚎鏁扮粍 + projectTableData: [], // 璁惧鍒楄〃 + tableDataDetail: [], // 鐐瑰嚮宸ュ崟琛ㄧ殑琛� 鏄剧ず璇︾粏淇℃伅 + printSize: 0, + printSizeSelectArr: [// 瀹�*楂� + { code: 0, name: '80*50' }, + { code: 1, name: '78*60' }, + { code: 2, name: '60*40' } + // { code: 2, name: '50*60' }, + // { code: 3, name: '50*40' }, + // { code: 4, name: '50*80' }, + // { code: 5, name: '40*30' } + ], + pickerOptions: { + disabledDate(time) { + return time.getTime() < Date.now() - 8.64e7 + } + }, + + isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗� + lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�) + lastPrintArrSelected: [], // 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑) + + switchButton: false, + + routeStepArr: '', + + stepTableData: [], + sortable: null, + stepSelectArr: [], // 宸ュ簭涓嬫媺鏁版嵁 + stepSelectedValue: [], // 涓嬫媺閫変腑鍊� + + multipleSelection: [] + } + }, + watch: { + 'stepSelectedValue': { + // deep: true, + handler: function(val) { + // do something with the new and old value of stepSelectedValue + console.log(val, 1) + const arr = JSON.parse(JSON.stringify(this.stepTableData)) + const arrStepcode = arr.map(i => i.stepcode) + this.stepTableData = [] + val.forEach(i => { + this.stepTableData.push( + { + stepcode: i, + stepname: this.stepSelectArr.find(j => j.stepcode === i).stepname, + stepprice: arrStepcode.includes(i) ? arr.find(j => j.stepcode === i).stepprice : 0 + } + ) + }) + } + } + }, + activated() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + this.handleRequest() + }, + created() { + this.handleRequest() + }, + mounted() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + + // this.$nextTick(() => { + // this.setSort() + // }) + }, + methods: { + setSort() { + const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0] + this.sortable = Sortable.create(el, { + ghostClass: 'sortable-ghost', // Class name for the drop placeholder, + setData: function(dataTransfer) { + // to avoid Firefox bug + // Detail see : https://github.com/RubaXa/Sortable/issues/1012 + dataTransfer.setData('Text', '') + }, + onEnd: evt => { + const targetRow = this.stepTableData.splice(evt.oldIndex, 1)[0] + this.stepTableData.splice(evt.newIndex, 0, targetRow) + + this.stepSelectedValue = this.stepTableData.map(i => i.stepcode) + // for show the changes, you can delete in you code + // const tempIndex = this.newList.splice(evt.oldIndex, 1)[0] + // this.newList.splice(evt.newIndex, 0, tempIndex) + } + }) + }, + tableRowClassName({ row, rowIndex }) { + return 'custom-row' + }, + handleRequest() { + this.getMesOrderSearch().then(res => { + if (res.code === '200') { + this.getSelect() + this.getPrentOrganizationNoCompany() + } + }) + }, + async getPrentOrganizationNoCompany() { + const { data: res } = await PrentOrganizationNoCompany() + this.wkshopcodeArr = res + }, + async getMesOrderSearch() { + // let tempDate = this.form.createdate + // if (tempDate.length > 0) { + // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) + // } + + const data = { + wkshopcode: this.form.wkshopcode, // + mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜 + mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿 + partcode: this.form.partcode, // 浜у搧缂栫爜 + partname: this.form.partname, // 浜у搧鍚嶇О + partspec: this.form.partspec, // 浜у搧瑙勬牸 + creatuser: this.form.creatuser, // 鍒涘缓浜哄憳 + sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿 + saleordercode: this.form.saleordercode, // 閿�鍞鍗� + ordertype: this.form.ordertype, // 鍗曟嵁绫诲瀷 + createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿 + prop: this.form.prop, // 鎺掑簭瀛楁 + order: this.form.order, // 鎺掑簭瀛楁 + page: this.form.page, // 绗嚑椤� + rows: this.form.rows // 姣忛〉澶氬皯鏉� + } + const res = await MesOrderSearch(data) + this.tableData = res.data + this.total = res.count + + // this.form.createdate = tempDate + return { code: res.code } + }, + async getSelect() { + // 鑾峰彇浜у搧淇℃伅 + const { data: res1 } = await PartSelect() + this.partArr = res1 + + // 鑾峰彇缁勭粐 + const { data: res2 } = await PrentOrganization() + this.wkshopArr = res2 + + // 鑾峰彇宸ュ簭 + const { data: res3 } = await StepData() + this.stepSelectArr = res3 + }, + // 璁㈠崟鐘舵�佹敼鍙樻椂 + erporderstusChange(val) { + this.form.mesorderstus = val + }, + // 鎺掑簭鏀瑰彉鏃� + 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.getMesOrderSearch() + }, + sourceSortChange({ column, prop, order }) { + if (order === 'descending') { + order = 'desc' + } else if (order === 'ascending') { + order = 'asc' + } else { + order = 'desc' + } + this.sourceForm.order = order + this.sourceForm.prop = prop + this.getMesBadOrderSearch() + }, + // 鏌ヨ + search() { + this.getMesOrderSearch() + }, + + // 閲嶇疆 + reset(val) { + this.form.wkshopcode = '' + this.form.mesorderstus = 'ALLO' + this.form.mesordercode = '' + this.form.partcode = '' + this.form.partname = '' + this.form.partspec = '' + this.form.paydate = '' + this.form.creatuser = '' + this.form.sourceorder = '' + this.form.ordertype = '' + this.form.createdate = '' + this.getMesOrderSearch() + }, + // 鏂板鎸夐挳 + async add(operation) { + const { data: res } = await AddMesOrderCodeSearch() + this.dialogForm.mesordercode = res + this.operation = operation + this.dialogVisible = true + this.dialogForm.data_sources = 'MES' + + this.$nextTick(() => { + this.setSort() + }) + }, + // 宸ュ簭浠诲姟 + async check(row) { + // const { data: res } = await SearchWorkStep({ wo_code: row.wo_code }) + // this.taskTableData = res + // + // if (this.taskTableData.length === 0) { + // return this.$message.info('鏃犵敓浜т换鍔℃暟鎹紒') + // } + // this.dialogForm.mesordercode = res[0].wo_code + // this.dialogVisibleTask = true + }, + dialogVisibleBack() { + this.dialogVisibleTask = false + }, + handleSelectionChange(val) { + this.multipleSelection = val.map(i => i.wo_code) + }, + + selected(row, index) { + return row.status === 'NEW' && row.isstep === 'Y' + }, + // 娲惧彂 + send() { + this.$confirm('鏄惁纭娲惧彂?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + MesOrderDistribution(this.multipleSelection).then(res => { + if (res.code === '200') { + this.$notify.success('娲惧彂鎴愬姛!') + if (this.form.page > 1 && this.tableData.length === 1) { + this.form.page-- + } + this.getMesOrderSearch() + } + }) + }).catch(() => { + this.$notify.info('宸插彇娑堟淳鍙�') + }) + }, + // 鍒犻櫎鎸夐挳 + async del(row) { + if (row.status === 'START' || row.status === 'CLOSED' || row.status === 'SCHED') { + return this.$message.info('姝ゅ伐鍗曚笉鍙垹闄わ紒') + } + this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const data = { + souceid: row.sourceid ? row.sourceid : '', + wocode: row.wo_code, + m_po: row.m_po, + orderqty: row.plan_qty + } + DeleteMesOrder(data).then(res => { + if (res.code === '200') { + this.$notify.success('鍒犻櫎鎴愬姛!') + if (this.form.page > 1 && this.tableData.length === 1) { + this.form.page-- + } + this.getMesOrderSearch() + } + }) + }).catch(() => { + this.$notify.info('宸插彇娑堝垹闄�') + }) + }, + + // 淇敼鎸夐挳 + async edit(operation, row) { + this.operation = operation + + this.dialogForm.data_sources = row.data_sources + this.dialogForm.mesorderstus = row.status + this.dialogForm.mesordercode = row.wo_code + this.dialogForm.ordertype = row.wotype + this.dialogForm.sourceorderid = row.sourceid + this.dialogForm.sourceorder = row.m_po + this.dialogForm.partcode = row.partcode + this.dialogForm.partname = row.partname + this.dialogForm.partspec = row.partspec + this.dialogForm.wkshopcode = row.wkshp_code + this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11) + this.dialogForm.mesqty = row.plan_qty + + const data = { + sourceid: this.dialogForm.sourceorderid, + sourcewo: this.dialogForm.sourceorder, + wocode: this.dialogForm.mesordercode, + data_sources: this.dialogForm.data_sources + } + const { data: res } = await UpdateMesOrderStepSearch(data) + this.dialogForm.mesmaxqty = res.canupdate_qty + this.stepTableData = res.stepdata + // res.stepdata.forEach(i => { + // this.stepTableData.push( + // { + // stepcode: i.step_code, + // stepname: i.stepname, + // stepprice: i.stepprice + // } + // ) + // }) + // this.stepSelectedValue = this.stepTableData.map(i => i.stepcode) + + this.dialogVisible = true + }, + // 宸ュ崟鍏抽棴浜嬩欢 + orderClose() { + console.log('宸ュ崟鍏抽棴浜嬩欢') + }, + // 瀵硅瘽妗嗕骇鍝佷俊鎭�兼敼鍙� + partcodeChangeDialog(val) { + console.log(val) + this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname + this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode + this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec + }, + // 瀵硅瘽妗嗗叧闂簨浠� + handleClose() { + this.dialogForm = { + mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜 + mesordercode: '', // 宸ュ崟缂栧彿 + ordertype: 'PO', // 宸ュ崟绫诲瀷 + sourceorderid: '', // 婧愬崟id + sourceorder: '', // 婧愬崟鍗曞彿 + + partcode: '', // 浜у搧缂栫爜 + partname: '', // 浜у搧鍚嶇О + partspec: '', // 浜у搧瑙勬牸 + + mesqty: '', // 宸ュ崟鏁伴噺 + wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜 + wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О + + deliverydate: '', // 浜や粯鏃堕棿 + data_sources: '' // 鏁版嵁鏉ユ簮 + } + this.stepSelectedValue = [] + this.stepTableData = [] + this.$refs.dialogForm.clearValidate() + }, + // 瀵硅瘽妗嗗彇娑� + dialogVisibleCancel() { + this.dialogVisible = false + }, + // 瀵硅瘽妗嗙‘璁� + dialogVisibleConfirm() { + this.$refs.dialogForm.validate(valid => { + if (valid) { + if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) { + return this.$message.info('婧愬崟鍗曞彿涓嶈兘涓虹┖锛�') + } + + if (this.dialogForm.data_sources === 'ERP' && this.dialogForm.mesmaxqty < this.dialogForm.mesqty) { + return this.$message.info('姝ゅ伐鍗曠殑鏈�澶т慨鏀规暟鍊间负锛�' + this.dialogForm.mesmaxqty) + } + + const workListSub = [] + this.stepTableData.forEach((i, j) => { + workListSub.push( + { + stepseq: j + 1, + stepcode: i.stepcode, + stepprice: i.stepprice, + isbott: j === 0 ? 'Y' : 'N', + isend: j === this.stepTableData.length - 1 ? 'Y' : 'N' + } + ) + }) + + const data = { + wostatus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵�� + wocode: this.dialogForm.mesordercode, // 宸ュ崟鍙� + wotype: this.dialogForm.ordertype, // 宸ュ崟绫诲瀷 + sourceid: this.dialogForm.sourceorderid, // 婧愬崟id + sourcewo: this.dialogForm.sourceorder, // 婧愬崟鍗曞彿 + partcode: this.dialogForm.partcode, // 浜у搧缂栧彿 + wkshopcode: this.dialogForm.wkshopcode, + woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺 + deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿 + data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮 + isstep: workListSub.length > 0 ? 'Y' : 'N', // + workListSub + } + + this.$store.state.app.buttonIsDisabled = true + AddUpdateMesOrder(data, this.operation === 'add' ? 'Add' : 'Update').then(res => { + if (res.code === '200') { + this.dialogVisible = false + // this.handlePrint() + this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '娲惧彂鎴愬姛锛�') + this.getMesOrderSearch() + this.$store.state.app.buttonIsDisabled = false + } else { + this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '娲惧彂澶辫触锛�') + } + }) + } + }) + }, + // 娲惧彂鎵撳嵃 + async sendPrint() { + const data = { + username: getCookie('admin'), + // username: getCookie('username'), + mesordercode: this.dialogForm.mesordercode + } + const res = await MesOrderPrintSearch1(data) + // const res = await PrintOrder(data) + if (res.code === '200') { + // 鍙傛暟鍏蜂綋璇存槑璇峰弬鑰冨府鍔╂枃妗d腑鐨勨�淲EB鎶ヨ〃(B/S鎶ヨ〃)->WEB鎶ヨ〃瀹㈡埛绔�->鍚姩鍙傛暟璇存槑鈥濋儴鍒� + var args = { + type: 'print', // preview print + showOptionDlg: false, // 濡傛灉涓嶆樉绀烘墦鍗板璇濇鑰岀洿鎺ユ墦鍗帮紝灏嗘琛屾敞閲婂幓鎺夊嵆鍙� + report: urlAddRandomNo('./static/grf/浜у搧娴佷紶鍗旳4.grf'), + data: res.data + } + webapp_ws_ajax_run(args) + } + }, + + // 鑾峰彇椤甸潰楂樺害 + getHeight() { + this.$nextTick(() => { + this.mainHeight = window.innerHeight - 85 + this.tableHeight = this.mainHeight - 245 + if (window.innerHeight < 769) { + this.tableHeight = this.tableHeight - 20 + } + this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367 + this.$refs.tableDataRef.doLayout() + }) + }, + // 宸ヨ壓璺嚎鏀惧ぇ闀滅偣鍑� + async searchClick() { + if (this.dialogForm.routecode === '') { + return this.$message.info('璇峰厛閫夋嫨宸ヨ壓璺嚎锛�') + } + this.dialogVisibleSearch = true + const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode }) + this.searchTableData = res + }, + dialogVisibleSearchBack() { + this.dialogVisibleSearch = false + }, + // 澶勭悊鎵撳嵃 + handlePrint(wo_code) { + // const number = Math.random() * Math.random() + // this.number = number === 0 ? (10 + Math.random()) : number + // console.log(number) + + const data2 = { + mesordercode: wo_code || this.dialogForm.mesordercode + } + MesOrderPrintSearch(data2).then(res2 => { + if (res2.code === '200') { + const res3 = res2.data.recordset + + this.tableDataPrint = res3 + this.formApprove.mesordercode = res3[0].wo_code + this.formApprove.m_po = res3[0].m_po || '/' + this.formApprove.partcode = res3[0].partcode + this.formApprove.partname = res3[0].partname + this.formApprove.partspec = res3[0].partspec || '/' + this.formApprove.plan_qty = res3[0].plan_qty + this.formApprove.routename = localStorage.getItem('username') // 鎵撳嵃浜哄憳 + this.formApprove.lm_date = res3[0].lm_date + + this.$nextTick(() => { + res3.forEach(i => { + this.bindQRCode(i.seq, i.stepqrcode, 'small') + }) + this.bindQRCode('0', this.formApprove.mesordercode, 'big') + + const div = document.getElementById('qrCode') + // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏� + div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴 + // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴 + }) + this.dialogVisibleApprove = true + } + }) + }, + dialogVisibleTaskClose() { + this.dialogForm.mesordercode = '' + }, + /* + * 鎵嬪姩鐐瑰嚮鎵撳嵃 + * */ + // 杩斿洖鎸夐挳 + dialogVisibleBackPreview() { + this.dialogVisibleApprove = false + }, + // dialogVisibleConfirmPreview(param) { + // this.$refs.dialogForm.validate(valid => { + // if (valid) { + // const data = { + // username: getCookie('admin'), + // mesordercode: this.dialogForm.mesordercode + // } + // MesOrderPrintSearch1(data).then(res => { + // if (res.code === '200') { + // this.dialogVisibleApprove = true + // console.log(res, 11) + // } + // }) + // } + // }) + // }, + // 鐢熸垚浜岀淮鐮� 宸ュ崟鎶ヨ〃浜岀淮鐮� + bindQRCode(seq, text, size) { + if (size === 'big') { + console.log(text, 1) + new QRCode(this.$refs.qrCodeDiv0, { + text: text, + width: size === 'big' ? 90 : 60, + height: size === 'big' ? 90 : 60, + // colorDark: '#333333', // 浜岀淮鐮侀鑹� + colorDark: '#000', // 浜岀淮鐮侀鑹� + colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 + correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H + }) + } else { + new QRCode(this.$refs['qrCodeDiv' + seq], { + text: text, + width: size === 'big' ? 90 : 60, + height: size === 'big' ? 90 : 60, + // colorDark: '#333333', // 浜岀淮鐮侀鑹� + colorDark: '#000', // 浜岀淮鐮侀鑹� + colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 + correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H + }) + } + }, + + dialogVisibleConfirmClose() { + // this.dialogForm.mesordercode = '' + this.formApprove.mesordercode = '' + this.formApprove.m_po = '' + this.formApprove.partcode = '' + this.formApprove.partname = '' + this.formApprove.partspec = '' + this.formApprove.plan_qty = '' + this.formApprove.routename = '' + this.formApprove.lm_date = '' + + // this.$refs.qrCodeDiv0.title = '' + + this.tableDataPrint = [] + }, + // 琛ユ墦鎸夐挳 + supplementClick() { + this.dialogVisibleTask = false + this.handlePrint() + }, + // 琛ユ墦灏忔爣绛� + supplementSmallClick(row) { + // let obj = {} + console.log(row, 21) + // this.taskTableData.forEach((item, index) => { + this.tableDataDetail.forEach((item, index) => { + if (item.seq === row.seq) { + console.log(item) + this.qrForm = { + // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode, + qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode, + // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty, + startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty, + wo_code: item.wo_code, + partcode: item.partcode, + partname: item.partname, + // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname, + nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname, + operator: getCookie('username'), + operatorTime: handleDatetime2(new Date()) + } + this.$nextTick(() => { + console.log(this.qrForm.qrvalue, 3333) + this.bindQRCode2(this.qrForm.qrvalue) + + const div = document.getElementById('qrCode2') + // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏� + div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴 + // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴 + }) + } + }) + + // this.dialogVisibleTask = false + this.dialogVisible2 = true + console.log(this.qrForm, 1111) + }, + // 琛ユ墦鐢熶骇鍏ュ簱鏉$爜 + async getProductInHouseLabCode(ordercode) { + const res = await ProductInHouseLabCode({ ordercode }) + console.log(res) + this.isLastPrint = true + + this.lastPrintArr = res.data + + this.dialogVisible2 = true + + // 鐢熶骇浜岀淮鐮� + this.$nextTick(() => { + this.lastPrintArr.forEach((i, index) => { + i.checked = false + new QRCode(this.$refs.qrCodeDiv2[index], { + text: i.inbarcode, + width: this.printSize !== 2 ? 60 : 55, + height: this.printSize !== 2 ? 60 : 55, + colorDark: '#000', // 浜岀淮鐮侀鑹� + colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 + correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H + }) + }) + }) + }, + dialogVisible2Close() { + this.qrForm.qrvalue = '' + this.qrForm.startqty = '' + this.qrForm.wo_code = '' + this.qrForm.partcode = '' + this.qrForm.partname = '' + this.qrForm.nextstepname = '' + this.qrForm.operator = '' + this.qrForm.operatorTime = '' + // this.$refs.qrCodeDiv2 = '' + this.isLastPrint = false + this.lastPrintArr = [] + this.lastPrintArrSelected = [] + }, + // 鐢熸垚浜岀淮鐮� 宸ュ簭鏍囩浜岀淮鐮� + bindQRCode2(text) { + new QRCode(this.$refs.qrCodeDiv2, { + text: text, + width: this.printSize !== 2 ? 60 : 55, + height: this.printSize !== 2 ? 60 : 55, + colorDark: '#000', // 浜岀淮鐮侀鑹� + colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 + correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H + }) + }, + // 鎶ュ簾琛ュ崟鎯呭喌涓嬪彲鐐瑰嚮閫夋嫨 + mesordertsourcesearchclick() { + if (this.dialogForm.ordertype === 'PO') { + return this.$message.info('宸ュ崟绫诲瀷涓烘姤搴熻ˉ鍗曟儏鍐典笅鍙�夋嫨锛�') + } + + this.getMesBadOrderSearch() + + this.dialogVisibleSource = true + }, + async getMesBadOrderSearch() { + // let tempDate2 = this.sourceForm.paystartdate + // if (tempDate2.length > 0) { + // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) + // } + + let tempDate = this.sourceForm.createdate + if (tempDate.length > 0) { + tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) + } + + const data = { + mesordercode: this.sourceForm.mesordercode, // 宸ュ崟缂栧彿 + sourceorder: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙� + saleordercode: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙� + partcode: this.sourceForm.partcode, // 浜у搧缂栫爜 + partname: this.sourceForm.partname, // 浜у搧鍚嶇О + partspec: this.sourceForm.partspec, // 浜у搧瑙勬牸 + // paystartdate: tempDate2, // 浜や粯鏃堕棿 + // payenddate: tempDate, // 浜や粯鏃堕棿 + creatuser: this.sourceForm.creatuser, // 鍒涘缓浜哄憳 + createdate: tempDate, // 鍒涘缓鏃堕棿 + + prop: this.sourceForm.prop, // 鎺掑簭瀛楁 + order: this.sourceForm.order, // 鎺掑簭瀛楁 + page: this.sourceForm.page, // 绗嚑椤� + rows: this.sourceForm.rows // 姣忛〉澶氬皯鏉� + + } + + const res = await MesBadOrderSearch(data) + this.sourceTableData = res.data + this.sourceFormTotal = res.count + }, + // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭� + // getCurrentRowSource2(id) { + // this.radioSelectedId = id + // }, + // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭� + getCurrentRowSource(row, event, column) { + this.radioSelectedId = row.id + this.dialogForm.mesqty = row.bad_qty + }, + sourceSearch() { + this.getMesBadOrderSearch() + }, + sourceReset() { + this.sourceForm.mesordercode = '' + this.sourceForm.sourceorder = '' + this.sourceForm.partcode = '' + this.sourceForm.partname = '' + this.sourceForm.partspec = '' + // this.sourceForm.paystartdate = '' + // this.sourceForm.payenddate = '' + this.sourceForm.creatuser = '' + this.sourceForm.createdate = '' + this.getMesBadOrderSearch() + }, + dialogVisibleSourceClose() { + this.radioSelectedId = '' + + this.sourceForm.mesordercode = '' + this.sourceForm.sourceorder = '' + this.sourceForm.partcode = '' + this.sourceForm.partname = '' + this.sourceForm.partspec = '' + this.sourceForm.paystartdate = '' + this.sourceForm.payenddate = '' + this.sourceForm.creatuser = '' + this.sourceForm.createdate = '' + + this.isExpandDialog = false + this.sourceTableData = [] + }, + dialogVisibleSourceBack() { + this.dialogVisibleSource = false + }, + dialogVisibleSourceConfirm() { + console.log(this.radioSelectedId) + this.sourceTableData.forEach(item => { + if (item.id === this.radioSelectedId) { + this.dialogForm.sourceorder = item.wo_code + this.dialogForm.partcode = item.partcode + this.dialogForm.partspec = item.partspec + } + }) + this.dialogVisibleSource = false + }, + mesordertypeChange(val) { + if (val === 'PO') { + this.dialogForm.sourceorder = '' + this.dialogForm.partcode = '' + this.dialogForm.partspec = '' + } + }, + /* 鍏宠仈宸ヨ壓璺嚎妯″潡*/ + // 鍏宠仈宸ヨ壓璺嚎 + async routeClick(row) { + console.log(row) + // this.defaultroute_code = row.default_route + this.dialogFormRoute.projectCode = row.partcode + this.dialogFormRoute.projectName = row.partname + this.dialogVisibleRoute = true + const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode }) + this.dialogFormRoute.routeOperationArr = res + + this.dialogFormRoute.routeOperationArr.forEach((item, index) => { + item.isSelected1 = false + item.isSelected2 = false + if (index === 0) { + item.isSelected1 = true + this.projectTableData = item.Data + } + if (item.flag === 'Y') { + item.isSelected2 = true + this.$nextTick(() => { + $('input:checkbox').eq(index).prop('checked', true) + }) + } + }) + + this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y') + }, + // 瀵硅瘽妗嗗叧闂� + handleCloseRoute() { + this.dialogFormRoute.routeOperationArr = [] + this.defaultroute_codeArr = [] + this.defaultroute_code = '' + this.projectTableData = [] + }, + // 鍙栨秷 + routeDialogVisibleCancel() { + this.dialogVisibleRoute = false + }, + // 纭畾 + async routeDialogVisibleConfirm() { + const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) + if (this.defaultroute_code === '' && temp.length > 0) { + return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�') + } + + // 鎻愪氦鏍煎紡 + const data = [] + this.dialogFormRoute.routeOperationArr.forEach(item => { + if (item.isSelected2) { + data.push({ code: item.code, name: item.name }) + } + }) + + const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data) + if (res.code === '200') { + this.$message.success('淇濆瓨鎴愬姛锛�') + await this.getMesOrderSearch() + this.dialogVisibleRoute = false + } + }, + // 澶х洅瀛愮偣鍑讳簨浠� + myCheckboxClick(val) { + console.log(val, 1) + this.dialogFormRoute.routeOperationArr.forEach(item => { + item.isSelected1 = val.code === item.code + }) + + this.projectTableData = val.Data + }, + // 灏忕洅瀛愮偣鍑讳簨浠� + myCheckboxInputClick(val) { + console.log(val, 2) + val.isSelected2 = !val.isSelected2 + + this.dialogFormRoute.routeOperationArr.forEach((item, index) => { + if (val.code === item.code) { + item.flag = !item.flag + } + }) + if (val.code === this.defaultroute_code) { + this.defaultroute_code = '' + } + this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2) + }, + // 琛岀偣鍑讳簨浠� + async rowClick(row, event, column) { + const data = { + sourceid: row.sourceid, + sourcewo: row.m_po, + wocode: row.wo_code, + data_sources: row.data_sources + } + const { data: res } = await UpdateMesOrderStepSearch(data) + this.tableDataDetail = res.stepdata + }, + // 宸ュ簭鍒犻櫎 + stepDel(row) { + console.log(row) + const index = this.stepSelectedValue.findIndex(i => i === row.stepcode) + this.stepSelectedValue.splice(index, 1) + }, + // 鎵撳嵃宸ュ崟 + printOrder() { + + }, + // 閫夋嫨鎵撳嵃灏哄鐨勫ぇ灏忓�兼敼鍙� + printSizeChange(val) { + this.$nextTick(() => { + this.bindQRCode2(this.qrForm.qrvalue) + }) + }, + printMe2StylePadding(val) { + if (val === 0) { + return { paddingLeft: '10px', paddingTop: '5px' } + } + if (val === 5) { + return { paddingLeft: '15px', paddingTop: '7px' } + } + }, + + inbarcodeChange(val, item) { + // 褰� lastPrintArrSelected涓湭鏈夊綋鍓嶅嬀閫夌殑鍊兼槸 璧皃ush item 鍚﹀垯璧拌繃婊ゆ帀item + if (val) { + this.lastPrintArrSelected.push(item) + } else { + this.lastPrintArrSelected = this.lastPrintArrSelected.filter(i => i.inbarcode !== item.inbarcode) + } + + // 鐢熶骇浜岀淮鐮� + this.$nextTick(() => { + this.lastPrintArrSelected.forEach((i, index) => { + console.log(i.inbarcode, 'i.inbarcode') + new QRCode(this.$refs.qrCodeDiv3[index], { + text: i.inbarcode, + width: 60, + height: 60, + colorDark: '#000', // 浜岀淮鐮侀鑹� + colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊 + correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H + }) + }) + + // const div = document.getElementById('qrCode3') + // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶搴曢儴 + + this.$forceUpdate() + }, 500) + }, + stepSelectedValueChange(val) { + // console.log(val, 123) + }, + getSummaries(param) { + const { columns, data } = param + const sums = [] + const i = 8 + columns.forEach((column, index) => { + if (index === i) { + sums[index] = '鎬绘暟' + return + } + const values = data.map(item => Number(item[column.property])) + if (column.property === 'plan_qty') { + sums[index] = values.reduce((prev, curr) => { + const value = Number(curr) + if (!isNaN(value)) { + return prev + curr + // return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100 + } + }, 0) + + sums[index] += ' 鍗�' + } + }) + + this.$nextTick(() => { + this.$refs.tableDataRef.doLayout() + }) + return sums + } + } +} +</script> +<style> +.sortable-ghost { + opacity: .8; + color: #fff !important; + background: #42b983 !important; +} +</style> +<style lang="scss" scoped> +$main_color: #42b983; + +.dialogVisibleRoute { + .myCheckboxGroup { + display: flex; + flex-wrap: wrap; + + .myCheckbox { + //border: 1px solid $main_color; + border: 1px solid #eee; + display: flex; + min-width: 100px; + padding: 10px; + margin: 10px 30px 0 0; + border-radius: 5px; + cursor: default; + + .myCheckboxInput { + margin: 1px 5px 0 0; + cursor: pointer; + } + + } + + //.myCheckbox{ + // border: 1px solid $main_color; + //} + + input[type=checkbox] { + cursor: pointer; + position: relative; + width: 14px; + height: 14px; + font-size: 14px; + } + + input[type=checkbox]::after { + position: absolute; + top: 0; + //color: rgb(130, 35, 35); + color: $main_color; + width: 14px; + height: 14px; + display: inline-block; + visibility: visible; + padding-left: 0px; + text-align: center; + content: ' '; + border-radius: 3px + } + + input[type=checkbox]:checked::after { + //content: "鉁�"; + content: "鈭�"; + color: #fff; + font-size: 12px; + font-weight: bold; + background-color: $main_color; + } + } +} + +.dialogVisibleRoute { + ::v-deep .el-dialog__body { + padding: 20px 20px !important; + } +} + +.defaultroute_code ::v-deep .el-input__suffix-inner { + display: flex; + align-items: center; + justify-content: center; + margin-top: -3px; +} + +.el-date-editor { + font-size: 14px; +} + +::v-deep .el-dialog__body { + padding: 20px 100px !important; +} + +.dialogVisibleSearch ::v-deep .el-dialog__body { + padding: 20px 20px !important; +} + +.dialogVisibleConfirmClass ::v-deep .el-dialog__body { + padding: 20px 20px !important; +} + +::v-deep .el-table .caret-wrapper { + transform: scale(0.8); +} + +::v-deep .el-button--text { + color: $main_color; + font-size: 14px; + cursor: pointer; +} + +::v-deep .el-radio.is-bordered + .el-radio.is-bordered { + margin: 10px 30px 0px 0; +} + +.body ::v-deep .el-form-item { + margin-bottom: 0; +} + +.elForm ::v-deep .el-form-item { + margin-bottom: 0; +} + +.elTableDiv { + ::v-deep .el-radio__label { + display: none; + } + +} + +.el-table::before { + height: 0; +} + +//.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit { +// border-bottom: 2px solid #000 ; +// //outline: #000 solid 2px !important; +//} + +.tableDataPrint ::v-deep div.cell { + display: flex !important; + align-items: center !important; + justify-content: center !important; +} + +.formContent { + width: 240px; +} + +</style> + +<style media="print"> +/*@media print {*/ +@page { + size: auto; + margin: 3mm; +} + +</style> +<style> +.formContent .el-form-item__label { + color: #000 !important; +} +</style> +<!--鍏叡椤甸潰鏍峰紡--> +<style lang="scss" scoped> +$main_color: #42b983; + +::v-deep .el-range-input { + font-size: 14px !important; +} + +::v-deep .el-range__icon { + line-height: 28px !important; +} + +::v-deep .el-range-separator { + line-height: 28px !important; +} + +::v-deep .el-range-input { + font-size: 14px; +} + +::v-deep .el-range-separator { + display: flex; + justify-content: center; + align-items: center; +} + +//::v-deep .el-button--primary, .el-button--default, .el-button--info { +// height: 34px; +// display: flex; +// align-items: center; +// padding: 0 15px; +//} + +::v-deep .el-button--primary { + //background-color: $main_color !important; +} + +::v-deep .el-button--default { + background-color: #f8f8fa; + border: none; +} + +::v-deep .el-input__inner { + height: 34px; + line-height: 34px; + //color: #a7a7a7; +} + +::v-deep .el-dialog__body { + padding: 20px 100px !important; +} + +::v-deep .dialogVisibleRoles .el-dialog__body { + padding: 20px 20px !important; +} + +::v-deep .importPickerClass .el-dialog__body { + padding: 20px 20px !important; +} + +::v-deep .el-dialog__footer { + display: flex; + justify-content: flex-end; +} + +::v-deep .el-table .caret-wrapper { + transform: scale(0.8); +} + +::v-deep .cell { + display: flex; + align-items: center; + justify-content: space-between; +} + +::v-deep .el-table::before { + height: 0; +} + +::v-deep .el-table__body-wrapper { + background-color: #f8f8fa; +} + +::v-deep .el-table__body .el-table__row.hover-row td { + background-color: #eaecef; +} + +::v-deep .el-form--inline .el-form-item__label { + color: #a7a7a7; +} + +.body ::v-deep .el-divider { + border: 1px solid #eee; + width: 99%; + margin: 10px auto; +} + +.body ::v-deep .el-form-item { + margin-bottom: 0; +} + +.userDialogVisible ::v-deep .el-form-item { + margin-bottom: 0; +} + +.dateMini { + ::v-deep .el-input__inner { + line-height: 34px; + height: 34px; + width: 200px; + display: flex; + font-size: 14px !important; + align-items: center !important; + } + + ::v-deep .el-input__prefix { + margin-top: -3px; + } + + //::v-deep .el-range__icon{ + // line-height: 28px; + //} +} + +::v-deep .el-select__caret { + display: flex; + align-items: center; + justify-content: center; +} + +.tableFixed { + ::v-deep .el-table__fixed-right { + height: 100% !important; + } + + ::v-deep .el-table__fixed { + height: 100% !important; + } +} +</style> +<style> + +.el-table .custom-row { + background: #f8f8fa; +} +</style> -- Gitblit v1.9.3