loulijun2021
2023-10-31 4a0e13df7532a226cd1f951b3ace001969d2ee88
pages/mjgl/mjrk.vue
@@ -1,8 +1,398 @@
<template>
   <view>
      <page-nav title="模具入库"></page-nav>
      <view v-show="topContent.length===0">
         <div class="sacnBody">
            <div class="scanImg" @click="topScanClick"></div>
            <div class="scanText">扫描模具编码</div>
         </div>
      </view>
      <view v-show="topContent.length!==0">
         <view class="mainContent">
            <view>
               <u-gap height="10" bgColor="#eff0f1"></u-gap>
               <view class="head" style="max-height: 410rpx;overflow:scroll;">
                  <view class="head_block">
                     <view class="head_left">
                        <view class="head_bar"></view>
                        <view class="head_title">
                           模具信息
                        </view>
                     </view>
                     <view class="marginRight20">
                        <u-icon name="scan" @click="topScanClick" color="red" size="24"></u-icon>
                     </view>
                  </view>
                  <view class="marginTop20 marginLeft20 marginRight20 flex_column">
                     <view class="marginBottom20 flex_between" v-for="item in topContent" :key="item.code">
                        <view style="display: flex;">
                           <view class="flex_column titleFont">
                              <view>模具编码:</view>
                              <view>模具名称:</view>
                              <view>规格型号:</view>
                              <view>预计寿命:</view>
                              <view>剩余寿命:</view>
                           </view>
                           <view class="flex_column contentFont">
                              <view>{{item.code}}</view>
                              <view>{{item.name}}</view>
                              <view>{{item.spec?item.spec:'/'}}</view>
                              <view>{{item.surp_life}}</view>
                              <view>{{item.resi_life}}</view>
                           </view>
                        </view>
                     </view>
                  </view>
               </view>
               <u-gap height="10" bgColor="#eff0f1"></u-gap>
               <view class="head" style="padding-bottom: 10rpx;">
                  <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                     <view class="head_left" style="align-items: center;">
                        <view class="head_bar" style="margin-top: 0rpx;"></view>
                        <view class="head_title">
                           库位信息
                        </view>
                        <view style="margin-left: 20rpx;">
                           {{selectValue.name}}
                        </view>
                     </view>
                     <view class="marginRight20" style="display: flex;">
                        <u-button @click="show = true" type='primary' size="small" plain class="marginRight20"
                           shape='circle'>请选择</u-button>
                        <u-icon name="scan" @click="centerScanClick" color="red" size="24"></u-icon>
                     </view>
                     <!--    <view class="marginRight20 marginBottom10">
                        <u-button @click="show = true" type='primary' size="small" plain
                           shape='circle'>请选择</u-button>
                     </view> -->
                     <!-- <view class="marginRight20 marginBottom10" v-if='ckkwArr.length===0'>
                        暂无空余设备,请先下机
                     </view> -->
                  </view>
                  <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                     <view class="head_left" style="align-items: center;">
                        <view class="head_bar" style="margin-top: 0rpx;"></view>
                        <view class="head_title">
                           所属仓库
                        </view>
                        <view style="margin-left: 20rpx;">
                           {{belongCk.text}}
                        </view>
                     </view>
                  </view>
               </view>
               <u-gap height="10" bgColor="#eff0f1"></u-gap>
               <view class="head" style="padding-bottom: 10rpx;">
                  <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                     <view class="head_left">
                        <view class="head_bar"></view>
                        <view class="head_title">
                           入库描述
                        </view>
                     </view>
                  </view>
                  <view class='inputClass  contentFont' style="margin: 0 20rpx; width: 95%;">
                     <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='80'
                        v-model="descMessage">
                     </u--textarea>
                  </view>
               </view>
            </view>
         </view>
         <view class="footer">
            <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
               :disabled="isDisabled" @click="submit" text="确认提交">
            </u-button>
         </view>
      </view>
      <u-action-sheet :actions="kwArr" @select="selectClick" round='20' :closeOnClickOverlay='true'
         @close="show=false" :closeOnClickAction="true" :safeAreaInsetBottom='true' :show="show"></u-action-sheet>
   </view>
