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 | 1651 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 1,198 insertions(+), 453 deletions(-)

diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue
index 5f9ac22..ce09f16 100644
--- a/src/views/system/comp/index.vue
+++ b/src/views/system/comp/index.vue
@@ -1,12 +1,14 @@
 <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" />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
+          style="margin: 0 15px">鎼滅储</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
       </el-form-item>
     </el-form>
@@ -30,12 +32,12 @@
       </el-col>
       <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="mainDepartment"
-          v-hasPermi="['system:comp:edit']">缁存姢閮ㄩ棬</el-button>
+          v-hasPermi="['system:comp:edit']">缁存姢濂楅</el-button>
       </el-col>
       <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" />
@@ -47,7 +49,7 @@
         <template slot-scope="scope">
           <dict-tag :options="dict.type.dict_comp_type" :value="scope.row.typeOfEnterprise"/>
         </template>
-      </el-table-column> -->
+</el-table-column> -->
       <el-table-column label="琛屾斂鍖哄垝" align="center" prop="areaName" :show-overflow-tooltip="true" />
       <el-table-column label="閫氳鍦板潃" align="center" prop="mailingAddress" :show-overflow-tooltip="true" />
       <el-table-column label="閭" align="center" prop="email" :show-overflow-tooltip="true" />
@@ -83,7 +85,7 @@
       <el-table-column label="淇敼浜�" align="center" prop="updateBy" :show-overflow-tooltip="true" width="100px" />
       <el-table-column label="淇敼鏃堕棿" align="center" prop="updateTime" width="100px" :show-overflow-tooltip="true">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span>
         </template>
       </el-table-column>
       <el-table-column label="鎺掑簭" align="center" prop="orderNum" :show-overflow-tooltip="true" width="55px" />
@@ -109,28 +111,34 @@
 
     <div class="pag">
       <div class="pag1">
-        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-          @pagination="getList" />
+        <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize" @pagination="getList" />
       </div>
     </div>
 
     <div>
-      <el-dialog :title="title" :visible.sync="opens" width="1350px" append-to-body>
+      <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="璇疯緭鍏ラ儴闂ㄥ悕绉�" />
+            <div style="padding: 0 20px">
+              <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"
@@ -138,38 +146,38 @@
                 </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"
+                <el-input v-model="forms.groupingName" placeholder="璇疯緭鍏ュ垎缁勫悕绉�" style="width: 130px"
                   @focus="changegroupingName" />
               </el-form-item>
               <el-form-item label="鎬у埆" prop="sex">
-                <el-select v-model="forms.sex" placeholder="璇烽�夋嫨鎬у埆" style="width: 120px" clearable>
+                <el-select v-model="forms.sex" placeholder="璇烽�夋嫨鎬у埆" style="width: 120px" clearable
+                  :disabled="isSexDisabled">
                   <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                     :value="dict.value" />
                 </el-select>
               </el-form-item>
-              <el-form-item label="濂楅鍚嶇О" prop="pacName">
-                <el-input v-model="forms.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" @focus="changeName" style="width:130px" />
-              </el-form-item>
+              <!-- <el-form-item label="濂楅鍚嶇О" prop="pacName">
+                <el-input
+                  v-model="forms.pacName"
+                  placeholder="璇疯緭鍏ュ椁愬悕绉�"
+                  @focus="changeName"
+                  style="width: 130px"
+                />
+              </el-form-item> -->
               <el-form-item label="鍘熶环" prop="price">
-                <el-input v-model="forms.price" placeholder="璇疯緭鍏ュ師浠�" style="width:130px" />
+                <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" :disabled="isfalse"
-                  @change="numberChange" />
-              </el-form-item>
-
-              <el-form-item label="搴旀敹" prop="ysPrice">
-                <el-input v-model="forms.ysPrice" placeholder="璇疯緭鍏ュ簲鏀�" style="width:120px" disabled />
+              <el-form-item label="浼樻儬浠�" prop="ysPrice">
+                <el-input v-model="forms.ysPrice" placeholder="璇疯緭鍏ュ簲鏀�" style="width: 120px" />
               </el-form-item>
               <el-form-item label="缁撶畻鏂瑰紡" prop="payType">
                 <el-select v-model="forms.payType" placeholder="璇烽�夋嫨缁撶畻鏂瑰紡" style="width: 130px" clearable>
@@ -177,27 +185,30 @@
                     :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;" />
+                  <el-input v-model="forms.ltAge" style="width: 53px" />
                 </el-col>
                 <el-col class="line" :span="1">-</el-col>
                 <el-col :span="9">
-                  <el-input v-model="forms.gtAge" style="width: 54px;" />
+                  <el-input v-model="forms.gtAge" style="width: 54px" />
                 </el-col>
               </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="handleGroup"
-                  v-hasPermi="['system:comp:add']">淇濆瓨</el-button>
+                <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleGroup">淇濆瓨</el-button>
               </el-col>
               <el-col :span="1.5">
