From 98b9fdc80abc60b5e57370328ea51cf06365bab0 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期一, 23 六月 2025 20:31:10 +0800
Subject: [PATCH] 测试完成

---
 src/views/patient/patient/profile/index.vue | 1526 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 1,147 insertions(+), 379 deletions(-)

diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue
index cb19817..44e3e0a 100644
--- a/src/views/patient/patient/profile/index.vue
+++ b/src/views/patient/patient/profile/index.vue
@@ -6,14 +6,27 @@
         <el-col :span="18">
           <div class="headportrait">
             <div class="text-center">
-              <img v-imgError="require('@/assets/common/head.jpg')" src="" />
+              <img
+                v-imgError="require('@/assets/images/shoushuzhudaoyisheng.png')"
+                src=""
+              />
             </div>
-            <div style="margin-left: 10px">鍚村ぇ榫�</div>
-            <div style="margin-left: 10px" class="text-title">鐢�</div>
-            <div style="margin-left: 10px" class="text-title">66宀�</div>
-            <div style="margin-left: 10px" class="text-title">1999.12.18</div>
-            <div style="margin-left: 10px" class="text-title">姹夋棌</div>
-            <div style="margin-left: 10px" class="text-title">娌冲崡淇¢槼</div>
+            <div style="margin-left: 10px">{{ userform.name }}</div>
+            <div style="margin-left: 10px" class="text-title">
+              {{ userform.sex == 1 ? "鐢�" : "濂�" }}
+            </div>
+            <div style="margin-left: 10px" class="text-title">
+              {{ userform.age }}宀�
+            </div>
+            <div style="margin-left: 10px" class="text-title">
+              {{ userform.birthdate }}
+            </div>
+            <div style="margin-left: 10px" class="text-title">
+              {{ userform.nation }}
+            </div>
+            <div style="margin-left: 10px" class="text-title">
+              {{ userform.birthplace }}
+            </div>
           </div></el-col
         >
       </el-row>
@@ -29,21 +42,15 @@
         <span class="mulsz" slot="label"
           ><i class="el-icon-s-management"></i> 鍖荤枟妗f</span
         >
-        <el-tabs v-model="sonactiveName" @tab-click="handleClick">
+        <el-tabs v-model="sonactiveName" @tab-click="handleClickson">
           <el-tab-pane name="outpatient"
-            ><span class="mulsz" slot="label"
-              >闂ㄨ瘖({{ mznumber }})</span
-            ></el-tab-pane
+            ><span class="mulsz" slot="label">闂ㄨ瘖</span></el-tab-pane
           >
           <el-tab-pane name="inhospital"
-            ><span class="mulsz" slot="label"
-              >浣忛櫌({{ zynumber }})
-            </span></el-tab-pane
+            ><span class="mulsz" slot="label">鍦ㄩ櫌 </span></el-tab-pane
           >
           <el-tab-pane name="checkout"
-            ><span class="mulsz" slot="label"
-              >浣撴({{ jynumber }})
-            </span></el-tab-pane
+            ><span class="mulsz" slot="label">鍑洪櫌 </span></el-tab-pane
           >
         </el-tabs>
       </el-tab-pane>
@@ -52,8 +59,8 @@
           ><i class="el-icon-s-data"></i> 鍋ュ悍鐩戞祴</span
         >
 
-        <el-tabs v-model="sontwoactiveName" @tab-click="handleClick">
-          <el-tab-pane name="blood"
+        <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
@@ -62,13 +69,13 @@
             ><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>浣撻噸
+              ><i class="el-icon-s-data"></i>韬珮澶村洿瓒嬪娍
             </span></el-tab-pane
           >
-          <el-tab-pane name="heartrate"
+          <!-- <el-tab-pane name="heartrate"
             ><span class="mulsz" slot="label"
               ><i class="el-icon-s-operation"></i>蹇冪巼
             </span></el-tab-pane
@@ -82,9 +89,9 @@
             ><span class="mulsz" slot="label"
               ><i class="el-icon-s-opportunity"></i>浣撴俯
             </span></el-tab-pane
-          >
-        </el-tabs></el-tab-pane
-      >
+          > -->
+        </el-tabs>
+      </el-tab-pane>
       <el-tab-pane name="serve">
         <span class="mulsz" slot="label"
           ><i class="el-icon-s-custom"></i> 鏈嶅姟璁板綍</span
@@ -95,89 +102,114 @@
     <!-- 鍋ュ悍妗f妯″潡 -->
     <div class="information-content" v-if="activeName == 'health'">
       <div class="top-message">
-        <div class="headline">鍩虹淇℃伅</div>
+        <div class="headlines">
+          <div>鍩虹淇℃伅</div>
+          <el-button type="primary" @click="savefile">淇濆瓨鎮h�呮。妗�</el-button>
+        </div>
         <div class="detailed">
-          <el-row :gutter="20">
-            <el-col :span="12"
-              ><div class="grid-content bg-purple">
-                鎮h�呭鍚嶏細<span class="spanvalue">鐜嬪ぇ缇�</span>
-              </div></el-col
-            >
-            <el-col :span="12"
-              ><div class="grid-content bg-purple">
-                鑱旂郴鐢佃瘽锛�<span class="spanvalue">13803963330</span>
-              </div></el-col
-            >
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="24"
-              ><div class="grid-content bg-purple">
-                鍑虹敓鍦帮細<span class="spanvalue"
-                  >娴欐睙鐪佹澀宸炲競浣欐澀鍖轰綑鏉閬�</span
-                >
-              </div></el-col
-            >
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="24"
-              ><div class="grid-content bg-purple">
-                灞呬綇鍦帮細<span class="spanvalue"
-                  >娴欐睙鐪佹澀宸炲競浣欐澀鍖轰綑鏉閬�</span
-                >
-              </div></el-col
-            >
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="24"
-              ><div class="xinz-inf">
-                <el-tag
-                  :key="tag"
-                  type="success"
-                  v-for="tag in dynamicTags"
-                  closable
-                  :disable-transitions="false"
-                  @close="handleClose(tag)"
-                >
-                  {{ tag }}
-                </el-tag>
-                <el-select
-                  v-model="inputValue"
-                  v-if="inputVisible"
-                  @change="handleInputConfirm"
-                  filterable
-                  placeholder="璇烽�夋嫨"
-                >
-                  <el-option
-                    v-for="item in options"
-                    :key="item.label"
-                    :label="item.label"
-                    :value="item.label"
-                  >
-                  </el-option>
-                </el-select>
+          <el-form
+            ref="userform"
+            :model="userform"
+            :rules="rules"
+            label-width="100px"
+          >
+            <el-row :gutter="20">
+              <el-col :span="12">
+                <el-form-item label="鎮h�呭鍚�" prop="name">
+                  <el-input
+                    v-model="userform.name"
+                    placeholder="璇疯緭鍏ュ鍚�"
+                    maxlength="30"
+                    disabled
+                  ></el-input> </el-form-item
+              ></el-col>
+              <el-col :span="12"
+                ><el-form-item label="鑱旂郴鏂瑰紡" prop="telcode">
+                  <el-input
+                    v-model="userform.telcode"
+                    placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
+                    maxlength="30"
+                  /> </el-form-item
+              ></el-col>
+            </el-row>
+            <el-row :gutter="20">
+              <el-col :span="24">
+                <el-form-item label="鍑虹敓鍦�" prop="birthplace">
+                  <el-input
+                    v-model="userform.birthplace"
+                    placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
+                    maxlength="50"
+                  /> </el-form-item
+              ></el-col>
+            </el-row>
+            <el-row :gutter="20">
+              <el-col :span="24"
+                ><el-form-item label="灞呬綇鍦�" prop="placeOfResidence">
+                  <el-input
+                    v-model="userform.placeOfResidence"
+                    placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
+                    maxlength="50"
+                  /> </el-form-item
+              ></el-col>
+            </el-row>
+            <el-row :gutter="20">
+              <el-col :span="24">
+                <el-form-item label="鏍囩" prop="desc">
+                  <div class="xinz-inf">
+                    <el-tag
+                      :key="tag.tagname"
+                      type="success"
+                      v-for="tag in dynamicTags"
+                      v-if="tag.isoperation != 3"
+                      closable
+                      :disable-transitions="false"
+                      @close="handleClose(tag)"
+                    >
+                      {{ tag.tagname }}
+                    </el-tag>
+                    <el-select
+                      v-if="inputVisible"
+                      v-model="inputValue"
+                      @change="handleInputConfirm"
+                      filterable
+                      remote
+                      :remote-method="remoteMethod"
+                      allow-create
+                      default-first-option
+                      placeholder="璇烽�夋嫨/鏌ヨ"
+                    >
+                      <el-option
+                        v-for="item in options"
+                        :key="item.tagid"
+                        :label="item.tagname"
+                        :value="item.tagname"
+                      >
+                      </el-option>
+                    </el-select>
 
