From 25c777002fb57397320b65b830cc805b29f7c23a Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期四, 13 三月 2025 16:18:01 +0800
Subject: [PATCH] qx

---
 src/views/system/package/index.vue |  716 ++++++++++++++++++++---------------------------------------
 1 files changed, 240 insertions(+), 476 deletions(-)

diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 06436ff..58136e7 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -1,106 +1,42 @@
 <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-form-item label="浣撴绫诲埆" prop="tjCategory">
+        <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
-          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>
 
     <!-- 
@@ -108,70 +44,22 @@
     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>
-        <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 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"
-          prop="allProName"
-          width="1200px"
-        >
+        <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="鎶樻墸" 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="椤圭洰鏄庣粏"
@@ -180,12 +68,7 @@
           :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>
@@ -202,23 +85,10 @@
           </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
@@ -228,70 +98,27 @@
           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
+        <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> -->
+        <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>
@@ -300,75 +127,35 @@
 
       <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="1400px"
-      append-to-body
-      :close-on-click-modal="false"
-    >
-      <el-form
-        ref="form"
-        :model="form"
-        :rules="rules"
-        label-width="100px"
-        :inline="true"
-      >
+    <el-dialog :title="title" :visible.sync="open" width="1400px" append-to-body :close-on-click-modal="false">
+      <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>
 
-        <el-form-item label="濂楅绫荤洰" prop="categoryId">
-          <!-- <el-input
-            v-model="form.createId"
-            placeholder="璇疯緭鍏ュ晢鍝佺被鐩�"
-            style="width: 200px"
-          /> -->
+        <!--  <el-form-item label="濂楅绫荤洰" prop="categoryId">
           <el-select
             v-model="form.categoryId"
             placeholder="璇烽�夋嫨濂楅绫荤洰"
@@ -384,116 +171,55 @@
               :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-form-item> -->
+        <el-form-item label="浣撴绫诲埆" prop="tjCategory">
+          <el-select v-model="form.tjCategory" placeholder="璇烽�夋嫨浣撴绫诲埆" style="width: 150px" filterable clearable>
+            <el-option 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-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: 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: 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-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="pics">
-          <el-input
-            v-model="pics"
-            placeholder="璇疯緭鍏ュ師浠�"
-            style="width: 150px"
-          />
+          <el-input v-model="pics" placeholder="璇疯緭鍏ュ師浠�" style="width: 150px" />
         </el-form-item>
         <el-form-item label="鎶樻墸">
-          <el-input-number
-            ref="inputNumber"
-            style="width: 150px"
-            v-model="youhui"
-            :precision="2"
-            :step="0.1"
-            :max="10"
-            :min="1"
-            @change="numberChange"
-          ></el-input-number>
+          <el-input-number style="width: 150px" v-model="youhui" :precision="2" :step="0.1" :max="10" :min="1"
+            @change="numberChange"></el-input-number>
         </el-form-item>
-        <el-form-item label="浼樻儬浠�">
-          <el-input
-            ref="inputName"
-            v-model="form.xianprice"
-            placeholder="浼樻儬浠�"
-            clearable
-            style="width: 140px"
-          />
+
+        <el-form-item label="鐜颁环" prop="xianprice">
+          <el-input v-model="form.xianprice" placeholder="鐜颁环" clearable style="width: 140px" @input="changeXianjia"
+            @blur="numberChangeXianPrice(youhui, youhui)" />
         </el-form-item>
-        <el-form-item label="浣撴绫诲埆" prop="tjCategory">
-          <el-select
-            v-model="form.tjCategory"
-            placeholder="璇烽�夋嫨浣撴绫诲埆"
-            style="width: 150px"
-            filterable
-            clearable
-          >
-            <el-option
-              v-for="dict in dict.type.dict_tjtype"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            ></el-option>
+        <el-form-item label="鍏抽敭瀛�" prop="keywords">
+          <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" style="width: 160px" @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>
 
         <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
@@ -501,11 +227,7 @@
             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> -->
@@ -552,40 +274,17 @@
 
       <el-row style="display: flex; width: 1300px">
         <el-col>
-          <div
-            style="text-align: center; margin-bottom: 10px; margin-top: 10px"
-          >
+          <div style="text-align: center; margin-bottom: 10px; margin-top: 10px">
             椤圭洰鍒楄〃
           </div>
-          <el-input
-            placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
-            @input="handleFilterInput"
-            v-model="queryParams1.nr"
-            clearable
-          />
+          <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-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>
-            <pagination
-              small
-              v-show="total1 > 0"
-              :total="total1"
-              :page.sync="queryParams1.page"
-              :limit.sync="queryParams1.pageSize"
-              @pagination="getDataList"
-            />
+            <pagination small v-show="total1 > 0" :total="total1" :page.sync="queryParams1.page"
+              :limit.sync="queryParams1.pageSize" @pagination="getDataList" />
           </div>
         </el-col>
         <!--  <el-col :span="6">
