From a47e864ca8071792642527aaa45ccdb36347e55b Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期一, 06 十一月 2023 17:32:14 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before --- src/views/quality/rawMaterial/rawMaterial-form.vue | 88 ++++++-------- src/api/quality/unqualifiedprocess.js | 9 + /dev/null | 93 --------------- node_modules.7z | 0 src/views/quality/processconfiguration/index.vue | 50 ++++++-- src/views/common/rawMaterial-part.vue | 2 src/api/quality/rawMaterial.js | 9 + src/views/quality/rawMaterial/index.vue | 83 +++++++------ src/views/common/ztt-table.vue | 1 9 files changed, 135 insertions(+), 200 deletions(-) diff --git a/node_modules.7z b/node_modules.7z new file mode 100644 index 0000000..621a7b5 --- /dev/null +++ b/node_modules.7z Binary files differ diff --git a/src/api/quality/rawMaterial.js b/src/api/quality/rawMaterial.js index af1c32b..f63dcd5 100644 --- a/src/api/quality/rawMaterial.js +++ b/src/api/quality/rawMaterial.js @@ -77,3 +77,12 @@ }) } +export function exportRawMaterial(data) { + return request({ + url: '/mes/rawInspect/export', + method: 'get', + responseType: 'blob', + params: data + }) +} + diff --git a/src/api/quality/unqualifiedprocess.js b/src/api/quality/unqualifiedprocess.js index ce160f0..e3702a0 100644 --- a/src/api/quality/unqualifiedprocess.js +++ b/src/api/quality/unqualifiedprocess.js @@ -8,6 +8,15 @@ }) } +export function exportData(query) { + return request({ + url: '/mes/qualityInspectUnaccepted/export', + method: 'get', + responseType: 'blob', + params: query + }) +} + export function pullInsUnapi(query) { return request({ url: '/mes/qualityInspectUnaccepted/pullInsUn', diff --git a/src/views/common/rawMaterial-part.vue b/src/views/common/rawMaterial-part.vue index 9a29d28..16ba844 100644 --- a/src/views/common/rawMaterial-part.vue +++ b/src/views/common/rawMaterial-part.vue @@ -210,9 +210,7 @@ this.$parent.costPlannedAmountChange(this.currentRow) }, handleCurrentChange(row) { - console.log(row); this.currentRow = row - console.log(this.currentRow); }, handleSelectionChange(val) { // 澶氳閫変腑 diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue index 8b8083c..8f65553 100644 --- a/src/views/common/ztt-table.vue +++ b/src/views/common/ztt-table.vue @@ -819,6 +819,7 @@ this.isCleanInfo = true } } + this.$emit("queryParam",this.queryParam) }, deep: true }, diff --git a/src/views/quality/processconfiguration/index.vue b/src/views/quality/processconfiguration/index.vue index 906ad00..e608a41 100644 --- a/src/views/quality/processconfiguration/index.vue +++ b/src/views/quality/processconfiguration/index.vue @@ -3,14 +3,13 @@ <basic-container> <ttable :table="table" - :resultData="resultData" - @change ="costPlannedAmountChange" @handleSelectionChange="handleSelectionChange" :uploadInfo="uploadInfo" :isShowHide="true" :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + @queryParam="getQueryParam($event)" ref="processconfiguration" > <template #toolbar></template> @@ -74,7 +73,12 @@ </template> <script> -import { UnqualifiedList,pullInsUnapi,AuditSuggestion,UnqualifiedDisposal} from '@/api/quality/unqualifiedprocess' +import { + UnqualifiedList, + pullInsUnapi, + AuditSuggestion, + exportData +} from '@/api/quality/unqualifiedprocess' import TableForm from './table-form' import { mapGetters } from 'vuex' // import { remote } from '@/api/admin/dict' @@ -83,7 +87,7 @@ export default { data() { return { - resultData:[], + queryParam: {}, checkList: "", // WayIdea:'', UserId:{}, @@ -265,7 +269,7 @@ { text: '瀵煎嚭', type: 'primary', - fun: this.exportExcel + fun: this.handleExport }, ], operator: [ @@ -312,14 +316,34 @@ // this.getType() }, methods: { - exportExcel(){ - let queryParam=this.$refs.processconfiguration.getQueryParam(); - delete queryParam.criteria - console.log(queryParam); - UnqualifiedDisposal(queryParam).then((res)=>{ - transform(res) - }) - }, + getQueryParam(data){ + this.queryParam = data + }, + handleExport(){ + exportData(this.queryParam).then(res=>{ + console.log(res) + this.downloadFun(res) + }).catch(error=>{ + console.log(error); + }) + }, + downloadFun(result){ + if(result == null || result == undefined){ + return; + } + var nameList = result.headers['content-disposition']; + nameList = decodeURI(nameList); + var fileName = nameList.split('=')[1]; + const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) + const downloadElement = document.createElement('a') // 鏂板缓涓�涓狣OM鑺傜偣 + const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href + downloadElement.download = fileName // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement) // 灏嗘柊澧炵殑鑺傜偣鎸傝浇鍒伴〉闈笂 + downloadElement.click() // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href) + }, //瀹℃牳缁撴灉 AuditResult(row){ this.UserId = row.id diff --git a/src/views/quality/rawMaterial/ExportMaterial.vue b/src/views/quality/rawMaterial/ExportMaterial.vue deleted file mode 100644 index 131802e..0000000 --- a/src/views/quality/rawMaterial/ExportMaterial.vue +++ /dev/null @@ -1,93 +0,0 @@ -<template> - <div style="width:400px"> - <el-button type="primary" @click="handleExcel">涓嬭浇 excel</el-button> - <el-button type="success" @click="handleExcel1">涓嬭浇 澶氱骇琛ㄥごexcel</el-button> - </div> - - </template> - - <script> - export default { - name: 'HelloWorld', - data(){ - return {} - }, - methods: { - handleExcel() { - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label: '鏍囬', - prop: 'title' - }], - data: [{ - title: "娴嬭瘯鏁版嵁1" - }, { - title: "娴嬭瘯鏁版嵁2" - }] - } - console.log(this.$Export); - this.$Export.excel({ - title: opt.title , - columns: opt.column, - data: opt.data - }); - }, - handleExcel1() { - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label:'澶氱骇琛ㄥご', - prop:'header', - children:[ - { - label: '鏍囬1', - prop: 'title1' - },{ - label: '鏍囬2', - prop: 'title2' - } - ] - }], - data: [{ - title1: "娴嬭瘯鏁版嵁1", - title2: "娴嬭瘯鏁版嵁2" - }, { - title1: "娴嬭瘯鏁版嵁2", - title2: "娴嬭瘯鏁版嵁2" - }] - } - this.$Export.excel({ - title: opt.title, - columns: opt.column, - data: opt.data - }); - } - }, - - props: { - msg: String - - - } - } - </script> - - <!-- Add "scoped" attribute to limit CSS to this component only --> - <style scoped> - h3 { - margin: 40px 0 0; - } - ul { - list-style-type: none; - padding: 0; - } - li { - display: inline-block; - margin: 0 10px; - } - a { - color: #42b983; - } - </style> - \ No newline at end of file diff --git a/src/views/quality/rawMaterial/index.vue b/src/views/quality/rawMaterial/index.vue index 44a4618..297bd4e 100644 --- a/src/views/quality/rawMaterial/index.vue +++ b/src/views/quality/rawMaterial/index.vue @@ -20,13 +20,15 @@ <ttable :table="table" :resultData="resultData" - @change ="costPlannedAmountChange" @handleSelectionChange="handleSelectionChange" :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + @queryParam="getQueryParam($event)" ref="rawMaterialTable"> - <template #toolbar></template> + <template #toolbar> + <el-button @click="exportRawMaterial" type="primary" >瀵煎嚭</el-button> + </template> </ttable> </basic-container> <!-- 寮圭獥, 鏂板 / 淇敼 --> @@ -38,15 +40,15 @@ </div> </template> <script> -import ExportMaterial from './ExportMaterial.vue' import ttable from '@/views/common/ztt-table.vue' -import { getRawInspectList,delObj } from '@/api/quality/rawMaterial' +import { getRawInspectList,delObj,exportRawMaterial } from '@/api/quality/rawMaterial' import RawMaterialForm from './rawMaterial-form' import * as fecha from 'element-ui/lib/utils/date' import { mapGetters } from 'vuex' export default { data() { return { + queryParam: {}, resultData:[], addOrUpdateVisible: false, type: [1], @@ -64,14 +66,13 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'formTime', direction: 'desc' }, + defaultOrderBy: { column: 'createTime', direction: 'desc' }, }, table: { total: 0, currentPage: 1, pageSize: 20, data: [], - isExport:true, // 鏍囬 column: [ { @@ -139,6 +140,7 @@ prop: 'createTime', label: '鎶ユ鏃ユ湡', isTrue: true, + sort: true, isSearch: true, searchInfoType: 'text', formatter: this.formatDateTime, @@ -190,13 +192,7 @@ text: '鏂板', type: 'primary', fun: this.addOrUpdateHandle - }, - { - text: '瀵煎嚭', - type: 'primary', - fun: this.handleExcel - } - ], + }], operator: [{ text: '浣滃簾', type: 'text', @@ -214,10 +210,17 @@ StateList: [{label:'鍏ㄩ儴',value:''},{label:'宸插悎鏍�',value:'1'},{label:'涓嶅悎鏍�',value:'0'}], } }, + // props:{ + // queryParam:{ + // type: Object, + // default: ()=>{ + // return {} + // } + // } + // }, components: { ttable, RawMaterialForm, - ExportMaterial, }, created() { @@ -226,34 +229,34 @@ ...mapGetters(['permissions']) }, methods:{ - async costPlannedAmountChange(value){ - this.resultData= value + getQueryParam(data){ + this.queryParam = data }, - - handleExcel() { - console.log(this.resultData); - console.log(this.table.column); - let arr = this.table.column.filter(item => item.isTrue == true).map(item => { - return{ - prop:item.prop, - label:item.label - } + exportRawMaterial(){ + exportRawMaterial(this.queryParam).then(res=>{ + console.log(res) + this.downloadFun(res) + }).catch(error=>{ + console.log(error); }) - let opt = { - title: '鏂囨。鏍囬', - column: [{ - label:'', - prop:'header', - children:arr - }], - data: this.resultData - } - this.$Export.excel({ - title: opt.title, - columns: opt.column, - data: opt.data - }); - }, + }, + downloadFun(result){ + if(result == null || result == undefined){ + return; + } + var nameList = result.headers['content-disposition']; + nameList = decodeURI(nameList); + var fileName = nameList.split('=')[1]; + const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) + const downloadElement = document.createElement('a') // 鏂板缓涓�涓狣OM鑺傜偣 + const href = window.URL.createObjectURL(blob) // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href + downloadElement.download = fileName // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement) // 灏嗘柊澧炵殑鑺傜偣鎸傝浇鍒伴〉闈笂 + downloadElement.click() // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement) // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href) + }, // 鍒犻櫎 deleteHandle(row) { this.$confirm('鏄惁纭鍒犻櫎璇ユ暟鎹細' + row.code , '鎻愮ず', { diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index b5923d0..0bd79dc 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -75,23 +75,24 @@ </el-form-item> </el-col> <el-col :span="6"> + <el-form-item prop="projectName" label="椤圭洰鍚嶇О"> + <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName"> + <el-input v-model="dataForm.projectName" disabled ></el-input> + </el-tooltip> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> <el-form-item label="鎶ユ鏃ユ湡" prop="createTime" v-if="dataForm.id!=null"> <el-input v-model="dataForm.createTime" disabled /> </el-form-item> - </el-col> - </el-row> - <el-row> + </el-col> <el-col :span="6"> <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null"> <el-input v-model="dataForm.createUser" disabled /> </el-form-item> </el-col> - <el-col :span="6"> - <el-form-item prop="projectName" label="椤圭洰鍚嶇О"> - <el-input v-model="dataForm.projectName" disabled > - </el-input> - </el-form-item> - </el-col> </el-row> </el-form> </div> @@ -120,7 +121,7 @@ filterable allow-create placeholder="璇疯緭鍏ユ垨閫夋嫨椤圭洰鍚嶇О" style="width:100%" @change="changeName(scope.$index,scope.row)"> <el-option v-for="(item,index) in projectList" :key="index" :label="item.name" :value="item.name"/> </el-select> - <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="list.name" + <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> </template> </el-table-column> @@ -140,18 +141,19 @@ <el-table-column prop="testValue" label="妫�娴嬪��" min-width="260" v-for="(item, index) in empiricalValueAdd" :key="index"> <template slot-scope="scope"> - <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" + <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> <!-- <el-input :disabled="scope.row.equipmentId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.testValueList[index]" @blur="updateTestValue(scope.row,index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> --> <el-autocomplete - :disabled="scope.row.equipmentId == null || (dataForm.id!=null&&resultVal!=null)" + style="width:100%" + :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" class="inline-input" v-model="scope.row.testValueList[index]" :fetch-suggestions="querySearch" - placeholder="璇疯緭鍏ュ唴瀹�" + placeholder="璇疯緭鍏ユ娴嬪��" @select="handleSelect" ></el-autocomplete> @@ -162,9 +164,9 @@ <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> <template slot-scope="scope"> <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%" - v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row,scope.$index)"> + 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.number +'-'+ item.name"></el-option> + :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> </el-select> </template> </el-table-column> @@ -223,17 +225,12 @@ <span>涓嶅悎鏍兼暟閲�:</span> <el-input type="number" v-model="unqualifiedNum" placeholder="璇疯緭鍏ヤ笉鍚堟牸鏁伴噺"/> </el-col> - <el-col> - <span>瀹炴鏁伴噺:</span> - <el-input type="number" placeholder="璇疯緭鍏ュ疄妫�鏁伴噺" v-model="fiedNum"/> - </el-col> </el-row> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">鍙� 娑�</el-button> <el-button type="primary" @click="submitSave()">纭� 瀹�</el-button> </span> </el-dialog> - <!-- <rawMaterialPartDialog :currentRow ="currentRow" @costPlannedAmountChange="costPlannedAmountChange"/> --> </div> </template> @@ -246,7 +243,6 @@ updateRawInspectsById, updateDeviceById, } from '@/api/quality/rawMaterial' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' -import { log } from 'util' export default { // props:['currentRow'], computed:{}, @@ -255,9 +251,8 @@ }, data(){ return{ - currentRow:[], - userlist:[], - fiedNum: null, + currentRow:[], + userlist:[], unqualifiedNum: null, dialogVisible:false, resultVal: null, @@ -282,7 +277,7 @@ number: '', supplier: '', rawInsProducts: [{ - equipmentId: 0, + deviceId: 0, name: '', required: '', testValue: '', @@ -320,30 +315,16 @@ this.init() this.getDeviceList() this.restaurants = this.loadAll(); - // this.costPlannedAmountChange() }, watch:{ dialogVisible(newVal){ if(newVal){ this.unqualifiedNum = null - this.fiedNum = null } }, }, methods:{ - //椤圭洰 - // xxxx(){ - // console.log(currentRow); - // }, - // 浜嬩欢澶勭悊鍑芥暟 - // costPlannedAmountChange(value) { - // console.log("==>"); - // console.log(value.rawInsProducts); - // this.userlist = value.rawInsProducts - // this.list = this.userlist - // console.log(this.list); - // }, querySearch(queryString, cb) { var restaurants = this.restaurants; var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; @@ -373,7 +354,6 @@ }, // 纭鍥炶皟 selectPart(param, nodePart, index) { - console.log("鎴愬姛--",param); if (typeof param !== 'undefined') { this.dataForm.code = param.code this.dataForm.name = param.name @@ -385,21 +365,20 @@ this.dataForm.message = param.message this.dataForm.projectName = param.projectName this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts - // param.rawInsProducts.forEach(item=>{ - // this.list.push(item) - // }) + param.rawInsProducts.forEach(o=>{ + this.clickAddLine(o) + }) } }, queryCode(){ this.paramObj = { code: this.dataForm.code } - console.log(this.paramObj); this.showPart = true }, updateDevice(row,index){ if(this.dataForm.id != null){ - updateDeviceById({equiomentId:row.equipmentId,rpId:row.rpId}).then(res=>{ + updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ this.list[index].testValue = '' this.list[index].testState = null this.list[index].testValueList = [] @@ -436,24 +415,24 @@ let data = { id: this.dataForm.id, number: this.unqualifiedNum, - toLocationNo: this.fiedNum + // toLocationNo: this.fiedNum } updateRawInspectsById(data).then(res => { if(res.data.code == 0){ sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data) this.$message.success("涓婃姤鎴愬姛"); this.dialogVisible = false + this.checkTestState() } }); - this.checkTestState() }, addTeatValueColumn(){ this.empiricalValueAdd = this.empiricalValueAdd + 1; }, // 娣诲姞琛� - clickAddLine() { + clickAddLine(row) { let obj = { - equipmentId: null, + deviceId: null, name: "", required: "", testValue: "", @@ -461,6 +440,11 @@ testState: null, testValueList: [], }; + if(row!=undefined){ + obj.name = row.name + obj.unit = row.unit + obj.required = row.required + } this.list.push(obj); }, // 鍒犻櫎琛� @@ -482,7 +466,7 @@ return } let obj = { - equiomentId: row.equipmentId, + deviceId: row.deviceId, rpId: row.rpId, testValue: row.testValueList.join(",") } @@ -508,9 +492,9 @@ this.dataForm.unit = data.runit this.dataForm.supplier = data.supplier this.dataForm.number = data.number + this.dataForm.projectName = data.projectName this.dataForm.createTime = data.creatTime this.dataForm.createUser = data.createUser - // this.dataForm.judgeState = data.judgeState let userNameList = [] this.list = [] data.children.forEach(item=>{ @@ -523,7 +507,7 @@ } } this.list.push({ - equipmentId: item.equiomentId, + deviceId: item.deviceId, deviceName: item.deviceName, name: item.rpName, required: item.required, -- Gitblit v1.9.3