Browse Source

委外修改

master
shenzhouyu 4 months ago
parent
commit
e4d1622232
  1. 2
      src/router/index.js
  2. 15
      src/views/modules/outsourcing-return/outsourcingReturn.vue
  3. 456
      src/views/modules/outsourcing-return/outsourcingReturnPDAIssueList.vue
  4. 12
      src/views/modules/outsourcing-return/outsourcingReturnPDAList.vue

2
src/router/index.js

@ -79,7 +79,7 @@ const globalRoutes = [
{ path: "/outsourcingPickingDetail/:outsourcingNo", name: "outsourcingPickingDetail", component: resolve => require(["@/views/modules/outsourcing-issue/outsourcingPickingDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, { path: "/outsourcingPickingDetail/:outsourcingNo", name: "outsourcingPickingDetail", component: resolve => require(["@/views/modules/outsourcing-issue/outsourcingPickingDetail.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } },
// 委外退料 // 委外退料
{ path: "/outsourcingReturn", name: "outsourcingReturn", component: resolve => require(["@/views/modules/outsourcing-return/index.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } },
{ path: "/outsourcingReturn", name: "outsourcingReturn", component: resolve => require(["@/views/modules/outsourcing-return/outsourcingReturn.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } },
{ path: "/outsourcingReturnPDAList/:orderNo/:partNo/:unissureQty/:itemNo", name: "outsourcingReturnPDAList", component: resolve => require(["@/views/modules/outsourcing-return/outsourcingReturnPDAList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, { path: "/outsourcingReturnPDAList/:orderNo/:partNo/:unissureQty/:itemNo", name: "outsourcingReturnPDAList", component: resolve => require(["@/views/modules/outsourcing-return/outsourcingReturnPDAList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } },
{ path: "/outsourcingReturnPDAIssueList/:outsourcingOrderNo/:material", name: "outsourcingReturnPDAIssueList", component: resolve => require(["@/views/modules/outsourcing-return/outsourcingReturnPDAIssueList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } }, { path: "/outsourcingReturnPDAIssueList/:outsourcingOrderNo/:material", name: "outsourcingReturnPDAIssueList", component: resolve => require(["@/views/modules/outsourcing-return/outsourcingReturnPDAIssueList.vue"], resolve), meta: { transition: 'instant', preload: true, keepAlive: true } },

15
src/views/modules/outsourcing-return/index.vue → src/views/modules/outsourcing-return/outsourcingReturn.vue

@ -68,7 +68,7 @@
@click="goToDetail(material)" @click="goToDetail(material)"
> >
<div class="card-title"> <div class="card-title">
<span class="title-label">物料编码{{ material.componentPartNo }} &nbsp;&nbsp; 行号{{ material.lineNo }}</span>
<span class="title-label">物料编码{{ material.componentPartNo }} &nbsp;&nbsp; 行号{{ material.lineItemNo }} </span>
</div> </div>
<div class="part-desc-row"> <div class="part-desc-row">
<span class="desc-text">{{ material.componentPartDescription }}</span> <span class="desc-text">{{ material.componentPartDescription }}</span>
@ -199,7 +199,8 @@ export default {
let params = { let params = {
outsourcingNo:order.orderNo, outsourcingNo:order.orderNo,
site:this.$store.state.user.site, site:this.$store.state.user.site,
lineNo: order.lineNo
lineNo: order.lineNo,
releaseNo: order.releaseNo,
} }
getOutsourcingReturnOrderLineInfo(params).then(({ data }) => { getOutsourcingReturnOrderLineInfo(params).then(({ data }) => {
@ -222,7 +223,7 @@ export default {
}, },
goToDetail(item) { goToDetail(item) {
const returnableQty = item.inventoryQty - (item.invQtyToReceive || 0);
const returnableQty = item.qtyRequired - (item.reservedQty || 0);
if (returnableQty <= 0) { if (returnableQty <= 0) {
this.$message.warning('该物料已无可退数量'); this.$message.warning('该物料已无可退数量');
return; return;
@ -232,9 +233,13 @@ export default {
name: 'outsourcingReturnPDAList', name: 'outsourcingReturnPDAList',
params: { params: {
orderNo: item.orderNo, orderNo: item.orderNo,
partNo: item.partNo,
partNo: item.componentPartNo,
unissureQty: returnableQty, unissureQty: returnableQty,
itemNo: item.lineNo,
itemNo: {
lineNo: item.lineNo,
lineItemNo: item.lineItemNo,
releaseNo: item.releaseNo,
}
}, },
}); });
}, },

456
src/views/modules/outsourcing-return/outsourcingReturnPDAIssueList.vue

@ -11,22 +11,10 @@
<!-- 搜索框 --> <!-- 搜索框 -->
<div class="search-container"> <div class="search-container">
<el-input
clearable
class="compact-input"
v-model="scanCode"
placeholder="请扫描物料标签"
prefix-icon="el-icon-search"
@keyup.enter.native="handleScan"
ref="scanInput"
/>
<el-input clearable class="compact-input" v-model="scanCode" placeholder="请扫描物料标签" prefix-icon="el-icon-search"
@keyup.enter.native="handleScan" ref="scanInput" />
<div class="mode-switch"> <div class="mode-switch">
<el-switch
class="custom-switch"
v-model="isRemoveMode"
active-color="#ff4949"
inactive-color="#13ce66"
>
<el-switch class="custom-switch" v-model="isRemoveMode" active-color="#ff4949" inactive-color="#13ce66">
</el-switch> </el-switch>
<span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span> <span v-if="isRemoveMode" class="switch-text">{{ "移除" }}</span>
<span v-else class="switch-text2">{{ "添加" }}</span> <span v-else class="switch-text2">{{ "添加" }}</span>
@ -34,22 +22,19 @@
</div> </div>
<!-- 订单信息卡片对齐直接发料明细样式 --> <!-- 订单信息卡片对齐直接发料明细样式 -->
<div class="work-order-list" v-if="orderInfo.orderNo">
<div class="work-order-list" v-if="orderNo">
<div class="work-order-card"> <div class="work-order-card">
<div class="card-title"> <div class="card-title">
<span class="title-label"
>{{
orderInfo.type === "outsourcingOrder" ? "委外订单号" : "退料申请单号"
<span class="title-label">{{
orderInfo.type === "outsourcingOrder" ? "委外单号" : "退料申请单号"
}}{{ orderInfo.orderNo }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;批次号{{ batchNo }}</span> }}{{ orderInfo.orderNo }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;批次号{{ batchNo }}</span>
</div> </div>
<!-- 关联信息单独一行 --> <!-- 关联信息单独一行 -->
<div class="part-desc-row"> <div class="part-desc-row">
<span class="desc-text"
>{{ orderInfo.type === "outsourcingOrder" ? "关联单号" : "关联委外订单" }}{{
<span class="desc-text">{{ orderInfo.type === "outsourcingOrder" ? "关联单号" : "关联委外订单" }}{{
orderInfo.transactionId orderInfo.transactionId
}}</span
>
}}</span>
</div> </div>
<div class="part-desc-row"> <div class="part-desc-row">
<span class="desc-text">{{ orderInfo.partNo }}</span> <span class="desc-text">{{ orderInfo.partNo }}</span>
@ -82,9 +67,7 @@
<span>退料信息确认</span> <span>退料信息确认</span>
</div> </div>
<div class="title-right"> <div class="title-right">
<span class="material-list-link" @click="showMaterialListDialog"
>物料清单</span
>
<span class="material-list-link" @click="showMaterialListDialog">物料清单</span>
</div> </div>
</div> </div>
@ -98,11 +81,7 @@
<div class="col-qty">退料数量</div> <div class="col-qty">退料数量</div>
</div> </div>
<div
v-for="(label, index) in labelList"
:key="label.id"
class="list-item"
>
<div v-for="(label, index) in labelList" :key="label.id" class="list-item">
<div class="col-no">{{ index+1 }}</div> <div class="col-no">{{ index+1 }}</div>
<div class="col-label">{{ label.labelCode }}</div> <div class="col-label">{{ label.labelCode }}</div>
<!-- <div class="col-batch">{{ label.batchNo }}</div> --> <!-- <div class="col-batch">{{ label.batchNo }}</div> -->
@ -121,20 +100,11 @@
<!-- 底部操作按钮 --> <!-- 底部操作按钮 -->
<div class="bottom-actions"> <div class="bottom-actions">
<el-button
class="action-btn primary"
style="margin-left: 10px"
:loading="loading"
@click="confirmReturn"
>
<el-button class="action-btn primary" style="margin-left: 10px" :loading="loading" @click="confirmReturn">
确定退料 确定退料
</el-button> </el-button>
<button
class="action-btn secondary"
style="margin-left: 10px"
@click="cancelReturn"
>
<button class="action-btn secondary" style="margin-left: 10px" @click="cancelReturn">
取消 取消
</button> </button>
</div> </div>
@ -164,11 +134,7 @@
</div> </div>
<div class="table-body"> <div class="table-body">
<div
v-for="(item, index) in materialList"
:key="index"
class="table-row"
>
<div v-for="(item, index) in materialList" :key="index" class="table-row">
<div class="col-no">{{ index + 1 }}</div> <div class="col-no">{{ index + 1 }}</div>
<div class="col-material-code"> <div class="col-material-code">
{{ item.materialCode || item.partNo }} {{ item.materialCode || item.partNo }}
@ -205,40 +171,22 @@
<div class="modal-body"> <div class="modal-body">
<div class="form-group"> <div class="form-group">
<label class="form-label">物料标签</label> <label class="form-label">物料标签</label>
<el-input
v-model="editForm.labelCode"
disabled
class="form-input"
/>
<el-input v-model="editForm.labelCode" disabled class="form-input" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">批次号</label> <label class="form-label">批次号</label>
<el-input
v-model="editForm.batchNo"
disabled
class="form-input"
/>
<el-input v-model="editForm.batchNo" disabled class="form-input" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">库位 <span class="required">*</span></label> <label class="form-label">库位 <span class="required">*</span></label>
<el-input
v-model="editForm.locationId"
placeholder="请输入库位"
class="form-input"
/>
<el-input v-model="editForm.locationId" placeholder="请输入库位" class="form-input" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-label">退料数量 <span class="required">*</span></label> <label class="form-label">退料数量 <span class="required">*</span></label>
<el-input
v-model="editForm.quantity"
type="number"
:min="0"
placeholder="请输入退料数量"
class="form-input"
/>
<el-input v-model="editForm.quantity" type="number" :min="0" placeholder="请输入退料数量" class="form-input" />
</div> </div>
</div> </div>
@ -249,73 +197,73 @@
</div> </div>
</div> </div>
</div> </div>
</template>
</template>
<script> <script>
import { import {
getInventoryPartForOutsourcing, getInventoryPartForOutsourcing,
scanMaterialLabelForOutsourcing, scanMaterialLabelForOutsourcing,
outsourcingReturnUnissueConfirm, outsourcingReturnUnissueConfirm,
} from "@/api/outsourcing/outsourcing-return";
import moment from "moment";
} from '@/api/outsourcing/outsourcing-return'
import moment from 'moment'
export default { export default {
data() { data() {
return { return {
scanCode: "",
scanCode: '',
orderInfo: {}, orderInfo: {},
labelList: [], labelList: [],
orderNo: "",
orderType: "",
orderNo: '',
orderType: '',
showMaterialDialog: false, showMaterialDialog: false,
materialList: [], materialList: [],
materialListLoading: false, materialListLoading: false,
isRemoveMode: false, // isRemoveMode: false, //
returnReason: "",
partNo:"", //
transactionId:"", //
accountingId:"", //
quantity:"", // 退
qtyReversed:0, // 退
batchNo:"", //
returnReason: '',
partNo: '', //
transactionId: '', //
accountingId: '', //
quantity: '', // 退
qtyReversed: 0, // 退
batchNo: '', //
// //
showEditDialog: false, showEditDialog: false,
editForm: { editForm: {
labelCode: '', labelCode: '',
batchNo: '', batchNo: '',
locationId: '', locationId: '',
quantity: 0
quantity: 0,
}, },
editIndex: -1, // editIndex: -1, //
unissureQty:0, //
itemNo:'', // ID
unissureQty: 0, //
itemNo: {}, // ID
loading: false, // loading: false, //
};
}
}, },
computed: { computed: {
totalScannedQty() { totalScannedQty() {
return this.labelList.reduce( return this.labelList.reduce(
(sum, l) => sum + (Number(l.quantity) || 0), (sum, l) => sum + (Number(l.quantity) || 0),
0 0
);
)
}, },
}, },
methods: { methods: {
formatDate(date) { formatDate(date) {
return date ? moment(date).format("YYYY-MM-DD") : "";
return date ? moment(date).format('YYYY-MM-DD') : ''
}, },
// //
handleScan() { handleScan() {
if (!this.scanCode.trim()) { if (!this.scanCode.trim()) {
return;
return
} }
if (this.isRemoveMode) { if (this.isRemoveMode) {
this.removeLabelByCode(this.scanCode.trim());
this.removeLabelByCode(this.scanCode.trim())
} else { } else {
this.validateAndAddLabel(this.scanCode.trim());
this.validateAndAddLabel(this.scanCode.trim())
} }
this.scanCode = "";
this.scanCode = ''
}, },
// 退 // 退
@ -327,18 +275,19 @@ export default {
site: this.$store.state.user.site, site: this.$store.state.user.site,
batchNo: this.batchNo, batchNo: this.batchNo,
componentPartNo: this.partNo, componentPartNo: this.partNo,
};
}
// 退 // 退
scanMaterialLabelForOutsourcing(params).then(({data}) => {
scanMaterialLabelForOutsourcing(params)
.then(({ data }) => {
if (data.code === 0 && data.labelInfo) { if (data.code === 0 && data.labelInfo) {
// //
const exists = this.labelList.find( const exists = this.labelList.find(
(item) => item.labelCode === labelCode (item) => item.labelCode === labelCode
);
)
if (exists) { if (exists) {
this.$message.warning("该标签已扫描,请勿重复扫描");
return;
this.$message.warning('该标签已扫描,请勿重复扫描')
return
} }
// //
@ -349,32 +298,30 @@ export default {
quantity: data.labelInfo.availableQty, quantity: data.labelInfo.availableQty,
batchNo: data.labelInfo.batchNo, batchNo: data.labelInfo.batchNo,
returnReason: data.labelInfo.returnReason, returnReason: data.labelInfo.returnReason,
locationId: data.labelInfo.locationId ,
warehouseId: data.labelInfo.warehouseId ,
});
locationId: data.labelInfo.locationId,
warehouseId: data.labelInfo.warehouseId,
})
this.$message.success("操作成功");
this.$message.success('操作成功')
} else { } else {
this.$message.error(
data.message || "该标签不符合退料要求,请检查"
);
this.$message.error(data.message || '该标签不符合退料要求,请检查')
} }
}) })
.catch(() => { .catch(() => {
this.$message.error("操作失败");
});
this.$message.error('操作失败')
})
}, },
// //
removeLabelByCode(labelCode) { removeLabelByCode(labelCode) {
const index = this.labelList.findIndex( const index = this.labelList.findIndex(
(item) => item.labelCode === labelCode (item) => item.labelCode === labelCode
);
)
if (index !== -1) { if (index !== -1) {
this.labelList.splice(index, 1);
this.$message.success("操作成功");
this.labelList.splice(index, 1)
this.$message.success('操作成功')
} else { } else {
this.$message.warning("未找到该标签");
this.$message.warning('未找到该标签')
} }
}, },
@ -384,150 +331,162 @@ export default {
labelCode: label.labelCode, labelCode: label.labelCode,
batchNo: label.batchNo, batchNo: label.batchNo,
locationId: label.locationId || '', locationId: label.locationId || '',
quantity: label.quantity
};
this.editIndex = index;
this.showEditDialog = true;
quantity: label.quantity,
}
this.editIndex = index
this.showEditDialog = true
}, },
// //
closeEditDialog() { closeEditDialog() {
this.showEditDialog = false;
this.showEditDialog = false
this.editForm = { this.editForm = {
labelCode: '', labelCode: '',
batchNo: '', batchNo: '',
locationId: '', locationId: '',
quantity: 0
};
this.editIndex = -1;
quantity: 0,
}
this.editIndex = -1
}, },
// //
confirmEdit() { confirmEdit() {
// //
if (!this.editForm.locationId.trim()) { if (!this.editForm.locationId.trim()) {
this.$message.warning('请输入库位');
return;
this.$message.warning('请输入库位')
return
} }
if (!this.editForm.quantity || this.editForm.quantity <= 0) { if (!this.editForm.quantity || this.editForm.quantity <= 0) {
this.$message.warning('请输入有效的退料数量');
return;
this.$message.warning('请输入有效的退料数量')
return
} }
// //
if (this.editIndex >= 0 && this.editIndex < this.labelList.length) { if (this.editIndex >= 0 && this.editIndex < this.labelList.length) {
this.labelList[this.editIndex].locationId = this.editForm.locationId;
this.labelList[this.editIndex].quantity = Number(this.editForm.quantity);
this.$message.success('修改成功');
this.labelList[this.editIndex].locationId = this.editForm.locationId
this.labelList[this.editIndex].quantity = Number(this.editForm.quantity)
this.$message.success('修改成功')
} }
this.closeEditDialog();
this.closeEditDialog()
}, },
// 退 // 退
confirmReturn() { confirmReturn() {
if (this.labelList.length === 0) { if (this.labelList.length === 0) {
this.$message.warning("请先扫描退料标签");
return;
this.$message.warning('请先扫描退料标签')
return
}
if(this.totalScannedQty > this.orderInfo.quantity){
this.$message.warning('请先扫描退料数量大于发料数量')
return
} }
this.loading = true;
this.loading = true
const returnParams = { const returnParams = {
site: this.$store.state.user.site, site: this.$store.state.user.site,
outsourcingOrderNo: this.orderNo, outsourcingOrderNo: this.orderNo,
orderType: this.orderType, orderType: this.orderType,
batchNo: this.batchNo, batchNo: this.batchNo,
componentPartNo: this.partNo, componentPartNo: this.partNo,
warehouseId: '1',
warehouseId: localStorage.getItem('selectedWarehouse'),
transactionId: this.transactionId, transactionId: this.transactionId,
accountingId:this.accountingId,
itemNo:this.itemNo,
ifsReversedQty:this.qtyReversed,
accountingId: this.accountingId,
lineNo: this.itemNo.lineNo,
lineItemNo:this.itemNo.lineItemNo,
releaseNo: this.itemNo.releaseNo,
ifsReversedQty: this.qtyReversed,
issueQty: this.quantity, issueQty: this.quantity,
// 退 // 退
selectedMaterials: this.labelList.map((label) => ({
selectedMaterials: this.labelList.map((label,index) => ({
labelCode: label.labelCode, labelCode: label.labelCode,
issueQty: label.quantity, issueQty: label.quantity,
batchNo: label.batchNo, batchNo: label.batchNo,
partNo: label.partNo, partNo: label.partNo,
locationId: label.locationId, locationId: label.locationId,
warehouseId: label.warehouseId,
wdrNo: label.wdrNo || '*', wdrNo: label.wdrNo || '*',
itemNo: index+1
})), })),
};
}
// 退API // 退API
outsourcingReturnUnissueConfirm(returnParams).then(({data}) => {
outsourcingReturnUnissueConfirm(returnParams)
.then(({ data }) => {
if (data.code === 0 && data) { if (data.code === 0 && data) {
this.$message.success("委外退料成功");
this.$router.push({ name: 'outsourcingReturn' });
this.$message.success('委外退料成功')
this.$router.push({ name: 'outsourcingReturn' })
} else { } else {
this.$message.error(data.message || "操作失败");
this.$message.error(data.message || '操作失败')
} }
}).catch(() => {
this.$message.error("操作失败");
}).finally(() => {
this.loading = false;
});
})
.catch(() => {
this.$message.error('操作失败')
})
.finally(() => {
this.loading = false
})
}, },
// 退 // 退
cancelReturn() { cancelReturn() {
if (this.labelList.length > 0) { if (this.labelList.length > 0) {
this.$confirm("取消后将清空已扫描的标签,确定取消吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "继续操作",
type: "warning",
this.$confirm('取消后将清空已扫描的标签,确定取消吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '继续操作',
type: 'warning',
}) })
.then(() => { .then(() => {
this.$router.back();
this.$router.back()
}) })
.catch(() => { .catch(() => {
// //
});
})
} else { } else {
this.$router.back();
this.$router.back()
} }
}, },
// //
showMaterialListDialog() { showMaterialListDialog() {
this.showMaterialDialog = true;
this.loadMaterialList();
this.showMaterialDialog = true
this.loadMaterialList()
}, },
// //
loadMaterialList() { loadMaterialList() {
console.log("加载委外退料物料清单", this.orderInfo, this.orderNo);
console.log('加载委外退料物料清单', this.orderInfo, this.orderNo)
if (!this.$store.state.user.site || !this.orderNo) { if (!this.$store.state.user.site || !this.orderNo) {
this.$message.error("缺少必要参数,无法获取物料清单");
return;
this.$message.error('缺少必要参数,无法获取物料清单')
return
} }
this.materialListLoading = true;
this.materialListLoading = true
const params = { const params = {
site: this.$store.state.user.site, site: this.$store.state.user.site,
orderNo: this.orderNo, orderNo: this.orderNo,
orderType: this.orderType, orderType: this.orderType,
};
}
// //
this.simulateMaterialList(params) this.simulateMaterialList(params)
.then((data) => { .then((data) => {
this.materialListLoading = false;
this.materialListLoading = false
if (data && data.code === 0) { if (data && data.code === 0) {
this.materialList = data.materials || [];
this.materialList = data.materials || []
} else { } else {
this.$message.error(data.msg || "获取物料清单失败");
this.materialList = [];
this.$message.error(data.msg || '获取物料清单失败')
this.materialList = []
} }
}) })
.catch(() => { .catch(() => {
this.materialListLoading = false;
this.$message.error("获取物料清单失败");
this.materialList = [];
});
this.materialListLoading = false
this.$message.error('获取物料清单失败')
this.materialList = []
})
}, },
// API // API
@ -536,71 +495,56 @@ export default {
setTimeout(() => { setTimeout(() => {
const mockMaterials = [ const mockMaterials = [
{ {
materialCode: "MAT001",
partNo: "MAT001",
materialCode: 'MAT001',
partNo: 'MAT001',
returnableQty: 100, returnableQty: 100,
returnedQty: 20, returnedQty: 20,
}, },
{ {
materialCode: "MAT002",
partNo: "MAT002",
materialCode: 'MAT002',
partNo: 'MAT002',
returnableQty: 200, returnableQty: 200,
returnedQty: 50, returnedQty: 50,
}, },
{ {
materialCode: "MAT003",
partNo: "MAT003",
materialCode: 'MAT003',
partNo: 'MAT003',
returnableQty: 150, returnableQty: 150,
returnedQty: 0, returnedQty: 0,
}, },
];
]
resolve({ resolve({
code: 0, code: 0,
materials: mockMaterials, materials: mockMaterials,
});
}, 500);
});
})
}, 500)
})
}, },
// //
closeMaterialDialog() { closeMaterialDialog() {
this.showMaterialDialog = false;
this.showMaterialDialog = false
}, },
// //
loadOrderDetails() { loadOrderDetails() {
const params = {
orderNo: this.orderNo,
orderType: this.orderType,
site: this.$store.state.user.site,
partNo:this.partNo
};
console.log("加载订单详情参数:", params);
//
getInventoryPartForOutsourcing(params).then(({data}) => {
if (data && data.code === 0) {
this.orderInfo = data.inventoryPart[0]
this.orderInfo.type = this.orderType this.orderInfo.type = this.orderType
this.orderInfo.orderNo = this.orderNo this.orderInfo.orderNo = this.orderNo
this.orderInfo.transactionId = this.transactionId this.orderInfo.transactionId = this.transactionId
this.orderInfo.quantity = this.quantity this.orderInfo.quantity = this.quantity
} else {
this.$message.error(data.msg || "获取订单详情失败");
}
}).catch(() => {
this.$message.error("获取订单详情失败");
});
this.orderInfo.partNo = this.partNo
console.log(this.orderInfo);
}, },
}, },
mounted() { mounted() {
// //
console.log("路由参数:", this.$route.params.material);
console.log('路由参数:', this.$route.params.material)
this.orderNo = this.$route.params.outsourcingOrderNo;
this.orderType = this.$route.params.material.orderType || "outsourcingOrder";
this.orderNo = this.$route.params.outsourcingOrderNo
this.orderType = this.$route.params.material.orderType || 'outsourcingOrder'
this.partNo = this.$route.params.material.partNo this.partNo = this.$route.params.material.partNo
this.transactionId = this.$route.params.material.ifsTransactionID this.transactionId = this.$route.params.material.ifsTransactionID
this.accountingId = this.$route.params.material.ifsAccountingID this.accountingId = this.$route.params.material.ifsAccountingID
@ -608,25 +552,25 @@ export default {
this.batchNo = this.$route.params.material.batchNo this.batchNo = this.$route.params.material.batchNo
this.unissureQty = this.$route.params.material.unissureQty this.unissureQty = this.$route.params.material.unissureQty
this.itemNo = this.$route.params.material.itemNo this.itemNo = this.$route.params.material.itemNo
this.qtyReversed= this.$route.params.material.qtyReversedBy || 0
this.qtyReversed = this.$route.params.material.qtyReversedBy || 0
if (!this.orderNo) { if (!this.orderNo) {
this.$message.error("参数错误");
this.$router.back();
return;
this.$message.error('参数错误')
this.$router.back()
return
} }
// //
this.$nextTick(() => { this.$nextTick(() => {
if (this.$refs.scanInput) { if (this.$refs.scanInput) {
this.$refs.scanInput.focus();
this.$refs.scanInput.focus()
} }
});
})
// //
this.loadOrderDetails();
this.loadOrderDetails()
}, },
};
}
</script> </script>
<style scoped> <style scoped>
@ -831,7 +775,7 @@ export default {
} }
.detail-value .total::before { .detail-value .total::before {
content: "/";
content: '/';
color: #333; color: #333;
} }
@ -978,7 +922,7 @@ export default {
text-align: center; text-align: center;
} }
.col-qty {
.col-qty {
width: 80px; width: 80px;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
@ -987,28 +931,28 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
gap: 4px; gap: 4px;
}
}
.quantity-display {
.quantity-display {
font-size: 12px; font-size: 12px;
color: #333; color: #333;
}
}
.edit-icon {
.edit-icon {
font-size: 12px; font-size: 12px;
color: #17b3a3; color: #17b3a3;
opacity: 0.7; opacity: 0.7;
transition: opacity 0.2s ease; transition: opacity 0.2s ease;
}
}
.col-qty:hover .edit-icon {
.col-qty:hover .edit-icon {
opacity: 1; opacity: 1;
}
}
.col-qty:hover {
.col-qty:hover {
background-color: #f0fffe; background-color: #f0fffe;
border-radius: 4px; border-radius: 4px;
}
}
.empty-labels { .empty-labels {
padding: 40px 20px; padding: 40px 20px;
@ -1261,8 +1205,8 @@ export default {
font-size: 14px; font-size: 14px;
} }
/* 编辑弹框样式 */
.edit-overlay {
/* 编辑弹框样式 */
.edit-overlay {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
@ -1274,9 +1218,9 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 20px; padding: 20px;
}
}
.edit-modal {
.edit-modal {
background: white; background: white;
border-radius: 12px; border-radius: 12px;
width: 100%; width: 100%;
@ -1285,24 +1229,24 @@ export default {
overflow: hidden; overflow: hidden;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
}
}
.edit-modal .modal-header {
.edit-modal .modal-header {
background: #17b3a3; background: #17b3a3;
color: white; color: white;
padding: 12px 16px; padding: 12px 16px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
}
}
.edit-modal .modal-title {
.edit-modal .modal-title {
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
margin: 0; margin: 0;
}
}
.edit-modal .close-btn {
.edit-modal .close-btn {
font-size: 16px; font-size: 16px;
cursor: pointer; cursor: pointer;
color: white; color: white;
@ -1311,64 +1255,64 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
}
}
.edit-modal .close-btn:hover {
.edit-modal .close-btn:hover {
color: #e0e0e0; color: #e0e0e0;
}
}
.edit-modal .modal-body {
.edit-modal .modal-body {
padding: 20px; padding: 20px;
}
}
.edit-modal .form-group {
.edit-modal .form-group {
margin-bottom: 16px; margin-bottom: 16px;
}
}
.edit-modal .form-label {
.edit-modal .form-label {
display: block; display: block;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
margin-bottom: 6px; margin-bottom: 6px;
font-weight: 500; font-weight: 500;
}
}
.edit-modal .required {
.edit-modal .required {
color: #ff4949; color: #ff4949;
}
}
.edit-modal .form-input {
.edit-modal .form-input {
width: 100%; width: 100%;
}
}
.edit-modal .form-input ::v-deep .el-input__inner {
.edit-modal .form-input ::v-deep .el-input__inner {
height: 40px; height: 40px;
border: 2px solid #dcdfe6; border: 2px solid #dcdfe6;
border-radius: 6px; border-radius: 6px;
font-size: 14px; font-size: 14px;
padding: 0 12px; padding: 0 12px;
}
}
.edit-modal .form-input ::v-deep .el-input__inner:focus {
.edit-modal .form-input ::v-deep .el-input__inner:focus {
border-color: #17b3a3; border-color: #17b3a3;
outline: none; outline: none;
}
}
.edit-modal .form-input ::v-deep .el-input__inner:disabled {
.edit-modal .form-input ::v-deep .el-input__inner:disabled {
background: #f5f7fa; background: #f5f7fa;
color: #c0c4cc; color: #c0c4cc;
border-color: #e4e7ed; border-color: #e4e7ed;
}
}
.edit-modal .modal-footer {
.edit-modal .modal-footer {
padding: 16px 20px; padding: 16px 20px;
display: flex; display: flex;
gap: 12px; gap: 12px;
justify-content: flex-end; justify-content: flex-end;
border-top: 1px solid #f0f0f0; border-top: 1px solid #f0f0f0;
}
}
.edit-modal .btn-cancel {
.edit-modal .btn-cancel {
padding: 10px 20px; padding: 10px 20px;
border-radius: 6px; border-radius: 6px;
font-size: 14px; font-size: 14px;
@ -1377,14 +1321,14 @@ export default {
border: 1px solid #dcdfe6; border: 1px solid #dcdfe6;
background: white; background: white;
color: #606266; color: #606266;
}
}
.edit-modal .btn-cancel:hover {
.edit-modal .btn-cancel:hover {
background: #f5f7fa; background: #f5f7fa;
border-color: #c0c4cc; border-color: #c0c4cc;
}
}
.edit-modal .btn-confirm {
.edit-modal .btn-confirm {
padding: 10px 20px; padding: 10px 20px;
border-radius: 6px; border-radius: 6px;
font-size: 14px; font-size: 14px;
@ -1393,12 +1337,12 @@ export default {
border: 1px solid #17b3a3; border: 1px solid #17b3a3;
background: #17b3a3; background: #17b3a3;
color: white; color: white;
}
}
.edit-modal .btn-confirm:hover {
.edit-modal .btn-confirm:hover {
background: #13998c; background: #13998c;
border-color: #13998c; border-color: #13998c;
}
}
/* 响应式设计 */ /* 响应式设计 */
@media (max-width: 360px) { @media (max-width: 360px) {

12
src/views/modules/outsourcing-return/outsourcingReturnPDAList.vue

@ -76,7 +76,9 @@ export default {
loading: false, loading: false,
issueList: [], issueList: [],
unissureQty: 0, unissureQty: 0,
itemNo: '',
itemNo: {},
lineNo: '',
lineItemNo: '',
}; };
}, },
methods: { methods: {
@ -86,9 +88,12 @@ export default {
} }
this.loading = true; this.loading = true;
const params = { const params = {
outsourcingOrderNo: this.outsourcingOrderNo,
orderNo: this.outsourcingOrderNo,
site: this.$store.state.user.site, site: this.$store.state.user.site,
partNo: this.partNo, partNo: this.partNo,
releaseNo: this.lineNo,
sequenceNo: this.releaseNo,
lineItemNo: this.lineItemNo
}; };
getUnissueMatericalForOutsourcingOrder(params) getUnissueMatericalForOutsourcingOrder(params)
.then(({ data }) => { .then(({ data }) => {
@ -130,6 +135,9 @@ export default {
this.partNo = this.$route.params.partNo; this.partNo = this.$route.params.partNo;
this.unissureQty = this.$route.params.unissureQty; this.unissureQty = this.$route.params.unissureQty;
this.itemNo = this.$route.params.itemNo; this.itemNo = this.$route.params.itemNo;
this.lineNo = this.$route.params.itemNo.lineNo;
this.lineItemNo = this.$route.params.itemNo.lineItemNo;
this.releaseNo = this.$route.params.itemNo.releaseNo;
this.loadIssueList(); this.loadIssueList();
}, },
}; };

Loading…
Cancel
Save