From 41066e88fa1ff31c3f692d559afeee2d9afc0cd1 Mon Sep 17 00:00:00 2001 From: 王震 <10952869+daywangzhen@user.noreply.gitee.com> Date: 星期一, 06 十一月 2023 09:18:09 +0800 Subject: [PATCH] s --- src/views/quality/rawMaterial/rawMaterial-form.vue | 395 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 286 insertions(+), 109 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index d877ccd..b5923d0 100644 --- a/src/views/quality/rawMaterial/rawMaterial-form.vue +++ b/src/views/quality/rawMaterial/rawMaterial-form.vue @@ -3,7 +3,8 @@ <div class="page-header"> <div class="header-left"> <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> - <h2>缂栬緫-鍘熸潗鏂欐楠�</h2> + <h2 v-if="resultVal!=null && dataForm.id!=null">鏌ョ湅-鍘熸潗鏂欐楠�</h2> + <h2 v-else>缂栬緫-鍘熸潗鏂欐楠�</h2> </div> <div class="btn-group header-right"> <el-button @click="save()" v-if="this.dataForm.id==null">淇濆瓨</el-button> @@ -11,14 +12,6 @@ </div> <div class="page-main"> <div class="rawMaterial-basic"> - <el-row style="width:100%;height:20px;margin-bottom:20px;" v-show="dataForm.id==null"> - <el-col :span="20"> - <span style="color:red;font-size:18px;padding: 0;margin: 0;">璇锋壂鎻忎簩缁寸爜鑾峰彇鏁版嵁</span> - </el-col> - <el-col :span="4" style="text-align: right;"> - <el-button>鎵弿浜岀淮鐮�</el-button> - </el-col> - </el-row> <el-form :model="dataForm" :rules="dataRule" @@ -27,15 +20,15 @@ class="l-mes" label-width="110px"> <el-row> - <el-col :span="6"> - <el-form-item prop="formTime" label="鏉ユ枡鏃ユ湡"> - <el-date-picker - v-model="dataForm.formTime" - type="datetime" - value-format="yyyy-MM-dd HH:mm:ss" - disabled> - - </el-date-picker> + <el-col :span="6"> + <el-form-item label="闆朵欢鍙�" prop="code"> + <el-input v-model="dataForm.code" :disabled="resultVal!=null && dataForm.id!=null"> + <el-button + slot="append" + icon="el-icon-search" + :disabled="resultVal!=null && dataForm.id!=null" + @click="queryCode()"></el-button> + </el-input> </el-form-item> </el-col> <el-col :span="6"> @@ -45,8 +38,15 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item label="鍘熸潗鏂欑紪鐮�" prop="code"> - <el-input v-model="dataForm.code" disabled></el-input> + <el-form-item prop="formTime" label="鏉ユ枡鏃ユ湡"> + <el-date-picker + style="width:100%" + v-model="dataForm.formTime" + type="datetime" + value-format="yyyy-MM-dd HH:mm:ss" + disabled> + + </el-date-picker> </el-form-item> </el-col> <el-col :span="6"> @@ -71,21 +71,27 @@ </el-col> <el-col :span="6"> <el-form-item label="鏁伴噺" prop="number"> - <el-input v-model="dataForm.number" /> + <el-input v-model="dataForm.number" :disabled="resultVal!=null" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="鎶ユ鏃ユ湡" prop="createTime" v-if="dataForm.id!=null"> - <el-input v-model="dataForm.createTime" /> + <el-input v-model="dataForm.createTime" disabled /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="6"> <el-form-item label="鎶ユ浜�" prop="createUser" v-if="dataForm.id!=null"> - <el-input v-model="dataForm.createUser" /> + <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> @@ -94,23 +100,31 @@ <el-col :span="19">妫�楠岄」鐩�</el-col> <el-col :span="5"> <div style="width:100%;text-align: right;"> - <el-button v-show="dataForm.id==null" size="small" @click="clickAddLine">娣诲姞妫�楠岃</el-button> - <el-button size="small" @click="addTeatValueColumn()">娣诲姞妫�楠屽�煎垪</el-button> - <el-button size="small" @click="delTeatValueColumn()">鍒犻櫎妫�楠屽�煎垪</el-button> + <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine">娣诲姞妫�楠岃</el-button> + <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">娣诲姞妫�娴嬪�煎垪</el-button> + <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">鍒犻櫎妫�娴嬪�煎垪</el-button> </div> </el-col> </el-row> <el-row style="width:100%;"> <el-col :span="24"> - <el-table :data="list" border style="width: 100%;" height="320"> + <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"> <el-table-column type="index" label="搴忓彿" width="60"> </el-table-column> + <el-table-column prop="name" label="椤圭洰" width="260"> <template slot-scope="scope"> - <el-input :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" + <el-select v-if="projectList.length > 0" :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name" + 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" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> </template> </el-table-column> + <el-table-column prop="unit" label="鍗曚綅" width="260"> <template slot-scope="scope"> <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input> @@ -122,24 +136,39 @@ placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input> </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"> <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�" placement="top-start"> - <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValueList[index]" - @blur="updateTestValue(scope.row)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input> - </el-tooltip> + + <!-- <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)" + class="inline-input" + v-model="scope.row.testValueList[index]" + :fetch-suggestions="querySearch" + placeholder="璇疯緭鍏ュ唴瀹�" + @select="handleSelect" + ></el-autocomplete> + + </el-tooltip> </template> </el-table-column> + <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260"> <template slot-scope="scope"> - <el-select style="width:100%" v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row)"> - <el-option v-for="(item,index) in deviceList" - :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option> - </el-select> + <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%" + v-model="scope.row.equipmentId" 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> + </el-select> </template> </el-table-column> + <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="缁撹" min-width="150"> <template slot-scope="scope"> <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span> @@ -156,34 +185,59 @@ </el-col> </el-row> </div> - <div class="rawMaterial-detail"> + <div class="rawMaterial-result"> <el-row> <el-col :span="24">妫�楠岀粨璁�</el-col> </el-row> <el-row style="width:100%"> <el-col :span="24"> - <avue-crud - ref="conclusion" - :option="option" - :data="conclusionTable" - v-model="conclusion"> - <template slot="judgeState" slot-scope="scope"> - <el-tag type="success" v-if="scope.row.judgeState == 1">鍚堟牸</el-tag> - <el-tag type="danger" v-else-if="scope.row.judgeState == 0">涓嶅悎鏍�</el-tag> - </template> - <template #menu> - <el-button type="text" @click="submitSave()" size="small">涓婃姤</el-button> - </template> - </avue-crud> + <el-table border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion" + :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" + :cell-style="{textAlign:'center'}"> + <el-table-column prop="code" label="鐗╂枡缂栧彿"></el-table-column> + <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column> + <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column> + <el-table-column prop="judgeState" label="妫�楠岀粨璁�"> + <template slot-scope="scope"> + <el-tag type="success" v-if="scope.row.testState == '1'">鍚堟牸</el-tag> + <el-tag type="danger" v-else-if="scope.row.testState == '0'">涓嶅悎鏍�</el-tag> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔"> + <template> + <el-button type="text" :disabled="resultVal!=null && dataForm.id!=null" @click="showDialog()" size="small">涓婃姤</el-button> + </template> + </el-table-column> + </el-table> </el-col> </el-row> </div> </div> + <rawMaterialPartDialog :paramObj="paramObj" :currshowlist.sync="showPart" @listenToPartEvent="selectPart" /> + <el-dialog + title="涓婃姤" + :visible.sync="dialogVisible" + width="30%" class="l-mes"> + <el-row> + <el-col> + <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> <script> -import { object,conclusion } from '@/const/crud/quality/rawMaterial' import { selectDevice, addRawInspects, @@ -191,9 +245,26 @@ updateRawInsProduct, updateRawInspectsById, updateDeviceById, } from '@/api/quality/rawMaterial' + import rawMaterialPartDialog from '@/views/common/rawMaterial-part' +import { log } from 'util' export default { + // props:['currentRow'], + computed:{}, + components:{ + rawMaterialPartDialog + }, data(){ return{ + currentRow:[], + userlist:[], + fiedNum: null, + unqualifiedNum: null, + dialogVisible:false, + resultVal: null, + projectList: [], + paramObj: {}, + IFSData: [], + showPart: false, // 娣诲姞鍒� empiricalValueAdd: 1, // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� @@ -202,14 +273,14 @@ dataForm:{ id: null, judgeState: null, - formTime: '2023-10-28 00:00:00', - message: '-2050314,1,1,*,1002', - name: 'name', - code: 'code4', - specs: 'specs', - unit: 'mm', - number: '111', - supplier: 'supplier', + formTime: '', + message: '', + name: '', + code: '88.118.1/A0498220', + specs: '', + unit: '', + number: '', + supplier: '', rawInsProducts: [{ equipmentId: 0, name: '', @@ -228,61 +299,169 @@ userName: '', testState: '' }], - tableOption: object, - option: conclusion, dataRule: {}, deviceList: [], + restaurants:[], + whetherNot:'', } + }, + beforeUpdate(){ + this.$nextTick(()=>{ + this.$refs.table.doLayout(); + }) }, mounted(){ this.dataForm.id = this.$route.query.id + this.resultVal = this.$route.query.resultVal + if(this.resultVal == null){ + let val = sessionStorage.getItem("raw-resultVal-"+this.dataForm.id) + val == undefined ? null : this.resultVal=val + } this.init() - let isShow = this.dataForm.id == null ? true : false - this.tableOption.menu = isShow - let len = this.tableOption.column.length - this.tableOption.column[len-1].hide = isShow this.getDeviceList() + this.restaurants = this.loadAll(); + // this.costPlannedAmountChange() }, watch:{ - + dialogVisible(newVal){ + if(newVal){ + this.unqualifiedNum = null + this.fiedNum = null + } + }, + }, methods:{ - updateDevice(row){ + //椤圭洰 + // 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; + + cb(results); + }, + createFilter(queryString) { + return (restaurant) => { + return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0); + }; + }, + loadAll(){ + return [ + {"value":"鏄�"}, + {"value":"鍚�"} + ];}, + handleSelect(item) { + console.log(item); + }, + changeName(index,row){ + this.projectList.forEach(item=>{ + if(row.name == item.name){ + this.list[index].unit = item.unit + this.list[index].required = item.required + } + }) + }, + // 纭鍥炶皟 + selectPart(param, nodePart, index) { + console.log("鎴愬姛--",param); + if (typeof param !== 'undefined') { + this.dataForm.code = param.code + this.dataForm.name = param.name + this.dataForm.formTime = param.formTime + this.dataForm.unit = param.unit + this.dataForm.specs = param.specs + this.dataForm.supplier = param.supplier + this.dataForm.number = param.number + 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) + // }) + } + }, + 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=>{ + this.list[index].testValue = '' + this.list[index].testState = null + this.list[index].testValueList = [] }).catch(error=>{ console.log(error) }) } }, - submitSave(){ + checkTestState(){ + let resultVal = '1' + this.list.forEach(item=>{ + if(item.children){ + if(obj.testState == 0){ + resultVal = '0' + } + } + }) + this.resultVal = resultVal + this.conclusionTable[0].testState = resultVal + sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal) + }, + showDialog(){ let pro = this.list.filter(item => { return item.testState == 0; }) if (pro.length > 0) { - this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - inputPattern: /^\d+$/, - inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�' - }).then(({ value }) => { - let data = { - id: this.dataForm.id, - number: value - } - updateRawInspectsById(data).then(res => { - this.$message.success("涓婃姤鎴愬姛"); - }); - }).catch(() => {}); + this.dialogVisible = true }else{ - updateRawInspectsById({id:this.dataForm.id,number:0}).then(res => { - this.$message.success("涓婃姤鎴愬姛"); - }); + this.submitSave() } - this.init() + }, + //涓婃姤 + submitSave(){ + let data = { + id: this.dataForm.id, + number: this.unqualifiedNum, + 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() }, addTeatValueColumn(){ this.empiricalValueAdd = this.empiricalValueAdd + 1; + }, + // 娣诲姞琛� + clickAddLine() { + let obj = { + equipmentId: null, + name: "", + required: "", + testValue: "", + unit: "", + testState: null, + testValueList: [], + }; + this.list.push(obj); }, // 鍒犻櫎琛� clickDeleteline(scope) { @@ -298,8 +477,8 @@ } } }, - updateTestValue(row){ - if(row.rpId == null){ + updateTestValue(row,index){ + if(row.rpId == null || row.testValueList[index]==null){ return } let obj = { @@ -339,12 +518,13 @@ let arr = [] if(item.testValue != undefined ){ arr = item.testValue.split(",") - this.empiricalValueAdd = arr.length - }else{ - this.empiricalValueAdd = 1 + if(arr.length > this.empiricalValueAdd){ + this.empiricalValueAdd = arr.length + } } this.list.push({ equipmentId: item.equiomentId, + deviceName: item.deviceName, name: item.rpName, required: item.required, testValue: item.testValue, @@ -358,14 +538,13 @@ code: data.code, name: data.name, userName: Array.from(new Set(userNameList)).join(','), - judgeState: data.judgeState + testState: this.resultVal==null?null:this.resultVal }] }).catch(error=>{ this.$message.error("鑾峰彇澶辫触",error) }) }else{ this.conclusionTable = [] - this.tableOption.column = object.column } }, save(){ @@ -377,22 +556,10 @@ }) addRawInspects(data).then(res=>{ this.$message.success("淇濆瓨鎴愬姛") + this.$router.go(-1) }).catch(error=>{ this.$message.error(error) }) - }, - // 娣诲姞琛� - clickAddLine() { - let obj = { - equipmentId: null, - name: "", - required: "", - testValue: "", - unit: "", - testState: null, - testValueList: [], - }; - this.list.push(obj); }, getDeviceList(){ selectDevice(null).then(res=>{ @@ -400,15 +567,25 @@ }) }, }, - computed:{}, - components:{} } </script> <style> .rawMaterial-detail { width: 100%; - height: 400px; + height: 470px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; +} + +.rawMaterial-result { + width: 100%; + height: 150px; padding: 10px 20px; display: flex; border: 1px solid #ddd; @@ -420,7 +597,7 @@ .rawMaterial-basic { background-color: #fff; - height: 150px; + height: 155px; display: flex; flex-wrap: wrap; padding: 10px 20px; -- Gitblit v1.9.3