src/components/do/b1-ins-order/add.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-inspect-order-plan/Inspection.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-inspect-order-plan/humidity.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-inspect-order-plan/power-capacity.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/view/b1-inspect-order-plan.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/view/b1-sample.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/components/do/b1-ins-order/add.vue
@@ -996,6 +996,44 @@ <el-button type="primary" @click="spliceTemperatureTest">ä¿å</el-button> </span> </el-dialog> <!-- åç容é--å¡«åç«¯å£ --> <el-dialog title="å¡«å端å£" :visible.sync="powerShow" :close-on-click-modal="false" :close-on-press-escape="false" width="50%"> <el-table :data="powerTable" border style="width: 100%"> <el-table-column fixed prop="sample" label="æ ·å" min-width="150"> </el-table-column> <el-table-column prop="model" label="åå·" min-width="120"> </el-table-column> <el-table-column prop="inspectionItem" label="æ£éªé¡¹" min-width="120"> </el-table-column> <el-table-column prop="ask" label="端å£" min-width="120"> <template slot-scope="scope"> <el-input-number v-model="scope.row.ask" :min="1" :max="100" label="端å£" size="small"></el-input-number> </template> </el-table-column> </el-table> <span slot="footer" class="dialog-footer"> <el-button @click="powerShow=false">åæ¶</el-button> <el-button type="primary" @click="savePowerTest">ä¿å</el-button> </span> </el-dialog> <el-dialog title="æä»¶é¢è§" :visible.sync="lookFileVisible" @@ -1270,7 +1308,9 @@ ruleInfo:{ rule:null, num:null, } }, powerShow:false, powerTable:[] } }, watch: { @@ -1547,6 +1587,24 @@ return } this.spliceTemperatureTest() }, savePowerTest(){ if(!this.powerTable.every(m=>m.ask)) { this.$message.error('请填å宿´æ°æ®') } let num = 0; let sampleList = this.HaveJson(this.sampleList) sampleList.forEach(item=>{ item.insProduct.forEach(m=>{ if(m.inspectionItem.includes('åçè¯éª')&&m.state==1){ m.ask = 'ç«¯å£æ°:'+this.powerTable[num].ask num++ } }) }) this.saveMethod(sampleList) this.powerShow = false; }, cleanTemperatureTest () { this.temperatureTest = [] @@ -1867,6 +1925,15 @@ this.bsm3Dia = true; return } let isPower = this.totalArr.find(a => a.inspectionItem.includes('åçè¯éª')&&a.state==1) if (isPower) { this.powerTable = this.totalArr.filter(a => a.inspectionItem.includes('åçè¯éª')&&a.state==1) this.powerTable.forEach(a => { a.ask = null }) this.powerShow = true; return } this.saveMethod(sampleList) } } src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -347,7 +347,7 @@ </div> --> </div> <!-- å¸¸è§æ£éªåå§è®°å½ --> <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('çµè·¯è¯éª')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度è¯éª'))"> <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('çµè·¯è¯éª')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度è¯éª')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('åç容é'))"> <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id"> <tbody> <tr v-for="(m,i) in item.arr" :key="i"> @@ -730,9 +730,13 @@ <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters2> </div> <!-- 温湿度è¯éª --> <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度è¯éª')"> <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度è¯éª')"> <Humidity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/> </div> </div> <!-- åçè¯éª --> <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('åç容é')"> <PowerCapacity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1" /> </div> <el-upload :action="action" :data="{ orderId:id @@ -858,20 +862,42 @@ <el-button type="primary" :loading="versionLoading" @click="saveVersion">ç¡® å®</el-button> </span> </el-dialog> <el-dialog title="è¯éªä¿¡æ¯" :visible.sync="experimentDia" width="400px"> <div class="body" style="display: flex;padding: 10px;align-items: center;"> <el-dialog title="è¯éªä¿¡æ¯" :visible.sync="experimentDia" width="50%"> <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> <div class="search_label" style="width: 150px;"><span class="required-span">*</span>å®éªé¶æ®µ</div> <div class="search_input" style="width: 100%;"> <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> </div> </div> <div class="body" style="display: flex;padding: 10px;align-items: center;"> <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> <div class="search_label" style="width: 150px;"><span class="required-span">*</span>å®éªæä½</div> <div class="search_input" style="width: 100%;"> <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" :rows="2"></el-input> </div> </div> <table border="1" cellpadding="10" class="thermal-table"> <tr style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;"> <td>æ ·å</td> <td>æ ·åç¼å·</td> <td>åå·</td> <td>æ£éªé¡¹</td> <td>æ£éªå项</td> <td>å·¥æ¶</td> </tr> <template v-for="(item,index) in sampleProduct"> <tr> <td :rowspan="item.insProduct.length+1">{{ item.sample }}</td> <td :rowspan="item.insProduct.length+1">{{ item.sampleCode }}</td> <td :rowspan="item.insProduct.length+1">{{ item.model }}</td> </tr> <tr v-for="(m,i) in item.insProduct" :key="item.id+i"> <td>{{ m.inspectionItem }}</td> <td>{{ m.inspectionItemSubclass }}</td> <td><el-input-number v-model="m.outputWorkTime" :min="0" :max="100" label="å·¥æ¶" size="small"></el-input-number></td> </tr> </template> </table> <span slot="footer" class="dialog-footer"> <el-button @click="experimentDia = false">å æ¶</el-button> <el-button type="primary" @click="submit0">ç¡® å®</el-button> @@ -895,6 +921,7 @@ import CircuitParameters1 from './circuit-parameters1.vue' import CircuitParameters2 from './circuit-parameters2.vue' import Humidity from './humidity.vue' import PowerCapacity from './power-capacity.vue' import filePreview from '../../tool/file-preview.vue' export default { props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'], @@ -905,11 +932,13 @@ CircuitParameters2, filePreview, Humidity, PowerCapacity, }, data() { return { lookFileVisible:false,//é¢è§æä»¶ experimentDia:false, experimentDia0:false, experimentInfo:{ note:'', term:'' @@ -3203,15 +3232,30 @@ } }, submit0(){ if(!this.experimentInfo.term){ this.$message.error('请è¾å ¥å®éªé¶æ®µ') return if(this.sonLaboratory === 'çµè·¯è¯éª'){ if(!this.experimentInfo.term){ this.$message.error('请è¾å ¥å®éªé¶æ®µ') return } if(!this.experimentInfo.note){ this.$message.error('请è¾å ¥å®éªæä½') return } } if(!this.experimentInfo.note){ this.$message.error('请è¾å ¥å®éªæä½') let num =0 this.sampleProduct.forEach(item=>{ item.insProduct.forEach(a=>{ if(!a.outputWorkTime){ num++ } }) }) if(num>0){ this.$message.error('请è¾å ¥å®æå·¥æ¶') return } this.experimentDia = false this.experimentDia0 = false if(this.insOrder.orderType=='C'){ this.verifyUser = this.insOrder.prepareUserId this.submit() @@ -3220,15 +3264,10 @@ } }, handleSubmit(){ this.experimentDia = true console.log(6666,this.sampleProduct) if (this.sonLaboratory === 'çµè·¯è¯éª') { this.experimentDia = true } else { if(this.insOrder.orderType=='C'){ this.verifyUser = this.insOrder.prepareUserId this.submit() }else{ this.addVerifyDia = true } this.experimentDia0 = true } }, submit() { @@ -3243,14 +3282,33 @@ laboratory: this.sonLaboratory, }).then(res => { if (res.code === 200) { let auxiliaryOutputWorkingHoursList = [] this.sampleProduct.forEach(item=>{ item.insProduct.forEach(a=>{ let obj = { inspectionItem:a.inspectionItem, outputWorkTime:a.outputWorkTime, inspectionItemSubclass:a.inspectionItemSubclass, sample:item.id, insProductId:a.id, num:item.num } auxiliaryOutputWorkingHoursList.push(obj) }) }) if(!res.data||res.data.length==0){ this.$axios.post(this.$api.insOrderPlan.submitPlan, { orderId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, entrustCode: this.insOrder.entrustCode, auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, ...this.experimentInfo }).then(res => { }, { headers: { 'Content-Type': 'application/json' }, noQs:true}).then(res => { if (res.code === 200) { this.$message.success("æä½æå") this.$emit('goback') @@ -3282,8 +3340,13 @@ orderId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, ...this.experimentInfo }).then( res => { }, { headers: { 'Content-Type': 'application/json' }, noQs:true}).then( res => { if (res.code === 200) { this.submitLoading = false; this.$message.success("æä½æå") src/components/do/b1-inspect-order-plan/humidity.vue
@@ -66,10 +66,10 @@ </el-time-picker> </td> <td colspan="1"> <el-input v-model="m.temperature" placeholder="温度" size="small" @blur ="handleReplace(m,'â','temperature',item)" :disabled="state>1"></el-input> <el-input v-model="m.temperature" placeholder="温度" size="small" @change ="a=>handleReplace(m,'â','temperature',item)" :disabled="state>1"></el-input> </td> <td colspan="1"> <el-input v-model="m.humidity" placeholder="湿度" size="small" @blur ="handleReplace(m,'%rh','humidity',item)" :disabled="state>1"></el-input> <el-input v-model="m.humidity" placeholder="湿度" size="small" @change ="a=>handleReplace(m,'%rh','humidity',item)" :disabled="state>1"></el-input> </td> <td colspan="2"> <el-button icon="el-icon-minus" circle size="mini" type="danger" @@ -249,4 +249,7 @@ display: flex; align-items: center; } >>>.el-input__inner { text-align: center; } </style> src/components/do/b1-inspect-order-plan/power-capacity.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,164 @@ <template> <div> <table border="1" cellpadding="10" class="thermal-table" style="margin-bottom: 20px;"> <tr> <td style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;" colspan="6">{{ currentInfo.inspectionItemSubclass }}</td> </tr> <tr> <td style="font-size: 16px;background-color: #F0F1F5;">è§æ ¼åå·</td> <td>{{currentInfo.model}}</td> <td style="font-size: 16px;background-color: #F0F1F5;">è¯éªæ¹æ³</td> <td>{{currentInfo.methodS}}</td> <td style="font-size: 16px;background-color: #F0F1F5;">设å¤ç¼å·</td> <td> <el-select v-model="currentInfo.equipValue" placeholder="è¯·éæ©" size="small" :disabled="state>1" @focus="methodFocus(item)" @change="m=>handleEquip(m,currentInfo)"> <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </td> </tr> <tr> <td style="font-size: 16px;background-color: #F0F1F5;">è¯éªè¦æ±</td> <td colspan="3" style="text-align: left;">{{currentInfo.tell}}</td> <td style="font-size: 16px;background-color: #F0F1F5;">设å¤åç§°</td> <td>{{ currentInfo.equipName }}</td> </tr> <tr> <td style="font-size: 16px;background-color: #F0F1F5;">端å£</td> <td colspan="3" style="font-size: 16px;background-color: #F0F1F5;">å¹³ååç容é(W)</td> <td colspan="2" style="font-size: 16px;background-color: #F0F1F5;">å³°å¼åç容é(W)</td> </tr> <tr v-for="(item,index) in currentInfo.list" :key="index"> <td>{{index+1}}</td> <td colspan="3"> <el-input v-model="item.power" placeholder="" size="small" @change="m=>save(currentInfo)" :disabled="state>1"></el-input> </td> <td colspan="2"> <el-input v-model="item.peakPower" placeholder="" size="small" @change="m=>save(currentInfo)" :disabled="state>1"></el-input> </td> </tr> </table> </div> </template> <script> export default { props:['insProduct','orderId','sampleId','state','isLook','num'], data() { return { currentInfo:{}, equipOptions:[], } }, watch: { insProduct:{ deep:true, handler(val){ this.init() } } }, mounted() { this.init() }, methods: { init(){ this.currentInfo = this.HaveJson(this.insProduct[0]) if(!this.currentInfo.insProductResult){ // æ²¡ææ£éªæ¶åå§å this.$set(this.currentInfo, 'equipValue', '') this.$set(this.currentInfo, 'equipName', '') let portNum = Number(this.currentInfo.ask.split(':')[1]) this.$set(this.currentInfo, 'list', []) for(let i=0;i<portNum;i++){ this.$set(this.currentInfo.list,i, {'power':null,'peakPower':null}) } }else{ // ææ£éªæ¶åå§å this.$set(this.currentInfo, 'equipValue', this.currentInfo.insProductResult.equipValue) this.$set(this.currentInfo, 'equipName', this.currentInfo.insProductResult.equipName) this.currentInfo.list = JSON.parse(this.currentInfo.insProductResult.insValue) } }, async methodFocus(item){ this.equipOptions = await this.getEquipOptions(item) }, // è·å设å¤é项 id:为æ£éªé¡¹id async getEquipOptions(m) { let arr = [] let res = await this.$axios.post(this.$api.deviceScope.selectDeviceByCategory, { inspectionItem: m.inspectionItem, inspectionItemSubclass: m.inspectionItemSubclass }) if (res.code === 200 && res.data) { arr = res.data.map(m => { m.value = m.managementNumber m.label = m.deviceName return m }) } return arr },/** * å¤ç设å¤ä¿¡æ¯ * * @param {any} m - æ°ç设å¤å¼ * @param {Object} item - 设å¤å¯¹è±¡ */ handleEquip(m,item){ this.$delete(item, 'equipValue') this.$set(item, 'equipValue', m) this.$delete(item, 'equipName') this.$set(item, 'equipName', this.equipOptions.find(m=>m.value==item.equipValue).label) this.save(item) }, save(item){ this.$axios.post(this.$api.insOrderPlan.saveInsContext3, { insProductId:item.id, insValue:JSON.stringify(item.list), equipValue:item.equipValue, equipName:item.equipName, num:this.num, }, { headers: { 'Content-Type': 'application/json' }, noQs:true}).then(res => { if (res.code === 201) { this.$message.error('ä¿å失败') return } this.$message.success('å·²ä¿å') }).catch(err => { console.log(err) }) } } } </script> <style lang="css" scoped> .thermal-table{ min-width: calc(100% - 10px); margin: 5px 5px 0; table-layout: fixed; } .thermal-table td { min-width: 70px; text-align: center; font-size: 14px; word-wrap: break-word; white-space: normal; padding: 5px; } .thermal-table .el-input{ display: flex; align-items: center; } >>>.el-input__inner { text-align: center; } </style> src/components/view/b1-inspect-order-plan.vue
@@ -810,7 +810,7 @@ this.sampleCode = code } }catch(e){ this.$message.error('该äºç»´ç æè¯¯') this.$message.error('请è°è³è±æé®ç') } this.codeInfo = null }, src/components/view/b1-sample.vue
@@ -454,7 +454,7 @@ this.sampleCode = code } }catch(e){ this.$message.error('该äºç»´ç æè¯¯') this.$message.error('请è°è³è±æé®ç') } this.codeInfo = null },