修改专病路径

This commit is contained in:
闫晓茹 2024-06-14 15:43:32 +08:00
parent bd016ace81
commit 23496791a5
4 changed files with 814 additions and 353 deletions

View File

@ -317,6 +317,7 @@ Boot.registerPlugin(withAttachment)
function renderAttachment(elem, children, editor) { // JS function renderAttachment(elem, children, editor) { // JS
// myResume // myResume
const { fileName = '', link = '', fileSpan = '', fieldMark = '' } = elem const { fileName = '', link = '', fileSpan = '', fieldMark = '' } = elem
// const { add=[]}
// icon vnode // icon vnode
const iconVnode = h( const iconVnode = h(
// HTML tag // HTML tag
@ -359,7 +360,7 @@ function renderAttachment(elem, children, editor) {
on: { click() { }, /* 其他... */ } on: { click() { }, /* 其他... */ }
}, },
// img // img
[fileSpan] [add]
) )
const nameVnode = h( const nameVnode = h(
// HTML tag // HTML tag
@ -367,7 +368,7 @@ function renderAttachment(elem, children, editor) {
// HTML // HTML
{ {
props: { contentEditable: false }, // HTML props: { contentEditable: false }, // HTML
style: { color: '#fff', background: '#009A82', padding: '5px 10px' /* 其他... */ }, // style style: { color: '#fff', background: 'red', padding: '5px 10px' /* 其他... */ }, // style
on: { click() { }, /* 其他... */ } on: { click() { }, /* 其他... */ }
}, },
// img // img

View File

@ -161,6 +161,9 @@ export default {
this.Departmentlist(); this.Departmentlist();
}, },
methods: { methods: {
listDisease(){
this.$emit("on-template", { templateId: '', templateName: '', templateContent: '' });
},
nohandleselect() { nohandleselect() {
this.handleselectId = '' this.handleselectId = ''
this.handleselectName = '' this.handleselectName = ''

View File

@ -2,8 +2,18 @@
<div class="header"> <div class="header">
<div class="topheader"> <div class="topheader">
<div class="user"> <div class="user">
<img class="headsculpture" src="../../../assets/manage/touxiang.png" alt="" v-if="list.sex == 'MALE'" /> <img
<img class="headsculpture" src="../../../assets/manage/nvtouxiang.png" alt="" v-if="list.sex == 'FEMALE'" /> 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"> <div class="name">
{{ list.patientName }} {{ list.patientName }}
</div> </div>
@ -37,83 +47,187 @@
<div class="bottomheader"> <div class="bottomheader">
<div style="display: flex"> <div style="display: flex">
<!-- 问卷模板 --> <!-- 问卷模板 -->
<div class="right" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE' || <div
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP' class="right"
"> v-if="
<div style="float: right; margin-top: 20px" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE' || $route.query.taskType == 'QUESTIONNAIRE_SCALE' ||
$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP' $route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'
"> "
<el-form :inline="true" class="demo-form-inline" :model="questiondata" :rules="rules" ref="questiondata"> >
<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-form-item label="任务处理信息" prop="routeHandleRemark">
<el-input type="textarea" placeholder="请输入任务处理信息" v-model="questiondata.routeHandleRemark" /> <el-input
type="textarea"
placeholder="请输入任务处理信息"
v-model="questiondata.routeHandleRemark"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="sport" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"> <div
class="sport"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
>
问卷模板: Barthel指数评定问卷 问卷模板: Barthel指数评定问卷
</div> </div>
<div class="words" v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"> <div
class="words"
v-if="$route.query.taskType == 'QUESTIONNAIRE_SCALE'"
>
您好!本问卷用于评估日常生活能力请根据自身日常实际表现选择合适的选项 您好!本问卷用于评估日常生活能力请根据自身日常实际表现选择合适的选项
</div> </div>
<div class="sport" v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"> <div
class="sport"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
人工随访模板: 神经内科人工随访 人工随访模板: 神经内科人工随访
</div> </div>
<div class="words" v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"> <div
class="words"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
**您好! **您好!
</div> </div>
<div class="words" v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"> <div
class="words"
v-if="$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP'"
>
我是医院的工作人员今天给您打电话想要了解一下您的恢复情况 我是医院的工作人员今天给您打电话想要了解一下您的恢复情况
</div> </div>
<div class="words" v-for="(item, index) in questiondata.questionSubjectList" :key="index"> <div
class="words"
v-for="(item, index) in questiondata.questionSubjectList"
:key="index"
>
{{ index + 1 }}.{{ item.questionName }} {{ index + 1 }}.{{ item.questionName }}
<span v-if="item.questionType == 'MULTIPLE_CHOICE'">单选题</span> <span v-if="item.questionType == 'MULTIPLE_CHOICE'"
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'">多选题</span> >单选题</span
<span v-if="item.questionType == 'SCORING_QUESTIONS'">打分题</span> >
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'">组合单选题</span> <span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'"
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'">组合多选题</span> >多选题</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 == 'SCORING_QUESTIONS'"
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'">组合打分题</span> >打分题</span
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'">日期填空题</span> >
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">时间填空题</span> <span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'"
<el-radio-group v-if="item.questionType == 'MULTIPLE_CHOICE' || >组合单选题</span
item.questionType == 'COMBINATION_RADIO_SUBJECT' || >
item.questionType == 'SCORING_QUESTIONS' || <span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'"
item.questionType == 'COMBINATION_SCORING_SUBJECT' >组合多选题</span
" v-model="questiondata[index]" class="custom-radio-group" @change="radioGroupChange($event, item)"> >
<el-radio class="custom" v-for="(aitem, aindex) in item.questionSubjectOptionList" :key="aindex" <span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
:label="aitem.id" @change="radioChange($event, aitem, index)">{{ aitem.optionName }}</el-radio> >组合填空题</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="questiondata[index]"
class="custom-radio-group"
@change="radioGroupChange($event, item)"
>
<el-radio
class="custom"
v-for="(aitem, aindex) in item.questionSubjectOptionList"
:key="aindex"
:label="aitem.id"
@change="radioChange($event, aitem, index)"
>{{ aitem.optionName }}</el-radio
>
</el-radio-group> </el-radio-group>
<!-- 多选组合多选 --> <!-- 多选组合多选 -->
<el-checkbox-group v-model="checkeddata" @change="radioGroupChange($event, item, 'checkbox')" v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || <el-checkbox-group
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT' v-model="checkeddata"
"> @change="radioGroupChange($event, item, 'checkbox')"
<el-checkbox v-for="(aitem, aindex) in item.questionSubjectOptionList" :key="aindex" :label="aitem.id" v-if="
@change="radioChangecheck($event, aitem, index, aindex)">{{ aitem.optionName }}</el-checkbox> item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' ||
item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'
"
>
<el-checkbox
v-for="(aitem, aindex) in item.questionSubjectOptionList"
:key="aindex"
:label="aitem.id"
@change="radioChangecheck($event, aitem, index, aindex)"
>{{ aitem.optionName }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
<!-- 填空题组合填空 --> <!-- 填空题组合填空 -->
<div v-if="item.questionType == 'FILL_IN_THE_BLANKS' || <div
item.questionType == 'COMBINATION_BLANKS_SUBJECT' v-if="
" class="tk"> item.questionType == 'FILL_IN_THE_BLANKS' ||
<el-input v-model="item.fillBlanksAnswer" placeholder="请输入答案" type="textarea" /> item.questionType == 'COMBINATION_BLANKS_SUBJECT'
"
class="tk"
>
<el-input
v-model="item.fillBlanksAnswer"
placeholder="请输入答案"
type="textarea"
/>
<!-- <el-input></el-input> --> <!-- <el-input></el-input> -->
</div> </div>
<!-- 日期填空题 --> <!-- 日期填空题 -->
<div v-if="item.questionType == 'DATE_BLANKS_SUBJECT'" style="margin: 20px 0 10px 30px"> <div
<el-date-picker @change="timepicker($event, index)" clearable v-model="item.fillBlanksAnswer" type="date" v-if="item.questionType == 'DATE_BLANKS_SUBJECT'"
value-format="yyyy-MM-dd" placeholder="选择日期"> style="margin: 20px 0 10px 30px"
>
<el-date-picker
@change="timepicker($event, index)"
clearable
v-model="item.fillBlanksAnswer"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker> </el-date-picker>
</div> </div>
<!-- 时间填空题 --> <!-- 时间填空题 -->
<div style="margin: 20px 0 10px 30px" v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"> <div
<el-time-select @change="timepickerselect($event, index)" clearable v-model="item.fillBlanksAnswer" style="margin: 20px 0 10px 30px"
v-if="item.questionType == 'TIME_BLANKS_SUBJECT'"
>
<el-time-select
@change="timepickerselect($event, index)"
clearable
v-model="item.fillBlanksAnswer"
:picker-options="{ :picker-options="{
start: '08:30', start: '08:30',
step: '00:30', step: '00:30',
end: '23:30', end: '23:30',
}" placeholder="选择时间"> }"
placeholder="选择时间"
>
</el-time-select> </el-time-select>
</div> </div>
</div> </div>
@ -123,22 +237,42 @@
<div class="sport">电话外呼</div> <div class="sport">电话外呼</div>
<div class="nexttime"> <div class="nexttime">
<el-form ref="formlist" :model="formlist" label-width="110px" :inline="true" :rules="rulesphone"> <el-form
ref="formlist"
:model="formlist"
label-width="110px"
:inline="true"
:rules="rulesphone"
>
<el-form-item label="话术名称" prop="scriptName"> <el-form-item label="话术名称" prop="scriptName">
<el-input disabled v-model="formlist.scriptName" placeholder="请输入话术名称" /> <el-radio v-model="radio" label="1">备选项</el-radio>
<el-radio v-model="radio" label="2">备选项</el-radio>
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="通用话术名称" prop="commonScriptName"> <el-form-item label="通用话术名称" prop="commonScriptName">
<el-input disabled v-model="formlist.commonScriptName" placeholder="请输入通用话术名称" /> <el-input
disabled
v-model="formlist.commonScriptName"
placeholder="请输入通用话术名称"
/>
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="话术简介" prop="scriptIntroduction"> <el-form-item label="话术简介" prop="scriptIntroduction">
<el-input disabled type="textarea" v-model="formlist.scriptIntroduction" placeholder="请输入话术简介" /> <el-input
disabled
type="textarea"
v-model="formlist.scriptIntroduction"
placeholder="请输入话术简介"
/>
</el-form-item> </el-form-item>
<br /> <br />
<el-form-item label="任务处理信息" prop="routeHandleRemark"> <el-form-item label="任务处理信息" prop="routeHandleRemark">
<el-input type="textarea" v-model="formlist.routeHandleRemark" placeholder="请输入任务处理信息" /> <el-input
type="textarea"
v-model="formlist.routeHandleRemark"
placeholder="请输入任务处理信息"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -148,22 +282,27 @@
</div> </div>
</template> </template>
<script> <script>
import { selectFollowPatientInfo, question, addPatientQuestionResult } from "@/api/system/followupsee"; import {
selectFollowPatientInfo,
question,
addPatientQuestionResult,
} from "@/api/system/followupsee";
import { getScript } from "@/api/manage/script"; import { getScript } from "@/api/manage/script";
import Cookies from 'js-cookie' import Cookies from "js-cookie";
export default { export default {
name: "patientdetails", name: "patientdetails",
data() { data() {
return { return {
obj: {}, obj: {},
radio: "1",
checkList: [], checkList: [],
checked: false, checked: false,
formlist: {}, formlist: {},
form: { form: {
taskType: this.$route.query.taskType, taskType: this.$route.query.taskType,
routeHandleId: Cookies.get('userId'), routeHandleId: Cookies.get("userId"),
routeHandlePerson: Cookies.get('userName'), routeHandlePerson: Cookies.get("userName"),
routeHandleRemark: null, routeHandleRemark: null,
patientId: this.$route.query.patientId, patientId: this.$route.query.patientId,
manageRouteId: this.$route.query.manageRouteId, manageRouteId: this.$route.query.manageRouteId,
@ -178,36 +317,36 @@ export default {
}, },
rules: { rules: {
routeHandleRemark: [ routeHandleRemark: [
{ required: true, message: '请输入任务处理信息', trigger: 'change' } { required: true, message: "请输入任务处理信息", trigger: "change" },
], ],
}, },
rulesphone: { rulesphone: {
routeHandleRemark: [ routeHandleRemark: [
{ required: true, message: '请输入任务处理信息', trigger: 'change' } { required: true, message: "请输入任务处理信息", trigger: "change" },
], ],
}, },
radio: "B", radio: "B",
id: "", id: "",
list: [], list: [],
type: '', type: "",
checkeddata: [], checkeddata: [],
questiondata: { questiondata: {
totalScore: 0, // totalScore: 0, //
routeHandlePerson: null, routeHandlePerson: null,
routeHandleId: null, routeHandleId: null,
}, },
}; };
}, },
created() { created() {
this.id = this.$route.query.manageRouteId; this.id = this.$route.query.manageRouteId;
this.info(); this.info();
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE' || this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') { if (
this.$route.query.taskType == "QUESTIONNAIRE_SCALE" ||
this.$route.query.taskType == "ARTIFICIAL_FOLLOW_UP"
) {
this.questioninfo(); this.questioninfo();
} else { } else {
getScript(this.$route.query.templateId).then((response) => {
getScript(this.$route.query.templateId).then(response => {
if (response.data) { if (response.data) {
this.formlist = response.data; this.formlist = response.data;
} }
@ -217,200 +356,222 @@ export default {
methods: { methods: {
// //
timepicker(e, index) { timepicker(e, index) {
this.questiondata.questionSubjectList[index].fillBlanksAnswer = e this.questiondata.questionSubjectList[index].fillBlanksAnswer = e;
}, },
// //
timepickerselect(e, index) { timepickerselect(e, index) {
this.questiondata.questionSubjectList[index].fillBlanksAnswer = e this.questiondata.questionSubjectList[index].fillBlanksAnswer = e;
},
radioGroupChange(e, item) {
}, },
radioGroupChange(e, item) {},
// radio // radio
radioChange(e, item, index) { radioChange(e, item, index) {
console.log(e, item, index, '选中某个单选框时') console.log(e, item, index, "选中某个单选框时");
this.questiondata.questionSubjectList[index].questionSubjectOptionList.forEach(el => { this.questiondata.questionSubjectList[
index
].questionSubjectOptionList.forEach((el) => {
if (el.id == item.id) { if (el.id == item.id) {
el.optionChooseSign = '0' el.optionChooseSign = "0";
} else {
el.optionChooseSign = "1";
} }
else { });
el.optionChooseSign = '1' console.log(this.questiondata, "this.questiondata");
} this.questiondata;
})
console.log(this.questiondata, 'this.questiondata')
this.questiondata
}, },
// //
radioChangecheck(e, item, index, aindex) { radioChangecheck(e, item, index, aindex) {
console.log(e, item, index, '选中某个复选框时') console.log(e, item, index, "选中某个复选框时");
if (e == true) { if (e == true) {
this.questiondata.questionSubjectList[index].questionSubjectOptionList[aindex].optionChooseSign = '0' this.questiondata.questionSubjectList[index].questionSubjectOptionList[
aindex
].optionChooseSign = "0";
} else { } else {
this.questiondata.questionSubjectList[index].questionSubjectOptionList[aindex].optionChooseSign = '1' this.questiondata.questionSubjectList[index].questionSubjectOptionList[
aindex
].optionChooseSign = "1";
} }
}, },
info() { info() {
selectFollowPatientInfo(this.id).then((res) => { selectFollowPatientInfo(this.id).then((res) => {
this.list = res.data; this.list = res.data;
}); });
}, },
questioninfo() { questioninfo() {
question(this.$route.query.templateId).then((res) => { question(this.$route.query.templateId).then((res) => {
this.questiondata = res.data; this.questiondata = res.data;
this.questiondata.questionInfoId = res.data.id; this.questiondata.questionInfoId = res.data.id;
this.questiondata.routeHandlePerson = Cookies.get('userName') this.questiondata.routeHandlePerson = Cookies.get("userName");
this.questiondata.routeHandleId = Cookies.get('userId') this.questiondata.routeHandleId = Cookies.get("userId");
this.questiondata.patientId = this.$route.query.patientId this.questiondata.patientId = this.$route.query.patientId;
this.questiondata.manageRouteId = this.$route.query.manageRouteId this.questiondata.manageRouteId = this.$route.query.manageRouteId;
this.questiondata.manageRouteNodeId = this.$route.query.manageRouteNodeId this.questiondata.manageRouteNodeId =
this.questiondata.patientName = this.$route.query.patientName this.$route.query.manageRouteNodeId;
this.questiondata.manageRouteName = this.$route.query.manageRouteName this.questiondata.patientName = this.$route.query.patientName;
this.questiondata.manageRouteNodeName = this.$route.query.manageRouteNodeName this.questiondata.manageRouteName = this.$route.query.manageRouteName;
this.questiondata.taskType = this.$route.query.taskType this.questiondata.manageRouteNodeName =
this.questiondata.visitRecordId = this.$route.query.visitRecordId this.$route.query.manageRouteNodeName;
this.questiondata.totalScore = 0 this.questiondata.taskType = this.$route.query.taskType;
this.questiondata.questionSubjectList.forEach(e => { this.questiondata.visitRecordId = this.$route.query.visitRecordId;
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') { this.questiondata.totalScore = 0;
e.whetherScore = '1' this.questiondata.questionSubjectList.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 { } else {
e.whetherScore = '0' e.whetherScore = "0";
} }
e.questionSubjectOptionList.forEach(el => { e.questionSubjectOptionList.forEach((el) => {
el.questionNumber = e.questionNumber el.questionNumber = e.questionNumber;
if (e.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || e.questionType == 'COMBINATION_MULTIPLE_SUBJECT') { if (
el.optionChooseSign = '1' e.questionType == "MULTIPLE_CHOICE_QUESTIONS" ||
e.questionType == "COMBINATION_MULTIPLE_SUBJECT"
) {
el.optionChooseSign = "1";
} }
}) });
}) });
}); });
}, },
// //
/** 提交按钮 */ /** 提交按钮 */
submit() { submit() {
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE') { if (this.$route.query.taskType == "QUESTIONNAIRE_SCALE") {
// .=. // .=.
this.$delete(this.questiondata, 'updateBy',) this.$delete(this.questiondata, "updateBy");
this.$delete(this.questiondata, 'updateTime',) this.$delete(this.questiondata, "updateTime");
var score = 0 var score = 0;
// //
this.questiondata.questionSubjectList.forEach(e => { this.questiondata.questionSubjectList.forEach((e) => {
if (e.questionSubjectOptionList?.length > 0) { if (e.questionSubjectOptionList?.length > 0) {
e.questionSubjectOptionList.forEach(el => { e.questionSubjectOptionList.forEach((el) => {
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') { if (
if (el.optionChooseSign == '0') { e.questionType == "MULTIPLE_CHOICE" ||
score += el.optionScore e.questionType == "MULTIPLE_CHOICE_QUESTIONS" ||
e.questionType == "SCORING_QUESTIONS" ||
e.questionType == "COMBINATION_RADIO_SUBJECT" ||
e.questionType == "COMBINATION_MULTIPLE_SUBJECT" ||
e.questionType == "COMBINATION_SCORING_SUBJECT"
) {
if (el.optionChooseSign == "0") {
score += el.optionScore;
} }
} }
}) });
// console.log(score, 'score') // console.log(score, 'score')
this.questiondata.totalScore = score this.questiondata.totalScore = score;
} }
});
}) this.questiondata.subjectResultDTOList =
this.questiondata.subjectResultDTOList = this.questiondata.questionSubjectList this.questiondata.questionSubjectList;
this.obj = JSON.parse(JSON.stringify(this.questiondata)) this.obj = JSON.parse(JSON.stringify(this.questiondata));
delete this.obj.questionSubjectList; delete this.obj.questionSubjectList;
this.obj.subjectResultDTOList.forEach(e => { this.obj.subjectResultDTOList.forEach((e) => {
e.optionResultList = e.questionSubjectOptionList e.optionResultList = e.questionSubjectOptionList;
if (e.optionResultList.optionSubmitAnswer) { if (e.optionResultList.optionSubmitAnswer) {
e.optionResultList.optionSubmitAnswer = e.optionResultList.optionSubmitAnswer e.optionResultList.optionSubmitAnswer =
e.optionResultList.optionSubmitAnswer;
} }
// this.$delete(this.obj, '0', '') // this.$delete(this.obj, '0', '')
delete e.questionSubjectOptionList; delete e.questionSubjectOptionList;
}); });
// console.log(this.obj, 'obj') // console.log(this.obj, 'obj')
} else if (this.$route.query.taskType == "ARTIFICIAL_FOLLOW_UP") {
console.log(this.questiondata, "questiondata");
} else if (this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') {
console.log(this.questiondata, 'questiondata')
// .=. // .=.
this.$delete(this.questiondata, 'updateBy',) this.$delete(this.questiondata, "updateBy");
this.$delete(this.questiondata, 'updateTime',) this.$delete(this.questiondata, "updateTime");
this.questiondata.subjectResultDTOList = this.questiondata.questionSubjectList this.questiondata.subjectResultDTOList =
this.obj = JSON.parse(JSON.stringify(this.questiondata)) this.questiondata.questionSubjectList;
this.obj = JSON.parse(JSON.stringify(this.questiondata));
delete this.obj.questionSubjectList; delete this.obj.questionSubjectList;
this.obj.subjectResultDTOList.forEach(e => { this.obj.subjectResultDTOList.forEach((e) => {
e.optionResultList = e.questionSubjectOptionList e.optionResultList = e.questionSubjectOptionList;
if (e.optionResultList.optionSubmitAnswer) { if (e.optionResultList.optionSubmitAnswer) {
e.optionResultList.optionSubmitAnswer = e.optionResultList.optionSubmitAnswer e.optionResultList.optionSubmitAnswer =
e.optionResultList.optionSubmitAnswer;
} }
// this.$delete(this.obj, '0', '') // this.$delete(this.obj, '0', '')
delete e.questionSubjectOptionList; delete e.questionSubjectOptionList;
}); });
// this.$delete(this.obj, 'totalScore',) // this.$delete(this.obj, 'totalScore',)
} }
// 访 // 访
if (this.$route.query.taskType == 'QUESTIONNAIRE_SCALE' || this.$route.query.taskType == 'ARTIFICIAL_FOLLOW_UP') { if (
this.$route.query.taskType == "QUESTIONNAIRE_SCALE" ||
this.$route.query.taskType == "ARTIFICIAL_FOLLOW_UP"
) {
// console.log(this.obj, 'objobj') // console.log(this.obj, 'objobj')
// return // return
this.$refs["questiondata"].validate(valid => { this.$refs["questiondata"].validate((valid) => {
if (valid) { if (valid) {
addPatientQuestionResult(this.obj).then(response => { addPatientQuestionResult(this.obj).then((response) => {
this.$confirm('保存成功, 是否返回上一页?', '提示', { this.$confirm("保存成功, 是否返回上一页?", "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'success' type: "success",
}).then(() => { })
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { .then(() => {
this.$router.push({ this.$store
path: "/task/followup", .dispatch("tagsView/delView", this.$route)
}); .then(({ visitedViews }) => {
}) this.$router.push({
}).catch(() => { path: "/task/followup",
this.$modal.msgSuccess("保存成功"); });
});
});
}
});
} else if (this.$route.query.taskType == 'PHONE_OUTBOUND') {
// console.log(this.form, '')
// return
this.$refs["formlist"].validate(valid => {
if (valid) {
this.form.departmentId = this.formlist.departmentId,
this.form.departmentName = this.formlist.departmentName,
this.form.diseaseTypeId = this.formlist.diseaseTypeId,
this.form.diseaseTypeName = this.formlist.diseaseTypeName,
this.form.routeHandleRemark = this.formlist.routeHandleRemark
this.form.visitRecordId = this.$route.query.visitRecordId,
// console.log(this.form, 'this.form')
// return
addPatientQuestionResult(this.form).then(response => {
this.$confirm('保存成功, 是否返回上一页?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'success'
}).then(() => {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/task/followup",
}); });
}) })
}).catch(() => { .catch(() => {
this.$modal.msgSuccess("保存成功"); this.$modal.msgSuccess("保存成功");
}); });
});
}); }
});
} else if (this.$route.query.taskType == "PHONE_OUTBOUND") {
// console.log(this.form, '')
// return
this.$refs["formlist"].validate((valid) => {
if (valid) {
(this.form.departmentId = this.formlist.departmentId),
(this.form.departmentName = this.formlist.departmentName),
(this.form.diseaseTypeId = this.formlist.diseaseTypeId),
(this.form.diseaseTypeName = this.formlist.diseaseTypeName),
(this.form.routeHandleRemark = this.formlist.routeHandleRemark);
(this.form.visitRecordId = this.$route.query.visitRecordId),
// console.log(this.form, 'this.form')
// return
addPatientQuestionResult(this.form).then((response) => {
this.$confirm("保存成功, 是否返回上一页?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "success",
})
.then(() => {
this.$store
.dispatch("tagsView/delView", this.$route)
.then(({ visitedViews }) => {
this.$router.push({
path: "/task/followup",
});
});
})
.catch(() => {
this.$modal.msgSuccess("保存成功");
});
});
} }
}); });
} }
}, },
// //
cencal() { cencal() {
this.$router.push({ this.$router.push({
path: "/task/followup", path: "/task/followup",
}); });
}, },
handleClick(tab, event) { handleClick(tab, event) {
@ -419,17 +580,15 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-input.is-disabled .el-input__inner { ::v-deep .el-input.is-disabled .el-input__inner {
background: #fff !important; background: #fff !important;
color: #606266; color: #606266;
} }
::v-deep .el-textarea.is-disabled .el-textarea__inner { ::v-deep .el-textarea.is-disabled .el-textarea__inner {
color: #606266; color: #606266;
background: #fff; background: #fff;
} }
.tk { .tk {
::v-deep .el-textarea__inner { ::v-deep .el-textarea__inner {
margin: 20px 0 10px 30px; margin: 20px 0 10px 30px;
@ -439,28 +598,23 @@ export default {
::v-deep .el-radio { ::v-deep .el-radio {
padding: 10px; padding: 10px;
} }
::v-deep .el-checkbox-group { ::v-deep .el-checkbox-group {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: 10px 0px 10px 24px; padding: 10px 0px 10px 24px;
} }
::v-deep .el-checkbox { ::v-deep .el-checkbox {
padding: 10px 0 10px 0px; padding: 10px 0 10px 0px;
// padding: 10px; // padding: 10px;
} }
.custom-radio-group { .custom-radio-group {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: 10px 0 10px 10px; padding: 10px 0 10px 10px;
.custom { .custom {
padding: 10px 0 10px 10px; padding: 10px 0 10px 10px;
} }
} }
.bodytop { .bodytop {
position: relative; position: relative;
top: 20px; top: 20px;
@ -470,41 +624,34 @@ export default {
// background: red;f // background: red;f
overflow: auto; overflow: auto;
border: 1px solid #e2e2e2; border: 1px solid #e2e2e2;
.titledata { .titledata {
margin: 30px 0px 15px 30px; margin: 30px 0px 15px 30px;
top: 14px; top: 14px;
font-size: 20px; font-size: 20px;
} }
.audiotop { .audiotop {
margin: 10px 0px 10px 30px; margin: 10px 0px 10px 30px;
} }
img { img {
// width: 362px; // width: 362px;
// height: 127px; // height: 127px;
margin: 0px 0px 0px 30px; margin: 0px 0px 0px 30px;
} }
.know { .know {
margin: 11px 0px 10px 30px; margin: 11px 0px 10px 30px;
font-size: 20px; font-size: 20px;
font-weight: 550; font-weight: 550;
} }
.knowlist { .knowlist {
margin: 10px 0px 10px 30px; margin: 10px 0px 10px 30px;
font-size: 16px; font-size: 16px;
} }
} }
.right { .right {
width: 100%; width: 100%;
height: 500px; height: 500px;
// background: yellow; // background: yellow;
} }
.header { .header {
background-color: #f1f3f5; background-color: #f1f3f5;
padding-top: 10px; padding-top: 10px;
@ -523,18 +670,15 @@ export default {
background-color: #fff; background-color: #fff;
margin: 10px auto; margin: 10px auto;
padding: 10px 20px; padding: 10px 20px;
.sport { .sport {
padding: 10px 50px 10px 10px; padding: 10px 50px 10px 10px;
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
} }
.words { .words {
font-size: 15px; font-size: 15px;
padding: 10px 50px 10px 10px; padding: 10px 50px 10px 10px;
} }
.sports { .sports {
position: absolute; position: absolute;
left: 50%; left: 50%;
@ -542,25 +686,21 @@ export default {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
} }
.word { .word {
font-size: 14px; font-size: 14px;
font-weight: 550; font-weight: 550;
padding: 50px 50px 10px 10px; padding: 50px 50px 10px 10px;
} }
.videoleft { .videoleft {
width: 40%; width: 40%;
height: 200px; height: 200px;
background: red; background: red;
} }
.time { .time {
font-size: 20px; font-size: 20px;
font-weight: 550; font-weight: 550;
padding: 10px 50px 10px 10px; padding: 10px 50px 10px 10px;
} }
.number { .number {
width: 25px; width: 25px;
height: 25px; height: 25px;
@ -570,25 +710,21 @@ export default {
background: blue; background: blue;
border-radius: 50%; border-radius: 50%;
} }
.nexttime { .nexttime {
font-size: 15px; font-size: 15px;
padding: 10px 50px 10px 10px; padding: 10px 50px 10px 10px;
} }
.images { .images {
width: 53%; width: 53%;
height: 241px; height: 241px;
margin: 0 auto; margin: 0 auto;
background: red; background: red;
} }
.attention { .attention {
font-size: 14px; font-size: 14px;
font-weight: 550; font-weight: 550;
padding: 10px 50px 10px 10px; padding: 10px 50px 10px 10px;
} }
// .videobottom // .videobottom
// { // {
// font-size: 14px; // font-size: 14px;
@ -603,7 +739,6 @@ export default {
margin: 0 auto; margin: 0 auto;
.information { .information {
width: 100%;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding: 10px 20px; padding: 10px 20px;
@ -634,7 +769,6 @@ export default {
position: relative; position: relative;
right: 59px; right: 59px;
position: absolute; position: absolute;
.item { .item {
margin-left: 20px; margin-left: 20px;
} }

View File

@ -8,8 +8,17 @@
</div> </div>
<div class="select"> <div class="select">
<span> 适用范围 </span> <span> 适用范围 </span>
<el-select v-model="updata.suitRange" placeholder="请选择" @change="changeoptions"> <el-select
<el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> v-model="updata.suitRange"
placeholder="请选择"
@change="changeoptions"
>
<el-option
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
@ -21,12 +30,20 @@
<i class="el-icon-circle-plus-outline" @click="addlist"></i> <i class="el-icon-circle-plus-outline" @click="addlist"></i>
</div> </div>
<el-timeline> <el-timeline>
<el-timeline-item v-for="(item, index) in lists" :key="index" :color="listindex == index ? '#409EFF' : ''"> <el-timeline-item
v-for="(item, index) in lists"
:key="index"
:color="listindex == index ? '#409EFF' : ''"
>
<div class="top"> <div class="top">
<div class="toptop"> <div class="toptop">
<el-select v-model="item.routeNodeName" style="width: 100px"> <el-select v-model="item.routeNodeName" style="width: 100px">
<el-option v-for="item in parentDictCodelist" :key="item.dictValue" :label="item.dictLabel" <el-option
:value="item.dictValue"> v-for="item in parentDictCodelist"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
<!-- <el-option label="出院后" value="AFTER_DISCHARGE" /> <!-- <el-option label="出院后" value="AFTER_DISCHARGE" />
<el-option label="入院后" value="AFTER_ADMISSION" /> <el-option label="入院后" value="AFTER_ADMISSION" />
@ -38,22 +55,43 @@
<el-option label="术前" value="PREOPERATIVE" /> <el-option label="术前" value="PREOPERATIVE" />
<el-option label="术后" value="POSTOPERATIVE" /> --> <el-option label="术后" value="POSTOPERATIVE" /> -->
</el-select> </el-select>
<el-input v-model="item.routeNodeDay" style="width: 70px" type="number" :min="0"></el-input> <el-input
v-model="item.routeNodeDay"
style="width: 70px"
type="number"
:min="0"
></el-input>
<span></span> <span></span>
</div> </div>
<div> <div>
<i class="el-icon-delete" @click="delitem(item, index)"></i> <i class="el-icon-delete" @click="delitem(item, index)"></i>
<i class="el-icon-circle-plus-outline" @click="additem(item)"></i> <i
class="el-icon-circle-plus-outline"
@click="additem(item)"
></i>
</div> </div>
</div> </div>
<el-card v-for="(uitem, uindex) in item.list" :key="uitem.id" <el-card
v-for="(uitem, uindex) in item.list"
:key="uitem.id"
@click.native="bottomclickevent(uitem, index, uindex)" @click.native="bottomclickevent(uitem, index, uindex)"
:class="listindex == index && itemindex == uindex ? 'cards' : ''"> :class="listindex == index && itemindex == uindex ? 'cards' : ''"
>
<h3 style="height: 20px">{{ uitem.taskTypeName }}</h3> <h3 style="height: 20px">{{ uitem.taskTypeName }}</h3>
<el-tag v-if="uitem.routeCheckStatus == 'AGREE'" class="routeCheckStatus">已审核</el-tag> <el-tag
<el-tag v-else-if="uitem.routeCheckStatus == 'DISAGREE'" type="danger" v-if="uitem.routeCheckStatus == 'AGREE'"
class="routeCheckStatus">不同意</el-tag> class="routeCheckStatus"
<el-tag v-else type="warning" class="routeCheckStatus">未审核</el-tag> >已审核</el-tag
>
<el-tag
v-else-if="uitem.routeCheckStatus == 'DISAGREE'"
type="danger"
class="routeCheckStatus"
>不同意</el-tag
>
<el-tag v-else type="warning" class="routeCheckStatus"
>未审核</el-tag
>
<p style="height: 16px">{{ uitem.taskSubdivisionName }}</p> <p style="height: 16px">{{ uitem.taskSubdivisionName }}</p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
@ -63,48 +101,165 @@
<div class="topform"> <div class="topform">
<el-form ref="form" :inline="true" :model="form" class="form"> <el-form ref="form" :inline="true" :model="form" class="form">
<el-form-item label="任务类型" prop=""> <el-form-item label="任务类型" prop="">
<el-select v-model="form.taskType" style="width: 110px" @change="changeTaskType"> <el-select
<el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode" :label="item.taskTypeName" v-model="form.taskType"
:value="item.taskTypeCode"> style="width: 110px"
@change="changeTaskType"
>
<el-option
v-for="item in selectTaskTypeList"
:key="item.taskTypeCode"
:label="item.taskTypeName"
:value="item.taskTypeCode"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务细分" prop=""> <el-form-item label="任务细分" prop="">
<el-select v-model="form.taskSubdivision" style="width: 110px" @change="changetaskSubdivision"> <el-select
<el-option v-for="item in taskPartitionList" :key="item.taskPartitionCode" v-model="form.taskSubdivision"
:label="item.taskPartitionName" :value="item.taskPartitionCode"> style="width: 110px"
@change="changetaskSubdivision"
>
<el-option
v-for="item in taskPartitionList"
:key="item.taskPartitionCode"
:label="item.taskPartitionName"
:value="item.taskPartitionCode"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务状态" prop=""> <el-form-item label="任务状态" prop="">
<el-select v-model="form.taskStatus" style="width: 110px"> <el-select v-model="form.taskStatus" style="width: 110px">
<el-option v-for="item in taskStatusDictList" :key="item.id" :label="item.taskStatusName" <el-option
:value="item.taskStatusCode"> v-for="item in taskStatusDictList"
:key="item.id"
:label="item.taskStatusName"
:value="item.taskStatusCode"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="二级分类描述" prop=""> <el-form-item label="二级分类描述" prop="">
<el-input v-model="form.secondClassifyDescribe" style="width: 110px" disabled></el-input> <el-input
v-model="form.secondClassifyDescribe"
style="width: 110px"
disabled
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="执行时间" prop=""> <el-form-item label="执行时间" prop="">
<el-time-select v-model="form.executionTime" style="width: 120px" placeholder="选择时间" disabled> <el-time-select
v-model="form.executionTime"
style="width: 120px"
placeholder="选择时间"
disabled
>
</el-time-select> </el-time-select>
</el-form-item> </el-form-item>
<el-form-item label="问卷库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"> <el-form-item
<question @on-template="questionontemplate" :templateId="form.templateId" label="问卷库模板选择"
:templateName="form.templateName"></question> prop=""
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
</el-form-item> </el-form-item>
<el-form-item label="宣教库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"> <el-form-item
<propaganda @on-template="propagandaontemplate" :templateId="form.templateId" label="宣教库模板选择"
:templateName="form.templateName"></propaganda> prop=""
v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<propaganda
@on-template="propagandaontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></propaganda>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="bottomform"> <div class="bottomform">
<wangeditor style="width: 100%" :nodeContent="form.nodeContent" @on-nodeContent="onNodeContent" <wangeditor
v-show="form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' && form.taskSubdivisiontemplateType != 'PROPAGANDA'" style="width: 100%"
ref="wangeditor" /> :nodeContent="form.nodeContent"
<div class="card"> @on-nodeContent="onNodeContent"
v-show="
form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' &&
form.taskSubdivisiontemplateType != 'PROPAGANDA' &&
form.taskSubdivisiontemplateType != 'SCRIPT'
"
ref="wangeditor"
/>
<!-- <div
class="card"
v-show="form.taskSubdivisiontemplateType == 'SCRIPT'"
> -->
<!-- <div class="flex">
<div class="pushMethod">
推送方式
<span> 人工电话 </span>
</div>
<div>
短信提醒:
<span>
<el-select
v-model="form.phoneMessageRemind"
style="width: 150px"
>
<el-option
v-for="item in optionslist"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</span>
</div>
<div>
重拨次数:
<span>
<el-select v-model="form.redialTimes" style="width: 150px">
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</span>
</div>
<div class="pushMethod">
模板
<scripts
@on-template="messageontemplateword"
:templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"
></scripts>
</div>
<div class="pushMethod">
<el-switch
v-model="form.phonePushsign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch>
</div>
</div> -->
<!-- <div class="flextwo">
<div class="text">短信预览</div>
<el-input class="textarea" v-model="form.messagePreview" disabled></el-input>
</div> -->
<!-- </div> -->
<div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -112,11 +267,19 @@
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<message @on-template="messageontemplate" :templateId="form.messageTemplateId" <message
:templateName="form.messageTemplateName"></message> @on-template="messageontemplate"
:templateId="form.messageTemplateId"
:templateName="form.messageTemplateName"
></message>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.messagePushSign" active-color="#13ce66" active-value="1" inactive-value="0"> <el-switch
v-model="form.messagePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
@ -125,7 +288,10 @@
<el-input class="textarea" v-model="form.messagePreview" disabled></el-input> <el-input class="textarea" v-model="form.messagePreview" disabled></el-input>
</div> --> </div> -->
</div> </div>
<div class="card"> <div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -134,13 +300,21 @@
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<officialAccount @on-template="officialAccountontemplate" :templateId="form.officialTemplateId" <officialAccount
:templateName="form.officialTemplateName"> @on-template="officialAccountontemplate"
:templateId="form.officialTemplateId"
:templateName="form.officialTemplateName"
>
</officialAccount> </officialAccount>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.officialPushSign" active-color="#13ce66" active-value="1" inactive-value="0"> <el-switch
v-model="form.officialPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
@ -149,7 +323,10 @@
<el-input v-model="form.officialRemindContent" class="textarea" disabled></el-input> <el-input v-model="form.officialRemindContent" class="textarea" disabled></el-input>
</div> --> </div> -->
</div> </div>
<div class="card"> <div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -158,13 +335,21 @@
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<miniProgram @on-template="miniProgramtemplate" :templateId="form.appletTemplateId" <miniProgram
:templateName="form.appletTemplateName"> @on-template="miniProgramtemplate"
:templateId="form.appletTemplateId"
:templateName="form.appletTemplateName"
>
</miniProgram> </miniProgram>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.appletPushSign" active-color="#13ce66" active-value="1" inactive-value="0"> <el-switch
v-model="form.appletPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
@ -177,88 +362,151 @@
<el-input v-model="form.appletPromptDescription" class="textarea" disabled></el-input> <el-input v-model="form.appletPromptDescription" class="textarea" disabled></el-input>
</div> --> </div> -->
</div> </div>
<!-- <div class="card" style="height: 250px;"> <div
<div class="flex"> class="card"
<div class="pushMethod"> style="height: 250px"
推送方式 v-show="form.taskSubdivisiontemplateType == 'SCRIPT'"
<span> >
AI电话 <div class="flex">
</span> <div class="pushMethod">
</div> 推送方式
<div class="pushMethod"> <span> AI电话 </span>
模板 </div>
<span> <div class="pushMethod">
<el-select v-model="value" style="width:200px;"> 模板
<el-option v-for="item in taskStatusDictList" :key="item.id" style="color:black" <scripts
:label="item.taskStatusName" :value="item.id"> @on-template="messageontemplateword"
</el-option> :templateId="form.phoneTemplateId"
</el-select> :templateName="form.phoneTemplateName"
</span> ></scripts>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.value" active-color="#13ce66" active-value="1" <el-switch
inactive-value="0"> v-model="form.phonePushSign"
</el-switch> active-color="#13ce66"
</div> active-value="1"
</div> inactive-value="0"
<div class="flextwo"> >
<div class="text"> </el-switch>
机构名称 </div>
</div> </div>
<div class="text"> <div class="flex">
我是 <div class="pushMethod">
</div> 重播次数
<el-input v-model="form.input" placeholder="" style="width:150px;padding:0 10px"></el-input> <span>
<div class="text"> <el-select
的工作人员 v-model="form.phoneRedialTimes"
</div> style="width: 100px"
</div> >
<div class="flextwo"> <el-option
<div class="text"> v-for="item in optionslistS"
重播次数 :key="item.dictValue"
</div> :label="item.dictLabel"
<el-input v-model="form.input" placeholder="" style="width:200px;"></el-input> :value="item.dictValue"
<div class="text" style="padding-left: 100px;"> >
时间间隔 </el-option>
</div> </el-select>
<el-input v-model="form.input" placeholder="" style="width:200px;"></el-input> </span>
</div> </div>
<div class="flextwo"> <div class="pushMethod">
<div class="text"> 时间间隔:
短信提醒 <span>
</div> <el-input
<el-select v-model="value" style="width:200px;"> v-model.number="form.phoneTimeInterval"
<el-option v-for="item in taskStatusDictList" :key="item.id" style="color:black" oninput="value=value.replace(/[^\d]/g,'')"
:label="item.taskStatusName" :value="item.id"> style="width: 100px"
</el-option> >
</el-select> <!-- <el-option
<div class="text" style="padding-left: 100px;"> v-for="item in optionslistS"
短信模板 :key="item.dictValue"
</div> :label="item.dictLabel"
<el-select v-model="value" style="width:200px;"> :value="item.dictValue"
<el-option v-for="item in taskStatusDictList" :key="item.id" style="color:black" >
:label="item.taskStatusName" :value="item.id"> </el-option> -->
</el-option> </el-input>
</el-select> </span>
</div> </div>
</div> --> <div class="pushMethod">
短信提醒
<el-select
v-model="form.phoneMessageRemind"
style="width: 150px"
@change="changelist"
>
<el-option
v-for="item in optionslist"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</div>
<div class="pushMethod">
短信模板
<span
class="spanname"
v-if="form.phoneMessageRemind == 'NOT_SEND_MESSAGE'"
>
<message
ref="refname"
style="width: 200px"
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
</span>
<span v-else>
<message
style="width: 200px"
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
</span>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="TemporaryStorage"> </el-button> <el-button @click="TemporaryStorage"> </el-button>
<el-button type="primary" @click="dialogVisible = true" v-if="form.specialDiseaseNodeId">审核完成 {{ agreeNumber ? <el-button
agreeNumber : "0" }} / type="primary"
{{ totalNumber ? totalNumber : "0" }}</el-button> @click="dialogVisible = true"
v-if="form.specialDiseaseNodeId"
>审核完成 {{ agreeNumber ? agreeNumber : "0" }} /
{{ totalNumber ? totalNumber : "0" }}</el-button
>
</div> </div>
<el-dialog title="提交审核完成" :visible.sync="dialogVisible" width="30%" :before-close="handleClose"> <el-dialog
<el-form ref="routeform" :model="routeform" label-width="120px" :rules="rules"> title="提交审核完成"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-form
ref="routeform"
:model="routeform"
label-width="120px"
:rules="rules"
>
<el-form-item label="节点审核状态" prop="routeCheckStatus"> <el-form-item label="节点审核状态" prop="routeCheckStatus">
<el-radio v-model="routeform.routeCheckStatus" label="AGREE">同意</el-radio> <el-radio v-model="routeform.routeCheckStatus" label="AGREE"
<el-radio v-model="routeform.routeCheckStatus" label="DISAGREE">不同意</el-radio> >同意</el-radio
>
<el-radio v-model="routeform.routeCheckStatus" label="DISAGREE"
>不同意</el-radio
>
</el-form-item> </el-form-item>
<el-form-item label="节点审核备注"> <el-form-item label="节点审核备注">
<el-input type="textarea" :rows="2" placeholder="请输入节点审核备注" v-model="routeform.routeCheckRemark"> <el-input
type="textarea"
:rows="2"
placeholder="请输入节点审核备注"
v-model="routeform.routeCheckRemark"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -274,6 +522,8 @@
import wangeditor from "../components/wangEditor.vue"; import wangeditor from "../components/wangEditor.vue";
import question from "../components/question.vue"; import question from "../components/question.vue";
import message from "../components/message.vue"; import message from "../components/message.vue";
import scripts from "../components/script.vue";
import propaganda from "../components/propaganda.vue"; import propaganda from "../components/propaganda.vue";
import officialAccount from "../components/officialAccount.vue"; import officialAccount from "../components/officialAccount.vue";
import miniProgram from "../components/miniProgram.vue"; import miniProgram from "../components/miniProgram.vue";
@ -294,12 +544,16 @@ export default {
question, question,
propaganda, propaganda,
message, message,
scripts,
officialAccount, officialAccount,
miniProgram, miniProgram,
}, },
name: "specialDiseaseNode", name: "specialDiseaseNode",
data() { data() {
return { return {
optionslist: [],
optionslistS: [],
value: "",
options: [], options: [],
dialogVisible: false, dialogVisible: false,
routeform: { routeform: {
@ -355,11 +609,43 @@ export default {
}, },
created() { created() {
this.infolist(); this.infolist();
this.infolistword();
this.infolistMESSAGE();
}, },
beforeDestroy() { }, beforeDestroy() {},
watch: {}, watch: {},
mounted() { }, mounted() {},
methods: { methods: {
changelist(e) {
console.log(e, "e");
if (e == "NOT_SEND_MESSAGE ") {
console.log(this.form,'this.form')
this.$refs.refname.listDisease()
// this.form.phoneMessageTemplateId
// this.form.phoneMessageTemplateId = "";
// this.form.phoneMessageTemplateName = "";
}
},
listDisease(){
this.form.phoneMessageTemplateId = "";
this.form.phoneMessageTemplateName = "";
},
infolistword() {
var dictType = "text_message_remind";
getAgencytype(dictType).then((res) => {
this.optionslist = res.data;
// this.taskinfo();
});
},
infolistMESSAGE() {
var dictType = "redial_times";
getAgencytype(dictType).then((res) => {
this.optionslistS = res.data;
// this.taskinfo();
});
},
changeoptions(e) { changeoptions(e) {
this.parentDictCode = this.options.find( this.parentDictCode = this.options.find(
(el) => el.dictValue == e (el) => el.dictValue == e
@ -427,6 +713,15 @@ export default {
taskSubdivision: "", taskSubdivision: "",
taskSubdivisionName: "", taskSubdivisionName: "",
taskStatus: "", taskStatus: "",
phoneAgencyName: null,
phoneRedialTimes: null,
phoneTimeInterval: null,
phoneMessageRemind: null,
phoneMessageTemplateId: null,
phoneMessageTemplateName: null,
phonePushSign: "0",
phoneTemplateId: "",
phoneTemplateName: "",
secondClassifyDescribe: "", secondClassifyDescribe: "",
executionTime: "", executionTime: "",
appletPushSign: "0", appletPushSign: "0",
@ -441,8 +736,10 @@ export default {
], ],
}); });
this.form = this.lists[0].list[0]; this.form = this.lists[0].list[0];
console.log(this.form, "6555555555555555");
} }
}, },
handleData(list, key, keytwo) { handleData(list, key, keytwo) {
// //
let keysArr = list.map((item) => { let keysArr = list.map((item) => {
@ -483,7 +780,7 @@ export default {
}, },
//wangeditor //wangeditor
onNodeContent(item) { onNodeContent(item) {
console.log(item, 'itemfu') console.log(item, "itemfu");
this.form.nodeContent = item.nodeContent; this.form.nodeContent = item.nodeContent;
}, },
// //
@ -498,6 +795,19 @@ export default {
this.form.messageTemplateName = item.templateName; this.form.messageTemplateName = item.templateName;
this.form.messagePreview = item.templateContent; this.form.messagePreview = item.templateContent;
}, },
//
messageontemplateMESSAGE(item) {
console.log(item, "2222222");
this.form.phoneMessageTemplateId = item.templateId;
this.form.phoneMessageTemplateName = item.templateName;
this.form.messagePreview = item.templateContent;
},
//
messageontemplateword(item) {
this.form.phoneTemplateId = item.templateId;
this.form.phoneTemplateName = item.templateName;
this.form.messagePreview = item.templateContent;
},
// //
officialAccountontemplate(item) { officialAccountontemplate(item) {
this.form.officialTemplateId = item.templateId; this.form.officialTemplateId = item.templateId;
@ -506,7 +816,10 @@ export default {
}, },
// //
TemporaryStorage() { TemporaryStorage() {
if (this.form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' && this.form.taskSubdivisiontemplateType != 'PROPAGANDA') { if (
this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" &&
this.form.taskSubdivisiontemplateType != "PROPAGANDA"
) {
this.$refs.wangeditor.emit(); this.$refs.wangeditor.emit();
} }
this.$confirm( this.$confirm(
@ -527,10 +840,10 @@ export default {
this.lists.forEach((e) => { this.lists.forEach((e) => {
e.list.length > 0 e.list.length > 0
? e.list.forEach((el) => { ? e.list.forEach((el) => {
el.routeNodeDay = e.routeNodeDay; el.routeNodeDay = e.routeNodeDay;
el.routeNodeName = e.routeNodeName; el.routeNodeName = e.routeNodeName;
this.updata.specialDiseaseNodeList.push(el); this.updata.specialDiseaseNodeList.push(el);
}) })
: ""; : "";
}); });
this.updata.specialDiseaseNodeList = this.updata.specialDiseaseNodeList =
@ -546,6 +859,7 @@ export default {
this.info(); this.info();
loading.close(); loading.close();
this.$modal.msgSuccess("暂存成功!"); this.$modal.msgSuccess("暂存成功!");
console.log(this.form, "666666666");
}); });
setTimeout(() => { setTimeout(() => {
loading.close(); loading.close();
@ -563,7 +877,10 @@ export default {
this.form.templateName = item.templateName; this.form.templateName = item.templateName;
}, },
bottomclickevent(uitem, index, uindex) { bottomclickevent(uitem, index, uindex) {
if (this.form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' && this.form.taskSubdivisiontemplateType != 'PROPAGANDA') { if (
this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" &&
this.form.taskSubdivisiontemplateType != "PROPAGANDA"
) {
this.$refs.wangeditor.emit(); this.$refs.wangeditor.emit();
} }
setTimeout(() => { setTimeout(() => {
@ -586,6 +903,11 @@ export default {
this.info(); this.info();
}); });
}, },
//
changephoneMessageRemind(e) {
console.log(e, "e");
// if
},
// //
changeTaskType(code, taskSubdivision) { changeTaskType(code, taskSubdivision) {
let id = this.selectTaskTypeList?.find((e) => e.taskTypeCode == code)?.id; let id = this.selectTaskTypeList?.find((e) => e.taskTypeCode == code)?.id;
@ -785,8 +1107,6 @@ export default {
padding: 20px 50px 0px 20px; padding: 20px 50px 0px 20px;
.flextwo { .flextwo {
display: flex;
align-items: center;
margin-top: 20px; margin-top: 20px;
.text { .text {
@ -828,15 +1148,19 @@ export default {
.flex { .flex {
display: flex; display: flex;
width: 100%;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.pushMethod { .pushMethod {
height: 30px; height: 30px;
margin-top: 30px;
line-height: 30px; line-height: 30px;
font-size: 13px; font-size: 13px;
color: #64666a; color: #64666a;
.spanname {
pointer-events: none;
}
::v-deep .el-input__inner { ::v-deep .el-input__inner {
color: black; color: black;
font-size: 13px; font-size: 13px;
@ -972,7 +1296,6 @@ export default {
::v-deep .el-card { ::v-deep .el-card {
margin-top: 20px !important; margin-top: 20px !important;
} }
.container { .container {
padding: 20px; padding: 20px;
} }