-                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg" @click="GroupUpdate"
-                  v-hasPermi="['system:comp:edit']">閲嶇疆</el-button>
-                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg" @click="deleteGroup"
-                  v-hasPermi="['system:comp:edit']">鍒犻櫎</el-button>
+                <el-button type="primary" icon="el-icon-edit" size="mini" @click="xiangmuWh">椤圭洰缁存姢</el-button>
+              </el-col>
+              <el-col :span="1.5">
+                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg"
+                  @click="GroupUpdate">閲嶇疆</el-button>
+                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="singlegg"
+                  @click="deleteGroup">鍒犻櫎</el-button>
               </el-col>
             </el-row>
             <el-table border ref="tbs" v-loading="loading" :data="groupingList" @selection-change="handleChange"
@@ -227,64 +238,83 @@
 
     <!-- 濂楅 -->
     <div>
-      <el-dialog :title="title" :visible.sync="openss" width="1400px" append-to-body>
+      <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;" />
+                  @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 }}
+                  {{ scope.row.pacName + "/" + scope.row.price }}
                 </template>
               </el-table-column>
             </el-table>
           </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-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>
-            <div style="color: red;font-size: 8px;">娉ㄩ噴锛氶紶鏍囧乏閿弻鍑婚�変腑琛屽彲鍒犻櫎</div>
-            <el-table border v-loading="loading" :data="OnenewpacName" :row-class-name="tableRowClassName"
-              @row-dblclick="dbclick" height="478">
-              <el-table-column label="椤圭洰鍚嶇О/浠锋牸/鍏�" align="center" prop="proName">
+            <!-- <div style="color: red; font-size: 8px">
+              娉ㄩ噴锛氶紶鏍囧乏閿弻鍑婚�変腑琛屽彲鍒犻櫎
+            </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">
                 <template slot-scope="scope">
-                  {{ scope.row.proName + '/' + scope.row.proPrice }}
+                  {{ scope.row.proName }}
+                </template>
+              </el-table-column>
+
+              <el-table-column label="鎿嶄綔" align="center" width="68">
+                <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>
+            <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% 6%;">
+            <div style="margin: 240% 16%">
               <el-button type="primary" size="medium " icon="el-icon-back" @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
-                  @keyup.enter.native="handleSearchFor" style="width: 140px;" />
+                <el-input ref="inputName" v-model="queryParams1.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
+                  @keyup.enter.native="handleSearchFor" style="width: 140px" />
               </el-form-item>
               <el-form-item>
                 <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button>
               </el-form-item>
             </el-form>
-            <el-table border v-loading="loading" :data="Treedata" @selection-change="handleChangesingle" height="478">
+            <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle"
+              height="478">
               <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" />
@@ -298,16 +328,254 @@
       </el-dialog>
     </div>
 
+    <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="15" :xs="24">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px"
+              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="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" @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"
+              :cell-style="{ padding: '5px 0' }">
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="410">
+                <template slot-scope="scope">
+                  {{ scope.row.proName }}
+                </template>
+              </el-table-column>
+              <el-table-column label="鍘熶环" align="center" prop="proPrice" width="85"></el-table-column>
+              <el-table-column label="鎶樻墸" width="151">
+                <template slot-scope="scope">
+                  <!-- 鍙緭鍏ョ函鏁板瓧鎶樻墸  @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" 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>
+            <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%" 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="queryParams1.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
+                  @keyup.enter.native="handleSearchFor" style="width: 140px" />
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button>
+              </el-form-item>
+            </el-form>
+            <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle"
+              height="478" style="width: 100%">
+              <el-table-column type="selection" width="40px" align="center" />
+              <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="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-form-item>
+            </el-form>
+            <el-table ref="tbone" border v-loading="loading" :data="newpacName" @selection-change="handleChangeOne"
+              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="8" :xs="24">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px"
+              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"
+              :cell-style="{ padding: '5px 0' }">
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="170">
+                <template slot-scope="scope">
+                  {{ scope.row.proName }}
+                </template>
+              </el-table-column>
+              <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column>
+              <el-table-column label="鎿嶄綔" align="center" width="68">
+                <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>
+            <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="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="queryParams1.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
+                  @keyup.enter.native="handleSearchFor" style="width: 140px" />
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleSearchFor">鎼滅储</el-button>
+              </el-form-item>
+            </el-form>
+            <el-table border v-loading="loading" ref="tre" :data="Treedata" @selection-change="handleChangesingle"
+              height="478">
+              <el-table-column type="selection" width="40px" align="center" />
+              <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="288" />
+              <el-table-column label="椤圭洰浠锋牸/鍏�" align="center" prop="proPrice" width="100" />
+            </el-table>
+          </el-col>
+        </el-row>
+        <div slot="footer" class="dialog-footer1">
+          <el-button type="primary" @click="submitrighr">纭骞朵繚瀛�</el-button>
+          <el-button @click="cancell">鍙� 娑�</el-button>
+        </div>
+      </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="璇疯緭鍏ユ硶浜�" />
@@ -327,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="璇疯緭鍏ラ偖绠�" />
@@ -349,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>
@@ -438,37 +672,64 @@
         </div>
       </el-dialog>
     </div>
