From 416b4ef820586a62b136d77fa0ccc185f173b5b9 Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期五, 03 一月 2025 21:33:20 +0800
Subject: [PATCH] 1

---
 src/views/system/comp/index.vue | 1028 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 701 insertions(+), 327 deletions(-)

diff --git a/src/views/system/comp/index.vue b/src/views/system/comp/index.vue
index 6d47385..3163714 100644
--- a/src/views/system/comp/index.vue
+++ b/src/views/system/comp/index.vue
@@ -6,7 +6,8 @@
           @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>
@@ -38,8 +39,8 @@
     <el-table border v-loading="loading" :data="compList" @selection-change="handleSelectionChange">
       <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"/>
-      <el-table-column label="缁熶竴淇$敤浠g爜" align="center" prop="taxNumber"  width="180px"/>
+      <el-table-column label="鍗曚綅鍚嶇О" align="center" prop="cnName" width="240px" />
+      <el-table-column label="缁熶竴淇$敤浠g爜" align="center" prop="taxNumber" width="180px" />
       <el-table-column label="鑱旂郴浜�" align="center" prop="contactPerson" :show-overflow-tooltip="true" width="90px" />
       <el-table-column label="鑱旂郴鐢佃瘽" align="center" prop="contactPhone" :show-overflow-tooltip="true" />
       <el-table-column label="娉ㄥ唽鍦板潃" align="center" prop="registerAddress" :show-overflow-tooltip="true" />
@@ -47,7 +48,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 +84,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,22 +110,22 @@
 
     <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="false">
         <el-row :gutter="20">
           <el-col :span="7" :xs="24">
-            <div style="padding: 0 20px;">
+            <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-item>
                 <el-form-item label="绛剧害閲戦" prop="signingPrice">
-                  <el-input v-model="form.signingPrice" placeholder="璇疯緭鍏ョ绾﹂噾棰�"  />
+                  <el-input v-model="form.signingPrice" placeholder="璇疯緭鍏ョ绾﹂噾棰�" />
                 </el-form-item>
               </el-form>
               <el-row :gutter="10" class="mb8">
@@ -138,38 +139,42 @@
                 </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="350">
                 <el-table-column type="selection" width="40px" align="center" />
                 <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-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="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" 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>
@@ -179,25 +184,31 @@
               </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,13 +238,13 @@
 
     <!-- 濂楅 -->
     <div>
-      <el-dialog :title="title" :visible.sync="openss" width="1400px" append-to-body>
+      <el-dialog :title="title" :visible.sync="openss" width="1400px" 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-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>
@@ -246,30 +257,42 @@
               <el-table-column label="搴忓彿" align="center" prop="newID" 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;">
+              style="height: 35px">
               <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">
+            <!-- <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 + "/" + scope.row.proPrice }}
+                </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>
           </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>
@@ -278,13 +301,14 @@
               label-width="68px">
               <el-form-item label="椤圭洰鍚嶇О" prop="proName">
                 <el-input ref="inputName" v-model="queryParams.proName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable
-                  @keyup.enter.native="handleSearchFor" style="width: 140px;" />
+                  @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 +322,171 @@
       </el-dialog>
     </div>
 
+    <div>
+      <el-dialog :title="title" :visible.sync="openOne" width="1400px" append-to-body :close-on-click-modal="false">
+        <el-row :gutter="24" v-if="!isTableVisible">
+
+          <el-col :span="11" :xs="24">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="46px"
+              style="height: 35px">
+              <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"></el-input-number>
+              </el-form-item>
+              <el-form-item label="鐜颁环">
+                <el-input ref="inputName" v-model="queryParams.xianprice" 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>
+            <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 }}
+                </template>
+              </el-table-column>
+              <el-table-column label="鍘熶环" align="center" prop="proPrice"></el-table-column>
+              <el-table-column label="鎶樻墸">
+                <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>
+                </template>
+              </el-table-column>
+              <el-table-column label="鐜颁环" align="center" prop="ysPrice"></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>
+          </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="11" :xs="24">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
+              label-width="68px">
+              <el-form-item label="椤圭洰鍚嶇О" prop="proName">
+                <el-input ref="inputName" v-model="queryParams.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: 70%">
+              <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>
+          </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-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="pacName">
+                <template slot-scope="scope">
+                  {{ 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">
+              <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>
+            <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 }}
+                </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>
+          </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-item label="椤圭洰鍚嶇О" prop="proName">
+                <el-input ref="inputName" v-model="queryParams.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: 70%">
+              <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="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>
 
     <!-- 娣诲姞鎴栦慨鏀逛綋妫�鍗曚綅淇℃伅缁存姢瀵硅瘽妗� -->
     <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-form-item label="鍗曚綅鍚嶇О" prop="cnName">
