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 | 1287 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 857 insertions(+), 430 deletions(-)
diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue
index 2be9058..20af72e 100644
--- a/src/views/patient/patient/profile/index.vue
+++ b/src/views/patient/patient/profile/index.vue
@@ -1,35 +1,23 @@
<template>
<div class="app-container">
- <!-- 澶撮儴鐩掑瓙 -->
- <div class="personages">
- <el-row :gutter="20">
- <el-col :span="18">
- <div class="headportrait">
- <div class="text-center">
- <img
- v-imgError="require('@/assets/images/shoushuzhudaoyisheng.png')"
- src=""
- />
- </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>
+ <!-- 鎮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">
@@ -42,25 +30,19 @@
<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>
- <el-tab-pane name="monitor">
+ <!-- <el-tab-pane name="monitor">
<span class="mulsz" slot="label"
><i class="el-icon-s-data"></i> 鍋ュ悍鐩戞祴</span
>
@@ -97,7 +79,7 @@
</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
@@ -107,133 +89,120 @@
<!-- 鍋ュ悍妗f妯″潡 -->
<div class="information-content" v-if="activeName == 'health'">
- <div class="top-message">
- <div class="headlines">
- <div>鍩虹淇℃伅</div>
- <el-button type="primary" @click="savefile">淇濆瓨鎮h�呮。妗�</el-button>
+ <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="detailed">
- <el-row :gutter="20">
- <el-col :span="12"
- ><div class="grid-content bg-purple">
- 鎮h�呭鍚嶏細<span class="spanvalue">{{ userform.name }}</span>
- </div></el-col
- >
- <el-col :span="12"
- ><div class="grid-content bg-purple">
- 鑱旂郴鐢佃瘽锛�<span class="spanvalue">{{ userform.telcode }}</span>
- </div></el-col
- >
- </el-row>
- <el-row :gutter="20">
- <el-col :span="24"
- ><div class="grid-content bg-purple">
- 鍑虹敓鍦帮細<span class="spanvalue">{{ userform.birthplace }}</span>
- </div></el-col
- >
- </el-row>
- <el-row :gutter="20">
- <el-col :span="24"
- ><div class="grid-content bg-purple">
- 灞呬綇鍦帮細<span class="spanvalue">{{
- userform.placeOfResidence
- }}</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
- allow-create
- default-first-option
- placeholder="璇烽�夋嫨"
- >
- <el-option
- v-for="item in options"
- :key="item.tagname"
- :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>
+ <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="top-message">
- <div class="headline">鐥呭彶</div>
- <div class="detailed">
- <el-form ref="form" :model="form" label-width="100px">
- <el-row>
+ <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-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-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-input v-model="form.familyHistory" placeholder="璇疯緭鍏ュ叿浣撶柧鐥�/鏃�" maxlength="30" />
</el-form-item>
</el-col>
- </el-row>
- <el-row>
<el-col :span="8">
<el-form-item label="鎵嬫湳鍙�" prop="name">
- <el-input
- v-model="form.surgicalHistory"
- placeholder="璇疯緭鍏ユ墜鏈�/鏃�"
- maxlength="30"
- />
+ <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-input v-model="form.reproductiveHistory" placeholder="璇疯緭鍏ヨ儙鏁�/鏃�" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="8">
@@ -244,8 +213,6 @@
</el-radio-group>
</el-form-item>
</el-col>
- </el-row>
- <el-row>
<el-col :span="8">
<el-form-item label="鍚哥儫鎯呭喌" prop="smoking">
<el-radio-group v-model="form.smoking">
@@ -270,8 +237,6 @@
</el-radio-group>
</el-form-item>
</el-col>
- </el-row>
- <el-row>
<el-col :span="12">
<el-form-item label="楗鎯呭喌" prop="diet">
<el-radio-group v-model="form.diet">
@@ -279,8 +244,9 @@
<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>
+ </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>
@@ -293,21 +259,23 @@
</el-form>
</div>
</div>
- <!-- 鑱旂郴鐢佃瘽 -->
- <div class="bottom-message">
- <div class="headline">
- 鍙风爜缁存姢<span style="margin-right: 60px"> </span>
- <el-button type="primary" @click="addcompiletb">+鏂板</el-button>
+ <!-- 浜插睘鍙风爜缁存姢 -->
+ <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="Table-screen">
+ <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="contactname" label="濮撳悕" width="180">
+ <el-table-column prop="contactname" label="濮撳悕" width="100">
</el-table-column>
<el-table-column prop="contactway" label="鑱旂郴鏂瑰紡" width="180">
</el-table-column>
@@ -331,7 +299,6 @@
size="small"
>缂栬緫</el-button
>
-
<el-button @click="deltb(scope.row)" type="danger" size="small"
>鍒犻櫎</el-button
>
@@ -345,25 +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 :data="serviceData" style="width: 100%" stripe border>
+ <el-table-column
+ label="灏辫瘖鏃堕棿"
+ align="center"
+ key="admitdate"
+ prop="admitdate"
+ >
+ <template slot-scope="scope">
+ <span>{{ formatTime(scope.row.admitdate) }}</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="鐥呮鍙�"
+ 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"
@@ -374,114 +401,165 @@
</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%" 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-column prop="administrative" label="浣撴鎶ュ憡鏃�">
- </el-table-column>
- <el-table-column prop="administrative" 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'"
- >
- <div style="margin-bottom: 15px" v-for="item in record">
- <el-card class="box-card">
- <div
- style="
- font-size: 22px;
- padding-left: 5px;
- margin: 15px 0;
- border-left: 4px solid rgb(190, 65, 134);
- "
- >
- {{ item.name }}
- </div>
- <el-divider></el-divider>
- <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: 20px;
- 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-card>
- </div>
- </div>
+ <ServiceRecords v-else-if="activeName == 'serve'" :patid="id" />
<!-- 鍋ュ悍鐩戞祴 -->
- <div class="medical-record" v-show="activeName == 'monitor'">
- <!-- 琛�鍘嬪浘鏍� -->
+ <!-- <div class="medical-record" v-show="activeName == 'monitor'">
<div v-show="sontwoactiveName == 'blood'" style="display: flex">
<div
id="xyeCharts"
@@ -499,7 +577,6 @@
</el-card>
</div>
</div>
- <!-- 琛�绯� -->
<div v-show="sontwoactiveName == 'glucose'" style="display: flex">
<div
id="xteCharts"
@@ -517,7 +594,6 @@
</el-card>
</div>
</div>
- <!-- 浣撻噸 -->
<div v-show="sontwoactiveName == 'weight'" style="display: flex">
<div
id="tzeCharts"
@@ -535,7 +611,6 @@
</el-card>
</div>
</div>
- <!-- 蹇冪巼 -->
<div v-show="sontwoactiveName == 'heartrate'" style="display: flex">
<div
id="xleCharts"
@@ -553,7 +628,6 @@
</el-card>
</div>
</div>
- <!-- 琛�姘� -->
<div v-show="sontwoactiveName == 'bloodoxygen'" style="display: flex">
<div
id="xueyangeCharts"
@@ -571,7 +645,6 @@
</el-card>
</div>
</div>
- <!-- 浣撴俯 -->
<div v-show="sontwoactiveName == 'animalheat'" style="display: flex">
<div
id="tweCharts"
@@ -589,15 +662,15 @@
</el-card>
</div>
</div>
- </div>
+ </div> -->
<el-dialog :title="titletb" :visible.sync="AddanumberVisible">
<el-form :model="numberform" label-width="100px">
- <el-form-item label="濮撳悕">
+ <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.contactway"></el-input>
+ <el-input v-model="numberform.telcode"></el-input>
</el-form-item>
<el-form-item label="鍏崇郴">
<el-input v-model="numberform.relation"></el-input>
@@ -629,11 +702,17 @@
delcontactinformation,
listcontactinformation,
alterpatient,
+ Patientclinic,
} from "@/api/patient/homepage";
+
+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, SFtable },
+ components: { userAvatar, userInfo, resetPwd, SFtable, ServiceRecords },
data() {
return {
userform: {},
@@ -650,20 +729,41 @@
titletb: "鏂板鑱旂郴鏂瑰紡",
activeTab: "userinfo",
id: "",
+ loading: false,
activeName: "health", //涓�绫诲鑸�
- sonactiveName: "outpatient", //鍋ュ悍鐩戞祴瀵艰埅
+ sonactiveName: "inhospital", //鍋ュ悍鐩戞祴瀵艰埅
sontwoactiveName: "blood", //鍖荤枟妗f瀵艰埅
dynamicTags: [],
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: "闂嵎璋冩煡",
+ // },
],
inputVisible: false,
AddanumberVisible: false,
@@ -701,15 +801,9 @@
address: "89",
},
],
- serviceData: [
- {
- daya: "2023-12-12",
- hospitalname: "鍗忓拰",
- result: "闊у甫鎷変激",
- administrative: "楠ㄧ",
- doctor: "鍚村ぇ榫�",
- },
- ],
+ serviceData: [],
+ serviceDatary: [],
+ serviceDatacy: [],
options: [
{
value: "1",
@@ -756,9 +850,45 @@
{ 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");
@@ -774,20 +904,46 @@
this.xueyangechartsInit();
this.twechartsInit();
});
- this.id = this.$route.query.id;
- this.getuserinfo();
- this.gettabList();
},
methods: {
- // 鏌ヨ妗f鍒楄〃淇℃伅
- getList() {
+ // 鏌ヨ鍖荤枟妗f鍚勫垪琛ㄤ俊鎭�
+ getList(type) {
this.loading = true;
+ 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() {
@@ -799,27 +955,35 @@
// 鎮h�呭熀纭�淇℃伅
messagelistpatient(queryParams).then((response) => {
this.userform = response.rows[0];
- this.dynamicTags = response.rows[0].tagList;
+ // this.dynamicTags = response.rows[0].tagList;
+ this.dynamicTags = response.rows[0].tagList.map(this.processElement);
+ this.getcontactlist();
});
// 鐥呭彶淇℃伅
getmedicalhistory({ pid: this.id }).then((res) => {
- this.form = res.rows[0];
+ if (res.code == 200 && res.rows[0]) {
+ this.form = res.rows[0];
+ }
});
// 鑱旂郴淇℃伅
- this.getcontactlist();
},
// 淇濆瓨鎮h�呮。妗�
savefile() {
- this.userform.tagList = this.dynamicTags;
- alterpatient(this.userform).then((res) => {
- if (res.code == 200) {
- this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
- } else {
- this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
+ 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();
}
});
- // 鐥呭彶
- this.medicalhistory();
},
// 鐥呭彶
medicalhistory() {
@@ -920,46 +1084,89 @@
.catch(() => {});
},
tableRowClassName({ row, rowIndex }) {
- console.log(row);
if (row.isdefault == "1") {
return "warning-row";
}
return "";
},
+ // tab鍒囨崲
+ handleClick(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: 1000,
+ pageSize: 10000,
tagcategoryid: "0",
};
listtag(tagqueryParams).then((response) => {
this.options = response.rows;
+ console.log(this.options, "鏍囩");
});
},
-
- // tab鍒囨崲
- handleClick(tab, event) {
- console.log(tab, event);
+ 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);
},
- // 鑱旂郴鏂瑰紡鏂板
- Addanumber() {},
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 = "";
},
@@ -1420,134 +1627,354 @@
</script>
<style lang="scss" scoped>
-.personages {
- height: 88px;
- width: 100%;
- background-color: #5e86f9;
- border-radius: 5px;
- padding: 20px;
- margin-bottom: 10px;
- line-height: 48px;
- font-size: 25px;
- font-weight: 600;
- color: #ffffff;
- .headportrait {
- display: flex;
- .text-center {
- width: 55px;
- height: 55px;
- margin-right: 10px;
- img {
- width: 100%;
- height: 100%;
- border-radius: 50%;
- }
+$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;
}
- .text-title {
- font-size: 20px;
+ }
+
+ &__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;
+ flex-wrap: wrap;
+ gap: 10px;
+ margin-top: 12px;
+
+ .chip {
+ padding: 4px 14px;
+ font-size: 13px;
font-weight: 500;
- color: #ecfcfc;
+ 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;
}
}
}
-.xinz-inf {
- font-size: 18px;
- white-space: nowrap;
+
+// ===== 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;
- text-overflow: ellipsis;
- line-height: 48px;
+ > .el-tabs__header {
+ margin: 0;
+ background: #fff;
+ border-bottom: 1px solid #eef0f4;
- .el-tag + .el-tag {
- margin-left: 10px;
+ .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;
+ }
+ }
+ }
}
+
+ > .el-tabs__content {
+ padding: 0;
+ }
+}
+
+// ===== 鍋ュ悍妗f鍗$墖 =====
+.information-content {
+ margin-top: 16px;
+}
+
+.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;
+ }
+ }
+ }
+
+ &__body {
+ padding: 20px 24px 4px;
+ }
+}
+
+// 琛ㄥ崟
+.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: 10px;
+ margin-left: 8px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
+
.input-new-tag {
width: 90px;
- margin-left: 10px;
+ margin-left: 8px;
vertical-align: bottom;
}
}
-.el-tabs--border-card {
- // font-size: 25px;
- .mulsz {
- font-size: 25px;
- margin-top: 20px;
+
+// ===== 鍖荤枟妗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;
+ }
}
}
-.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: 88%;
- border-radius: 8px;
- padding: 30px;
- margin-bottom: 30px;
- background-color: #ddf0f8;
- .bg-purple {
- margin-bottom: 20px;
- }
- .spanvalue {
- display: inline-block;
- min-width: 200px;
- border-bottom: 1px solid rgb(172, 172, 172);
- }
+
+// 鍗$墖鍐呰〃鏍硷紙浜插睘鍙风爜锛�
+.section-card__body {
+ ::v-deep .el-table {
+ th.el-table__cell {
+ background: #f5f7fb;
+ color: #303133;
+ font-weight: 600;
+ }
+ }
+}
+
+// ===== 鏈嶅姟璁板綍 =====
+.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;
}
}
- .headline {
- font-size: 25px;
- padding-left: 5px;
- margin-bottom: 10px;
- border-left: 8px solid rgb(65, 161, 190);
- }
- .headlines {
- font-size: 25px;
+ .service-card__header {
display: flex;
- width: 88%;
+ align-items: center;
justify-content: space-between;
- padding-left: 5px;
- margin-bottom: 10px;
- border-left: 8px solid rgb(65, 161, 190);
+ padding-bottom: 14px;
+ border-bottom: 1px dashed #eef0f4;
}
- .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;
+
+ .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;
}
}
}
-.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);
-}
-.sontwoactiveName {
- margin: 0 auto;
-}
-::v-deep.el-table .warning-row {
- background: oldlace;
+
+// 榛樿鑱旂郴鏂瑰紡楂樹寒琛�
+::v-deep .el-table .warning-row {
+ background: #fff7e6;
}
</style>
--
Gitblit v1.9.3