WXL (wul)
16 小时以前 a9d2b856e0f6be6475319c2dc36bf405c2f908fc
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>
    <!-- 患者信息头部 -->
    <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> 健康档案</span
          ><i class="el-icon-date"></i> 患者档案</span
        >
        基本信息
      </el-tab-pane>
      <el-tab-pane name="medical">
        <span class="mulsz" slot="label"
          ><i class="el-icon-s-management"></i> 医疗档案</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 @@
    <!-- 健康档案模块 -->
    <div class="information-content" v-if="activeName == 'health'">
      <div class="top-message">
        <div class="headline">基础信息</div>
        <div class="detailed">
          <div class="one-column">
            <div>患者姓名:<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">保存患者档案</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="患者姓名" 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">正常饮食</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="责任护士"
            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="责任护士"
            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="责任护士"
            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"
              >(终止原因:患者痊愈回访结束,终止时间: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"
                >患者配合度: <span style="color: #2775b6">高</span></el-col
              >
            </el-row>
          </div>
          <div style="margin-top: 10px">
            随访结果: <span style="color: #2775b6">患者痊愈,身体倍棒</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", //医疗档案导航
      dynamicTags: ["标签一", "标签二", "标签三"],
      dynamicTags: [],
      record: [
        {
          name: "宣教任务",
          serviceType: "4",
          templatename: "管饲宣教一期",
          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() {
    // 查询医疗档案各列表信息
    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,
      };
      // 患者基础信息
      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];
        }
      });
      // 联系信息
    },
    // 保存患者档案
    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;
// ===== 患者信息头部 =====
.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;
  }
}
// ===== 健康档案卡片 =====
.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;
  }
}
// ===== 医疗档案表格 =====
.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>