<template>
|
<view class="overflow" style="padding-bottom: 150rpx">
|
<cu-custom bgColor="bg-white" :isBack="true">
|
<block slot="backText"> </block>
|
<block slot="content">整包查看</block>
|
</cu-custom>
|
<u-form
|
labelPosition="left"
|
label-width="250rpx"
|
:model="warehouse"
|
ref="warehouseRef"
|
>
|
<u-row
|
class="border_bottom margin_top10rpx padding_left25rpx"
|
style="background-color: #fff"
|
>
|
<u-col span="12">
|
<u-form-item
|
label="包装号/部件条码:"
|
prop="upi"
|
required
|
class="uFormItem"
|
>
|
<u-input
|
v-model.trim="warehouse.upi"
|
@focus="warehouse.upi = ''"
|
@confirm="getContainerData(1)"
|
placeholder="请录入或扫码"
|
class="width"
|
:focus="curFoucus"
|
>
|
</u-input>
|
</u-form-item>
|
</u-col>
|
</u-row>
|
<!-- <u-row
|
class="border_bottom margin_top10rpx padding_left25rpx"
|
style="background-color: #fff"
|
>
|
<u-col span="12">
|
<u-form-item label=":" class="uFormItem">
|
<u-input
|
v-model="warehouse.upi"
|
ref="materialRef"
|
placeholder="请扫码录入"
|
@focus="warehouse.upi = ''"
|
@confirm="getContainerData"
|
style="font-weight: bolder; margin-left: 15rpx"
|
class="width padding_left25rpx"
|
>
|
</u-input>
|
</u-form-item>
|
</u-col>
|
</u-row> -->
|
</u-form>
|
<!-- 列表 -->
|
<view class="margin_top10rpx">
|
<u-swipe-action
|
:show="item.show"
|
:index="eindex"
|
v-for="(item, eindex) in singlist"
|
:key="eindex"
|
:options="options"
|
@click="longpress"
|
@open="open"
|
@close="close"
|
class="margin_bottom10rpx"
|
>
|
<view class="item u-border-bottom">
|
<!-- 此层wrap在此为必写的,否则可能会出现标题定位错误 -->
|
<view class="title-wrap">
|
<view
|
:class="item.checked ? 'bg_item' : ''"
|
class="fontSize32rpx width margin_auto background_fff padding10 relative box_sizing transition"
|
>
|
<!-- 部件名称 upi、材料、尺寸,位置、板件状态 -->
|
<u-row>
|
<u-col span="12" class="flex align-center">
|
<!-- <u-checkbox v-model="item.checked" size="50rpx"></u-checkbox> -->
|
<view
|
class="flex justify-center align-center"
|
style="
|
background-color: #f18202;
|
color: #fff;
|
border-radius: 50vh;
|
width: 40rpx;
|
height: 40rpx;
|
"
|
>
|
{{ eindex + 1 }}
|
</view>
|
<text class="color_f18202 padding_left10rpx">
|
{{ item.upi }}
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
部件名称: {{ item.detailName }}
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
位置:{{ item.areacode }}
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
材料:{{ item.info18 }}
|
</text>
|
</u-col>
|
</u-row>
|
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
<text class="color_80"> 尺寸:{{ item.info16 }} </text>
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
板件状态:{{ getEnumName(item.upiStatus) }}
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
<text class="color_80"> 次序:{{ item.shelf }} </text>
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
<text class="color_80"> 生产单号:{{ item.info5 }} </text>
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
<text class="color_80">
|
包装编号:{{ item.packageCode }}</text
|
>
|
</text>
|
</u-col>
|
</u-row>
|
<u-row>
|
<u-col span="12">
|
<text class="color_80 padding_left25rpx">
|
<text class="color_80"> 批次号:{{ item.planNo }}</text>
|
</text>
|
</u-col>
|
</u-row>
|
</view>
|
</view>
|
</view>
|
</u-swipe-action>
|
</view>
|
<modal-code :rescode="rescode" :resmessage="resmessage" ref="resmodal" />
|
<u-popup
|
v-model="detailshow"
|
border-radius="14"
|
@close="detailshow = false"
|
mode="bottom"
|
>
|
<h2 class="text_align_center padding_bottom18 padding15">信息</h2>
|
<div style="height: 400px; overflow-y: auto; padding: 0 15rpx">
|
<view class="line flex justify-between">
|
<text class="text-gray">订单号</text>
|
<text>{{ materlist.orderId }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">长</text>
|
<text>{{ materlist.length }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">宽</text>
|
<text>{{ materlist.width }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">厚</text>
|
<text>{{ materlist.thk }}</text>
|
</view>
|
<!-- <view class="line flex justify-between">
|
<text class="text-gray">行号</text>
|
<text>{{ materlist.lineNumber }}</text>
|
</view> -->
|
<!-- <view class="line flex justify-between">
|
<text class="text-gray">部件纹理</text>
|
<text>{{ materlist.Matgrid }}</text>
|
</view> -->
|
<!-- <view class="line flex justify-between">
|
<text class="text-gray">打孔设备编号</text>
|
<text>{{ materlist.DRNum }}</text>
|
</view> -->
|
|
<!-- <view class="line flex justify-between">
|
<text class="text-gray">锯切图号</text>
|
<text>{{ materlist.materialIndex }}</text>
|
</view> -->
|
|
<view class="line flex justify-between">
|
<text class="text-gray">包装X坐标</text>
|
<text>{{ materlist.machineXCenter }}</text>
|
</view>
|
|
<view class="line flex justify-between">
|
<text class="text-gray">包装Y坐标</text>
|
<text>{{ materlist.machineYCenter }}</text>
|
</view>
|
|
<view class="line flex justify-between">
|
<text class="text-gray">包装Z坐标</text>
|
<text>{{ materlist.machineZCenter }}</text>
|
</view>
|
<!-- <view class="line flex justify-between">
|
<text class="text-gray">转向角度</text>
|
<text>{{ materlist.rotation }}</text>
|
</view> -->
|
<view class="line flex justify-between">
|
<text class="text-gray">层数</text>
|
<text>{{ materlist.sequence }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">销售合同单号</text>
|
<text>{{ materlist.info4 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">生产单号</text>
|
<text>{{ materlist.info5 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">第几包</text>
|
<text>{{ materlist.info6 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">经销店名称</text>
|
<text>{{ materlist.info7 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">产品名称</text>
|
<text>{{ materlist.info8 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">包装编码</text>
|
<text>{{ materlist.info9 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">客户名称</text>
|
<text>{{ materlist.info10 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">自提或发货</text>
|
<text>{{ materlist.info11 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">包装部件总数量</text>
|
<text>{{ materlist.info12 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">包装面积</text>
|
<text>{{ materlist.info13 }}</text>
|
</view>
|
<!-- <view class="line flex justify-between">
|
<text class="text-gray">部件名称</text>
|
<text>{{ materlist.info14 }}</text>
|
</view> -->
|
<view class="line flex justify-between">
|
<text class="text-gray">部件数量</text>
|
<text>{{ materlist.info15 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">部件尺寸</text>
|
<text>{{ materlist.info16 }}</text>
|
</view>
|
<view class="line flex justify-between">
|
<text class="text-gray">包装机械手旋转</text>
|
<text>{{ materlist.info17 }}</text>
|
</view>
|
</div>
|
</u-popup>
|
<button-modal
|
:subShow="true"
|
garmenTitle="重置"
|
@submit="rest"
|
@reset="rest"
|
/>
|
</view>
|
</template>
|
<script>
|
import { getContainerMaterial, unbindOrder } from "@/api/putIn/untie.js";
|
import BluePrint from "@/pages/print/bluePrint.js";
|
import ButtonModal from "../../components/buttonModal.vue";
|
import ModalCode from "../../components/ModalCode.vue";
|
import { getAttrValue } from "@/utils/tool.js";
|
import {
|
getContainDetail,
|
onlyUpdateDutyCycle,
|
getBhbMaterialList,
|
getenumDataList,
|
} from "../../api/putIn/artificial.js";
|
export default {
|
data() {
|
return {
|
operator: "",
|
warehouse: {
|
upi: "",
|
materialCode: "",
|
dutyCycle: "",
|
gridNumber: 1,
|
useNumber: 0,
|
exitNumber: 0,
|
},
|
singlist: [
|
// {}
|
], //详情列表
|
ordersId: 0, //当前容器绑定的上架单
|
rescode: 0,
|
resmessage: "",
|
options: [
|
{
|
text: "详情",
|
style: {
|
backgroundColor: "#fc9f35",
|
},
|
},
|
],
|
detailshow: false,
|
materlist: {},
|
curFoucus: true,
|
timer: null,
|
timerSm: null,
|
detailableZb: false,
|
detailable: false,
|
gridFocus: false,
|
gridable: true,
|
kwbhAllowed: false,
|
enumList: [],
|
};
|
},
|
components: {
|
ButtonModal,
|
ModalCode,
|
},
|
created() {
|
getenumDataList({
|
EnumName: "UpiStatusEnum",
|
}).then((res) => {
|
this.enumList = res.result || [];
|
});
|
},
|
onLoad() {
|
this.operator = JSON.parse(uni.getStorageSync("userInfo")).name;
|
},
|
mounted() {
|
|
},
|
|
methods: {
|
getEnumName(value) {
|
const name = this.enumList.find((item) => item.value === value);
|
return name? name.name : "";
|
},
|
// 如果打开一个的时候,不需要关闭其他,则无需实现本方法
|
open(index) {
|
// 先将正在被操作的swipeAction标记为打开状态,否则由于props的特性限制,
|
// 原本为'false',再次设置为'false'会无效
|
this.singlist[index].show = true;
|
this.singlist.map((val, idx) => {
|
if (index != idx) this.singlist[idx].show = false;
|
});
|
},
|
close(index) {
|
this.singlist[index].show = false;
|
},
|
//物料详情
|
longpress(index, eindex) {
|
this.materlist = this.singlist[index];
|
this.detailshow = true;
|
},
|
|
rest() {
|
this.warehouse.upi = "";
|
this.warehouse.upi = "";
|
this.singlist = [];
|
},
|
//检查容器栅格数
|
checkGrid() {},
|
//获取容器的信息
|
getContainerData(param) {
|
if (!this.warehouse.upi) {
|
uni.showToast({
|
title: "请扫包装号",
|
icon: "none",
|
duration: 2000,
|
});
|
return;
|
}
|
getBhbMaterialList({
|
upi: this.warehouse.upi
|
}).then((res) => {
|
const result = res.result;
|
if (Array.isArray(result) && result.length == 0) {
|
uni.showToast({
|
title: "没有查到数据",
|
icon: "none",
|
duration: 2000,
|
});
|
this.singlist = [];
|
return;
|
}
|
this.singlist = result;
|
});
|
},
|
|
//全部取消
|
back() {
|
this.ordersId = 0;
|
this.singlist = [];
|
this.$refs.warehouseRef.resetFields();
|
this.warehouse.upi = "";
|
},
|
},
|
|
};
|
</script>
|
<style lang="scss">
|
.content {
|
height: 500rpx;
|
overflow-y: scroll;
|
width: 100%;
|
padding: 15rpx;
|
box-sizing: border-box;
|
|
.content-item {
|
padding: 15rpx;
|
background-color: #fff;
|
margin-bottom: 15rpx;
|
border-radius: 8rpx;
|
font-size: 32rpx;
|
}
|
}
|
|
.bg_item {
|
background: #ffebcd !important;
|
}
|
</style>
|