王震
2023-09-24 941fff624eddc4b9f369f1b91f65fdb50309851d
src/components/view/rawInsDetail.vue
@@ -6,11 +6,10 @@
            <el-col :span="12" style="text-align: right;">
               <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-back" @click="
              () => {
                goBack();
              }
            ">返 回</el-button>
               <el-button icon="el-icon-back" @click="() => {
                  goBack();
               }
                  ">返 回</el-button>
            </el-col>
         </el-row>
      </div>
@@ -19,7 +18,8 @@
            <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-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>
@@ -27,12 +27,15 @@
               </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-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 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-input v-if="detailId !== null" :disabled="detailId !== null"
                        v-model="detailInfo.code"></el-input>
                     <el-input @blur="blurCode" v-else v-model="detailInfo.code" placeholder="请输入原材料编码"></el-input>
                  </el-form-item>
               </el-col>
            </el-row>
@@ -46,8 +49,10 @@
               </el-col>
               <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"></el-input>
                     <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"></el-input>
                  </el-form-item>
               </el-col>
               <el-col :span="7">
@@ -82,7 +87,8 @@
            <el-col :span="12" style="line-height: 32px;">检验项目</el-col>
            <el-col :span="12" style="line-height: 32px; padding-top: 6px;">
               <el-button style="float: right;" @click="clickDeleteInspectionColumn()">删除检验值列</el-button>
               <el-button style="float: right;margin-right: 30px;" @click="clickAddInspectionColumn()">添加检验值列</el-button>
               <el-button style="float: right;margin-right: 30px;"
                  @click="clickAddInspectionColumn()">添加检验值列</el-button>
               <el-button v-if="detailId == null" style="float: right;margin-right: 30px;"
                  @click="clickAddLine()">添加检验行</el-button>
            </el-col>
@@ -94,7 +100,10 @@
            </el-table-column>
            <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-if="detailId == null" v-model="scope.row.name" placeholder="请输入项目名称"></el-input> -->
                  <el-autocomplete v-if="detailId == null" class="inline-input" v-model="scope.row.name"
                     :fetch-suggestions="querySearch" placeholder="请输入项目名称" @select="handleSelect(scope.row)"
                     @blur="handleSelect(scope.row)"></el-autocomplete>
                  <el-input v-else v-model="scope.row.rpName" disabled></el-input>
               </template>
            </el-table-column>
@@ -129,15 +138,15 @@
            <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>
                     scope.row.deviceId == null ? "请选择" : scope.row.deviceName
                  }}</el-button>
               </template>
            </el-table-column>
            <el-table-column v-if="detailId !== null" prop="testState" label="结论" min-width="100">
               <template slot-scope="scope">
                  <span v-show="scope.row.testState != null" :style="{
                color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
              }">{{ scope.row.testState === 1 ? "合格" : "不合格" }}</span>
                     color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
                  }">{{ scope.row.testState === 1 ? "合格" : "不合格" }}</span>
                  <span v-show="scope.row.testState == null">暂未结论</span>
               </template>
            </el-table-column>
