lichao 3 месяцев назад
Родитель
Сommit
98b6e35f34
1 измененных файлов с 323 добавлено и 143 удалено
  1. 323 143
      src/views/reportForm/components/chemicalAnalysisReport.vue

+ 323 - 143
src/views/reportForm/components/chemicalAnalysisReport.vue

@@ -3,46 +3,79 @@
     <div class="common-head-search">
       <el-form :inline="true">
         <el-form-item label="样品类型">
-          <el-select v-model="search.sampleTypeCode" clearable filterable collapse-tags size="small"
-            style="width: 150px" placeholder="请选择">
-            <el-option v-for="item in sampleTypeNameType" :key="item.baseCode" :label="item.baseName"
-              :value="item.baseCode">
+          <el-select
+            v-model="search.sampleTypeCode"
+            clearable
+            filterable
+            collapse-tags
+            size="small"
+            style="width: 150px"
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in sampleTypeNameType"
+              :key="item.baseCode"
+              :label="item.baseName"
+              :value="item.baseCode"
+            >
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="样品名称">
-          <el-input v-model="search.matName" size="small" placeholder="请输入样品名称" style="width: 150px"
-            clearable></el-input>
-          <el-input v-model="search.matName" size="small" placeholder="请输入样品名称" style="width: 150px"
-            clearable></el-input>
+          <el-input
+            v-model="search.matName"
+            size="small"
+            placeholder="请输入样品名称"
+            style="width: 150px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="中心编号">
-          <el-input v-model="search.sampleNo" size="small" placeholder="请输入中心编号" style="width: 150px"
-            clearable></el-input>
-          <el-input v-model="search.sampleNo" size="small" placeholder="请输入中心编号" style="width: 150px"
-            clearable></el-input>
+          <el-input
+            v-model="search.sampleNo"
+            size="small"
+            placeholder="请输入中心编号"
+            style="width: 150px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="委托编号">
-          <el-input v-model="search.carNo" size="small" placeholder="请输入委托编号" style="width: 150px" clearable></el-input>
-          <el-input v-model="search.carNo" size="small" placeholder="请输入委托编号" style="width: 150px" clearable></el-input>
+          <el-input
+            v-model="search.carNo"
+            size="small"
+            placeholder="请输入委托编号"
+            style="width: 150px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="委托日期">
-          <el-date-picker v-model="search.stateTime[0]" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"
-            placeholder="开始日期" size="mini" style="width: 150px">
+          <el-date-picker
+            v-model="search.stateTime"
+            value-format="yyyy-MM-dd"
+            format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            size="mini"
+            style="width: 200px"
+          >
           </el-date-picker>
-          <span>至</span>
-          <el-date-picker v-model="search.stateTime[1]" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"
-            placeholder="结束日期" size="mini" style="width: 150px">
-          </el-date-picker>
-          <!-- <el-date-picker v-model="search.stateTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="daterange"
-            range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" size="mini" style="width: 200px">
-          </el-date-picker> -->
         </el-form-item>
         <el-form-item>
-          <el-button icon="el-icon-search" type="goon" size="mini" :loading="dataLoading"
-            @click="searchData">查询</el-button>
-            @click="searchData">查询</el-button>
-          <el-button icon="el-icon-refresh" type="info" plain size="mini" @click="reset">重置</el-button>
+          <el-button
+            icon="el-icon-search"
+            type="goon"
+            size="mini"
+            :loading="dataLoading"
+            @click="searchData1"
+            >查询</el-button
+          >
+          <el-button
+            icon="el-icon-refresh"
+            type="info"
+            plain
+            size="mini"
+            @click="reset"
+            >重置</el-button
+          >
         </el-form-item>
       </el-form>
     </div>
@@ -50,82 +83,211 @@
       <el-col :span="4">
         <div class="common-title-div">
           <div class="common-title-name">
-            <img style="width: 25px; height: 25px" src="../../../assets/img/imgScreen/logo.png" />
+            <img
+              style="width: 25px; height: 25px"
+              src="../../../assets/img/imgScreen/logo.png"
+            />
             <span style="font-size: 15px">物料名称</span>
           </div>
         </div>
         <div class="common-table-div">
