schangxiang@126.com
2024-08-28 6667b0cc7e221402fd50582151457fcf9ac38622
yiqi_pda/pages/outBound/index.vue
@@ -1,19 +1,22 @@
<template>
   <default-header-page-layout ref="page" title="出库执行">
      <view class="page-frame with-action-user-row" :style="{height:pageBodyHeight+'px'}" v-if="pageBodyHeight">
         <action-user-row />
         <scan-input-form-item :inputFocus="inputFocus" v-model="OP80NewCode" class="forma-item" :label="baseTitile"
            :msg="msg" :msg-type="msgType" @search="onSearchContainter" @clear="onClearContainter" />
         <view class="with-action-user-row-page-content">
            <scan-input-form-item  :inputFocus="inputFocus" v-model="OP80NewCode" class="forma-item" label="OP80成品码/工件二维码"  :msg="msg" :msg-type="msgType"
               @search="onSearchContainter" @clear="onClearContainter" />
         <Content @deleteData="deleteData" :workPieceData="workPieceData" />
            <Content @deleteData="deleteData" :workPieceData="workPieceData" />
         </view>
         <modalPwd  @reflesh="reflesh" ref="pwdRef"/>
         <modalPwd @reflesh="reflesh" ref="pwdRef" />
      </view>
      <template v-slot:footer>
         <view class="bottom-btns-row">
            <view class="btn-frame right-btn-frame">
               <u-button :disabled="workPieceData.length<1" type="primary" text="确认出库" @click="outBoundConfirm"></u-button>
               <u-button :disabled="workPieceData.length<1" type="primary" text="确认出库"
                  @click="outBoundConfirm"></u-button>
            </view>
         </view>
      </template>