-
   </div>
 </template>
 
 <script>
-import { listComp, getComp, delComp, addComp, getfzgrouping, updateComp, addDept, Deptlist, deldwdept, getDwAndDwDept, dwgrouping, getProjectList, getPackageList, delegrouping } from "@/api/system/comp";
-import { deptTreeSelect, projectGetList } from "@/api/system/tijian";
+import Big from "big.js";
+import {
+  listComp,
+  getComp,
+  delComp,
+  addComp,
+  updateComp,
+  addDept,
+  Deptlist,
+  deldwdept,
+  getDwAndDwDept,
+  dwgrouping,
+  getProjectList,
+  getPackageList,
+  delegrouping,
+  getDetails,
+} from "@/api/system/comp";
+import {
+  deptTreeSelect,
+  projectGetList,
+  getconfigKey,
+} from "@/api/system/tijian";
 import { getInfo } from "@/api/login";
 export default {
   name: "Comp",
-  dicts: ['dict_comp_type', 'dict_data_status', "sys_user_sex", "reservation_pay_type",],
+  dicts: [
+    "dict_comp_type",
+    "dict_data_status",
+    "sys_user_sex",
+    "reservation_pay_type",
+    "sys_yes_no",
+  ],
   data() {
     let checkPhoneNum = (rule, value, callback) => {
-         console.log( value)
       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 (value != undefined && value != "") {
         return callback();
-      }else if (!patter.test(value)) {
-        return callback('');
+      } else if (!patter.test(value)) {
+        return callback("");
       }
     };
     return {
       // 閬僵灞�
       loading: true,
       Treedata: [],
-      getInfodis: 0,
       id: "",
       // 閫変腑鏁扮粍
       ids: [],
+      newpacName1: [],
+      taocan: false,
+      // 鎺у埗鎬у埆閫夋嫨妗嗘槸鍚︾鐢�
+      isSexDisabled: false,
       dwIds: [],
       groupIds: [],
       deptList: [],
@@ -476,8 +737,9 @@
       newpacName: [],
       OnenewpacName: [],
       pacList: [],
-      data: [],
+      dataList: [],
       groupList: [],
+      dataLists: [],
       // 闈炲崟涓鐢�
       single: true,
       singleg: true,
@@ -487,6 +749,7 @@
       multiple: true,
       // 鏄剧ず鎼滅储鏉′欢
       showSearch: true,
+      dwlxs: null,
       // 鎬绘潯鏁�
       total: 0,
       // 浣撴鍗曚綅淇℃伅缁存姢琛ㄦ牸鏁版嵁
@@ -498,6 +761,11 @@
       open: false,
       opens: false,
       openss: false,
+      openOne: false,
+      queryParams1: {
+        proName: null,
+        pym: null,
+      },
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -506,104 +774,192 @@
         enName: null,
         code: null,
         price: null,
+        xianprice: null,
+        limits: null,
       },
+
       id: "",
       // 琛ㄥ崟鍙傛暟
-      form: {},
+      form: {
+        isZybUnit: 0,
+      },
+      lastXianPrice: 0,
       forms: {
         limits: 10,
         ltAge: 0,
         gtAge: 100,
         groupingName: "",
         pacName: "",
-        payType: "",
-        sex: "",
-
+        payType: "1",
+        sex: "2",
       },
-
-
+      sfzs: "",
+      youhui: "",
       // 琛ㄥ崟鏍¢獙
       rules: {
-        cnName: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
+        cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
         dwDeptName: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         groupingName: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        gtAge: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
+        gtAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
         limits: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: false, validator: checkPhoneNum, trigger: "blur" },
         ],
-        ltAge: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        pacName: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
+        ltAge: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
+        /*  pacName: [
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
+        ], */
         payType: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        sex: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
+        sex: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
 
         deleted: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         contactPerson: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         contactPhone: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        taxNumber: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        legalPerson: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        registerAddress: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        bankAccount: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        countNum: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        principal: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        faxNumber: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        mailingAddress: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-        email: [
-          { required: true, validator: checkPhoneNum,  trigger: "blur" }
-        ],
-      }
+        // taxNumber: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // legalPerson: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // registerAddress: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // bankAccount: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // countNum: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // principal: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // faxNumber: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // mailingAddress: [
+        //   { required: true, validator: checkPhoneNum, trigger: "blur" },
+        // ],
+        // email: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
+      },
     };
   },
