生产入库

This commit is contained in:
2025-12-26 09:25:18 +08:00
parent 6b33c90394
commit cbc8587b59
6 changed files with 218 additions and 2 deletions

View File

@@ -25,6 +25,7 @@
"button.confirmlowershaft": "Confirm axis below",
"button.emptydiskrecycle": "Empty disk recycle",
"button.upperfullroll": "Upper Full roll",
"button.weigh-check": "Weigh check",
"filter.bill-code": "Bill code",
"filter.warehouse": "Warehouse",
"filter.woodenbox": "Woodenbox",
@@ -83,6 +84,7 @@
"grid.corename": "Core name",
"grid.areaname": "Area name",
"grid.signnum": "Allocated quantity",
"grid.woodenboxcode": "Woodenbox code",
"select.uppershaft": "Upper shaft",
"select.lowershaft": "Lower shaft",
"select.leftroll": "Left roll",

View File

@@ -25,6 +25,7 @@
"button.confirmlowershaft": "Konfirmasi sumbu bawah",
"button.emptydiskrecycle": "Daur Ulang Disk Kosong",
"button.upperfullroll": "Penuh",
"button.weigh-check": "Verifikasi bobot",
"filter.bill-code": "Kode dokumen",
"filter.warehouse": "gudang",
"filter.woodenbox": "Kotak kayu",
@@ -81,6 +82,7 @@
"grid.corename": "Nama inti",
"grid.areaname": "Nama daerah",
"grid.signnum": "Jumlah yang dialokasikan",
"grid.woodenboxcode": "Kode Kardus Kayu",
"select.uppershaft": "Poros Atas",
"select.lowershaft": "Poros bawah",
"select.leftroll": "Gulung Kiri",

View File

@@ -25,6 +25,7 @@
"button.confirmlowershaft": "确认下轴",
"button.emptydiskrecycle": "空盘回收",
"button.upperfullroll": "上满卷",
"button.weigh-check": "称重校验",
"filter.bill-code": "单据编码",
"filter.warehouse": "仓库",
"filter.woodenbox": "木箱",
@@ -60,7 +61,7 @@
"grid.confirm-man": "确认人",
"grid.confirm-time": "确认时间",
"grid.storagevehicle-code": "箱号",
"grid.weight": "重",
"grid.weight": "重",
"grid.check-area": "盘点库区",
"grid.check-point": "盘点货位",
"grid.material-code": "物料编码",
@@ -84,6 +85,7 @@
"grid.corename": "管芯名称",
"grid.areaname": "区域名称",
"grid.signnum": "已分配数量",
"grid.woodenboxcode": "木箱码",
"select.uppershaft": "上轴",
"select.lowershaft": "下轴",
"select.leftroll": "左卷",

View File