-
-                <el-button
-                  v-else
-                  class="button-new-tag"
-                  size="small"
-                  @click="showInput"
-                  >+ 鏂板鏍囩</el-button
-                >
-              </div></el-col
-            >
-          </el-row>
+                    <el-button
+                      v-else
+                      class="button-new-tag"
+                      size="small"
+                      @click="showInput"
+                      >+ 鏂板鏍囩</el-button
+                    >
+                  </div>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
         </div>
       </div>
       <div class="top-message">
         <div class="headline">鐥呭彶</div>
         <div class="detailed">
-          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+          <el-form :model="form" label-width="100px">
             <el-row>
               <el-col :span="8">
                 <el-form-item label="杩囧線鐤剧梾" prop="name">
                   <el-input
-                    v-model="form.name"
+                    v-model="form.pastIllnesses"
                     placeholder="璇疯緭鍏�"
                     maxlength="30"
                   />
@@ -186,7 +218,7 @@
               <el-col :span="8">
                 <el-form-item label="鑽墿杩囨晱" prop="sex">
                   <el-input
-                    v-model="form.name"
+                    v-model="form.drugAllergy"
                     placeholder="璇疯緭鍏ュ叿浣撹嵂鐗�/鏃�"
                     maxlength="30"
                   />
@@ -195,7 +227,7 @@
               <el-col :span="8">
                 <el-form-item label="瀹舵棌鐥呭彶" prop="age">
                   <el-input
-                    v-model="form.age"
+                    v-model="form.familyHistory"
                     placeholder="璇疯緭鍏ュ叿浣撶柧鐥�/鏃�"
                     maxlength="30"
                   />
@@ -206,7 +238,7 @@
               <el-col :span="8">
                 <el-form-item label="鎵嬫湳鍙�" prop="name">
                   <el-input
-                    v-model="form.name"
+                    v-model="form.surgicalHistory"
                     placeholder="璇疯緭鍏ユ墜鏈�/鏃�"
                     maxlength="30"
                   />
@@ -215,62 +247,62 @@
               <el-col :span="8">
                 <el-form-item label="鐢熻偛鍙�" prop="age">
                   <el-input
-                    v-model="form.age"
+                    v-model="form.reproductiveHistory"
                     placeholder="璇疯緭鍏ヨ儙鏁�/鏃�"
                     maxlength="30"
                   />
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="鏈堢粡鍙�" prop="telcode">
-                  <el-radio-group v-model="form.radio">
-                    <el-radio :label="1">鏈�</el-radio>
-                    <el-radio :label="2">鏃�</el-radio>
+                <el-form-item label="鏈堢粡鍙�" prop="menstrualHistory">
+                  <el-radio-group v-model="form.menstrualHistory">
+                    <el-radio label="1">鏈�</el-radio>
+                    <el-radio label="2">鏃�</el-radio>
                   </el-radio-group>
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row>
               <el-col :span="8">
-                <el-form-item label="鍚哥儫鎯呭喌" prop="iccardtype">
-                  <el-radio-group v-model="form.radio">
-                    <el-radio :label="1">鏈�</el-radio>
-                    <el-radio :label="2">鏃�</el-radio>
+                <el-form-item label="鍚哥儫鎯呭喌" prop="smoking">
+                  <el-radio-group v-model="form.smoking">
+                    <el-radio label="1">鏈�</el-radio>
+                    <el-radio label="2">鏃�</el-radio>
                   </el-radio-group>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="楗厭鎯呭喌" prop="iccardno">
-                  <el-radio-group v-model="form.radios">
-                    <el-radio :label="1">鏈�</el-radio>
-                    <el-radio :label="2">鏃�</el-radio>
+                <el-form-item label="楗厭鎯呭喌" prop="drink">
+                  <el-radio-group v-model="form.drink">
+                    <el-radio label="1">鏈�</el-radio>
+                    <el-radio label="2">鏃�</el-radio>
                   </el-radio-group>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="杩愬姩鎯呭喌" prop="iccardno">
-                  <el-radio-group v-model="form.radiosa">
-                    <el-radio :label="1">鏈�</el-radio>
-                    <el-radio :label="2">鏃�</el-radio>
+                <el-form-item label="杩愬姩鎯呭喌" prop="motion">
+                  <el-radio-group v-model="form.motion">
+                    <el-radio label="1">鏈�</el-radio>
+                    <el-radio label="2">鏃�</el-radio>
                   </el-radio-group>
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row>
               <el-col :span="12">
-                <el-form-item label="楗鎯呭喌" prop="iccardno">
-                  <el-radio-group v-model="form.radiosa">
-                    <el-radio :label="1">澶氬害楗</el-radio>
-                    <el-radio :label="2">姝e父楗</el-radio>
-                    <el-radio :label="2">椋熸涓嶆尟</el-radio>
+                <el-form-item label="楗鎯呭喌" prop="diet">
+                  <el-radio-group v-model="form.diet">
+                    <el-radio label="1">杩囧害楗</el-radio>
+                    <el-radio label="2">姝e父楗</el-radio>
+                    <el-radio label="3">椋熸涓嶆尟</el-radio>
                   </el-radio-group>
                 </el-form-item> </el-col
               ><el-col :span="12">
-                <el-form-item label="蹇冪悊鎯呭喌" prop="iccardno">
-                  <el-radio-group v-model="form.radiosa">
-                    <el-radio :label="1">蹇冩儏鎰夋偊</el-radio>
-                    <el-radio :label="2">杞诲井鐒﹁檻</el-radio>
-                    <el-radio :label="2">鎶戦儊</el-radio>
+                <el-form-item label="蹇冪悊鎯呭喌" prop="psychology">
+                  <el-radio-group v-model="form.psychology">
+                    <el-radio label="1">蹇冩儏鎰夋偊</el-radio>
+                    <el-radio label="2">杞诲井鐒﹁檻</el-radio>
+                    <el-radio label="3">鎶戦儊</el-radio>
                   </el-radio-group>
                 </el-form-item>
               </el-col>
@@ -281,20 +313,22 @@
       <!-- 鑱旂郴鐢佃瘽 -->
       <div class="bottom-message">
         <div class="headline">
-          鍙风爜缁存姢
-          <el-button type="primary" @click="AddanumberVisible = true"
-            >+鏂板</el-button
-          >
+          浜插睘鍙风爜缁存姢<span style="margin-right: 60px">&nbsp;&nbsp;</span>
+          <el-button type="primary" @click="addcompiletb">+鏂板</el-button>
         </div>
         <div class="Table-screen">
-          <el-table :data="tableData" style="width: 100%">
+          <el-table
+            :data="tableData"
+            style="width: 100%"
+            :row-class-name="tableRowClassName"
+          >
             <el-table-column prop="id" label="搴忓彿" width="180">
             </el-table-column>
-            <el-table-column prop="name" label="濮撳悕" width="180">
+            <el-table-column prop="contactname" label="濮撳悕" width="180">
             </el-table-column>
-            <el-table-column prop="phonenumber" label="鑱旂郴鏂瑰紡" width="180">
+            <el-table-column prop="contactway" label="鑱旂郴鏂瑰紡" width="180">
             </el-table-column>
-            <el-table-column prop="concern" label="鍏崇郴"> </el-table-column>
+            <el-table-column prop="relation" label="鍏崇郴"> </el-table-column>
             <el-table-column
               label-class-name="columcz"
               fixed="right"
@@ -302,11 +336,22 @@
               width="300"
             >
               <template slot-scope="scope">
