Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
81d7d2a759
11
src/api/manage/Auditing.js
Normal file
11
src/api/manage/Auditing.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询管理任务路径及节点
|
||||||
|
export function getRouteNodeList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/manage/signnode/getRouteNodeList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
@ -1,25 +1,124 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card">
|
<div style="background-color:#F1F3F5">
|
||||||
<div class="cardleft">
|
<div slot="footer" style="float: right;padding:10px 10px 0 0;height:35px">
|
||||||
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="">
|
<el-button size="mini" @click="cancel">取 消</el-button>
|
||||||
<!-- <img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt=""> -->
|
<el-button size="mini" type="primary">审核通过</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="cardright">
|
<div class="card">
|
||||||
|
<div class="cardleft">
|
||||||
|
<div class="title">
|
||||||
|
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="">
|
||||||
|
<!-- <img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt=""> -->
|
||||||
|
<div class="name">
|
||||||
|
胡登
|
||||||
|
</div>
|
||||||
|
<div class="genderandage">
|
||||||
|
<span>男</span>
|
||||||
|
|
|
||||||
|
<span>24岁</span>
|
||||||
|
</div>
|
||||||
|
<div class="source">
|
||||||
|
<div class="situation item">
|
||||||
|
{{ list.visitMethod == 'OUTPATIENT_SERVICE' ? '门诊' : '' }}
|
||||||
|
{{ list.visitMethod == 'BE_IN_HOSPITAL' ? '住院' : '' }}
|
||||||
|
</div>
|
||||||
|
<div class="item" style="color:#00E06E;border-color:#00E06E">
|
||||||
|
<img src="../../../assets/manage/gzh.png" alt="">
|
||||||
|
<div>
|
||||||
|
公众号
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item" style="color:#339DE5;border-color:#339DE5">
|
||||||
|
<img src="../../../assets/manage/xcx.png" alt="">
|
||||||
|
<div>
|
||||||
|
小程序
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item" style="color:#F4881F;border-color:#F4881F">
|
||||||
|
<img src="../../../assets/manage/gld.png" alt="">
|
||||||
|
<div>
|
||||||
|
管理端
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="texts">
|
||||||
|
<div class="text">
|
||||||
|
医院: 济南医院
|
||||||
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
科室: 肠胃科
|
||||||
|
</div>
|
||||||
|
<div class="text" v-if="list.visitMethod == 'BE_IN_HOSPITAL'">
|
||||||
|
入院时间: {{ list.admissionTime }}
|
||||||
|
</div>
|
||||||
|
<div class="text" v-if="list.visitMethod == 'BE_IN_HOSPITAL'">
|
||||||
|
出院时间: {{ list.dischargeTime }}
|
||||||
|
</div>
|
||||||
|
<div class="text" v-if="list.visitMethod == 'OUTPATIENT_SERVICE'">
|
||||||
|
就诊时间: {{ list.dischargeTime }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-descriptions title="诊断信息">
|
||||||
|
<el-descriptions-item label="主要诊断">kooriookami</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-descriptions title="手术信息">
|
||||||
|
<el-descriptions-item label="手术名称">kooriookami</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
<el-collapse v-model="activeNames">
|
||||||
|
<el-collapse-item title="入院记录" name="1">
|
||||||
|
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||||
|
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
<el-collapse-item title="手术记录" name="2">
|
||||||
|
<div>用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;</div>
|
||||||
|
<div>结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
<el-collapse-item title="出院记录" name="3">
|
||||||
|
<div>简化流程:设计简洁直观的操作流程;</div>
|
||||||
|
<div>清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;</div>
|
||||||
|
<div>帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。</div>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
</div>
|
||||||
|
<div class="cardright">
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
getRouteNodeList
|
||||||
|
} from '@/api/manage/Auditing.js'
|
||||||
export default {
|
export default {
|
||||||
name: "Auditing",
|
name: "Auditing",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
activeNames: ['1', '2', '3'],
|
||||||
|
list: {
|
||||||
|
visitMethod: "BE_IN_HOSPITAL",
|
||||||
|
},
|
||||||
|
nodelist: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.info();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
info() {
|
||||||
|
getRouteNodeList({ patientId: this.$route.query.patientId, taskCreateType: 'MANUAL_CREATE' }).then(res => {
|
||||||
|
this.nodelist = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
cancel() {
|
||||||
|
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
|
||||||
|
this.$router.push({
|
||||||
|
path: "/task/manualReview",
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -29,8 +128,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-evenly;
|
justify-content: space-evenly;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
height: calc(100vh - 84px);
|
height: calc(100vh - 119px);
|
||||||
background-color: #F1F3F5;
|
|
||||||
|
|
||||||
.cardleft {
|
.cardleft {
|
||||||
width: 35%;
|
width: 35%;
|
||||||
@ -38,10 +136,73 @@ export default {
|
|||||||
overflow: scroll;
|
overflow: scroll;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
|
||||||
.headsculpture {
|
::v-deep .el-collapse-item__header {
|
||||||
width: 50px;
|
font-size: 16px;
|
||||||
height: 50px;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.texts {
|
||||||
|
margin: 16px 0 20px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
.text {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
width: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.source {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.situation {
|
||||||
|
background-color: #F1FAF7;
|
||||||
|
padding: 3px 6px;
|
||||||
|
color: #83CAC0 !important;
|
||||||
|
border: 1px solid #83CAC0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
font-size: 14px;
|
||||||
|
margin-left: 5px;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
padding: 3px 6px;
|
||||||
|
border-radius: 5px;
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
img {
|
||||||
|
margin-right: 2px;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {}
|
||||||
|
|
||||||
|
.genderandage {}
|
||||||
|
|
||||||
|
.time {}
|
||||||
|
|
||||||
|
.headsculpture {
|
||||||
|
width: 35px;
|
||||||
|
height: 35px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardright {
|
.cardright {
|
||||||
@ -50,4 +211,4 @@ export default {
|
|||||||
width: 62%;
|
width: 62%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -210,22 +210,12 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 审核操作 */
|
/** 审核操作 */
|
||||||
handleAuthRole(row) {
|
handleAuthRole(row) {
|
||||||
// this.$router.push({
|
this.$router.push({
|
||||||
// path: "/patient/patientdetails",
|
path: "/task/Auditing",
|
||||||
// query: {
|
query: {
|
||||||
// patientId: row.id,
|
patientId: row.patientId,
|
||||||
// cardNo: row.cardNo,
|
},
|
||||||
// patientName: row.patientName,
|
});
|
||||||
// patientPhone: row.patientPhone,
|
|
||||||
// sex: row.sex,
|
|
||||||
// birthDate: row.birthDate,
|
|
||||||
// familyMemberPhone: row.familyMemberPhone,
|
|
||||||
// address: row.address,
|
|
||||||
// patientSource: row.patientSource,
|
|
||||||
// createTime: row.createTime,
|
|
||||||
// age: row.birthDate ? getAge(row.birthDate) : ''
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
},
|
},
|
||||||
/** 查询患者信息列表 */
|
/** 查询患者信息列表 */
|
||||||
getList() {
|
getList() {
|
||||||
@ -358,4 +348,4 @@ export default {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -231,7 +231,6 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 详情操作 */
|
/** 详情操作 */
|
||||||
handleAuthRole(row) {
|
handleAuthRole(row) {
|
||||||
|
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: "/patient/patientdetails",
|
path: "/patient/patientdetails",
|
||||||
query: {
|
query: {
|
||||||
|
|||||||
@ -338,7 +338,7 @@ export default {
|
|||||||
{ required: true, message: "患者信息表id不能为空", trigger: "blur" }
|
{ required: true, message: "患者信息表id不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
addTaskitem: {},
|
addTaskitem: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|||||||
@ -190,7 +190,7 @@ export default {
|
|||||||
questionExpirationDate: 7,
|
questionExpirationDate: 7,
|
||||||
questionInfoId: "",
|
questionInfoId: "",
|
||||||
questionnaireName: "",
|
questionnaireName: "",
|
||||||
phoneTemplateId: "",
|
phoneId: "",
|
||||||
phoneTemplateName: "",
|
phoneTemplateName: "",
|
||||||
propagandaInfoId: '',
|
propagandaInfoId: '',
|
||||||
propagandaTitle: "",
|
propagandaTitle: "",
|
||||||
@ -208,7 +208,7 @@ export default {
|
|||||||
questionExpirationDate: 7,
|
questionExpirationDate: 7,
|
||||||
questionInfoId: "",
|
questionInfoId: "",
|
||||||
questionnaireName: "",
|
questionnaireName: "",
|
||||||
phoneTemplateId: "",
|
phoneId: "",
|
||||||
phoneTemplateName: "",
|
phoneTemplateName: "",
|
||||||
propagandaInfoId: '',
|
propagandaInfoId: '',
|
||||||
propagandaTitle: "",
|
propagandaTitle: "",
|
||||||
@ -247,12 +247,17 @@ export default {
|
|||||||
},
|
},
|
||||||
//问卷传值
|
//问卷传值
|
||||||
questionontemplate(item) {
|
questionontemplate(item) {
|
||||||
this.formInline.questionInfoId = item.templateId
|
if (this.formInline.taskType == 'ARTIFICIAL_FOLLOW_UP') {
|
||||||
this.formInline.questionnaireName = item.templateName
|
this.formInline.followTemplateId = item.templateId
|
||||||
|
this.formInline.followTemplateName = item.templateName
|
||||||
|
} else {
|
||||||
|
this.formInline.questionInfoId = item.templateId
|
||||||
|
this.formInline.questionnaireName = item.templateName
|
||||||
|
}
|
||||||
},
|
},
|
||||||
//话术传值
|
//话术传值
|
||||||
scriptphoneontemplate(item) {
|
scriptphoneontemplate(item) {
|
||||||
this.formInline.phoneTemplateId = item.templateId
|
this.formInline.phoneId = item.templateId
|
||||||
this.formInline.phoneTemplateName = item.templateName
|
this.formInline.phoneTemplateName = item.templateName
|
||||||
},
|
},
|
||||||
clicktimelineitem(item, index) {
|
clicktimelineitem(item, index) {
|
||||||
@ -267,7 +272,7 @@ export default {
|
|||||||
questionExpirationDate: 7,
|
questionExpirationDate: 7,
|
||||||
questionInfoId: "",
|
questionInfoId: "",
|
||||||
questionnaireName: "",
|
questionnaireName: "",
|
||||||
phoneTemplateId: "",
|
phoneId: "",
|
||||||
phoneTemplateName: "",
|
phoneTemplateName: "",
|
||||||
propagandaInfoId: '',
|
propagandaInfoId: '',
|
||||||
propagandaTitle: "",
|
propagandaTitle: "",
|
||||||
|
|||||||
@ -333,7 +333,7 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-notebook-2"
|
icon="el-icon-notebook-2"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleadtail(scope.row)"
|
||||||
>详情</el-button
|
>详情</el-button
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
@ -782,7 +782,20 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
// 详情
|
// 详情
|
||||||
handledatail(row) {
|
handleadtail(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: "/task/followupdetails",
|
||||||
|
query: {
|
||||||
|
patientId: row.patientId,
|
||||||
|
taskType: row.taskType,
|
||||||
|
templateId: row.templateId,
|
||||||
|
manageRouteId:row.manageRouteId,
|
||||||
|
|
||||||
|
visitRecordId:row.visitRecordId,
|
||||||
|
taskExecuteRecordId:row.taskExecuteRecordId,
|
||||||
|
routeHandleRemark:row.routeHandleRemark?row.routeHandleRemark:null,
|
||||||
|
},
|
||||||
|
});
|
||||||
console.log(row)
|
console.log(row)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
669
src/views/system/followupdetails/index.vue
Normal file
669
src/views/system/followupdetails/index.vue
Normal file
@ -0,0 +1,669 @@
|
|||||||
|
<template>
|
||||||
|
<div class="header">
|
||||||
|
<div class="topheader">
|
||||||
|
<div class="user">
|
||||||
|
<img
|
||||||
|
class="headsculpture"
|
||||||
|
src="../../../assets/manage/touxiang.png"
|
||||||
|
alt=""
|
||||||
|
v-if="list.sex == 'MALE'"
|
||||||
|
/>
|
||||||
|
<img
|
||||||
|
class="headsculpture"
|
||||||
|
src="../../../assets/manage/nvtouxiang.png"
|
||||||
|
alt=""
|
||||||
|
v-if="list.sex == 'FEMALE'"
|
||||||
|
/>
|
||||||
|
<div class="name">
|
||||||
|
{{ list.patientName }}
|
||||||
|
</div>
|
||||||
|
<div class="gender">
|
||||||
|
{{ list.sex == "MALE" ? "男" : list.sex == "FEMALE" ? "女" : "" }}
|
||||||
|
</div>
|
||||||
|
<div class="age">
|
||||||
|
{{ list.age }}
|
||||||
|
</div>
|
||||||
|
<!-- <div class="source">
|
||||||
|
<div class="item" @click="submit">
|
||||||
|
<el-button plain>保存</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="item" @click="cencal">
|
||||||
|
<el-button plain>取消</el-button>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
<div class="information">
|
||||||
|
<div class="top">
|
||||||
|
<div>身份证号:{{ list.cardNo }}</div>
|
||||||
|
<div>患者电话:{{ list.patientPhone }}</div>
|
||||||
|
<div style="width: 50%">出生日期:{{ list.birthDate }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom">
|
||||||
|
<div>家属电话:{{ list.familyMemberPhone }}</div>
|
||||||
|
<div style="width: 50%">住址:{{ list.address }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottomheader">
|
||||||
|
<div style="display: flex">
|
||||||
|
<!-- 问卷模板 -->
|
||||||
|
<div
|
||||||
|
class="right"
|
||||||
|
v-if="
|
||||||
|
$route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
|
||||||
|
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style="float: right; margin-top: 20px"
|
||||||
|
v-if="
|
||||||
|
$route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
|
||||||
|
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
:model="questiondata"
|
||||||
|
:rules="rules"
|
||||||
|
ref="questiondata"
|
||||||
|
>
|
||||||
|
<el-form-item label="任务处理信息" prop="routeHandleRemark">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入任务处理信息"
|
||||||
|
v-model="questiondata.routeHandleRemark"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="sport"
|
||||||
|
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
|
||||||
|
>
|
||||||
|
问卷模板: Barthel指数评定问卷
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="words"
|
||||||
|
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
|
||||||
|
>
|
||||||
|
您好!本问卷用于评估日常生活能力,请根据自身日常实际表现选择合适的选项。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="sport"
|
||||||
|
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
|
||||||
|
>
|
||||||
|
人工随访模板: 神经内科人工随访
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="words"
|
||||||
|
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
|
||||||
|
>
|
||||||
|
**您好!
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="words"
|
||||||
|
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
|
||||||
|
>
|
||||||
|
我是✕✕医院的工作人员,今天给您打电话想要了解一下您的恢复情况。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="words"
|
||||||
|
v-for="(item, index) in questiondata.subjectResultList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
{{ index + 1 }}.{{ item.questionName }}
|
||||||
|
<span v-if="item.questionType == 'MULTIPLE_CHOICE'"
|
||||||
|
>(单选题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'"
|
||||||
|
>(多选题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'SCORING_QUESTIONS'"
|
||||||
|
>(打分题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'"
|
||||||
|
>(组合单选题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"
|
||||||
|
>(组合多选题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
|
||||||
|
>(组合填空题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'FILL_IN_THE_BLANKS'"
|
||||||
|
>(填空题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'"
|
||||||
|
>(组合打分题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
|
||||||
|
>(日期填空题)</span
|
||||||
|
>
|
||||||
|
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
|
||||||
|
>(时间填空题)</span
|
||||||
|
>
|
||||||
|
<el-radio-group
|
||||||
|
v-if="
|
||||||
|
item.questionType == 'MULTIPLE_CHOICE' ||
|
||||||
|
item.questionType == 'COMBINATION_RADIO_SUBJECT' ||
|
||||||
|
item.questionType == 'SCORING_QUESTIONS' ||
|
||||||
|
item.questionType == 'COMBINATION_SCORING_SUBJECT'
|
||||||
|
"
|
||||||
|
v-model="item.checked"
|
||||||
|
class="custom-radio-group"
|
||||||
|
>
|
||||||
|
<el-radio
|
||||||
|
disabled
|
||||||
|
class="custom"
|
||||||
|
v-for="(aitem, aindex) in item.optionResults"
|
||||||
|
:key="aindex"
|
||||||
|
:label="aitem.id"
|
||||||
|
@change="radioChange($event, aitem, index)"
|
||||||
|
>{{ aitem.optionName }}</el-radio
|
||||||
|
>
|
||||||
|
</el-radio-group>
|
||||||
|
<!-- 多选、组合多选 -->
|
||||||
|
<el-checkbox-group
|
||||||
|
v-model="checkeddata"
|
||||||
|
v-if="
|
||||||
|
item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' ||
|
||||||
|
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-checkbox
|
||||||
|
disabled
|
||||||
|
v-for="(aitem, aindex) in item.optionResults"
|
||||||
|
:key="aindex"
|
||||||
|
:label="aitem.id"
|
||||||
|
@change="radioChangecheck($event, aitem, index, aindex)"
|
||||||
|
>{{ aitem.optionName }}</el-checkbox
|
||||||
|
>
|
||||||
|
</el-checkbox-group>
|
||||||
|
<!-- 填空题、组合填空 -->
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
item.questionType == 'FILL_IN_THE_BLANKS' ||
|
||||||
|
item.questionType == 'COMBINATION_BLANKS_SUBJECT'
|
||||||
|
"
|
||||||
|
class="tk"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
|
||||||
|
v-model="item.fillBlanksAnswer"
|
||||||
|
placeholder="请输入答案"
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
<!-- <el-input></el-input> -->
|
||||||
|
</div>
|
||||||
|
<!-- 日期填空题、 -->
|
||||||
|
<div
|
||||||
|
v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
|
||||||
|
style="margin: 20px 0 10px 30px"
|
||||||
|
>
|
||||||
|
<el-date-picker
|
||||||
|
disabled
|
||||||
|
|
||||||
|
@change="timepicker($event, index)"
|
||||||
|
clearable
|
||||||
|
v-model="item.fillBlanksAnswer"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
placeholder="选择日期"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</div>
|
||||||
|
<!-- 时间填空题 -->
|
||||||
|
<div
|
||||||
|
style="margin: 20px 0 10px 30px"
|
||||||
|
v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
|
||||||
|
>
|
||||||
|
<el-time-select
|
||||||
|
disabled
|
||||||
|
@change="timepickerselect($event, index)"
|
||||||
|
clearable
|
||||||
|
v-model="item.fillBlanksAnswer"
|
||||||
|
:picker-options="{
|
||||||
|
start: '08:30',
|
||||||
|
step: '00:30',
|
||||||
|
end: '23:30',
|
||||||
|
}"
|
||||||
|
placeholder="选择时间"
|
||||||
|
>
|
||||||
|
</el-time-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 电话外呼 -->
|
||||||
|
<div v-if="$route.query.taskType == 'PHONE_OUTBOUND'">
|
||||||
|
<div class="sport">电话外呼</div>
|
||||||
|
|
||||||
|
<div class="nexttime">
|
||||||
|
<el-form
|
||||||
|
ref="form"
|
||||||
|
:model="formlist"
|
||||||
|
label-width="110px"
|
||||||
|
:inline="true"
|
||||||
|
>
|
||||||
|
<el-form-item label="话术名称" prop="scriptName">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="formlist.scriptName"
|
||||||
|
placeholder="请输入话术名称"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<br />
|
||||||
|
<el-form-item label="通用话术名称" prop="commonScriptName">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="formlist.commonScriptName"
|
||||||
|
placeholder="请输入通用话术名称"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<br />
|
||||||
|
<el-form-item label="话术简介" prop="scriptIntroduction">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
type="textarea"
|
||||||
|
v-model="formlist.scriptIntroduction"
|
||||||
|
placeholder="请输入话术简介"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<br />
|
||||||
|
<el-form-item label="任务处理信息" prop="routeHandleRemark">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
type="textarea"
|
||||||
|
v-model="questiondata.routeHandleRemark"
|
||||||
|
placeholder="请输入任务处理信息"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { selectFollowPatientInfo, question, addPatientQuestionResult } from "@/api/system/followupsee";
|
||||||
|
import {
|
||||||
|
selectPatientQuestionSubmit,
|
||||||
|
} from "@/api/system/taskExecuteRecord";
|
||||||
|
import { getScript } from "@/api/manage/script";
|
||||||
|
import Cookies from 'js-cookie'
|
||||||
|
export default {
|
||||||
|
name: "patientdetails",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
obj: {},
|
||||||
|
checkList: [],
|
||||||
|
checked: false,
|
||||||
|
formlist: {},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
routeHandleRemark: [
|
||||||
|
{ required: true, message: '请输入任务处理信息', trigger: 'change' }
|
||||||
|
],
|
||||||
|
},
|
||||||
|
radio: "B",
|
||||||
|
id: "",
|
||||||
|
list: [],
|
||||||
|
type: '',
|
||||||
|
checkeddata: [],
|
||||||
|
questiondata: {
|
||||||
|
// routeHandleRemark:null,
|
||||||
|
totalScore: 0, //总分
|
||||||
|
routeHandlePerson: null,
|
||||||
|
routeHandleId: null,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.id = this.$route.query.manageRouteId;
|
||||||
|
this.info();
|
||||||
|
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE' || this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') {
|
||||||
|
this.selectlist();
|
||||||
|
|
||||||
|
console.log(this.$route.query.routeHandleRemark, "res");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
getScript(this.$route.query.templateId).then(response => {
|
||||||
|
if (response.data) {
|
||||||
|
this.formlist = response.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 问卷和随访
|
||||||
|
selectlist() {
|
||||||
|
selectPatientQuestionSubmit(this.$route.query.taskExecuteRecordId).then((res) => {
|
||||||
|
this.questiondata = res.data;
|
||||||
|
if (this.$route.query.routeHandleRemark) {
|
||||||
|
this.questiondata.routeHandleRemark =
|
||||||
|
this.$route.query.routeHandleRemark;
|
||||||
|
}
|
||||||
|
this.questiondata.subjectResultList.forEach((e) => {
|
||||||
|
e.optionResults.forEach((el) => {
|
||||||
|
if (
|
||||||
|
(el.optionChooseSign == "0" &&
|
||||||
|
e.questionType == "MULTIPLE_CHOICE") ||
|
||||||
|
e.questionType == "COMBINATION_RADIO_SUBJECT"
|
||||||
|
) {
|
||||||
|
e.checked = el.id;
|
||||||
|
} else if (
|
||||||
|
el.optionChooseSign == "0" &&
|
||||||
|
e.questionType == "MULTIPLE_CHOICE_QUESTIONS"
|
||||||
|
) {
|
||||||
|
this.checkeddata.push(el.id);
|
||||||
|
} else if (
|
||||||
|
el.optionChooseSign == "0" &&
|
||||||
|
e.questionType == "SCORING_QUESTIONS"
|
||||||
|
) {
|
||||||
|
e.checked = el.id;
|
||||||
|
} else if (
|
||||||
|
e.questionType == "COMBINATION_MULTIPLE_SUBJECT" &&
|
||||||
|
el.optionChooseSign == "0"
|
||||||
|
) {
|
||||||
|
this.checkeddata.push(el.id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 日期填空题
|
||||||
|
timepicker(e, index) {
|
||||||
|
this.questiondata.subjectResultList[index].fillBlanksAnswer = e
|
||||||
|
},
|
||||||
|
// 时间填空题
|
||||||
|
timepickerselect(e, index) {
|
||||||
|
this.questiondata.subjectResultList[index].fillBlanksAnswer = e
|
||||||
|
},
|
||||||
|
// 选中某个单选框时,由radio时触发
|
||||||
|
radioChange(e, item, index) {
|
||||||
|
console.log(e, item, index, '选中某个单选框时')
|
||||||
|
this.questiondata.subjectResultList[index].optionResults.forEach(el => {
|
||||||
|
if (el.id == item.id) {
|
||||||
|
el.optionChooseSign = '0'
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
el.optionChooseSign = '1'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(this.questiondata, 'this.questiondata')
|
||||||
|
this.questiondata
|
||||||
|
},
|
||||||
|
// 复选框
|
||||||
|
radioChangecheck(e, item, index, aindex) {
|
||||||
|
console.log(e, item, index, '选中某个复选框时')
|
||||||
|
if (e == true) {
|
||||||
|
this.questiondata.subjectResultList[index].optionResults[aindex].optionChooseSign = '0'
|
||||||
|
} else {
|
||||||
|
this.questiondata.subjectResultList[index].optionResults[aindex].optionChooseSign = '1'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
info() {
|
||||||
|
selectFollowPatientInfo(this.id).then((res) => {
|
||||||
|
this.list = res.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
questioninfo() {
|
||||||
|
question(this.$route.query.templateId).then((res) => {
|
||||||
|
this.questiondata = res.data;
|
||||||
|
this.questiondata.questionInfoId = res.data.id;
|
||||||
|
this.questiondata.routeHandlePerson = Cookies.get('userName')
|
||||||
|
this.questiondata.routeHandleId = Cookies.get('userId')
|
||||||
|
this.questiondata.patientId = this.$route.query.patientId
|
||||||
|
this.questiondata.manageRouteId = this.$route.query.manageRouteId
|
||||||
|
this.questiondata.manageRouteNodeId = this.$route.query.manageRouteNodeId
|
||||||
|
this.questiondata.patientName = this.$route.query.patientName
|
||||||
|
this.questiondata.manageRouteName = this.$route.query.manageRouteName
|
||||||
|
this.questiondata.manageRouteNodeName = this.$route.query.manageRouteNodeName
|
||||||
|
this.questiondata.taskType = this.$route.query.taskType
|
||||||
|
this.questiondata.visitRecordId=this.$route.query.visitRecordId
|
||||||
|
this.questiondata.totalScore = 0
|
||||||
|
this.questiondata.subjectResultList.forEach(e => {
|
||||||
|
if (e.questionType == 'MULTIPLE_CHOICE' || e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'SCORING_QUESTIONS' || e.questionType == 'COMBINATION_RADIO_SUBJECT' || e.questionType == 'COMBINATION_MULTIPLE_SUBJECT' || e.questionType == 'COMBINATION_SCORING_SUBJECT') {
|
||||||
|
e.whetherScore = '1'
|
||||||
|
} else {
|
||||||
|
e.whetherScore = '0'
|
||||||
|
}
|
||||||
|
e.optionResults.forEach(el => {
|
||||||
|
el.questionNumber = e.questionNumber
|
||||||
|
if (e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'COMBINATION_MULTIPLE_SUBJECT') {
|
||||||
|
el.optionChooseSign = '1'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .el-input.is-disabled .el-input__inner {
|
||||||
|
background: #fff !important;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
::v-deep .el-textarea.is-disabled .el-textarea__inner {
|
||||||
|
color: #606266;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
.tk {
|
||||||
|
::v-deep .el-textarea__inner {
|
||||||
|
margin: 20px 0 10px 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-radio {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox-group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 10px 0px 10px 24px;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox {
|
||||||
|
padding: 10px 0 10px 0px;
|
||||||
|
// padding: 10px;
|
||||||
|
}
|
||||||
|
.custom-radio-group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 10px 0 10px 10px;
|
||||||
|
.custom {
|
||||||
|
padding: 10px 0 10px 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.bodytop {
|
||||||
|
position: relative;
|
||||||
|
top: 20px;
|
||||||
|
// height: 500px;
|
||||||
|
width: 400px;
|
||||||
|
margin: 0 auto;
|
||||||
|
// background: red;f
|
||||||
|
overflow: auto;
|
||||||
|
border: 1px solid #e2e2e2;
|
||||||
|
.titledata {
|
||||||
|
margin: 30px 0px 15px 30px;
|
||||||
|
top: 14px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.audiotop {
|
||||||
|
margin: 10px 0px 10px 30px;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
// width: 362px;
|
||||||
|
// height: 127px;
|
||||||
|
margin: 0px 0px 0px 30px;
|
||||||
|
}
|
||||||
|
.know {
|
||||||
|
margin: 11px 0px 10px 30px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 550;
|
||||||
|
}
|
||||||
|
.knowlist {
|
||||||
|
margin: 10px 0px 10px 30px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
width: 100%;
|
||||||
|
height: 500px;
|
||||||
|
// background: yellow;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
background-color: #f1f3f5;
|
||||||
|
padding-top: 10px;
|
||||||
|
|
||||||
|
::v-deep .el-tabs__header {
|
||||||
|
margin: 0 !important;
|
||||||
|
width: 100%;
|
||||||
|
// overflow: auto;
|
||||||
|
// height: 500px;
|
||||||
|
// background: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottomheader {
|
||||||
|
overflow: auto;
|
||||||
|
width: 99%;
|
||||||
|
background-color: #fff;
|
||||||
|
margin: 10px auto;
|
||||||
|
padding: 10px 20px;
|
||||||
|
.sport {
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.words {
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.sports {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%);
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.word {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 550;
|
||||||
|
padding: 50px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.videoleft {
|
||||||
|
width: 40%;
|
||||||
|
height: 200px;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.time {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 550;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.number {
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
color: white;
|
||||||
|
background: blue;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.nexttime {
|
||||||
|
font-size: 15px;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
.images {
|
||||||
|
width: 53%;
|
||||||
|
height: 241px;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: red;
|
||||||
|
}
|
||||||
|
.attention {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 550;
|
||||||
|
padding: 10px 50px 10px 10px;
|
||||||
|
}
|
||||||
|
// .videobottom
|
||||||
|
// {
|
||||||
|
// font-size: 14px;
|
||||||
|
// font-weight: 550;
|
||||||
|
// padding: 10px 50px 10px 10px;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
.topheader {
|
||||||
|
width: 99%;
|
||||||
|
background-color: #fff;
|
||||||
|
margin: 0 auto;
|
||||||
|
|
||||||
|
.information {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 10px 20px;
|
||||||
|
height: 110px;
|
||||||
|
|
||||||
|
.top,
|
||||||
|
.bottom {
|
||||||
|
color: #666666;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
div {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 20px;
|
||||||
|
display: flex;
|
||||||
|
height: 80px;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 80px;
|
||||||
|
|
||||||
|
.source {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
right: 59px;
|
||||||
|
position: absolute;
|
||||||
|
.item {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
font-size: 20px;
|
||||||
|
padding-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gender {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.age {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headsculpture {
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user