From d873c5ee1eb9218341b73c116c02a456d0f2973a Mon Sep 17 00:00:00 2001
From: qx <1084500556@qq.com>
Date: 星期四, 12 六月 2025 16:52:12 +0800
Subject: [PATCH] qx

---
 src/views/system/comp/index.vue |  961 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 652 insertions(+), 309 deletions(-)

diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue
index 07b3d74..ce09f16 100644
--- a/src/views/system/comp/index.vue
+++ b/src/views/system/comp/index.vue
@@ -1,6 +1,7 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"
+      @submit.native.prevent>
       <el-form-item label="鍗曚綅鍚嶇О" prop="cnName">
         <el-input ref="inputName" v-model="queryParams.cnName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" clearable
           @keyup.enter.native="handleQuery" />
@@ -36,7 +37,7 @@
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table border v-loading="loading" :data="compList" @selection-change="handleSelectionChange">
+    <el-table border v-loading="loading" :data="compList" @selection-change="handleSelectionChange" ref="tab">
       <el-table-column fixed="left" type="selection" width="40px" align="center" />
       <el-table-column label="搴忓彿" align="center" prop="newID" :show-overflow-tooltip="true" width="50px" fixed="left" />
       <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="cnName" width="240px" />
@@ -116,22 +117,28 @@
     </div>
 
     <div>
-      <el-dialog :title="title" :visible.sync="opens" width="1350px" append-to-body :close-on-click-modal="false">
+      <el-dialog :title="title" :visible.sync="opens" width="1350px" append-to-body :close-on-click-modal="true">
         <el-row :gutter="20">
           <el-col :span="7" :xs="24">
             <div style="padding: 0 20px">
-              <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true">
-                <el-form-item label="閮ㄩ棬鍚嶇О" prop="dwDeptName">
-                  <el-input v-model="form.dwDeptName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" />
+              <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true" @submit.native.prevent>
+                <el-form-item label="濂楅鍚嶇О" prop="dwDeptName">
+                  <el-input v-model="form.dwDeptName" placeholder="璇疯緭鍏ュ椁愬悕绉�" />
                 </el-form-item>
                 <el-form-item label="绛剧害閲戦" prop="signingPrice">
                   <el-input v-model="form.signingPrice" placeholder="璇疯緭鍏ョ绾﹂噾棰�" />
                 </el-form-item>
+                 <el-form-item label="鐥呯" prop="bz" v-if="dwlxs == 1">
+                <el-select v-model="form.bz" placeholder="璇烽�夋嫨鐥呯" style="width: 130px" clearable>
+                  <el-option v-for="dict in dict.type.reservation_pay_type" :key="dict.value" :label="dict.label"
+                    :value="dict.value" />
+                </el-select>
+              </el-form-item>
               </el-form>
               <el-row :gutter="10" class="mb8">
                 <el-col :span="1.5">
                   <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddDept"
-                    v-hasPermi="['system:comp:add']">淇濆瓨閮ㄩ棬</el-button>
+                    v-hasPermi="['system:comp:add']">淇濆瓨濂楅</el-button>
                 </el-col>
                 <el-col :span="1.5">
                   <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singleg" @click="handledeleDept"
@@ -139,14 +146,14 @@
                 </el-col>
               </el-row>
               <el-table ref="tb" v-loading="loading" :data="deptList" @selection-change="handleSelection" border
-                style="width: 320px" height="350">
+                style="width: 320px" height="300">
                 <el-table-column type="selection" width="40px" align="center" />
-                <el-table-column label="閮ㄩ棬鍚嶇О" align="center" prop="dwDeptName" />
+                <el-table-column label="濂楅鍚嶇О" align="center" prop="dwDeptName" />
               </el-table>
             </div>
           </el-col>
           <el-col :span="17" :xs="24">
-            <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true">
+            <el-form ref="form" :model="forms" :rules="rules" label-width="78px" :inline="true" @submit.native.prevent>
               <el-form-item label="鍒嗙粍鍚嶇О" prop="groupingName">
                 <el-input v-model="forms.groupingName" placeholder="璇疯緭鍏ュ垎缁勫悕绉�" style="width: 130px"
                   @focus="changegroupingName" />
@@ -169,10 +176,6 @@
               <el-form-item label="鍘熶环" prop="price">
                 <el-input v-model="forms.price" placeholder="璇疯緭鍏ュ師浠�" style="width: 130px" />
               </el-form-item>
-              <!-- <el-form-item label="鎶樻墸" prop="limits">
-                <el-input v-model="forms.limits" placeholder="璇疯緭鍏ユ姌鎵�" style="width: 130px" @change="numberChange" />
-              </el-form-item> -->
-
               <el-form-item label="浼樻儬浠�" prop="ysPrice">
                 <el-input v-model="forms.ysPrice" placeholder="璇疯緭鍏ュ簲鏀�" style="width: 120px" />
               </el-form-item>
@@ -182,6 +185,7 @@
                     :value="dict.value" />
                 </el-select>
               </el-form-item>
+             
               <el-form-item label="骞撮緞娈�">
                 <el-col :span="7">
                   <el-input v-model="forms.ltAge" style="width: 53px" />
@@ -191,10 +195,6 @@
                   <el-input v-model="forms.gtAge" style="width: 54px" />
                 </el-col>
               </el-form-item>
-
-
-
-
             </el-form>
 
             <el-row :gutter="10" class="mb8">
@@ -238,23 +238,24 @@
 
     <!-- 濂楅 -->
     <div>
-      <el-dialog :title="title" :visible.sync="openss" width="1400px" append-to-body :close-on-click-modal="false">
+      <el-dialog :title="title" :visible.sync="openss" width="1400px" :style="{ height: 1400 + 'px' }" append-to-body
+        :close-on-click-modal="false">
         <el-row :gutter="24">
           <el-col :span="8" :xs="24">
-            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"
+              @submit.native.prevent>
               <el-form-item label="濂楅鍚嶇О" prop="pacName">
                 <el-input ref="inputName" v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable
                   @keyup.enter.native="handleSearch" style="width: 140px" />
               </el-form-item>
               <el-form-item>
                 <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearch">鎼滅储</el-button>
-                <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> -->
               </el-form-item>
             </el-form>
             <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne"
               height="478">
               <el-table-column type="selection" width="40px" align="center" />
-              <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" />
+              <el-table-column label="搴忓彿" align="center" prop="pacId" width="50px" />
               <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName">
                 <template slot-scope="scope">
                   {{ scope.row.pacName + "/" + scope.row.price }}
@@ -264,7 +265,7 @@
           </el-col>
           <el-col :span="6" :xs="24">
             <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px"
-              style="height: 35px">
+              @submit.native.prevent>
               <el-form-item label="鍚堣" prop="price">
                 <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" />
               </el-form-item>
@@ -277,9 +278,9 @@
             </div> -->
             <!--       @row-dblclick="dbclick" -->
             <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478">
-              <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName">
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName">
                 <template slot-scope="scope">
-                  {{ scope.row.proName + "/" + scope.row.proPrice }}
+                  {{ scope.row.proName }}
                 </template>
               </el-table-column>
 
@@ -290,6 +291,11 @@
                 </template>
               </el-table-column>
             </el-table>