-            <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" style="width: 520px;"/>
+            <el-input v-model="form.cnName" placeholder="璇疯緭鍏ヤ腑鏂囧悕绉�" style="width: 520px" />
           </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: 520px" />
           </el-form-item>
           <el-form-item label="娉曚汉浠h〃" prop="legalPerson">
             <el-input v-model="form.legalPerson" placeholder="璇疯緭鍏ユ硶浜�" />
@@ -321,22 +500,22 @@
           <el-form-item label="浼犵湡" prop="faxNumber">
             <el-input v-model="form.faxNumber" placeholder="璇疯緭鍏ヤ紶鐪�" />
           </el-form-item>
-         
+
           <!-- <el-form-item label="缂栫爜" prop="code">
           <el-input v-model="form.code" placeholder="璇疯緭鍏ョ紪鐮�" />
         </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: 1157px" />
           </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: 1157px" />
           </el-form-item>
           <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: 520px" />
           </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: 520px" />
           </el-form-item>
           <el-form-item label="鑱旂郴閭" prop="email">
             <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" />
@@ -347,7 +526,7 @@
           <el-form-item label="缃戝潃" prop="url">
             <el-input v-model="form.url" placeholder="璇疯緭鍏ョ綉鍧�" />
           </el-form-item>
-         
+
           <el-form-item label="琛屾斂鍖哄垝鍚嶇О" prop="areaName">
             <el-input v-model="form.areaName" placeholder="璇疯緭鍏ヨ鏀垮尯鍒掑悕绉�" />
           </el-form-item>
@@ -438,18 +617,48 @@
         </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",
+  ],
   data() {
+    let checkPhoneNum = (rule, value, callback) => {
+      let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
+      if (value == "" && value == undefined && !value) {
+        return callback("");
+      } else if (value != undefined && value != "") {
+        return callback();
+      } else if (!patter.test(value)) {
+        return callback("");
+      }
+    };
     return {
       // 閬僵灞�
       loading: true,
@@ -458,6 +667,8 @@
       id: "",
       // 閫変腑鏁扮粍
       ids: [],
+      // 鎺у埗鎬у埆閫夋嫨妗嗘槸鍚︾鐢�
+      isSexDisabled: false,
       dwIds: [],
       groupIds: [],
       deptList: [],
@@ -465,8 +676,9 @@
       newpacName: [],
       OnenewpacName: [],
       pacList: [],
-      data: [],
+      dataList: [],
       groupList: [],
+      dataLists: [],
       // 闈炲崟涓鐢�
       single: true,
       singleg: true,
@@ -487,6 +699,7 @@
       open: false,
       opens: false,
       openss: false,
+      openOne: false,
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -495,6 +708,8 @@
         enName: null,
         code: null,
         price: null,
+        xianprice: null,
+        limits: null
       },
       id: "",
       // 琛ㄥ崟鍙傛暟
@@ -505,92 +720,106 @@
         gtAge: 100,
         groupingName: "",
         pacName: "",
-        payType: "",
-        sex: "",
-
+        payType: "1",
+        sex: "2",
       },