-          <el-table ref="tableMain11" :height="singleTableHeight" v-loading="tableLoading" :data="table.list"
-            highlight-current-row @row-click="handleCurrentChange" :summary-method="getSummaries"
-            :header-cell-style="tableHeaderCellStyle" show-summary border style="width: 100%" :icorePanelShown="100"
-            :icore-filter-flag="icoreFilterFlag">
-            <el-table-column sortable show-overflow-tooltip align="center" min-width="100" prop="MAT_NAME"
-              label="物料名称"></el-table-column>
+          <el-table
+            ref="tableMain11"
+            :height="singleTableHeight"
+            v-loading="tableLoading"
+            :data="table.list"
+            highlight-current-row
+            @row-click="handleCurrentChange"
+            :summary-method="getSummaries"
+            :header-cell-style="tableHeaderCellStyle"
+            show-summary
+            border
+            style="width: 100%"
+            :icorePanelShown="100"
+            :icore-filter-flag="icoreFilterFlag"
+          >
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              min-width="100"
+              prop="MAT_NAME"
+              label="物料名称"
+            ></el-table-column>
           </el-table>
         </div>
       </el-col>
       <el-col :span="20">
         <div class="common-title-div">
           <div class="common-title-name">
-            <img style="width: 25px; height: 25px" src="../../../assets/img/imgScreen/logo.png" />
+            <img
+              style="width: 25px; height: 25px"
+              src="../../../assets/img/imgScreen/logo.png"
+            />
             台账信息
           </div>
           <div class="common-button-div">
-            <el-button icon="el-icon-download" type="goon" size="mini" :loading="tableExportLoading"
-              @click="maintenance">维护上下限</el-button>
-            <el-button icon="el-icon-download" type="goon" size="mini" :loading="tableExportLoading"
-              @click="doExport">导出</el-button>
+            <el-button
+              icon="el-icon-download"
+              type="goon"
+              size="mini"
+              :loading="tableExportLoading"
+              @click="maintenance"
+              >维护上下限</el-button
+            >
+            <el-button
+              icon="el-icon-download"
+              type="goon"
+              size="mini"
+              :loading="tableExportLoading"
+              @click="doExport"
+              >导出</el-button
+            >
           </div>
         </div>
         <div class="common-table-div" id="topTable">
-          <el-table ref="el_table_1" border :height="singleTableHeight" width="100%" highlight-current-row
-            @selection-change="searchFollow" :data="table.list1">
-            <el-table-column type="selection" width="55" align="center"></el-table-column>
-            <el-table-column sortable show-overflow-tooltip align="center" width="160" prop="CAR_NO"
-              label="委托编号"></el-table-column>
-            <el-table-column sortable show-overflow-tooltip align="center" width="120" prop="SAMPLE_NO"
-              label="中心编号"></el-table-column>
-            <el-table-column sortable show-overflow-tooltip align="center" width="120" prop="MAT_NAME"
-              label="物料名称"></el-table-column>
-            <el-table-column sortable show-overflow-tooltip align="center" width="120" prop="MEMO"
-              label="委托备注"></el-table-column>
-            <el-table-column v-for="col in cols" :prop="col.ANLY_ITEM_NO" show-overflow-tooltip align="center"
-              :key="col.ANLY_ITEM_NO" :label="col.ANLY_ITEM_NAME">
+          <el-table
+            ref="el_table_1"
+            border
+            :height="singleTableHeight"
+            width="100%"
+            highlight-current-row
+            @selection-change="searchFollow"
+            :data="table.list1"
+          >
+            <el-table-column
+              type="selection"
+              width="55"
+              align="center"
+            ></el-table-column>
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              width="160"
+              prop="CAR_NO"
+              label="委托编号"
+            ></el-table-column>
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              width="120"
+              prop="SAMPLE_NO"
+              label="中心编号"
+            ></el-table-column>
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              width="120"
+              prop="MAT_NAME"
+              label="物料名称"
+            ></el-table-column>
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              width="120"
+              prop="MEMO"
+              label="委托备注"
+            ></el-table-column>
+            <el-table-column
+              v-for="col in cols"
+              :prop="col.ANLY_ITEM_NO"
+              show-overflow-tooltip
+              align="center"
+              :key="col.ANLY_ITEM_NO"
+              :label="col.ANLY_ITEM_NAME"
+            >
               <template slot-scope="scope">
                 <span :style="redStyle(scope.row.SA_ID, col.ANLY_ITEM_NO)">{{
                   scope.row[col.ANLY_ITEM_NO]
-                  }}</span>
+                }}</span>
               </template>
             </el-table-column>
