From 215d66d640d3e1528834803fdf65659dc872c632 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期三, 03 七月 2024 17:59:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/do/b1-ins-order/add.vue | 99 +++++++++++++------ src/components/tool/excel.vue | 3 src/main.js | 4 src/components/do/b1-inspect-order-plan/Inspection.vue | 144 +++++++++++++++++++++------- src/components/view/b1-inspection-order.vue | 25 ++-- src/assets/api/controller.js | 1 6 files changed, 196 insertions(+), 80 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 2b70718..75eda06 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -190,6 +190,7 @@ checkSubmitPlan: "/insOrderPlan/checkSubmitPlan", // 鏍¢獙妫�楠屼换鍔℃彁浜� getReportModel: "/insOrderPlan/getReportModel", // 鍒囨崲鍏夌氦-鍏夌氦甯﹁褰曟ā鐗堟煡璇㈡楠屽唴瀹� write: "/insOrderPlan/write", // 濉啓娓╁害涓庢箍搴� + temCycle: "/insOrderPlan/temCycle", // 娓╁害寰幆鏌ョ湅鍒楄〃鏁版嵁(鍖呮嫭閫氳繃鏍峰搧id,寰幆娆℃暟,娓╁害,寰幆娆℃暟杩涜绛涢��) } const systemLog = { diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index d6e3822..20b16e4 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -788,6 +788,9 @@ :data="opticalProject" tooltip-effect="dark" style="width: 100%" + @row-click="rowClickOptical" + @select="selectOpticalProject" + @select-all="selectAllOptical" @selection-change="handleSelectionChange"> <el-table-column type="selection" @@ -814,17 +817,17 @@ style="width: 100%"> <el-table-column prop="date" label="娓╁害鐐�(鈩�)" width="120px"> <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.temperaturePoint" clearable placeholder="璇疯緭鍏�"></el-input> + <el-input size="small" v-model="scope.row.temperaturePoint" clearable placeholder="璇疯緭鍏�" @change="changeTemperature"></el-input> </template> </el-table-column> <el-table-column prop="name" label="瑕佹眰(dB/Km)"> <template slot-scope="scope"> <span>x</span> - <el-select v-model="scope.row.askSymbol" placeholder="璇烽�夋嫨" size="small" style="width: 120px"> + <el-select v-model="scope.row.askSymbol" placeholder="璇烽�夋嫨" size="small" style="width: 120px" @change="changeTemperature"> <el-option v-for="item in temperatureDataList" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> - <el-input size="small" v-model="scope.row.askNum" clearable placeholder="璇疯緭鍏�" style="width: 120px"></el-input> + <el-input size="small" v-model="scope.row.askNum" clearable placeholder="璇疯緭鍏�" style="width: 120px" @change="changeTemperature"></el-input> </template> </el-table-column> </el-table> @@ -1101,31 +1104,31 @@ this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') return } - + // 鎷兼帴瑕佹眰鍊糰sk const opticalProjectList = JSON.parse(JSON.stringify(this.opticalProjectList)) + opticalProjectList.forEach(o => { + o.temperatureData.forEach(t => { + if (!t.temperaturePoint || !t.askSymbol || !t.askNum) { + throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') + } + }) + }) let entrustTime = this.circulateForm.entrustTime let entrustNum = this.circulateForm.entrustNum - let temperaturePoint1 = JSON.parse(JSON.stringify(this.temperatureData)) - temperaturePoint1.forEach(t => { - if (!t.temperaturePoint || !t.askSymbol || !t.askNum) { - throw this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') - } - }) - let temperaturePoint = JSON.parse(JSON.stringify(this.temperatureData)) - temperaturePoint.unshift({temperaturePoint: 20}) + let opticalProjectList2 = JSON.parse(JSON.stringify(this.opticalProjectList)) let askArr = [] let opticalProjectArr = [] - // 鎷兼帴瑕佹眰鍊糰sk opticalProjectList.forEach(o => { opticalProjectArr.push(o.value) - temperaturePoint.forEach(t => { + o.temperatureData.unshift({temperaturePoint: 20}) + o.temperatureData.forEach(t => { if (!t.askSymbol) { - const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + null - askArr.push(askObj) - } else { - const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + t.askSymbol + t.askNum - askArr.push(askObj) - } + const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + null + askArr.push(askObj) + } else { + const askObj = t.temperaturePoint + '鈩�' + ',' + o.value + ',' + t.askSymbol + t.askNum + askArr.push(askObj) + } }) }) askArr.push(this.circulateForm.entrustNum) @@ -1136,20 +1139,22 @@ let temperaturePointList2 = [] entrustTime = entrustTime + 'h' entrustNum = entrustNum + '娆�' - temperaturePoint.forEach(t => { - t.temperaturePoint = t.temperaturePoint + '鈩�' - temperaturePointList.push(t.temperaturePoint) + opticalProjectList2.forEach(o => { + o.temperatureData.forEach(t => { + t.temperaturePoint = t.temperaturePoint + '鈩�' + temperaturePointList2.push(t.temperaturePoint) + temperaturePointList.push(t.temperaturePoint) + askNum.push(t.askSymbol + t.askNum + 'dB/Km') + }) }) - temperaturePoint1.forEach(t => { - t.temperaturePoint = t.temperaturePoint + '鈩�' - askNum.push(t.askSymbol + t.askNum + 'dB/Km') - temperaturePointList2.push(t.temperaturePoint) - }) + temperaturePointList = Array.from(new Set(temperaturePointList)) + temperaturePointList2 = Array.from(new Set(temperaturePointList2)) + temperaturePointList2.unshift(20 + '鈩�') let additionArr = [] askNum.forEach(a => { - additionArr.push(temperaturePointList2.join(',') + a) + additionArr.push(temperaturePointList.join(',') + a) }) - temperaturePointList2.unshift(20 + '鈩�') + additionArr = Array.from(new Set(additionArr)) const tell = '娓╁害鑼冨洿:' + temperaturePointList2.join(',') + ';' + '淇濇俯鏃堕棿:' + entrustTime + ';' + '寰幆娆℃暟:' + entrustNum + ';' + '鍏夌氦(' + opticalProjectArr.join(',') + ')' + '闄勫姞琛板噺缁濆鍊�:' + additionArr.join(';') this.productList.forEach(item => { @@ -1177,14 +1182,48 @@ handleSelectionChange(val) { this.opticalProjectList = val; }, + selectAllOptical (val) { + if (val.length > 0) { + if (val[val.length-1].temperatureData) { + this.temperatureData = this.HaveJson(val.temperatureData) + } else { + this.temperatureData = [] + } + } else { + this.temperatureData = [] + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + selectOpticalProject (val) { + if (val.temperatureData) { + this.temperatureData = this.HaveJson(val.temperatureData) + } else { + this.temperatureData = [] + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + rowClickOptical (val) { + const index = this.opticalProjectList.findIndex(item => item.value === val.value) + if (index > -1 && val.temperatureData) { + this.temperatureData = this.HaveJson(val.temperatureData) + } + this.circulateForm.entrustPoint = this.temperatureData.length + }, + changeTemperature () { + this.opticalProjectList.forEach(item => { + item.temperatureData = this.HaveJson(this.temperatureData) + }) + }, addTemperatureData () { const obj = {} this.temperatureData.push(obj) + this.circulateForm.entrustPoint = this.temperatureData.length }, deleteTemperatureData () { if (this.temperatureData.length > 0) { this.temperatureData = this.temperatureData.slice(0,-1) } + this.circulateForm.entrustPoint = this.temperatureData.length }, changeTemperatureData () { const length = this.temperatureData.length diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index edb27bb..1b84f9a 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -257,7 +257,7 @@ </el-form> </div> <div class="center"> - <div class="search" style="text-align: left;display: flex;align-items: center;justify-content: space-between;"> + <div class="search" style="text-align: left;display: flex;align-items: center;justify-content: space-between;overflow-x: auto;"> <div style="display: flex;align-items: center;"> <span v-if="tableList.length>0">妫�楠屾ā鏉匡細</span> <el-radio-group v-model="currentTable" size="small"> @@ -265,7 +265,7 @@ size="small">{{ item.templateName }}</el-radio-button> </el-radio-group> </div> - <div> + <div style="display: flex;align-items: center;"> <span v-if="fibers.length>0"> 鍏夌氦甯︼細</span> <el-radio-group v-model="currentTab" size="small" v-if="fibers.length>0" @input="m=>handleChange(m,1)"> <el-radio-button :label="item.id" v-for="(item,index) in fibers" :key="index" @@ -276,13 +276,13 @@ <el-radio-button :label="item.id" v-for="(item,index) in fiber" :key="index" size="small">{{ item.color }}</el-radio-button> </el-radio-group> - <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px"> + <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;"> <el-form-item label="娓╁害:" style="margin-bottom: 0;"> - <el-input clearable v-model="otherForm.temperature" size="small" placeholder="" style="width: 70px;" @change="m=>subOtherForm(m,'temperature')"></el-input> + <el-input clearable v-model="otherForm.temperature" size="small" placeholder="" style="width: 50px;" @change="m=>subOtherForm(m,'temperature')"></el-input> <span style="margin-left: 4px;">鈩�</span> </el-form-item> <el-form-item label="婀垮害:" style="margin-bottom: 0;"> - <el-input clearable v-model="otherForm.humidity" size="small" placeholder="" style="width: 70px;" @change="m=>subOtherForm(m,'humidity')"></el-input> + <el-input clearable v-model="otherForm.humidity" size="small" placeholder="" style="width: 50px;" @change="m=>subOtherForm(m,'humidity')"></el-input> <span style="margin-left: 4px;">%</span> </el-form-item> </el-form> @@ -395,20 +395,20 @@ </table> </div> <div class="center-box" v-loading="tableLoading" v-else> - <!-- <el-divider></el-divider> --> + <el-divider></el-divider> <h4 style="margin-bottom: 20px;">娓╁害寰幆妫�楠屽師濮嬭褰�</h4> - <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px"> + <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> <el-form-item label="鍨嬪彿:" style="margin-bottom: 0;"> - <el-input clearable v-model="wareForm.entrustCode" disabled size="small" placeholder=""></el-input> + <el-input clearable v-model="wareForm0.model" disabled size="small" placeholder=""></el-input> </el-form-item> <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0;"> - <el-input clearable v-model="wareForm.sampleCode" disabled size="small" placeholder=""></el-input> + <el-input clearable v-model="wareForm0.methodName" disabled size="small" placeholder=""></el-input> </el-form-item> - <el-form-item label="妫�娴嬩緷鎹�:" style="margin-bottom: 0;"> - <el-input clearable v-model="wareForm.sample" disabled size="small" placeholder=""></el-input> - </el-form-item> + <!-- <el-form-item label="妫�娴嬩緷鎹�:" style="margin-bottom: 0;"> + <el-input clearable v-model="wareForm0.sample" disabled size="small" placeholder=""></el-input> + </el-form-item> --> <el-form-item label="寰幆娆℃暟:" style="margin-bottom: 0;"> - <el-select v-model="wareForm.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="wareForm.inspectionItem" placeholder="璇烽�夋嫨" size="small" @change="m=>wareFormChange(m,'inspectionItem')"> <el-option v-for="item in numOptions" :key="item.value" @@ -418,7 +418,7 @@ </el-select> </el-form-item> <el-form-item label="娓╁害:" style="margin-bottom: 0;"> - <el-select v-model="wareForm.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="wareForm.inspectionItemSubclass" placeholder="璇烽�夋嫨" size="small" @change="m=>wareFormChange(m,'inspectionItemSubclass')"> <el-option v-for="item in temperatureOptions" :key="item.value" @@ -430,9 +430,9 @@ </el-form-item> </el-form> <el-divider></el-divider> - <el-form :inline="true" :model="wareForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> + <el-form :inline="true" :model="wareForm0" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> <el-form-item label="浠櫒鍚嶇О:"> - <el-select v-model="wareForm.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> <el-option v-for="item in temperatureOptions" :key="item.value" @@ -442,7 +442,7 @@ </el-select> </el-form-item> <el-form-item label="浠櫒缂栧彿:"> - <el-select v-model="wareForm.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> <el-option v-for="item in temperatureOptions" :key="item.value" @@ -452,7 +452,7 @@ </el-select> </el-form-item> <el-form-item label="浠櫒鍚嶇О:" style="margin-left: 80px;"> - <el-select v-model="wareForm.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> <el-option v-for="item in temperatureOptions" :key="item.value" @@ -462,7 +462,7 @@ </el-select> </el-form-item> <el-form-item label="浠櫒缂栧彿:"> - <el-select v-model="wareForm.value" placeholder="璇烽�夋嫨" size="small"> + <el-select v-model="wareForm0.value" placeholder="璇烽�夋嫨" size="small"> <el-option v-for="item in temperatureOptions" :key="item.value" @@ -480,53 +480,73 @@ label="搴忓彿" type="index" width="65" + align="center" > </el-table-column> <el-table-column - prop="date" + prop="bushColor" label="绠¤壊鏍�" - width="150"> + width="120" + align="center"> </el-table-column> <el-table-column - prop="name" + prop="code" label="鍏夌氦甯︾紪鍙�" - width="180"> + width="150" + align="center"> </el-table-column> <el-table-column - prop="province" + prop="color" label="鍏夌氦鑹叉爣" - width="150"> + align="center" + width="120"> </el-table-column> <el-table-column - prop="city" + prop="inspectionItemClass" + label="鍏夌氦椤圭洰" + align="center" + width="130"> + </el-table-column> + <el-table-column + prop="value0" label="澶栫" - width="150"> + align="center" + width="130"> <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.input" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + <el-input size="small" v-model="scope.row.value0" placeholder="" @change="m=>changeItem(m,0)"></el-input> </template> </el-table-column> <el-table-column - prop="address" + prop="value1" label="鍐呯" - width="150"> + align="center" + width="130"> <template slot-scope="scope"> - <el-input size="small" v-model="scope.row.input" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + <el-input size="small" v-model="scope.row.value1" placeholder="" @change="m=>changeItem(m,1)"></el-input> </template> </el-table-column> <el-table-column prop="zip" + align="center" label="骞冲潎鍊�" min-width="150"> </el-table-column> <el-table-column - prop="zip" + prop="lastValue" label="琛板噺宸�" + align="center" min-width="150"> </el-table-column> <el-table-column - prop="zip" - label="妫�娴嬩汉" + prop="insResult" + label="缁撹" + align="center" min-width="150"> + <template slot-scope="scope"> + <span v-if="scope.row.insResult===1" style="color: green;">鍚堟牸</span> + <span v-if="scope.row.insResult===0" style="color: red;">涓嶅悎鏍�</span> + <span v-else>寰呭畾</span> + </template> </el-table-column> </el-table> </div> @@ -780,7 +800,11 @@ fiber:[], fibers:[], currentTab:null, - wareForm:{}, + wareForm:{ + inspectionItem:1, + inspectionItemSubclass:20, + }, + wareForm0:{}, numOptions:[], temperatureOptions:[], wareTableData:[ @@ -789,7 +813,7 @@ otherForm:{ humidity:null, temperature:null, - } + }, } }, computed: { @@ -890,6 +914,27 @@ }, }, methods: { + changeItem(m,index){}, + wareFormChange(m,type){ + if(m&&type){ + this.wareForm[type] = Number(m) + } + let wareForm = {...this.wareForm} + wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'鈩�' + this.$axios.post(this.$api.insOrderPlan.temCycle,{ + sampleId:this.currentSample.id, + ...wareForm + }).then(res => { + if (res.code == 201) return + let {productVos,sampleVo} = res.data + this.wareForm0 = sampleVo + productVos = productVos.map(m=>{ + let obj = {...m,...m.insProduct} + return obj + }) + this.wareTableData = productVos + }) + }, subOtherForm(m,type){ let ids = [] for (let i in this.param) { @@ -1164,6 +1209,33 @@ handleTableData() { this.excelMethodList = [] this.widthList = this.tableList[0].style.columnlen; + // 娓╁害寰幆妫�楠屽師濮嬭褰�--寮�濮� + if(this.tableLists.find(m=>m.templateId==this.currentTable)||this.tableLists.find(m=>m.templateId==this.currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'){ + let ask = this.currentSample.insProduct[0].ask + let askList = ask.split(';') + this.numOptions = [] + for (let i = 1; i <= askList[askList.length-1]; i++) { + this.numOptions.push({ + value:i, + label:i + }) + } + let mySet1 = new Set(); + askList.forEach((m,i) => { + if(i<askList.length-1){ + mySet1.add(m.split(',')[0].replace('鈩�','')) + } + }) + this.temperatureOptions = [] + mySet1.forEach(m => { + this.temperatureOptions.push({ + value:m, + label:m + }) + }) + this.wareFormChange() + } + // 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫 this.tableList.forEach(a => { let mcList = [] a.template.forEach(b => { diff --git a/src/components/tool/excel.vue b/src/components/tool/excel.vue index ce500aa..a53dee4 100644 --- a/src/components/tool/excel.vue +++ b/src/components/tool/excel.vue @@ -121,7 +121,8 @@ }, option.myFolderUrl = this.LOCATIONVUE + '/', option.functionButton = '<i class="save_i el-icon-info" title="绯荤粺鏀寔鐨勫彉閲忥細
鏍峰搧缂栧彿
鏍峰搧鍨嬪彿
搴忓彿
妫�楠岄」
妫�楠屽瓙椤�
璁惧鍚嶇О
璁惧缂栫爜
鍗曚綅
瑕佹眰鍊�
璇曢獙鏂规硶 | 妫�娴嬫柟娉�
鏈�缁堝��
缁撹
璁$畻鍊�
妫�楠屽��"></i><button onClick="excelClosed()" class="save">淇濆瓨</button>' - luckysheet.create(option) + console.log(window.luckysheet) + window.luckysheet.create(option) } } } diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue index 7e989b0..0bb2399 100644 --- a/src/components/view/b1-inspection-order.vue +++ b/src/components/view/b1-inspection-order.vue @@ -120,10 +120,13 @@ height: 8px !important; } .el-dialog__body >>>.el-radio__label{ - padding-left: 2px !important; + padding-left: 2px !important; } .el-dialog__body >>>.el-card__body{ padding: 0 !important; + } + .el-dialog__body >>>.el-card { + border: none; } .el-dialog__body >>>.el-radio__input.is-disabled .el-radio__inner{ border-color: #000 !important; @@ -369,16 +372,16 @@ </el-row> </span> </el-dialog> - <div class="el-dialog__body" style="width:320px;overflow-y: auto;position: absolute;top:9999px;margin-top: 0;position: fixed;top: 0;display: none;"> + <div class="el-dialog__body" style="overflow-y: auto;position: absolute;margin-top: 0;position: fixed;top: 999px;z-index: 99999;"> <div id="printMOrder"> - <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="font-size: 8px !important;page-break-before:always;page-break-after: always;color: #000;"> + <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="font-size: 8px !important;page-break-after: always;color: #000;box-shadow: none;" > <div style="display: flex;"> <div> - <el-col :span="8" :offset="4"> + <el-col :span="10" :offset="2"> <vueQr :text="JSON.stringify(item.sampleCode)" :size="78" :margin="2"></vueQr> </el-col> </div> - <div style="margin-left: 57px;line-height: 9px;"> + <div style="margin-left: 12px;line-height: 9px;"> <el-row> <el-col style="font-size: 8px;"><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col> </el-row> @@ -412,7 +415,7 @@ </div> </el-card> </div> - </div> + </div> </div> </template> @@ -651,9 +654,9 @@ insOrderRow:{}, checkIndexList:[], checkDataList:[ - // { - // sampleCode:'11111' - // } + { + sampleCode:'11111' + } ], qrData:[], multipleSelection:[] @@ -730,11 +733,11 @@ PrintJS({ printable: 'printMOrder',//椤甸潰 type: "html",//鏂囨。绫诲瀷 - maxWidth:450, + maxWidth:360, targetStyles:['*'], style: `@page { margin:0; - size: 360px 175px portrait; + size: 360px 175px collapse; } html{ zoom:100%; diff --git a/src/main.js b/src/main.js index b63c198..e69859f 100644 --- a/src/main.js +++ b/src/main.js @@ -17,7 +17,7 @@ //鏈湴 // Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80"; // const javaApi = 'http://127.0.0.1:8001'; -const javaApi = 'http://192.168.47.249:8001'; +// const javaApi = 'http://192.168.47.249:8001'; //浜� // Vue.prototype.LOCATIONVUE = "http://114.132.189.42:8080"; @@ -25,7 +25,7 @@ //妫�娴嬩腑蹇冩寮忓簱 // Vue.prototype.LOCATIONVUE = "http://10.1.200.86:8080"; -// const javaApi = 'http://10.1.200.86:8001'; +const javaApi = 'http://10.1.200.86:8001'; //瑁呭鐢电紗娴嬭瘯搴� // Vue.prototype.LOCATIONVUE = "http://10.16.173.59"; -- Gitblit v1.9.3