From 5f5425c1be29b82205f19b7779cda67cfcc3a6e5 Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期三, 19 六月 2024 17:53:26 +0800
Subject: [PATCH] qxtj

---
 src/views/hosp/order/index.vue |  380 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 216 insertions(+), 164 deletions(-)

diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue
index 94af7c0..880c529 100644
--- a/src/views/hosp/order/index.vue
+++ b/src/views/hosp/order/index.vue
@@ -96,6 +96,16 @@
           >瀵煎嚭</el-button
         >
       </el-col>
+
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          size="mini"
+          @click="handleRevoke"
+          :disabled="single"
+          >鎾ら攢绛惧埌</el-button
+        >
+      </el-col>
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -106,6 +116,7 @@
           >琛ュ綍椤圭洰</el-button
         >
       </el-col>
+
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -412,7 +423,7 @@
     <el-dialog
       :title="title"
       :visible.sync="Projectopen"
-      width="1500px"
+      width="1100px"
       style="height: 860px"
       append-to-body
     >
@@ -426,103 +437,93 @@
           <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
           </el-input>
           <div class="tab3">
-            <div class="outside1">
-              <el-tree
-                class="filter-tree"
-                v-loading="loading"
-                :data="Treedata"
-                :props="defaultProps"
-                show-checkbox
-                node-key="proId"
-                @check-change="handleCurrentChecked"
-                :default-checked-keys="checkedkey"
-                :filter-node-method="filterNode"
-                ref="tree"
-              >
-              </el-tree>
-            </div>
+            <el-tree
+              class="filter-tree"
+              v-loading="loading"
+              :data="Treedata"
+              :props="defaultProps"
+              show-checkbox
+              node-key="proId"
+              @check="handleCurrentChecked"
+              :default-checked-keys="checkedkey"
+              :filter-node-method="filterNode"
+              ref="tree"
+            >
+            </el-tree>
           </div>
         </el-col>
-        <el-col :span="4">
+        <el-col :span="5">
           <div
             style="text-align: center; margin-bottom: 10px; margin-top: 10px"
           >
-            椤圭洰鍒楄〃
+            鏄庣粏椤圭洰鍒楄〃
           </div>
           <div class="tab3">
-            <div class="outside1">
-              <el-tree
-                class="filter-tree"
-                v-loading="loading"
-                :data="TreedataList"
-                node-key="proId"
-                :props="defaultProps"
-                :filter-node-method="filterNode"
-                show-checkbox
-                @check-change="handleCurrentChecked1"
-                :default-checked-keys="checkedListkey"
-              >
-              </el-tree>
-            </div>
+            <el-tree
+              class="filter-tree"
+              v-loading="loading"
+              :data="TreedataList"
+              node-key="proId"
+              :props="defaultProps"
+              :filter-node-method="filterNode"
+              show-checkbox
+              @check-change="handleCurrentChecked1"
+              :default-checked-keys="checkedListkey"
+            >
+            </el-tree>
           </div>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="11">
           <div class="grid-content bg-purple">
-            <div style="text-align: center; margin-bottom: 10px">
+            <div
+              style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+            >
               宸查�夐」鐩垪琛�
             </div>
-            <div
-              style="
-                padding: 0px 6px;
-                border: 1px solid #e6ebf5;
-                max-height: 420px;
-                overflow: auto;
-              "
+            <el-table
+              :data="DataList"
+              border
+              style="width: 100%"
+              height="400"
+              :span-method="objectSpanMethod"
             >
-              <el-table
-                :data="DataList"
-                border
-                style="width: 100%"
-                height="250"
-              >
-                <el-table-column prop="propinName" label="鐖堕」">
-                </el-table-column>
-                <el-table-column prop="proName" label="椤圭洰" width="180">
-                </el-table-column>
-                <el-table-column prop="proPrice" label="鍘熶环">
-                </el-table-column>
+              <el-table-column prop="propinName" label="妫�鏌ラ」鐩�">
+              </el-table-column>
+              <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px">
+              </el-table-column>
+              <el-table-column prop="proPrice" label="鍘熶环" width="56px">
+              </el-table-column>
 
