盘点
This commit is contained in:
@@ -304,4 +304,18 @@ 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;
|
||||||
}
|
}
|
||||||
33
main.js
33
main.js
@@ -1,13 +1,36 @@
|
|||||||
import App from './App'
|
import App from './App'
|
||||||
import Vue from 'vue'
|
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()
|
||||||
117
pages/WarehouseManage/CheckDtl.vue
Normal file
117
pages/WarehouseManage/CheckDtl.vue
Normal 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>
|
||||||
99
pages/WarehouseManage/CheckList.vue
Normal file
99
pages/WarehouseManage/CheckList.vue
Normal 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>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="zd_content bg">
|
<view class="zd_content bg">
|
||||||
<view class="p1">欢迎来到</view>
|
<view class="p1">欢迎来到</view>
|
||||||
<view class="p2">海亮铜箔手持系统!</view>
|
<view class="p2">海亮铜箔手持系统!</view>
|
||||||
<view class="input-box">
|
<view class="input-box">
|
||||||
<input class="large-input" type="text" placeholder="请输入用户名" v-model="user">
|
<input class="large-input" type="text" placeholder="请输入用户名" v-model="user">
|
||||||
</view>
|
</view>
|
||||||
<div class="input-box">
|
<div class="input-box">
|
||||||
<input class="large-input" :password="!showPassword" placeholder="请输入密码" v-model="password">
|
<input class="large-input" :password="!showPassword" placeholder="请输入密码" v-model="password">
|
||||||
<span class="iconfont icon_eye_close" :class="[showPassword ? 'icon_eye_active' : '']" @tap="changePassword"></span>
|
<span class="iconfont icon_eye_close" :class="[showPassword ? 'icon_eye_active' : '']" @tap="changePassword"></span>
|
||||||
</div>
|
</div>
|
||||||
<view class="radio-box">
|
<view class="radio-box">
|
||||||
<view class="radio-wrap">
|
<view class="radio-wrap">
|
||||||
@@ -18,26 +18,26 @@
|
|||||||
<text class="setup-text" @tap="isUpdate">升级版本</text>
|
<text class="setup-text" @tap="isUpdate">升级版本</text>
|
||||||
</view>
|
</view>
|
||||||
<button class="login-btn" :disabled="disabled" @tap="toLogin">确认登录</button>
|
<button class="login-btn" :disabled="disabled" @tap="toLogin">确认登录</button>
|
||||||
<!-- <button class="login-btn" @tap="test">打印</button> -->
|
<!-- <button class="login-btn" @tap="test">打印</button> -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {getCLodop, getPrinterList} from "@/utils/CLodopfuncs.js"
|
import {getCLodop, getPrinterList} from "@/utils/CLodopfuncs.js"
|
||||||
import { RSAencrypt } from '@/utils/jsencrypt.js'
|
import { RSAencrypt } from '@/utils/jsencrypt.js'
|
||||||
import {handLogin} from '@/utils/getData2.js'
|
import {handLogin} from '@/utils/getData2.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
user: this.$store.getters.loginName ? this.$store.getters.loginName : '',
|
user: this.$store.getters.loginName ? this.$store.getters.loginName : '',
|
||||||
password: '',
|
password: '',
|
||||||
showPassword: false,
|
showPassword: false,
|
||||||
saveUser: this.$store.getters.loginName ? true : false,
|
saveUser: this.$store.getters.loginName ? true : false,
|
||||||
disabled: false
|
disabled: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
isUpdate () {
|
isUpdate () {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
// 根据需求插入打印代码
|
// 根据需求插入打印代码
|
||||||
LODOP.PRINT(); // 打印
|
LODOP.PRINT(); // 打印
|
||||||
// LODOP.PREVIEW()
|
// LODOP.PREVIEW()
|
||||||
},
|
},
|
||||||
toSaveUser() {
|
toSaveUser() {
|
||||||
this.saveUser = !this.saveUser
|
this.saveUser = !this.saveUser
|
||||||
},
|
},
|
||||||
@@ -104,27 +104,27 @@
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.disabled = false
|
this.disabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '../../common/style/mixin.styl';
|
@import '../../common/style/mixin.styl';
|
||||||
.p1
|
.p1
|
||||||
_font(60rpx,75rpx,#444)
|
_font(60rpx,75rpx,#444)
|
||||||
padding-top: 90rpx
|
padding-top: 90rpx
|
||||||
.p2
|
.p2
|
||||||
_font(50rpx,1,#444)
|
_font(50rpx,1,#444)
|
||||||
padding: 40rpx 0 25rpx
|
padding: 40rpx 0 25rpx
|
||||||
.input-box
|
.input-box
|
||||||
_fj()
|
_fj()
|
||||||
margin-top 68rpx
|
margin-top 68rpx
|
||||||
height 75rpx
|
height 75rpx
|
||||||
border-bottom 1rpx solid #e2e2e2
|
border-bottom 1rpx solid #e2e2e2
|
||||||
.large-input
|
.large-input
|
||||||
_wh(calc(100% - 40rpx), 74rpx)
|
_wh(calc(100% - 40rpx), 74rpx)
|
||||||
_font(32rpx,74rpx,#999)
|
_font(32rpx,74rpx,#999)
|
||||||
padding-left 10rpx
|
padding-left 10rpx
|
||||||
.radio-box
|
.radio-box
|
||||||
_fj()
|
_fj()
|
||||||
@@ -143,11 +143,11 @@
|
|||||||
.bg
|
.bg
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
_bis('../../static/image/login_bg.png', 100%,,bottom)
|
_bis('../../static/image/login_bg.png', 100%,,bottom)
|
||||||
.login-btn
|
.login-btn
|
||||||
width 100%
|
width 100%
|
||||||
border-radius 46rpx
|
border-radius 46rpx
|
||||||
_font(36rpx,92rpx,#fff,,center)
|
_font(36rpx,92rpx,#fff,,center)
|
||||||
background-color $red
|
background-color $red
|
||||||
.zd_content
|
.zd_content
|
||||||
height: 100%
|
height: 100%
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user