-                <el-button type="success" size="small"
+                <el-button
+                  type="success"
+                  size="small"
+                  @click="defaulttb(scope.row)"
                   >璁句负榛樿鑱旂郴鏂瑰紡</el-button
                 >
-                <el-button type="warning" size="small">缂栬緫</el-button>
-                <el-button type="danger" size="small">鍒犻櫎</el-button>
+                <el-button
+                  @click="compiletb(scope.row)"
+                  type="warning"
+                  size="small"
+                  >缂栬緫</el-button
+                >
+
+                <el-button @click="deltb(scope.row)" type="danger" size="small"
+                  >鍒犻櫎</el-button
+                >
               </template>
             </el-table-column>
           </el-table>
@@ -318,24 +363,83 @@
       <!-- 闂ㄨ瘖 -->
       <div v-if="sonactiveName == 'outpatient'">
         <el-table :data="serviceData" style="width: 100%">
-          <el-table-column prop="daya" label="灏辫瘖鏃ユ湡" width="180">
+          <el-table-column
+            label="灏辫瘖鏃堕棿"
+            align="center"
+            key="createTime"
+            prop="createTime"
+            width="160"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.createTime) }}</span>
+            </template>
           </el-table-column>
-          <el-table-column prop="administrative" label="灏辫瘖绉戝" width="180">
-          </el-table-column>
-          <el-table-column prop="doctor" label="鍖荤敓"> </el-table-column>
-          <el-table-column prop="result" label="鐤剧梾璇婃柇"> </el-table-column>
-          <el-table-column prop="administrative" label="妫�楠�">
-          </el-table-column>
-          <el-table-column prop="administrative" label="妫�鏌�">
-          </el-table-column>
-          <el-table-column prop="administrative" label="鎵嬫湳">
-          </el-table-column>
-          <el-table-column prop="administrative" label="鐢ㄨ嵂">
-          </el-table-column>
-          <el-table-column prop="columcz" label="鍖诲槺" width="200">
-          </el-table-column>
-        </el-table>
 
+          <el-table-column
+            label="闂ㄨ瘖鍙�"
+            align="center"
+            key="patid"
+            prop="patid"
+          />
+          <el-table-column
+            label="濮撳悕"
+            align="center"
+            key="patname"
+            prop="patname"
+          />
+
+          <el-table-column
+            label="鑱旂郴鐢佃瘽"
+            align="center"
+            key="telcode"
+            prop="telcode"
+            width="120"
+          />
+          <el-table-column
+            label="鍏ラ櫌璇婃柇"
+            align="center"
+            key="diagname"
+            prop="diagname"
+            width="190"
+          />
+          <el-table-column
+            label="鍑洪櫌璇婃柇"
+            align="center"
+            key="leavediagname"
+            prop="leavediagname"
+            width="190"
+          />
+
+          <el-table-column
+            label="灏辫瘖绉戝"
+            align="center"
+            key="deptname"
+            prop="deptname"
+            width="120"
+          />
+          <el-table-column
+            label="鎵�鍦ㄧ梾鍖�"
+            align="center"
+            key="leavehospitaldistrictname"
+            prop="leavehospitaldistrictname"
+            width="120"
+          />
+          <!-- <el-table-column
+            label="涓绘不鍖荤敓"
+            align="center"
+            key="drname"
+            prop="drname"
+            width="120"
+          />
+
+          <el-table-column
+            label="璐d换鎶ゅ+"
+            align="center"
+            key="nurseName"
+            prop="nurseName"
+            width="120"
+          /> -->
+        </el-table>
         <pagination
           v-show="total > 0"
           :total="total"
@@ -346,41 +450,155 @@
       </div>
       <!-- 浣忛櫌 -->
       <div v-if="sonactiveName == 'inhospital'">
-        <el-table :data="serviceData" style="width: 100%">
-          <el-table-column prop="godaya" label="鍏ラ櫌鏃ユ湡"> </el-table-column>
-          <el-table-column prop="hospitalname" label="鍑洪櫌鏃堕棿">
-          </el-table-column>
-          <el-table-column prop="administrative" label="鐥呭尯">
-          </el-table-column>
-          <el-table-column prop="result" label="涓绘不鍖诲笀"> </el-table-column>
-          <el-table-column prop="bed" label="绠″簥鎶ゅ+"> </el-table-column>
-          <el-table-column prop="doctor" label="鍑洪櫌鐤剧梾璇婃柇">
-          </el-table-column>
-          <el-table-column prop="today" label="妫�楠�"> </el-table-column>
-          <el-table-column prop="administrative" label="妫�鏌�">
-          </el-table-column>
-          <el-table-column prop="administrative" label="鎵嬫湳">
-          </el-table-column>
-          <el-table-column prop="administrative" label="鐢ㄨ嵂">
-          </el-table-column>
-          <el-table-column prop="columcz" label="鍑洪櫌灏忕粨" width="200">
-          </el-table-column>
+        <el-table :data="serviceDatary" style="width: 100%">
+          <el-table-column
+            label="浣忛櫌鍙�"
+            align="center"
+            key="patno"
+            prop="patno"
+            width="180"
+          />
+          <el-table-column
+            label="濮撳悕"
+            align="center"
+            key="patname"
+            prop="patname"
+          />
+          <el-table-column
+            label="鑱旂郴鐢佃瘽"
+            align="center"
+            key="telcode"
+            prop="telcode"
+            width="120"
+          />
+          <el-table-column
+            label="鍏ラ櫌璇婃柇"
+            align="center"
+            key="diagname"
+            prop="diagname"
+            width="190"
+          />
+          <el-table-column
+            label="鍑洪櫌璇婃柇"
+            align="center"
+            key="leavediagname"
+            prop="leavediagname"
+            width="190"
+          />
+
+          <el-table-column
+            label="灏辫瘖绉戝"
+            align="center"
+            key="deptname"
+            prop="deptname"
+            width="120"
+          />
+          <el-table-column
+            label="鎵�鍦ㄧ梾鍖�"
+            align="center"
+            key="leavehospitaldistrictname"
+            prop="leavehospitaldistrictname"
+            width="120"
+          />
+          <el-table-column
+            label="涓绘不鍖荤敓"
+            align="center"
+            key="drname"
+            prop="drname"
+            width="120"
+          />
+
+          <el-table-column
+            label="璐d换鎶ゅ+"
+            align="center"
+            key="nurseName"
+            prop="nurseName"
+            width="120"
+          />
+          <el-table-column
+            label="搴婁綅鍙�"
+            align="center"
+            key="bedNo"
+            prop="bedNo"
+            width="120"
+          />
         </el-table>
       </div>
-      <!-- 浣撴 -->
+      <!-- 鍑洪櫌 -->
       <div v-if="sonactiveName == 'checkout'">
-        <el-table :data="serviceData" style="width: 100%">
-          <el-table-column prop="godaya" label="浣撴绫诲瀷"> </el-table-column>
-          <el-table-column prop="hospitalname" label="浣撴濂楅鍚嶇О">
-          </el-table-column>
-          <el-table-column prop="result" label="浣撴棰勭害鏃ユ湡">
-          </el-table-column>
-          <el-table-column prop="administrative" label="浣撴椤圭洰">
-          </el-table-column>
-          <el-table-column prop="administrative" label="浣撴鎶ュ憡鏃�">
-          </el-table-column>
-          <el-table-column prop="administrative" label="浣撴鎬绘鎶ュ憡">
-          </el-table-column>
+        <el-table :data="serviceDatacy" style="width: 100%">
+          <el-table-column
+            label="浣忛櫌鍙�"
+            align="center"
+            key="patno"
+            prop="patno"
+            width="120"
+          />
+          <el-table-column
+            label="濮撳悕"
+            align="center"
+            key="patname"
+            prop="patname"
+          />
+          <el-table-column
+            label="鑱旂郴鐢佃瘽"
+            align="center"
+            key="telcode"
+            prop="telcode"
+            width="120"
+          />
+          <el-table-column
+            label="鍏ラ櫌璇婃柇"
+            align="center"
+            key="diagname"
+            prop="diagname"
+            width="190"
+          />
+          <el-table-column
+            label="鍑洪櫌璇婃柇"
+            align="center"
+            key="leavediagname"
+            prop="leavediagname"
+            width="190"
+          />
+
+          <el-table-column
+            label="灏辫瘖绉戝"
+            align="center"
+            key="deptname"
+            prop="deptname"
+            width="120"
+          />
+          <el-table-column
+            label="鎵�鍦ㄧ梾鍖�"
+            align="center"
+            key="leavehospitaldistrictname"
+            prop="leavehospitaldistrictname"
+            width="120"
+          />
+          <el-table-column
+            label="涓绘不鍖荤敓"
+            align="center"
+            key="drname"
+            prop="drname"
+            width="120"
+          />
+
+          <el-table-column
+            label="璐d换鎶ゅ+"
+            align="center"
+            key="nurseName"
+            prop="nurseName"
+            width="120"
+          />
+
+          <el-table-column
+            label="搴婁綅鍙�"
+            align="center"
+            key="bedNo"
+            prop="bedNo"
+            width="120"
+          />
         </el-table>
       </div>
     </div>
