From 1a0d57124485fafb0b42a3ec3ecc121e50bb050f Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期二, 03 六月 2025 17:00:08 +0800
Subject: [PATCH] 1

---
 src/components/public/index.vue |  274 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 177 insertions(+), 97 deletions(-)

diff --git a/src/components/public/index.vue b/src/components/public/index.vue
index 8c9a710..9d11c4e 100644
--- a/src/components/public/index.vue
+++ b/src/components/public/index.vue
@@ -3,21 +3,26 @@
     <el-dialog
       :title="title"
       :visible.sync="open"
-      width="1000px"
+      width="1080px"
       append-to-body
     >
       <h3 v-if="fList.proResult">妫�娴嬮」鐩� :{{ fList.project.proName }}</h3>
       <h3 v-if="fList.proResult">
         妫�娴嬬粨鏋� :{{ fList.proResult }}{{ fList.project.proMetering }}
       </h3>
-      <el-form
-        :model="queryParams"
-        ref="queryForm"
-        size="small"
-        :inline="true"
-        label-width="68px"
-      >
-        <el-form-item label="鐥呯鍚嶇О" prop="bingzhong">
+
+      <h2 style="text-align: center">{{ proName || "鏆傛棤椤圭洰鍚嶇О" }}</h2>
+      <div style="display: flex; width: 100%">
+        <div style="width: 50%; margin-right: 40px">
+          <el-form
+            :model="queryParams"
+            ref="queryForm"
+            size="small"
+            :inline="true"
+            label-width="68px"
+            @submit.native.prevent
+          >
+            <!-- <el-form-item label="鐥呯鍚嶇О" prop="bingzhong">
           <el-input
             v-model="queryParams.bingzhong"
             placeholder="璇疯緭鍏ョ畝绉�"
@@ -25,39 +30,39 @@
             @keyup.enter.native="handleQuery"
             style="width: 120px"
           />
-        </el-form-item>
-        <el-form-item label="鎷奸煶鐮�" prop="bzPinyin">
-          <el-input
-            v-model="queryParams.bzPinyin"
-            placeholder="璇疯緭鍏ユ嫾闊崇爜"
-            clearable
-            @keyup.enter.native="handleQuery"
-            style="width: 130px"
-          />
-        </el-form-item>
-        <el-form-item>
-          <el-button
-            type="primary"
-            icon="el-icon-search"
-            size="mini"
-            @click="handleQuery"
-            >鎼滅储</el-button
-          >
-        </el-form-item>
-        <el-form-item>
-          <h3 style="margin-left: 160px;">宸查�夐」鐩�</h3>
-        </el-form-item>
-        
-      </el-form>
-      <div style="display: flex; width: 100%">
-        <div style="width: 50%; margin-right: 30px">
+        </el-form-item>-->
+            <el-form-item label="妫�鏌ョ粨璁�" prop="ruleStr">
+              <el-input
+                v-model="queryParams.ruleStr"
+                placeholder="璇疯緭鍏ユ鏌ョ粨璁�"
+                clearable
+                @keyup.enter.native="getList"
+                style="width: 130px"
+              />
+            </el-form-item>
+            <el-form-item>
+              <el-button
+                type="primary"
+                icon="el-icon-search"
+                size="mini"
+                @click="getList"
+                >鎼滅储</el-button
+              >
+            </el-form-item>
+            <!-- <el-form-item>
+          <h3 >{{ queryParams.proName  || '鏆傛棤椤圭洰鍚嶇О'  }}</h3>
+        </el-form-item> -->
+            <!-- <el-form-item>
+          <h3 style="margin-left: 160px">宸查�夐」鐩�</h3>
+        </el-form-item> -->
+          </el-form>
           <el-table
             :data="dataList"
             ref="multipleTable"
             v-loading="loading"
             @selection-change="handleSelectionChange"
             border
-            height="420px"
+            height="480px"
           >
             <el-table-column type="selection" width="40" align="center" />
             <el-table-column
