From 599dc1a68be60373048aff95bd53ef8fdd138b4e Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期四, 03 四月 2025 18:02:28 +0800
Subject: [PATCH] 1

---
 src/views/doctor/checkAll/index.vue |  230 +++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 143 insertions(+), 87 deletions(-)

diff --git a/src/views/doctor/checkAll/index.vue b/src/views/doctor/checkAll/index.vue
index af522a9..68f6865 100644
--- a/src/views/doctor/checkAll/index.vue
+++ b/src/views/doctor/checkAll/index.vue
@@ -371,11 +371,13 @@
                               style="margin-bottom: 10px">
                               <div>
                                 鏍囬锛�
-                                <el-input v-model="jianyi.bt" size="small" type="textarea" autosize></el-input>
+                                <el-input v-model="jianyi.bt" size="small" type="textarea" autosize
+                                  @blur="handleAdviceBlur(props.row, index1)"></el-input>
                               </div>
                               <div>
                                 鍐呭锛�
-                                <el-input v-model="jianyi.nr" size="small" type="textarea" autosize></el-input>
+                                <el-input v-model="jianyi.nr" size="small" type="textarea" autosize
+                                  @blur="handleAdviceBlur(props.row, index1)"></el-input>
                               </div>
                             </div>
                           </div>
@@ -384,14 +386,15 @@
                           <div v-else>
                             <div>
                               鏍囬锛�
-                              <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize></el-input>
+                              <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize
+                                @blur="handleAdviceBlur(props.row, -1)"></el-input>
                             </div>
                             <div>
                               鍐呭锛�
-                              <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize></el-input>
+                              <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize
+                                @blur="handleAdviceBlur(props.row, -1)"></el-input>
                             </div>
                           </div>
-
 
                           <div style="margin-top: 10px;">
                             <el-button @click="shanchu(props.row)" type="danger" size="small">鍒犻櫎</el-button>
@@ -428,11 +431,13 @@
                               style="margin-bottom: 10px">
                               <div>
                                 鏍囬锛�
-                                <el-input v-model="jianyi.bt" size="small" type="textarea" autosize></el-input>
+                                <el-input v-model="jianyi.bt" size="small" type="textarea" autosize
+                                  @blur="handleAdviceBlur(props.row, index1)"></el-input>
                               </div>
                               <div>
                                 鍐呭锛�
-                                <el-input v-model="jianyi.nr" size="small" type="textarea" autosize></el-input>
+                                <el-input v-model="jianyi.nr" size="small" type="textarea" autosize
+                                  @blur="handleAdviceBlur(props.row, index1)"></el-input>
                               </div>
                             </div>
                           </div>
@@ -441,14 +446,15 @@
                           <div v-else>
                             <div>
                               鏍囬锛�
-                              <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize></el-input>
+                              <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize
+                                @blur="handleAdviceBlur(props.row, -1)"></el-input>
                             </div>
                             <div>
                               鍐呭锛�
-                              <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize></el-input>
+                              <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize
+                                @blur="handleAdviceBlur(props.row, -1)"></el-input>
                             </div>
                           </div>
-
 
                           <div style="margin-top: 10px;">
                             <el-button @click="shanchu(props.row)" type="danger" size="small">鍒犻櫎</el-button>
@@ -714,8 +720,7 @@
         <el-button @click="jianqians = false">鍙� 娑�</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="鏂板寮傚父缁撴灉" :visible.sync="addNewDialogVisible" width="900px" :before-close="handleAddNewClose"
-      class="custom-dialog">
+    <el-dialog title="鏂板寮傚父缁撴灉" :visible.sync="addNewDialogVisible" width="900px" class="custom-dialog">
       <el-form :model="newItem" ref="newItemForm" label-width="100px" class="custom-form">
         <el-form-item label="椤圭洰鍒嗙被" prop="parentName">
           <el-select v-model="newItem.parentName" placeholder="璇烽�夋嫨椤圭洰鍒嗙被" clearable filterable
@@ -743,7 +748,8 @@
             <el-input v-model="advice.bt" placeholder="璇疯緭鍏ュ缓璁爣棰�" clearable @focus="tan"></el-input>
           </el-form-item>
           <el-form-item label="寤鸿鍐呭" :prop="'map.' + index + '.nr'">
