From a9d2b856e0f6be6475319c2dc36bf405c2f908fc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 22 九月 2026 14:04:52 +0800
Subject: [PATCH] 测试完成
---
src/views/patient/patient/profile/index.vue | 2073 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 1,590 insertions(+), 483 deletions(-)
diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue
index 3475bfd..20af72e 100644
--- a/src/views/patient/patient/profile/index.vue
+++ b/src/views/patient/patient/profile/index.vue
@@ -1,98 +1,48 @@
<template>
<div class="app-container">
- <!-- 澶撮儴鐩掑瓙 -->
- <div class="personages">
- <el-row :gutter="20">
- <el-col :span="4"
- ><div class="headportrait">
- <div class="text-center">
- <img v-imgError="require('@/assets/common/head.jpg')" src="" />
- </div>
- <div>鍚村ぇ榫�</div>
- </div></el-col
- >
- <el-col :span="8"
- ><div class="xinz-inf">
- <el-tag
- :key="tag"
- v-for="tag in dynamicTags"
- closable
- :disable-transitions="false"
- @close="handleClose(tag)"
- >
- {{ tag }}
- </el-tag>
- <el-input
- class="input-new-tag"
- v-if="inputVisible"
- v-model="inputValue"
- ref="saveTagInput"
- size="small"
- @keyup.enter.native="handleInputConfirm"
- @blur="handleInputConfirm"
- >
- </el-input>
- <el-button
- v-else
- class="button-new-tag"
- size="small"
- @click="showInput"
- >+ 鏂板鏍囩</el-button
- >
- </div></el-col
- >
- <el-col :span="4"
- ><div class="info-xx">鐢�<span>66宀�</span></div></el-col
- >
- <el-col :span="4"><div class="info-xx">13803963330</div></el-col>
- </el-row>
+ <!-- 鎮h�呬俊鎭ご閮� -->
+ <div class="profile-header">
+ <div class="profile-header__avatar">
+ <img
+ v-imgError="require('@/assets/images/shoushuzhudaoyisheng.png')"
+ src=""
+ />
+ </div>
+ <div class="profile-header__info">
+ <div class="profile-header__name">{{ userform.name }}</div>
+ <div class="profile-header__chips">
+ <span class="chip">{{ userform.sex == 1 ? "鐢�" : "濂�" }}</span>
+ <span class="chip">{{ userform.age }}宀�</span>
+ <span class="chip">{{ userform.birthdate }}</span>
+ <span class="chip">{{ userform.nation }}</span>
+ <span class="chip">{{ userform.birthplace }}</span>
+ </div>
+ </div>
</div>
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane name="health">
<span class="mulsz" slot="label"
- ><i class="el-icon-date"></i> 鍋ュ悍妗f</span
+ ><i class="el-icon-date"></i> 鎮h�呮。妗�</span
>
- 鍩烘湰淇℃伅
</el-tab-pane>
<el-tab-pane name="medical">
<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
- >
- <el-tab-pane name="examine"
- ><span class="mulsz" slot="label"
- >妫�鏌�({{ jcnumber }})
- </span></el-tab-pane
- >
- <el-tab-pane name="physical"
- ><span class="mulsz" slot="label">
- 浣撴({{ tjnumber }})</span
- ></el-tab-pane
- >
- <el-tab-pane name="pharmacy"
- ><span class="mulsz" slot="label"
- >鐢ㄨ嵂({{ yynumber }})
- </span></el-tab-pane
+ ><span class="mulsz" slot="label">鍑洪櫌 </span></el-tab-pane
>
</el-tabs>
</el-tab-pane>
- <el-tab-pane name="monitor">
+ <!-- <el-tab-pane name="monitor">
<span class="mulsz" slot="label"
><i class="el-icon-s-data"></i> 鍋ュ悍鐩戞祴</span
>
@@ -113,8 +63,23 @@
><i class="el-icon-s-data"></i>浣撻噸
</span></el-tab-pane
>
+ <el-tab-pane name="heartrate"
+ ><span class="mulsz" slot="label"
+ ><i class="el-icon-s-operation"></i>蹇冪巼
+ </span></el-tab-pane
+ >
+ <el-tab-pane name="bloodoxygen"
+ ><span class="mulsz" slot="label"
+ ><i class="el-icon-s-data"></i>琛�姘�
+ </span></el-tab-pane
+ >
+ <el-tab-pane name="animalheat"
+ ><span class="mulsz" slot="label"
+ ><i class="el-icon-s-opportunity"></i>浣撴俯
+ </span></el-tab-pane
+ >
</el-tabs></el-tab-pane
- >
+ > -->
<el-tab-pane name="serve">
<span class="mulsz" slot="label"
><i class="el-icon-s-custom"></i> 鏈嶅姟璁板綍</span
@@ -124,39 +89,197 @@
<!-- 鍋ュ悍妗f妯″潡 -->
<div class="information-content" v-if="activeName == 'health'">
- <div class="top-message">
- <div class="headline">鍩虹淇℃伅</div>
- <div class="detailed">
- <div class="one-column">
- <div>鎮h�呭鍚嶏細<span class="spanvalue">鐜嬪ぇ缇�</span></div>
- <div>鎬у埆锛�<span class="spanvalue">鐢�</span></div>
-
- <div>璇佷欢绫诲瀷锛�<span class="spanvalue">韬唤璇�</span></div>
- </div>
- <div class="one-column">
- <div>鍑虹敓鏃ユ湡锛�<span class="spanvalue">1999-01-02</span></div>
-
- <div>骞撮緞锛�<span class="spanvalue">121</span></div>
-
- <div class="">
- 璇佷欢鍙风爜锛�<span class="spanvalue">312223222322232223</span>
- </div>
- </div>
+ <div class="section-card">
+ <div class="section-card__header">
+ <span class="section-title">鍩虹淇℃伅</span>
+ <el-button type="primary" size="small" @click="savefile">淇濆瓨鎮h�呮。妗�</el-button>
+ </div>
+ <div class="section-card__body">
+ <el-form
+ ref="userform"
+ :model="userform"
+ :rules="rules"
+ label-width="110px"
+ class="profile-form"
+ >
+ <el-row :gutter="24">
+ <el-col :span="12">
+ <el-form-item label="鎮h�呭鍚�" prop="name">
+ <el-input v-model="userform.name" placeholder="璇疯緭鍏ュ鍚�" maxlength="30"></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-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浜插睘鑱旂郴鏂瑰紡" prop="name">
+ <el-input v-model="userform.telcodewx" placeholder="璇疯緭鍏ュ鍚�" maxlength="30"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="鍑虹敓鍦�" prop="birthplace">
+ <el-input v-model="userform.birthplace" placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" maxlength="50"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="灞呬綇鍦�" prop="placeOfResidence">
+ <el-input v-model="userform.placeOfResidence" placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅" maxlength="50"></el-input>
+ </el-form-item>
+ </el-col>
+ <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
+ 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-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
</div>
</div>
- <div class="bottom-message">
- <div class="headline">鍙风爜缁存姢</div>
- <div class="Table-screen">
- <el-table :data="tableData" style="width: 100%">
- <el-table-column prop="name" label="濮撳悕" width="180">
+ <div class="section-card">
+ <div class="section-card__header">
+ <span class="section-title">鐥呭彶</span>
+ </div>
+ <div class="section-card__body">
+ <el-form :model="form" label-width="110px" class="profile-form">
+ <el-row :gutter="24">
+ <el-col :span="8">
+ <el-form-item label="杩囧線鐤剧梾" prop="name">
+ <el-input v-model="form.pastIllnesses" placeholder="璇疯緭鍏�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鑽墿杩囨晱" prop="sex">
+ <el-input v-model="form.drugAllergy" placeholder="璇疯緭鍏ュ叿浣撹嵂鐗�/鏃�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="瀹舵棌鐥呭彶" prop="age">
+ <el-input v-model="form.familyHistory" placeholder="璇疯緭鍏ュ叿浣撶柧鐥�/鏃�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鎵嬫湳鍙�" prop="name">
+ <el-input v-model="form.surgicalHistory" placeholder="璇疯緭鍏ユ墜鏈�/鏃�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鐢熻偛鍙�" prop="age">
+ <el-input v-model="form.reproductiveHistory" placeholder="璇疯緭鍏ヨ儙鏁�/鏃�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <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-col :span="8">
+ <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="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="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-col :span="12">
+ <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="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>
+ </el-row>
+ </el-form>
+ </div>
+ </div>
+ <!-- 浜插睘鍙风爜缁存姢 -->
+ <div class="section-card">
+ <div class="section-card__header">
+ <span class="section-title">浜插睘鍙风爜缁存姢</span>
+ <el-button type="primary" size="small" icon="el-icon-plus" @click="addcompiletb">鏂板</el-button>
+ </div>
+ <div class="section-card__body">
+ <el-table
+ :data="tableData"
+ style="width: 100%"
+ :row-class-name="tableRowClassName"
+ stripe
+ border
+ >
+ <el-table-column prop="id" label="搴忓彿" width="180">
</el-table-column>
- <el-table-column prop="phonenumber" label="鑱旂郴鏂瑰紡" width="180">
+ <el-table-column prop="contactname" label="濮撳悕" width="100">
</el-table-column>
- <el-table-column prop="concern" label="鍏崇郴"> </el-table-column>
- <el-table-column prop="source" label="鑱旂郴浜烘潵婧�">
+ <el-table-column prop="contactway" label="鑱旂郴鏂瑰紡" width="180">
</el-table-column>
- <el-table-column prop="default" label="榛樿鑱旂郴鏂瑰紡">
- </el-table-column>
+ <el-table-column prop="relation" label="鍏崇郴"> </el-table-column>
<el-table-column
label-class-name="columcz"
fixed="right"
@@ -164,11 +287,21 @@
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>
@@ -179,22 +312,85 @@
<div class="medical-record" v-else-if="activeName == 'medical'">
<!-- 闂ㄨ瘖 -->
<div v-if="sonactiveName == 'outpatient'">
- <el-table :data="serviceData" style="width: 100%">
- <el-table-column prop="daya" label="灏辫瘖鏃ユ湡" width="180">
- </el-table-column>
- <el-table-column prop="hospitalname" label="鍖婚櫌鍚嶇О" width="180">
- </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="doctor" label="鍖荤敓"> </el-table-column>
- <el-table-column label-class-name="columcz" label="鎿嶄綔" width="300">
+ <el-table :data="serviceData" style="width: 100%" stripe border>
+ <el-table-column
+ label="灏辫瘖鏃堕棿"
+ align="center"
+ key="admitdate"
+ prop="admitdate"
+ >
<template slot-scope="scope">
- <el-button type="text" size="small">璇︽儏</el-button>
+ <span>{{ formatTime(scope.row.admitdate) }}</span>
</template>
</el-table-column>
- </el-table>
+ <el-table-column
+ label="鐥呮鍙�"
+ width="100"
+ align="center"
+ key="outhospno"
+ prop="outhospno"
+ />
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ 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"
@@ -205,162 +401,286 @@
</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="result" label="鍏ラ櫌绉戝埆"> </el-table-column>
- <el-table-column prop="administrative" 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 :data="serviceDatary" style="width: 100%" stripe border>
+ <el-table-column
+ label="浣忛櫌鍙�"
+ align="center"
+ key="inhospno"
+ prop="inhospno"
+ width="180"
+ />
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ 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>
- </div>
- <!-- 妫�鏌� -->
- <div v-if="sonactiveName == 'examine'">
- <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>
- </div>
- <!-- 浣撴 -->
- <div v-if="sonactiveName == 'physical'">
- <el-table :data="serviceData" style="width: 100%">
- <el-table-column prop="daya" 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="doctor" label="鍖荤敓"> </el-table-column>
- <!-- <el-table-column
- label-class-name="columcz"
- fixed="right"
- label="鎿嶄綔"
- width="300"
- >
- <template slot-scope="scope">
- <el-button type="text" size="small">璇︽儏</el-button>
- </template>
- </el-table-column> -->
- </el-table>
- </div>
- <!-- 鐢ㄨ嵂 -->
- <div v-if="sonactiveName == 'pharmacy'">
- <el-table :data="serviceData" style="width: 100%">
- <el-table-column prop="daya" 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="doctor" label="鍖荤敓"> </el-table-column>
+ <el-table :data="serviceDatacy" style="width: 100%" stripe border>
+ <el-table-column
+ label="浣忛櫌鍙�"
+ align="center"
+ key="inhospno"
+ prop="inhospno"
+ width="120"
+ />
+ <el-table-column
+ label="濮撳悕"
+ width="100"
+ 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>
<!-- 鏈嶅姟璁板綍 -->
- <div
- class="medical-recordc"
- style="margin-top: 20px; font-size: 20px !important"
- v-else-if="activeName == 'serve'"
- >
- <el-tabs type="border-card">
- <el-tab-pane label="棣栨闅忚">
- <div style="margin-top: 10px">
- 闅忚鐘舵�侊細宸茬粓姝�<span style="color: #2775b6"
- >锛堢粓姝㈠師鍥狅細鎮h�呯棅鎰堝洖璁跨粨鏉燂紝缁堟鏃堕棿锛�2023-12-18 12:00锛�</span
- >
- </div>
- <div style="margin-top: 10px">
- 闅忚鍙戦�佹椂闂达細<span style="color: #2775b6">2023-11-23 12:00</span>
- </div>
- <div style="margin-top: 10px">
- 闅忚瀹屾垚鏃堕棿锛�<span style="color: #2775b6">2023-12-18 12:00</span>
- </div>
- <div style="margin-top: 10px">
- 鐤肩棝绋嬪害锛�<span style="color: #2775b6">涓害</span>
- </div>
- <div
- style="
- font-size: 22px;
- padding-left: 5px;
- margin: 15px 0;
- 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
- >
- <el-col :span="6"
- >闅忚浜猴細 <span style="color: #2775b6">鍚村皬榫�</span></el-col
- >
- <el-col :span="6"
- >鎮h�呴厤鍚堝害锛� <span style="color: #2775b6">楂�</span></el-col
- >
- </el-row>
- </div>
- <div style="margin-top: 10px">
- 闅忚缁撴灉锛� <span style="color: #2775b6">鎮h�呯棅鎰堬紝韬綋鍊嶆</span>
- </div>
- <div style="margin-top: 10px">
- 闅忚澶囨敞锛� <span style="color: #2775b6">鎻愰啋娉ㄦ剰楗鍋ュ悍</span>
- </div>
- </el-tab-pane>
- <el-tab-pane label="浜屾闅忚">浜屾闅忚</el-tab-pane>
- <el-tab-pane label="涓夋闅忚">涓夋闅忚</el-tab-pane>
- </el-tabs>
- </div>
+ <ServiceRecords v-else-if="activeName == 'serve'" :patid="id" />
<!-- 鍋ュ悍鐩戞祴 -->
- <div class="medical-record" v-show="activeName == 'monitor'">
- <!-- 琛�鍘嬪浘鏍� -->
- <div v-show="sontwoactiveName == 'blood'">
+ <!-- <div class="medical-record" v-show="activeName == 'monitor'">
+ <div v-show="sontwoactiveName == 'blood'" style="display: flex">
<div
id="xyeCharts"
class="sontwoactiveName"
- style="width: 1300px; height: 800px"
+ style="width: 880px; height: 560px"
></div>
+ <div style="width: 400px">
+ <el-card class="box-card">
+ <SFtable
+ :currentList="tableDatalist"
+ :tableLabel="tableLabelxy"
+ :center="false"
+ :multiplechoice="false"
+ />
+ </el-card>
+ </div>
</div>
- <!-- 琛�绯� -->
- <div v-show="sontwoactiveName == 'glucose'">
+ <div v-show="sontwoactiveName == 'glucose'" style="display: flex">
<div
id="xteCharts"
class="sontwoactiveName"
- style="width: 1300px; height: 800px"
+ style="width: 880px; height: 560px"
></div>
+ <div style="width: 400px">
+ <el-card class="box-card">
+ <SFtable
+ :currentList="tableDatalist"
+ :tableLabel="tableLabelxt"
+ :center="false"
+ :multiplechoice="false"
+ />
+ </el-card>
+ </div>
</div>
- <!-- 浣撻噸 -->
- <div v-show="sontwoactiveName == 'weight'">
+ <div v-show="sontwoactiveName == 'weight'" style="display: flex">
<div
id="tzeCharts"
class="sontwoactiveName"
- style="width: 1300px; height: 800px"
+ style="width: 880px; height: 560px"
></div>
+ <div style="width: 400px">
+ <el-card class="box-card">
+ <SFtable
+ :currentList="tableDatalist"
+ :tableLabel="tableLabeltz"
+ :center="false"
+ :multiplechoice="false"
+ />
+ </el-card>
+ </div>
</div>
- </div>
+ <div v-show="sontwoactiveName == 'heartrate'" style="display: flex">
+ <div
+ id="xleCharts"
+ class="sontwoactiveName"
+ style="width: 880px; height: 560px"
+ ></div>
+ <div style="width: 400px">
+ <el-card class="box-card">
+ <SFtable
+ :currentList="tableDatalist"
+ :tableLabel="tableLabelxl"
+ :center="false"
+ :multiplechoice="false"
+ />
+ </el-card>
+ </div>
+ </div>
+ <div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex">
+ <div
+ id="xueyangeCharts"
+ class="sontwoactiveName"
+ style="width: 880px; height: 560px"
+ ></div>
+ <div style="width: 400px">
+ <el-card class="box-card">
+ <SFtable
+ :currentList="tableDatalist"
+ :tableLabel="tableLabelxueyang"
+ :center="false"
+ :multiplechoice="false"
+ />
+ </el-card>
+ </div>
+ </div>
+ <div v-show="sontwoactiveName == 'animalheat'" style="display: flex">
+ <div
+ id="tweCharts"
+ class="sontwoactiveName"
+ style="width: 880px; height: 560px"
+ ></div>
+ <div style="width: 400px">
+ <el-card class="box-card">
+ <SFtable
+ :currentList="tableDatalist"
+ :tableLabel="tableLabeltw"
+ :center="false"
+ :multiplechoice="false"
+ />
+ </el-card>
+ </div>
+ </div>
+ </div> -->
- <!-- <div id="xyeCharts" style="width: 500px; height: 500px"></div> -->
+ <el-dialog :title="titletb" :visible.sync="AddanumberVisible">
+ <el-form :model="numberform" label-width="100px">
+ <el-form-item label="濮撳悕" width="100">
+ <el-input v-model="numberform.contactname"></el-input>
+ </el-form-item>
+ <el-form-item label="鑱旂郴鐢佃瘽">
+ <el-input v-model="numberform.telcode"></el-input>
+ </el-form-item>
+ <el-form-item label="鍏崇郴">
+ <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="archivecontact">纭� 瀹�</el-button>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -369,18 +689,36 @@
import userInfo from "./userInfo";
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 } from "@/api/AiCentre/index";
+import ServiceRecords from "@/views/patient/archives/components/ServiceRecords.vue";
+import { listPatouthosp } from "@/api/smartor/patouthosp";
+import { listpatient } from "@/api/patient/record";
export default {
name: "Profile",
- components: { userAvatar, userInfo, resetPwd },
+ components: { userAvatar, userInfo, resetPwd, SFtable, ServiceRecords },
data() {
return {
- user: {},
+ userform: {},
roleGroup: {},
postGroup: {},
+ form: {},
mznumber: 14,
zynumber: 34,
jynumber: 32,
@@ -388,12 +726,47 @@
tjnumber: 12,
yynumber: 12,
total: 0, // 鎬绘潯鏁�
+ titletb: "鏂板鑱旂郴鏂瑰紡",
activeTab: "userinfo",
+ id: "",
+ loading: false,
activeName: "health", //涓�绫诲鑸�
- sonactiveName: "outpatient", //鍋ュ悍鐩戞祴瀵艰埅
+ sonactiveName: "inhospital", //鍋ュ悍鐩戞祴瀵艰埅
sontwoactiveName: "blood", //鍖荤枟妗f瀵艰埅
- dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"],
+ dynamicTags: [],
+ record: [
+ {
+ name: "瀹f暀浠诲姟",
+ serviceType: "4",
+ templatename: "绠¢ゲ瀹f暀涓�鏈�",
+ createTime: "2024-11-10",
+ finishtime: "2024-11-12",
+ createBy: "鐜嬫斂",
+ drname: "鍒樻槑",
+ nurseName: "寮犳窇鐞�",
+ excep: "0",
+ deptname: "鍛煎惛绉�",
+ leavehospitaldistrictname: "浜旂梾鍖�",
+ },
+ {
+ name: "闅忚浠诲姟",
+ serviceType: "2",
+ templatename: "蹇冭绠¢殢璁夸竴鏈�",
+ createTime: "2024-11-11",
+ finishtime: "2024-11-14",
+ createBy: "绔犵▼",
+ drname: "鍒樻槑",
+ nurseName: "鏉庝附",
+ excep: "0",
+ deptname: "鍛煎惛绉�",
+ leavehospitaldistrictname: "浜旂梾鍖�",
+ },
+ // {
+ // name: "闂嵎璋冩煡",
+ // },
+ ],
inputVisible: false,
+ AddanumberVisible: false,
inputValue: "",
// 鏌ヨ鍙傛暟
queryParams: {
@@ -403,87 +776,397 @@
jobGroup: undefined,
status: undefined,
},
+ numberform: {},
echartdom: {},
xtechartdom: {},
tzechartdom: {},
- tableData: [
+ tableData: [],
+ tableDatalist: [
{
+ id: 12,
date: "2016-05-02",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�",
+ name: "121",
+ address: "89",
},
{
- date: "2016-05-04",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�",
+ id: 12,
+ date: "2016-05-02",
+ name: "121",
+ address: "89",
},
{
- date: "2016-05-01",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�",
- },
- {
- date: "2016-05-03",
- name: "鐜嬪皬铏�",
- address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�",
+ id: 12,
+ date: "2016-05-02",
+ name: "121",
+ address: "89",
},
],
- serviceData: [
+ serviceData: [],
+ serviceDatary: [],
+ serviceDatacy: [],
+ options: [
{
- daya: "2023-12-12",
- hospitalname: "鍗忓拰",
- result: "闊у甫鎷変激",
- administrative: "楠ㄧ",
- doctor: "鍚村ぇ榫�",
+ value: "1",
+ label: "浼氬憳",
+ },
+ {
+ value: "2",
+ label: "绯栧翱鐥�",
+ },
+ {
+ value: "3",
+ label: "楂樿鍘�",
+ },
+ {
+ value: "4",
+ label: "浣撴",
},
],
+ tableLabelxy: [
+ { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
+ { label: "鏀剁缉鍘�", width: "", prop: "sex" },
+ { label: "鑸掑紶鍘�", width: "", prop: "age" },
+ ],
+ tableLabelxt: [
+ { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
+ { label: "鏀剁缉鍘�", width: "", prop: "sex" },
+ { label: "鑸掑紶鍘�", width: "", prop: "age" },
+ ],
+ tableLabeltz: [
+ { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
+ { label: "韬珮", width: "", prop: "sex" },
+ { label: "浣撻噸", width: "", prop: "age" },
+ { label: "BMI鎸囨暟", width: "", prop: "update_by" },
+ ],
+ tableLabelxl: [
+ { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
+ { label: "蹇冪巼", width: "", prop: "sex" },
+ ],
+ tableLabelxueyang: [
+ { label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
+ { label: "琛�姘чケ鍜屽害", width: "", prop: "sex" },
+ ],
+ tableLabeltw: [
+ { 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.id = this.$route.query.id;
+ this.getuserinfo();
+ this.gettabList();
this.$nextTick(function () {
this.echartdom = document.getElementById("xyeCharts");
this.xtechartdom = document.getElementById("xteCharts");
this.tzechartdom = document.getElementById("tzeCharts");
- console.log(this.echartdom);
- console.log(this.xtechartdom);
- console.log(this.tzechartdom);
+ 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();
},
- 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();
+ }
+ });
+ }
+ },
+ getcontactlist() {
+ listcontactinformation({ patid: this.id }).then((response) => {
+ this.tableData = response.rows;
+ if (this.tableData.length) {
+ this.userform.telcodewx = this.tableData[0].contactway;
+ }
});
},
+ 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);
+ this.getcontactlist();
+ });
+ // 鐥呭彶淇℃伅
+ getmedicalhistory({ pid: this.id }).then((res) => {
+ if (res.code == 200 && res.rows[0]) {
+ this.form = res.rows[0];
+ }
+ });
+ // 鑱旂郴淇℃伅
+ },
+ // 淇濆瓨鎮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);
+ }
+ },
+ handleClickson(tab, event) {
+ console.log(tab, "son");
+ this.getList(tab.index);
+ },
+ // 鑱旂郴鏂瑰紡鏂板
+ Addanumber() {},
+ // 鏍囩--------------------------
+ /** 鏌ヨ鏍囩鍒楄〃 */
+ gettabList() {
+ const tagqueryParams = {
+ pageNum: 1,
+ pageSize: 10000,
+ tagcategoryid: "0",
+ };
+ listtag(tagqueryParams).then((response) => {
+ this.options = response.rows;
+ console.log(this.options, "鏍囩");
+ });
+ },
+ remoteMethod(value) {
+ 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 = "";
},
@@ -491,13 +1174,7 @@
// 琛�鍘嬪浘琛ㄩ儴鍒�
echartsInit() {
// 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
- console.log(echarts);
- console.log(this.echartdom);
- console.log(this.$refs.xyeCharts);
var myxyChart = echarts.init(this.echartdom);
- console.log(myxyChart);
- // var myxyChart = this.$echarts.init(document.getElementById("xyeCharts"));
- // var myxyChart = this.$echarts.init(this.$refs.xyeCharts);
var option = {
title: {
text: "鍘嗗彶琛�鍘嬭褰�",
@@ -564,17 +1241,14 @@
},
],
};
- console.log("ss");
// 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
myxyChart.setOption(option);
},
// 琛�绯栧浘琛�
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],
@@ -606,80 +1280,7 @@
title: {
text: "鍘嗗彶琛�绯栬褰�",
},
- visualMap: [
- {
- show: false,
- type: "continuous",
- seriesIndex: 0,
- min: 0,
- max: 400,
- },
- ],
- title: [
- {
- left: "center",
- text: "琛�绯栧巻鍙茬洃娴�",
- },
- ],
- tooltip: {
- trigger: "axis",
- },
- xAxis: [
- {
- data: dateList,
- },
- ],
- yAxis: [{}],
- series: [
- {
- type: "line",
- showSymbol: false,
- data: valueList,
- },
- ],
- };
- console.log("ss");
- // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
- myxyChart.setOption(option);
- },
- // 浣撻噸鍥捐〃
- tzechartsInit() {
- // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
- console.log(echarts);
- console.log(this.tzechartdom);
- var myxyChart = echarts.init(this.tzechartdom);
- console.log(myxyChart);
- const data = [
- ["2000-06-05", 116],
- ["2000-06-06", 99],
- ["2000-06-07", 105],
- ["2000-06-08", 126],
- ["2000-06-09", 73],
- ["2000-06-10", 85],
- ["2000-06-11", 73],
- ["2000-06-12", 68],
- ["2000-06-13", 92],
- ["2000-06-14", 130],
- ["2000-06-15", 245],
- ["2000-06-16", 119],
- ["2000-06-17", 115],
- ["2000-06-18", 201],
- ["2000-06-19", 209],
- ["2000-06-20", 106],
- ["2000-06-21", 137],
- ["2000-06-22", 128],
- ["2000-06-23", 85],
- ];
- const dateList = data.map(function (item) {
- return item[0];
- });
- const valueList = data.map(function (item) {
- return item[1];
- });
- var option = {
- title: {
- text: "鍘嗗彶琛�绯栬褰�",
- },
+ // 渚ц竟灏忓姛鑳�
toolbox: {
show: true,
feature: {
@@ -738,7 +1339,286 @@
},
],
};
- console.log("ss");
+ // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
+ myxyChart.setOption(option);
+ },
+ // 浣撻噸鍥捐〃
+ tzechartsInit() {
+ // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥
+
+ 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],
+ },
+
+ {
+ name: "BMI鎸囨暟",
+ type: "line",
+ stack: "Total",
+ data: [320, 332, 301, 334, 390, 330, 320],
+ },
+ ],
+ };
+ // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
+ myxyChart.setOption(option);
+ },
+ // 蹇冪巼
+ xlechartsInit() {
+ var myxyChart = echarts.init(this.xlechartdom);
+ const data = [
+ ["2000-06-05", 116],
+ ["2000-06-06", 129],
+ ["2000-06-07", 135],
+ ["2000-06-08", 86],
+ ["2000-06-09", 73],
+ ["2000-06-10", 85],
+ ["2000-06-11", 73],
+ ["2000-06-12", 68],
+ ["2000-06-13", 92],
+ ["2000-06-14", 130],
+ ["2000-06-15", 245],
+ ["2000-06-16", 139],
+ ["2000-06-17", 115],
+ ["2000-06-18", 111],
+ ["2000-06-19", 309],
+ ["2000-06-20", 206],
+ ["2000-06-21", 137],
+ ["2000-06-22", 128],
+ ["2000-06-23", 85],
+ ];
+ const dateList = data.map(function (item) {
+ return item[0];
+ });
+ const valueList = data.map(function (item) {
+ return item[1];
+ });
+ var option = {
+ title: {
+ text: "鍘嗗彶蹇冪巼璁板綍",
+ },
+ visualMap: [
+ {
+ show: false,
+ type: "continuous",
+ seriesIndex: 0,
+ min: 0,
+ max: 400,
+ },
+ ],
+
+ tooltip: {
+ trigger: "axis",
+ },
+ xAxis: [
+ {
+ data: dateList,
+ },
+ ],
+ yAxis: [{}],
+ series: [
+ {
+ type: "line",
+ showSymbol: false,
+ data: valueList,
+ lineStyle: {
+ width: 3,
+ type: "solid",
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ {
+ offset: 0,
+ color: "#22a2c3",
+ },
+ {
+ offset: 1,
+ color: "#b0d5df",
+ },
+ ]),
+ },
+ },
+ ],
+ };
+ // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
+ myxyChart.setOption(option);
+ },
+ // 琛�姘�
+ xueyangechartsInit() {
+ var myxyChart = echarts.init(this.xueyangechartdom);
+ const data = [
+ ["2000-06-05", 116],
+ ["2000-06-06", 129],
+ ["2000-06-07", 135],
+ ["2000-06-08", 86],
+ ["2000-06-09", 73],
+ ["2000-06-10", 85],
+ ["2000-06-11", 73],
+ ["2000-06-12", 68],
+ ["2000-06-13", 92],
+ ["2000-06-14", 130],
+ ["2000-06-15", 245],
+ ["2000-06-16", 139],
+ ["2000-06-17", 115],
+ ["2000-06-18", 111],
+ ["2000-06-19", 309],
+ ["2000-06-20", 206],
+ ["2000-06-21", 137],
+ ["2000-06-22", 128],
+ ["2000-06-23", 85],
+ ];
+ const dateList = data.map(function (item) {
+ return item[0];
+ });
+ const valueList = data.map(function (item) {
+ return item[1];
+ });
+ var option = {
+ title: {
+ text: "鍘嗗彶琛�姘ц褰�",
+ },
+ visualMap: [
+ {
+ show: false,
+ type: "continuous",
+ seriesIndex: 0,
+ min: 0,
+ max: 400,
+ },
+ ],
+
+ tooltip: {
+ trigger: "axis",
+ },
+ xAxis: [
+ {
+ data: dateList,
+ },
+ ],
+ yAxis: [{}],
+ series: [
+ {
+ type: "line",
+ showSymbol: false,
+ data: valueList,
+ lineStyle: {
+ width: 3,
+ type: "solid",
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ {
+ offset: 0,
+ color: "#45b787",
+ },
+ {
+ offset: 1,
+ color: "#c4d7d6",
+ },
+ ]),
+ },
+ },
+ ],
+ };
+ // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
+ myxyChart.setOption(option);
+ },
+ // 浣撴俯
+ twechartsInit() {
+ var myxyChart = echarts.init(this.twechartdom);
+ console.log(myxyChart);
+ const data = [
+ ["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-14", 36.4],
+ ["2000-06-15", 37.1],
+ ["2000-06-16", 36.9],
+ ["2000-06-17", 36.4],
+ ["2000-06-18", 38.8],
+ ["2000-06-19", 37.5],
+ ["2000-06-20", 36.6],
+ ["2000-06-21", 36.8],
+ ["2000-06-22", 36.2],
+ ["2000-06-23", 37.8],
+ ];
+ const dateList = data.map(function (item) {
+ return item[0];
+ });
+ const valueList = data.map(function (item) {
+ return item[1];
+ });
+ var option = {
+ title: {
+ text: "鍘嗗彶浣撴俯璁板綍",
+ },
+ visualMap: [
+ {
+ show: false,
+ type: "continuous",
+ seriesIndex: 0,
+ min: 0,
+ max: 400,
+ },
+ ],
+
+ tooltip: {
+ trigger: "axis",
+ },
+ xAxis: [
+ {
+ data: dateList,
+ },
+ ],
+ yAxis: [{}],
+ series: [
+ {
+ type: "line",
+ showSymbol: false,
+ data: valueList,
+ },
+ ],
+ };
// 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
myxyChart.setOption(option);
},
@@ -747,127 +1627,354 @@
</script>
<style lang="scss" scoped>
-.personages {
- height: 88px;
- width: 100%;
- background-color: #2486b9;
- border-radius: 5px;
- padding: 20px;
- margin-bottom: 10px;
- line-height: 48px;
- font-size: 25px;
- font-weight: 600;
- color: #ffffff;
- .headportrait {
+$primary: #3f6ef0;
+
+// ===== 鎮h�呬俊鎭ご閮� =====
+.profile-header {
+ position: relative;
+ display: flex;
+ align-items: center;
+ padding: 26px 32px;
+ margin-bottom: 16px;
+ border-radius: 14px;
+ overflow: hidden;
+ color: #fff;
+ background: linear-gradient(120deg, #3f6ef0 0%, #5b8cff 55%, #78a9ff 100%);
+ box-shadow: 0 8px 24px rgba(63, 110, 240, 0.26);
+
+ &::before {
+ content: "";
+ position: absolute;
+ right: -70px;
+ top: -90px;
+ width: 280px;
+ height: 280px;
+ border-radius: 50%;
+ background: rgba(255, 255, 255, 0.09);
+ }
+ &::after {
+ content: "";
+ position: absolute;
+ right: 90px;
+ bottom: -130px;
+ width: 230px;
+ height: 230px;
+ border-radius: 50%;
+ background: rgba(255, 255, 255, 0.06);
+ }
+
+ &__avatar {
+ position: relative;
+ z-index: 1;
+ width: 76px;
+ height: 76px;
+ flex-shrink: 0;
+ border-radius: 50%;
+ padding: 3px;
+ background: rgba(255, 255, 255, 0.4);
+ box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
+
+ img {
+ width: 100%;
+ height: 100%;
+ border-radius: 50%;
+ object-fit: cover;
+ background: #eef2fb;
+ }
+ }
+
+ &__info {
+ position: relative;
+ z-index: 1;
+ margin-left: 22px;
+ min-width: 0;
+ }
+
+ &__name {
+ font-size: 24px;
+ font-weight: 700;
+ letter-spacing: 1px;
+ line-height: 1.3;
+ }
+
+ &__chips {
display: flex;
- .text-center {
- width: 55px;
- height: 55px;
- margin-right: 10px;
- img {
- width: 100%;
- height: 100%;
- border-radius: 50%;
+ flex-wrap: wrap;
+ gap: 10px;
+ margin-top: 12px;
+
+ .chip {
+ padding: 4px 14px;
+ font-size: 13px;
+ font-weight: 500;
+ border-radius: 999px;
+ background: rgba(255, 255, 255, 0.2);
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ color: #f5f8ff;
+ line-height: 1.5;
+ }
+ }
+}
+
+// ===== Tabs =====
+::v-deep .el-tabs--border-card {
+ border: none;
+ border-radius: 12px;
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
+ overflow: hidden;
+
+ > .el-tabs__header {
+ margin: 0;
+ background: #fff;
+ border-bottom: 1px solid #eef0f4;
+
+ .el-tabs__nav {
+ border: none;
+
+ .el-tabs__item {
+ height: 54px;
+ line-height: 54px;
+ font-size: 15px;
+ color: #606266;
+ border: none !important;
+
+ .mulsz {
+ font-size: 15px;
+ }
+
+ &.is-active {
+ color: $primary;
+ font-weight: 600;
+ background: #f3f7ff;
+ box-shadow: inset 0 -3px 0 $primary;
+ }
}
}
}
- .xinz-inf {
- font-size: 18px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- line-height: 48px;
-
- .el-tag + .el-tag {
- margin-left: 10px;
- }
- .button-new-tag {
- margin-left: 10px;
- height: 32px;
- line-height: 30px;
- padding-top: 0;
- padding-bottom: 0;
- }
- .input-new-tag {
- width: 90px;
- margin-left: 10px;
- vertical-align: bottom;
- }
+ > .el-tabs__content {
+ padding: 0;
}
}
-.el-tabs--border-card {
- // font-size: 25px;
- .mulsz {
- font-size: 25px;
- margin-top: 20px;
- }
-}
+
+// ===== 鍋ュ悍妗f鍗$墖 =====
.information-content {
- margin-top: 20px;
- background: #ffffff;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
- .top-message {
- margin-top: 25px;
- margin-left: 100px;
- .detailed {
- width: 70%;
- border-radius: 8px;
- padding: 30px;
- margin-bottom: 30px;
- background-color: #ddf0f8;
- .one-column {
- display: flex;
- font-size: 20px;
- margin-bottom: 30px;
- padding-bottom: 3px;
- .spanvalue {
- display: inline-block;
- min-width: 200px;
- border-bottom: 1px solid rgb(172, 172, 172);
- }
+ margin-top: 16px;
+}
- div {
- width: 330px;
- }
+.section-card {
+ margin-bottom: 16px;
+ background: #fff;
+ border-radius: 12px;
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
+ overflow: hidden;
+
+ &__header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 16px 24px;
+ border-bottom: 1px solid #f0f2f5;
+
+ .section-title {
+ position: relative;
+ padding-left: 12px;
+ font-size: 16px;
+ font-weight: 600;
+ color: #303133;
+
+ &::before {
+ content: "";
+ position: absolute;
+ left: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 4px;
+ height: 16px;
+ border-radius: 2px;
+ background: $primary;
}
}
}
- .headline {
- font-size: 25px;
- padding-left: 5px;
- margin-bottom: 10px;
- border-left: 8px solid rgb(65, 161, 190);
+ &__body {
+ padding: 20px 24px 4px;
}
- .bottom-message {
- margin-bottom: 25px;
- margin-left: 100px;
- .Table-screen {
- width: 88%;
- padding: 30px;
- margin-bottom: 30px;
- border-radius: 8px;
- background-color: #ddf0f8;
- font-size: 20px !important;
+}
+
+// 琛ㄥ崟
+.profile-form {
+ .el-form-item {
+ margin-bottom: 18px;
+ }
+
+ ::v-deep .el-form-item__label {
+ color: #606266;
+ font-weight: 500;
+ }
+
+ ::v-deep .el-input__inner {
+ border-radius: 6px;
+ }
+}
+
+// 鏍囩
+.xinz-inf {
+ line-height: 40px;
+
+ .el-tag {
+ margin-bottom: 6px;
+ border-radius: 4px;
+
+ & + .el-tag {
+ margin-left: 8px;
+ }
+ }
+
+ .button-new-tag {
+ margin-left: 8px;
+ height: 32px;
+ line-height: 30px;
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+
+ .input-new-tag {
+ width: 90px;
+ margin-left: 8px;
+ vertical-align: bottom;
+ }
+}
+
+// ===== 鍖荤枟妗f琛ㄦ牸 =====
+.medical-record {
+ margin-top: 16px;
+ padding: 24px;
+ background: #fff;
+ border-radius: 12px;
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
+
+ ::v-deep .el-table {
+ th.el-table__cell {
+ background: #f5f7fb;
+ color: #303133;
+ font-weight: 600;
+ }
+
+ .el-table__row td {
+ padding: 10px 0;
+ }
+
+ .el-table__row--striped td {
+ background: #fafbfd;
+ }
+
+ .el-table__row:hover > td {
+ background: #f3f7ff !important;
}
}
}
-.medical-record {
- margin-top: 20px;
- margin: 20px;
- padding: 30px;
- background: #ffffff;
- border: 1px solid #dcdfe6;
- -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
- 0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+// 鍗$墖鍐呰〃鏍硷紙浜插睘鍙风爜锛�
+.section-card__body {
+ ::v-deep .el-table {
+ th.el-table__cell {
+ background: #f5f7fb;
+ color: #303133;
+ font-weight: 600;
+ }
+ }
}
-.sontwoactiveName {
- margin: 0 auto;
+
+// ===== 鏈嶅姟璁板綍 =====
+.service-record {
+ margin-top: 16px;
+
+ .service-item {
+ margin-bottom: 16px;
+ }
+
+ .service-card {
+ border-radius: 12px;
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
+
+ ::v-deep .el-card__body {
+ padding: 20px 24px;
+ }
+ }
+
+ .service-card__header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding-bottom: 14px;
+ border-bottom: 1px dashed #eef0f4;
+ }
+
+ .service-card__title {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ }
+
+ .service-badge {
+ display: inline-block;
+ padding: 4px 12px;
+ font-size: 13px;
+ font-weight: 600;
+ color: $primary;
+ background: #eef4ff;
+ border-radius: 6px;
+ }
+
+ .service-name {
+ font-size: 16px;
+ font-weight: 600;
+ color: #303133;
+ }
+
+ .service-status {
+ padding: 4px 12px;
+ font-size: 13px;
+ border-radius: 999px;
+
+ &.is-ok {
+ color: #12a182;
+ background: #e8f7f1;
+ }
+
+ &.is-bad {
+ color: #e0564c;
+ background: #fdeeee;
+ }
+ }
+
+ .service-grid {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: 18px 24px;
+ padding-top: 16px;
+ }
+
+ .service-cell {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+
+ .s-label {
+ font-size: 12px;
+ color: #909399;
+ }
+
+ .s-value {
+ font-size: 14px;
+ color: #303133;
+ }
+ }
}
-// .columcz {
-// align-items: center!important;
-// }
+
+// 榛樿鑱旂郴鏂瑰紡楂樹寒琛�
+::v-deep .el-table .warning-row {
+ background: #fff7e6;
+}
</style>
--
Gitblit v1.9.3