@@ -401,23 +619,38 @@
               border-left: 4px solid rgb(190, 65, 134);
             "
           >
-            {{ item.name }}
+            <span v-if="item.serviceType == 2">鍑洪櫌闅忚</span>
+            <span v-if="item.serviceType == 1">鐩戞祴璇勪及</span>
+            <span v-if="item.serviceType == 3">闂ㄨ瘖闅忚</span>
+            <span v-if="item.serviceType == 4">瀹f暀鍏虫��</span>
           </div>
           <el-divider></el-divider>
           <div style="margin-top: 10px">
-            闅忚鐘舵�侊細宸茬粓姝�<span style="color: #2775b6"
-              >锛堢粓姝㈠師鍥狅細鎮h�呯棅鎰堝洖璁跨粨鏉燂紝缁堟鏃堕棿锛�2023-12-18 12:00锛�</span
-            >
+            鏈嶅姟鍚嶇О锛�<span style="color: #2775b6">{{
+              item.templatename
+            }}</span>
           </div>
           <div style="margin-top: 10px">
-            闅忚鍙戦�佹椂闂达細<span style="color: #2775b6">2023-11-23 12:00</span>
+            鍒涘缓鏃堕棿锛�<span style="color: #2775b6">{{ item.createTime }}</span>
           </div>
           <div style="margin-top: 10px">
-            闅忚瀹屾垚鏃堕棿锛�<span style="color: #2775b6">2023-12-18 12:00</span>
+            瀹屾垚鏃堕棿锛�<span style="color: #2775b6">{{ item.finishtime }}</span>
           </div>
           <div style="margin-top: 10px">
-            鐤肩棝绋嬪害锛�<span style="color: #2775b6">涓害</span>
+            <el-row :gutter="20">
+              <el-col :span="12"
+                >绉戝锛�
+                <span style="color: #2775b6">{{ item.deptname }}</span></el-col
+              >
+              <el-col :span="12"
+                >鐥呭尯锛�
+                <span style="color: #2775b6">{{
+                  item.leavehospitaldistrictname
+                }}</span></el-col
+              >
+            </el-row>
           </div>
+
           <div
             style="
               font-size: 20px;
@@ -426,35 +659,39 @@
               border-left: 4px solid rgb(65, 161, 190);
             "
           >
-            浜哄伐闅忚璁板綍
+            浜哄伐璁板綍
           </div>
           <div style="margin-top: 10px">
             <el-row :gutter="20">
               <el-col :span="6"
-                >闅忚鏃ユ湡锛�
-                <span style="color: #2775b6">2023-11-22 11:22</span></el-col
+                >璐熻矗浜猴細
+                <span style="color: #2775b6">{{ item.createBy }}</span></el-col
               >
               <el-col :span="6"
-                >闅忚浜猴細 <span style="color: #2775b6">鍚村皬榫�</span></el-col
+                >涓绘不鍖荤敓锛�
+                <span style="color: #2775b6">{{ item.drname }}</span></el-col
               >
               <el-col :span="6"
-                >鎮h�呴厤鍚堝害锛� <span style="color: #2775b6">楂�</span></el-col
+                >璐d换鎶ゅ+
+                <span style="color: #2775b6">{{ item.nurseName }}</span></el-col
               >
             </el-row>
           </div>
           <div style="margin-top: 10px">
-            闅忚缁撴灉锛� <span style="color: #2775b6">鎮h�呯棅鎰堬紝韬綋鍊嶆</span>
+            缁撴灉鐘舵�侊細
+            <span style="color: #2775b6" v-if="item.excep == 0">鏈嶅姟姝e父</span>
+            <span style="color: #b55e54" v-if="item.excep == 1">寮傚父</span>
           </div>
-          <div style="margin-top: 10px">
-            闅忚澶囨敞锛� <span style="color: #2775b6">鎻愰啋娉ㄦ剰楗鍋ュ悍</span>
-          </div>
+          <!-- <div style="margin-top: 10px">
+            澶囨敞锛�
+            <span style="color: #2775b6">鎻愰啋娉ㄦ剰楗鍋ュ悍</span>
+          </div> -->
         </el-card>
       </div>
     </div>
     <!-- 鍋ュ悍鐩戞祴 -->
     <div class="medical-record" v-show="activeName == 'monitor'">
-      <!-- 琛�鍘嬪浘鏍� -->
-      <div v-show="sontwoactiveName == 'blood'" style="display: flex">
+      <!-- <div v-show="sontwoactiveName == 'blood'" style="display: flex">
         <div
           id="xyeCharts"
           class="sontwoactiveName"
@@ -470,9 +707,8 @@
             />
           </el-card>
         </div>
-      </div>
-      <!-- 琛�绯� -->
-      <div v-show="sontwoactiveName == 'glucose'" style="display: flex">
+      </div> -->
+      <!-- <div v-show="sontwoactiveName == 'glucose'" style="display: flex">
         <div
           id="xteCharts"
           class="sontwoactiveName"
@@ -488,8 +724,7 @@
             />
           </el-card>
         </div>
-      </div>
-      <!-- 浣撻噸 -->
+      </div> -->
       <div v-show="sontwoactiveName == 'weight'" style="display: flex">
         <div
           id="tzeCharts"
@@ -498,17 +733,20 @@
         ></div>
         <div style="width: 400px">
           <el-card class="box-card">
+            <el-button @click="borninfoVisible = true" type="success" round
+              >娣诲姞鏁版嵁</el-button
+            >
             <SFtable
-              :currentList="tableDatalist"
+              :currentList="borninfooptions"
               :tableLabel="tableLabeltz"
+              :serialnumber="false"
               :center="false"
               :multiplechoice="false"
             />
           </el-card>
         </div>
       </div>
-      <!-- 蹇冪巼 -->
-      <div v-show="sontwoactiveName == 'heartrate'" style="display: flex">
+      <!-- <div v-show="sontwoactiveName == 'heartrate'" style="display: flex">
         <div
           id="xleCharts"
           class="sontwoactiveName"
@@ -524,9 +762,8 @@
             />
           </el-card>
         </div>
-      </div>
-      <!-- 琛�姘� -->
-      <div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex">
+      </div> -->
+      <!-- <div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex">
         <div
           id="xueyangeCharts"
           class="sontwoactiveName"
@@ -542,9 +779,8 @@
             />
           </el-card>
         </div>
-      </div>
-      <!-- 浣撴俯 -->
-      <div v-show="sontwoactiveName == 'animalheat'" style="display: flex">
+      </div> -->
+      <!-- <div v-show="sontwoactiveName == 'animalheat'" style="display: flex">
         <div
           id="tweCharts"
           class="sontwoactiveName"
@@ -560,24 +796,66 @@
             />
           </el-card>
         </div>
-      </div>
+      </div> -->
     </div>
 
-    <el-dialog title="鏂板鑱旂郴鏂瑰紡" :visible.sync="AddanumberVisible">
+    <el-dialog :title="titletb" :visible.sync="AddanumberVisible">
       <el-form :model="numberform" label-width="100px">
         <el-form-item label="濮撳悕">
