You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
227 lines
6.6 KiB
227 lines
6.6 KiB
<template>
|
|
<div class="component-container searchContent">
|
|
<el-table
|
|
ref="multipleTable"
|
|
v-loading="dataListLoading"
|
|
:data="dataList"
|
|
@select="selectHandle"
|
|
@select-all="selectHandle"
|
|
>
|
|
<el-table-column type="selection" width="55" :selectable="selectable" />
|
|
<!-- 行展开 -->
|
|
<el-table-column type="expand">
|
|
<template slot-scope="scope">
|
|
<el-form label-width="90px" class="expand-form">
|
|
<!-- 摘要 -->
|
|
<el-form-item :label="'主要内容'">
|
|
<div class="overViewHtml" v-html="scope.row.allHighlight" />
|
|
</el-form-item>
|
|
<!-- 检查项目 -->
|
|
<el-form-item :label="'检查计次'">
|
|
<div class="exam">
|
|
<p v-for="(item, index) in scope.row.checkCount" :key="index">
|
|
<span class="exam-name" :title="item.checkName">{{ item.checkName }}</span>
|
|
<span class="exam-num">{{ item.count }}次</span>
|
|
</p>
|
|
</div>
|
|
</el-form-item>
|
|
<template v-if="visibleChart">
|
|
<!-- 折线图 -->
|
|
<el-form-item :label="'折线图'">
|
|
<el-row :gutter="20">
|
|
<el-col :span="12">
|
|
<echarts-line-kpi :chart-data="scope.row.yanya" :title="'眼压'" />
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<echarts-line-kpi-va :chart-data="scope.row.vision" :title="'视力'" />
|
|
</el-col>
|
|
</el-row>
|
|
</el-form-item>
|
|
</template>
|
|
</el-form>
|
|
</template>
|
|
</el-table-column>
|
|
<!-- 姓名 -->
|
|
<el-table-column :label="'姓名'" header-align="center" align="center" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
{{ (scope.row.esPatientInfo?scope.row.esPatientInfo.patientName:'') | f_desensitize_name }}
|
|
</template>
|
|
</el-table-column>
|
|
<!-- 性别 -->
|
|
<el-table-column :label="'性别'" header-align="center" align="center">
|
|
<template slot-scope="scope">
|
|
{{ (scope.row.esPatientInfo?scope.row.esPatientInfo.patientSex:'') | f_sex }}
|
|
</template>
|
|
</el-table-column>
|
|
<!-- 年龄 -->
|
|
<el-table-column :label="'年龄'" header-align="center" align="center">
|
|
<template slot-scope="scope">
|
|
{{ (scope.row.esPatientInfo?scope.row.esPatientInfo.patientAge:'') }}
|
|
</template>
|
|
</el-table-column>
|
|
<!-- 身份证号 -->
|
|
<el-table-column prop="patientIdNumber" :label="'身份证号'" header-align="center" align="center">
|
|
<template slot-scope="scope">
|
|
{{ (scope.row.id) | f_desensitize_idNumber }}
|
|
</template>
|
|
</el-table-column>
|
|
<!-- 检索内容 -->
|
|
<!-- <el-table-column prop="patientIdNumber" :label="'检索内容'" header-align="center" align="center" show-overflow-tooltip>
|
|
<template slot-scope="scope">
|
|
<p v-html="scope.row.allHighlight" />
|
|
</template>
|
|
</el-table-column> -->
|
|
<!-- 操作 -->
|
|
<el-table-column label="操作" header-align="center" align="center" width="120">
|
|
<template slot-scope="scope">
|
|
<el-button type="text" size="small" @click="showDetail(scope.row)">查看详情</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import echartsLineKpi from '@/components/echarts/line-kpi'
|
|
import echartsLineKpiVa from '@/components/echarts/line-kpi-va'
|
|
import { findItem } from '@/utils/tree'
|
|
|
|
export default {
|
|
components: {
|
|
echartsLineKpi,
|
|
echartsLineKpiVa
|
|
},
|
|
props: {
|
|
dataListLoading: { type: Boolean, default: false },
|
|
dataList: { type: Array, default: () => [] },
|
|
visibleChart: { type: Boolean, default: false },
|
|
selectDisableIdList: { type: Array, default: () => [] },
|
|
projectId: { type: String, default: '' }
|
|
},
|
|
data() {
|
|
return {
|
|
selectIdList: [],
|
|
selectList: [],
|
|
patientId: ''
|
|
}
|
|
},
|
|
mounted() {
|
|
console.log(this.dataList)
|
|
},
|
|
methods: {
|
|
getExamItem(obj) {
|
|
const result = []
|
|
for (const key in obj) {
|
|
if (obj[key]) {
|
|
const dictItem = findItem(window.SITE_CONFIG['dict_colSearch'], key, 'name', 'children')
|
|
console.log(window.SITE_CONFIG['dict_colSearch'])
|
|
result.push({ id: key, name: dictItem ? dictItem.label : '', num: obj[key] })
|
|
}
|
|
}
|
|
return result
|
|
},
|
|
selectHandle(selection, row) {
|
|
this.selectIdList = []
|
|
this.selectList = selection
|
|
selection.forEach(item => {
|
|
this.selectIdList.push(item.id)
|
|
})
|
|
this.$emit('vmSelectIdList', this.selectIdList)
|
|
this.$emit('vmSelectList', this.selectList)
|
|
},
|
|
clearSelect() {
|
|
console.log(1)
|
|
this.selectIdList = []
|
|
this.selectList = []
|
|
this.$refs.multipleTable.clearSelection()
|
|
},
|
|
selectable(row, index) {
|
|
return this.selectDisableIdList.indexOf(row.id) < 0
|
|
},
|
|
// 查看详情
|
|
showDetail(scopeRow) {
|
|
this.$emit('viewDetail', scopeRow.esPatientInfo.patientId)
|
|
// this.patientId = scopeRow.patientId
|
|
const mzName = scopeRow.mzDoctorName ? scopeRow.mzDoctorName : ''
|
|
const jzNumber = scopeRow.jzNumber ? scopeRow.jzNumber : ''
|
|
window.sessionStorage.setItem('mzDoctorName', mzName)
|
|
window.sessionStorage.setItem('jzNumber', jzNumber)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.searchContent {
|
|
// 搜索内容
|
|
.overViewHtml {
|
|
font-size: 14px;
|
|
line-height: normal;
|
|
white-space: pre-wrap;
|
|
}
|
|
|
|
.exam {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
padding-bottom: 10px;
|
|
p {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
height: 32px;
|
|
line-height: 32px;
|
|
width: 18%;
|
|
background-color: #eee;
|
|
padding: 0 10px;
|
|
margin: 6px;
|
|
span {
|
|
display: block;
|
|
// flex: 1;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
text-align: center;
|
|
}
|
|
|
|
$width_num: 60px;
|
|
.exam-name {
|
|
width: calc(100% - #{$width_num});
|
|
}
|
|
.exam-num {
|
|
width: $width_num;
|
|
color: #0072f9;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
::v-deep .el-table__expanded-cell {
|
|
padding: 5px 10px;
|
|
background-color: #f5f7fa;
|
|
}
|
|
|
|
.dialog {
|
|
::v-deep .el-dialog__header {
|
|
padding: 10px 20px;
|
|
background: #696969;
|
|
|
|
.el-dialog__title {
|
|
color: #fff;
|
|
}
|
|
|
|
.el-dialog__headerbtn {
|
|
top: 10px;
|
|
font-size: 20px;
|
|
|
|
.el-dialog__close {
|
|
color: #fff;
|
|
font-weight: bolder;
|
|
}
|
|
}
|
|
}
|
|
::v-deep .el-dialog__body {
|
|
min-height: calc(100% - 60px);
|
|
background: #f5f5f5;
|
|
}
|
|
}
|
|
</style>
|
|
|