</template>
<script>
   import {
      MouldInWareHouseQrCodeData,
      WareHouseLocation,
      MouldInWareHouseSave
   } from '../../config/api.js'
   export default {
      onLoad(option) {
         //   const _this = this
         // uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器
         // uni.$on('scancodedate', function(content) {
         //    console.log("扫描到的内容为:", content)
         //    _this.getMouldInWareHouseQrCodeData(content)
         // })
      },
      onPullDownRefresh() {
         setTimeout(() => {
            this.init(() => {
               uni.stopPullDownRefresh();
            })
         }, 1000);
      },
      data() {
         return {
            topRightMessageCount: 0,
            isDisabledSubmitButton: false,
            topContent: [],
            scanContent: '',
            selectValue: '',
            descMessage: '',
            show: false,
            ckkwArr: [],
            kwArr: [],
            belongCk: '',
            isDisabled: true
         }
      },
      created() {
         // this.getMouldInWareHouseQrCodeData('001')
      },
      mounted() {
         this.init()
         this.getWareHouseLocation()
      },
      methods: {
         init() {
            uni.stopPullDownRefresh();
         },
         async getWareHouseLocation() {
            const {
               data: res
            } = await WareHouseLocation()
            this.ckkwArr = res
            this.kwArr = []
            this.ckkwArr.forEach(i => {
               if (i.children && i.children.length > 0) {
                  i.children.forEach(j => {
                     this.kwArr.push({
                        code: j.value,
                        name: j.text
                     })
                  })
               }
            })
         },
         selectClick(val) {
            this.selectValue = val
            this.belongCk = ''
            this.ckkwArr.forEach(i => {
               if (i.children && i.children.length > 0) {
                  i.children.forEach(j => {
                     if (j.value === val.code) {
                        this.belongCk = i
                        this.isDisabled = false
                     }
                  })
               }
            })
            // console.log(this.belongCk, 123)
         },
         // 扫码工位  的扫码框点击
         topScanClick() {
            // if (this.topContent.length > 0) {
            //    return uni.$u.toast('请先提交此维修申请!')
            // }
            let that = this;
            uni.scanCode({
               onlyFromCamera: true,
               // scanType: ['barCode', 'qrCode'],
               scanType: ['qrCode'],
               success: function(res) {
                  console.log('条码类型:' + res.scanType);
                  console.log('条码内容:' + res.result);
                  that.scanContent = res.result;
                  let flag = false
                  that.topContent.forEach(item => {
                     if (item.code === res.result) {
                        flag = true
                     }
                  })
                  if (flag) {
                     that.$u.toast('此条码已扫描,已在列表中!')
                  } else {
                     //处理扫码事件
                     that.getMouldInWareHouseQrCodeData(that.scanContent);
                  }
               },
               complete: function(res) {
               },
               fail: function(res) {
                  console.log('条码类型:' + res.scanType);
                  console.log('条码内容:' + res.result);
               }
            });
         },
         centerScanClick() {
            let that = this;
            uni.scanCode({
               onlyFromCamera: true,
               // scanType: ['barCode', 'qrCode'],
               scanType: ['qrCode'],
               success: function(res) {
                  console.log('条码类型:' + res.scanType);
                  console.log('条码内容:' + res.result);
                  that.ckkwArr.forEach(i => {
                     if (i.children && i.children.length > 0) {
                        i.children.forEach(j => {
                           if (j.value === res.result) {
                              that.belongCk = i
                              console.log(j);
                              that.selectValue = {
                                 code: j.value,
                                 name: j.text
                              }
                              that.isDisabled = false
                           }
                        })
                     }
                  })
               },
               complete: function(res) {
               },
               fail: function(res) {
                  console.log('条码类型:' + res.scanType);
                  console.log('条码内容:' + res.result);
               }
            });
         },
         // 获取模具信息
         async getMouldInWareHouseQrCodeData(val) {
            const data = {
               mouldcode: val
            }
            const res = await MouldInWareHouseQrCodeData(data)
            if (res.code === '200') {
               this.topContent = []
               this.topContent.unshift(res.data[0])
            }
         },
         // 确认提交按钮
         async submit() {
            const data = {
               mouldcode: this.topContent[0].code,
               warehousecode: this.belongCk.value,
               locationcode: this.selectValue.code,
               description: this.descMessage
            }
            console.log(JSON.stringify(data))
            this.isDisabledSubmitButton = true
            const res = await MouldInWareHouseSave(data)
            if (res.code === '200') {
               uni.$u.toast('提交成功!')
               this.isDisabledSubmitButton = false
               this.topContent = []
               this.selectValue = ''
               this.belongCk = ''
               this.descMessage = ''
            }
         },
      }
   }
</script>
<style>
<style lang="scss" scoped>
   @import url('@/style/global.css');
   ::v-deep .uicon-arrow-left>span {
      display: block;
   }
</style>
<style scoped>
   /deep/.u-action-sheet__item-wrap {
      overflow: auto;
      max-height: 50vh;
   }
</style>