From ba753bf8afd9e3da6e5cedca2213e44e03636191 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期四, 17 四月 2025 11:15:18 +0800
Subject: [PATCH] 1

---
 src/views/hosp/order/index.vue |  995 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 581 insertions(+), 414 deletions(-)

diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue
index 9d7b6c4..cc0e9fa 100644
--- a/src/views/hosp/order/index.vue
+++ b/src/views/hosp/order/index.vue
@@ -156,7 +156,7 @@
         <el-step title="宸插鏍�"></el-step>
         <el-step title="鐢熸垚鎶ュ憡"></el-step>
         <el-step title="鎶ュ憡鏍告敹"></el-step>
-        <el-step title="宸插嚭鎶ュ憡"></el-step>
+        <el-step title="宸叉墦鍗�"></el-step>
       </el-steps>
     </div>
 
@@ -177,6 +177,7 @@
           type="primary"
           size="mini"
           @click="handleRevoke"
+          :loading="isLoading"
           :disabled="single"
           >鎾ら攢绛惧埌</el-button
         >
@@ -242,6 +243,15 @@
           >寮哄埗鎾ら攢</el-button
         >
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          size="mini"
+          @click="ResumeAppointment"
+          :disabled="multiple"
+          >鎭㈠棰勭害</el-button
+        >
+      </el-col>
       <right-toolbar
         :showSearch.sync="showSearch"
         @queryTable="getList"
@@ -253,6 +263,7 @@
         border
         v-loading="loading"
         :data="orderList"
+        ref="tableRef"
         @selection-change="handleSelectionChange"
       >
         <el-table-column
@@ -572,321 +583,6 @@
       append-to-body
       :close-on-click-modal="false"
     >