@@ -152,6 +152,14 @@
"navigationStyle": "custom"
}
}
,{
"path" : "pages/SecondPhase/finished/InStoreConfirm",
"style" :
{
"navigationStyle": "custom"
}
}
,{
"path" : "pages/SecondPhase/slitting/DoInitShaft",

View File

@@ -0,0 +1,201 @@
<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.woodenbox')}}</span>
</view>
<view class="filter_input_wraper">
<search-box-mx
ref="scanChild"
v-model="val1"
@handleChange="handleChange"
/>
</view>
</view>
<view class="filter_item">
<view class="filter_label_wraper">
<span class="filter_label">{{$t('filter.point')}}</span>
</view>
<view class="filter_input_wraper">
<search-box
v-model="val2"
/>
</view>
</view>
<view class="filter_item">
<view class="filter_label_wraper">
<span class="filter_label filter_label_1"></span>
</view>
<view class="filter_input_wraper filter_input_wraper_1">
<view class="iconfont icon_unchecked" :class="{'icon_checked': isV === '1'}" @tap="isVirtual">&#xe66b;</view>
<view class="filter_input_wraper_inn_text">{{$t('filter.virtual-library')}}</view>
</view>
</view>
<view v-show="isV === '1'" class="filter_item">
<view class="filter_label">{{$t('filter.warehouse-area')}}</view>
<view class="filter_input_wraper">
<uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
</view>
</view>
</view>
<view class="zd_wrapper grid-wraper">
<view class="slide_new">
<table>
<thead>
<tr>
<th>{{$t('grid.woodenboxcode')}}</th>
<th>{{$t('grid.sub-roll-number')}}</th>
<th>{{$t('grid.material-code')}}</th>
<th>{{$t('grid.material-name')}}</th>
<th>{{$t('grid.weight')}} KG</th>
</tr>
</thead>
<tbody>
<tr v-for="(e, i) in dataList" :key="i">
<td>{{e.package_box_sn}}</td>
<td>{{e.container_name}}</td>
<td>{{e.product_name}}</td>
<td>{{e.product_description}}</td>
<td>{{e.net_weight}}</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
<view class="zd-row submitbar">
<button class="zd-col-8 btn-submit btn-success" :class="{'btn-info': !val1 || !val2}" :disabled="disabled1" @tap="_stWeighCheck">{{$t('button.weigh-check')}}</button>
<button class="zd-col-8 btn-submit btn-success" :class="{'btn-info': !val1 || dataList.length === 0 || (isV === '1' && index1 === '')}" :disabled="disabled" @tap="_stConfirm">{{$t('button.storage-confirm')}}</button>
<!-- <button class="submit-button" :class="{'btn-disabled': dataList.length === 0}" :disabled="disabled1" @tap="_stPrint">补码</button> -->
<button class="zd-col-5 btn-submit btn-success letter-30" @tap="_boxQuery(val1)">{{$t('button.search')}}</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import SearchBoxMx from '@/components/SearchBoxMx.vue'
import permision from "@/utils/permission.js"
import {boxQuery, stConfirm, stPrint, getStorSect, stWeighCheck} from '@/utils/getData2.js'
export default {
components: {
NavBar,
SearchBox,
SearchBoxMx
},
data() {
return {
title: '',
val1: '',
val2: '',
isV: '0',
options1: [],
index1: '',
dataList: [],
disabled: false,
disabled1: false
};
},
created () {
this._getStorSect()
},
mounted () {
this.$refs.scanChild.handleFocus()
setTimeout(() => {
uni.hideKeyboard()
}, 500)
},
onLoad (options) {
this.title = options.title
},
methods: {
/** 虚拟库 */
isVirtual () {
this.isV = this.isV === '0' ? '1' : '0'
},
/** 选择器1 */
selectChange1(e) {
this.index1 = e
},
/** 库区下拉框查询 */
async _getStorSect () {
let res = await getStorSect()
this.options1 = [...res.data]
},
/** 初始化查询 */
async _boxQuery (e) {
let res = await boxQuery(e, '2')
this.dataList = [...res.data]
},
/** 确认 */
async _stConfirm () {
this.disabled = true
if (!this.val1 || this.dataList.length === 0 || (this.isV === '1' && this.index1 === '')) {
this.disabled = false
return
}
try {
let res = await stConfirm(this.dataList, this.val2, '2', this.isV, '', this.val1, this.index1)
this.disabled = false
// this._boxQuery(this.val1)
this.val1 = ''
this.val2 = ''
this.isV = '0'
this.index1 = ''
this.dataList = []
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled = false
}
},
/** 补码 */
async _stPrint () {
this.disabled1 = true
if (this.dataList.length === 0) {
this.disabled1 = false
return
}
try {
let res = await stPrint(this.dataList)
this.disabled1 = false
this._boxQuery(this.val1)
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled1 = false
}
},
handleChange (e) {
this._boxQuery(this.val1)
},
// 称重校验
async _stWeighCheck () {
this.disabled1 = true
if (!this.val1 || !this.val2) {
this.disabled1 = false
return
}
try {
let res = await stWeighCheck(this.val1, this.val2)
this.disabled1 = false
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled1 = false
}
}
}
}
</script>

View File

@@ -66,7 +66,8 @@ export const allAuthority = () => {
{menu_id: '7', path: 'RF06', title: '成品入库', sonTree: [
{menu_id: '1', title: '退货口入库', path: '/pages/SecondPhase/finished/ReturnToStore'},
{menu_id: '2', title: '异常口入库', path: '/pages/SecondPhase/finished/abnorToStore'},
{menu_id: '3', title: '木箱称重', path: '/pages/SecondPhase/finished/BoxWeight'}
{menu_id: '3', title: '木箱称重', path: '/pages/SecondPhase/finished/BoxWeight'},
{menu_id: '4', title: '生产入库', path: '/pages/SecondPhase/finished/InStoreConfirm'}
]},
{menu_id: '8', path: 'RF13', title: '立库库存', sonTree: [
{menu_id: '1', title: '空木箱库存', path: '/pages/SecondPhase/lvt/EmptyBox'}