<template> <view> <view class="contet-up-card"> <view class="contet-up-card-cont"> <view class="contet-up-card-cont-list"> <view>产品名称:</view> <text>{{CyInfo.title}}</text> </view> <view class="contet-up-card-cont-list"> <view>检测日期:</view> <text>{{CyInfo.create_time}}</text> </view> <view class="contet-up-card-cont-list"> <view>规格型号:</view> <text>{{CyInfo.spec}}</text> </view> <picker @change="bindDetectionMode" :value="detectionModeIndex" :range="detectionMode"> <view class="contet-up-card-cont-list"> <view>检测方式:</view> <view class="jcfs-div"> {{detectionMode[detectionModeIndex]}} <image src="../../static/xiala.png"></image> </view> </view> </picker> <view class="contet-up-card-cont-list"> <view>供应商:</view> <text>{{CyInfo.supplier}}</text> </view> <view class="contet-up-card-cont-list"> <view>送货单号:</view> <input type="number" v-model="froms.order_no" /> </view> <view class="contet-up-card-cont-list"> <view>到货数量:</view> <input type="number" v-model="froms.arrival_quantity" /> </view> <view class="contet-up-card-cont-list"> <view>检测数量:</view> <input v-model="froms.number_of_inspections" type="number" /> </view> </view> </view> <view class="contet-up-card" style="margin-top: 20upx;"> <view class="btitle-cc">尺寸检测数据</view> <!-- <view class="contet-up-card-cont"> <view class="contet-up-card-cont-list" v-for="(item,key,index) in froms.dimensional_inspection[0]" :key="index"> <view>尺寸检测数据:</view> <input v-model="froms.dimensional_inspection[0][key]" type="number" /> </view> </view> --> <view class="cc-card" v-for="(item,index) in froms.dimensional_inspection" :key="index"> <view class="pd-ul2"> <view class="pd-title">规格</view> <view class="pd-list"> <text>{{item.size}}</text> </view> <view class="pd-title">最大值</view> <view class="pd-list"> <text>{{item.up}}</text> </view> <view class="pd-title">最小值</view> <view class="pd-list"> <text>{{item.down}}</text> </view> </view> <view class="cc-input-ul"> <view class="cc-input-list"> <view class="title">rule</view> <view class="cc-input"> <input type="number" @input="updateResult($event,index)" :class="item.rule!=''&&(item.rule>item.up||item.rule<item.down)?'borders':''" v-model="item.rule" /> </view> </view> <view class="cc-input-list"> <view class="title">no1</view> <view class="cc-input"> <input type="number" @input="updateResult($event,index)" :class="item.no1!=''&&(item.no1>item.up||item.no1<item.down)?'borders':''" v-model="item.no1" /> </view> </view> <view class="cc-input-list"> <view class="title">no2</view> <view class="cc-input"> <input type="number" @input="updateResult($event,index)" :class="item.no2!=''&&(item.no2>item.up||item.no2<item.down)?'borders':''" v-model="item.no2" /> </view> </view> <view class="cc-input-list"> <view class="title">no3</view> <view class="cc-input"> <input type="number" @input="updateResult($event,index)" :class="item.no3!=''&&(item.no3>item.up||item.no3<item.down)?'borders':''" v-model="item.no3" /> </view> </view> <view class="cc-input-list"> <view class="title">no4</view> <view class="cc-input"> <input type="number" @input="updateResult($event,index)" :class="item.no4!=''&&(item.no4>item.up||item.no4<item.down)?'borders':''" v-model="item.no4" /> </view> </view> <view class="cc-input-list"> <view class="title">no5</view> <view class="cc-input"> <input type="number" @input="updateResult($event,index)" :class="item.no5!=''&&(item.no5>item.up||item.no5<item.down)?'borders':''" v-model="item.no5" /> </view> </view> </view> <view class="pd-ul"> <view class="pd-title">判定</view> <view class="pd-list"> <image :src="item.result=='OK'?'../../static/xz.png':'../../static/wxz.png'"></image> <text>OK</text> </view> <view class="pd-list"> <image :src="item.result=='NG'?'../../static/xz.png':'../../static/wxz.png'"></image> <text>NG</text> </view> </view> </view> </view> <view class="testing"> <view v-for="(item,index) in item" :key="index"> <view class="card"> <view class="testing-list"> <view class="testing-list-title">检测项:</view> <text>{{item.check_item}}</text> </view> <view class="testing-list"> <view class="testing-list-title">检测工具:</view> <input :disabled="true" v-model="item.check_tool" /> </view> <view class="testing-list"> <view class="testing-list-title">抽样标准:</view> <!-- <text class="check-btn" @tap="checkBtn(index)">点击查看</text> --> </view> <view class="cybz-card"> {{item.standard}} </view> <view class="testing-list"> <view class="testing-list-title">检测数量:</view> <view> <input type="number" v-model="item.check_number" /> </view> </view> <picker @change="bindDetermine($event,index)" :value="item.status" :range="determine"> <view class="contet-up-card-cont-list"> <view style="width: 240upx;">判定:</view> <view class="jcfs-div"> {{determine[item.status]}} <image src="../../static/xiala.png"></image> </view> </view> </picker> <view class="testing-list" style="align-items: flex-start;"> <view class="testing-list-title">{{detectionMode[detectionModeIndex]}}结果:</view> <textarea v-model="item.check_result" style="height: 100upx;border: 1upx solid #F1F1F1;width: 400upx;font-size: 26upx;padding-top: 10upx;padding-left: 10upx;" placeholder="请输入抽检结果"></textarea> </view> </view> </view> <picker @change="bindResult" :value="resltIds" :range="result"> <view class="testing-list" style="align-items: center;font-size: 26upx;margin-left: 50upx;"> <view>产品检验结果:</view> <view style="height: 50upx;border: 1upx solid #F1F1F1;width:200upx;font-size: 26upx;padding-top: 10upx;padding-left: 10upx;margin-left: 100upx;"> {{result[resltIds]}} <image style="width: 33upx;height: 33upx;" src="../../static/xiala.png"></image> </view> </view> </picker> <view class="testing-list" v-if="resltIds==1" style="align-items: flex-start;"> <view class="testing-list-title">检验不合格描述:</view> <textarea v-model="froms.result_describe" style="height: 100upx;border: 1upx solid #F1F1F1;width: 400upx;font-size: 26upx;padding-top: 10upx;padding-left: 10upx;" placeholder="请输入抽检结果"></textarea> </view> <view class="submit-btn"> <button type="primary" @tap="submit" :disabled="buttonState==false?true:false" v-if="!check_status&&isMenu('原材料提交')">提交</button> </view> </view> </view> </template> <script> import { materialItem, dictionary, materialCheckForm, rawFormDetail } from "../../api/user.js" import { mapGetters, mapMutations } from 'vuex'; export default { data() { return { info: {}, itemList: [], result: ["合格", "不合格"], resltIds: 0, detectionMode: ["全检", "抽检"], detectionModeIndex: 0, determine: ["合格", "不合格"], determineIndex: 0, ifCheck: false, sendId: -1, CyInfo: {}, item: [], //检验项目列表 crrentIds: 0, type: 0, check_status: 0, jyxItem: {}, buttonState: true, jurisdiction: [], standard: {}, tooList: [], power: [], froms: { result: 1, purchase_id: '', //采购数据ID name: '', //材料名字 rule: '', //规格 check_type: 0, //检测类型:1=抽检,2=全检 supplier: '', //供应商 order_no: '', //送货单号 item: [], arrival_quantity: "", //到货数量 number_of_inspections: "", //检测数量 result_describe: '', //检验不合格描述 dimensional_inspection: [], //尺寸 } }; }, computed: { ...mapGetters(['userInfo', 'roleType']) }, onLoad(e) { this.CyInfo = JSON.parse(decodeURIComponent(e.planInfo)); this.type = this.CyInfo.examine_status this.check_status = this.CyInfo.m_id this.power = this.userInfo.power this.getitem() this.getArr() this.isMenu(); console.log('检验项', this.userInfo) }, methods: { getArr() { if (this.power.length > 0) { let newArr = this.power.map(item => { if (item.children) { item.children.map(items => { this.jurisdiction.push(items.title) return items }) } }) } console.log("xinshuzu", this.jurisdiction) }, isMenu(title) { return this.jurisdiction.includes(title); }, getitem() { materialItem({ name: this.CyInfo.purchase_number }).then(res => { this.itemList = res.item; this.standard = res.standard; this.tooList = res.tool; for (let b in res.item) { this.item.push({ check_item: res.item[b], standard: res.standard[b], check_number: '', status: 0, check_result: '', check_tool: res.tool[b], check: false }) } if (this.check_status) { this.getInfo() } res.size.map(item => { this.froms.dimensional_inspection.push({ rule: "", no1: "", no2: "", no3: "", no4: "", no5: "", size: item.size, up: item.up, down: item.down, result: 'NG' }) }) }) }, updateResult(e, index) { let item = this.froms.dimensional_inspection[index]; if ((item.rule > item.up || item.rule < item.down) || (item.no1 > item.up || item.no1 < item.down) || (item.no2 > item.up || item.no2 < item .down) || (item.no3 > item.up || item.no3 < item .down) || (item.no4 > item.up || item.no4 < item .down) || (item.no5 > item.up || item.no5 < item .down)) { this.froms.dimensional_inspection[index].result = "NG"; } else { this.froms.dimensional_inspection[index].result = "OK"; } }, getInfo() { rawFormDetail({ purchase_id: this.CyInfo.id }).then(res => { this.info = res this.item = this.info.item.map(item => { for (let b in this.standard) { if (b == item.check_item) { item.standard = this.standard[b]; break; } } for (let b in this.itemList) { if (b == item.check_item) { item.check_item = this.itemList[b]; break; } } return item; }) this.froms.dimensional_inspection = this.info.dimensional_inspection this.froms.order_no = this.info.data.order_no this.froms.arrival_quantity = this.info.data.arrival_quantity this.froms.number_of_inspections = this.info.data.number_of_inspections this.resltIds = this.info.data.result - 1 console.log("原材料检验详情", res) }) }, bindDetectionMode: function(e) { this.detectionModeIndex = e.target.value; }, bindDetermine: function(e, index) { this.determineIndex = e.target.value; this.item[index].status = e.target.value }, bindResult(e) { this.resltIds = e.target.value }, checkBtn(index) { this.item[index].check == false ? this.item[index].check = true : this .item[index].check = false; //this.sendId=index }, submit() { this.froms.name = this.CyInfo.title; this.froms.supplier = this.CyInfo.supplier; this.froms.rule = this.CyInfo.spec; this.froms.purchase_id = this.CyInfo.id; this.froms.check_type = this.detectionModeIndex + 1 this.froms.item = this.item; this.froms.result = this.resltIds + 1; this.item.map(item => { delete item.check; delete item.standard }) let params = JSON.parse(JSON.stringify(this.froms)); params.item = params.item.map(item => { for (let b in this.itemList) { if (item.check_item == this.itemList[b]) { item.check_item = b; break; } } return item; }) this.buttonState = false this.$functions.confirm("是否进行此操作?").then(() => { materialCheckForm(params).then(res => { this.$functions.success("提交成功").then(() => { uni.navigateBack() }).catch(res => { this.buttonState = true }) }) }) } } } </script> <style lang="scss"> @import "./index.scss"; </style>