子卷装箱
This commit is contained in:
@@ -47,6 +47,17 @@ uni-button:after {
|
||||
background-color: #D7592F ;
|
||||
border: 1rpx solid #D7592F ;
|
||||
}
|
||||
.icon_minus-filled {
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
width: 42rpx;
|
||||
height: 42rpx;
|
||||
background-color: #4e6ef2;
|
||||
font-size: 28rpx;
|
||||
line-height: 38rpx;
|
||||
border: 1rpx solid #4e6ef2;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.icon_back {
|
||||
font-size: 52rpx;
|
||||
line-height: 52rpx;
|
||||
@@ -125,6 +136,11 @@ uni-button:after {
|
||||
padding: 0 14rpx;
|
||||
border-radius: 0;
|
||||
}
|
||||
.zd_wrapper-2 {
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
padding: 14rpx 14rpx 0 14rpx;
|
||||
}
|
||||
.filter_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -381,6 +397,14 @@ uni-button[disabled]:not([type]) {
|
||||
.pophide {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
.popshow1 {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
.pophide1 {
|
||||
top: 100%;
|
||||
transform: translateY(0%);
|
||||
}
|
||||
.msg_wrapper {
|
||||
position: fixed;
|
||||
top: auto;
|
||||
@@ -412,6 +436,9 @@ uni-button[disabled]:not([type]) {
|
||||
margin-bottom: 86rpx;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.msg_content_1 {
|
||||
height: calc(100% - 116rpx)
|
||||
}
|
||||
.msg_box {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -425,6 +452,9 @@ uni-button[disabled]:not([type]) {
|
||||
background: #000;
|
||||
z-index: 300;
|
||||
}
|
||||
.msg_mask_1 {
|
||||
z-index: 310;
|
||||
}
|
||||
.msg_btns {
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
@@ -463,4 +493,37 @@ uni-button[disabled]:not([type]) {
|
||||
font-weight: 700;
|
||||
color: #ff6a00;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
.msg_modal {
|
||||
position: fixed;
|
||||
z-index: 311;
|
||||
width: 80%;
|
||||
left: 10%;
|
||||
background-color: #fff;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
overflow: hidden;
|
||||
padding: 30rpx;
|
||||
}
|
||||
.msg_tip {
|
||||
font-size: 32rpx;
|
||||
line-height: 32rpx;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
margin-bottom: 30rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.msg_p1 {
|
||||
font-size: 26rpx;
|
||||
line-height: 30rpx;
|
||||
color: #323232;
|
||||
text-align: left;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.msg_p2 {
|
||||
font-size: 28rpx;
|
||||
line-height: 30rpx;
|
||||
color: #ff6a00;
|
||||
text-align: left;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
@@ -136,4 +136,10 @@ input[type="button"], input[type="submit"], input[type="search"], input[type="re
|
||||
}
|
||||
.mgr20 {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.pdb110 {
|
||||
padding-bottom: 110rpx;
|
||||
}
|
||||
.pdt26 {
|
||||
padding-top: 26rpx !important;
|
||||
}
|
||||
@@ -487,6 +487,14 @@
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/SecondPhase/slitting/ZjContainer",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
// "pageOrientation": "landscape",
|
||||
|
||||
276
pages/SecondPhase/slitting/ZjContainer.vue
Normal file
276
pages/SecondPhase/slitting/ZjContainer.vue
Normal file
@@ -0,0 +1,276 @@
|
||||
<template>
|
||||
<view class="zd_container">
|
||||
<!-- <nav-bar title="子卷装箱"></nav-bar> -->
|
||||
<nav-bar :title="title"></nav-bar>
|
||||
<view class="zd_content">
|
||||
<view class="zd_wrapper">
|
||||
<view class="filter_item">
|
||||
<view class="filter_label_wraper">
|
||||
<span class="filter_label">子卷号</span>
|
||||
</view>
|
||||
<view class="filter_input_wraper">
|
||||
<search-box v-model="val1" @handleChange="handleChange" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>选择</th>
|
||||
<th class="th_2">订单号</th>
|
||||
<th>客户名称</th>
|
||||
<th>子卷号</th>
|
||||
<th>子卷规格</th>
|
||||
<th>子卷重量</th>
|
||||
<th>子管重量</th>
|
||||
<th>木箱料号</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in dataList" :key="i">
|
||||
<td><span class="iconfont icon_minus-filled" @click="toCheck(e, i)">−</span></td>
|
||||
<td class="td_2">{{e.sale_order_name}}</td>
|
||||
<td>{{e.customer_description}}</td>
|
||||
<td>{{e.container_name}}</td>
|
||||
<td>{{e.paper_tube_description}}</td>
|
||||
<td>{{e.paper_weight}}</td>
|
||||
<td>{{e.box_weight}}</td>
|
||||
<td>{{e.package_box_sn}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submitbar">
|
||||
<button class="zd-col-6 btn-submit btn-default letter-30" @tap="clearUp">清空</button>
|
||||
<button class="zd-col-15 btn-submit btn-success letter-30" :class="{'btn-info': !dataList.length}" @tap="toSure">组盘</button>
|
||||
</view>
|
||||
<view class="msg_wrapper" :class="show ? 'popshow' : 'pophide'">
|
||||
<view class="pop-line"></view>
|
||||
<view class="zd_wrapper-2">
|
||||
<view class="zd-row filter_item">
|
||||
<view :class="!disabled ? 'zd-col-18' : 'zd-col-24'">
|
||||
<input type="text" placeholder="输入关键字搜索" class="filter_input" :class="{'filter_input_disabled': disabled}" :disabled="disabled" v-model="val2">
|
||||
</view>
|
||||
<view v-show="!disabled" class="zd-col-5"><button class="btn-submit btn-success" @tap="_queryBoxSpec">查询</button></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="msg_content msg_content_1 pdb110">
|
||||
<view class="zd_wrapper grid-wraper">
|
||||
<view class="slide_new">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>木箱规格</th>
|
||||
<th>物料名称</th>
|
||||
<th>木箱长度</th>
|
||||
<th>木箱宽度</th>
|
||||
<th>木箱高度</th>
|
||||
<th>木箱库存数</th>
|
||||
<th>最大装卷数</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(e, i) in popData" :key="'pop' + i" @click="popCheck(e)" :class="{'checked': e.material_code === pkId}">
|
||||
<td>{{e.material_code}}</td>
|
||||
<td>{{e.material_name}}</td>
|
||||
<td>{{e.box_length}}</td>
|
||||
<td>{{e.box_width}}</td>
|
||||
<td>{{e.box_high}}</td>
|
||||
<td>{{e.ivt_num}}</td>
|
||||
<td>{{e.num}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="zd-row submitbar">
|
||||
<button class="zd-col-6 btn-submit btn-success letter-30" @tap.stop="show = false">取消</button>
|
||||
<button class="zd-col-15 btn-submit btn-success letter-30" :class="{'btn-info': !pkId}" :disabled="disabled1" @tap="popSure">确定</button>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="show" class="msg_mask"></view>
|
||||
<view class="msg_modal" :class="modalShow ? 'popshow1' : 'pophide1'">
|
||||
<view class="msg_tip">提示</view>
|
||||
<view class="zd_content pdt26">
|
||||
<view class="msg_p1">请仔细核对子卷与木箱规格是否匹配,</view>
|
||||
<view class="msg_p2">木箱规格为:{{this.pkObj.material_name}},</view>
|
||||
<view class="msg_p2">子卷规格为:{{this.current.paper_tube_description}},</view>
|
||||
<view class="msg_p1">击确定后将立即生成空木箱出库任务,无法更改!</view>
|
||||
</view>
|
||||
<view class="zd-row submitbar">
|
||||
<button class="zd-col-6 btn-submit btn-success letter-30" @tap.stop="modalShow = false">取消</button>
|
||||
<button class="zd-col-15 btn-submit btn-success letter-30" @tap="modalSure">确定</button>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="modalShow" class="msg_mask msg_mask_1"></view>
|
||||
<up-top ref="UT" :scrollTop="top"></up-top>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@/components/NavBar.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import UpTop from '@/components/upTop.vue'
|
||||
import {queryContainerNameBySaleOrder, queryBoxSpec, updateEntityList} from '@/utils/getData3.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SearchBox,
|
||||
UpTop
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
top: 0,
|
||||
val1: '',
|
||||
dataList: [],
|
||||
popData: [],
|
||||
show: false,
|
||||
disabled: false,
|
||||
val2: '',
|
||||
pkId: '',
|
||||
pkObj: {},
|
||||
paper: '',
|
||||
modalShow: false,
|
||||
disabled1: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
current () {
|
||||
let res = {paper_tube_description: '', sale_order_name: ''}
|
||||
if (this.dataList.length > 0) {
|
||||
res = this.dataList[0]
|
||||
}
|
||||
return res
|
||||
}
|
||||
},
|
||||
onPageScroll(e) {
|
||||
this.$refs.UT.topData(e.scrollTop)
|
||||
},
|
||||
onLoad (options) {
|
||||
this.title = options.title
|
||||
},
|
||||
methods: {
|
||||
handleChange (e) {
|
||||
this._queryContainerNameBySaleOrder(e)
|
||||
},
|
||||
async _queryContainerNameBySaleOrder (e) {
|
||||
let res = await queryContainerNameBySaleOrder(e)
|
||||
if (res.content.length) {
|
||||
if (res.content[0].paper_tube_description === '') {
|
||||
uni.showToast({
|
||||
title: '未查询到该子卷规格信息,请检查子卷的分切计划信息!',
|
||||
icon: 'none',
|
||||
duration: 5000
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.dataList.length >= 1 && res.content[0].paper_tube_description !== this.current.paper_tube_description) {
|
||||
uni.showToast({
|
||||
title: `扫描的规格为:${res.content[0].paper_tube_description},与上一个子卷规格不一致,请检查!`,
|
||||
icon: 'none',
|
||||
duration: 5000
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.dataList.length >= 1 && res.content[0].sale_order_name !== this.current.sale_order_name) {
|
||||
uni.showToast({
|
||||
title: `扫描的订单号为:${res.content[0].sale_order_name},上一个订单号不一致,请检查!`,
|
||||
icon: 'none',
|
||||
duration: 5000
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.dataList.length >= 1 && res.content[0].status !== '99') {
|
||||
uni.showToast({
|
||||
title: `该子卷已分配,请检查!`,
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
let flag = false
|
||||
this.dataList.map(el => {
|
||||
if (el.container_name === res.content[0].container_name) {
|
||||
flag = true
|
||||
}
|
||||
})
|
||||
if (flag) {
|
||||
uni.showToast({
|
||||
title: `该子卷已存在,请检查!`,
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
this.dataList = [...this.dataList, ...res.content]
|
||||
}
|
||||
},
|
||||
toCheck (e, i) {
|
||||
this.dataList.splice(i, 1)
|
||||
},
|
||||
toSure () {
|
||||
let code = ''
|
||||
for (let i = 0; i < this.dataList.length; i++) {
|
||||
if (this.dataList[i].box_type !== '') {
|
||||
code = this.dataList[i].box_type
|
||||
break
|
||||
}
|
||||
}
|
||||
this.disabled = code !== ''
|
||||
this.val2 = code
|
||||
this._queryBoxSpec()
|
||||
},
|
||||
async _queryBoxSpec () {
|
||||
let res = await queryBoxSpec(this.val2)
|
||||
if (res.code === 200) {
|
||||
this.popData = [...res.content]
|
||||
this.show = true
|
||||
}
|
||||
},
|
||||
clearUp () {
|
||||
this.val1 = ''
|
||||
this.dataList = []
|
||||
this.disabled = false
|
||||
this.disabled1 = false
|
||||
this.show = false
|
||||
this.modalShow = false
|
||||
},
|
||||
popCheck (e) {
|
||||
this.pkId = this.pkId === e.material_code ? '' : e.material_code
|
||||
this.pkObj = this.pkId === e.material_code ? e : {}
|
||||
},
|
||||
async _updateEntityList () {
|
||||
this.disabled1 = true
|
||||
try {
|
||||
let res = await updateEntityList(this.pkId, this.dataList)
|
||||
uni.showToast({
|
||||
title: '操作成功!',
|
||||
icon: 'none'
|
||||
})
|
||||
this.clearUp()
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
popSure () {
|
||||
if (this.dataList.length > this.pkObj.num) {
|
||||
uni.showToast({
|
||||
title: '子卷数量超过木箱的最大装卷数!',
|
||||
icon: 'none',
|
||||
duration: 5000
|
||||
})
|
||||
return
|
||||
}
|
||||
this.modalShow = true
|
||||
},
|
||||
modalSure () {
|
||||
this._updateEntityList()
|
||||
this.modalShow = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -245,3 +245,19 @@ export const AGVPass = (code) => request({
|
||||
url:'api/pda/feeding/AGVPass',
|
||||
data: {point_code: code}
|
||||
})
|
||||
/**
|
||||
* 子卷装箱
|
||||
*/
|
||||
export const queryContainerNameBySaleOrder = (code) => request({
|
||||
url:'api/pdmBiSubpackagerelation/queryContainerNameBySaleOrder',
|
||||
data: {type: '1', container_name: code}
|
||||
})
|
||||
export const queryBoxSpec = (code) => request({
|
||||
method: 'GET',
|
||||
url:'api/pdmBiSubpackagerelation/queryBoxSpec',
|
||||
data: {page: '0', size: '200', sort: 'material_name%2Cdesc', search: code}
|
||||
})
|
||||
export const updateEntityList = (checked, arr) => request({
|
||||
url:'api/pdmBiSubpackagerelation/updateEntityList',
|
||||
data: {checked: checked, tableMater: arr}
|
||||
})
|
||||
|
||||
@@ -87,7 +87,8 @@ export const allAuthority = () => {
|
||||
{menu_id: '8', title: '气胀轴库维护', path: '/pages/SecondPhase/slitting/ShaftSave'},
|
||||
{menu_id: '8', title: '分切子卷维护', path: '/pages/SecondPhase/slitting/ZjSave'},
|
||||
{menu_id: '8', title: '备货区管理', path: '/pages/SecondPhase/slitting/StockingArea'},
|
||||
{menu_id: '8', title: 'AGV放行', path: '/pages/SecondPhase/slitting/AGVPass'}
|
||||
{menu_id: '8', title: 'AGV放行', path: '/pages/SecondPhase/slitting/AGVPass'},
|
||||
{menu_id: '8', title: '子卷装箱', path: '/pages/SecondPhase/slitting/ZjContainer'}
|
||||
]},
|
||||
{menu_id: '6', path: 'RF04', title: '点位管理', sonTree: [
|
||||
{menu_id: '1', title: '点位管理', path: '/pages/SecondPhase/point/PointManage'},
|
||||
@@ -127,7 +128,7 @@ export const authority = () => {
|
||||
{title: '空木箱入库',sonTree: [{title: '空木箱入库'}]},
|
||||
{title: '发货区',sonTree: [{title: '发货区解绑'}]},
|
||||
{title: '生产管理',sonTree: [{title: '生箔生产进度'},{title: '生箔工序'},{title: '烘烤工序'},{title: '表处工序'},{title: '人工烘烤'},{title: '子卷质检'}]},
|
||||
{title: '分切管理', sonTree: [{title: '分切上料'},{title: '分切下料'},{title: '空轴套管'},{title: '空轴配送'},{title: '空轴进站'},{title: '子卷出站'},{title: '穿拔轴初始化'},{title: '纸管绑定'},{title: '分切暂存下料'},{title: '分切暂存清除'},{title: '气胀轴库维护'}, {title: '分切子卷维护'}, {title: '备货区管理'}, {title: 'AGV放行'}]},
|
||||
{title: '分切管理', sonTree: [{title: '分切上料'},{title: '分切下料'},{title: '空轴套管'},{title: '空轴配送'},{title: '空轴进站'},{title: '子卷出站'},{title: '穿拔轴初始化'},{title: '纸管绑定'},{title: '分切暂存下料'},{title: '分切暂存清除'},{title: '气胀轴库维护'}, {title: '分切子卷维护'}, {title: '备货区管理'}, {title: 'AGV放行'}, {title: '子卷装箱'}]},
|
||||
{title: '点位管理', sonTree: [{title: '点位管理'},{title: '异常出库解锁'}]},
|
||||
{title: '成品入库', sonTree: [{title: '退货口入库'},{title: '异常口入库'},{title: '木箱称重'}]}
|
||||
]
|
||||
@@ -174,4 +175,50 @@ export const queryProductArea = () => {
|
||||
data: [{text: '物料一', value: '001'}, {text: '物料a', value: '002'}, {text: '物料b', value: '003'}]
|
||||
}
|
||||
return res
|
||||
}
|
||||
export const queryContainerNameBySaleOrder = () => {
|
||||
let res = {
|
||||
"totalElements": 1,
|
||||
"content": [
|
||||
{
|
||||
"workorder_id": "1597797877562871810",
|
||||
"package_box_sn": null,
|
||||
"quanlity_in_box": null,
|
||||
"box_weight": 210.000000,
|
||||
"sale_order_name": "100000011-100",
|
||||
"customer_name": "10000252",
|
||||
"customer_description": "惠州市禾腾能源科技有限公司",
|
||||
"container_name": "A1522210281605B1",
|
||||
"status": "99",
|
||||
"box_type": "",
|
||||
"sap_pcsn": "AA20000251",
|
||||
"box_group": "0",
|
||||
"paper_tube_description": " 璃纤维及其制品|FRP管|6英寸|25|1300",
|
||||
"paper_weight": "22",
|
||||
"weight": "2"
|
||||
}
|
||||
],
|
||||
"code": 200,
|
||||
"msg": "查询成功"
|
||||
}
|
||||
return res
|
||||
}
|
||||
export const queryBoxSpec = () => {
|
||||
let res = {
|
||||
"totalElements": 1,
|
||||
"content": [
|
||||
{
|
||||
"box_high": "730",
|
||||
"ivt_num": 3,
|
||||
"num": "4",
|
||||
"box_width": "676",
|
||||
"material_name": "木制包装容器及板材|木箱|1300|1|6|1376*676*730",
|
||||
"box_length": "1376",
|
||||
"material_code": "441510009000470"
|
||||
}
|
||||
],
|
||||
"code": 200,
|
||||
"msg": "查询成功"
|
||||
}
|
||||
return res
|
||||
}
|
||||
@@ -50,6 +50,7 @@ const request = (params) => {
|
||||
// }
|
||||
})
|
||||
.then(res => { // 成功
|
||||
uni.hideLoading();
|
||||
if (res.length === 1) {
|
||||
uni.showModal({
|
||||
content: 'request:fail',
|
||||
@@ -120,10 +121,11 @@ const request = (params) => {
|
||||
}
|
||||
})
|
||||
.catch(err => { // 错误
|
||||
uni.hideLoading();
|
||||
reject(err)
|
||||
})
|
||||
.finally(() => {
|
||||
uni.hideLoading();
|
||||
// uni.hideLoading();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user