This commit is contained in:
2022-11-16 17:11:24 +08:00
parent 7339ee7ce9
commit c58ebcba3e
5 changed files with 294 additions and 41 deletions

View File

@@ -305,3 +305,17 @@ uni-button:after {
.uni-select__input-placeholder,.uni-select__selector-empty, .uni-select__selector-item { .uni-select__input-placeholder,.uni-select__selector-empty, .uni-select__selector-item {
font-size: 28rpx !important font-size: 28rpx !important
} }
.sin_input {
width: 150rpx;
font-size: 28rpx;
line-height: 150rpx;
height: 68rpx;
color: #323232;
padding: 0 .1rem;
border: 1px solid #a1a1a1;
border-radius: 3px;
}
.layout-t tr.checked td .sin_input {
color: #8a8a8a;
border: 1px solid #ffffff;
}

23
main.js
View File

@@ -4,10 +4,33 @@ import Vue from 'vue'
Vue.config.productionTip = false Vue.config.productionTip = false
App.mpType = 'app' App.mpType = 'app'
Vue.directive('enterNumber', {
inserted: function (el) {
el.addEventListener("keypress",function(e){
e = e || window.event;
let charcode = typeof e.charCode == 'number' ? e.charCode : e.keyCode;
// if (parseInt(e.target.value) == 0) {
// e.preventDefault();
// }
parseInt(e.target.value) == 0 && e.preventDefault();
let re = /\d/;
if(!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
}
});
}
});
import store from '@/vuex/store.js' import store from '@/vuex/store.js'
const app = new Vue({ const app = new Vue({
...App, ...App,
store store
}) })
app.$mount() app.$mount()

View File

@@ -0,0 +1,117 @@
<template>
<view class="zd_container">
<nav-bar :inner2="true" @goIn="goIn" title="盘点明细"></nav-bar>
<view class="zd_content">
<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>
</tr>
</thead>
<tbody>
<tr v-for="(e, i) in dataList" :key="i">
<td>{{e.check_code}}</td>
<td>{{e.status}}</td>
<td>{{e.sect_name}}</td>
<td>{{e.struct_name}}</td>
<td>{{e.base_qty}}</td>
<td><input type="number" class="sin_input" :min="0" v-model="value" @blur="e => {if (e.target.value === '') {value=0}}" v-enter-number></td>
<td>{{e.check_optname}}</td>
<td>{{e.check_time}}</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>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import {checkQueryDtl, saveCheck, confirmCheck} from '@/utils/getData1.js'
export default {
components: {
NavBar,
},
data() {
return {
value: '1',
checkCode: '',
dataList: [],
disabled1: false
};
},
created () {
},
onLoad (option) {
this.checkCode = option.check_code
this._checkQueryDtl()
},
methods: {
goIn () {
uni.navigateTo({
url: `/pages/WarehouseManage/CheckList`
})
},
handleChange (e) {
// console.log(e)
},
/** 初始化查询 */
async _checkQueryDtl () {
let res = await checkQueryDtl(this.checkCode)
this.dataList = [...res.data]
},
async _saveCheck () {
this.disabled1 = true
try {
let res = await saveCheck(this.dataList, this.checkCode)
this.disabled1 = false
this._checkQueryDtl()
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled1 = false
}
},
async _confirmCheck () {
this.disabled1 = true
try {
let res = await confirmCheck(this.dataList, this.checkCode)
this.disabled1 = false
this._checkQueryDtl()
uni.showToast({
title: res.message,
icon: 'none'
})
} catch (e) {
this.disabled1 = false
}
}
}
}
</script>
<style lang="stylus">
.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)
.bgyellow td
background-color #E9B451
</style>

View File

@@ -0,0 +1,99 @@
<template>
<view class="zd_container">
<nav-bar title="盘点单"></nav-bar>
<view class="zd_content">
<view class="zd_wrapper">
<view class="filter_item">
<view class="filter_label">单据编码</view>
<view class="filter_input_wraper">
<input type="text" class="filter_input" v-model="val1">
</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>
</tr>
</thead>
<tbody>
<tr v-for="(e, i) in dataList" :key="i" @click="toCheck(e)" :class="{'checked': e.bill_code === pkId}">
<td>{{e.check_code}}</td>
<td>{{e.check_type}}</td>
<td>{{e.stor_name}}</td>
<td>{{e.dtl_num}}</td>
<td>{{e.status}}</td>
<td>{{e.input_optname}}</td>
<td>{{e.input_time}}</td>
<td>{{e.confirm_optname}}</td>
<td>{{e.confirm_time}}</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
<view class="submit-bar">
<button class="submit-button" :class="{'btn-disabled': !pkId}" :disabled="disabled1" @tap="toPandian">盘点</button>
<button class="submit-button" @tap="_checkQuery">查询</button>
</view>
</view>
</template>
<script>
import NavBar from '@/components/NavBar.vue'
import {checkQuery} from '@/utils/getData1.js'
export default {
components: {
NavBar,
},
data() {
return {
val1: '',
dataList: [],
pkId: '',
pkObj: {},
disabled1: false
};
},
created () {
},
methods: {
/** 初始化查询 */
async _checkQuery () {
let res = await checkQuery(this.val1)
this.dataList = [...res.data]
},
toPandian () {
if (this.pkId) {
uni.navigateTo({
url: '/pages/WarehouseManage/CheckDtl?billcode=' + this.pkObj.check_code
})
}
},
toCheck (e) {
this.pkId = this.pkId === e.check_code ? '' : e.check_code
this.pkObj = this.pkId === e.check_code ? e : {}
}
}
}
</script>
<style lang="stylus">
.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)
.bgyellow td
background-color #E9B451
</style>