From 27dd70096d181051200ec5febf11c99d1940f835 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 13 九月 2023 16:52:18 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/mom-before
---
src/components/view/rawInsDetail.vue | 329 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 257 insertions(+), 72 deletions(-)
diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue
index cd05798..2ab34d0 100644
--- a/src/components/view/rawInsDetail.vue
+++ b/src/components/view/rawInsDetail.vue
@@ -56,14 +56,20 @@
<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.code"
+ ></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,83 @@
</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
+ :disabled="detailId != null"
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
+ :disabled="detailId != null"
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 +256,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
>
@@ -225,11 +274,11 @@
<el-table :data="conclusionTable" style="100%">
<el-table-column prop="code" label="鐗╂枡缂栧彿"> </el-table-column>
<el-table-column prop="name" label="鐗╂枡鍚嶇О"> </el-table-column>
- <el-table-column prop="names" label="妫�楠屽憳">
+ <el-table-column v-if="detailId != null" prop="uName" label="妫�楠屽憳">
<template slot-scope="scope">
<span
- v-for="item in scope.row.names"
- :key="item && item.userName"
+ v-for="item in scope.row.uName"
+ :key="item && item.uName"
:style="{ marginRight: '8px' }"
>{{ item }}</span
>
@@ -256,6 +305,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>
@@ -269,9 +359,8 @@
this.detailInfo = {};
if (this.detailId) {
this.getDetailInfo();
- } else {
- this.getOptions();
}
+ this.getOptions();
},
mounted() {},
computed: {
@@ -279,8 +368,8 @@
const conclusion = {};
conclusion.name = this.detailInfo.name;
conclusion.code = this.detailInfo.code;
- conclusion.names = [
- ...new Set(this.projectTable.map(item => item.userName))
+ conclusion.uName = [
+ ...new Set(this.projectTable.map(item => item.uName))
];
if (
this.projectTable.filter(item => item.testState === null).length ===
@@ -299,33 +388,77 @@
},
data() {
return {
+ // 娣诲姞鍒�
+ empiricalValueAdd: 1,
+ // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+ empiricalValueAddMaxNumber: 0,
+ // 璁惧閫夋嫨鏍戞樉绀�
+ centerDialogVisible: false,
// 璇︽儏椤靛氨鏄鎯呬俊鎭�
detailInfo: {},
+ // 琛ㄦ牸
projectTable: [],
// 鏂板缓妫�楠屽崟鍙傛暟瀵硅薄
rawInsParams: {},
// 椤圭洰鍚嶇Оoptions
- materialOptions: [],
- specificationOptions: []
+ specificationOptions: [],
+ filterText: "",
+ materialOptions: [], // 鏍戞暟鎹�
+ defaultProps: {
+ // 璁惧鏍戞暟鎹缃�
+ children: "children",
+ label: "name"
+ },
+ nodeData: "", // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+ clickSelectDevice: {
+ index: "", // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+ rpId: "" // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+ }
};
},
+ 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 => {
+ // 瑙e喅閲嶆柊璧嬪�兼棤娉曠紪杈戞搷浣�
+ if (i.testValue == null) {
+ this.$set(i, "testValueList", []);
+ } else {
+ this.$set(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 +466,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: row.rpId,
+ testValue: row.testValueList.join(",")
+ });
+ this.$message.success("鎻愪氦鎴愬姛");
+ this.getDetailInfo(); //閲嶆柊鍒锋柊淇℃伅鏁版嵁
+ }
},
async submitSave() {
const res = await this.$axios.post(
@@ -353,30 +488,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 +511,67 @@
// 鍒犻櫎琛�
clickDeleteline(scope) {
this.projectTable.splice(scope.$index, 1);
+ },
+ // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+ nodeClick(data) {
+ if (data.id != undefined) this.nodeData = data;
+ },
+ // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+ clickTableSelect(scope) {
+ this.centerDialogVisible = true;
+ this.clickSelectDevice.index = scope.$index;
+ this.clickSelectDevice.rpId = scope.row.rpId;
+ },
+ // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+ clickNodeSure() {
+ if (this.detailId == null) {
+ this.projectTable[
+ this.clickSelectDevice.index
+ ].deviceId = this.nodeData.id;
+ this.projectTable[
+ this.clickSelectDevice.index
+ ].deviceName = this.nodeData.name;
+ this.centerDialogVisible = false;
+ } else {
+ this.$axios
+ .post(this.$api.url.updateDevByRpId, {
+ rpId: this.clickSelectDevice.rpId,
+ devId: this.nodeData.id
+ })
+ .then(res => {
+ this.getDetailInfo();
+ 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 +579,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