From ef4e46f182aee6253805e66286dee847c573cbde Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 22 五月 2024 17:18:34 +0800 Subject: [PATCH] 完成原材料、产品检验、过程检,包装检键盘切换输入框 --- src/views/quality/finishedProductInspection/finishedProduct-form.vue | 767 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 604 insertions(+), 163 deletions(-) diff --git a/src/views/quality/finishedProductInspection/finishedProduct-form.vue b/src/views/quality/finishedProductInspection/finishedProduct-form.vue index fd45c92..dbbc3f5 100644 --- a/src/views/quality/finishedProductInspection/finishedProduct-form.vue +++ b/src/views/quality/finishedProductInspection/finishedProduct-form.vue @@ -48,12 +48,14 @@ </el-col> <el-col :span="6"> <el-form-item label="浜у搧鍚嶇О锛�"> + <el-tooltip class="item" effect="dark" :content="processInspectVo.material"> <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null" v-model="processInspectVo.material" size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О"> <el-option v-for="(item,index) in optionsSamplename" :key="index" :label="item.material" :value="item.materialCode"> </el-option> </el-select> + </el-tooltip> </el-form-item> </el-col> <el-col :span="6"> @@ -63,7 +65,9 @@ </el-col> <el-col :span="6"> <el-form-item label="瑙勬牸鍨嬪彿锛�"> + <el-tooltip class="item" effect="dark" :content="processInspectVo.specificationsModel"> <el-input disabled v-model="processInspectVo.specificationsModel" autocomplete="off" /> + </el-tooltip> </el-form-item> </el-col> </el-row> @@ -86,115 +90,256 @@ </el-form-item> </el-col> <el-col :span="6" v-if="processInspectVo.id != null"> - <el-form-item label="浜у搧鍚堟牸搴撲綅锛�" prop="locationId"> - <el-select @change="changeLocation" clearable style="width:100%" - v-model="processInspectVo.locationId" placeholder="璇烽�夋嫨鍚堟牸搴撲綅" - :disabled="resultVal!=null && processInspectVo.id!=null" autocomplete="off"> - <el-option v-for="(item,i) in locationList" :key="i" - :label="item.locName+'-'+item.locNo" :value="item.id"></el-option> - </el-select> + <el-form-item label="浜у搧鍚堟牸搴撲綅锛�" prop="locName"> + <el-input v-model="processInspectVo.locName" clearable style="width:100%" placeholder="璇烽�夋嫨鍚堟牸搴撲綅" disabled autocomplete="off"> + </el-input> </el-form-item> </el-col> </el-row> </div> </el-form> </div> - <div class="finishedProduct-detail"> - <el-row style="width:100%;z-index: 10;height:30px;"> - <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col> - <el-col v-if="resultVal==null" :span="12" class="inspectionProject_span" style="text-align: right;"> - <el-button size="mini" @click="clickAddInspectionColumn()">娣诲姞妫�娴嬪�煎垪</el-button> - <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> - </el-col> - </el-row> - <el-row style="width:100%;"> - <el-col :span="24"> - <el-table border :data="inspectionItems" height="400" - :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" - :cell-style="{textAlign:'center'}" row-key="iid" default-expand-all - style="width: 100%" ref="table" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> - <el-table-column type="index" label="搴忓彿" width="60"></el-table-column> - <el-table-column label="椤圭洰" prop="father" width="240" ></el-table-column> - <el-table-column prop="iname" label="鎸囨爣" width="240" ></el-table-column> - <el-table-column prop="iunit" label="鍗曚綅" width="240" ></el-table-column> - <el-table-column prop="required" label="鏍囧噯鍊�" width="240" ></el-table-column> - <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��" - width="240" style="text-align: center;"> - <template slot-scope="scope"> - <el-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="small" + type="primary" + @click="saveTable()">淇濆瓨</el-button> + <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="璇疯緭鍏ユ娴嬪��" + :id="`detectionValue${index}`+scope.$index" + @keyup.native="moveFocus($event, scope.$index, `detectionValue${index}`)"></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> + <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="璇疯緭鍏ユ楠屾弿杩�" + :id="`remark`+scope.$index" + @keyup.native="moveFocus($event, scope.$index, `remark`)"></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="璇疯緭鍏ユ楠屾弿杩�" :id="`remark`+scope.$index" + @keyup.native="moveFocus($event, scope.$index, `remark`)"></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"> + <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 prop="deviceName" label="璇曢獙璁惧" min-width="250"> - <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:100%" v-model="scope.row.eId" - v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row)"> - <el-option v-for="(item,index) in deviceList" - :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> - </el-select> - </div> - </template> + </el-table> + </el-tab-pane> + <el-tab-pane label="闄勪欢"> + <el-table :data="configFileTableData" height="400px"> + <el-table-column + prop="orderNumber" + align="center" + label="璁㈠崟鍙�" + show-overflow-tooltip + > </el-table-column> - <el-table-column prop="inspectionValue" - label="妫�楠屾弿杩�" width="240" 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> - - <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 + 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 fixed="right" align="center" label="鎿嶄綔"> + <template slot-scope="scope"> + <el-button + @click="downloadProcessConfigFiles(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%"> @@ -204,9 +349,9 @@ <el-col :span="24"> <el-table border height="90" :data="inspectionResultForm" :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" - :cell-style="{textAlign:'center'}"> - <el-table-column prop="materialCode" label="鐗╂枡缂栧彿"></el-table-column> - <el-table-column prop="material" label="鐗╂枡鍚嶇О"></el-table-column> + :cell-style="{textAlign: 'center'}"> + <el-table-column prop="materialCode" width="200" label="鐗╂枡缂栧彿" show-overflow-tooltip></el-table-column> + <el-table-column prop="material" width="200" label="鐗╂枡鍚嶇О" show-overflow-tooltip></el-table-column> <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column> <el-table-column prop="result" label="妫�楠岀粨璁�"> <template slot-scope="scope"> @@ -224,6 +369,18 @@ </el-row> </div> </div> + <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> @@ -234,15 +391,41 @@ queryById, updateDeviceById, updateFinishedInsProduct, + updateFinishedInsProduct2, updateFinishedInspectById, 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' + import { getProcessConfigFile } from '@/api/plan/manufacturingorder' + import * as customerorder from '@/api/plan/customerorder' export default { + components:{ + qrCodeApp + }, data() { return { + dataForm:null, + progrecessFileLoading: false, + processConfigFileTableData: [], + headers: { + Authorization: 'Bearer ' + getStore({ name: 'access_token' }) + }, + paramData: { + no: '', + lineNumber: '', + type: 1, + }, + row: null, + proIndex: 0, + deviceCode: false, locationList: [], dataVal: [{ label: '鏄�', @@ -260,7 +443,7 @@ // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� empiricalValueAddMaxNumber: 0, processInspectRules: { - locationId: [{required: true,message:'璇烽�夋嫨搴撲綅鍙�',trigger:'blur'}] + locName: [{required: true,message:'璇烽�夋嫨搴撲綅鍙�',trigger:'blur'}] }, processInspectVo: { id: null, @@ -269,7 +452,7 @@ mcode: null, prname: null, sname: null, - orderNumber: "ZTTIC20230001", + orderNumber: null, qualityTraceability: null, quantity: null, specificationsModel: null, @@ -277,13 +460,28 @@ technologyId: null, documentId: null, outBatchNo: null, - locationId: null, + locName: null, }, inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍� inspectionResultForm: [], + configFileTableData:[], + keyfield:['inspectProject','project','unit','standard','remark'], + keyfield0:['detectionValue0'] } }, watch: { + empiricalValueAdd(newVal){ + if(newVal!=this.keyfield0.length){ + if(newVal>this.keyfield0.length){ + this.keyfield0 = [] + for(let i=0;i<newVal;i++){ + this.keyfield0.push('detectionValue'+i) + } + }else{ + this.keyfield0.splice(this.keyfield0.length-1,1); + } + } + } }, beforeUpdate(){ this.$nextTick(()=>{ @@ -304,19 +502,118 @@ this.init() }, methods: { - changeLocation(val){ - if(val){ - let obj = { - id: this.processInspectVo.id, - locationId: val - } - updateLocationIdById(obj).then(res=>{ - if(res.status===200){ - this.$message.success("鏇存柊鍚堟牸搴撲綅鎴愬姛") - } - }) - } + getProcessConfigFile(){ + getProcessConfigFile({ + orderNumber: this.dataForm.orderNumber, + lineNumber: this.dataForm.customerNo + }).then((res)=>{ + this.configFileTableData = res.data.data + }) }, + downloadProcessConfigFiles(row){ + customerorder.downloadProcessConfigFile( + row.fileName, + row.bucketName, + row.originalFileName + ) + }, + saveTable(){ + let finishedInsProducts = []; + if(this.inspectionItems.length>0){ + this.inspectionItems.forEach(item=>{ + if(item.children!=null&&item.children.length>0){ + item.children.forEach(item2=>{ + let obj = {}; + obj.id = item2.iid; + obj.note = item2.inote; + obj.required = item2.required; + obj.inspectionValue = item2.empiricalValueAddss.join(','); + obj.deviceId = item2.eId; + finishedInsProducts.push(obj); + }) + } + }) + } + if(finishedInsProducts.length>0){ + updateFinishedInsProduct2(finishedInsProducts).then(res=>{ + if(res.data.code == 0){ + this.$message.success("鏇存柊鎴愬姛") + }else{ + this.$message.error("鏇存柊澶辫触") + } + this.init() + }) + } + }, + 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){ + let id=val.split("id@")[1] + if(id!=undefined&&id!=''&&id!=null){ + let filterData=this.deviceList.filter(item=>{ + return item.id==id + })[0] + console.log(filterData); + this.row.eId=Number(id) + this.updateDevice(this.row) + }else{ + this.$message({ + message: '鏈瘑鍒嚭璁¢噺鍣ㄥ叿淇℃伅锛�', + type: 'warning' + }); + } + }, + codeDevice(row,index){ + this.row=row + console.log("row",row); + this.deviceCode =true + this.$refs.codeDeviceCompont.openCamera() + this.proIndex=index + }, getIfsLocation(){ getIfsLocationByGroupCopyAll({locationGroup: '1'}).then(res=>{ if(res.status===200){ @@ -327,11 +624,6 @@ }) }, submitSave(){ - let locationId = this.processInspectVo.locationId - if(locationId==null){ - this.$message.error("璇烽�夋嫨浜у搧鍚堟牸搴撲綅") - return - } let pro = 0 this.inspectionItems.forEach(item => { if(item.children){ @@ -347,22 +639,31 @@ result: this.inspectionResultForm[0].result } if (pro > 0) { - this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - inputPattern: /^\d+$/, - inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' - }).then(({ value }) => { - obj.number = value - updateFinishedInspectById(obj).then(res => { - if(res.data.data.indexOf("鎴愬姛") > 0){ - this.$message.success("涓婃姤鎴愬姛"); - this.checkTestState() - }else{ - this.$message.warning(res.data.data) - } - }); - }).catch(() => {}); + obj.number = 1; + updateFinishedInspectById(obj).then(res => { + if(res.data.data.indexOf("鎴愬姛") > 0){ + this.$message.success("涓婃姤鎴愬姛"); + this.checkTestState() + }else{ + this.$message.warning(res.data.data) + } + }); + // this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { + // confirmButtonText: '纭畾', + // cancelButtonText: '鍙栨秷', + // inputPattern: /^\d+$/, + // inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' + // }).then(({ value }) => { + // obj.number = value + // updateFinishedInspectById(obj).then(res => { + // if(res.data.data.indexOf("鎴愬姛") > 0){ + // this.$message.success("涓婃姤鎴愬姛"); + // this.checkTestState() + // }else{ + // this.$message.warning(res.data.data) + // } + // }); + // }).catch(() => {}); }else{ updateFinishedInspectById(obj).then(res => { if(res.data.data.indexOf("鎴愬姛") > 0){ @@ -395,6 +696,7 @@ if(id != null){ queryById(id).then(res=>{ let result = res.data.data + this.dataForm = result this.processInspectVo.finInsNo = result.finInsNo this.processInspectVo.orderNumber = result.orderNumber this.processInspectVo.mcode = result.materialCode @@ -406,10 +708,13 @@ this.processInspectVo.quantity = result.quantity this.processInspectVo.documentId = result.documentId this.processInspectVo.outBatchNo = result.outBatchNo - this.processInspectVo.locationId = result.locationId + this.processInspectVo.locName = result.locName + this.processInspectVo.productNo = result.productNo let userList = [] - result.children.forEach(item=>{ + result.children.forEach((item,index)=>{ item.iid = Math.random() + item.isIndex = true; + item.parentIndex = index + 1; if(item.children != undefined){ item.children.forEach(obj=>{ let arr = [] @@ -419,10 +724,14 @@ if(obj.inspectionValue){ arr = obj.inspectionValue.split(",") } - obj.empiricalValueAddss = arr + this.$set(obj,'empiricalValueAddss',arr) + // obj.empiricalValueAddss = arr if(obj.note){ - snote=obj.inote - } + // obj.inote=obj.note + this.$set(obj,'inote',obj.note) + }else{ + this.$set(obj,'inote',null) + } if(arr.length > this.empiricalValueAdd){ this.empiricalValueAdd = arr.length } @@ -430,14 +739,31 @@ } }) this.inspectionItems = result.children + let rVal = '' + let passNum = 0 + let unPassNum = 0 + this.inspectionItems.forEach(item => { + if (item.children) { + item.children.forEach(obj => { + if(obj.iresult == 0){ + unPassNum += 1 + } + if(obj.iresult == 1){ + passNum+=1 + } + }) + } + }) + rVal = (passNum+unPassNum)>0 ? unPassNum>0 ? '0' :'1' : '' this.inspectionResultForm = [{ materialCode: result.materialCode, material: result.material, userName: Array.from(new Set(userList)).join(","), - result: this.resultVal==null ? '' : this.resultVal, + result: this.resultVal==null ? rVal : this.resultVal, }] + this.getProcessConfigFile() }).catch(error=>{ - console.log(error) + console.error(error) }) } }, @@ -484,20 +810,20 @@ if (str === undefined || str === '' || str === null ) { return } - let obj = { - deviceId: row.eId, - fpid: row.iid, - inspectionValue: str, - note : row.inote - } - updateFinishedInsProduct(obj).then(res=>{ - if(res.data.code == 0){ - this.$message.success("鏇存柊鎴愬姛") - }else{ - this.$message.error("鏇存柊澶辫触") - } - this.init() - }) + // let obj = { + // deviceId: row.eId, + // fpid: row.iid, + // inspectionValue: str, + // note : row.inote + // } + // updateFinishedInsProduct(obj).then(res=>{ + // if(res.data.code == 0){ + // this.$message.success("鏇存柊鎴愬姛") + // }else{ + // this.$message.error("鏇存柊澶辫触") + // } + // this.init() + // }) } }, addTestProject() { @@ -570,14 +896,14 @@ arr.splice((arr.length-1),1) let obj = { devideId: i.eId, - fpid: row.iid, + fpid: i.iid, inspectionValue: arr.join(","), note : i.inote } updateFinishedInsProduct(obj).then(res => { if (res.data.code == 0) { this.init() - } + } }) } }) @@ -595,13 +921,128 @@ this.inspectionItems.forEach(i => { i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); }); + this.saveTable() } } }, // 娣诲姞妫�楠屽�煎垪 clickAddInspectionColumn() { this.empiricalValueAdd = this.empiricalValueAdd + 1; + }, + moveFocus(event, index, key) { + console.log(key, index,key) + let keyfield = this.insertArrayAt(this.keyfield,0,this.keyfield0); + // enter閿� + // if (event.keyCode === 13) { // 鍥炶溅 + // if (index === this.getLen() - 1 && key === keyfield[keyfield.length - 1]) { // 鏈�鍚庝竴琛屾渶鍚庝竴涓� + // console.log('鏈�鍚庝竴琛屾渶鍚庝竴涓棤娉曞洖杞�') + // return + // } + // this.$nextTick(() => { + // event.target.blur() + // }) + // if (key === keyfield[keyfield.length - 1]) { // 褰撳墠琛屾渶鍚庝竴涓�,璺宠浆涓嬩竴琛岀涓�涓� + + // } else { // 璺宠浆涓嬩竴涓� + // const nextkeyindex = keyfield.findIndex(k => k === key) + 1 + // this.$nextTick(() => { + // document.getElementById(keyfield[nextkeyindex] + index).focus() + // }) + // } + // } + + // 鍚戜笂 =38 + if (event.keyCode === 38) { + console.log('鍚戜笂') + if (index === 0) { // 绗竴琛� + console.log('绗竴琛屾棤娉曞悜涓�') + return + } + document.getElementById(key + index).blur() + let i = 0; + while (true){ + let dom = document.getElementById(key + (index - 1-i)) + if(dom){ + dom.focus() + return + }else if((index-1-i)==0){ + return + } + i++ + } } + + // 涓� = 40 + if (event.keyCode === 40) { + console.log('鍚戜笅') + if (index === this.getLen() - 1) { // 鏈�鍚庝竴琛� + console.log('鏈�鍚庝竴琛屾棤娉曞悜涓�') + return + } + document.getElementById(key + index).blur() + this.$nextTick(() => { + let i = 0; + while (true){ + let dom = document.getElementById(key + (index + 1+i)) + console.log(dom,key + (index + 1+i)) + if(dom){ + dom.focus() + return + }else if((index+1+i)==this.getLen() - 1){ + return + } + i++ + } + }) + } + + // 宸� = 37 + if (event.keyCode === 37) { + console.log('鍚戝乏') + if (index === 0 && key === keyfield[0]) { // 绗竴琛岀涓�涓� + console.log('绗竴琛岀涓�涓棤娉曞悜宸�') + return + } + document.getElementById(key + index).blur() + const prevkeyindex = keyfield.findIndex(k => k === key) - 1 + this.$nextTick(() => { + let dom = document.getElementById(keyfield[prevkeyindex] + index) + if(dom){ + dom.focus() + } + }) + } + + // 鍙� = 39 + if (event.keyCode === 39) { + console.log('鍚戝彸') + if (index === this.getLen() - 1 && key === keyfield[keyfield.length - 1]) { // 鏈�鍚庝竴琛屾渶鍚庝竴涓� + console.log('鏈�鍚庝竴琛屾渶鍚庝竴涓棤娉曞悜鍙�') + return + } + document.getElementById(key + index).blur() + const nextkeyindex = keyfield.findIndex(k => k === key) + 1 + this.$nextTick(() => { + let dom = document.getElementById(keyfield[nextkeyindex] + index) + if(dom){ + dom.focus() + } + }) + } + }, + insertArrayAt(arr1, index, arr2) { + return arr1.slice(0, index).concat(arr2, arr1.slice(index)); + }, + getLen(){ + let arr = [] + this.inspectionItems.forEach(item => { + arr.push(item) + item.children.forEach(child => { + arr.push(child) + }) + }) + return arr.length + } }, } </script> @@ -609,14 +1050,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 { -- Gitblit v1.9.3