-      <el-tabs
-        type="border-card"
-        style="height: 640px; margin: 0 10px; width: 100%"
-        @tab-click="handleClick"
-        v-model="activeNames"
-      >
-        <el-tab-pane label="缁勫悎" name="first">
-          <div class="tab8">
-            <el-row :gutter="20" style="width: 100%">
-              <el-col :span="6">
-                <div
-                  style="
-                    text-align: center;
-                    margin-bottom: 10px;
-                    margin-top: 10px;
-                  "
-                >
-                  椤圭洰鍒楄〃
-                </div>
-                <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterage">
-                </el-input>
-                <div class="tab3">
-                  <el-tree
-                    class="filter-tree"
-                    v-loading="loading"
-                    :data="packageList"
-                    :props="defaultProp"
-                    show-checkbox
-                    node-key="id"
-                    @check="handlepackage"
-                    :default-checked-keys="checkedkeys"
-                    :filter-node-method="filterpackage"
-                    ref="treas"
-                    :render-content="renderContents"
-                  >
-                  </el-tree>
-                </div>
-              </el-col>
-              <el-col :span="6">
-                <div
-                  style="
-                    text-align: center;
-                    margin-bottom: 10px;
-                    margin-top: 10px;
-                  "
-                >
-                  鏄庣粏椤圭洰鍒楄〃
-                </div>
-                <div class="tab3">
-                  <el-tree
-                    class="filter-tree"
-                    v-loading="loading"
-                    :data="packagedataList"
-                    node-key="proId"
-                    :props="defaultpackProps"
-                    :render-content="renderContent"
-                  >
-                  </el-tree>
-                </div>
-              </el-col>
-              <el-col :span="11">
-                <div class="grid-content bg-purple">
-                  <div
-                    style="
-                      text-align: center;
-                      margin-bottom: 10px;
-                      margin-top: 10px;
-                    "
-                  >
-                    宸查�夐」鐩垪琛�
-                  </div>
-                  <el-table
-                    :data="Datalists"
-                    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"
-                      class-name="small-padding fixed-width"
-                      width="50px"
-                    >
-                      <template slot-scope="scope">
-                        <el-button
-                          size="mini"
-                          type="text"
-                          icon="el-icon-delete"
-                          @click="handleDel(scope.row)"
-                          title="鍒犻櫎"
-                        ></el-button>
-                      </template>
-                    </el-table-column>
-                  </el-table>
-
-                  <!-- <h3 style="font-weight: 600">鍚堣锛歿{ marryalls }}鍏�</h3> -->
-                </div>
-              </el-col>
-            </el-row>
-          </div>
-        </el-tab-pane>
-        <el-tab-pane label="鍗曢」" name="third">
-          <el-row type="flex" class="row-bg" justify="space-around">
-            <el-col :span="6">
-              <div
-                style="
-                  text-align: center;
-                  margin-bottom: 10px;
-                  margin-top: 10px;
-                "
-              >
-                椤圭洰鍒楄〃
-              </div>
-              <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText">
-              </el-input>
-              <div class="tab3">
-                <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"
-                  :render-content="renderContent"
-                >
-                </el-tree>
-              </div>
-            </el-col>
-            <el-col :span="5">
-              <div
-                style="
-                  text-align: center;
-                  margin-bottom: 10px;
-                  margin-top: 10px;
-                "
-              >
-                鏄庣粏椤圭洰鍒楄〃
-              </div>
-              <div class="tab3">
-                <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"
-                  :render-content="renderContent"
-                >
-                </el-tree>
-              </div>
-            </el-col>
-            <el-col :span="11">
-              <div class="grid-content bg-purple">
-                <div
-                  style="
-                    text-align: center;
-                    margin-bottom: 10px;
-                    margin-top: 10px;
-                  "
-                >
-                  宸查�夐」鐩垪琛�
-                </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="sl" label="鏁伴噺" width="56px">
-                  </el-table-column>
-                    <el-table-column prop="proPrice" label="鍘熶环" width="56px">
-                  </el-table-column>
-                  <el-table-column
-                    prop="proName"
-                    label="鏄庣粏椤圭洰"
-                    width="260px"
-                  >
-                  </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%">
-                    <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">
-                      <div class="type">
-                        {{ { 1: "鍥㈤槦", 2: "涓汉", 3: "鍥綋绁�" }[form.tjType] }}
-                      </div>
-
-                      <!-- <el-radio-group v-model="form.tjType">
-                        <el-radio :label="1">鍥㈤槦</el-radio>
-                        <el-radio :label="2">涓汉</el-radio>
-                      </el-radio-group> -->
-                    </el-form-item>
-                  </el-form>
-                </template>
-
-                <div class="outside">
-                  <el-form :inline="true" class="outside1">
-                    <el-form-item label="鍘熶环">
-                      <el-input
-                        placeholder="鍘熶环"
-                        :value="TotalPrice1"
-                        disabled
-                        style="width: 90px"
-                      ></el-input>
-                    </el-form-item>
-                    <el-form-item label="鎶樻墸璁惧畾">
-                      <el-input
-                        style="width: 90px"
-                        type="number"
-                        v-model="discount"
-                        :value="discount"
-                      ></el-input>
-                    </el-form-item>
-                    <el-form-item label="搴斾粯閲戦">
-                      <el-input
-                        placeholder="搴斾粯閲戦"
-                        :value="TotalPrice1 * (discount / 10)"
-                        style="width: 90px"
-                      ></el-input>
-                    </el-form-item>
-                    <el-form-item label="浠樻绫诲瀷">
-                      <el-select
-                        style="width: 120px"
-                        v-model="payType"
-                        placeholder="璇烽�夋嫨浠樻绫诲瀷"
-                        @change="onPayTypeChange"
-                      >
-                        <el-option
-                          v-for="dict in dict.type.dict_pay_type"
-                          :key="dict.value"
-                          :label="dict.label"
-                          :value="dict.value"
-                        ></el-option>
-                      </el-select>
-                    </el-form-item>
-                    <el-form-item>
-                      <el-button
-                        type="primary"
-                        @click="submitPrice"
-                        :disabled="confirm"
-                        style="margin-top: 34px"
-                        >鎻愪氦</el-button
-                      >
-                    </el-form-item>
-                  </el-form>
-                </div>
-              </div>
-            </el-col>
-          </el-row>
-        </el-tab-pane>
-      </el-tabs>
-    </el-dialog>
-
-    <!-- 娣诲姞琛ュ綍椤圭洰 -->
-    <el-dialog
-      :title="title"
-      :visible.sync="Projectopen1"
-      width="1100px"
-      style="height: 860px"
-      append-to-body
-      :close-on-click-modal="false"
-    >
       <div class="box">
         <div class="box1">
           <div
@@ -926,7 +622,7 @@
                         :props="defaultProp"
                         show-checkbox
                         node-key="id"
-                        @check="handlepackage"
+                        @check-change="handlepackage"
                         :default-checked-keys="checkedkeys"
                         :filter-node-method="filterpackage"
                         ref="treas"
@@ -987,7 +683,7 @@
                         :props="defaultProps"
                         show-checkbox
                         node-key="proId"
-                        @check="handleCurrentChecked"
+                        @check-change="handleCurrentChecked"
                         :default-checked-keys="checkedkey"
                         :filter-node-method="filterNode"
                         ref="tree"
@@ -1109,13 +805,246 @@
           <el-table
             :data="DataList3"
             border
-            style="width: 100%"
+            style="width: 100%; table-layout: fixed"
             height="560"
             :span-method="objectspanmethod"
           >
-            <el-table-column prop="propinName" label="妫�鏌ラ」鐩�">
+            <el-table-column
+              prop="propinName"
+              label="妫�鏌ラ」鐩�"
+              width="200px"
+              :show-overflow-tooltip="true"
+            >
             </el-table-column>