+      sfzs: '',
+      youhui: '',
       // 琛ㄥ崟鏍¢獙
       rules: {
-        cnName: [
-          { required: true, message: "鍗曚綅鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-        ],
+        cnName: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
         dwDeptName: [
-          { required: true, message: "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         groupingName: [
-          { required: true, message: "鍒嗙粍鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        gtAge: [
-          { required: true, message: "鍒涘缓鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        limits: [
-          { required: true, message: "缁熸敹闄愰涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        ltAge: [
-          { required: true, message: "淇敼鏃堕棿涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        pacName: [
-          { required: true, message: "濂楅鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
-        ],
+        gtAge: [{ required: true, 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" },
+        ], */
         payType: [
-          { required: true, message: "缁撶畻鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        sex: [
-          { required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }
-        ],
+        sex: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
 
         deleted: [
-          { required: true, message: "0鏈垹闄�1鍒犻櫎涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         contactPerson: [
-          { required: true, message: "鑱旂郴浜轰笉鑳戒负绌�", trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
         contactPhone: [
-          { required: true, message: "鑱旂郴鐢佃瘽涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, validator: checkPhoneNum, trigger: "blur" },
         ],
-        taxNumber: [
-          { required: true, message: "绋庡彿涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        legalPerson: [
-          { required: true, message: "娉曚汉涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        registerAddress: [
-          { required: true, message: "娉ㄥ唽鍦板潃涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        bankAccount: [
-          { required: true, message: "寮�鎴烽摱琛屼笉鑳戒负绌�", trigger: "blur" }
-        ],
-        countNum: [
-          { required: true, message: "閾惰璐︽埛涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        principal: [
-          { required: true, message: "璐熻矗浜轰笉鑳戒负绌�", trigger: "blur" }
-        ],
-        faxNumber: [
-          { required: true, message: "浼犵湡涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        mailingAddress: [
-          { required: true, message: "浼犵湡涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        email: [
-          { required: true, message: "浼犵湡涓嶈兘涓虹┖", 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: {
+    validateDiscount(row) {
+      if (row.limits > 10) {
+        row.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у��
+      } else if (row.limits < 0) {
+        row.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓��
+      }
+      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();
+      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
+    },
     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 +
@@ -605,13 +834,14 @@
     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.reset();
     },
     // 琛ㄥ崟閲嶇疆
     reset() {
@@ -652,7 +882,7 @@
         spell: null,
         validTime: null,
         wbm: null,
-        deleted: null
+        deleted: null,
       };
       this.resetForm("form");
     },
@@ -666,29 +896,47 @@
       this.resetForm("queryForm");
       this.handleQuery();
     },
+    resetQuerys() {
+      (this.OnenewpacName = []),
+        (this.queryParams.price = 0),
+        this.$refs.tbone.toggleRowSelection(this.pacList[0], false);
+    },
     // 澶氶�夋閫変腑鏁版嵁
     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;
     },
     // 閮ㄩ棬琛ㄦ牸鍗曡鑾峰彇
     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() {
@@ -699,8 +947,8 @@
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
-      const drugManufacturerId = row.drugManufacturerId || this.ids
-      getComp(drugManufacturerId).then(response => {
+      const drugManufacturerId = row.drugManufacturerId || this.ids;
+      getComp(drugManufacturerId).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "淇敼浣撴鍗曚綅淇℃伅缁存姢";
@@ -709,10 +957,13 @@
     // 缁存姢閮ㄩ棬
     mainDepartment() {
       this.opens = true;
+
+      this.groupingList = [];
+
       if (this.form.drugManufacturerId) {
-        this.beCurrentDept()
+        this.beCurrentDept();
       }
-      this.title = "閮ㄩ棬鍒嗙粍缁存姢" + '( ' + this.form.cnName + ')';
+      this.title = "閮ㄩ棬鍒嗙粍缁存姢" + "( " + this.form.cnName + ")";
       getInfo().then((response) => {
         this.getInfodis = response.user.discount;
         if (this.getInfodis == null || this.getInfodis == 10) {
@@ -721,12 +972,16 @@
       });
     },
     // 鎶樻墸
-    numberChange(currentValue, oldValue) {
+    numberChange(currentValue) {
       this.forms.limits = currentValue;
-      if (this.forms.limits > this.getInfodis) {
+      /* if (this.forms.limits > this.getInfodis) {
         this.forms.limits = this.getInfodis;
-        this.forms.ysPrice = (this.forms.price * (this.forms.limits / 10)).toFixed(2);
-      }
+        this.forms.ysPrice = (
+          this.forms.price *
+          (this.forms.limits / 10)
+        ).toFixed(2);
+      } */
+
     },
 
     changegroupingName() {
@@ -738,78 +993,37 @@
     changeName() {
       this.openss = true;
       this.title = "鍒嗙粍椤圭洰缁存姢";
+      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;
+
       });
     },
 
@@ -824,8 +1038,7 @@
               1;
           });
         });
-      }
-      else {
+      } else {
         deptTreeSelect().then((response) => {
           this.newpacName = response.rows;
           response.rows.forEach((item, index) => {
@@ -837,13 +1050,12 @@
           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) => {
@@ -855,46 +1067,114 @@
             1;
         });
       });
-
     },
     // 鍗曢」鏁版嵁鑾峰彇
     handleChangesingle(selection) {
       if (selection) {
-        this.data = selection
+        this.dataList = selection;
       }
     },
     // 鍗曢」閫夊畾鎸夐挳
     resetright() {
-      this.queryParams.price = 0
-      this.data.forEach(item => {
-        this.OnenewpacName.push(item)
-      })
-      this.OnenewpacName.forEach(item => {
-        this.queryParams.price += item.proPrice
-      })
+      this.queryParams.price = 0;
+      this.dataList.forEach((item) => {
+        this.$refs.tre.toggleRowSelection(item, false);
+        this.OnenewpacName.push(item);
+      });
+
+      for (var i = 0; i < this.OnenewpacName.length - 1; i++) {
+        for (var j = i + 1; j < this.OnenewpacName.length; j++) {
+          if (this.OnenewpacName[i].proId == this.OnenewpacName[j].proId) {
+            this.OnenewpacName.splice(j, 1);
+            j--;
+          }
+        }
+      }
+      return this.OnenewpacName.forEach((item) => {
+        this.queryParams.price += item.proPrice;
+      });
     },
+    handledbelete(row) {
+      this.queryParams.price = 0;
+      this.OnenewpacName.forEach((item, index) => {
+        if (item.proId == row.proId) {
+          this.OnenewpacName.splice(index, 1);
+        }
+      });
+      return this.OnenewpacName.forEach((item) => {
+        this.queryParams.price += item.proPrice;
+      });
+    },
+
     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) => {
@@ -902,14 +1182,12 @@
         if (this.deptList.length != 0) {
           this.$nextTick(() => {
             this.$refs.tb.toggleRowSelection(this.deptList[0], true);
-          })
+          });
         } else {
           this.$refs.tb.clearSelection();
         }
       });
     },
-
-
 
     // 淇濆瓨閮ㄩ棬
     handleAddDept() {
@@ -917,11 +1195,11 @@
         dwName: this.form.cnName,
         dwId: this.form.drugManufacturerId,
         dwDeptName: this.form.dwDeptName,
-        signingPrice:this.form.signingPrice,
-      }
+        signingPrice: this.form.signingPrice,
+      };
       addDept(data).then((response) => {
         if (response.code == 200) {
-          this.beCurrentDept()
+          this.beCurrentDept();
         }
       });
     },
@@ -929,121 +1207,187 @@
     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.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.GroupUpdate();
+        this.isSexDisabled = false; // 鎭㈠鎬у埆閫夋嫨妗嗕负鍙敤
       }
+      this.groupIds = selection.map((item) => item.id);
+      this.singlegg = !selection.length;
+    },
+    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));
+          this.OnenewpacName.forEach((item, index) => {
+            this.queryParams.price += item.proPrice;
+          });
+          this.youhui = (Math.floor((this.queryParams.xianprice / this.queryParams.price)*100)/100)*10
+        });
+      }
+      // console.log(this.groupList[0].id, 9966);
+      getconfigKey("sfzstc").then((res) => {
+        this.sfzs = res.msg;
+      });
+
+
+
+      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;
+          });
+        });
+      } 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;
+          });
+        });
+      }
+      getProjectList().then((response) => {
+        this.Treedata = response.data;
+        // console.log(this.Treedata,999888);
+      });
+    },
+
+    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 = {}
+      console.log(this.$refs.elTable)
+      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
-      this.queryParams.price = 0
-      this.OnenewpacName[row.index] = JSON.parse(JSON.stringify(row)) // 澶嶅埗鏃х殑鏁版嵁锛屽彇娑堟椂鐢ㄥ埌
+      row.isOK = !row.isOK;
+
+      this.OnenewpacName[row.index] = JSON.parse(JSON.stringify(row)); // 澶嶅埗鏃х殑鏁版嵁锛屽彇娑堟椂鐢ㄥ埌
       // 鍒ゆ柇鏄惁涓哄弻鍑荤浜屾淇敼锛岀浜屾鍙屽嚮鍒欐彁浜ゆ暟鎹繘琛屼慨鏀癸紝鎴栬�呭彲鐐瑰嚮鎸夐挳鍙栨秷
       if (row.isOK == true) {
         this.$confirm("鏄惁闇�瑕佸垹闄�" + row.proName, "鎻愮ず", {
@@ -1053,9 +1397,14 @@
         })
           .then(() => {
             this.OnenewpacName.splice(row.index, 1); //鍒犻櫎瀵瑰簲鐨勮〃澶�
-            this.OnenewpacName.forEach(item => {
-              this.queryParams.price += item.proPrice
-            })
+            this.queryParams.price = 0;
+            if (this.OnenewpacName.length >= 1) {
+              this.OnenewpacName.forEach((item) => {
+                this.queryParams.price += item.proPrice;
+              });
+            } else {
+              this.queryParams.price = 0;
+            }
           })
           .catch(() => {
             this.$message({
@@ -1068,25 +1417,33 @@
 
     // 鎶婃瘡涓�琛岀殑绱㈠紩鏀捐繘row,鏂逛究鍙屽嚮淇敼鏃犳硶鑾峰緱绱㈠紩鍒欐棤娉曞彇娑堝悗鏁版嵁杩涜杩樺師
     tableRowClassName({ row, rowIndex }) {
-      row.index = rowIndex
+      row.index = rowIndex;
     },
 
     /** 鎻愪氦鎸夐挳 */
     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("璇峰~鍐欏繀浼犻」");
+            }
           }
         }
       });
@@ -1094,20 +1451,32 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     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(() => { });
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     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>
@@ -1139,4 +1508,9 @@
   justify-content: center;
   margin: auto;
 }
+
+.btnback {
+  width: 50px;
+  height: 100px;
+}
 </style>

--
Gitblit v1.8.0