空木箱上线等

This commit is contained in:
x
2026-07-03 17:10:07 +08:00
parent 11f6e8ff43
commit 03a1f67e29
10 changed files with 333 additions and 4 deletions

View File

@@ -136,6 +136,8 @@
"filter.last-roll-down": "Last Coil Unloading",
"filter.cache-point": "Cache Point",
"filter.box-no": "Wooden Box Number",
"filter.up-box-no": "Upper Wooden Box Number",
"filter.down-box-no": "Lower Wooden Box Number",
"filter.box-code": "Wooden Box Coding",
"filter.box-type": "Wooden box part number",
"filter.virtual-library": "Virtual warehouse",

View File

@@ -136,6 +136,8 @@
"filter.last-roll-down": "Pengambilan Gulungan Terakhir",
"filter.cache-point": "Titik Penyimpanan Sementara",
"filter.box-no": "Nomor Kotak Kayu",
"filter.up-box-no": "Nomor kotak kayu atas",
"filter.down-box-no": "Nomor kotak bawah",
"filter.box-code": "Pengkodean Kotak Kayu",
"filter.box-type": "Nomor bagian kotak kayu",
"filter.virtual-library": "Gudang virtual",

View File

@@ -136,6 +136,8 @@
"filter.last-roll-down": "末次下卷",
"filter.cache-point": "缓存点位",
"filter.box-no": "木箱号",
"filter.up-box-no": "上木箱号",
"filter.down-box-no": "下木箱号",
"filter.box-code": "木箱编码",
"filter.box-type": "木箱料号",
"filter.virtual-library": "虚拟库",

View File

@@ -463,7 +463,27 @@
{
"navigationStyle": "custom"
}
}
,{
"path" : "pages/SecondPhase/kmxk/EmptyBoxOnline",
"style" :
{
"navigationStyle": "custom"
}
}
,{
"path" : "pages/SecondPhase/kmxk/TuihuoIntoStore",
"style" :
{
"navigationStyle": "custom"
}
}
,{
"path" : "pages/SecondPhase/kmxk/ProduceIntoStore",
"style" :
{
"navigationStyle": "custom"
}
}
,{
"path" : "pages/SecondPhase/PackRelation",

View File

@@ -0,0 +1,99 @@
<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">{{$t('filter.up-box-no')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val1" />
</view>
</view>
<view class="filter_item is-required">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('filter.down-box-no')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val3" />
</view>
</view>
<view class="filter_item is-required">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('grid.point-code')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val2" />
</view>
</view>
</view>
</view>
<view class="zd-row submitbar">
<button class="zd-col-6 btn-submit btn-default letter-30" @tap="clearUp">{{$t('button.clear')}}</button>
<button class="zd-col-15 btn-submit btn-success letter-30" :class="{'btn-info': !val2 || !val3}" :disabled="disabled" @tap="handleConfirm">{{$t('button.confirm')}}</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import NumberInput from '@/components/NumberInput.vue'
import { confirmAction } from '@/utils/utils.js'
import {boxUpLine} from '@/utils/getData4.js'
export default {
components: {
NavBar,
SearchBox,
NumberInput
},
data() {
return {
title: '',
val1: '',
val2: '',
val3: '',
disabled: false
};
},
onLoad (options) {
this.title = options.title
},
methods: {
async handleConfirm() {
if (!this.val2 || !this.val3) {
return
}
const isConfirmed = await confirmAction(this.$t('toast.prompt'), this.$t('toast.sure-perform-operation'))
if (isConfirmed) {
this._boxUpLine()
}
},
async _boxUpLine () {
this.disabled = true
try {
let res = await boxUpLine(this.val1, this.val3, this.val2)
uni.showToast({
title: res.message,
icon: 'none'
})
this.val1 = ''
this.val2 = ''
this.val3 = ''
this.$refs.scanChild.toDel()
this.disabled = false
} catch (e) {
this.disabled = false
}
},
clearUp () {
this.val1 = ''
this.val2 = ''
this.val3 = ''
this.$refs.scanChild.toDel()
}
}
}
</script>

View File

@@ -0,0 +1,88 @@
<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 is-required">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('filter.box-no')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val3" />
</view>
</view>
<view class="filter_item is-required">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('grid.point-code')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val2" />
</view>
</view>
</view>
</view>
<view class="zd-row submitbar">
<button class="zd-col-6 btn-submit btn-default letter-30" @tap="clearUp">{{$t('button.clear')}}</button>
<button class="zd-col-15 btn-submit btn-success letter-30" :class="{'btn-info': !val2 || !val3}" :disabled="disabled" @tap="handleConfirm">{{$t('button.confirm')}}</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import NumberInput from '@/components/NumberInput.vue'
import { confirmAction } from '@/utils/utils.js'
import {productionIn} from '@/utils/getData4.js'
export default {
components: {
NavBar,
SearchBox,
NumberInput
},
data() {
return {
title: '',
val2: '',
val3: '',
disabled: false
};
},
onLoad (options) {
this.title = options.title
},
methods: {
async handleConfirm() {
if (!this.val2 || !this.val3) {
return
}
const isConfirmed = await confirmAction(this.$t('toast.prompt'), this.$t('toast.sure-perform-operation'))
if (isConfirmed) {
this._productionIn()
}
},
async _productionIn () {
this.disabled = true
try {
let res = await productionIn(this.val3, this.val2)
uni.showToast({
title: res.message,
icon: 'none'
})
this.val2 = ''
this.val3 = ''
this.$refs.scanChild.toDel()
this.disabled = false
} catch (e) {
this.disabled = false
}
},
clearUp () {
this.val2 = ''
this.val3 = ''
this.$refs.scanChild.toDel()
}
}
}
</script>

View File

@@ -0,0 +1,88 @@
<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 is-required">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('filter.box-no')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val3" />
</view>
</view>
<view class="filter_item is-required">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('grid.point-code')}}</span>
</view>
<view class="filter_input_wraper">
<search-box v-model="val2" />
</view>
</view>
</view>
</view>
<view class="zd-row submitbar">
<button class="zd-col-6 btn-submit btn-default letter-30" @tap="clearUp">{{$t('button.clear')}}</button>
<button class="zd-col-15 btn-submit btn-success letter-30" :class="{'btn-info': !val2 || !val3}" :disabled="disabled" @tap="handleConfirm">{{$t('button.confirm')}}</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import NumberInput from '@/components/NumberInput.vue'
import { confirmAction } from '@/utils/utils.js'
import {returnIn} from '@/utils/getData4.js'
export default {
components: {
NavBar,
SearchBox,
NumberInput
},
data() {
return {
title: '',
val2: '',
val3: '',
disabled: false
};
},
onLoad (options) {
this.title = options.title
},
methods: {
async handleConfirm() {
if (!this.val2 || !this.val3) {
return
}
const isConfirmed = await confirmAction(this.$t('toast.prompt'), this.$t('toast.sure-perform-operation'))
if (isConfirmed) {
this._returnIn()
}
},
async _returnIn () {
this.disabled = true
try {
let res = await returnIn(this.val3, this.val2)
uni.showToast({
title: res.message,
icon: 'none'
})
this.val2 = ''
this.val3 = ''
this.$refs.scanChild.toDel()
this.disabled = false
} catch (e) {
this.disabled = false
}
},
clearUp () {
this.val2 = ''
this.val3 = ''
this.$refs.scanChild.toDel()
}
}
}
</script>

