From aea26294b5a6b4b18abe9f7244d0140770626613 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期二, 26 九月 2023 14:57:21 +0800
Subject: [PATCH] #
---
pages/basics/pick.vue | 651 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
pages/index/index2.vue | 6
pages.json | 9
3 files changed, 666 insertions(+), 0 deletions(-)
diff --git a/pages.json b/pages.json
index 885d263..cc58aa2 100644
--- a/pages.json
+++ b/pages.json
@@ -211,6 +211,15 @@
"enablePullDownRefresh": false
}
+ },
+ {
+ "path" : "pages/basics/pick",
+ "style" :
+ {
+ "navigationBarTitleText": "鎷f枡",
+ "enablePullDownRefresh": false
+
+ }
}
diff --git a/pages/basics/pick.vue b/pages/basics/pick.vue
new file mode 100644
index 0000000..74d6f38
--- /dev/null
+++ b/pages/basics/pick.vue
@@ -0,0 +1,651 @@
+<template>
+ <view >
+ <scroll-view scroll-y catch:touchmove="touchmove">
+ <view class="square-2">
+ <view class="square-title">
+ <view class="title-sign"><view class="sign"></view></view>
+ <view class="title-text"><text>鎵樼洏鏉$爜</text></view>
+ </view>
+ <view class="square-content">
+ <view class="content-input">
+ <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆"
+ :focus="barcodeFocus" @input="checkedBarcode()" placeholder-style="line-height: 85rpx;">
+ <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons>
+ </view>
+ </view>
+ </view>
+
+ <view class="square-1">
+ <view class="square-title">
+ <view class="title-sign"><view class="sign"></view></view>
+ <view class="title-text"><text>鍟嗗搧鍒楄〃</text></view>
+ <!-- <label v-show="matList.length != 0" style="float: right;margin-right: 20px;margin-top: 13px;"><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove()"></uni-icons></label> -->
+ </view>
+ </view>
+
+ <view class="square-none" v-show="matList.length === 0">
+ <view class="v-show">鏆傛棤鏇村鏁版嵁...</view>
+ </view>
+
+ <checkbox-group @change="checkbox">
+ <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" >
+ <view class="data-list-left">
+ <!-- <view>
+ <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" />
+ </view> -->
+ <!-- <table>
+ <tr><td>鐗╂枡鍙凤細</td><td>{{item.matnr}}</td></tr>
+ </table> -->
+ <view><text style="width: 400rpx;">瑙勬牸锛歿{item.specs}}</text></view>
+ <view><text style="width: 400rpx;">鍗曞彿锛歿{item.orderNo ? item.orderNo : '--'}}</text></view>
+ <view><text style="width: 400rpx;">鍝佸悕锛歿{item.maktx}}</text></view>
+ <view><text style="width: 400rpx;">鍏ュ簱鍖哄煙锛歿{item.matType$}}</text></view>
+ <view><text style="width: 400rpx;">鎵瑰彿锛歿{item.batch}}</text></view>
+ <view><text style="width: 400rpx;">瀹㈡埛淇℃伅锛歿{item.cstmr}}</text></view>
+ <view>
+ <text style="width: 400rpx;">澶囨敞锛歿{item.memo}}</text>
+ <text style="width: 400rpx;margin-left: 100rpx">鍑哄簱鏁伴噺锛歿{item.anfme}}</text>
+ </view>
+ <!-- <view>
+ <text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text>
+ </view> -->
+ </view>
+ <!-- <view class="data-list-right">
+ <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label>
+ <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label>
+ </view> -->
+ </view>
+ </checkbox-group>
+ </scroll-view>
+
+
+ <!-- 搴曢儴鎸夐挳 -->
+ <view class="footer flex justify-around">
+ <!-- <label class="label-btn" style="width: 170rpx;">
+ <checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox>
+ </label>
+ <label class="label-btn" style="width: 100rpx;">
+ <text @click="reChecked()">鍙嶉��</text>
+ </label> -->
+
+ <label class="label-btn" style="width: 150rpx;">
+ <button class="cu-btn" @click="resst()">閲嶇疆</button>
+ </label>
+ <!-- <label class="label-btn">
+ <button class="cu-btn bg-blue " @click="comb()">缁勬墭</button>
+ </label> -->
+ </view>
+ <!-- 寮圭獥 -->
+ <!-- 淇敼鏁伴噺 -->
+ <uni-popup ref="revise" >
+ <view class="revise-box ">
+ <view class="revise-box-top">
+ <view class="color-block-blue"></view>
+ <text class="title">淇敼</text>
+ </view>
+ <view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+ <text style="display: inline-block;float: left;width: 50px;">鎵瑰彿锛�</text>
+ <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="batch">
+ </view>
+ <view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+ <text style="display: inline-block;float: left;width: 50px;">澶囨敞锛�</text>
+ <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="memo">
+ </view>
+ <view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+ <text style="display: inline-block;float: left;width: 50px;">瀹㈡埛锛�</text>
+ <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="cstmr">
+ </view>
+ <view class="changeBox">
+ <view class="num-box">
+ <text style="display: inline-block;float: left;width: 50px;">鏁伴噺锛�</text>
+ <uni-number-box :value="count" :max="9999999" color="#747474" @change="changeValue"/>
+ </view>
+ </view>
+ <view class="revise-box-buttom">
+ <view>
+ <button class="cu-btn bg-blue" @click="confirm()">纭</button>
+ </view>
+ </view>
+ </view>
+ </uni-popup>
+ </view>
+</template>
+
+<script>
+ import permision from "@/common/permission.js"
+import loginVue from "../login/login.vue";
+ export default {
+ data() {
+ return {
+ commonUrl:null,
+ barcode: '',
+ barcodeFocus:true,
+ focus:false,
+ type: 'center',
+ searchBox: 'hide',
+ pick:'hide',
+ matnr:'',
+ matList:[],
+ result: '',
+ enableQty:'',
+ count:'',
+ minCount:0,
+ maxCount:'',
+ rowNum:'',
+ check:false,
+ checkText:'鍏ㄩ��',
+ checkedData:[],
+ batch:'',
+ memo: '',
+ cstmr: '',
+ ck1: false,
+ ck2: true,
+ frozen: 0,
+ }
+ },
+ onShow() {
+ setTimeout(()=>{
+ // this.focuss()
+ }, 100);
+
+ },
+ mounted(){
+ const UIP = uni.getStorageSync('UIP');
+ this.baseIP = UIP;
+ const UPORT = uni.getStorageSync('UPORT');
+ this.basePORT = UPORT
+ const PROJ = uni.getStorageSync('UPROJ');
+ this.baseUrl = PROJ
+ this.getUrl()
+ },
+ methods: {
+ // 鑾峰彇url
+ getUrl() {
+ this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl
+ },
+ // 妫�鏌ユ潯鐮�
+ checkedBarcode() {
+ let that = this
+ uni.request({
+ url: that.commonUrl + '/mobile/pick/auth',
+ data:that.barcode,
+ header: {
+ 'token':uni.getStorageSync('token')
+ },
+ method:'POST',
+ success(result) {
+ var res = result.data
+ if (res.code === 200) {
+ if (!res.data) {
+
+ } else {
+ for (let k in res.data) {
+ that.matList.push(res.data[k])
+ }
+ }
+ }
+ }
+ })
+ },
+ // 鍐荤粨
+ isFrozen() {
+ var temp = this.ck1
+ this.ck1 = this.ck2
+ this.ck2 = temp
+ this.frozen = this.ck1
+ if (this.frozen == true) {
+ this.frozen = 1
+ } else {
+ this.frozen = 0
+ }
+ },
+ // barcode input 浜嬩欢
+ barcodeInput() {
+ // 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏�
+ setTimeout(()=>{
+ var len = this.barcode.length
+ if (len != 8) {
+ uni.showToast({title: '鎵樼洏鐮佹湁璇閲嶈瘯', icon: "none", position: 'top'});
+ this.barcodeFocuss()
+ return;
+ }
+ this.focuss()
+ },200)
+ },
+ // 鎵樼洏鐮佹湁璇噸缃�
+ barcodeFocuss() {
+ let that = this;
+ that.barcodeFocus = false;
+ setTimeout(()=>{
+ that.barcode = '';
+ that.barcodeFocus = true;
+ }, 100);
+ },
+ // 鍟嗗搧鍏夋爣娓呯┖閲嶇疆
+ focuss() {
+ // #ifdef APP
+ let that = this;
+ that.focus = false;
+ setTimeout(()=>{
+ that.matnr = '';
+ that.focus = true;
+ }, 100);
+ // #endif
+ },
+ resst() {
+ this.matList = []
+ this.barcode = ''
+ this.matnr = ''
+ this.barcodeFocuss()
+ uni.vibrateShort();
+ },
+ removeBarcode() {
+ this.barcode = ''
+ uni.vibrateShort();
+ this.barcodeFocus = false;
+ this.$nextTick(function() {
+ this.barcodeFocus = true;
+ });
+ },
+ removeMatnr() {
+ this.matnr = ''
+ uni.vibrateShort();
+ this.focus = false;
+ this.$nextTick(function() {
+ this.focus = true;
+ });
+ },
+ // 鍒楄〃鍒犻櫎鎸夐挳
+ remove(item,index) {
+ this.matList.splice(index,1)
+ uni.vibrateShort();
+ },
+ comb() {
+ uni.vibrateShort();
+ let that = this;
+ if (that.barcode === '') {
+ uni.showToast({title: '璇锋壂鎻忔墭鐩樻潯鐮�', icon: "none", position: 'top'});
+ return;
+ }
+ if (that.matList.length === 0) {
+ uni.showToast({title: '璇锋坊鍔犲晢鍝佸垪琛�', icon: "none", position: 'top'});
+ return;
+ }
+ for (var i = 0; i < that.matList.length; i++) {
+ if (that.matList[i].anfme == 0 || that.matList[i].anfme == '') {
+ uni.showToast({title: that.matList[i].matnr + '缁勬墭鏁伴噺涓嶈兘涓�0', icon: "none", position: 'top'});
+ return;
+ }
+ }
+ uni.showLoading();
+ uni.request({
+ url: that.commonUrl + '/mobile/comb/auth',
+ data: JSON.stringify({
+ frozen: that.frozen,
+ barcode: that.barcode,
+ combMats: that.matList
+ }),
+ method: 'POST',
+ header: {
+ 'token':uni.getStorageSync('token')
+ },
+ success(result) {
+ uni.hideLoading();
+ var res = result.data
+ if (res.code === 200) {
+ const innerAudioContext = uni.createInnerAudioContext();
+ innerAudioContext.src = '/static/music/pakinOk.mp3';
+ innerAudioContext.play()
+ that.resst();
+ uni.showToast({
+ title: res.msg,
+ position: 'bottom',
+ duration: 1000
+ });
+ } else if (res.code == 403) {
+ uni.showToast({title: res.msg, icon: "none", position: 'top'})
+ setTimeout(() => {
+ uni.reLaunch({
+ url: '../login/login'
+ });
+ }, 1000);
+ } else {
+ uni.showToast({title: res.msg, icon: "none",position: 'top'})
+ }
+ }
+ });
+ },
+ selectMat() {
+ let that = this
+ uni.vibrateShort();
+ uni.navigateTo({
+ url: "matSelect",
+ events: {
+ // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� 鍙﹀涓�涓〉闈紶杩囨潵鐨�
+ acceptDataFromOpenedPage: function(data) {
+ that.matnr = data.data
+ that.findMat(that.matnr)
+ },
+ },
+ success: function(res) {
+ // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
+ res.eventChannel.emit('commonUrl', {commonUrl:that.commonUrl })
+ },
+
+ });
+ that.matnr = ''
+ },
+ findMat() {
+ let that = this
+ uni.request({
+ url: that.commonUrl + '/mat/auth',
+ data: {
+ matnr:that.matnr
+ },
+ header: {
+ 'token':uni.getStorageSync('token')
+ },
+ success(result) {
+ uni.vibrateShort();
+ let res = result.data
+ if (res.code === 200 && res.data) {
+ that.matData = res.data
+ that.matnr = ''
+ that.matData['batch'] = ''
+ uni.navigateTo({
+ url: "matQuery",
+ events: {
+ // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�
+ matList: function(data) {
+ that.checkMat(data.data)
+ // that.matList.push(data.data)
+ },
+ },
+ success: function(res) {
+ // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
+ res.eventChannel.emit('matData', { data: that.matData })
+ },
+ });
+ } else if (res.code == 403) {
+ uni.showToast({title: res.msg, icon: "none", position: 'top'})
+ setTimeout(() => {
+ uni.reLaunch({
+ url: '../login/login'
+ });
+ }, 1000);
+ } else {
+ uni.showToast({title: res.msg, icon: "none",position: 'top'})
+ }
+
+ }
+ });
+
+ },
+
+ // 娣诲姞鍟嗗搧
+ addMat(mat) {
+ this.matList.unshift(mat)
+ },
+ checkMat(mat) {
+ var len = this.matList.length
+ var add = true
+ var date = new Date()
+ var today = date.getFullYear() + '/' + (date.getMonth()+1) + '/' + date.getDate()
+ for (var i = 0; i < len; i++) {
+ if (mat.matnr == this.matList[i].matnr) {
+ this.matList[i].anfme += mat.anfme
+ this.$forceUpdate() // 寮哄埗鍒锋柊
+ add = false
+ }
+ }
+ if (add) {
+ if(mat.batch === '' || mat.batch === null) {
+ // mat.batch = today
+ }
+ this.matList.unshift(mat)
+ }
+ },
+ change(e) {
+ },
+ toggle(type) {
+ this.type = type
+ // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
+ this.$refs.goodsSearch.open(type)
+ },
+ checkbox: function (e) {
+ var items = this.matList,
+ values = e.detail.value;
+ for (var i = 0, lenI = items.length; i < lenI; ++i) {
+ const item = items[i]
+ item.id = item.id + ''
+ if(values.indexOf(item.id) >= 0){
+ this.$set(item,'checked',true)
+ }else{
+ this.$set(item,'checked',false)
+ }
+ }
+ if (values.length == items.length) {
+ this.check = true
+ this.checkText = "鍙栨秷鍏ㄩ��"
+ } else {
+ this.check = false
+ this.checkText = "鍏ㄩ��"
+ }
+ uni.vibrateShort();
+ },
+ revise(item,index) {
+ this.count = this.matList[index].anfme
+ this.batch = this.matList[index].batch
+ this.memo = this.matList[index].memo
+ this.cstmr = this.matList[index].cstmr
+ this.rowNum = index
+ this.eject()
+ },
+ eject(type) {
+ this.type = type
+ // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
+ this.$refs.revise.open(type)
+ },
+ changeValue(value) {
+ this.count = value
+ },
+ confirm() {
+ this.matList[this.rowNum].anfme = this.count
+ this.matList[this.rowNum].batch = this.batch
+ this.matList[this.rowNum].memo = this.memo
+ this.matList[this.rowNum].cstmr = this.cstmr
+ this.$refs.revise.close()
+ this.$forceUpdate() // 寮哄埗鍒锋柊
+ },
+ // 鍒楄〃鍙嶉��
+ reChecked() {
+ if (this.matList.length == 0) {
+ return;
+ }
+ var checkArr = []
+ for (var i = 0; i < this.matList.length;i++) {
+ if (this.matList[i].checked == true) {
+ this.$set(this.matList[i],'checked',false)
+ }else{
+ this.$set(this.matList[i],'checked',true)
+ }
+ if (this.matList[i].checked == true) {
+ checkArr.push(this.matList[i].checked)
+ }
+ }
+ if (checkArr.length == this.matList.length) {
+ this.check = true
+ this.checkText = "鍙栨秷鍏ㄩ��"
+ } else {
+ this.check = false
+ this.checkText = "鍏ㄩ��"
+ }
+ uni.vibrateShort();
+ },
+ // 鍒楄〃鍏ㄩ��
+ allChecked(e){
+
+ if (this.check == true) {
+ for (var i = 0; i < this.matList.length;i++) {
+ this.$set(this.matList[i],'checked',false)
+ }
+ this.check = false
+ this.checkText = "鍏ㄩ��"
+ } else {
+ for (var i = 0; i < this.matList.length;i++) {
+ this.$set(this.matList[i],'checked',true)
+ }
+ this.check = true
+ this.checkText = "鍙栨秷鍏ㄩ��"
+ }
+ uni.vibrateShort();
+ },
+ }
+ }
+</script>
+
+<style>
+ /* @import "../../colorui/main.css";
+ @import "../../colorui/icon.css"; */
+ .revise-box {
+ position: relative;
+ width: 500rpx;
+ height: 570rpx;
+ border-radius: 25px;
+ background-color: #fff;
+ border-radius: 20rpx;
+ }
+ .revise-box-top {
+ width: 400rpx;
+ height: 120rpx;
+ border-radius: 25px;
+ }
+ .changeBox {
+ width: 400rpx;
+ height: 100rpx;
+ }
+ .num-box {
+ margin-left: 100rpx;
+ }
+ .revise-box-buttom{
+ margin-left: 190rpx;
+ }
+ .pak-seach-box {
+ background-color: #FFFFFF;
+ margin: 15rpx 15rpx 0rpx 15rpx;
+ width: 96%;
+ height: 150rpx;
+ border-radius: 20rpx;
+ }
+ .box-top{
+ display: block;
+ height: 60rpx;
+ width: 720rpx;
+ }
+ .color-block-blue {
+ background-color: #1E9FFF;
+ display: inline-block;
+ float: left;
+ margin: 15rpx 15rpx 0 15rpx;
+ width: 12rpx;
+ height: 40rpx;
+ border: 5rpx solid #1E9FFF;
+ border-radius: 20rpx;
+ }
+ .title {
+ display: inline-block;
+ float: left;
+ font-size: 34rpx;
+ font-weight: 700;
+ height: 50rpx;
+ line-height: 50rpx;
+ margin-top: 10rpx;
+ }
+ .box-buttom {
+ display: inline-block;
+ background-color: #ededed;
+ width: 65%;
+ height: 60rpx;
+ border-radius: 20rpx;
+ margin: 15rpx 15rpx 0rpx 15rpx;
+ }
+ .box-buttom input {
+ width: 75%;
+ float: left;
+ margin: 8rpx 10rpx 0rpx 25rpx;
+ }
+ .box-buttom .search-icon{
+ width: 60rpx;
+ height: 60rpx;
+ float: right;
+ margin-top: 5rpx;
+ margin-right: 10rpx;
+ }
+ /* .pak-seach-box input {
+ background-color: #ededed;
+ border: 1rpx solid #d8d8d8;
+ display: inline-block;
+ border-radius: 20rpx;
+ float: left;
+ width: 70%;
+ height: 60rpx;
+ line-height: 60rpx;
+ margin: 15rpx 15rpx 0rpx 15rpx;
+ padding-left: 20rpx;
+ } */
+ .pak-seach-box button {
+ background-color: #1E9FFF;
+ color: #ffffff;
+ display: inline-block;
+ float: right;
+ width: 180rpx;
+ height: 60rpx;
+ margin: 15rpx 15rpx 0rpx 15rpx;
+ line-height: 60rpx;
+ }
+ .pakin-btn {
+ background-color: #1E9FFF;
+ }
+ .pak-data-box {
+ background-color: #F1F1F1;
+ margin: 15rpx 15rpx 0rpx 15rpx;
+ width: 96%;
+ height: 70rpx;
+ border-radius: 20rpx;
+ }
+ .pak-data-box .box-top {
+ background-color: #FFFFFF;
+ height: 70rpx;
+ border-radius: 20rpx 20rpx 20rpx 20rpx;
+ }
+ .bg-false {
+ background-color: #FFFFFF;
+ }
+ .bg-true {
+ background-color: #ebebeb;
+ }
+ .data-list {
+ border-bottom: 1px solid #d8d8d8;
+ min-height: 280rpx;
+ margin: 15rpx;
+ border-radius: 20rpx;
+ display: flex;
+ }
+ .data-list:first-child {
+ margin-top: 20rpx;
+ }
+ .data-list:last-child {
+ margin-bottom: 180rpx;
+ }
+ .data-list-left {
+ margin-left: 6%;
+ min-height: 280rpx;
+ color: #676767;
+ width: 500rpx;
+ color: #676767;
+ width: 100%;
+ }
+ .matnr {
+ padding-top: 10rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/index/index2.vue b/pages/index/index2.vue
index 78401de..77b0c2f 100644
--- a/pages/index/index2.vue
+++ b/pages/index/index2.vue
@@ -97,6 +97,12 @@
color: 'blue',
cuIcon: 'safe'
},
+ {
+ title: '鎷f枡',
+ name: 'stockCheckv2',
+ color: 'blue',
+ cuIcon: 'safe'
+ },
// {
// title: '骞充粨搴撳瓨鐩樼偣',
// name: 'manStoCheck',
--
Gitblit v1.9.1