From cfa5a3aacd38eab6e89818098a9675456bf52625 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期三, 04 二月 2026 10:16:13 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |    4 
 src/views/patient/SignAcontract/index.vue         |  265 +++++++----
 src/views/patient/patient/index.vue               |   84 +++
 src/views/patient/patient/profile/index.vue       |  157 ------
 src/views/patient/SignAcontract/Review.vue        |  469 +++++++-------------
 src/views/knowledge/Medication/index.vue          |  347 +++++++-------
 6 files changed, 590 insertions(+), 736 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 609d2d1..e471dc4 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -171,7 +171,7 @@
         </el-table>
       </div>
     </div>
-    <div :class="form.serviceType == 2 ? 'Followuserinfo' : 'Followuserinfos'">
+    <div :class="form.serviceType  ? 'Followuserinfo' : 'Followuserinfos'">
       <div>
         <el-form ref="form" :model="form" label-width="120px">
           <div class="headline">
@@ -228,7 +228,7 @@
         </el-form>
       </div>
     </div>
-    <div v-if="form.serviceType == 2">
+    <div>
       <el-tabs v-model="activeName" type="border-card">
         <el-tab-pane name="wj">
           <span class="mulsz" slot="label"
diff --git a/src/views/knowledge/Medication/index.vue b/src/views/knowledge/Medication/index.vue
index c8cdd8a..741dc98 100644
--- a/src/views/knowledge/Medication/index.vue
+++ b/src/views/knowledge/Medication/index.vue
@@ -398,175 +398,184 @@
       total: 0,
       // 鐢ㄨ嵂璁板綍鏁版嵁
 medicationList: [
-  {
-    id: 1,
-    patientId: 'P1001',
-    patientName: '寮犳竻鎵�',
-    patientAge: 65,
-    patientGender: '1',
-    patientNo: '20241209001',
-    allergyHistory: '闈掗湁绱犺繃鏁�',
-    drugId: 'D1001',
-    drugName: '闃垮徃鍖规灄鑲犳憾鐗�',
-    drugSpecification: '100mg*30鐗�/鐩�',
-    dosage: 1,
-    dosageUnit: '鐗�',
-    frequency: '1',
-    usageMethod: '鍙f湇',
-    startTime: '2024-12-01 08:00:00',
-    endTime: '',
-    durationType: '1',
-    instructions: '楗悗鏈嶇敤锛屾敞鎰忚儍鑲犻亾鍙嶅簲銆傞暱鏈熸湇鐢ㄩ渶瀹氭湡妫�鏌ヨ甯歌銆�',
-    medicationStatus: '1',
-    prescribingDoctor: '鏉庢垚鐧�',
-    stopReason: '',
-    stopDescription: ''
-  },
-  {
-    id: 2,
-    patientId: 'P1001',
-    patientName: '寮犳竻鎵�',
-    patientAge: 65,
-    patientGender: '1',
-    patientNo: '20241209001',
-    allergyHistory: '闈掗湁绱犺繃鏁�',
-    drugId: 'D1002',
-    drugName: '闃挎墭浼愪粬姹�閽欑墖',
-    drugSpecification: '20mg*7鐗�/鐩�',
-    dosage: 1,
-    dosageUnit: '鐗�',
-    frequency: '1',
-    usageMethod: '鍙f湇',
-    startTime: '2024-11-20 20:00:00',
-    endTime: '',
-    durationType: '1',
-    instructions: '姣忔櫄鐫″墠鏈嶇敤銆傛敞鎰忕洃娴嬭倽鍔熻兘锛屽鏈夎倢鑲夐吀鐥涜鍙婃椂灏卞尰銆�',
-    medicationStatus: '1',
-    prescribingDoctor: '鏉庢垚鐧�',
-    stopReason: '',
-    stopDescription: ''
-  },
-  {
-    id: 3,
-    patientId: 'P2001',
-    patientName: '鐜嬭姵',
-    patientAge: 33,
-    patientGender: '0',
-    patientNo: '20241115002',
-    allergyHistory: '鏃�',
-    drugId: 'D1003',
-    drugName: '娉煎凹鏉剧墖',
-    drugSpecification: '5mg*100鐗�/鐡�',
-    dosage: 2,
-    dosageUnit: '鐗�',
-    frequency: '3',
-    usageMethod: '鍙f湇',
-    startTime: '2024-12-05 09:00:00',
-    endTime: '2024-12-20 09:00:00',
-    durationType: '2',
-    instructions: '鏃┿�佷腑銆佹櫄椁愬悗鏈嶇敤銆傞渶涓ユ牸閬靛尰鍢遍�愭笎鍑忛噺锛屼笉鍙獊鐒跺仠鑽��',
-    medicationStatus: '0',
-    prescribingDoctor: '鍒樼繆鎯�',
-    stopReason: '鐤楃▼缁撴潫',
-    stopDescription: '鏍囧噯鐤楃▼鐢ㄨ嵂瀹屾瘯锛岃灏忔澘璁℃暟宸叉仮澶嶆甯歌寖鍥淬��'
-  },
-  {
-    id: 4,
-    patientId: 'P2001',
-    patientName: '鐜嬭姵',
-    patientAge: 33,
-    patientGender: '0',
-    patientNo: '20241115002',
-    allergyHistory: '鏃�',
-    drugId: 'D1004',
-    drugName: '澶氱硸閾佸鍚堢墿鑳跺泭',
-    drugSpecification: '150mg*10绮�/鐩�',
-    dosage: 1,
-    dosageUnit: '绮�',
-    frequency: '2',
-    usageMethod: '鍙f湇',
-    startTime: '2024-12-05 09:00:00',
-    endTime: '',
-    durationType: '1',
-    instructions: '椁愬悗鏈嶇敤锛屽彲鍑忚交鑳冭偁閬撳埡婵�銆傛湇鑽悗鍙兘鍑虹幇榛戜究锛屽睘姝e父鐜拌薄銆�',
-    medicationStatus: '1',
-    prescribingDoctor: '鍒樼繆鎯�',
-    stopReason: '',
-    stopDescription: ''
-  },
-  {
-    id: 5,
-    patientId: 'P3001',
-    patientName: '鏉庝紵',
-    patientAge: 58,
-    patientGender: '1',
-    patientNo: '20241022005',
-    allergyHistory: '纾鸿兒绫昏嵂鐗╄繃鏁�',
-    drugId: 'D1005',
-    drugName: '鐩愰吀浜岀敳鍙岃儘鐗�',
-    drugSpecification: '0.5g*20鐗�/鏉�',
-    dosage: 1,
-    dosageUnit: '鐗�',
-    frequency: '2',
-    usageMethod: '鍙f湇',
-    startTime: '2024-10-22 08:00:00',
-    endTime: '',
-    durationType: '1',
-    instructions: '闅忛鎴栭鍚庣珛鍗虫湇鐢紝浠ュ噺灏戣儍鑲犻亾涓嶉�傘��',
-    medicationStatus: '1',
-    prescribingDoctor: '寮犲瓱娑�',
-    stopReason: '',
-    stopDescription: ''
-  },
-  {
-    id: 6,
-    patientId: 'P4001',
-    patientName: '璧电',
-    patientAge: 70,
-    patientGender: '1',
-    patientNo: '20241202011',
-    allergyHistory: '娴烽矞杩囨晱',
-    drugId: 'D1006',
-    drugName: '鍛嬪绫崇墖',
-    drugSpecification: '20mg*100鐗�/鐡�',
-    dosage: 1,
-    dosageUnit: '鐗�',
-    frequency: '1',
-    usageMethod: '鍙f湇',
-    startTime: '2024-12-02 07:00:00',
-    endTime: '',
-    durationType: '1',
-    instructions: '鏅ㄨ捣鏈嶇敤锛岄伩鍏嶅闂村娆¤捣澶溿�傛敞鎰忕洃娴嬬數瑙h川姘村钩銆�',
-    medicationStatus: '1',
-    prescribingDoctor: '鍚存�濈堪',
-    stopReason: '',
-    stopDescription: ''
-  },
-  {
-    id: 7,
-    patientId: 'P5001',
-    patientName: '鍛ㄥ崕',
-    patientAge: 52,
-    patientGender: '0',
-    patientNo: '20241128009',
-    allergyHistory: '鏃�',
-    drugId: 'D1007',
-    drugName: '纭濊嫰鍦板钩鎺ч噴鐗�',
-    drugSpecification: '30mg*7鐗�/鐩�',
-    dosage: 1,
-    dosageUnit: '鐗�',
-    frequency: '1',
-    usageMethod: '鍙f湇',
-    startTime: '2024-11-28 08:00:00',
-    endTime: '',
-    durationType: '1',
-    instructions: '鏁寸墖鍚炴湇锛屼笉鍙毤纰庢垨鎺板紑銆�',
-    medicationStatus: '1',
-    prescribingDoctor: '闄堟斂鍊�',
-    stopReason: '',
-    stopDescription: ''
-  }
-],
+        {
+          id: 1,
+          patientId: 'C1001',
+          patientName: '鏉庝繆瀹�',
+          patientAge: 2,
+          ageGroup: '濠村辜鍎�(0-3宀�)',
+          patientGender: '1',
+          patientNo: 'P202412001',
+          allergyHistory: '闈掗湁绱犺繃鏁忋�侀浮铔嬭繃鏁�',
+          drugId: 'D1001',
+          drugName: '甯冩礇鑺贩鎮淮鍓�',
+          drugSpecification: '100mg:5ml*15ml/鐡�',
+          drugCategory: '瑙g儹闀囩棝鑽�',
+          dosage: 2.5,
+          dosageUnit: 'ml',
+          frequency: '3',
+          usageMethod: '鍙f湇',
+          startTime: '2024-12-10 08:00:00',
+          endTime: '',
+          durationType: '1',
+          instructions: '鐢ㄤ簬鍙戠儹锛屼綋閲�10kg锛屾寜浣撻噸璁$畻鍓傞噺銆傞キ鍚庢湇鐢紝娉ㄦ剰瑙傚療鏈夋棤鑳冭偁閬撳弽搴斻��',
+          medicationStatus: '1',
+          prescribingDoctor: '鐜嬪尰鐢�',
+          guardianName: '鏉庣埜鐖�'
+        },
+        {
+          id: 2,
+          patientId: 'C1002',
+          patientName: '寮犺悓',
+          patientAge: 4,
+          ageGroup: '瀛﹂緞鍓�(3-6宀�)',
+          patientGender: '0',
+          patientNo: 'P202411002',
+          allergyHistory: '鏃�',
+          drugId: 'D1002',
+          drugName: '闃胯帿瑗挎灄棰楃矑',
+          drugSpecification: '125mg*12琚�/鐩�',
+          drugCategory: '鎶楃敓绱�',
+          dosage: 1,
+          dosageUnit: '琚�',
+          frequency: '3',
+          usageMethod: '鍙f湇',
+          startTime: '2024-12-08 09:00:00',
+          endTime: '2024-12-18 09:00:00',
+          durationType: '2',
+          instructions: '娌荤枟鎬ユ�т腑鑰崇値锛岄渶杩炵画鏈嶇敤10澶╋紝涓嶅彲鑷鍋滆嵂銆傛敞鎰忚瀵熸湁鏃犺繃鏁忓弽搴斻��',
+          medicationStatus: '0',
+          prescribingDoctor: '鍒樺尰鐢�',
+          guardianName: '寮犲濡�',
+          stopReason: '鐤楃▼缁撴潫',
+          stopDescription: '瀹屾垚10澶╂姉鐢熺礌鐤楃▼锛屼腑鑰崇値鐥囩姸瀹屽叏缂撹В銆�'
+        },
+        {
+          id: 3,
+          patientId: 'C1003',
+          patientName: '鐜嬮潚瀹�',
+          patientAge: 8,
+          ageGroup: '瀛﹂緞鏈�(7-12宀�)',
+          patientGender: '1',
+          patientNo: 'P202412003',
+          allergyHistory: '娴烽矞杩囨晱',
+          drugId: 'D1003',
+          drugName: '瀛熼瞾鍙哥壒閽犲拃鍤肩墖',
+          drugSpecification: '5mg*5鐗�/鐩�',
+          drugCategory: '鎶楄繃鏁忚嵂',
+          dosage: 1,
+          dosageUnit: '鐗�',
+          frequency: '1',
+          usageMethod: '鍙f湇',
+          startTime: '2024-11-15 20:00:00',
+          endTime: '',
+          durationType: '1',
+          instructions: '姣忔櫄鐫″墠鍜�鍤兼湇鐢紝鐢ㄤ簬鎺у埗鍝枠鐥囩姸銆傛敞鎰忕洃娴嬭韩楂樹綋閲嶅彉鍖栥��',
+          medicationStatus: '1',
+          prescribingDoctor: '闄堝尰鐢�',
+          guardianName: '鐜嬪濡�'
+        },
+        {
+          id: 4,
+          patientId: 'C1004',
+          patientName: '鍒橀┌娆�',
+          patientAge: 14,
+          ageGroup: '闈掑皯骞�(13-18宀�)',
+          patientGender: '0',
+          patientNo: 'P202410004',
+          allergyHistory: '纾鸿兒绫昏嵂鐗╄繃鏁�',
+          drugId: 'D1004',
+          drugName: '寮傜淮A閰歌蒋鑳跺泭',
+          drugSpecification: '10mg*20绮�/鐩�',
+          drugCategory: '鐨偆绉戠敤鑽�',
+          dosage: 1,
+          dosageUnit: '绮�',
+          frequency: '2',
+          usageMethod: '鍙f湇',
+          startTime: '2024-10-20 08:00:00',
+          endTime: '2025-01-20 08:00:00',
+          durationType: '2',
+          instructions: '娌荤枟閲嶅害鐥ょ柈锛岄渶瀹氭湡妫�鏌ヨ倽鍔熻兘銆傛湇鑽湡闂村強鍋滆嵂鍚�1涓湀鍐呴伩鍏嶆��瀛曘��',
+          medicationStatus: '1',
+          prescribingDoctor: '璧靛尰鐢�',
+          guardianName: '鍒樼埜鐖�'
+        },
+        {
+          id: 5,
+          patientId: 'C1005',
+          patientName: '闄堟旦',
+          patientAge: 1,
+          ageGroup: '濠村辜鍎�(0-3宀�)',
+          patientGender: '1',
+          patientNo: 'P202412005',
+          allergyHistory: '鐗涘ザ铔嬬櫧杩囨晱',
+          drugId: 'D1005',
+          drugName: '鐩愰吀瑗挎浛鍒╁棯婊村墏',
+          drugSpecification: '10mg:1ml*5ml/鐡�',
+          drugCategory: '鎶楄繃鏁忚嵂',
+          dosage: 0.25,
+          dosageUnit: 'ml',
+          frequency: '1',
+          usageMethod: '鍙f湇',
+          startTime: '2024-12-05 08:00:00',
+          endTime: '',
+          durationType: '1',
+          instructions: '鐢ㄤ簬杩囨晱鎬ч蓟鐐庯紝浣撻噸8kg锛屾寜浣撻噸绮剧‘璁$畻鍓傞噺銆傛敞鎰忚瀵熸湁鏃犲棞鐫″壇浣滅敤銆�',
+          medicationStatus: '1',
+          prescribingDoctor: '瀛欏尰鐢�',
+          guardianName: '闄堝濡�'
+        },
+        {
+          id: 6,
+          patientId: 'C1006',
+          patientName: '鏉ㄨ姺鎮�',
+          patientAge: 16,
+          ageGroup: '闈掑皯骞�(13-18宀�)',
+          patientGender: '0',
+          patientNo: 'P202409006',
+          allergyHistory: '鏃�',
+          drugId: 'D1006',
+          drugName: '宸︾敳鐘惰吅绱犻挔鐗�',
+          drugSpecification: '50渭g*100鐗�/鐩�',
+          drugCategory: '鍐呭垎娉岀敤鑽�',
+          dosage: 1,
+          dosageUnit: '鐗�',
+          frequency: '1',
+          usageMethod: '鍙f湇',
+          startTime: '2024-09-01 07:00:00',
+          endTime: '',
+          durationType: '1',
+          instructions: '娌荤枟鐢茬姸鑵哄姛鑳藉噺閫�鐥囷紝姣忔棩娓呮櫒绌鸿吂鏈嶇敤锛岄渶缁堣韩鏈嶈嵂銆傚畾鏈熷鏌ョ敳鐘惰吅鍔熻兘銆�',
+          medicationStatus: '1',
+          prescribingDoctor: '鍛ㄥ尰鐢�',
+          guardianName: '鏉ㄧ埜鐖�'
+        },
+        {
+          id: 7,
+          patientId: 'C1007',
+          patientName: '榛勯摥杞�',
+          patientAge: 5,
+          ageGroup: '瀛﹂緞鍓�(3-6宀�)',
+          patientGender: '1',
+          patientNo: 'P202412007',
+          allergyHistory: '鑺辩矇杩囨晱',
+          drugId: 'D1007',
+          drugName: '娌欎竵鑳洪唶姘旈浘鍓�',
+          drugSpecification: '100渭g*200鎻�/鐡�',
+          drugCategory: '骞冲枠鑽�',
+          dosage: 1,
+          dosageUnit: '鎻�',
+          frequency: '0',
+          usageMethod: '鍚稿叆',
+          startTime: '2024-11-20 08:00:00',
+          endTime: '',
+          durationType: '1',
+          instructions: '鐢ㄤ簬鍝枠鎬ユ�у彂浣滄椂缂撹В鐥囩姸锛屾寜闇�浣跨敤銆傛暀瀵兼纭惛鍏ユ柟娉曘��',
+          medicationStatus: '1',
+          prescribingDoctor: '鍚村尰鐢�',
+          guardianName: '榛勫濡�'
+        }
+      ],
       // 鍒嗛厤鐢ㄨ嵂寮瑰嚭灞�
       assignOpen: false,
       assignTitle: "",
