From 26a983e0c22f1fe54c91c66c2b52888858e52cd1 Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期四, 31 七月 2025 17:57:28 +0800
Subject: [PATCH] qx

---
 src/views/system/package/index.vue | 1301 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 785 insertions(+), 516 deletions(-)

diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 43c40ca..4984162 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -24,21 +24,21 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="濂楅鍒嗙被" prop="categoryId">
+      <el-form-item label="浣撴绫诲埆" prop="tjCategory">
         <el-select
-            v-model="queryParams.categoryId"
-            placeholder="璇烽�夋嫨鐘舵��"
-            style="width: 200px"
-            filterable
-            clearable
-          >
-            <el-option
-              v-for="dict in categoryList"
-              :key="dict.id"
-              :label="dict.name"
-              :value="dict.id"
-            ></el-option>
-          </el-select>
+          v-model="queryParams.tjCategory"
+          placeholder="璇烽�夋嫨鐘舵��"
+          style="width: 200px"
+          filterable
+          clearable
+        >
+          <el-option
+            v-for="dict in dict.type.dict_tjtype"
+            :key="dict.id"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -103,10 +103,6 @@
       ></right-toolbar>
     </el-row>
 
-    <!-- 
-    element-loading-background="rgba(0, 0, 0, 0.1)"
-    element-loading-spinner="el-icon-loading"
-        element-loading-text="姝e湪鍔犺浇涓�..." -->
     <template>
       <el-table
         v-loading="loading"
@@ -129,7 +125,20 @@
           prop="newID"
           fixed
         />
-        <!-- <el-table-column label="缂栧彿" align="center" prop="pacId" /> -->
+        <el-table-column
+          label="浣撴绫诲埆"
+          width="100px"
+          align="center"
+          prop="categoryNames"
+          fixed
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.dict_tjtype"
+              :value="scope.row.tjCategory"
+            />
+          </template>
+        </el-table-column>
         <el-table-column
           label="濂楅鍚嶇О"
           align="center"
@@ -138,19 +147,32 @@
           fixed
         />
         <el-table-column
+          label="鍘熶环"
+          width="80px"
+          align="center"
+          prop="price"
+          fixed
+        ></el-table-column>
+        <el-table-column
+          label="鎶樻墸"
+          width="80px"
+          align="center"
+          prop="limits"
+          fixed
+        ></el-table-column>
+        <el-table-column
+          label="鐜颁环"
+          width="80px"
+          align="center"
+          prop="newPrice"
+          fixed
+        ></el-table-column>
+        <el-table-column
           label="鍗曢」鍒楄〃"
           align="center"
           prop="allProName"
           width="1200px"
-        >
-        </el-table-column>
-        <!-- <el-table-column
-          label="椤圭洰鏄庣粏"
-          align="center"
-          prop="allSonName"
-          :show-overflow-tooltip="true"
-        > 
-        </el-table-column>-->
+        ></el-table-column>
         <el-table-column
           label="濂楅鎻忚堪"
           align="center"
@@ -161,26 +183,6 @@
             <div class="showInline">{{ scope.row.pacRemark }}</div>
           </template>
         </el-table-column>
-        <!-- <el-table-column
-          label="鍥剧墖"
-          align="center"
-          prop="pacPhone"
-          width="100"
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <image-preview :src="scope.row.pacPhone" :width="50" :height="50" />
-          </template>
-        </el-table-column> -->
-        <el-table-column label="浠锋牸" width="80px" align="center" prop="price">
-        </el-table-column>
-   
-        <el-table-column
-          label="濂楅鍒嗙被"
-          width="100px"
-          align="center"
-          prop="categoryNames"
-        ></el-table-column>
         <el-table-column
           label="鍏抽敭瀛�"
           width="110px"
@@ -193,17 +195,13 @@
           align="center"
           prop="isOnSale"
         >
-        <template slot-scope="scope">
-            <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isOnSale"/>
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_yes_no"
+              :value="scope.row.isOnSale"
+            />
           </template>
         </el-table-column>
-        <!-- <el-table-column
-          label="璇︾粏浠嬬粛"
-          :show-overflow-tooltip="true"
-          width="100px"
-          align="center"
-          prop="detail"
-        ></el-table-column> -->
         <el-table-column
           label="鎺掑簭"
           width="50px"
@@ -215,12 +213,6 @@
           width="90px"
           align="center"
           prop="retailPrice"
-        ></el-table-column>
-        <el-table-column
-          label="鍘熶环"
-          width="90px"
-          align="center"
-          prop="counterPrice"
         ></el-table-column>
         <el-table-column
           label="宸插敭鏁伴噺"
@@ -268,8 +260,6 @@
               v-hasPermi="['system:package:remove']"
               title="鍒犻櫎"
             ></el-button>
-            <!-- <el-button size="mini" type="text" icon="el-icon-circle-check" @click="handleSeach(scope.row)"
-              v-hasPermi="['system:package:Seach']" title="濂楅璇︽儏"></el-button> -->
           </template>
         </el-table-column>
       </el-table>
@@ -291,8 +281,9 @@
     <el-dialog
       :title="title"
       :visible.sync="open"
-      width="1000px"
+      width="1400px"
       append-to-body
+      :close-on-click-modal="false"
     >
       <el-form
         ref="form"
@@ -301,24 +292,25 @@
         label-width="100px"
         :inline="true"
       >
-        <!-- <div class="dialo">
-        <div class="dialo1"> -->
         <el-form-item label="濂楅鍚嶇О" prop="pacName">
+          <span
+            slot="label"
+            style="display: inline-block; border-bottom: 2px solid blue"
+            @click="handlePackage"
+          >
+            濂楅鍚嶇О
+          </span>
           <el-input
             v-model="form.pacName"
             placeholder="璇疯緭鍏ュ椁愬悕绉�"