-          <el-input v-model="numberform.name"></el-input>
+          <el-input v-model="numberform.contactname"></el-input>
         </el-form-item>
         <el-form-item label="鑱旂郴鐢佃瘽">
-          <el-input v-model="numberform.name"></el-input>
+          <el-input v-model="numberform.telcode"></el-input>
         </el-form-item>
         <el-form-item label="鍏崇郴">
-          <el-input v-model="numberform.name"></el-input>
+          <el-input v-model="numberform.relation"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="AddanumberVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="Addanumber">纭� 瀹�</el-button>
+        <el-button type="primary" @click="archivecontact">纭� 瀹�</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="鏂扮敓鍎挎暟鎹柊澧�" :visible.sync="borninfoVisible">
+      <el-form
+        :rules="borninforules"
+        ref="borninfoform"
+        :model="borninfoform"
+        label-width="120px"
+      >
+        <!-- 韬珮 -->
+        <el-form-item label="韬珮(cm)" prop="height">
+          <el-input
+            v-model.number="borninfoform.height"
+            autocomplete="off"
+            placeholder="璇疯緭鍏ヨ韩楂橈紙30-120cm锛�"
+          >
+          </el-input>
+        </el-form-item>
+
+        <!-- 澶村洿 -->
+        <el-form-item label="澶村洿(cm)" prop="headCir">
+          <el-input
+            v-model.number="borninfoform.headCir"
+            autocomplete="off"
+            placeholder="璇疯緭鍏ュご鍥达紙20-60cm锛�"
+          >
+          </el-input>
+        </el-form-item>
+
+        <!-- 鑳庨緞 -->
+        <el-form-item label="鑳庨緞锛堝懆锛�" prop="age">
+          <el-input
+            v-model.number="borninfoform.age"
+            autocomplete="off"
+            placeholder="璇疯緭鍏ヨ儙榫�"
+          >
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="borninfoVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="newborninfoadd">纭� 瀹�</el-button>
       </div>
     </el-dialog>
   </div>
@@ -589,16 +867,35 @@
 import resetPwd from "./resetPwd";
 import * as echarts from "echarts";
 import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import { listtag } from "@/api/system/label";
+import {
+  messagelistpatient,
+  addmedicalhistory,
+  getmedicalhistory,
+  editmedicalhistory,
+  addcontactinformation,
+  editcontactinformation,
+  getcontactinformation,
+  delcontactinformation,
+  listcontactinformation,
+  alterpatient,
+  Patientclinic,
+} from "@/api/patient/homepage";
 
