| | |
| | | <h2 v-else>编辑-原材料检验</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="save()" type="primary" v-if="this.dataForm.id==null">保存</el-button> |
| | | <el-button @click="save()" type="primary" v-if="dataForm.id==null">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="零件号" prop="code"> |
| | | <el-input v-model="dataForm.code" disabled> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | @click="queryCode"></el-button> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <div class="rawMaterial-detail"> |
| | | <el-row style="width:100%;z-index: 10;height:50px;"> |
| | | <el-col :xs="12" :lg="15">检验项目</el-col> |
| | | <el-col :xs="4" :lg="3" style="text-align: right;"> |
| | | <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">添加检验项目</el-button> |
| | | </el-col> |
| | | <el-col :xs="4" :lg="3" style="text-align: right;"> |
| | | <el-button class="pad-addcol-btn" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">添加检测值列</el-button> |
| | | </el-col> |
| | | <el-col :xs="4" :lg="3" style="text-align: right;"> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">删除检测值列</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}" |
| | | ref="table" |
| | | :data="list" |
| | | border |
| | | style="width: 100%;" |
| | | height="400" |
| | | row-key="iid" |
| | | default-expand-all |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column type="index" label="序号" width="60"> |
| | | </el-table-column> |
| | | <el-table-column prop="father" label="检验项目" width="260"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="项目" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name" |
| | | placeholder="请输入项目名称"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="单位" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="请输入单位"></el-input> |
| | | </div> |
| | | </template> |
| | | <div> |
| | | <el-tabs class="rawMaterial-detail" @tab-click="tabsClick"> |
| | | <el-tab-pane label="检验项目"> |
| | | <el-row style="width:100%;z-index: 10;height:50px;"> |
| | | <el-col :xs="12" :lg="18"></el-col> |
| | | <el-col :xs="4" :lg="2" style="text-align: right;"> |
| | | <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">添加检验项目</el-button> |
| | | </el-col> |
| | | <el-col :xs="4" :lg="2" style="text-align: right;"> |
| | | <el-button class="pad-addcol-btn" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">添加检测值列</el-button> |
| | | </el-col> |
| | | <el-col :xs="4" :lg="2" style="text-align: right;"> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">删除检测值列</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}" |
| | | ref="table" |
| | | :data="list" |
| | | border |
| | | style="width: 100%;" |
| | | height="400" |
| | | row-key="iid" |
| | | default-expand-all |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column type="index" label="序号" width="60"> |
| | | </el-table-column> |
| | | <el-table-column prop="father" label="检验项目" width="260"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="项目" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name" |
| | | placeholder="请输入项目名称"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="单位" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="请输入单位"></el-input> |
| | | </div> |
| | | </template> |
| | | |
| | | </el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.required" |
| | | placeholder="请输入标准值"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="testValue" label="检测值" min-width="260" v-for="(item,index) in empiricalValueAdd" :key="index"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select style="width:100%" allow-create filterable default-first-option |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请输入或选择检测值" |
| | | @change="changeState(scope.row,scope.$index)"> |
| | | <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> |
| | | </el-select> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:80%" |
| | | v-model="scope.row.deviceId" 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" |
| | | :disabled="dataForm!=null && resultVal!=null" |
| | | @click="codeDevice(scope.row,scope.$index)"></el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="note" label="检验描述" width="260" > |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="检验描述"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="结论" min-width="150"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <span v-if="scope.row.testState == 0" style="color:#F56C6C">不合格</span> |
| | | <span v-else-if="scope.row.testState == 1" style="color:#67C23A">合格</span> |
| | | <span v-else>暂无结论</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="操作" width="150"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.fId!=null"> |
| | | <el-button type="text" @click="addChildren(scope.row)">添加项目</el-button> |
| | | <el-button type="text" @click="delChildren(scope.row,scope.$index,true)">删除行</el-button> |
| | | </div> |
| | | <el-button v-else type="text" @click="delChildren(scope.row,scope.$index,false)">取消</el-button> |
| | | </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 |
| | | 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-column> |
| | | <el-table-column prop="required" label="标准值" width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.required" |
| | | placeholder="请输入标准值"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="testValue" label="检测值" min-width="260" v-for="(item,index) in empiricalValueAdd" :key="index"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select style="width:100%" allow-create filterable default-first-option |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请输入或选择检测值" |
| | | @change="changeState(scope.row,scope.$index)"> |
| | | <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> |
| | | </el-select> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:80%" |
| | | v-model="scope.row.deviceId" 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" |
| | | :disabled="dataForm!=null && resultVal!=null" |
| | | @click="codeDevice(scope.row,scope.$index)"></el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="note" label="检验描述" width="260" > |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="检验描述"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="结论" min-width="150"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <span v-if="scope.row.testState == 0" style="color:#F56C6C">不合格</span> |
| | | <span v-else-if="scope.row.testState == 1" style="color:#67C23A">合格</span> |
| | | <span v-else>暂无结论</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="操作" width="150"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.fId!=null"> |
| | | <el-button type="text" @click="addChildren(scope.row)">添加项目</el-button> |
| | | <el-button type="text" @click="delChildren(scope.row,scope.$index,true)">删除行</el-button> |
| | | </div> |
| | | <el-button v-else type="text" @click="delChildren(scope.row,scope.$index,false)">取消</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table :data="processConfigFileTableData" height="260px"> |
| | | <el-table-column |
| | | prop="rawInsNo" |
| | | align="center" |
| | | 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" |
| | | >删除</el-button |
| | | > |
| | | <el-button |
| | | @click="downloadProcessConfigFile(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | >下载</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <div class="rawMaterial-result"> |
| | | <el-row> |
| | |
| | | <el-button type="primary" @click="submitSave()">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="扫描" |
| | | :visible.sync="qrcode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeCompont" @ok="getResultInfo" @cancelCodeDialog="cancelCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="qrcode = false">取 消</el-button> |
| | | <el-button type="primary" @click="qrcode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="设备扫描" |
| | | :visible.sync="deviceCode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deviceCode = false">取 消</el-button> |
| | | <el-button type="primary" @click="deviceCode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="扫描" |
| | | :visible.sync="qrcode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeCompont" @ok="getResultInfo" @cancelCodeDialog="cancelCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="qrcode = false">取 消</el-button> |
| | | <el-button type="primary" @click="qrcode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="设备扫描" |
| | | :visible.sync="deviceCode" |
| | | width="60%"> |
| | | <div style="height: 100vh;width: 100%;"> |
| | | <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deviceCode = false">取 消</el-button> |
| | | <el-button type="primary" @click="deviceCode = false">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | getObj, |
| | | updateRawInsProduct, |
| | | updateRawInspectsById, |
| | | getProcessConfigFiles, |
| | | downloadProcessConfigFile, |
| | | deleteProcessConfigFile, |
| | | updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial' |
| | | import rawMaterialPartDialog from '@/views/common/rawMaterial-part' |
| | | import { getStore } from '@/util/store' |
| | | import qrCodeApp from '@/views/common/qrCodeApp' |
| | | import transformImage from '@/util/fileTransform' |
| | | export default { |
| | | components:{ |
| | | rawMaterialPartDialog, |
| | |
| | | computed:{}, |
| | | data(){ |
| | | return{ |
| | | progrecessFileLoading: false, |
| | | processConfigFileTableData: [], |
| | | fileList: [], |
| | | headers: { |
| | | Authorization: 'Bearer ' + getStore({ name: 'access_token' }) |
| | | }, |
| | | paramData: { |
| | | rawInsNo: '', |
| | | lineNumber: '' |
| | | }, |
| | | row: null, |
| | | proIndex: 0, |
| | | deviceCode: false, |
| | |
| | | }, |
| | | }, |
| | | methods:{ |
| | | tabsClick(tab,even){ |
| | | if(tab.index == 1){ |
| | | this.getConfigFiles(); |
| | | } |
| | | }, |
| | | getConfigFiles() { |
| | | const param = { |
| | | rawInsNo: this.dataForm.rawInsNo, |
| | | lineNumber: this.dataForm.id |
| | | } |
| | | getProcessConfigFiles(param).then((res) => { |
| | | this.processConfigFileTableData = res.data.data |
| | | }) |
| | | }, |
| | | downloadProcessConfigFile(row) { |
| | | downloadProcessConfigFile({ |
| | | bucket: row.bucketName, |
| | | fileName: row.fileName, |
| | | originalFileName: row.originalFileName |
| | | }) |
| | | }, |
| | | delProcessConfigFile(row) { |
| | | this.$confirm('是否删除该附件', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | closeOnClickModal: false |
| | | }) |
| | | .then(function() { |
| | | return deleteProcessConfigFile(row.id) |
| | | }) |
| | | .then((data) => { |
| | | this.getConfigFiles() |
| | | }) |
| | | }, |
| | | submitUpload() { |
| | | this.paramData.rawInsNo = this.dataForm.rawInsNo |
| | | this.paramData.lineNumber = this.dataForm.id |
| | | this.progrecessFileLoading = true |
| | | }, |
| | | uploadSuccess() { |
| | | this.progrecessFileLoading = false |
| | | this.getConfigFiles() |
| | | }, |
| | | cancelDeviceCodeDialog(){ |
| | | this.deviceCode = false |
| | | }, |
| | |
| | | this.proIndex=index |
| | | }, |
| | | getResultInfo(data){ |
| | | console.log("扫描后执行",data); |
| | | if(!data.includes("part_no")){ |
| | | this.$message({ |
| | | message: '未识别出二位码零件信息!', |
| | |
| | | <style> |
| | | .rawMaterial-detail { |
| | | width: 100%; |
| | | height: 470px; |
| | | height: 530px; |
| | | padding: 10px 20px; |
| | | display: flex; |
| | | border: 1px solid #ddd; |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | box-sizing: border-box; |
| | | flex-wrap: wrap; |
| | | /* display: flex; |
| | | flex-wrap: wrap; */ |
| | | } |
| | | |
| | | .rawMaterial-result { |