-            <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="200px">
+            <el-table-column
+              prop="proName"
+              label="鏄庣粏椤圭洰"
+              width="200px"
+              :show-overflow-tooltip="true"
+            >
+            </el-table-column>
+            <el-table-column prop="sl" label="鏁伴噺" width="56px">
+            </el-table-column>
+            <el-table-column prop="proPrice" label="鍘熶环" width="56px">
+            </el-table-column>
+
+            <el-table-column
+              label="鎿嶄綔"
+              align="center"
+              class-name="small-padding fixed-width"
+              width="50px"
+            >
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-delete"
+                  @click="handleDel(scope.row)"
+                  title="鍒犻櫎"
+                ></el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+
+          <!-- <h3 style="font-weight: 600">鍚堣锛歿{ marryalls }}鍏�</h3> -->
+        </div>
+      </div>
+      <el-form
+        :model="form"
+        inline
+        style="display: flex; justify-content: space-between; margin-top: 20px"
+      >
+        <!-- 浣撴绫诲瀷 -->
+        <el-form-item label="浣撴绫诲瀷" prop="tjType" style="display: flex">
+          <div class="type">
+            {{ { 1: "鍥㈤槦", 2: "涓汉", 3: "鍥綋绁�" }[form.tjType] }}
+          </div>
+        </el-form-item>
+
+        <!-- 鍘熶环 -->
+        <el-form-item label="鍘熶环" style="display: flex">
+          <el-input
+            placeholder="鍘熶环"
+            :value="TotalPrice1"
+            disabled
+            style="width: 90px"
+          ></el-input>
+        </el-form-item>
+
+        <!-- 鎶樻墸璁惧畾 -->
+        <el-form-item label="鎶樻墸" style="display: flex">
+          <el-input
+            style="width: 90px"
+            type="number"
+            v-model="discount"
+            :value="discount"
+          ></el-input>
+        </el-form-item>
+
+        <!-- 搴斾粯閲戦 -->
+        <el-form-item label="搴斾粯" style="display: flex">
+          <el-input
+            placeholder="搴斾粯閲戦"
+            :value="TotalPrice1 * (discount / 10)"
+            style="width: 90px"
+          ></el-input>
+        </el-form-item>
+
+        <!-- 浠樻绫诲瀷 -->
+        <el-form-item label="浠樻绫诲瀷" prop="payType" style="display: flex">
+          <el-select
+            style="width: 120px"
+            v-model="payType"
+            placeholder="璇烽�夋嫨浠樻绫诲瀷"
+            @change="onPayTypeChange"
+          >
+            <el-option
+              v-for="dict in dict.type.dict_pay_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+
+        <!-- 缁撶畻鏂瑰紡 -->
+        <el-form-item label="缁撶畻鏂瑰紡" prop="jsType" style="display: flex">
+          <el-select
+            v-model="jsType"
+            placeholder="璇烽�夋嫨缁撶畻鏂瑰紡"
+            style="width: 130px"
+            clearable
+          >
+            <el-option
+              v-for="dict in dict.type.reservation_pay_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+
+        <!-- 鎻愪氦鎸夐挳 -->
+        <el-form-item style="display: flex">
+          <el-button
+            type="primary"
+            :loading="isSubmit1"
+            @click="submitPrice1"
+            :disabled="confirm"
+          >
+            鎻愪氦
+          </el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+
+    <!-- 娣诲姞琛ュ綍椤圭洰 -->
+    <el-dialog
+      :title="title"
+      :visible.sync="Projectopen1"
+      width="1100px"
+      style="height: 860px"
+      append-to-body
+      :close-on-click-modal="false"
+    >
+      <div class="box">
+        <div class="box1">
+          <div
+            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+          >
+            椤圭洰閫夋嫨
+          </div>
+          <el-tabs
+            type="border-card"
+            style="height: 560px; margin: 0 10px; width: 100%"
+            @tab-click="handleClick"
+            v-model="activeNames"
+          >
+            <el-tab-pane label="缁勫悎" name="first">
+              <div class="tab8">
+                <el-row :gutter="20" style="width: 100%">
+                  <el-col :span="22">
+                    <el-input
+                      placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+                      v-model="filterage"
+                    >
+                    </el-input>
+                    <div class="tab3">
+                      <el-tree
+                        class="filter-tree"
+                        v-loading="loading"
+                        :data="packageList"
+                        :props="defaultProp"
+                        show-checkbox
+                        node-key="id"
+                        @check-change="handlepackage"
+                        :default-checked-keys="checkedkeys"
+                        :filter-node-method="filterpackage"
+                        ref="treas"
+                        :render-content="renderContents"
+                      >
+                      </el-tree>
+                    </div>
+                  </el-col>
+                </el-row>
+              </div>
+            </el-tab-pane>
+            <el-tab-pane label="鍗曢」" name="third">
+              <div class="tab8">
+                <el-row type="flex" class="row-bg" justify="space-around">
+                  <el-col :span="22">
+                    <el-input
+                      placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+                      v-model="filterText"
+                    >
+                    </el-input>
+                    <div class="tab3">
+                      <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"
+                        :render-content="renderContent"
+                      >
+                      </el-tree>
+                    </div>
+                  </el-col>
+                </el-row>
+              </div>
+            </el-tab-pane>
+          </el-tabs>
+        </div>
+
+        <div class="grid-content bg-purple">
+          <div style="text-align: center; margin-bottom: 10px; margin-top: 9px">
+            宸查�夐」鐩垪琛�
+          </div>
+          <el-table
+            :data="DataList3"
+            border
+            style="width: 100%; table-layout: fixed"
+            height="560"
+            :span-method="objectspanmethod"
+          >
+            <el-table-column
+              prop="propinName"
+              label="妫�鏌ラ」鐩�"
+              width="200px"
+              :show-overflow-tooltip="true"
+            >
+            </el-table-column>
+            <el-table-column
+              prop="proName"
+              label="鏄庣粏椤圭洰"
+              width="200px"
+              :show-overflow-tooltip="true"
+            >
             </el-table-column>
             <el-table-column prop="sl" label="鏁伴噺" width="56px">
             </el-table-column>