-import { getUserProfile } from "@/api/system/user";
-import { listJob } from "@/api/monitor/job"; //鑾峰彇鍒楄〃鎺ュ彛寰呭畾
+import { getsearchrResults, getTaskservelist } from "@/api/AiCentre/index";
+import {
+  listPatouthosp,
+  newborninfoadd,
+  newborninfolist,
+} from "@/api/smartor/patouthosp";
+import { listpatient } from "@/api/patient/record";
 
 export default {
   name: "Profile",
   components: { userAvatar, userInfo, resetPwd, SFtable },
   data() {
     return {
-      user: {},
+      userform: {},
       roleGroup: {},
       postGroup: {},
       form: {},
@@ -609,22 +906,100 @@
       tjnumber: 12,
       yynumber: 12,
       total: 0, // 鎬绘潯鏁�
+      borninfoVisible: false,
+      titletb: "鏂板鑱旂郴鏂瑰紡",
       activeTab: "userinfo",
+      id: "",
+      loading: false,
       activeName: "health", //涓�绫诲鑸�
-      sonactiveName: "outpatient", //鍋ュ悍鐩戞祴瀵艰埅
-      sontwoactiveName: "blood", //鍖荤枟妗f瀵艰埅
-      dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"],
+      sonactiveName: "inhospital", //鍋ュ悍鐩戞祴瀵艰埅
+      sontwoactiveName: "weight", //鍖荤枟妗f瀵艰埅
+      dynamicTags: [],
+      borninforules: {
+        height: [
+          { required: true, message: "韬珮涓嶈兘涓虹┖", trigger: "blur" },
+          {
+            type: "number",
+            message: "蹇呴』涓烘暟瀛楀��",
+            trigger: "blur",
+          },
+          {
+            validator: (rule, value, callback) => {
+              // 鏂扮敓鍎胯韩楂樹竴鑸寖鍥达細30-120cm
+              if (value < 30 || value > 120) {
+                callback(new Error("璇疯緭鍏�30-120cm涔嬮棿鐨勫悎鐞嗚韩楂樺��"));
+              } else if (!/^[0-9]+(\.[0-9]{1})?$/.test(value)) {
+                callback(new Error("鏈�澶氫繚鐣欎竴浣嶅皬鏁�"));
+              } else {
+                callback();
+              }
+            },
+            trigger: "blur",
+          },
+        ],
+        headCir: [
+          { required: true, message: "澶村洿涓嶈兘涓虹┖", trigger: "blur" },
+          { type: "number", message: "蹇呴』涓烘暟瀛楀��" },
+          {
+            validator: (rule, value, callback) => {
+              // 鏂扮敓鍎垮ご鍥翠竴鑸寖鍥达細20-60cm
+              if (value < 20 || value > 60) {
+                callback(new Error("璇疯緭鍏�20-60cm涔嬮棿鐨勫悎鐞嗗ご鍥村��"));
+              } else {
+                callback();
+              }
+            },
+            trigger: "blur",
+          },
+        ],
+        age: [
+          { required: true, message: "鑳庨緞涓嶈兘涓虹┖", trigger: "blur" },
+          { type: "integer", message: "蹇呴』涓烘暣鏁板懆鏁�" },
+          {
+            validator: (rule, value, callback) => {
+              // 妫�鏌ユ槸鍚﹀凡瀛樺湪璇ュ懆鏁版暟鎹�
+              if (this.checkAgeExists(value)) {
+                callback(new Error("璇ュ懆鏁版暟鎹凡瀛樺湪锛岃鍕块噸澶嶆坊鍔�"));
+              } else {
+                callback();
+              }
+            },
+            trigger: "blur",
+          },
+        ],
+      },
       record: [
         {
           name: "瀹f暀浠诲姟",
+          serviceType: "4",
+          templatename: "绠¢ゲ瀹f暀涓�鏈�",
+          createTime: "2024-11-10",
+          finishtime: "2024-11-12",
+          createBy: "鐜嬫斂",
+          drname: "鍒樻槑",
+          nurseName: "寮犳窇鐞�",
+          excep: "0",
+          deptname: "鍛煎惛绉�",
+          leavehospitaldistrictname: "浜旂梾鍖�",
         },
         {
-          name: "閫氱煡浠诲姟",
+          name: "闅忚浠诲姟",
+          serviceType: "2",
+          templatename: "蹇冭绠¢殢璁夸竴鏈�",
+          createTime: "2024-11-11",
+          finishtime: "2024-11-14",
+          createBy: "绔犵▼",
+          drname: "鍒樻槑",
+          nurseName: "鏉庝附",
+          excep: "0",
+          deptname: "鍛煎惛绉�",
+          leavehospitaldistrictname: "浜旂梾鍖�",
         },
-        {
-          name: "闂嵎璋冩煡",
-        },
+        // {
+        //   name: "闂嵎璋冩煡",
+        // },
       ],
+      borninfoform: {},
       inputVisible: false,
       AddanumberVisible: false,
       inputValue: "",
@@ -640,28 +1015,7 @@
       echartdom: {},
       xtechartdom: {},
       tzechartdom: {},
-      tableData: [
-        {
-          date: "2016-05-02",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�",
-        },
-        {
-          date: "2016-05-04",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�",
-        },
-        {
-          date: "2016-05-01",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�",
-        },
-        {
-          date: "2016-05-03",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�",
-        },
-      ],
+      tableData: [],
       tableDatalist: [
         {
           id: 12,
@@ -682,15 +1036,9 @@
           address: "89",
         },
       ],
-      serviceData: [
-        {
-          daya: "2023-12-12",
-          hospitalname: "鍗忓拰",
-          result: "闊у甫鎷変激",
-          administrative: "楠ㄧ",
-          doctor: "鍚村ぇ榫�",
-        },
-      ],
+      serviceData: [],
+      serviceDatary: [],
+      serviceDatacy: [],
       options: [
         {
           value: "1",
@@ -709,6 +1057,7 @@
           label: "浣撴",
         },
       ],
+      borninfooptions: [],
       tableLabelxy: [
         { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
         { label: "鏀剁缉鍘�", width: "", prop: "sex" },
@@ -720,10 +1069,9 @@
         { label: "鑸掑紶鍘�", width: "", prop: "age" },
       ],
       tableLabeltz: [
-        { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
-        { label: "韬珮", width: "", prop: "sex" },
-        { label: "浣撻噸", width: "", prop: "age" },
-        { label: "BMI鎸囨暟", width: "", prop: "update_by" },
+        { label: "璐d换鍖荤敓", width: "", prop: "doctor" },
+        { label: "韬珮", width: "", prop: "height" },
+        { label: "澶村洿", width: "", prop: "headCir" },
       ],
       tableLabelxl: [
         { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
@@ -737,59 +1085,365 @@
         { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
         { label: "浣撴俯", width: "", prop: "sex" },
       ],
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        name: [
+          { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+          {
+            min: 2,
+            max: 20,
+            message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
+            trigger: "blur",
+          },
+        ],
+
+        sex: [{ required: true, message: "鎬у埆涓嶈兘涓虹┖", trigger: "blur" }],
+        age: [{ required: true, message: "骞撮緞涓嶈兘涓虹┖", trigger: "blur" }],
+        nation: [{ required: true, message: "姘戞棌涓嶈兘涓虹┖", trigger: "blur" }],
+        telcode: [
+          { required: true, message: "鑱旂郴鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" },
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
+            trigger: "blur",
+          },
+        ],
+        idcardtype: [
+          { required: true, message: "璇佷欢绫诲瀷涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        idcardno: [
+          { required: true, message: "璇佷欢鍙疯兘涓虹┖", trigger: "blur" },
+        ],
+        placeOfResidence: [
+          { required: true, message: "灞呬綇鍦颁笉鑳戒负绌�", trigger: "blur" },
+        ],
+      },
     };
   },
   created() {
-    this.$nextTick(function () {
-      this.echartdom = document.getElementById("xyeCharts");
-      this.xtechartdom = document.getElementById("xteCharts");
-      this.tzechartdom = document.getElementById("tzeCharts");
-      this.xlechartdom = document.getElementById("xleCharts");
-      this.xueyangechartdom = document.getElementById("xueyangeCharts");
-      this.twechartdom = document.getElementById("tweCharts");
-
-      this.echartsInit();
-      this.xtechartsInit();
-      this.tzechartsInit();
-      this.xlechartsInit();
-      this.xueyangechartsInit();
-      this.twechartsInit();
-    });
-    this.getList();
+    this.id = this.$route.query.id;
+    this.getuserinfo();
+    this.gettabList();
   },
-  methods() {},
 
   methods: {
-    // 鏌ヨ鍒楄〃
-    getList() {
+    // 鏌ヨ鍖荤枟妗f鍚勫垪琛ㄤ俊鎭�
+    getList(type) {
       this.loading = true;
-      listJob(this.queryParams).then((response) => {
-        this.jobList = 1;
-        this.total = 1;
-        this.loading = false;
+      if (type == 0) {
+        // 闂ㄨ瘖璁板綍
+        listPatouthosp({ patid: this.id }).then((response) => {
+          if (response.code == 200) {
+            // this.serviceData = response.rows;
+            this.serviceData = [];
+          }
+        });
+      } else if (type == 1) {
+        listpatient({ patid: this.id, cry: 0 }).then((response) => {
+          if (response.code == 200) {
+            this.serviceDatary = response.rows;
+          }
+        });
+      } else if (type == 2) {
+        listpatient({ patid: this.id, cry: 1 }).then((response) => {
+          if (response.code == 200) {
+            this.serviceDatacy = response.rows;
+            console.log(this.serviceDatacy);
+            this.$forceUpdate();
+          }
+        });
+      }
+    },
+    checkAgeExists(newAge) {
+      // 鍋囪宸叉湁鏁版嵁瀛樺偍鍦� this.existingData 涓�
+      return this.borninfooptions.some((item) => item.age === parseInt(newAge));
+    },
+    getcontactlist() {
+      listcontactinformation({ patid: this.id }).then((response) => {
+        this.tableData = response.rows;
       });
     },
+    processElement(element) {
+      return { ...element, isoperation: null };
+    },
+    // 鑾峰彇鍩虹淇℃伅
+    getuserinfo() {
+      const queryParams = {
+        pid: Number(this.id),
+        allhosp: "0",
+        pageNum: 1,
+      };
+      // 鎮h�呭熀纭�淇℃伅
+      messagelistpatient(queryParams).then((response) => {
+        this.userform = response.rows[0];
+        // this.dynamicTags = response.rows[0].tagList;
+        this.dynamicTags = response.rows[0].tagList.map(this.processElement);
+        console.log(this.dynamicTags);
+      });
+      // 鐥呭彶淇℃伅
+      getmedicalhistory({ pid: this.id }).then((res) => {
+        if (res.code == 200 && res.rows[0]) {
+          this.form = res.rows[0];
+        }
+      });
+      // 鑱旂郴淇℃伅
+      this.getcontactlist();
+    },
+    // 淇濆瓨鎮h�呮。妗�
+    savefile() {
+      this.$refs["userform"].validate((valid) => {
+        if (valid) {
+          this.userform.isoperation = 2;
+          this.userform.tagList = this.dynamicTags;
+          alterpatient(this.userform).then((res) => {
+            if (res.code == 200) {
+              this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
+            } else {
+              this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
+            }
+          });
+          // 鐥呭彶
+          this.medicalhistory();
+        }
+      });
+    },
+    // 鐥呭彶
+    medicalhistory() {
+      if (this.form.id) {
+        editmedicalhistory(this.form).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("鐥呭彶淇濆瓨鎴愬姛");
+          } else {
+            this.$modal.msgError("鐥呭彶淇敼澶辫触");
+          }
+        });
+      } else {
+        this.form.pid = this.id;
+        addmedicalhistory(this.form).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("鐥呭彶淇濆瓨鎴愬姛");
+          } else {
+            this.$modal.msgError("鐥呭彶淇敼澶辫触");
+          }
+        });
+      }
+    },
+    // 鑱旂郴鏂瑰紡---------------
+    archivecontact() {
+      if (this.numberform.id) {
+        editcontactinformation(this.numberform).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("鑱旂郴鏂瑰紡淇敼鎴愬姛");
+            this.getcontactlist();
+            this.AddanumberVisible = false;
+          } else {
+            this.$modal.msgError("鑱旂郴鏂瑰紡淇敼澶辫触");
+          }
+        });
+      } else {
+        this.numberform.patid = this.id;
+        addcontactinformation(this.numberform).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("鑱旂郴鏂瑰紡鏂板鎴愬姛");
+            this.getcontactlist();
+            this.AddanumberVisible = false;
+          } else {
+            this.$modal.msgError("鑱旂郴鏂瑰紡鏂板澶辫触");
+          }
+        });
+      }
+      this.numberform = {};
+    },
+    deltb(row) {
+      this.$modal
+        .confirm("鏄惁纭鍒犻櫎璇ユ暟鎹」锛�")
+        .then(() => {
+          if (row.id) {
+            delcontactinformation(row.id).then((res) => {
+              if (res.code == 200) {
+                this.$modal.msgSuccess("鑱旂郴鏂瑰紡鍒犻櫎鎴愬姛");
+                this.getcontactlist();
+              } else {
+                this.$modal.msgError("鑱旂郴鏂瑰紡鍒犻櫎澶辫触");
+              }
+            });
+          } else {
+            let index = this.tableData.indexOf(obj);
+            this.tableData.splice(index, 1);
+          }
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    addcompiletb() {
+      this.titletb = "鏂板鑱旂郴鏂瑰紡";
+      this.AddanumberVisible = true;
+    },
+    compiletb(row) {
+      this.numberform = row;
+      this.titletb = "淇敼鑱旂郴鏂瑰紡";
+      this.AddanumberVisible = true;
+    },
+    defaulttb(row) {
+      this.$modal
+        .confirm("鏄惁纭璁剧疆璇ユ暟鎹」涓洪粯璁よ仈绯讳汉锛�")
+        .then(() => {
+          this.tableData.forEach((obj, index) => {
+            if (obj === row) {
+              obj.isdefault = 1;
+              this.numberform = obj;
+              this.archivecontact();
+            } else if (obj.isdefault == 1) {
+              obj.isdefault = 0;
+              this.numberform = obj;
+              this.archivecontact();
+            } else {
+              obj.isdefault = 0;
+            }
+          });
+          this.$modal.msgSuccess("璁剧疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (row.isdefault == "1") {
+        return "warning-row";
+      }
+      return "";
+    },
+    // tab鍒囨崲
     handleClick(tab, event) {
-      console.log(tab, event);
+      if (tab.index == "1") {
+        this.getList(1);
+      } else if (tab.index == "2") {
+        this.newbornList();
+      } else if (tab.index == "3") {
+        this.handleClickfw();
+      }
+    },
+    handleClickson(tab, event) {
+      console.log(tab, "son");
+      this.getList(tab.index);
+    },
+    // 鏌ヨ鏈嶅姟璁板綍
+    handleClickfw() {
+      getTaskservelist({
+        patid: this.id,
+      }).then((res) => {
+        if (res.code == 200) {
+          this.record = res.rows[0].serviceSubtaskList;
+        }
+      });
     },
     // 鑱旂郴鏂瑰紡鏂板
     Addanumber() {},
+    // 鏍囩--------------------------
+    /** 鏌ヨ鏍囩鍒楄〃 */
+    gettabList() {
+      const tagqueryParams = {
+        pageNum: 1,
+        pageSize: 10000,
+        tagcategoryid: "0",
+      };
+      listtag(tagqueryParams).then((response) => {
+        this.options = response.rows;
+
+        console.log(this.options, "鏍囩");
+      });
+    },
+    newcharts() {
+      this.$nextTick(function () {
+        // this.echartdom = document.getElementById("xyeCharts");
+        // this.xtechartdom = document.getElementById("xteCharts");
+        this.tzechartdom = document.getElementById("tzeCharts");
+        // this.xlechartdom = document.getElementById("xleCharts");
+        // this.xueyangechartdom = document.getElementById("xueyangeCharts");
+        // this.twechartdom = document.getElementById("tweCharts");
+
+        // this.echartsInit();
+        // this.xtechartsInit();
+        this.tzechartsInit();
+        // this.xlechartsInit();
+        // this.xueyangechartsInit();
+        // this.twechartsInit();
+      });
+    },
+
+    // 淇濆瓨鎸囨爣鏁版嵁
+    newborninfoadd() {
+      this.$refs["borninfoform"].validate((valid) => {
+        if (valid) {
+          this.borninfoform.patId = this.id;
+
+          newborninfoadd(this.borninfoform).then((res) => {
+            if (res.code == 200) {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.newbornList();
+              this.borninfoVisible = false;
+            } else {
+              this.$modal.msgError("鏂板澶辫触");
+              this.newbornList();
+              this.borninfoVisible = false;
+            }
+          });
+        }
+      });
+    },
+    remoteMethod(value) {
+      console.log("瑙﹀彂");
+
+      const illnessqueryParams = {
+        pageNum: 1,
+        pageSize: 100,
+        tagname: value,
+        tagcategoryid: "0",
+      };
+      this.loading = true;
+      setTimeout(() => {
+        this.loading = false;
+        listtag(illnessqueryParams).then((response) => {
+          this.options = response.rows;
+        });
+      }, 200);
+    },
     handleClose(tag) {
-      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+      const lindex = this.dynamicTags.indexOf(tag);
+      // this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+      this.dynamicTags[lindex].isoperation = 3;
     },
 
     showInput() {
       this.inputVisible = true;
-      this.$nextTick((_) => {
-        this.$refs.saveTagInput.$refs.input.focus();
-      });
+      console.log("灞曠ず");
     },
 
     handleInputConfirm() {
-      let inputValue = this.inputValue;
-      if (inputValue) {
-        this.dynamicTags.push(inputValue);
+      let tagvalue = {};
+      let tagname = this.inputValue;
+      if (tagname) {
+        listtag({
+          pageNum: 1,
+          pageSize: 1000,
+          tagcategoryid: "0",
+          tagname: tagname,
+        }).then((res) => {
+          if (res.rows[0]) {
+            tagvalue = res.rows[0];
+            tagvalue.isoperation = 1;
+          } else {
+            tagvalue = {
+              tagname: tagname,
+              isoperation: 1,
+            };
+          }
+          console.log(tagvalue);
+          // this.userform.tagList.push(tagvalue);
+          this.dynamicTags.push(tagvalue);
+          console.log(this.userform.tagList);
+          console.log(this.dynamicTags);
+        });
       }
+      console.log("鍏充簡");
       this.inputVisible = false;
       this.inputValue = "";
     },
@@ -870,10 +1524,8 @@
     // 琛�绯栧浘琛�
     xtechartsInit() {
       // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
-      // console.log(echarts);
-      console.log(this.xtechartdom);
+
       var myxyChart = echarts.init(this.xtechartdom);
-      console.log(myxyChart);
       const data = [
         ["2000-06-05", 116],
         ["2000-06-06", 129],
@@ -964,74 +1616,184 @@
           },
         ],
       };
-      console.log("ss");
       // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
       myxyChart.setOption(option);
     },
-    // 浣撻噸鍥捐〃
     tzechartsInit() {
-      // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
-      console.log(echarts);
-      console.log(this.tzechartdom);
-      var myxyChart = echarts.init(this.tzechartdom);
-      var option = {
-        title: {
-          text: "浣撻噸鎸囨爣鍥�",
-        },
-        tooltip: {
-          trigger: "axis",
-        },
-        legend: {
-          data: ["韬珮", "浣撻噸", "BMI鎸囨暟"],
-        },
-        grid: {
-          left: "3%",
-          right: "4%",
-          bottom: "3%",
-          containLabel: true,
-        },
-        toolbox: {
-          feature: {
-            saveAsImage: {},
-          },
-        },
-        xAxis: {
-          type: "category",
-          boundaryGap: false,
-          data: ["涓�鏈�", "浜屾湀", "涓夋湀", "鍥涙湀", "浜旀湀", "鍏湀", "涓冩湀"],
-        },
-        yAxis: {
-          type: "value",
-        },
-        series: [
-          {
-            name: "韬珮",
-            type: "line",
-            stack: "Total",
-            data: [120, 132, 101, 134, 90, 230, 210],
-          },
-          {
-            name: "浣撻噸",
-            type: "line",
-            stack: "Total",
-            data: [220, 182, 191, 234, 290, 330, 310],
-          },
+      // 鑾峰彇鏁版嵁闆嗗悎
+      this.newbornList()
+        .then(() => {
+          // 妫�鏌ユ暟鎹湁鏁堟��
+          if (!this.borninfooptions || this.borninfooptions.length === 0) {
+            console.warn("娌℃湁鍙敤鐨勬柊鐢熷効鏁版嵁");
+            return;
+          }
+          // 鎵惧嚭鏈�澶х殑age鍊硷紙纭畾X杞磋寖鍥达級
+          const maxAge = Math.max(
+            ...this.borninfooptions.map((item) => parseInt(item.age) || 0)
+          );
+          if (maxAge <= 0) {
+            console.error("鏃犳晥鐨勫懆鏁版暟鎹�");
+            return;
+          }
 
-          {
-            name: "BMI鎸囨暟",
-            type: "line",
-            stack: "Total",
-            data: [320, 332, 301, 334, 390, 330, 320],
-          },
-        ],
-      };
-      // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
-      myxyChart.setOption(option);
+          // 鍔ㄦ�佺敓鎴恱Axis鏁版嵁锛堜粠1鍛ㄥ埌鏈�澶у懆锛�
+          const xAxisData = Array.from(
+            { length: maxAge },
+            (_, i) => `${i + 1}鍛╜
+          );
+
+          // 鍒濆鍖栨暟鎹暟缁�
+          const heightData = Array(maxAge).fill(null);
+          const headCirData = Array(maxAge).fill(null);
+
+          // 閬嶅巻鎵�鏈夋暟鎹偣锛屽~鍏呭埌瀵瑰簲浣嶇疆
+          this.borninfooptions.forEach((item) => {
+            try {
+              const age = parseInt(item.age);
+              const height = parseFloat(item.height);
+              const headCir = parseFloat(item.headCir);
+
+              // 纭繚鏁版嵁鏈夋晥涓斿懆鏁板湪鑼冨洿鍐�
+              if (age > 0 && age <= maxAge) {
+                const weekIndex = age - 1;
+                if (!isNaN(height)) heightData[weekIndex] = height;
+                if (!isNaN(headCir)) headCirData[weekIndex] = headCir;
+              }
+            } catch (e) {
+              console.error("鏁版嵁澶勭悊閿欒:", e);
+            }
+          });
+
+          // 鑾峰彇鎮h�呭鍚嶏紙浣跨敤绗竴鏉℃湁鏁堟暟鎹級
+          const patientName = this.borninfooptions[0]?.name || "鏈煡";
+
+          // 鍒濆鍖栧浘琛�
+          const myxyChart = echarts.init(this.tzechartdom);
+          const option = {
+            title: {
+              text: `${patientName}鐢熼暱鍙戣偛鎸囨爣鍥綻,
+              left: "center",
+            },
+            tooltip: {
+              trigger: "axis",
+              formatter: function (params) {
+                let result = params[0].axisValue + "<br/>";
+                params.forEach((item) => {
+                  const value = item.value !== null ? item.value : "鏆傛棤鏁版嵁";
+                  result += `${item.marker} ${item.seriesName}: ${value}<br/>`;
+                });
+                return result;
+              },
+            },
+            legend: {
+              data: ["韬珮(cm)", "澶村洿(cm)"],
+              bottom: 10,
+            },
+            grid: {
+              left: "3%",
+              right: "4%",
+              bottom: "15%", // 涓哄浘渚嬬暀鍑虹┖闂�
+              containLabel: true,
+            },
+            toolbox: {
+              feature: {
+                saveAsImage: {
+                  title: "淇濆瓨鍥剧墖",
+                  pixelRatio: 2,
+                },
+                dataView: {
+                  title: "鏁版嵁瑙嗗浘",
+                  readOnly: true,
+                },
+              },
+              right: 20,
+            },
+            xAxis: {
+              type: "category",
+              boundaryGap: false,
+              data: xAxisData,
+              axisLabel: {
+                interval: 0, // 鏄剧ず鎵�鏈夋爣绛�
+                rotate: 30, // 鏍囩鏃嬭浆闃叉閲嶅彔
+              },
+            },
+            yAxis: {
+              type: "value",
+              axisLabel: {
+                formatter: "{value} cm",
+              },
+            },
+            series: [
+              {
+                name: "韬珮",
+                type: "line",
+                data: heightData,
+                symbol: "circle",
+                symbolSize: 8,
+                itemStyle: {
+                  color: "#5470C6",
+                },
+                lineStyle: {
+                  width: 3,
+                },
+                connectNulls: true, // 杩炴帴绌哄��
+              },
+              {
+                name: "澶村洿",
+                type: "line",
+                data: headCirData,
+                symbol: "circle",
+                symbolSize: 8,
+                itemStyle: {
+                  color: "#91CC75",
+                },
+                lineStyle: {
+                  width: 3,
+                },
+                connectNulls: true, // 杩炴帴绌哄��
+              },
+            ],
+            animationDuration: 1000, // 鍔ㄧ敾鏃堕暱
+          };
+
+          // 浣跨敤閰嶇疆椤规樉绀哄浘琛�
+          myxyChart.setOption(option);
+
+          // 绐楀彛澶у皬鍙樺寲鏃堕噸鏂拌皟鏁村浘琛ㄥぇ灏�
+          const resizeHandler = () => myxyChart.resize();
+          window.addEventListener("resize", resizeHandler);
+
+          // 鍦ㄧ粍浠堕攢姣佹椂绉婚櫎浜嬩欢鐩戝惉锛堝鏋滄槸Vue/React缁勪欢锛�
+          this.$once("hook:beforeDestroy", () => {
+            window.removeEventListener("resize", resizeHandler);
+            myxyChart.dispose();
+          });
+        })
+        .catch((error) => {
+          console.error("鍔犺浇鏁版嵁澶辫触:", error);
+        });
+    },
+
+    // 鑾峰彇鏂扮敓鍎挎暟鎹�
+    newbornList() {
+      return newborninfolist({ patId: this.id })
+        .then((response) => {
+          this.borninfooptions = response.rows || [];
+
+          this.newcharts();
+          console.log("鍔犺浇鐨勬柊鐢熷効鏁版嵁:", this.borninfooptions);
+          return Promise.resolve();
+        })
+        .catch((error) => {
+          console.error("璇锋眰鏁版嵁澶辫触:", error);
+          this.borninfooptions = [];
+          return Promise.reject(error);
+        });
     },
     // 蹇冪巼
     xlechartsInit() {
       var myxyChart = echarts.init(this.xlechartdom);
-      console.log(myxyChart);
       const data = [
         ["2000-06-05", 116],
         ["2000-06-06", 129],
@@ -1104,7 +1866,6 @@
           },
         ],
       };
-      console.log("ss");
       // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
       myxyChart.setOption(option);
     },
@@ -1176,14 +1937,13 @@
                 },
                 {
                   offset: 1,
-                  color: "#c4d7d6"
+                  color: "#c4d7d6",
                 },
               ]),
             },
           },
         ],
       };
