From b01acc5451b09593762522e9baff2615120696ec Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期四, 30 十月 2025 14:04:50 +0800
Subject: [PATCH] 1.新增 订单开启、工单开启功能 2.新增顶级物料字段
---
src/views/workOrder/produceOrderList.vue | 319 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 200 insertions(+), 119 deletions(-)
diff --git a/src/views/workOrder/produceOrderList.vue b/src/views/workOrder/produceOrderList.vue
index 978206d..82a6d56 100644
--- a/src/views/workOrder/produceOrderList.vue
+++ b/src/views/workOrder/produceOrderList.vue
@@ -7,10 +7,17 @@
>
<div style="font-weight: bolder;">璁㈠崟鐘舵��</div>
<div class="statusItem" :class="{statusItemLight:form.erporderstus===''}" @click="statusChange('')">鍏ㄩ儴</div>
- <div class="statusItem" :class="{statusItemLight:form.erporderstus==='NEW'}" @click="statusChange('NEW')">鏂拌鍗�</div>
- <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATING'}" @click="statusChange('CREATING')">閮ㄥ垎涓嬭揪</div>
- <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATED'}" @click="statusChange('CREATED')">鍏ㄩ儴涓嬭揪</div>
- <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CLOSED'}" @click="statusChange('CLOSED')">宸插叧闂�</div>
+ <div class="statusItem" :class="{statusItemLight:form.erporderstus==='NEW'}" @click="statusChange('NEW')">鏂拌鍗�
+ </div>
+ <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATING'}"
+ @click="statusChange('CREATING')">閮ㄥ垎涓嬭揪
+ </div>
+ <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATED'}"
+ @click="statusChange('CREATED')">鍏ㄩ儴涓嬭揪
+ </div>
+ <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CLOSED'}" @click="statusChange('CLOSED')">
+ 宸插叧闂�
+ </div>
</div>
<div class="bodyTopButtonGroup" style="justify-content: space-between;margin-top: 5px;">
@@ -74,22 +81,22 @@
</el-select>
</el-form-item>
<el-form-item label="璁㈠崟缂栧彿" style=" display: flex;">
- <el-input v-model="form.erpordercode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ <el-input v-model="form.erpordercode" placeholder="璇疯緭鍏�" style="width: 200px"/>
</el-form-item>
<el-form-item label="閿�鍞鍗�" style=" display: flex;">
- <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�"/>
</el-form-item>
<el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;">
- <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ <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-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-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�"/>
</el-form-item>
<DateType
@@ -237,7 +244,7 @@
<el-table-column
show-tooltip-when-overflow
prop="saleOrderCode"
- label="閿�鍞鍗�"
+ label="閿�鍞鍗�/棰勬祴鍗�"
sortable="custom"
width="150"
>
@@ -273,6 +280,30 @@
</template>
</el-table-column>
<el-table-column
+ prop="TopInventoryCode"
+ label="椤剁骇鐗╂枡缂栫爜"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.TopInventoryCode">{{ row.TopInventoryCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="TopInventoryName"
+ label="椤剁骇鐗╂枡鍚嶇О"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.TopInventoryName">{{ row.TopInventoryName }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
prop="qty"
label="璁㈠崟鏁伴噺"
width="150"
@@ -286,66 +317,66 @@
width="150"
sortable="custom"
/>
-<!-- <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="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="clerkuser"
label="閿�鍞笟鍔″憳"
@@ -473,12 +504,21 @@
@click="edit('edit',row)"
/>
</el-tooltip>
- <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍏抽棴" placement="top">
+ <el-tooltip v-del-tab-index class="item" effect="dark" :content="row.status!=='CLOSED'?'璁㈠崟鍏抽棴':'璁㈠崟鍚姩'" placement="top">
<i
+ v-if="row.status!=='CLOSED'"
class="el-icon-switch-button"
+ :style="{color:'red'}"
+ style="cursor: pointer;margin-left: 15px"
+ @click="orderClose(row)"
+ />
+
+ <i
+ v-if="row.status==='CLOSED'"
+ class="el-icon-thumb"
:style="{color:$store.state.settings.theme}"
style="cursor: pointer;margin-left: 15px"
- @click="orderClose(row.id)"
+ @click="orderOpen(row)"
/>
</el-tooltip>
@@ -519,26 +559,35 @@
>
<el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="106px">
<el-form-item label="璁㈠崟缂栧彿" prop="erpordercode">
- <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px"/>
</el-form-item>
<el-form-item label="浜у搧缂栫爜" prop="partcode">
- <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.partcode" disabled style="width: 200px"/>
</el-form-item>
<el-form-item label="浜у搧鍚嶇О" prop="partname">
- <el-input v-model="dialogForm.partname" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.partname" disabled style="width: 200px"/>
</el-form-item>
<el-form-item label="浜у搧瑙勬牸" prop="partspec">
- <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.partspec" disabled style="width: 200px"/>
</el-form-item>
+
+ <el-form-item label="椤剁骇鐗╂枡缂栫爜" prop="TopInventoryCode">
+ <el-input v-model="dialogForm.TopInventoryCode" disabled style="width: 200px"/>
+ </el-form-item>
+
+ <el-form-item label="椤剁骇鐗╂枡鍚嶇О" prop="TopInventoryName">
+ <el-input v-model="dialogForm.TopInventoryName" disabled style="width: 200px"/>
+ </el-form-item>
+
<el-form-item label="鐢熶骇杞﹂棿" prop="wkshopname">
- <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px"/>
</el-form-item>
<el-form-item label="鎵�灞炰粨搴�" prop="warehousename">
- <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.warehousename" disabled style="width: 200px"/>
</el-form-item>
<el-form-item label="璁㈠崟鏁伴噺" prop="erpqty">
- <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" />
+ <el-input v-model="dialogForm.erpqty" disabled style="width: 200px"/>
</el-form-item>
<el-form-item label="宸蹭笅鍗曟暟" prop="relse_qty">
<el-input
@@ -636,7 +685,7 @@
<script>
import Pagination from '@/components/Pagination'
-import { handleDatetime } from '@/utils/global'
+import {handleDatetime} from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
import {
@@ -644,10 +693,10 @@
DeleteErpOrder,
ErpOrderSearch,
MarkBatchSaveErpOrder,
- MarkSaveErpOrder
+ MarkSaveErpOrder, ReverseClosedErpOrder
} from '@/api/WorkOrder'
-import { SeaveSearchErpOrder } from '@/api/ErpSyncMes'
-import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+import {SeaveSearchErpOrder} from '@/api/ErpSyncMes'
+import {PrentOrganizationNoCompany} from '@/api/GeneralBasicData'
import DateType from '@/components/DateType'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -656,7 +705,7 @@
components: {
Pagination, DateType
},
- directives: { elDragDialog, waves },
+ directives: {elDragDialog, waves},
data() {
const validateName = (rule, value, callback) => {
if (!value) {
@@ -698,10 +747,10 @@
},
erporderstusArr: [
- { code: 'NEW', name: '鏂拌鍗�' },
- { code: 'CREATING', name: '閮ㄥ垎涓嬭揪' },
- { code: 'CREATED', name: '鍏ㄩ儴涓嬭揪' },
- { code: 'CLOSED', name: '宸插叧闂�' }
+ {code: 'NEW', name: '鏂拌鍗�'},
+ {code: 'CREATING', name: '閮ㄥ垎涓嬭揪'},
+ {code: 'CREATED', name: '鍏ㄩ儴涓嬭揪'},
+ {code: 'CLOSED', name: '宸插叧闂�'}
],
wkshopcodeArr: [],
total: 10,
@@ -729,6 +778,10 @@
ordernum: '', // 涓嬪崟鍗曟暟
relse_qty: '', // 宸蹭笅鍗曟暟閲�
+ idTopInventory: '', // 椤剁骇鐗╂枡id
+ TopInventoryCode: '', // 椤剁骇鐗╂枡缂栫爜
+ TopInventoryName: '', // 椤剁骇鐗╂枡鍚嶇О
+
clerkuser: '', // 閿�鍞笟鍔″憳
saleOrderDeliveryDate: '', // 棰勮浜や粯鏃ユ湡
@@ -745,13 +798,13 @@
// { required: true, validator: validateName, trigger: ['blur', 'change'] }
// ],
markqty: [
- { required: true, message: '璇疯緭鍏ヤ笅鍗曟暟閲�', trigger: ['blur', 'change'] }
+ {required: true, message: '璇疯緭鍏ヤ笅鍗曟暟閲�', trigger: ['blur', 'change']}
],
ordernum: [
- { required: true, message: '璇疯緭鍏ヤ笅鍗曞崟鏁�', trigger: ['blur', 'change'] }
+ {required: true, message: '璇疯緭鍏ヤ笅鍗曞崟鏁�', trigger: ['blur', 'change']}
],
saleOrderDeliveryDate: [
- { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] }
+ {required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change']}
]
},
@@ -804,7 +857,7 @@
},
async getPrentOrganizationNoCompany() {
- const { data: res } = await PrentOrganizationNoCompany()
+ const {data: res} = await PrentOrganizationNoCompany()
this.wkshopcodeArr = res
},
async getErpOrderSearch() {
@@ -853,7 +906,7 @@
this.total = res.count
},
// 鎺掑簭鏀瑰彉鏃�
- sortChange({ column, prop, order }) {
+ sortChange({column, prop, order}) {
if (order === 'descending') {
order = 'desc'
} else if (order === 'ascending') {
@@ -939,7 +992,7 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
+ DeleteErpOrder({erpordercode: item.wo, erporderid: id}).then(res => {
if (res.code === '200') {
this.$message.success('璁㈠崟鍒犻櫎鎴愬姛!')
this.getErpOrderSearch()
@@ -953,28 +1006,41 @@
})
},
// 璁㈠崟鍏抽棴
- async orderClose(id) {
- this.tableData.forEach(item => {
- if (item.id === id) {
- if (item.status !== 'NEW') {
- return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
- } else {
- this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- ClosedErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
- if (res.code === '200') {
- this.$message.success('璁㈠崟鍏抽棴鎴愬姛!')
- this.getErpOrderSearch()
- }
- })
- }).catch(() => {
- this.$message.info('宸插彇娑堝叧闂紒')
- })
+ async orderClose(row) {
+ if (row.status !== 'NEW') {
+ return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
+ } else {
+ this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ ClosedErpOrder({erpordercode: row.wo, erporderid: row.id}).then(res => {
+ if (res.code === '200') {
+ this.$message.success('璁㈠崟鍏抽棴鎴愬姛!')
+ this.getErpOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝叧闂紒')
+ })
+ }
+ },
+ // 璁㈠崟寮�鍚�
+ async orderOpen(row) {
+ this.$confirm('鏄惁纭鍚姩璁㈠崟锛岃璁㈠崟涓嬬殑鎵�鏈夊伐鍗曞皢浼氬紑鍚紒', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ ReverseClosedErpOrder({erpordercode: row.wo, erporderid: row.id}).then(res => {
+ if (res.code === '200') {
+ this.$message.success('璁㈠崟鍚姩鎴愬姛!')
+ this.getErpOrderSearch()
}
- }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝叧闂紒')
})
},
batchHandle() {
@@ -1065,6 +1131,11 @@
this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty)
this.dialogForm.ordernum = 1
this.dialogForm.relse_qty = row.relse_qty
+
+ this.dialogForm.idTopInventory = row.idTopInventory
+ this.dialogForm.TopInventoryCode = row.TopInventoryCode
+ this.dialogForm.TopInventoryName = row.TopInventoryName
+
this.dialogForm.clerkuser = row.clerkuser
this.dialogForm.paystartdate = row.planstartdate
@@ -1093,6 +1164,10 @@
markqty: '', // 涓嬪崟鏁伴噺
ordernum: '', // 涓嬪崟鍗曟暟
relse_qty: '', // 宸蹭笅鍗曟暟閲�
+
+ idTopInventory: '', // 椤剁骇鐗╂枡id
+ TopInventoryCode: '', // 椤剁骇鐗╂枡缂栫爜
+ TopInventoryName: '', // 椤剁骇鐗╂枡鍚嶇О
payenddate: '', // 棰勮瀹屽伐鏃ユ湡
paystartdate: '', // 棰勮寮�宸ユ棩鏈�
@@ -1130,6 +1205,11 @@
'partcode': this.dialogForm.partcode,
'wkshopcode': this.dialogForm.wkshopcode,
'warehousecode': this.dialogForm.warehousecode,
+
+ 'idTopInventory': this.dialogForm.idTopInventory,
+ 'TopInventoryCode': this.dialogForm.TopInventoryCode,
+ 'TopInventoryName': this.dialogForm.TopInventoryName,
+
'clerkuser': this.dialogForm.clerkuser,
'erpqty': this.dialogForm.erpqty,
'markqty': this.dialogForm.markqty,
@@ -1162,11 +1242,11 @@
this.$refs.tableDataRef.doLayout()
})
},
- tableRowClassName({ row, rowIndex }) {
+ tableRowClassName({row, rowIndex}) {
return 'custom-row'
},
getSummaries(param) {
- const { columns, data } = param
+ const {columns, data} = param
const sums = []
const i = 7
columns.forEach((column, index) => {
@@ -1363,12 +1443,13 @@
padding: 10px 10px 0 10px;
}
-.statusItem{
+.statusItem {
margin-left: 20px;
cursor: pointer;
color: #a7a7a7;
}
-.statusItemLight{
+
+.statusItemLight {
font-weight: bolder;
color: #42b983;
}
--
Gitblit v1.9.3