@@ -159,21 +168,21 @@
            <el-table-column prop="name" label="物料名称"> </el-table-column>
            <el-table-column v-if="detailId != null" prop="uName" label="检验员">
               <template slot-scope="scope">
                  <span v-for="item in scope.row.uName" :key="item && item.uName"
                     :style="{ marginRight: '8px' }">{{ item }}</span>
                  <span v-for="item in scope.row.uName" :key="item && item.uName" :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">{{null}}</span>
                     color: scope.row.testState === 1 ? '#67C23A' : '#F56C6C'
                  }">{{ scope.row.testState === 1 ? "合格" : "不合格" }}</span>
                  <span v-show="scope.row.testState != null">{{ 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>
                  <el-button type="text" size="small" @click="submitSave">上报</el-button>
               </template>
            </el-table-column>
         </el-table>
@@ -182,14 +191,12 @@
         <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">
            <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>
                  <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'
                     }`
                     "></i>
                     {{ data.name }}</span>
               </div>
            </el-tree>
@@ -203,355 +210,433 @@
</template>
<script>
   import {
      triggerRef
   } from "vue";
   import RawIns from "./raw-ins.vue";
   export default {
      components: {
         RawIns
      },
      props: ["goBack", "detailId"],
      created() {
         // 清空
         this.detailInfo = {};
         if (this.detailId) {
            this.getDetailInfo();
         }
         this.getOptions();
      },
      mounted() {
import {
   triggerRef
} from "vue";
import RawIns from "./raw-ins.vue";
export default {
   components: {
      RawIns
   },
   props: ["goBack", "detailId"],
   created() {
      // 清空
      this.detailInfo = {};
      if (this.detailId) {
         this.getDetailInfo();
      }
      this.getOptions();
   },
   mounted() {
      },
      computed: {
         conclusionTable() {
            const conclusion = {};
            conclusion.name = this.detailInfo.name;
            conclusion.code = this.detailInfo.code;
            conclusion.uName = [
               ...new Set(this.projectTable.map(item => item.uName))
            ];
            return [conclusion];
   },
   computed: {
      conclusionTable() {
         const conclusion = {};
         conclusion.name = this.detailInfo.name;
         conclusion.code = this.detailInfo.code;
         conclusion.uName = [
            ...new Set(this.projectTable.map(item => item.uName))
         ];
         return [conclusion];
      }
   },
   data() {
      return {
         // 添加列
         empiricalValueAdd: 1,
         // 编辑时存储最长的列数字,做删除判断
         empiricalValueAddMaxNumber: 0,
         // 设备选择树显示
         centerDialogVisible: false,
         // 详情页就是详情信息
         detailInfo: {},
         //产品信息
         ifsInfo: {},
         // 表格
         projectTable: [],
         // 新建检验单参数对象
         rawInsParams: {},
         // 项目名称options
         specificationOptions: [],
         filterText: "",
         materialOptions: [], // 树数据
         defaultProps: {
            // 设备树数据设置
            children: "children",
            label: "name"
         },
         nodeData: "", // node点击保存当前点击数据
         clickSelectDevice: {
            index: "", // 点击选择存储当前行索引
            rpId: "" // 点击选择存储当前行项目Id
         },
         restaurants: []
      };
   },
   watch: {
      filterText(val) {
         this.$refs.tree.filter(val);
      }
   },
   methods: {
      blurCode() {
         // this.detailId=10
         let data = {
            code: this.detailInfo.code
         }
         console.log(data);
         this.$axios.post(
            this.$api.url.rawInspectChooseIFS, {
            code: this.detailInfo.code
         }
         ).then(res => {
            this.ifsInfo = res.data
            console.log("ifs", this.ifsInfo);
            this.$set(this.detailInfo, "formTime", this.ifsInfo.formTime)
            this.detailInfo.formTime = this.ifsInfo.formTime
            this.detailInfo.name = this.ifsInfo.name
            this.detailInfo.supplier = this.ifsInfo.supplier
            this.detailInfo.unit = this.ifsInfo.unit
            this.detailInfo.userName = this.ifsInfo.userName
            this.detailInfo.number = this.ifsInfo.number
            this.detailInfo.specifications = this.ifsInfo.specifications
            this.restaurants = JSON.parse(JSON.stringify(this.ifsInfo.rawInsProducts))
            this.restaurants.forEach(item => {
               this.$set(item, "value", item.name)
            })
            console.log("restaurants", this.restaurants);
         })
      },
      data() {
         return {
            // 添加列
            empiricalValueAdd: 1,
            // 编辑时存储最长的列数字,做删除判断
            empiricalValueAddMaxNumber: 0,
            // 设备选择树显示
            centerDialogVisible: false,
            // 详情页就是详情信息
            detailInfo: {},
            // 表格
            projectTable: [],
            // 新建检验单参数对象
            rawInsParams: {},
            // 项目名称options
            specificationOptions: [],
            filterText: "",
            materialOptions: [], // 树数据
            defaultProps: {
               // 设备树数据设置
               children: "children",
               label: "name"
            },
            nodeData: "", // node点击保存当前点击数据
            clickSelectDevice: {
               index: "", // 点击选择存储当前行索引
               rpId: "" // 点击选择存储当前行项目Id
            }
      querySearch(queryString, cb) {
         var restaurants = this.restaurants;
         var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
         // 调用 callback 返回建议列表的数据
         cb(results);
      },
      createFilter(queryString) {
         return (restaurant) => {
            return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
         };
      },
      watch: {
         filterText(val) {
            this.$refs.tree.filter(val);
      handleSelect(row) {
         let select = this.restaurants.filter(item => {
            return item.name === row.name
         })[0]
         if (select != undefined) {
            this.$set(row, "internal", select.internal)
            this.$set(row, "required", select.required)
            this.$set(row, "unit", select.unit)
            //检验值
         }
      },
      methods: {
         assertTest(row) {
            // let fuArr=['>', '<', '=']
            // if(!fuArr.includes(row.required[0])){
            //   this.$message({
            //               message: "标准值["+row.required+"]格式首位应包含>,<或者=",
            //               type: 'warning'
            //           });
            //           return
            // }
            // if(!fuArr.includes(row.internal[0])){
            //   this.$message({
            //               message: "内控值["+row.internal+"]格式首位应包含>,<或者=",
            //               type: 'warning'
            //           });
            //           return
            // }
         },
         // 设备树过滤搜索
         filterNode(value, data) {
            if (!value) return true;
            return data.name.indexOf(value) !== -1;
         },
      assertTest(row) {
         // let fuArr=['>', '<', '=']
         // if(!fuArr.includes(row.required[0])){
         //   this.$message({
         //               message: "标准值["+row.required+"]格式首位应包含>,<或者=",
         //               type: 'warning'
         //           });
         //           return
         // }
         // if(!fuArr.includes(row.internal[0])){
         //   this.$message({
         //               message: "内控值["+row.internal+"]格式首位应包含>,<或者=",
         //               type: 'warning'
         //           });
         //           return
         // }
      },
      // 设备树过滤搜索
      filterNode(value, data) {
         if (!value) return true;
         return data.name.indexOf(value) !== -1;
      },
         // 获取报检单详情信息
         async getDetailInfo() {
            await this.$axios
               .get(this.$api.url.selectRawInspectsListById + `${this.detailId}`, {
                  params: {
                     id: this.detailId
      // 获取报检单详情信息
      async getDetailInfo() {
         await this.$axios
            .get(this.$api.url.selectRawInspectsListById + `${this.detailId}`, {
               params: {
                  id: this.detailId
               }
            })
            .then(res => {
               console.log(res);
               this.detailInfo = res.data;
               this.projectTable = res.data.children;
               this.projectTable.forEach(i => {
                  // 解决重新赋值无法编辑操作
                  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() {
         //TODO:
         console.log(this.projectTable);
         if (this.projectTable.length > 0) {
            let filterTable = this.projectTable.filter(item => {
               return item.required === '' || item.internal === '' ||
                  item.required === null || item.internal === null || item.name === ''
            })
            if (filterTable.length > 0) {
               this.$message({
                  message: "项目名称,标准值和内控值不能为空!",
                  type: 'warning'
               });
               return
            }
         }
         this.projectTable.forEach(i => {
            // 将列表转换为字符串
            i.testValue = i.testValueList.join(",");
         });
         this.detailInfo.rawInsProducts = this.projectTable;
         this.$axios.post(
            this.$api.url.addRawInspects, {
            ...this.detailInfo
         }, {
            headers: {
               "Content-Type": "application/json"
            }
         }
         ).then(res => {
            console.log(res);
            if (res.code == "201") {
               this.$message({
                  message: res.message,
                  type: 'warning'
               });
               return
            } else {
               // this.detailId = res.data;
               // this.getDetailInfo();
               // // this.$message.success(res.message);
               // this.goBack();
            }
         });
      },
      // 修改项目的检测值改变结论
      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(); //重新刷新信息数据
         }
      },
       submitSave() {
         let pro = this.projectTable.filter(item => {
            return item.testState === 0;
         })
         if (pro.length > 0) {
            this.$prompt('请输入不合格数量', '不合格数量', {
               confirmButtonText: '确定',
               cancelButtonText: '取消',
               inputPattern: /^\d+$/,
               inputErrorMessage: '请输入正确数字格式'
            }).then(({ value }) => {
               this.$axios.post(
                  this.$api.url.updateRawInspectsById+`${this.detailId}`, {"number": value }
               ).then(res => {
                  this.$message.success("提交成功");
                  this.getDetailInfo();
                  this.goBack()
               });
            }).catch(() => {
               this.$message({
                  type: 'info',
                  message: '取消输入'
               });
            });
         }else{
          this.$axios.post(
            this.$api.url.updateRawInspectsById + `${this.detailId}`
         ).then(res => {
            this.$message.success("提交成功");
            this.getDetailInfo();
            this.goBack()
         });
         }
      },
      // 获取设备树内容
      getOptions() {
         this.$axios.get(this.$api.url.rawSelectDevice).then(res => {
            this.materialOptions = res.data;
         });
      },
      // 添加行
      clickAddLine() {
         let obj = {
            deviceId: null,
            deviceName: "",
            internal: "",
            name: "",
            required: "",
            textValue: "",
            testState: null,
            testValueList: [],
            unit: ""
         };
         this.projectTable.push(obj);
      },
      // 删除行
      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 => {
                  console.log(res);
                  this.detailInfo = res.data;
                  this.projectTable = res.data.children;
                  this.projectTable.forEach(i => {
                     // 解决重新赋值无法编辑操作
                     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;
                     }
                  });
                  this.getDetailInfo();
                  this.centerDialogVisible = false;
               });
         },
         // 新增检验单
         async addNewRawInspect() {
            //TODO:
            console.log(this.projectTable);
            if (this.projectTable.length > 0) {
               let filterTable = this.projectTable.filter(item => {
                  return item.required === '' || item.internal === '' ||
                     item.required === null || item.internal === null || item.name === ''
               })
               if (filterTable.length > 0) {
                  this.$message({
                     message: "项目名称,标准值和内控值不能为空!",
                     type: 'warning'
                  });
                  return
               }
            }
            this.projectTable.forEach(i => {
               // 将列表转换为字符串
               i.testValue = i.testValueList.join(",");
            });
            this.detailInfo.rawInsProducts = this.projectTable;
            this.$axios.post(
               this.$api.url.addRawInspects, {
                  ...this.detailInfo
               }, {
                  headers: {
                     "Content-Type": "application/json"
                  }
               }
            ).then(res => {
               console.log(res);
               if (res.code == "201") {
                  this.$message({
                     message: res.message,
                     type: 'warning'
                  });
                  return
               } else {
                  // this.detailId = res.data;
                  // this.getDetailInfo();
                  // // this.$message.success(res.message);
                  // this.goBack();
               }
            });
         },
         // 修改项目的检测值改变结论
         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(
               this.$api.url.updateRawInspectsById + `${this.detailId}`
            ).then(res => {
               this.$message.success("提交成功");
               this.getDetailInfo();
               this.goBack()
            });
         },
         // 获取设备树内容
         getOptions() {
            this.$axios.get(this.$api.url.rawSelectDevice).then(res => {
               this.materialOptions = res.data;
            });
         },
         // 添加行
         clickAddLine() {
            let obj = {
               deviceId: null,
               deviceName: "",
               internal: "",
               name: "",
               required: "",
               textValue: "",
               testState: null,
               testValueList: [],
               unit: ""
            };
            this.projectTable.push(obj);
         },
         // 删除行
         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;
         }
      },
      // 删除检验值列
      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;
   }
.node_i {
   color: orange;
}
   .div_device_dialog {
      min-height: 400px;
      overflow: auto;
   }
.div_device_dialog {
   min-height: 400px;
   overflow: auto;
}
   .rawInsBox {
      height: 100%;
      width: 100%;
      overflow-y: scroll;
      display: flex;
      flex-direction: column;
   }
.rawInsBox {
   height: 100%;
   width: 100%;
   overflow-y: scroll;
   display: flex;
   flex-direction: column;
}
   .el-table__fixed-body-wrapper {
      top: 48px;
   }
.el-table__fixed-body-wrapper {
   top: 48px;
}
   .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 .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;
   }
.rawInsBox .title {
   margin-bottom: 10px;
   padding: 0 20px;
}
   /* 检验详情 */
   .raw-detail-info {
      background: #fff;
      padding: 26px 0px 11px 80px;
   }
/* 检验详情 */
.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-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 {
   width: auto;
}
   .raw-detail-info.raw-detail-info-edit>>>.el-input__inner {
      background: #fff;
   }
.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-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 {
   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-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-project-table {
   padding: 24px 14px;
   background: #fff;
   flex: 1;
   /* max-height: 360px; */
   /* overflow-y: hidden; */
}
   /* 检验结论 */
   .raw-conclusion-table {
      padding: 9px 14px;
      background: #fff;
   }
/* 检验结论 */
.raw-conclusion-table {
   padding: 9px 14px;
   background: #fff;
}
</style>