-      console.log("ss");
       // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
       myxyChart.setOption(option);
     },
@@ -1195,12 +1955,12 @@
         ["2000-06-05", 36.8],
         ["2000-06-06", 36.2],
         ["2000-06-07", 37.8],
-        ["2000-06-08",37.8],
-        ["2000-06-09",37.2],
-        ["2000-06-10",36.2],
-        ["2000-06-11",37.8],
-        ["2000-06-12",36.9],
-        ["2000-06-13",36.8],
+        ["2000-06-08", 37.8],
+        ["2000-06-09", 37.2],
+        ["2000-06-10", 36.2],
+        ["2000-06-11", 37.8],
+        ["2000-06-12", 36.9],
+        ["2000-06-13", 36.8],
         ["2000-06-14", 36.4],
         ["2000-06-15", 37.1],
         ["2000-06-16", 36.9],
@@ -1210,7 +1970,7 @@
         ["2000-06-20", 36.6],
         ["2000-06-21", 36.8],
         ["2000-06-22", 36.2],
-        ["2000-06-23",37.8],
+        ["2000-06-23", 37.8],
       ];
       const dateList = data.map(function (item) {
         return item[0];
@@ -1231,7 +1991,7 @@
             max: 400,
           },
         ],
-    
+
         tooltip: {
           trigger: "axis",
         },