diff --git a/src/views/patient/SignAcontract/Review.vue b/src/views/patient/SignAcontract/Review.vue
index 1415166..dfced60 100644
--- a/src/views/patient/SignAcontract/Review.vue
+++ b/src/views/patient/SignAcontract/Review.vue
@@ -5,10 +5,10 @@
       <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="100px">
         <el-row :gutter="20">
           <el-col :span="6">
-            <el-form-item label="鎮h�呭鍚�" prop="patientName">
+            <el-form-item label="鍎跨濮撳悕" prop="patientName">
               <el-input
                 v-model="queryParams.patientName"
-                placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+                placeholder="璇疯緭鍏ュ効绔ュ鍚�"
                 clearable
                 @keyup.enter="handleQuery"
               />
@@ -81,12 +81,15 @@
         style="width: 100%"
         :default-sort="{prop: 'applyTime', order: 'descending'}"
       >
-        <el-table-column label="鎮h�呬俊鎭�" min-width="200" fixed>
+        <el-table-column label="鍎跨淇℃伅" min-width="200" fixed>
           <template slot-scope="scope">
             <div class="patient-info">
               <div class="patient-name">{{ scope.row.patientName }}</div>
               <div class="patient-detail">
                 {{ scope.row.gender }} | {{ scope.row.age }}宀� | {{ scope.row.phone }}
+                <div style="color: #909399; font-size: 12px; margin-top: 2px;">
+                  {{ scope.row.applicableAge }}
+                </div>
               </div>
             </div>
           </template>
@@ -110,7 +113,7 @@
         </el-table-column>
         <el-table-column label="鐢宠鏃堕棿" prop="applyTime" width="160" sortable />
         <el-table-column label="鏈熸湜鍖荤敓" prop="expectDoctor" width="120" />
-        <el-table-column label="鐗规畩瑕佹眰" min-width="200">
+        <el-table-column label="鐩戞姢浜鸿姹�" min-width="200">
           <template slot-scope="scope">
             <span v-if="scope.row.specialRequirements" :title="scope.row.specialRequirements">
               {{ scope.row.specialRequirements.substring(0, 30) }}...
@@ -187,7 +190,7 @@
             type="textarea"
             :rows="3"
             v-model="reviewForm.rejectReason"
-            placeholder="璇疯緭鍏ラ┏鍥炵殑鍏蜂綋鍘熷洜锛屼究浜庢偅鑰呬簡瑙f儏鍐�"
+            placeholder="璇疯緭鍏ラ┏鍥炵殑鍏蜂綋鍘熷洜锛屼究浜庣洃鎶や汉浜嗚В鎯呭喌"
             maxlength="200"
             show-word-limit
           />
@@ -255,18 +258,44 @@
         rejected: 0
       },
       availableDoctors: [
-        { id: '1', name: '鐜嬪尰鐢�', department: '鍐呯' },
-        { id: '2', name: '鏉庡尰鐢�', department: '鑰佸勾绉�' },
-        { id: '3', name: '寮犲尰鐢�', department: '濡囦骇绉�' },
-        { id: '4', name: '鍒樺尰鐢�', department: '鍎跨' },
+        { id: '1', name: '鐜嬪尰鐢�', department: '鍎跨' },
+        { id: '2', name: '鏉庡尰鐢�', department: '鍎跨淇濆仴绉�' },
+        { id: '3', name: '寮犲尰鐢�', department: '鍎跨' },
+        { id: '4', name: '鍒樺尰鐢�', department: '鍎跨钀ュ吇绉�' },
         { id: '5', name: '闄堝尰鐢�', department: '鍏ㄧ' }
       ],