+            <div style="font-size: 16px; margin-top: 10px">
+              褰撳墠椤圭洰鏉℃暟锛�<span style="font-weight: 700">{{
+                OnenewpacName.length
+              }}</span>鏉�
+            </div>
           </el-col>
           <el-col :span="2" :xs="24">
             <div style="margin: 240% 16%">
@@ -297,10 +303,10 @@
             </div>
           </el-col>
           <el-col :span="8" :xs="24">
-            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
-              label-width="68px">
+            <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+              label-width="68px" @submit.native.prevent>
               <el-form-item label="椤圭洰鍚嶇О" prop="proName">
-                <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
+                <el-input ref="inputName" v-model="queryParams1.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
                   @keyup.enter.native="handleSearchFor" style="width: 140px" />
               </el-form-item>
               <el-form-item>
@@ -324,63 +330,93 @@
 
     <div>
       <el-dialog :title="title" :visible.sync="openOne" width="1400px" append-to-body :close-on-click-modal="false">
+        <div class="info-header" style="
+            margin-bottom: 15px;
+            padding: 10px;
+            background-color: #f5f7fa;
+            border-radius: 4px;
+          ">
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <span>椤圭洰鍚嶇О锛歿{ forms.groupingName }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span>鎬у埆锛歿{
+                forms.sex === "1" ? "濂�" : forms.sex === "0" ? "鐢�" : "鏈煡"
+              }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span>骞撮緞鑼冨洿锛歿{ forms.ltAge }}-{{ forms.gtAge }}宀�</span>
+            </el-col>
+          </el-row>
+        </div>
         <el-row :gutter="24" v-if="!isTableVisible">
-
-          <el-col :span="11" :xs="24">
+          <el-col :span="15" :xs="24">
             <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px"
-              style="height: 35px">
+              style="height: 50px" @submit.native.prevent>
               <el-form-item label="鍘熶环">
                 <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" />
               </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 label="鎶樻墸">
+                <el-input-number ref="inputNumber" style="width: 150px" v-model="youhui" :precision="1" :step="0.1"
+                  :min="0" :max="10" @change="debounceNumberChange" :debounce="3000"></el-input-number>
               </el-form-item>
               <el-form-item label="鐜颁环">
                 <el-input ref="inputName" v-model="queryParams.xianprice" placeholder="鍚堣" clearable
-                  style="width: 140px" />
+                  style="width: 140px" @input="changeXianjia" @blur="numberChangeXianPrice(youhui, youhui)" />
               </el-form-item>
               <el-form-item>
                 <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button>
               </el-form-item>
+              <el-form-item>
+                <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">閫夋嫨濂楅</el-button>
+              </el-form-item>
             </el-form>
-            <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478">
-              <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName">
-
+            <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"
+              :cell-style="{ padding: '5px 0' }">
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="410">
                 <template slot-scope="scope">
-                  {{ scope.row.proName + "/" + scope.row.proPrice }}
+                  {{ scope.row.proName }}
                 </template>
               </el-table-column>
-              <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column>
-              <el-table-column label="鎶樻墸">
+              <el-table-column label="鍘熶环" align="center" prop="proPrice" width="85"></el-table-column>
+              <el-table-column label="鎶樻墸" width="151">
                 <template slot-scope="scope">
-                  <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸 -->
-                  <el-input v-model.number="scope.row.limits" @input="validateDiscount(scope.row)" placeholder="杈撳叆鎶樻墸"
-                    size="small" type="number" min="0" step="1" max="10">
-                  </el-input>
+                  <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸  @input="validateDiscount(scope.row)"-->
+                  <el-input-number v-model="scope.row.limits" @change="handleManualChange(scope.row)" placeholder="杈撳叆鎶樻墸"
+                    size="mini" type="number" :min="0" :step="0.1" :precision="1" :max="10">
+                  </el-input-number>
                 </template>
               </el-table-column>
-              <el-table-column label="鐜颁环" align="center" prop="ysPrice"></el-table-column>
-              <el-table-column label="鎿嶄綔" align="center" width="68">
+              <el-table-column label="鐜颁环" align="center" prop="ysPrice" width="85"></el-table-column>
+              <el-table-column label="鎿嶄綔" align="center" width="85">
                 <template slot-scope="scope">
                   <el-button size="mini" type="text" icon="el-icon-delete"
                     @click="handledbelete(scope.row)">鍒犻櫎</el-button>
                 </template>
               </el-table-column>
             </el-table>
-          </el-col>
-          <el-col :span="2" :xs="24">
-            <div style="margin: 240% 16%">
-              <el-button type="primary" size="medium " icon="el-icon-back"
-                style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;" @click="resetright">纭�
-                璁�</el-button>
+            <div style="font-size: 16px; margin-top: 10px">
+              褰撳墠椤圭洰鏉℃暟锛�<span style="font-weight: 700">{{
+                OnenewpacName.length
+              }}</span>鏉�
             </div>
           </el-col>
-          <el-col :span="11" :xs="24">
-            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
-              label-width="68px">
+          <!-- <el-col :span="2" :xs="24">
+            <div style="margin: 240% 16%" class="btntoleft">
+              <el-button type="primary" size="medium"
+                style="writing-mode: vertical-rl; text-align: center; letter-spacing: 5px;" @click="resetright">
+                纭�
+                璁�
+                <i class="el-icon-back"></i>
+              </el-button>
+            </div>
+          </el-col> -->
+          <el-col :span="7" :xs="24">
+            <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+              label-width="68px" @submit.native.prevent>
               <el-form-item label="椤圭洰鍚嶇О" prop="proName">
-                <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
+                <el-input ref="inputName" v-model="queryParams1.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
                   @keyup.enter.native="handleSearchFor" style="width: 140px" />
               </el-form-item>
               <el-form-item>
@@ -388,52 +424,65 @@
               </el-form-item>
             </el-form>
             <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle"
-              height="478" style="width: 70%">
+              height="478" style="width: 100%">
               <el-table-column type="selection" width="40px" align="center" />
-              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" />
-              <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" />
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="230px" />
+              <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100px" />
             </el-table>
           </el-col>
         </el-row>
-        <!-- -=----------------------------------------------------- -->
         <el-row :gutter="24" v-else>
-          <el-col :span="8" :xs="24">
-            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
+          <el-col :span="6" :xs="24">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"
+              @submit.native.prevent>
               <el-form-item label="濂楅鍚嶇О" prop="pacName">
                 <el-input ref="inputName" v-model="queryParams.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable
                   @keyup.enter.native="handleSearch" style="width: 140px" />
               </el-form-item>
               <el-form-item>
                 <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearch">鎼滅储</el-button>
-                <!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> -->
               </el-form-item>
             </el-form>
             <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne"
-              height="478">
-              <el-table-column type="selection" width="40px" align="center" />
-              <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" />
+              height="483">
+              <!-- <el-table-column type="selection" width="40px" align="center" /> -->
+
+              <el-table-column label="搴忓彿" align="center" prop="newID" width="50px">
+                <template slot-scope="scope">
+                  {{ scope.row.newID }}
+                </template>
+              </el-table-column>
+
               <el-table-column label="濂楅鍚嶇О/浠锋牸/鍏�" align="center" prop="pacName">
                 <template slot-scope="scope">
                   {{ scope.row.pacName + "/" + scope.row.price }}
                 </template>
               </el-table-column>
             </el-table>
+            <div style="font-size: 16px; margin-top: 10px">
+              椤圭洰鎬绘潯鏁帮細<span style="font-weight: 700; margin-right: 5px">{{
+                newpacName.length
+              }}</span>鏉�
+            </div>
           </el-col>
