Merge remote-tracking branch 'origin/master'
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | * Copyright (c) 2018-2025, ztt All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the pig4cloud.com developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: ztt |
| | | */ |
| | | |
| | | import request from '@/router/axios' |
| | | |
| | | export function page(query) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function updateProcessInspectsById(query) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/updateProcessInspectsById', |
| | | method: 'post', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function chooseMater(query) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/chooseMater', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | export function addProcess(obj) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/addProcess', |
| | | method: 'post', |
| | | data: obj |
| | | }) |
| | | } |
| | | |
| | | export function queryById(obj) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/'+obj, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | export function deleteById(obj) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/'+obj, |
| | | method: 'delete', |
| | | }) |
| | | } |
| | | |
| | | export function updateDeviceBypppId(obj) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInsProduct/updateDevBypppId', |
| | | method: 'post', |
| | | params: obj |
| | | }) |
| | | } |
| | | |
| | | export function updateProcessInsProduct(obj) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInsProduct/updateprocessInsProduct', |
| | | method: 'post', |
| | | params: obj |
| | | }) |
| | | } |
| | |
| | | path: 'finishedProduct-form', |
| | | name: 'finishedProductForm', |
| | | component: () => |
| | | import(/* webpackChunkName: "views" */ '@/views/quality/finishedProductInspection/finishedProductInspectionAdd'), |
| | | import(/* webpackChunkName: "views" */ '@/views/quality/finishedProductInspection/finishedProduct-form'), |
| | | meta: { |
| | | keepAlive: false, |
| | | isTab: false, |
| | | isAuth: false |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/quality/processInspect', |
| | | component: Layout, |
| | | children: [ |
| | | { |
| | | path: 'processInspect-form', |
| | | name: 'processInspectForm', |
| | | component: () => |
| | | import(/* webpackChunkName: "views" */ '@/views/quality/processInspect/processInspect-form'), |
| | | meta: { |
| | | keepAlive: false, |
| | | isTab: false, |
ÎļþÃû´Ó src/views/quality/finishedProductInspection/finishedProductInspectionAdd.vue ÐÞ¸Ä |
| | |
| | | <div class="page-header"> |
| | | <div class="header-left"> |
| | | <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> |
| | | <h2>ç¼è¾-äº§åæ£éªå</h2> |
| | | <h2 v-if="resultVal!=null && processInspectVo.id!=null">æ¥ç-äº§åæ£éªå</h2> |
| | | <h2 v-else>ç¼è¾-äº§åæ£éªå</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="addTestProject" v-if="processInspectVo.id==null">çææ£éªé¡¹ç®</el-button> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è´¨é追溯å·ï¼"> |
| | | <el-input disabled v-model="processInspectVo.qualityTraceability" |
| | | placeholder="请è¾å
¥è´¨é追溯å·" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产ååç§°ï¼"> |
| | | <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.material" size="small" placeholder="è¯·éæ©äº§ååç§°"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产åç¼ç ï¼"> |
| | | <el-input disabled v-model="processInspectVo.mcode" |
| | |
| | | placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ°éï¼"> |
| | | <el-input v-model="processInspectVo.quantity" placeholder="请è¾å
¥æ°é" |
| | |
| | | <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 :span="12" class="inspectionProject_span" style="text-align: right;"> |
| | | <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> |
| | |
| | | placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" |
| | | @blur="changeState(scope.row, index)" placeholder="请è¾å
¥æ£æµå¼"></el-input> |
| | | </el-tooltip> |
| | | <span v-if="resultVal != null" v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="è¯éªè®¾å¤" min-width="250"> |
| | | <template slot-scope="scope"> |
| | | <el-select style="width:100%" v-model="scope.row.eId" |
| | | v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row)"> |
| | | <el-option v-for="(item,index) in deviceList" |
| | | :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> |
| | | </el-select> |
| | | <span v-if="resultVal!=null && processInspectVo.id!=null" v-text="scope.row.ename"></span> |
| | | <div v-else> |
| | | <el-select style="width:100%" v-model="scope.row.eId" |
| | | v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row)"> |
| | | <el-option v-for="(item,index) in deviceList" |
| | | :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> |
| | | </el-select> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç»è®º" fixed="right" min-width="100"> |
| | |
| | | <el-table-column prop="userName" label="æ£éªå"></el-table-column> |
| | | <el-table-column prop="result" label="æ£éªç»è®º"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" v-if="scope.row.result == 1">åæ ¼</el-tag> |
| | | <el-tag type="danger" v-else-if="scope.row.result == 0">ä¸åæ ¼</el-tag> |
| | | <el-tag type="success" v-if="scope.row.result == '1'">åæ ¼</el-tag> |
| | | <el-tag type="danger" v-else-if="scope.row.result == '0'">ä¸åæ ¼</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½"> |
| | | <template> |
| | | <el-button type="text" @click="submitSave()" size="small">䏿¥</el-button> |
| | | <el-button type="text" :disabled="resultVal!=null && processInspectVo.id!=null" @click="submitSave()" size="small">䏿¥</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | resultVal: null, |
| | | deviceList: [], |
| | | hasChildren: true, |
| | | optionsSamplename: [], |
| | |
| | | mounted() { |
| | | this.getDeviceList() |
| | | this.processInspectVo.id = this.$route.query.id |
| | | this.resultVal = this.$route.query.resultVal |
| | | if(this.resultVal == null){ |
| | | let val = sessionStorage.getItem("finished-resultVal"); |
| | | val == undefined ? this.resultVal=null : this.resultVal = val |
| | | } |
| | | this.init() |
| | | }, |
| | | methods: { |
| | |
| | | number: value |
| | | } |
| | | updateFinishedInspectById(data).then(res => { |
| | | this.$message.success("䏿¥æå"); |
| | | if(res.data.data.indexOf("æå") > 0){ |
| | | this.$message.success("䏿¥æå"); |
| | | this.checkTestState() |
| | | }else{ |
| | | this.$message.warning(res.data.data) |
| | | } |
| | | }); |
| | | }).catch(() => {}); |
| | | }else{ |
| | | updateFinishedInspectById({id:this.processInspectVo.id,number:0}).then(res => { |
| | | this.$message.success("䏿¥æå"); |
| | | if(res.data.data.indexOf("æå") > 0){ |
| | | this.$message.success("䏿¥æå"); |
| | | this.checkTestState() |
| | | }else{ |
| | | this.$message.warning(res.data.data) |
| | | } |
| | | }); |
| | | } |
| | | this.init() |
| | | }, |
| | | checkTestState(){ |
| | | let resultVal = '1' |
| | | this.inspectionItems.forEach(item=>{ |
| | | if(item.children){ |
| | | item.children.forEach(obj=>{ |
| | | if(obj.iresult == 0){ |
| | | resultVal = '0' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.resultVal = resultVal |
| | | this.inspectionResultForm[0].result = resultVal |
| | | sessionStorage.setItem("finished-resultVal",resultVal) |
| | | }, |
| | | init(){ |
| | | let id = this.processInspectVo.id |
| | |
| | | this.processInspectVo.specificationsModel = result.specs |
| | | this.processInspectVo.unit = result.punit |
| | | this.processInspectVo.quantity = result.quantity |
| | | let resultVal = 1 |
| | | let userList = [] |
| | | result.children.forEach(item=>{ |
| | | item.iid = Math.random() |
| | |
| | | } |
| | | if(obj.inspectionValue){ |
| | | arr = obj.inspectionValue.split(",") |
| | | } |
| | | if(obj.iresult && obj.iresult == 0){ |
| | | resultVal = 0 |
| | | } |
| | | obj.empiricalValueAddss = arr |
| | | if(arr.length > this.empiricalValueAdd){ |
| | |
| | | materialCode: result.materialCode, |
| | | material: result.material, |
| | | userName: Array.from(new Set(userList)).join(","), |
| | | result: resultVal, |
| | | result: this.resultVal==null ? '' : this.resultVal, |
| | | }] |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | |
| | | <style scoped> |
| | | .finishedProduct-detail { |
| | | width: 100%; |
| | | height: 470px; |
| | | height: 500px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | |
| | | |
| | | .finishedProduct-basic { |
| | | background-color: #fff; |
| | | height: 155px; |
| | | height: 120px; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 10px 20px; |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import * as fecha from 'element-ui/lib/utils/date' |
| | | import finishedProductInspectionAdd from './finishedProductInspectionAdd' |
| | | import finishedProductInspectionAdd from './finishedProduct-form' |
| | | import { page,deletePro } from '@/api/quality/finishedProduct' |
| | | export default { |
| | | components: { |
| | |
| | | fun: this.addOrUpdateHandle |
| | | }, |
| | | { |
| | | text: 'å é¤', |
| | | }, |
| | | { |
| | | text: '导åº', |
| | | } |
| | | ], |
| | |
| | | minWidth: 100 |
| | | }, |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | searchData: { |
| | | result: '', |
| | | material: '', |
| | | }, |
| | | // 主æºå·¥ä¸ææ¡ |
| | | usernameOptions: [], |
| | | inspectionTable: [], |
| | | rowInfo: {}, |
| | | pageParams: { |
| | | countSize: 10, //æ¯é¡µæ°é |
| | | pageSize: 1, // å½å页ç |
| | | total: 0 |
| | | }, |
| | | showAddPage: false, |
| | | showAdd: false, |
| | | showLook: false, |
| | | showUp: false, |
| | | showDetail: false, |
| | | addInspectionform: [{ |
| | | number: '', |
| | | username: '', |
| | | projectname: '', |
| | | tracenumber: '', |
| | | code: '', |
| | | class: '', |
| | | specificationmodel: '', |
| | | unit: '', |
| | | quantity: '', |
| | | group: '', |
| | | worker: '', |
| | | machine: '' |
| | | }], |
| | | inspectionItems: [{ |
| | | project: 'å¸é迪', |
| | | unit: 'å¨', |
| | | standardVal: '8219384314', |
| | | controlVal: '9823401', |
| | | detectionVal: '11111', |
| | | device: '', |
| | | conclusion: 'åæ ¼' |
| | | }], |
| | | inspectionResultForm: [{ |
| | | id: '274024', |
| | | name: '111', |
| | | inspecter: '111', |
| | | conclusion: '', |
| | | operation: '' |
| | | }], |
| | | finishedInsInfo: {} |
| | | } |
| | | }, |
| | | created() { |
| | | this.init() |
| | | // this.getInspectionTableData() |
| | | }, |
| | | created() { }, |
| | | methods: { |
| | | deleteHandle(row){ |
| | | console.log(row.id) |
| | |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'finishedProductForm', |
| | | query: { id: row == null ? null : row.id } |
| | | query: { |
| | | id: row == null ? null : row.id, |
| | | resultVal: row == null ? null : row.result |
| | | } |
| | | }) |
| | | }, |
| | | formatResult(row, column, cellValue){ |
| | |
| | | formatDateTime(row, column, cellValue) { |
| | | return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : '' |
| | | }, |
| | | handleSelectionChange(){ |
| | | |
| | | }, |
| | | // æ¯é¡µæ¡æ°æ¹åæ¶è§¦å éæ©ä¸é¡µæ¾ç¤ºå¤å°è¡ |
| | | handleSizeChange(val) { |
| | | console.log(`æ¯é¡µ ${val} æ¡`) |
| | | this.currentPage = 1 |
| | | this.pageSize = val |
| | | }, |
| | | // å½å页æ¹åæ¶è§¦å 跳转å
¶ä»é¡µ |
| | | handleCurrentChange(val) { |
| | | console.log(`å½å页: ${val}`) |
| | | this.currentPage = val |
| | | }, |
| | | handleAddNew() { |
| | | this.showAdd = true |
| | | }, |
| | | handleSelectionChange(){ }, |
| | | getData() { |
| | | this.$refs.finishedProduct.getDataList() |
| | | }, |
| | | goToDetail(row) { |
| | | this.rowInfo = row |
| | | this.showLook = true |
| | | }, |
| | | goUp(row) { |
| | | this.rowInfo = row |
| | | this.showUp = true |
| | | }, |
| | | async init() { |
| | | // const {data} = await this.$axios.get(this.$api.url.finishedInspectUser) |
| | | // this.usernameOptions = data |
| | | |
| | | }, |
| | | comBackMain(val) { |
| | | this.showAdd = false |
| | | this.showLook = false |
| | | this.showUp = false |
| | | this.init() |
| | | // this.getInspectionTableData() |
| | | if (val) { |
| | | this.$parent.removeAllTab() |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="content-main"> |
| | | <div class="rawPage"> |
| | | <basic-container> |
| | | <ttable |
| | | :table="table" |
| | | @handleSelectionChange="handleSelectionChange" |
| | | :prelang="prelang" |
| | | :options="options" |
| | | :ajaxFun="ajaxFun" |
| | | ref="processInspect"> |
| | | <template #toolbar></template> |
| | | </ttable> |
| | | </basic-container> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | | import * as fecha from 'element-ui/lib/utils/date' |
| | | import processInspectForm from './processInspect-form' |
| | | import { page,deleteById } from '@/api/quality/processInspect' |
| | | export default { |
| | | components: { |
| | | processInspectForm, |
| | | ttable |
| | | }, |
| | | data() { |
| | | return { |
| | | result:[{label:'å
¨é¨',value: ''},{label:'åæ ¼',value: '1'},{label:'ä¸åæ ¼',value: '0'}], |
| | | type: [1], |
| | | prelang: 'processInspect', |
| | | ajaxFun: page, |
| | | options: { |
| | | height: 300, // é»è®¤é«åº¦-为äºè¡¨å¤´åºå® |
| | | stripe: true, // æ¯å¦ä¸ºæé©¬çº¹ table |
| | | highlightCurrentRow: false, // æ¯å¦è¦é«äº®å½åè¡ |
| | | border: true, // æ¯å¦æçºµåè¾¹æ¡ |
| | | lazy: false, // æ¯å¦éè¦æå è½½ |
| | | fit: true, // åç宽度æ¯å¦èªæå¼ |
| | | multiSelect: true, // |
| | | seqNo: true, |
| | | isRefresh: true, // æ¯å¦æ¾ç¤ºå·æ°æé® |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé®H |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' }, |
| | | }, |
| | | table: { |
| | | total: 0, |
| | | currentPage: 1, |
| | | pageSize: 20, |
| | | data: [], |
| | | // æ é¢ |
| | | column: [ |
| | | { |
| | | minWidth: '120', |
| | | prop: 'orderNumber', |
| | | label: '订åç¼å·', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | render: { fun: this.addOrUpdateHandle } |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'material', |
| | | label: '产ååç§°', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '130', |
| | | width: '150', |
| | | prop: 'specs', |
| | | label: 'è§æ ¼åå·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'operaName', |
| | | label: 'å·¥åº', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'unit', |
| | | label: 'åä½', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'quantity', |
| | | label: 'æ°é', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'createTime', |
| | | label: 'æ¥æ£æ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDateTime, |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'createUser', |
| | | label: 'æ¥æ£äºº', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'updateTime', |
| | | label: 'æ£æµæ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'datetimerange', |
| | | formatter: this.formatDateTime, |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'result', |
| | | label: 'åæ ¼ç¶æ', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'select', |
| | | formatter: this.formatResult, |
| | | optList: () => { |
| | | return this.result |
| | | } |
| | | }, |
| | | ], |
| | | toolbar: [ |
| | | { |
| | | text: 'æ°å¢', |
| | | type: 'primary', |
| | | fun: this.addOrUpdateHandle |
| | | }, |
| | | { |
| | | text: '导åº', |
| | | } |
| | | ], |
| | | operator: [{ |
| | | text: 'ä½åº', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | }], |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: 'æä½', |
| | | width: 100, |
| | | minWidth: 100 |
| | | }, |
| | | }, |
| | | } |
| | | }, |
| | | created() { }, |
| | | methods: { |
| | | deleteHandle(row){ |
| | | this.$confirm('确认å é¤è¯¥æ°æ®åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }).then(()=>{ |
| | | deleteById(row.id).then(res=>{ |
| | | if(res.data.code == 0){ |
| | | this.$message.success("å 餿å") |
| | | }else{ |
| | | this.$message.error("å é¤å¤±è´¥") |
| | | } |
| | | this.getData() |
| | | }) |
| | | }) |
| | | }, |
| | | // æ°å¢ / ä¿®æ¹ |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'processInspectForm', |
| | | query: { id: row == null ? null : row.id,resultVal : row == null ? null : row.result }, |
| | | }) |
| | | }, |
| | | formatResult(row, column, cellValue){ |
| | | if(cellValue != undefined || cellValue != null){ |
| | | if(cellValue == 0){ |
| | | return "<span style='color:#E84738;'>ä¸åæ ¼</span>" |
| | | }else if(cellValue == 1){ |
| | | return "<span style='color:#34BD66;'>åæ ¼</span>" |
| | | } |
| | | } |
| | | }, |
| | | formatDateTime(row, column, cellValue) { |
| | | return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : '' |
| | | }, |
| | | handleSelectionChange(){ }, |
| | | getData() { |
| | | this.$refs.processInspect.getDataList() |
| | | }, |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style scope="scope"> |
| | | .title { |
| | | padding: 12px; |
| | | |
| | | } |
| | | |
| | | .nav { |
| | | display: flex; |
| | | padding: 20px 20px; |
| | | align-items: center; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .nav * { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .content-body { |
| | | background-color: #fff; |
| | | overflow: hidden; |
| | | margin-top: 12px; |
| | | } |
| | | |
| | | .inspectionTable { |
| | | padding: 20px 20px; |
| | | } |
| | | |
| | | .pagination { |
| | | float: right; |
| | | margin-right: 20px; |
| | | } |
| | | |
| | | .newPage { |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .header { |
| | | padding: 12px; |
| | | } |
| | | |
| | | .addInspectionform { |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .addInspectionform .formwrapper { |
| | | padding: 20px 0px; |
| | | margin-left: 100px; |
| | | } |
| | | |
| | | .inspectionProject span { |
| | | display: block; |
| | | padding: 5px 0px; |
| | | } |
| | | |
| | | .inspectionProject .el-table { |
| | | background-color: #fff; |
| | | padding: 10px 12px; |
| | | } |
| | | |
| | | .inspectionResult span { |
| | | display: block; |
| | | padding: 5px 0px; |
| | | } |
| | | |
| | | .inspectionResult .el-table { |
| | | background-color: #fff; |
| | | padding: 10px 12px; |
| | | } |
| | | |
| | | .rawPage { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | overflow-y: scroll; |
| | | } |
| | | |
| | | .rawPage .content-body { |
| | | flex: 1; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- æ°å¢é¡µé¢ --> |
| | | <div class="addInspection"> |
| | | <div class="page-header"> |
| | | <div class="header-left"> |
| | | <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> |
| | | <h2 v-if="resultVal != null && processInspectVo.id!=null">æ¥ç-è¿ç¨æ£éªå</h2> |
| | | <h2 v-else>ç¼è¾-è¿ç¨æ£éªå</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="addTestProject" v-if="processInspectVo.id==null">çææ£éªé¡¹ç®</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | | <div class="finishedProduct-basic"> |
| | | <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" |
| | | label-position="right" label-width="120px" style="width: 100%" size="small"> |
| | | <div class="formwrapper"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订åå·ï¼"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.orderNumber" placeholder="请è¾å
¥è®¢åå·" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产ååç§°ï¼"> |
| | | <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.material" size="small" placeholder="è¯·éæ©äº§ååç§°"> |
| | | <el-option v-for="(item,index) in optionsSamplename" :key="index" :label="item.material" |
| | | :value="item.materialCode"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产åç¼ç ï¼"> |
| | | <el-input disabled v-model="processInspectVo.materialCode" |
| | | placeholder="请è¾å
¥äº§åç¼ç " autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è§æ ¼åå·ï¼"> |
| | | <el-input disabled v-model="processInspectVo.specs" |
| | | placeholder="请è¾å
¥è§æ ¼åå·" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å·¥åºåç§°"> |
| | | <el-select style="width: 100%" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.technologyOperationId" size="small" placeholder="è¯·éæ©å·¥åº"> |
| | | <el-option v-for="(item,index) in technologyList" :key="index" :label="item.name" |
| | | :value="item.technologyOperationId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="åä½ï¼"> |
| | | <el-input disabled v-model="processInspectVo.unit" |
| | | placeholder="请è¾å
¥åä½" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ°éï¼"> |
| | | <el-input v-model="processInspectVo.quantity" placeholder="请è¾å
¥æ°é" |
| | | autocomplete="off" :disabled="processInspectVo.id != null" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </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="åºå·" width="60"></el-table-column> |
| | | <el-table-column label="项ç®" prop="father" width="240" ></el-table-column> |
| | | <el-table-column prop="iname" label="ææ " width="240" ></el-table-column> |
| | | <el-table-column prop="iunit" label="åä½" width="240" ></el-table-column> |
| | | <el-table-column prop="required" label="æ åå¼" width="240" ></el-table-column> |
| | | <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="æ£æµå¼" |
| | | width="240" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <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, index)" placeholder="请è¾å
¥æ£æµå¼"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id!=null" v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="è¯éªè®¾å¤" min-width="250"> |
| | | <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:100%" v-model="scope.row.eId" |
| | | v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row)"> |
| | | <el-option v-for="(item,index) in deviceList" |
| | | :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> |
| | | </el-select> |
| | | </div> |
| | | </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> |
| | | </div> |
| | | <div class="finishedProduct-result"> |
| | | <el-row style="width:100%"> |
| | | <el-col :span="24">æ£æµç»æ</el-col> |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table border height="90" :data="inspectionResultForm" |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}"> |
| | | <el-table-column prop="materialCode" label="ç©æç¼å·"></el-table-column> |
| | | <el-table-column prop="material" label="ç©æåç§°"></el-table-column> |
| | | <el-table-column prop="userName" label="æ£éªå"></el-table-column> |
| | | <el-table-column prop="result" label="æ£éªç»è®º"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="success" v-if="scope.row.result == '1'">åæ ¼</el-tag> |
| | | <el-tag type="danger" v-if="scope.row.result == '0'">ä¸åæ ¼</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½"> |
| | | <template> |
| | | <el-button type="text" :disabled="resultVal != null && processInspectVo.id!=null" @click="submitSave()" size="small">䏿¥</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | chooseMater, |
| | | addProcess, |
| | | queryById, |
| | | updateDeviceBypppId, |
| | | updateProcessInsProduct, |
| | | updateProcessInspectsById, |
| | | } from '@/api/quality/processInspect' |
| | | import { selectDevice } from '@/api/quality/rawMaterial' |
| | | export default { |
| | | data() { |
| | | return { |
| | | resultVal: null, |
| | | technologyList: [], |
| | | deviceList: [], |
| | | hasChildren: true, |
| | | optionsSamplename: [], |
| | | // æ·»å å |
| | | empiricalValueAdd: 1, |
| | | // ç¼è¾æ¶å卿é¿çåæ°åï¼åå é¤å¤æ |
| | | empiricalValueAddMaxNumber: 0, |
| | | processInspectVo: { |
| | | id: null, |
| | | material: null, |
| | | materialCode: null, |
| | | orderNumber: "ZTTIC20230001", |
| | | quantity: null, |
| | | specs: null, |
| | | unit: null, |
| | | technologyOperationId: null |
| | | }, |
| | | inspectionItems: [], // æ°å¢æ£éªé¡¹ç®è¡¨æ ¼ |
| | | inspectionResultForm: [], |
| | | } |
| | | }, |
| | | watch: { |
| | | }, |
| | | beforeUpdate(){ |
| | | this.$nextTick(()=>{ |
| | | this.$refs.table.doLayout(); |
| | | }) |
| | | }, |
| | | created() { |
| | | }, |
| | | mounted() { |
| | | this.getDeviceList() |
| | | this.processInspectVo.id = this.$route.query.id |
| | | this.resultVal = this.$route.query.resultVal |
| | | if(this.resultVal == null){ |
| | | let val = sessionStorage.getItem("process-resultVal"); |
| | | val == undefined ? this.resultVal=null : this.resultVal = val |
| | | } |
| | | this.init() |
| | | }, |
| | | methods: { |
| | | submitSave(){ |
| | | let pro = 0 |
| | | console.log(this.inspectionItems); |
| | | this.inspectionItems.forEach(item => { |
| | | if(item.children){ |
| | | let arr = item.children.filter(obj=>{ |
| | | return obj.iresult == 0; |
| | | }) |
| | | pro+=arr.length |
| | | } |
| | | }) |
| | | if (pro > 0) { |
| | | this.$prompt('请è¾å
¥ä¸åæ ¼æ°é', 'ä¸åæ ¼æ°é', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | inputPattern: /^\d+$/, |
| | | inputErrorMessage: '请è¾å
¥æ£ç¡®æ°åæ ¼å¼' |
| | | }).then(({ value }) => { |
| | | let data = { |
| | | id: this.processInspectVo.id, |
| | | number: value |
| | | } |
| | | updateProcessInspectsById(data).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({id:this.processInspectVo.id,number:0}).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 |
| | | } |
| | | }); |
| | | } |
| | | this.init() |
| | | }, |
| | | checkTestState(){ |
| | | let resultVal = '1' |
| | | this.inspectionItems.forEach(item=>{ |
| | | if(item.children){ |
| | | item.children.forEach(obj=>{ |
| | | if(obj.iresult == 0){ |
| | | resultVal = '0' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.resultVal = resultVal |
| | | this.inspectionResultForm[0].result = resultVal |
| | | sessionStorage.setItem("process-resultVal",resultVal) |
| | | }, |
| | | init(){ |
| | | let id = this.processInspectVo.id |
| | | if(id != null){ |
| | | queryById(id).then(res=>{ |
| | | let result = res.data.data |
| | | this.processInspectVo.orderNumber = result.orderNumber |
| | | this.processInspectVo.materialCode = result.materialCode |
| | | this.processInspectVo.material = result.material |
| | | this.processInspectVo.technologyOperationId = result.technologyOperationName |
| | | this.processInspectVo.specs = result.specs |
| | | this.processInspectVo.unit = result.punit |
| | | this.processInspectVo.quantity = result.quantity |
| | | let userList = [] |
| | | result.children.forEach(item=>{ |
| | | item.iid = Math.random() |
| | | if(item.children != undefined){ |
| | | item.children.forEach(obj=>{ |
| | | let arr = [] |
| | | if(obj.userName){ |
| | | userList.push(obj.userName) |
| | | } |
| | | if(obj.inspectionValue){ |
| | | arr = obj.inspectionValue.split(",") |
| | | } |
| | | obj.empiricalValueAddss = arr |
| | | if(arr.length > this.empiricalValueAdd){ |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.inspectionItems = result.children |
| | | this.inspectionResultForm = [{ |
| | | materialCode: result.materialCode, |
| | | material: result.material, |
| | | userName: Array.from(new Set(userList)).join(","), |
| | | result: this.resultVal == null ? '' : this.resultVal, |
| | | }] |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | | }) |
| | | } |
| | | }, |
| | | getDeviceList(){ |
| | | selectDevice(null).then(res=>{ |
| | | this.deviceList = res.data.data |
| | | }) |
| | | }, |
| | | updateDevice(row){ |
| | | updateDeviceBypppId({equiomentId:row.eId,ppid:row.iId}).then(res=>{ |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | //产ååç§°ï¼éæ© |
| | | changeOptionsSamplename(val) { |
| | | let sample = this.optionsSamplename.filter(o=>{ |
| | | return o.materialCode == val |
| | | })[0] |
| | | this.processInspectVo.materialCode = sample.materialCode |
| | | this.processInspectVo.specs = sample.specs |
| | | this.processInspectVo.unit = sample.unit |
| | | this.processInspectVo.material = sample.material |
| | | this.technologyList = sample.children |
| | | }, |
| | | changeState(row, index) { |
| | | 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 = { |
| | | equiomentId: row.eId, |
| | | ppid: row.iid, |
| | | inspectionValue: str |
| | | } |
| | | updateProcessInsProduct(obj).then(res=>{ |
| | | if(res.data.code == 0){ |
| | | this.$message.success("æ´æ°æå") |
| | | }else{ |
| | | this.$message.error("æ´æ°å¤±è´¥") |
| | | } |
| | | this.init() |
| | | }) |
| | | } |
| | | }, |
| | | addTestProject() { |
| | | let val = this.processInspectVo |
| | | addProcess(val).then(res=>{ |
| | | let id = res.data.data |
| | | if(id != null){ |
| | | queryById(id).then(response=>{ |
| | | console.log(response.data.data.children) |
| | | let proList = response.data.data.children |
| | | proList.forEach(item=>{ |
| | | item.iid = Math.random(); |
| | | if(item.children != undefined){ |
| | | item.children.forEach(obj=>{ |
| | | obj.empiricalValueAddss = [] |
| | | }) |
| | | } |
| | | }) |
| | | this.inspectionItems = proList |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | | }) |
| | | } |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | selectInfoByOrderId() { |
| | | chooseMater({ |
| | | orderNumber: this.processInspectVo.orderNumber |
| | | }).then(res => { |
| | | if (res.data.data != null) { |
| | | this.optionsSamplename = res.data.data.children |
| | | } else { |
| | | this.$message({ |
| | | message: '没æè¯¥è®¢åå·ï¼', |
| | | type: 'warning' |
| | | }); |
| | | this.optionsSamplename = [] |
| | | this.processInspectVo.materialCode = null |
| | | this.processInspectVo.material = null |
| | | this.processInspectVo.specs = null |
| | | this.processInspectVo.unit = null |
| | | } |
| | | }) |
| | | }, |
| | | // å 餿£éªå¼å |
| | | clickDeleteInspectionColumn() { |
| | | if (this.empiricalValueAdd - 1 === 0) { |
| | | } else { |
| | | if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { |
| | | this.empiricalValueAdd = this.empiricalValueAdd - 1; |
| | | this.inspectionItems.forEach(i => { |
| | | i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | // æ·»å æ£éªå¼å |
| | | clickAddInspectionColumn() { |
| | | this.empiricalValueAdd = this.empiricalValueAdd + 1; |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .finishedProduct-detail { |
| | | width: 100%; |
| | | height: 470px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | box-sizing: border-box; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .finishedProduct-result { |
| | | width: 100%; |
| | | height: 150px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | box-sizing: border-box; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .finishedProduct-basic { |
| | | background-color: #fff; |
| | | height: 155px; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 10px 20px; |
| | | border: 1px solid #ddd; |
| | | box-sizing: border-box; |
| | | } |
| | | /*èªå®ä¹disabledç¶æä¸checkboxçæ ·å¼*/ |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled.is-checked |
| | | .el-checkbox__inner { |
| | | background-color: #006eff; |
| | | border-color: #006eff; |
| | | } |
| | | |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled.is-checked |
| | | + span.el-checkbox__label { |
| | | color: #006eff; |
| | | border-color: #006eff; |
| | | } |
| | | |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled |
| | | .el-checkbox__inner { |
| | | background-color: #ffffff; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .completeproductstructure-checkout |
| | | .el-checkbox__input.is-disabled |
| | | + span.el-checkbox__label { |
| | | color: #606266; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .completeproductstructure-checkout .el-checkbox__inner::after { |
| | | border: 1px solid #fff !important; |
| | | border-left: 0 !important; |
| | | border-top: 0 !important; |
| | | cursor: pointer !important; |
| | | } |
| | | </style> |
| | |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'rawMaterialForm', |
| | | query: { id: row == null ? null : row.id } |
| | | query: { |
| | | id: row == null ? null : row.id, |
| | | resultVal: row == null ? null : row.judgeState |
| | | } |
| | | }) |
| | | }, |
| | | formatInsState(row, column, cellValue){ |
| | |
| | | <div class="page-header"> |
| | | <div class="header-left"> |
| | | <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> |
| | | <h2>ç¼è¾-åæææ£éª</h2> |
| | | <h2 v-if="resultVal!=null && dataForm.id!=null">æ¥ç-åæææ£éª</h2> |
| | | <h2 v-else>ç¼è¾-åæææ£éª</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="save()" v-if="this.dataForm.id==null">ä¿å</el-button> |
| | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="é¶ä»¶å·" prop="code"> |
| | | <el-input v-model="dataForm.code"> |
| | | <el-input v-model="dataForm.code" :disabled="resultVal!=null && dataForm.id!=null"> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | @click="queryCode()"></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£æ¥æ" prop="createTime" v-if="dataForm.id!=null"> |
| | | <el-input v-model="dataForm.createTime" /> |
| | | <el-input v-model="dataForm.createTime" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥æ£äºº" prop="createUser" v-if="dataForm.id!=null"> |
| | | <el-input v-model="dataForm.createUser" /> |
| | | <el-input v-model="dataForm.createUser" disabled /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="19">æ£éªé¡¹ç®</el-col> |
| | | <el-col :span="5"> |
| | | <div style="width:100%;text-align: right;"> |
| | | <el-button v-show="dataForm.id==null" size="small" @click="clickAddLine">æ·»å æ£éªè¡</el-button> |
| | | <el-button size="small" @click="addTeatValueColumn()">æ·»å æ£æµå¼å</el-button> |
| | | <el-button size="small" @click="delTeatValueColumn()">å 餿£æµå¼å</el-button> |
| | | <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine">æ·»å æ£éªè¡</el-button> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">æ·»å æ£æµå¼å</el-button> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">å 餿£æµå¼å</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <template slot-scope="scope"> |
| | | <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="请å
éæ©è®¾å¤ï¼" |
| | | placement="top-start"> |
| | | <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValueList[index]" |
| | | <el-input :disabled="scope.row.equipmentId == null || dataForm.id!=null" v-model="scope.row.testValueList[index]" |
| | | @blur="updateTestValue(scope.row)" placeholder="请è¾å
¥æ£æµå¼"></el-input> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="è¯éªè®¾å¤" min-width="260"> |
| | | <template slot-scope="scope"> |
| | | <el-select style="width:100%" v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row)"> |
| | | <el-option v-for="(item,index) in deviceList" |
| | | :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> |
| | | </el-select> |
| | | <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%" v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row)"> |
| | | <el-option v-for="(item,index) in deviceList" |
| | | :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="ç»è®º" min-width="150"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="æä½"> |
| | | <template> |
| | | <el-button type="text" @click="submitSave()" size="small">䏿¥</el-button> |
| | | <el-button type="text" :disabled="resultVal!=null && dataForm.id!=null" @click="showDialog()" size="small">䏿¥</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </div> |
| | | </div> |
| | | <rawMaterialPartDialog :paramObj="paramObj" :currshowlist.sync="showPart" @listenToPartEvent="selectPart" /> |
| | | <el-dialog |
| | | title="䏿¥" |
| | | :visible.sync="dialogVisible" |
| | | width="30%"> |
| | | <el-row> |
| | | <el-col> |
| | | <span>ä¸åæ ¼æ°é:</span> |
| | | <el-input type="number" v-model="unqualifiedNum" placeholder="请è¾å
¥ä¸åæ ¼æ°é"/> |
| | | </el-col> |
| | | <el-col> |
| | | <span>宿£æ°é:</span> |
| | | <el-input type="number" placeholder="请è¾å
¥å®æ£æ°é" v-model="fiedNum"/> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitSave()">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | getObj, |
| | | updateRawInsProduct, |
| | | updateRawInspectsById, |
| | | chooseIFS, |
| | | selectHisByCode, |
| | | updateDeviceById, } from '@/api/quality/rawMaterial' |
| | | import rawMaterialPartDialog from '@/views/common/rawMaterial-part' |
| | | export default { |
| | |
| | | }, |
| | | data(){ |
| | | return{ |
| | | fiedNum: null, |
| | | unqualifiedNum: null, |
| | | dialogVisible:false, |
| | | resultVal: null, |
| | | projectList: [], |
| | | paramObj: {}, |
| | | IFSData: [], |
| | |
| | | }, |
| | | mounted(){ |
| | | this.dataForm.id = this.$route.query.id |
| | | this.resultVal = this.$route.query.resultVal |
| | | if(this.resultVal == null){ |
| | | let val = sessionStorage.getItem("raw-resultVal") |
| | | val == undefined ? null : this.resultVal=val |
| | | } |
| | | this.init() |
| | | this.getDeviceList() |
| | | }, |
| | |
| | | this.dataForm.supplier = param.supplier |
| | | this.dataForm.number = param.number |
| | | this.dataForm.message = param.message |
| | | this.projectList = param.rawInsProducts |
| | | this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts |
| | | } |
| | | }, |
| | | queryCode(){ |
| | |
| | | }) |
| | | } |
| | | }, |
| | | showDialog(){ |
| | | this.dialogVisible = true |
| | | }, |
| | | submitSave(){ |
| | | let pro = this.list.filter(item => { |
| | | return item.testState == 0; |
| | | }) |
| | | if (pro.length > 0) { |
| | | this.$prompt('请è¾å
¥ä¸åæ ¼æ°é', 'ä¸åæ ¼æ°é', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | inputPattern: /^\d+$/, |
| | | inputErrorMessage: '请è¾å
¥æ£ç¡®æ°åæ ¼å¼' |
| | | }).then(({ value }) => { |
| | | let data = { |
| | | let data = { |
| | | id: this.dataForm.id, |
| | | number: value |
| | | number: this.unqualifiedNum, |
| | | toLocationNo: this.fiedNum |
| | | } |
| | | updateRawInspectsById(data).then(res => { |
| | | this.$message.success("䏿¥æå"); |
| | | if(res.data.code == 0){ |
| | | sessionStorage.setItem("raw-resultVal",data.judgeState) |
| | | this.$message.success("䏿¥æå"); |
| | | } |
| | | }); |
| | | }).catch(() => {}); |
| | | }else{ |
| | | updateRawInspectsById({id:this.dataForm.id,number:0}).then(res => { |
| | | this.$message.success("䏿¥æå"); |
| | | if(res.data.code == 0){ |
| | | sessionStorage.setItem("raw-resultVal",res) |
| | | this.$message.success("䏿¥æå"); |
| | | } |
| | | }); |
| | | } |
| | | this.init() |
| | |
| | | } |
| | | this.list.push({ |
| | | equipmentId: item.equiomentId, |
| | | deviceName: item.deviceName, |
| | | name: item.rpName, |
| | | required: item.required, |
| | | testValue: item.testValue, |