xinelu-web/src/views/system/Specializedlist/index.vue
2023-10-13 08:58:50 +08:00

3105 lines
111 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="姓名" prop="patientName">
<el-input
v-model="queryParams.patientName"
placeholder="请输入姓名"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="身份证号" prop="roleKey">
<el-input
v-model="queryParams.identity"
placeholder="请输入身份证号"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="预约开始时间">
<el-date-picker
type="date"
placeholder="选择开始时间"
v-model="queryParams.applyStartDate"
style="width: 100%"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item label="预约结束时间">
<el-date-picker
type="date"
placeholder="选择结束时间"
v-model="queryParams.applyEndDate"
style="width: 100%"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item label="预约项目" prop="status">
<el-select clearable v-model="queryParams.projectId" placeholder="请选择">
<el-option
v-for="item in optionsList"
:key="item.projectId"
:label="item.projectName"
:value="item.projectId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="预约机构" prop="status">
<treeselect
v-model="queryParams.deptId"
:options="deptOptions"
:normalizer="normalizer"
placeholder="选择机构"
style="width: 240px"
/>
<!-- 根据权限方法进行禁用 disabled -->
</el-form-item>
<el-form-item label="预约状态" prop="exceedStatus">
<el-select v-model="queryParams.exceedStatus" clearable style="width: 240px">
<el-option label="生效中" value="0"></el-option>
<el-option label="已过期" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="登记状态" prop="screeningStatus">
<el-select v-model="queryParams.registrationStatus" clearable style="width: 240px">
<el-option label="全部" value></el-option>
<el-option label="未登记" value="0"></el-option>
<el-option label="已登记" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="筛查结果" prop="status">
<el-select v-model="queryParams.hasResult" clearable style="width: 240px">
<el-option label="未生成" value="0"></el-option>
<el-option label="已生成" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="筛查类型" prop="status">
<el-select v-model="queryParams.screeningType" clearable style="width: 240px">
<el-option label="居民预约" value="1"></el-option>
<el-option label="医生推送" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="诊断状态" prop="status">
<el-select v-model="queryParams.hasDiagnose" clearable style="width: 240px">
<el-option label="未诊断" value="0"></el-option>
<el-option label="已诊断" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="扫码登记" prop="status">
<el-input
v-model="queryParams.applyCode"
placeholder="请扫码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery1"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<!-- <el-button type="danger" plain icon="el-icon-edit" size="mini" @click="fxpg()"
>风险评估</el-button
>-->
<!-- <el-button type="success" plain icon="el-icon-edit" size="mini" @click="nrsg">纳入专病患者管理</el-button> -->
<!-- <el-button
plain type="primary" icon="el-icon-s-marketing" size="mini" @click="sc()">筛查</el-button>-->
<!-- <el-button plain type="success" icon="el-icon-s-marketing" size="mini" @click="handleDelete()">健康中心</el-button> -->
<!-- <el-dropdown>
<el-button type="primary" size="mini" plain style="margin-left: 3px; margin-right: 3px" :disabled="diabledyd">
糖尿病-眼底病变筛查<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="ydbb()">
糖尿病-眼底病变筛查</el-dropdown-item>
<el-dropdown-item @click.native="ydbbck()">
糖尿病-眼底病变筛查查看</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown>
<el-button type="danger" size="mini" plain style="margin-left: 3px; margin-right: 3px" :disabled="diabledxs">
糖尿病-血小板筛查<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="xxb()"> 糖尿病-血小板筛查</el-dropdown-item>
<el-dropdown-item @click.native="xxbck()">
糖尿病-血小板筛查查看</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>-->
<!-- <el-button type="warning" plain icon="el-icon-edit" size="mini" @click="yydj">预约登记</el-button> -->
<!-- <el-button type="primary" plain icon="el-icon-edit" size="mini" @click="jgck">结果查看</el-button>
<el-button type="warning" plain icon="el-icon-edit" size="mini" @click="subscribeRegister">写诊断</el-button>-->
<!-- <el-button plain type="primary" icon="el-icon-s-marketing" size="mini" @click="ydbb()" :disabled="diabledyd">糖尿病-眼底病变筛查</el-button> -->
<!-- <el-button plain type="danger" icon="el-icon-s-marketing" size="mini" @click="xxb()" :disabled="diabledxs">糖尿病-血小板筛查</el-button> -->
<!-- <el-button plain type="success" icon="el-icon-s-marketing" size="mini" @click="dpl()" :disabled="diableddpl">多普勒动脉粥样筛查</el-button> -->
<!-- <el-button plain type="success" icon="el-icon-s-marketing" size="mini" @click="zmzwgl()">居民自我管理信息展示</el-button>
<el-button plain type="primary" @click="jkcf()" size="mini" icon="el-icon-s-custom">居民健康处方展示</el-button>-->
<!-- <el-button plain icon="el-icon-plus" type="primary" size="mini" @click="yth()"
>一体化照护方案</el-button
>
<el-button type="danger" plain @click="sf()" size="mini" icon="el-icon-edit"
>随访</el-button
>-->
<!-- <el-button
@click="qx()"
plain
type="success"
size="mini"
icon="el-icon-edit"
>签约</el-button
>-->
<!-- <el-button plain icon="el-icon-plus" type="primary" size="mini" @click="zzgl()"
>终止管理</el-button
>-->
</el-col>
<!-- <el-col :span="1.5" style="margin-left: 49%">
<div>
<div style="display: flex; justify-content: end; align-items: center">
<div style="font-weight: 600">完成:</div>
<div
style="
border-radius: 50%;
background: rgb(68 234 75);
margin-left: 5px;
margin-right: 20px;
width: 20px;
height: 20px;
"
></div>
<div style="font-weight: 600">未完成:</div>
<div
style="
border-radius: 50%;
margin-left: 5px;
margin-right: 20px;
background: #ffeb3b;
width: 20px;
height: 20px;
"
></div>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</div>
</div>
</el-col>-->
<!-- <div style="font-weight: 600">高危:</div> -->
<!-- <div style="
border-radius: 50%;
margin-left: 5px;
margin-right: 20px;
background: #f44141;
width: 20px;
height: 20px;
"></div>
<div style="font-weight: 600">未知:</div>-->
<!-- <div style="margin-right: 20px">-</div> -->
</el-row>
<el-table ref="multipleTable" @row-click="singleElection" v-loading="loading" :data="postList">
<!-- <el-table-column
type="selection"
width="55">
</el-table-column>-->
<!-- <el-table-column align="center" width="55">
<template slot-scope="scope">-->
<!-- <el-radio class="radio" v-model="templateSelection" :label="scope.row.screeningId">{{ a }}</el-radio> -->
<!-- </template>
</el-table-column>-->
<el-table-column label="姓名" prop="patientName" align="center" />
<el-table-column
label="性别"
prop="gender"
:show-overflow-tooltip="true"
align="center"
width="60"
>
<template slot-scope="scope">
<span v-if="scope.row.gender == 'MAIL'">男</span>
<span v-if="scope.row.gender == 'FEMALE'">女</span>
</template>
</el-table-column>
<el-table-column label="年龄" width="60" align="center" prop="age" />
<el-table-column label="手机号码" prop="phone" align="center">
<!-- <template slot-scope="scope">
<el-switch
v-model="scope.row.status"
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
></el-switch>
</template>-->
</el-table-column>
<el-table-column label="身份证号" prop="identity" :show-overflow-tooltip="true" align="center" />
<el-table-column label="预约项目" prop="projectName" align="center" width="160" />
<el-table-column label="预约机构" :show-overflow-tooltip="true" prop="hospitalName" align="center" />
<!-- <el-table-column label="慢病" width="180" align="center">
<template slot-scope="scope">
<div style="display: flex;margin:0 auto">
<div v-if="scope.row.disease">高血压,</div>
<div v-if="scope.row.disease.indexOf(2) != -1">糖尿病,</div>
<div v-if="scope.row.disease.indexOf(3) != -1">高血脂</div>
</div>
</template>
</el-table-column>
<el-table-column label="糖尿病-眼底筛查完成状态" width="200" align="center">
<template slot-scope="scope">
<div style="display: flex;">
<div
v-if="scope.row.eyeStatus == 1"
style="
border-radius: 50%;
background: rgb(68 234 75);
margin-left: 5px;
margin-right: 20px;
width: 20px;
height: 20px;
margin:0 auto
"
></div>
<div
v-if="scope.row.eyeStatus == 0"
style="
border-radius: 50%;
margin-left: 5px;
margin-right: 20px;
background: #ffeb3b;
width: 20px;
margin:0 auto
height: 20px;
"
></div>
</div>
</template>
</el-table-column>
<el-table-column label="糖尿病-血小板筛查完成状态" width="200">
<template slot-scope="scope">
<div style="display: flex">
<div
v-if="scope.row.plateletStatus == 1"
style="
border-radius: 50%;
background: rgb(68 234 75);
margin-left: 5px;
margin-right: 20px;
width: 20px;
height: 20px;
margin:0 auto;
"
></div>
<div
v-if="scope.row.plateletStatus == 0"
style="
border-radius: 50%;
margin-left: 5px;
margin-right: 20px;
background: #ffeb3b;
width: 20px;
height: 20px;
margin:0 auto;
"
></div>
</div>
</template>
</el-table-column>-->
<!-- <el-table-column label="高血压风险等级" prop="postId" :show-overflow-tooltip="true" width="150" /> -->
<!-- <el-table-column label="慢病人群" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.diabetesFlag == 1">糖尿病 </span>
<span v-if="scope.row.hyperlipemiaFlag == 1">高血压 </span>
<span v-if="scope.row.hypertensionFlag == 1">高血脂 </span>
</template>
</el-table-column>
<el-table-column label="高血压" align="center" prop="riskLevelHbp" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div style="width: 20px; margin: 0 auto">
<div v-if="scope.row.riskLevelHbp == '1'" style="
border-radius: 50%;
background: rgb(68 234 75);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelHbp == '2'" style="
border-radius: 50%;
background: rgb(255, 235, 59);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelHbp == '3'" style="
border-radius: 50%;
background: #f44141;
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelHbp == '极高危'" style="
border-radius: 50%;
background: #b42fa9;
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelHbp == '0' || !scope.row.riskLevelAscvd">-</div>
</div>
</template>
</el-table-column>
<el-table-column label="糖尿病" align="center" prop="riskLevelDm">
<template slot-scope="scope">
<div style="width: 20px; margin: 0 auto">
<div v-if="scope.row.riskLevelDm == '1'" style="
border-radius: 50%;
background: rgb(68 234 75);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelDm == '2'" style="
border-radius: 50%;
background: rgb(255, 235, 59);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelDm == '3'" style="
border-radius: 50%;
background: #f44141;
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelDm == '极高危'" style="
border-radius: 50%;
background: #b42fa9;
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelDm == '0' || !scope.row.riskLevelAscvd">-</div>
</div>
</template>
</el-table-column>
<el-table-column label="高血脂" prop="riskLevelHpd" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div style="width: 20px; margin: 0 auto">
<div v-if="scope.row.riskLevelHpd == '1'" style="
border-radius: 50%;
background: rgb(68 234 75);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelHpd == '2'" style="
border-radius: 50%;
background: rgb(255, 235, 59);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelHpd == '3'"
style="border-radius: 50%; background: #f44141; width: 20px; height: 20px"></div>
<div v-if="scope.row.riskLevelHpd == '极高危'"
style="border-radius: 50%; background: #b42fa9; width: 20px; height: 20px"></div>
<div v-if="scope.row.riskLevelHpd == '0' || !scope.row.riskLevelAscvd">-</div>
</div>
</template>
</el-table-column>
<el-table-column label="ASCVD" prop="riskLevelAscvd" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div style="width: 20px; margin: 0 auto">
<div v-if="scope.row.riskLevelAscvd == '1'" style="
border-radius: 50%;
background: rgb(68 234 75);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelAscvd == '2'" style="
border-radius: 50%;
background: rgb(255, 235, 59);
width: 20px;
height: 20px;
"></div>
<div v-if="scope.row.riskLevelAscvd == '3'"
style="border-radius: 50%; background: #f44141; width: 20px; height: 20px"></div>
<div v-if="scope.row.riskLevelAscvd == '极高危'"
style="border-radius: 50%; background: #b42fa9; width: 20px; height: 20px"></div>
<div v-if="scope.row.riskLevelAscvd == '0' || !scope.row.riskLevelAscvd">-</div>
</div>
</template>
</el-table-column>-->
<!-- <el-table-column label="纳入时间" align="center" prop="postId">
<template slot-scope="scope">
<span>{{ scope.row.manageTime }}</span>
</template>
</el-table-column>-->
<el-table-column
label="预约开始时间"
prop="applyStartTime"
:show-overflow-tooltip="true"
align="center"
width="150"
></el-table-column>
<el-table-column
label="预约结束时间"
prop="applyEndTime"
:show-overflow-tooltip="true"
align="center"
width="150"
/>
<!-- <template slot-scope="scope">
<span v-if="scope.row.manageStatus == 1">在管</span>
<span v-if="scope.row.manageStatus == 0">终止</span>
</template>-->
<el-table-column
label="预约状态"
prop="exceedStatus"
:show-overflow-tooltip="true"
align="center"
>
<template slot-scope="scope">
<span v-if="scope.row.exceedStatus == 0">生效中</span>
<span v-if="scope.row.exceedStatus == 1">已过期</span>
</template>
</el-table-column>
<el-table-column
label="登记状态"
prop="registrationStatus"
:show-overflow-tooltip="true"
align="center"
>
<template slot-scope="scope">
<span v-if="scope.row.screeningStatus > 2">已登记</span>
<span v-if="scope.row.screeningStatus < 2">未登记</span>
</template>
</el-table-column>
<el-table-column
label="登记时间"
align="center"
prop="registrationDate"
:show-overflow-tooltip="true"
/>
<el-table-column
label="登记条码号"
align="center"
width="100px"
prop="registrationCode"
:show-overflow-tooltip="true"
/>
<el-table-column label="筛查结果" prop="hasResult" align="center">
<template slot-scope="scope">
<span v-if="scope.row.hasResult == 0">未生成</span>
<span v-if="scope.row.hasResult == 1">已生成</span>
</template>
</el-table-column>
<el-table-column label="筛查类型" prop="screeningType" align="center">
<template slot-scope="scope">
<span v-if="scope.row.screeningType == 1">居民预约</span>
<span v-if="scope.row.screeningType == 2">医生推送</span>
</template>
</el-table-column>
<el-table-column label="诊断状态" prop="hasDiagnose" align="center">
<template slot-scope="scope">
<span v-if="scope.row.hasDiagnose == 0">未诊断</span>
<span v-if="scope.row.hasDiagnose == 1">已诊断</span>
</template>
</el-table-column>
<el-table-column
label="推送日期"
align="center"
width="100px"
prop="pushDate"
:show-overflow-tooltip="true"
/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-if="scope.row.hasDiagnose == 1"
size="mini"
type="text"
@click="goToPerformanceDetailxxb(scope.row)"
>查看结果</el-button
>
<el-button
size="mini"
type="text"
v-if="role == 'sdCommon' && scope.row.hasDiagnose == 0"
@click="ydbb(scope.row)"
>写诊断</el-button>
<!-- scope.row.screeningType == 1 只有等于居民预约的时候才会显示该按钮 1 == 居民预约 2 == 医生推送 -->
<el-button
size="mini"
type="text"
v-if="role == 'sdCommon' && scope.row.screeningStatus < 2 && scope.row.screeningType == 1"
@click="yydj(scope.row)"
>登记</el-button>
<!-- <el-button size="mini" type="text"
v-if="role == 'staff' && scope.row.manageStatus == 0" @click="nrsg(scope.row)">纳入专病管理</el-button>-->
</template>
</el-table-column>
<!-- <el-table-column
label="家庭地址"
align="center"
prop="address"
:show-overflow-tooltip="true"
/>-->
<!-- <el-table-column label="所属机构" align="center" prop="orgName" :show-overflow-tooltip="true" />
<el-table-column label="管理机构" align="center" prop="manageOrgName" :show-overflow-tooltip="true" />
<el-table-column label="管理医生" align="center" prop="doctorName" :show-overflow-tooltip="true" />-->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
:page-sizes="[15, 30, 45, 60]"
@pagination="getList"
/>
<el-dialog :title="title" :visible.sync="ydbbopen" width="60%" append-to-body>
<div style="display: flex; justify-content: space-around" v-if="title == '糖尿病-眼底病变筛查'">
<div>
<el-upload
ref="upload"
:action="url"
list-type="picture-card"
:headers="headers"
:data="type"
:file-list="fileList"
:on-success="
(res, file) => {
handleAvatarSuccess(item, res, file);
}
"
:auto-upload="true"
:on-change="onExceed1"
>
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{ file }">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt />
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in"></i>
</span>
<!-- <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download"></i>
</span>
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
<i class="el-icon-delete"></i>
</span>-->
</span>
</div>
</el-upload>
<div style="margin-top: 20px; margin-bottom: 20px">左眼图片</div>
</div>
<div>
<el-upload
ref="upload1"
:action="url"
list-type="picture-card"
:headers="headers"
:data="typeyy"
:on-success="
(res, file) => {
handleAvatarSuccessyy(item, res, file);
}
"
:auto-upload="true"
:on-exceed="handleExceed"
:file-list="fileList1"
:on-change="onExceed"
>
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{ file }">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt />
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in"></i>
</span>
<!-- <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download"></i>
</span>
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
<i class="el-icon-delete"></i>
</span>-->
</span>
</div>
</el-upload>
<div style="margin-top: 20px; margin-bottom: 20px">右眼图片</div>
</div>
</div>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
v-if="title == '血小板筛查'"
>
<el-upload
ref="upload3"
:action="url"
list-type="picture-card"
:headers="headers"
:data="typexxb"
style="margin: 30px; margin-left: 10px"
:on-success="
(res, file) => {
handleAvatarSuccessxxb(res, file);
}
"
:auto-upload="true"
:file-list="fileList2"
:on-change="onExceed"
>
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{ file }">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt />
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in"></i>
</span>
<!-- <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download"></i>
</span>
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
<i class="el-icon-delete"></i>
</span>-->
</span>
</div>
</el-upload>
<el-form-item label="诊断结果" prop="desc">
<el-input type="textarea" v-model="ruleForm.descdxxb"></el-input>
</el-form-item>
</el-form>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
v-if="title == '阿尔兹海默症筛查'"
>
<el-upload
:auto-upload="true"
class="upload-demo"
:action="url"
:headers="headers"
:data="typexamz"
:file-list="fileList3"
:on-change="onExceed"
:on-preview="onFileitem"
:before-upload="beforeAvatarUpload"
accept=".doc, .docx"
:on-success="
(res, file) => {
handleAvatarSuccessamz(res, file);
}
"
>
<el-button size="small" type="primary" v-if="isflas == true">点击上传</el-button>
<div slot="tip" class="el-upload__tip" v-if="isflas == true">只能上传docx/doc文件</div>
</el-upload>
<el-form-item label="诊断结果" prop="desc" style="margin-top:60px" v-if="isflas == true">
<el-input type="textarea" v-model="ruleForm.descdxxb" ></el-input>
</el-form-item>
<el-form-item label="诊断结果" prop="desc" style="margin-top:60px" else>
<el-input type="textarea" v-model="ydmb.diagnosticResult" ></el-input>
</el-form-item>
</el-form>
<ul style="list-style: none;" ref="LDQZOne" v-show="false"></ul>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
v-if="title == '糖尿病-眼底病变筛查'"
>
<el-form-item label="眼底诊断结果" prop="desc">
<el-input type="textarea" v-model="ruleForm.descyd"></el-input>
</el-form-item>
</el-form>
<div style="width: 100%" v-if="title == '健康处方'">
<table
border="1"
width="1100"
style="
border: 1px dashed #a1a1a1;
margin-bottom: 20px;
border-radius: 10px;
"
height="100"
cellspacing="0"
>
<tr>
<td
colspan="1"
style="
display: flex;
justify-content: center;
align-items: center;
border: 1px dashed #a1a1a1;
"
>
<h3 style="color: #4192f4">健康教育处方:</h3>
</td>
<td
style="border: 1px dashed #a1a1a1; width: 900px"
>{{ prescriptionData.healthEducation }}</td>
</tr>
<tr>
<td
colspan="1"
style="
display: flex;
justify-content: center;
align-items: center;
border: 0px dashed #a1a1a1;
"
>
<h3 style="color: #4192f4">用药调整处方:</h3>
</td>
<td style="border: 1px dashed #a1a1a1; width: 900px">{{ prescriptionData.nutritional }}</td>
</tr>
<tr>
<td
colspan="1"
style="
display: flex;
justify-content: center;
align-items: center;
border: 1px dashed #a1a1a1;
"
>
<h3 style="color: #4192f4">运动治疗处方:</h3>
</td>
<td style="border: 1px dashed #a1a1a1; width: 900px">{{ prescriptionData.exercise }}</td>
</tr>
<tr>
<td
colspan="1"
style="
display: flex;
justify-content: center;
align-items: center;
border: 0px dashed #a1a1a1;
"
>
<h3 style="color: #4192f4">营养治疗处方:</h3>
</td>
<td style="border: 1px dashed #a1a1a1; width: 900px">{{ prescriptionData.nutritional }}</td>
</tr>
</table>
</div>
<el-form :inline="true" ref="myManagemenForm" :model="zwglForm" v-if="title == '自我管理'">
<div style="border: 1px solid #dcdfe6; padding: 10px; margin-bottom: 20px">
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
justify-content: center;
"
>
<div style="font-size: 17px; font-weight: 900">体征</div>
</div>
<el-divider></el-divider>
<div style="display: flex; margin-bottom: 20px; flex-flow: wrap">
<el-form-item label="体重">
<div style="display: flex; align-items: center">
<div>
<el-input v-model="boxlook.weight" disabled></el-input>
</div>
<div style="margin-left: 10px">(Kg)</div>
</div>
</el-form-item>
<el-form-item label="指导体重">
<div style="display: flex; align-items: center">
<div>
<el-input disabled v-model="boxlook.targetWeight"></el-input>
</div>
<div style="margin-left: 10px">(Kg)</div>
</div>
</el-form-item>
<el-form-item label="身高:">
<div style="display: flex; align-items: center">
<div>
<el-input v-model="boxlook.height" disabled></el-input>
</div>
<div style="margin-left: 10px">(CM)</div>
</div>
</el-form-item>
<el-form-item label="腰围:">
<div style="display: flex; align-items: center">
<div>
<el-input v-model="boxlook.waist" disabled></el-input>
</div>
<div style="margin-left: 10px">(CM)</div>
</div>
</el-form-item>
<el-form-item label="目标腰围:">
<div style="display: flex; align-items: center">
<div style="width: 120px">
<el-input v-model="boxlook.targetWaist" disabled></el-input>
</div>
<div style="margin-left: 10px">(CM)</div>
</div>
</el-form-item>
<el-form-item label="血压:">
<div style="display: flex; align-items: center">
<div>
<el-form-item>
<el-input
v-model="boxlook.bpDbp"
style="width: 120px"
disabled
placeholder="舒张压"
></el-input>
</el-form-item>
</div>
<div>-</div>
<div>
<el-form-item style="margin-left: 10px">
<el-input
v-model="boxlook.bpSbp"
style="width: 120px"
disabled
placeholder="收缩压"
></el-input>
</el-form-item>
</div>
</div>
</el-form-item>
<el-form-item label="血压测量时间:">
<el-date-picker
type="datetime"
placeholder="血压测量时间"
disabled
v-model="boxlook.bpMeasuringTime"
style="width: 100%"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item label="目标血压:">
<div style="display: flex; align-items: center">
<div>
<el-form-item>
<el-input
disabled
v-model="boxlook.targetBpDbp"
style="width: 120px"
placeholder="舒张压"
></el-input>
</el-form-item>
</div>
<div>-</div>
<div>
<el-form-item style="margin-left: 10px">
<el-input
disabled
v-model="boxlook.targetBpSbp"
style="width: 120px"
placeholder="收缩压"
></el-input>
</el-form-item>
</div>
</div>
</el-form-item>
<el-form-item label="心率:">
<div style="display: flex; align-items: center">
<div>
<el-input disabled v-model="boxlook.heartRate"></el-input>
</div>
<div style="margin-left: 10px">(次/分)</div>
</div>
</el-form-item>
<el-form-item label="血糖:">
<div style="display: flex; align-items: center">
<div>
<el-input v-model="boxlook.bg" disabled></el-input>
</div>
<div style="margin-left: 10px">(mmol/L)</div>
</div>
</el-form-item>
<el-form-item label="血糖测量时间:">
<el-date-picker
type="datetime"
disabled
placeholder="血糖测量时间"
v-model="boxlook.bgMeasuringTime"
style="width: 100%"
value-format="yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item label="目标血糖:">
<el-input v-model="boxlook.targetBg" disabled></el-input>
</el-form-item>
<el-form-item label="吸烟:">
<div style="display: flex; align-items: center">
<div>
<el-input disabled style="width: 150px" v-model="boxlook.smoking"></el-input>
</div>
<div style="margin-left: 10px">(支)</div>
</div>
</el-form-item>
<el-form-item label="饮酒:">
<div style="display: flex; align-items: center">
<div>
<el-input disabled style="width: 150px" v-model="boxlook.drinking"></el-input>
</div>
<div style="margin-left: 10px">(两/瓶)</div>
</div>
</el-form-item>
</div>
</div>
<div style="display: flex; justify-content: space-between">
<div style="border: 1px solid #dcdfe6; width: 30%; padding: 20px">
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
justify-content: center;
"
>
<div style="font-size: 17px; font-weight: 900">饮食</div>
</div>
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
justify-content: center;
font-size: 18px;
"
>最新更新日期:{{ boxlook.manageDate }}</div>
<el-divider></el-divider>
<div>
<div style="padding: 10px">
<span style="color: #8495ff">早餐:</span>
<span style="margin-left: 20px">
{{
boxlook.breakfastMain
}}
</span>
</div>
<div style="padding: 10px">
<span style="color: #8495ff">午餐:</span>
<span style="margin-left: 20px">{{ boxlook.lunchMain }}</span>
</div>
<div style="padding: 10px">
<span style="color: #8495ff">晚餐:</span>
<span style="margin-left: 20px">{{ boxlook.supperMain }}</span>
</div>
</div>
<el-divider></el-divider>
<div style="padding: 10px">
{{ boxlook.breakfastSide }},{{ boxlook.lunchSide }},{{
boxlook.supperSide
}}
</div>
</div>
<div style="border: 1px solid #dcdfe6; padding: 10px; width: 35%">
<div
style="
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 20px;
"
>
<div style="font-size: 17px; font-weight: 900">运动</div>
</div>
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
justify-content: center;
font-size: 18px;
"
>最新更新日期:{{ boxlook.manageDate }}</div>
<el-divider></el-divider>
<div style="display: flex; justify-content: start">
<div
v-if="
boxlook.dailyExerciseWay1 &&
!boxlook.dailyExerciseWay2 &&
!boxlook.dailyExerciseWay3
"
>
<div style="color: #8495ff; font-size: 20px">{{ boxlook.dailyExerciseWay1 }}</div>
<div
style="margin-top: 40px; margin-bottom: 40px; font-size: 14px"
>运动时间:{{ boxlook.dailyExerciseStart1 }}</div>
<div style="font-size: 17px">运动时长:{{ boxlook.dailyExerciseDuration1 }}分钟</div>
</div>
<div v-if="boxlook.dailyExerciseWay2 && !boxlook.dailyExerciseWay3">
<div style="color: #8495ff; font-size: 20px">{{ boxlook.dailyExerciseWay2 }}</div>
<div
style="margin-top: 40px; margin-bottom: 40px; font-size: 14px"
>运动时间:{{ boxlook.dailyExerciseStart2 }}</div>
<div style="font-size: 17px">运动时长:{{ boxlook.dailyExerciseDuration2 }}分钟</div>
</div>
<div v-if="boxlook.dailyExerciseWay3">
<div style="color: #8495ff; font-size: 20px">{{ boxlook.dailyExerciseWay3 }}</div>
<div
style="margin-top: 40px; margin-bottom: 40px; font-size: 14px"
>运动时间:{{ boxlook.dailyExerciseStart3 }}</div>
<div style="font-size: 17px">运动时长:{{ boxlook.dailyExerciseDuration3 }}分钟</div>
</div>
</div>
</div>
<div style="border: 1px solid #dcdfe6; width: 30%; padding: 20px">
<div
style="
display: flex;
justify-content: center;
margin-bottom: 20px;
"
>
<div style="font-size: 17px; font-weight: 900">用药</div>
</div>
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
justify-content: center;
font-size: 18px;
"
>最新更新日期:{{ boxlook.manageDate }}</div>
<el-divider></el-divider>
<div style="color: #8495ff">{{ yyArrData.drugName }}</div>
<div style="margin-top: 20px; margin-bottom: 20px">剂量:{{ yyArrData.drugSpec }}</div>
<div>频次:{{ yyArrData.drugFreq }}</div>
<el-divider></el-divider>
<el-row>
<el-form-item label="服药依从性:">
<el-radio-group v-model="boxlook.compliance">
<el-radio
disabled
v-for="(item, index) in complianceList"
:key="index"
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-form-item label="不良反应:">
<el-radio-group v-model="boxlook.adr">
<el-radio
disabled
v-for="(item, index) in adrList"
:key="index"
:label="item.value"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</div>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveallisflas" v-if="isflas == false">确 定</el-button>
<el-button type="primary" @click="saveall" v-else>确 定</el-button>
<el-button @click="ydbbopen = false">取 消</el-button>
</div>
</el-dialog>
<el-dialog
:title="title"
:visible.sync="xxbopen"
width="70%"
append-to-body
@close="ydbbckopen = false"
>
<div
style="
display: flex;
height: 600px;
overflow-y: auto;
padding-left: 100px;
"
>
<!-- <div id="time" @click="time" v-if="isCollapse"></div>
<div id="time1" @click="time" v-if="!isCollapse"></div>-->
<div style="width: 100%; height: 790px; overflow-y: auto">
<div style="display: flex; justify-content: space-around">
<div>
<el-image
:src="urlimg + attachment"
:preview-src-list="srcList"
style="width: 300px; height: 300px"
></el-image>
</div>
</div>
<el-form style="padding-left: 200px">
<el-form-item label="诊断结果" prop="desc">
<el-input type="textarea" v-model="ydmb.diagnosticResult"></el-input>
</el-form-item>
</el-form>
</div>
</div>
</el-dialog>
<!-- 添加或修改角色配置对话框 -->
<el-dialog
:title="title"
:visible.sync="ydbbckopen"
width="70%"
append-to-body
@close="ydbbckopen = false"
>
<div style="display: flex; height: 600px; justify-content: center">
<!-- <div id="time" @click="time" v-if="isCollapse"></div>
<div id="time1" @click="time" v-if="!isCollapse"></div>-->
<div style="width: 100%; height: 790px; overflow-y: auto">
<div style="display: flex; justify-content: space-around">
<div>
<div>
<el-image
:src="urlimg + attachment"
style="width: 120px; height: 130px; margin-left: 10px"
></el-image>
<div
style="
margin-top: 20px;
margin-bottom: 20px;
margin-left: 40px;
"
>左眼图片</div>
</div>
</div>
<div>
<el-image
:src="urlimg + attachmentTwo"
style="width: 120px; height: 130px; margin-left: 10px"
></el-image>
<div style="margin-top: 20px; margin-bottom: 20px; margin-left: 40px">右眼图片</div>
</div>
</div>
<el-form style="padding-left: 200px">
<el-form-item label="诊断结果" prop="desc">
<el-input type="textarea" v-model="ydmb.diagnosticResult"></el-input>
</el-form-item>
</el-form>
</div>
</div>
</el-dialog>
<!-- 分配角色数据权限对话框 -->
<el-dialog
title="风险评估"
:visible.sync="openDataScope"
append-to-body
:close-on-click-modal="false"
>
<div style="height: 500px; overflow-y: auto">
<!-- <ping-gu :rowData="query"></ping-gu> -->
<div v-for="(item, inxe) in gw" :key="inxe" style="margin-top: 10px">
<div style="display: flex">
<h3 style="margin-right: 10px; min-width: 20px; line-height: 7px">{{ item.id }}</h3>
<div v-if="item.id < 12">
<el-button
type="success"
style="background: #ebf9f9; color: #18bebe; border: #18bebe"
>{{ item.assessItem }}</el-button>
</div>
<div v-if="item.id >= 12 && item.id < 17">
<el-button
type="success"
style="background: #fff9eb; color: #fadd14"
>{{ item.assessItem }}</el-button>
</div>
<div v-if="item.id >= 17 && item.id < 23">
<el-button
type="success"
style="background: #ebf9f9; color: #18bebe; border: #18bebe"
>{{ item.assessItem }}</el-button>
</div>
<div v-if="item.id >= 23 && item.id < 31">
<el-button
type="success"
style="background: #fff2eb; color: #eb5e12; border: #18bebe"
>{{ item.assessItem }}</el-button>
</div>
<div v-if="item.id >= 31">
<el-button
type="success"
style="background: #ffebff; color: #c714fa; border: #c714fa"
>{{ item.assessItem }}</el-button>
</div>
<div
style="font-weight: 600; margin-left: 20px; line-height: 29px"
>{{ item.assessContent }}</div>
</div>
<!-- <div
v-if="item.pageTag == 0 && item.assessResult.indexOf('是;否') != -1"
>
<el-radio-group
style="margin-top: 10px"
v-model="item[`${item.itemTag}`]"
>
<el-radio label="是" value="1"></el-radio>
<el-radio label="否" value="2"></el-radio>
</el-radio-group>
</div>-->
<div v-if="item.pageTag == 0">
<el-radio-group v-model="item.result" style="margin-top: 10px">
<el-radio
v-for="(item, index2) in item.assessResult.split(';')"
:key="index2"
:label="index2 + 1"
>{{ item }}</el-radio>
</el-radio-group>
</div>
<div v-if="item.pageTag == 1 && item.editable == 1">
<el-input style="width: 300px; margin-top: 10px" v-model="item.result"></el-input>
</div>
<div v-if="item.pageTag == 1 && item.editable == 0">
<el-input style="width: 300px; margin-top: 10px" disabled v-model="item.result"></el-input>
</div>
<div
style="
background-color: #f7f7f7;
color: #666666;
height: 30px;
line-height: 30px;
margin-top: 20px;
"
>无最新消息,请参考健康档案</div>
<el-divider></el-divider>
</div>
<table
border="1"
width="800"
height="100"
cellspacing="0"
style="border-radius: 10px; width: 100%"
>
<tr>
<td
colspan="4"
style="width: 100%; height:40px;background:#f7f7f7;font-weight: 600;padding-left 50px;height: 60px;border-radius:10px; line-height: 60px;border:1px solid rgb(245, 247, 248);"
>
<div style="display: flex">
风险评估结果
<div style="margin-left: 50px">
<el-popover placement="top-start" trigger="hover">
<div style="display: flex">
<div
style="
width: 500px;
display: flex;
flex-direction: column;
justify-content: center;
"
>
<div style="margin: 10px 0; text-align: center">
<h2>高血压心血管病风险分层规则</h2>
</div>
<el-table
:data="gridData1"
border
:header-cell-style="{
background: '#eef1f6',
}"
>
<el-table-column property="date" label="其他危险因素和病史" width="190"></el-table-column>
<el-table-column property="name" label="1级高血压"></el-table-column>
<el-table-column property="name2" label="2级高血压"></el-table-column>
<el-table-column property="name3" label="3级高血压"></el-table-column>
</el-table>
<div
style="
width: 500px;
display: flex;
flex-direction: column;
justify-content: center;
"
>
<div style="margin: 10px 0; text-align: center">
<h2>高血脂心血管病风险分层规则</h2>
</div>
<el-table
:data="gridData4"
border
:header-cell-style="{
background: '#eef1f6',
}"
>
<el-table-column width="150" property="date" label="危险分层"></el-table-column>
<el-table-column
property="name"
label="TC:5.2~6.2mmol/L(200~ 240mg/dI)或LDL-C:3.4~4.1mmol/L(130~ 160mg/dI)"
></el-table-column>
<el-table-column
property="name2"
label="TC≥ 6.2mmol/L(240mg/dI)或LDL C≥4.1mmol/L(130~ 160mg/dI)"
></el-table-column>
</el-table>
</div>
</div>
<div
style="
width: 500px;
margin-left: 40px;
display: flex;
flex-direction: column;
justify-content: center;
"
>
<div style="margin: 10px 0; text-align: center">
<h2>糖尿病心血管病风险分层规则</h2>
</div>
<el-table
:data="gridData3"
border
:header-cell-style="{
background: '#eef1f6',
}"
>
<el-table-column width="100" property="date" label="分层"></el-table-column>
<el-table-column property="name" label="主要内容"></el-table-column>
</el-table>
<div
style="
width: 500px;
display: flex;
flex-direction: column;
justify-content: center;
"
>
<div style="margin: 10px 0; text-align: center">
<h2>ASCVD风险分层规则</h2>
</div>
<el-table
:data="gridData5"
border
:header-cell-style="{
background: '#eef1f6',
}"
>
<el-table-column width="150" property="date" label="危险因素个数"></el-table-column>
<el-table-column property="name" label="3.1≤TC<4.1(或)1.8≤LDL-C<2.6"></el-table-column>
<el-table-column property="name2" label="4.1≤TC<5.2(或)2.6≤LDL-C<3.4"></el-table-column>
<el-table-column property="name3" label="5.2≤TC<7.2(或)3.4≤LDL-C<4.9"></el-table-column>
</el-table>
</div>
</div>
</div>
<el-button round type="primary" slot="reference">分层规则</el-button>
</el-popover>
</div>
<div style="margin-left: 50px">
<el-button
round
@click="zdfc"
v-loading.fullscreen.lock="fullscreenLoading"
element-loading-text="加载中"
>自动分层</el-button>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="1" style="display: flex; justify-content: center">
<h3 style="color: #4192f4">高血压风险分层结果:</h3>
</td>
<td>
<el-radio-group style="margin-top: 10px" v-model="form.a">
<el-radio label="0">未评估</el-radio>
<el-radio label="1">低危</el-radio>
<el-radio label="2">中危</el-radio>
<el-radio label="3">高危</el-radio>
<!-- <el-radio label="未知" value="3"></el-radio> -->
</el-radio-group>
</td>
</tr>
<tr>
<td colspan="1" style="display: flex; justify-content: center">
<h3 style="color: #4192f4">高血糖风险分层结果:</h3>
</td>
<td>
<el-radio-group style="margin-top: 10px" v-model="form.b">
<el-radio label="0">未评估</el-radio>
<el-radio label="1">低危</el-radio>
<el-radio label="2">中危</el-radio>
<el-radio label="3">高危</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td colspan="1" style="display: flex; justify-content: center">
<h3 style="color: #4192f4">高血脂风险分层结果:</h3>
</td>
<td>
<el-radio-group style="margin-top: 10px" v-model="form.c">
<el-radio label="0">未评估</el-radio>
<el-radio label="1">低危</el-radio>
<el-radio label="2">中危</el-radio>
<el-radio label="3">高危</el-radio>
<!-- <el-radio label="未知" value="3"></el-radio -->
>
</el-radio-group>
</td>
</tr>
<tr>
<td colspan="1" style="display: flex; justify-content: center">
<h3 style="color: #4192f4">ASCVD风险评估结果:</h3>
</td>
<td>
<el-radio-group style="margin-top: 10px" v-model="form.d">
<el-radio label="0">未评估</el-radio>
<el-radio label="1">低危(&lt;5%)</el-radio>
<el-radio label="2">中危(5%~9%)</el-radio>
<el-radio label="3">高危(≥10%)</el-radio>
<!-- <el-radio label="未知" value="3"></el-radio> -->
</el-radio-group>
</td>
</tr>
</table>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitDataScope">确 定</el-button>
<el-button @click="cancelDataScope">取 消</el-button>
</div>
</el-dialog>
<el-dialog title="筛查" :visible.sync="open" width="900px" append-to-body>
<el-table :data="tableData" border style="width: 100%">
<el-table-column fixed prop="date" label="日期"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="province" label="省份"></el-table-column>
<el-table-column prop="city" label="市区"></el-table-column>
<el-table-column fixed="right" label="操作" width="100">
<template slot-scope="scope">
<el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
<el-button type="text" size="small">编辑</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import {
getRole,
delRole,
addRole,
updateRole,
dataScope,
changeRoleStatus,
deptTreeSelect,
receivescreening,
} from "@/api/system/Specializedlist";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
// import { receivescreening } from "@/api/system/Specializedlist";
import {
treeselect as menuTreeselect,
roleMenuTreeselect,
} from "@/api/system/menu";
// import PingGu from "./components/pinggu.vue";
import store from "../../../store";
import {
business,
qx,
thList,
zzg,
timelineList,
saveRate,
lastProjectRecord,
projectRecordypdata,
screening,
projecttList,
viewfiled,
getOrgnList
} from "@/api/system/Specializedlist";
// import { getOrgnList } from "@/api/analysis/analysis";
// import { getCurrentAgeByBirthDate } from "@/utils/conversion";
// import { config } from "@/utils/url";
import Cookies from "js-cookie";
export default {
name: "Role",
dicts: ["sys_normal_disable"],
components: {
Treeselect,
},
data() {
return {
baseurl: process.env.VUE_APP_BASE_API,
projectName:'',
isflas:false,
// 项目下拉
optionsList: [],
// 机构下拉
deptOptions: "",
attachment: "",
open: false,
checkedCities: [],
url: "",
type: { type: "leftEyePitureUrl" },
typeyy: { type: "rightEyePitureUrl" },
typexxb: { type: "plateletPitureUrl" },
typexamz: { type: "alzheimerFileUrl" },
typedpl: { code: "2004" },
boxlook: {},
attachmentdpl: "",
cities: [
{ text: "高血压", value: "1" },
{ text: "高血糖", value: "2" },
{ text: "高血脂", value: "3" }
],
ydbbopen: false,
idyd: "",
idxs: "",
iddm: "",
a: "",
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 角色表格数据
roleList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 是否显示弹出层(数据权限)
openDataScope: false,
menuExpand: false,
attachmentzy: "",
attachmentyy: "",
attachmentxxb: "",
attachmentamz:'',
menuNodeAll: false,
deptExpand: true,
deptNodeAll: false,
rate: {},
disabled: false,
fullscreenLoading: false,
// 日期范围
dateRange: [],
fileList1: [],
query: "",
// 数据范围选项
dataScopeOptions: [
{
value: "1",
label: "全部数据权限"
},
{
value: "2",
label: "自定数据权限"
},
{
value: "3",
label: "本部门数据权限"
},
{
value: "4",
label: "本部门及以下数据权限"
},
{
value: "5",
label: "仅本人数据权限"
}
],
tableData: [],
ydbbckopen: false,
xxbopen: false,
screeningId: "",
yyArrData: {},
title: "",
diabledyd: true,
srcList: [],
diableddpl: true,
diabledxs: true,
ruleForm: {},
gw: null,
postList: [],
fileList: [],
fileList2: [],
fileList3:[],
// 菜单列表
menuOptions: [],
// 部门列表
deptOptions: [],
activeNames: ["0"],
queryParams: {
pageNum: 1,
pageSize: 15,
name: null,
identity: null,
archivingStatus: null,
hasDiagnose: null,
exceedStatus: null,
hasResult: null,
residentName: null,
applyStartDate: null,
applyEndDate: null,
chronicGroup: null,
deptId: null,
registrationStatus: null
},
templateSelection: "",
// 表单参数
form: {},
defaultProps: {
children: "children",
label: "label"
},
gridData: [
{
date: "低危",
name: "高血压1级且无其他危险因素"
},
{
date: "中危",
name:
"(1)高血压2级无危险因素或伴 1~2 个危险因素;(2)高血压1级并伴危险因素 1~2个"
},
{
date: "高危",
name:
"(1)高血压3级;(2)高血压1或2级伴危险因素≥3个或靶器官损害;(3)高血压(任何级别)伴任何一项靶器官损害(左室肥厚、颈动脉内膜增厚、血肌酐轻度升高)(4)高血压(任何级别)并存任何一项临床疾患(心脏病、脑血管病、肾脏病、周围血管病、糖尿病等)"
}
],
elink: document.createElement("a"),
gridData1: [
{
date: "无",
name: "低危",
name2: "中危",
name3: "高危"
},
{
date: "1~2个其他危险因素",
name: "中危",
name2: "中危",
name3: "高危"
},
{
date: "≥3个其他危险因素靶器官损害并存的临床疾患",
name: "高危",
name2: "高危",
name3: "高危"
}
],
prescriptionData: {},
gridData2: [
{
date: "靶器官损害",
name:
"蛋白尿、肾脏损害[eGFR≤30ml/(min·1.73m)]左心室肥厚、心房颤动、视网膜病变等"
},
{
date: "心血管病危险因素",
name:
"心血管病既往史、早发心血管病家族史(一级亲属发病年龄<50岁)、年龄(>40岁)、高血压、血脂异常、吸烟、肥胖(BMI≥28kg/m2)、腹型肥胖(男性腰围≥90cm女性腰围≥85cm)、代谢综合征、高尿酸血症、高同型半胱酸(≥10μmol/L)等"
}
],
gridData3: [
{
date: "中危",
name:
"年轻患者1型糖尿病<35岁或2型糖尿病<50岁且糖尿病病程<10年不伴有其他危险因素"
},
{
date: "高危",
name: "糖尿病不伴有靶器官损害且病程≥10年或合并任意1个及以上危险因素"
},
{
date: "极高危",
name:
"糖尿病合并已确诊的心血管疾病或其他靶器官损害或≥3个主要危险因素或早发1型糖尿病且病程大于20年"
}
],
gridData4: [
{
date: "无高血压且其他危险因素<3",
name: "低危",
name2: "低危"
},
{
date: "高血压或其他危险因素≥3",
name: "低危",
name2: "中危"
},
{
date: "高血压且其他危险因素≥1",
name: "中危",
name2: "高危"
},
{
date: "冠心病及其等危症",
name: "高危",
name2: "高危"
}
],
role: "",
ydmb: {
diagnosticResult:'',
},
isCollapse: true,
urlimg: "",
registerId: "",
gridData5: [
{
date: "无高血压 0~1个",
name: "低危(<5%",
name2: "低危(<5%",
name3: "低危(<5%"
},
{
date: "无高血压 2个",
name: "低危(<5%",
name2: "低危(<5%",
name3: "中危5%~9%"
},
{
date: "无高血压 3个",
name: "低危(<5%",
name2: "中危5%~9%",
name3: "中危5%~9%"
},
{
date: "有高血压 0个",
name: "低危(<5%",
name2: "低危(<5%",
name3: "低危(<5%"
},
{
date: "有高血压 1个",
name: "低危(<5%",
name2: "中危5%~9%",
name3: "中危5%~9%"
},
{
date: "有高血压 2个",
name: "中危5%~9%",
name2: "高危≥10%",
name3: "高危≥10%"
},
{
date: "有高血压 3个",
name: "高危≥10%",
name2: "高危≥10%",
name3: "高危≥10%"
}
],
performanceTimer: [],
attachmentTwo: "",
// 表单校验
rules: {
roleName: [
{ required: true, message: "角色名称不能为空", trigger: "blur" }
],
roleKey: [
{ required: true, message: "权限字符不能为空", trigger: "blur" }
],
roleSort: [
{ required: true, message: "角色顺序不能为空", trigger: "blur" }
]
}
};
},
created() {
console.log(this.baseurl)
this.getList();
this.url = this.baseurl + "/system/station/updateNurseStationHeads";
this.isCollapse = true;
this.urlimg = this.baseurl;
getOrgnList().then(response => {
this.deptOptions = response.data;
});
let data = {
projectType: 1,
status: 0
};
store.dispatch("GetInfo").then(res => {
if (res.user.roles[0]) {
this.role = res.user.roles[0].roleKey;
}
});
// subscribeProjectList(data).then(res => {
// this.optionsList = res.data;
// });
projecttList(data).then((res) => {
this.optionsList = res.data;
});
},
computed: {
headers() {
return {
Authorization: Cookies.get("Admin-Token")
};
}
},
methods: {
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.hospitalName,
children: node.children
};
},
//结果查看
jgck() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
}
},
// 预约登记
subscribeRegister() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
}
},
// 查看结果
lookResult() {},
// 写诊断
writeDiagnose() {},
// 登记
registerFun() {},
goToPerformanceDetailxxb(item) {
// this.screeningId=
if (item.projectName == "糖尿病-眼底病变筛查") {
this.ydbbckopen = true;
} else if (item.projectName == "血小板筛查") {
this.xxbopen = true;
}
if (item.projectName == "阿尔兹海默症筛查") {
this.ydbbopen = true;
this.isflas=false;
this.attachment = "";
// this.ruleForm.descdxxb=''
this.fileList3 = [];
this.registerId = item.registerId;
this.screeningId = item.screeningId;
this.title = "阿尔兹海默症筛查";
screening(item.screeningId).then(res => {
this.ydmb = res.data;
// this.srcList = this.urlimg + res.data[0].attachment;
if (res.data.attachment) {
this.attachmentamz = res.data.attachment;
this.fileList3.push({
name: "阿尔兹海默症筛查诊断文件",
url: this.baseurl + res.data.attachment
});
}
});
}
this.attachmentTwo = "";
this.attachment = "";
this.title = item.projectName;
screening(item.screeningId).then(res => {
this.ydmb = res.data;
// this.srcList = this.urlimg + res.data[0].attachment;
this.attachment = res.data.attachment;
if (res.data.attachmentTwo) {
this.attachmentTwo = res.data.attachmentTwo;
}
});
},
// goToPerformanceDetail(item) {
// screening({ screeningId: item.value, projectName: "眼底" }).then((res) => {
// this.ydmb = res.data;
// this.attachmentTwo = res.data[0].attachmentTwo;
// this.attachment = res.data[0].attachment;
// });
// },
handleExceed() {
this.$message.warning(`只能上传1张图片`);
},
saveallisflas(){
this.ydbbopen = false;
},
saveall() {
if (this.title == "糖尿病-眼底病变筛查") {
projectRecordypdata({
attachment: this.attachmentzy,
attachmentTwo: this.attachmentyy,
screeningId: this.screeningId,
// recordId: this.idyd,
registerId: this.registerId,
diagnosticResult: this.ruleForm.descyd
}).then(res => {
this.$modal.msgSuccess("保存成功");
this.ydbbopen = false;
});
}
if (this.title == "血小板筛查") {
projectRecordypdata({
attachment: this.attachmentxxb,
// recordId: this.idxs,
registerId: this.registerId,
diagnosticResult: this.ruleForm.descdxxb,
screeningId: this.screeningId
}).then(res => {
this.$modal.msgSuccess("保存成功");
this.ydbbopen = false;
});
}
if (this.title == "阿尔兹海默症筛查") {
projectRecordypdata({
attachment: this.attachmentamz,
registerId: this.registerId,
diagnosticResult: this.ruleForm.descdxxb,
screeningId: this.screeningId
}).then(res => {
this.$modal.msgSuccess("保存成功");
this.ydbbopen = false;
});
}
this.resetQuery();
// if(this.title=='多普勒动脉粥样筛查'){
// projectRecordypdata({attachment:this.attachmentdpl,recordId:this.iddm,diagnosticResult:this.ruleForm.descdpl,screeningId:this.screeningId}).then((res)=>{
// this.$modal.msgSuccess("保存成功");
// this.ydbbopen=false
// })
// }
},
sc() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
let that = this;
that.open = true;
}
},
//预约登记
yydj(item) {
this.$confirm("您确定要登记?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
receivescreening(item.screeningId).then(res => {
this.$message({
type: "success",
message: res.data
});
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除"
});
});
},
nrsg(row) {
this.$confirm("您确定要纳入?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
saveRate({ registerId: row.registerId, manageStatus: 1 }).then(
res => {
this.$modal.msgSuccess("已纳入");
this.getList();
}
);
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除"
});
});
},
jkcf() {
this.ydbbopen = true;
this.title = "健康处方";
},
zmzwgl() {
this.ydbbopen = true;
this.title = "自我管理";
},
dpl() {
if (!this.query) {
this.$modal.msgError("请选择该一条数据");
} else {
this.ydbbopen = true;
this.title = "多普勒动脉粥样筛查";
}
},
xxb() {
this.ydbbopen = true;
this.title = "血小板筛查";
},
ydbbck() {
this.ydbbckopen = true;
this.ydmb = [];
this.attachment = "";
this.attachmentTwo = "";
timelineList(this.query.registerId).then(res => {
this.performanceTimer = res.data;
this.goToPerformanceDetail(res.data[0].children[0]);
});
this.title = "眼底病变筛查";
},
xxbck() {
this.xxbopen = true;
this.attachment = "";
this.attachmentTwo = "";
this.ydmb = [];
timelineList(this.query.registerId).then(res => {
this.performanceTimer = res.data;
this.goToPerformanceDetailxxb(res.data[0].children[0]);
});
this.title = "血小板筛查";
},
ydbb(item) {
this.isflas=true;
if (item.projectName == "糖尿病-眼底病变筛查") {
this.attachment = "";
this.attachmentTwo = "";
this.fileList = [];
this.fileList1 = [];
this.ydbbopen = true;
this.registerId = item.registerId;
this.screeningId = item.screeningId;
this.title = "糖尿病-眼底病变筛查";
// this.ruleForm.descyd=''
// this.$refs.upload.clearFiles()
// this.$refs.upload1.clearFiles()
screening(item.screeningId).then(res => {
this.ydmb= res.data;
this.ruleForm.descyd=this.ydmb.diagnosticResult
console.log(this.ydmb)
// this.srcList = this.urlimg + res.data[0].attachment;
if (res.data.attachment) {
this.attachmentzy = res.data.attachment;
this.fileList.push({
name: "1",
url: this.baseurl + res.data.attachment
});
}
if (res.data.attachmentTwo) {
this.attachmentyy = res.data.attachmentTwo;
this.fileList1.push({ url: this.baseurl + res.data.attachmentTwo });
}
});
}
if (item.projectName == "血小板筛查") {
this.ydbbopen = true;
this.attachment = "";
// this.ruleForm.descdxxb=''
this.fileList2 = [];
this.registerId = item.registerId;
this.screeningId = item.screeningId;
this.title = "血小板筛查";
screening(item.screeningId).then(res => {
this.ydmb = res.data;
// this.srcList = this.urlimg + res.data[0].attachment;
if (res.data.attachment) {
this.attachmentxxb = res.data.attachment;
this.fileList2.push({
name: "1",
url: this.urlimg + res.data.attachment
});
}
// if(res.data.attachmentTwo){
// this.fileList1.push({url:this.urlimg+res.data.attachmentTwo})
// }
});
// this.$refs.upload3.clearFiles()
}
if (item.projectName == "阿尔兹海默症筛查") {
this.ydbbopen = true;
this.attachment = "";
// this.ruleForm.descdxxb=''
this.fileList3 = [];
this.registerId = item.registerId;
this.screeningId = item.screeningId;
this.title = "阿尔兹海默症筛查";
screening(item.screeningId).then(res => {
this.ydmb = res.data;
this.ruleForm.descdxxb=this.ydmb.diagnosticResult
// this.srcList = this.urlimg + res.data[0].attachment;
if (res.data.attachment) {
this.attachmentamz = res.data.attachment;
this.fileList3.push({
name: "阿尔兹海默症筛查诊断文件",
url: this.urlimg + res.data.attachment
});
}
// if(res.data.attachmentTwo){
// this.fileList1.push({url:this.urlimg+res.data.attachmentTwo})
// }
});
// this.$refs.upload3.clearFiles()
}
},
zdfc() {
this.fullscreenLoading = true;
let wxysCount = 0;
let bqgCount = 0;
let xxgbCount = 0;
let lcCount = 0;
let dmGrade = "";
let dmCourse = "";
let tc = "";
let ldl = "";
let hypertension = "";
let gxyfj = "";
for (let item of this.gw) {
if (item.assessItem == "危险因素" && item.result == 1) {
wxysCount++;
}
if (item.assessItem == "靶器官损害" && item.result == 1) {
bqgCount++;
}
if (item.assessItem == "心血管病危险因素" && item.result == 1) {
xxgbCount++;
}
if (item.assessItem == "伴临床疾患" && item.result == 1) {
lcCount++;
}
if (item.assessContent == "糖尿病分级") {
dmGrade = item.result;
}
if (item.assessContent == "糖尿病病程") {
dmCourse = item.result;
}
if (item.assessContent == "TC") {
tc = item.result;
}
if (item.assessContent == "LDL-C") {
ldl = item.result;
}
if (item.assessContent == "高血压") {
hypertension = item.result;
}
if (item.assessContent == "高血压分级") {
gxyfj = item.result;
}
}
// 病史
const bs = [
this.rate.history,
this.rate.pastHistory,
this.rate.earlyHistory,
this.rate.icvd
];
let bsCount = 0;
for (let item of bs) {
if (item == "是") {
bsCount++;
}
}
// 高血压分层
this.gxyfc(bsCount, wxysCount, bqgCount, lcCount, gxyfj);
// 糖尿病分层
this.tnbfc(wxysCount, bqgCount, xxgbCount, dmGrade, dmCourse);
// 高血脂分层
this.gxzfc(wxysCount, tc, ldl, hypertension);
// ASCVD分层
this.ASCVDfc(wxysCount, tc, ldl, hypertension);
this.fullscreenLoading = false;
},
beforeAvatarUpload(file) {
const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
const whiteList = ["doc", "docx"];
if (whiteList.indexOf(fileSuffix) === -1) {
this.$message.error('上传文件只能是doc、docx格式');
return false;
}
},
qx() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
window.open(
"http://172.19.112.83:8009/fd/his/sign?sysKey=6b24d9aefc754c3c9e65dfbfbf9ba47a&userKey=562bc8c4d1c149b0ad5ce63c67674825&timestamp=1662097367&sign=d87548283e05ae689b0aca2e7dcb5c58&" +
"identity=" +
this.query.identity
);
}
},
time() {
this.isCollapse = !this.isCollapse;
},
yth() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
let a = [];
if (this.query.hyperlipemiaFlag == "1") {
a.push("1");
}
if (this.query.diabetesFlag == "1") {
a.push("2");
}
if (this.query.hyperlipemiaFlag == "1") {
a.push("3");
}
let routeData = this.$router.resolve({
path: "/yth",
query: {
indent: this.query.identity,
patientId: this.query.patientId,
ehrId: this.query.ehrId,
rq: a.join(","),
residentName: this.query.name
// indent: aa.identity,
// signNo: aa.signNo,
// teamNo: aa.teamNo,
// teamName: aa.teamName,
// familyNo: aa.familyNo,
// orgNo: aa.orgNo,
// residentName: aa.residentName,
// focusGroups: aa.focusGroups,
// userNo:aa.userNo,
}
});
window.open(routeData.href, "_blank");
}
},
singleElection(row) {
// // this.templateSelection = this.postList.indexOf(row);
// // this.templateRadio = row.id;
// this.templateSelection = row;
// this.diabledyd = true;
// this.diableddpl = true;
// this.diabledxs = true;
// lastProjectRecord(row.registerId).then((res) => {
// row.scxm = res.data;
// this.query = row;
// for (let i = 0; i < row.scxm.length; i++) {
// if (row.scxm[i].projectName == "糖尿病-眼底病变筛查") {
// this.diabledyd = false;
// this.idyd = row.scxm[i].recordId;
// this.screeningId = row.scxm[i].screeningId;
// }
// if (row.scxm[i].projectName == "糖尿病-血小板筛查") {
// this.diabledxs = false;
// this.idxs = row.scxm[i].recordId;
// this.screeningId = row.scxm[i].screeningId;
// }
// }
// });
},
zzgl() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
this.$confirm("您确定要终止?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
zzg({ patientIds: this.query.patientId }).then(res => {
this.$modal.msgSuccess("已终止");
this.getList();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消"
});
});
}
// let data={
// ids:rew.id,
// terminaDoctorId:rew.terminaDoctorId,
// terminaDoctorName:rew.terminaDoctorName,
// terminaReason:rew.terminaReason
// }
},
fxpg() {
this.form = {};
let that = this;
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
this.openDataScope = true;
this.fullscreenLoading = true;
this.rate.age = getCurrentAgeByBirthDate(this.query.birthday);
business().then(e => {
that.gw = e.data;
this.fullscreenLoading = false;
let sex = this.gw.find(item => item.assessContent == "性别");
if (this.query.gender == "1") {
this.rate.gender = "男";
sex.result = "男";
} else {
this.rate.gender = "女";
sex.result = "女";
}
let age = this.gw.find(item => item.assessContent == "年龄");
age.result = getCurrentAgeByBirthDate(this.query.birthday);
});
}
},
/** 查询角色列表 */
getList() {
// this.postList =
// [{
// identity: '371481194506202812',
// name: '王明',
// gender: '2'
// }]
// this.loading = false;
this.loading = true;
thList(this.queryParams).then(response => {
this.postList = response.rows;
this.total = response.total;
this.loading = false;
for (let i = 0; i < this.postList.length; i++) {
//赋值给上方tableItem绑定的age // 传入接口赋值后列表里面的出生年月
this.postList[i].age = this.getage(this.postList[i].birthday);
}
});
},
getage(value) {
var birthdays = new Date(value.replace(/-/g, "/")); //value 是this.getage(this.userList[i].birthday)传入的值
var d = new Date(); //当前时间
var age =
d.getFullYear() -
birthdays.getFullYear() -
(d.getMonth() < birthdays.getMonth() ||
(d.getMonth() == birthdays.getMonth() &&
d.getDate() < birthdays.getDate())
? 1
: 0);
return age;
},
/** 查询菜单树结构 */
getMenuTreeselect() {
menuTreeselect().then(response => {
this.menuOptions = response.data;
});
},
// 所有菜单节点数据
getMenuAllCheckedKeys() {
// 目前被选中的菜单节点
let checkedKeys = this.$refs.menu.getCheckedKeys();
// 半选中的菜单节点
let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
// 所有部门节点数据
getDeptAllCheckedKeys() {
// 目前被选中的部门节点
let checkedKeys = this.$refs.dept.getCheckedKeys();
// 半选中的部门节点
let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
return checkedKeys;
},
/** 根据角色ID查询菜单树结构 */
getRoleMenuTreeselect(roleId) {
return roleMenuTreeselect(roleId).then(response => {
this.menuOptions = response.menus;
return response;
});
},
/** 根据角色ID查询部门树结构 */
getDeptTree(roleId) {
return deptTreeSelect(roleId).then(response => {
this.deptOptions = response.depts;
return response;
});
},
// 角色状态修改
handleStatusChange(row) {
let text = row.status === "0" ? "启用" : "停用";
this.$modal
.confirm('确认要"' + text + '""' + row.roleName + '"角色吗?')
.then(function() {
return changeRoleStatus(row.roleId, row.status);
})
.then(() => {
this.$modal.msgSuccess(text + "成功");
})
.catch(function() {
row.status = row.status === "0" ? "1" : "0";
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 取消按钮(数据权限)
cancelDataScope() {
this.openDataScope = false;
this.reset();
},
// 表单重置
reset() {
if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]);
}
this.menuExpand = false;
this.menuNodeAll = false;
this.deptExpand = true;
this.deptNodeAll = false;
this.form = {
roleId: undefined,
roleName: undefined,
roleKey: undefined,
roleSort: 0,
status: "0",
menuIds: [],
deptIds: [],
menuCheckStrictly: true,
deptCheckStrictly: true,
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.templateSelection = "";
this.diabledxs = true;
this.diabledyd = true;
this.getList();
},
handleQuery1() {
this.queryParams.pageNum = 1;
this.templateSelection = "";
this.diabledxs = true;
this.diabledyd = true;
this.getList();
if (this.postList.length == 1) {
this.yydj(this.postList[0]);
}
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.queryParams = {
pageNum: 1,
pageSize: 15,
name: null,
identity: null,
archivingStatus: null,
hasDiagnose: null,
exceedStatus: null,
hasResult: null,
residentName: null,
applyStartDate: null,
applyEndDate: null,
chronicGroup: null,
deptId: null,
registrationStatus: null
};
this.handleQuery();
},
// 多选框选中数据
// 履约
handleCommand(command, row) {
let routeData = this.$router.resolve({
path: "/personal",
query: {
// indent: aa.identity,
// signNo: aa.signNo,
// teamNo: aa.teamNo,
// teamName: aa.teamName,
// familyNo: aa.familyNo,
// orgNo: aa.orgNo,
// residentName: aa.residentName,
// focusGroups: aa.focusGroups,
// userNo:aa.userNo,
}
});
window.open(routeData.href, "_blank");
},
// 树权限(展开/折叠)
handleCheckedTreeExpand(value, type) {
if (type == "menu") {
let treeList = this.menuOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
}
} else if (type == "dept") {
let treeList = this.deptOptions;
for (let i = 0; i < treeList.length; i++) {
this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
}
}
},
// 树权限(全选/全不选)
handleCheckedTreeNodeAll(value, type) {
if (type == "menu") {
this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []);
} else if (type == "dept") {
this.$refs.dept.setCheckedNodes(value ? this.deptOptions : []);
}
},
onExceed(file, fileList) {
if (fileList.length > 1) {
fileList.splice(0, 1);
}
},
onExceed1(file, fileList) {
if (fileList.length > 1) {
fileList.splice(0, 1);
}
},
// 树权限(父子联动)
handleCheckedTreeConnect(value, type) {
if (type == "menu") {
this.form.menuCheckStrictly = value ? true : false;
} else if (type == "dept") {
this.form.deptCheckStrictly = value ? true : false;
}
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.getMenuTreeselect();
this.open = true;
this.title = "添加角色";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const roleId = row.roleId || this.ids;
const roleMenu = this.getRoleMenuTreeselect(roleId);
getRole(roleId).then(response => {
this.form = response.data;
this.open = true;
this.$nextTick(() => {
roleMenu.then(res => {
let checkedKeys = res.checkedKeys;
checkedKeys.forEach(v => {
this.$nextTick(() => {
this.$refs.menu.setChecked(v, true, false);
});
});
});
});
this.title = "修改角色";
});
},
/** 选择角色权限范围触发 */
dataScopeSelectChange(value) {
if (value !== "2") {
this.$refs.dept.setCheckedKeys([]);
}
},
// <span v-if="scope.row.diabetesFlag == 1">糖尿病 </span>
// <span v-if="scope.row.hyperlipemiaFlag == 1">高血压 </span>
// <span v-if="scope.row.hypertensionFlag == 1">高血脂 </span>
sf() {
if (!this.templateSelection) {
this.$modal.msgError("请选择该一条数据");
} else {
let a = [];
if (this.query.hyperlipemiaFlag == "1") {
a.push("1");
}
if (this.query.diabetesFlag == "1") {
a.push("2");
}
if (this.query.hypertensionFlag == "1") {
a.push("3");
}
let routeData = this.$router.resolve({
path: "/fllowup",
query: {
indent: this.query.identity,
patientId: this.query.patientId,
rq: a.join(","),
// signNo: aa.signNo,
// teamNo: aa.teamNo,
// teamName: aa.teamName,
// familyNo: aa.familyNo,
// orgNo: aa.orgNo,
residentName: this.query.name
// focusGroups: aa.focusGroups,
// userNo:aa.userNo,
}
});
window.open(routeData.href, "_blank");
}
},
/** 履约 */
handleDataScope() {
let routeData = this.$router.resolve({
path: "/agreement",
query: {
// indent: aa.identity,
// signNo: aa.signNo,
// teamNo: aa.teamNo,
// teamName: aa.teamName,
// familyNo: aa.familyNo,
// orgNo: aa.orgNo,
// residentName: aa.residentName,
// focusGroups: aa.focusGroups,
// userNo:aa.userNo,
}
});
window.open(routeData.href, "_blank");
// this.reset();
// const deptTreeSelect = this.getDeptTree(row.roleId);
// getRole(row.roleId).then(response => {
// this.form = response.data;
// this.openDataScope = true;
// this.$nextTick(() => {
// deptTreeSelect.then(res => {
// this.$refs.dept.setCheckedKeys(res.checkedKeys);
// });
// });
// this.title = "分配数据权限";
// });
},
/** 分配用户操作 */
handleAuthUser: function(row) {
const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId);
},
/** 提交按钮 */
submitForm: function() {
let data = {
patientIds: this.query.patientId,
// diabetesFlag:this.diabetesFlag,
// hyperlipemiaFlag:this.hyperlipemiaFlag,
// hypertensionFlag:this.hypertensionFlag,
threeHighType: this.checkedCities
};
bringIntoManage(data).then(() => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
},
/** 提交按钮(数据权限) */
submitDataScope() {
if (!this.form.a || !this.form.b || !this.form.c || !this.form.d) {
this.$confirm("请先自动分层后再进行保存?", "提示", {
confirmButtonText: "确定",
type: "warning"
});
return;
}
let count = 0;
for (let item of this.gw) {
if (item.result == 1) {
count++;
}
}
this.fullscreenLoading = true;
this.query.riskLevelAscvd = this.form.d;
this.query.riskLevelDm = this.form.b;
this.query.riskLevelHbp = this.form.a;
this.query.riskLevelHpd = this.form.c;
this.query.abnormalCount = count;
let data = {
resultList: this.gw,
riskAssessRecord: this.query
};
saveRate(data).then(res => {
this.fullscreenLoading = false;
if (res.code == 200) {
this.openDataScope = false;
this.$modal.msgSuccess("保存成功");
this.getList();
}
});
},
/** 健康中心 */
handleDelete() {
if (!this.query) {
this.$modal.msgError("请选择该一条数据");
} else {
let routeData = this.$router.resolve({
path: "/personal",
query: {
ehrId: this.query.ehrId,
name: this.query.residentName,
phone: this.query.phone,
address: this.query.address,
identity: this.query.identity,
orgName: this.query.orgName,
manageOrgName: this.query.manageOrgName,
patientId: this.query.registerId
// indent: aa.identity,
// signNo: aa.signNo,
// teamNo: aa.teamNo,
// teamName: aa.teamName,
// familyNo: aa.familyNo,
// orgNo: aa.orgNo,
// residentName: aa.residentName,
// focusGroups: aa.focusGroups,
// userNo:aa.userNo,
}
});
window.open(routeData.href, "_blank");
}
},
/** 导出按钮操作 */
handleExport() {
this.download(
"system/role/export",
{
...this.queryParams
},
`role_${new Date().getTime()}.xlsx`
);
},
handleAvatarSuccess(res, file) {
// this.form.attachment = file.data
this.attachmentzy = file.imgUrl;
},
handleAvatarSuccessdpl(res, file) {
// this.form.attachment = file.data
this.attachmentdpl = file.imgUrl;
},
handleAvatarSuccessyy(res, file) {
// this.form.attachment = file.data
this.attachmentyy = file.imgUrl;
},
handleAvatarSuccessxxb(res, file) {
// this.form.attachment = file.data
this.attachmentxxb = res.imgUrl;
},
handleAvatarSuccessamz(res, file) {
console.log(res,'000')
// this.form.attachment = file.data
this.attachmentamz = res.imgUrl;
},
onFileitem(file) {
console.log(file)
if (file.response) {
var fileurl = file.response.data;
} else {
var fileurls = file.url.split("/");
var fileurl = fileurls[fileurls.length - 1];
}
viewfiled(this.attachmentamz).then(res => {
let content = res;
const blob = new Blob([content], { type: "application/msword" }); //重点重点,,,
const fileName = file.name + ".docx"; //这个为文件名,可以自定义
this.elink.download = fileName;
this.elink.style.display = "none";
this.elink.href = URL.createObjectURL(blob);
this.$refs.LDQZOne.appendChild(this.elink);
this.elink.click(); //触发点击事件,实现文档下载
URL.revokeObjectURL(this.elink.href); // 释放URL 对象
this.$refs.LDQZOne.removeChild(this.elink); //下载完成移除新建的a标签
});
},
// 糖尿病自动分层
tnbfc(wxysCount, bqgCount, xxgbCount, dmGrade, dmCourse) {
if (this.query.diabetesFlag == 1) {
if (
((dmGrade == "1" && this.rate.gender < 35) ||
(dmGrade == "2" && this.rate.gender < 50)) &&
dmCourse < 10 &&
wxysCount == 0
) {
this.form.b = "1";
}
if (bqgCount == 0 && (dmCourse >= 10 || wxysCount >= 1)) {
this.form.b = "2";
}
if (
xxgbCount >= 1 ||
wxysCount >= 3 ||
bqgCount >= 1 ||
(dmGrade == "1" && dmCourse >= 20)
) {
this.form.b = "3";
}
if (!this.form.b) {
this.form.b = "0";
}
} else {
this.form.b = "0";
}
},
// 高血压自动分层
gxyfc(bsCount, wxysCount, bqgCount, lcCount, gxyfj) {
if (this.query.hyperlipemiaFlag == 1) {
if (gxyfj == 2) {
if (bsCount == 0 && wxysCount == 0 && bqgCount == 0 && lcCount == 0) {
this.form.a = "1";
}
if (wxysCount >= 1 && wxysCount <= 2) {
this.form.a = "2";
}
if ((wxysCount >= 3 || bqgCount >= 1) && lcCount >= 1) {
this.form.a = "3";
}
}
if (gxyfj == 3) {
if (bsCount == 0 && wxysCount == 0 && bqgCount == 0 && lcCount == 0) {
this.form.a = "2";
}
if (wxysCount >= 1 && wxysCount <= 2) {
this.form.a = "2";
}
if ((wxysCount >= 3 || bqgCount >= 1) && lcCount >= 1) {
this.form.a = "3";
}
}
if (gxyfj == 4) {
if (bsCount == 0 && wxysCount == 0 && bqgCount == 0 && lcCount == 0) {
this.form.a = "3";
}
if (wxysCount >= 1 && wxysCount <= 2) {
this.form.a = "3";
}
if ((wxysCount >= 3 || bqgCount >= 1) && lcCount >= 1) {
this.form.a = "3";
}
}
if (!this.form.a) {
this.form.a = "0";
}
} else {
this.form.a = "0";
}
},
// 高血脂分层
gxzfc(wxysCount, tc, ldl, hypertension) {
if (this.query.hypertensionFlag == 1) {
if ((tc >= 5.2 && tc <= 6.2) || (ldl >= 3.4 && ldl <= 4.1)) {
if (hypertension == "2" && wxysCount <= 3) {
this.form.c = "1";
}
if (hypertension == "1" || wxysCount >= 3) {
this.form.c = "1";
}
if (hypertension == "1" && wxysCount >= 1) {
this.form.c = "2";
}
}
if (tc >= 6.2 || ldl >= 4.1) {
if (hypertension == "2" && wxysCount <= 3) {
this.form.c = "1";
}
if (hypertension == "1" || wxysCount >= 3) {
this.form.c = "2";
}
if (hypertension == "1" && wxysCount >= 1) {
this.form.c = "3";
}
}
if (!this.form.c) {
this.form.c = "0";
}
} else {
this.form.c = "0";
}
},
// ASCVD分层
ASCVDfc(wxysCount, tc, ldl, hypertension) {
if ((tc >= 3.1 && tc < 4.1) || (ldl >= 1.8 && ldl < 2.6)) {
if (hypertension == "2" && wxysCount <= 3) {
this.form.d = "1";
}
if (hypertension == "1" && wxysCount <= 1) {
this.form.d = "1";
}
if (hypertension == "1" && wxysCount == 2) {
this.form.d = "2";
}
if (hypertension == "1" && wxysCount >= 3) {
this.form.d = "3";
}
}
if ((tc >= 4.1 && tc < 5.2) || (ldl >= 2.6 && ldl < 3.4)) {
if (hypertension == "2" && wxysCount <= 2) {
this.form.d = "1";
}
if (hypertension == "2" && wxysCount == 3) {
this.form.d = "2";
}
if (hypertension == "1" && wxysCount == 0) {
this.form.d = "1";
}
if (hypertension == "1" && wxysCount == 1) {
this.form.d = "2";
}
if (hypertension == "1" && wxysCount >= 2) {
this.form.d = "3";
}
}
if ((tc >= 5.2 && tc < 7.2) || (ldl >= 3.4 && ldl < 4.9)) {
if (hypertension == "2" && wxysCount <= 1) {
this.form.d = "1";
}
if (hypertension == "2" && wxysCount >= 2) {
this.form.d = "2";
}
if (hypertension == "1" && wxysCount == 0) {
this.form.d = "1";
}
if (hypertension == "1" && wxysCount == 1) {
this.form.d = "2";
}
if (hypertension == "1" && wxysCount >= 2) {
this.form.d = "3";
}
}
if (!this.form.d) {
this.form.d = "0";
}
}
}
};
</script>
<style scoped>
.el-collapse-item__wrap {
border-top: 1px solid #e6ebf5 !important;
}
.el-collapse-item__content {
padding: 0px;
}
</style>
<style scoped>
::-webkit-scrollbar {
width: 6px;
height: 6px;
background-color: rgba(240, 240, 240, 1);
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 0px rgba(240, 240, 240, 0.5);
border-radius: 10px;
background-color: rgba(240, 240, 240, 0.5);
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
border-radius: 10px;
box-shadow: inset 0 0 0px rgba(240, 240, 240, 0.5);
background-color: rgba(240, 240, 240, 0.5);
}
.el-collapse-item__header {
font-size: 40px !important;
font-weight: 700;
}
.link-item-hover {
background-color: #f5f7fa;
color: #1890ff;
font-weight: 600;
width: 200px;
}
.link-item-active {
color: #fff;
background-color: #00c4c2;
}
.el-tooltip__popper {
max-width: 200px;
}
.el-menu {
border: 0px;
}
.mb8 {
margin-bottom: 20px;
}
::v-deep .el-table td.el-table__cell {
border-bottom: 1px solid #eef1f5;
height: 55px;
}
::v-deep .el-table__body tr.current-row > td {
background: #d0f1f6 !important;
border-bottom: 1px solid #edf1f5;
}
::v-deep .el-table .el-table__header-wrapper th,
.el-table .el-table__fixed-header-wrapper th {
background: #08a4bb !important;
color: #fff !important;
height: 60px !important;
font-size: 16px;
}
::v-deep .el-table th.el-table__cell {
background: #08a4bb !important;
color: #fff !important;
height: 60px !important;
font-size: 16px;
}
::v-deep .el-table th.el-table__cell:nth-of-type(1) {
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
}
::v-deep .el-table th.el-table__cell:nth-of-type(18) {
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
}
::v-deep .el-pagination.is-background .el-pager li:not(.disabled).active {
background-color: #08a4bb !important;
}
::v-deep .el-form-item__label {
font-weight: 300 !important;
color: #000;
}
</style>