-          <el-col :span="6" :xs="24">
+          <el-col :span="8" :xs="24">
             <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px"
-              style="height: 35px">
+              style="height: 51px" @submit.native.prevent>
               <el-form-item label="鍚堣" prop="price">
                 <el-input ref="inputName" v-model="queryParams.price" placeholder="鍚堣" clearable style="width: 140px" />
               </el-form-item>
               <el-form-item>
                 <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">閲嶇疆</el-button>
               </el-form-item>
+              <el-form-item>
+                <el-button type="primary" @click="Package" size="mini" style="margin-right: 20px">閫夋嫨濂楅</el-button>
+              </el-form-item>
             </el-form>
-            <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478">
-              <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName">
-
+            <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName" height="478"
+              :cell-style="{ padding: '5px 0' }">
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="170">
                 <template slot-scope="scope">
-                  {{ scope.row.proName + "/" + scope.row.proPrice }}
+                  {{ scope.row.proName }}
                 </template>
               </el-table-column>
               <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column>
@@ -444,19 +493,24 @@
                 </template>
               </el-table-column>
             </el-table>
-          </el-col>
-          <el-col :span="2" :xs="24">
-            <div style="margin: 240% 16%">
-              <el-button type="primary" size="medium " icon="el-icon-back"
-                style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;"
-                @click="resetright">纭</el-button>
+            <div style="font-size: 16px; margin-top: 10px">
+              褰撳墠椤圭洰鏉℃暟锛�<span style="font-weight: 700">{{
+                OnenewpacName.length
+              }}</span>鏉�
             </div>
           </el-col>
+          <!-- <el-col :span="2" :xs="24">
+            <div style="margin: 240% 16%">
+              <el-button type="primary" size="medium " icon="el-icon-back"
+                style="writing-mode: vertical-rl; text-align: center;letter-spacing: 10px;" @click="resetright">纭�
+                璁�</el-button>
+            </div>
+          </el-col> -->
           <el-col :span="8" :xs="24">
-            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
-              label-width="68px">
+            <el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+              label-width="68px" @submit.native.prevent>
               <el-form-item label="椤圭洰鍚嶇О" prop="proName">
-                <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
+                <el-input ref="inputName" v-model="queryParams1.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
                   @keyup.enter.native="handleSearchFor" style="width: 140px" />
               </el-form-item>
               <el-form-item>
@@ -464,9 +518,9 @@
               </el-form-item>
             </el-form>
             <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle"
-              height="478" style="width: 70%">
+              height="478">
               <el-table-column type="selection" width="40px" align="center" />
-              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="130" />
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="288" />
               <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100" />
             </el-table>
           </el-col>
@@ -478,15 +532,50 @@
       </el-dialog>
     </div>
 
+    <el-dialog  :visible.sync="taocan" width="70%" height="700px" :close-on-click-modal="false">
+      <!-- <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" label-width="auto">
+        <el-form-item label="濂楅鍚嶇О" prop="pacName">
+          <el-input v-model="queryParam.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" clearable @keyup.enter.native="handle"
+            style="width: 200px" />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" icon="el-icon-search" size="mini" @click="handle">鎼滅储</el-button>
+        </el-form-item>
+      </el-form> -->
+
+       <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 10px;margin-bottom: 20px;">
+      <el-radio-button label="0">鍩虹濂楅</el-radio-button>
+      <el-radio-button label="1">鍗曚綅濂楅</el-radio-button>
+    </el-radio-group>
+      <el-table v-loading="loading" element-loading-text="姝e湪鍔犺浇涓�..." element-loading-spinner="el-icon-loading" border
+        :data="newpacName1" @selection-change="handleSelectionChange1" height="450px" ref="tb">
+        <el-table-column type="selection" width="40px" align="center" label="閫夋嫨" />
+        <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" width="120px" />
+        <el-table-column label="濂楅浠锋牸" align="center" prop="price" width="120px" />
+        <el-table-column label="濂楅鏄庣粏" align="center" prop="allProName" :show-overflow-tooltip="true" />
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="cancel1">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submit">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+
     <!-- 娣诲姞鎴栦慨鏀逛綋妫�鍗曚綅淇℃伅缁存姢瀵硅瘽妗� -->
     <div class="dia">
-      <el-dialog :title="title" :visible.sync="open" width="1340px" append-to-body>
-        <el-form ref="form" :model="form" :rules="rules" label-width="106px" :inline="true">
+      <el-dialog :title="title" :visible.sync="open" width="1330px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="98px" :inline="true" @submit.native.prevent>
+          <el-form-item label="鍗曚綅绫诲瀷" prop="dwlx">
+            <el-radio-group v-model="form.dwlx" @input="radioChange">
+              <el-radio :label="0">鏅�氬崟浣�</el-radio>
+              <el-radio :label="1">鑱屼笟鐥呭崟浣�</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <br />
           <el-form-item label="鍗曚綅鍚嶇О" prop="cnName">
-            <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" style="width: 520px" />
+            <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" style="width:510px" />
           </el-form-item>
           <el-form-item label="缁熶竴淇$敤浠g爜" prop="taxNumber">
-            <el-input v-model="form.taxNumber" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" style="width: 520px" />
+            <el-input v-model="form.taxNumber" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" style="width: 510px" />
           </el-form-item>
           <el-form-item label="娉曚汉浠h〃" prop="legalPerson">
             <el-input v-model="form.legalPerson" placeholder="璇疯緭鍏ユ硶浜�" />
@@ -506,16 +595,51 @@
         </el-form-item> -->
 
           <el-form-item label="娉ㄥ唽鍦板潃" prop="registerAddress">
-            <el-input v-model="form.registerAddress" placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�" style="width: 1157px" />
+            <el-input v-model="form.registerAddress" placeholder="璇疯緭鍏ユ敞鍐屽湴鍧�" style="width: 1128px" />
           </el-form-item>
           <el-form-item label="閫氳鍦板潃" prop="mailingAddress">
-            <el-input v-model="form.mailingAddress" placeholder="璇疯緭鍏ラ�氳鍦板潃" style="width: 1157px" />
+            <el-input v-model="form.mailingAddress" placeholder="璇疯緭鍏ラ�氳鍦板潃" style="width: 1128px" />
           </el-form-item>
+          <el-form-item label="鎵�灞炲湴鍖�" prop="ssdq" v-if="form.dwlx == 1">
+            <el-input v-model="form.ssdq" placeholder="璇疯緭鍏ユ墍灞炲湴鍖�" />
+          </el-form-item>
+          <el-form-item label="闅跺睘鍏崇郴" prop="lsgx" v-if="form.dwlx == 1">
+            <!-- <el-input
+              v-model="form.industryType"
+              placeholder="璇疯緭鍏ラ毝灞炲叧绯�"
+            /> -->
+            <el-select filterable v-model="form.lsgx" placeholder="璇烽�夋嫨闅跺睘鍏崇郴" clearable style="width: 198px">
+              <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+                :value="dict.value" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="缁忔祹绫诲瀷" prop="jjlx" v-if="form.dwlx == 1">
+            <el-select filterable v-model="form.jjlx" placeholder="璇烽�夋嫨缁忔祹绫诲瀷" clearable style="width: 199px">
+              <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+                :value="dict.value" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="浼佷笟瑙勬ā" prop="qygm" v-if="form.dwlx == 1">
+            <el-input v-model="form.qygm" placeholder="璇疯緭鍏ヤ紒涓氳妯�" />
+          </el-form-item>
+          <el-form-item label="琛屼笟鍒嗙被" prop="hyfl" v-if="form.dwlx == 1">
+            <el-select filterable v-model="form.hyfl" placeholder="璇烽�夋嫨琛屼笟鍒嗙被" clearable style="width: 199px">
+              <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+                :value="dict.value" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="椋庨櫓璇勪及" prop="fxpg" v-if="form.dwlx == 1">
+            <el-select filterable v-model="form.fxpg" placeholder="璇烽�夋嫨椋庨櫓璇勪及" clearable style="width: 198px">
+              <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+                :value="dict.value" />
+            </el-select>
+          </el-form-item>
+          <br />
           <el-form-item label="寮�鎴烽摱琛�" prop="bankAccount">