@@ -613,65 +312,34 @@
         </el-col> -->
         <el-col>
           <div class="grid-content bg-purple">
-            <div
-              style="
+            <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 :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-table-column prop="priceOrd" label="鍘熶环" align="center" width="80px">
               </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 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 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 size="mini" type="text" icon="el-icon-delete" @click="handleDelete1(scope.row)" title="鍒犻櫎">
                   </el-button>
                 </template>
               </el-table-column>
@@ -820,9 +488,11 @@
       // allpackage:[],
       // 寮瑰嚭灞傛爣棰�
       title: "",
+      lastXianPrice: 0,
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
       Seachopen: false,
+      checkedNodes: [],
       pacId: "",
       // 鎬绘潯鏁�
       total: 0,
@@ -861,9 +531,9 @@
         // categoryId: [
         //   { required: true, validator: checkPhoneNum, trigger: "change" },
         // ],
-        keywords: [
+        /*  keywords: [
           { required: true, validator: checkPhoneNum, trigger: "change" },
-        ],
+        ], */
         isOnSale: [
           { required: true, validator: checkPhoneNum, trigger: "change" },
         ],
@@ -872,6 +542,9 @@
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         counterPrice: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ],
+        tjCategory: [
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
       },
@@ -945,9 +618,10 @@
       this.loading = true;
       listCategory(this.queryParams).then((response) => {
         this.categoryList = response.rows;
+        console.log(this.categoryList, 9988);
       });
     },