@@ -1249,7 +2009,6 @@
           },
         ],
       };
-      console.log("ss");
       // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
       myxyChart.setOption(option);
     },
@@ -1261,7 +2020,7 @@
 .personages {
   height: 88px;
   width: 100%;
-  background-color: #2486b9;
+  background-color: #5e86f9;
   border-radius: 5px;
   padding: 20px;
   margin-bottom: 10px;
@@ -1290,7 +2049,7 @@
 }
 .xinz-inf {
   font-size: 18px;
-  white-space: nowrap;
+  // white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
 
@@ -1351,6 +2110,15 @@
     margin-bottom: 10px;
     border-left: 8px solid rgb(65, 161, 190);
   }
+  .headlines {
+    font-size: 25px;
+    display: flex;
+    width: 88%;
+    justify-content: space-between;
+    padding-left: 5px;
+    margin-bottom: 10px;
+    border-left: 8px solid rgb(65, 161, 190);
+  }
   .bottom-message {
     margin-bottom: 25px;
     margin-left: 100px;
@@ -1376,7 +2144,7 @@
 .sontwoactiveName {
   margin: 0 auto;
 }
-// .columcz {
-//   align-items: center!important;
-// }
+::v-deep.el-table .warning-row {
+  background: oldlace;
+}
 </style>

--
Gitblit v1.9.3