-            <el-input v-model="form.bankAccount" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" style="width: 520px" />
+            <el-input v-model="form.bankAccount" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" style="width: 510px" />
           </el-form-item>
           <el-form-item label="閾惰璐︽埛" prop="countNum">
-            <el-input v-model="form.countNum" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" style="width: 520px" />
+            <el-input v-model="form.countNum" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" style="width: 510px" />
           </el-form-item>
           <el-form-item label="鑱旂郴閭" prop="email">
             <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" />
@@ -528,81 +652,12 @@
           </el-form-item>
 
           <el-form-item label="琛屾斂鍖哄垝鍚嶇О" prop="areaName">
-            <el-input v-model="form.areaName" placeholder="璇疯緭鍏ヨ鏀垮尯鍒掑悕绉�" />
+            <el-select filterable v-model="form.areaName" placeholder="璇烽�夋嫨琛屾斂鍖哄垝鍚嶇О" clearable style="width: 198px">
+              <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
+                :value="dict.value" />
+            </el-select>
           </el-form-item>
-          <!-- <el-form-item label="浼佷笟绫诲瀷" prop="typeOfEnterprise">
-          <el-select v-model="form.typeOfEnterprise" placeholder="璇烽�夋嫨浼佷笟绫诲瀷">
-            <el-option
-              v-for="dict in dict.type.dict_comp_type"
-              :key="dict.value"
-              :label="dict.label"
-:value="dict.value"
-            ></el-option>
-          </el-select>
-        </el-form-item> -->
-          <!-- <el-form-item label="琛屾斂鍖哄垝id" prop="areaid">
-          <el-input v-model="form.areaid" placeholder="璇疯緭鍏ヨ鏀垮尯鍒抜d" />
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP璇佷功缂栧彿" prop="gmpNo">
-          <el-input v-model="form.gmpNo" placeholder="璇疯緭鍏MP璇佷功缂栧彿" />
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP鍙戣瘉鏃ユ湡" prop="gmpissueDate">
-          <el-date-picker clearable
-            v-model="form.gmpissueDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="璇烽�夋嫨GMP鍙戣瘉鏃ユ湡">
-          </el-date-picker>
-        </el-form-item> -->
-          <!-- <el-form-item label="缁忚惀璁稿彲璇佸彿" prop="businessLicenseNumber">
-          <el-input v-model="form.businessLicenseNumber" placeholder="璇疯緭鍏ョ粡钀ヨ鍙瘉鍙�" />
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP鏈夋晥鎴鏃ユ湡" prop="gmpDeadlineDate">
-          <el-date-picker clearable
-            v-model="form.gmpDeadlineDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="璇烽�夋嫨GMP鏈夋晥鎴鏃ユ湡">
-          </el-date-picker>
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP璁よ瘉鑼冨洿" prop="gmpRange">
-          <el-input v-model="form.gmpRange" placeholder="璇疯緭鍏MP璁よ瘉鑼冨洿" />
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP寤剁画鑼冨洿" prop="gmpDelayRange">
-          <el-input v-model="form.gmpDelayRange" placeholder="璇疯緭鍏MP寤剁画鑼冨洿" />
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP寤剁画鏃ユ湡" prop="gmpDelayDate">
-          <el-date-picker clearable
-            v-model="form.gmpDelayDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="璇烽�夋嫨GMP寤剁画鏃ユ湡">
-          </el-date-picker>
-        </el-form-item> -->
-          <!-- <el-form-item label="GMP璇佷功鍥剧墖(base64缂栫爜)">
-          <image-upload v-model="form.gmpPhoto"/>
-        </el-form-item> -->
-          <!-- <el-form-item label="鎺掑簭" prop="orderNum">
-            <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ帓搴�" />
-          </el-form-item> -->
-          <!-- <el-form-item label="鏁版嵁鐘舵��(PT10.00.004)" prop="effective">
-          <el-select v-model="form.effective" placeholder="璇烽�夋嫨鏁版嵁鐘舵��(PT10.00.004)">
-            <el-option
-              v-for="dict in dict.type.dict_data_status"
-              :key="dict.value"
-              :label="dict.label"
-:value="dict.value"
-            ></el-option>
-          </el-select>
-        </el-form-item> -->
-          <!-- <el-form-item label="鎷奸煶" prop="spell">
-          <el-input v-model="form.spell" placeholder="璇疯緭鍏ユ嫾闊�" />
-        </el-form-item> -->
-          <!-- <el-form-item label="鏈夋晥鏃堕棿" prop="validTime">
-            <el-date-picker clearable v-model="form.validTime" type="date" value-format="yyyy-MM-dd"
-              placeholder="璇烽�夋嫨鏈夋晥鏃堕棿">
-            </el-date-picker>
-          </el-form-item><br> -->
+
           <el-form-item label="澶囨敞" prop="remark">
             <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" :rows="2" label-width="400px"
               style="width: 830px" resize="none"></el-input>
@@ -621,7 +676,7 @@
 </template>
 
 <script>
-import Big from 'big.js';
+import Big from "big.js";
 import {
   listComp,
   getComp,
@@ -638,7 +693,11 @@
   delegrouping,
   getDetails,
 } from "@/api/system/comp";
-import { deptTreeSelect, projectGetList, getconfigKey } from "@/api/system/tijian";
+import {
+  deptTreeSelect,
+  projectGetList,
+  getconfigKey,
+} from "@/api/system/tijian";
 import { getInfo } from "@/api/login";
 export default {
   name: "Comp",
@@ -647,6 +706,7 @@
     "dict_data_status",
     "sys_user_sex",
     "reservation_pay_type",
+    "sys_yes_no",
   ],
   data() {
     let checkPhoneNum = (rule, value, callback) => {
@@ -663,10 +723,11 @@
       // 閬僵灞�
       loading: true,
       Treedata: [],
-      getInfodis: 0,
       id: "",
       // 閫変腑鏁扮粍
       ids: [],
+      newpacName1: [],
+      taocan: false,
       // 鎺у埗鎬у埆閫夋嫨妗嗘槸鍚︾鐢�
       isSexDisabled: false,
       dwIds: [],
@@ -688,6 +749,7 @@
       multiple: true,
       // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
+      dwlxs: null,
       // 鎬绘潯鏁�
       total: 0,
       // 浣撴鍗曚綅淇℃伅缁存姢琛ㄦ牸鏁版嵁
@@ -700,6 +762,10 @@
       opens: false,
       openss: false,
       openOne: false,
+      queryParams1: {
+        proName: null,
+        pym: null,
+      },
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -709,11 +775,15 @@
         code: null,
         price: null,
         xianprice: null,
-        limits: null
+        limits: null,
       },
+
       id: "",
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        isZybUnit: 0,
+      },
+      lastXianPrice: 0,
       forms: {
         limits: 10,
         ltAge: 0,
@@ -723,8 +793,8 @@
         payType: "1",
         sex: "2",
       },
