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.
205 lines
4.4 KiB
205 lines
4.4 KiB
<template>
|
|
<div class="throm-result-sop">
|
|
<!-- <a-card class="report-card" title="溶栓状态"> -->
|
|
<div class="report-timeline">
|
|
<!-- <a-steps progress-dot :current="currentIndex" direction="vertical">
|
|
<template v-for="(item, index) in getNodeList">
|
|
<a-step v-if="item.nodeType === 0"
|
|
:status="processNodeIndex == index ? 'process' : processNodeIndex > index && item.record ? 'finish' : 'wait' ">
|
|
<div slot="title" style="display: flex;justify-content: space-between;width: 100%">
|
|
<div>{{item.nodeName}}</div>
|
|
<div>
|
|
{{processNodeIndex == index ? '进行中' : processNodeIndex > index && item.record ? '已完成' : ''}}
|
|
</div>
|
|
</div>
|
|
<div slot="description">{{item.record ? item.record.answer[0] : ''}}</div>
|
|
</a-step>
|
|
</template>
|
|
</a-steps> -->
|
|
<a-timeline>
|
|
<a-timeline-item node-top="4" v-for="(item, index) in getNodeList" :key="item.nodeName"
|
|
:color="item.record ? '#00c767' : '#ff4a44'" v-if="item.nodeType === 0">
|
|
<div class="flex justify-between" :class="
|
|
item.record ? 'cor-green' : 'cor-red'
|
|
">
|
|
<div class="fz24 font-bold">
|
|
{{ item.nodeName }}
|
|
</div>
|
|
<div class="fz24 font-bold">
|
|
{{ item.record ? '已完成' : '' }}
|
|
</div>
|
|
</div>
|
|
<div class="fz20 text-left" :class="
|
|
item.record ? 'cor-green' : 'cor-red'
|
|
">
|
|
{{
|
|
item.record ? item.record.answer[0] : ''
|
|
}}
|
|
</div>
|
|
</a-timeline-item>
|
|
</a-timeline>
|
|
</div>
|
|
<!-- </a-card> -->
|
|
<div class="throm-common-button">
|
|
<a-button class="" block type="primary" size="large" @click="onSubmit">下一步</a-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
mapMutations,
|
|
mapState
|
|
} from 'vuex';
|
|
import {
|
|
getNextNode
|
|
} from 'api';
|
|
export default {
|
|
name: '',
|
|
data() {
|
|
return {
|
|
currentIndex: 0,
|
|
processNodeIndex: 0,
|
|
nodeInfo: {
|
|
fbsj: '',
|
|
jfbSeconds: '',
|
|
dntSeconds: '',
|
|
ctSeconds: '',
|
|
nextStepName: '',
|
|
countDownInSeconds: '',
|
|
nodeList: [],
|
|
},
|
|
}
|
|
},
|
|
props: {
|
|
reportType: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
dataSource: {
|
|
type: Object,
|
|
default: () => ({})
|
|
},
|
|
firstAidId: {
|
|
type: String,
|
|
default: "",
|
|
}
|
|
},
|
|
async mounted() {
|
|
console.log(this.reportType, this.firstAidId)
|
|
if (this.reportType == 'modal') {
|
|
this.init(this.dataSource.firstAidId);
|
|
} else if (this.firstAidId) {
|
|
this.init(this.firstAidId);
|
|
}
|
|
|
|
},
|
|
computed: {
|
|
getNodeList() {
|
|
const {
|
|
sop
|
|
} = this.nodeInfo;
|
|
if (!sop) return [];
|
|
const lastFinishIndex = sop.nodeList.findIndex(a => !!a.record) || 0
|
|
this.processNodeIndex = lastFinishIndex + 1
|
|
return sop.nodeList;
|
|
},
|
|
},
|
|
methods: {
|
|
...mapMutations('patient', ['setNextNodeData']),
|
|
//初始化数据
|
|
async init(firstAidId) {
|
|
this.getNextNode(firstAidId);
|
|
},
|
|
async getNextNode(firstAidId) {
|
|
let res = await getNextNode({
|
|
firstAidId,
|
|
});
|
|
const {
|
|
data,
|
|
code,
|
|
msg
|
|
} = res;
|
|
if (code === 200) {
|
|
console.log('this.nodeInfo', data)
|
|
this.nodeInfo = data;
|
|
this.setNextNodeData(data);
|
|
} else {
|
|
this.$message.error('缺少急救id信息');
|
|
}
|
|
},
|
|
onSubmit() {
|
|
this.$emit('next')
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="less">
|
|
.throm-result-sop {
|
|
.report-timeline {
|
|
overflow-y: auto;
|
|
padding: 12px;
|
|
min-height: 300px;
|
|
|
|
.flex {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.cor-green {
|
|
color: #00c767;
|
|
}
|
|
|
|
.cor-red {
|
|
color: #ff4a44;
|
|
}
|
|
|
|
.font-xl {
|
|
font-size: 22px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.ant-steps {
|
|
height: 100%;
|
|
padding-bottom: 20px;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
.ant-steps-item .ant-steps-item-container {
|
|
display: flex;
|
|
|
|
.ant-steps-item-content {
|
|
flex: 1;
|
|
text-align: right;
|
|
}
|
|
}
|
|
}
|
|
|
|
.ant-steps-item-title {
|
|
padding: 0;
|
|
width: 100%;
|
|
}
|
|
|
|
.ant-steps-item-finish {
|
|
.ant-steps-item-title {
|
|
color: #000000;
|
|
}
|
|
}
|
|
|
|
.ant-steps-item-process {
|
|
.ant-steps-item-title {
|
|
color: #007AFF;
|
|
// // border-bottom: 1px solid #007AFF;
|
|
// border-bottom: 3px solid transparent;
|
|
// /* 设置透明的底部边框 */
|
|
// border-image: linear-gradient(to right, #fff, #007AFF) 1;
|
|
// /* 使用渐变色填充边框 */
|
|
// border-radius: 10px;
|
|
// /* 设置圆角 */
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|