From bb9312f2f7b09b6a7b70798ffd48cdcce74079fb Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期一, 01 四月 2024 15:21:16 +0800
Subject: [PATCH] qxtj

---
 src/views/system/package/index.vue |  815 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 697 insertions(+), 118 deletions(-)

diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 651a6e9..5644531 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -1,41 +1,106 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
       <el-form-item label="濂楅鍚嶇О" prop="pacName">
-        <el-input v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handleQuery" />
+        <el-input
+          v-model="queryParams.pacName"
+          placeholder="璇疯緭鍏ュ椁愬悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
       </el-form-item>
       <el-form-item label="濂楅鎻忚堪" prop="pacRemark">
-        <el-input v-model="queryParams.pacRemark" placeholder="璇疯緭鍏ュ椁愭弿杩�" clearable @keyup.enter.native="handleQuery" />
+        <el-input
+          v-model="queryParams.pacRemark"
+          placeholder="璇疯緭鍏ュ椁愭弿杩�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
       </el-form-item>
       <el-form-item label="濂楅鍒嗙被" prop="categoryId">
-        <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.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>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >鎼滅储</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >閲嶇疆</el-button
+        >
       </el-form-item>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
-          v-hasPermi="['system:package:add']">鏂板</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:package:add']"
+          >鏂板</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUp"
-          v-hasPermi="['system:package:edit']">淇敼</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUp"
+          v-hasPermi="['system:package:edit']"
+          >淇敼</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
-          v-hasPermi="['system:package:remove']">鍒犻櫎</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:package:remove']"
+          >鍒犻櫎</el-button
+        >
       </el-col>
       <el-col :span="1.5">
-        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
-          v-hasPermi="['system:package:export']">瀵煎嚭</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:package:export']"
+          >瀵煎嚭</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
     <!-- 
@@ -43,16 +108,56 @@
     element-loading-spinner="el-icon-loading"
         element-loading-text="姝e湪鍔犺浇涓�..." -->
     <template>
-      <el-table v-loading="loading" style="width: 100%" :data="packageList" @selection-change="handleSelectionChange"
-        border>
-        <el-table-column fixed type="selection" width="40" align="center" :show-overflow-tooltip="true" />
-        <el-table-column label="搴忓彿" align="center" width="50" prop="newID" fixed />
+      <el-table
+        v-loading="loading"
+        style="width: 100%"
+        :data="packageList"
+        @selection-change="handleSelectionChange"
+        border
+      >
+        <el-table-column
+          fixed
+          type="selection"
+          width="40"
+          align="center"
+          :show-overflow-tooltip="true"
+        />
+        <el-table-column
+          label="搴忓彿"
+          align="center"
+          width="50"
+          prop="newID"
+          fixed
+        />
         <!-- <el-table-column label="缂栧彿" align="center" prop="pacId" /> -->
-        <el-table-column label="濂楅鍒嗙被" width="100px" align="center" prop="categoryNames" fixed></el-table-column>
-        <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" width="150px" fixed />
-        <el-table-column label="浠锋牸" width="80px" align="center" prop="price" fixed>
+        <el-table-column
+          label="濂楅鍒嗙被"
+          width="100px"
+          align="center"
+          prop="categoryNames"
+          fixed
+        ></el-table-column>
+        <el-table-column
+          label="濂楅鍚嶇О"
+          align="center"
+          prop="pacName"
+          width="150px"
+          fixed
+        />
+        <el-table-column
+          label="浠锋牸"
+          width="80px"
+          align="center"
+          prop="price"
+          fixed
+        >
         </el-table-column>
-        <el-table-column label="鍗曢」鍒楄〃" align="center" prop="allProName" width="1200px">
+        <el-table-column
+          label="鍗曢」鍒楄〃"
+          align="center"
+          prop="allProName"
+          width="1200px"
+        >
         </el-table-column>
         <!-- <el-table-column
           label="椤圭洰鏄庣粏"
@@ -61,7 +166,12 @@
           :show-overflow-tooltip="true"
         > 
         </el-table-column>-->