@@ -1221,7 +1150,12 @@
 
         <!-- 鎻愪氦鎸夐挳 -->
         <el-form-item style="display: flex">
-          <el-button type="primary" @click="submitPrice1" :disabled="confirm">
+          <el-button
+            type="primary"
+            :loading="isSubmit1"
+            @click="submitPrice1"
+            :disabled="confirm"
+          >
             鎻愪氦
           </el-button>
         </el-form-item>
@@ -1310,81 +1244,64 @@
       </div> -->
     </el-dialog>
 
-    <!-- 娣诲姞鎴栦慨鏀逛綋妫�璁板綍瀵硅瘽妗� -->
     <el-dialog
       :title="title"
       :visible.sync="open"
-      width="950px"
+      width="1400px"
       append-to-body
       :close-on-click-modal="false"
+      class="custom-dialog"
     >
       <el-tabs v-model="activeName1" type="card">
-        <!-- <el-tab-pane label="璁㈠崟娴佹按" name="first">
-          <el-table :data="numberList" style="width: 100%">
-            <el-table-column prop="proName" label="椤圭洰/鑰楁潗" width="300">
-            </el-table-column>
-            <el-table-column prop="price" label="鍗曚环" width="300">
-            </el-table-column>
-            <el-table-column prop="count" label="鏁伴噺" width="300">
-            </el-table-column>
-          </el-table>
-          <el-table :data="bill" style="width: 100%">
-            <el-table-column prop="copeWith" label="搴斾粯" width="180">
-            </el-table-column>
-            <el-table-column prop="discount" label="鎶樻墸" width="180">
-            </el-table-column>
-            <el-table-column prop="paidIn" label="瀹炰粯" width="180">
-            </el-table-column>
-            <el-table-column prop="payType" label="浠樻鏂瑰紡" width="180">
-              <template slot-scope="scope">
-                <span v-if="scope.row.payType == '0'">鐜伴噾鏀粯</span>
-                <span v-if="scope.row.payType == '1'">鍒峰崱鏀粯</span>
-                <span v-if="scope.row.payType == '2'">鏀粯瀹濇敮浠�</span>
-                <span v-if="scope.row.payType == '3'">寰俊鏀粯</span>
-                <span v-if="scope.row.payType == '4'">浜戦棯浠樻敮浠�</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="payStasus" label="浠樻鐘舵��" width="180">
-              <template slot-scope="scope">
-                <span v-if="scope.row.payStasus == '0'">鏈粯娆�</span>
-                <span v-if="scope.row.payStasus == '1'">宸蹭粯娆�</span>
-                <span v-if="scope.row.payStasus == '2'">閫�璐�</span>
-                <span v-if="scope.row.payStasus == '3'">棰勪粯娆�</span>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-tab-pane> -->
         <el-tab-pane label="椤圭洰姹囨��" name="second" style="height: 400px">
-          <el-table :data="huizongList" style="width: 100%" max-height="200">
+          <el-table :data="huizongList" style="width: 100%" max-height="350">
             <el-table-column
               align="center"
               type="index"
               label="搴忓彿"
               width="50"
-            >
-            </el-table-column>
-            <el-table-column align="center" prop="parent_pro_name" label="椤圭洰">
-            </el-table-column>
-            <el-table-column align="center" prop="ks" label="绉戝">
-            </el-table-column>
-            <el-table-column align="center" prop="price" label="璐圭敤鍚堣">
-            </el-table-column>
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="parent_pro_name"
+              label="椤圭洰"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="ks"
+              label="绉戝"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="price"
+              label="璐圭敤鍚堣"
+            ></el-table-column>
           </el-table>
           <h3>浠樻璇︽儏</h3>
           <el-table :data="bill" style="width: 100%; margin-top: 10px">
