From 253b9c48b02d995540b84c1831e54e6baf8a1000 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期五, 08 九月 2023 10:21:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/view/rawInsDetail.vue |  662 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 425 insertions(+), 237 deletions(-)

diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue
index 716cab0..cd05798 100644
--- a/src/components/view/rawInsDetail.vue
+++ b/src/components/view/rawInsDetail.vue
@@ -1,181 +1,220 @@
-<style scoped>
-  .rawInsBox{
-        height: 100%;
-        width: 100%;
-        overflow-y: scroll;
-        display: flex;
-        flex-direction: column;
-  }
-  .rawInsBox .title .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;
-  }
-  .rawInsBox .title {
-    margin-bottom: 10px;
-    padding: 0 20px;
-  }
-  /* 妫�楠岃鎯� */
-  .raw-detail-info{
-    background: #fff;
-    padding: 26px 0px 11px 80px;
-  }
-  .raw-detail-info >>>.el-form-item__label{
-
-        color: rgb(51, 51, 51);
-        font-family: 寰蒋闆呴粦;
-        font-size: 16px;
-        font-weight: 400;
-        letter-spacing: 0px;
-  }
-  .raw-detail-info .el-input{
-        width: auto;
-  }
-  .raw-detail-info >>>.el-input__inner{
-    width: 224px;
-    height: 32px;
-    box-sizing: border-box;
-    background: rgb(238, 238, 238);
-    border: 1px solid rgb(221, 221, 221);
-    border-radius:4px;
-  }
-  .raw-detail-info .el-form-item{
-    margin-bottom: 24px;
-  }
-
-  /* 妫�楠岄」鐩� */
-  .raw-project-table{
-    padding: 24px 14px;
-    background: #fff;
-    flex: 1;
-    /* max-height: 360px; */
-    /* overflow-y: hidden; */
-  }
-  /* 妫�楠岀粨璁� */
-  .raw-conclusion-table{
-    padding: 9px 14px;
-    background: #fff;
-  }
-</style>
-
-
 <template>
   <div class="rawInsBox">
     <div class="title">
       <el-row>
         <el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欐楠�</el-col>
         <el-col :span="12" style="text-align: right;">
-          <el-button icon="el-icon-download" @click="()=>{goBack()}">杩� 鍥�</el-button>
+          <el-button
+            icon="el-icon-circle-plus-outline"
+            v-show="detailId === null"
+            @click="addNewRawInspect"
+            style="background-color: #004ea2; color: #ffffff;"
+            >鎻� 浜�</el-button
+          >
+          <el-button
+            icon="el-icon-download"
+            @click="
+              () => {
+                goBack();
+              }
+            "
+            >杩� 鍥�</el-button
+          >
         </el-col>
       </el-row>
     </div>
-    <div class="raw-detail-info">
-        <el-form v-model="detail" label-position="right" label-width="120px" >
-            <el-row>
-                <el-col :span="7">
-                    <el-form-item label="鏉ユ枡鏃ユ湡:">
-                        <el-input></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="瑙勬牸鍨嬪彿:">
-                        <el-input></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="鍘熸潗鏂欑紪鐮�:">
-                        <el-input></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>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="鎶ユ鏃ユ湡:">
-                        <el-input></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="鍗曚綅:">
-                        <el-input></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>
-                </el-col>
-                <el-col :span="7">
-                    <el-form-item label="鎶ユ浜�:">
-                        <el-input></el-input>
-                    </el-form-item>
-                </el-col>
-                
-            </el-row>
-        </el-form>
+    <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
+                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
+                v-if="detailId !== null"
+                :disabled="detailId !== null"
+                v-model="detailInfo.name"
+              ></el-input>
+              <el-input
+                v-else
+                v-model="detailInfo.name"
+                placeholder="璇疯緭鍏�"
+              ></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="7">
+            <el-form-item label="鍘熸潗鏂欑紪鐮�:">
+              <el-input
+                :disabled="detailId !== null"
+                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
+                v-if="detailId !== null"
+                :disabled="detailId !== null"
+                v-model="detailInfo.specifications"
+              ></el-input>
+              <el-input
+                v-else
+                v-model="detailInfo.specificationsArr"
+                placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="7">
+            <el-form-item label="鍗曚綅:">
+              <el-input
+                placeholder="璇疯緭鍏ユ楠屽崟浣�"
+                :disabled="detailId !== null"
+                v-model="detailInfo.unit"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="7">
+            <el-form-item label="鏁伴噺:">
+              <el-input
+                placeholder="璇疯緭鍏ユ楠屾暟閲�"
+                :disabled="detailId !== null"
+                v-model="detailInfo.number"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="7">
+            <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 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 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>
     </div>
     <div class="title">
       <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