-        <el-table-column label="濂楅鎻忚堪" align="center" :show-overflow-tooltip="true" width="120px">
+        <el-table-column
+          label="濂楅鎻忚堪"
+          align="center"
+          :show-overflow-tooltip="true"
+          width="120px"
+        >
           <template slot-scope="scope">
             <div class="showInline">{{ scope.row.pacRemark }}</div>
           </template>
@@ -78,10 +188,23 @@
           </template>
         </el-table-column> -->
 
-        <el-table-column label="鍏抽敭瀛�" width="110px" align="center" prop="keyNames"></el-table-column>
-        <el-table-column label="鏄惁涓婃灦" width="94px" align="center" prop="isOnSale">
+        <el-table-column
+          label="鍏抽敭瀛�"
+          width="110px"
+          align="center"
+          prop="keyNames"
+        ></el-table-column>
+        <el-table-column
+          label="鏄惁涓婃灦"
+          width="94px"
+          align="center"
+          prop="isOnSale"
+        >
           <template slot-scope="scope">
-            <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isOnSale" />
+            <dict-tag
+              :options="dict.type.sys_yes_no"
+              :value="scope.row.isOnSale"
+            />
           </template>
         </el-table-column>
         <!-- <el-table-column
@@ -91,22 +214,70 @@
           align="center"
           prop="detail"
         ></el-table-column> -->
-        <el-table-column label="鎺掑簭" width="50px" align="center" prop="sort"></el-table-column>
-        <el-table-column label="灏忕▼搴忎环鏍�" 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="宸插敭鏁伴噺" width="90px" align="center" prop="saleNum"></el-table-column>
-        <el-table-column label="鐘舵��" align="center" prop="pacStatus" fixed="right" width="100px">
+        <el-table-column
+          label="鎺掑簭"
+          width="50px"
+          align="center"
+          prop="sort"
+        ></el-table-column>
+        <el-table-column
+          label="灏忕▼搴忎环鏍�"
+          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="宸插敭鏁伴噺"
+          width="90px"
+          align="center"
+          prop="saleNum"
+        ></el-table-column>
+        <el-table-column
+          label="鐘舵��"
+          align="center"
+          prop="pacStatus"
+          fixed="right"
+          width="100px"
+        >
           <template slot-scope="scope">
-            <el-switch v-model="scope.row.pacStatus" active-value="0" inactive-value="1"
-              @change="handleStatusChange(scope.row)"></el-switch>
+            <el-switch
+              v-model="scope.row.pacStatus"
+              active-value="0"
+              inactive-value="1"
+              @change="handleStatusChange(scope.row)"
+            ></el-switch>
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔" align="center" width="80px" fixed="right" class-name="small-padding fixed-width">
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          width="80px"
+          fixed="right"
+          class-name="small-padding fixed-width"
+        >
           <template slot-scope="scope">
-            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-              v-hasPermi="['system:package:edit']" title="淇敼"></el-button>
-            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
-              v-hasPermi="['system:package:remove']" title="鍒犻櫎"></el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['system:package:edit']"
+              title="淇敼"
+            ></el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              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>
@@ -115,31 +286,65 @@
 
       <div class="pag">
         <div class="pag1">
-          <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
-            :limit.sync="queryParams.pageSize" @pagination="getList" />
+          <pagination
+            v-show="total > 0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
         </div>
       </div>
     </template>
 
     <!-- 淇敼浣撴濂楅瀵硅瘽妗� -->
-    <el-dialog :title="title" :visible.sync="open" width="1100px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px" :inline="true">
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="1100px"
+      append-to-body
+    >
+      <el-form
+        ref="form"
+        :model="form"
+        :rules="rules"
+        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
+            slot="label"
+            style="display: inline-block; border-bottom: 2px solid blue"
+            @click="handlePackage"
+          >
             濂楅鍚嶇О
           </span>