-            <el-table-column sortable show-overflow-tooltip align="center" width="120" prop="UPDATE_TIME"
-              label="开始时间"></el-table-column>
-            <el-table-column sortable show-overflow-tooltip align="center" width="120" prop="CREATE_TIME"
-              label="结束时间"></el-table-column>
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              width="120"
+              prop="UPDATE_TIME"
+              label="开始时间"
+            ></el-table-column>
+            <el-table-column
+              sortable
+              show-overflow-tooltip
+              align="center"
+              width="120"
+              prop="CREATE_TIME"
+              label="结束时间"
+            ></el-table-column>
           </el-table>
         </div>
         <div class="common-foot-style">
-          <el-pagination @size-change="pageSizeChange" @current-change="pageCurrentChange" :current-page="page.pageNum"
-            :page-sizes="[50, 100, 200, 500, 1000]" :page-size="page.pageSize"
-            layout="total, sizes, prev, pager, next, jumper" :total="page.totalPage" background>
+          <el-pagination
+            @size-change="pageSizeChange"
+            @current-change="pageCurrentChange"
+            :current-page="page.pageNum"
+            :page-sizes="[50, 100, 200, 500, 1000]"
+            :page-size="page.pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="page.totalPage"
+            background
+          >
           </el-pagination>
         </div>
       </el-col>
     </el-row>
-    <el-dialog :close-on-click-modal="false" @close="closebatch" width="100%" :visible.sync="recallShow" top="0">
+    <el-dialog
+      :close-on-click-modal="false"
+      @close="closebatch"
+      width="100%"
+      :visible.sync="recallShow"
+      top="0"
+    >
       <div slot="title" class="titleBox">
         <i class="el-icon-document" style="font-size: 20px"></i>
         <span style="margin-left: 10px; font-size: 18px">维护信息</span>
       </div>
       <div class="common-table-div">
-        <el-table border ref="dataTable123" :data="recallList" :height="theight2" @selection-change="recallSelection"
-          highlight-current-row>
-          <el-table-column type="selection" width="45" align="center"></el-table-column>
-          <el-table-column show-overflow-tooltip sortable min-width="80" align="center" prop="ANLY_ITEM_NAME"
-            label="检测项目"></el-table-column>
-          <el-table-column show-overflow-tooltip sortable min-width="80" align="center" prop="MIN_SIGN" label="下限符号">
+        <el-table
+          border
+          ref="dataTable123"
+          :data="recallList"
+          :height="theight2"
+          @selection-change="recallSelection"
+          highlight-current-row
+        >
+          <el-table-column
+            type="selection"
+            width="45"
+            align="center"
+          ></el-table-column>
+          <el-table-column
+            show-overflow-tooltip
+            sortable
+            min-width="80"
+            align="center"
+            prop="ANLY_ITEM_NAME"
+            label="检测项目"
+          ></el-table-column>
+          <el-table-column
+            show-overflow-tooltip
+            sortable
+            min-width="80"
+            align="center"
+            prop="MIN_SIGN"
+            label="下限符号"
+          >
             <template slot-scope="scope">
-              <input v-model="scope.row.MIN_SIGN" size="small" @keydown="keyDown($event, scope.row, scope.$index)"
-                :id="scope.column.id + '--' + scope.$index" @change="inputDataPl($event, scope.$index)" style="
+              <input
+                v-model="scope.row.MIN_SIGN"
+                size="small"
+                @keydown="keyDown($event, scope.row, scope.$index)"
+                :id="scope.column.id + '--' + scope.$index"
+                @change="inputDataPl($event, scope.$index)"
+                style="
                   width: 100%;
                   height: 28px;
                   line-height: 28px;
@@ -133,14 +295,27 @@
                   padding-left: 3px;
                   text-align: center;
                   font-size: 15px;