+  computed: {
+    // 鏍规嵁 sfzs 瀛楁鐨勫�兼潵鎺у埗琛ㄦ牸鏄惁鏄剧ず
+    isTableVisible() {
+      return this.sfzs === "Y";
+    },
+  },
+
   created() {
     this.getList();
   },
   methods: {
+    handleManualChange(row) {
+      console.log("杩欐槸涓诲姩鍑哄彂鐨�");
+      this.updateProPrice(row);
+    },
+    validateDiscount(row) {
+      if (
+        this.queryParams.xianprice !== undefined &&
+        !isNaN(this.queryParams.xianprice) &&
+        this.queryParams.xianprice !== this.lastXianPrice
+      ) {
+        // 鍙湁鍦ㄧ幇浠峰疄闄呯敱鐢ㄦ埛杈撳叆淇敼鏃舵墠鏇存柊
+        this.updateProPrice1(row);
+        this.lastXianPrice = this.queryParams.xianprice;
+      }
+    },
+    updateProPrice(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);
+      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;
+    },
+    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()
+        this.$refs.inputName.focus();
       }),
-        this.loading = true;
-      listComp(this.queryParams).then(response => {
+        (this.loading = true);
+      listComp(this.queryParams).then((response) => {
         this.compList = response.rows;
+
         response.rows.forEach((item, index) => {
           item.newID =
             (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
@@ -614,17 +970,19 @@
         this.loading = false;
       });
     },
-    // 鍙栨秷鎸夐挳
+
     cancel() {
       this.open = false;
       this.opens = false;
-      this.$router.go(0)
+      // this.$router.go(0);
     },
 
     // 鍙栨秷濂楅
     cancell() {
       this.openss = false;
-      this.reset();
+      this.openOne = false;
+      this.youhui = 10;
+      // this.reset();
     },
     // 琛ㄥ崟閲嶇疆
     reset() {
@@ -665,7 +1023,7 @@
         spell: null,
         validTime: null,
         wbm: null,
-        deleted: null
+        deleted: null,
       };
       this.resetForm("form");
     },
@@ -679,42 +1037,71 @@
       this.resetForm("queryForm");
       this.handleQuery();
     },
+    resetQuerys() {
+      (this.OnenewpacName = []),
+        (this.queryParams.price = 0),
+        (this.queryParams.xianprice = 0),
+        (this.youhui = 0);
+    },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      selection.forEach(item => {
-        this.form = item
-      })
-      this.ids = selection.map(item => item.drugManufacturerId)
-      this.single = selection.length !== 1
-      this.multiple = !selection.length
+      selection.forEach((item) => {
+        this.form = item;
+      });
+      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) {
-      this.selectionList = selection
+      this.selectionList = selection;
       if (selection.length > 1) {
         let del_row = selection.shift();
         this.$refs.tb.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑
       }
-      this.dwIds = selection.map(item => item.id)
-      this.singleg = !selection.length
-      if (this.selectionList[0].id) {
-        this.beCurrent()
+      this.dwIds = selection.map((item) => item.id);
+      this.singleg = !selection.length;
+      if (this.selectionList.length && this.selectionList[0].id) {
+        this.beCurrent();
+      } else {
+        this.GroupUpdate();
       }
 
-
+      /* if (this.selectionList.length) {
+        // 濡傛灉绗竴涓〃鏍兼湁閫変腑椤癸紝閫変腑绗簩涓〃鏍煎搴旂殑鏁版嵁
+        const selectedDeptId = this.selectionList[0].id; // 鍋囪姣忎釜椤规湁涓�涓敮涓�鐨� id
+        const correspondingGroups = this.groupingList.filter(
+          (group) => group.deptId === selectedDeptId
+        );
+        this.groupList = correspondingGroups;
+      } else {
+        // 濡傛灉娌℃湁閫変腑浠讳綍椤癸紝娓呯┖绗簩涓〃鏍肩殑閫変腑椤�
+        this.groupList = [];
+        this.$refs.tbs.clearSelection();
+      } */
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
+      this.form.isZybUnit = 0;
       this.open = true;
       this.title = "娣诲姞浣撴鍗曚綅淇℃伅缁存姢";
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
-      const drugManufacturerId = row.drugManufacturerId || this.ids
-      getComp(drugManufacturerId).then(response => {
-        this.form = response.data;
+      const drugManufacturerId = row.drugManufacturerId || this.ids;
+      getComp(drugManufacturerId).then((response) => {
+        // 涓嶈鐩存帴璧嬪�兼暣涓� 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 = "淇敼浣撴鍗曚綅淇℃伅缁存姢";
       });
@@ -722,24 +1109,96 @@
     // 缁存姢閮ㄩ棬
     mainDepartment() {
       this.opens = true;
+
+      this.groupingList = [];
+      this.dwlxs = this.form.dwlx
       if (this.form.drugManufacturerId) {
-        this.beCurrentDept()
+        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.forms.limits = currentValue;
-      if (this.forms.limits > this.getInfodis) {
-        this.forms.limits = this.getInfodis;
-        this.forms.ysPrice = (this.forms.price * (this.forms.limits / 10)).toFixed(2);
+      this.$confirm("纭畾淇敼鎵�鏈夊瓙椤圭殑鎶樻墸鍚楋紵", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.youhui = currentValue;
+
+          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();
+            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() {
@@ -751,83 +1210,41 @@
     changeName() {
       this.openss = true;
       this.title = "鍒嗙粍椤圭洰缁存姢";
-      this.OnenewpacName = []
-      this.queryParams.price = 0
+      this.OnenewpacName = [];
+      this.queryParams.price = 0;
+      this.loading = true;
       if (this.forms.sex) {
         deptTreeSelect(this.forms.sex).then((response) => {
           this.newpacName = response.rows;
+          this.loading = false;
           response.rows.forEach((item, index) => {
             item.newID =
               (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
               index +
               1;
           });
-          if (this.groupList[0].id) {
-            getfzgrouping(this.groupList[0].id).then((response) => {
-              this.OnenewpacName = response.data.groupingProList
-              this.queryParams.price = 0
-              this.OnenewpacName.forEach(item => {
-                this.queryParams.price += item.proPrice
-              })
-            });
-          }
-          if (this.newpacName.length != 0) {
-            this.$nextTick(() => {
-              if (this.forms.pacName) {
-                this.newpacName.forEach((item, index) => {
-                  if (this.forms.pacName == item.pacName) {
-                    this.$refs.tbone.toggleRowSelection(this.newpacName[index], true);
-                  }
-                })
-              } else {
-                this.$refs.tbone.toggleRowSelection(this.newpacName[0], true);
-              }
-            })
-          } else {
-            this.$refs.tbone.clearSelection();
-          }
         });
       } else {
         deptTreeSelect().then((response) => {
           this.newpacName = response.rows;
+          this.loading = false;
           response.rows.forEach((item, index) => {
             item.newID =
               (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
               index +
               1;
           });
-          if (this.groupList[0].id) {
-            getfzgrouping(this.groupList[0].id).then((response) => {
-              this.OnenewpacName = response.data.groupingProList
-              this.queryParams.price = 0
-              this.OnenewpacName.forEach(item => {
-                this.queryParams.price += item.proPrice
-              })
-            });
-          }
-          if (this.newpacName.length != 0) {
-            this.$nextTick(() => {
-              if (this.forms.pacName) {
-                this.newpacName.forEach((item, index) => {
-                  if (this.forms.pacName == item.pacName) {
-                    this.$refs.tbone.toggleRowSelection(this.newpacName[index], true);
-                  }
-                })
-              } else {
-                this.$refs.tbone.toggleRowSelection(this.newpacName[0], true);
-              }
-
-            })
-          } else {
-            this.$refs.tbone.clearSelection();
-          }
         });
       }
       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) => {
@@ -839,8 +1256,7 @@
               1;
           });
         });
-      }
-      else {
+      } else {
         deptTreeSelect().then((response) => {
           this.newpacName = response.rows;
           response.rows.forEach((item, index) => {
@@ -852,64 +1268,196 @@
           if (this.newpacName.length != 0) {
             this.$nextTick(() => {
               this.$refs.tbone.toggleRowSelection(this.newpacName[0], true);
-            })
+            });
           } else {
             this.$refs.tbone.clearSelection();
           }
         });
       }
-
     },
     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.data = selection
+        this.dataList = selection;
+        this.resetright();
       }
     },
-    // 鍗曢」閫夊畾鎸夐挳
     resetright() {
-      this.queryParams.price = 0
-      this.data.forEach(item => {
-        this.OnenewpacName.push(item)
-      })
-      this.OnenewpacName.forEach(item => {
-        this.queryParams.price += item.proPrice
-      })
+      if (this.dataList.length == 0) {
+        return; // 濡傛灉鏁版嵁鍒楄〃涓虹┖锛岀洿鎺ヨ繑鍥�
+      } else {
+        this.queryParams.price = 0; // 鍒濆鍖栨�讳环
+        this.queryParams.xianprice = 0; // 鍒濆鍖栫幇浠�
+        this.youhui = 0; // 鍒濆鍖栦紭鎯�
+
+        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);
+          }
+        });
+
+        // 娣诲姞鏂伴」鐩埌 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 = 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();
+      });
+
+      // 璁$畻浼樻儬
+      if (this.queryParams.price > 0) {
+        this.youhui =
+          (Math.floor(
+            (this.queryParams.xianprice / this.queryParams.price) * 100
+          ) /
+            100) *
+          10;
+      } else {
+        this.youhui = 10;
+      }
+    },
+
     submitrighr() {
-      this.openss = false
-      this.forms.pacName = this.pacList[0].pacName
-      this.forms.price = this.queryParams.price
-      this.forms.ysPrice = (this.forms.price * (this.forms.limits / 10)).toFixed(2);
+      this.openOne = false;
+      this.forms.price = this.queryParams.price;
+      this.forms.ysPrice = this.queryParams.xianprice;
+      this.forms.limits = this.youhui;
+      let mapList = [];
+      this.OnenewpacName.forEach((item) => {
+        mapList.push({
+          proName: item.proName,
+          proId: item.proId,
+          proPrice: item.proPrice,
+          limits: item.limits,
+          ysPrice: item.ysPrice,
+        });
+      });
+
+      // 濡傛灉 selectionList 涓虹┖锛屼娇鐢� mapList 缁х画淇濆瓨
+      if (this.OnenewpacName.length === 0) {
+        this.$modal.msgError("璇峰厛閫変腑椤圭洰");
+        return; // 鎻愮ず鐢ㄦ埛閫変腑椤圭洰
+      }
+
+      let data = {
+        groupingName: this.forms.groupingName,
+        gtAge: this.forms.gtAge,
+        limits: this.forms.limits,
+        ltAge: this.forms.ltAge,
+        pacName: this.forms.pacName,
+        payType: this.forms.payType,
+        sex: this.forms.sex,
+        dwDeptId: this.selectionList.length > 0 ? this.selectionList[0].id : "", // 濡傛灉娌℃湁閫変腑閮ㄩ棬锛岃缃负绌�
+        dwId: this.selectionList.length > 0 ? this.selectionList[0].dwId : "",
+        mapList: mapList,
+        price: this.forms.price,
+        ysPrice: this.forms.ysPrice,
+        id: this.groupList[0] ? this.groupList[0].id : "",
+      };
+
+      // 鍙戦�佽姹備繚瀛樻暟鎹�
+      dwgrouping(data).then((res) => {
+        if (res.code == 200) {
+          this.beCurrent();
+          this.forms.groupingName = "";
+          this.forms.sex = "2";
+          this.forms.pacName = "";
+          this.forms.price = "";
+          this.forms.ysPrice = "";
+          this.forms.payType = "1";
+        }
+      });
+
+      // this.handleGroup();
     },
     // 濂楅鍗曢」鑾峰彇
     handleChangeOne(selection) {
-      this.pacList = selection
-      this.OnenewpacName = []
-      this.queryParams.price = 0
-      selection.forEach(item => {
-        this.OnenewpacName = item.tjProjectList
-        this.OnenewpacName.forEach(item => {
-          this.queryParams.price += item.proPrice
-        })
-      })
       if (selection.length > 1) {
         let del_row = selection.shift();
         this.$refs.tbone.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑
       }
+      this.pacList = selection;
 
+      this.dataLists = [];
+      this.queryParams.price = 0;
+      this.pacList.forEach((item) => {
+        this.OnenewpacName = item.tjProjectList;
+      });
+      this.OnenewpacName.forEach((item) => {
+        this.queryParams.price += item.proPrice;
+      });
     },
     beCurrentDept() {
       Deptlist(this.form.drugManufacturerId).then((response) => {
@@ -917,14 +1465,12 @@
         if (this.deptList.length != 0) {
           this.$nextTick(() => {
             this.$refs.tb.toggleRowSelection(this.deptList[0], true);
-          })
+          });
         } else {
           this.$refs.tb.clearSelection();
         }
       });
     },
