From 319cf42af7648e99693f6eabfec4f842a40ed340 Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期四, 13 三月 2025 16:16:27 +0800
Subject: [PATCH] 1

---
 src/views/doctor/check/index.vue   | 1226 +++++--------------
 src/views/system/tijian/index.vue  |    1 
 vue.config.js                      |    7 
 src/views/123+.vue                 |   73 +
 src/views/system/package/index.vue | 2376 ++++++++++++++++++++++----------------
 5 files changed, 1,790 insertions(+), 1,893 deletions(-)

diff --git a/src/views/123+.vue b/src/views/123+.vue
new file mode 100644
index 0000000..864c6b3
--- /dev/null
+++ b/src/views/123+.vue
@@ -0,0 +1,73 @@
+<template>
+  <div>
+    <h2>DeepSeek 鑱婂ぉ</h2>
+    <textarea v-model="inputMessage" placeholder="璇疯緭鍏ユ秷鎭�"></textarea>
+    <button @click="sendMessage">鍙戦��</button>
+    <p>鍥炲: {{ reply }}</p>
+    <p v-if="error" style="color: red">{{ error }}</p>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Chat',
+  data() {
+    return {
+      inputMessage: '',
+      reply: '',
+      error: ''
+    };
+  },
+  methods: {
+    async sendMessage() {
+      if (!this.inputMessage.trim()) {
+        this.error = '娑堟伅涓嶈兘涓虹┖';
+        return;
+      }
+      this.error = '';
+      this.reply = '';
+
+      try {
+        const response = await fetch('http://localhost:11434/api/chat', {
+          method: 'POST',
+          headers: {
+            'Content-Type': 'application/json'
+          },
+          body: JSON.stringify({
+            model: 'ltkj-jy-ai',
+            messages: [
+              {
+                role: 'system',
+                content: this.inputMessage
+              }
+            ],
+            stream: false
+          })
+        });
+
+        if (!response.ok) {
+          throw new Error('缃戠粶鍝嶅簲閿欒');
+        }
+
+        const data = await response.json();
+        // 浠庤繑鍥炴暟鎹腑鎻愬彇 message.content 浣滀负鍥炲
+        this.reply = data.message?.content || '鏀跺埌鍥炲锛屼絾鏍煎紡鍙兘涓嶆纭�';
+      } catch (err) {
+        this.error = '璇锋眰鍑洪敊: ' + err.message;
+        console.error('Fetch 閿欒:', err);
+      }
+    }
+  }
+};
+</script>
+
+<style scoped>
+textarea {
+  width: 300px;
+  height: 100px;
+  margin-bottom: 10px;
+}
+button {
+  padding: 5px 10px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/doctor/check/index.vue b/src/views/doctor/check/index.vue
index af318a4..71cafef 100644
--- a/src/views/doctor/check/index.vue
+++ b/src/views/doctor/check/index.vue
@@ -1,77 +1,32 @@
 <template>
   <div>
-    <el-form
-      :model="queryParams"
-      ref="tableList"
-      :inline="true"
-      label-width="76px"
-      style="margin-top: 10px"
-    >
+    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
       <el-form-item label="濮撳悕" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          style="width: 116px"
-          placeholder="璇疯緭鍏ュ鍚�"
-          clearable
-          @keyup.enter.native="submitForm"
-        ></el-input>
+        <el-input v-model="queryParams.name" style="width: 116px" placeholder="璇疯緭鍏ュ鍚�" clearable
+          @keyup.enter.native="submitForm"></el-input>
       </el-form-item>
       <el-form-item label="浣撴鍙�" prop="tjNumber">
-        <el-input
-          ref="inputName"
-          v-model="queryParams.tjNumber"
-          style="width: 240px"
-          placeholder="璇疯緭鍏ヤ綋妫�鍙�"
-          clearable
-          @blur="hb"
-          @keyup.enter.native="submitForm"
-        ></el-input>
+        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 240px" placeholder="璇疯緭鍏ヤ綋妫�鍙�" clearable
+          @blur="hb" @keyup.enter.native="submitForm"></el-input>
       </el-form-item>
       <el-form-item>
-        <el-button
-          size="mini"
-          type="primary"
-          @click="submitForm"
-          style="margin-right: 15px"
-          >鎼滅储</el-button
-        >
+        <el-button size="mini" type="primary" @click="submitForm" style="margin-right: 15px">鎼滅储</el-button>
         <el-button size="mini" @click="resetQuery">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
     <div style="display: flex">
-      <el-radio-group
-        v-model="tjStatus"
-        @input="radioChange"
-        style="margin-left: 30px"
-      >
+      <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 30px">
         <el-radio-button label="0">鏈</el-radio-button>
         <el-radio-button label="1">宸叉</el-radio-button>
       </el-radio-group>
     </div>
 
     <template>
-      <el-table
-        :data="tableList"
-        v-loading="loading"
-        ref="table"
-        height="536px"
-        style="margin: 20px; width: 98%"
-        border
-        :cell-class-name="myclass"
-      >
+      <el-table :data="tableList" v-loading="loading" ref="table" height="536px" style="margin: 20px; width: 98%" border
+        :cell-class-name="myclass">
         <!-- <template slot="empty">鏁版嵁姝e湪鍔犺浇涓�</template> -->
-        <el-table-column
-          label="浣撴鍙�"
-          align="center"
-          prop="tjNumber"
-          width="160px"
-        />
-        <el-table-column
-          label="濮撳悕"
-          align="center"
-          prop="cusName"
-          width="90px"
-        />
+        <el-table-column label="浣撴鍙�" align="center" prop="tjNumber" width="160px" />
+        <el-table-column label="濮撳悕" align="center" prop="cusName" width="90px" />
         <el-table-column label="鎬у埆" align="center" prop="cusSex" width="60px">
           <template slot-scope="scope">
             <span v-if="scope.row.cusSex == '0'">鐢�</span>
@@ -80,119 +35,52 @@
             <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span>
           </template>
         </el-table-column>
-        <el-table-column
-          label="鍑虹敓鏃ユ湡"
-          align="center"
-          prop="cusBrithday"
-          width="100px"
-        />
-        <el-table-column
-          label="鐢佃瘽"
-          align="center"
-          prop="cusPhone"
-          width="100px"
-        />
-        <el-table-column
-          label="浣撴绫诲瀷"
-          align="center"
-          prop="tjType"
-          width="80px"
-        />
-        <el-table-column
-          label="鐧昏鏃堕棿"
-          align="center"
-          prop="tjTime"
-          width="160px"
-        >
+        <el-table-column label="鍑虹敓鏃ユ湡" align="center" prop="cusBrithday" width="100px" />
+        <el-table-column label="鐢佃瘽" align="center" prop="cusPhone" width="100px" />
+        <el-table-column label="浣撴绫诲瀷" align="center" prop="tjType" width="80px" />
+        <el-table-column label="鐧昏鏃堕棿" align="center" prop="tjTime" width="160px">
         </el-table-column>
-        <el-table-column
-          label="浣撴鏃堕棿"
-          align="center"
-          prop="tjTime"
-          width="100px"
-        >
+        <el-table-column label="浣撴鏃堕棿" align="center" prop="tjTime" width="100px">
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.tjTime, "{y}-{m}-{d}") }}</span>
           </template>
         </el-table-column>
-        <el-table-column
-          label="鏈椤�"
-          prop="notCheckeds"
-          :show-overflow-tooltip="true"
-        />
+        <el-table-column label="鏈椤�" prop="notCheckeds" :show-overflow-tooltip="true" />
         <el-table-column label="鎿嶄綔" align="center" width="130px">
           <template slot-scope="scope">
-            <el-button
-              type="primary"
-              icon="el-icon-first-aid-kit"
-              size="mini"
-              @click="Changeapplyfor(scope.row)"
-              title="浼氳瘖鐢宠"
-              v-if="tjStatus == '1'"
-            ></el-button>
-            <el-button
-              type="primary"
-              icon="el-icon-share"
-              size="mini"
-              @click="handleClick(scope.row)"
-              title="璇︽儏"
-            ></el-button>
+            <el-button type="primary" icon="el-icon-first-aid-kit" size="mini" @click="Changeapplyfor(scope.row)"
+              title="浼氳瘖鐢宠" v-if="tjStatus == '1'"></el-button>
+            <el-button type="primary" icon="el-icon-share" size="mini" @click="handleClick(scope.row)"
+              title="璇︽儏"></el-button>
           </template>
         </el-table-column>
       </el-table>
 
       <div class="pag">
         <div class="pag1">
-          <pagination
-            v-show="total > 0"
-            :total="total"
-            :page.sync="queryParams.page"
-            :limit.sync="queryParams.pageSize"
-            @pagination="getList"
-          />
+          <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize"
+            @pagination="getList" />
         </div>
       </div>
     </template>
 
-    <el-dialog
-      :title="title"
-      :visible.sync="open"
-      width="1000px"
-      append-to-body
-    >
+    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <el-row>
         <el-col :span="9" v-if="hzlogList.length >= 1">
           <h3>浼氳瘖鐢宠璁板綍</h3>
           <el-table :data="hzlogList" style="width: 100%" border>
-            <el-table-column
-              label="鐢宠浜�"
-              align="center"
-              prop="hzDoctorName"
-              width="100px"
-            />
+            <el-table-column label="鐢宠浜�" align="center" prop="hzDoctorName" width="100px" />
             <el-table-column label="绉戝" align="center" prop="hzDeptName" />
             <el-table-column label="鎿嶄綔" align="center" width="150px">
               <template slot-scope="scope">
-                <el-button
-                  type="primary"
-                  size="mini"
-                  @click="hadleedit(scope.row)"
-                  v-if="
-                    scope.row.hzReplyLogsList.length == 0 &&
-                    scope.row.hzDoctorId == info.userId
-                  "
-                  >淇敼</el-button
-                >
-                <el-button
-                  type="primary"
-                  size="mini"
-                  v-if="
-                    scope.row.hzReplyLogsList.length == 0 &&
-                    scope.row.hzDoctorId == info.userId
-                  "
-                  @click="handledele(scope.row)"
-                  >鍒犻櫎</el-button
-                >
+                <el-button type="primary" size="mini" @click="hadleedit(scope.row)" v-if="
+                  scope.row.hzReplyLogsList.length == 0 &&
+                  scope.row.hzDoctorId == info.userId
+                ">淇敼</el-button>
+                <el-button type="primary" size="mini" v-if="
+                  scope.row.hzReplyLogsList.length == 0 &&
+                  scope.row.hzDoctorId == info.userId
+                " @click="handledele(scope.row)">鍒犻櫎</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -201,18 +89,10 @@
           <h3 style="text-align: center">浼氳瘖璁板綍鐢宠</h3>
           <el-form ref="form" :model="form" :rules="rules" label-width="80px">
             <el-form-item label="濮撳悕" prop="cusName">
-              <el-input
-                v-model="form.cusName"
-                placeholder="璇疯緭鍏ュ鍚�"
-                disabled
-              />
+              <el-input v-model="form.cusName" placeholder="璇疯緭鍏ュ鍚�" disabled />
             </el-form-item>
             <el-form-item label="浣撴鍙�" prop="tjNumber">
-              <el-input
-                v-model="form.tjNumber"
-                placeholder="璇疯緭鍏ヤ綋妫�鍙�"
-                disabled
-              />
+              <el-input v-model="form.tjNumber" placeholder="璇疯緭鍏ヤ綋妫�鍙�" disabled />
             </el-form-item>
             <el-form-item label="浼氳瘖绉戝" prop="hzType">
               <el-radio-group v-model="form.hzType">
@@ -220,42 +100,15 @@
                 <el-radio-button label="1">绉戝浼氳瘖</el-radio-button>
               </el-radio-group>
             </el-form-item>
-            <el-form-item
-              label="閫夋嫨绉戝"
-              v-if="form.hzType == '1'"
-              style="margin-top: 22px"
-            >
-              <el-select
-                v-model="form.hzDeptId"
-                multiple
-                filterable
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in deptList"
-                  :key="item.deptId"
-                  :label="item.deptName"
-                  :value="item.deptId"
-                ></el-option>
+            <el-form-item label="閫夋嫨绉戝" v-if="form.hzType == '1'" style="margin-top: 22px">
+              <el-select v-model="form.hzDeptId" multiple filterable style="width: 100%">
+                <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName"
+                  :value="item.deptId"></el-option>
               </el-select>
             </el-form-item>
-            <el-form-item
-              label="鐢宠浜�"
-              prop="hzDoctorId"
-              style="margin-top: 22px"
-            >
-              <el-select
-                v-model="form.hzDoctorId"
-                placeholder="璇烽�夋嫨"
-                style="width: 100%"
-                filterable
-              >
-                <el-option
-                  v-for="item in userList"
-                  :key="item.userId"
-                  :label="item.nickName"
-                  :value="item.userId"
-                >
+            <el-form-item label="鐢宠浜�" prop="hzDoctorId" style="margin-top: 22px">
+              <el-select v-model="form.hzDoctorId" placeholder="璇烽�夋嫨" style="width: 100%" filterable>
+                <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
                 </el-option>
               </el-select>
             </el-form-item>
@@ -272,56 +125,27 @@
       </div>
     </el-dialog>
 
-    <el-dialog
-      :title="title"
-      :visible.sync="foropen"
-      width="1000px"
-      append-to-body
-    >
+    <el-dialog :title="title" :visible.sync="foropen" width="1000px" append-to-body>
       <el-row>
         <el-col :span="8" v-if="hasdeptList.length >= 1">
           <h3 style="text-align: center">浼氳瘖鐢宠璁板綍</h3>