+      // 鍎跨鏈嶅姟濂楅閰嶇疆
       servicePackages: {
-        '1': { name: '鍩虹鍋ュ悍绠$悊鍖�', color: 'info' },
-        '2': { name: '鎱㈡�х梾绠$悊鍖�', color: 'success' },
-        '3': { name: '鑰佸勾浜哄仴搴峰寘', color: 'warning' },
-        '4': { name: '瀛曚骇濡囦繚鍋ュ寘', color: 'danger' },
-        '5': { name: '鍎跨淇濆仴鍖�', color: 'primary' }
+        '1': {
+          name: '濠村辜鍎垮仴搴峰熀纭�鍖�',
+          color: 'primary',
+          applicableAge: '0-3宀�'
+        },
+        '2': {
+          name: '瀛﹂緞鍓嶅効绔ュ仴搴峰寘',
+          color: 'success',
+          applicableAge: '3-6宀�'
+        },
+        '3': {
+          name: '瀛﹂緞鍎跨缁煎悎鍋ュ悍鍖�',
+          color: 'warning',
+          applicableAge: '7-12宀�'
+        },
+        '4': {
+          name: '闈掑皯骞村仴搴锋敮鎸佸寘',
+          color: 'danger',
+          applicableAge: '13-18宀�'
+        },
+        '5': {
+          name: '鍎跨钀ュ吇涓庣敓闀垮彂鑲插鍊煎寘',
+          color: 'info',
+          applicableAge: '3-18宀�'
+        },
+        '6': {
+          name: '鍎跨涓尰鐗硅壊淇濆仴鍖�',
+          color: 'primary',
+          applicableAge: '0-6宀�'
+        }
       },
       rules: {
         rejectReason: [
@@ -283,111 +312,128 @@
     this.calculateStats()
   },
   methods: {
-//浼樺寲鍚庣殑妯℃嫙鏁版嵁鐢熸垚鏂规硶
-generateMockData() {
-  const mockData = []
+    // 鐢熸垚妯℃嫙鏁版嵁
+    generateMockData() {
+      const mockData = []
 
-  // 浣跨敤鎮ㄦ彁渚涚殑鐪熷疄濮撳悕鍒楄〃
-  const patientNames = [
-    '鏉庤倗鑺�', '鍗㈡湪浠�', '鏉庢垚鐧�', '鏂瑰厗鐜�', '鍒樼繆鎯�', '涓佹眽鑷�', '鍚翠匠鐟�', '鑸掔豢鐝�',
-    '鍛ㄧ櫧鑺�', '寮犲Э濡�', '寮犺櫣浼�', '鍛ㄧ惣鐜�', '鍊�¤姵', '閮吹濡�', '鏉ㄤ僵鑺�', '榛勬枃鏃�',
-    '榛勭洓鐜�', '閮戜附闈�', '璁告櫤浜�', '寮犲瓱娑�', '鏉庡皬鐖�', '鐜嬫仼榫�', '鏈辨斂寤�', '閭撹瘲娑�',
-    '闄堟斂鍊�', '鍚翠繆浼�', '闃Θ瀛�', '缈佹儬鐝�', '鍚存�濈堪', '鏋椾僵鐜�'
-  ]
+      // 浣跨敤鍎跨濮撳悕鍒楄〃
+      const patientNames = [
+        '鏉庡皬瀹�', '寮犲皬鏄�', '鐜嬮洦娆�', '鍒樻旦鐒�', '闄堟�濈惇', '鏉ㄥ畤鑸�', '榛勮瘲娑�', '璧靛ぉ瀹�',
+        '鍛ㄥ皬钀�', '鍚翠繆鏉�', '閮戦泤闆�', '瀛欐矏杈�', '鏈遍洦钀�', '椹旦瀹�', '鑳″彲棣�', '鏋椾繆鐔�',
+        '閮瓙杞�', '浣曟鎬�', '楂樺ぉ浣�', '姊侀潤鎬�', '缃楁旦鐒�', '瀹嬮洦娉�', '鍞愯瀚�', '璁稿崥鏂�',
+        '璋㈡濡�', '鍐瓙榛�', '钁i洦妗�', '钀уぉ涔�', '鏇瑰績鎬�', '琚佸槈璞�'
+      ]
 
-  const specialReqs = [
-    '甯屾湜鍖荤敓鑳藉畾鏈熶笂闂ㄦ鏌�',
-    '闇�瑕佸懆鏈椂闂存鐨勬湇鍔�',
-    '瀵硅嵂鐗╂湁杩囨晱鍙诧紝闇�鐗瑰埆娉ㄦ剰',
-    '琛屽姩涓嶄究锛岄渶瑕佷笂闂ㄦ湇鍔�',
-    '鏃犵壒娈婅姹�',
-    '闇�瑕佽嫳璇湇鍔℃敮鎸�',
-    '鏈夐珮琛�鍘嬬梾鍙诧紝闇�閲嶇偣鍏虫敞',
-    '闇�瑕佸畾鏈熻绯栫洃娴嬫湇鍔�',
-    '甯屾湜鏈夊浐瀹氱殑瀹跺涵鍖荤敓',
-    '闇�瑕佸績鐞嗙枏瀵兼湇鍔�'
-  ]
+      const specialReqs = [
+        '甯屾湜鍖荤敓鑳藉畾鏈熶笂闂ㄦ鏌�',
+        '闇�瑕佸懆鏈椂闂存鐨勬湇鍔�',
+        '瀵硅嵂鐗╂湁杩囨晱鍙诧紝闇�鐗瑰埆娉ㄦ剰',
+        '琛屽姩涓嶄究锛岄渶瑕佷笂闂ㄦ湇鍔�',
+        '鏃犵壒娈婅姹�',
+        '闇�瑕佽嫳璇湇鍔℃敮鎸�',
+        '鏈夊摦鍠樼梾鍙诧紝闇�閲嶇偣鍏虫敞',
+        '闇�瑕佸畾鏈熺敓闀垮彂鑲茬洃娴�',
+        '甯屾湜鏈夊浐瀹氱殑鍎跨鍖荤敓',
+        '闇�瑕佺柅鑻楁帴绉嶆彁閱掓湇鍔�'
+      ]
 
-  const rejectReasons = [
-    '璧勬枡涓嶅畬鏁达紝璇疯ˉ鍏呭仴搴锋。妗�',
-    '涓嶇鍚堝綋鍓嶇绾︽潯浠�',
-    '閫夋嫨鐨勫尰鐢熸。鏈熷凡婊�',
-    '鏈嶅姟濂楅涓庣梾鎯呬笉鍖归厤',
-    '骞撮緞涓嶇鍚堝椁愯姹�',
-    '璇疯ˉ鍏呭畬鏁寸殑鐥呭彶璧勬枡'
-  ]
+      const rejectReasons = [
+        '鐩戞姢浜鸿祫鏂欎笉瀹屾暣锛岃琛ュ厖韬唤璇佹槑',
+        '鍎跨骞撮緞涓嶇鍚堝椁愯姹�',
+        '閫夋嫨鐨勫尰鐢熶笓闀夸笌鍎跨闇�姹備笉鍖归厤',
+        '鏈嶅姟濂楅涓庡効绔ュ仴搴风姸鍐典笉鍖归厤',
+        '璇疯ˉ鍏呭畬鏁寸殑鍎跨鍋ュ悍妗f',
+        '鐤嫍鎺ョ璁板綍涓嶅畬鏁�'
+      ]
 
-  // 鐢熸垚绾�30鏉℃暟鎹紙涓庡鍚嶆暟閲忓尮閰嶏級
-  for (let i = 0; i < patientNames.length; i++) {
-    const packageId = (i % 5) + 1 + ''
-    const reviewStatus = i % 3 // 0:寰呭鏍�, 1:閫氳繃, 2:椹冲洖
-    const applyDate = this.generateRandomDate('2024-10-01', '2024-12-08')
+      for (let i = 0; i < patientNames.length; i++) {
+        const packageId = (i % 6) + 1 + ''
+        const packageInfo = this.servicePackages[packageId]
+        const reviewStatus = i % 3 // 0:寰呭鏍�, 1:閫氳繃, 2:椹冲洖
+        const applyDate = this.generateRandomDate('2024-10-01', '2024-12-08')
 
-    // 鐢熸垚鏇寸湡瀹炵殑鐢佃瘽鍙风爜
-    const phonePrefix = ['138', '139', '150', '151', '152', '186', '187', '188']
-    const phone = `${phonePrefix[i % phonePrefix.length]}${this.padNumber(1000 + i * 37, 4)}${this.padNumber(i % 100, 2)}`
+        // 鏍规嵁濂楅閫傜敤骞撮緞鐢熸垚鍚堢悊鐨勫疄闄呭勾榫�
+        let age
+        switch(packageInfo.applicableAge) {
+          case '0-3宀�':
+            age = Math.floor(Math.random() * 3) + 1
+            break
+          case '3-6宀�':
+            age = Math.floor(Math.random() * 3) + 3
+            break
+          case '7-12宀�':
+            age = Math.floor(Math.random() * 6) + 7
+            break
+          case '13-18宀�':
+            age = Math.floor(Math.random() * 6) + 13
+            break
+          default:
+            age = Math.floor(Math.random() * 18) + 1
+        }
 
-    // 鐢熸垚鍚堢悊鐨勫勾榫勶紙0-80宀侊級
-    const age = i % 80
-    const gender = i % 2 === 0 ? '鐢�' : '濂�'
+        // 鐢熸垚鐩戞姢浜虹數璇濆彿鐮�
+        const phonePrefix = ['138', '139', '150', '151', '152', '186', '187', '188']
+        const phone = `${phonePrefix[i % phonePrefix.length]}${this.padNumber(1000 + i * 37, 4)}${this.padNumber(i % 100, 2)}`
 
-    mockData.push({
-      id: `A${2024000 + i}`,
-      patientName: patientNames[i],
-      gender: gender,
-      age: age,
-      phone: phone,
-      servicePackageId: packageId,
-      servicePackage: this.servicePackages[packageId].name,
-      services: this.getServicesByPackage(packageId),
-      contractPeriod: [1, 2][i % 2],
-      applyTime: `${applyDate} ${this.padNumber(8 + (i % 10), 2)}:${this.padNumber(i % 60, 2)}:${this.padNumber(i % 60, 2)}`,
-      expectDoctor: ['鐜嬪尰鐢�', '鏉庡尰鐢�', '寮犲尰鐢�', '鍒樺尰鐢�', '闄堝尰鐢�'][i % 5],
-      specialRequirements: specialReqs[i % specialReqs.length],
-      reviewStatus: reviewStatus,
-      reviewer: reviewStatus !== 0 ? ['绠$悊鍛�', '绯荤粺绠$悊鍛�', '瀹℃牳涓撳憳'][i % 3] : '',
-      reviewTime: reviewStatus !== 0 ?
-        `${this.addDays(applyDate, 1 + (i % 3))} 14:${this.padNumber(i % 60, 2)}:00` : '',
-      rejectReason: reviewStatus === 2 ? rejectReasons[i % rejectReasons.length] : ''
-    })
-  }
+        mockData.push({
+          id: `A${2024000 + i}`,
+          patientName: patientNames[i],
+          gender: i % 2 === 0 ? '鐢�' : '濂�',
+          age: age,
+          phone: phone,
+          servicePackageId: packageId,
+          servicePackage: packageInfo.name,
+          services: this.getServicesByPackage(packageId),
+          contractPeriod: [1, 2][i % 2],
+          applicableAge: packageInfo.applicableAge,
+          applyTime: `${applyDate} ${this.padNumber(8 + (i % 10), 2)}:${this.padNumber(i % 60, 2)}:${this.padNumber(i % 60, 2)}`,
+          expectDoctor: ['鐜嬪尰鐢�', '鏉庡尰鐢�', '寮犲尰鐢�', '鍒樺尰鐢�', '闄堝尰鐢�'][i % 5],
+          specialRequirements: specialReqs[i % specialReqs.length],
+          reviewStatus: reviewStatus,
+          reviewer: reviewStatus !== 0 ? ['绠$悊鍛�', '绯荤粺绠$悊鍛�', '瀹℃牳涓撳憳'][i % 3] : '',
+          reviewTime: reviewStatus !== 0 ?
+            `${this.addDays(applyDate, 1 + (i % 3))} 14:${this.padNumber(i % 60, 2)}:00` : '',
+          rejectReason: reviewStatus === 2 ? rejectReasons[i % rejectReasons.length] : ''
+        })
+      }
 
-  return mockData
-},
+      return mockData
+    },
 
-// 鏍规嵁濂楅鑾峰彇鏈嶅姟鍒楄〃
-getServicesByPackage(packageId) {
-  const servicesMap = {
-    '1': ['骞村害鍋ュ悍璇勪及', '鍦ㄧ嚎鍋ュ悍鍜ㄨ', '鍋ュ悍妗f绠$悊', '瀹氭湡鍋ュ悍鎻愰啋'],
-    '2': ['涓撳睘鍖荤敓鏈嶅姟', '鐢ㄨ嵂鎸囧绠$悊', '瀹氭湡闅忚鐩戞祴', '涓�у寲搴峰璁″垝', '绱ф�ュ尰鐤楀挩璇�'],
-    '3': ['璺屽�掗闄╄瘎浼�', '搴峰璁粌鎸囧', '鐢ㄨ嵂瀹夊叏绠$悊', '瀹氭湡涓婇棬璁胯', '绱ф�ヨ仈绯绘湇鍔�', '蹇冪悊鍋ュ悍鍏虫��'],
-    '4': ['瀛曟湡鍋ュ悍绠$悊', '浜у悗搴峰鎸囧', '鏂扮敓鍎挎姢鐞嗗挩璇�', '钀ュ吇鑶抽寤鸿', '蹇冪悊鎯呯华鏀寔'],
-    '5': ['鐢熼暱鍙戣偛鐩戞祴', '鐤嫍鎺ョ绠$悊', '甯歌鐥呴槻娌�', '钀ュ吇鎸囧', '鏃╂湡鏁欒偛鍜ㄨ']
-  }
-  return servicesMap[packageId] || []
-},
+    // 鏍规嵁濂楅鑾峰彇鏈嶅姟鍒楄〃
+    getServicesByPackage(packageId) {
+      const servicesMap = {
+        '1': ['鏂扮敓鍎垮搴瑙�', '瀹氭湡浣撴牸妫�鏌ヤ笌鍙戣偛璇勪及', '琛�甯歌妫�娴�', '鍚姏绛涙煡', '鍠傚吇涓庢姢鐞嗘寚瀵�', '棰勯槻鎺ョ鏈嶅姟', '涓尰淇濆仴鎸囧'],
+        '2': ['鐢熼暱鍙戣偛璇勪及', '瑙嗗姏绛涙煡涓庡彛鑵斾繚鍋�', '琛�甯歌妫�鏌�', '鍚堢悊鑶抽涓庤涓烘寚瀵�', '鐤剧梾棰勯槻涓庡仴搴峰共棰�', '涓尰楗璋冨吇鎸囧'],
+        '3': ['骞村害鍋ュ悍妫�鏌�', '蹇冪悊琛屼负鍙戣偛璇勪及', '绉戝鐢ㄧ溂涓庡彛鑵斾繚鍋�', '鍚堢悊鑶抽鎸囧', '鍋ュ悍鐢熸椿鏂瑰紡骞查', '涓撳杞瘖缁胯壊閫氶亾'],
+        '4': ['闈掓槬鏈熷仴搴锋暀鑲�', '骞村害鍋ュ悍璇勪及', '蹇冪悊鍋ュ悍鏀寔', '鍋ュ悍椋庨櫓琛屼负骞查', '涓�у寲鍋ュ悍鏂规', '浼樺厛棰勭害妫�鏌ユ湇鍔�'],
+        '5': ['寰噺鍏冪礌娴嬪畾', '楠ㄥ瘑搴︽娴�', '涓�у寲鑶抽鏂规', '鐢熼暱鍙戣偛涓撻」璇勪及', '杩愬姩澶勬柟鎸囧', '瀹氭湡钀ュ吇鐩戞祴'],
+        '6': ['涓尰浣撹川杈ㄨ瘑', '涓変紡璐存湇鍔�', '灏忓効鎺ㄦ嬁', '鑰崇┐娌荤枟', '闃叉劅棣欏泭', '椋熺枟鎸囧']
+      }
+      return servicesMap[packageId] || []
+    },
 
-// 杈呭姪鏂规硶锛氱敓鎴愰殢鏈烘棩鏈�
-generateRandomDate(start, end) {
-  const startDate = new Date(start).getTime()
-  const endDate = new Date(end).getTime()
-  const randomTime = startDate + Math.random() * (endDate - startDate)
-  return new Date(randomTime).toISOString().split('T')[0]
-},
+    // 杈呭姪鏂规硶锛氱敓鎴愰殢鏈烘棩鏈�
+    generateRandomDate(start, end) {
+      const startDate = new Date(start).getTime()
+      const endDate = new Date(end).getTime()
+      const randomTime = startDate + Math.random() * (endDate - startDate)
+      return new Date(randomTime).toISOString().split('T')[0]
+    },
 
-// 杈呭姪鏂规硶锛氭坊鍔犲ぉ鏁�
-addDays(date, days) {
-  const result = new Date(date)
-  result.setDate(result.getDate() + days)
-  return result.toISOString().split('T')[0]
-},
+    // 杈呭姪鏂规硶锛氭坊鍔犲ぉ鏁�
+    addDays(date, days) {
+      const result = new Date(date)
+      result.setDate(result.getDate() + days)
+      return result.toISOString().split('T')[0]
+    },
 
-// 杈呭姪鏂规硶锛氭暟瀛楄ˉ闆�
-padNumber(num, length) {
-  return num.toString().padStart(length, '0')
-},
+    // 杈呭姪鏂规硶锛氭暟瀛楄ˉ闆�
+    padNumber(num, length) {
+      return num.toString().padStart(length, '0')
+    },
 
-    // 鑾峰彇瀹℃牳鍒楄〃 [1](@ref)
+    // 鑾峰彇瀹℃牳鍒楄〃
     async getList() {
       this.loading = true
       try {
@@ -435,7 +481,7 @@
       this.stats.rejected = allData.filter(item => item.reviewStatus === 2).length
     },
 
-    // 鑾峰彇瀹℃牳鐘舵�佹枃鏈� [2](@ref)
+    // 鑾峰彇瀹℃牳鐘舵�佹枃鏈�
     getReviewStatusText(status) {
       const statusMap = { 0: '寰呭鏍�', 1: '瀹℃牳閫氳繃', 2: '瀹℃牳椹冲洖' }
       return statusMap[status] || '鏈煡'
@@ -449,11 +495,14 @@
 
     // 鑾峰彇濂楅绫诲瀷
     getPackageType(packageId) {
-      const typeMap = { '1': 'info', '2': 'success', '3': 'warning', '4': 'danger', '5': 'primary' }
+      const typeMap = {
+        '1': 'primary', '2': 'success', '3': 'warning',
+        '4': 'danger', '5': 'info', '6': 'primary'
+      }
       return typeMap[packageId] || 'info'
     },
 
-    // 鎼滅储鎿嶄綔 [1](@ref)
+    // 鎼滅储鎿嶄綔
     handleQuery() {
       this.queryParams.pageNum = 1
       this.getList()
@@ -471,7 +520,7 @@
       this.handleQuery()
     },
 
-    // 澶勭悊瀹℃牳鎿嶄綔 [2](@ref)
+    // 澶勭悊瀹℃牳鎿嶄綔
     handleReview(row, status) {
       this.currentRow = row
       this.reviewForm = {
@@ -483,7 +532,6 @@
       }
       this.reviewDialogVisible = true
 
-      // 娓呴櫎琛ㄥ崟楠岃瘉
       this.$nextTick(() => {
         if (this.$refs.reviewFormRef) {
           this.$refs.reviewFormRef.clearValidate()
@@ -491,10 +539,9 @@
       })
     },
 
-    // 鎻愪氦瀹℃牳 [2,6](@ref)
+    // 鎻愪氦瀹℃牳
     async submitReview() {
       try {
-        // 琛ㄥ崟楠岃瘉
         if (this.reviewForm.reviewStatus === 2) {
           if (!this.reviewForm.rejectReason) {
             this.$message.error('璇峰~鍐欓┏鍥炲師鍥�')
@@ -507,10 +554,8 @@
           return
         }
 
-        // 妯℃嫙API璋冪敤
         await new Promise(resolve => setTimeout(resolve, 1000))
 
-        // 鏇存柊褰撳墠琛岀殑鐘舵��
         const currentIndex = this.reviewList.findIndex(item => item.id === this.currentRow.id)
         if (currentIndex !== -1) {
           this.reviewList[currentIndex].reviewStatus = this.reviewForm.reviewStatus
@@ -518,7 +563,6 @@
           this.reviewList[currentIndex].reviewTime = new Date().toLocaleString()
           this.reviewList[currentIndex].rejectReason = this.reviewForm.rejectReason
 
-          // 濡傛灉瀹℃牳閫氳繃锛屽垎閰嶅尰鐢�
           if (this.reviewForm.reviewStatus === 1) {
             const doctor = this.availableDoctors.find(d => d.id === this.reviewForm.assignDoctor)
             this.reviewList[currentIndex].expectDoctor = doctor ? doctor.name : this.reviewList[currentIndex].expectDoctor
@@ -527,7 +571,7 @@
 
         this.$message.success(this.reviewForm.reviewStatus === 1 ? '瀹℃牳閫氳繃鎴愬姛' : '瀹℃牳椹冲洖鎴愬姛')
         this.reviewDialogVisible = false
-        this.calculateStats() // 閲嶆柊璁$畻缁熻淇℃伅
+        this.calculateStats()
       } catch (error) {
         console.error('瀹℃牳鎿嶄綔澶辫触:', error)
         this.$message.error('瀹℃牳鎿嶄綔澶辫触')
@@ -536,54 +580,10 @@
 
     // 鏌ョ湅璇︽儏
     handleView(row) {
-      this.$message.info(`鏌ョ湅鎮h�� ${row.patientName} 鐨勭敵璇疯鎯卄)
-      // 瀹為檯寮�鍙戜腑璺宠浆鍒拌鎯呴〉
-      // this.$router.push({ path: '/patient/contract/apply-detail', query: { id: row.id } })
-    },
-
-    // 鎵归噺瀹℃牳閫氳繃
-    handleBatchApprove() {
-      const pendingItems = this.reviewList.filter(item => item.reviewStatus === 0)
-      if (pendingItems.length === 0) {
-        this.$message.warning('娌℃湁寰呭鏍哥殑鐢宠')
-        return
-      }
-
-      this.$confirm(`纭畾瑕佹壒閲忛�氳繃 ${pendingItems.length} 涓緟瀹℃牳鐢宠鍚楋紵`, '鎵归噺瀹℃牳', {
-        type: 'warning'
-      }).then(async () => {
-        try {
-          this.loading = true
-          // 妯℃嫙鎵归噺瀹℃牳API璋冪敤
-          await new Promise(resolve => setTimeout(resolve, 2000))
-
-          // 鏇存柊鎵�鏈夊緟瀹℃牳椤圭殑鐘舵��
-          pendingItems.forEach(item => {
-            item.reviewStatus = 1
-            item.reviewer = '褰撳墠鐢ㄦ埛'
-            item.reviewTime = new Date().toLocaleString()
-          })
-
-          this.$message.success(`鎵归噺瀹℃牳閫氳繃鎴愬姛锛屽叡澶勭悊 ${pendingItems.length} 涓敵璇穈)
-          this.calculateStats()
-        } catch (error) {
-          this.$message.error('鎵归噺瀹℃牳澶辫触')
-        } finally {
-          this.loading = false
-        }
-      })
-    },
-
-    // 瀵煎嚭瀹℃牳鏁版嵁
-    handleExport() {
-      const exportData = this.generateMockData()
-      // 瀹為檯寮�鍙戜腑杩欓噷搴旇璋冪敤瀵煎嚭API
-      console.log('瀵煎嚭鏁版嵁:', exportData)
-      this.$message.info('瀵煎嚭鍔熻兘寮�鍙戜腑锛屾暟鎹凡鎵撳嵃鍒版帶鍒跺彴')
+      this.$message.info(`鏌ョ湅鍎跨 ${row.patientName} 鐨勭敵璇疯鎯卄)
     }
   },
   watch: {
-    // 鐩戝惉瀹℃牳鐘舵�佸彉鍖栵紝鍔ㄦ�佽缃獙璇佽鍒� [6](@ref)
     'reviewForm.reviewStatus': function(newVal) {
       this.$nextTick(() => {
         if (this.$refs.reviewFormRef) {
@@ -638,53 +638,11 @@
     .patient-detail {
       font-size: 12px;
       color: #909399;
+      line-height: 1.4;
     }
   }
 
-  // 瀹℃牳鐘舵�佹牱寮�
-  .review-status {
-    padding: 4px 8px;
-    border-radius: 4px;
-    font-size: 12px;
-    font-weight: 500;
-
-    &.status-pending {
-      background: #fdf6ec;
-      color: #e6a23c;
-    }
-
-    &.status-approved {
-      background: #f0f9e8;
-      color: #67c23a;
-    }
-
-    &.status-rejected {
-      background: #fef0f0;
-      color: #f56c6c;
-    }
-  }
-
-  // 鐗规畩瑕佹眰鏂囨湰鏍峰紡
-  .special-requirements {
-    max-width: 200px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-
-    &:hover {
-      white-space: normal;
-      overflow: visible;
-      background: white;
-      box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-      padding: 8px;
-      border-radius: 4px;
-      position: absolute;
-      z-index: 1000;
-      max-width: 300px;
-    }
-  }
-
-  // 琛ㄦ牸鏍峰紡
+  // 琛ㄦ牸鏍峰紡浼樺寲
   ::v-deep .el-table {
     .el-table__header-wrapper {
       th {
@@ -714,95 +672,6 @@
     }
   }
 
-  // 瀹℃牳瀵硅瘽妗嗘牱寮�
-  .review-dialog {
-    ::v-deep .el-dialog {
-      border-radius: 8px;
-      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
-    }
-
-    .dialog-footer {
-      text-align: right;
-      margin-top: 20px;
-    }
-  }
-
-  // 鎿嶄綔鎸夐挳鏍峰紡
-  .action-buttons {
-    display: flex;
-    gap: 8px;
-
-    .el-button {
-      padding: 7px 12px;
-      border-radius: 4px;
-      font-size: 12px;
-
-      &.approve-btn {
-        background: #67c23a;
-        border-color: #67c23a;
-        color: white;
-
-        &:hover {
-          background: #5daf34;
-          border-color: #5daf34;
-        }
-      }
-
-      &.reject-btn {
-        background: #f56c6c;
-        border-color: #f56c6c;
-        color: white;
-
-        &:hover {
-          background: #e65c5c;
-          border-color: #e65c5c;
-        }
-      }
-
-      &.detail-btn {
-        color: #409eff;
-        border-color: #409eff;
-
-        &:hover {
-          background: #ecf5ff;
-        }
-      }
-    }
-  }
-
-  // 鎵归噺鎿嶄綔鏍�
-  .batch-actions {
-    background: #ecf5ff;
-    padding: 12px 20px;
-    margin-bottom: 16px;
-    border-radius: 4px;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-
-    .batch-info {
-      color: #409eff;
-      font-size: 14px;
-    }
-  }
-
-  // 绌虹姸鎬佹牱寮�
-  .empty-state {
-    text-align: center;
-    padding: 40px 20px;
-    color: #909399;
-
-    .empty-icon {
-      font-size: 48px;
-      margin-bottom: 16px;
-      opacity: 0.5;
-    }
-
-    .empty-text {
-      font-size: 14px;
-    }
-  }
-
   // 鍝嶅簲寮忚璁�
   @media (max-width: 768px) {
     padding: 10px;
@@ -811,16 +680,6 @@
       .el-col {
         margin-bottom: 10px;
       }
-    }
-
-    .action-buttons {
-      flex-direction: column;
-    }
-
-    .batch-actions {
-      flex-direction: column;
-      gap: 10px;
-      align-items: stretch;
     }
   }
 }
diff --git a/src/views/patient/SignAcontract/index.vue b/src/views/patient/SignAcontract/index.vue
index 32c6166..62dc6f7 100644
--- a/src/views/patient/SignAcontract/index.vue
+++ b/src/views/patient/SignAcontract/index.vue
@@ -27,11 +27,12 @@
           <el-col :span="6">
             <el-form-item label="鏈嶅姟濂楅" prop="servicePackage">
               <el-select v-model="queryParams.servicePackage" placeholder="璇烽�夋嫨濂楅" clearable>
-                <el-option label="鍩虹鍋ュ悍绠$悊鍖�" value="1" />
-                <el-option label="鎱㈡�х梾绠$悊鍖�" value="2" />
-                <el-option label="鑰佸勾浜哄仴搴峰寘" value="3" />
-                <el-option label="瀛曚骇濡囦繚鍋ュ寘" value="4" />
-                <el-option label="鍎跨淇濆仴鍖�" value="5" />
+                <el-option
+                  v-for="pkg in packageOptions"
+                  :key="pkg.id"
+                  :label="pkg.name"
+                  :value="pkg.id"
+                />
               </el-select>
             </el-form-item>
           </el-col>
@@ -51,7 +52,7 @@
         <el-card class="stats-card" shadow="hover">
           <div class="stats-content">
             <div class="stats-number">{{ stats.total }}</div>
-            <div class="stats-label">鎬荤绾︽偅鑰�</div>
+            <div class="stats-label">鎬荤绾﹀効绔�</div>
           </div>
         </el-card>
       </el-col>
@@ -91,12 +92,15 @@
         :default-sort="{prop: 'signDate', order: 'descending'}"
       >
         <el-table-column type="selection" width="55" />
-        <el-table-column label="鎮h�呬俊鎭�" min-width="180" fixed>
+        <el-table-column label="鍎跨淇℃伅" min-width="180" fixed>
           <template slot-scope="scope">
             <div class="patient-info">
               <div class="patient-name">{{ scope.row.patientName }}</div>
               <div class="patient-detail">
                 {{ scope.row.gender }} | {{ scope.row.age }}宀� | {{ scope.row.phone }}
+                <div style="color: #909399; font-size: 12px; margin-top: 2px;">
+                  {{ scope.row.applicableAge }}
+                </div>
               </div>
             </div>
           </template>
@@ -190,118 +194,161 @@
       },
       total: 0,
       patientList: [],
-      // 鏈嶅姟濂楅閰嶇疆
+      // 鍎跨鏈嶅姟濂楅閰嶇疆 [1,3,5](@ref)
       servicePackages: {
         '1': {
-          name: '鍩虹鍋ュ悍绠$悊鍖�',
-          services: ['骞村害鍋ュ悍璇勪及', '鍦ㄧ嚎鍋ュ悍鍜ㄨ', '鍋ュ悍妗f绠$悊', '瀹氭湡鍋ュ悍鎻愰啋'],
+          name: '濠村辜鍎垮仴搴峰熀纭�鍖�',
+          description: '涓�0-3宀佸┐骞煎効鎻愪緵鍏ㄩ潰鐨勫仴搴风洃娴嬩笌鍙戣偛鎸囧',
+          services: ['鏂扮敓鍎垮搴瑙�', '瀹氭湡浣撴牸妫�鏌ヤ笌鍙戣偛璇勪及', '琛�甯歌妫�娴�', '鍚姏绛涙煡', '鍠傚吇涓庢姢鐞嗘寚瀵�', '棰勯槻鎺ョ鏈嶅姟', '涓尰淇濆仴鎸囧'],
           price: 0,
-          color: 'info'
+          color: 'primary',
+          applicableAge: '0-3宀�'
         },
         '2': {
-          name: '鎱㈡�х梾绠$悊鍖�',
-          services: ['涓撳睘鍖荤敓鏈嶅姟', '鐢ㄨ嵂鎸囧绠$悊', '瀹氭湡闅忚鐩戞祴', '涓�у寲搴峰璁″垝', '绱ф�ュ尰鐤楀挩璇�'],
-          price: 299,
-          color: 'success'
+          name: '瀛﹂緞鍓嶅効绔ュ仴搴峰寘',
+          description: '鍏虫敞3-6宀佸効绔ョ敓闀垮彂鑲层�佸父瑙佺梾棰勯槻鍙婁範鎯吇鎴�',
+          services: ['鐢熼暱鍙戣偛璇勪及', '瑙嗗姏绛涙煡涓庡彛鑵斾繚鍋�', '琛�甯歌妫�鏌�', '鍚堢悊鑶抽涓庤涓烘寚瀵�', '鐤剧梾棰勯槻涓庡仴搴峰共棰�', '涓尰楗璋冨吇鎸囧'],
+          price: 0,
+          color: 'success',
+          applicableAge: '3-6宀�'
         },
         '3': {
-          name: '鑰佸勾浜哄仴搴峰寘',
-          services: ['璺屽�掗闄╄瘎浼�', '搴峰璁粌鎸囧', '鐢ㄨ嵂瀹夊叏绠$悊', '瀹氭湡涓婇棬璁胯', '绱ф�ヨ仈绯绘湇鍔�', '蹇冪悊鍋ュ悍鍏虫��'],
-          price: 499,
-          color: 'warning'
+          name: '瀛﹂緞鍎跨缁煎悎鍋ュ悍鍖�',
+          description: '涓�7-12宀佸効绔ユ彁渚涘涔犳湡鍋ュ悍淇濋殰涓庡彂灞曟敮鎸�',
+          services: ['骞村害鍋ュ悍妫�鏌�', '蹇冪悊琛屼负鍙戣偛璇勪及', '绉戝鐢ㄧ溂涓庡彛鑵斾繚鍋�', '鍚堢悊鑶抽鎸囧', '鍋ュ悍鐢熸椿鏂瑰紡骞查', '涓撳杞瘖缁胯壊閫氶亾'],
+          price: 0,
+          color: 'warning',
+          applicableAge: '7-12宀�'
         },
         '4': {
-          name: '瀛曚骇濡囦繚鍋ュ寘',
-          services: ['瀛曟湡鍋ュ悍绠$悊', '浜у悗搴峰鎸囧', '鏂扮敓鍎挎姢鐞嗗挩璇�', '钀ュ吇鑶抽寤鸿', '蹇冪悊鎯呯华鏀寔'],
-          price: 399,
-          color: 'danger'
+          name: '闈掑皯骞村仴搴锋敮鎸佸寘',
+          description: '閽堝13-18宀侀潚灏戝勾闈掓槬鏈熺壒鐐圭殑鍋ュ悍绠$悊',
+          services: ['闈掓槬鏈熷仴搴锋暀鑲�', '骞村害鍋ュ悍璇勪及', '蹇冪悊鍋ュ悍鏀寔', '鍋ュ悍椋庨櫓琛屼负骞查', '涓�у寲鍋ュ悍鏂规', '浼樺厛棰勭害妫�鏌ユ湇鍔�'],
+          price: 0,
+          color: 'danger',
+          applicableAge: '13-18宀�'
         },
         '5': {
-          name: '鍎跨淇濆仴鍖�',
-          services: ['鐢熼暱鍙戣偛鐩戞祴', '鐤嫍鎺ョ绠$悊', '甯歌鐥呴槻娌�', '钀ュ吇鎸囧', '鏃╂湡鏁欒偛鍜ㄨ'],
-          price: 199,
-          color: 'primary'
+          name: '鍎跨钀ュ吇涓庣敓闀垮彂鑲插鍊煎寘',
+          description: '閽堝鑲ヨ儢銆佽惀鍏讳笉鑹瓑闂鐨勪笓椤圭鐞�',
+          services: ['寰噺鍏冪礌娴嬪畾', '楠ㄥ瘑搴︽娴�', '涓�у寲鑶抽鏂规', '鐢熼暱鍙戣偛涓撻」璇勪及', '杩愬姩澶勬柟鎸囧', '瀹氭湡钀ュ吇鐩戞祴'],
+          price: 150,
+          color: 'info',
+          applicableAge: '3-18宀�'
+        },
+        '6': {
+          name: '鍎跨涓尰鐗硅壊淇濆仴鍖�',
+          description: '杩愮敤涓尰鑽柟娉曞寮哄効绔ヤ綋璐�',
+          services: ['涓尰浣撹川杈ㄨ瘑', '涓変紡璐存湇鍔�', '灏忓効鎺ㄦ嬁', '鑰崇┐娌荤枟', '闃叉劅棣欏泭', '椋熺枟鎸囧'],
+          price: 200,
+          color: 'primary',
+          applicableAge: '0-6宀�'
         }
-      }
+      },
+      packageOptions: []
     }
   },
   created() {
+    this.initPackageOptions()
     this.getList()
     this.calculateStats()
   },
   methods: {
-    // 鐢熸垚鏇寸湡瀹炵殑妯℃嫙鏁版嵁
-   // 绮剧畝鍚庣殑妯℃嫙鏁版嵁鐢熸垚鏂规硶
-// 浼樺寲鍚庣殑妯℃嫙鏁版嵁鐢熸垚鏂规硶
-generateMockData() {
-  const mockData = []
+    // 鍒濆鍖栧椁愰�夐」
+    initPackageOptions() {
+      this.packageOptions = Object.keys(this.servicePackages).map(key => ({
+        id: key,
+        name: this.servicePackages[key].name
+      }))
+    },
 
-  // 浣跨敤鎮ㄦ彁渚涚殑鐪熷疄濮撳悕鍒楄〃
-  const patientNames = [
-    '鏉庤倗鑺�', '鍗㈡湪浠�', '鏉庢垚鐧�', '鏂瑰厗鐜�', '鍒樼繆鎯�', '涓佹眽鑷�', '鍚翠匠鐟�', '鑸掔豢鐝�',
-    '鍛ㄧ櫧鑺�', '寮犲Э濡�', '寮犺櫣浼�', '鍛ㄧ惣鐜�', '鍊�¤姵', '閮吹濡�', '鏉ㄤ僵鑺�', '榛勬枃鏃�',
-    '榛勭洓鐜�', '閮戜附闈�', '璁告櫤浜�', '寮犲瓱娑�', '鏉庡皬鐖�', '鐜嬫仼榫�', '鏈辨斂寤�', '閭撹瘲娑�',
-    '闄堟斂鍊�', '鍚翠繆浼�', '闃Θ瀛�', '缈佹儬鐝�', '鍚存�濈堪', '鏋椾僵鐜�'
-  ]
+    // 鐢熸垚妯℃嫙鏁版嵁
+    generateMockData() {
+      const mockData = []
 
-  const doctors = ['鐜嬪尰鐢�', '鏉庡尰鐢�', '寮犲尰鐢�', '鍒樺尰鐢�', '闄堝尰鐢�']
-  const cities = ['鍖椾含甯�', '涓婃捣甯�', '骞垮窞甯�', '娣卞湷甯�', '鏉窞甯�', '鍗椾含甯�', '鎴愰兘甯�']
-  const areas = ['鏈濋槼鍖�', '娴锋穩鍖�', '娴︿笢鏂板尯', '榛勬郸鍖�', '澶╂渤鍖�', '绂忕敯鍖�', '瑗挎箹鍖�']
+      // 浣跨敤鍎跨濮撳悕鍒楄〃
+      const patientNames = [
+        '鏉庡皬瀹�', '寮犲皬鏄�', '鐜嬮洦娆�', '鍒樻旦鐒�', '闄堟�濈惇', '鏉ㄥ畤鑸�', '榛勮瘲娑�', '璧靛ぉ瀹�',
+        '鍛ㄥ皬钀�', '鍚翠繆鏉�', '閮戦泤闆�', '瀛欐矏杈�', '鏈遍洦钀�', '椹旦瀹�', '鑳″彲棣�', '鏋椾繆鐔�',
+        '閮瓙杞�', '浣曟鎬�', '楂樺ぉ浣�', '姊侀潤鎬�', '缃楁旦鐒�', '瀹嬮洦娉�', '鍞愯瀚�', '璁稿崥鏂�',
+        '璋㈡濡�', '鍐瓙榛�', '钁i洦妗�', '钀уぉ涔�', '鏇瑰績鎬�', '琚佸槈璞�'
+      ]
 
-  // 鐢熸垚绾�20鏉℃暟鎹�
-  for (let i = 0; i < patientNames.length; i++) {
-    const packageId = (i % 5) + 1 + ''
-    const packageInfo = this.servicePackages[packageId]
+      const doctors = ['鐜嬪尰鐢�', '鏉庡尰鐢�', '寮犲尰鐢�', '鍒樺尰鐢�', '闄堝尰鐢�']
+      const cities = ['鍖椾含甯�', '涓婃捣甯�', '骞垮窞甯�', '娣卞湷甯�', '鏉窞甯�', '鍗椾含甯�', '鎴愰兘甯�']
+      const areas = ['鏈濋槼鍖�', '娴锋穩鍖�', '娴︿笢鏂板尯', '榛勬郸鍖�', '澶╂渤鍖�', '绂忕敯鍖�', '瑗挎箹鍖�']
 
-    // 鐢熸垚鏇村悎鐞嗙殑绛剧害鏃堕棿锛堣繃鍘�1骞村唴锛�
-    const signDate = this.generateRandomDate('2023-12-01', '2024-11-30')
-    const contractPeriod = [1, 2][i % 2] // 1骞存垨2骞村悎鍚�
-    const expireDate = this.addYears(signDate, contractPeriod)
-    const remainingDays = this.calculateRemainingDays(expireDate)
-    const contractStatus = this.getContractStatus(expireDate, remainingDays)
+      for (let i = 0; i < patientNames.length; i++) {
+        const packageId = (i % 6) + 1 + ''
+        const packageInfo = this.servicePackages[packageId]
 
-    // 鐢熸垚鏇寸湡瀹炵殑鐢佃瘽鍙风爜鍜岃韩浠借瘉鍙�
-    const phonePrefix = ['138', '139', '150', '151', '152', '186', '187', '188']
-    const phone = `${phonePrefix[i % phonePrefix.length]}${this.padNumber(1000 + i * 37, 4)}${this.padNumber(i % 100, 2)}`
+        // 鏍规嵁濂楅閫傜敤骞撮緞鐢熸垚鍚堢悊鐨勫疄闄呭勾榫�
+        let age
+        switch(packageInfo.applicableAge) {
+          case '0-3宀�':
+            age = Math.floor(Math.random() * 3) + 1
+            break
+          case '3-6宀�':
+            age = Math.floor(Math.random() * 3) + 3
+            break
+          case '7-12宀�':
+            age = Math.floor(Math.random() * 6) + 7
+            break
+          case '13-18宀�':
+            age = Math.floor(Math.random() * 6) + 13
+            break
+          default:
+            age = Math.floor(Math.random() * 18) + 1
+        }
 
-    // 鐢熸垚鍚堢悊鐨勫勾榫勶紙20-80宀侊級
-    const age = 20 + (i % 60)
-    const birthYear = new Date().getFullYear() - age
-    const idCard = `11010${birthYear}${this.padNumber(1 + (i % 12), 2)}${this.padNumber(1 + (i % 28), 2)}${this.padNumber(i % 1000, 3)}X`
+        // 鐢熸垚绛剧害鏃堕棿锛堣繃鍘�1骞村唴锛�
+        const signDate = this.generateRandomDate('2023-12-01', '2024-11-30')
+        const contractPeriod = [1, 2][i % 2] // 1骞存垨2骞村悎鍚�
+        const expireDate = this.addYears(signDate, contractPeriod)
+        const remainingDays = this.calculateRemainingDays(expireDate)
+        const contractStatus = this.getContractStatus(expireDate, remainingDays)
 
-    mockData.push({
-      id: `P${2024000 + i}`,
-      patientName: patientNames[i],
-      gender: i % 2 === 0 ? '鐢�' : '濂�',
-      age: age,
-      phone: phone,
-      idCard: idCard,
-      doctorName: doctors[i % doctors.length],
-      servicePackageId: packageId,
-      servicePackage: packageInfo.name,
-      services: packageInfo.services,
-      contractPeriod: contractPeriod,
-      signDate: signDate,
-      expireDate: expireDate,
-      remainingDays: remainingDays,
-      contractStatus: contractStatus,
-      address: `${cities[i % cities.length]}${areas[i % areas.length]}${this.generateStreet(i)}` // 鏂板鍦板潃瀛楁
-    })
-  }
+        // 鐢熸垚鐢佃瘽鍙风爜锛堜娇鐢ㄥ闀跨數璇濓級
+        const phonePrefix = ['138', '139', '150', '151', '152', '186', '187', '188']
+        const phone = `${phonePrefix[i % phonePrefix.length]}${this.padNumber(1000 + i * 37, 4)}${this.padNumber(i % 100, 2)}`
 
-  return mockData
-},
+        // 鐢熸垚鍎跨韬唤璇佸彿
+        const birthYear = new Date().getFullYear() - age
+        const idCard = `11010${birthYear}${this.padNumber(1 + (i % 12), 2)}${this.padNumber(1 + (i % 28), 2)}${this.padNumber(i % 1000, 3)}X`
 
-// 鏂板杈呭姪鏂规硶锛氱敓鎴愯閬撳湴鍧�
-generateStreet(index) {
-  const streets = [
-    '涓北璺�123鍙�', '浜烘皯璺�456鍙�', '瑙f斁璺�789鍙�', '寤鸿璺�101鍙�', '鍜屽钩璺�202鍙�',
-    '鏂板崕璺�303鍙�', '鍏夋槑璺�404鍙�', '骞哥璺�505鍙�', '鍥㈢粨璺�606鍙�', '鏂囨槑璺�707鍙�'
-  ]
-  return streets[index % streets.length]
-},
+        mockData.push({
+          id: `C${2024000 + i}`,
+          patientName: patientNames[i],
+          gender: i % 2 === 0 ? '鐢�' : '濂�',
+          age: age,
+          phone: phone,
+          idCard: idCard,
+          doctorName: doctors[i % doctors.length],
+          servicePackageId: packageId,
+          servicePackage: packageInfo.name,
+          services: packageInfo.services,
+          contractPeriod: contractPeriod,
+          signDate: signDate,
+          expireDate: expireDate,
+          remainingDays: remainingDays,
+          contractStatus: contractStatus,
+          applicableAge: packageInfo.applicableAge,
+          address: `${cities[i % cities.length]}${areas[i % areas.length]}${this.generateStreet(i)}`
+        })
+      }
 
-    // 杈呭姪鏂规硶
+      return mockData
+    },
+
+    // 杈呭姪鏂规硶淇濇寔涓嶅彉
+    generateStreet(index) {
+      const streets = [
+        '涓北璺�123鍙�', '浜烘皯璺�456鍙�', '瑙f斁璺�789鍙�', '寤鸿璺�101鍙�', '鍜屽钩璺�202鍙�',
+        '鏂板崕璺�303鍙�', '鍏夋槑璺�404鍙�', '骞哥璺�505鍙�', '鍥㈢粨璺�606鍙�', '鏂囨槑璺�707鍙�'
+      ]
+      return streets[index % streets.length]
+    },
+
     generateRandomDate(start, end) {
       const startDate = new Date(start).getTime()
       const endDate = new Date(end).getTime()
@@ -336,11 +383,10 @@
     async getList() {
       this.loading = true
       try {
-        // 妯℃嫙API璋冪敤寤惰繜
         await new Promise(resolve => setTimeout(resolve, 500))
 
         const allData = this.generateMockData()
-        // 绠�鍗曠殑鏈湴绛涢��
+        // 绛涢�夐�昏緫
         let filteredData = allData.filter(item => {
           if (this.queryParams.patientName &&
               !item.patientName.includes(this.queryParams.patientName)) {
@@ -393,7 +439,10 @@
     },
 
     getPackageType(packageId) {
-      const typeMap = { '1': 'info', '2': 'success', '3': 'warning', '4': 'danger', '5': 'primary' }
+      const typeMap = {
+        '1': 'primary', '2': 'success', '3': 'warning',
+        '4': 'danger', '5': 'info', '6': 'primary'
+      }
       return typeMap[packageId] || 'info'
     },
 
@@ -425,13 +474,12 @@
     },
 
     handleView(row) {
-      this.$message.info(`鏌ョ湅鎮h�� ${row.patientName} 鐨勮鎯卄)
+      this.$message.info(`鏌ョ湅鍎跨 ${row.patientName} 鐨勮鎯卄)
       // 瀹為檯寮�鍙戜腑璺宠浆鍒拌鎯呴〉
-      // this.$router.push({ path: '/patient/contract/detail', query: { id: row.id } })
     },
 
     handleRenew(row) {
-      this.$confirm(`纭畾瑕佷负鎮h�� ${row.patientName} 鍔炵悊缁害鍚楋紵`, '鎻愮ず', {
+      this.$confirm(`纭畾瑕佷负鍎跨 ${row.patientName} 鍔炵悊缁害鍚楋紵`, '鎻愮ず', {
         type: 'warning'
       }).then(() => {
         this.$message.success('缁害鎿嶄綔鎴愬姛')
@@ -458,6 +506,10 @@
 
   .search-card {
     margin-bottom: 20px;
+
+    ::v-deep .el-form-item {
+      margin-bottom: 0;
+    }
   }
 
   .stats-row {
@@ -487,11 +539,13 @@
     .patient-name {
       font-weight: 600;
       margin-bottom: 4px;
+      color: #2c3e50;
     }
 
     .patient-detail {
       font-size: 12px;
       color: #666;
+      line-height: 1.4;
     }
   }
 
@@ -509,4 +563,23 @@
     color: #67C23A;
   }
 }
+
+// 鍝嶅簲寮忚璁�
+@media (max-width: 768px) {
+  .signed-patient-page {
+    padding: 10px;
+
+    .search-card {
+      ::v-deep .el-col {
+        margin-bottom: 10px;
+      }
+    }
+
+    .stats-row {
+      .el-col {
+        margin-bottom: 10px;
+      }
+    }
+  }
+}
 </style>
diff --git a/src/views/patient/patient/index.vue b/src/views/patient/patient/index.vue
index 3092bca..eb4781d 100644
--- a/src/views/patient/patient/index.vue
+++ b/src/views/patient/patient/index.vue
@@ -765,8 +765,8 @@
           v-model="tempContractData.servicePackage"
           style="width: 100%"
         >
-          <el-row :gutter="16">
-            <el-col :span="8" v-for="pkg in servicePackages" :key="pkg.id">
+          <el-row :gutter="10">
+            <el-col :span="7" v-for="pkg in servicePackages" :key="pkg.id">
               <el-card
                 :class="[
                   'package-card',
@@ -978,25 +978,81 @@
       servicePackages: [
         {
           id: 1,
-          name: "鍩虹鍋ュ悍绠$悊鍖�",
-          description: "鍖呭惈瀹氭湡鍋ュ悍璇勪及銆佸熀鏈挩璇�",
+          name: "濠村辜鍎垮仴搴峰熀纭�鍖�",
+          description: "涓�0-3宀佸┐骞煎効鎻愪緵鍏ㄩ潰鐨勫仴搴风洃娴嬩笌鍙戣偛鎸囧",
           price: 0,
-          features: ["骞村害鍋ュ悍璇勪及", "鍦ㄧ嚎鍜ㄨ"],
+          features: [
+            "鏂扮敓鍎垮搴瑙�",
+            "瀹氭湡浣撴牸妫�鏌ヤ笌鍙戣偛璇勪及",
+            "琛�甯歌妫�娴�",
+            "鍚姏绛涙煡",
+            "鍠傚吇涓庢姢鐞嗘寚瀵�",
+            "棰勯槻鎺ョ鏈嶅姟",
+            "涓尰淇濆仴鎸囧锛堝鎽╄吂銆佹崗鑴婏級",
+          ],
+          applicableAge: "0-3宀�",
         },
         {
           id: 2,
-          name: "鎱㈡�х梾绠$悊鍖�",
-          description: "涓撲负鎱㈡�х梾鎮h�呰璁�",
-          price: 299,
-          features: ["涓撳睘鍖荤敓", "鐢ㄨ嵂鎻愰啋", "瀹氭湡闅忚"],
+          name: "瀛﹂緞鍓嶅効绔ュ仴搴峰寘",
+          description: "鍏虫敞3-6宀佸効绔ョ敓闀垮彂鑲层�佸父瑙佺梾棰勯槻鍙婁範鎯吇鎴�",
+          price: 0,
+          features: [
+            "鐢熼暱鍙戣偛璇勪及",
+            "瑙嗗姏绛涙煡涓庡彛鑵斾繚鍋�",
+            "琛�甯歌妫�鏌�",
+            "鍚堢悊鑶抽涓庤涓烘寚瀵�",
+            "鐤剧梾棰勯槻涓庡仴搴峰共棰�",
+            "涓尰楗璋冨吇鎸囧",
+          ],
+          applicableAge: "3-6宀�",
         },
         {
           id: 3,
-          name: "鑰佸勾浜哄仴搴峰寘",
-          description: "鍏虫敞鑰佸勾浜哄仴搴烽棶棰�",
-          price: 499,
-          features: ["璺屽�掗闄╄瘎浼�", "搴峰鎸囧", "绱ф�ヨ仈绯�"],
+          name: "瀛﹂緞鍎跨缁煎悎鍋ュ悍鍖�",
+          description: "涓�7-12宀佸効绔ユ彁渚涘涔犳湡鍋ュ悍淇濋殰涓庡彂灞曟敮鎸�",
+          price: 0,
+          features: [
+            "骞村害鍋ュ悍妫�鏌�",
+            "蹇冪悊琛屼负鍙戣偛璇勪及",
+            "绉戝鐢ㄧ溂涓庡彛鑵斾繚鍋�",
+            "鍚堢悊鑶抽鎸囧",
+            "鍋ュ悍鐢熸椿鏂瑰紡骞查",
+            "涓撳杞瘖缁胯壊閫氶亾",
+          ],
+          applicableAge: "7-12宀�",
         },
+        {
+          id: 4,
+          name: "闈掑皯骞村仴搴锋敮鎸佸寘",
+          description: "閽堝13-18宀侀潚灏戝勾闈掓槬鏈熺壒鐐圭殑鍋ュ悍绠$悊",
+          price: 0,
+          features: [
+            "闈掓槬鏈熷仴搴锋暀鑲�",
+            "骞村害鍋ュ悍璇勪及",
+            "蹇冪悊鍋ュ悍鏀寔",
+            "鍋ュ悍椋庨櫓琛屼负骞查",
+            "涓�у寲鍋ュ悍鏂规",
+            "浼樺厛棰勭害妫�鏌ユ湇鍔�",
+          ],
+          applicableAge: "13-18宀�",
+        },
+        {
+          id: 5,
+          name: "鍎跨钀ュ吇涓庣敓闀垮彂鑲插鍊煎寘",
+          description: "閽堝鑲ヨ儢銆佽惀鍏讳笉鑹瓑闂鐨勪笓椤圭鐞�",
+          price: 150,
+          features: [
+            "寰噺鍏冪礌娴嬪畾",
+            "楠ㄥ瘑搴︽娴�",
+            "涓�у寲鑶抽鏂规",
+            "鐢熼暱鍙戣偛涓撻」璇勪及",
+            "杩愬姩澶勬柟鎸囧",
+            "瀹氭湡钀ュ吇鐩戞祴",
+          ],
+          applicableAge: "3-18宀�",
+        },
+
       ],
       taskoptions: [
         // {
@@ -1588,7 +1644,7 @@
   }
 }
 .package-card.active {
-  border-color: #409EFF;
+  border-color: #409eff;
   background-color: #f0f9ff;
 }
 
diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue
index 73e600f..2596f95 100644
--- a/src/views/patient/patient/profile/index.vue
+++ b/src/views/patient/patient/profile/index.vue
@@ -64,36 +64,13 @@
         >
 
         <el-tabs v-model="sontwoactiveName">
-          <!-- <el-tab-pane name="blood"
-            ><span class="mulsz" slot="label"
-              ><i class="el-icon-s-operation"></i> 琛�鍘�</span
-            ></el-tab-pane
-          >
-          <el-tab-pane name="glucose"
-            ><span class="mulsz" slot="label"
-              ><i class="el-icon-odometer"></i>琛�绯�
-            </span></el-tab-pane
-          > -->
+
           <el-tab-pane name="weight"
             ><span class="mulsz" slot="label"
               ><i class="el-icon-s-data"></i>韬暱澶村洿瓒嬪娍
             </span></el-tab-pane
           >
-          <!-- <el-tab-pane name="heartrate"
-            ><span class="mulsz" slot="label"
-              ><i class="el-icon-s-operation"></i>蹇冪巼
-            </span></el-tab-pane
-          >
-          <el-tab-pane name="bloodoxygen"
-            ><span class="mulsz" slot="label"
-              ><i class="el-icon-s-data"></i>琛�姘�
-            </span></el-tab-pane
-          >
-          <el-tab-pane name="animalheat"
-            ><span class="mulsz" slot="label"
-              ><i class="el-icon-s-opportunity"></i>浣撴俯
-            </span></el-tab-pane
-          > -->
+
         </el-tabs>
       </el-tab-pane>
       <el-tab-pane name="serve">
@@ -1020,40 +997,7 @@
     </div>
     <!-- 鍋ュ悍鐩戞祴 -->
     <div class="medical-record" v-show="activeName == 'monitor'">
-      <!-- <div v-show="sontwoactiveName == 'blood'" style="display: flex">
-        <div
-          id="xyeCharts"
-          class="sontwoactiveName"
-          style="width: 880px; height: 560px"
-        ></div>
-        <div style="width: 400px">
-          <el-card class="box-card">
-            <SFtable
-              :currentList="tableDatalist"
-              :tableLabel="tableLabelxy"
-              :center="false"
-              :multiplechoice="false"
-            />
-          </el-card>
-        </div>
-      </div> -->
-      <!-- <div v-show="sontwoactiveName == 'glucose'" style="display: flex">
-        <div
-          id="xteCharts"
-          class="sontwoactiveName"
-          style="width: 880px; height: 560px"
-        ></div>
-        <div style="width: 400px">
-          <el-card class="box-card">
-            <SFtable
-              :currentList="tableDatalist"
-              :tableLabel="tableLabelxt"
-              :center="false"
-              :multiplechoice="false"
-            />
-          </el-card>
-        </div>
-      </div> -->
+
       <div v-show="sontwoactiveName == 'weight'" style="display: flex">
         <div
           id="tzeCharts"
@@ -1075,14 +1019,7 @@
                   <span v-if="!scope.row.editing">{{
                     scope.row.generatedTime
                   }}</span>
-                  <!-- <el-date-picker
-                    v-else
-                    v-model="scope.row.generatedTime"
-                    type="date"
-                    placeholder="閫夋嫨鏃ユ湡"
-                    value-format="yyyy-MM-dd"
-                    size="small"
-                  ></el-date-picker> -->
+
                   <el-date-picker
                     v-else
                     v-model="scope.row.generatedTime"
@@ -1181,57 +1118,7 @@
           </el-card>
         </div>
       </div>
-      <!-- <div v-show="sontwoactiveName == 'heartrate'" style="display: flex">
-        <div
-          id="xleCharts"
-          class="sontwoactiveName"
-          style="width: 880px; height: 560px"
-        ></div>
-        <div style="width: 400px">
-          <el-card class="box-card">
-            <SFtable
-              :currentList="tableDatalist"
-              :tableLabel="tableLabelxl"
-              :center="false"
-              :multiplechoice="false"
-            />
-          </el-card>
-        </div>
-      </div> -->
-      <!-- <div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex">
-        <div
-          id="xueyangeCharts"
-          class="sontwoactiveName"
-          style="width: 880px; height: 560px"
-        ></div>
-        <div style="width: 400px">
-          <el-card class="box-card">
-            <SFtable
-              :currentList="tableDatalist"
-              :tableLabel="tableLabelxueyang"
-              :center="false"
-              :multiplechoice="false"
-            />
-          </el-card>
-        </div>
-      </div> -->
-      <!-- <div v-show="sontwoactiveName == 'animalheat'" style="display: flex">
-        <div
-          id="tweCharts"
-          class="sontwoactiveName"
-          style="width: 880px; height: 560px"
-        ></div>
-        <div style="width: 400px">
-          <el-card class="box-card">
-            <SFtable
-              :currentList="tableDatalist"
-              :tableLabel="tableLabeltw"
-              :center="false"
-              :multiplechoice="false"
-            />
-          </el-card>
-        </div>
-      </div> -->
+
     </div>
     <!-- 绛涙煡鎽樿缂栬緫瀵硅瘽妗� -->
     <el-dialog
@@ -1426,12 +1313,7 @@
           </el-input>
         </el-form-item>
         <el-form-item label="璁板綍鏃ユ湡" prop="generatedTime">
-          <!-- <el-date-picker
-            v-model="borninfoform.generatedTime"
-            type="date"
-            placeholder="閫夋嫨鏃ユ湡"
-          >
-          </el-date-picker> -->
+
           <el-date-picker
             v-model="borninfoform.generatedTime"
             value-format="yyyy-MM-dd HH:mm:ss"
@@ -1587,32 +1469,7 @@
         ],
       },
       record: [
-        {
-          name: "瀹f暀浠诲姟",
-          serviceType: "4",
-          templatename: "绠¢ゲ瀹f暀涓�鏈�",
-          createTime: "2024-11-10",
-          finishtime: "2024-11-12",
-          createBy: "鐜嬫斂",
-          drname: "鍒樻槑",
-          nurseName: "寮犳窇鐞�",
-          excep: "0",
-          deptname: "鍛煎惛绉�",
-          leavehospitaldistrictname: "浜旂梾鍖�",
-        },
-        {
-          name: "闅忚浠诲姟",
-          serviceType: "2",
-          templatename: "蹇冭绠¢殢璁夸竴鏈�",
-          createTime: "2024-11-11",
-          finishtime: "2024-11-14",
-          createBy: "绔犵▼",
-          drname: "鍒樻槑",
-          nurseName: "鏉庝附",
-          excep: "0",
-          deptname: "鍛煎惛绉�",
-          leavehospitaldistrictname: "浜旂梾鍖�",
-        },
+
         // {
         //   name: "闂嵎璋冩煡",
         // },

--
Gitblit v1.9.3