-            <el-table-column align="center" prop="copeWith" label="搴斾粯">
-            </el-table-column>
-            <el-table-column align="center" prop="discount" label="鎶樻墸">
-            </el-table-column>
-            <el-table-column align="center" prop="paidIn" label="瀹炰粯">
-            </el-table-column>
+            <el-table-column
+              align="center"
+              prop="copeWith"
+              label="搴斾粯"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="discount"
+              label="鎶樻墸"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="paidIn"
+              label="瀹炰粯"
+            ></el-table-column>
           </el-table>
         </el-tab-pane>
-        <el-tab-pane label="鏄庣粏椤圭洰" name="third" style="height: 350px">
+        <el-tab-pane label="鏄庣粏椤圭洰" name="third" style="height: 450px">
+          <!-- 绉婚櫎 overflow-y: auto -->
           <el-table
             :data="infoList"
-            style="width: 100%"
-            max-height="330"
+            style="width: 100"
+            max-height="500"
             :span-method="objectSpanMethod1"
           >
             <el-table-column
@@ -1392,25 +1309,38 @@
               type="index"
               label="搴忓彿"
               width="50"
-            >
-            </el-table-column>
-            <el-table-column align="center" prop="parent_pro_name" label="鐖堕」">
-            </el-table-column>
-            <el-table-column align="center" prop="pro_name" label="瀛愰」">
-            </el-table-column>
-            <el-table-column align="center" prop="danjia" label="鍗曚环">
-            </el-table-column>
-            <el-table-column align="center" prop="num" label="鏁伴噺">
-            </el-table-column>
-            <el-table-column align="center" prop="zongjia" label="鎬讳环">
-            </el-table-column>
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="parent_pro_name"
+              label="鐖堕」"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="pro_name"
+              label="瀛愰」"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="danjia"
+              label="鍗曚环"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="num"
+              label="鏁伴噺"
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              prop="zongjia"
+              label="鎬讳环"
+            ></el-table-column>
             <el-table-column
               align="center"
               prop="time"
               label="寮�鍗曟椂闂�"
               width="180"
-            >
-            </el-table-column>
+            ></el-table-column>
           </el-table>
         </el-tab-pane>
       </el-tabs>
@@ -1617,6 +1547,7 @@
   getOrderList,
   getNewDateList,
   revokeTjOrderByTjNum,
+  huifuyuyuejilu,
   getTransitionInfo,
   getBlproByTjh,
   revokeBlProByBldhAndTjh,
@@ -1632,6 +1563,7 @@
   getaddtTransition,
   getProParentIdDxList,
   getProSonDxList,
+  getaddtTransition1,
 } from "@/api/system/tijian";
 import {
   SubmitCompany,
@@ -1659,6 +1591,9 @@
       DataList3: [],
       bldhid: "",
       budadaozhen: false,
+      isLoading: false,
+      isSubmit: false,
+      isSubmit1: false,
       huizongList: [],
       DataLists: [],
       infoList: [],
@@ -1734,6 +1669,7 @@
       activeNames: "first",
       // 闈炲涓鐢�
       multiple: true,
+      tjNUms: [],
       // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
       userId: "",
@@ -2084,15 +2020,17 @@
       });
     },
 
-    handleRevoke() {
-      this.$confirm("鎮ㄧ‘璁よ鎾ら攢锛�", "纭淇℃伅", {
+    ResumeAppointment() {
+      this.isLoading = true;
+      this.$confirm("鎮ㄧ‘璁よ鎭㈠棰勭害锛�", "纭淇℃伅", {
         distinguishCancelAndClose: true,
         confirmButtonText: "纭",
         cancelButtonText: "鍙栨秷",
       })
         .then(() => {
-          revokeTjOrderByTjNum(this.tjnumbers).then((res) => {
-            this.$modal.msgSuccess("鎾ら攢鎴愬姛");
+          huifuyuyuejilu(this.tjNUms).then((res) => {
+            this.$modal.msgSuccess("鎭㈠鎴愬姛");
+            // this.isLoading = false;
             this.getList();
           });
         })
@@ -2103,6 +2041,38 @@
               message: "宸插彇娑�",
             });
           }
+        })
+        .finally(() => {
+          // 涓嶈鎿嶄綔鎴愬姛杩樻槸澶辫触锛岄兘浼氭墽琛�
+          this.isLoading = false;
+        });
+    },
+
+    handleRevoke() {
+      this.isLoading = true;
+      this.$confirm("鎮ㄧ‘璁よ鎾ら攢锛�", "纭淇℃伅", {
+        distinguishCancelAndClose: true,
+        confirmButtonText: "纭",
+        cancelButtonText: "鍙栨秷",
+      })
+        .then(() => {
+          revokeTjOrderByTjNum(this.tjnumbers).then((res) => {
+            this.$modal.msgSuccess("鎾ら攢鎴愬姛");
+            // this.isLoading = false;
+            this.getList();
+          });
+        })
+        .catch((action) => {
+          if (action === "cancel") {
+            this.$message({
+              type: "warning",
+              message: "宸插彇娑�",
+            });
+          }
+        })
+        .finally(() => {
+          // 涓嶈鎿嶄綔鎴愬姛杩樻槸澶辫触锛岄兘浼氭墽琛�
+          this.isLoading = false;
         });
     },
     /** 鐐瑰嚮鏄剧ず浣撴鎶ュ憡鎶ヨ〃*/