-            style="width: 200px"
+            style="width: 150px"
           />
         </el-form-item>
         <el-form-item label="濂楅鐘舵��" prop="pacStatus">
-          <!-- <el-radio-group v-model="form.pacStatus">
-              <el-radio :label="0">鍚敤</el-radio>
-              <el-radio :label="1">鍋滅敤</el-radio>
-            </el-radio-group> -->
           <el-select
             v-model="form.pacStatus"
             placeholder="璇烽�夋嫨鐘舵��"
-            style="width: 200px"
+            style="width: 150px"
             filterable
             clearable
           >
@@ -330,37 +322,90 @@
             ></el-option>
           </el-select>
         </el-form-item>
-
-        <el-form-item label="鍟嗗搧绫荤洰" prop="categoryId">
-          <!-- <el-input
-            v-model="form.createId"
-            placeholder="璇疯緭鍏ュ晢鍝佺被鐩�"
-            style="width: 200px"
-          /> -->
+        <el-form-item label="浣撴绫诲埆" prop="tjCategory">
           <el-select
-            v-model="form.categoryId"
-            placeholder="璇烽�夋嫨鍟嗗搧绫荤洰"
-            style="width: 200px"
-            @change="shangpin"
+            v-model="form.tjCategory"
+            placeholder="璇烽�夋嫨浣撴绫诲埆"
+            style="width: 150px"
             filterable
             clearable
           >
             <el-option
-              v-for="item in categoryList"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id"
+              v-for="dict in dict.type.dict_tjtype"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
             ></el-option>
           </el-select>
         </el-form-item>
-
-
+        <el-form-item label="鏄惁涓婃灦" prop="isOnSale">
+          <el-select
+            v-model="form.isOnSale"
+            placeholder="璇烽�夋嫨鏄惁涓婃灦"
+            style="width: 140px"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="dict in dict.type.sys_yes_no"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎺掑簭" prop="sort">
+          <el-input
+            v-model="form.sort"
+            placeholder="璇疯緭鍏ユ帓搴�"
+            style="width: 150px"
+          />
+        </el-form-item>
+        <el-form-item label="灏忕▼搴忎环鏍�" prop="retailPrice">
+          <el-input
+            v-model="form.retailPrice"
+            placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸"
+            style="width: 150px"
+          />
+        </el-form-item>
+        <el-form-item label="鍘熶环" prop="pics">
+          <el-input
+            v-model="pics"
+            placeholder="璇疯緭鍏ュ師浠�"
+            style="width: 150px"
+            type="number"
+          />
+        </el-form-item>
+        <el-form-item label="鎶樻墸">
+          <el-input-number
+            style="width: 150px"
+            v-model="youhui"
+            :precision="2"
+            :step="0.1"
+            :max="10"
+            :min="0.1"
+            @change="debounceNumberChange"
+            :debounce="3000"
+          ></el-input-number>
+        </el-form-item>
+        <el-form-item label="鐜颁环" prop="xianprice">
+          <el-input
+            v-model="form.xianprice"
+            placeholder="鐜颁环"
+            clearable
+            style="width: 140px"
+            @input="changeXianjia"
+            type="number"
+            :debounce="3000"
+            min="0"
+          />
+        </el-form-item>
         <el-form-item label="鍏抽敭瀛�" prop="keywords">
           <el-select
             multiple
             v-model="form.keywords"
             placeholder="璇烽�夋嫨鍏抽敭瀛�"
-            style="width: 200px"
+            style="width: 160px"
             @change="sel"
             filterable
             clearable
@@ -373,198 +418,163 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="鏄惁涓婃灦" prop="isOnSale">
-          <!-- <el-radio-group v-model="form.pacStatus">
-              <el-radio :label="0">鍚敤</el-radio>
-              <el-radio :label="1">鍋滅敤</el-radio>
-            </el-radio-group> -->
-          <el-select
-            v-model="form.isOnSale"
-            placeholder="璇烽�夋嫨鏄惁涓婃灦"
-            style="width: 200px"
-            filterable
-            clearable
-          >
-            <el-option
-              v-for="dict in dict.type.sys_yes_no"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        
-        <el-form-item label="鎺掑簭" prop="sort">
-          <el-input
-            v-model="form.sort"
-            placeholder="璇疯緭鍏ユ帓搴�"
-            style="width: 200px"
-          />
-        </el-form-item>
-        <el-form-item label="灏忕▼搴忎环鏍�" prop="retailPrice">
-          <el-input
-            v-model="form.retailPrice"
-            placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸"
-            style="width: 200px"
-          />
-        </el-form-item>
-        <el-form-item label="鍘熶环" prop="counterPrice">
-          <el-input
-            v-model="form.counterPrice"
-            placeholder="璇疯緭鍏ュ師浠�"
-            style="width: 200px"
-          />
-        </el-form-item>
-        <el-form-item label="濂楅鎻忚堪" prop="pacRemark">
-          <el-input
-            type="textarea"
-            v-model="form.pacRemark"
-            placeholder="璇疯緭鍏ュ椁愭弿杩�"
-            style="width: 820px"
-            rows="2"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="璇︾粏浠嬬粛" prop="detail">
-          <!-- <el-input
-            v-model="form.detail"
-            placeholder="璇疯緭鍏ヨ缁嗕粙缁�"
-            style="width: 200px"
-          /> -->
-          <editor v-model="form.detail" :min-height="192" />
-        </el-form-item>
-        <!-- </div> -->
-        <div class="dialo2">
-          <el-form-item label="鍥剧墖">
-            <image-upload v-model="form.pacPhone" />
-          </el-form-item>
+        <div v-if="!isCollapsed" style="display: flex">
+          <div>
+            <el-form-item label="濂楅鎻忚堪" prop="pacRemark">
+              <el-input
+                type="textarea"
+                v-model="form.pacRemark"
+                placeholder="璇疯緭鍏ュ椁愭弿杩�"
+                style="width: 670px"
+                rows="2"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="璇︾粏浠嬬粛" prop="detail">
+              <editor
+                v-model="form.detail"
+                :min-height="192"
+                style="width: 670px"
+              />
+            </el-form-item>
+          </div>
+          <div class="dialo2">
+            <el-form-item label="鍥剧墖">
+              <image-upload v-model="form.pacPhone" />
+            </el-form-item>
+          </div>
         </div>