-          <el-input v-model="form.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" style="width: 150px" />
+          <el-input
+            v-model="form.pacName"
+            placeholder="璇疯緭鍏ュ椁愬悕绉�"
+            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: 150px" filterable clearable>
-            <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
-              :value="dict.value"></el-option>
+          <el-select
+            v-model="form.pacStatus"
+            placeholder="璇烽�夋嫨鐘舵��"
+            style="width: 150px"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="dict in dict.type.sys_normal_disable"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
           </el-select>
         </el-form-item>
 
@@ -149,16 +354,39 @@
             placeholder="璇疯緭鍏ュ晢鍝佺被鐩�"
             style="width: 200px"
           /> -->
-          <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨濂楅绫荤洰" style="width: 150px" @change="shangpin" filterable
-            clearable>
-            <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+          <el-select
+            v-model="form.categoryId"
+            placeholder="璇烽�夋嫨濂楅绫荤洰"
+            style="width: 150px"
+            @change="shangpin"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="item in categoryList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
 
         <el-form-item label="鍏抽敭瀛�" prop="keywords">
-          <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 150px" @change="sel" filterable
-            clearable>
-            <el-option v-for="item in keywordList" :key="item.id" :label="item.keyword" :value="item.id"></el-option>
+          <el-select
+            multiple
+            v-model="form.keywords"
+            placeholder="璇烽�夋嫨鍏抽敭瀛�"
+            style="width: 150px"
+            @change="sel"
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="item in keywordList"
+              :key="item.id"
+              :label="item.keyword"
+              :value="item.id"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="鏄惁涓婃灦" prop="isOnSale">
@@ -166,27 +394,54 @@
               <el-radio :label="0">鍚敤</el-radio>
               <el-radio :label="1">鍋滅敤</el-radio>
             </el-radio-group> -->
-          <el-select v-model="form.isOnSale" placeholder="璇烽�夋嫨鏄惁涓婃灦" style="width: 150px" 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
+            v-model="form.isOnSale"
+            placeholder="璇烽�夋嫨鏄惁涓婃灦"
+            style="width: 150px"
+            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-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-input
+            v-model="form.retailPrice"
+            placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸"
+            style="width: 150px"
+          />
         </el-form-item>
         <el-form-item label="鍘熶环" prop="counterPrice">
-          <el-input v-model="form.counterPrice" placeholder="璇疯緭鍏ュ師浠�" style="width: 150px" />
+          <el-input
+            v-model="form.counterPrice"
+            placeholder="璇疯緭鍏ュ師浠�"
+            style="width: 150px"
+          />
         </el-form-item>
 
-        <div v-if="!isCollapsed" style="display:flex">
+        <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-input
+                type="textarea"
+                v-model="form.pacRemark"
+                placeholder="璇疯緭鍏ュ椁愭弿杩�"
+                style="width: 670px"
+                rows="2"
+              ></el-input>
             </el-form-item>
             <el-form-item label="璇︾粏浠嬬粛" prop="detail">
               <!-- <el-input
@@ -194,7 +449,11 @@
             placeholder="璇疯緭鍏ヨ缁嗕粙缁�"
             style="width: 200px"
           /> -->
-              <editor v-model="form.detail" :min-height="192" style="width: 670px" />
+              <editor
+                v-model="form.detail"
+                :min-height="192"
+                style="width: 670px"
+              />
             </el-form-item>
           </div>
           <!-- </div> -->
@@ -209,7 +468,7 @@
       <el-button type="primary" plain size="mini" @click="toggleCollapse">{{
         isCollapsed ? "灞曞紑" : "鏀惰捣"
       }}</el-button>
-      <el-button type="primary" plain size="mini" icon="el-icon-plus" @click="addmembers()">鏂板鍗曢」</el-button>
+      <!-- <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" />
@@ -237,7 +496,97 @@
               v-hasPermi="['hosp:consumables:remove']" title="鍒犻櫎"></el-button>
           </template>
         </el-table-column>