-            <el-input v-model="advice.nr" type="textarea" rows="3" placeholder="璇疯緭鍏ュ缓璁唴瀹�" resize="none" @focus="tan"></el-input>
+            <el-input v-model="advice.nr" type="textarea" rows="3" placeholder="璇疯緭鍏ュ缓璁唴瀹�" resize="none"
+              @focus="tan"></el-input>
           </el-form-item>
           <el-button v-if="index > 0" type="danger" size="small" @click="removeAdvice(index)"
             style="margin-left: 100px; margin-bottom: 10px;">鍒犻櫎</el-button>
@@ -759,14 +765,12 @@
       </span>
     </el-dialog>
     <el-dialog title="蹇嵎寤鸿閫夋嫨" :visible.sync="showjianyi" width="1000px" class="custom-dialog">
-      <!-- 娣诲姞绛涢�変笅鎷夋 -->
+      <!-- 鏇挎崲涓鸿緭鍏ユ -->
       <div style="margin-bottom: 15px;">
         <el-form :inline="true">
-          <el-form-item label="绉戝">
-            <el-select v-model="queryParams1.ks" placeholder="璇烽�夋嫨鎴栬緭鍏ョ瀹�" clearable filterable allow-create
-              style="width: 200px" @change="filterAdvices(true)">
-              <el-option v-for="dept in deptList" :key="dept" :label="dept" :value="dept" />
-            </el-select>
+          <el-form-item label="寤鸿鍚嶇О">
+            <el-input v-model="queryParams1.zyzd" placeholder="璇疯緭鍏ュ缓璁悕绉拌繘琛岀瓫閫�" clearable style="width: 200px"
+              @input="filterAdvices(true)" onkeydown="if(event.keyCode === 32 || event.keyCode === 13) return false;" />
           </el-form-item>
         </el-form>
       </div>
@@ -778,16 +782,14 @@
         <el-table-column label="寤鸿鍐呭" prop="jynr" align="center" />
       </el-table>
 
-
-
       <!-- 鍒嗛〉缁勪欢 -->
-       <div class="pag">
+      <div class="pag">
         <div class="pag2">
           <pagination v-show="total1 > 0" :total="total1" :page.sync="queryParams1.pageNum"
             :limit.sync="queryParams1.pageSize" @pagination="filterAdvices(false)" />
         </div>
-       </div>
-      
+      </div>
+
       <span slot="footer" class="dialog-footer">
         <el-button @click="showjianyi = false">鍙栨秷</el-button>
         <el-button type="primary" @click="applySelectedAdvice" :disabled="!selectedAdvice">纭畾</el-button>
@@ -805,6 +807,7 @@
 
 
 <script>
+import _ from 'lodash';
 import jianqianwenzhen from "@/components/jianqianwenzhen";
 import Packages from "@/components/Packages";
 import Prescription from "@/components/Prescription";