-          <el-table
-            :data="hasdeptList"
-            style="width: 100%"
-            border
-            ref="tab"
-            @selection-change="handleSelectionChange"
-          >
+          <el-table :data="hasdeptList" style="width: 100%" border ref="tab" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="50" align="center" />
-            <el-table-column
-              label="鐢宠浜�"
-              align="center"
-              prop="hzDoctorName"
-              width="100px"
-            />
-            <el-table-column
-              label="绉戝"
-              align="center"
-              prop="hzDeptName"
-              width="260px"
-            />
+            <el-table-column label="鐢宠浜�" align="center" prop="hzDoctorName" width="100px" />
+            <el-table-column label="绉戝" align="center" prop="hzDeptName" width="260px" />
           </el-table>
         </el-col>
         <el-col :span="16" style="padding: 0 10px">
           <h3 style="text-align: center">浼氳瘖鎰忚</h3>
           <div v-if="hzReplyLogsList.length >= 1" style="margin-bottom: 10px">
-            <div
-              v-for="(item, index) in hzReplyLogsList"
-              :key="index"
-              style="padding-bottom: 5px; border-bottom: 1px solid black"
-            >
+            <div v-for="(item, index) in hzReplyLogsList" :key="index"
+              style="padding-bottom: 5px; border-bottom: 1px solid black">
               <!-- <div>浼氳瘖绉戝锛歿{ item.replyDeptName }}</div> -->
               <div>鍖荤敓锛歿{ item.hzDoctorName }}</div>
               <div>鍥炲锛歿{ item.replyContent }}</div>
             </div>
           </div>
-          <el-input
-            type="textarea"
-            :rows="2"
-            placeholder="璇疯緭鍏ュ唴瀹�"
-            v-model="textarea"
-          >
+          <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="textarea">
           </el-input>
           <div style="padding: 10px 10px">
             <el-button type="primary" @click="submitFormreply">鍥炲</el-button>
@@ -330,12 +154,7 @@
       </el-row>
     </el-dialog>
 
-    <el-dialog
-      title="濉啓鏄惁閲嶅ぇ闃虫��"
-      :visible.sync="checkval"
-      width="800px"
-      append-to-body
-    >
+    <el-dialog title="濉啓鏄惁閲嶅ぇ闃虫��" :visible.sync="checkval" width="800px" append-to-body>
       <el-form ref="form" :model="formIn" label-width="100px">
         <el-form-item label="濮撳悕">
           <el-input v-model="formIn.cusName" disabled></el-input>
@@ -356,18 +175,8 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="绛夌骇">
-          <el-select
-            v-model="formIn.level"
-            placeholder="璇烽�夋嫨"
-            filterable
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in dict.type.lj_positive"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+          <el-select v-model="formIn.level" placeholder="璇烽�夋嫨" filterable style="width: 100%">
+            <el-option v-for="item in dict.type.lj_positive" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
@@ -381,31 +190,16 @@
       </div>
     </el-dialog>
 
-    <el-dialog
-      title="PDF 棰勮"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-    >
+    <el-dialog title="PDF 棰勮" :visible.sync="dialogVisible" :close-on-click-modal="false">
       <div class="main">
-        <iframe
-          id="printIframe"
-          :src="url"
-          frameborder="0"
-          style="width: 100%; height: 100%"
-        ></iframe>
+        <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe>
       </div>
     </el-dialog>
 
     <!-- 鐐瑰嚮鍙宠竟寮瑰嚭灞� -->
-    <el-drawer
-      :visible.sync="drawer"
-      :with-header="false"
-      size="70%"
-      :before-close="handleClose"
-    >
+    <el-drawer :visible.sync="drawer" :with-header="false" size="70%" :before-close="handleClose">
       <div style="font-size: 14px">
-        <table
-          style="
+        <table style="
             width: 96%;
             height: 70px;
             margin: 10px 10px;
@@ -413,19 +207,14 @@
             border: 1px solid #dfe6ec;
             border-collapse: collapse;
             font-size: 16px;
-          "
-          cellspacing="4"
-        >
+          " cellspacing="4">
           <caption style="background-color: #f8f8f9; font-size: 18px">
             濉啓{{
               tableAll.cusName
             }}鐨勪綋妫�璧勬枡
           </caption>
           <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               濮撳悕锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
@@ -437,10 +226,7 @@
                 <span v-if="scope.row.cusSex == '9'">鏈鏄庢�у埆</span>
               </template>
             </td>
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               鎬у埆锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
@@ -448,25 +234,19 @@
                 tableAll.cusSex == 0
                   ? "鐢�"
                   : tableAll.cusSex == 1
-                  ? "濂�"
-                  : "鏈煡"
+                    ? "濂�"
+                    : "鏈煡"
               }}
             </td>
           </tr>
           <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               浣撴鍗曞彿锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
               {{ tableAll.tjNumber }}
             </td>
-            <td
-              style="border: 1px solid #dfe6ec; border-collapse: collapse"
-              align="right"
-            >
+            <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right">
               浣撴鏃堕棿锛�
             </td>
             <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
@@ -477,150 +257,67 @@
       </div>
       <div style="display: flex">
         <div style="margin: 10px 10px" v-if="hasdeptList.length >= 1">
-          <el-button type="primary" size="mini" @click="Changeapply()"
-            >浼氳瘖鐢宠</el-button
-          >
+          <el-button type="primary" size="mini" @click="Changeapply()">浼氳瘖鐢宠</el-button>
         </div>
         <div style="margin: 10px 10px">
-          <el-button type="primary" size="mini" @click="historicalreport()"
-            >鍘嗗彶鎶ュ憡</el-button
-          >
+          <el-button type="primary" size="mini" @click="historicalreport()">鍘嗗彶鎶ュ憡</el-button>
         </div>
         <div style="margin: 10px 10px">
-          <el-button type="primary" size="mini" @click="jianqian"
-            >妫�鍓嶉棶璇�</el-button
-          >
+          <el-button type="primary" size="mini" @click="jianqian">妫�鍓嶉棶璇�</el-button>
         </div>
         <div style="margin: 10px 10px">
-          <el-button type="primary" size="mini" @click="result"
-            >妫�鏌ユ楠岀粨鏋�</el-button
-          >
+          <el-button type="primary" size="mini" @click="result">妫�鏌ユ楠岀粨鏋�</el-button>
         </div>
       </div>
 
       <el-row>
         <el-col v-show="baogaoqian">
           <template>
-            <el-tabs
-              v-model="radio"
-              type="border-card"
-              @tab-click="handleTabClick"
-              style="margin-left: 10px"
-            >
-              <el-tab-pane
-                :label="item.proName"
-                :name="item.proId"
-                v-for="(item, index) in Parent"
-                :key="index"
-              >
-                <el-table
-                  class="bgc"
-                  v-loading="loading"
-                  :data="proParentList.sons"
-                  border
-                  height="460px"
-                  style="width: 96%; margin: 10px 10px"
-                  :row-class-name="tableRowClassName"
-                >
-                  <el-table-column
-                    prop="project.proName"
-                    label="妫�娴嬮」鐩�"
-                    width="150"
-                  >
+            <el-tabs v-model="radio" type="border-card" @tab-click="handleTabClick" style="margin-left: 10px">
+              <el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index">
+                <el-table class="bgc" v-loading="loading" :data="proParentList.sons" border height="460px"
+                  style="width: 96%; margin: 10px 10px" :row-class-name="tableRowClassName">
+                  <el-table-column prop="project.proName" label="妫�娴嬮」鐩�" width="150">
                   </el-table-column>
-                  <el-table-column
-                    prop="proResult"
-                    label="妫�娴嬬粨鏋�"
-                    width="150"
-                  >
+                  <el-table-column prop="proResult" label="妫�娴嬬粨鏋�" width="150">
                     <template slot-scope="scope">
-                      <el-input
-                        type="textarea"
-                        autosize
-                        size="mini"
-                        v-model="scope.row.proResult"
-                        autocomplete="off"
-                        placeholder="璇疯緭鍏ユ娴嬬粨鏋�"
-                        @focus="handleFocus(scope.row)"
-                        @blur="handleInputConfirm(scope.row)"
-                        @input="vale"
-                      ></el-input>
+                      <el-input type="textarea" autosize size="mini" v-model="scope.row.proResult" autocomplete="off"
+                        placeholder="璇疯緭鍏ユ娴嬬粨鏋�" @focus="handleFocus(scope.row)" @blur="handleInputConfirm(scope.row)"
+                        @input="vale($event, scope.row)" :disabled="scope.row.project.proName === 'BMI'"
+                        ></el-input>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    prop="exceptionDesc"
-                    label="寮傚父"
-                    width="55px"
-                    align="center"
-                  >
+                  <el-table-column prop="exceptionDesc" label="寮傚父" width="55px" align="center">
                     <template slot-scope="scope">
-                      <el-checkbox
-                        v-model="scope.row.exceptionDesc"  @change="changDesc(scope.row)"
-                      ></el-checkbox>
+                      <el-checkbox v-model="scope.row.exceptionDesc" @change="changDesc(scope.row)"></el-checkbox>
                     </template>
                   </el-table-column>
                   <el-table-column label="瑙勫垯" width="70">
                     <template slot-scope="scope">
-                      <el-button
-                        class="blue-button"
-                        @click="handleguize(scope.row)"
-                        >...</el-button
-                      >
+                      <el-button class="blue-button" @click="handleguize(scope.row)">...</el-button>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    prop="project.proMetering"
-                    label="鍗曚綅"
-                    width="55"
-                  >
+                  <el-table-column prop="project.proMetering" label="鍗曚綅" width="55">
                   </el-table-column>
-                  <el-table-column
-                    prop="project.proScope"
-                    label="鍙傝�冭寖鍥�"
-                    width="70"
-                  >
+                  <el-table-column prop="project.proScope" label="鍙傝�冭寖鍥�" width="70">
                   </el-table-column>
-                  <el-table-column
-                    prop="conclusion"
-                    label="缁撴灉缁撹"
-                    width="200"
-                  >
+                  <el-table-column prop="conclusion" label="缁撴灉缁撹" width="200">
                     <template slot-scope="scope">
-                      <el-input
-                        size="mini"
-                        type="textarea"
-                        autosize
-                        v-model="scope.row.conclusion"
-                        autocomplete="off"
-                        placeholder="璇疯緭鍏ョ粨鏋滅粨璁�"
-                        disabled
-                      ></el-input>
+                      <el-input size="mini" type="textarea" autosize v-model="scope.row.conclusion" autocomplete="off"
+                        placeholder="璇疯緭鍏ョ粨鏋滅粨璁�" disabled></el-input>
                     </template>
                   </el-table-column>
 
-                  <el-table-column
-                    prop="isReturn"
-                    label="澶嶈瘖"
-                    width="60px"
-                    align="center"
-                  >
+                  <el-table-column prop="isReturn" label="澶嶈瘖" width="60px" align="center">
                     <template slot-scope="scope">
                       <el-checkbox v-model="scope.row.isReturn"></el-checkbox>
                     </template>
                   </el-table-column>
 
-                  <el-table-column
-                    prop="isPositive"
-                    label="閲嶅ぇ闃虫��"
-                    width="55"
-                  >
+                  <el-table-column prop="isPositive" label="閲嶅ぇ闃虫��" width="55">
                     <template slot-scope="scope">
-                      <el-switch
-                        v-model="scope.row.isPositive"
-                        active-value="1"
-                        inactive-value="0"
-                        @change="checkboxchange(scope.row)"
-                      ></el-switch>
+                      <el-switch v-model="scope.row.isPositive" active-value="1" inactive-value="0"
+                        @change="checkboxchange(scope.row)"></el-switch>
                     </template>
                   </el-table-column>
                   <el-table-column prop="proAdvice" label="缁撴灉寤鸿">
@@ -630,143 +327,84 @@
                           {{ scope.row.proAdvice }}
                         </div>
                         <div slot="reference" class="jianyi">
-                          <el-input
-                            type="textarea"
-                            autosize
-                            v-model="scope.row.proAdvice"
-                            placeholder="璇疯緭鍏ョ粨鏋滃缓璁�"
-                            :disabled="true"
-                          ></el-input>
+                          <el-input type="textarea" autosize v-model="scope.row.proAdvice" placeholder="璇疯緭鍏ョ粨鏋滃缓璁�"
+                            :disabled="true"></el-input>
                         </div>
                       </el-popover>
                     </template>
                   </el-table-column>
                 </el-table>
 
-                <div
-                  style="font-size: 14px; overflow-y: auto; height: 286px"
-                  class="a"
-                >
-                  <table
-                    style="
+                <div style="font-size: 14px; overflow-y: auto; height: 286px" class="a">
+                  <table style="
                       width: 96%;
                       margin: 4px 10px;
                       border: 1px solid #dfe6ec;
                       border-collapse: collapse;
-                    "
-                    cellspacing="4"
-                  >
-                    <tr
-                      style="
+                    " cellspacing="4">
+                    <tr style="
                         border: 1px solid #dfe6ec;
                         border-collapse: collapse;
-                      "
-                    >
-                      <td
-                        style="
+                      ">
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
+                        ">
                         鐥呯閫夋嫨锛�
                       </td>