-                " />
+                "
+              />
             </template>
           </el-table-column>
-          <el-table-column show-overflow-tooltip sortable min-width="80" align="center" prop="MIN_VALUE" label="下限值">
+          <el-table-column
+            show-overflow-tooltip
+            sortable
+            min-width="80"
+            align="center"
+            prop="MIN_VALUE"
+            label="下限值"
+          >
             <template slot-scope="scope">
-              <input v-model="scope.row.MIN_VALUE" size="small" @keydown="keyDown($event, scope.row, scope.$index)"
-                :id="scope.column.id + '--' + scope.$index" @change="inputDataPl($event, scope.$index)"
-                oninput="value=value.replace(/[^0-9\[.\]{1}-]/g,'')" style="
+              <input
+                v-model="scope.row.MIN_VALUE"
+                size="small"
+                @keydown="keyDown($event, scope.row, scope.$index)"
+                :id="scope.column.id + '--' + scope.$index"
+                @change="inputDataPl($event, scope.$index)"
+                oninput="value=value.replace(/[^0-9\[.\]{1}-]/g,'')"
+                style="
                   width: 100%;
                   height: 28px;
                   line-height: 28px;
@@ -148,13 +323,26 @@
                   padding-left: 3px;
                   text-align: center;
                   font-size: 15px;
-                " />
+                "
+              />
             </template>
           </el-table-column>
-          <el-table-column show-overflow-tooltip sortable min-width="80" align="center" prop="MAX_SIGN" label="上限符号">
+          <el-table-column
+            show-overflow-tooltip
+            sortable
+            min-width="80"
+            align="center"
+            prop="MAX_SIGN"
+            label="上限符号"
+          >
             <template slot-scope="scope">
-              <input v-model="scope.row.MAX_SIGN" size="small" @keydown="keyDown($event, scope.row, scope.$index)"
-                :id="scope.column.id + '--' + scope.$index" @change="inputDataPl($event, scope.$index)" style="
+              <input
+                v-model="scope.row.MAX_SIGN"
+                size="small"
+                @keydown="keyDown($event, scope.row, scope.$index)"
+                :id="scope.column.id + '--' + scope.$index"
+                @change="inputDataPl($event, scope.$index)"
+                style="
                   width: 100%;
                   height: 28px;
                   line-height: 28px;
@@ -162,14 +350,27 @@
                   padding-left: 3px;
                   text-align: center;
                   font-size: 15px;
-                " />
+                "
+              />
             </template>
           </el-table-column>
-          <el-table-column show-overflow-tooltip sortable min-width="80" align="center" prop="MAX_VALUE" label="上限值">
+          <el-table-column
+            show-overflow-tooltip
+            sortable
+            min-width="80"
+            align="center"
+            prop="MAX_VALUE"
+            label="上限值"
+          >
             <template slot-scope="scope">
-              <input v-model="scope.row.MAX_VALUE" size="small" @keydown="keyDown($event, scope.row, scope.$index)"
-                :id="scope.column.id + '--' + scope.$index" @change="inputDataPl($event, scope.$index)"
-                oninput="value=value.replace(/[^0-9\[.\]{1}-]/g,'')" style="
+              <input
+                v-model="scope.row.MAX_VALUE"
+                size="small"
+                @keydown="keyDown($event, scope.row, scope.$index)"
+                :id="scope.column.id + '--' + scope.$index"
+                @change="inputDataPl($event, scope.$index)"
+                oninput="value=value.replace(/[^0-9\[.\]{1}-]/g,'')"
+                style="
                   width: 100%;
                   height: 28px;
                   line-height: 28px;
@@ -177,15 +378,28 @@
                   padding-left: 3px;
                   text-align: center;
                   font-size: 15px;
-                " />
+                "
+              />
             </template>
           </el-table-column>
         </el-table>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button type="goon" size="mini" icon="el-icon-check" :loading="batchLoading"