-      sfzs: '',
-      youhui: '',
+      sfzs: "",
+      youhui: "",
       // 琛ㄥ崟鏍¢獙
       rules: {
         cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
@@ -735,7 +805,9 @@
           { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         gtAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
-        limits: [{ required: false, validator: checkPhoneNum, trigger: "blur" }],
+        limits: [
+          { required: false, validator: checkPhoneNum, trigger: "blur" },
+        ],
         ltAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
         /*  pacName: [
           { required: true, validator: checkPhoneNum, trigger: "blur" },
@@ -785,33 +857,101 @@
   computed: {
     // 鏍规嵁 sfzs 瀛楁鐨勫�兼潵鎺у埗琛ㄦ牸鏄惁鏄剧ず
     isTableVisible() {
-      return this.sfzs === 'Y';
-    }
+      return this.sfzs === "Y";
+    },
   },
+
   created() {
     this.getList();
   },
   methods: {
+    handleManualChange(row) {
+      console.log("杩欐槸涓诲姩鍑哄彂鐨�");
+      this.updateProPrice(row);
+    },
     validateDiscount(row) {
-      if (row.limits > 10) {
-        row.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у��
-      } else if (row.limits < 0) {
-        row.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓��
+      if (
+        this.queryParams.xianprice !== undefined &&
+        !isNaN(this.queryParams.xianprice) &&
+        this.queryParams.xianprice !== this.lastXianPrice
+      ) {
+        // 鍙湁鍦ㄧ幇浠峰疄闄呯敱鐢ㄦ埛杈撳叆淇敼鏃舵墠鏇存柊
+        this.updateProPrice1(row);
+        this.lastXianPrice = this.queryParams.xianprice;
       }
-      this.updateProPrice(row); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫
     },
     updateProPrice(row) {
-
       const proPrice = new Big(row.proPrice);
-
       const limits = new Big(row.limits);
-      const result = proPrice.times(limits.div(10));  // ordPrice * (discount / 10)
-      row.ysPrice = result.toNumber();
+      const result = proPrice.times(limits.div(10)).toNumber(); // ordPrice * (discount / 10)
+      row.ysPrice = result.toFixed(2);
       this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
-        return sum.plus(new Big(item.ysPrice || '0'));
+        return sum.plus(new Big(item.ysPrice || "0"));
       }, new Big(0)).toNumber();
-      this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10
+      this.youhui =
+        (Math.floor(
+          (this.queryParams.xianprice / this.queryParams.price) * 100
+        ) /
+          100) *
+        10;
     },
+    updateProPrice1(row) {
+      const proPrice = new Big(row.proPrice);
+      const limits = new Big(row.limits);
+      const result = proPrice.times(limits.div(10)).toNumber(); // ordPrice * (discount / 10)
+      row.ysPrice = result.toFixed(2);
+      const totalYsPrice = this.OnenewpacName.reduce((sum, item) => {
+        return sum.plus(new Big(item.ysPrice || "0"));
+      }, new Big(0));
+      const totalYsPriceNum = totalYsPrice.toNumber();
+      if (
+        this.queryParams.xianprice !== undefined &&
+        !isNaN(this.queryParams.xianprice)
+      ) {
+        const xianPrice = new Big(this.queryParams.xianprice);
+        const diff = xianPrice.minus(totalYsPriceNum);
+        if (!diff.eq(0) && this.OnenewpacName.length > 0) {
+          const lastItem = this.OnenewpacName[this.OnenewpacName.length - 1];
+          const newYsPrice = new Big(lastItem.ysPrice).plus(diff).toNumber();
+          this.$set(
+            this.OnenewpacName[this.OnenewpacName.length - 1],
+            "ysPrice",
+            newYsPrice
+          );
+        }
+      }
+
+      // Update youhui calculation
+
+      if (this.queryParams.price !== 0 && this.queryParams.xianprice !== 0) {
+        this.youhui =
+          (Math.floor(
+            (this.queryParams.xianprice / this.queryParams.price) * 100
+          ) /
+            100) *
+          10;
+      } else {
+        this.youhui = 10;
+      }
+    },
+    debounceNumberChange(currentValue, oldValue) {
+      clearTimeout(this.debounceTimer);
+      this.debounceTimer = setTimeout(() => {
+        this.numberChange(currentValue, oldValue);
+      }, 300);
+    },
+    changeXianjia() {
+      // 鍘熷鎶樻墸鐜囪绠�
+      if (this.queryParams.price !== 0) {
+        this.youhui =
+          (Math.floor(
+            (this.queryParams.xianprice / this.queryParams.price) * 100
+          ) /
+            100) *
+          10;
+      }
+    },
+
     getList() {
       this.$nextTick(() => {
         this.$refs.inputName.focus();
@@ -830,17 +970,18 @@
         this.loading = false;
       });
     },
-    // 鍙栨秷鎸夐挳
+
     cancel() {
       this.open = false;
       this.opens = false;
-      this.$router.go(0);
+      // this.$router.go(0);
     },
 
     // 鍙栨秷濂楅
     cancell() {
       this.openss = false;
       this.openOne = false;
+      this.youhui = 10;
       // this.reset();
     },
     // 琛ㄥ崟閲嶇疆
@@ -899,7 +1040,8 @@
     resetQuerys() {
       (this.OnenewpacName = []),
         (this.queryParams.price = 0),
-        this.$refs.tbone.toggleRowSelection(this.pacList[0], false);
+        (this.queryParams.xianprice = 0),
+        (this.youhui = 0);
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
@@ -909,6 +1051,11 @@
       this.ids = selection.map((item) => item.drugManufacturerId);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      if (selection.length > 1) {
+        // 濡傛灉閫夋嫨浜嗗琛岋紝淇濈暀鏈�鍚庝竴琛�
+        this.$refs.tab.clearSelection(); // 娓呯┖鎵�鏈夐�夋嫨
+        this.$refs.tab.toggleRowSelection(selection[selection.length - 1]); // 閲嶆柊閫夋嫨鏈�鍚庝竴椤�
+      }
     },
     // 閮ㄩ棬琛ㄦ牸鍗曡鑾峰彇
     handleSelection(selection) {
@@ -941,6 +1088,7 @@
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
+      this.form.isZybUnit = 0;
       this.open = true;
       this.title = "娣诲姞浣撴鍗曚綅淇℃伅缁存姢";
     },
@@ -949,7 +1097,11 @@
       this.reset();
       const drugManufacturerId = row.drugManufacturerId || this.ids;
       getComp(drugManufacturerId).then((response) => {
-        this.form = response.data;
+        // 涓嶈鐩存帴璧嬪�兼暣涓� response.data锛岃�屾槸閫愪釜灞炴�ц祴鍊�
+        Object.assign(this.form, response.data);
+        this.form.isZybUnit = response.data.isZybUnit === true ? 1 : 0;
+         this.form.dwlx= Number(response.data.dwlx)
+        console.log("淇敼鏃剁殑 isZybUnit 鍊�:", this.form.isZybUnit);
         this.open = true;
         this.title = "淇敼浣撴鍗曚綅淇℃伅缁存姢";
       });
@@ -959,17 +1111,11 @@
       this.opens = true;
 
       this.groupingList = [];
-
+      this.dwlxs = this.form.dwlx
       if (this.form.drugManufacturerId) {
         this.beCurrentDept();
       }
-      this.title = "閮ㄩ棬鍒嗙粍缁存姢" + "( " + this.form.cnName + ")";
-      getInfo().then((response) => {
-        this.getInfodis = response.user.discount;
-        if (this.getInfodis == null || this.getInfodis == 10) {
-          this.isfalse = true;
-        }
-      });
+      this.title = "濂楅鍒嗙粍缁存姢" + "( " + this.form.cnName + ")";
     },
     numberChange(currentValue, oldValue) {
       this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
@@ -979,27 +1125,80 @@
       })
         .then(() => {
           this.youhui = currentValue;
-          if (this.youhui < this.getInfodis) {
-            this.youhui = this.getInfodis;
-            // this.$modal.msgError(`璇ヤ汉鍛樻渶楂樹紭鎯犳潈闄愪负${this.getInfodis}鎶榒);
-          }
+
           this.OnenewpacName.forEach((item) => {
-            item.limits = this.youhui
+            item.limits = this.youhui;
             const proPrice = new Big(item.proPrice);
             const limits = new Big(item.limits);
-            const result = proPrice.times(limits.div(10));  // ordPrice * (discount / 10)
+            const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10)
             item.ysPrice = result.toNumber();
-            this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
-              return sum.plus(new Big(item.ysPrice || '0'));
-            }, new Big(0));
-          })
-          // ----------------------------------------------------------
-
+            this.queryParams.xianprice = this.OnenewpacName.reduce(
+              (sum, item) => {
+                return sum.plus(new Big(item.ysPrice || "0"));
+              },
+              new Big(0)
+            ).toNumber();
+          });
         })
         .catch(() => {
           this.youhui = oldValue;
         });
+    },
+    numberChangeXianPrice(currentValue, oldValue) {
+      // 濡傛灉鐜颁环娌℃湁鍙樺寲锛岀洿鎺ヨ繑鍥�
+      if (
+        this.queryParams.xianprice === this.lastXianPrice ||
+        !this.queryParams.xianprice
+      ) {
+        return;
+      }
 
+      this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          // 纭繚淇敼鎶樻墸鐨勫��
+          this.youhui = currentValue;
+
+          let totalYsprice = new Big(0); // 鍒濆鍖栨�� ysprice
+          // 閬嶅巻姣忎釜椤圭洰锛屾洿鏂版瘡涓瓙椤圭殑浠锋牸
+          this.OnenewpacName.forEach((item) => {
+            item.limits = this.youhui;
+            const proPrice = new Big(item.proPrice);
+            const limits = new Big(item.limits);
+            const result = proPrice.times(limits.div(10)); // ordPrice * (discount / 10)
+            item.ysPrice = result.toNumber();
+            totalYsprice = totalYsprice.plus(new Big(item.ysPrice));
+          });
+          // 濡傛灉鎬荤殑 ysPrice 鍜屾煡璇㈠弬鏁颁腑鐨� xianprice 涓嶄竴鑷达紝杩涜璋冩暣
+          if (!totalYsprice.eq(this.queryParams.xianprice)) {
+            const diff = new Big(this.queryParams.xianprice).minus(
+              totalYsprice
+            );
+            // 濡傛灉 OnenewpacName 鏁扮粍涓嶄负绌猴紝璋冩暣鏈�鍚庝竴椤圭殑 ysPrice
+            if (this.OnenewpacName.length > 0) {
+              const lastItem =
+                this.OnenewpacName[this.OnenewpacName.length - 1];
+              const newYsPrice = new Big(lastItem.ysPrice)
+                .plus(diff)
+                .toNumber();
+              // 浣跨敤 $set 纭繚鍝嶅簲鎬ф洿鏂�
+              this.$set(
+                this.OnenewpacName[this.OnenewpacName.length - 1],
+                "ysPrice",
+                newYsPrice
+              );
+            }
+          }
+          // 鏇存柊 lastXianPrice 浠ヤ究涓嬫姣旇緝
+          this.lastXianPrice = this.queryParams.xianprice;
+        })
+        .catch(() => {
+          // 濡傛灉鍙栨秷淇敼锛屾仮澶嶅師鏈夌殑浼樻儬鍊�
+          this.youhui = oldValue;
+        });
     },
 
     changegroupingName() {
@@ -1024,7 +1223,6 @@
               index +
               1;
           });
-
         });
       } else {
         deptTreeSelect().then((response) => {
@@ -1036,15 +1234,17 @@
               index +
               1;
           });
-
         });
       }
       getProjectList().then((response) => {
         this.Treedata = response.data;
-
       });
     },
-
+    getpro() {
+      getProjectList().then((response) => {
+        this.Treedata = response.data;
+      });
+    },
     handleSearch() {
       if (this.queryParams.pacName) {
         getPackageList(this.queryParams.pacName).then((response) => {
@@ -1076,96 +1276,124 @@
       }
     },
     handleSearchFor() {
-      getProjectList(this.queryParams.proName).then((response) => {
-        this.Treedata = response.data;
-        response.data.forEach((item, index) => {
-          item.newID =
-            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
-            index +
-            1;
+      // 鍒ゆ柇鏄惁涓烘眽瀛�
+      const isChineseChar = (char) => /[\u4E00-\u9FA5]/.test(char);
+      if (isChineseChar(this.queryParams1.proName)) {
+        this.queryParams1.pym = null;
+        getProjectList(this.queryParams1).then((response) => {
+          this.Treedata = response.data;
         });
-      });
+      } else {
+        this.queryParams1.pym = this.queryParams1.proName;
+        this.queryParams1.proName = null;
+        getProjectList(this.queryParams1).then((response) => {
+          this.Treedata = response.data;
+        });
+      }
     },
     // 鍗曢」鏁版嵁鑾峰彇
     handleChangesingle(selection) {
       if (selection) {
         this.dataList = selection;
+        this.resetright();
       }
     },
     resetright() {
-  this.queryParams.price = 0;
-  this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠�
-  this.youhui = 0; // 鍒濆鍖栦紭鎯�
+      if (this.dataList.length == 0) {
+        return; // 濡傛灉鏁版嵁鍒楄〃涓虹┖锛岀洿鎺ヨ繑鍥�
+      } else {
+        this.queryParams.price = 0; // 鍒濆鍖栨�讳环
+        this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠�
+        this.youhui = 0; // 鍒濆鍖栦紭鎯�
 
-  const newItemsToAdd = [];
+        const newItemsToAdd = []; // 鐢ㄤ簬瀛樺偍鏂伴渶瑕佹坊鍔犵殑椤圭洰
 
-  this.dataList.forEach((item) => {
-    this.$refs.tre.toggleRowSelection(item, false);
-    // 浣跨敤 $set 纭繚鍝嶅簲鎬�
-    this.$set(item, 'limits', 10);
-    this.$set(item, 'ysPrice', item.proPrice);
-    
-    // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑椤圭洰
-    const existingItem = this.OnenewpacName.find(existing => existing.proId === item.proId);
-    if (!existingItem) {
-      newItemsToAdd.push(item);
-      this.updateProPrice(item); // 鏇存柊鍗曚釜椤圭洰鐨勪环鏍�
-    }
-  });
+        this.dataList.forEach((item) => {
+          this.$refs.tre.toggleRowSelection(item, false); // 鍙栨秷閫変腑鐘舵��
+          // 浣跨敤 $set 纭繚鍝嶅簲鎬�
+          this.$set(item, "limits", 10); // 璁剧疆闄愬埗鏁伴噺
+          this.$set(item, "ysPrice", item.proPrice); // 璁剧疆鐜颁环涓哄師浠�
 
-  // 娣诲姞鏂伴」鐩埌 OnenewpacName
-  this.OnenewpacName.push(...newItemsToAdd);
+          // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑椤圭洰
+          const existingItem = this.OnenewpacName.find(
+            (existing) => existing.proId === item.proId
+          );
+          if (!existingItem) {
+            newItemsToAdd.push(item); // 濡傛灉涓嶅瓨鍦ㄧ浉鍚岄」鐩紝鍒欐坊鍔犲埌鏂版暟缁�
+            this.updateProPrice(item);
+          }
+        });
 
-  // 鍒犻櫎閲嶅椤圭洰锛岃繖閲屾垜浠彧闇�澶勭悊鏂版坊鍔犵殑椤圭洰鍜屽師鏈夐」鐩箣闂寸殑閲嶅
-  for (let i = this.OnenewpacName.length - newItemsToAdd.length; i < this.OnenewpacName.length - 1; i++) {
-    for (let j = i + 1; j < this.OnenewpacName.length; j++) {
-      if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) {
-        this.OnenewpacName.splice(j, 1);
-        j--;
+        // 娣诲姞鏂伴」鐩埌 OnenewpacName
+        this.OnenewpacName.push(...newItemsToAdd);
+
+        // 鍒犻櫎閲嶅椤圭洰锛岃繖閲屾垜浠彧闇�澶勭悊鏂版坊鍔犵殑椤圭洰鍜屽師鏈夐」鐩箣闂寸殑閲嶅
+        for (
+          let i = this.OnenewpacName.length - newItemsToAdd.length;
+          i < this.OnenewpacName.length - 1;
+          i++
+        ) {
+          for (let j = i + 1; j < this.OnenewpacName.length; j++) {
+            if (this.OnenewpacName[i].proId === this.OnenewpacName[j].proId) {
+              this.OnenewpacName.splice(j, 1); // 鍒犻櫎閲嶅鐨勯」鐩�
+              j--; // 鍥犱负鍒犻櫎浜嗕竴涓厓绱狅紝褰撳墠鐨刯瑕佸噺1
+            }
+          }
+        }
+        this.queryParams.price = 0;
+        this.queryParams.xianprice = 0;
+        // 閲嶆柊璁$畻鎬讳环鍜岀幇浠�
+        this.OnenewpacName.forEach((item) => {
+          this.queryParams.price += item.proPrice; // 绱姞鍘熶环
+          //this.queryParams.xianprice += item.ysPrice || 0;  绱姞鐜颁环锛屽鏋測sPrice涓簎ndefined鍒欑疮鍔�0
+        });
+        this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
+          return sum.plus(new Big(item.ysPrice || "0"));
+        }, new Big(0)).toNumber();
+        this.youhui =
+          (Math.floor(
+            (this.queryParams.xianprice / this.queryParams.price) * 100
+          ) /
+            100) *
+          10;
       }
-    }
-  }
+    },
+    handledbelete(row) {
+      this.queryParams.price = 0;
+      this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠�
+      this.youhui = 0; // 鍒濆鍖栦紭鎯�
 
-  // 璁$畻鎬讳环鍜岀幇浠�
-  this.OnenewpacName.forEach((item) => {
-    this.queryParams.price += item.proPrice;
-    this.queryParams.xianprice += item.ysPrice || 0; // 纭繚ysPrice瀛樺湪
-  });
+      // 鍏堟壘鍒板苟鍒犻櫎椤圭洰
+      this.OnenewpacName = this.OnenewpacName.filter(
+        (item) => item.proId !== row.proId
+      );
 
-  // 璁$畻浼樻儬
-  if (this.queryParams.price > 0) {
-    this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10;
-  } else {
-    this.youhui = 0;
-  }
-},
-handledbelete(row) {
-  this.queryParams.price = 0;
-  this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠�
-  this.youhui = 0; // 鍒濆鍖栦紭鎯�
-  
-  // 鍏堟壘鍒板苟鍒犻櫎椤圭洰
-  this.OnenewpacName = this.OnenewpacName.filter(item => item.proId !== row.proId);
+      // 鐒跺悗鏇存柊鎬讳环鍜岀幇浠�
+      this.OnenewpacName.forEach((item) => {
+        this.queryParams.price += item.proPrice;
+        this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
+          return sum.plus(new Big(item.ysPrice || "0"));
+        }, new Big(0)).toNumber();
+      });
 
-  // 鐒跺悗鏇存柊鎬讳环鍜岀幇浠�
-  this.OnenewpacName.forEach((item) => {
-    this.queryParams.price += item.proPrice;
-    this.queryParams.xianprice += item.ysPrice || 0; // 纭繚ysPrice瀛樺湪
-  });
-
-  // 璁$畻浼樻儬
-  if (this.queryParams.price > 0) {
-    this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10;
-  } else {
-    this.youhui = 0;
-  }
-},
+      // 璁$畻浼樻儬
+      if (this.queryParams.price > 0) {
+        this.youhui =
+          (Math.floor(
+            (this.queryParams.xianprice / this.queryParams.price) * 100
+          ) /
+            100) *
+          10;
+      } else {
+        this.youhui = 10;
+      }
+    },
 
     submitrighr() {
       this.openOne = false;
       this.forms.price = this.queryParams.price;
-      this.forms.ysPrice = this.queryParams.xianprice
-      this.forms.limits = this.youhui
+      this.forms.ysPrice = this.queryParams.xianprice;
+      this.forms.limits = this.youhui;
       let mapList = [];
       this.OnenewpacName.forEach((item) => {
         mapList.push({
@@ -1173,7 +1401,7 @@
           proId: item.proId,
           proPrice: item.proPrice,
           limits: item.limits,
-          ysPrice: item.ysPrice
+          ysPrice: item.ysPrice,
         });
       });
 
@@ -1196,7 +1424,7 @@
         mapList: mapList,
         price: this.forms.price,
         ysPrice: this.forms.ysPrice,
-        id: this.groupList[0] ? this.groupList[0].id : ''
+        id: this.groupList[0] ? this.groupList[0].id : "",
       };
 
       // 鍙戦�佽姹備繚瀛樻暟鎹�
@@ -1274,6 +1502,7 @@
           this.forms.groupingName = item.groupingName;
           this.forms.gtAge = item.gtAge;
           this.forms.limits = item.limits;
+          this.youhui = item.limits;
           this.forms.ltAge = item.ltAge;
           this.forms.pacName = item.pacName;
           this.forms.payType = item.payType;
@@ -1290,30 +1519,40 @@
       this.groupIds = selection.map((item) => item.id);
       this.singlegg = !selection.length;
     },
+    handleBeforeClose(done) {
+      this.$confirm("纭鍏抽棴锛�")
+        .then(() => done())
+        .catch(() => {
+          /* 鍙栨秷鍏抽棴 */
+        });
+    },
     xiangmuWh() {
-      if (!this.forms.groupingName ||
-        !this.forms.sex ||
-        !this.forms.payType) {
+      if (!this.forms.groupingName || !this.forms.sex || !this.forms.payType) {
         this.$modal.msgError("璇峰厛濉啓鎵�鏈夊繀濉」!");
         return; // Stop execution if any required field is empty
       }
       this.openOne = true;
-
       this.title = "鍒嗙粍椤圭洰缁存姢";
       this.OnenewpacName = [];
       this.queryParams.price = 0;
       this.loading = true;
       if (this.groupList[0]) {
-        let id = this.groupList[0].id || '';
+        let id = this.groupList[0].id || "";
         getDetails(id).then((res) => {
           this.OnenewpacName = res.data.groupingProList;
-          this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
-            return sum.plus(new Big(item.ysPrice || '0'));
-          }, new Big(0));
-          this.OnenewpacName.forEach((item, index) => {
-            this.queryParams.price += item.proPrice;
-          });
-          this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10
+          // this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
+          //   return sum.plus(new Big(item.ysPrice || '0'));
+          // }, new Big(0)).toNumber();
+
+          // this.OnenewpacName.forEach((item, index) => {
+          //   this.queryParams.price += item.proPrice;
+          // });
+          //
+
+          // this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price) * 100) / 100) * 10
+          this.queryParams.xianprice = res.data.ysPrice;
+          this.queryParams.price = res.data.price;
+          this.youhui = res.data.limits;
         });
       }
       // console.log(this.groupList[0].id, 9966);