-        <!-- </div> -->
       </el-form>
-
-      <el-button
-        type="primary"
-        plain
-        size="mini"
-        icon="el-icon-plus"
-        @click="addmembers()"
-        >鏂板</el-button
-      >
-      <el-table
-        v-loading="loading"
-        :data="form.tjProjectList"
-        @selection-change="handleSelectionChange"
-        border
-        max-height="275"
-        style="margin: 10px 0"
-      >
-        <el-table-column label="搴忓彿" align="center" type="index" />
-        <el-table-column
-          label="椤圭洰鍚嶇О"
-          align="center"
-          prop="proName"
-          width="180px"
-        >
-          <template slot-scope="scope">
-            <el-select
-              filterable
-              v-model="scope.row.proName"
-              placeholder="璇烽�夋嫨椤圭洰鍚嶇О"
-              @change="getSelectValue"
+      <el-button type="primary" plain size="mini" @click="toggleCollapse">{{
+        isCollapsed ? "灞曞紑" : "鏀惰捣"
+      }}</el-button>
+      <el-row style="display: flex; width: 1300px">
+        <el-col>
+          <div
+            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
+          >
+            椤圭洰鍒楄〃
+          </div>
+          <el-input
+            placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+            @input="handleFilterInput"
+            v-model="queryParams1.nr"
+            clearable
+          />
+          <div class="tab3" style="height: 365px">
+            <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-option
-                v-for="(item, index) in allList"
-                :key="index"
-                :label="item.proName"
-                :value="item.proName"
+            </el-tree>
+            <pagination
+              small
+              v-show="total1 > 0"
+              :total="total1"
+              :page.sync="queryParams1.page"
+              :limit.sync="queryParams1.pageSize"
+              @pagination="getDataList"
+            />
+          </div>
+        </el-col>
+        <el-col>
+          <div class="grid-content bg-purple">
+            <div
+              style="
+                text-align: center;
+                margin-bottom: 10px;
+                margin-top: 10px;
+                margin-left: 8%;
+              "
+            >
+              宸查�夐」鐩垪琛�
+            </div>
+            <el-table
+              :data="DataList"
+              border
+              style="width: 90%; margin-left: 20px"
+              height="400"
+              :span-method="objectSpanMethod"
+            >
+              <el-table-column prop="proName" label="妫�鏌ラ」鐩�">
+              </el-table-column>
+              <el-table-column
+                prop="priceOrd"
+                label="鍘熶环"
+                align="center"
+                width="80px"
               >
-              </el-option>
-            </el-select>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="椤圭洰鏄庣粏"
-          align="center"
-          prop="allSonProName"
-          width="400px"
-          :show-overflow-tooltip="true"
-        >
-        </el-table-column>
-        <el-table-column
-          label="鍘熶环(鍏�)"
-          align="center"
-          prop="proPrice"
-          width="80px"
-        />
-        <el-table-column
-          label="鐜颁环(鍏�)"
-          align="center"
-          prop="priceNow"
-          width="80px"
-        >
-          <template slot-scope="scope">
-            <el-input
-              v-model="scope.row.priceNow"
-              autocomplete="off"
-              placeholder="璇疯緭鍏ュ唴瀹�"
-            ></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鎿嶄綔"
-          fixed="right"
-          align="center"
-          class-name="small-padding fixed-width"
-        >
-          <template slot-scope="scope">
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-circle-plus-outline"
-              @click="addmembers(scope.row)"
-              v-hasPermi="['system:package:edit']"
-              title="鏂板琛�"
-            ></el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-delete"
-              @click.native.prevent="Delete(scope.$index)"
-              v-hasPermi="['hosp:consumables:remove']"
-              title="鍒犻櫎"
-            ></el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-
+              </el-table-column>
+              <el-table-column label="鎶樻墸" width="100px">
+                <template slot-scope="scope">
+                  <el-input
+                    v-model.number="scope.row.limits"
+                    @input="calculateDiscount(scope.row)"
+                    placeholder="杈撳叆鎶樻墸"
+                    size="small"
+                    type="number"
+                    min="0"
+                    step="0.1"
+                    max="10"
+                  >
+                  </el-input>
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="priceNow"
+                label="鐜颁环"
+                width="80px"
+                align="center"
+              >
+              </el-table-column>
+              <el-table-column label="鎿嶄綔" align="center" width="80px">
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    @click="handleDelete1(scope.row)"
+                    title="鍒犻櫎"
+                  >
+                  </el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+            <h4 style="font-weight: 600; padding-left: 20px">
+              涓�鍏遍�変腑{{ DataList.length }}椤癸紝鍚堣锛歿{ form.xianprice }}鍏�
+            </h4>
+          </div>
+        </el-col>
+      </el-row>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
-
-    <!-- 濂楅璇︽儏 -->
-    <!-- <el-dialog :title="title" :visible.sync="Seachopen" width="500px" append-to-body>
-      <template>
-        <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
-        <div style="margin: 15px 0px; width: 60px"></div>
-        <el-checkbox-group v-model="newproName" @change="handleCheckedCitiesChange">
-          <el-checkbox style="margin: 15px 0px; width: 180px" v-for="item in allList" :label="item.proName"
-            :key="item.proId">{{ item.proName }}</el-checkbox>
-        </el-checkbox-group>
-
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitcheckbox">纭� 瀹�</el-button>
-          <el-button @click="cancel">鍙� 娑�</el-button>
-        </div>
-      </template>
-    </el-dialog> -->
+    <Packages ref="aaa" @add="handleChanges" />
   </div>
 </template>
 
 <script>
