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 | 1507 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 1,138 insertions(+), 369 deletions(-) diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue index 596664c..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,88 +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" /> @@ -185,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" /> @@ -194,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" /> @@ -205,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" /> @@ -214,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="idtype"> - <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="idno"> - <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="idno"> - <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="idno"> - <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="idno"> - <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> @@ -280,20 +313,22 @@ <!-- 鑱旂郴鐢佃瘽 --> <div class="bottom-message"> <div class="headline"> - 鍙风爜缁存姢 - <el-button type="primary" @click="AddanumberVisible = true" - >+鏂板</el-button - > + 浜插睘鍙风爜缁存姢<span style="margin-right: 60px"> </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" @@ -301,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> @@ -317,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" @@ -345,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> @@ -400,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; @@ -425,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" @@ -469,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" @@ -487,8 +724,7 @@ /> </el-card> </div> - </div> - <!-- 浣撻噸 --> + </div> --> <div v-show="sontwoactiveName == 'weight'" style="display: flex"> <div id="tzeCharts" @@ -497,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" @@ -523,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" @@ -541,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" @@ -559,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> @@ -588,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: {}, @@ -608,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: "", @@ -639,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, @@ -681,15 +1036,9 @@ address: "89", }, ], - serviceData: [ - { - daya: "2023-12-12", - hospitalname: "鍗忓拰", - result: "闊у甫鎷変激", - administrative: "楠ㄧ", - doctor: "鍚村ぇ榫�", - }, - ], + serviceData: [], + serviceDatary: [], + serviceDatacy: [], options: [ { value: "1", @@ -708,6 +1057,7 @@ label: "浣撴", }, ], + borninfooptions: [], tableLabelxy: [ { label: "娴嬮噺鏃堕棿", width: "", prop: "name" }, { label: "鏀剁缉鍘�", width: "", prop: "sex" }, @@ -719,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" }, @@ -736,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 = ""; }, @@ -869,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], @@ -963,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], @@ -1103,7 +1866,6 @@ }, ], }; - console.log("ss"); // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� myxyChart.setOption(option); }, @@ -1182,7 +1944,6 @@ }, ], }; - console.log("ss"); // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� myxyChart.setOption(option); }, @@ -1248,7 +2009,6 @@ }, ], }; - console.log("ss"); // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� myxyChart.setOption(option); }, @@ -1260,7 +2020,7 @@ .personages { height: 88px; width: 100%; - background-color: #2486b9; + background-color: #5e86f9; border-radius: 5px; padding: 20px; margin-bottom: 10px; @@ -1289,7 +2049,7 @@ } .xinz-inf { font-size: 18px; - white-space: nowrap; + // white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -1350,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; @@ -1375,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