From ffd461f541b355d2d5124a0735d9c6fd557d21a5 Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期四, 10 八月 2023 13:13:06 +0800 Subject: [PATCH] Crunchy-08/10中午 --- src/components/view/rawInsDetail.vue | 312 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 243 insertions(+), 69 deletions(-) diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue index 716cab0..cfb744d 100644 --- a/src/components/view/rawInsDetail.vue +++ b/src/components/view/rawInsDetail.vue @@ -32,6 +32,9 @@ .raw-detail-info .el-input{ width: auto; } + .raw-detail-info.raw-detail-info-edit >>>.el-input__inner{ + background:#fff; + } .raw-detail-info >>>.el-input__inner{ width: 224px; height: 32px; @@ -42,6 +45,12 @@ } .raw-detail-info .el-form-item{ margin-bottom: 24px; + } + .raw-detail-info .el-form-item .el-button { + height: 32px; + border: 1px solid rgba(190, 190, 190, 0.44); + box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41); + padding: 0 12px; } /* 妫�楠岄」鐩� */ @@ -70,56 +79,149 @@ </el-col> </el-row> </div> - <div class="raw-detail-info"> - <el-form v-model="detail" label-position="right" label-width="120px" > + <div class="raw-detail-info" :class="detailId===null?'raw-detail-info-edit':''"> + <el-form v-model="detailInfo" label-position="right" label-width="120px" > <el-row> <el-col :span="7"> - <el-form-item label="鏉ユ枡鏃ユ湡:"> - <el-input></el-input> + <el-form-item label="鍘熸潗鏂欏悕绉�:"> + <el-input v-if="detailId!==null" :disabled="detailId!==null" v-model="detailInfo.name"></el-input> + <el-select @change="checkRawName" v-else placeholder="璇烽�夋嫨椤圭洰鍚嶇О" v-model="detailInfo.name"> + <el-option v-for="item in materialOptions" :key="item.id" :label="item.name" :value="item.name"></el-option> + </el-select> </el-form-item> + </el-col> <el-col :span="7"> <el-form-item label="瑙勬牸鍨嬪彿:"> - <el-input></el-input> + <el-input v-if="detailId!==null" :disabled="detailId!==null" v-model="detailInfo.specifications"></el-input> + <el-cascader + placeholder="璇烽�夋嫨瑙勬牸鍨嬪彿" + v-else + :disabled="specificationOptions.length===0" + :props="{label:'name',value:'name'}" + v-model="detailInfo.specificationsArr" + :options="specificationOptions" + ></el-cascader> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="鍘熸潗鏂欑紪鐮�:"> - <el-input></el-input> + <el-input disabled v-model="detailInfo.code"></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="7"> - <el-form-item label="鍘熸潗鏂欏悕绉�:"> - <el-input></el-input> + <el-form-item label="鏉ユ枡鏃ユ湡:"> + <el-input v-if="detailId!==null" :disabled="detailId!==null" v-model="detailInfo.formTime"></el-input> + <el-date-picker + v-else + type="date" + value-format="yyyy-MM-dd" + v-model="detailInfo.formTime" + placeholder="閫夋嫨鏃ユ湡"> + </el-date-picker> </el-form-item> </el-col> <el-col :span="7"> - <el-form-item label="鎶ユ鏃ユ湡:"> - <el-input></el-input> + <el-form-item label="鏁伴噺:"> + <el-input placeholder="璇疯緭鍏ユ楠屾暟閲�" :disabled="detailId!==null" v-model="detailInfo.number"></el-input> </el-form-item> </el-col> <el-col :span="7"> <el-form-item label="鍗曚綅:"> - <el-input></el-input> + <el-input placeholder="璇疯緭鍏ユ楠屽崟浣�" :disabled="detailId!==null" v-model="detailInfo.unit"></el-input> + </el-form-item> + </el-col> + <el-col :span="3"> + <el-form-item v-show="detailId===null" label="" label-width="100px"> + <el-button @click="addNewRawInspect">淇濆瓨鎻愪氦</el-button> </el-form-item> </el-col> </el-row> <el-row> + <el-col :span="7"> - <el-form-item label="鏁伴噺:"> - <el-input></el-input> + <el-form-item v-show="detailId!==null" label="鎶ユ鏃ユ湡:"> + <el-input :disabled="detailId!==null" v-model="detailInfo.createTime"></el-input> </el-form-item> </el-col> - <el-col :span="7"> - <el-form-item label="鎶ユ浜�:"> - <el-input></el-input> + <el-col :span="14"> + <el-form-item v-show="detailId!==null" label="鎶ユ浜�:"> + <el-input :disabled="detailId!==null" v-model="detailInfo.userName"></el-input> </el-form-item> </el-col> </el-row> </el-form> + <!-- <el-form v-show="detailId ===null" v-model="rawInsParams" label-position="right" label-width="120px" > + <el-row> + <el-col :span="7"> + <el-form-item label="璁㈠崟鍙�:"> + <el-input placeholder="璇疯緭鍏ヨ鍗曞彿" v-model="rawInsParams.orderNumber"></el-input> + </el-form-item> + </el-col> + <el-col :span="7"> + <el-form-item label="瀹㈡埛鍚嶇О:"> + <el-input placeholder="璇疯緭鍏ュ鎴峰悕绉�" v-model="rawInsParams.customerName"></el-input> + </el-form-item> + </el-col> + <el-col :span="7"> + <el-form-item label="宸ョ▼鍚嶇О:"> + <el-input placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" v-model="rawInsParams.projectName"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="7"> + <el-form-item label="璐ㄩ噺杩芥函鍙�:"> + <el-input placeholder="璇疯緭鍏ヨ川閲忚拷婧彿" v-model="rawInsParams.qualityTraceability"></el-input> + </el-form-item> + </el-col> + <el-col :span="7"> + <el-form-item label="椤圭洰鍚嶇О:"> + <el-select placeholder="璇疯緭鍏ラ」鐩悕绉�" v-model="rawInsParams.material"> + <el-option v-for="item in materialOptions" :key="item.id" :label="item.name" :value="item.name"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="7"> + <el-form-item label="浜у搧缂栫爜:"> + <el-input placeholder="浜у搧缂栫爜" disabled v-model="code"></el-input> + </el-form-item> + </el-col> + + </el-row> + <el-row> + <el-col :span="7"> + <el-form-item label="瑙勬牸鍨嬪彿:"> + <el-input v-model="detailInfo.specificationsModel"></el-input> + </el-form-item> + </el-col> + <el-col :span="7"> + <el-form-item label="鍗曚綅:"> + <el-input placeholder="璇疯緭鍏ュ崟浣�" v-model="rawInsParams.unit"></el-input> + </el-form-item> + </el-col> + <el-col :span="7"> + <el-form-item label="鏁伴噺"> + <el-input placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" v-model="rawInsParams.qualityTraceability"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="21"> + <el-form-item label="涓绘満宸�:"> + <el-input placeholder="璇疯緭鍏ヤ富鏈哄伐" v-model="rawInsParams.userId"></el-input> + </el-form-item> + </el-col> + <el-col :span="3"> + <el-form-item label="" label-width="100px"> + <el-button @click="addNewRawInspect">淇濆瓨鎻愪氦</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> --> </div> <div class="title"> <el-row> @@ -144,36 +246,43 @@ width="212"> </el-table-column> <el-table-column - prop="address" + prop="unit" label="鍗曚綅" width="148"> </el-table-column> <el-table-column - prop="address" + prop="required" label="鏍囧噯" width="254"> </el-table-column> <el-table-column - prop="address" + prop="internal" label="鍐呮帶鍊�" width="291"> </el-table-column> <el-table-column - prop="address" + prop="testValue" label="妫�鏌ュ��" width="371"> + <template slot-scope="scope"> + <el-input v-model="scope.row.testValue" @blur="changeState(scope.row)"></el-input> + </template> </el-table-column> <el-table-column - prop="address" + prop="deviceName" label="璇曢獙璁惧" width="248" > </el-table-column> <el-table-column - prop="address" + prop="testState" label="缁撹" width="98" > + <template slot-scope="scope"> + <span v-show="scope.row.testState!=null" :style="{color: scope.row.testState===1?'#67C23A':'#F56C6C'}">{{scope.row.testState===1?'鍚堟牸':'涓嶅悎鏍�'}}</span> + <span v-show="scope.row.testState==null">鏆傛湭缁撹</span> + </template> </el-table-column> </el-table> </div> @@ -185,31 +294,37 @@ <div class="raw-conclusion-table"> <el-table :data="conclusionTable"> <el-table-column - prop="number" + prop="code" label="鐗╂枡缂栧彿" width="353"> </el-table-column> <el-table-column - prop="number" + prop="name" label="鐗╂枡鍚嶇О" width="353"> </el-table-column> <el-table-column - prop="number" + prop="names" label="妫�楠屽憳" width="542"> + <template slot-scope="scope"> + <span v-for="item in scope.row.names" :key="item&&item.userName" :style="{marginRight:'8px'}">{{item}}</span> + </template> </el-table-column> <el-table-column - prop="number" + prop="testState" label="妫�楠岀粨璁�" width="362"> + <template slot-scope="scope"> + <span v-show="scope.row.testState!=null" :style="{color: scope.row.testState===1?'#67C23A':'#F56C6C'}">{{scope.row.testState===1?'鍚堟牸':'涓嶅悎鏍�'}}</span> + <span v-show="scope.row.testState==null">鏆傛湭缁撹</span> + </template> </el-table-column> <el-table-column - fixed="right" label="鎿嶄綔" width="120"> - <template slot-scope="scope"> - <el-button type="text" size="small">涓婃姤</el-button> + <template> + <el-button type="text" size="small" @click.once="submitSave">涓婃姤</el-button> </template> </el-table-column> </el-table> @@ -221,51 +336,110 @@ import RawIns from './raw-ins.vue' export default { components:{RawIns}, - props:['goBack','detail'], + props:['goBack','detailId'], created(){ - console.log(this.detail) + // 娓呯┖ + this.detailInfo = {} + if(this.detailId){ + console.log(this.detailId) + this.getDetailInfo() + }else{ + this.getOptions() + } + }, + mounted(){ + }, + computed:{ + conclusionTable(){ + // console.log(this.projectTable) + // console.log(this.projectTable.map(item=>item.userName)) + const conclusion = {} + conclusion.name = this.detailInfo.name + conclusion.code = this.detailInfo.code + conclusion.names= [...new Set(this.projectTable.map(item=>item.userName))] + console.log(conclusion,this.projectTable) + console.log(this.projectTable.filter(item=>item.testState===null).length) + if(this.projectTable.filter(item=>item.testState===null).length===this.projectTable.length){ + conclusion.testState = null + return [conclusion] + } + if(this.projectTable.filter(item=>item.testState===0).length>0){ + conclusion.testState= 0 + }else{ + conclusion.testState= 1 + } + return [conclusion] + }, + // 浜у搧缂栫爜 + // code(){ + // const material= this.materialOptions.filter(item=>item.name===this.rawInsParams.material)[0] + // return material && material.code + // } }, data() { return { - conclusionTable:[ - {number:'鐗╂枡鍚嶇О'} - ], - projectTable:[ - { - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯�' - } - ] + // 璇︽儏椤靛氨鏄鎯呬俊鎭� + detailInfo:{}, + projectTable:[], + // 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄 + rawInsParams:{}, + // 椤圭洰鍚嶇Оoptions + materialOptions:[], + specificationOptions:[] + } }, + methods:{ + // 鑾峰彇鎶ユ鍗曡鎯呬俊鎭� + async getDetailInfo() { + const {data} = await this.$axios.get(this.$api.url.selectRawInspectsListById+`${this.detailId}`,{params:{id:this.detailId}}) + this.detailInfo = data + this.projectTable = data.rawInsProducts + console.log(data) + }, + // 鏂板妫�楠屽崟 + async addNewRawInspect() { + this.detailInfo.specifications = this.detailInfo.specificationsArr.join("-") + // const time = this.detailInfo.formTime + // this.detailInfo.formTime = `${time.getFullYear()}-${time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1}-${time.getDate() < 10 ? '0' + time.getDate() : time.getDate()}` + const res = await this.$axios.post(this.$api.url.addRawInspects,{...this.detailInfo},{headers:{'Content-Type':'application/json'}}) + console.log(res) + this.detailId = res.data + this.getDetailInfo() + + this.$message.success('鎻愪氦鎴愬姛') + }, + // 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁� + async changeState(row){ + // console.log(row) + const res = await this.$axios.post(this.$api.url.updaterawInsProduct,{...row},{headers:{'Content-Type':'application/json'}}) + this.$message.success('鎻愪氦鎴愬姛') + this.getDetailInfo()//閲嶆柊鍒锋柊淇℃伅鏁版嵁 + }, + async submitSave() { + const res = await this.$axios.post(this.$api.url.updateRawInspectsById+`${this.detailId}`) + this.$message.success('鎻愪氦鎴愬姛') + this.getDetailInfo() + }, + async getOptions() { + // const {data} = await this.$axios.get(this.$api.url.listMaterial) + // this.materialOptions = data + const {data} = await this.$axios.get(this.$api.url.selectRawMaterial) + this.materialOptions = data + console.log(this.materialOptions) + }, + checkRawName(data) { + console.log('閫夋嫨鍘熸潗鏂欏悕绉�',data) + this.materialOptions.forEach(item=>{ + if(item.name===data){ + console.log(item.id) + this.detailInfo.code = item.code + this.$axios.get(this.$api.url.selectSpBySt,{params:{id:item.id}}).then(res=>{ + this.specificationOptions= res.data + }) + } + }) + } + } } </script> -- Gitblit v1.9.3