<template> <view class="checkDtl"> <view class="dtl"> <view class=""> 物料编码:{{option.materialCode}} </view> <view class=""> 物料名称:{{option.materialName}} </view> <view class=""> 供应商:{{option.supplierName}} </view> <view class=""> 合同编号:{{option.purchaseBillNo}} <span style="margin-left:30rpx;">批次号:{{option.batchNo}}</span> </view> <view class="" > 待质检:{{option.notCheckNum}} <span style="margin-left:30rpx;color:#C280FF">已质检:{{checkListData.length}}</span> </view> </view> <view class="commons-title" style="margin: 0 30rpx;"> 质检明细 </view> <view class="addQrcode-list" v-for="(i,index) in checkListData" :key="index" @click="toRouter(index)"> <view class="fl" > <view class="code" style="font-size: 24rpx;"> <view class=""> 二维码编号:{{i.qrCode}} </view> <view class=""> 绑定数量:{{i.quantity}} </view> <view :style="i.checkJudgment == 1 ? 'color:rgb(112, 182, 3)' : 'color:rgb(112, 182, 3)'"> 质检结论:{{i.checkJudgment == 1 ? '合格' : '不合格'}} </view> </view> </view> <view class="fr"> <uni-icons type="forward" size="30"></uni-icons> </view> </view> <view style="padding: 0 30rpx;" class="" v-if="dtlData.inStockNum < option.notCheckNum && dtlData.inStockNum == checkListData.length"> <uni-forms ref="baseForm" :modelValue="formData" label-position="top"> <view class="commons-title"> 免检申请 </view> <uni-forms-item label="申请原因"> <uni-easyinput v-model="formData.remark" type="number" placeholder="请输入申请原因" /> </uni-forms-item> </uni-forms> </view> <button size="mini" type="default" style="width: 500rpx;margin: 30rpx auto;display: block;" @click="scanCode(true)"> + 扫码添加 </button> <view class="submit-box" v-if="option.notCheckNum <= checkListData.length || dtlData.inStockNum == checkListData.length"> <view v-if="dtlData.inStockNum < option.notCheckNum"> <p>当前批次剩余数量小于应质检数量</p> <p>完成剩余质检并填写免检原因</p> </view> <button v-if="checkListData.length == dtlData.inStockNum" @click="exemptInspection" style="background: #0066CC;color:#fff;margin-bottom: 30rpx;">免检提交</button> <button v-else @click="checkSubmit" style="background: #0066CC;color:#fff;margin-bottom: 30rpx;">提交</button> </view> </view> </template> <script> import { getInfo } from "@/util/api.js"; export default { data() { return { dtlData:{}, req:{ keyword:null, materialId:null }, option:{}, checkListData:[], formData:{}, } }, onLoad(option) { const v = this v.option = JSON.parse(decodeURIComponent(option.data)) console.log(v.option) v.req.id = v.option.id v.getData() }, methods: { exemptInspection(){ const v = this v.formData.quantitycheckId = v.option.id v.$post('/wx/check/exemptInspection',v.formData).then(res=>{ if(res.code == 200){ uni.showToast({ title:'提交成功,跳转中!' }) setTimeout(()=>{ wx.reLaunch({ url: '/pages/home' }) },2000) } }) }, checkSubmit(){ const v = this v.$post('/wx/check/submit',v.checkListData).then(res=>{ if(res.code == 200){ uni.showToast({ title:'提交成功,跳转中!' }) setTimeout(()=>{ wx.reLaunch({ url: '/pages/home' }) },2000) } }) }, scanCode(_isReload) { const v = this uni.scanCode({ onlyFromCamera: true, success: function(res1) { uni.showToast({ icon: "loading", title: '加载中', duration: 1500 }); v.$post('/wx/common/gerMaterialInfoByQrcode', { qrCode: res1.result }).then(res => { if(!res.data){ uni.showToast({ icon: "error", title: '无效二维码', duration: 2000 }); return } for (var i = 0; i < v.checkListData.length; i++) { if(v.checkListData[i].qrCode == res.data.qrCode){ uni.showToast({ icon: "error", title: '二维码已扫描', duration: 2000 }); return } } if(res.data.batchNo == v.option.batchNo && res.data.purchaseBillNo == v.option.purchaseBillNo){ v.option.quantity = res.data.quantity v.option.qrCode = res1.result uni.navigateTo({ url: '/pages/check/checkSubmit?data=' + encodeURIComponent(JSON.stringify(v.option)) }) }else{ uni.showToast({ icon: "none", title: '此物料不在此批次!', duration: 2000 }); return v.qrCodeList.push(res.data) v.quantitytol =+ res.data.quantity } }) } }); }, reload(){ this.req.keyword = null this.getData() }, getData(){ const v = this v.$post('/wx/check/detail',v.req).then(res=>{ v.dtlData = res.data v.checkListData = res.data.list }) }, toRouter(i){ const v = this v.checkListData[i].id2 = v.checkListData[i].id v.option = Object.assign(v.checkListData[i],v.option) v.option.id = v.option.id uni.navigateTo({ url: '/pages/check/checkSubmit?data=' + encodeURIComponent(JSON.stringify(v.option)) }) // uni.navigateTo({ // url: '/pages/addQrcode/selectQrcode?id=' + i.materialId // }) }, }, } </script> <style lang="less"> .checkDtl { .submit-box { position: fixed; left: 0; right: 0; bottom: 30rpx; padding: 0 30rpx; p{ line-height: 50rpx; text-align: center; } } font-size: 28rpx; .dtl{ padding: 30rpx; border-bottom: 1rpx solid #dcdcdc; } .addQrcode-list { height: 120rpx; display: flex; justify-content: space-between; padding: 15rpx; border-bottom: 1rpx solid #dcdcdc; .fl { display: flex; padding-left: 20rpx; .code { margin-right: 20rpx; } } .fr { line-height: 120rpx; } } } </style>