-                <el-table-column
-                  label="鎿嶄綔"
-                  align="center"
-                  fixed="right"
-                  class-name="small-padding fixed-width"
-                  width="80px"
-                >
-                  <template slot-scope="scope">
-                    <el-button
-                      size="mini"
-                      type="text"
-                      icon="el-icon-delete"
-                      @click="handleDelete(scope.row)"
-                      >鍒犻櫎</el-button
-                    >
-                  </template>
-                </el-table-column>
-              </el-table>
-              <el-collapse v-model="activeName" accordion v-if="list1">
-                <div>
-                  <el-collapse-item title="璇烽�夋嫨椤圭洰">
-                    <el-table :data="DataList" border style="width: 100%">
-                      <el-table-column prop="proName" label="椤圭洰" width="180">
-                      </el-table-column>
-                      <el-table-column prop="ordPrice" label="鍘熶环">
-                      </el-table-column>
-                    </el-table>
-                  </el-collapse-item>
-                </div>
-              </el-collapse>
-            </div>
+              <el-table-column
+                label="鎿嶄綔"
+                align="center"
+                fixed="right"
+                class-name="small-padding fixed-width"
+                width="50px"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    @click="handleDelete(scope.row)"
+                    title="鍒犻櫎"
+                  ></el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-collapse v-model="activeName" accordion v-if="list1">
+              <div>
+                <el-collapse-item title="璇烽�夋嫨椤圭洰">
+                  <el-table :data="DataList" border style="width: 100%">
+                    <el-table-column prop="proName" label="椤圭洰" width="180">
+                    </el-table-column>
+                    <el-table-column prop="ordPrice" label="鍘熶环">
+                    </el-table-column>
+                  </el-table>
+                </el-collapse-item>
+              </div>
+            </el-collapse>
             <template>
               <el-form :model="form">
                 <el-form-item label="浣撴绫诲瀷" prop="tjType">
@@ -593,7 +594,7 @@
     <el-dialog
       :title="title"
       :visible.sync="Projectopen1"
-      width="1500px"
+      width="1100px"
       style="height: 860px"
       append-to-body
     >
@@ -607,28 +608,26 @@
           <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
           </el-input>
           <div class="tab3">
-            <div class="outside1">
-              <el-tree
-                class="filter-tree"
-                v-loading="loading"
-                :data="Treedata"
-                :props="defaultProps"
-                show-checkbox
-                node-key="proId"
-                @check="handleCurrentChecked"
-                :default-checked-keys="checkedkey"
-                :filter-node-method="filterNode"
-                ref="tree"
-              >
-              </el-tree>
-            </div>
+            <el-tree
+              class="filter-tree"
+              v-loading="loading"
+              :data="Treedata"
+              :props="defaultProps"
+              show-checkbox
+              node-key="proId"
+              @check="handleCurrentChecked"
+              :default-checked-keys="checkedkey"
+              :filter-node-method="filterNode"
+              ref="tree"
+            >
+            </el-tree>
           </div>
         </el-col>
-        <el-col :span="4">
+        <el-col :span="5">
           <div
             style="text-align: center; margin-bottom: 10px; margin-top: 10px"
           >
-            椤圭洰鍒楄〃
+            鏄庣粏椤圭洰鍒楄〃
           </div>
           <div class="tab3">
             <div class="outside1">
@@ -647,63 +646,65 @@
             </div>
           </div>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="11">
           <div class="grid-content bg-purple">
-            <div style="text-align: center; margin-bottom: 10px">
+            <div
+              style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+            >
               宸查�夐」鐩垪琛�
             </div>
-            <div
-              style="
-                padding: 0px 6px;
-                border: 1px solid #e6ebf5;
-                max-height: 420px;
-                overflow: auto;
-              "
-            >
-              <el-table
-                :data="DataList"
-                border
-                style="width: 100%"
-                height="250"
-              >
-                <el-table-column prop="propinName" label="妫�鏌ラ」鐩�">
-                </el-table-column>
-                <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="180">
-                </el-table-column>
-                <el-table-column prop="proPrice" label="鍘熶环">
-                </el-table-column>
 
-                <el-table-column
-                  label="鎿嶄綔"
-                  align="center"
-                  fixed="right"
-                  class-name="small-padding fixed-width"
-                  width="80px"
-                >
-                  <template slot-scope="scope">
-                    <el-button
-                      size="mini"
-                      type="text"
-                      icon="el-icon-delete"
-                      @click="handleDelete(scope.row)"
-                      title="鍒犻櫎"
-                    ></el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-              <el-collapse v-model="activeName" accordion v-if="list1">
-                <div>
-                  <el-collapse-item title="璇烽�夋嫨椤圭洰">
-                    <el-table :data="DataList" border style="width: 100%">
-                      <el-table-column prop="proName" label="椤圭洰" width="180">
-                      </el-table-column>
-                      <el-table-column prop="ordPrice" label="鍘熶环">
-                      </el-table-column>
-                    </el-table>
-                  </el-collapse-item>
-                </div>
-              </el-collapse>
-            </div>
+            <el-table
+              :data="DataList"
+              border
+              style="width: 100%"
+              height="400"
+              :span-method="objectSpanMethod"
+            >
+              <el-table-column prop="propinName" label="妫�鏌ラ」鐩�">
+              </el-table-column>
+              <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px">
+              </el-table-column>
+              <el-table-column prop="proPrice" label="鍘熶环" width="56px">
+              </el-table-column>
+
+              <el-table-column
+                label="鎿嶄綔"
+                align="center"
+                fixed="right"
+                class-name="small-padding fixed-width"
+                width="50px"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    @click="handleDelete(scope.row)"
+                    title="鍒犻櫎"
+                  ></el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-collapse v-model="activeName" accordion v-if="list1">
+              <div>
+                <el-collapse-item title="璇烽�夋嫨椤圭洰">
+                  <el-table
+                    :data="DataList"
+                    border
+                    style="width: 100%"
+                    height="400"
+                    :span-method="objectSpanMethod"
+                  >
+                    <el-table-column prop="proName" label="椤圭洰" width="180">
+                    </el-table-column>
+                    <el-table-column prop="ordPrice" label="鍘熶环">
+                    </el-table-column>
+                  </el-table>
+                </el-collapse-item>
+              </div>
+            </el-collapse>
+
             <template>
               <el-form :model="form">
                 <el-form-item label="浣撴绫诲瀷" prop="tjType">