@@ -67,11 +72,11 @@
               width="50px"
             />
             <!-- <el-table-column label="瑙勫垯" align="center" prop="ruleStr" /> -->
-            <el-table-column label="妫�鏌ョ粨璁�" align="center" prop="ruleStr" />
             <el-table-column label="妫�鏌ユ墍瑙�" align="center" prop="yxbx" />
+            <el-table-column label="妫�鏌ョ粨璁�" align="center" prop="ruleStr" />
           </el-table>
           <div class="pag">
-            <div class="pag1" style="margin-left: 600px">
+            <div class="pag1" style="margin-left: 630px">
               <pagination
                 small
                 v-show="total > 0"
@@ -84,16 +89,16 @@
           </div>
         </div>
 
-        <div style="width: 100%; height: 610px">
+        <div class="jianc">
           <!-- <h3 style="margin-top: -30px;">宸查�夐」鐩�</h3> -->
           <el-form
             :model="form"
             ref="queryForm"
             size="small"
-           
             label-width="68px"
+            :label-position="labelPosition"
           >
-          <!--  :inline="true" -->
+            <!--  :inline="true" -->
             <!-- <el-form-item>
               <el-input
                 type="textarea"
@@ -106,16 +111,16 @@
                 v-model="form.jcsj"
                 clearable
                 type="textarea"
-                :autosize="{ minRows: 8}"
+                :autosize="{ minRows: 7 }"
                 style="width: 380px"
               />
             </el-form-item>
-            <el-form-item label="妫�鏌ョ粨璁�" prop="conclusion">
+            <el-form-item label="妫�鏌ョ粨璁�" prop="desc">
               <el-input
                 v-model="form.desc"
                 clearable
                 type="textarea"
-                 :autosize="{ minRows: 8  }"
+                :autosize="{ minRows: 7 }"
                 style="width: 380px"
               />
             </el-form-item>
@@ -123,14 +128,14 @@
         </div>
       </div>
 
-      <span slot="footer" class="dialog-footer" style="margin-top: -120px">
-        <el-button @click="open = false">鍙� 娑�</el-button>
+      <span slot="footer" class="dialog-footer" style="margin-top: -20px">
+        <el-button @click="callcolos">鍙� 娑�</el-button>
         <el-button type="primary" @click="handleOk">纭� 瀹�</el-button>
       </span>
     </el-dialog>
   </div>
 </template>
-  
+
 <script>
 import { getlist, getlistByRuleStr } from "@/api/doctor/check";
 import { getYxJcXxJg } from "@/api/picture/picture";
@@ -140,23 +145,29 @@
     checkStatus: {
       type: String,
       default: "0",
-      validator: value => ["0", "1"].includes(value)
+      validator: (value) => ["0", "1"].includes(value),
     },
     proResult: {
       type: String,
-      default: ''
+      default: "",
     },
     conclusion: {
       type: String,
-      default: ''
-    }
+      default: "",
+    },
+    projectList: {
+      type: Array,
+      default: () => [],
+    },
   },
   data() {
     return {
       open: false,
+      labelPosition: "top",
       // 寮瑰嚭灞傛爣棰�
       title: "",
       yxbx: "",
+      proName: "",
       //   lastDesc: "",
       total: 0,
       dataList: [],
@@ -167,8 +178,7 @@
         jcsj: "",
       },
       queryParams: {
-        bingzhong: "",
-        bzPinyin: "",
+        ruleStr: "",
         pageNum: 1,
         pageSize: 10,
       },
@@ -180,10 +190,24 @@
   },
   watch: {
     checkStatus(newValue) {
-      console.log( newValue,9988);
+      console.log(565658);
       if (newValue === "1") {
         this.updateData(this.proResult, this.conclusion);
       }
+    },
+    projectList: {
+      immediate: true,
+      deep: true,
+      handler(newVal) {
+        console.log("鏀跺埌鐨勯」鐩暟鎹�:", newVal);
+        // 浣犲彲浠ュ湪杩欓噷澶勭悊鏁版嵁锛屾瘮濡備繚瀛樺埌 data 鎴栧仛閫昏緫鍒ゆ柇
+        if (newVal && newVal.length > 0) {
+          const firstProject = newVal[0]; // 浣犱篃鍙互閬嶅巻鎵�鏈夐」鐩紝鐪嬩綘涓氬姟闇�姹�
+          this.queryParams.proId = firstProject.proId; // 鍋囪椤圭洰涓彨 id
+          // this.queryParams.proName = firstProject.proName;
+          this.proName = firstProject.proName;
+        }
+      },
     },
   },
   mounted() {},