+          >
+          <el-button
+            v-if="detailId == null"
+            style="float: right;margin-right: 30px;"
+            @click="clickAddLine()"
+            >娣诲姞妫�楠岃</el-button
+          >
+        </el-col>
       </el-row>
     </div>
     <div class="raw-project-table">
-        <el-table
-            :data="projectTable"
-            style="width: 100%"
-            max-height="320"
+      <el-table :data="projectTable" style="width: 100%" height="320">
+        <el-table-column type="index" label="搴忓彿" width="100">
+        </el-table-column>
+        <el-table-column prop="name" label="椤圭洰" width="212">
+          <template scope="scope">
+            <el-input
+              v-model="scope.row.name"
+              placeholder="璇疯緭鍏ラ」鐩悕绉�"
+            ></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="unit" label="鍗曚綅" width="148">
+          <template scope="scope">
+            <el-input
+              v-model="scope.row.unit"
+              placeholder="璇疯緭鍏ュ崟浣�"
+            ></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="required" label="鏍囧噯" width="254">
+          <template 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-input
+              v-model="scope.row.internal"
+              placeholder="璇疯緭鍏ュ唴鎺у��"
+            ></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="testValue" label="妫�鏌ュ��" width="254">
+          <template slot-scope="scope">
+            <el-input
+              v-model="scope.row.testValue"
+              @blur="changeState(scope.row)"
+              placeholder="璇疯緭鍏ユ娴嬪��"
+            ></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="deviceName" label="璇曢獙璁惧">
+          <el-button type="text">閫夋嫨</el-button>
+        </el-table-column>
+        <el-table-column prop="testState" label="缁撹">
+          <template slot-scope="scope">
+            <span
+              v-show="scope.row.testState != null"
+              :style="{
+                color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
+              }"
+              >{{ scope.row.testState === 1 ? "鍚堟牸" : "涓嶅悎鏍�" }}</span
             >
-            <el-table-column
-                type="index"
-                label="搴忓彿"
-                width="100"
-                >
-            </el-table-column>
-            <el-table-column
-                prop="name"
-                label="椤圭洰"
-                width="212">
-            </el-table-column>
-            <el-table-column
-                prop="address"
-                label="鍗曚綅"
-                width="148">
-            </el-table-column>
-            <el-table-column
-                prop="address"
-                label="鏍囧噯"
-                width="254">
-            </el-table-column>
-            <el-table-column
-                prop="address"
-                label="鍐呮帶鍊�"
-                width="291">
-            </el-table-column>
-            <el-table-column
-                prop="address"
-                label="妫�鏌ュ��"
-                width="371">
-            </el-table-column>
-            <el-table-column
-                prop="address"
-                label="璇曢獙璁惧"
-                width="248"
-                >
-            </el-table-column>
-            <el-table-column
-                prop="address"
-                label="缁撹"
-                 width="98"
-                >
-            </el-table-column>
-    </el-table>
+            <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-button type="text" @click="clickDeleteline(scope)"
+              >鍒犻櫎</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
     </div>
     <div class="title">
       <el-row>
@@ -183,89 +222,238 @@
       </el-row>
     </div>
     <div class="raw-conclusion-table">
