Files
hht-shangdianke-uni/pages/WarehouseManage/CheckDtl.vue
2024-02-01 13:55:27 +08:00

326 lines
8.3 KiB
Vue

<template>
<view class="zd_container">
<nav-bar :inner2="true" @goIn="goIn" 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"
:focused="focusedStatus"
@handleChange="handleChange"
/>
</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" disabled>
</view>
</view>
<view class="filter_item">
<view class="filter_label">未盘点数</view>
<view class="filter_input_wraper">
<input type="text" class="filter_input" v-model="val3" disabled>
</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>
<th>盘点数量</th> -->
<th>盘点库区</th>
<th>盘点货位</th>
<th>物料编码</th>
<th>物料名称</th>
<th>备注</th>
<th>卷数</th>
<th>盘点结果</th>
<th>盘点人</th>
<th>盘点时间</th>
<th>单据号</th>
</tr>
</thead>
<tbody>
<tr v-for="(el, i) in dataList" :key="i" :class="{'checked': el.checked}">
<td><span class="iconfont icon_unchecked" :class="{'icon_checked': el.checked}" @tap="toCheck(el)">&#xe66b;</span></td>
<td style="text-decoration: underline;" @tap="toXq(el.storagevehicle_code)"><a>{{el.storagevehicle_code}}</a></td>
<td>{{el.status}}</td>
<td>{{el.net_qty}}</td>
<!-- <td>{{el.base_qty}}</td>
<td><input type="number" class="sin_input" :min="0" v-model="el.fac_qty" @blur="e => {if (e.target.value === '') {el.fac_qty=0}}" v-enter-number></td> -->
<td>{{el.sect_name}}</td>
<td>{{el.struct_name}}</td>
<td>{{el.material_code}}</td>
<td>{{el.material_name}}</td>
<td @tap="toRemark(el)"><input type="text" class="sin_input" v-model="el.remark"></td>
<td>{{el.quanlity_in_box}}</td>
<td>{{el.check_result}}</td>
<td>{{el.check_optname}}</td>
<td>{{el.check_time}}</td>
<td>{{el.check_code}}</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
<view class="submit-bar">
<!-- <button class="submit-button" :class="{'btn-disabled': !dataList.length}" :disabled="disabled1" @tap="_saveCheck">保存</button> -->
<!-- <button class="submit-button" :class="{'btn-disabled': !dataList.length}" :disabled="disabled1" @tap="_confirmCheck">确认</button> -->
<button class="submit-button" :class="{'btn-disabled': !dataList.length}" :disabled="disabled1" @tap="_checkexception">异常</button>
<button class="submit-button" :class="{'btn-disabled': !dataList.length}" :disabled="disabled1" @tap="_checknormal">正常</button>
<button class="submit-button" @tap="_checkQueryDtl(checkCode, val1)">查询</button>
</view>
<view v-show="modelShow" class="msg_wrapper">
<view class="msg_box">
<view class="msg_item">
<view class="filter_label">备注</view>
<view class="filter_input_wraper">
<input type="text" class="msg_input" v-model="val0">
</view>
</view>
<view class="msg_btns">
<button class="submit-button" @tap="toSurerk">确定</button>
</view>
</view>
</view>
<view v-show="modelShow" class="mask"></view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import SearchBox from '@/components/SearchBox.vue'
import {checkQueryDtl, checkexception, checknormal} from '@/utils/getData1.js'
export default {
components: {
NavBar,
SearchBox
},
data() {
return {
focusedStatus: true,
modelShow: false,
value: '1',
val0: '',
val1: '',
val2: '',
val3: '',
checkCode: '',
dataList: [],
// dataList : [{
// checked: false,
// storagevehicle_code: '1',
// status: '1',
// net_qty: '1',
// sect_name: '1',
// struct_name: '1',
// material_code: '1',
// material_name: '1',
// remark: '3342',
// }],
checkArr: [],
disabled1: false,
obj: {}
};
},
created () {
},
onLoad (option) {
this.checkCode = option.checkcode
// this._checkQueryDtl()
},
methods: {
goIn () {
uni.navigateTo({
url: `/pages/WarehouseManage/CheckList`
})
},
handleChange (e) {
this._checkQueryDtl(e)
},
toRemark (e) {
this.val0 = e.remark
this.obj = e
this.modelShow = true
},
toSurerk () {
this.modelShow = false
this.dataList.map(el => {
if (this.obj.storagevehicle_code === el.storagevehicle_code) {
el.remark = this.val0
}
})
},
toXq (code) {
uni.navigateTo({
url: '/pages/WarehouseManage/Details?storagevehicle_code=' + code + '&checkcode=' + this.checkCode
})
},
toCheck (e) {
e.checked = !e.checked
this.checkArr = this.dataList.filter(i => { return i.checked === true })
},
/** 初始化查询 */
async _checkQueryDtl () {
let res = await checkQueryDtl(this.checkCode, this.val1)
this.val2 = res.check_num
this.val3 = res.uncheck_num
res.data.map(el => {
this.$set(el, 'checked', false)
})
this.dataList = [...res.data]
},
async _checkexception () {
this.disabled1 = true
try {
let res = await checkexception(this.checkArr, this.checkCode)
this.disabled1 = false
this.checkArr = []
this.dataList = []
this.obj = {}
this.val0 = ''
this.val1 = ''
this.val2 = ''
this.val3 = ''
this.focusedStatus = true
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled1 = false
}
},
async _checknormal () {
this.disabled1 = true
try {
let res = await checknormal(this.checkArr, this.checkCode)
this.disabled1 = false
this.checkArr = []
this.dataList = []
this.obj = {}
this.val0 = ''
this.val1 = ''
this.val2 = ''
this.val3 = ''
this.focusedStatus = true
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled1 = false
}
}
}
}
</script>
<style lang="stylus" scoped>
.zd_content
padding-bottom 77rpx
// .slide_new table td:nth-child(1), .slide_new table th:nth-child(1)
// box-shadow 1px 0 2px rgba(0,0,0,.12)
// .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)
.msg_wrapper
position fixed
top 0
bottom 0
left 0
right 0
text-align center
z-index 10000
&::after
content ""
display inline-block
height 100%
width 0
vertical-align middle
.msg_box
display inline-block
width calc(100% - 30rpx)
padding 30rpx
vertical-align middle
background-color #fff
border-radius 8rpx
border 1px solid #ebeef5
font-size 36rpx
box-shadow 0 2px 12px 0 rgb(0 0 0 / 10%)
text-align left
overflow hidden
backface-visibility hidden
.buttonbox
width 100px
height 30px
margin-top 20px
margin 0 auto
.mask
position fixed
top 0
left 0
width 100%
height 100%
opacity .6
background #000
z-index 9999
.msg_item
display flex
justify-content: space-between
align-items: center
width 100%
height 80rpx
line-height 80rpx
margin 0 auto
margin-bottom 14rpx
.label_item
display inline-block
width 180rpx
font-size 32rpx
line-height inherit
color #606266
.from_item
display inline-block
width calc(100% - 200rpx)
line-height inherit
.msg_input
width 100%
height 80rpx
padding 0 30rpx
border-radius 4px
border 1px solid #DCDFE6
font-size 28rpx
line-height 80rpx
color #606266
.msg_btns
width 600rpx
height 70rpx
line-height 70rpx
margin 40rpx auto 0
display flex
justify-content: center
align-items: center
.submit-bar
justify-content space-around
.submit-button
margin-left 20rpx
margin-right 20rpx
</style>