From ee2882cff02d3545b66c7591f88ed4800f730a9a Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 21 五月 2025 10:00:17 +0800
Subject: [PATCH] 消息通知数据自动筛选

---
 src/components/do/b1-report-preparation/order.vue |  195 +++++++++++++++++++++++++++++-------------------
 1 files changed, 119 insertions(+), 76 deletions(-)

diff --git a/src/components/do/b1-report-preparation/order.vue b/src/components/do/b1-report-preparation/order.vue
index 497ec80..e407b45 100644
--- a/src/components/do/b1-report-preparation/order.vue
+++ b/src/components/do/b1-report-preparation/order.vue
@@ -21,6 +21,14 @@
         <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
             v-model="componentData.entity.sampleCode" @keyup.enter.native="refreshTable()"></el-input></div>
       </div>
+      <div class="search_thing">
+        <div class="search_label">璁㈠崟绫诲瀷锛�</div>
+        <div class="search_input">
+          <el-select v-model="componentData.entity.formType" size="small"style="width: 100%;" @change="refreshTable()">
+            <el-option v-for="(a,ai) in formType" :key="ai" :label="a.label" :value="a.value"></el-option>
+          </el-select>
+        </div>
+      </div>
       <div class="search_thing" style="margin-left: 20px;">
         <el-button size="small" @click="refresh()">閲� 缃�</el-button>
         <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
@@ -38,55 +46,60 @@
       :append-to-body="true"
       :modal="!dialogVisible0"
       >
-      <span>璇烽�夋嫨濮旀墭缂栧彿涓� <span style="color: #3A7BFA">{{currentInfo.entrustCode}}</span> 瑕佺敓鎴愮殑鏁版嵁</span>
+      <span style="font-size: 16px;">璇烽�夋嫨濮旀墭缂栧彿涓� <span style="color: #3A7BFA">{{currentInfo.entrustCode}}</span> 瑕佺敓鎴愮殑鏁版嵁</span>
       <div style="max-height: 75vh;overflow-y: auto;">
-        <el-card class="box-card" style="margin-top: 16px;" v-for="(item,index) in historyList" :key="index">
-          <div slot="header" style="display: flex;justify-content: space-between;">
-            <span>{{ item.laboratory }}</span>
-          </div>
-          <el-table
-            :data="item.insOrderUserList"
-            border
-            style="width: 100%" @selection-change="list=>handleSelectionChange(list,item.insOrderUserList)">
-            <el-table-column
-              type="selection"
-              width="55">
-            </el-table-column>
-            <el-table-column
-              prop="submitTime"
-              label="鎻愪氦鏃ユ湡"
-              min-width="150">
-            </el-table-column>
-            <el-table-column
-              prop="submitUserName"
-              label="鎻愪氦浜�"
-              min-width="90">
-            </el-table-column>
-            <el-table-column
-              prop="term"
-              label="瀹為獙闃舵"
-              min-width="120">
-            </el-table-column>
-            <el-table-column
-              prop="note"
-              label="瀹為獙鎿嶄綔"
-              min-width="120">
-            </el-table-column>
-            <el-table-column
-              prop="tell"
-              label="鍐嶆妫�楠屽師鍥�"
-              min-width="120">
-            </el-table-column>
-            <el-table-column
-              fixed="right"
-              label="鎿嶄綔"
-              min-width="100">
-              <template slot-scope="scope">
-                <el-button @click="lookDetail(item,scope.row.num)" type="text" size="small">鏌ョ湅</el-button>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-card>
+        <template v-for="(a,b) in sampleList">
+          <el-divider></el-divider>
+          <p style="margin: 10px 0;font-weight: 700;">鏍峰搧锛�<el-tag size="small">{{a.insSample.sample}}</el-tag> &nbsp;&nbsp;&nbsp;&nbsp;鏍峰搧缂栧彿锛歿{a.insSample.sampleCode}}</p>
+          <el-card class="box-card" style="margin-top: 16px;" v-for="(item,index) in a.historyList" :key="index">
+            <div slot="header" style="display: flex;justify-content: space-between;">
+              <span>{{ item.laboratory }}</span>
+            </div>
+            <el-table
+              :data="item.insOrderUserList"
+              border
+              style="width: 100%" @selection-change="list=>handleSelectionChange(list,item.insOrderUserList)">
+              <el-table-column
+                type="selection"
+                width="55">
+              </el-table-column>
+              <el-table-column
+                prop="submitTime"
+                label="鎻愪氦鏃ユ湡"
+                min-width="150">
+              </el-table-column>
+              <el-table-column
+                prop="submitUserName"
+                label="鎻愪氦浜�"
+                min-width="90">
+              </el-table-column>
+              <el-table-column
+                prop="term"
+                label="瀹為獙闃舵"
+                min-width="120">
+              </el-table-column>
+              <el-table-column
+                prop="note"
+                label="瀹為獙鎿嶄綔"
+                min-width="120">
+              </el-table-column>
+              <el-table-column
+                prop="tell"
+                label="鍐嶆妫�楠屽師鍥�"
+                min-width="120">
+              </el-table-column>
+              <el-table-column
+                fixed="right"
+                label="鎿嶄綔"
+                min-width="100">
+                <template slot-scope="scope">
+                  <el-button @click="lookDetail(item,scope.row.num,a.insSample)" type="text" size="small">鏌ョ湅</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-card>
+          <p v-if="a.historyList.length==0" style="text-align: center;">鏆傛棤鍙敓鎴愮殑鏁版嵁</p>
+        </template>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button :loading="loading0" @click="handleNoCreate">涓嶇敓鎴�</el-button>
@@ -98,7 +111,9 @@
       :visible.sync="dialogVisible0"
       width="100%" :fullscreen="true" :modal="false" :append-to-body="true">
       <Inspection v-if="dialogVisible0"