-                      <td
-                        @click="bzxz"
-                        style="
+                      <td @click="bzxz" style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
-                        <el-input
-                          type="textarea"
-                          placeholder="璇烽�夋嫨鍐呭"
-                          v-model="titles"
-                          rows="2"
-                        >
+                        ">
+                        <el-input type="textarea" placeholder="璇烽�夋嫨鍐呭" v-model="titles" rows="2">
                         </el-input>
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
+                        ">
                         涓绘鍖诲笀锛�
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
-                        <el-select
-                          v-model="doctorName"
-                          placeholder="璇烽�夋嫨"
-                          style="width: 100%"
-                          v-if="deptAdviceList"
-                          @change="selName"
-                          filterable
-                        >
-                          <el-option
-                            v-for="item in userList"
-                            :key="item.userId"
-                            :label="item.nickName"
-                            :value="item.userId"
-                          >
+                        ">
+                        <el-select v-model="doctorName" placeholder="璇烽�夋嫨" style="width: 100%" v-if="deptAdviceList"
+                          @change="selName" filterable>
+                          <el-option v-for="item in userList" :key="item.userId" :label="item.nickName"
+                            :value="item.userId">
                           </el-option>
                         </el-select>
                       </td>
                     </tr>
-                    <tr
-                      style="
+                    <tr style="
                         border: 1px solid #dfe6ec;
                         border-collapse: collapse;
-                      "
-                    >
-                      <td
-                        style="
+                      ">
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
+                        ">
                         寤鸿锛�
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                        colspan="2"
-                      >
+                        " colspan="2">
                         <div style="margin: 0 0px 10px 15px">
-                          <el-button
-                            type="primary"
-                            @click="propoChange"
-                            style="margin-top: 10px; height: 37px"
-                            >蹇嵎寤鸿</el-button
-                          >
-                          <el-button
-                            type="primary"
-                            @click="proposalChange"
-                            style="margin-top: 10px; height: 37px"
-                            >鐢熸垚寤鸿</el-button
-                          >
+                          <el-button type="primary" @click="propoChange"
+                            style="margin-top: 10px; height: 37px">蹇嵎寤鸿</el-button>
+                          <el-button type="primary" @click="proposalChange"
+                            style="margin-top: 10px; height: 37px">鐢熸垚寤鸿</el-button>
                         </div>
-                        <el-input
-                          type="textarea"
-                          placeholder="璇疯緭鍏ュ唴瀹�"
-                          v-model="proParentList.remark"
-                          rows="7"
-                        >
+                        <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="proParentList.remark" rows="7">
                         </el-input>
                       </td>
                     </tr>
                   </table>
 
                   <div slot="footer" class="dialog-footers1">
-                    <el-button type="primary" @click="determine"
-                      >鎻� 浜�</el-button
-                    >
+                    <el-button type="primary" @click="determine">鎻� 浜�</el-button>
                   </div>
                 </div>
               </el-tab-pane>
@@ -775,109 +413,44 @@
         </el-col>
         <el-col :span="18" v-show="baogaohou">
           <template>
-            <el-tabs
-              v-model="radio"
-              type="border-card"
-              @tab-click="handleTabClick"
-              style="margin-left: 10px"
-            >
-              <el-tab-pane
-                :label="item.proName"
-                :name="item.proId"
-                v-for="(item, index) in Parent"
-                :key="index"
-              >
-                <el-table
-                  class="bgc"
-                  v-loading="loading"
-                  :data="proParentList.sons"
-                  border
-                  height="460px"
-                  style="width: 96%; margin: 10px 10px"
-                  :row-class-name="tableRowClassName"
-                >
-                  <el-table-column
-                    prop="project.proName"
-                    label="妫�娴嬮」鐩�"
-                    width="100"
-                  >
+            <el-tabs v-model="radio" type="border-card" @tab-click="handleTabClick" style="margin-left: 10px">
+              <el-tab-pane :label="item.proName" :name="item.proId" v-for="(item, index) in Parent" :key="index">
+                <el-table class="bgc" v-loading="loading" :data="proParentList.sons" border height="460px"
+                  style="width: 96%; margin: 10px 10px" :row-class-name="tableRowClassName">
+                  <el-table-column prop="project.proName" label="妫�娴嬮」鐩�" width="100">
                   </el-table-column>
-                  <el-table-column
-                    prop="proResult"
-                    label="妫�娴嬬粨鏋�"
-                    width="150"
-                  >
+                  <el-table-column prop="proResult" label="妫�娴嬬粨鏋�" width="150">
                     <template slot-scope="scope">
-                      <el-input
-                        type="textarea"
-                        autosize
-                        size="mini"
-                        v-model="scope.row.proResult"
-                        autocomplete="off"
-                        placeholder="璇疯緭鍏ユ娴嬬粨鏋�"
-                        @focus="handleFocus(scope.row)"
-                        @blur="handleInputConfirm(scope.row)"
-                        @input="vale"
-                      ></el-input>
+                      <el-input type="textarea" autosize size="mini" v-model="scope.row.proResult" autocomplete="off"
+                        placeholder="璇疯緭鍏ユ娴嬬粨鏋�" @focus="handleFocus(scope.row)" @blur="handleInputConfirm(scope.row)"
+                        @input="vale"></el-input>
                     </template>
                   </el-table-column>
                   <el-table-column label="瑙勫垯" width="70">
                     <template slot-scope="scope">
-                      <el-button
-                        class="blue-button"
-                        @click="handleguize(scope.row)"
-                        >...</el-button
-                      >
+                      <el-button class="blue-button" @click="handleguize(scope.row)">...</el-button>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    prop="project.proMetering"
-                    label="鍗曚綅"
-                    width="55"
-                  >
+                  <el-table-column prop="project.proMetering" label="鍗曚綅" width="55">
                   </el-table-column>
-                  <el-table-column
-                    prop="project.proScope"
-                    label="鍙傝�冭寖鍥�"
-                    width="80"
-                  >
+                  <el-table-column prop="project.proScope" label="鍙傝�冭寖鍥�" width="80">
                   </el-table-column>
 
-                  <el-table-column
-                    prop="exceptionDesc"
-                    label="寮傚父"
-                    width="55px"
-                    align="center"
-                  >
+                  <el-table-column prop="exceptionDesc" label="寮傚父" width="55px" align="center">
                     <template slot-scope="scope">
-                      <el-checkbox
-                        v-model="scope.row.exceptionDesc"
-                      ></el-checkbox>
+                      <el-checkbox v-model="scope.row.exceptionDesc"></el-checkbox>
                     </template>
                   </el-table-column>
-                  <el-table-column
-                    prop="isReturn"
-                    label="澶嶈瘖"
-                    width="55px"
-                    align="center"
-                  >
+                  <el-table-column prop="isReturn" label="澶嶈瘖" width="55px" align="center">
                     <template slot-scope="scope">
                       <el-checkbox v-model="scope.row.isReturn"></el-checkbox>
                     </template>
                   </el-table-column>
 
-                  <el-table-column
-                    prop="isPositive"
-                    label="閲嶅ぇ闃虫��"
-                    width="55"
-                  >
+                  <el-table-column prop="isPositive" label="閲嶅ぇ闃虫��" width="55">
                     <template slot-scope="scope">
-                      <el-switch
-                        v-model="scope.row.isPositive"
-                        active-value="1"
-                        inactive-value="0"
-                        @change="checkboxchange(scope.row)"
-                      ></el-switch>
+                      <el-switch v-model="scope.row.isPositive" active-value="1" inactive-value="0"
+                        @change="checkboxchange(scope.row)"></el-switch>
                     </template>
                   </el-table-column>
                   <el-table-column prop="proAdvice" label="缁撴灉寤鸿">
@@ -887,13 +460,8 @@
                           {{ scope.row.proAdvice }}
                         </div>
                         <div slot="reference" class="jianyi">
-                          <el-input
-                            type="textarea"
-                            autosize
-                            v-model="scope.row.proAdvice"
-                            placeholder="璇疯緭鍏ョ粨鏋滃缓璁�"
-                            :disabled="true"
-                          ></el-input>
+                          <el-input type="textarea" autosize v-model="scope.row.proAdvice" placeholder="璇疯緭鍏ョ粨鏋滃缓璁�"
+                            :disabled="true"></el-input>
                         </div>
                       </el-popover>
                     </template>
@@ -901,41 +469,27 @@
                 </el-table>
 
                 <div style="font-size: 14px; overflow-y: auto; height: 286px">
-                  <table
-                    style="
+                  <table style="
                       width: 96%;
                       margin: 4px 10px;
                       border: 1px solid #dfe6ec;
                       border-collapse: collapse;
-                    "
-                    cellspacing="4"
-                  >
-                    <tr
-                      style="
+                    " cellspacing="4">
+                    <tr style="
                         border: 1px solid #dfe6ec;
                         border-collapse: collapse;
-                      "
-                    >
-                      <td
-                        style="
+                      ">
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
+                        ">
                         鐥呯閫夋嫨锛�
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
-                        <el-input
-                          type="textarea"
-                          placeholder="璇烽�夋嫨鍐呭"
-                          v-model="titles"
-                          rows="2"
-                        >
+                        ">
+                        <el-input type="textarea" placeholder="璇烽�夋嫨鍐呭" v-model="titles" rows="2">
                         </el-input>
                         <!-- <el-select
                           v-model="value"
@@ -955,88 +509,52 @@
                           </el-option>
                         </el-select> -->
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
+                        ">
                         涓绘鍖诲笀锛�
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
-                        <el-select
-                          v-model="doctorName"
-                          placeholder="璇烽�夋嫨"
-                          style="width: 100%"
-                          v-if="deptAdviceList"
-                          @change="selName"
-                          filterable
-                        >
-                          <el-option
-                            v-for="item in userList"
-                            :key="item.userId"
-                            :label="item.nickName"
-                            :value="item.userId"
-                          >
+                        ">
+                        <el-select v-model="doctorName" placeholder="璇烽�夋嫨" style="width: 100%" v-if="deptAdviceList"
+                          @change="selName" filterable>
+                          <el-option v-for="item in userList" :key="item.userId" :label="item.nickName"
+                            :value="item.userId">
                           </el-option>
                         </el-select>
                       </td>
                     </tr>
-                    <tr
-                      style="
+                    <tr style="
                         border: 1px solid #dfe6ec;
                         border-collapse: collapse;
-                      "
-                    >
+                      ">
                       <div style="margin: 0 0px 10px 15px">
-                        <el-button
-                          type="primary"
-                          @click="propoChange"
-                          style="margin-top: 10px; height: 37px"
-                          >蹇嵎寤鸿</el-button
-                        >
-                        <el-button
-                          type="primary"
-                          @click="proposalChange"
-                          style="margin-top: 10px; height: 37px"
-                          >鐢熸垚寤鸿</el-button
-                        >
+                        <el-button type="primary" @click="propoChange"
+                          style="margin-top: 10px; height: 37px">蹇嵎寤鸿</el-button>
+                        <el-button type="primary" @click="proposalChange"
+                          style="margin-top: 10px; height: 37px">鐢熸垚寤鸿</el-button>
                       </div>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                      >
+                        ">
                         寤鸿锛�
                       </td>
-                      <td
-                        style="
+                      <td style="
                           border: 1px solid #dfe6ec;
                           border-collapse: collapse;
-                        "
-                        colspan="2"
-                      >
-                        <el-input
-                          type="textarea"
-                          placeholder="璇疯緭鍏ュ唴瀹�"
-                          v-model="proParentList.remark"
-                          rows="7"
-                        >
+                        " colspan="2">
+                        <el-input type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" v-model="proParentList.remark" rows="7">
                         </el-input>
                       </td>
                     </tr>
                   </table>
 
                   <div slot="footer" class="dialog-footers">
-                    <el-button type="primary" @click="determine"
-                      >鎻� 浜�</el-button
-                    >
+                    <el-button type="primary" @click="determine">鎻� 浜�</el-button>
                   </div>
                 </div>
               </el-tab-pane>
@@ -1044,25 +562,14 @@
           </template>
         </el-col>
         <el-col :span="6" style="margin-top: 15px">
-          <Historicalreport
-            v-show="lishi"
-            :reportHistorydata="reportHistorydata"
-          ></Historicalreport>
+          <Historicalreport v-show="lishi" :reportHistorydata="reportHistorydata"></Historicalreport>
         </el-col>
       </el-row>
     </el-drawer>
     <Public ref="aaa" :row="row" @add="handleChanges" />
     <jianceResult ref="bbb" @add="handleChangesZt" />
-    <el-dialog
-      title="鎻愮ず"
-      :visible.sync="jianqians"
-      width="1000px"
-      :before-close="handleClose1"
-    >
-      <jianqianwenzhen
-        :jianqianwenzhendata="jianqianwenzhendata"
-        v-if="flags"
-      ></jianqianwenzhen>
+    <el-dialog title="鎻愮ず" :visible.sync="jianqians" width="1000px" :before-close="handleClose1">
+      <jianqianwenzhen :jianqianwenzhendata="jianqianwenzhendata" v-if="flags"></jianqianwenzhen>
       <span slot="footer" class="dialog-footer">
         <el-button @click="jianqians = false">鍙� 娑�</el-button>
       </span>
@@ -1072,50 +579,20 @@
 
     <!-- 妫�鏌ユ楠岀粨鏋滄寜閽殑寮规 -->
     <el-dialog title="妫�鏌ユ楠岀粨鏋�" :visible.sync="openOne" width="80%">
-      <div
-        style="
+      <div style="
           width: 100%;
           margin-left: 10px;
           display: flex;
           justify-content: space-around;
-        "
-      >
+        ">
         <div style="width: 44%">
