From 480fd6b48efc83dc4754ea2d6211e5b0f3a97429 Mon Sep 17 00:00:00 2001 From: 86134 <aa> Date: 星期三, 08 十一月 2023 11:25:47 +0800 Subject: [PATCH] 仝亚平 --- src/views/quality/rawMaterial/rawMaterial-form.vue | 288 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 207 insertions(+), 81 deletions(-) diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue index 5ca9203..400e09e 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> @@ -21,10 +22,11 @@ <el-row> <el-col :span="6"> <el-form-item label="闆朵欢鍙�" prop="code"> - <el-input v-model="dataForm.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> @@ -38,6 +40,7 @@ <el-col :span="6"> <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" @@ -68,19 +71,26 @@ </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-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-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-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-row> @@ -91,9 +101,9 @@ <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> @@ -101,8 +111,18 @@ <el-col :span="24"> <el-table :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" :cell-style="{textAlign:'center'}" ref="table" - :data="list" border style="width: 100%;" height="320"> + :data="list" border style="width: 100%;" height="400"> <el-table-column type="index" label="搴忓彿" width="60"> + </el-table-column> + <el-table-column prop="father" label="妫�楠岄」鐩�" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.father" placeholder="璇疯緭鍏ユ楠岄」鐩�"></el-input> + </template> + </el-table-column> + <el-table-column prop="note" label="妫�楠屾弿杩�" width="260"> + <template slot-scope="scope"> + <el-input :disabled="dataForm.id != null" v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + </template> </el-table-column> <el-table-column prop="name" label="椤圭洰" width="260"> <template slot-scope="scope"> @@ -114,6 +134,7 @@ 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> @@ -125,24 +146,40 @@ 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="璇峰厛閫夋嫨璁惧锛�" + <el-tooltip :disabled="scope.row.deviceId != 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 + 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="璇疯緭鍏ユ娴嬪��" + @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.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> + <el-option v-for="(item,index) in deviceList" + :key="index" :value="item.id" :label="item.code +'-'+ 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> @@ -159,52 +196,75 @@ </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-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> </div> </template> <script> -import { object,conclusion } from '@/const/crud/quality/rawMaterial' import { selectDevice, addRawInspects, getObj, updateRawInsProduct, updateRawInspectsById, - chooseIFS, - selectHisByCode, updateDeviceById, } from '@/api/quality/rawMaterial' import rawMaterialPartDialog from '@/views/common/rawMaterial-part' export default { + // props:['currentRow'], computed:{}, components:{ rawMaterialPartDialog }, data(){ return{ + currentRow:[], + userlist:[], + unqualifiedNum: null, + dialogVisible:false, + resultVal: null, projectList: [], paramObj: {}, IFSData: [], @@ -220,13 +280,13 @@ formTime: '', message: '', name: '', - code: '88.118.1/A0487643', + code: '88.118.1/A0498220', specs: '', unit: '', number: '', supplier: '', rawInsProducts: [{ - equipmentId: 0, + deviceId: 0, name: '', required: '', testValue: '', @@ -243,10 +303,10 @@ userName: '', testState: '' }], - tableOption: object, - option: conclusion, dataRule: {}, deviceList: [], + restaurants:[], + whetherNot:'', } }, beforeUpdate(){ @@ -256,17 +316,45 @@ }, 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(); + + console.log(this.dataForm); }, watch:{ - + dialogVisible(newVal){ + if(newVal){ + this.unqualifiedNum = null + } + }, + }, methods:{ + 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){ @@ -286,7 +374,11 @@ this.dataForm.supplier = param.supplier this.dataForm.number = param.number this.dataForm.message = param.message - this.projectList = param.rawInsProducts + this.dataForm.projectName = param.projectName + this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts + param.rawInsProducts.forEach(o=>{ + this.clickAddLine(o) + }) } }, queryCode(){ @@ -295,47 +387,63 @@ } this.showPart = true }, - updateDevice(row){ + 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 = [] }).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() { + clickAddLine(row) { let obj = { - equipmentId: null, + deviceId: null, name: "", required: "", testValue: "", @@ -343,6 +451,11 @@ testState: null, testValueList: [], }; + if(row!=undefined){ + obj.name = row.name + obj.unit = row.unit + obj.required = row.required + } this.list.push(obj); }, // 鍒犻櫎琛� @@ -359,12 +472,12 @@ } } }, - updateTestValue(row){ - if(row.rpId == null){ + updateTestValue(row,index){ + if(row.rpId == null || row.testValueList[index]==null){ return } let obj = { - equiomentId: row.equipmentId, + deviceId: row.deviceId, rpId: row.rpId, testValue: row.testValueList.join(",") } @@ -390,9 +503,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=>{ @@ -400,12 +513,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, + deviceId: item.deviceId, + deviceName: item.deviceName, name: item.rpName, required: item.required, testValue: item.testValue, @@ -419,14 +533,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(){ @@ -438,12 +551,13 @@ }) addRawInspects(data).then(res=>{ this.$message.success("淇濆瓨鎴愬姛") + this.$router.go(-1) }).catch(error=>{ this.$message.error(error) }) }, getDeviceList(){ - selectDevice(null).then(res=>{ + selectDevice().then(res=>{ this.deviceList = res.data.data }) }, @@ -454,7 +568,19 @@ <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; -- Gitblit v1.9.3