-
-
 
     // 淇濆瓨閮ㄩ棬
     handleAddDept() {
@@ -933,10 +1479,10 @@
         dwId: this.form.drugManufacturerId,
         dwDeptName: this.form.dwDeptName,
         signingPrice: this.form.signingPrice,
-      }
+      };
       addDept(data).then((response) => {
         if (response.code == 200) {
-          this.beCurrentDept()
+          this.beCurrentDept();
         }
       });
     },
@@ -944,127 +1490,193 @@
     handledeleDept() {
       deldwdept(this.dwIds).then((response) => {
         if (response.code == 200) {
-          this.beCurrentDept()
+          this.beCurrentDept();
         }
       });
     },
 
     handleChange(selection) {
-      this.groupList = selection
-      this.groupList.forEach(item => {
-        this.forms.groupingName = item.groupingName
-        this.forms.gtAge = item.gtAge
-        this.forms.limits = item.limits
-        this.forms.ltAge = item.ltAge
-        this.forms.pacName = item.pacName
-        this.forms.payType = item.payType
-        this.forms.sex = item.sex
-        this.forms.price = item.price
-        this.forms.ysPrice = item.ysPrice
-      })
-      if (selection.length > 1) {
-        let del_row = selection.shift();
-        this.$refs.tbs.toggleRowSelection(del_row, false); //璁剧疆杩欎竴琛屽彇娑堥�変腑
-      }
-      this.groupIds = selection.map(item => item.id)
-      this.singlegg = !selection.length
-    },
-    //淇濆瓨鍒嗙粍
-    handleGroup() {
-      if (this.selectionList.length <= 0) {
-        this.$modal.msgError("璇峰厛閫変腑閮ㄩ棬鎴栨坊鍔犳柊鐨勯儴闂�");
+      this.groupList = selection;
+      if (selection.length > 0) {
+        this.groupList.forEach((item) => {
+          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;
+          this.forms.sex = item.sex;
+          this.forms.price = item.price;
+          this.forms.ysPrice = item.ysPrice;
+        });
+        this.isSexDisabled = true; // 绂佺敤鎬у埆閫夋嫨
       } else {
-        this.groupList.forEach(item => {
-          if (item.id) {
-            this.id = item.id
-          }
-        })
-        let mapList = []
-        this.OnenewpacName.forEach(item => {
-          mapList.push({
-            proName: item.proName,
-            proId: item.proId,
-            proPrice: item.proPrice,
-          })
-        })
-        if (this.id) {
-          var data = {
-            id: this.id,
-            groupingName: this.forms.groupingName,
-            gtAge: this.forms.gtAge,
-            limits: this.forms.limits,
-            ltAge: this.forms.ltAge,
-            pacName: this.forms.pacName,
-            payType: this.forms.payType,
-            sex: this.forms.sex,
-            dwDeptId: this.selectionList[0].id,
-            dwId: this.selectionList[0].dwId,
-            mapList: mapList,
-            price: this.forms.price,
-            ysPrice: this.forms.ysPrice,
-          }
-        } else {
-          var data = {
-            groupingName: this.forms.groupingName,
-            gtAge: this.forms.gtAge,
-            limits: this.forms.limits,
-            ltAge: this.forms.ltAge,
-            pacName: this.forms.pacName,
-            payType: this.forms.payType,
-            sex: this.forms.sex,
-            dwDeptId: this.selectionList[0].id,
-            dwId: this.selectionList[0].dwId,
-            mapList: mapList,
-            price: this.forms.price,
-            ysPrice: this.forms.ysPrice,
-          }
-        }
-        dwgrouping(data).then(res => {
-          if (res.code == 200) {
-            this.beCurrent()
-            this.forms.groupingName = "";
-            this.forms.sex = "";
-            this.forms.pacName = "";
-            this.forms.price = "";
-            this.forms.ysPrice = "";
-            this.forms.payType = "";
-          }
-        })
+        // 濡傛灉娌℃湁閫変腑琛岋紝娓呯┖琛ㄥ崟骞跺彇娑堢鐢�
+        this.GroupUpdate();
+        this.isSexDisabled = false; // 鎭㈠鎬у埆閫夋嫨妗嗕负鍙敤
       }
+      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) {
+        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 || "";
+        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)).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);
+      getconfigKey("sfzstc").then((res) => {
+        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 =
+              (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+              index +
+              1;
+          });
+        });
+      } else {
+        console.log("杩涙潵浜唀lse");
+
+        deptTreeSelect().then((response) => {
+          this.newpacName = response.rows;
+          this.loading = false;
+          response.rows.forEach((item, index) => {
+            item.newID =
+              (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+              index +
+              1;
+          });
+        });
+      }
+      getProjectList().then((response) => {
+        this.Treedata = response.data;
+      });
+    },
+
+    handleGroup() {
+      // 濡傛灉娌℃湁閫変腑浠讳綍閮ㄩ棬锛堝嵆娌℃湁 selectionList锛夛紝鍙互鐩存帴浠� OnenewpacName 鑾峰彇鏁版嵁
+      let mapList = [];
+      this.OnenewpacName.forEach((item) => {
+        mapList.push({
+          proName: item.proName,
+          proId: item.proId,
+          proPrice: item.proPrice,
+        });
+      });
+
+      let data = {
+        groupingName: this.forms.groupingName,
+        gtAge: this.forms.gtAge,
+        limits: this.forms.limits,
+        ltAge: this.forms.ltAge,
+        pacName: this.forms.pacName,
+        payType: this.forms.payType,
+        sex: this.forms.sex,
+        dwDeptId: this.selectionList.length > 0 ? this.selectionList[0].id : "", // 濡傛灉娌℃湁閫変腑閮ㄩ棬锛岃缃负绌�
+        dwId: this.selectionList.length > 0 ? this.selectionList[0].dwId : "",
+        mapList: mapList,
+        price: this.forms.price,
+        ysPrice: this.forms.ysPrice,
+        id: this.groupList[0].id,
+      };
+
+      // 鍙戦�佽姹備繚瀛樻暟鎹�
+      dwgrouping(data).then((res) => {
+        if (res.code == 200) {
+          this.beCurrent();
+          this.forms.groupingName = "";
+          this.forms.sex = "2";
+          this.forms.pacName = "";
+          this.forms.price = "";
+          this.forms.ysPrice = "";
+          this.forms.payType = "1";
+        }
+      });
     },
     // 淇敼鍒嗙粍
     GroupUpdate() {
-      this.forms = {}
+      this.$refs.tbs.clearSelection();
+      this.forms = {
+        groupingName: "",
+        gtAge: "",
+        limits: "",
+        ltAge: "",
+        pacName: "",
+        payType: "1",
+        sex: "2",
+        price: "",
+        ysPrice: "",
+      };
     },
     beCurrent() {
       let data = {
         deptId: this.selectionList[0].id,
-        dwId: this.selectionList[0].dwId
-      }
-      getDwAndDwDept(data).then(response => {
-        this.groupingList = response.data
+        dwId: this.selectionList[0].dwId,
+      };
+      getDwAndDwDept(data).then((response) => {
+        // 閮ㄩ棬鍚嶇О
+        this.groupingList = response.data;
         response.data.forEach((item, index) => {
           item.newID =
             (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
             index +
             1;
         });
-      })
+      });
     },
     // 鍒犻櫎鍒嗙粍
     deleteGroup() {
-      delegrouping(this.groupIds).then(res => {
+      delegrouping(this.groupIds).then((res) => {
         if (res.code == 200) {
-          this.beCurrent()
+          this.beCurrent();
         }
-      })
+      });
     },
     // 鍙屽嚮
     dbclick(row, column, event) {
-      row.isOK = !row.isOK
+      row.isOK = !row.isOK;
 
-      this.OnenewpacName[row.index] = JSON.parse(JSON.stringify(row)) // 澶嶅埗鏃х殑鏁版嵁锛屽彇娑堟椂鐢ㄥ埌
+      this.OnenewpacName[row.index] = JSON.parse(JSON.stringify(row)); // 澶嶅埗鏃х殑鏁版嵁锛屽彇娑堟椂鐢ㄥ埌
       // 鍒ゆ柇鏄惁涓哄弻鍑荤浜屾淇敼锛岀浜屾鍙屽嚮鍒欐彁浜ゆ暟鎹繘琛屼慨鏀癸紝鎴栬�呭彲鐐瑰嚮鎸夐挳鍙栨秷
       if (row.isOK == true) {
         this.$confirm("鏄惁闇�瑕佸垹闄�" + row.proName, "鎻愮ず", {
@@ -1074,15 +1686,14 @@
         })
           .then(() => {
             this.OnenewpacName.splice(row.index, 1); //鍒犻櫎瀵瑰簲鐨勮〃澶�
-            this.queryParams.price = 0
+            this.queryParams.price = 0;
             if (this.OnenewpacName.length >= 1) {
-              this.OnenewpacName.forEach(item => {
-                this.queryParams.price += item.proPrice
-              })
+              this.OnenewpacName.forEach((item) => {
+                this.queryParams.price += item.proPrice;
+              });
             } else {
-              this.queryParams.price = 0
+              this.queryParams.price = 0;
             }
-
           })
           .catch(() => {
             this.$message({
@@ -1093,27 +1704,66 @@
       }
     },
 
-    // 鎶婃瘡涓�琛岀殑绱㈠紩鏀捐繘row,鏂逛究鍙屽嚮淇敼鏃犳硶鑾峰緱绱㈠紩鍒欐棤娉曞彇娑堝悗鏁版嵁杩涜杩樺師
     tableRowClassName({ row, rowIndex }) {
-      row.index = 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
     },
 
     /** 鎻愪氦鎸夐挳 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.drugManufacturerId != null) {
-            updateComp(this.form).then(response => {
+            updateComp(this.form).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
               this.getList();
             });
           } else {
-            addComp(this.form).then(response => {
-              this.$modal.msgSuccess("鏂板鎴愬姛");
-              this.open = false;
-              this.getList();
-            });
+            if (
+              this.form.cnName &&
+              this.form.contactPerson &&
+              this.form.contactPhone
+            ) {
+              addComp(this.form).then((response) => {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              this.$modal.msgError("璇峰~鍐欏繀浼犻」");
+            }
           }
         }
       });
@@ -1121,23 +1771,98 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const drugManufacturerIds = row.drugManufacturerId || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎浣撴鍗曚綅淇℃伅缁存姢缂栧彿涓�"' + drugManufacturerIds + '"鐨勬暟鎹」锛�').then(function () {
-        return delComp(drugManufacturerIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => { });
+      this.$modal
+        .confirm(
+          '鏄惁纭鍒犻櫎浣撴鍗曚綅淇℃伅缁存姢缂栧彿涓�"' +
+          drugManufacturerIds +
+          '"鐨勬暟鎹」锛�'
+        )
+        .then(function () {
+          return delComp(drugManufacturerIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .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('system/comp/export', {
-        ...this.queryParams
-      }, `comp_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "system/comp/export",
+        {
+          ...this.queryParams,
+        },
+        `comp_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>
-<style scoped>
+<style lang="scss" scoped>
 .pag {
   width: 100%;
   display: flex;
@@ -1166,4 +1891,24 @@
   justify-content: center;
   margin: auto;
 }
+
+.btnback {
+  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