src/api/quality/attachment.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/quality/finishedProductInspection/finishedProduct-form.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/quality/packageinspect/packageInspect-form.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/quality/processInspect/processInspect-form.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/quality/rawMaterial/rawMaterial-form.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/quality/rawMaterial/testValue-select.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/quality/attachment.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ import request from '@/router/axios' export function getProcessConfigFiles(data) { return request({ url: '/mes/attachment/processConfigFiles', method: 'get', params: data }) } export function deleteProcessConfigFile(id) { return request({ url: '/mes/attachment/processConfigFile/'+id, method: 'delete', }) } export function downloadProcessConfigFile(data) { return request({ url: '/mes/attachment/processConfig/'+data.bucket+'/'+data.fileName, method: 'post', responseType: 'blob' }).then((response) => { // å¤çè¿åçæä»¶æµ const blob = response.data const link = document.createElement('a') link.href = URL.createObjectURL(blob) link.download = data.originalFileName document.body.appendChild(link) link.click() window.setTimeout(function() { URL.revokeObjectURL(blob) document.body.removeChild(link) }, 0) }) } src/views/quality/finishedProductInspection/finishedProduct-form.vue
@@ -99,112 +99,191 @@ </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" 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" show-overflow-tooltip ></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)" placeholder="请è¾å ¥æ£æµå¼"></el-input> <span v-if="resultVal != 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> <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="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" show-overflow-tooltip ></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)" placeholder="请è¾å ¥æ£æµå¼"></el-input> <span v-if="resultVal != 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 && processInspectVo.id!=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)"> <el-option v-for="(item,index) in deviceList" :key="index" :value="item.id" :label="item.code +'-'+ item.name"></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 && processInspectVo.id!=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)"> <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 prop="inspectionValue" 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-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 prop="inspectionValue" 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.inote" @blur="changeState(scope.row)" placeholder="请è¾å ¥æ£éªæè¿°"></el-input> <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> <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-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"> <span v-if="resultVal != null && processInspectVo.id != null" v-text="scope.row.inote"></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-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 drag ref="upload" action="/mes/attachment/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="finishedInsNo" 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"> <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> <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-col> </el-row> </el-table> </el-tab-pane> </el-tabs> </div> <div class="finishedProduct-result"> <el-row style="width:100%"> @@ -260,15 +339,30 @@ selectDeviceAPI, updateLocationIdById, } from '@/api/quality/finishedProduct' import { getProcessConfigFiles, deleteProcessConfigFile, downloadProcessConfigFile } from '@/api/quality/attachment' import { getIfsLocationByGroupCopyAll } from '@/api/warehouse/location' import { remote } from '@/api/admin/dict' import qrCodeApp from '@/views/common/qrCodeApp' import { getStore } from '@/util/store' export default { components:{ qrCodeApp }, data() { return { progrecessFileLoading: false, processConfigFileTableData: [], headers: { Authorization: 'Bearer ' + getStore({ name: 'access_token' }) }, paramData: { no: '', lineNumber: '', type: 1, }, row: null, proIndex: 0, deviceCode: false, @@ -333,7 +427,50 @@ this.init() }, methods: { cancelDeviceCodeDialog(){ 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.finInsNo, lineNumber: this.processInspectVo.id, type: 1 } 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.finInsNo this.paramData.lineNumber = this.processInspectVo.id this.progrecessFileLoading = true }, uploadSuccess() { this.progrecessFileLoading = false this.getConfigFiles() }, tabsClick(tab,even){ if(tab.index == 1){ this.getConfigFiles(); } }, cancelDeviceCodeDialog(){ this.deviceCode = false }, getDeviceResultInfo(val){ @@ -665,14 +802,14 @@ <style scoped> .finishedProduct-detail { width: 100%; height: 500px; height: 520px; 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; */ } basic.finishedProduct-result { src/views/quality/packageinspect/packageInspect-form.vue
@@ -62,87 +62,165 @@ </el-row> </el-form> </div> <div class="packageInspect-detail"> <el-row :gutter="10" style="width:100%;z-index: 10;height:30px;"> <el-col :span="12">æ£éªé¡¹ç®</el-col> <el-col :span="12" style="text-align: right;"> <el-dropdown @command="handleCommand" v-if="isShow"> <el-button size="mini" style="margin-right: 10px;" type="primary" > 忢æ£éªé¡¹æ¨¡æ¿<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item :key="index" v-for="(item,index) in inspectMoulds" :command="item.father">{{item.father}}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <el-button v-if="resultVal=='' || resultVal==null" size="mini" @click="clickAddLine()">æ·»å æ£éªé¡¹ç®</el-button> <el-button v-if="resultVal=='' || resultVal==null" type="primary" size="mini" @click="savePackIns()">ä¿å</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="randomId" class="l-mes" default-expand-all :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 prop="name" label="项ç®" width="160"> <template slot-scope="scope"> <el-input :readonly="resultVal!=null || !scope.row.isEdit" v-if="scope.row.children" class="inline-input" style="width:80%;" v-model="scope.row.name" placeholder="请è¾å ¥é¡¹ç®åç§°"></el-input> </template> </el-table-column> <el-table-column prop="required" label="è¦æ±" width="160"> <template slot-scope="scope"> <div v-if="!scope.row.children"> <el-tooltip :content="scope.row.required"> <el-input :readonly="resultVal!=null || !scope.row.isEdit" v-model="scope.row.required" placeholder="请è¾å ¥è¦æ±"></el-input> </el-tooltip> </div> </template> </el-table-column> <el-table-column prop="note" label="æ£éªæè¿°" width="160"> <template slot-scope="scope"> <div v-if="!scope.row.children"> <el-input :readonly="resultVal!=null" v-model="scope.row.note" placeholder="æ£éªæè¿°"></el-input> </div> </template> </el-table-column> <el-table-column prop="testState" label="ç»è®º" min-width="150"> <template slot-scope="scope"> <el-select style="width:100%" :disabled="resultVal!=null" @change="changeResult" v-model="scope.row.result" v-if="!scope.row.children"> <el-option label="åæ ¼" value="åæ ¼"></el-option> <el-option label="ä¸åæ ¼" value="ä¸åæ ¼"></el-option> <el-option label="ä¸éç¨" value="ä¸éç¨"></el-option> </el-select> </template> </el-table-column> <el-table-column v-if="resultVal=='' || resultVal==null" fixed="right" style="background-color: white;" label="æä½" width="200"> <template slot-scope="scope"> <el-button v-if="scope.row.children && scope.row.isEdit" icon="el-icon-circle-plus-outline" type="text" @click="clickAddChildren(scope.row,scope.$index)">æ·»å è¡</el-button> <el-button v-if="!scope.row.children && scope.row.isEdit" icon="el-icon-circle-close" type="text" @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">åæ¶</el-button> <el-button v-if="scope.row.children && scope.row.isEdit" icon="el-icon-circle-close" type="text" @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">å é¤é¡¹ç®</el-button> <div> <el-tabs class="packageInspect-detail" @tab-click="tabsClick"> <el-tab-pane label="æ£éªé¡¹ç®"> <el-row> <el-col :span="24" style="text-align: right;"> <el-dropdown @command="handleCommand" v-if="isShow && (resultVal==null || resultVal=='')"> <el-button size="mini" style="margin-right: 10px;" type="primary" > 忢æ£éªé¡¹æ¨¡æ¿<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item :key="index" v-for="(item,index) in inspectMoulds" :command="item.father">{{item.father}}</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <el-button v-if="resultVal=='' || resultVal==null" size="mini" @click="clickAddLine()">æ·»å æ£éªé¡¹ç®</el-button> <el-button v-if="resultVal=='' || resultVal==null" type="primary" size="mini" @click="savePackIns()">ä¿å</el-button> </el-col> </el-row> <el-row> <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="randomId" class="l-mes" default-expand-all :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 prop="name" label="项ç®" min-width="160"> <template slot-scope="scope"> <el-input :readonly="resultVal!=null || !scope.row.isEdit" v-if="scope.row.children" class="inline-input" style="width:80%;" v-model="scope.row.name" placeholder="请è¾å ¥é¡¹ç®åç§°"></el-input> </template> </el-table-column> <el-table-column prop="required" label="è¦æ±" min-width="160"> <template slot-scope="scope"> <div v-if="!scope.row.children"> <el-tooltip :content="scope.row.required"> <el-input :readonly="resultVal!=null || !scope.row.isEdit" v-model="scope.row.required" placeholder="请è¾å ¥è¦æ±"></el-input> </el-tooltip> </div> </template> </el-table-column> <el-table-column prop="note" label="æ£éªæè¿°" min-width="160"> <template slot-scope="scope"> <div v-if="!scope.row.children"> <el-input :readonly="resultVal!=null" v-model="scope.row.note" placeholder="æ£éªæè¿°"></el-input> </div> </template> </el-table-column> <el-table-column prop="testState" label="ç»è®º" min-width="150"> <template slot-scope="scope"> <el-select style="width:100%" :disabled="resultVal!=null" @change="changeResult" v-model="scope.row.result" v-if="!scope.row.children"> <el-option label="åæ ¼" value="åæ ¼"></el-option> <el-option label="ä¸åæ ¼" value="ä¸åæ ¼"></el-option> <el-option label="ä¸éç¨" value="ä¸éç¨"></el-option> </el-select> </template> </el-table-column> <el-table-column v-if="resultVal=='' || resultVal==null" fixed="right" style="background-color: white;" label="æä½" width="200"> <template slot-scope="scope"> <el-button v-if="scope.row.children && scope.row.isEdit" icon="el-icon-circle-plus-outline" type="text" @click="clickAddChildren(scope.row,scope.$index)">æ·»å è¡</el-button> <el-button v-if="!scope.row.children && scope.row.isEdit" icon="el-icon-circle-close" type="text" @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">åæ¶</el-button> <el-button v-if="scope.row.children && scope.row.isEdit" icon="el-icon-circle-close" type="text" @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">å é¤é¡¹ç®</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/attachment/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-column> </el-table> </el-col> </el-row> </el-tab-pane> </el-tabs> </div> <div class="packageInspect-result"> <el-row> @@ -197,7 +275,13 @@ updatePackageInspectById, getCustomer, } from '@/api/quality/packageInspect' import { getProcessConfigFiles, deleteProcessConfigFile, downloadProcessConfigFile } from '@/api/quality/attachment' import {getAllTemplateByEnable} from '@/api/quality/packageInspectTemp' import { getStore } from '@/util/store' export default { computed:{ }, @@ -205,6 +289,16 @@ }, data(){ return{ progrecessFileLoading: false, processConfigFileTableData: [], headers: { Authorization: 'Bearer ' + getStore({ name: 'access_token' }) }, paramData: { rawInsNo: '', lineNumber: '', type: 4 }, inspectMoulds: [], isShow: true, submitData: { @@ -269,6 +363,49 @@ } }, methods:{ 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.dataForm.packInsNo, lineNumber: this.dataForm.id, type: 4 } 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.dataForm.packInsNo this.paramData.lineNumber = this.dataForm.id this.progrecessFileLoading = true }, uploadSuccess() { this.progrecessFileLoading = false this.getConfigFiles() }, tabsClick(tab,even){ if(tab.index == 1){ this.getConfigFiles(); } }, checkShowState(){ let num = 0 this.list.forEach(ele=>{ @@ -539,14 +676,14 @@ <style> .packageInspect-detail { width: 100%; height: 490px; height: 520px; 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; */ } .packageInspect-result { src/views/quality/processInspect/processInspect-form.vue
@@ -105,107 +105,186 @@ </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" 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> <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="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-col> </el-row> </el-tab-pane> </el-tabs> </div> <div class="finishedProduct-result"> <el-row style="width:100%"> @@ -273,16 +352,32 @@ updateProcessInsProduct, updateProcessInspectsById, } from '@/api/quality/processInspect' import { getProcessConfigFiles, deleteProcessConfigFile, downloadProcessConfigFile } from '@/api/quality/attachment' 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' export default { components:{ qrCodeApp,processPart }, data() { return { progrecessFileLoading: false, processConfigFileTableData: [], headers: { Authorization: 'Bearer ' + getStore({ name: 'access_token' }) }, paramData: { rawInsNo: '', lineNumber: '', type: 2 }, paramObj:{}, qrcode: false, row: null, @@ -348,12 +443,55 @@ this.init() }, methods: { 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 console.log(this.workshop); // this.paramObj = { // code: this.dataForm.code // } }, cancelCodeDialog(){ this.qrcode = false @@ -710,14 +848,12 @@ <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 { src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -255,7 +255,7 @@ :disabled="dataForm.rawInsNo==null || (resultVal!=null && resultVal!='')" drag ref="upload" action="/mes/rawInsProduct/upload" action="/mes/attachment/upload" :auto-upload="true" :headers="headers" :before-upload="submitUpload" @@ -270,7 +270,6 @@ </div> </el-upload> </div> <el-table :data="processConfigFileTableData" height="260px"> <el-table-column prop="rawInsNo" @@ -400,10 +399,12 @@ getObj, updateRawInsProduct, updateRawInspectsById, getProcessConfigFiles, downloadProcessConfigFile, deleteProcessConfigFile, updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial' import { getProcessConfigFiles, deleteProcessConfigFile, downloadProcessConfigFile } from '@/api/quality/attachment' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' import { getStore } from '@/util/store' import qrCodeApp from '@/views/common/qrCodeApp' @@ -422,8 +423,9 @@ Authorization: 'Bearer ' + getStore({ name: 'access_token' }) }, paramData: { rawInsNo: '', lineNumber: '' no: '', lineNumber: '', type: 0 }, row: null, proIndex: 0, @@ -519,8 +521,9 @@ }, getConfigFiles() { const param = { rawInsNo: this.dataForm.rawInsNo, lineNumber: this.dataForm.id no: this.dataForm.rawInsNo, lineNumber: this.dataForm.id, type: 0 } getProcessConfigFiles(param).then((res) => { this.processConfigFileTableData = res.data.data @@ -546,7 +549,7 @@ }) }, submitUpload() { this.paramData.rawInsNo = this.dataForm.rawInsNo this.paramData.no = this.dataForm.rawInsNo this.paramData.lineNumber = this.dataForm.id this.progrecessFileLoading = true }, src/views/quality/rawMaterial/testValue-select.vue
ÎļþÒÑɾ³ý