-          <el-table
-            v-loading="loading"
-            border
-            :data="xiangmuList"
-            height="520"
-            ref="tab1"
-            highlight-current-row
-          >
-            <el-table-column
-              label="绉戝"
-              align="center"
-              prop="deptName"
-              width="100"
-              :show-overflow-tooltip="true"
-            />
-            <el-table-column
-              label="椤圭洰"
-              align="center"
-              prop="proName"
-              width="150"
-              :show-overflow-tooltip="true"
-            />
-            <el-table-column
-              label="鐘舵��"
-              align="center"
-              prop="type"
-              :show-overflow-tooltip="true"
-              width="100"
-            >
+          <el-table v-loading="loading" border :data="xiangmuList" height="520" ref="tab1" highlight-current-row>
+            <el-table-column label="绉戝" align="center" prop="deptName" width="100" :show-overflow-tooltip="true" />
+            <el-table-column label="椤圭洰" align="center" prop="proName" width="150" :show-overflow-tooltip="true" />
+            <el-table-column label="鐘舵��" align="center" prop="type" :show-overflow-tooltip="true" width="100">
               <template slot-scope="scope">
-                <span
-                  v-if="scope.row.type == '0'"
-                  :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }"
-                >
-                  {{ type == 0 ? "鏈�  妫�" : "鍦�  妫�" }}
+                <span v-if="scope.row.type == '0'" :style="type == 0 ? { color: 'red' } : { color: '#409EFF' }">
+                  {{ type == 0 ? "鏈� 妫�" : "鍦� 妫�" }}
                 </span>
                 <span v-if="scope.row.type == '1'">宸插畬鎴�</span>
                 <span v-if="scope.row.type == '2'">寮冩</span>
@@ -1123,12 +600,7 @@
               </template>
             </el-table-column>
 
-            <el-table-column
-              label="妫�鏌ユ椂闂�"
-              align="center"
-              prop="bcupdateTime"
-              width="160"
-            />
+            <el-table-column label="妫�鏌ユ椂闂�" align="center" prop="bcupdateTime" width="160" />
 
             <el-table-column label="鎿嶄綔" align="center" width="120px">
               <template slot-scope="scope">
@@ -1140,13 +612,8 @@
                   >{{ scope.row.type === 0 ? "寮冩" : "鎭㈠" }}</el-button
                 > -->
 
-                <el-button
-                  size="mini"
-                  type="text"
-                  :disabled="scope.row.type === 0 || scope.row.type === 2"
-                  @click="queryResultone(scope.row)"
-                  >缁撴灉鏌ヨ</el-button
-                >
+                <el-button size="mini" type="text" :disabled="scope.row.type === 0 || scope.row.type === 2"
+                  @click="queryResultone(scope.row)">缁撴灉鏌ヨ</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -1157,15 +624,8 @@
           </div>
           <div class="a">
             <div v-if="jyjc == 0">
-              <el-table
-                :data="jieguoList"
-                border
-                :row-style="changRed"
-                height="520"
-                highlight-current-row
-                style="width: 100%"
-                :header-cell-style="{ background: '#AAD8DF' }"
-              >
+              <el-table :data="jieguoList" border :row-style="changRed" height="520" highlight-current-row
+                style="width: 100%" :header-cell-style="{ background: '#AAD8DF' }">
                 <el-table-column label="妫�娴嬮」鐩�" prop="pro_name">
                 </el-table-column>
                 <el-table-column label="妫�娴嬬粨鏋�" prop="pro_result">
@@ -1180,20 +640,14 @@
               <div class="check-result-container">
                 <div class="check-item">
                   <div class="check-title">妫�鏌ユ墍瑙侊細</div>
-                  <div
-                    class="check-description"
-                    :style="{ color: isRed ? 'red' : '' }"
-                  >
+                  <div class="check-description" :style="{ color: isRed ? 'red' : '' }">
                     {{ jieguoList[0].pro_result }}
                   </div>
                 </div>
 
                 <div class="check-item">
                   <div class="check-title">妫�鏌ョ粨璁猴細</div>
-                  <div
-                    class="check-description"
-                    :style="{ color: isRed ? 'red' : '' }"
-                  >
+                  <div class="check-description" :style="{ color: isRed ? 'red' : '' }">
                     {{ jieguoList[0].yxzd || "鏆傛棤缁撹" }}
                   </div>
                 </div>
@@ -1204,19 +658,9 @@
       </div>
     </el-dialog>
 
-    <el-dialog
-      title="閫夋嫨鐥呯"
-      :visible.sync="taocan"
-      width="80%"
-      height="700px"
-      :close-on-click-modal="false"
-    >
-      <el-tabs
-        type="border-card"
-        style="min-height: 538px; margin: 0 10px; width: 100%"
-        @tab-click="handleClick"
-        v-model="activeNames"
-      >
+    <el-dialog title="閫夋嫨鐥呯" :visible.sync="taocan" width="80%" height="700px" :close-on-click-modal="false">
+      <el-tabs type="border-card" style="min-height: 538px; margin: 0 10px; width: 100%" @tab-click="handleClick"
+        v-model="activeNames">
         <el-tab-pane label="鐥呯" name="first">
           <div class="tab8">
             <div class="tab3">
@@ -1238,6 +682,7 @@
                 </el-form-item>
 
                 <el-form-item>
+<<<<<<< HEAD
                   <el-button
                     type="primary"
                     icon="el-icon-search"
@@ -1254,28 +699,20 @@
                 height="430px"
                 @selection-change="handleSelectionChanges"
               >
+=======
+                  <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuerys">鎼滅储</el-button>
+                </el-form-item>
+              </el-form>
+              <el-table ref="multipleTable" border :data="deptAdviceList" height="430px"
+                @selection-change="handleSelectionChanges">
+>>>>>>> 2f0aa78 (1)
                 <el-table-column type="selection" width="40"> </el-table-column>
-                <el-table-column
-                  prop="title"
-                  label="鐥呯鍚嶇О"
-                  align="center"
-                  width="130px"
-                ></el-table-column>
-                <el-table-column
-                  prop="advice"
-                  label="寤鸿"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column prop="title" label="鐥呯鍚嶇О" align="center" width="130px"></el-table-column>
+                <el-table-column prop="advice" label="寤鸿" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
               </el-table>
-              <pagination
-                v-show="total1 > 0"
-                :total="total1"
-                :page.sync="queryParam1.page"
-                :limit.sync="queryParam1.pageSize"
-                @pagination="getbzlist"
-              />
+              <pagination v-show="total1 > 0" :total="total1" :page.sync="queryParam1.page"
+                :limit.sync="queryParam1.pageSize" @pagination="getbzlist" />
             </div>
             <div class="tab4">
               <div class="tab4_txt">
@@ -1285,21 +722,11 @@
               <el-table border :data="deptAdviceList1" height="430px">
                 <el-table-column prop="title" label="鐥呯鍚嶇О" align="center">
                 </el-table-column>
-                <el-table-column
-                  label="鎿嶄綔"
-                  align="center"
-                  fixed="right"
-                  class-name="small-padding fixed-width"
-                  width="50px"
-                >
+                <el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width"
+                  width="50px">
                   <template slot-scope="scope">
