From 0bd64cdb66957d78202e96517d52cb100369b5af Mon Sep 17 00:00:00 2001 From: XiaoRuby <3114200645@qq.com> Date: 星期六, 09 九月 2023 14:51:22 +0800 Subject: [PATCH] Crunchy-09/09 --- src/components/view/rawInsDetail.vue | 293 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 227 insertions(+), 66 deletions(-) diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue index cd05798..93ad190 100644 --- a/src/components/view/rawInsDetail.vue +++ b/src/components/view/rawInsDetail.vue @@ -51,19 +51,25 @@ <el-input v-if="detailId !== null" :disabled="detailId !== null" - v-model="detailInfo.name" + v-model="detailInfo.rname" ></el-input> <el-input v-else v-model="detailInfo.name" - placeholder="璇疯緭鍏�" + placeholder="璇疯緭鍏ュ師鏉愭枡鍚嶇О" ></el-input> </el-form-item ></el-col> <el-col :span="7"> <el-form-item label="鍘熸潗鏂欑紪鐮�:"> <el-input + v-if="detailId !== null" :disabled="detailId !== null" + v-model="detailInfo.rcode" + ></el-input> + <el-input + v-else v-model="detailInfo.code" + placeholder="璇疯緭鍏ュ師鏉愭枡缂栫爜" ></el-input> </el-form-item> </el-col> @@ -78,7 +84,7 @@ ></el-input> <el-input v-else - v-model="detailInfo.specificationsArr" + v-model="detailInfo.specifications" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" ></el-input> </el-form-item> @@ -86,6 +92,12 @@ <el-col :span="7"> <el-form-item label="鍗曚綅:"> <el-input + v-if="detailId !== null" + :disabled="detailId !== null" + v-model="detailInfo.runit" + ></el-input> + <el-input + v-else placeholder="璇疯緭鍏ユ楠屽崟浣�" :disabled="detailId !== null" v-model="detailInfo.unit" @@ -95,7 +107,7 @@ <el-col :span="7"> <el-form-item label="鏁伴噺:"> <el-input - placeholder="璇疯緭鍏ユ楠屾暟閲�" + :placeholder="detailId !== null ? '' : '璇疯緭鍏ユ楠屾暟閲�'" :disabled="detailId !== null" v-model="detailInfo.number" ></el-input> @@ -106,9 +118,9 @@ <el-col :span="7"> <el-form-item label="渚涘簲鍟嗗悕绉�:"> <el-input - placeholder="璇疯緭鍏ユ楠屾暟閲�" + :placeholder="detailId !== null ? '' : '璇疯緭鍏ユ楠屾暟閲�'" :disabled="detailId !== null" - v-model="detailInfo.number" + v-model="detailInfo.supplier" ></el-input> </el-form-item> </el-col> @@ -116,7 +128,7 @@ <el-form-item v-show="detailId !== null" label="鎶ユ鏃ユ湡:"> <el-input :disabled="detailId !== null" - v-model="detailInfo.createTime" + v-model="detailInfo.creatTime" ></el-input> </el-form-item> </el-col> @@ -135,7 +147,14 @@ <el-row> <el-col :span="12" style="line-height: 32px;">妫�楠岄」鐩�</el-col> <el-col :span="12" style="line-height: 32px; padding-top: 6px;"> - <el-button v-if="detailId == null" style="float: right;" + <el-button + style="float: right;" + @click="clickDeleteInspectionColumn()" + >鍒犻櫎妫�楠屽�煎垪</el-button + > + <el-button + style="float: right;margin-right: 30px;" + @click="clickAddInspectionColumn()" >娣诲姞妫�楠屽�煎垪</el-button > <el-button @@ -149,53 +168,81 @@ </div> <div class="raw-project-table"> <el-table :data="projectTable" style="width: 100%" height="320"> - <el-table-column type="index" label="搴忓彿" width="100"> + <el-table-column type="index" label="搴忓彿" width="60"> </el-table-column> - <el-table-column prop="name" label="椤圭洰" width="212"> - <template scope="scope"> + <el-table-column prop="rpName" label="椤圭洰" width="212"> + <template slot-scope="scope"> <el-input + v-if="detailId == null" v-model="scope.row.name" placeholder="璇疯緭鍏ラ」鐩悕绉�" ></el-input> + <el-input v-else v-model="scope.row.rpName" disabled></el-input> </template> </el-table-column> <el-table-column prop="unit" label="鍗曚綅" width="148"> - <template scope="scope"> + <template slot-scope="scope"> <el-input + v-if="detailId == null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�" ></el-input> + <el-input v-else v-model="scope.row.rpUnit" disabled></el-input> </template> </el-table-column> - <el-table-column prop="required" label="鏍囧噯" width="254"> - <template scope="scope"> + <el-table-column prop="required" label="鏍囧噯" min-width="150"> + <template slot-scope="scope"> <el-input v-model="scope.row.required" placeholder="璇疯緭鍏ユ爣鍑嗗��" ></el-input> </template> </el-table-column> - <el-table-column prop="internal" label="鍐呮帶鍊�" width="254"> - <template scope="scope"> + <el-table-column prop="internal" label="鍐呮帶鍊�" min-width="150"> + <template slot-scope="scope"> <el-input v-model="scope.row.internal" placeholder="璇疯緭鍏ュ唴鎺у��" ></el-input> </template> </el-table-column> - <el-table-column prop="testValue" label="妫�鏌ュ��" width="254"> + <el-table-column + prop="testValue" + label="妫�娴嬪��" + min-width="150" + v-for="(item, index) in empiricalValueAdd" + :key="index" + > <template slot-scope="scope"> - <el-input - v-model="scope.row.testValue" - @blur="changeState(scope.row)" - placeholder="璇疯緭鍏ユ娴嬪��" - ></el-input> + <el-tooltip + :disabled="scope.row.deviceId != null" + class="item" + effect="dark" + content="璇峰厛閫夋嫨璁惧锛�" + placement="top-start" + > + <el-input + :disabled="scope.row.deviceId == null" + v-model="scope.row.testValueList[index]" + @blur="changeState(scope.row, index)" + placeholder="璇疯緭鍏ユ娴嬪��" + ></el-input> + </el-tooltip> </template> </el-table-column> - <el-table-column prop="deviceName" label="璇曢獙璁惧"> - <el-button type="text">閫夋嫨</el-button> + <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="100"> + <template slot-scope="scope"> + <el-button type="text" @click="clickTableSelect(scope)">{{ + scope.row.deviceId == null ? "璇烽�夋嫨" : scope.row.deviceName + }}</el-button> + </template> </el-table-column> - <el-table-column prop="testState" label="缁撹"> + <el-table-column + v-if="detailId !== null" + prop="testState" + label="缁撹" + min-width="100" + > <template slot-scope="scope"> <span v-show="scope.row.testState != null" @@ -207,8 +254,8 @@ <span v-show="scope.row.testState == null">鏆傛湭缁撹</span> </template> </el-table-column> - <el-table-column v-if="detailId == null" label="鎿嶄綔" fixed="right"> - <template scope="scope"> + <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100"> + <template slot-scope="scope"> <el-button type="text" @click="clickDeleteline(scope)" >鍒犻櫎</el-button > @@ -256,6 +303,47 @@ </el-table-column> </el-table> </div> + <el-dialog + title="璇烽�夋嫨璁惧" + :visible.sync="centerDialogVisible" + width="20%" + > + <div class="div_device_dialog"> + <el-input + placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" + v-model="filterText" + style="margin-bottom: 6px;" + > + </el-input> + <el-tree + class="filter-tree" + :data="materialOptions" + :props="defaultProps" + default-expand-all + highlight-current + @node-click="nodeClick" + :filter-node-method="filterNode" + ref="tree" + > + <div class="custom-tree-node" slot-scope="{ data }"> + <span + ><i + :class=" + `node_i ${ + data.children ? 'el-icon-folder-opened' : 'el-icon-tickets' + }` + " + ></i> + {{ data.name }}</span + > + </div> + </el-tree> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="centerDialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="clickNodeSure()">纭� 瀹�</el-button> + </span> + </el-dialog> </div> </template> @@ -299,33 +387,69 @@ }, data() { return { + // 娣诲姞鍒� + empiricalValueAdd: 1, + // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂� + empiricalValueAddMaxNumber: 0, + // 璁惧閫夋嫨鏍戞樉绀� + centerDialogVisible: false, // 璇︽儏椤靛氨鏄鎯呬俊鎭� detailInfo: {}, + // 琛ㄦ牸 projectTable: [], // 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄 rawInsParams: {}, // 椤圭洰鍚嶇Оoptions - materialOptions: [], - specificationOptions: [] + specificationOptions: [], + filterText: "", + materialOptions: [], // 鏍戞暟鎹� + defaultProps: { + // 璁惧鏍戞暟鎹缃� + children: "children", + label: "name" + }, + nodeData: "", // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁 + clickSelectSaveIndex: "" // 鐐瑰嚮閫夋嫨瀛樺偍鍒楄〃绱㈠紩 }; }, + watch: { + filterText(val) { + this.$refs.tree.filter(val); + } + }, methods: { + // 璁惧鏍戣繃婊ゆ悳绱� + filterNode(value, data) { + if (!value) return true; + return data.name.indexOf(value) !== -1; + }, + // 鑾峰彇鎶ユ鍗曡鎯呬俊鎭� 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; + await this.$axios + .get(this.$api.url.selectRawInspectsListById + `${this.detailId}`, { + params: { id: this.detailId } + }) + .then(res => { + this.detailInfo = res.data; + this.projectTable = res.data.children; + this.projectTable.forEach(i => { + i.testValueList = i.testValue.split(","); + // 鍙栨渶闀跨殑鍒楄〃鏁� + if (i.testValueList.length > this.empiricalValueAdd) { + this.empiricalValueAdd = i.testValueList.length; + this.empiricalValueAddMaxNumber = i.testValueList.length - 1; + } + }); + }); }, // 鏂板妫�楠屽崟 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()}` + this.projectTable.forEach(i => { + // 灏嗗垪琛ㄨ浆鎹负瀛楃涓� + i.testValue = i.testValueList.join(","); + }); + this.detailInfo.rawInsProducts = this.projectTable; const res = await this.$axios.post( this.$api.url.addRawInspects, { ...this.detailInfo }, @@ -333,18 +457,20 @@ ); this.detailId = res.data; this.getDetailInfo(); - - this.$message.success("鎻愪氦鎴愬姛"); + this.$message.success(res.message); }, + // 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁� - async changeState(row) { - const res = await this.$axios.post( - this.$api.url.updaterawInsProduct, - { ...row }, - { headers: { "Content-Type": "application/json" } } - ); - this.$message.success("鎻愪氦鎴愬姛"); - this.getDetailInfo(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁 + async changeState(row, index) { + if (this.detailId !== null) { + const res = await this.$axios.post(this.$api.url.updaterawInsProduct, { + DevId: row.deviceId, + rpId: this.detailId, + testValue: row.testValueList[index] + }); + this.$message.success("鎻愪氦鎴愬姛"); + this.getDetailInfo(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁 + } }, async submitSave() { const res = await this.$axios.post( @@ -353,30 +479,22 @@ this.$message.success("鎻愪氦鎴愬姛"); this.getDetailInfo(); }, - async getOptions() { - const { data } = await this.$axios.get(this.$api.url.selectDevice); - this.materialOptions = data; - }, - checkRawName(data) { - this.materialOptions.forEach(item => { - if (item.name === data) { - this.detailInfo.code = item.code; - this.$axios - .get(this.$api.url.selectSpBySt, { params: { id: item.id } }) - .then(res => { - this.specificationOptions = res.data; - }); - } + // 鑾峰彇璁惧鏍戝唴瀹� + getOptions() { + this.$axios.get(this.$api.url.rawSelectDevice).then(res => { + this.materialOptions = res.data; }); }, // 娣诲姞琛� clickAddLine() { let obj = { - deviceId: 0, + deviceId: null, + deviceName: "", internal: "", name: "", required: "", - testValue: "", + textValue: "", + testValueList: [], unit: "" }; this.projectTable.push(obj); @@ -384,12 +502,52 @@ // 鍒犻櫎琛� clickDeleteline(scope) { this.projectTable.splice(scope.$index, 1); + }, + // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰� + nodeClick(data) { + if (data.id != undefined) this.nodeData = data; + }, + // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂 + clickTableSelect(scope) { + this.centerDialogVisible = true; + this.clickSelectSaveIndex = scope.$index; + }, + // 鐐瑰嚮鏍戦噷闈㈢殑纭畾 + clickNodeSure() { + this.projectTable[this.clickSelectSaveIndex].deviceId = this.nodeData.id; + this.projectTable[ + this.clickSelectSaveIndex + ].deviceName = this.nodeData.name; + this.centerDialogVisible = false; + }, + // 鍒犻櫎妫�楠屽�煎垪 + clickDeleteInspectionColumn() { + if (this.empiricalValueAdd - 1 === 0) { + } else { + if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { + this.empiricalValueAdd = this.empiricalValueAdd - 1; + this.projectTable.forEach(i => { + i.testValueList.splice(this.empiricalValueAdd, 1); + }); + } + } + }, + // 娣诲姞妫�楠屽�煎垪 + clickAddInspectionColumn() { + this.empiricalValueAdd = this.empiricalValueAdd + 1; } } }; </script> <style scoped> +.node_i { + color: orange; +} +.div_device_dialog { + min-height: 400px; + overflow: auto; +} .rawInsBox { height: 100%; width: 100%; @@ -397,6 +555,9 @@ display: flex; flex-direction: column; } +.el-table__fixed-body-wrapper { + top: 48px; +} .rawInsBox .title .el-button { height: 32px; border: 1px solid rgba(190, 190, 190, 0.44); -- Gitblit v1.9.3