@@ -26,6 +29,7 @@
   import ScanInputFormItem from './modules/ScanInputFormItem.vue'
   import Content from './modules/content.vue'
   import modalPwd from './modules/modalPwd.vue'
   import Vue from 'vue'
   import {
      parseDic,
      $alert,
@@ -33,9 +37,12 @@
   } from '@/static/js/utils/index.js'
   import {
      getWorkPieceByOP80NewCode,
      outBoundWorkPiece
      outBoundWorkPiece,
      getOutBoundWorkPieceInfoCount
   } from '@/api/outBound/index.js'
   import {listbycode} from '@/api/common/index.js'
   import {
      listbycode
   } from '@/api/common/index.js'
   export default {
      name: 'baseInPage',
      components: {
@@ -47,39 +54,98 @@
      },
      data() {
         return {
            barHeight: '',
            ckNumToday: "0", //今天总出库数
            baseTitile: '扫描成品码/工件二维码', //扫描成品码/工件二维码
            title: '',
            pageBodyHeight: 0,
            initInterVal: null,
            myInterval: null,
            msg: '',
            msgType: 'error',
            OP80NewCode: '',
            workPieceData:[],
            workPieceData: [],
            workPieceStatus: [],
            inputFocus:true,
            inputFocus: true,
            // codeLength:1
         }
      },
      onLoad() {
         var _this = this;
         _this._getOutBoundWorkPieceInfoCount();
         //不再循环读
         /*
         this.myInterval = setInterval(function() {
            _this._getOutBoundWorkPieceInfoCount();
         }, 1000 * 10);
         //*/
         //this.myInterval=setInterval(this.myFun(), 3000);
      },
      methods: {
         // 获取工件信息
         async _getOutBoundWorkPieceInfoCount(OP80NewCode) {
            try {
               let {
                  data
               } = await getOutBoundWorkPieceInfoCount(null)
               this.ckNumToday = data;
            } catch (e) {}
            this.setMsg();
         },
         // 获取工件信息
         async onSearchContainter(OP80NewCode) {
            //debugger
            if (OP80NewCode.length != 21) {
               this.initFocus(100);
               // uni.showToast({
               //    title: '工件码或成品码长度不正确',
               //    icon: 'error',
               //    duration: 2000,
               //    mask: true
               // });
               return;
            }
            this.inputFocus = false
            const param = {
               OP80NewCode: OP80NewCode
            }
            try{
               let {data}=await getWorkPieceByOP80NewCode(param)
               if(!this.workPieceData.some(item=>item.workPieceID==data.workPieceID)) {
            try {
               let data={};
               data.addTime = new Date();
               data.workPieceID=OP80NewCode;
               data.oP80NewCode=OP80NewCode;
               if (!this.workPieceData.some(item => item.workPieceID == data.workPieceID)) {
                  data.addTime = new Date();
                  this.workPieceData.push(data)
               }
               console.log(this.workPieceData,'dsts');
               this.inputFocus=false
               setTimeout(()=>{
                  this.inputFocus=true
               },100)
            }catch(e){
               //顺序调转,排序
               this.workPieceData.sort((a, b) => b.addTime - a.addTime);
               this.OP80NewCode = ''; //每次刷完就清空输入框 【Editby shaocx,2024-06-12】
               this.initFocus(100);
               //console.log(this.workPieceData,'dsts');
               // setTimeout(()=>{
               //    this.OP80NewCode = '' ;//每次刷完就清空输入框 【Editby shaocx,2024-06-12】
               //    this.inputFocus=true
               // },100)
            } catch (e) {
               //debugger
               this.initFocus(100);
               //TODO handle the exception
               console.log(e);
            }
            //this.msg = " 扫码数:"+this.workPieceData.length+"    今日出库数:";
            this.setMsg();
         },
         setMsg() {
            this.msg = " 扫码数:" + this.workPieceData.length + "    今日出库数:" + this.ckNumToday;
         },
         initFocus(num) {
            setTimeout(() => {
               this.OP80NewCode = ''; //每次刷完就清空输入框 【Editby shaocx,2024-06-12】
               this.inputFocus = true
            }, num)
         },
         // 获取扫码长度
         // async listbycode(){
@@ -90,40 +156,54 @@
         //       //TODO handle the exception
         //       console.log(e);
         //    }
         // },
         onClearContainter() {
            this.OP80NewCode = ''
         },
         deleteData(opt){
            this.workPieceData=this.workPieceData.filter(item=>item.workPieceID!=opt.workPieceID)
         deleteData(opt) {
            this.workPieceData = this.workPieceData.filter(item => item.workPieceID != opt.workPieceID)
            this.setMsg();
         },
         reflesh(){
         reflesh() {
            this.OP80NewCode = ''
            this.workPieceData=[]
            this.workPieceData = []
            setTimeout(() => {
               this._getOutBoundWorkPieceInfoCount();
               this.setMsg();
            }, 1000)
         },
         outBoundConfirm(){
         outBoundConfirm() {
            this.$refs.pwdRef.showModal(this.workPieceData)
            /*
            // 存在非成品
            const flag=this.workPieceData.some(item=>item.workPieceState!=10)
            if(flag) {
            const flag = this.workPieceData.some(item => item.workPieceState != 10)
            if (flag) {
               uni.showModal({
                  title:'提示',
                  content:'当前工件存在非成品,确定强制出库吗?',
                  success:(value)=>{
                     const {confirm,cancel}=value
                     if(confirm) {
                  title: '提示',
                  content: '当前工件存在非成品,确定强制出库吗?',
                  success: (value) => {
                     const {
                        confirm,
                        cancel
                     } = value
                     if (confirm) {
                        this.$refs.pwdRef.showModal(this.workPieceData)
                     }
                  }
               })
            }else{
            } else {
               this.$refs.pwdRef.showModal(this.workPieceData)
            }
            
            //*/
         },
         /* 页面初始化获取页面body高度的定时器 */
         startInitInterval(callback) {
            this.initInterVal = setInterval(() => {
               //console.log('bbb')
               if (this.pageBodyHeight) {
                  this.clearInitInterval()
                  callback && callback()
@@ -135,25 +215,71 @@
         /* 清除定时器 */
         clearInitInterval() {
            try {
               //alert('执行');
               clearInterval(this.initInterVal)
               this.initInterVal = null
            } catch (e) {
               //TODO handle the exception
            }
         },
         clearInitInterval2() {
            try {
               clearInterval(this.myInterval)
               this.myInterval = null
            } catch (e) {
               //TODO handle the exception
            }
         },
         comfirmUpdate() {
            this.$refs.pwdRef.showModal(this.barDetail);
         },
         myFun() {
            console.log('aaaa')
         }
      },
      onReady() {
         this.setMsg();
         this.startInitInterval(() => {
            /* 页面初始化后需要执行的代码在这边调用 */
            // this.listbycode()
         })
      },
      mounted() {
         // 设置fixed定位
         //this.barHeight = Vue.prototype.CustomBar || 45
         this.barHeight = Vue.prototype.CustomBar
      },
      onUnload() {
         //alert(11); 页面离开时
         this.clearInitInterval()
      }
         this.clearInitInterval2();
      },
      //监听原生返回键
      onBackPress(e) {
         // 此处一定要return为true,否则页面不会返回到指定路径
         if (1 != 1) {
            return false //可返回
         } else {
            uni.showModal({
               title: '提示',
               content: '是否确认返回?',
               showCancel: true,
               cancelColor: '#333333',
               success: (res => {
                  if (res.confirm) {
                     uni.redirectTo({
                        url: '/pages/home/index'
                     })
                  } else if (res.cancel) {
                  }
               })
            });
            return true
         }
      },
   }
</script>