-      </el-table>
+      </el-table> -->
+
+      <el-row :gutter="20">
+        <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-change="handleCurrentChecked"
+              :default-checked-keys="checkedkey"
+              :filter-node-method="filterNode"
+              ref="tree"
+            >
+            </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="TreedataList"
+              node-key="proId"
+              :props="defaultProps"
+              :filter-node-method="filterNode"
+              show-checkbox
+              @check-change="handleCurrentChecked1"
+              :default-checked-keys="checkedListkey"
+              ref="trees"
+            >
+            </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="proName" label="鏄庣粏椤圭洰" width="260px">
+              </el-table-column>
+              <el-table-column prop="proPrice" label="鍘熶环" width="56px">
+              </el-table-column>
+
+              <!-- <el-table-column
+                label="鎿嶄綔"
+                align="center"
+                fixed="right"
+                class-name="small-padding fixed-width"
+                width="50px"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    @click="handleDeletes(scope.row)"
+                    title="鍒犻櫎"
+                  ></el-button>
+                </template> 
+              </el-table-column>-->
+            </el-table>
+          </div>
+        </el-col>
+      </el-row>
 
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
@@ -269,6 +618,7 @@
 import Packages from "@/components/Packages";
 import { listCategory } from "@/api/mall/category";
 import { listKeyword } from "@/api/mall/keyword";
+import { getProParentIdDxList, getProSonDxList } from "@/api/system/tijian";
 import {
   getPacList,
   getPacInFo,
@@ -281,7 +631,7 @@
   updateStatus,
   getAllList,
   updateProject,
-  getPacTjProjectList
+  getPacTjProjectList,
 } from "@/api/system/package";
 import { Message } from "element-ui";
 export default {
@@ -301,6 +651,21 @@
       }
     };
     return {
+      filterText: "",
+      DataList: [],
+      list1: true,
+      activeName: "1",
+      checkedObj: {},
+      dataObj: {},
+      Treedata: [],
+      TreedataList: [],
+      treedataList: [],
+      checkedkey: [],
+      checkedListkey: [],
+      defaultProps: {
+        children: [],
+        label: "proName",
+      },
       isCollapsed: true, // 榛樿涓烘姌鍙犵姸鎬�
       categoryList: [],
       keys: "",
@@ -348,6 +713,7 @@
       },
       // 琛ㄥ崟鍙傛暟
       form: {},
