空管出入库

This commit is contained in:
2023-04-27 16:36:54 +08:00
parent 8b4396bb92
commit 5b4cad2a60
3 changed files with 154 additions and 122 deletions

View File

@@ -4,62 +4,34 @@
<view class="zd_content"> <view class="zd_content">
<view class="zd_wrapper"> <view class="zd_wrapper">
<view class="filter_item"> <view class="filter_item">
<view class="filter_label_wraper"> <view class="filter_label">区域</view>
<span class="filter_label">点位</span>
</view>
<view class="filter_input_wraper"> <view class="filter_input_wraper">
<search-box <uni-data-select v-model="index1" :localdata="options1" @change="selectChange1"></uni-data-select>
v-model="val1" </view>
/> </view>
<view class="filter_item">
<view class="filter_label">设备</view>
<view class="filter_input_wraper">
<uni-data-select v-model="index2" :localdata="options2" @change="selectChange2"></uni-data-select>
</view> </view>
</view> </view>
<view class="filter_item"> <view class="filter_item">
<view class="filter_label">物料</view> <view class="filter_label">物料</view>
<view class="filter_input_wraper"> <view class="filter_input_wraper">
<input type="text" class="filter_input" v-model="val2"> <uni-data-select v-model="index3" :localdata="options3" @change="selectChange3"></uni-data-select>
</view>
</view>
<view class="filter_item">
<view class="filter_label">区域</view>
<view class="filter_input_wraper">
<uni-data-select v-model="index" :localdata="options" @change="selectChange"></uni-data-select>
</view> </view>
</view> </view>
<view class="filter_item"> <view class="filter_item">
<view class="filter_label">数量</view> <view class="filter_label">数量</view>
<view class="filter_input_wraper"> <view class="filter_input_wraper">
<input type="text" class="filter_input" v-model="qty"> <input type="text" class="filter_input filter_input_disabled" v-model="qty" disabled="disabled">
</view> </view>
</view> </view>
</view> </view>
<view class="zd_wrapper grid-wraper">
<view class="slide_new">
<table>
<thead>
<tr>
<th>序号</th>
<th>点位</th>
<th>物料编码</th>
<th>物料名称</th>
<th>数量</th>
</tr>
</thead>
<tbody>
<tr v-for="(e, i) in dataList" :key="i" @click="toCheck(e)" :class="{'checked': e.point_code === pkId}">
<td>{{Number(i) + 1}}</td>
<td>{{e.point_code}}</td>
<td>{{e.material_code}}</td>
<td>{{e.material_name}}</td>
<td>{{e.qty}}</td>
</tr>
</tbody>
</table>
</view>
</view>
</view> </view>
<view class="submit-bar"> <view class="submit-bar">
<button class="submit-button" :class="{'btn-disabled': !pkId}" :disabled="disabled" @tap="_emptyConfirm">入库确认</button> <button class="submit-button" :class="{'btn-disabled': !qty || !index1 || !index3}" :disabled="disabled" @tap="_emptyConfirm">入库设置</button>
<button class="submit-button" @tap="_queryMaterialInfo">查询</button> <button class="submit-button" :class="{'btn-disabled': !index2}" @tap="_taskQuerydevice">查询</button>
</view> </view>
</view> </view>
</template> </template>
@@ -67,7 +39,7 @@
<script> <script>
import NavBar from '@/components/NavBar.vue' import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue' import SearchBox from '@/components/SearchBox.vue'
import {queryProductArea, queryMaterialInfo1, emptyConfirm} from '@/utils/getData2.js' import {queryProductArea, taskQuerydevice, queryDeviceList, queryPaperMaterial, emptyConfirm} from '@/utils/getData2.js'
export default { export default {
components: { components: {
NavBar, NavBar,
@@ -75,71 +47,104 @@
}, },
data() { data() {
return { return {
val1: '', options1: [],
val2: '', index1: '',
options: [], options2: [],
index: '', index2: '1',
options3: [],
index3: '',
qty: '', qty: '',
dataList: [],
pkId: '',
pkObj: {},
disabled: false disabled: false
}; };
}, },
created () { created () {
this._queryProductArea() this._queryProductArea()
this._queryMaterialInfo() this._queryDeviceList()
}, },
methods: { methods: {
/** 选择器 */ /** 选择器1 */
selectChange(e) { selectChange1(e) {
this.index = e this.index1 = e
},
/** 选择器2 */
selectChange2(e) {
this.index2 = e
},
/** 选择器3 */
selectChange3(e) {
this.index3 = e
}, },
/** 生产区域下拉框查询 */ /** 生产区域下拉框查询 */
async _queryProductArea () { async _queryProductArea () {
let res = await queryProductArea() let res = await queryProductArea()
this.options = [...res.data] this.options1 = [...res.data]
}, },
/** 初始化查询 */ /** 查询设备下拉框 */
async _queryMaterialInfo () { async _queryDeviceList () {
let res = await queryMaterialInfo1(this.val1, this.val2, this.index, '2') let res = await queryDeviceList()
this.dataList = [...res.data] this.options2 = [...res.rows]
},
/**查询物料下拉框*/
async _queryPaperMaterial (code) {
let res = await queryDeviceList(code)
this.options3 = [...res.rows]
},
/** 查询物料、数量 */
async _taskQuerydevice () {
if (!this.index2) {
uni.showToast({
title: '请选择设备',
icon: 'none'
})
return
}
let res = await taskQuerydevice([{device_code: this.index2}])
// this.index3 = res.material_code
this.qty = res.qty
this._queryPaperMaterial(res.material_code)
}, },
/** 确认 */ /** 确认 */
async _emptyConfirm () { async _emptyConfirm () {
this.disabled = true this.disabled = true
if (!this.pkId) { if (!this.index2) {
uni.showToast({
title: '设备不能为空',
icon: 'none'
})
this.disabled = false
return
}
if (!this.index3) {
uni.showToast({
title: '物料不能为空',
icon: 'none'
})
this.disabled = false
return
}
if (!this.qty) {
uni.showToast({
title: '数量不能为空',
icon: 'none'
})
this.disabled = false this.disabled = false
return return
} }
try { try {
let res = await emptyConfirm(this.pkObj, this.qty, this.val1, '2') let res = await emptyConfirm(this.qty, this.index3, this.index2, '1')
this.disabled = false this.disabled = false
this.pkId = ''
this.pkObj = {}
this._queryMaterialInfo()
uni.showToast({ uni.showToast({
title: res.message, title: res.message,
icon: 'none' icon: 'none'
}) })
this.index1 = ''
this.index2 = ''
this.index3 = ''
this.qty = ''
} catch (e) { } catch (e) {
this.disabled = false this.disabled = false
} }
},
toCheck (e) {
this.pkId = this.pkId === e.point_code ? '' : e.point_code
this.pkObj = this.pkId === e.point_code ? e : {}
} }
} }
} }
</script> </script>
<style lang="stylus">
.slide_new table td:first-child, .slide_new table th:first-child
width 92rpx
.slide_new table td:nth-child(2), .slide_new table th:nth-child(2)
position sticky
left 89rpx
z-index 102
box-shadow 1px 0 2px rgba(0,0,0,.12)
</style>

