|
@@ -1,167 +1,82 @@
|
|
<template>
|
|
<template>
|
|
- <div class="caseQualityBox">
|
|
|
|
- <div class="score-box">
|
|
|
|
- {{ data.score }}分
|
|
|
|
- <span class="level">{{ scoreLevel }}</span>
|
|
|
|
|
|
+ <div class="box">
|
|
|
|
+ <div class="card-box">
|
|
|
|
+ <el-row :gutter="20" style="margin-bottom: 10px;">
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <div class="title">病历等级:<span class="error">甲</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <div class="title">病历问题:<span class="error">10</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <div class="title2">运行病历:<span>70分</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <div class="title2">入院病历:<span>(3)</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <div class="title2">终末病历:<span>70分</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="12">
|
|
|
|
+ <div class="title2">出院记录:<span>(3)</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row :gutter="20">
|
|
|
|
+ <el-col :span="12" :offset="12">
|
|
|
|
+ <div class="title2">病程记录:<span>(3)</span></div>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
</div>
|
|
</div>
|
|
- <el-table
|
|
|
|
- :data="tableData"
|
|
|
|
- default-expand-all
|
|
|
|
- style="width: 100%">
|
|
|
|
- <el-table-column type="expand">
|
|
|
|
- <template slot-scope="props">
|
|
|
|
- <el-card v-for="(item, index) of props.row.children" :key="index" class="box-card" shadow="hover">
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="24">
|
|
|
|
- <el-descriptions title="" :column="1" direction="vertical">
|
|
|
|
- <el-descriptions-item label="质控项目">
|
|
|
|
- <el-tag>{{ item.error_field }}</el-tag>
|
|
|
|
- <span class="koufen">-{{ item.score }}分</span>
|
|
|
|
- </el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="错误描述">{{ item.notice }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="质控依据">
|
|
|
|
- <div v-for="(yItem, yIndex) of item.basis" :key="yIndex" style="margin-bottom: 10px;">
|
|
|
|
- <div v-if="item.rule_id !== 6">
|
|
|
|
- <div v-for="(cItem, cIndex) of yItem" :key="cIndex">{{ cItem }}</div>
|
|
|
|
- </div>
|
|
|
|
- <a v-else href="javascript:;" class="link" @click="toPage(yItem[1])">{{ yItem[0] }}</a>
|
|
|
|
- </div>
|
|
|
|
- </el-descriptions-item>
|
|
|
|
- </el-descriptions>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- </el-card>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column
|
|
|
|
- label=""
|
|
|
|
- prop="category">
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
export default {
|
|
export default {
|
|
- props: {
|
|
|
|
- data: {
|
|
|
|
- type: Object,
|
|
|
|
- default() {
|
|
|
|
- return {
|
|
|
|
- score: 0,
|
|
|
|
- data: {}
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- computed: {
|
|
|
|
- tableData() {
|
|
|
|
- let arr = []
|
|
|
|
- const keys = Object.keys(this.data.data)
|
|
|
|
- for(let i=0; i<keys.length; i++) {
|
|
|
|
- let obj = {
|
|
|
|
- category: keys[i],
|
|
|
|
- children: this.data.data[keys[i]]
|
|
|
|
- }
|
|
|
|
- arr.push(obj)
|
|
|
|
- }
|
|
|
|
- return arr
|
|
|
|
- },
|
|
|
|
- scoreLevel() {
|
|
|
|
- /**
|
|
|
|
- * 甲>90分
|
|
|
|
- * 乙75-90分
|
|
|
|
- * 丙<75分
|
|
|
|
- * */
|
|
|
|
- let str
|
|
|
|
- const { score } = this.data
|
|
|
|
- if (score > 90) {
|
|
|
|
- str = '甲'
|
|
|
|
- } else if (score < 75) {
|
|
|
|
- str = '丙'
|
|
|
|
- } else {
|
|
|
|
- str = '乙'
|
|
|
|
- }
|
|
|
|
- return str
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- methods: {
|
|
|
|
- toPage(blbh) {
|
|
|
|
- const { path } = this.$route
|
|
|
|
- let routeData = this.$router.resolve({ path, query: { blbh } })
|
|
|
|
- window.open(routeData.href, '_blank');
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
-.caseQualityBox {
|
|
|
|
- width: 340px;
|
|
|
|
- height: 820px;
|
|
|
|
- overflow-x: hidden;
|
|
|
|
- overflow-y: scroll;
|
|
|
|
- background: #ffffff;
|
|
|
|
- border: 1px solid #e2e2e2;
|
|
|
|
- box-sizing: border-box;
|
|
|
|
- padding: 20px;
|
|
|
|
- ::v-deep .el-descriptions-item__container .el-descriptions-item__content {
|
|
|
|
- display: block;
|
|
|
|
- }
|
|
|
|
- ::v-deep .el-descriptions-item__label:not(.is-bordered-label) {
|
|
|
|
- font-weight: 600;
|
|
|
|
- display: inline-table;
|
|
|
|
- }
|
|
|
|
- ::v-deep .el-descriptions-item__content {
|
|
|
|
- padding-top: 12px;
|
|
|
|
- }
|
|
|
|
- .box-card {
|
|
|
|
- margin-bottom: 10px;
|
|
|
|
- }
|
|
|
|
- .score-box {
|
|
|
|
- width: 100%;
|
|
|
|
- height: 120px;
|
|
|
|
- line-height: 120px;
|
|
|
|
- font-size: 32px;
|
|
|
|
- font-weight: bold;
|
|
|
|
- text-align: center;
|
|
|
|
- border-radius: 5px;
|
|
|
|
- border: 1px solid #dddddd;
|
|
|
|
- position: relative;
|
|
|
|
- overflow: hidden;
|
|
|
|
- &::before {
|
|
|
|
- content: "";
|
|
|
|
- position: absolute;
|
|
|
|
- width: 200px;
|
|
|
|
- height: 200px;
|
|
|
|
- top: -120px;
|
|
|
|
- right: -160px;
|
|
|
|
- z-index: 1;
|
|
|
|
- background-color: red;
|
|
|
|
- transform: rotate(45deg);
|
|
|
|
- }
|
|
|
|
- .level {
|
|
|
|
- position: absolute;
|
|
|
|
- top: 5px;
|
|
|
|
- right: 10px;
|
|
|
|
- z-index: 2;
|
|
|
|
- line-height: 30px;
|
|
|
|
- color: #ffffff;
|
|
|
|
|
|
+.box {
|
|
|
|
+ width: 500px;
|
|
|
|
+ padding: 21px 38px;
|
|
|
|
+ background: #FFFFFF;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ height: 100vh;
|
|
|
|
+ .card-box {
|
|
|
|
+ height: 175px;
|
|
|
|
+ background: #FFFFFF;
|
|
|
|
+ border: 1px solid #E2E2E2;
|
|
|
|
+ padding: 30px 36px;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ .title {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
|
+ font-family: PingFang-SC-Bold, PingFang-SC;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #333333;
|
|
|
|
+ line-height: 22px;
|
|
|
|
+ text-indent: 6px;
|
|
|
|
+ span {
|
|
|
|
+ margin-left: 7px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .title2 {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ font-family: PingFang-SC-Bold, PingFang-SC;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #333333;
|
|
|
|
+ line-height: 26px;
|
|
|
|
+ span {
|
|
|
|
+ margin-left: 7px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .error {
|
|
|
|
+ color: #D81E06;
|
|
}
|
|
}
|
|
- }
|
|
|
|
-}
|
|
|
|
-.koufen {
|
|
|
|
- color: red;
|
|
|
|
- float: right;
|
|
|
|
- line-height: 32px;
|
|
|
|
- font-size: 16px;
|
|
|
|
- font-weight: bold;
|
|
|
|
-}
|
|
|
|
-.link {
|
|
|
|
- text-decoration: underline;
|
|
|
|
- &:hover {
|
|
|
|
- color: #409EFF;
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|