+      forms: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
         deleted: [
@@ -378,6 +744,11 @@
       },
     };
   },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
   created() {
     this.getList();
     this.getKeyword();
@@ -386,6 +757,10 @@
   methods: {
     toggleCollapse() {
       this.isCollapsed = !this.isCollapsed; // 鐐瑰嚮鎸夐挳鏃跺垏鎹sCollapsed鐨勫��
+    },
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.proName.indexOf(value) !== -1;
     },
     /** 鏌ヨ浣撴濂楅鍒楄〃 */
     getList() {
@@ -419,6 +794,7 @@
       });
     },
     sel(val) {
+      console.log(val);
       let id = val;
       this.keys = "";
       id.forEach((item) => {
@@ -489,7 +865,7 @@
       if (!selection[0]) {
         return;
       }
-      this.form = selection[0];
+      this.forms = selection[0];
       this.ids = selection.map((item) => item.pacId);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
@@ -499,7 +875,8 @@
       this.reset();
       this.open = true;
       this.title = "浣撴濂楅淇℃伅缁存姢";
-
+      this.DataList = [];
+      this.getDataList();
       // getAllList().then((response) => {
       //   this.allList = response.data;
       //   if (this.allList.proStatus === 0) {
@@ -545,32 +922,38 @@
     handleUp() {
       this.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
-      getPacTjProjectList().then((response) => {
-        this.allList = response.data;
-        this.loading = false;
+      // getPacTjProjectList().then((response) => {
+      //   this.allList = response.data;
+      //   this.loading = false;
+      // });
+      getPacInFo(this.forms.pacId).then((response) => {
+        this.form = response.data;
+        this.form.keywords=this.form.keywords.slice(0, -1);
+        this.form.keywords = this.form.keywords.split(",");
+        this.DataList = [];
+        this.checkedkey = [];
+        this.checkedListkey = [];
+        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.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
       getPacInFo(row.pacId).then((response) => {
         this.form = response.data;
-        this.form.keywords = this.form.keyIds;
+        this.form.keywords=this.form.keywords.slice(0, -1);
+        this.form.keywords = this.form.keywords.split(",");
+        this.DataList = [];
+        this.checkedkey = [];
+        this.checkedListkey = [];
+        this.getDataList();
       });
     },
 
     // 鏂板琛�
     addmembers() {
       if (this.form.pacName) {
-
         if (!this.form.tjProjectList) {
           this.form.tjProjectList = [];
           this.form.tjProjectList.push({
@@ -619,7 +1002,7 @@
               formitem.proId = item.proId;
               formitem.proPrice = item.proPrice;
               formitem.priceNow = item.proPrice;
-              formitem.allSonProName =item.allSonProName;
+              formitem.allSonProName = item.allSonProName;
               // item.tjProjectList.forEach((item1) => {
               //   this.$nextTick(() => {
               //     formitem.allSonProName =
@@ -646,37 +1029,234 @@
 
       return this.form.tjProjectList;
     },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      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();
-            });
-          } 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();
-            });
+    //  // 榛樿鎺ュ彈鍥涗釜鍊� { 褰撳墠琛岀殑鍊�, 褰撳墠鍒楃殑鍊�, 琛岀殑涓嬫爣, 鍒楃殑涓嬫爣 }
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      // console.log(row, column, rowIndex, columnIndex);
+      let fields = ["propinName"];
+      let cellValue = row[column.property];
+      if (cellValue && fields.includes(column.property)) {
+        let prevRow = this.DataList[rowIndex - 1];
+        let nextRow = this.DataList[rowIndex + 1];
+        if (prevRow && prevRow[column.property] === cellValue) {
+          return { rowspan: 0, colspan: 0 };
+        } else {
+          let countRowspan = 1;
+          while (nextRow && nextRow[column.property] === cellValue) {
+            nextRow = this.DataList[++countRowspan + rowIndex];
+          }
+          if (countRowspan > 1) {
+            return { rowspan: countRowspan, colspan: 1 };
           }
         }
+      }
+    },
+
+    getDataList() {
+      this.loading = true;
+      getProParentIdDxList().then((response) => {
+        this.Treedata = response.data.list;
+        if (this.form.tjProjectList) {
+          this.form.tjProjectList.forEach((item) => {
+            this.Treedata.forEach((item1) => {
+              if (item.proId == item1.proId) {
+                this.checkedkey.push(item1.proId);
+                let proId = item1.proId;
+                getProSonDxList(proId).then((res) => {
+                  this.TreedataList = res.data.list;
+                  this.TreedataList.forEach((item2) => {
+                    item2.disabled = true;
+                    this.checkedListkey.push(item2.proId);
+                    this.DataList.push(item2);
+                    if (this.DataList.length != 0) {
+                      this.DataList.forEach((item) => {
+                        if (item.proParentId == item1.proId) {
+                          item.propinName = item1.proName;
+                          item.propinPrice = item1.proPrice;
+                        }
+                      });
+                    }
+                  });
+                });
+              }
+            });
+          });
+        } else {
+          this.checkedkey.push(this.Treedata[0].proId);
+          let proId = this.Treedata[0].proId;
+          getProSonDxList(proId).then((res) => {
+            this.TreedataList = res.data.list;
+            this.TreedataList.forEach((item) => {
+              item.disabled = true;
+              this.checkedListkey.push(item.proId);
+              this.DataList.push(item);
+              this.DataList.forEach((item) => {
+                item.propinName = this.Treedata[0].proName;
+                item.propinPrice = this.Treedata[0].proPrice;
+              });
+            });
+          });
+        }
+        this.loading = false;
       });
+    },
+    handleCurrentChecked(data, checked, checkedNodes) {
+      console.log(data, checked);
+      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);
+            this.DataList.push(item);
+            this.spliceData();
+            this.DataList.forEach((item1) => {
+              if (item1.proParentId == data.proId) {
+                item1.propinName = data.proName;
+                item1.propinPrice = this.dataObj.proPrice;
+              }
+            });
+          });
+          this.TotalPrice1 = 0;
+          if (this.DataList.length != 0) {
+            this.list1 = false;
+            this.DataList.forEach((item) => {
+              this.TotalPrice1 = item.proPrice + this.TotalPrice1;
+            });
+          }
+        });
+      } else if (checked == false) {
+        let proId = data.proId;
+        getProSonDxList(proId).then((res) => {
+          this.TreedataList = res.data.list;
+          this.TreedataList.forEach((item) => {
+            item.disabled = true;
+          });
+          this.checkedListkey = [];
+          console.log(this.TreedataList.length);
+          this.DataList.forEach((item, index) => {
+            if (item.proParentId == this.dataObj.proId) {
+              this.DataList.splice(index, this.TreedataList.length);
+            }
+          });
+        });
+      }
+    },
+
+    spliceData() {
+      for (var i = 0; i < this.DataList.length; i++) {
+        for (var j = i + 1; j < this.DataList.length; j++) {
+          if (this.DataList[i].proId == this.DataList[j].proId) {
+            //濡傛灉绗竴涓瓑浜庣浜屼釜锛宻plice鏂规硶鍒犻櫎绗簩涓�
+            this.DataList.splice(j, 1);
+            j--;
+          }
+        }
+      }
+      return this.DataList;
+    },
+
+    // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐�
+    handleCurrentChecked1(data, checked, checkedNodes) {
+      if (checked == false) {
+        this.DataList.forEach((item, index) => {
+          if (item.proId == data.proId) {
+            this.DataList.splice(index, 1);
+            this.TotalPrice1 = 0;
+            this.DataList.forEach((item1) => {
+              this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
+            });
+          }
+        });
+      } else if (checked == true) {
+        this.DataList.push(data);
+        this.DataList.forEach((item1) => {
+          if (item1.proParentId == this.dataObj.proId) {
+            item1.propinName = this.dataObj.proName;
+            item1.propinPrice = this.dataObj.proPrice;
+          }
+        });
+        this.spliceData();
+        this.TotalPrice1 = 0;
+        this.DataList.forEach((item1) => {
+          this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
+        });
+      }
+    },
+
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDeletes(row) {
+      this.DataList.forEach((item, index) => {
+        if (item.proParentId == row.proParentId) {
+          this.DataList.splice(index, 1);
+          this.TotalPrice1 = 0;
+          this.DataList.forEach((item1) => {
+            this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
+          });
+        }
+      });
+
+      // this.$refs.trees.setCheckedKeys([]);
+    },
+
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      if (this.form.pacName) {
+        this.form.tjProjectList = [];
+        if (this.DataList.length != 0) {
+          this.DataList.forEach((item) => {
+            this.form.tjProjectList.push({
+              // id: 0,
+              proName: item.propinName,
+              // allSonProName: item.proName + ",",
+              proPrice: item.propinPrice,
+              priceNow: item.propinPrice,
+              proId: item.proParentId,
+            });
+          });
+        }
+        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;
+              // }
+              if(this.keys){
+                this.form.keywords = this.keys;
+              }else{
+                this.form.keywords = this.form.keywords.toString();
+              }
+            
+              updatePackage(this.form).then((response) => {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              this.form.keywords = this.keys;
+              // if (this.form.pacStatus === "鍚敤") {
+              //   this.form.pacStatus = 0;
+              // } else {
+              //   this.form.pacStatus = 1;
+              // }
+              // console.log(this.form.tjProjectList);
+              // return;
+              addPackage(this.form).then((response) => {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      } else {
+        Message.warning("璇峰厛濉啓濂楅鍚嶇О");
+      }
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
@@ -690,7 +1270,7 @@
           this.getList();
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
-        .catch(() => { });
+        .catch(() => {});
     },
 
     /** 鍒嗛厤濂楅鍐呴」鐩搷浣� */
@@ -800,10 +1380,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