From dd2d4190118b7fbe59c19a3a0ecc6d50cb63da61 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期五, 01 十二月 2023 15:30:01 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before --- src/views/quality/packageinspect/packageInspect-form.vue | 610 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 610 insertions(+), 0 deletions(-) diff --git a/src/views/quality/packageinspect/packageInspect-form.vue b/src/views/quality/packageinspect/packageInspect-form.vue new file mode 100644 index 0000000..5fbff88 --- /dev/null +++ b/src/views/quality/packageinspect/packageInspect-form.vue @@ -0,0 +1,610 @@ +<template> + <div style="height: 100%"> + <div class="page-header"> + <div class="header-left"> + <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a> + <h2>缂栬緫-鍖呰妫�楠�</h2> + </div> + <div class="btn-group header-right"> + <el-button @click="save()" type="primary">淇濆瓨</el-button> + </div> + </div> + <div class="page-main"> + <div class="packageInspect-basic"> + <el-form + :model="dataForm" + :rules="dataRule" + ref="dataForm" + style="width: 100%" + class="l-mes" + label-width="110px"> + <el-row> + <el-col :span="6"> + <el-form-item label="鍖呰妫�楠岀紪鍙�" prop="packInsNo"> + <el-input v-model="dataForm.packInsNo" disabled> + </el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鍖呰缂栧彿" prop="packageNo"> + <el-input v-model="dataForm.packageNo" disabled></el-input> + </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-col :span="6"> + <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName"> + <el-input v-model="dataForm.customerName" disabled /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="6"> + <el-form-item label="鍚堝悓鍙�" prop="contractNo"> + <el-input v-model="dataForm.contractNo" disabled></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鎶ユ鏃ユ湡" prop="createTime"> + <el-input v-model="dataForm.createTime" disabled /> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鎶ユ浜�" prop="createUser"> + <el-input v-model="dataForm.createUser" disabled /> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <div class="packageInspect-detail"> + <el-row style="width:100%;z-index: 10;height:50px;"> + <el-col :span="22">妫�楠岄」鐩�</el-col> + <el-col :span="2"> + <el-button style="width:100%" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button> + </el-col> + </el-row> + <el-row style="width:100%;"> + <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="400" + row-key="randomId" class="l-mes" + default-expand-all + :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> + <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 v-if="scope.row.children" class="inline-input" style="width:90%;" v-model="scope.row.name" + placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + </template> + </el-table-column> + <el-table-column prop="required" label="瑕佹眰" width="260"> + <template slot-scope="scope"> + <div> + <el-input v-model="scope.row.required" + placeholder="璇疯緭鍏ヨ姹�"></el-input> + </div> + </template> + </el-table-column> + <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" > + <template slot-scope="scope"> + <div> + <el-input v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input> + </div> + </template> + </el-table-column> + <el-table-column fixed="right" prop="testState" label="缁撹" min-width="150"> + <template slot-scope="scope"> + <el-select v-model="scope.row.result"> + <el-option label="鍚堟牸" value="鍚堟牸"></el-option> + <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"></el-option> + </el-select> + </template> + </el-table-column> + <el-table-column fixed="right" style="background-color: white;" label="鎿嶄綔" width="200"> + <template slot-scope="scope"> + <el-button icon="el-icon-circle-check" type="text" @click="savePackIns(scope.row,scope.$index)">淇濆瓨</el-button> + <el-button v-if="scope.row.children" icon="el-icon-circle-plus-outline" type="text" @click="clickAddChildren(scope.row,scope.$index)">娣诲姞琛�</el-button> + <el-button v-if="!scope.row.children || scope.row.children.length==0" + icon="el-icon-circle-close" type="text" + @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">鍙栨秷</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + </div> + <div class="packageInspect-result"> + <el-row> + <el-col :span="24">妫�楠岀粨璁�</el-col> + </el-row> + <el-row style="width:100%"> + <el-col :span="24"> + <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="packageNo" 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> + <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 { + fetchListById, + updatePackageInsProduct, +} from '@/api/quality/packageInspect' +export default { + computed:{}, + components:{ + }, + data(){ + return{ + loading: false, + unqualifiedNum: null, + dialogVisible:false, + resultVal: null, + projectList: [], + // 娣诲姞鍒� + empiricalValueAdd: 1, + // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� + empiricalValueAddMaxNumber: 0, + columnList: [], + dataForm:{ + id: null, + packInsNo: null, + packageNo: '', + contractNo: '', + projectName: '', + customerName: '', + packageInsProductS: [{ + deviceId: 0, + father:'', + name: '', + required: '', + testValue: '', + unit: '', + testValueList: [] + }] + }, + form: null, + list:[], + conclusion: null, + conclusionTable: [{ + packageNo: '', + name: '', + userName: '', + testState: '' + }], + dataRule: {}, + } + }, + beforeUpdate(){ + this.$nextTick(()=>{ + this.$refs.table.doLayout(); + }) + }, + created(){ + this.dataForm.id = this.$route.query.id + this.init() + }, + watch:{ + dialogVisible(newVal){ + if(newVal){ + this.unqualifiedNum = null + } + }, + }, + methods:{ + checkTestState(){ + let resultVal = '1' + this.list.forEach(item=>{ + if(item.children){ + item.children.forEach(ele=>{ + if(ele.testState == 0){ + resultVal = '0' + } + }) + } + }) + this.resultVal = resultVal + this.conclusionTable[0].testState = resultVal + sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal) + }, + showDialog(){ + let size = 0 //涓嶅悎鏍奸」鐩暟閲� + this.list.forEach(item=>{ + if(item.children){ + let num = item.children.filter(e=>{ + return e.testState == 0 + }).length + size+=num + } + }) + if (size > 0) { + this.dialogVisible = true + }else{ + this.submitSave() + } + }, + //涓婃姤 + submitSave(){ + let data = { + id: this.dataForm.id, + number: this.unqualifiedNum, + } + updateRawInspectsById(data).then(res => { + if(res.data.code == 0 && (res.data.data=='1'|| res.data.data=='0')){ + sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data) + this.$message.success("涓婃姤鎴愬姛"); + }else{ + this.$message.error("涓婃姤澶辫触锛�",res.data.data); + } + this.dialogVisible = false + this.checkTestState() + }); + }, + // 娣诲姞琛� + clickAddLine(row) { + this.list.push({ + pId: '', + name: '', + note: '', + required: '', + result: '', + randomId: Math.random(), + children: [] + }) + }, + //娣诲姞瀛愮骇 + clickAddChildren(row,index){ + console.log(row,index); + row.children.push({ + note: '', + required: '', + result: '', + randomId: Math.random(), + }) + }, + // 鍒犻櫎琛� + clickDelLine(row,index,isParent) { + if(isParent){ + let parentIndex = this.list.findIndex(el =>{ + return el.randomId == row.randomId + }) + this.list.splice(parentIndex,1) + }else{ + let i = this.list.findIndex(el =>{ + return el.children.find(ele => ele.randomId == row.randomId) + }) + let childrenIndex = this.list[i].children.findIndex(el =>{ + return el.randomId == row.randomId + }) + this.list[i].children.splice(childrenIndex,1) + } + }, + //淇濆瓨妫�鏌ラ」 + savePackIns(row,index){ + if(row){ + let obj = { + name: row.anme, + note: row.note, + packageInspectId: row.packageInspectId, + required: row.required, + result: row.result, + } + updatePackageInsProduct(obj).then(res=>{ + console.log(res); + }).catch(error=>{ + console.log(error); + }) + } + }, + init(){ + if(this.dataForm.id){ + fetchListById(this.dataForm.id).then(res=>{ + let data = res.data.data + this.dataForm.packInsNo = data.packInsNo + this.dataForm.packageNo = data.packageNo + this.dataForm.contractNo = data.contractNo + this.dataForm.customerName = data.customerName + this.dataForm.projectName = data.projectName + this.dataForm.createTime = data.createTime + this.dataForm.createUser = data.createUser + this.list = data.packageInsProductS + + }).catch(error=>{ + this.$message.error("鑾峰彇澶辫触",error) + }) + }else{ + this.conclusionTable = [] + } + }, + changeState(row, index) { + if (row.rpId != null && row.rpId != '') { + let val = row.testValueList.join(",") + if (val === undefined || val === '' || val === null) { + return + } + let obj = { + deviceId: row.deviceId, + rpId: row.rpId, + testValue: val, + note: row.note + } + updateRawInsProduct(obj).then(res => { + if (res.data.code == 0) { + this.$message.success("鏇存柊鎴愬姛") + } else { + this.$message.error("鏇存柊澶辫触") + } + this.init() + }) + } + }, + save(){ + let data = this.dataForm + this.list.forEach(item=>{ + item.children.forEach(c=>{ + c.testValue=c.testValueList.join(",") + }) + }) + data.packageInsProductS = this.list + addRawInspects(data).then(res=>{ + this.$message.success("淇濆瓨鎴愬姛") + this.$router.go(-1) + }).catch(error=>{ + this.$message.error(error) + }) + }, + }, +} +</script> + +<style> +.packageInspect-detail { + width: 100%; + height: 490px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; +} + +.packageInspect-result { + width: 100%; + height: 150px; + padding: 10px 20px; + display: flex; + border: 1px solid #ddd; + background-color: #fff; + margin-top: 10px; + box-sizing: border-box; + flex-wrap: wrap; +} + +.packageInspect-basic { + background-color: #fff; + height: 120px; + display: flex; + flex-wrap: wrap; + padding: 10px 20px; + border: 1px solid #ddd; + box-sizing: border-box; +} + +.packageInspect-related-stock-part { + background-color: #fff; + width: 100%; + height: 220px; + border: 1px solid #ddd; + padding: 10px 20px 0px 20px; + box-sizing: border-box; +} + +.packageInspect-bom { + background-color: #fff; + width: 100%; + height: 499px; + border: 1px solid #ddd; + padding: 10px 20px; + box-sizing: border-box; +} + +.packageInspect-bom .el-card__header { + padding: 1px 20px; + border-bottom: 0px solid #ebeef5; +} + +.packageInspect-bom .el-card__body { + height: calc(100% - 22px); +} + +.packageInspect-bom .el-card__body .el-collapse { + height: 100%; + overflow: auto; +} + +.packageInspect-technology-params { + background-color: #fff; + width: calc(52% - 20px); + float: left; + height: 719px; + border: 1px solid #ddd; + padding: 10px 20px; + margin-left: 20px; +} + +.packageInspect-structure { + background-color: #fff; + width: 35%; + float: left; + height: 719px; + border: 1px solid #ddd; + padding: 10px 20px; + box-sizing: border-box; +} + +.packageInspect-flow { + background-color: #fff; + width: calc(65% - 20px); + float: left; + height: 719px; + border: 1px solid #ddd; + padding: 10px 20px; + margin-left: 20px; + box-sizing: border-box; +} + +/*鑷畾涔塪isabled鐘舵�佷笅checkbox鐨勬牱寮�*/ +.completeproductstructure-checkout + .el-checkbox__input.is-disabled.is-checked + .el-checkbox__inner { + background-color: #006eff; + border-color: #006eff; +} + +.completeproductstructure-checkout + .el-checkbox__input.is-disabled.is-checked + + span.el-checkbox__label { + color: #006eff; + border-color: #006eff; +} + +.completeproductstructure-checkout + .el-checkbox__input.is-disabled + .el-checkbox__inner { + background-color: #ffffff; + cursor: pointer; +} + +.completeproductstructure-checkout + .el-checkbox__input.is-disabled + + span.el-checkbox__label { + color: #606266; + cursor: pointer; +} + +.completeproductstructure-checkout .el-checkbox__inner::after { + border: 1px solid #fff !important; + border-left: 0 !important; + border-top: 0 !important; + cursor: pointer !important; +} + +.packageInspect-bom-div { + width: 100%; + margin-bottom: 5px; +} + +.packageInspect-technology-div { + width: 100%; + margin-bottom: 5px; + margin-right: 10px; +} + +.packageInspect-technology-div .el-collapse { + border-top: 0px; + border-bottom: 0px; +} + +.structure-detail-table th.gutter { + display: table-cell !important; + width: 10px !important; +} + +.structure-detail-table colgroup.gutter { + display: table-cell !important; + width: 10px !important; +} + +.final-product-checkout .el-card__header { + padding: 0px 20px; + border-bottom: 0px; +} + +.final-product-checkout .el-card__body { + padding: 0px 20px 20px; +} + +.orimaterial-quantity .el-card__header { + padding: 0px 20px; + border-bottom: 0px; +} + +.orimaterial-quantity .el-card__body { + padding: 0px 20px 20px; +} + +.packageInspect-materialcost-table th.gutter { + display: table-cell !important; + width: 10px !important; +} + +.packageInspect-materialcost-table colgroup.gutter { + display: table-cell !important; + width: 10px !important; +} + +.GooFlow .ico .ico_start:before { + color: red; +} +.highlight-tab-class { + color: #006eff; + background: #e4e7ed; + border-top: 1px solid #006eff; +} +.unhighlight-tab-class { + border: 1px solid #e4e7ed; + border-bottom: none; +} +.avue-crud__menu{ + min-height: 0px; +} +</style> -- Gitblit v1.9.3