-      :orderId="currentInfo.id"
+      :orderId="sampleId"
+      :orderId0="orderId0"
+      :userInfo="{}"
       :inspectorList="currentItem.inspectorList"
       :sonLaboratory="currentItem.laboratory"
       :state="2"
@@ -129,10 +144,11 @@
           sampleModel: null,
           sampleCode: null,
           outEntrustCode: null,
-          state: 1,
+          state: 4,
           name:null,
           engineering:null,
           production:null,
+          formType:null,
         },
         isIndex: true,
         showSelect: false,
@@ -210,12 +226,17 @@
       currentItem:{},
       loading0:false,
       loading1:false,
-      dialogVisible0:false
+      dialogVisible0:false,
+      sampleList:[],
+      sampleId:null,
+      orderId0:null,
+      formType:[]
     }
   },
   mounted() {
     this.entityCopy = this.HaveJson(this.componentData.entity)
     this.getPower()
+    this.selectEnumByCategoryForSampleForm()
   },
   methods:{
     // 鏉冮檺鍒嗛厤
@@ -242,38 +263,58 @@
     handleCreateReport(row){
       this.currentInfo = row
       this.$axios.get(this.$api.insReport.getInsOrderStateCount+'?id='+row.id).then(res => {
-        this.historyList = res.data
-        this.historyList.forEach(item => {
-          item.arr = []
-          this.$set(item,'numValue',1)
-          // item.checked = false;
-          if(item.num>0){
-            for(var i=0;i<item.num;i++){
-              item.arr.push({
-                label:'璁板綍'+(i+1),
-                value:i+1
-              })
+        this.sampleList = res.data
+        this.sampleList.forEach(a=>{
+          a.historyList = a.insOrderStates
+          a.historyList.forEach(item => {
+            item.arr = []
+            this.$set(item,'numValue',1)
+            if(item.num>0){
+              for(var i=0;i<item.num;i++){
+                item.arr.push({
+                  label:'璁板綍'+(i+1),
+                  value:i+1
+                })
+              }
             }
-          }
+          })
         })
         this.dialogVisible = true
       })
     },
+    selectEnumByCategoryForSampleForm() {
+        this.$axios.post(this.$api.enums.selectEnumByCategory, {
+          category: "璁㈠崟绫诲瀷"
+        }).then(res => {
+          this.formType = res.data
+        })
+      },
     // 鐢熸垚鎶ュ憡
     handleCreate(){
-      let arr = []
-      this.historyList.forEach(item => {
-        item.insOrderUserList.forEach(item1 => {
-          if(item1.state==1){
-            arr.push({
-              laboratory:item.laboratory,
-              num:item1.num,
-              insOrderUsersId:item1.id
-            })
-          }
+      let insReportDto1s = []
+      let num = 0;
+      this.sampleList.forEach(a => {
+        let insReportDto2s = []
+        a.historyList.forEach(item => {
+          item.insOrderUserList.forEach(item1 => {
+            if(item1.state==1){
+              let obj0 = {
+                laboratory:item.laboratory,
+                num:item1.num,
+                insOrderUsersId:item1.id
+              }
+              insReportDto2s.push(obj0)
+              num++
+            }
+          })
         })
+        let obj0 = {
+          sampleId:a.insSample.id,
+          insReportDto2s:insReportDto2s
+        }
+        insReportDto1s.push(obj0)
       })
-      if(arr.length==0){
+      if(num==0){
         this.$message.error("璇峰厛閫夋嫨闇�瑕佺敓鎴愮殑璁板綍锛�")
         return
       }
@@ -281,7 +322,7 @@
       this.$axios.post(this.$api.insReport.isReport, {
         id:this.currentInfo.id,
         state:1,
-        insReportDto1s:arr
+        insReportDto1s:insReportDto1s
       },{
         headers: {
           'Content-Type': 'application/json'
@@ -319,12 +360,14 @@
       })
     },
     // 鏌ョ湅妫�楠岃鎯�
-    lookDetail(row,value){
+    lookDetail(row,value,insSample){
       this.dialogVisible0 = true
       let inspectorList = []
       if(row.userName){
         inspectorList = row.userName.split(',')
       }
+      this.sampleId = insSample.id
+      this.orderId0 = insSample.insOrderId
       this.currentItem = {
         num1:value,
         inspectorList:inspectorList,

--
Gitblit v1.9.3