¶Ô±ÈÐÂÎļþ |
| | |
| | | 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) |
| | | }) |
| | | } |
| | |
| | | isShowHide: true, // æ¯å¦æ¾ç¤ºæ¾å½±æé®H |
| | | isSearch: true, // é«çº§æ¥è¯¢æé® |
| | | defaultOrderBy: { column: 'createTime', direction: 'desc' }, |
| | | cancelRunCreated: true |
| | | cancelRunCreated: false |
| | | }, |
| | | table: { |
| | | total: 0, |
| | |
| | | column: [ |
| | | { |
| | | minWidth: '100', |
| | | width: '100px', |
| | | prop: 'contractNo', |
| | | label: 'ååç¼å·', |
| | | prop: 'createTime', |
| | | label: 'çäº§æ¥æ', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'date', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'workShop', |
| | | label: '车é´', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'partName', |
| | | label: 'ç产é¶ä»¶', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'partNo', |
| | | label: 'ç产é¶ä»¶å·', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'staffName', |
| | | label: 'ç产人å', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'workSum', |
| | | label: 'æ¥å·¥æ»æ°é', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'unit', |
| | | label: 'åä½', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text', |
| | | }, |
| | | { |
| | | minWidth: '100', |
| | | prop: 'workTotal', |
| | | label: 'æ¥å·¥æ»æ¬¡æ°', |
| | | sort: true, |
| | | isTrue: true, |
| | | isSearch: true, |
| | |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in isSpecialIns" |
| | | v-for="item in isSpecialInss" |
| | | :key="item.id" |
| | | :label="item.label" |
| | | :value="item.value" |
| | |
| | | return { |
| | | innerVisible: false, |
| | | workCenterOptions: [], |
| | | isSpecialIns: [{ label: 'æ¯', value: true} ,{label: 'å¦', value: false }], |
| | | isSpecialInss: [{ label: 'æ¯', value: true} ,{label: 'å¦', value: false }], |
| | | dataForm: { |
| | | id: 0, |
| | | workCenter: null, |
| | | isSpecialIns: null, |
| | | machRunFactor: 0, |
| | | machSetupTime: 0, |
| | | laborClassNo: null, |
| | |
| | | }, |
| | | methods: { |
| | | saveSelectRow() { |
| | | this.$refs.operationDataForm.validate((valid) => { |
| | | /* this.$refs.operationDataForm.validate((valid) => { |
| | | if (valid) { |
| | | if ( |
| | | this.dataForm.machRunFactor == 0 && |
| | |
| | | } |
| | | if (remindFlag) { |
| | | this.$message.error(remindInfo) |
| | | } else { |
| | | } else { */ |
| | | moRouringOperation(this.dataForm).then((response) => { |
| | | const data = response.data |
| | | if (data.code === 0) { |
| | | this.currOrderOperation.workCenter = this.dataForm.workCenter |
| | | this.currOrderOperation.isSpecialIns = this.dataForm.isSpecialIns |
| | | this.currOrderOperation.machRunFactor = |
| | | this.dataForm.machRunFactor |
| | | this.currOrderOperation.machSetupTime = |
| | |
| | | this.$message.error('ç¼è¾å¤±è´¥') |
| | | } |
| | | }) |
| | | } |
| | | /* } |
| | | } |
| | | } |
| | | }) |
| | | }) */ |
| | | }, |
| | | // è·åIFS人工类å«çæ°æ®åå
¸ |
| | | getLaborClassNo() { |
| | |
| | | </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%"> |
| | |
| | | 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, |
| | |
| | | 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){ |
| | |
| | | <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 { |
| | |
| | | </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> |
| | |
| | | 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:{ |
| | | }, |
| | |
| | | }, |
| | | data(){ |
| | | return{ |
| | | progrecessFileLoading: false, |
| | | processConfigFileTableData: [], |
| | | headers: { |
| | | Authorization: 'Bearer ' + getStore({ name: 'access_token' }) |
| | | }, |
| | | paramData: { |
| | | rawInsNo: '', |
| | | lineNumber: '', |
| | | type: 4 |
| | | }, |
| | | inspectMoulds: [], |
| | | isShow: true, |
| | | submitData: { |
| | |
| | | } |
| | | }, |
| | | 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=>{ |
| | |
| | | <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 { |
| | |
| | | </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%"> |
| | |
| | | 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, |
| | |
| | | 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 |
| | |
| | | <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 { |
| | |
| | | :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" |
| | |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | |
| | | <el-table :data="processConfigFileTableData" height="260px"> |
| | | <el-table-column |
| | | prop="rawInsNo" |
| | |
| | | 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' |
| | |
| | | Authorization: 'Bearer ' + getStore({ name: 'access_token' }) |
| | | }, |
| | | paramData: { |
| | | rawInsNo: '', |
| | | lineNumber: '' |
| | | no: '', |
| | | lineNumber: '', |
| | | type: 0 |
| | | }, |
| | | row: null, |
| | | proIndex: 0, |
| | |
| | | }, |
| | | 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 |
| | |
| | | }) |
| | | }, |
| | | submitUpload() { |
| | | this.paramData.rawInsNo = this.dataForm.rawInsNo |
| | | this.paramData.no = this.dataForm.rawInsNo |
| | | this.paramData.lineNumber = this.dataForm.id |
| | | this.progrecessFileLoading = true |
| | | }, |
| | |
| | | return this.getInspectionTypeOptionList() |
| | | } |
| | | }, |
| | | { |
| | | /* { |
| | | minWidth: '120', |
| | | prop: 'operationName', |
| | | label: 'å·¥åºåç§°', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | { |
| | | minWidth: '120', |
| | | prop: 'state', |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥åº" prop="operationName"> |
| | | <!-- <el-form-item label="å·¥åº" prop="operationName"> |
| | | <el-input v-model="dataForm.operationName" placeholder="è¯·éæ©å·¥åº"> |
| | | <el-button |
| | | slot="append" |
| | |
| | | @click="openOperationDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="dataForm.remark" placeholder=""></el-input> |
| | | </el-form-item> |