From 0c46dca0eaf58a1e73cc36682cce3ae4f066874d Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期一, 25 十二月 2023 14:00:12 +0800 Subject: [PATCH] modified: src/api/quality/rawMaterial.js modified: src/views/quality/packageinspect/index.vue modified: src/views/quality/rawMaterial/rawMaterial-form.vue modified: vue.config.js --- src/views/quality/packageinspect/index.vue | 8 src/views/quality/rawMaterial/rawMaterial-form.vue | 432 +++++++++++++++++++++++++++++++++++------------------ vue.config.js | 2 src/api/quality/rawMaterial.js | 15 + 4 files changed, 303 insertions(+), 154 deletions(-) diff --git a/src/api/quality/rawMaterial.js b/src/api/quality/rawMaterial.js index 5f96d9d..f00fc4c 100644 --- a/src/api/quality/rawMaterial.js +++ b/src/api/quality/rawMaterial.js @@ -95,3 +95,18 @@ }) } +export function getProcessConfigFiles(data) { + return request({ + url: '/mes/rawInsProduct/processConfigFiles', + method: 'get', + params: data + }) +} + +export function deleteProcessConfigFile(id) { + return request({ + url: '/mes/rawInsProduct/processConfigFile/'+id, + method: 'delete', + }) +} + diff --git a/src/views/quality/packageinspect/index.vue b/src/views/quality/packageinspect/index.vue index a575e60..3cc33c5 100644 --- a/src/views/quality/packageinspect/index.vue +++ b/src/views/quality/packageinspect/index.vue @@ -141,13 +141,7 @@ searchInfoType: 'text' }, ], - toolbar: [ - // { - // text: '鏂板', - // type: 'primary', - // fun: this.addOrUpdateHandle - // }, - ], + toolbar: [], operator: [ { text: '浣滃簾', diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index 7e74ee7..5b45117 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -7,7 +7,7 @@ <h2 v-else>缂栬緫-鍘熸潗鏂欐楠�</h2> </div> <div class="btn-group header-right"> - <el-button @click="save()" type="primary" v-if="this.dataForm.id==null">淇濆瓨</el-button> + <el-button @click="save()" type="primary" v-if="dataForm.id==null">淇濆瓨</el-button> </div> </div> <div class="page-main"> @@ -29,6 +29,11 @@ <el-col :span="6"> <el-form-item label="闆朵欢鍙�" prop="code"> <el-input v-model="dataForm.code" disabled> + <el-button + slot="append" + icon="el-icon-search" + :disabled="resultVal!=null && dataForm.id!=null" + @click="queryCode"></el-button> <el-button slot="append" icon="el-icon-full-screen" @@ -106,124 +111,203 @@ </el-row> </el-form> </div> - <div class="rawMaterial-detail"> - <el-row style="width:100%;z-index: 10;height:50px;"> - <el-col :xs="12" :lg="15">妫�楠岄」鐩�</el-col> - <el-col :xs="4" :lg="3" style="text-align: right;"> - <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button> - </el-col> - <el-col :xs="4" :lg="3" style="text-align: right;"> - <el-button class="pad-addcol-btn" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">娣诲姞妫�娴嬪�煎垪</el-button> - </el-col> - <el-col :xs="4" :lg="3" style="text-align: right;"> - <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> - </el-col> - </el-row> - <el-row style="width:100%;"> - <el-col :span="24"> - <el-table - :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" - :cell-style="{textAlign:'center'}" - ref="table" - :data="list" - border - style="width: 100%;" - height="400" - row-key="iid" - default-expand-all - :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> - <el-table-column type="index" label="搴忓彿" width="60"> - </el-table-column> - <el-table-column prop="father" label="妫�楠岄」鐩�" width="260"> - <template slot-scope="scope"> - <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"></el-input> - </template> - </el-table-column> - <el-table-column prop="name" label="椤圭洰" width="260"> - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name" - placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> - </div> - </template> - </el-table-column> - <el-table-column prop="unit" label="鍗曚綅" width="260"> - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input> - </div> - </template> + <div> + <el-tabs class="rawMaterial-detail" @tab-click="tabsClick"> + <el-tab-pane label="妫�楠岄」鐩�"> + <el-row style="width:100%;z-index: 10;height:50px;"> + <el-col :xs="12" :lg="18"></el-col> + <el-col :xs="4" :lg="2" style="text-align: right;"> + <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button> + </el-col> + <el-col :xs="4" :lg="2" style="text-align: right;"> + <el-button class="pad-addcol-btn" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">娣诲姞妫�娴嬪�煎垪</el-button> + </el-col> + <el-col :xs="4" :lg="2" style="text-align: right;"> + <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> + </el-col> + </el-row> + <el-row style="width:100%;"> + <el-col :span="24"> + <el-table + :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" + :cell-style="{textAlign:'center'}" + ref="table" + :data="list" + border + style="width: 100%;" + height="400" + row-key="iid" + default-expand-all + :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> + <el-table-column type="index" label="搴忓彿" width="60"> + </el-table-column> + <el-table-column prop="father" label="妫�楠岄」鐩�" width="260"> + <template slot-scope="scope"> + <el-input v-if="scope.row.children" style="width:90%" :disabled="dataForm.id!=null" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"></el-input> + </template> + </el-table-column> + <el-table-column prop="name" label="椤圭洰" width="260"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-input class="inline-input" :disabled="dataForm.id!=null" v-model="scope.row.name" + placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + </div> + </template> + </el-table-column> + <el-table-column prop="unit" label="鍗曚綅" width="260"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input> + </div> + </template> + + </el-table-column> + <el-table-column prop="required" label="鏍囧噯鍊�" width="260"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.required" + placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> + </div> + </template> + </el-table-column> + <el-table-column prop="testValue" label="妫�娴嬪��" min-width="260" v-for="(item,index) in empiricalValueAdd" :key="index"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> + <el-select style="width:100%" allow-create filterable default-first-option + :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" + v-model="scope.row.testValueList[index]" + placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" + @change="changeState(scope.row,scope.$index)"> + <el-option label="鏄�" value="鏄�"/> + <el-option label="鍚�" value="鍚�"/> + </el-select> + </el-tooltip> + </div> + </template> + </el-table-column> + <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:80%" + v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> + <el-option v-for="(item,index) in deviceList" + :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> + </el-select> + <el-button + size="small" + slot="append" + icon="el-icon-full-screen" + :disabled="dataForm!=null && resultVal!=null" + @click="codeDevice(scope.row,scope.$index)"></el-button> + </div> + </template> + </el-table-column> + <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" > + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + </div> + </template> + </el-table-column> + <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="缁撹" min-width="150"> + <template slot-scope="scope"> + <div v-if="!scope.row.children"> + <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span> + <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span> + <span v-else>鏆傛棤缁撹</span> + </div> + </template> + </el-table-column> + <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="鎿嶄綔" width="150"> + <template slot-scope="scope"> + <div v-if="scope.row.fId!=null"> + <el-button type="text" @click="addChildren(scope.row)">娣诲姞椤圭洰</el-button> + <el-button type="text" @click="delChildren(scope.row,scope.$index,true)">鍒犻櫎琛�</el-button> + </div> + <el-button v-else type="text" @click="delChildren(scope.row,scope.$index,false)">鍙栨秷</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + </el-tab-pane> + <el-tab-pane label="闄勪欢涓婁紶" type="card"> + <div style="display: flex;justify-content:flex-end;"> + <div></div> + </div> + <div + v-loading="progrecessFileLoading" + element-loading-text="璇风◢绛夛紝鏂囦欢涓婁紶涓�" + > + <el-upload + drag + ref="upload" + action="/mes/rawInsProduct/upload" + :auto-upload="true" + :headers="headers" + :before-upload="submitUpload" + :on-success="uploadSuccess" + :data="paramData" + :with-credentials="true" + :show-file-list="false" + > + <i class="el-icon-upload"></i> + <div class="el-upload__text"> + 灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em> + </div> + </el-upload> + </div> - </el-table-column> - <el-table-column prop="required" label="鏍囧噯鍊�" width="260"> - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <el-input :disabled="dataForm.id != null" v-model="scope.row.required" - placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> - </div> - </template> - </el-table-column> - <el-table-column prop="testValue" label="妫�娴嬪��" min-width="260" v-for="(item,index) in empiricalValueAdd" :key="index"> - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> - <el-select style="width:100%" allow-create filterable default-first-option - :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" - v-model="scope.row.testValueList[index]" - placeholder="璇疯緭鍏ユ垨閫夋嫨妫�娴嬪��" - @change="changeState(scope.row,scope.$index)"> - <el-option label="鏄�" value="鏄�"/> - <el-option label="鍚�" value="鍚�"/> - </el-select> - </el-tooltip> - </div> - </template> - </el-table-column> - <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <el-select ref="" :disabled="dataForm!=null && resultVal!=null" style="width:80%" - v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> - <el-option v-for="(item,index) in deviceList" - :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> - </el-select> - <el-button - size="small" - slot="append" - icon="el-icon-full-screen" - :disabled="dataForm!=null && resultVal!=null" - @click="codeDevice(scope.row,scope.$index)"></el-button> - </div> - </template> - </el-table-column> - <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" > - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> - </div> - </template> - </el-table-column> - <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="缁撹" min-width="150"> - <template slot-scope="scope"> - <div v-if="!scope.row.children"> - <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span> - <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span> - <span v-else>鏆傛棤缁撹</span> - </div> - </template> - </el-table-column> - <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="鎿嶄綔" width="150"> - <template slot-scope="scope"> - <div v-if="scope.row.fId!=null"> - <el-button type="text" @click="addChildren(scope.row)">娣诲姞椤圭洰</el-button> - <el-button type="text" @click="delChildren(scope.row,scope.$index,true)">鍒犻櫎琛�</el-button> - </div> - <el-button v-else type="text" @click="delChildren(scope.row,scope.$index,false)">鍙栨秷</el-button> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> + <el-table :data="processConfigFileTableData" height="260px"> + <el-table-column + prop="rawInsNo" + align="center" + label="鍘熸潗鏂欐楠岀紪鍙�" + show-overflow-tooltip + ></el-table-column> + <el-table-column + prop="originalFileName" + align="center" + label="鍘熸枃浠跺悕" + width="200" + ></el-table-column> + <el-table-column prop="fileName" align="center" label="鏂囦欢鍚庣紑"></el-table-column> + <el-table-column prop="createUser" align="center" label="涓婁紶浜�"></el-table-column> + <el-table-column + prop="createTime" + align="center" + label="涓婁紶鏃堕棿" + show-overflow-tooltip + ></el-table-column> + <el-table-column prop="updateUser" align="center" label="鏇存柊浜�"> + </el-table-column> + <el-table-column + prop="updateTime" + align="center" + label="鏇存柊鏃堕棿" + show-overflow-tooltip + ></el-table-column> + <el-table-column align="center" label="鎿嶄綔"> + <template slot-scope="scope"> + <el-button + @click="delProcessConfigFile(scope.row)" + type="text" + size="small" + :disabled="resultVal!=null" + >鍒犻櫎</el-button + > + <el-button + @click="downloadProcessConfigFile(scope.row)" + type="text" + size="small" + >涓嬭浇</el-button + > + </template> + </el-table-column> + </el-table> + </el-tab-pane> + </el-tabs> </div> <div class="rawMaterial-result"> <el-row> @@ -269,30 +353,30 @@ <el-button type="primary" @click="submitSave()">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog - title="鎵弿" - :visible.sync="qrcode" - width="60%"> - <div style="height: 100vh;width: 100%;"> - <qr-code-app ref="codeCompont" @ok="getResultInfo" @cancelCodeDialog="cancelCodeDialog"></qr-code-app> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="qrcode = false">鍙� 娑�</el-button> - <el-button type="primary" @click="qrcode = false">纭� 瀹�</el-button> - </span> -</el-dialog> -<el-dialog - title="璁惧鎵弿" - :visible.sync="deviceCode" - width="60%"> - <div style="height: 100vh;width: 100%;"> - <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="deviceCode = false">鍙� 娑�</el-button> - <el-button type="primary" @click="deviceCode = false">纭� 瀹�</el-button> - </span> -</el-dialog> + <el-dialog + title="鎵弿" + :visible.sync="qrcode" + width="60%"> + <div style="height: 100vh;width: 100%;"> + <qr-code-app ref="codeCompont" @ok="getResultInfo" @cancelCodeDialog="cancelCodeDialog"></qr-code-app> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="qrcode = false">鍙� 娑�</el-button> + <el-button type="primary" @click="qrcode = false">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog + title="璁惧鎵弿" + :visible.sync="deviceCode" + width="60%"> + <div style="height: 100vh;width: 100%;"> + <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="deviceCode = false">鍙� 娑�</el-button> + <el-button type="primary" @click="deviceCode = false">纭� 瀹�</el-button> + </span> + </el-dialog> </div> </template> @@ -303,8 +387,11 @@ getObj, updateRawInsProduct, updateRawInspectsById, + getProcessConfigFiles, + deleteProcessConfigFile, updateDeviceById, chooseIFS} from '@/api/quality/rawMaterial' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' + import { getStore } from '@/util/store' import qrCodeApp from '@/views/common/qrCodeApp' export default { components:{ @@ -314,6 +401,16 @@ computed:{}, data(){ return{ + progrecessFileLoading: false, + processConfigFileTableData: [], + fileList: [], + headers: { + Authorization: 'Bearer ' + getStore({ name: 'access_token' }) + }, + paramData: { + rawInsNo: '', + lineNumber: '' + }, row: null, proIndex: 0, deviceCode: false, @@ -392,6 +489,50 @@ }, }, methods:{ + tabsClick(tab,even){ + if(tab.index == 1){ + this.getConfigFiles(); + } + }, + getConfigFiles() { + const param = { + rawInsNo: this.dataForm.rawInsNo, + lineNumber: this.dataForm.id + } + getProcessConfigFiles(param).then((res) => { + this.processConfigFileTableData = res.data.data + }) + }, + downloadProcessConfigFile(row) { + // downloadProcessConfigFile( + // row.fileName, + // row.bucketName, + // row.originalFileName + // ) + }, + delProcessConfigFile(row) { + this.$confirm('鏄惁鍒犻櫎璇ラ檮浠�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + closeOnClickModal: false + }) + .then(function() { + return deleteProcessConfigFile(row.id) + }) + .then((data) => { + this.getConfigFiles() + }) + }, + submitUpload() { + this.paramData.rawInsNo = this.dataForm.rawInsNo + this.paramData.lineNumber = this.dataForm.id + this.progrecessFileLoading = true + }, + uploadSuccess() { + this.progrecessFileLoading = false + this.getConfigFiles() + }, cancelDeviceCodeDialog(){ this.deviceCode = false }, @@ -420,7 +561,6 @@ this.proIndex=index }, getResultInfo(data){ - console.log("鎵弿鍚庢墽琛�",data); if(!data.includes("part_no")){ this.$message({ message: '鏈瘑鍒嚭浜屼綅鐮侀浂浠朵俊鎭紒', @@ -806,14 +946,14 @@ <style> .rawMaterial-detail { width: 100%; - height: 470px; + height: 530px; padding: 10px 20px; - display: flex; border: 1px solid #ddd; background-color: #fff; margin-top: 10px; box-sizing: border-box; - flex-wrap: wrap; + /* display: flex; + flex-wrap: wrap; */ } .rawMaterial-result { diff --git a/vue.config.js b/vue.config.js index 88c2c9d..2131d04 100644 --- a/vue.config.js +++ b/vue.config.js @@ -7,7 +7,7 @@ //const url = 'http://192.168.2.7:9999' // const url = 'http://192.168.32.45:9999' -// const url = 'http://localhost:9999' +const url = 'http://localhost:9999' const localUrl = 'http://localhost:8089' -- Gitblit v1.9.3