| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="车间订单号" prop="moNumber"> |
| | | <el-form-item label="车间订单号" prop="moNo"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.moNumber" placeholder="请输入车间订单号" autocomplete="off" > |
| | | v-model="processInspectVo.moNo" placeholder="请输入车间订单号" autocomplete="off" > |
| | | <!-- <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | :disabled="resultVal!=null" |
| | | @click="queryCode"></el-button> --> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | |
| | | </el-tooltip> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="工单" prop="operationTaskId"> |
| | | <el-select style="width: 100%" :disabled="processInspectVo.id != null" |
| | |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <div class="finishedProduct-detail"> |
| | | <el-row style="width:100%;z-index: 10;height:30px;"> |
| | | <el-col :span="12" class="inspectionProject_span">检验项目</el-col> |
| | | <el-col v-if="resultVal == null" :span="12" class="inspectionProject_span" style="text-align: right;"> |
| | | <el-button size="mini" @click="clickAddInspectionColumn()">添加检测值列</el-button> |
| | | <el-button size="mini" @click="clickDeleteInspectionColumn()">删除检测值列</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table border |
| | | :data="inspectionItems" |
| | | height="400" |
| | | :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | row-key="iid" |
| | | default-expand-all style="width: 100%" |
| | | ref="table" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column type="index" label="序号" show-overflow-tooltip width="60"></el-table-column> |
| | | <el-table-column label="项目" prop="father" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="iname" label="指标" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="iunit" label="单位" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="140"></el-table-column> |
| | | <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" |
| | | label="检测值" width="140" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.empiricalValueAddss[index]" |
| | | @blur="changeState(scope.row,true)" placeholder="请输入检测值"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | <el-col v-else> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select style="width: 100%;" @change="changeState(scope.row)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择"> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | </template> |
| | | <div> |
| | | <el-tabs class="finishedProduct-detail" @tab-click="tabsClick"> |
| | | <el-tab-pane label="检验项目"> |
| | | <el-row> |
| | | <el-col v-if="resultVal == null" :span="24" class="inspectionProject_span" style="text-align: right;"> |
| | | <el-button size="small" |
| | | type="primary" |
| | | v-if="inspectionItems&&inspectionItems.length>0" |
| | | @click="saveTable()">保存</el-button> |
| | | <el-button size="mini" @click="clickAddInspectionColumn()">添加检测值列</el-button> |
| | | <el-button size="mini" @click="clickDeleteInspectionColumn()">删除检测值列</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-table border |
| | | :data="inspectionItems" |
| | | height="400" |
| | | :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }" |
| | | :cell-style="{ textAlign: 'center' }" |
| | | row-key="iid" |
| | | default-expand-all style="width: 100%" |
| | | ref="table" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column type="index" prop="parentIndex" label="序号" width="60"> |
| | | <template scope="scope"> |
| | | <span v-if="scope.row.isIndex">{{scope.row.parentIndex}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="项目" prop="father" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="iname" label="指标" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="iunit" label="单位" show-overflow-tooltip width="140"></el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="140"></el-table-column> |
| | | <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" |
| | | label="检测值" width="140" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.empiricalValueAddss[index]" |
| | | @blur="changeState(scope.row,true)" placeholder="请输入检测值"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | <el-col v-else> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select style="width: 100%;" @change="changeState(scope.row)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择"> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="200"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="resultVal != null && scope.row.iname != null" |
| | | v-text="scope.row.ename"></span> |
| | | <div v-else> |
| | | <el-select style="width:60%" v-model="scope.row.eId" v-if="scope.row.iname != null" |
| | | filterable @change="updateDevice(scope.row, scope.$index)"> |
| | | <el-option v-for="(item, index) in deviceList" :key="index" :value="item.id" |
| | | :label="item.code + '-' + item.name"></el-option> |
| | | </el-select> |
| | | <el-button |
| | | size="small" |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | | v-if="scope.row.iname != null" |
| | | @click="codeDevice(scope.row,scope.$index)"></el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column show-overflow-tooltip |
| | | label="检验描述" width="140" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.inote" |
| | | @blur="changeState(scope.row)" placeholder="请输入检验描述"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.inote"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="结论" fixed="right" min-width="100"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.iname != null"> |
| | | <span style="color: #34BD66;" v-if="scope.row.iresult == 1">合格</span> |
| | | <span style="color: #E84738;" v-else-if="scope.row.iresult == 0">不合格</span> |
| | | <span v-else>暂无结论</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="附件上传" type="card"> |
| | | <div style="display: flex;justify-content:flex-end;"> |
| | | <div></div> |
| | | </div> |
| | | <div |
| | | v-loading="progrecessFileLoading" |
| | | element-loading-text="请稍等,文件上传中" |
| | | > |
| | | <el-upload |
| | | :disabled="processInspectVo.proInsNo==null || (resultVal!=null && resultVal!='')" |
| | | drag |
| | | ref="upload" |
| | | action="/mes/rawInsProduct/upload" |
| | | :auto-upload="true" |
| | | :headers="headers" |
| | | :before-upload="submitUpload" |
| | | :on-success="uploadSuccess" |
| | | :data="paramData" |
| | | :with-credentials="true" |
| | | :show-file-list="false" |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text"> |
| | | 将文件拖到此处,或<em>点击上传</em> |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | <el-table :data="processConfigFileTableData" height="260px"> |
| | | <el-table-column |
| | | prop="rawInsNo" |
| | | align="center" |
| | | width="120" |
| | | label="原材料检验编号" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="originalFileName" |
| | | align="center" |
| | | label="原文件名" |
| | | width="200" |
| | | ></el-table-column> |
| | | <el-table-column prop="fileName" align="center" label="文件后缀"></el-table-column> |
| | | <el-table-column prop="createUser" align="center" label="上传人"></el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | | align="center" |
| | | label="上传时间" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column prop="updateUser" align="center" label="更新人"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="updateTime" |
| | | align="center" |
| | | label="更新时间" |
| | | show-overflow-tooltip |
| | | ></el-table-column> |
| | | <el-table-column align="center" label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click="delProcessConfigFile(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | :disabled="(resultVal!=null && resultVal!='')" |
| | | >删除</el-button |
| | | > |
| | | <el-button |
| | | @click="downloadProcessConfigFile(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | >下载</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="附件"> |
| | | <el-table :data="configFileTableData" height="400px"> |
| | | <el-table-column |
| | | prop="orderNumber" |
| | | align="center" |
| | | label="订单号" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="200"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="resultVal != null && scope.row.iname != null" |
| | | v-text="scope.row.ename"></span> |
| | | <div v-else> |
| | | <el-select style="width:60%" v-model="scope.row.eId" v-if="scope.row.iname != null" |
| | | filterable @change="updateDevice(scope.row, scope.$index)"> |
| | | <el-option v-for="(item, index) in deviceList" :key="index" :value="item.id" |
| | | :label="item.code + '-' + item.name"></el-option> |
| | | </el-select> |
| | | <el-button |
| | | size="small" |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | | v-if="scope.row.iname != null" |
| | | @click="codeDevice(scope.row,scope.$index)"></el-button> |
| | | </div> |
| | | </template> |
| | | <el-table-column |
| | | prop="originalFileName" |
| | | align="center" |
| | | label="原文件名" |
| | | width="200" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column show-overflow-tooltip |
| | | label="检验描述" width="140" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.inote" |
| | | @blur="changeState(scope.row)" placeholder="请输入检验描述"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.inote"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | </template> |
| | | <el-table-column prop="fileName" align="center" label="文件后缀"> |
| | | </el-table-column> |
| | | <el-table-column label="结论" fixed="right" min-width="100"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.iname != null"> |
| | | <span style="color: #34BD66;" v-if="scope.row.iresult == 1">合格</span> |
| | | <span style="color: #E84738;" v-else-if="scope.row.iresult == 0">不合格</span> |
| | | <span v-else>暂无结论</span> |
| | | </div> |
| | | </template> |
| | | <el-table-column prop="createUser" align="center" label="上传人"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | | align="center" |
| | | label="上传时间" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="updateUser" align="center" label="更新人"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="updateTime" |
| | | align="center" |
| | | label="更新时间" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column fixed="right" align="center" label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click="downloadProcessConfigFiles(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | >下载</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <div class="finishedProduct-result"> |
| | | <el-row style="width:100%"> |
| | |
| | | <el-button type="primary" @click="deviceCode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="不合格信息" |
| | | :visible.sync="unqualified" |
| | | width="30%"> |
| | | <div style="height: 30vh;width: 100%;"> |
| | | <el-form :model="ruleForm" :rules="unqualifiedRules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> |
| | | <el-form-item label="不合格数量" prop="number"> |
| | | <el-input v-model="ruleForm.number"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="批次号" prop="outBatchNo"> |
| | | <el-select v-model="ruleForm.outBatchNo" multiple placeholder="请选择批次号" style="width: 100%;" :multiple-limit="Number(ruleForm.number)"> |
| | | <el-option :label="m" :value="m" v-for="(m,i) in outBatchNoList" :key="i"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="unqualified = false">取 消</el-button> |
| | | <el-button type="primary" :loading="loading" @click="handleSubmit">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <processPart :paramObj="paramObj" :currshowlist.sync="workshop" /> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { |
| | | chooseMater, |
| | |
| | | queryById, |
| | | updateDeviceBypppId, |
| | | updateProcessInsProduct, |
| | | updateProcessInsProduct2, |
| | | updateProcessInspectsById, |
| | | selOutBatchNo, |
| | | } from '@/api/quality/processInspect' |
| | | import { |
| | | getProcessConfigFiles, |
| | | deleteProcessConfigFile, |
| | | downloadProcessConfigFile |
| | | } from '@/api/quality/attachment' |
| | | import { getProcessConfigFile } from '@/api/plan/manufacturingorder' |
| | | import processPart from '@/views/common/processinspect-part' |
| | | import { selectDevice } from '@/api/quality/processInspect' |
| | | import qrCodeApp from '@/views/common/qrCodeApp' |
| | | import { validatePositiveInteger } from '@/util/validate' |
| | | import { getStore } from '@/util/store' |
| | | import * as customerorder from '@/api/plan/customerorder' |
| | | export default { |
| | | components:{ |
| | | qrCodeApp |
| | | qrCodeApp,processPart |
| | | }, |
| | | data() { |
| | | return { |
| | | outBatchNoList:[], |
| | | unqualifiedInfo:null, |
| | | loading:false, |
| | | ruleForm:{ |
| | | number:'', |
| | | outBatchNo:[] |
| | | }, |
| | | unqualifiedRules:{ |
| | | number: [ |
| | | { required: true, message: '请输入不合格数量', trigger: 'blur' }, |
| | | { pattern: /^\d+$/, message: '请输入数字', trigger: 'blur' } |
| | | ], |
| | | outBatchNo: [ |
| | | { required: true, message: '请选择批次号', trigger: 'change' }, |
| | | ], |
| | | }, |
| | | unqualified:false, |
| | | progrecessFileLoading: false, |
| | | processConfigFileTableData: [], |
| | | headers: { |
| | | Authorization: 'Bearer ' + getStore({ name: 'access_token' }) |
| | | }, |
| | | paramData: { |
| | | rawInsNo: '', |
| | | lineNumber: '', |
| | | type: 2 |
| | | }, |
| | | paramObj:{}, |
| | | qrcode: false, |
| | | row: null, |
| | | proIndex: 0, |
| | | deviceCode: false, |
| | | rules: { |
| | | moNumber: [{required:true,message:'车间订单号不能为空',trigger:'blur'}], |
| | | moNo: [{required:true,message:'车间订单号不能为空',trigger:'blur'}], |
| | | quantity: [{required:true,validator: validatePositiveInteger,trigger:'blur'}], |
| | | operationTaskId: [{required:true,message: '请选择工单',trigger:'change'}], |
| | | }, |
| | |
| | | resultVal: null, |
| | | technologyList: [], |
| | | deviceList: [], |
| | | workshop:false,//车间弹窗 |
| | | hasChildren: true, |
| | | optionsSamplename: [], |
| | | // 添加列 |
| | |
| | | empiricalValueAddMaxNumber: 0, |
| | | processInspectVo: { |
| | | id: null, |
| | | moNumber: null, |
| | | moNo: null, |
| | | proInsNo: null, |
| | | material: null, |
| | | materialCode: null, |
| | |
| | | }, |
| | | inspectionItems: [], // 新增检验项目表格 |
| | | inspectionResultForm: [], |
| | | configFileTableData:[], |
| | | dataForm:null |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | val == undefined ? this.resultVal = null : this.resultVal = val |
| | | } |
| | | this.init() |
| | | this.selOutBatchNo() |
| | | }, |
| | | methods: { |
| | | selOutBatchNo(){ |
| | | selOutBatchNo({id:this.$route.query.id}).then((res)=>{ |
| | | this.outBatchNoList = res.data.data |
| | | }) |
| | | }, |
| | | getProcessConfigFile(){ |
| | | getProcessConfigFile({ |
| | | orderNumber: this.dataForm.orderNumber, |
| | | lineNumber: this.dataForm.customerNo |
| | | }).then((res)=>{ |
| | | this.configFileTableData = res.data.data |
| | | }) |
| | | }, |
| | | downloadProcessConfigFiles(row){ |
| | | customerorder.downloadProcessConfigFile( |
| | | row.fileName, |
| | | row.bucketName, |
| | | row.originalFileName |
| | | ) |
| | | }, |
| | | saveTable(){ |
| | | let processInsProduct = []; |
| | | this.inspectionItems.forEach((item) => { |
| | | if(item.children&&item.children.length>0){ |
| | | item.children.forEach((child)=>{ |
| | | let obj = {} |
| | | obj.id = child.iid; |
| | | obj.eId = child.eId; |
| | | obj.note = child.inote; |
| | | obj.inspectionValue = child.empiricalValueAddss.join(','); |
| | | obj.required = child.required; |
| | | processInsProduct.push(obj) |
| | | }) |
| | | } |
| | | }) |
| | | if(processInsProduct.length>0){ |
| | | updateProcessInsProduct2(processInsProduct).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.$message.success("更新成功") |
| | | } else { |
| | | this.$message.error("更新失败") |
| | | } |
| | | this.init() |
| | | }) |
| | | } |
| | | }, |
| | | delProcessConfigFile(row) { |
| | | this.$confirm('是否删除该附件', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | }).then(function() { |
| | | return deleteProcessConfigFile(row.id) |
| | | }).then((data) => { |
| | | this.getConfigFiles() |
| | | }) |
| | | }, |
| | | getConfigFiles() { |
| | | const param = { |
| | | no: this.processInspectVo.rawInsNo, |
| | | lineNumber: this.processInspectVo.id, |
| | | type: 2 |
| | | } |
| | | getProcessConfigFiles(param).then((res) => { |
| | | this.processConfigFileTableData = res.data.data |
| | | }) |
| | | }, |
| | | downloadProcessConfigFile(row) { |
| | | downloadProcessConfigFile({ |
| | | bucket: row.bucketName, |
| | | fileName: row.fileName, |
| | | originalFileName: row.originalFileName |
| | | }) |
| | | }, |
| | | submitUpload() { |
| | | this.paramData.no = this.processInspectVo.proInsNo |
| | | this.paramData.lineNumber = this.processInspectVo.id |
| | | this.progrecessFileLoading = true |
| | | }, |
| | | uploadSuccess() { |
| | | this.progrecessFileLoading = false |
| | | this.getConfigFiles() |
| | | }, |
| | | tabsClick(tab,even){ |
| | | if(tab.index == 1){ |
| | | if(this.processInspectVo.proInsNo==null){ |
| | | this.$message.error("请先保存过程检验信息") |
| | | return |
| | | } |
| | | this.getConfigFiles(); |
| | | } |
| | | }, |
| | | queryCode(){ |
| | | this.workshop = true |
| | | }, |
| | | cancelCodeDialog(){ |
| | | this.qrcode = false |
| | | }, |
| | |
| | | let obj=JSON.parse(data) |
| | | let info={"code":obj["moNo"]} |
| | | if(info.code){ |
| | | this.processInspectVo.moNumber = obj["moNo"] |
| | | this.processInspectVo.moNo = obj["moNo"] |
| | | this.selectInfoByOrderId() |
| | | }else{ |
| | | this.$message.warning('未识别出车间订单号信息!'); |
| | |
| | | } |
| | | }, |
| | | codeDevice(row,index){ |
| | | this.row=row |
| | | this.row=row |
| | | this.deviceCode =true |
| | | this.$refs.codeDeviceCompont.openCamera() |
| | | this.proIndex=index |
| | |
| | | number: 0, |
| | | result: this.inspectionResultForm[0].result |
| | | } |
| | | this.unqualifiedInfo = obj; |
| | | if (pro > 0) { |
| | | this.$prompt('请输入不合格数量', '不合格数量', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | inputPattern: /^\d+$/, |
| | | inputErrorMessage: '请输入正确数字格式' |
| | | }).then(({ value }) => { |
| | | obj.number = value |
| | | updateProcessInspectsById(obj).then(res => { |
| | | let data = res.data.data |
| | | if (data) { |
| | | if (data.indexOf("成功") > 0) { |
| | | this.$message.success(data); |
| | | this.checkTestState() |
| | | } else { |
| | | this.$message.warning(data); |
| | | } |
| | | return |
| | | } |
| | | }); |
| | | }).catch(() => { }); |
| | | this.unqualified = true; |
| | | this.$refs.ruleForm.resetFields(); |
| | | // this.$prompt('请输入不合格数量', '不合格数量', { |
| | | // confirmButtonText: '确定', |
| | | // cancelButtonText: '取消', |
| | | // inputPattern: /^\d+$/, |
| | | // inputErrorMessage: '请输入正确数字格式' |
| | | // }).then(({ value }) => { |
| | | // obj.number = value |
| | | // updateProcessInspectsById(obj).then(res => { |
| | | // let data = res.data.data |
| | | // if (data) { |
| | | // if (data.indexOf("成功") > 0) { |
| | | // this.$message.success(data); |
| | | // this.checkTestState() |
| | | // } else { |
| | | // this.$message.warning(data); |
| | | // } |
| | | // return |
| | | // } |
| | | // }); |
| | | // }).catch(() => { }); |
| | | } else { |
| | | updateProcessInspectsById(obj).then(res => { |
| | | let data = res.data.data |
| | |
| | | }); |
| | | } |
| | | this.init() |
| | | }, |
| | | handleSubmit(){ |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | if(this.ruleForm.outBatchNo.length!=this.ruleForm.number){ |
| | | this.$message.error(`请选择${this.ruleForm.number}个批次号`) |
| | | return |
| | | } |
| | | this.loading = true; |
| | | let obj = {number:this.ruleForm.number,outBatchNo:this.ruleForm.outBatchNo.join(','),...this.unqualifiedInfo}; |
| | | updateProcessInspectsById(obj).then(res => { |
| | | let data = res.data.data |
| | | if (data) { |
| | | if (data.indexOf("成功") > 0) { |
| | | this.$message.success(data); |
| | | this.$refs.ruleForm.resetFields(); |
| | | this.unqualified = false; |
| | | this.checkTestState() |
| | | this.init() |
| | | } else { |
| | | this.$message.warning(data); |
| | | } |
| | | return |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | checkTestState() { |
| | | let resultVal = '1' |
| | |
| | | if (id != null) { |
| | | queryById(id).then(res => { |
| | | let result = res.data.data |
| | | this.processInspectVo.moNumber = result.moNumber |
| | | this.processInspectVo.moNo = result.moNo |
| | | this.dataForm = result; |
| | | this.processInspectVo.operationTaskId = result.technologyOperationName |
| | | this.processInspectVo.proInsNo = result.proInsNo |
| | | this.processInspectVo.projectName = result.projectName |
| | |
| | | this.processInspectVo.unit = result.punit |
| | | this.processInspectVo.quantity = result.quantity |
| | | let userList = [] |
| | | result.children.forEach(item => { |
| | | result.children.forEach((item,index) => { |
| | | item.isIndex = true; |
| | | item.parentIndex = index + 1; |
| | | item.iid = Math.random() |
| | | if (item.children != undefined) { |
| | | item.children.forEach(obj => { |
| | |
| | | if (obj.inspectionValue) { |
| | | arr = obj.inspectionValue.split(",") |
| | | } |
| | | obj.empiricalValueAddss = arr |
| | | this.$set(obj, "empiricalValueAddss", arr) |
| | | this.$set(obj, "inote", obj.inote) |
| | | if(!obj.inote){ |
| | | obj.inote = null |
| | | // obj.inote = null |
| | | this.$set(obj, "inote", null) |
| | | } |
| | | if (arr.length > this.empiricalValueAdd) { |
| | | this.empiricalValueAdd = arr.length |
| | |
| | | } |
| | | }) |
| | | this.inspectionItems = result.children |
| | | let rVal = '1' |
| | | let rVal = '' |
| | | let passNum = 0 |
| | | let unPassNum = 0 |
| | | this.inspectionItems.forEach(item => { |
| | | if (item.children) { |
| | | item.children.forEach(obj => { |
| | | if (obj.iresult == 0) { |
| | | rVal = '0' |
| | | if(obj.iresult == 0){ |
| | | unPassNum += 1 |
| | | } |
| | | if(obj.iresult == 1){ |
| | | passNum+=1 |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | rVal = (passNum+unPassNum)>0 ? unPassNum>0 ? '0' :'1' : '' |
| | | this.inspectionResultForm = [{ |
| | | materialCode: result.materialCode, |
| | | material: result.material, |
| | | userName: Array.from(new Set(userList)).join(","), |
| | | result: this.resultVal == null ? rVal : this.resultVal, |
| | | }] |
| | | this.getProcessConfigFile() |
| | | }).catch(error => { |
| | | console.log(error) |
| | | }) |
| | |
| | | return |
| | | } |
| | | } |
| | | if (row.iid != null && row.iid != '') { |
| | | let str = "" |
| | | row.empiricalValueAddss.forEach(e => { |
| | | str += e + "," |
| | | }) |
| | | str = str.slice(0, -1); |
| | | if (str === undefined || str === '' || str === null) { |
| | | return |
| | | } |
| | | let obj = { |
| | | devideId: row.eId, |
| | | ppid: row.iid, |
| | | inspectionValue: str, |
| | | note : row.inote |
| | | } |
| | | updateProcessInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.$message.success("更新成功") |
| | | } else { |
| | | this.$message.error("更新失败") |
| | | } |
| | | this.init() |
| | | }) |
| | | } |
| | | // if (row.iid != null && row.iid != '') { |
| | | // let str = "" |
| | | // row.empiricalValueAddss.forEach(e => { |
| | | // str += e + "," |
| | | // }) |
| | | // str = str.slice(0, -1); |
| | | // if (str === undefined || str === '' || str === null) { |
| | | // return |
| | | // } |
| | | // let obj = { |
| | | // devideId: row.eId, |
| | | // ppid: row.iid, |
| | | // inspectionValue: str, |
| | | // note : row.inote |
| | | // } |
| | | // updateProcessInsProduct(obj).then(res => { |
| | | // if (res.data.code == 0) { |
| | | // this.$message.success("更新成功") |
| | | // } else { |
| | | // this.$message.error("更新失败") |
| | | // } |
| | | // this.init() |
| | | // }) |
| | | // } |
| | | }, |
| | | addTestProject() { |
| | | let val = this.processInspectVo |
| | |
| | | }) |
| | | }, |
| | | selectInfoByOrderId() { |
| | | if(this.processInspectVo.moNumber){ |
| | | if(this.processInspectVo.moNo){ |
| | | chooseMater({ |
| | | moNo: this.processInspectVo.moNumber |
| | | moNo: this.processInspectVo.moNo |
| | | }).then(res => { |
| | | let data = res.data.data |
| | | if (data) { |
| | |
| | | this.processInspectVo.orderNumber = data.orderNumber |
| | | this.processInspectVo.projectName = data.projectName |
| | | this.processInspectVo.customerName = data.customerName |
| | | this.processInspectVo.customerNo = data.customerNo |
| | | this.processInspectVo.material = data.material |
| | | this.processInspectVo.specs = data.specs |
| | | this.processInspectVo.unit = data.unit |
| | |
| | | updateProcessInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.init() |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | |
| | | }) |
| | | } |
| | | }); |
| | | _than.saveTable(); |
| | | } |
| | | } |
| | | }, |
| | |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <style scoped> |
| | | .finishedProduct-detail { |
| | | width: 100%; |
| | | height: 470px; |
| | | height: 520px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | box-sizing: border-box; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .finishedProduct-result { |
| | |
| | | border-top: 0 !important; |
| | | cursor: pointer !important; |
| | | } |
| | | </style> |
| | | </style> |