<template>
|
<!-- 取消报工 -->
|
<view class="page">
|
<view class="packing-registration-bg" />
|
<u-navbar title="取消报工" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
|
back-icon-color="#000" />
|
<u-form :model="form" ref="uForm" :label-width="280" :rules="rules" :error-type="['toast']" class="uForm">
|
<u-form-item label="订单号" :border-bottom="false" prop="moNo">
|
<u-input v-model="form.moNo" type="select" placeholder="点击选择" @click="openList" />
|
</u-form-item>
|
<u-form-item label="工单" :border-bottom="false" prop="optaskNo">
|
<u-input v-model="form.optaskNo" type="select" placeholder="点击选择" @click="seachWork" />
|
</u-form-item>
|
<u-form-item label="取消报工记录:" :border-bottom="false" prop="value12"></u-form-item>
|
</u-form>
|
<view class="wrap">
|
<scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true">
|
<u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false">
|
<view class="content" v-for="(item, index) in list" :key="item.moNo" :index="index"
|
@click="cancelReport(item,index)">
|
<view class="content-header">
|
<view class="content-header-title">{{ index + 1 }}</view>
|
</view>
|
<view class="content-body">
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">批号:</view>
|
</view>
|
<view class="_content">
|
{{ item.outBatchNo }}
|
</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">零件号:</view>
|
</view>
|
<view class="_content">
|
{{ item.partNo }}
|
</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">零件描述:</view>
|
</view>
|
<view class="_content">
|
{{ item.partName }}
|
</view>
|
</view>
|
<view class="row-list">
|
<view class="_label">
|
<view class="_label-name">取消接收数量:</view>
|
</view>
|
<view class="_content">
|
{{ item.qtyRequired }}
|
</view>
|
</view>
|
</view>
|
</view>
|
</u-cell-group>
|
</scroll-view>
|
</view>
|
<u-modal width="720rpx" v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true"
|
@confirm="confirmModle" @cancel="cancel">
|
<view class="popup-content">
|
<view class="packing-registration-param">
|
<view class="packing-registration-param-view">
|
<view class="packing-registration-param-item param-extra">
|
<view class="packing-registration-param-item-left">
|
<text class="item-one">批号</text>
|
</view>
|
<view class="packing-registration-param-item-right">
|
<text class="item-one">{{ detailedList.outBatchNo }}</text>
|
</view>
|
</view>
|
<view class="packing-registration-param-item param-extra">
|
<view class="packing-registration-param-item-left">
|
<text class="item-one">零件号</text>
|
</view>
|
<view class="packing-registration-param-item-right">
|
<text class="item-one">{{ detailedList.partNo }}</text>
|
</view>
|
</view>
|
<view class="packing-registration-param-item param-extra">
|
<view class="packing-registration-param-item-left">
|
<text class="item-one">零件描述</text>
|
</view>
|
<view class="packing-registration-param-item-right">
|
<span class="item-one">{{
|
detailedList.partName
|
}}</span>
|
</view>
|
</view>
|
<view class="packing-registration-param-item param-extra">
|
<view class="packing-registration-param-item-left">
|
<text class="item-one">取消接收数量</text>
|
</view>
|
<view class="packing-registration-param-item-right">
|
<span class="item-one">{{
|
detailedList.netWeight
|
}}</span>
|
</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</u-modal>
|
<scan></scan>
|
</view>
|
</template>
|
|
<script>
|
import content_bg from "@/static/custom/packing/backBg.png";
|
import scan from "@/components/scan/scan.vue";
|
|
export default {
|
components: {
|
scan,
|
},
|
data() {
|
return {
|
background: {
|
backgroundImage: `url(${content_bg})`,
|
backgroundAttachment: "fixed",
|
backgroundSize: "100% auto",
|
backgroundRepeat: "no-repeat",
|
},
|
form: {
|
moNo: "",
|
optaskNo: "",
|
id: "",
|
},
|
detailedList: {},
|
list: [],
|
rules: {},
|
showModal: false,
|
id: "",
|
};
|
},
|
onReady() {},
|
// onShow() {
|
// let that = this;
|
// uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器
|
// uni.$on("scan", function (data) {
|
// console.log("onscan");
|
// //扫码成功后的回调,你可以写自己的逻辑代码在这里
|
// console.log("页面扫码结果:", data.code);
|
// if (data.code) {
|
// let codeInfo = JSON.parse(data.code);
|
// console.log('222')
|
// if (codeInfo.moNo) {
|
// console.log('1111')
|
// // 扫描报工单二维码
|
// that.saveForm(codeInfo);
|
// // that.$forceUpdate();
|
// }
|
// }
|
// });
|
// },
|
methods: {
|
//工单
|
seachWork() {
|
if (this.form.moNo == "") {
|
this.$u.toast("请选择订单号");
|
return;
|
}
|
// 使用uni.navigateTo方法跳转,并通过queryParams传递参数
|
uni.navigateTo({
|
url: "/pages/product/WorkshopOrderIssued/WorkOrderList?id=" +
|
encodeURIComponent(JSON.stringify(this.form.id)),
|
});
|
},
|
cancel() {
|
this.showModal = false; // 关闭弹窗
|
},
|
openList() {
|
uni.navigateTo({
|
url: "/pages/product/report/orderList",
|
});
|
},
|
setNo(val) {
|
this.form.moNo = val.moNo;
|
this.form.id = val.id;
|
},
|
// 回显扫码的信息-报工单
|
saveForm(val) {
|
console.log('1111@@@@@@1', this.form)
|
if (this.form.moNo == '') {
|
uni.showToast({
|
icon: "none",
|
title: "请先选择订单号!",
|
duration: 2 * 1000,
|
});
|
return;
|
}
|
if (this.form.moNo != val.moNo) {
|
uni.showToast({
|
icon: "none",
|
title: "扫描的二维码与该订单不一致",
|
duration: 2 * 1000,
|
});
|
return;
|
}
|
this.detailedList = val;
|
this.showModal = true;
|
},
|
// 工单回显
|
workNo(val) {
|
this.id = val.id;
|
this.getBGList();
|
this.form.optaskNo = val.optaskNo;
|
},
|
getBGList() {
|
this.$u.api.workReporting
|
.getProductMainV1({
|
current: 1,
|
size: -1,
|
id:this.id,
|
})
|
.then((res) => {
|
console.log('res',res)
|
this.list = res.data.productOutputList;
|
});
|
},
|
// 取消报工
|
cancelReport(item, index) {
|
let that = this;
|
uni.showModal({
|
title: "提示",
|
content: "是否确认取消批次" + item.outBatchNo + "的报工",
|
success: function(res) {
|
if (res.confirm) {
|
that.detailedList = item;
|
that.showModal = true;
|
} else if (res.cancel) {
|
return;
|
}
|
},
|
});
|
},
|
confirmModle() {
|
console.log("点击确认后获取取消报工记录");
|
// 处理确认逻辑
|
this.$u.api.cancelReporting
|
.cancelDTAOfWorkApplication({
|
outBatchNo: this.detailedList.outBatchNo,
|
outputId: this.detailedList.id
|
})
|
.then((res) => {
|
console.log("res", res);
|
this.getBGList();
|
this.showModal = false;
|
// this.getHandelList();
|
this.$u.toast("取消报工成功");
|
});
|
},
|
},
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.packing-registration-param {
|
padding: 40rpx 30rpx 10rpx 30rpx;
|
height: 350px;
|
overflow: hidden;
|
|
.packing-registration-param-title {
|
display: flex;
|
flex-direction: row;
|
align-items: center;
|
margin-bottom: 30rpx;
|
|
.title-label {
|
margin-left: 14rpx;
|
font-size: 34rpx;
|
font-weight: bold;
|
color: #283e65;
|
}
|
}
|
|
.packing-registration-param-view {
|
height: 177rpx;
|
background-color: #fff;
|
border-radius: 10rpx;
|
padding: 0rpx 23rpx;
|
margin-bottom: 30rpx;
|
|
.packing-registration-param-item {
|
height: 90rpx;
|
border: 1px solid #adc8e4;
|
line-height: 90rpx;
|
display: flex;
|
justify-content: space-between;
|
border: none;
|
|
.packing-registration-param-item-left {
|
.item-one {
|
word-break: break-all;
|
font-size: 30rpx;
|
color: #666666;
|
}
|
}
|
|
.packing-registration-param-item-right {
|
display: flex;
|
justify-content: space-between;
|
|
.item-one {
|
font-size: 30rpx;
|
color: #060505;
|
margin-right: 6rpx;
|
word-break: break-all;
|
}
|
|
.item-two {
|
font-size: 15rpx;
|
color: #a6b4cc;
|
margin-right: 6rpx;
|
}
|
|
.item-three {
|
font-size: 30rpx;
|
color: #214ded;
|
margin-right: 6rpx;
|
}
|
}
|
}
|
|
.param-extra {
|
border-bottom: 1px solid #ededed;
|
}
|
}
|
}
|
|
.popup-content {
|
width: 720rpx;
|
height: 400rpx;
|
background-color: #fff;
|
border-radius: 8px;
|
z-index: 10;
|
/* 确保内容在蒙版之上 */
|
}
|
|
.page {
|
box-sizing: border-box;
|
}
|
|
.packing-registration-bg {
|
background-color: #f6f9ff;
|
background-image: url("~@/static/custom/packing/backBg.png");
|
padding: 0 20rpx;
|
background-attachment: fixed;
|
background-size: 100% auto;
|
background-repeat: no-repeat;
|
position: fixed;
|
top: 0;
|
bottom: 0;
|
width: 100%;
|
z-index: -1;
|
}
|
|
.uForm {
|
background: #fff;
|
margin: 40rpx 30rpx;
|
padding: 20rpx 30rpx;
|
border-radius: 16rpx;
|
}
|
|
::v-deep .u-input__input {
|
text-align: right !important;
|
}
|
|
.u-form-item {
|
padding: 0;
|
}
|
|
.wrap .finishProductIn-locno-scroll-list {
|
height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
|
width: 100%;
|
}
|
|
.finishProductIn-locno-scroll-list-group {
|
::v-deep .u-cell-item-box {
|
background-color: rgba(250, 252, 255, 0.36) !important;
|
padding: 0rpx 30rpx;
|
}
|
|
.content {
|
font-size: 12px;
|
background-color: #ffffff;
|
box-sizing: border-box;
|
border-radius: 10rpx;
|
margin: 0rpx 0rpx 16rpx;
|
padding: 20rpx 8rpx;
|
box-shadow: none;
|
display: flex;
|
align-items: center;
|
|
white-space: normal;
|
|
.content-header {
|
width: 40rpx;
|
height: 90rpx;
|
display: flex;
|
align-items: center;
|
overflow-wrap: break-word;
|
|
.content-header-icon {
|
background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
|
background-size: 100% auto;
|
background-repeat: no-repeat;
|
height: 28rpx;
|
width: 28rpx;
|
}
|
|
.content-header-title {
|
width: 40rpx;
|
// margin-left: 11rpx;
|
font-size: 26rpx;
|
color: #333333;
|
}
|
}
|
|
.content-body {
|
flex: 1;
|
background: #f5f9ff;
|
border-radius: 10rpx;
|
padding: 0rpx 23rpx;
|
|
.row-list {
|
height: 60rpx;
|
display: flex;
|
flex-direction: row;
|
padding: 0px;
|
align-items: center;
|
}
|
|
.row-list ._label {
|
display: flex;
|
flex: 0.8;
|
color: #909399;
|
align-items: center;
|
|
._label-icon-1 {
|
background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png");
|
background-size: 100% auto;
|
background-repeat: no-repeat;
|
height: 26rpx;
|
width: 26rpx;
|
}
|
|
._label-icon-2 {
|
background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png");
|
background-size: 100% auto;
|
background-repeat: no-repeat;
|
height: 26rpx;
|
width: 26rpx;
|
}
|
|
._label-icon-3 {
|
background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png");
|
background-size: 100% auto;
|
background-repeat: no-repeat;
|
height: 26rpx;
|
width: 26rpx;
|
}
|
|
._label-name {
|
margin-left: 11rpx;
|
font-size: 26rpx;
|
font-weight: 500;
|
color: #666666;
|
}
|
}
|
|
.row-list ._content {
|
flex: 1.5;
|
text-align: right;
|
color: #909399;
|
font-size: 24rpx;
|
}
|
|
.row-list .s1 {
|
color: #d35651;
|
}
|
}
|
}
|
}
|
</style>
|