-    shangpin(vals) {},
+    shangpin(vals) { },
     // 鍙栨秷鎸夐挳
     cancel() {
       this.open = false;
@@ -1066,7 +740,12 @@
       //   this.loading = false;
       // });
       getPacInFo(this.forms.pacId).then((response) => {
-        this.form = response.data;
+        // this.form = response.data;
+        Object.keys(response.data).forEach((key) => {
+          this.$set(this.form, key, response.data[key]);
+        });
+        console.log(this.form, 2233);
+
         this.form.keywords = this.form.keywords.slice(0, -1);
         this.form.keywords = this.form.keywords.split(",");
         // this.DataList = [];
@@ -1091,7 +770,12 @@
       this.title = "浣撴濂楅淇℃伅缁存姢";
       this.open = true;
       getPacInFo(row.pacId).then((response) => {
-        this.form = response.data;
+        // this.form = response.data;
+        console.log(this.form, 445);
+        Object.keys(response.data).forEach((key) => {
+          this.$set(this.form, key, response.data[key]);
+        });
+        this.lastXianPrice = this.form.xianprice
         this.form.keywords = this.form.keywords.slice(0, -1);
         this.form.keywords = this.form.keywords.split(",");
         this.DataList = [];
@@ -1153,13 +837,18 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete1(row) {
       this.DataList = this.DataList.filter((item) => item.proId !== row.proId);
-      const tree = this.$refs.tree;
-      const node = tree.getNode(row.proId); // 鏍规嵁鑺傜偣鐨勫敮涓�鏍囪瘑鑾峰彇鑺傜偣瀵硅薄
-      if (node) {
-        node.setChecked(false); // 鍙栨秷閫変腑鐘舵��
+      // 浠� checkedNodes 涓Щ闄�
+      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) {
@@ -1274,17 +963,15 @@
       search(this.queryParams1).then((response) => {
         this.Treedata = response.data.list; // 鏇存柊鏍戝舰鏁版嵁
         this.total1 = response.data.total; // 鏇存柊鎬绘潯鏁�
-
-        const selectedIds = this.DataList.map((item) => item.proId);
-        // 鏇存柊 checkedkey 浣垮緱閫変腑鐨勯」鐩繚鎸侀�変腑鐘舵��
-        this.checkedkey = selectedIds.filter((id) =>
-          this.Treedata.some((item) => item.proId === id)
-        );
-
         this.pics = this.DataList.reduce(
           (total, item) => total + item.priceOrd,
           0
         );
+
+        // 纭繚鍦ㄦ暟鎹姞杞藉悗淇濇寔閫変腑鐘舵��
+        this.$nextTick(() => {
+          this.$refs.tree.setCheckedKeys(this.checkedNodes);
+        });
       });
       this.loading = false;
     },
@@ -1351,8 +1038,12 @@
     //   });
     // },
     handleFilterInput() {
-      this.queryParams.page = 1; // 鎼滅储鏃堕噸缃负绗竴椤�
+      this.queryParams1.page = 1; // 鎼滅储鏃堕噸缃负绗竴椤�
       this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁
+      // 鍦ㄨ繃婊ゅ悗锛岄噸鏂拌缃�変腑鐘舵��
+      this.$nextTick(() => {
+        this.$refs.tree.setCheckedKeys(this.checkedNodes);
+      });
     },
 
     // 鍒嗛〉浜嬩欢
@@ -1362,36 +1053,107 @@
       this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁
     },
 
-    handleCurrentChecked(data, checked, checkedNodes) {
-      this.dataObj = data;
-      this.checkedObj = checked;
-
+    handleCurrentChecked(data, checked, indeterminate) {
       if (checked) {
-        // 妫�鏌ユ槸鍚﹀凡瀛樺湪浜� DataL
-        this.DataList.push({
-          proId: data.proId,
-          proName: data.proName,
-          priceOrd: data.proPrice, // 鍘熶环锛岀‘淇濊祴鍊兼纭�
-          limits: 10,
-          priceNow: data.proPrice,
-        });
+        // 濡傛灉宸查�夊垪琛ㄤ腑涓嶅瓨鍦ㄦ椤圭洰锛屽垯娣诲姞
+        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,
+          });
+        }
+        // 娣诲姞鍒� checkedNodes 鏁扮粍
+        if (!this.checkedNodes.includes(data.proId)) {
+          this.checkedNodes.push(data.proId);
+        }
       } else {
-        let index = this.DataList.findIndex(
-          (item) => item.proId === data.proId
+        // 鍙栨秷閫変腑鏃讹紝浠嶥ataList涓Щ闄�
+        this.DataList = this.DataList.filter(
+          (item) => item.proId !== data.proId
         );
-        if (index !== -1) {
-          this.DataList.splice(index, 1);
+        // 浠� checkedNodes 涓Щ闄�
+        const index = this.checkedNodes.indexOf(data.proId);
+        if (index > -1) {
+          this.checkedNodes.splice(index, 1);
         }
       }
-      this.pics = 0;
-      this.TotalPrice1 = 0;
-      this.DataList.forEach((item) => {
-        this.pics += item.priceOrd;
-        this.form.counterPrice += item.priceOrd;
-        this.TotalPrice1 += item.priceOrd; // 鍙互鏍规嵁闇�瑕佹敼鎴愪紭鎯犱环 `priceNow`
-      });
+
+      // 鏇存柊浼樻儬浠峰拰鎬讳环
+      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
+      );
     },
 
+    changeXianjia() {
+      // 鍘熷鎶樻墸鐜囪绠�
+      if (this.form.xianprice !== 0) {
+        this.youhui =
+          (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
+      }
+    },
+
+    numberChangeXianPrice(currentValue, oldValue) {
+      // 濡傛灉鐜颁环娌℃湁鍙樺寲锛岀洿鎺ヨ繑鍥�
+      if (this.form.xianprice === this.lastXianPrice || !this.form.xianprice) {
+        return;
+      }
+      this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.youhui = currentValue;
+          if (this.youhui < this.getInfodis) {
+            this.youhui = this.getInfodis;
+          }
+          let totalYsprice = new Big(0);
+          this.DataList.forEach((item) => {
+            item.limits = this.youhui;
+            const ordPrice = new Big(item.priceOrd);
+            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();
+              console.log(
+                "hhh",
+                this.DataList[this.DataList.length - 1].priceNow,
+                newYsPrice
+              );
+              this.$set(
+                this.DataList[this.DataList.length - 1],
+                "priceNow",
+                newYsPrice
+              );
+            }
+          }
+          this.lastXianPrice = this.form.xianprice;
+        })
+        .catch(() => {
+          this.youhui = oldValue;
+        });
+    },
     spliceData() {
       for (var i = 0; i < this.DataList.length; i++) {
         for (var j = i + 1; j < this.DataList.length; j++) {
@@ -1463,7 +1225,7 @@
       if (this.keys) {
         this.form.keywords = this.keys; // 濡傛灉鏈� this.keys锛屽垯鐩存帴璧嬪��
       } else {
-        this.form.keywords = this.form.keywords.toString(); // 濡傛灉娌℃湁锛屽垯灏� this.form.keywords 杞垚瀛楃涓�
+        // this.form.keywords = this.form.keywords; // 濡傛灉娌℃湁锛屽垯灏� this.form.keywords 杞垚瀛楃涓�
       }
 
       let packageProjects = []; // 瀹氫箟涓�涓┖鏁扮粍
@@ -1486,7 +1248,7 @@
         price: this.pics,
         pacId: this.form.pacId || null,
         isOnSale: this.form.isOnSale,
-        keywords: this.form.keywords,
+        // keywords: this.form.keywords,
         sort: this.form.sort,
         retailPrice: this.form.retailPrice,
         tjCategory: this.form.tjCategory,
@@ -1577,7 +1339,7 @@
           this.getList();
           this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
         })
-        .catch(() => {});
+        .catch(() => { });
     },
 
     /** 鍒嗛厤濂楅鍐呴」鐩搷浣� */
@@ -1687,11 +1449,13 @@
   left: 40%;
   bottom: 2%;
 }
+
 .tab3 {
   max-height: 400px;
   overflow-y: auto;
   border: 1px solid #d9d9d9;
 }
+
 /* .custom-tree-node {
     flex: 1;
     display: flex;

--
Gitblit v1.8.0