-                    <el-button
-                      size="mini"
-                      type="text"
-                      icon="el-icon-delete"
-                      @click="handleDelete(scope.row)"
-                      title="鍒犻櫎"
-                    ></el-button>
+                    <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+                      title="鍒犻櫎"></el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -1576,6 +1003,15 @@
   },
 
   methods: {
+    calculateBMI(height, weight) {
+      if (height && weight) {
+        const heightInMeters = parseFloat(height) / 100; // cm杞崲涓簃
+        const weightInKg = parseFloat(weight);
+        const bmi = weightInKg / (heightInMeters * heightInMeters);
+        return bmi.toFixed(1); // 淇濈暀涓�浣嶅皬鏁�
+      }
+      return '';
+    },
     handleFocus(row) {
       this.autorule = [];
 
@@ -1602,12 +1038,12 @@
     getbzlist() {
       this.loading = true;
       getDeptAdvice(this.queryParam1).then((response) => {
-        
-        if(response.data.list){
+
+        if (response.data.list) {
           this.deptAdviceList = response.data.list;
-          this.loading = false  
+          this.loading = false
         }
-       
+
         this.total1 = response.data.total;
       });
     },
@@ -1639,15 +1075,15 @@
     // 妫�鏌ユ楠岀粨鏋滄寜閽�
     result() {
       let tjNumber = this.tableAll.tjNumber;
-      console.log(this.tableAll.tjNumber,666);
-      
+      console.log(this.tableAll.tjNumber, 666);
+
 
       getXm(tjNumber).then((res) => {
         this.xiangmuList = res.data;
-        if(this.xiangmuList.length > 0){
+        if (this.xiangmuList.length > 0) {
           this.openOne = true;
         }
-        else{
+        else {
           this.openOne = false;
           this.$modal.msgWarning("鏆傛棤椤圭洰涓庢鏌ユ楠岀粨鏋�")
         }
@@ -1804,12 +1240,12 @@
       // })
     },
 
-    changDesc(item){
+    changDesc(item) {
       console.log(item)
-      if(item.exceptionDesc == true){
+      if (item.exceptionDesc == true) {
         item.conclusion = "寮傚父"
-      }else{
-         item.conclusion = "姝e父"
+      } else {
+        item.conclusion = "姝e父"
       }
     },
 
@@ -1861,87 +1297,115 @@
       console.log("杈撳叆鍐呭:", value);
     },
     handleInputConfirm(datas, params) {
-      if (params && params.length === 0) {
-        // 濡傛灉娌℃湁閫変腑浠讳綍椤圭洰锛屽彇娑堝紓甯稿閫夋鐨勯�変腑鐘舵��
-        this.curindex.exceptionDesc = false;
-        this.curindex.proResult = "";
-        this.curindex.conclusion = "";
-        this.curindex.proAdvice = "";
-        this.curindex.rulesList = [];
-        console.log("鍑哄彂浜�");
-        return; // 杩欓噷鐨� return 浼氭彁鍓嶇粨鏉熷嚱鏁版墽琛�
-      }
+  // 鐜版湁閫昏緫淇濇寔涓嶅彉
+  if (params && params.length === 0) {
+    this.curindex.exceptionDesc = false;
+    this.curindex.proResult = "";
+    this.curindex.conclusion = "";
+    this.curindex.proAdvice = "";
+    this.curindex.rulesList = [];
+    console.log("瑙﹀彂浜嗗彇娑堥�夋嫨");
+    return;
+  }
 
-      if (datas.proResult) {
-        this.focusrow = datas;
-        this.proResult = datas;
-        var pattern3 = new RegExp("[0-9]+");
-        if (pattern3.test(this.proResult)) {
-          let data = {
-            proId: this.focusrow.proId,
-            cusId: this.tableAll.cusId,
-            tjNum: this.tableAll.tjNumber,
-            keyNum: this.proResult.proResult,
-          };
-          AutoGetRule(data).then((res) => {
-            this.focusrow.conclusion = "";
-            if (res.data) {
-              this.autorule = res.data;
-              this.focusrow.rulesList = res.data;
-              if (res.data.length > 0) {
-                const conditions = ["姝e父", "鏈寮傚父", "闃存��", "鏈鏄庢樉寮傚父"];
-                this.focusrow.exceptionDesc = !conditions.some((condition) =>
-                  this.autorule[0].bz.includes(condition)
-                );
-              } else {
-                this.focusrow.exceptionDesc = false;
-              }
-              this.focusrow.proAdvice = this.autorule[0].nr;
-              this.autorule.forEach((item) => {
-                if (this.focusrow.conclusion) {
-                  this.focusrow.conclusion += item.bz;
-                } else {
-                  this.focusrow.conclusion += item.bz;
-                }
-              });
-            }
-          });
-        } else {
-          let data = {
-            proId: this.focusrow.proId,
-            cusId: this.tableAll.cusId,
-            keyWord: this.proResult,
-            tjNum: this.tableAll.tjNumber,
-            keyNum: this.proResult.proResult,
-          };
-          AutoGetRule(data).then((res) => {
-            this.focusrow.conclusion = "";
-            if (res.data) {
-              this.autorule = res.data;
-              this.focusrow.rulesList = res.data;
-              if (res.data.length > 0) {
-                const conditions = ["姝e父", "鏈寮傚父", "闃存��", "鏈鏄庢樉寮傚父"];
-                this.focusrow.exceptionDesc = !conditions.some((condition) =>
-                  this.autorule[0].bz.includes(condition)
-                );
-              } else {
-                this.focusrow.exceptionDesc = false;
-              }
-              this.focusrow.proAdvice = this.autorule[0].nr;
-              this.autorule.forEach((item) => {
-                if (this.focusrow.conclusion) {
-                  this.focusrow.conclusion += item.bz;
-                } else {
-                  this.focusrow.conclusion += item.bz;
-                }
-              });
-              // this.rows.push(this.focusrow);
+  if (datas.proResult) {
+    this.focusrow = datas;
+    this.proResult = datas;
+    var pattern3 = new RegExp("[0-9]+");
+    if (pattern3.test(this.proResult)) {
+      let data = {
+        proId: this.focusrow.proId,
+        cusId: this.tableAll.cusId,
+        tjNum: this.tableAll.tjNumber,
+        keyNum: this.proResult.proResult,
+      };
+      AutoGetRule(data).then((res) => {
+        this.focusrow.conclusion = "";
+        if (res.data) {
+          this.autorule = res.data;
+          this.focusrow.rulesList = res.data;
+          if (res.data.length > 0) {
+            const conditions = ["姝e父", "鏈寮傚父", "闃存��", "鏈鏄庢樉寮傚父"];
+            this.focusrow.exceptionDesc = !conditions.some((condition) =>
+              this.autorule[0].bz.includes(condition)
+            );
+          } else {
+            this.focusrow.exceptionDesc = false;
+          }
+          this.focusrow.proAdvice = this.autorule[0].nr;
+          this.autorule.forEach((item) => {
+            if (this.focusrow.conclusion) {
+              this.focusrow.conclusion += item.bz;
+            } else {
+              this.focusrow.conclusion += item.bz;
             }
           });
         }
-        this.rows.push(datas);
-      }
-    },
+      });
+    } else {
+      let data = {
+        proId: this.focusrow.proId,
+        cusId: this.tableAll.cusId,
+        keyWord: this.proResult,
+        tjNum: this.tableAll.tjNumber,
+        keyNum: this.proResult.proResult,
+      };
+      AutoGetRule(data).then((res) => {
+        this.focusrow.conclusion = "";
+        if (res.data) {
+          this.autorule = res.data;
+          this.focusrow.rulesList = res.data;
+          if (res.data.length > 0) {
+            const conditions = ["姝e父", "鏈寮傚父", "闃存��", "鏈鏄庢樉寮傚父"];
+            this.focusrow.exceptionDesc = !conditions.some((condition) =>
+              this.autorule[0].bz.includes(condition)
+            );
+          } else {
+            this.focusrow.exceptionDesc = false;
+          }
+          this.focusrow.proAdvice = this.autorule[0].nr;
+          this.autorule.forEach((item) => {
+            if (this.focusrow.conclusion) {
+              this.focusrow.conclusion += item.bz;
+            } else {
+              this.focusrow.conclusion += item.bz;
+            }
+          });
+        }
+      });
+    }
+    this.rows.push(datas);
+  }
+
+  // 鏂板 BMI 璁$畻閫昏緫
+  let height = null;
+  let weight = null;
+  let bmiRow = null;
+
+  // 閬嶅巻 proParentList.sons 鏌ユ壘韬珮銆佷綋閲嶅拰BMI椤圭洰
+  this.proParentList.sons.forEach((item) => {
+    const proName = item.project.proName.toLowerCase(); // 涓嶅尯鍒嗗ぇ灏忓啓姣旇緝
+    if (proName === "height" || proName === "韬珮") {
+      height = item.proResult;
+    } else if (proName === "weight" || proName === "浣撻噸") {
+      weight = item.proResult;
+    } else if (proName === "bmi") {
+      bmiRow = item; // 鎵惧埌 BMI 椤圭洰琛�
+    }
+  });
+
+  // 濡傛灉韬珮鍜屼綋閲嶉兘鏈夊�硷紝鍒欒绠� BMI
+  if (height && weight && bmiRow) {
+    const parsedHeight = parseFloat(height.replace(/[^0-9.]/g, "")); // 鎻愬彇鏁板瓧锛屽幓闄ゅ崟浣�
+    const parsedWeight = parseFloat(weight.replace(/[^0-9.]/g, ""));
+    if (!isNaN(parsedHeight) && !isNaN(parsedWeight) && parsedHeight > 0) {
+      const heightInMeters = parsedHeight / 100; // 鍘樼背杞崲涓虹背
+      const bmi = parsedWeight / (heightInMeters * heightInMeters);
+      bmiRow.proResult = bmi.toFixed(1); // 淇濈暀涓�浣嶅皬鏁板苟璧嬪�肩粰 BMI 鐨� proResult
+      console.log(`璁$畻BMI: 韬珮=${parsedHeight}cm, 浣撻噸=${parsedWeight}kg, BMI=${bmiRow.proResult}`);
+    }
+  }
+},
 
     handleguize(row) {
       this.row = row;
@@ -1992,9 +1456,9 @@
       });
     },
     hb() {
-     /*  if (this.queryParams.tjNumber != "") {
-        // this.submitForm(); 
-      } */
+      /*  if (this.queryParams.tjNumber != "") {
+         // this.submitForm(); 
+       } */
     },
     propoChange() {
       this.cusobj = { sex: this.tableAll.cusSex, isZj: 1 };
@@ -2027,7 +1491,7 @@
       this.loading = true;
       this.queryParams.type = this.tjStatus;
       getProList(this.queryParams).then((response) => {
-        console.log(response,333);
+        console.log(response, 333);
         if (response.code == 200) {
           this.loading = false;
           if (response.data) {
@@ -2556,7 +2020,7 @@
             tjNumber: this.tjNumber,
             proParentId: this.nums,
           };
-          this.loading = true; 
+          this.loading = true;
           getParentId(data).then((response) => {
             this.proParentList = response.data;
             this.value = [];
@@ -3000,7 +2464,7 @@
   /* 杞诲井鐨勭孩鑹茶儗鏅� */
 }
 
-::v-deep .bgc .el-table__body tr:hover > td {
+::v-deep .bgc .el-table__body tr:hover>td {
   background-color: #ffe6e6 !important;
 }
 
@@ -3065,12 +2529,16 @@
 
 .check-description {
   font-size: 14px;
-  color: #555; /* 涓伆鑹叉枃瀛� */
-  line-height: 1.6; /* 琛岄珮锛屽鍔犲彲璇绘�� */
-  padding: 8px 0; /* 涓婁笅鍐呰竟璺� */
+  color: #555;
+  /* 涓伆鑹叉枃瀛� */
+  line-height: 1.6;
+  /* 琛岄珮锛屽鍔犲彲璇绘�� */
+  padding: 8px 0;
+  /* 涓婁笅鍐呰竟璺� */
 }
 
 .check-description.no-result {
-  color: #bbb; /* 濡傛灉娌℃湁缁撹锛屾枃瀛椾负娣$伆鑹� */
+  color: #bbb;
+  /* 濡傛灉娌℃湁缁撹锛屾枃瀛椾负娣$伆鑹� */
 }
 </style>
diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue
index 839dfd1..42c549d 100644
--- a/src/views/system/package/index.vue
+++ b/src/views/system/package/index.vue
@@ -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,6 @@
           prop="newID"
           fixed
         />
-        <!-- <el-table-column label="缂栧彿" align="center" prop="pacId" /> -->
         <el-table-column
           label="浣撴绫诲埆"
           width="100px"
@@ -166,7 +161,7 @@
           fixed
         ></el-table-column>
         <el-table-column
-          label="浼樻儬浠�"
+          label="鐜颁环"
           width="80px"
           align="center"
           prop="newPrice"
@@ -180,13 +175,6 @@
           width="1200px"
         >
         </el-table-column>
-        <!-- <el-table-column
-          label="椤圭洰鏄庣粏"
-          align="center"
-          prop="allSonName"
-          :show-overflow-tooltip="true"
-        > 
-        </el-table-column>-->
         <el-table-column
           label="濂楅鎻忚堪"
           align="center"
@@ -197,18 +185,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="110px"
@@ -228,13 +204,6 @@
             />
           </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"
@@ -247,12 +216,6 @@
           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"
@@ -299,8 +262,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>
@@ -333,8 +294,6 @@
         label-width="100px"
         :inline="true"
       >
-        <!-- <div class="dialo">
-        <div class="dialo1"> -->
         <el-form-item label="濂楅鍚嶇О" prop="pacName">
           <span
             slot="label"
@@ -350,10 +309,6 @@
           />
         </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="璇烽�夋嫨鐘舵��"
@@ -369,24 +324,6 @@
             ></el-option>
           </el-select>
         </el-form-item>
-
-        <!--  <el-form-item label="濂楅绫荤洰" prop="categoryId">
-          <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="tjCategory">
           <el-select
             v-model="form.tjCategory"
@@ -403,12 +340,7 @@
             ></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="璇烽�夋嫨鏄惁涓婃灦"
@@ -424,7 +356,6 @@
             ></el-option>
           </el-select>
         </el-form-item>
-
         <el-form-item label="鎺掑簭" prop="sort">
           <el-input
             v-model="form.sort"
@@ -458,13 +389,17 @@
             @change="numberChange"
           ></el-input-number>
         </el-form-item>
-        <el-form-item label="浼樻儬浠�">
+        <el-form-item label="鐜颁环1">
           <el-input
             ref="inputName"
             v-model="form.xianprice"
-            placeholder="浼樻儬浠�"
+            placeholder="璇疯緭鍏ョ幇浠�"
             clearable
             style="width: 140px"
+            type="number"
+            :min="0"
+            @change="handleXianPriceChange"
+            @input="handleXianPriceInput"
           />
         </el-form-item>
         <el-form-item label="鍏抽敭瀛�" prop="keywords">
@@ -498,11 +433,6 @@
               ></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"
@@ -510,47 +440,16 @@
               />
             </el-form-item>
           </div>
-          <!-- </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" @click="toggleCollapse">{{
         isCollapsed ? "灞曞紑" : "鏀惰捣"
       }}</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" />
-        <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-option v-for="(item, index) in allList" :key="index" :label="item.proName" :value="item.proName">
-              </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-row style="display: flex; width: 1300px">
         <el-col>
@@ -590,29 +489,6 @@
             />
           </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"
-              :render-content="renderContent"
-            >
-            </el-tree>
-          </div>
-        </el-col> -->
         <el-col>
           <div class="grid-content bg-purple">
             <div
@@ -630,11 +506,9 @@
               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="鍘熶环"
@@ -644,7 +518,6 @@
               </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)"
@@ -654,13 +527,12 @@
                     min="0"
                     step="0.1"
                     max="10"
-                  >
-                  </el-input>
+                  />
                 </template>
               </el-table-column>
               <el-table-column
                 prop="priceNow"
-                label="浼樻儬浠�"
+                label="鐜颁环"
                 width="80px"
                 align="center"
               >
@@ -677,28 +549,7 @@
                   </el-button>
                 </template>
               </el-table-column>
-              <!-- <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px">
-              </el-table-column> -->
-
-              <!-- <el-table-column
-                label="鎿嶄綔"
-                align="center"
-                fixed="right"
-                class-name="small-padding fixed-width"
-                width="50px"
-              >
-                <template slot-scope="scope">
-                  <el-button
-                    size="mini"
-                    type="text"
-                    icon="el-icon-delete"
-                    @click="handleDeletes(scope.row)"
-                    title="鍒犻櫎"
-                  ></el-button>
-                </template> 
-              </el-table-column>-->
             </el-table>
-            <!-- <h3 style="font-weight: 600">鍚堣锛歿{ pics }}鍏�</h3> -->
           </div>
         </el-col>
       </el-row>
@@ -709,985 +560,454 @@
       </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, getProSonDxList } from "@/api/system/tijian";
-import {
-  getProParentIdDxList,
-  search,
-  getProSonDxList,
-} from "@/api/system/package";
+import { Big } from 'big.js'
+import Packages from "@/components/Packages"
+import { listCategory } from "@/api/mall/category"
+import { listKeyword } from "@/api/mall/keyword"
+import { search } from "@/api/system/package"
 import {
   getPacList,
   getPacInFo,
-  listPackage,
-  getPackage,
   delPackage,
-  addPackage,
-  updatePackage,
-  getAllPackage,
   updateStatus,
-  getAllList,
-  updateProject,
   getPacTjProjectList,
   saveOreditTjPacNew,
-} from "@/api/system/package";
-import { Message } from "element-ui";
-import Big from "big.js";
+} from "@/api/system/package"
+import { Message } from "element-ui"
+
 export default {
   name: "Package",
   dicts: ["sys_normal_disable", "sys_yes_no", "dict_tjtype"],
   components: { Packages },
   data() {
-    let checkPhoneNum = (rule, value, callback) => {
-      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
-      if (value == "" && value == undefined && !value) {
-        return callback("");
-      } else if (value != undefined && value != "") {
-        return callback();
-      } else if (!patter.test(value)) {
-        return callback("");
-      }
-    };
     return {
-      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,
-      // 浣撴濂楅琛ㄦ牸鏁版嵁
-      packageList: [],
-      // 濂楅閫変腑鐨勭埗椤�
-      allpackageList: [],
-      // 宸查��
-      newproName: [],
-      // 鎵�鏈変綋妫�椤圭洰路
-      allList: [],
-      treeList: [],
-      // 鎵�鏈夊椁愭暟鎹�
-      // allpackage:[],
-      // 寮瑰嚭灞傛爣棰�
-      title: "",
-      // 鏄惁鏄剧ず寮瑰嚭灞�
-      open: false,
-      Seachopen: false,
-      checkedNodes: [],
-      pacId: "",
-      // 鎬绘潯鏁�
-      total: 0,
-      total1: 0,
-      // 鏌ヨ鍙傛暟
+      pics: 0, // 鍘熶环鎬诲拰
+      DataList: [], // 宸查�夐」鐩垪琛�
+      Treedata: [], // 椤圭洰鏍戞暟鎹�
+      checkedkey: [], // 鏍戦粯璁ら�変腑椤�
+      checkedNodes: [], // 璁板綍閫変腑鐨勮妭鐐�
+      isCollapsed: true, // 鎶樺彔鐘舵��
+      categoryList: [], // 濂楅绫荤洰
+      keywordList: [], // 鍏抽敭瀛楀垪琛�
+      keys: "", // 鍏抽敭瀛楀瓧绗︿覆
+      loading: false, // 鍔犺浇鐘舵��
+      single: true, // 鏄惁鍗曢�夌鐢�
+      multiple: true, // 鏄惁澶氶�夌鐢�
+      showSearch: true, // 鏄剧ず鎼滅储鏉′欢
+      packageList: [], // 濂楅鍒楄〃
+      allList: [], // 鎵�鏈変綋妫�椤圭洰
+      title: "", // 寮瑰嚭灞傛爣棰�
+      open: false, // 鏄惁鏄剧ず寮瑰嚭灞�
+      total: 0, // 涓昏〃鏍兼�绘潯鏁�
+      total1: 0, // 椤圭洰鏍戞�绘潯鏁�
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         pacName: null,
         pacRemark: null,
+        tjCategory: null,
       },
       queryParams1: {
         page: 1,
         pageSize: 30,
         nr: "",
       },
-      // 琛ㄥ崟鍙傛暟
       form: {
-        xianprice: null, // 浼樻儬浠�
-        counterPrice: null, //鍘熶环
-        limits: 10,
+        xianprice: 0, // 鐜颁环鎬诲拰锛屽彲鎵嬪姩淇敼
+        limits: 10, // 鎬绘姌鎵�
+        pacName: "",
+        pacStatus: "",
+        tjCategory: "",
+        isOnSale: "",
+        sort: null,
+        retailPrice: null,
+        keywords: [],
       },
-      forms: {},
-      youhui: 10,
-      // 琛ㄥ崟鏍¢獙
+      youhui: 10, // 涓婃柟鎶樻墸
+      defaultProps: {
+        children: [],
+        label: "proName",
+      },
       rules: {
-        deleted: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
-        ],
-        pacName: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
-        ],
+        pacName: [{ required: true, message: "濂楅鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }],
         pacStatus: [
-          { required: true, validator: checkPhoneNum, trigger: "change" },
+          { required: true, message: "璇烽�夋嫨濂楅鐘舵��", trigger: "change" },
         ],
-        // categoryId: [
-        //   { required: true, validator: checkPhoneNum, trigger: "change" },
-        // ],
-        /*  keywords: [
-          { required: true, validator: checkPhoneNum, trigger: "change" },
-        ], */
         isOnSale: [
-          { required: true, validator: checkPhoneNum, trigger: "change" },
+          { required: true, message: "璇烽�夋嫨鏄惁涓婃灦", trigger: "change" },
         ],
-        sort: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
+        sort: [{ required: true, message: "鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }],
         retailPrice: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
-        ],
-        counterPrice: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
+          { required: true, message: "灏忕▼搴忎环鏍间笉鑳戒负绌�", trigger: "blur" },
         ],
         tjCategory: [
-          { required: true, validator: checkPhoneNum, trigger: "blur" },
+          { required: true, message: "璇烽�夋嫨浣撴绫诲埆", trigger: "change" },
         ],
       },
-    };
+    }
   },
-  // watch: {
-  //   filterText(val) {
-  //     this.$refs.tree.filter(val);
-  //   },
-  // },
-
   created() {
-    this.getList();
-    this.getKeyword();
-    this.getCategory();
+    this.getList()
+    this.getKeyword()
+    this.getCategory()
   },
   methods: {
     toggleCollapse() {
-      this.isCollapsed = !this.isCollapsed; // 鐐瑰嚮鎸夐挳鏃跺垏鎹sCollapsed鐨勫��
+      this.isCollapsed = !this.isCollapsed
     },
     filterNode(value, data) {
-      if (!value) return true;
-      // return data.proName.indexOf(value) !== -1;
-      if (data.proName.indexOf(value) !== -1) {
-        return data.proName.indexOf(value) !== -1;
-      } else {
-        return data.proEngName.indexOf(value) !== -1;
-      }
+      if (!value) return true
+      return (
+        data.proName.indexOf(value) !== -1 ||
+        (data.proEngName && data.proEngName.indexOf(value) !== -1)
+      )
     },
-    /** 鏌ヨ浣撴濂楅鍒楄〃 */
     getList() {
-      this.loading = true;
+      this.loading = true
       getPacTjProjectList().then((response) => {
-        this.allList = response.data;
-        if (this.allList.proStatus === 0) {
-          this.allList.proStatus = "鍚敤";
-        } else {
-          this.allList.proStatus = "鍋滅敤";
-        }
-        this.loading = false;
-      });
+        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;
-        this.packageList = response.rows;
-        this.loading = false;
-      });
+            1
+        })
+        this.total = response.total
+        this.packageList = response.rows
+        this.loading = false
+      })
     },
-
-    /** 鏌ヨ鍏抽敭瀛楀垪琛� */
     getKeyword() {
-      this.loading = true;
       listKeyword(this.queryParams).then((response) => {
-        this.keywordList = response.rows;
-      });
+        this.keywordList = response.rows
+      })
     },
     sel(val) {
-      let id = val;
-      this.keys = "";
-      id.forEach((item) => {
-        this.keys += item + ",";
-      });
+      this.keys = val.join(",")
     },
-    /** 鏌ヨ绫荤洰鍒楄〃 */
     getCategory() {
-      this.loading = true;
       listCategory(this.queryParams).then((response) => {
-        this.categoryList = response.rows;
-        console.log(this.categoryList, 9988);
-      });
+        this.categoryList = response.rows
+      })
     },