@@ -819,6 +820,7 @@
   getPdf,
   getOrderList,
   getNewDateList,
+  revokeTjOrderByTjNum,
 } from "@/api/hosp/order";
 import moment from "moment";
 import { getwater } from "@/api/hosp/customer";
@@ -880,7 +882,7 @@
       loading: true,
       // 閫変腑鏁扮粍
       ids: [],
-      dataObj:{},
+      dataObj: {},
       // 闈炲崟涓鐢�
       single: true,
       // 闈炲涓鐢�
@@ -1075,6 +1077,33 @@
           this.$message.error("璇ョ敤鎴锋殏鏃犻」鐩紒");
         }
       });
+    },
+
+    handleRevoke() {
+      this.$confirm(
+        "鎮ㄧ‘璁よ鎾ら攢锛�",
+        "纭淇℃伅",
+        {
+          distinguishCancelAndClose: true,
+          confirmButtonText: "纭",
+          cancelButtonText: "鍙栨秷",
+        }
+      )
+        .then(() => {
+          revokeTjOrderByTjNum(this.tjnumbers).then((res) => {
+            
+            this.$modal.msgSuccess(res.msg);
+            this.getList();
+          });
+        })
+        .catch((action) => {
+          if (action === "cancel") {
+            this.$message({
+              type: "warning",
+              message: "宸插彇娑�",
+            });
+          }
+        });
     },
     /** 鐐瑰嚮鏄剧ず浣撴鎶ュ憡鎶ヨ〃*/
     // viewReport(row) {
@@ -1293,9 +1322,10 @@
       this.Projectopen1 = true;
       this.title = "琛ュ綍椤圭洰";
     },
+
     // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐�
     handleCurrentChecked(data, checked, checkedNodes) {
-      this.dataObj = data
+      this.dataObj = data;
       if (checked.checkedNodes.length != 0) {
         this.$refs.tree.setCheckedKeys([data.proId]);
         let proId = data.proId;
@@ -1325,7 +1355,6 @@
           this.TreedataList = res.data.list;
           this.checkedListkey = [];
         });
-        
       }
     },
 
@@ -1357,11 +1386,11 @@
       } else if (checked == true) {
         this.DataList.push(data);
         this.DataList.forEach((item1) => {
-              if (item1.proParentId == this.dataObj.proId) {
-                item1.propinName = this.dataObj.proName;
-              }
-            });
-        this.spliceData()
+          if (item1.proParentId == this.dataObj.proId) {
+            item1.propinName = this.dataObj.proName;
+          }
+        });
+        this.spliceData();
         this.TotalPrice1 = 0;
         this.DataList.forEach((item1) => {
           this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
@@ -1380,6 +1409,28 @@
           });
         }
       });
+    },
+
+    //  // 榛樿鎺ュ彈鍥涗釜鍊� { 褰撳墠琛岀殑鍊�, 褰撳墠鍒楃殑鍊�, 琛岀殑涓嬫爣, 鍒楃殑涓嬫爣 }
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      console.log(row, column, rowIndex, columnIndex);
+      let fields = ["propinName"];
+      let cellValue = row[column.property];
+      if (cellValue && fields.includes(column.property)) {
+        let prevRow = this.DataList[rowIndex - 1];
+        let nextRow = this.DataList[rowIndex + 1];
+        if (prevRow && prevRow[column.property] === cellValue) {
+          return { rowspan: 0, colspan: 0 };
+        } else {
+          let countRowspan = 1;
+          while (nextRow && nextRow[column.property] === cellValue) {
+            nextRow = this.DataList[++countRowspan + rowIndex];
+          }
+          if (countRowspan > 1) {
+            return { rowspan: countRowspan, colspan: 1 };
+          }
+        }
+      }
     },
 
     // 鏀惰垂鎸夐挳
@@ -1552,7 +1603,7 @@
 // }
 
 .outside {
-  width: 700px;
+  width: 500px;
   display: flex;
   margin-top: 8px;
 }
@@ -1560,6 +1611,7 @@
 .tab3 {
   max-height: 500px;
   overflow-y: auto;
+  border: 1px solid #d9d9d9;
 }
 
 .outside1 {

--
Gitblit v1.8.0