View File

@@ -69,8 +69,8 @@
},
methods: {
async _authority () {
let res = await authority()
// let res = await allAuthority()
// let res = await authority()
let res = await allAuthority()
if (res.code === '1') {
this.menuList = [...res.result.rf_menu1.sonTree]
} else {

View File

@@ -75,3 +75,28 @@ export const getBoxSpecInfo = (pcode, mcode, vcode) => request({
url:'api/boxStackInOut/getBoxSpecInfo',
data: {}
})
// 木箱库-空木箱上线
export const boxUpLine = (upbno, downbno, pcode) => request({
url:'api/twoPda/vehicle/boxUpLine',
data: {
up_box_no: upbno,
down_box_no: downbno,
point_code: pcode
}
})
// 木箱库-退货入库
export const returnIn = (bno, pcode) => request({
url:'api/twoPda/vehicle/returnIn',
data: {
box_no: bno,
point_code: pcode
}
})
// 木箱库-生产入库
export const productionIn = (bno, pcode) => request({
url:'api/twoPda/vehicle/productionIn',
data: {
box_no: bno,
point_code: pcode
}
})

View File

@@ -84,7 +84,10 @@ export const allAuthority = () => {
{menu_id: '10', path: 'RF05', zh_title: '空木箱库', sonTree: [
{menu_id: '1', zh_title: '空木箱入库', path: '/pages/SecondPhase/kmxk/EmptyBoxIntoStore'},
{menu_id: '2', zh_title: '空木箱维护', path: '/pages/SecondPhase/kmxk/EmptyBoxSave'},
{menu_id: '3', zh_title: '点位维护', path: '/pages/SecondPhase/kmxk/PointSave'}
{menu_id: '3', zh_title: '点位维护', path: '/pages/SecondPhase/kmxk/PointSave'},
{menu_id: '4', zh_title: '空木箱上线', path: '/pages/SecondPhase/kmxk/EmptyBoxOnline'},
{menu_id: '5', zh_title: '退货入库', path: '/pages/SecondPhase/kmxk/TuihuoIntoStore'},
{menu_id: '6', zh_title: '生产入库', path: '/pages/SecondPhase/kmxk/ProduceIntoStore'}
]}
]
}