-    shangpin(vals) {},
-    // 鍙栨秷鎸夐挳
     cancel() {
-      this.open = false;
-      this.Seachopen = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
-    // 琛ㄥ崟閲嶇疆
     reset() {
       this.form = {
         pacId: null,
-        pacName: null,
-        pacRemark: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
-        deleted: null,
-        allSonName: null,
-        allProName: null,
-        priceNow: null,
-        proId: null,
-        // pacStatus: "鍚敤",
-      };
-      this.resetForm("form");
+        pacName: "",
+        pacRemark: "",
+        pacStatus: "",
+        tjCategory: "",
+        isOnSale: "",
+        sort: null,
+        retailPrice: null,
+        xianprice: 0,
+        limits: 10,
+        keywords: [],
+      }
+      this.DataList = []
+      this.checkedkey = []
+      this.checkedNodes = []
+      this.youhui = 10
+      this.pics = 0
+      this.resetForm("form")
     },
-    /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
-
     handlePackage() {
-      this.$refs.aaa.open = true;
-      this.$refs.aaa.getList();
-      this.$refs.aaa.title = "濂楅瀛楀吀";
+      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;
+      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;
+        this.form.counterPrice = param1[0].price
+        this.form.retailPrice = param1[0].price
       }
     },
-    /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+      this.resetForm("queryForm")
+      this.handleQuery()
     },
-    // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      if (!selection[0]) {
-        return;
+      if (!selection.length) {
+        this.forms = null
+        this.ids = []
+        this.single = true
+        this.multiple = true
+        return
       }
-      this.forms = selection[0];
-      this.ids = selection.map((item) => item.pacId);
-      this.single = selection.length !== 1;
-      this.multiple = !selection.length;
+      this.forms = selection[0]
+      this.ids = selection.map((item) => item.pacId)
+      this.single = selection.length !== 1
+      this.multiple = false
     },
-    /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "浣撴濂楅淇℃伅缁存姢";
-      this.DataList = [];
-      this.checkedkey = [];
-      this.checkedListkey = [];
-      this.getDataList();
-      // 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.reset()
+      this.open = true
+      this.title = "浣撴濂楅淇℃伅缁存姢"
+      this.getDataList()
     },
-
-    // 鏄惁鍚敤
     handleStatusChange(row) {
-      let data = {
-        pacId: row.pacId,
-        pacStatus: row.pacStatus,
-      };
-      let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤";
-      this.$confirm("纭瑕�" + text + row.pacName + "濂楅鍚楋紵")
-        .then(function () {
-          return updateStatus(data);
-        })
-        .then(() => {
-          this.msgSuccess(text + "鎴愬姛");
-        })
-        .catch(function () {
-          row.pacStatus = row.pacStatus === "0" ? "0" : "1";
-        });
-    },
-
-    handleUp() {
-      this.title = "浣撴濂楅淇℃伅缁存姢";
-      this.open = true;
-      // getPacTjProjectList().then((response) => {
-      //   this.allList = response.data;
-      //   this.loading = false;
-      // });
-      getPacInFo(this.forms.pacId).then((response) => {
-        this.form = response.data;
-        console.log(this.form, 2233);
-
-        this.form.keywords = this.form.keywords.slice(0, -1);
-        this.form.keywords = this.form.keywords.split(",");
-        // this.DataList = [];
-
-        // this.pics = 0;
-        this.DataList = [];
-        this.checkedkey = [];
-        this.checkedListkey = [];
-        this.DataList = response.data.packageProjects;
-        this.DataList.forEach((item) => {
-          this.checkedkey.push(item.proId);
-          this.checkedListkey.push(item.proId);
-        });
-
-        // 鑾峰彇鏂扮殑鏁版嵁鍒楄〃锛堝鏋滈渶瑕侊級
-        this.getDataList();
-      });
-    },
-
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    handleUpdate(row) {
-      this.title = "浣撴濂楅淇℃伅缁存姢";
-      this.open = true;
-      getPacInFo(row.pacId).then((response) => {
-        this.form = response.data;
-        console.log(this.form, 445);
-
-        this.form.keywords = this.form.keywords.slice(0, -1);
-        this.form.keywords = this.form.keywords.split(",");
-        this.DataList = [];
-        this.checkedkey = [];
-        this.checkedListkey = [];
-        this.DataList = response.data.packageProjects;
-        this.DataList.forEach((item) => {
-          this.checkedkey.push(item.proId);
-          this.checkedListkey.push(item.proId);
-        });
-
-        // 鑾峰彇鏂扮殑鏁版嵁鍒楄〃锛堝鏋滈渶瑕侊級
-        this.getDataList();
-      });
-    },
-
-    // 鏂板琛�
-    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,
-          });
-        }
-      } else {
-        Message.warning("璇峰厛濉啓濂楅鍚嶇О");
-      }
-      this.$forceUpdate();
-    },
-
-    // 鍒犻櫎琛�
-    Delete(index) {
-      if (this.form.tjProjectList.length == 0) {
-        this.$alert("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏁版嵁", "鎻愮ず", {
-          confirmButtonText: "纭畾",
-        });
-      } else {
-        this.form.tjProjectList.splice(index, 1);
-      }
-    },
-
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete1(row) {
-      this.DataList = this.DataList.filter((item) => item.proId !== row.proId);
-      // 浠� 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) {
-          formitem.allSonProName = "";
-          this.allList.find((item) => {
-            if (item.proName == val) {
-              formitem.proId = item.proId;
-              formitem.proPrice = item.proPrice;
-              formitem.priceNow = item.proPrice;
-              formitem.allSonProName = item.allSonProName;
-              // item.tjProjectList.forEach((item1) => {
-              //   this.$nextTick(() => {
-              //     formitem.allSonProName =
-              //       formitem.allSonProName + "," + item1.proName;
-              //   });
-              //   // this.form.tjProjectList.allSonProName = this.form.tjProjectList.allSonProName+','+item1.proName
-              // });
-            }
-          });
-        }
-      });
-
-      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;
-    },
-
-    numberChange(currentValue, oldValue) {
-      this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        type: "warning",
-      })
-        .then(() => {
-          this.youhui = currentValue;
-          this.DataList.forEach((item) => {
-            item.limits = this.youhui;
-            const proPrice = new Big(item.priceOrd);
-            const limits = new Big(item.limits);
-            const result = proPrice.times(limits.div(10));
-            item.priceNow = result.toNumber();
-            this.form.xianprice = this.DataList.reduce((sum, item) => {
-              return sum.plus(new Big(item.priceNow || "0"));
-            }, new Big(0));
-          });
-        })
+      let data = { pacId: row.pacId, pacStatus: row.pacStatus }
+      let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤"
+      this.$confirm(`纭瑕�${text}${row.pacName}濂楅鍚楋紵`)
+        .then(() => updateStatus(data))
+        .then(() => this.msgSuccess(`${text}鎴愬姛`))
         .catch(() => {
-          this.youhui = oldValue;
-        });
+          row.pacStatus = row.pacStatus === "0" ? "1" : "0"
+        })
     },
+    handleUp() {
+      this.title = "浣撴濂楅淇℃伅缁存姢"
+      this.open = true
+      getPacInFo(this.forms.pacId).then((response) => {
+        this.form = response.data
+        this.form.keywords = this.form.keywords
+          ? this.form.keywords.slice(0, -1).split(",")
+          : []
+        this.DataList = response.data.packageProjects || []
+        this.checkedkey = this.DataList.map((item) => item.proId)
+        this.checkedNodes = [...this.checkedkey]
+        this.updateTotalPrice()
+        this.updateYouhui()
+        this.getDataList()
+      })
+    },
+    handleUpdate(row) {
+      this.title = "浣撴濂楅淇℃伅缁存姢"
+      this.open = true
+      getPacInFo(row.pacId).then((response) => {
+        this.form = response.data
+        this.form.keywords = this.form.keywords
+          ? this.form.keywords.slice(0, -1).split(",")
+          : []
+        this.DataList = response.data.packageProjects || []
+        this.checkedkey = this.DataList.map((item) => item.proId)
+        this.checkedNodes = [...this.checkedkey]
+        this.updateTotalPrice()
+        this.updateYouhui()
+        this.getDataList()
+      })
+    },
+    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()
+      this.updateYouhui()
+    },
+    numberChange(currentValue) {
+      this.youhui = currentValue
+      this.DataList.forEach((item) => {
+        item.limits = this.youhui
+        this.updateProPrice(item)
+      })
+      this.updateTotalPrice()
+    },
+    handleXianPriceInput(value) {
+      const numValue = Math.max(0, Number(value) || 0)
+      console.log("123")
+      this.form.xianprice = numValue
+    },
+    handleXianPriceChange(newValue) {
+      const value = Math.max(0, Number(newValue) || 0)
+      
+      if (this.DataList.length === 0 || this.pics === 0) {
+        this.form.xianprice = 0
+        this.youhui = 10
+        return
+      }
 
+      // 浣跨敤Big.js澶勭悊绮惧害
+      const totalOriginalPrice = new Big(this.pics)
+      const totalCurrentPrice = new Big(value)
+      let newYouhui = totalCurrentPrice
+        .div(totalOriginalPrice)
+        .times(10)
+        .toNumber()
+
+      // 闄愬埗鎶樻墸鑼冨洿
+      newYouhui = Math.min(10, Math.max(0, newYouhui))
+      this.youhui = Number(newYouhui.toFixed(1))
+
+      // 鏇存柊鎵�鏈夐」鐩殑鎶樻墸鍜岀幇浠�
+      this.DataList.forEach((item) => {
+        item.limits = this.youhui
+        this.updateProPrice(item)
+      })
+      
+      // 閲嶆柊璁$畻纭繚绮惧害
+      this.updateTotalPrice(true)
+    },
     updateProPrice(row) {
-      const proPrice = new Big(row.priceOrd);
-      const limits = new Big(row.limits);
-      const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 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 =
-        (Math.floor((this.form.xianprice / this.pics) * 100) / 100) * 10;
-      // console.log(this.youhui, 1212);
+      if (!row.priceOrd) return
+      const proPrice = new Big(row.priceOrd)
+      const limits = new Big(row.limits || 10)
+      row.priceNow = parseFloat(proPrice.times(limits.div(10)).toFixed(2))
     },
     calculateDiscount(row) {
-      if (row.limits > 10) {
-        row.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у��
-      } else if (row.limits < 0) {
-        row.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓��
-      }
-      this.updateProPrice(row); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫
+      row.limits = Math.min(10, Math.max(0, row.limits))
+      this.updateProPrice(row)
+      this.updateTotalPrice()
+      this.updateYouhui()
     },