-        <el-table :data="conclusionTable">
-            <el-table-column
-                prop="number"
-                label="鐗╂枡缂栧彿"
-                width="353">
-            </el-table-column>
-            <el-table-column
-                prop="number"
-                label="鐗╂枡鍚嶇О"
-                width="353">
-            </el-table-column>
-            <el-table-column
-                prop="number"
-                label="妫�楠屽憳"
-                width="542">
-            </el-table-column>
-            <el-table-column
-                prop="number"
-                label="妫�楠岀粨璁�"
-                width="362">
-            </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-table-column>
-        </el-table>
+      <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="妫�楠屽憳">
+          <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="testState" label="妫�楠岀粨璁�">
+          <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 v-if="detailId !== null" label="鎿嶄綔" width="120">
+          <template>
+            <el-button type="text" size="small" @click.once="submitSave"
+              >涓婃姤</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
     </div>
   </div>
 </template>
 
 <script>
-import RawIns from './raw-ins.vue'
+import RawIns from "./raw-ins.vue";
 export default {
-    components:{RawIns},
-    props:['goBack','detail'],
-    created(){
-        console.log(this.detail)
+  components: { RawIns },
+  props: ["goBack", "detailId"],
+  created() {
+    // 娓呯┖
+    this.detailInfo = {};
+    if (this.detailId) {
+      this.getDetailInfo();
+    } else {
+      this.getOptions();
+    }
+  },
+  mounted() {},
+  computed: {
+    conclusionTable() {
+      const conclusion = {};
+      conclusion.name = this.detailInfo.name;
+      conclusion.code = this.detailInfo.code;
+      conclusion.names = [
+        ...new Set(this.projectTable.map(item => item.userName))
+      ];
+      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];
+    }
+  },
+  data() {
+    return {
+      // 璇︽儏椤靛氨鏄鎯呬俊鎭�
+      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;
     },
-    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: '涓婃捣甯�'
-          }
-            ]
+    // 鏂板妫�楠屽崟
+    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" } }
+      );
+      this.detailId = res.data;
+      this.getDetailInfo();
+
+      this.$message.success("鎻愪氦鎴愬姛");
+    },
+    // 淇敼椤圭洰鐨勬娴嬪�兼敼鍙樼粨璁�
+    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 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.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;
+            });
         }
+      });
     },
-}
+    // 娣诲姞琛�
+    clickAddLine() {
+      let obj = {
+        deviceId: 0,
+        internal: "",
+        name: "",
+        required: "",
+        testValue: "",
+        unit: ""
+      };
+      this.projectTable.push(obj);
+    },
+    // 鍒犻櫎琛�
+    clickDeleteline(scope) {
+      this.projectTable.splice(scope.$index, 1);
+    }
+  }
+};
 </script>
+
+<style scoped>
+.rawInsBox {
+  height: 100%;
+  width: 100%;
+  overflow-y: scroll;
+  display: flex;
+  flex-direction: column;
+}
+.rawInsBox .title .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;
+}
+.rawInsBox .title {
+  margin-bottom: 10px;
+  padding: 0 20px;
+}
+/* 妫�楠岃鎯� */
+.raw-detail-info {
+  background: #fff;
+  padding: 26px 0px 11px 80px;
+}
+.raw-detail-info >>> .el-form-item__label {
+  color: rgb(51, 51, 51);
+  font-family: 寰蒋闆呴粦;
+  font-size: 16px;
+  font-weight: 400;
+  letter-spacing: 0px;
+}
+.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;
+  box-sizing: border-box;
+  background: rgb(238, 238, 238);
+  border: 1px solid rgb(221, 221, 221);
+  border-radius: 4px;
+}
+.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;
+}
+
+/* 妫�楠岄」鐩� */
+.raw-project-table {
+  padding: 24px 14px;
+  background: #fff;
+  flex: 1;
+  /* max-height: 360px; */
+  /* overflow-y: hidden; */
+}
+/* 妫�楠岀粨璁� */
+.raw-conclusion-table {
+  padding: 9px 14px;
+  background: #fff;
+}
+</style>

--
Gitblit v1.9.3