@@ -1321,13 +1560,12 @@
         this.sfzs = res.msg;
       });
 
-
-
       if (this.forms.sex) {
+        console.log("杩涙潵浜唅f");
+
         deptTreeSelect(this.forms.sex).then((response) => {
           // 濂楅鍚嶇О
           this.newpacName = response.rows;
-
           this.loading = false;
           response.rows.forEach((item, index) => {
             item.newID =
@@ -1337,6 +1575,8 @@
           });
         });
       } else {
+        console.log("杩涙潵浜唀lse");
+
         deptTreeSelect().then((response) => {
           this.newpacName = response.rows;
           this.loading = false;
@@ -1350,7 +1590,6 @@
       }
       getProjectList().then((response) => {
         this.Treedata = response.data;
-        // console.log(this.Treedata,999888);
       });
     },
 
@@ -1364,9 +1603,6 @@
           proPrice: item.proPrice,
         });
       });
-
-
-
 
       let data = {
         groupingName: this.forms.groupingName,
@@ -1399,7 +1635,6 @@
     },
     // 淇敼鍒嗙粍
     GroupUpdate() {
-      console.log(this.$refs.elTable)
       this.$refs.tbs.clearSelection();
       this.forms = {
         groupingName: "",
@@ -1412,7 +1647,6 @@
         price: "",
         ysPrice: "",
       };
-
     },
     beCurrent() {
       let data = {
@@ -1470,9 +1704,40 @@
       }
     },
 