-    // 榛樿鎺ュ彈鍥涗釜鍊� { 褰撳墠琛岀殑鍊�, 褰撳墠鍒楃殑鍊�, 琛岀殑涓嬫爣, 鍒楃殑涓嬫爣 }
-    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 };
-          }
-        }
+    updateTotalPrice(skipXianPrice = false) {
+      // 璁$畻鍘熶环鎬诲拰
+      this.pics = this.DataList.reduce(
+        (sum, item) => sum + (Number(item.priceOrd) || 0),
+        0
+      )
+      
+      // 璁$畻鐜颁环鎬诲拰
+      if (!skipXianPrice) {
+        const totalCurrent = this.DataList.reduce(
+          (sum, item) => sum + (Number(item.priceNow) || 0),
+          0
+        )
+      console.log("1231")
+
+        this.form.xianprice = parseFloat(totalCurrent).toFixed(2)
       }
     },
-    renderContent(h, { node, data, store }) {
+    updateYouhui() {
+      if (this.DataList.length === 0 || this.pics === 0) {
+        this.youhui = 10
+        return
+      }
+      const totalOriginal = new Big(this.pics)
+      const totalCurrent = new Big(this.form.xianprice || 0)
+      this.youhui = parseFloat(
+        totalCurrent
+          .div(totalOriginal)
+          .times(10)
+          .toFixed(1)
+      )
+    },
+    renderContent(h, { node, data }) {
       return (
         <span class="custom-tree-node">
           <span>{node.label}</span>
           <span>({data.proPrice}鍏�)</span>
         </span>
-      );
+      )
     },
     getDataList() {
-      this.loading = true;
+      this.loading = true
       search(this.queryParams1).then((response) => {
-        this.Treedata = response.data.list; // 鏇存柊鏍戝舰鏁版嵁
-        this.total1 = response.data.total; // 鏇存柊鎬绘潯鏁�
-        this.pics = this.DataList.reduce(
-          (total, item) => total + item.priceOrd,
-          0
-        );
-
-        // 纭繚鍦ㄦ暟鎹姞杞藉悗淇濇寔閫変腑鐘舵��
+        this.Treedata = response.data.list
+        this.total1 = response.data.total
         this.$nextTick(() => {
-          this.$refs.tree.setCheckedKeys(this.checkedNodes);
-        });
-      });
-      this.loading = false;
+          this.$refs.tree.setCheckedKeys(this.checkedNodes)
+        })
+        this.loading = false
+      })
     },
-    // getDataList() {
-    //   this.loading = true;
-
-    //   getProParentIdDxList(this.queryParams).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);
-
-    //             this.DataList.push(item1);
-
-    //             this.DataList.forEach((item1) => {
-    //               item1.limits = 10;
-    //               if (item1.limits > 10) {
-    //                 item1.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у��
-    //               } else if (item1.limits < 0) {
-    //                 item1.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓��
-    //               }
-    //               this.updateProPrice(item1); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫
-    //             });
-
-    //           }
-    //         });
-    //       });
-    //     }  */ /* else {
-    //       this.checkedkey.push(this.Treedata[0].proId);
-    //       let proId = this.Treedata[0].proId;
-    //       this.TreedataList = this.Treedata.filter(
-    //         (item) => item.proId == proId
-    //       ); */
-
-    //     // 灏嗙涓�涓」鐩坊鍔犲埌 DataList
-    //     // this.TreedataList.forEach((item) => {
-    //     //   this.checkedListkey.push(item.proId);
-    //     //   this.DataList.push(item);
-    //     // });
-    //     /*  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.pics = 0;
-    //           this.DataList.forEach((item) => {
-    //             this.pics += item.proPrice;
-    //           });
-    //         });
-    //       }); */
-    //     // }
-    //     this.pics = this.DataList.reduce(
-    //       (total, item) => total + item.priceOrd,
-    //       0
-    //     );
-    //     this.loading = false;
-    //   });
-    // },
     handleFilterInput() {
-      this.queryParams1.page = 1; // 鎼滅储鏃堕噸缃负绗竴椤�
-      this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁
-      // 鍦ㄨ繃婊ゅ悗锛岄噸鏂拌缃�変腑鐘舵��
-      this.$nextTick(() => {
-        this.$refs.tree.setCheckedKeys(this.checkedNodes);
-      });
+      this.queryParams1.page = 1
+      this.getDataList()
     },