View File

@@ -3,22 +3,6 @@
<nav-bar title="空管出库"></nav-bar> <nav-bar title="空管出库"></nav-bar>
<view class="zd_content"> <view class="zd_content">
<view class="zd_wrapper"> <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"
/>
</view>
</view>
<view class="filter_item">
<view class="filter_label">物料</view>
<view class="filter_input_wraper">
<input type="text" class="filter_input" v-model="val2">
</view>
</view>
<view class="filter_item"> <view class="filter_item">
<view class="filter_label">区域</view> <view class="filter_label">区域</view>
<view class="filter_input_wraper"> <view class="filter_input_wraper">
@@ -37,19 +21,15 @@
<table> <table>
<thead> <thead>
<tr> <tr>
<th>序号</th> <th>设备</th>
<th>点位</th>
<th>物料编码</th> <th>物料编码</th>
<th>物料名称</th>
<th>数量</th> <th>数量</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr v-for="(e, i) in dataList" :key="i" @click="toCheck(e)" :class="{'checked': e.point_code === pkId}"> <tr v-for="(e, i) in dataList" :key="i" @click="toCheck(e)" :class="{'checked': e.device_code === pkId}">
<td>{{Number(i) + 1}}</td> <td>{{e.device_code}}</td>
<td>{{e.point_code}}</td>
<td>{{e.material_code}}</td> <td>{{e.material_code}}</td>
<td>{{e.material_name}}</td>
<td>{{e.qty}}</td> <td>{{e.qty}}</td>
</tr> </tr>
</tbody> </tbody>
@@ -58,8 +38,8 @@
</view> </view>
</view> </view>
<view class="submit-bar"> <view class="submit-bar">
<button class="submit-button" :class="{'btn-disabled': !pkId}" :disabled="disabled" @tap="_emptyConfirm">出库确认</button> <button class="submit-button" :class="{'btn-disabled': !pkId || !qty}" :disabled="disabled" @tap="_emptyConfirm">确认</button>
<button class="submit-button" @tap="_queryMaterialInfo">查询</button> <button class="submit-button" @tap="_queryPaperTubeInfo">查询</button>
</view> </view>
</view> </view>
</template> </template>
@@ -67,7 +47,7 @@
<script> <script>
import NavBar from '@/components/NavBar.vue' import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue' import SearchBox from '@/components/SearchBox.vue'
import {queryProductArea, queryMaterialInfo1, emptyConfirm} from '@/utils/getData2.js' import {queryProductArea, emptyConfirm} from '@/utils/getData2.js'
export default { export default {
components: { components: {
NavBar, NavBar,
@@ -75,8 +55,6 @@
}, },
data() { data() {
return { return {
val1: '',
val2: '',
options: [], options: [],
index: '', index: '',
qty: '', qty: '',
@@ -88,7 +66,6 @@
}, },
created () { created () {
this._queryProductArea() this._queryProductArea()
this._queryMaterialInfo()
}, },
methods: { methods: {
/** 选择器 */ /** 选择器 */
@@ -101,23 +78,35 @@
this.options = [...res.data] this.options = [...res.data]
}, },
/** 初始化查询 */ /** 初始化查询 */
async _queryMaterialInfo () { async _queryPaperTubeInfo () {
let res = await queryMaterialInfo1(this.val1, this.val2, this.index, '1') let res = await queryMaterialInfo1(this.index)
this.dataList = [...res.data] this.dataList = [...res.rows]
}, },
/** 确认 */ /** 确认 */
async _emptyConfirm () { async _emptyConfirm () {
this.disabled = true this.disabled = true
if (!this.pkId) { if (!this.pkId) {
uni.showToast({
title: '请选择一行',
icon: 'none'
})
this.disabled = false
return
}
if (!this.qty) {
uni.showToast({
title: '请填写数量',
icon: 'none'
})
this.disabled = false this.disabled = false
return return
} }
try { try {
let res = await emptyConfirm(this.pkObj, this.qty, this.val1, '1') let res = await emptyConfirm(this.qty, this.pkObj.material_code, this.pkObj.device_code, '2')
this.disabled = false this.disabled = false
this.pkId = '' this.pkId = ''
this.pkObj = {} this.pkObj = {}
this._queryMaterialInfo() this._queryPaperTubeInfo()
uni.showToast({ uni.showToast({
title: res.message, title: res.message,
icon: 'none' icon: 'none'
@@ -127,8 +116,8 @@
} }
}, },
toCheck (e) { toCheck (e) {
this.pkId = this.pkId === e.point_code ? '' : e.point_code this.pkId = this.pkId === e.device_code ? '' : e.device_code
this.pkObj = this.pkId === e.point_code ? e : {} this.pkObj = this.pkId === e.device_code ? e : {}
} }
} }
} }

View File

@@ -109,15 +109,15 @@ export const queryMaterialInfo1 = (code, mcode, area, option) => request({
} }
}) })
// 1.3入库确认 // 1.3入库确认
export const emptyConfirm = (jo, qty, code, option) => request({ // export const emptyConfirm = (jo, qty, code, option) => request({
url:'api/pda/empty/confirm', // url:'api/pda/empty/confirm',
data: { // data: {
raw_jo: jo, // raw_jo: jo,
qty: qty, // qty: qty,
material_code: code, // material_code: code,
option: option // option: option
} // }
}) // })
/** /**
* 空轴套管 * 空轴套管
@@ -496,4 +496,42 @@ data: {
box_no: no, box_no: no,
point_code: code point_code: code
} }
}) })
/**
* 空管出入库
*/
// 1.1查询纸管库设备下拉框
export const queryDeviceList = () => request({
url:'api/pda/paper/queryDeviceList',
data: {}
})
// 1.2查询纸管物料下拉框
export const queryPaperMaterial = (code) => request({
url:'api/pda/paper/queryPaperMaterial',
data: {
material_code: code
}
})
// 1.3查询纸管物料
export const taskQuerydevice = (jarr) => request({
url:'api/wms/task/querydevice',
data: jarr
})
// 1.4入库设置/出库确认
export const emptyConfirm = (qty, mater, code, option) => request({
url:'api/pda/empty/confirm',
data: {
qty: qty,
material_code: mater,
device_code: code,
option: option
}
})
// 1.5查询纸管库信息
export const queryPaperTubeInfo = (area) => request({
url:'api/pda/paper/queryPaperTubeInfo',
data: {
product_area: area
}
})