+import Packages from "@/components/Packages";
 import { listCategory } from "@/api/mall/category";
 import { listKeyword } from "@/api/mall/keyword";
 import {
+  getProParentIdDxList,
+  search,
+  getProSonDxList,
+} from "@/api/system/package";
+import {
+  getPacList,
+  getPacInFo,
   listPackage,
   getPackage,
   delPackage,
@@ -574,63 +584,90 @@
   updateStatus,
   getAllList,
   updateProject,
+  getPacTjProjectList,
+  saveOreditTjPacNew,
 } from "@/api/system/package";
 import { Message } from "element-ui";
+import Big from "big.js";
+
 export default {
   name: "Package",
-  dicts: ["sys_normal_disable", "sys_yes_no"],
+  dicts: ["sys_normal_disable", "sys_yes_no", "dict_tjtype"],
+  components: { Packages },
   data() {
     return {
-      categoryList:[],
-      keys:"",
+      pics: 0,
+      filterText: "",
+      DataList: [],
+      list1: true,
+      activeName: "1",
+      num: 1,
+      checkedObj: {},
+      dataObj: {},
+      Treedata: [],
+      TreedataList: [],
+      treedataList: [],
+      checkedkey: [],
+      checkedListkey: [],
+      defaultProps: {
+        children: [],
+        label: "proName",
+      },
+      isCollapsed: true,
+      categoryList: [],
+      keys: "",
       keywordList: [],
-      // 澶氶�夋
+      dataListAll: [],
       priceNow: "",
       checkAll: false,
       isIndeterminate: true,
-      // 閬僵灞�
       loading: false,
       radio: 3,
-      // 閫変腑鏁扮粍
       ids: [],
-      // 闈炲崟涓鐢�
       single: true,
-      // 闈炲涓鐢�
       multiple: true,
-      // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
-      // 鎬绘潯鏁�
-      total: 0,
-      // 浣撴濂楅琛ㄦ牸鏁版嵁
       packageList: [],
-      // 濂楅閫変腑鐨勭埗椤�
       allpackageList: [],
-      // 宸查��
       newproName: [],
-      // 鎵�鏈変綋妫�椤圭洰路
       allList: [],
-      // 鎵�鏈夊椁愭暟鎹�
-      // allpackage:[],
-      // 寮瑰嚭灞傛爣棰�
+      treeList: [],
       title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
+      lastXianPrice: 0,
       open: false,
       Seachopen: false,
+      checkedNodes: [],
       pacId: "",
-      // 鏌ヨ鍙傛暟
+      total: 0,
+      total1: 0,
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         pacName: null,
         pacRemark: null,
       },
-      // 琛ㄥ崟鍙傛暟
-      form: {},
-      // 琛ㄥ崟鏍¢獙
+      queryParams1: {
+        page: 1,
+        pageSize: 30,
+        nr: "",
+        xb: "",
+      },
+      form: {
+        xianprice: null,
+        counterPrice: null,
+        limits: 10,
+        keywords: [],
+      },
+      forms: {},
+      youhui: 10,
+      initializing: true,
+      debounceTimer: null,
       rules: {
-        deleted: [
-          { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" },
+        pacName: [
+          { required: true, message: "璇疯緭鍏ュ椁愬悕绉�", trigger: "blur" },
         ],
+        // pics: [{ required: true, message: "璇疯緭鍏ュ師浠�", trigger: "change" }],
+        xianprice: [{ required: true, message: "璇疯緭鍏ョ幇浠�", trigger: "blur" }],
       },
     };
   },
@@ -640,52 +677,143 @@
     this.getCategory();
   },
   methods: {
-    /** 鏌ヨ浣撴濂楅鍒楄〃 */
+    debounceNumberChange(currentValue, oldValue) {
+      clearTimeout(this.debounceTimer);
+      this.debounceTimer = setTimeout(() => {
+        this.numberChange(currentValue, oldValue);
+      }, 300);
+    },
+    numberChange(currentValue, oldValue) {
+      // 瀹炵幇鎶樻墸鍙樺寲鐨勯�昏緫锛堝鏋滈渶瑕侊級
+    },
+    updateProPrice(row) {
+      const proPrice = new Big(row.priceOrd || 0);
+      const limits = new Big(row.limits || 10);
+      const result = proPrice.times(limits.div(10));
+      row.priceNow = result.toNumber();
+      this.form.xianprice = this.DataList.reduce((sum, item) => {
+        return sum.plus(new Big(item.priceNow || 0));
+      }, new Big(0)).toNumber();
+      this.youhui = this.pics
+        ? (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10
+        : 10;
+    },
+    calculateDiscount(row) {
+      if (row.limits > 10) {
+        row.limits = 10;
+      } else if (row.limits < 0) {
+        row.limits = 0;
+      }
+      this.updateProPrice(row);
+    },
+    toggleCollapse() {
+      this.isCollapsed = !this.isCollapsed;
+    },
+    filterNode(value, data) {
+      if (!value) return true;
+      console.log(value, 6666);
+
+      return (
+        data.proName.indexOf(value) !== -1 ||
+        (data.proEngName && data.proEngName.indexOf(value) !== -1)
+      );
+    },
     getList() {
       this.loading = true;
-      listPackage(this.queryParams).then((response) => {
-        response.rows.forEach((item, index) => {
-          item.newID =
-            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
-            index +
-            1;
-        });
-        this.total = response.total;
-        this.packageList = response.rows;
+      getPacTjProjectList().then((response) => {
+        this.allList = response.data || [];
         this.loading = false;
       });
+      getPacList(this.queryParams)
+        .then((response) => {
+          response.rows.forEach((item, index) => {
+            item.newID =
+              (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+              index +
+              1;
+          });
+          this.total = response.total || 0;
+          this.packageList = response.rows || [];
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+          this.$message.error("鑾峰彇濂楅鍒楄〃澶辫触");
+        });
     },
-    /** 鏌ヨ鍏抽敭瀛楀垪琛� */
     getKeyword() {
       this.loading = true;
-      listKeyword(this.queryParams).then((response) => {
-        this.keywordList = response.rows;
-      });
+      listKeyword(this.queryParams)
+        .then((response) => {
+          this.keywordList = response.rows || [];
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+          this.$message.error("鑾峰彇鍏抽敭瀛楀垪琛ㄥけ璐�");
+        });
     },
     sel(val) {
-      let id = val
-      this.keys = "";
-      id.forEach((item) => {
-        this.keys += item + ","
-      });
+      const maleId = "4"; // 鈥滅敺鈥濈殑 ID
+      const femaleId = "5"; // 鈥滃コ鈥濈殑 ID
+      let selectedIds = [...val]; // 澶嶅埗褰撳墠閫変腑鐨� ID 鏁扮粍
+
+      // 瀹炵幇鈥滅敺鈥濆拰鈥滃コ鈥濅簰鏂ラ�昏緫
+      if (selectedIds.includes(maleId) && selectedIds.includes(femaleId)) {
+        selectedIds = selectedIds.slice(-1); // 淇濈暀鏈�鍚庨�変腑鐨勪竴涓�
+        this.$message.warning("鈥滅敺鈥濆拰鈥滃コ鈥濆叧閿瓧浜掓枼锛屽彧鑳介�夋嫨涓�涓紒");
+      }
+
+      // 鏇存柊 form.keywords 鍜� keys
+      this.form.keywords = selectedIds;
+      this.keys = selectedIds.join(",");
+
+      // 璋冪敤 getDataList锛屼紶閫掓墍鏈夐�変腑鐨勫叧閿瓧 ID锛堥�楀彿鍒嗛殧锛�
+      // this.getDataList({ xb: this.keys });
+      this.queryParams1.xb = this.keys; // 馃憟 鏇存柊鏌ヨ鍙傛暟
+      this.queryParams1.page = 1; // 馃憟 鍒囨崲鏉′欢鏃堕噸缃〉鐮�
+      this.getDataList(); // 涓嶉渶瑕佸啀浼犲弬浜�
     },
-    /** 鏌ヨ绫荤洰鍒楄〃 */
     getCategory() {
       this.loading = true;
-      listCategory(this.queryParams).then((response) => {
-        this.categoryList = response.rows;
-      });
+      listCategory(this.queryParams)
+        .then((response) => {
+          this.categoryList = response.rows || [];
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+          this.$message.error("鑾峰彇濂楅绫荤洰澶辫触");
+        });
     },
-    shangpin(vals){
-      console.log(vals);
+    getDataList(params = {}) {
+      this.loading = true;
+      const query = { ...this.queryParams1, ...params };
+      search(query)
+        .then((response) => {
+          this.Treedata = response.data.list || [];
+          this.total1 = response.data.total || 0;
+          this.pics = this.DataList.reduce(
+            (total, item) => total + (item.priceOrd || 0),
+            0
+          );
+          this.$nextTick(() => {
+            this.$refs.tree.setCheckedKeys(this.checkedNodes);
+            this.initializing = false;
+          });
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+          this.$message.error("鑾峰彇椤圭洰鍒楄〃澶辫触");
+        });
     },
-    // 鍙栨秷鎸夐挳
+    shangpin(vals) {},
     cancel() {
       this.open = false;
       this.Seachopen = false;
       this.reset();
     },
-    // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
         pacId: null,
@@ -700,296 +828,438 @@
         allProName: null,
         priceNow: null,
         proId: null,
-        // pacStatus: "鍚敤",
+        xianprice: null,
+        counterPrice: null,
+        limits: 10,
+        keywords: [],
       };
+      this.initializing = true;
       this.resetForm("form");
     },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
       this.queryParams.pageNum = 1;
       this.getList();
     },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    handlePackage() {
+      this.$refs.aaa.open = true;
+      this.$refs.aaa.getList();
+      this.$refs.aaa.title = "濂楅瀛楀吀";
+    },
+    handleChanges(param1) {
+      this.form.pacName = param1[0].pacName;
+      this.form.hisPacId = param1[0].pacId;
+      if (param1[0].price) {
+        this.form.counterPrice = param1[0].price;
+        this.form.retailPrice = param1[0].price;
+      }
+    },
     resetQuery() {
       this.resetForm("queryForm");
       this.handleQuery();
     },
-    // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      if (!selection[0]) {
-        return;
-      }
-      this.form = selection[0];
+      if (!selection[0]) return;
+      this.forms = selection[0];
       this.ids = selection.map((item) => item.pacId);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
     },
-    /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
       this.open = true;
       this.title = "浣撴濂楅淇℃伅缁存姢";
-      getAllList().then((response) => {
-        this.allList = response.data;
-        if (this.allList.proStatus === 0) {
-          this.allList.proStatus = "鍚敤";
-        } else {
-          this.allList.proStatus = "鍋滅敤";
-        }
-        this.loading = false;
-      });
-      // if (!this.form.tjProjectList) {
-      //     this.form.tjProjectList = []
-      //     this.form.tjProjectList.push({
-      //       id: parseInt(length),
-      //       proName: "",
-      //       allSonProName: "",
-      //       proPrice: "",
-      //       priceNow: "",
-      //       proId: "",
-      //       Selection,
-      //     });
-      //   }
+      this.DataList = [];
+      this.checkedkey = [];
+      this.queryParams1.nr = "";
+      this.queryParams1.page = 1;
+      this.checkedListkey = [];
+      this.checkedNodes = [];
+      this.getDataList();
+      this.youhui = 10;
     },
-
-    // 鏄惁鍚敤
     handleStatusChange(row) {
-      
       let data = {
-        pacId:row.pacId,
-        pacStatus:row.pacStatus,
-      }
+        pacId: row.pacId,
+        pacStatus: row.pacStatus,
+      };
       let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤";
-      this.$confirm("纭瑕�" + text + row.pacName + "濂楅鍚楋紵")
-        .then(function () {
-          return updateStatus(data);
-        })
+      this.$modal
+        .confirm("纭瑕�" + text + row.pacName + "濂楅鍚楋紵")
+        .then(() => updateStatus(data))
         .then(() => {
-          this.msgSuccess(text + "鎴愬姛");
+          this.$modal.msgSuccess(text + "鎴愬姛");
         })
-        .catch(function () {
+        .catch(() => {
           row.pacStatus = row.pacStatus === "0" ? "0" : "1";
         });
     },
-
     handleUp() {
+      this.reset();
       this.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
-      getAllList().then((response) => {
-        this.allList = response.data;
-        this.loading = false;
+      getPacInFo(this.forms.pacId).then((response) => {
+        Object.keys(response.data).forEach((key) => {
+          this.$set(this.form, key, response.data[key]);
+        });
+        this.youhui = response.data.limits || 10;
+        this.pics = response.data.price || 0;
+        this.form.xianprice = response.data.newPrice || 0;
+        this.lastXianPrice = this.form.xianprice;
+        this.form.keywords =
+          response.data.keywords && response.data.keywords.length > 0
+            ? response.data.keywords.slice(0, -1).split(",")
+            : [];
+        this.DataList = response.data.packageProjects || [];
+        this.checkedkey = this.DataList.map((item) => item.proId || "");
+        this.checkedListkey = [...this.checkedkey];
+        this.checkedNodes = [...this.checkedkey];
+        this.getDataList();
       });
     },
-    /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
-      this.form = row;
-      this.form.keywords = this.form.keyIds;
-      // if (this.form.pacStatus === 0) {
-      //   this.form.pacStatus = "鍚敤";
-      // } else {
-      //   this.form.pacStatus = "鍋滅敤";
-      // }
+      this.reset();
       this.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
-      // getAllList().then((response) => {
-      //   this.allList = response.data;
-      //   this.loading = false;
-      // });
+      this.loading = true;
+      getPacInFo(row.pacId)
+        .then((response) => {
+          const data = response.data || {};
+          Object.keys(data).forEach((key) => {
+            this.$set(this.form, key, data[key]);
+          });
+          this.youhui = data.limits || 10;
+          this.pics = data.price || 0;
+          this.form.xianprice = data.newPrice || 0;
+          this.lastXianPrice = this.form.xianprice;
+          this.form.keywords =
+            data.keywords && data.keywords.length > 0
+              ? data.keywords.slice(0, -1).split(",")
+              : [];
+          this.DataList = data.packageProjects || [];
+          this.checkedkey = this.DataList.map((item) => item.proId || "");
+          this.checkedListkey = [...this.checkedkey];
+          this.checkedNodes = [...this.checkedkey];
+          return this.getDataList();
+        })
+        .then(() => {
+          this.loading = false;
+          this.$nextTick(() => {
+            this.$refs.form.validate();
+          });
+        })
+        .catch((error) => {
+          this.loading = false;
+          this.$message.error("鍔犺浇鏁版嵁澶辫触");
+        });
     },
-
-    // 鏂板琛�
     addmembers() {
       if (this.form.pacName) {
         if (!this.form.tjProjectList) {
           this.form.tjProjectList = [];
-          this.form.tjProjectList.push({
-            id: parseInt(length),
-            proName: "",
-            allSonProName: "",
-            proPrice: "",
-            priceNow: "",
-            proId: "",
-            Selection,
-          });
-        } else {
-          this.form.tjProjectList.push({
-            id: parseInt(length),
-            proName: "",
-            allSonProName: "",
-            proPrice: "",
-            priceNow: "",
-            proId: "",
-            Selection,
-          });
         }
+        this.form.tjProjectList.push({
+          id: this.form.tjProjectList.length + 1,
+          proName: "",
+          allSonProName: "",
+          proPrice: "",
+          priceNow: "",
+          proId: "",
+        });
       } else {
-        Message.warning("璇峰厛濉啓濂楅鍚嶇О");
+        this.$modal.msgWarning("璇峰厛濉啓濂楅鍚嶇О");
       }
       this.$forceUpdate();
     },
-
-    // 鍒犻櫎琛�
     Delete(index) {
-      if (this.form.tjProjectList.length == 0) {
-        this.$alert("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏁版嵁", "鎻愮ず", {
+      if (this.form.tjProjectList.length === 0) {
+        this.$modal.alert("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏁版嵁", "鎻愮ず", {
           confirmButtonText: "纭畾",
         });
       } else {
         this.form.tjProjectList.splice(index, 1);
       }
     },
-
+    handleDelete1(row) {
+      this.DataList = this.DataList.filter((item) => item.proId !== row.proId);
+      const index = this.checkedNodes.indexOf(row.proId);
+      if (index > -1) {
+        this.checkedNodes.splice(index, 1);
+      }
+      const tree = this.$refs.tree;
+      const node = tree.getNode(row.proId);
+      if (node) {
+        node.setChecked(false);
+      }
+      this.updateTotalPrice();
+    },
     getSelectValue(val) {
       this.form.tjProjectList.forEach((formitem) => {
-        if (formitem.proName == val) {
+        if (formitem.proName === val) {
           formitem.allSonProName = "";
           this.allList.find((item) => {
-            if (item.proName == val) {
+            if (item.proName === val) {
               formitem.proId = item.proId;
               formitem.proPrice = item.proPrice;
               formitem.priceNow = item.proPrice;
-              item.tjProjectList.forEach((item1) => {
-                this.$nextTick(() => {
-                  formitem.allSonProName =
-                    formitem.allSonProName + "," + item1.proName;
-                });
-                // this.form.tjProjectList.allSonProName = this.form.tjProjectList.allSonProName+','+item1.proName
-              });
+              formitem.allSonProName = item.allSonProName;
             }
           });
         }
       });
+      for (let i = 0; i < this.form.tjProjectList.length; i++) {
+        for (let j = i + 1; j < this.form.tjProjectList.length; j++) {
+          if (
+            this.form.tjProjectList[i].proId ===
+            this.form.tjProjectList[j].proId
+          ) {
+            this.form.tjProjectList.splice(j, 1);
+            j--;
+            this.$modal.msgError("姝ら」鐩凡褰曞叆锛屼笉鍙噸澶嶅綍鍏�");
+          }
+        }
+      }
+      return this.form.tjProjectList;
     },
-    /** 鎻愪氦鎸夐挳 */
+    objectSpanMethod({ 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 };
+          }
+        }
+      }
+    },
+    renderContent(h, { node, data, store }) {
+      return (
+        <span class="custom-tree-node">
+          <span>{node.label}</span>
+          <span>({data.proPrice}鍏�)</span>
+        </span>
+      );
+    },
+    handleFilterInput() {
+      this.queryParams1.page = 1;
+      this.getDataList();
+      // this.getDataList({ xb: this.keys });
+
+      this.$nextTick(() => {
+        this.$refs.tree.setCheckedKeys(this.checkedNodes);
+      });
+    },
+    handleCurrentChecked(data, checked, indeterminate) {
+      if (this.initializing) {
+        return;
+      }
+      if (checked) {
+        if (!this.DataList.some((item) => item.proId === data.proId)) {
+          this.DataList.push({
+            proId: data.proId,
+            proName: data.proName,
+            priceOrd: data.proPrice,
+            limits: 10,
+            priceNow: data.proPrice,
+          });
+        }
+        if (!this.checkedNodes.includes(data.proId)) {
+          this.checkedNodes.push(data.proId);
+        }
+        this.updateTotalPrice();
+      } else {
+        this.DataList = this.DataList.filter(
+          (item) => item.proId !== data.proId
+        );
+        const index = this.checkedNodes.indexOf(data.proId);
+        if (index > -1) {
+          this.checkedNodes.splice(index, 1);
+        }
+        this.updateTotalPrice();
+      }
+    },
+    updateTotalPrice() {
+      this.form.xianprice = this.DataList.reduce((sum, item) => {
+        return sum.plus(new Big(item.priceNow || 0));
+      }, new Big(0)).toNumber();
+      this.pics = this.DataList.reduce(
+        (total, item) => total + (item.priceOrd || 0),
+        0
+      );
+    },
+    changeXianjia() {
+      if (this.form.xianprice !== 0 && this.pics) {
+        this.youhui =
+          (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
+      }
+    },
+    spliceData() {
+      for (let i = 0; i < this.DataList.length; i++) {
+        for (let j = i + 1; j < this.DataList.length; j++) {
+          if (this.DataList[i].proId === this.DataList[j].proId) {
+            this.DataList.splice(j, 1);
+            j--;
+          }
+        }
+      }
+      return this.DataList;
+    },
+    handleCurrentChecked1(data, checked, checkedNodes) {
+      if (!checked) {
+        this.DataList = this.DataList.filter(
+          (item) => item.proId !== data.proId
+        );
+        this.TotalPrice1 = this.DataList.reduce(
+          (sum, item) => sum + (item.priceOrd || 0),
+          0
+        );
+        this.pics = this.TotalPrice1;
+      } else {
+        this.DataList.push(data);
+        this.pics = this.DataList.reduce(
+          (sum, item) => sum + (item.priceOrd || 0),
+          0
+        );
+        this.spliceData();
+        this.TotalPrice1 = this.pics;
+      }
+    },
+    handleDeletes(row) {
+      this.DataList = this.DataList.filter(
+        (item) => item.proParentId !== row.proParentId
+      );
+      this.TotalPrice1 = this.DataList.reduce(
+        (sum, item) => sum + (item.priceOrd || 0),
+        0
+      );
+    },
     submitForm() {
-      this.$refs["form"].validate((valid) => {
+      this.$refs.form.validate((valid) => {
         if (valid) {
-          if (this.form.pacId != null) {
-            // if (this.form.pacStatus === "鍚敤") {
-            //   this.form.pacStatus = 0;
-            // } else {
-            //   this.form.pacStatus = 1;
-            // }
-            this.form.keywords = this.keys;
-            updatePackage(this.form).then((response) => {
-              this.$modal.msgSuccess("淇敼鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
+          if (this.form.xianprice !== this.lastXianPrice) {
+            this.$modal
+              .confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
+                confirmButtonText: "纭畾",
+                cancelButtonText: "鍙栨秷",
+                type: "warning",
+              })
+              .then(() => {
+                this.youhui =
+                  (Math.floor((this.form.xianprice / this.pics) * 100) / 100) *
+                  10;
+                let totalYsprice = new Big(0);
+                this.DataList.forEach((item) => {
+                  item.limits = this.youhui;
+                  const ordPrice = new Big(item.priceOrd || 0);
+                  const discount = new Big(item.limits);
+                  const result = ordPrice.times(discount.div(10));
+                  item.priceNow = result.toNumber();
+                  totalYsprice = totalYsprice.plus(new Big(item.priceNow));
+                });
+                if (!totalYsprice.eq(this.form.xianprice)) {
+                  const diff = new Big(this.form.xianprice).minus(totalYsprice);
+                  if (this.DataList.length > 0) {
+                    const lastItem = this.DataList[this.DataList.length - 1];
+                    const newYsPrice = new Big(lastItem.priceNow)
+                      .plus(diff)
+                      .toNumber();
+                    this.$set(
+                      this.DataList[this.DataList.length - 1],
+                      "priceNow",
+                      newYsPrice
+                    );
+                  }
+                }
+                return this.saveData();
+              })
+              .catch(() => {
+                this.form.xianprice = this.lastXianPrice;
+              });
           } else {
-            this.form.keywords = this.keys;
-            // if (this.form.pacStatus === "鍚敤") {
-            //   this.form.pacStatus = 0;
-            // } else {
-            //   this.form.pacStatus = 1;
-            // }
-            addPackage(this.form).then((response) => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
+            this.saveData();
           }
         }
       });
     },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    saveData() {
+      this.form.limits = this.youhui;
+      this.form.price = this.pics;
+      this.form.priceNow = this.form.xianprice;
+      if (this.keys) {
+        this.form.keywords = this.keys;
+      }
+      let packageProjects = [];
+      this.DataList.forEach((item) => {
+        packageProjects.push({
+          proName: item.proName,
+          proId: item.proId,
+          priceNow: item.priceNow,
+          limits: item.limits,
+          priceOrd: item.priceOrd,
+        });
+      });
+      let data = {
+        pacName: this.form.pacName,
+        limits: this.form.limits,
+        pacStatus: this.form.pacStatus,
+        packageProjects: packageProjects,
+        newPrice: this.form.xianprice,
+        price: this.pics,
+        pacId: this.form.pacId || null,
+        isOnSale: this.form.isOnSale,
+        sort: this.form.sort,
+        retailPrice: this.form.retailPrice,
+        tjCategory: this.form.tjCategory,
+        pacRemark: this.form.pacRemark,
+        detail: this.form.detail,
+      };
+      return saveOreditTjPacNew(data)
+        .then((res) => {
+          this.$modal.msgSuccess("淇濆瓨鎴愬姛");
+          this.open = false;
+          this.getList();
+        })
+        .catch(() => {
+          this.$message.error("淇濆瓨澶辫触");
+        });
+    },
     handleDelete(row) {
       const pacIds = row.pacId || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎浣撴濂楅缂栧彿涓�"' + pacIds + '"鐨勬暟鎹」锛�')
-        .then(function () {
-          return delPackage(pacIds);
-        })
+        .then(() => delPackage(pacIds))
         .then(() => {
           this.getList();
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
         .catch(() => {});
     },
-
-    /** 鍒嗛厤濂楅鍐呴」鐩搷浣� */
-    handleProject: function (row) {
+    handleProject(row) {
       const pacId = row.pacId;
       this.$router.push("/system/user-auth/role/" + pacId);
     },
-
-    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download(
         "system/package/export",
-        {
-          ...this.queryParams,
-        },
+        { ...this.queryParams },
         `package_${new Date().getTime()}.xlsx`
       );
-    },
-    // 濂楅璇︽儏
-    // handleSeach(row) {
-    //   this.Seachopen = true;
-    //   this.loading = true;
-    //   const pacId = row.pacId;
-    //   this.pacId = row.pacId
-    //   let data = {
-    //     pacId: pacId,
-    //   };
-    //   getAllPackage(data).then((response) => {
-    //     this.allpackageList = response.data.tjProjectList;
-    //     this.loading = false;
-    //     let arr = [];
-    //     this.allpackageList.forEach((item) => {
-    //       arr.push(item.proName);
-    //     });
-    //     this.newproName = arr;
-    //   });
-
-    //   getAllPackageList().then((response) => {
-    //     this.allList = response.data;
-    //     this.loading = false;
-    //   });
-    // },
-    // // 鍏ㄩ��
-    // handleCheckAllChange(val) {
-    //   this.newproName = val ? this.allList : [];
-    //   this.isIndeterminate = false;
-    // },
-
-    // handleCheckedCitiesChange(value) {
-    //   let checkedCount = value.length;
-    //   this.checkAll = checkedCount === this.allList.length;
-    //   this.isIndeterminate =
-    //     checkedCount > 0 && checkedCount < this.allList.length;
-    // },
-
-    submitcheckbox() {
-      let _this = this;
-      let proIds = [];
-      this.allList.forEach((item) => {
-        _this.newproName.forEach((item1) => {
-          if (item.proName == item1) {
-            proIds.push(item.proId);
-          }
-        });
-      });
-      let data = {
-        pacid: Number(this.pacId),
-        proIds: proIds.toString(),
-      };
-
-      updateProject(data).then((response) => {
-        this.$modal.msgSuccess("鎴愬姛");
-        this.Seachopen = false;
-      });
     },
   },
 };
 </script>
 
-
 <style>
 .el-tooltip__popper {
   max-width: 800px;
 }
-
 .showInline {
   overflow: hidden;
   text-overflow: ellipsis;
@@ -998,7 +1268,6 @@
   line-clamp: 2;
   -webkit-box-orient: vertical;
 }
-
 .pag {
   width: 100%;
   display: flex;
@@ -1012,9 +1281,9 @@
   left: 40%;
   bottom: 2%;
 }
-/* .dialo{
-  display: flex;
-  flex-direction: row;
-    align-items: center;
-} */
+.tab3 {
+  max-height: 400px;
+  overflow-y: auto;
+  border: 1px solid #d9d9d9;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0