-
-    // 鍒嗛〉浜嬩欢
-    handlePageChange({ page, pageSize }) {
-      this.queryParams.page = page; // 鏇存柊褰撳墠椤�
-      this.queryParams.pageSize = pageSize; // 鏇存柊姣忛〉鏉℃暟
-      this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁
-    },
-
-    handleCurrentChecked(data, checked, indeterminate) {
+    handleCurrentChecked(data, checked) {
       if (checked) {
-        // 濡傛灉宸查�夊垪琛ㄤ腑涓嶅瓨鍦ㄦ椤圭洰锛屽垯娣诲姞
         if (!this.DataList.some((item) => item.proId === data.proId)) {
-          this.DataList.push({
+          const newItem = {
             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);
+            limits: this.youhui,
+            priceNow: 0,
+          }
+          this.updateProPrice(newItem)
+          this.DataList.push(newItem)
+          this.checkedNodes.push(data.proId)
         }
       } else {
-        // 鍙栨秷閫変腑鏃讹紝浠嶥ataList涓Щ闄�
-        this.DataList = this.DataList.filter(
-          (item) => item.proId !== data.proId
-        );
-        // 浠� checkedNodes 涓Щ闄�
-        const index = this.checkedNodes.indexOf(data.proId);
-        if (index > -1) {
-          this.checkedNodes.splice(index, 1);
-        }
+        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();
+      this.updateTotalPrice()
+      this.updateYouhui()
     },
-    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
-      );
-    },
-    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.pics = 0;
-            this.DataList.forEach((item1) => {
-              this.pics += item1.priceOrd;
-              // this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
-            });
-          }
-        });
-      } else if (checked == true) {
-        this.DataList.push(data);
-        this.pics = 0;
-        this.DataList.forEach((item1) => {
-          this.pics += item1.priceOrd;
-          if (item1.proParentId == this.dataObj.proId) {
-            item1.propinName = this.dataObj.proName;
-            item1.propinPrice = this.dataObj.proPrice;
-          }
-        });
-        this.spliceData();
-        this.TotalPrice1 = 0;
-        this.pics = 0;
-        this.DataList.forEach((item1) => {
-          // this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
-          this.pics += item1.priceOrd;
-        });
-      }
-    },
-
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    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() {
-      this.form.limits = this.youhui;
-      this.form.price = this.pics;
-      this.form.priceNow = this.queryParams.xianprice;
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.form.limits = this.youhui
+          this.form.price = this.pics
+          this.form.newPrice = this.form.xianprice
 
-      if (this.keys) {
-        this.form.keywords = this.keys; // 濡傛灉鏈� this.keys锛屽垯鐩存帴璧嬪��
-      } else {
-        // this.form.keywords = this.form.keywords; // 濡傛灉娌℃湁锛屽垯灏� this.form.keywords 杞垚瀛楃涓�
-      }
+          const packageProjects = this.DataList.map((item) => ({
+            proName: item.proName,
+            proId: item.proId,
+            priceNow: item.priceNow,
+            limits: item.limits,
+            priceOrd: item.priceOrd,
+          }))
 
-      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,
-        // keywords: this.form.keywords,
-        sort: this.form.sort,
-        retailPrice: this.form.retailPrice,
-        tjCategory: this.form.tjCategory,
-        pacRemark: this.form.pacRemark,
-        detail: this.form.detail,
-      };
-
-      saveOreditTjPacNew(data).then((res) => {
-        console.log(res, 555);
-        this.open = false;
-        this.getList();
-      });
-    },
-    /* submitForm() {
-      if (this.form.pacName) {
-        this.form.tjProjectList = [];
-        if (this.DataList.length != 0) {
-          this.treeList = JSON.parse(JSON.stringify(this.DataList));
-          for (var i = 0; i < this.treeList.length; i++) {
-            for (var j = i + 1; j < this.treeList.length; j++) {
-              if (
-                this.treeList[i].proParentId == this.treeList[j].proParentId
-              ) {
-                this.treeList.splice(j, 1);
-                j--;
-              }
-            }
+          const data = {
+            pacName: this.form.pacName,
+            limits: this.form.limits,
+            pacStatus: this.form.pacStatus,
+            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,
+            keywords: this.keys,
           }
-          this.treeList.forEach((item) => {
-            this.form.tjProjectList.push({
-              // id: 0,
-              proName: item.propinName,
-              // allSonProName: item.proName + ",",
-              proPrice: item.propinPrice,
-              priceNow: item.propinPrice,
-              proId: item.proParentId,
-            });
-          });
+
+          saveOreditTjPacNew(data).then(() => {
+            this.open = false
+            this.getList()
+            this.$modal.msgSuccess("淇濆瓨鎴愬姛")
+          })
         }
-        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;
-              // }
-              // return;
-              addPackage(this.form).then((response) => {
-                this.$modal.msgSuccess("鏂板鎴愬姛");
-                this.open = false;
-                this.getList();
-              });
-            }
-          }
-        });
-      } else {
-        Message.warning("璇峰厛濉啓濂楅鍚嶇О");
-      }
-    }, */
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+      })
+    },
     handleDelete(row) {
-      const pacIds = row.pacId || this.ids;
+      const pacIds = row.pacId || this.ids
       this.$modal
-        .confirm('鏄惁纭鍒犻櫎浣撴濂楅缂栧彿涓�"' + pacIds + '"鐨勬暟鎹」锛�')
-        .then(function () {
-          return delPackage(pacIds);
-        })
+        .confirm(`鏄惁纭鍒犻櫎浣撴濂楅缂栧彿涓�"${pacIds}"鐨勬暟鎹」锛焋)
+        .then(() => delPackage(pacIds))
         .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          this.getList()
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛")
         })
-        .catch(() => {});
+        .catch(() => {})
     },
-
-    /** 鍒嗛厤濂楅鍐呴」鐩搷浣� */
-    handleProject: function (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 {
@@ -1723,12 +1043,1046 @@
   overflow-y: auto;
   border: 1px solid #d9d9d9;
 }
-/* .custom-tree-node {
-    flex: 1;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    font-size: 14px;
-    padding-right: 8px;
-  } */
+</style><template>
+  <div class="app-container">
+    <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-form-item>
+      <el-form-item label="濂楅鎻忚堪" prop="pacRemark">
+        <el-input
+          v-model="queryParams.pacRemark"
+          placeholder="璇疯緭鍏ュ椁愭弿杩�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <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-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-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-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-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-col>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
+
+    <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-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="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="濂楅鎻忚堪"
+          align="center"
+          :show-overflow-tooltip="true"
+          width="120px"
+        >
+          <template slot-scope="scope">
+            <div class="showInline">{{ scope.row.pacRemark }}</div>
+          </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"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_yes_no"
+              :value="scope.row.isOnSale"
+            />
+          </template>
+        </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="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>
+          </template>
+        </el-table-column>
+        <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>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div class="pag">
+        <div class="pag1">
+          <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-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: 150px"
+          />
+        </el-form-item>
+        <el-form-item label="濂楅鐘舵��" prop="pacStatus">
+          <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="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-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"
+          />
+        </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-form-item>
+        <el-form-item label="鐜颁环">
+          <el-input
+            ref="inputName"
+            v-model="form.xianprice"
+            placeholder="璇疯緭鍏ョ幇浠�"
+            clearable
+            style="width: 140px"
+            type="number"
+            :min="0"
+            @change="handleXianPriceChange"
+            @input="handleXianPriceInput"
+          />
+        </el-form-item>
+        <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-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>
+      </el-form>
+      <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-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"
+            >
+              <el-table-column prop="proName" label="妫�鏌ラ」鐩�">
+              </el-table-column>
+              <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"
+                  />
+                </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>
+          </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>
+
+    <Packages ref="aaa" @add="handleChanges" />
+  </div>
+</template>
+
+<script>
+import { Big } from 'big.js'
+import Packages from "@/components/Packages"
+import { listCategory } from "@/api/mall/category"
+import { listKeyword } from "@/api/mall/keyword"
+import { search } from "@/api/system/package"
+import {
+  getPacList,
+  getPacInFo,
+  delPackage,
+  updateStatus,
+  getPacTjProjectList,
+  saveOreditTjPacNew,
+} from "@/api/system/package"
+import { Message } from "element-ui"
+
+export default {
+  name: "Package",
+  dicts: ["sys_normal_disable", "sys_yes_no", "dict_tjtype"],
+  components: { Packages },
+  data() {
+    return {
+      pics: 0, // 鍘熶环鎬诲拰
+      DataList: [], // 宸查�夐」鐩垪琛�
+      Treedata: [], // 椤圭洰鏍戞暟鎹�
+      checkedkey: [], // 鏍戦粯璁ら�変腑椤�
+      checkedNodes: [], // 璁板綍閫変腑鐨勮妭鐐�
+      isCollapsed: true, // 鎶樺彔鐘舵��
+      categoryList: [], // 濂楅绫荤洰
+      keywordList: [], // 鍏抽敭瀛楀垪琛�
+      keys: "", // 鍏抽敭瀛楀瓧绗︿覆
+      loading: false, // 鍔犺浇鐘舵��
+      single: true, // 鏄惁鍗曢�夌鐢�
+      multiple: true, // 鏄惁澶氶�夌鐢�
+      showSearch: true, // 鏄剧ず鎼滅储鏉′欢
+      packageList: [], // 濂楅鍒楄〃
+      allList: [], // 鎵�鏈変綋妫�椤圭洰
+      title: "", // 寮瑰嚭灞傛爣棰�
+      open: false, // 鏄惁鏄剧ず寮瑰嚭灞�
+      total: 0, // 涓昏〃鏍兼�绘潯鏁�
+      total1: 0, // 椤圭洰鏍戞�绘潯鏁�
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        pacName: null,
+        pacRemark: null,
+        tjCategory: null,
+      },
+      queryParams1: {
+        page: 1,
+        pageSize: 30,
+        nr: "",
+      },
+      form: {
+        xianprice: 0, // 鐜颁环鎬诲拰锛屽彲鎵嬪姩淇敼
+        limits: 10, // 鎬绘姌鎵�
+        pacName: "",
+        pacStatus: "",
+        tjCategory: "",
+        isOnSale: "",
+        sort: null,
+        retailPrice: null,
+        keywords: [],
+      },
+      youhui: 10, // 涓婃柟鎶樻墸
+      defaultProps: {
+        children: [],
+        label: "proName",
+      },
+      rules: {
+        pacName: [{ required: true, message: "濂楅鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }],
+        pacStatus: [
+          { required: true, message: "璇烽�夋嫨濂楅鐘舵��", trigger: "change" },
+        ],
+        isOnSale: [
+          { required: true, message: "璇烽�夋嫨鏄惁涓婃灦", trigger: "change" },
+        ],
+        sort: [{ required: true, message: "鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }],
+        retailPrice: [
+          { required: true, message: "灏忕▼搴忎环鏍间笉鑳戒负绌�", trigger: "blur" },
+        ],
+        tjCategory: [
+          { required: true, message: "璇烽�夋嫨浣撴绫诲埆", trigger: "change" },
+        ],
+      },
+    }
+  },
+  created() {
+    this.getList()
+    this.getKeyword()
+    this.getCategory()
+  },
+  methods: {
+    toggleCollapse() {
+      this.isCollapsed = !this.isCollapsed
+    },
+    filterNode(value, data) {
+      if (!value) return true
+      return (
+        data.proName.indexOf(value) !== -1 ||
+        (data.proEngName && data.proEngName.indexOf(value) !== -1)
+      )
+    },
+    getList() {
+      this.loading = true
+      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
+        this.packageList = response.rows
+        this.loading = false
+      })
+    },
+    getKeyword() {
+      listKeyword(this.queryParams).then((response) => {
+        this.keywordList = response.rows
+      })
+    },
+    sel(val) {
+      this.keys = val.join(",")
+    },
+    getCategory() {
+      listCategory(this.queryParams).then((response) => {
+        this.categoryList = response.rows
+      })
+    },
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    reset() {
+      this.form = {
+        pacId: null,
+        pacName: "",
+        pacRemark: "",
+        pacStatus: "",
+        tjCategory: "",
+        isOnSale: "",
+        sort: null,
+        retailPrice: null,
+        xianprice: 0,
+        limits: 10,
+        keywords: [],
+      }
+      this.DataList = []
+      this.checkedkey = []
+      this.checkedNodes = []
+      this.youhui = 10
+      this.pics = 0
+      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.length) {
+        this.forms = null
+        this.ids = []
+        this.single = true
+        this.multiple = true
+        return
+      }
+      this.forms = selection[0]
+      this.ids = selection.map((item) => item.pacId)
+      this.single = selection.length !== 1
+      this.multiple = false
+    },
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = "浣撴濂楅淇℃伅缁存姢"
+      this.getDataList()
+    },
+    handleStatusChange(row) {
+      let data = { pacId: row.pacId, pacStatus: row.pacStatus }
+      let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤"
+      this.$confirm(`纭瑕�${text}${row.pacName}濂楅鍚楋紵`)
+        .then(() => updateStatus(data))
+        .then(() => this.msgSuccess(`${text}鎴愬姛`))
+        .catch(() => {
+          row.pacStatus = row.pacStatus === "0" ? "1" : "0"
+        })
+    },
+    handleUp() {
+      this.title = "浣撴濂楅淇℃伅缁存姢"
+      this.open = true
+      getPacInFo(this.forms.pacId).then((response) => {
+        this.form = response.data
+        this.form.keywords = this.form.keywords
+          ? this.form.keywords.slice(0, -1).split(",")
+          : []
+        this.DataList = response.data.packageProjects || []
+        this.checkedkey = this.DataList.map((item) => item.proId)
+        this.checkedNodes = [...this.checkedkey]
+        this.updateTotalPrice()
+        this.updateYouhui()
+        this.getDataList()
+      })
+    },
+    handleUpdate(row) {
+      this.title = "浣撴濂楅淇℃伅缁存姢"
+      this.open = true
+      getPacInFo(row.pacId).then((response) => {
+        this.form = response.data
+        this.form.keywords = this.form.keywords
+          ? this.form.keywords.slice(0, -1).split(",")
+          : []
+        this.DataList = response.data.packageProjects || []
+        this.checkedkey = this.DataList.map((item) => item.proId)
+        this.checkedNodes = [...this.checkedkey]
+        this.updateTotalPrice()
+        this.updateYouhui()
+        this.getDataList()
+      })
+    },
+    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()
+      this.updateYouhui()
+    },
+    numberChange(currentValue) {
+      this.youhui = currentValue
+      this.DataList.forEach((item) => {
+        item.limits = this.youhui
+        this.updateProPrice(item)
+      })
+      this.updateTotalPrice()
+    },
+    handleXianPriceInput(value) {
+      const numValue = Math.max(0, Number(value) || 0)
+      this.form.xianprice = numValue
+    },
+    handleXianPriceChange(newValue) {
+      const value = Math.max(0, Number(newValue) || 0)
+      
+      if (this.DataList.length === 0 || this.pics === 0) {
+        this.form.xianprice = 0
+        this.youhui = 10
+        return
+      }
+
+      // 浣跨敤Big.js澶勭悊绮惧害
+      const totalOriginalPrice = new Big(this.pics)
+      const totalCurrentPrice = new Big(value)
+      let newYouhui = totalCurrentPrice
+        .div(totalOriginalPrice)
+        .times(10)
+        .toNumber()
+
+      // 闄愬埗鎶樻墸鑼冨洿
+      newYouhui = Math.min(10, Math.max(0, newYouhui))
+      this.youhui = Number(newYouhui.toFixed(1))
+
+      // 鏇存柊鎵�鏈夐」鐩殑鎶樻墸鍜岀幇浠�
+      this.DataList.forEach((item) => {
+        item.limits = this.youhui
+        this.updateProPrice(item)
+      })
+      
+      // 閲嶆柊璁$畻纭繚绮惧害
+      this.updateTotalPrice(true)
+    },
+    updateProPrice(row) {
+      if (!row.priceOrd) return
+      const proPrice = new Big(row.priceOrd)
+      const limits = new Big(row.limits || 10)
+      row.priceNow = parseFloat(proPrice.times(limits.div(10)).toFixed(2))
+    },
+    calculateDiscount(row) {
+      row.limits = Math.min(10, Math.max(0, row.limits))
+      this.updateProPrice(row)
+      this.updateTotalPrice()
+      this.updateYouhui()
+    },
+    updateTotalPrice(skipXianPrice = false) {
+      // 璁$畻鍘熶环鎬诲拰
+      this.pics = this.DataList.reduce(
+        (sum, item) => sum + (Number(item.priceOrd) || 0),
+        0
+      )
+      
+      // 璁$畻鐜颁环鎬诲拰
+      if (!skipXianPrice) {
+        const totalCurrent = this.DataList.reduce(
+          (sum, item) => sum + (Number(item.priceNow) || 0),
+          0
+        )
+        this.form.xianprice = parseFloat(totalCurrent).toFixed(2)
+      }
+    },
+    updateYouhui() {
+      if (this.DataList.length === 0 || this.pics === 0) {
+        this.youhui = 10
+        return
+      }
+      const totalOriginal = new Big(this.pics)
+      const totalCurrent = new Big(this.form.xianprice || 0)
+      this.youhui = parseFloat(
+        totalCurrent
+          .div(totalOriginal)
+          .times(10)
+          .toFixed(1)
+      )
+    },
+    renderContent(h, { node, data }) {
+      return (
+        <span class="custom-tree-node">
+          <span>{node.label}</span>
+          <span>({data.proPrice}鍏�)</span>
+        </span>
+      )
+    },
+    getDataList() {
+      this.loading = true
+      search(this.queryParams1).then((response) => {
+        this.Treedata = response.data.list
+        this.total1 = response.data.total
+        this.$nextTick(() => {
+          this.$refs.tree.setCheckedKeys(this.checkedNodes)
+        })
+        this.loading = false
+      })
+    },
+    handleFilterInput() {
+      this.queryParams1.page = 1
+      this.getDataList()
+    },
+    handleCurrentChecked(data, checked) {
+      if (checked) {
+        if (!this.DataList.some((item) => item.proId === data.proId)) {
+          const newItem = {
+            proId: data.proId,
+            proName: data.proName,
+            priceOrd: data.proPrice,
+            limits: this.youhui,
+            priceNow: 0,
+          }
+          this.updateProPrice(newItem)
+          this.DataList.push(newItem)
+          this.checkedNodes.push(data.proId)
+        }
+      } 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()
+      this.updateYouhui()
+    },
+    submitForm() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.form.limits = this.youhui
+          this.form.price = this.pics
+          this.form.newPrice = this.form.xianprice
+
+          const packageProjects = this.DataList.map((item) => ({
+            proName: item.proName,
+            proId: item.proId,
+            priceNow: item.priceNow,
+            limits: item.limits,
+            priceOrd: item.priceOrd,
+          }))
+
+          const data = {
+            pacName: this.form.pacName,
+            limits: this.form.limits,
+            pacStatus: this.form.pacStatus,
+            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,
+            keywords: this.keys,
+          }
+
+          saveOreditTjPacNew(data).then(() => {
+            this.open = false
+            this.getList()
+            this.$modal.msgSuccess("淇濆瓨鎴愬姛")
+          })
+        }
+      })
+    },
+    handleDelete(row) {
+      const pacIds = row.pacId || this.ids
+      this.$modal
+        .confirm(`鏄惁纭鍒犻櫎浣撴濂楅缂栧彿涓�"${pacIds}"鐨勬暟鎹」锛焋)
+        .then(() => delPackage(pacIds))
+        .then(() => {
+          this.getList()
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+        })
+        .catch(() => {})
+    },
+    handleExport() {
+      this.download(
+        "system/package/export",
+        { ...this.queryParams },
+        `package_${new Date().getTime()}.xlsx`
+      )
+    },
+  },
+}
+</script>
+
+<style>
+.el-tooltip__popper {
+  max-width: 800px;
+}
+
+.showInline {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  line-clamp: 2;
+  -webkit-box-orient: vertical;
+}
+
+.pag {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+}
+
+.pag1 {
+  width: 30%;
+}
+
+.dialog-footer {
+  position: absolute;
+  left: 40%;
+  bottom: 2%;
+}
+.tab3 {
+  max-height: 400px;
+  overflow-y: auto;
+  border: 1px solid #d9d9d9;
+}
 </style>
\ No newline at end of file
diff --git a/src/views/system/tijian/index.vue b/src/views/system/tijian/index.vue
index ad39758..52c3914 100644
--- a/src/views/system/tijian/index.vue
+++ b/src/views/system/tijian/index.vue
@@ -3261,6 +3261,7 @@
             discount: item.discount,
             parentProId: item.parentProId,
             cusIdCard: item.cusId,
+            yhj: item.nowPrice
           })); // 鍒涘缓鏂扮殑瀵硅薄锛屽寘鍚� discount 鍜� id
         gaibianzhekou(newArray).then((res) => {
           this.loadingSubmit = false;
diff --git a/vue.config.js b/vue.config.js
index 6d559de..eb6d728 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -53,13 +53,14 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `https://ltpeis.xaltjdkj.cn:5801/`,
-<<<<<<< HEAD
+
         // target: `http://192.168.1.2:5011`,
         target: `http://192.168.1.113:5011`,
-=======
+
         target: `http://192.168.1.113:5011`,
+
+        target: `http://192.168.1.2:5011`,
         // target: `http://192.168.1.113:5011`,
->>>>>>> ad78625bb4b876018ac68c6f402c9b21d1a7b3bc
         // // target: `http://192.168.0.99:8080/ltkj-admin`,
         // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`,
         // target: `http://10.168.0.9:5011`,

--
Gitblit v1.8.0