From 7de17bdd69eb8700e5e74f17b265afdaca80c32c Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期二, 06 八月 2024 16:59:54 +0800
Subject: [PATCH] 1.工单批量派发实现
---
src/views/produceManager/workOrder.vue | 401 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 368 insertions(+), 33 deletions(-)
diff --git a/src/views/produceManager/workOrder.vue b/src/views/produceManager/workOrder.vue
index def635c..f93eb06 100644
--- a/src/views/produceManager/workOrder.vue
+++ b/src/views/produceManager/workOrder.vue
@@ -5,10 +5,10 @@
<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="primary" icon="el-icon-connection" @click="send('send')">娲惧彂</el-button>
+ <el-button v-waves type="primary" icon="el-icon-connection" @click="batchSend()">鎵归噺娲惧彂</el-button>
</div>
- <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>
+ <!-- <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>-->
</div>
<div class="bodyTopFormGroup">
@@ -138,24 +138,25 @@
:cell-style="this.$cellStyle"
@sort-change="sortChange"
@row-click="rowClick"
+ @selection-change="handleSelectionChange"
>
- <!-- <el-table-column-->
- <!-- type="selection"-->
- <!-- width="50"-->
- <!-- />-->
<el-table-column
+ type="selection"
width="50"
- fixed
- >
- <template slot-scope="{row}">
- <el-radio
- v-model="radioSelected"
- :label="row.wo_code"
- style="color: transparent;padding-left: 10px;"
- />
- <!-- @change.native="getCurrentRow(row.wo_code)"-->
- </template>
- </el-table-column>
+ :selectable="selected"
+ />
+ <!-- <el-table-column-->
+ <!-- width="50"-->
+ <!-- fixed-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-radio-->
+ <!-- v-model="radioSelected"-->
+ <!-- :label="row.wo_code"-->
+ <!-- style="color: transparent;padding-left: 10px;"-->
+ <!-- />-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
<el-table-column
prop="RowNum"
width="50"
@@ -352,11 +353,27 @@
/>
<el-table-column
label="鎿嶄綔"
- width="120"
+ width="140"
fixed="right"
>
<template slot-scope="{row}">
<div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="娲惧彂" placement="top">
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-connection"
+ style="cursor: pointer;margin-right: 15px"
+ @click="send('send',row)"
+ />
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="宸ュ崟鍏抽棴" placement="top">
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-switch-button"
+ style="cursor: pointer;margin-right: 15px"
+ @click="orderClose(row.wo_code)"
+ />
+ </el-tooltip>
<el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top">
<!-- <i-->
<!-- class="el-icon-tickets"-->
@@ -505,6 +522,7 @@
</el-table>
</div>
</div>
+
<!--鏂板娲惧彂瀵硅瘽妗�-->
<el-dialog
v-el-drag-dialog
@@ -2004,6 +2022,196 @@
</span>
</el-dialog>
+ <!-- 鎵归噺娲惧彂瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="鎵归噺娲惧彂"
+ :visible.sync="dialogVisible3"
+ width="900px"
+ top="10vh"
+ :close-on-click-modal="false"
+ @closed="handleClose3"
+ @close="handleClose3"
+ >
+
+ <div style="height: 600px;padding-right: 20px;overflow: auto">
+ <el-alert
+ v-if="multipleSelection.length-formData3.length>0"
+ :title="'褰撳墠閫変腑'+multipleSelection.length+'涓伐鍗曪紝鏈�'+(multipleSelection.length-formData3.length)+'涓伐鍗曟湭鎸囧畾宸ヨ壓璺嚎锛屽凡杩囨护锛�'"
+ type="error"
+ />
+ <div v-for="(i,index) in formData3" :key="index">
+ <el-divider content-position="left">绗瑊{ index+1 }}涓伐鍗�</el-divider>
+
+ <el-form
+ ref="dialogForm"
+ inline
+ :model="i"
+ label-width="110px"
+ >
+ <el-form-item
+ label="宸ュ崟鐘舵��"
+ prop="mesorderstus"
+ >
+ <el-select
+ v-model="i.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="i.mesordercode" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus">
+ <el-select
+ v-model="i.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>
+ <el-form-item label="婧愬崟鍗曞彿">
+ <el-input
+ v-model="i.sourceorder"
+ :disabled="i.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-form-item label="宸ュ崟鏁伴噺" prop="mesqty">
+ <el-input
+ v-model="i.mesqty"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ :disabled="operation!=='add'"
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item
+ v-if="operation==='add'"
+ label="浜у搧鍚嶇О/缂栫爜"
+ prop="partcode"
+ >
+ <el-select
+ v-model="i.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="i.partname" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜">
+ <el-input v-model="i.partcode" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧瑙勬牸" prop="partspec">
+ <el-input v-model="i.partspec" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- <div style="display: flex">-->
+ <el-form-item label="鐢熶骇杞﹂棿" prop="wkshopcode">
+ <el-input v-model="i.wkshopname" disabled style="width: 200px" />
+
+ <!-- <el-select-->
+ <!-- v-model="i.wkshopcode"-->
+ <!-- filterable-->
+ <!-- :popper-append-to-body="false"-->
+ <!-- style="width: 200px;"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- disabled-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in wkshopArr"-->
+ <!-- :key="item.org_code"-->
+ <!-- :label="item.org_name"-->
+ <!-- :value="item.org_code"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ </el-form-item>
+
+ <el-form-item label="宸ヨ壓璺嚎" prop="routecode">
+ <el-select
+ v-model="i.routecode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :disabled="i.wkshopcode===''"
+ >
+ <el-option
+ v-for="item in i.children"
+ :key="item.routecode"
+ :label="item.routename"
+ :value="item.routecode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ヤ环绠℃帶" required>
+ <el-switch
+ v-model="i.is_steprice"
+ active-color="#13ce66"
+ inactive-color="#eee"
+ @change="routecodeChange2(i)"
+ />
+ </el-form-item>
+
+ </el-form>
+
+ <div style="display: flex;justify-content: flex-end;margin-top: -50px;margin-right: 50px">
+ {{ i.children.find(it=>it.routecode===i.routecode).stepname }}
+ </div>
+ </div>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible3=false">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+
+ type="primary"
+ :disabled="submitButtonIsDisabled"
+ @click="dialogVisibleConfirm3"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
</div>
</template>
@@ -2012,9 +2220,20 @@
import {
AddUpdateMesOrder,
ClosedMesOrder,
- DeleteMesOrder, MesBadOrderSearch, JobCreationSonAddVison,
- MesOrderSearch, PartSelectRoute, RouteSelectWkshop, SearchWorkStep, SelectRouteOrWkshop,
- SelectRouteStep, AddMesOrderCodeSearch, ProductInHouseLabCode, UpdateMesOrderPrintCount
+ DeleteMesOrder,
+ MesBadOrderSearch,
+ JobCreationSonAddVison,
+ MesOrderSearch,
+ PartSelectRoute,
+ RouteSelectWkshop,
+ SearchWorkStep,
+ SelectRouteOrWkshop,
+ SelectRouteStep,
+ AddMesOrderCodeSearch,
+ ProductInHouseLabCode,
+ UpdateMesOrderPrintCount,
+ BatchSearchRouteStep,
+ BatchWorkSave
} from '@/api/produceManager'
import { InventoryFileAssociationRoute, PartSelect, SaveInventoryFile } from '@/api/makeModel'
import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
@@ -2280,7 +2499,12 @@
switchButton: false,
- routeStepArr: ''
+ routeStepArr: '',
+
+ dialogVisible3: false,
+ multipleSelection: [],
+ formData3: []
+
}
},
created() {
@@ -2513,12 +2737,12 @@
this.dialogVisibleTask = false
},
// 娲惧彂
- send(operation) {
- if (this.radioSelected.length < 1) {
- return this.$message.info('璇峰厛閫夋嫨宸ュ崟锛�')
- }
-
- const row = this.tableData.find(item => item.wo_code === this.radioSelected)
+ send(operation, row) {
+ // if (this.radioSelected.length < 1) {
+ // return this.$message.info('璇峰厛閫夋嫨宸ュ崟锛�')
+ // }
+ //
+ // const row = this.tableData.find(item => item.wo_code === this.radioSelected)
if (row.status !== 'NEW') {
return this.$message.info('姝ゅ伐鍗曚负闈炴柊宸ュ崟鐘舵�侊紝涓嶅彲娲惧彂锛�')
@@ -2574,13 +2798,13 @@
})
},
// 宸ュ崟鍏抽棴浜嬩欢
- orderClose() {
- if (this.radioSelected.length < 1) {
- return this.$message.info('璇峰厛閫夋嫨宸ュ崟锛�')
- }
+ orderClose(wo_code) {
+ // if (this.radioSelected.length < 1) {
+ // return this.$message.info('璇峰厛閫夋嫨宸ュ崟锛�')
+ // }
console.log('宸ュ崟鍏抽棴浜嬩欢')
this.tableData.forEach(item => {
- if (item.wo_code === this.radioSelected) {
+ if (item.wo_code === wo_code) {
// if (item.status === 'START') {
// return this.$message.info('褰撳墠宸ュ崟鏈畬宸ワ紝鏃犳硶鍏抽棴锛�')
// } else
@@ -3203,6 +3427,117 @@
this.$forceUpdate()
}, 500)
+ },
+
+ handleSelectionChange(val) {
+ this.multipleSelection = val
+
+ console.log(this.multipleSelection)
+ },
+ // 鎵归噺娲惧彂
+ async batchSend() {
+ if (this.multipleSelection.length === 0) {
+ return this.$message.info('璇峰厛鍕鹃�夌浉瀵瑰簲鐨勫伐鍗曪紒')
+ }
+ const data = []
+ this.multipleSelection.forEach(i => {
+ data.push({
+ 'wkshopcode': i.wkshp_code,
+ 'code': i.partcode,
+ 'name': i.wo_code,
+ 'flag': ''
+ })
+ })
+
+ const { data: res } = await BatchSearchRouteStep(data)
+ this.formData3 = []
+ this.multipleSelection.forEach((item, index) => {
+ item.stepname = res[index].children.length > 0 ? res[index].children[0].stepname : ''
+ if (item.stepname) {
+ this.formData3.push({
+ 'mesorderstus': item.status,
+ 'sourceorder': item.m_po,
+ 'ordertype': item.wotype,
+ 'mesordercode': item.wo_code,
+ 'partcode': item.partcode,
+ 'mesqty': item.plan_qty,
+ 'routecode': res[index].children.length > 0 ? res[index].children[0].routecode : '',
+ 'wkshopcode': item.wkshp_code,
+ 'wkshopname': item.wkshp_name,
+ 'partname': item.partname,
+ 'partspec': item.partspec,
+ 'planstartdate': item.plan_startdate,
+ 'planenddate': item.plan_enddate,
+ 'orderlev': item.piroque,
+ children: res[index].children,
+ is_steprice: false,
+
+ 'is_aps': '',
+ 'bom_id': ''
+ })
+ }
+ })
+
+ if (this.formData3.length === 0) {
+ return this.$message.info('鏈湁绗﹀悎鍙淳鍙戝伐鍗曪紒')
+ }
+
+ this.dialogVisible3 = true
+ },
+ // 鎵归噺娲惧彂纭畾浜嬩欢
+ async dialogVisibleConfirm3() {
+ const data = []
+ this.formData3.forEach(i => {
+ data.push({
+ 'mesorderstus': i.mesorderstus,
+ 'sourceorder': i.sourceorder,
+ 'ordertype': i.ordertype,
+ 'mesordercode': i.mesordercode,
+ 'partcode': i.partcode,
+ 'mesqty': i.mesqty,
+ 'routecode': i.routecode,
+ 'wkshopcode': i.wkshopcode,
+ 'planstartdate': i.planstartdate,
+ 'planenddate': i.planenddate,
+ 'orderlev': i.orderlev,
+ 'is_aps': 'N',
+ 'bom_id': ''
+ })
+ })
+
+ const res = await BatchWorkSave(data)
+ if (res.code === '200') {
+ this.dialogVisible3 = false
+ this.$message.success('鎵归噺娲惧彂鎴愬姛锛�')
+ await this.getMesOrderSearch()
+ } else {
+ this.$message.error('鎵归噺娲惧彂澶辫触锛�')
+ }
+ },
+ // 鎵归噺娲惧彂鍏抽棴浜嬩欢
+ handleClose3() {
+ this.formData3 = []
+ this.submitButtonIsDisabled = false
+ },
+ selected(row, index) {
+ return row.status === 'NEW'
+ },
+
+ async routecodeChange2(val) {
+ if (val.routecode) {
+ const data = {
+ partcode: val.partcode,
+ routecode: val.routecode,
+ wkshopcode: val.wkshopcode,
+ is_steprice: val.is_steprice ? 'Y' : 'N'
+ }
+ await SelectRouteOrWkshop(data).then((res) => {
+ this.submitButtonIsDisabled = false
+ }).catch(err => {
+ // console.log(err, 2)
+ this.submitButtonIsDisabled = true
+ })
+ }
}
}
}
--
Gitblit v1.9.3