@@ -194,14 +218,17 @@
       try {
         this.loading = true; // 娣诲姞鍔犺浇鐘舵��
         const res = await getlist(this.queryParams);
-        this.dataList = res.rows;
-        this.total = res.total;
-        
+        this.dataList = res.data.rows;
+        if (res.data.total) {
+          this.total = res.data.total;
+        }
+        this.updateData(this.proResult, this.conclusion);
+
         // 濡傛灉闇�瑕侀�変腑鎿嶄綔锛屽皢鍏跺皝瑁呬负鐙珛鏂规硶
         await this.handleAutoSelection();
       } catch (error) {
-        console.error('鑾峰彇鏁版嵁澶辫触:', error);
-        this.$message.error('鑾峰彇鏁版嵁澶辫触');
+        console.error("鑾峰彇鏁版嵁澶辫触:", error);
+        this.$message.error("鑾峰彇鏁版嵁澶辫触");
       } finally {
         this.loading = false;
       }
@@ -210,10 +237,12 @@
     // 灏佽閫変腑閫昏緫
     async handleAutoSelection() {
       if (!this.fList?.rulesList?.length) return;
-      
+
       await this.$nextTick();
-      this.dataList.forEach(item => {
-        const shouldSelect = this.fList.rulesList.some(rule => rule.aid === item.aid);
+      this.dataList.forEach((item) => {
+        const shouldSelect = this.fList.rulesList.some(
+          (rule) => rule.aid === item.aid
+        );
         if (shouldSelect) {
           this.$refs.multipleTable?.toggleRowSelection(item, true);
         }
@@ -222,7 +251,7 @@
 
     handleQuery() {
       if (this.searchDebounce) clearTimeout(this.searchDebounce);
-      
+
       this.searchDebounce = setTimeout(() => {
         this.queryParams.pageNum = 1; // 閲嶇疆椤电爜
         this.getList();
@@ -230,10 +259,28 @@
     },
 
     updateData(proResult, conclusion) {
-      if (this.checkStatus === "1") {
+      console.log(proResult, conclusion, 5658);
+      if (this.checkStatus == 1) {
         this.form.jcsj = proResult; // 鏇存柊妫�鏌ユ墍瑙�
         this.form.desc = conclusion; // 鏇存柊妫�鏌ョ粨璁�
-        // console.log(proResult, conclusion);
+      } else {
+        this.form.desc = "";
+        this.form.jcsj = "";
+      }
+
+      if (this.list.length != 0) {
+        let desc = "";
+        desc += this.list
+          .map((item) => item.bingzhong || item.ruleStr)
+          .filter(Boolean)
+          .join(",");
+        let jcsj = "";
+        jcsj += this.list
+          .map((item) => item.yxbx)
+          .filter(Boolean)
+          .join(",");
+        this.form.jcsj = this.form.jcsj + jcsj; // 鏇存柊妫�鏌ユ墍瑙�
+        this.form.desc = this.form.desc + desc;
       }
     },
 
@@ -243,33 +290,33 @@
     },
 
     updateFormContent(selection) {
-      if (!selection.length) return;
-      
+      // if (!selection.length) return;
+      this.updateData(this.proResult, this.conclusion);
       // 濡傛灉澶勪簬妫�鏌ョ姸鎬侊紝浣跨敤浼犲叆鐨勫��
-      if (this.checkStatus === "1") {
-        this.updateData(this.proResult, this.conclusion);
-        return;
-      }
+      // if (this.checkStatus === "1") {
+      //   this.updateData(this.proResult, this.conclusion);
+      //   return;
+      // }
 
       // 閲嶇疆琛ㄥ崟鍐呭
-      this.form.desc = '';
-      this.form.jcsj = '';
+      // this.form.desc = "";
+      // this.form.jcsj = "";
+      // console.log(22222);
+      // // 浣跨敤map鍜宩oin鏇夸唬forEach鍜屽瓧绗︿覆鎷兼帴
+      // this.form.desc = selection
+      //   .map((item) => item.bingzhong || item.ruleStr)
+      //   .filter(Boolean)
+      //   .join(",");
 
-      // 浣跨敤map鍜宩oin鏇夸唬forEach鍜屽瓧绗︿覆鎷兼帴
-      this.form.desc = selection
-        .map(item => item.bingzhong || item.ruleStr)
-        .filter(Boolean)
-        .join(',');
-        
-      this.form.jcsj = selection
-        .map(item => item.yxbx)
-        .filter(Boolean)
-        .join(',');
+      // this.form.jcsj = selection
+      //   .map((item) => item.yxbx)
+      //   .filter(Boolean)
+      //   .join(",");
     },
 
-    handleOk() {
+    /* handleOk() {
       if (!this.form.desc && !this.form.jcsj) {
-        this.$message.warning('璇烽�夋嫨鏁版嵁');
+        this.$message.warning("璇烽�夋嫨鏁版嵁");
         return;
       }
 
@@ -278,39 +325,72 @@
         this.resetForm();
         this.open = false;
       } catch (error) {
-        console.error('澶勭悊鏁版嵁澶辫触:', error);
-        this.$message.error('鎿嶄綔澶辫触');
+        console.error("澶勭悊鏁版嵁澶辫触:", error);
+        this.$message.error("鎿嶄綔澶辫触");
+      }
+    }, */
+
+    handleOk() {
+      const jcsjTrim = this.form.jcsj?.trim();
+      const descTrim = this.form.desc?.trim();
+
+      if (!jcsjTrim || !descTrim) {
+        this.$message.warning("妫�鏌ユ墍瑙佸拰妫�鏌ョ粨璁轰笉鑳戒负绌�");
+        return;
+      }
+
+      try {
+        this.$emit("add", this.form.desc, this.form.jcsj);
+        this.resetForm();
+        this.open = false;
+      } catch (error) {
+        console.error("澶勭悊鏁版嵁澶辫触:", error);
+        this.$message.error("鎿嶄綔澶辫触");
       }
     },
 
     resetForm() {
-      this.form.desc = '';
-      this.form.jcsj = '';
+      this.form.desc = "";
+      this.form.jcsj = "";
       this.list = [];
       if (this.$refs.multipleTable) {
         this.$refs.multipleTable.clearSelection();
       }
+    },
+    callcolos() {
+      this.open = false;
     },
   },
   computed: {
     isCheckMode() {
       return this.checkStatus === "1";
     },
-    
+
     hasSelectedItems() {
       return this.list.length > 0;
-    }
-  }
+    },
+  },
 };
 </script>
-  
+
 <style scoped>
-.el-dialog__body{
-  padding: 10px 20px;
+.el-dialog__body {
+  padding: 0px 20px;
 }
+
+::v-deep .el-dialog__header {
+  padding: 0px !important;
+  padding-bottom: 0px !important;
+}
+
 ::v-deep .el-dialog__footer {
   padding: 0 !important;
   padding-bottom: 40px !important;
 }
-</style>
-  
\ No newline at end of file
+
+.jianc {
+  width: 100%;
+  height: 600px;
+  padding-top: 40px;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0