-          @click="determineList()">确认</el-button>
-        <el-button size="mini" type="goon" icon="el-icon-remove-outline" @click="closebatch">取消</el-button>
+        <el-button
+          type="goon"
+          size="mini"
+          icon="el-icon-check"
+          :loading="batchLoading"
+          @click="determineList()"
+          >确认</el-button
+        >
+        <el-button
+          size="mini"
+          type="goon"
+          icon="el-icon-remove-outline"
+          @click="closebatch"
+          >取消</el-button
+        >
       </span>
     </el-dialog>
   </div>
@@ -231,8 +445,6 @@ export default {
       recallList: [],
       theight2: 0,
       recallSelectionList: [],
-      clickMap: {}
-      clickMap: {}
     };
   },
   created() {
@@ -289,29 +501,25 @@ export default {
         startTime: startTime,
         endTime: endTime,
       };
-      if (this.tableList.MAT_NO != null) {
-        this.searchData()
-      } else {
-        this.dataLoading = true;
-        this.axios
-          .post(
-            "pass/baseManagement/v1/limssamplereleases/queryParameterMatName",
-            obj,
-            { individualType: "json" }
-          )
-          .then((res) => {
-            if (res.code == 0 || res.code == 200) {
-              this.table.list = res.data;
-            } else {
-              this.$message.error(res.message);
-            }
-            this.dataLoading = false;
-          })
-          .catch((err) => {
-            this.dataLoading = false;
-            this.$message.error(err.message);
-          });
-      }
+      this.dataLoading = true;
+      this.axios
+        .post(
+          "pass/baseManagement/v1/limssamplereleases/queryParameterMatName",
+          obj,
+          { individualType: "json" }
+        )
+        .then((res) => {
+          if (res.code == 0 || res.code == 200) {
+            this.table.list = res.data;
+          } else {
+            this.$message.error(res.message);
+          }
+          this.dataLoading = false;
+        })
+        .catch((err) => {
+          this.dataLoading = false;
+          this.$message.error(err.message);
+        });
     },
     searchData() {
       let startTime = "";
@@ -331,10 +539,7 @@ export default {
         validFlag: 1,
         startTime: startTime,
         endTime: endTime,
-        matName: this.clickMap.MAT_NAME || this.search.matName,
-        matNo: this.clickMap.MAT_NO,
-        matName: this.clickMap.MAT_NAME || this.search.matName,
-        matNo: this.clickMap.MAT_NO,
+        matNo: this.tableList.MAT_NO,
       };
       this.dataLoading = true;
       this.axios
@@ -349,27 +554,8 @@ export default {
               this.cols = [];
             }
             this.table.list1 = res.data.badyData.list;
-            if (this.table.list1 != null && this.table.list1.length > 0) {
-              if (Object.keys(this.clickMap).length === 0) {
-                this.table.list = res.data.badyData.list[0].sampleResults
-              }
-            } else {
-              if (Object.keys(this.clickMap).length === 0) {
-                this.table.list = []
-              }
-            }
-            if (this.table.list1 != null && this.table.list1.length > 0) {
-              if (Object.keys(this.clickMap).length === 0) {
-                this.table.list = res.data.badyData.list[0].sampleResults
-              }
-            } else {
-              if (Object.keys(this.clickMap).length === 0) {
-                this.table.list = []
-              }
-            }
             this.page.totalPage = res.data.badyData.total;
             this.redDataCk = res.data.redMap || {};
-            // this.clickMap = {}
           } else {
             this.$message.error(res.message);
           }
@@ -550,8 +736,7 @@ export default {
       });
     },
     handleCurrentChange(row) {
-      this.clickMap = JSON.parse(JSON.stringify(row))
-      this.clickMap = JSON.parse(JSON.stringify(row))
+      this.tableList = row;
       this.searchData();
     },
     tableHeaderCellStyle() {
@@ -566,16 +751,11 @@ export default {
       this.searchData();
     },
     reset() {
-      this.search = {};
+      this.search.matName = "";
       let aaa = new Date();
       let bbb = new Date().getTime() - 60000 * 60 * 24 * 7;
       aaa.setTime(bbb);
       this.search.stateTime = [this.getYNM(aaa), this.getYNM(new Date())];
-      this.tableList = {}
-      this.table.list = []
-      this.table.list1 = []
-      this.searchData();
-      this.searchData();
     },
     getSummaries(param) {
       const { columns, data } = param;