@@ -2271,6 +2241,7 @@
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
       let tjNUms = selection.map((item) => item.tjNumber);
+      this.tjNUms = selection.map((item) => item.tjNumber);
       selection.forEach((item) => {
         this.orderIds = item.orderId;
         this.tjnumbers = item.tjNumber;
@@ -2443,6 +2414,8 @@
         // this.marryalls = 0;
         // this.Datalists = [];
         this.checkedkeys = [];
+
+        this.DataList3 = [];
         getZhList().then((response) => {
           if (response.data) {
             this.packageList = response.data;
@@ -2451,25 +2424,107 @@
         });
       } else {
         // this.TotalPrice1 = 0;
-        this.checkedkey = [];
+        this.checkedkeys = [];
         // this.DataList = [];
+        this.Datalists = [];
+        this.DataList3 = [];
         this.getDataList();
         // if (this.marryalls != 0) {
         //   this.TotalPrice1 += this.marryalls;
         // }
       }
     },
-
     handlepackage(data, checked, checkedNodes) {
+      if (checked == true) {
+        // this.$refs.treas.setCheckedKeys([data.id]);
+        let datas = {
+          zhId: data.id,
+        };
+
+        getlistByZhId(datas).then((res) => {
+          this.packagedataList = res.data.tjProjectList;
+          for (var i = 0; i < this.packagedataList.length; i++) {
+            let proId = this.packagedataList[i].proId;
+            getProSonDxList(proId).then((res) => {
+              this.TreedataList = res.data.list;
+              this.TreedataList.forEach((item) => {
+                this.Datalists.push(item);
+              });
+
+              // 鍚堝苟 Datalists 鍜� DataList 鍒� DataList3
+              this.DataList3 = this.DataList.concat(this.Datalists);
+
+              // 娓呯┖绱姞鍣�
+              this.marryalls = 0;
+              this.TotalPrice1 = 0;
+
+              // 閲嶆柊璁$畻浠锋牸
+              this.DataList3.forEach((item) => {
+                console.log(item.proPrice);
+                this.TotalPrice1 += item.proPrice * item.sl;
+                this.marryalls += item.proPrice * item.sl;
+              });
+
+              // 涓烘瘡涓」鐩坊鍔� propinName
+              this.Datalists.forEach((item1) => {
+                this.packagedataList.forEach((item3) => {
+                  if (item1.proParentId == item3.proId) {
+                    item1.propinName = item3.proName;
+                  }
+                });
+              });
+            });
+          }
+        });
+      } else if (checked == false) {
+        let datas = {
+          zhId: data.id,
+        };
+
+        this.marryalls = 0;
+
+        // 娓呯┖ Datalists 鍜� DataList3
+        this.Datalists = [];
+        this.DataList3 = [...this.DataList]; // 閲嶆柊璁剧疆 DataList3锛屼粎鍖呭惈鍘熷 DataList
+
+        getlistByZhId(datas).then((res) => {
+          this.packagedataList = res.data.tjProjectList;
+          for (var i = 0; i < this.packagedataList.length; i++) {
+            let proId = this.packagedataList[i].proId;
+            getProSonDxList(proId).then((res) => {
+              this.TreedataList = res.data.list;
+              this.checkedListkey = this.checkedListkey.filter(
+                (id) => id !== proId
+              );
+
+              // 浠� DataList3 涓Щ闄ょ浉鍏崇殑瀛愰」
+              this.DataList3 = this.DataList3.filter(
+                (item) => item.proParentId !== proId
+              );
+
+              // 鏇存柊鎬讳环鏍�
+              this.TotalPrice1 = 0; // 娓呯┖浠锋牸
+              this.DataList3.forEach((item) => {
+                this.TotalPrice1 += item.proPrice;
+              });
+            });
+          }
+        });
+      }
+    },
+
+    /* handlepackage(data, checked, checkedNodes) {
+      console.log(checked, 3333);
+
       if (checked.checkedNodes.length != 0) {
         this.$refs.treas.setCheckedKeys([data.id]);
         let datas = {
           zhId: data.id,
         };
-        
+
         getlistByZhId(datas).then((res) => {
           this.packagedataList = res.data.tjProjectList;
-          
+
           for (var i = 0; i < this.packagedataList.length; i++) {
             let proId = this.packagedataList[i].proId;
             getProSonDxList(proId).then((res) => {
@@ -2483,7 +2538,7 @@
                     this.marryalls += item1.proPrice;
                     // this.TotalPrice1 = this.marryalls;
                     this.TotalPrice1 = 0;
-                    console.log(this.DataList3, 9999999999);
+
                     if (this.DataList3.length != 0) {
                       this.DataList3.forEach((item) => {
                         console.log(item.proPrice);
@@ -2503,12 +2558,12 @@
         });
       } else if (checked.checkedNodes.length == 0) {
       }
-    },
+    }, */
 
     renderContent(h, { node, data, store }) {
       return (
         <span class="custom-tree-node">
-          聽 <span>{node.label}</span>
+          <span>{node.label}</span>
           <span>({data.proPrice}鍏�)</span>
         </span>
       );
@@ -2525,6 +2580,12 @@
       this.orderId = row.orderId;
       this.cusId = row.tjCusIdCard;
       this.userId = row.userId;
+      console.log(row, 666);
+      this.$nextTick(() => {
+        this.$refs.tableRef.clearSelection(); // 娓呴櫎鎵�鏈夐�変腑
+        this.$refs.tableRef.toggleRowSelection(row, true); // 閫変腑褰撳墠琛�
+      });
+
       this.customer = {
         cusIdcard: row.tjCusIdCard,
         cusName: row.tjCustomerName,
@@ -2610,9 +2671,10 @@
     },
 
     // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐�
-    handleCurrentChecked(data, checked, checkedNodes) {
+    /*  handleCurrentChecked(data, checked, checkedNodes) {
       this.dataObj = data;
-      if (checked.checkedNodes.length != 0) {
+      this.checkedObj = checked;
+      if (checked == true) {
         this.$refs.tree.setCheckedKeys([data.proId]);
         let proId = data.proId;
         getProSonDxList(proId).then((res) => {
@@ -2631,7 +2693,6 @@
           this.TotalPrice1 = 0;
           if (this.DataList3.length != 0) {
             this.DataList3.forEach((item) => {
-              
               this.TotalPrice1 += item.proPrice * item.sl;
             });
           }
@@ -2646,11 +2707,91 @@
           //   }
           // }
         });
-      } else if (checked.checkedNodes.length == 0) {
+      } else if (checked == false) {
         let proId = data.proId;
         getProSonDxList(proId).then((res) => {
           this.TreedataList = res.data.list;
           this.checkedListkey = [];
+          this.TreedataList.forEach((item) => {
+            item.disabled = true;
+          });
+          this.DataList3.forEach((item, index) => {
+            if (item.proParentId == this.dataObj.proId) {
+              this.DataList3.splice(index, this.TreedataList.length);
+            }
+          });
+
+          // 鎵嬪姩鏇存柊鎬讳环鏍�
+          this.TotalPrice1 = 0;
+          this.DataList3.forEach((item, index) => {
+            this.TotalPrice1 += item.proPrice * item.sl;
+          });
+        });
+      }
+    }, */
+    handleCurrentChecked(data, checked, checkedNodes) {
+      this.dataObj = data;
+      this.checkedObj = checked;
+
+      if (checked === true) {
+        // this.$refs.tree.setCheckedKeys([data.proId]);
+        let proId = data.proId;
+        getProSonDxList(proId).then((res) => {
+          this.TreedataList = res.data.list;
+
+          this.TreedataList.forEach((item) => {
+            // item.disabled = true;
+            // this.checkedListkey.push(item.proId);
+            if (!this.checkedListkey.includes(item.proId)) {
+              this.checkedListkey.push(item.proId);
+            }
+            this.Datalists.push(item);
+
+            this.DataList3.push(item);
+
+            this.spliceData();
+            this.DataList3.forEach((item1) => {
+              this.TotalPrice1 += item1.proPrice * item1.sl;
+              if (item1.proParentId == data.proId) {
+                item1.propinName = data.proName;
+                item1.propinPrice = this.dataObj.proPrice;
+              }
+            });
+          });
+
+          // 鏇存柊鎬讳环鏍�
+          this.TotalPrice1 = 0;
+          this.DataList3.forEach((item) => {
+            this.TotalPrice1 += item.proPrice * item.sl;
+          });
+        });
+      } else if (checked === false) {
+        // 褰撳彇娑堥�変腑鏃�
+        let proId = data.proId;
+        getProSonDxList(proId).then((res) => {
+          this.TreedataList = res.data.list;
+
+          // 閬嶅巻 TreedataList 骞剁Щ闄ょ浉鍏崇殑瀛愰」 ID
+          this.TreedataList.forEach((item) => {
+            this.checkedListkey = this.checkedListkey.filter(
+              (id) => id !== item.proId
+            );
+          });
+
+          this.Datalists = this.Datalists.filter(
+            (item) => item.proParentId !== proId
+          );
+
+          // 浠� DataList3 涓Щ闄ょ浉鍏崇殑瀛愰」
+          this.DataList3 = this.DataList3.filter(
+            (item) => item.proParentId !== proId
+          );
+
+          // 鏇存柊鎬讳环鏍�
+          this.TotalPrice1 = 0;
+          this.DataList3.forEach((item) => {
+            this.TotalPrice1 += item.proPrice * item.sl;
+          });
         });
       }
     },
@@ -2676,9 +2817,7 @@
             this.DataList.splice(index, 1);
             this.TotalPrice1 = 0;
             this.DataList.forEach((item1) => {
-                          
               this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
-              
             });
             if (this.marryalls != 0) {
               this.TotalPrice1 += this.marryalls;
@@ -2695,9 +2834,9 @@
         this.spliceData();
         this.TotalPrice1 = 0;
         this.DataList.forEach((item1) => {
-          console.log(item1.proPrice,3322);
-          console.log(this.TotalPrice1,1122);
-          
+          console.log(item1.proPrice, 3322);
+          console.log(this.TotalPrice1, 1122);
+
           this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
         });
         if (this.marryalls != 0) {
@@ -2824,6 +2963,7 @@
     // 鏀惰垂鎸夐挳
     submitPrice() {
       this.proIds = [];
+      this.isSubmit = true;
       if (this.DataList.length != 0) {
         this.DataList.forEach((item) => {
           this.proIds.push(item.proId);
@@ -2859,6 +2999,7 @@
             payType: this.payType,
           };
           getwater(data).then((res) => {
+            this.isSubmit = false;
             this.$modal.msgSuccess("鎻愪氦鎴愬姛");
             this.mobanId = res.data.mobanId;
             this.waterId = res.data.waterId;
@@ -2874,6 +3015,7 @@
     // 鏀惰垂鎸夐挳
     submitPrice1() {
       this.proIds = [];
+      this.isSubmit1 = true;
       if (this.DataList.length != 0) {
         this.DataList.forEach((item) => {
           this.proIds.push(item.proId);
@@ -2888,7 +3030,9 @@
         cusId: this.cusIds,
         proIds: this.proIds,
       };
-      getaddtTransition(data).then((response) => {
+      getaddtTransition1(data).then((response) => {
+        console.log(123456789);
+
         if (response.code === 200) {
           // this.DataList3 = [];
           //   this.DataList = [];
@@ -2903,12 +3047,12 @@
             discount,
             copeWith,
             tjType,
-            payStasus:this.jsType,
+            payStasus: this.jsType,
             orderId: this.orderIds,
             tjProIds: this.proIds,
             payType: this.payType,
           };
-          
+
           getwater(data).then((res) => {
             this.$modal.msgSuccess("鎻愪氦鎴愬姛");
             this.mobanId = res.data.mobanId;
@@ -2918,8 +3062,11 @@
             const params = { viewNum, tjnumber };
             this.$tab.openPage("鏀舵灏忕エ", "/report/charge", params);
             this.Projectopen1 = false;
+            this.Projectopen = false;
+            this.isSubmit1 = false;
           });
         }
+        this.isSubmit1 = false;
       });
     },
 
@@ -2982,6 +3129,26 @@
 };
 </script>
 <style lang="scss" scoped>
+.custom-dialog {
+  /* 鑷畾涔夊脊鍑烘鐨勬渶灏忛珮搴� */
+  min-height: 600px; /* 浠庨粯璁ら珮搴﹀鍔犲埌 600px锛屽彲浠ユ牴鎹渶瑕佽皟鏁� */
+}
+
+/* 璋冩暣 el-tabs 鐨勫唴瀹瑰尯鍩熼珮搴� */
+::v-deep .el-tabs__content {
+  min-height: 500px; /* 纭繚閫夐」鍗″唴瀹瑰尯鍩熸湁瓒冲楂樺害 */
+}
+
+/* 璋冩暣瀵硅瘽妗嗙殑涓讳綋閮ㄥ垎 */
+::v-deep .el-dialog__body {
+  padding: 20px;
+}
+
+/* 鍙�夛細璋冩暣 footer 鐨勬牱寮� */
+.dialog-footer {
+  padding: 10px 20px;
+  text-align: right;
+}
 .pag {
   width: 100%;
   display: flex;

--
Gitblit v1.8.0