@@ -866,7 +869,6 @@
   name: "checkAll",
   data() {
     return {
-      deptList: [], // 鍘婚噸鍚庣殑绉戝鍒楄〃
       selectedAdvice: null,
       activeAdviceIndex: 0,
       advicerulesList: [],
@@ -1019,7 +1021,7 @@
       queryParams1: {
         pageNum: 1,
         pageSize: 10,
-        ks: ''
+        zyzd: ''
       },
       status1: 0, // 0灞曠ず寮傚父1灞曠ず椤圭洰鎯呭喌
       viewportHeight: 0,
@@ -1041,6 +1043,61 @@
     });
   },
   methods: {
+
+    handleAdviceBlur(row, index) {
+      // 鏋勯�� advices 鏁版嵁
+      let advicesToSubmit = [];
+
+      if (index === -1) {
+        // advices 涓虹┖锛屼娇鐢� emptyAdvice 鐨勫��
+        if (this.emptyAdvice.bt || this.emptyAdvice.nr) {
+          advicesToSubmit = [{ bt: this.emptyAdvice.bt || '', nr: this.emptyAdvice.nr || '' }];
+          // 灏� emptyAdvice 鐨勫�艰祴鍊肩粰 row.advices
+          this.$set(row, 'advices', advicesToSubmit);
+        }
+      } else {
+        // advices 涓嶄负绌猴紝鐩存帴浣跨敤 row.advices
+        advicesToSubmit = row.advices;
+      }
+
+      // 濡傛灉 advicesToSubmit 涓虹┖鎴栨病鏈夋湁鏁堟暟鎹紝涓嶆彁浜�
+      if (!advicesToSubmit || advicesToSubmit.length === 0) {
+        return;
+      }
+
+
+      const parentItem = this.yichangList.find(item =>
+        item.sone.some(soneItem => soneItem.orderDetailId === row.orderDetailId)
+      );
+
+      if (!parentItem) {
+        this.$message.error('鏈壘鍒板搴旂殑鐖剁骇椤圭洰');
+        return;
+      }
+
+      const data = {
+        tjh: this.tableAll.tjNumber, // 浣撴鍙�
+        parentName: parentItem.proName, // 鐖剁骇椤圭洰鍚嶇О
+        jcxm: row.proName, // 妫�娴嬮」鐩�
+        jcjg: row.proResult, // 妫�娴嬬粨鏋�
+        ckfw: row.stanId, // 鍙傝�冭寖鍥�
+        dw: row.proAdvice, // 鍗曚綅
+        map: advicesToSubmit, // 寤鸿鍒楄〃
+        jyjc: parentItem.jyjc, // 妫�鏌ョ被鍨嬶紙0 鎴� 1锛�
+        id: row.orderDetailId, // 褰撳墠椤圭殑 orderDetailId
+      };
+
+      addOrder1(data).then((res) => {
+        if (res.code === 200) {
+
+        } else {
+          this.$message.error('寤鸿鏇存柊澶辫触锛�' + (res.msg || '鏈煡閿欒'));
+        }
+      }).catch((error) => {
+        console.error('寤鸿鏇存柊澶辫触:', error);
+        this.$message.error('寤鸿鏇存柊澶辫触锛�' + error.message);
+      });
+    },
     handleCurrentChangeAdvice(currentRow) {
       this.selectedAdvice = currentRow; // 瀛樺偍閫変腑鐨勫缓璁」
     },
@@ -1061,47 +1118,28 @@
 
     },
     tan(event) {
+      // 鑾峰彇褰撳墠寤鸿缁勭殑绱㈠紩
       this.activeAdviceIndex = event.target.closest('.advice-group')
         ? Array.from(event.target.closest('.el-form').querySelectorAll('.advice-group'))
           .indexOf(event.target.closest('.advice-group'))
-        : 0; // 鑾峰彇褰撳墠寤鸿缁勭殑绱㈠紩
+        : 0;
 
-      // 纭繚 projectCategories 宸插姞杞�
-      if (!this.projectCategories || this.projectCategories.length === 0) {
-        cSWebGetPro(this.tjNumber).then((res) => {
-          if (res.data && Array.isArray(res.data)) {
-            this.projectCategories = res.data;
-            // 鎻愬彇鍘婚噸鍚庣殑绉戝鍒楄〃
-            this.deptList = [...new Set(this.projectCategories.map(item => item.deptName))].filter(Boolean);
-          } else {
-            this.$message.warning('鏈幏鍙栧埌椤圭洰鍒嗙被鏁版嵁');
-            this.projectCategories = [];
-            this.deptList = [];
-          }
-        }).catch((error) => {
-          console.error('鑾峰彇椤圭洰鍒嗙被澶辫触:', error);
-          this.$message.error('鑾峰彇椤圭洰鍒嗙被澶辫触');
-          this.projectCategories = [];
-          this.deptList = [];
-        });
-      } else {
-        // 濡傛灉 projectCategories 宸插姞杞斤紝鐩存帴鏇存柊 deptList
-        this.deptList = [...new Set(this.projectCategories.map(item => item.deptName))].filter(Boolean);
-      }
-
-      // 閲嶇疆鍒嗛〉鍙傛暟
+      // 閲嶇疆鍒嗛〉鍙傛暟鍜岀瓫閫夋潯浠�
       this.queryParams1.pageNum = 1;
       this.queryParams1.pageSize = 10;
+      this.queryParams1.zyzd = ''; // 娓呯┖寤鸿鍚嶇О杈撳叆妗�
+      // 绉婚櫎绉戝绛涢�夋潯浠�
+      delete this.queryParams1.ks; // 纭繚涓嶆惡甯� ks 鍙傛暟
 
-      // 鍔犺浇蹇嵎寤鸿鍒楄〃
+      // 鍔犺浇鎵�鏈夊揩鎹峰缓璁垪琛�
       this.filterAdvices();
       this.showjianyi = true;
     },
 
     // 涓嬫媺妗嗙瓫閫夊揩鎹峰缓璁紙鍖呭惈鍒嗛〉閫昏緫锛�
-    filterAdvices(resetPage = false) {
+    filterAdvices: _.debounce(function (resetPage = false) {
       if (resetPage) {
-        this.queryParams1.pageNum = 1; // 鍒囨崲绉戝鏃堕噸缃〉鐮佷负 1
+        this.queryParams1.pageNum = 1;
       }
       listAdvicerules(this.queryParams1).then((response) => {
         this.advicerulesList = response.rows;
@@ -1110,7 +1148,7 @@
         console.error('绛涢�夊揩鎹峰缓璁け璐�:', error);
         this.$message.error('绛涢�夊揩鎹峰缓璁け璐�');
       });
-    },
+    }, 300),
     submitNewItem() {
       const data = {
         tjh: this.tableAll.tjNumber, // 浣撴鍙凤紝浠� tableAll 涓幏鍙�
@@ -1164,19 +1202,9 @@
     },
 
     handleCategoryChange(value) {
-
-      const selectedCategory = this.projectCategories.find(item => item.proName === value);
-      console.log(this.projectCategories, selectedCategory);
-      this.queryParams1.ks = selectedCategory.deptName || '';
       if (value) {
         this.newItem.jcxm = value; // 灏嗛�夋嫨鐨勯」鐩垎绫昏祴鍊肩粰妫�娴嬮」鐩�
       }
-    },
-
-    handleAddNewClose(done) {
-      // this.$confirm('纭畾鍏抽棴鏂板绐楀彛鍚楋紵鏈繚瀛樼殑鏁版嵁灏嗕涪澶便��')
-      //   .then(() => done())
-      //   .catch(() => { });
     },
 
     // 娣诲姞鏂扮殑寤鸿缁�
@@ -1191,19 +1219,24 @@
         this.$message.warning('鑷冲皯淇濈暀涓�缁勫缓璁�');
       }
     },
+
     shanchu(row) {
+      // 绂佺敤鍒犻櫎鎸夐挳锛岄槻姝㈤噸澶嶇偣鍑�
+      this.isdisabled = true;
+
+      // 璋冪敤鍚庣鎺ュ彛鍒犻櫎鏁版嵁
       shanchu({
         id: row.orderDetailId,
       }).then((res) => {
-        if (res.code === 200) {  // 娣诲姞鎴愬姛鍝嶅簲妫�鏌�
+        if (res.code === 200) {  // 鍚庣鍒犻櫎鎴愬姛
           // 鎵惧埌瑕佸垹闄ら」鎵�鍦ㄧ殑鐖剁骇鏁扮粍
           const parentItem = this.yichangList.find(item =>
-            item.sone.some(soneItem => soneItem.proId === row.proId)
+            item.sone.some(soneItem => soneItem.orderDetailId === row.orderDetailId)
           );
 
           if (parentItem) {
             // 浠庣埗绾х殑 sone 鏁扮粍涓垹闄よ椤�
-            const index = parentItem.sone.findIndex(item => item.proId === row.proId);
+            const index = parentItem.sone.findIndex(item => item.orderDetailId === row.orderDetailId);
             if (index > -1) {
               parentItem.sone.splice(index, 1);
 
@@ -1215,22 +1248,40 @@
                 }
               }
 
-              // 鏇存柊 expends 鏁扮粍
+              // 鏇存柊 expends 鏁扮粍锛岀‘淇濆睍寮�鐘舵�佹纭�
               this.getExpends();
+
+              // 寮哄埗鍒锋柊琛ㄦ牸
+              this.$forceUpdate();
 
               this.$message.success('鍒犻櫎鎴愬姛');
 
-              // 鑷姩鏇存柊寮傚父缁撴灉鏁版嵁
-              this.yichangjieguo();
+              // 鍙�夛細璋冪敤 yichangjieguo 鍒锋柊鏁版嵁锛堝鏋滈渶瑕佷笌鍚庣鍚屾锛�
+              // this.yichangjieguo();
+            } else {
+              this.$message.error('鏈壘鍒拌鍒犻櫎鐨勫瓙椤�');
             }
+          } else {
+            this.$message.error('鏈壘鍒拌鍒犻櫎鐨勭埗椤�');
           }
         } else {
-          this.$message.error('鍒犻櫎澶辫触');
+          this.$message.error('鍚庣鍒犻櫎澶辫触锛�' + (res.msg || '鏈煡閿欒'));
         }
       }).catch((error) => {
         console.error('鍒犻櫎澶辫触:', error);
-        this.$message.error('鍒犻櫎鎿嶄綔澶辫触');
+        this.$message.error('鍒犻櫎鎿嶄綔澶辫触锛�' + error.message);
+      }).finally(() => {
+        // 鎭㈠鍒犻櫎鎸夐挳鐘舵��
+        this.isdisabled = false;
       });
