| <template>  | 
|     <view class="has-foot">  | 
|         <form>  | 
|             <view class="cu-form-group margin-top">  | 
|                 <view class="title">质检单</view>  | 
|                 <input placeholder="请扫描质检单" v-model="isptCode" focus></input>  | 
|                 <text class='cuIcon-search text-blue' @click="search"></text>  | 
|             </view>  | 
|   | 
|             <view class="cu-form-group ">  | 
|                 <view class="title">物料码</view>  | 
|                 <input placeholder="请扫描物料码" v-model="barcode"></input>  | 
|                 <text class='cuIcon-search text-blue' @click="scrollTo"></text>  | 
|             </view>  | 
|         </form>  | 
|   | 
|         <view class="padding-lr margin-top-sm">  | 
|             <block v-for="(item, index) in list" :key="index">  | 
|                 <view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.matnrCode===barcode&&'act']"  | 
|                     :ref="item.matnrCode+'ref'">  | 
|   | 
|                     <view class="cu-bar bg-white solid-bottom ">  | 
|                         <view class="action">  | 
|                             <view class="index">  | 
|                                 {{index+1}}  | 
|                             </view>  | 
|                             <view class="text-blue">  | 
|                                 {{`${item.maktx}`}}  | 
|                             </view>  | 
|                         </view>  | 
|                         <view class="action">  | 
|                             <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <text class="text-black">ASN:</text>  | 
|                         </view>  | 
|                         <view class="action">  | 
|                             <text class="text-grey ">{{item.asnCode}}</text>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <text class="text-black">供应商:</text>  | 
|                         </view>  | 
|                         <view class="action">  | 
|                             <text class="text-grey ">{{item.splrName}}</text>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <text class="text-black">供应商批次:</text>  | 
|                         </view>  | 
|                         <view class="action">  | 
|                             <text class="text-grey ">{{item.splrBatch}}</text>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <text class="text-black">收货数量: <text class="text-grey ">{{item.rcptQty}}</text></text>  | 
|                         </view>  | 
|   | 
|                         <view class="content">  | 
|                             <text class="text-black">送货数量: <text class="text-grey ">{{item.dlyQty}}</text></text>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <view class="cu-form-group padding-lr-0">  | 
|                                 <view class="title text-blue">合格数量:</view>  | 
|                                 <input type="number" placeholder="请输入合格数量" v-model="item.safeQty"></input>  | 
|                             </view>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <view class="cu-form-group padding-lr-0">  | 
|                                 <view class="title text-blue">不合格数量:</view>  | 
|                                 <input type="number" placeholder="请输入不合格数量" v-model="item.disQty"></input>  | 
|                             </view>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-item">  | 
|                         <view class="content">  | 
|                             <view class="cu-form-group padding-lr-0">  | 
|                                 <view class="title text-blue">质检结论:</view>  | 
|   | 
|                                 <uni-data-select placement='top' v-model="item.isptResult" :localdata="range"  | 
|                                     placeholder="请输入质检结论"></uni-data-select>  | 
|                             </view>  | 
|                         </view>  | 
|                     </view>  | 
|   | 
|                     <view class="cu-form-group align-start">  | 
|                         <view class="title text-blue">备注</view>  | 
|                         <textarea v-model="item.memo" placeholder="请输入备注"></textarea>  | 
|                     </view>  | 
|   | 
|                     <!--     <view class="cu-form-group">  | 
|                     <uni-file-picker limit="9" title="照片"></uni-file-picker>  | 
|                 </view> -->  | 
|   | 
|   | 
|                 </view>  | 
|             </block>  | 
|         </view>  | 
|         <view class="cu-bar btn-group foot">  | 
|             <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>  | 
|             <button class="cu-btn bg-blue shadow-blur" @click="confirm">提交</button>  | 
|         </view>  | 
|   | 
|     </view>  | 
| </template>  | 
|   | 
| <script>  | 
|     import {  | 
|         request  | 
|     } from '../../common/request.js'  | 
|     import {  | 
|         mapState,  | 
|         mapMutations,  | 
|         mapActions,  | 
|         mapGetters  | 
|     } from 'vuex';  | 
|     export default {  | 
|         data() {  | 
|             return {  | 
|                 barcode: '',  | 
|                 isptCode: '',  | 
|                 list: [],  | 
|                 range: [{  | 
|                     value: '1',  | 
|                     text: '合格'  | 
|                 }, {  | 
|                     value: '2',  | 
|                     text: '不合格'  | 
|                 }, {  | 
|                     value: '3',  | 
|                     text: '待定'  | 
|                 }, {  | 
|                     value: '4',  | 
|                     text: '部分合格'  | 
|                 }],  | 
|             }  | 
|         },  | 
|         computed: {  | 
|             ...mapState('user', ['dynamicFields']),  | 
|         },  | 
|         mounted() {},  | 
|         methods: {  | 
|             async search() {  | 
|                 const {  | 
|                     code,  | 
|                     data,  | 
|                     msg  | 
|                 } = await request('/inspect/query', {  | 
|                     isptCode: this.isptCode,  | 
|                 })  | 
|                 if (code === 200) {  | 
|                     this.list = data  | 
|                 } else {  | 
|                     uni.showToast({  | 
|                         title: msg,  | 
|                         icon: "none",  | 
|                         position: 'top'  | 
|                     })  | 
|                 }  | 
|   | 
|   | 
|             },  | 
|             remove(index) {  | 
|                 this.list.splice(index, 1);  | 
|             },  | 
|             clear() {  | 
|                 this.list = []  | 
|                 this.barcode = ''  | 
|             },  | 
|             scrollTo() {  | 
|                 const ref = this.$refs[`${this.barcode}ref`][0];  | 
|                 uni.pageScrollTo({  | 
|                     scrollTop: ref.$el.offsetTop,  | 
|                     duration: 300  | 
|                 })  | 
|             },  | 
|             async confirm() {  | 
|                 const {  | 
|                     code,  | 
|                     data,  | 
|                     msg  | 
|                 } = await request('/inspect/check/update', this.list)  | 
|                 if (code === 200) {  | 
|                     uni.showToast({  | 
|                         title: '质检成功'  | 
|                     })  | 
|                     this.list = []  | 
|                     this.barcode = ''  | 
|                 } else {  | 
|                     uni.showToast({  | 
|                         title: msg,  | 
|                         icon: "none",  | 
|                     })  | 
|                 }  | 
|   | 
|   | 
|   | 
|             },  | 
|   | 
|         }  | 
|     }  | 
| </script>  | 
|   | 
| <style>  | 
|     .index {  | 
|         border: 1px solid #e54d42;  | 
|         color: #e54d42;  | 
|         border-radius: 50%;  | 
|         display: block;  | 
|         width: 50rpx;  | 
|         height: 50rpx;  | 
|         line-height: 48rpx;  | 
|         text-align: center;  | 
|         margin-right: 20rpx;  | 
|         font-size: 30rpx;  | 
|     }  | 
|   | 
|     .text-blue {  | 
|         color: #0081ff !important;  | 
|   | 
|     }  | 
|   | 
|     .act {  | 
|         border: 1px solid #e54d42;  | 
|     }  | 
|   | 
|     .item {  | 
|         position: relative;  | 
|         display: flex;  | 
|         min-height: 80upx;  | 
|         align-items: center;  | 
|     }  | 
|   | 
|     .uni-file-picker {  | 
|         width: 100%;  | 
|         margin-bottom: 10px;  | 
|     }  | 
|   | 
|     .uni-select__selector {  | 
|         z-index: 999;  | 
|     }  | 
| </style> |