-    // 鎶婃瘡涓�琛岀殑绱㈠紩鏀捐繘row,鏂逛究鍙屽嚮淇敼鏃犳硶鑾峰緱绱㈠紩鍒欐棤娉曞彇娑堝悗鏁版嵁杩涜杩樺師
     tableRowClassName({ row, rowIndex }) {
       row.index = rowIndex;
+    },
+
+    Package() {
+      this.taocan = true;
+      deptTreeSelect(this.forms.sex).then((res) => {
+        if (res.rows) {
+          this.newpacName1 = res.rows;
+        }
+      });
+    },
+
+    handle() {
+      this.loading = true;
+      deptTreeSelect(this.forms.sex, this.queryParam)
+        .then((res) => {
+          if (res.rows) {
+            this.newpacName1 = res.rows; // 鏇存柊濂楅鍒楄〃
+          } else {
+            this.newpacName1 = [];
+          }
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+          this.$modal.msgError("鎼滅储澶辫触锛岃绋嶅悗閲嶈瘯");
+        });
+    },
+
+
+    radioChange(val) {
+      this.reset();
+      this.form.dwlx = val
     },
 
     /** 鎻愪氦鎸夐挳 */
@@ -1521,6 +1786,69 @@
         })
         .catch(() => { });
     },
+
+    submit() {
+      if (!this.selectedPackage) {
+        this.$modal.msgError("璇峰厛閫夋嫨涓�涓椁�");
+        return;
+      }
+
+      // 娓呯┖宸︿晶琛ㄦ牸
+      this.OnenewpacName = [];
+
+      // 鑾峰彇閫変腑鐨勫椁愰」鐩垪琛�
+      const newProjects = this.selectedPackage.tjProjectList || [];
+
+      // 灏嗛�変腑鐨勫椁愰」鐩坊鍔犲埌宸︿晶琛ㄦ牸
+      this.loading = true;
+      newProjects.forEach((project) => {
+        // 涓烘瘡涓」鐩缃粯璁ゆ姌鎵e拰鐜颁环
+        this.$set(project, "limits", 10); // 榛樿鎶樻墸 10锛堝嵆鍘熶环锛�
+        this.$set(project, "ysPrice", project.proPrice); // 鐜颁环鍒濆鍖栦负鍘熶环
+        this.OnenewpacName.push(project);
+      });
+
+      // 鏇存柊鎬讳环鍜岀幇浠�
+      this.queryParams.price = this.OnenewpacName.reduce((sum, item) => {
+        return sum + (item.proPrice || 0);
+      }, 0);
+
+      this.queryParams.xianprice = this.OnenewpacName.reduce((sum, item) => {
+        return sum + (item.ysPrice || 0);
+      }, 0);
+
+      // 鏇存柊浼樻儬鍊�
+      this.youhui =
+        this.queryParams.price > 0
+          ? (Math.floor(
+            (this.queryParams.xianprice / this.queryParams.price) * 100
+          ) /
+            100) *
+          10
+          : 0;
+
+      // 鍏抽棴瀵硅瘽妗�
+      this.taocan = false;
+      this.loading = false;
+      this.$modal.msgSuccess("娣诲姞鎴愬姛");
+    },
+    cancel1() {
+      this.taocan = false;
+    },
+
+    handleSelectionChange1(selection) {
+      // 瀹炵幇鍗曢�夐�昏緫
+      if (selection.length > 1) {
+        const lastSelected = selection[selection.length - 1];
+        this.$refs.tb.clearSelection();
+        this.$refs.tb.toggleRowSelection(lastSelected, true);
+        this.selectedPackage = lastSelected;
+      } else if (selection.length === 1) {
+        this.selectedPackage = selection[0];
+      } else {
+        this.selectedPackage = null;
+      }
+    },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
       this.download(
@@ -1534,7 +1862,7 @@
   },
 };
 </script>
-<style scoped>
+<style lang="scss" scoped>
 .pag {
   width: 100%;
   display: flex;
@@ -1568,4 +1896,19 @@
   width: 50px;
   height: 100px;
 }
+
+::v-deep .el-dialog__body {
+  padding: 5px 30px;
+}
+
+::v-deep .el-dialog {
+  // height: 750px;
+  overflow-y: auto;
+}
+
+::v-deep .btntoleft .el-button--medium {
+  padding: 20px 20px 10px;
+  font-size: 14px;
+  border-radius: 4px;
+}
 </style>

--
Gitblit v1.8.0