+    },
+
+    // 纭繚 getExpends 鏂规硶瀛樺湪锛岀敤浜庢洿鏂板睍寮�鐘舵��
+    getExpends() {
+      this.expends = this.yichangList.flatMap(item =>
+        item.sone.map(soneItem => soneItem.orderDetailId)
+      );
+      console.log('Updated expends:', this.expends);
     },
     getConfigKey() {
       getconfigKey("sfkqtwbg").then((res) => {
@@ -1244,12 +1295,7 @@
       });
     },
     //璁剧疆table涓殑鎵╁睍椤癸紝灞曞紑鐨刬d锛屾澶勬垜闇�瑕佸叏閮ㄥ睍寮�
-    getExpends() {
-      // 閫氳繃flatMap灏嗘瘡涓猻one鏁扮粍涓殑ID鎻愬彇鍑烘潵锛屽苟杩斿洖涓�涓墎骞冲寲鐨処D鏁扮粍
-      this.expends = this.yichangList.flatMap((item) =>
-        item.sone.map((subItem) => subItem.proId)
-      );
-    },
+
 
     getRowKeys(row) {
       return row.orderDetailId;
@@ -1276,8 +1322,7 @@
       }).then((res) => {
         this.yichangList = res.data;
 
-        console.log(this.yichangList, 3232);
-        this.getExpends();
+
 
         this.yichangList.forEach((item) => {
           item.sone.forEach((soneItem) => {
@@ -1404,7 +1449,7 @@
                 loading.close();
               }, 3000);
               this.$message({
-                message: "鎶ュ憡姝e湪鐢熸垚锛岃涓ゅ垎閽熷悗棰勮锛�",
+                message: "璇锋挙鍥為噸鏂扮敓鎴愭姤鍛�",
                 type: "error"
               });
             } else {
@@ -1567,8 +1612,14 @@
       if (this.textarea1 == null) {
         this.textarea1 = "";
       }
+      console.log(data)
       data.forEach((item) => {
-        this.textarea1 += item.advice;
+        if(item.advice){
+          this.textarea1 += item.advice;
+        }else{
+          this.textarea1 += item.jynr;
+        }
+        
       });
     },
     proposalChange() {
@@ -2420,6 +2471,7 @@
   margin-top: 15px;
   /* 涓庤〃鏍肩殑闂磋窛 */
 }
+
 .pag2 {
   width: auto;
   /* 绉婚櫎鍥哄畾瀹藉害锛岃鍒嗛〉鍣ㄦ牴鎹唴瀹硅嚜閫傚簲 */
@@ -2428,11 +2480,15 @@
   text-align: center;
   /* 纭繚鍒嗛〉鍣ㄥ唴閮ㄥ厓绱犲眳涓� */
 }
-@media (max-width: 768px) {
+
+@media (max-width: 750px) {
   .pag2 {
-    min-width: 300px;    /* 绉诲姩绔渶灏忓搴� */
-    overflow-x: auto;    /* 鍏佽妯悜婊氬姩 */
-    padding: 10px;       /* 绉诲姩绔唴杈硅窛 */
+    min-width: 300px;
+    /* 绉诲姩绔渶灏忓搴� */
+    overflow-x: auto;
+    /* 鍏佽妯悜婊氬姩 */
+    padding: 10px;
+    /* 绉诲姩绔唴杈硅窛 */
   }
 }
 

--
Gitblit v1.8.0