修改手动创建任务和子路径

This commit is contained in:
闫晓茹 2024-06-18 18:19:57 +08:00
parent 7b75ee9ce3
commit c9f870ca34
6 changed files with 1649 additions and 1028 deletions

View File

@ -28,7 +28,7 @@ export function triggerConditionedit(data) {
//删除修改触发条件id //删除修改触发条件id
export function triggerConditiondel(ids) { export function triggerConditiondel(ids) {
return request({ return request({
url: `/system/triggerCondition/${ids}`, url: `/system/specialDiseaseRoute/${ids}`,
method: 'delete' method: 'delete'
}) })
} }

View File

@ -13,6 +13,13 @@ export function list(parentDictCode) {
method: 'get', method: 'get',
}) })
} }
// 查询触发条件
export function triggerConditionList(routeId) {
return request({
url: `/system/triggerCondition/triggerConditionList?routeId=${routeId}`,
method: 'get',
})
}
// 任务类型 // 任务类型
export function selectTaskTypeList() { export function selectTaskTypeList() {

View File

@ -16,6 +16,14 @@ export function getSpecialDiseaseRoute(id) {
method: 'get' method: 'get'
}) })
} }
// 查询子路径
export function getById(id) {
return request({
url: '/system/specialDiseaseRoute/getById/' + id,
method: 'get'
})
}
// 新增专病路径信息 // 新增专病路径信息
export function addSpecialDiseaseRoute(data) { export function addSpecialDiseaseRoute(data) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -2,45 +2,90 @@
<div class="app-container"> <div class="app-container">
<el-descriptions title="编辑触发条件" /> <el-descriptions title="编辑触发条件" />
<div class="title"> <div class="title">
<div> <div >触发条件</div>
触发条件
</div>
<div class="nodes"> <div class="nodes">
<div class="node" v-for="(item, index) in updata.triggerConditionList" :key="index" <div class="node" v-for="(item, index) in updata" :key="index">
:style="updata.triggerConditionList.length > 1 ? '' : 'margin:0'"> <!-- :style="updata.triggerConditionList.length > 1 ? '' : 'margin:0'" -->
<el-select v-model="item.suitRange" style="width:120px"> <div
<el-option label="诊断" value="DIAGNOSIS" /> style="width: 60px; position: absolute; top: 8%;"
<el-option label="换药日期" value="DRESSING_CHANGE_DATE" /> v-if="updata.length === 3"
<el-option label="治疗方式" value="TREATMENT_METHOD" /> >
<el-option label="手术名称" value="SURGICAL_NAME" /> <img src="@/assets/images/images.png" class="login-code-img" />
<el-option label="药品名称" value="DRUG_NAME" /> <el-select
v-model="item.triggerLogic"
style="width: 60px"
placeholder=""
@change="changetriggerLogicsname($event, index)"
>
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select> </el-select>
<el-select v-model="item.suitRange" style="width: 100px;"> </div>
<el-option label="包含" value="CONTAIN" /> <el-select
<el-option label="不包含" value="NOT_CONTAIN" /> v-model="item.triggerConditionCode"
<el-option label="等于" value="EQUAL_TO" /> style="width: 120px"
<el-option label="不等于" value="NOT_EQUAL_TO" /> @change="changetriggerConditionName($event, index)"
>
<el-option
v-for="item in optionsname"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> </el-select>
<el-select v-model="item.suitRange" style="width: 120px;"> <el-select
v-model="item.triggerConditionOperator"
style="width: 100px"
@change="changetriggerLogic($event, index)"
>
<el-option
v-for="item in optionstriggerConditionOperator"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<!-- <el-select v-model="item.suitRange" style="width: 120px;">
<el-option label="在院" value="IN_THE_HOSPITAL" /> <el-option label="在院" value="IN_THE_HOSPITAL" />
<el-option label="出院" value="DISCHARGE" /> <el-option label="出院" value="DISCHARGE" />
<el-option label="门诊" value="OUTPATIENT_SERVICE" /> <el-option label="门诊" value="OUTPATIENT_SERVICE" />
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" /> <el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" />
</el-select> </el-select> -->
<el-input v-model="item.text" style="width: 300px;"></el-input> <el-input
v-if="item.triggerConditionCode != 'DRESSING_CHANGE_DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
></el-input>
<el-date-picker
v-if="item.triggerConditionCode == 'DRESSING_CHANGE_DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
type="date"
placeholder="选择日期时间"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</div> </div>
</div> </div>
<!-- <el-button icon="el-icon-plus" style=" font-weight: 550; font-size: 12px;padding-left:6px" type="text" <!-- <el-button icon="el-icon-plus" style=" font-weight: 550; font-size: 12px;padding-left:6px" type="text"
@click="addtriggerCondition">添加属性</el-button> --> @click="addtriggerCondition">添加属性</el-button> -->
<div class="select"> <div class="select">
<span> <span> 适用范围 </span>
适用范围 <el-select v-model="updata.suitRange" placeholder="请选择">
</span> <el-option
<el-select v-model="updata.suitRange" style="width: 180px;"> v-for="item in options"
<el-option label="在院" value="IN_THE_HOSPITAL" /> :key="item.dictValue"
<el-option label="出院" value="DISCHARGE" /> :label="item.dictLabel"
<el-option label="门诊" value="OUTPATIENT_SERVICE" /> :value="item.dictValue"
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" /> >
</el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
@ -51,31 +96,46 @@
<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" <el-timeline-item
:color="listindex == index ? '#409EFF' : ''"> v-for="(item, index) in lists"
:key="index"
:color="listindex == index ? '#409EFF' : ''"
>
<div class="top" @click="topclickevent(index)"> <div class="top" @click="topclickevent(index)">
<div class="toptop"> <div class="toptop">
<el-select v-model="item.routeNodeName" style="width:87px"> <el-select v-model="item.routeNodeName" style="width: 87px">
<el-option label="出院后" value="AFTER_DISCHARGE" /> <el-option label="出院后" value="AFTER_DISCHARGE" />
<el-option label="入院后" value="AFTER_ADMISSION" /> <el-option label="入院后" value="AFTER_ADMISSION" />
<el-option label="就诊后" value="AFTER_CONSULTATION" /> <el-option label="就诊后" value="AFTER_CONSULTATION" />
<el-option label="就诊/出院后" value="AFTER_VISIT_DISCHARGE" /> <el-option
label="就诊/出院后"
value="AFTER_VISIT_DISCHARGE"
/>
<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: 50px;"></el-input> <el-input
v-model="item.routeNodeDay"
style="width: 50px"
></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
@click.native='bottomclickevent(uitem, index, uindex)' v-for="(uitem, uindex) in item.list"
:class="listindex == index && itemindex == uindex ? 'cards' : ''"> :key="uitem.id"
<h3 style="height: 20px;">{{ uitem.taskTypeName }}</h3> @click.native="bottomclickevent(uitem, index, uindex)"
<p style="height: 16px;">{{ uitem.taskSubdivisionName }}</p> :class="listindex == index && itemindex == uindex ? 'cards' : ''"
>
<h3 style="height: 20px">{{ uitem.taskTypeName }}</h3>
<p style="height: 16px">{{ uitem.taskSubdivisionName }}</p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
@ -84,106 +144,155 @@
<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.id" :label="item.taskTypeName" v-model="form.taskType"
:value="item.id"> style="width: 110px"
@change="changeTaskType"
>
<el-option
v-for="item in selectTaskTypeList"
:key="item.id"
:label="item.taskTypeName"
:value="item.id"
>
</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" <el-select
@change="changetaskSubdivision"> v-model="form.taskSubdivision"
<el-option v-for="item in taskPartitionList" :key="item.id" :label="item.taskTypeName" style="width: 110px"
:value="item.id"> @change="changetaskSubdivision"
>
<el-option
v-for="item in taskPartitionList"
:key="item.id"
:label="item.taskTypeName"
:value="item.id"
>
</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:100px"> <el-select v-model="form.taskStatus" style="width: 100px">
<el-option v-for="item in taskStatusDictList" :key="item.id" <el-option
:label="item.taskStatusName" :value="item.id"> v-for="item in taskStatusDictList"
:key="item.id"
:label="item.taskStatusName"
:value="item.id"
>
</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:100px"></el-input> <el-input
v-model="form.secondClassifyDescribe"
style="width: 100px"
></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" <el-time-select
:picker-options="{ start: '08:30', step: '00:30', end: '18:30' }" placeholder="选择时间"> v-model="form.executionTime"
style="width: 120px"
:picker-options="{
start: '08:30',
step: '00:30',
end: '18:30',
}"
placeholder="选择时间"
>
</el-time-select> </el-time-select>
</el-form-item> </el-form-item>
<el-form-item label="问卷库模板选择" prop="" <el-form-item
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"> label="问卷库模板选择"
prop=""
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<question @on-template="questionontemplate"></question> <question @on-template="questionontemplate"></question>
</el-form-item> </el-form-item>
<el-form-item label="宣教库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"> <el-form-item
label="宣教库模板选择"
prop=""
v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<propaganda @on-template="propagandaontemplate"></propaganda> <propaganda @on-template="propagandaontemplate"></propaganda>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="bottomform"> <div class="bottomform">
<wangeditor style="width:100%;" @on-nodeContent="onNodeContent" ref="wangeditor" /> <wangeditor
style="width: 100%"
@on-nodeContent="onNodeContent"
ref="wangeditor"
/>
<div class="card"> <div class="card">
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span> 短信 </span>
短信
</span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<message @on-template="messageontemplate"></message> <message @on-template="messageontemplate"></message>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.messagePushSign" active-color="#13ce66" active-value="1" <el-switch
inactive-value="0"> v-model="form.messagePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">短信预览</div>
短信预览 <el-input
</div> style="border: none"
<el-input style="border:none" class="textarea" v-model="form.messagePreview"></el-input> class="textarea"
v-model="form.messagePreview"
></el-input>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span> 公众号 </span>
公众号
</span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<officialAccount @on-template="officialAccountontemplate"></officialAccount> <officialAccount
@on-template="officialAccountontemplate"
></officialAccount>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.officialPushSign" active-color="#13ce66" active-value="1" <el-switch
inactive-value="0"> v-model="form.officialPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">提醒内容</div>
提醒内容 <el-input
</div> v-model="form.officialRemindContent"
<el-input v-model="form.officialRemindContent" placeholder="" class="textarea" placeholder=""
style="border: none;"></el-input> class="textarea"
style="border: none"
></el-input>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span> 小程序 </span>
小程序
</span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
@ -192,24 +301,32 @@
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.appletPushSign" active-color="#13ce66" active-value="1" <el-switch
inactive-value="0"> v-model="form.appletPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">提醒内容</div>
提醒内容 <el-input
</div> v-model="form.input"
<el-input v-model="form.input" placeholder="" class="textarea" placeholder=""
style="border: none;"></el-input> class="textarea"
style="border: none"
></el-input>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">提示说明</div>
提示说明 <el-input
</div> v-model="form.input"
<el-input v-model="form.input" placeholder="" class="textarea" placeholder=""
style="border: none;"></el-input> class="textarea"
style="border: none"
></el-input>
</div> </div>
</div> </div>
<!-- <div class="card" style="height: 250px;"> <!-- <div class="card" style="height: 250px;">
@ -282,233 +399,361 @@
</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">审核完成</el-button> <el-button
type="primary"
@click="dialogVisible = true"
v-if="form.specialDiseaseNodeId"
>审核完成 {{ agreeNumber ? agreeNumber : "0" }} /
{{ totalNumber ? totalNumber : "0" }}</el-button
>
</div> </div>
<!-- <div slot="footer" class="dialog-footer">
<el-button @click="TemporaryStorage"> </el-button>
<el-button type="primary">审核完成</el-button>
</div> -->
</div> </div>
</template> </template>
<script> <script>
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 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";
import { import {
selectTaskTypeList, taskPartitionList, taskStatusDictList selectTaskTypeList,
} from '@/api/system/specialDiseaseNode' taskPartitionList,
taskStatusDictList,
triggerConditionList,
} from "@/api/system/specialDiseaseNode";
import { import {
triggerCondition, triggerConditionedit triggerCondition,
triggerConditionedit,
} from "@/api/system/editorialSpecialization"; } from "@/api/system/editorialSpecialization";
import { getAgencytype } from "@/api/system/agency";
export default { export default {
components: { wangeditor, question, propaganda, message, officialAccount, miniProgram }, components: {
wangeditor,
question,
propaganda,
message,
officialAccount,
miniProgram,
},
name: "specialDiseaseNode", name: "specialDiseaseNode",
data() { data() {
return { return {
updata: { optionstriggerConditionOperator: [
triggerConditionList: [
{ {
value: "CONTAIN",
} label: "包含",
},
{
value: "NOT_CONTAIN",
label: "不包含",
},
{
value: "EQUAL_TO",
label: "等于",
},
{
value: "NOT_EQUAL_TO",
label: "不等于",
},
], ],
optionslistS: [],
optionsname: [
{
value: "DIAGNOSIS",
label: "诊断",
},
{
value: "DRESSING_CHANGE_DATE",
label: "换药日期",
},
{
value: "TREATMENT_METHOD",
label: "治疗方式",
},
{
value: "SURGICAL_NAME",
label: "手术名称",
},
{
value: "DRUG_NAME",
label: "药品名称",
},
],
updata: {
triggerConditionList: [{}],
}, },
form: { form: {
nodeContent: '', nodeContent: "",
templateId: '', templateId: "",
templateName: '', templateName: "",
taskType: '', taskType: "",
taskTypeName: '', taskTypeName: "",
taskSubdivision: '', taskSubdivision: "",
taskSubdivisionName: '', taskSubdivisionName: "",
taskStatus: '', taskStatus: "",
secondClassifyDescribe: '', secondClassifyDescribe: "",
executionTime: '', executionTime: "",
appletPushSign: '0', appletPushSign: "0",
officialPushSign: '0', officialPushSign: "0",
messagePushSign: '0', messagePushSign: "0",
taskSubdivisiontemplateType: '', taskSubdivisiontemplateType: "",
}, },
itemindex: 0, itemindex: 0,
listindex: 0, listindex: 0,
lists: [{ lists: [
{
routeNodeName: "", routeNodeName: "",
routeNodeDay: '', routeNodeDay: "",
list: [ list: [
{ {
nodeContent: '', nodeContent: "",
templateId: '', templateId: "",
templateName: '', templateName: "",
taskType: '', taskType: "",
taskTypeName: '', taskTypeName: "",
taskSubdivision: '', taskSubdivision: "",
taskSubdivisionName: '', taskSubdivisionName: "",
taskStatus: '', taskStatus: "",
secondClassifyDescribe: '', secondClassifyDescribe: "",
executionTime: '', executionTime: "",
appletPushSign: '0', appletPushSign: "0",
officialPushSign: '0', officialPushSign: "0",
messagePushSign: '0', messagePushSign: "0",
taskSubdivisiontemplateType: '', taskSubdivisiontemplateType: "",
}, },
], ],
}], },
value: '', ],
input: '', value: "",
input: "",
// //
selectTaskTypeList: [], selectTaskTypeList: [],
// //
taskStatusDictList: [], taskStatusDictList: [],
// //
taskPartitionList: [], taskPartitionList: [],
routeId: "",
options: [],
}; };
}, },
created() { created() {
this.infolists();
this.infolist();
if (this.$route.query) { if (this.$route.query) {
this.updata.suitRange = this.$route.query.suitRange this.$set(this.updata, "suitRange", this.$route.query.suitRange);
triggerCondition(this.$route.query.id).then(res => { }) console.log(this.updata.suitRange, "5555555555555555");
// triggerCondition(this.$route.query.id).then(res => { })
} }
this.taskinfo(); this.taskinfo();
}, },
beforeDestroy() { }, beforeDestroy() {},
watch: {}, watch: {},
mounted() { mounted() {
this.form = this.lists[0].list[0] this.form = this.lists[0].list[0];
}, },
methods: { methods: {
//
changetriggerLogic(e, index) {
// console.log(e,index,'index')
this.updata.triggerConditionList[index].triggerConditionOperatorName =
this.optionstriggerConditionOperator.find((el) => el.value == e).label;
// console.log( this.updata.triggerConditionList[index].triggerConditionOperatorName,"this.updata.triggerConditionList[index].triggerConditionOperatorName");
},
//
changetriggerConditionName(e, index) {
// console.log(e,index, "eeeeeeeee");
this.updata.triggerConditionList[index].triggerConditionName =
this.optionsname.find((el) => el.value == e).label;
// console.log(this.updata.triggerConditionList[index].triggerConditionName, " this.form.triggerConditionName");
},
changeoptions() {},
//
changetriggerLogicsname(e, index) {
console.log(e, index, "eeeeeeeeeeeeeeeeee");
this.updata.triggerConditionList[index].triggerLogic = e;
this.updata.triggerConditionList[index].triggerLogicName =
this.optionslistS.find((el) => el.dictValue == e).dictLabel;
console.log(
this.updata.triggerConditionList[index].triggerLogic,
this.updata.triggerConditionList[index].triggerLogicName,
" this.form.triggerLogicName"
);
},
//
infolists() {
var dictType = "suit_range";
getAgencytype(dictType).then((res) => {
this.options = res.data;
});
},
infolist() {
this.routeId = this.$route.query.id;
triggerConditionList(this.routeId).then((res) => {
console.log(res, "res");
this.updata = res.data;
this.$set(this.updata, "suitRange", this.$route.query.suitRange);
});
},
//wangeditor //wangeditor
onNodeContent(item) { onNodeContent(item) {
this.form.nodeContent = item.nodeContent this.form.nodeContent = item.nodeContent;
}, },
// //
miniProgramtemplate(item) { miniProgramtemplate(item) {
this.form.appletTemplateId = item.templateId this.form.appletTemplateId = item.templateId;
this.form.appletTemplateName = item.templateName this.form.appletTemplateName = item.templateName;
this.form.appletRemindContent = item.templateContent this.form.appletRemindContent = item.templateContent;
}, },
// //
messageontemplate(item) { messageontemplate(item) {
this.form.messageTemplateId = item.templateId this.form.messageTemplateId = item.templateId;
this.form.messageTemplateName = item.templateName this.form.messageTemplateName = item.templateName;
this.form.messagePreview = item.templateContent this.form.messagePreview = item.templateContent;
}, },
// //
officialAccountontemplate() { officialAccountontemplate() {
this.form.officialTemplateId = item.templateId this.form.officialTemplateId = item.templateId;
this.form.officialTemplateName = item.templateName this.form.officialTemplateName = item.templateName;
this.form.officialRemindContent = item.templateContent this.form.officialRemindContent = item.templateContent;
}, },
// //
TemporaryStorage() { TemporaryStorage() {
this.$refs.wangeditor.emit() this.$refs.wangeditor.emit();
triggerConditionedit(this.lists).then(res => { triggerConditionedit(this.lists).then((res) => {});
})
}, },
// //
questionontemplate(item) { questionontemplate(item) {
this.form.templateId = item.templateId this.form.templateId = item.templateId;
this.form.templateName = item.templateName this.form.templateName = item.templateName;
}, },
// //
propagandaontemplate(item) { propagandaontemplate(item) {
this.form.templateId = item.templateId this.form.templateId = item.templateId;
this.form.templateName = item.templateName this.form.templateName = item.templateName;
}, },
topclickevent(index) { topclickevent(index) {
this.listindex = index this.listindex = index;
this.itemindex = 0 this.itemindex = 0;
}, },
bottomclickevent(uitem, index, uindex) { bottomclickevent(uitem, index, uindex) {
this.form = uitem this.form = uitem;
this.listindex = index this.listindex = index;
this.itemindex = uindex this.itemindex = uindex;
}, },
handleStep() { handleStep() {
this.active = 2 this.active = 2;
}, },
// //
taskinfo() { taskinfo() {
selectTaskTypeList().then(res => { selectTaskTypeList().then((res) => {
this.selectTaskTypeList = res.data this.selectTaskTypeList = res.data;
}) });
taskStatusDictList().then(res => { taskStatusDictList().then((res) => {
this.taskStatusDictList = res.data this.taskStatusDictList = res.data;
}) });
}, },
// //
changeTaskType(id) { changeTaskType(id) {
taskPartitionList(id).then(res => { taskPartitionList(id).then((res) => {
this.taskPartitionList = res.data this.taskPartitionList = res.data;
}) });
this.selectTaskTypeList.forEach(el => { this.selectTaskTypeList.forEach((el) => {
if (id == el.id) { if (id == el.id) {
this.form.taskTypeName = el.taskTypeName this.form.taskTypeName = el.taskTypeName;
} }
}) });
}, },
changetaskSubdivision(e) { changetaskSubdivision(e) {
this.taskPartitionList.forEach(el => { this.taskPartitionList.forEach((el) => {
if (e == el.id) { if (e == el.id) {
this.form.taskSubdivisionName = el.taskTypeName this.form.taskSubdivisionName = el.taskTypeName;
this.form.taskSubdivisiontemplateType = el.templateType this.form.taskSubdivisiontemplateType = el.templateType;
} }
}) });
}, },
addlist() { addlist() {
this.lists.push({ this.lists.push({
routeNodeName: "", routeNodeName: "",
routeNodeDay: '', routeNodeDay: "",
list: [ list: [
{ {
nodeContent: '', nodeContent: "",
templateId: '', templateId: "",
templateName: '', templateName: "",
taskType: '', taskType: "",
taskTypeName: '', taskTypeName: "",
taskSubdivision: '', taskSubdivision: "",
taskSubdivisionName: '', taskSubdivisionName: "",
taskStatus: '', taskStatus: "",
secondClassifyDescribe: '', secondClassifyDescribe: "",
executionTime: '', executionTime: "",
appletPushSign: '0', appletPushSign: "0",
officialPushSign: '0', officialPushSign: "0",
messagePushSign: '0', messagePushSign: "0",
taskSubdivisiontemplateType: '', taskSubdivisiontemplateType: "",
}, },
] ],
}) });
}, },
additem(item) { additem(item) {
item.list.push({ item.list.push({
nodeContent: '', nodeContent: "",
templateId: '', templateId: "",
templateName: '', templateName: "",
taskType: '', taskType: "",
taskTypeName: '', taskTypeName: "",
taskSubdivision: '', taskSubdivision: "",
taskSubdivisionName: '', taskSubdivisionName: "",
taskStatus: '', taskStatus: "",
secondClassifyDescribe: '', secondClassifyDescribe: "",
executionTime: '', executionTime: "",
appletPushSign: '0', appletPushSign: "0",
officialPushSign: '0', officialPushSign: "0",
messagePushSign: '0', messagePushSign: "0",
taskSubdivisiontemplateType: '', taskSubdivisiontemplateType: "",
}) });
}, },
delitem(item, index) { delitem(item, index) {
item.list.splice(this.itemindex, 1) item.list.splice(this.itemindex, 1);
if (item.list.length == 0) { if (item.list.length == 0) {
this.lists.splice(index, 1) this.lists.splice(index, 1);
} }
}, },
addtriggerCondition() { addtriggerCondition() {
this.updata.triggerConditionList.push({}) this.updata.triggerConditionList.push({});
},
}, },
}
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.login-code-img {
width: 62px;
height: 100px;
position: absolute;
// background: red;
// z-index: 0;
// top: 17%;
// position: absolute;
// left: 2%;
// top: 25%;
// width: 62px;
// height: 100px;
// position: absolute;
// /* background: red; */
z-index: -1;
right: 44px;
// position: absolute;
top: 85%;
}
.dialog-footer { .dialog-footer {
padding: 20px 20px; padding: 20px 20px;
text-align: right; text-align: right;
@ -518,6 +763,7 @@ export default {
width: 660px; width: 660px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
position: relative;
.node { .node {
margin-bottom: 10px; margin-bottom: 10px;
@ -542,7 +788,7 @@ export default {
.text { .text {
font-size: 13px; font-size: 13px;
color: #64666A; color: #64666a;
} }
.textarea { .textarea {
@ -550,7 +796,7 @@ export default {
padding: 0 10px; padding: 0 10px;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
border: 1px solid #DCDFE6; border: 1px solid #dcdfe6;
border-radius: 5px; border-radius: 5px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -580,7 +826,7 @@ export default {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
font-size: 13px; font-size: 13px;
color: #64666A; color: #64666a;
::v-deep .el-input__inner { ::v-deep .el-input__inner {
color: black; color: black;
@ -615,9 +861,10 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
div { div {
display: flex; display: flex;
padding-left: 10px; padding-left: 27px;
font-weight: 600; font-weight: 600;
align-items: center; align-items: center;
} }
@ -635,10 +882,10 @@ export default {
} }
} }
.list { .list {
margin: 20px auto; margin: 20px auto;
width: 100%; width: 100%;
height: calc(100% - 80px);
background-color: #f2f4f5; background-color: #f2f4f5;
display: flex; display: flex;
padding-top: 15px; padding-top: 15px;
@ -673,8 +920,8 @@ export default {
} }
.cards { .cards {
border: 1px solid #409EFF; border: 1px solid #409eff;
border-left: 5px solid #409EFF; border-left: 5px solid #409eff;
} }
.top { .top {

View File

@ -1,17 +1,22 @@
<template> <template>
<div class="container"> <div class="container">
<el-form ref="form" :inline="true" :model="form" label-width="140px"> <el-form ref="form" :inline="true" :model="form" label-width="140px">
<el-form-item label="编辑专病管理路径"> <el-form-item label="编辑专病管理路径"> </el-form-item>
</el-form-item> <el-form-item style="float: right">
<el-form-item style="float: right;">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
<el-button type="primary" @click="preserve">保存</el-button> <el-button type="primary" @click="preserve">保存</el-button>
<!-- <el-button type="primary">发布</el-button> --> <!-- <el-button type="primary">发布</el-button> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form ref="form" :inline="true" :model="form" label-width="100px" :rules="rules"> <el-form
ref="form"
:inline="true"
:model="form"
label-width="100px"
:rules="rules"
>
<el-form-item label="路径名称" prop="routeName"> <el-form-item label="路径名称" prop="routeName">
<el-input v-model="form.routeName" style="width:160px"></el-input> <el-input v-model="form.routeName" style="width: 160px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="病种名称" required> <el-form-item label="病种名称" required>
<div> <div>
@ -19,19 +24,34 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="版本号" prop="version"> <el-form-item label="版本号" prop="version">
<el-input v-model="form.version" style="width:160px"></el-input> <el-input v-model="form.version" style="width: 160px"></el-input>
</el-form-item> </el-form-item>
<el-form-item style="float: right;"> <el-form-item style="float: right">
<!-- <el-button type="primary" plain size="mini">AI生成触发条件</el-button> --> <!-- <el-button type="primary" plain size="mini">AI生成触发条件</el-button> -->
<!-- <el-button type="primary" plain size="mini" @click="add">人工添加主路径</el-button> --> <!-- <el-button type="primary" plain size="mini" @click="add">人工添加主路径</el-button> -->
<el-button type="primary" plain size="mini" @click="goManageNodeInformation">人工添加触发条件</el-button> <el-button
type="primary"
plain
size="mini"
@click="goManageNodeInformation"
>人工添加触发条件</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form label-width="100px" ref="form" :model="form" :rules="rules"> <el-form label-width="100px" ref="form" :model="form" :rules="rules">
<el-form-item label="所属服务包" prop="servicePackageId"> <el-form-item label="所属服务包" prop="servicePackageId">
<el-select v-model="form.servicePackageId" placeholder="请选择所属服务包" style="width:600px" multiple> <el-select
<el-option v-for="item in addpackagelist" :key="item.id" :label="item.packageName" v-model="form.servicePackageId"
:value="item.id" /> placeholder="请选择所属服务包"
style="width: 600px"
multiple
>
<el-option
v-for="item in addpackagelist"
:key="item.id"
:label="item.packageName"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -43,16 +63,24 @@
</div> </div>
<div class="progress"> <div class="progress">
<span>审核进度</span> <span>审核进度</span>
<el-progress :text-inside="true" :stroke-width="13" :percentage="list.percentage"></el-progress> <el-progress
<span>{{ list.agreeNumber + ' / ' + list.totalNumber }}</span> :text-inside="true"
:stroke-width="13"
:percentage="list.percentage"
></el-progress>
<span>{{ list.agreeNumber + " / " + list.totalNumber }}</span>
</div> </div>
<div class="title" style="width:240px"> <div class="title" style="width: 240px">
<span>适用范围:</span> <span>适用范围:</span>
<span> <span>
{{ list.suitRange == 'IN_THE_HOSPITAL' ? '在院' : '' }} {{ list.suitRange == "IN_THE_HOSPITAL" ? "在院" : "" }}
{{ list.suitRange == 'DISCHARGE' ? '出院' : '' }} {{ list.suitRange == "DISCHARGE" ? "出院" : "" }}
{{ list.suitRange == 'OUTPATIENT_SERVICE' ? '门诊' : '' }} {{ list.suitRange == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
{{ list.suitRange == 'OUTPATIENT_SERVICE_DISCHARGE' ? '门诊+出院' : '' }} {{
list.suitRange == "OUTPATIENT_SERVICE_DISCHARGE"
? "门诊+出院"
: ""
}}
</span> </span>
</div> </div>
<div> <div>
@ -60,36 +88,60 @@
<!-- <i class="el-icon-delete" @click.stop="delspecialDiseaseRoute"></i> --> <!-- <i class="el-icon-delete" @click.stop="delspecialDiseaseRoute"></i> -->
</div> </div>
</div> </div>
<div class="item" v-for="item in list.triggerConditionList" :key="item.triggerConditionId"> <div
<!-- @click.stop="goManageNodeInformation(item)" --> class="item"
v-for="item in list.childrenRouteList"
:key="item.specialDiseaseRouteId"
>
<div class="title"> <div class="title">
<el-tag type="success">触发条件</el-tag> <el-tag type="success">触发条件</el-tag>
<span> <span>
{{ item.triggerConditionName == 'DIAGNOSIS' ? '诊断' : '' }} {{ item.routeName }}
{{ item.triggerConditionName == 'DRESSING_CHANGE_DATE' ? '换药日期' : '' }}
{{ item.triggerConditionName == 'TREATMENT_METHOD' ? '治疗方式' : '' }}
{{ item.triggerConditionName == 'SURGICAL_NAME' ? '手术名称' : '' }}
{{ item.triggerConditionName == 'DRUG_NAME' ? '药品名称' : '' }}
</span>
<span style="padding: 0;">
{{ item.triggerConditionOperator == 'CONTAIN' ? '包含' : '' }}
{{ item.triggerConditionOperator == 'NOT_CONTAIN' ? '不包含' : '' }}
{{ item.triggerConditionOperator == 'EQUAL_TO' ? '等于' : '' }}
{{ item.triggerConditionOperator == 'NOT_EQUAL_TO' ? '不等于' : '' }}
</span>
<span style="padding: 0;">
{{ item.triggerConditionValue }}
</span> </span>
<!-- {{ item.triggerConditionName == "DIAGNOSIS" ? "诊断" : "" }}
{{
item.triggerConditionName == "DRESSING_CHANGE_DATE"
? "换药日期"
: ""
}}
{{
item.triggerConditionName == "TREATMENT_METHOD" ? "治疗方式" : ""
}}
{{ item.triggerConditionName == "SURGICAL_NAME" ? "手术名称" : "" }}
{{ item.triggerConditionName == "DRUG_NAME" ? "药品名称" : "" }} -->
<!-- <span style="padding: 0"> -->
<!-- {{ item.triggerConditionOperator == "CONTAIN" ? "包含" : "" }}
{{ item.triggerConditionOperator == "NOT_CONTAIN" ? "不包含" : "" }}
{{ item.triggerConditionOperator == "EQUAL_TO" ? "等于" : "" }}
{{
item.triggerConditionOperator == "NOT_EQUAL_TO" ? "不等于" : ""
}} -->
<!-- </span> -->
<!-- <span style="padding: 0"> -->
<!-- {{ item.triggerConditionValue }} -->
<!-- </span> -->
</div> </div>
<div class="progress"> <div class="progress">
<span>审核进度</span>
<el-progress
:text-inside="true"
:stroke-width="13"
:percentage="item.percentage"
></el-progress>
<span>{{ item.agreeNumber + " / " + item.totalNumber }}</span>
</div> </div>
<div class="title" style="width:240px"> <div class="title" style="width: 240px">
<span>适用范围:</span> <span>适用范围:</span>
<span> <span>
{{ list.suitRange == 'IN_THE_HOSPITAL' ? '在院' : '' }} {{ item.suitRange == "IN_THE_HOSPITAL" ? "在院" : "" }}
{{ list.suitRange == 'DISCHARGE' ? '出院' : '' }} {{ item.suitRange == "DISCHARGE" ? "出院" : "" }}
{{ list.suitRange == 'OUTPATIENT_SERVICE' ? '门诊' : '' }} {{ item.suitRange == "OUTPATIENT_SERVICE" ? "门诊" : "" }}
{{ list.suitRange == 'OUTPATIENT_SERVICE_DISCHARGE' ? '门诊+出院' : '' }} {{
item.suitRange == "OUTPATIENT_SERVICE_DISCHARGE"
? "门诊+出院"
: ""
}}
</span> </span>
</div> </div>
<div> <div>
@ -100,27 +152,85 @@
</div> </div>
</div> </div>
<!-- 添加触发条件 --> <!-- 添加触发条件 -->
<el-dialog title="添加触发条件" :visible.sync="open" width="800px" append-to-body> <el-dialog
<el-button type="primary" plain size="mini" @click="addtriggerCondition" title="添加触发条件"
style="float: right;">添加触发条件</el-button> :visible.sync="open"
<el-descriptions title="触发条件"> width="800px"
</el-descriptions> append-to-body
>
<el-form ref="updata" :model="updata" :rules="rules" label-width="80px"> <el-form ref="updata" :model="updata" :rules="rules" label-width="80px">
<div class="node" v-for="(item, index) in updata.triggerConditionList" :key="index" <el-form-item label="适用范围:">
:style="updata.triggerConditionList.length > 1 ? '' : 'margin:0'"> <el-select
<div style="display: inline-block;margin-right:20px">触发条件{{ index + 1 }}</div> v-model="updata.suitRange"
<el-select v-model="item.triggerConditionName" style="width:120px"> @change="changeoptions"
<el-option label="诊断" value="DIAGNOSIS" /> style="width: 200px"
>
<el-option
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</el-form-item>
<el-descriptions title="触发条件"> </el-descriptions>
<div
class="node"
v-for="(item, index) in updata.triggerConditionList"
:key="index"
>
<div
style="width: 600px; position: absolute; left: 2%; top: 57%"
v-if="updata.triggerConditionList.length === 3"
>
<img src="@/assets/images/images.png" class="login-code-img" />
<el-select
v-model="item.triggerLogic"
style="width: 60px"
placeholder=""
@change="changetriggerLogicsname($event, index)"
>
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</div>
<el-select
v-model="item.triggerConditionCode"
style="width: 120px"
@change="changetriggerConditionName($event, index)"
>
<el-option
v-for="item in optionsname"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
<!-- <el-option label="诊断" value="DIAGNOSIS" />
<el-option label="换药日期" value="DRESSING_CHANGE_DATE" /> <el-option label="换药日期" value="DRESSING_CHANGE_DATE" />
<el-option label="治疗方式" value="TREATMENT_METHOD" /> <el-option label="治疗方式" value="TREATMENT_METHOD" />
<el-option label="手术名称" value="SURGICAL_NAME" /> <el-option label="手术名称" value="SURGICAL_NAME" />
<el-option label="药品名称" value="DRUG_NAME" /> <el-option label="药品名称" value="DRUG_NAME" /> -->
</el-select> </el-select>
<el-select v-model="item.triggerConditionOperator" style="width: 100px;"> <el-select
<el-option label="包含" value="CONTAIN" /> v-model="item.triggerConditionOperator"
<el-option label="不包含" value="NOT_CONTAIN" /> style="width: 100px"
<el-option label="等于" value="EQUAL_TO" /> @change="changetriggerLogic($event, index)"
<el-option label="不等于" value="NOT_EQUAL_TO" /> >
<el-option
v-for="item in optionstriggerConditionOperator"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> </el-select>
<!-- <el-select v-model="item.suitRange" style="width: 120px;"> <!-- <el-select v-model="item.suitRange" style="width: 120px;">
<el-option label="在院" value="IN_THE_HOSPITAL" /> <el-option label="在院" value="IN_THE_HOSPITAL" />
@ -128,8 +238,50 @@
<el-option label="门诊" value="OUTPATIENT_SERVICE" /> <el-option label="门诊" value="OUTPATIENT_SERVICE" />
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" /> <el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" />
</el-select> --> </el-select> -->
<el-input v-model="item.triggerConditionValue" style="width: 300px;" <el-input
placeholder="请输入触发条件"></el-input> v-if="item.triggerConditionCode != 'DRESSING_CHANGE_DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
placeholder="请输入触发条件"
></el-input>
<el-date-picker
v-if="item.triggerConditionCode == 'DRESSING_CHANGE_DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
type="date"
placeholder="选择日期时间"
value-format="yyyy-MM-dd"
>
</el-date-picker>
<span class="icon">
<el-button
type="danger"
class="el-icon-remove-outline"
plain
@click="delitem(index)"
v-if="index != 0"
></el-button>
<!-- <i
class="el-icon-delete"
@click="delitem(index)"
v-if="index != 0"
></i> -->
<!-- <i
v-if="index == 0"
class="el-icon-circle-plus-outline"
@click="addtriggerCondition(index)"
>添加触发条件</i
> -->
<el-button
type="primary"
plain
class="el-icon-circle-plus-outline"
@click="addtriggerCondition(index)"
v-if="index == 0"
>添加属性</el-button
>
</span>
</div> </div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -138,20 +290,35 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 修改触发条件 --> <!-- 修改触发条件 -->
<el-dialog title="修改触发条件" :visible.sync="editopen" width="800px" append-to-body> <el-dialog
title="修改触发条件"
:visible.sync="editopen"
width="900px"
append-to-body
>
<!-- <el-button type="primary" plain size="mini" @click="addtriggerCondition" <!-- <el-button type="primary" plain size="mini" @click="addtriggerCondition"
style="float: right;">添加触发条件</el-button> --> style="float: right;">添加触发条件</el-button> -->
<el-descriptions title="触发条件"> <el-descriptions title="触发条件"> </el-descriptions>
</el-descriptions> <el-form
<el-form ref="updataform" :model="updataform" :rules="rules" label-width="80px"> ref="updataform"
<el-select v-model="updataform.triggerConditionName" style="width:120px"> :model="updataform"
:rules="rules"
label-width="80px"
>
<el-select
v-model="updataform.triggerConditionName"
style="width: 120px"
>
<el-option label="诊断" value="DIAGNOSIS" /> <el-option label="诊断" value="DIAGNOSIS" />
<el-option label="换药日期" value="DRESSING_CHANGE_DATE" /> <el-option label="换药日期" value="DRESSING_CHANGE_DATE" />
<el-option label="治疗方式" value="TREATMENT_METHOD" /> <el-option label="治疗方式" value="TREATMENT_METHOD" />
<el-option label="手术名称" value="SURGICAL_NAME" /> <el-option label="手术名称" value="SURGICAL_NAME" />
<el-option label="药品名称" value="DRUG_NAME" /> <el-option label="药品名称" value="DRUG_NAME" />
</el-select> </el-select>
<el-select v-model="updataform.triggerConditionOperator" style="width: 100px;"> <el-select
v-model="updataform.triggerConditionOperator"
style="width: 100px"
>
<el-option label="包含" value="CONTAIN" /> <el-option label="包含" value="CONTAIN" />
<el-option label="不包含" value="NOT_CONTAIN" /> <el-option label="不包含" value="NOT_CONTAIN" />
<el-option label="等于" value="EQUAL_TO" /> <el-option label="等于" value="EQUAL_TO" />
@ -163,8 +330,11 @@
<el-option label="门诊" value="OUTPATIENT_SERVICE" /> <el-option label="门诊" value="OUTPATIENT_SERVICE" />
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" /> <el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" />
</el-select> --> </el-select> -->
<el-input v-model="updataform.triggerConditionValue" style="width: 300px;" <el-input
placeholder="请输入触发条件"></el-input> v-model="updataform.triggerConditionValue"
style="width: 300px"
placeholder="请输入触发条件"
></el-input>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="editupload"> </el-button> <el-button type="primary" @click="editupload"> </el-button>
@ -177,75 +347,182 @@
<script> <script>
import { import {
updateSpecialDiseaseRoute, updateSpecialDiseaseRoute,
getById,
} from "@/api/system/specialDiseaseRoute"; } from "@/api/system/specialDiseaseRoute";
import { import {
specialDiseaseRoute, triggerConditiondel, specialDiseaseRoutedel, triggerConditionadd, triggerCondition, triggerConditionedit specialDiseaseRoute,
triggerConditiondel,
specialDiseaseRoutedel,
triggerConditionadd,
triggerCondition,
triggerConditionedit,
} from "@/api/system/editorialSpecialization"; } from "@/api/system/editorialSpecialization";
import { import { servicepackageinfo } from "@/api/manage/signRecord.js";
servicepackageinfo import { getAgencytype } from "@/api/system/agency";
} from '@/api/manage/signRecord.js'
export default { export default {
name: "editorialSpecialization", name: "editorialSpecialization",
data() { data() {
return { return {
options: [],
optionstriggerConditionOperator: [
{
value: "CONTAIN",
label: "包含",
},
{
value: "NOT_CONTAIN",
label: "不包含",
},
{
value: "EQUAL_TO",
label: "等于",
},
{
value: "NOT_EQUAL_TO",
label: "不等于",
},
],
optionsname: [
{
value: "DIAGNOSIS",
label: "诊断",
},
{
value: "DRESSING_CHANGE_DATE",
label: "换药日期",
},
{
value: "TREATMENT_METHOD",
label: "治疗方式",
},
{
value: "SURGICAL_NAME",
label: "手术名称",
},
{
value: "DRUG_NAME",
label: "药品名称",
},
],
optionslistS: [],
form: { form: {
version: '', version: "",
routeName: '', routeName: "",
id: '', id: "",
diseaseTypeName: '', diseaseTypeName: "",
servicePackageId: [], servicePackageId: [],
routePackageList: [], routePackageList: [],
}, },
open: false, open: false,
updata: { updata: {
triggerConditionList: [{ triggerLogic: "",
routeId: '', triggerLogicName: "",
routeName: '', suitRange: "",
triggerConditionName: '', parentRouteId: "",
triggerConditionOperator: '', triggerConditionList: [
triggerConditionValue: '', {
}], routeId: "",
routeName: "",
triggerConditionName: "",
triggerConditionOperatorName: "",
// triggerConditionName: "",
triggerConditionOperator: "",
triggerConditionValue: "",
triggerLogic: "",
triggerLogicName: "",
},
],
}, },
editopen: false, editopen: false,
updataform: {}, updataform: {},
// //
rules: { rules: {
servicePackageId: [ servicePackageId: [
{ required: true, message: '不能为空', trigger: 'change' } { required: true, message: "不能为空", trigger: "change" },
],
routeName: [
{ required: true, message: '不能为空', trigger: 'change' }
],
version: [
{ required: true, message: '不能为空', trigger: 'change' }
], ],
routeName: [{ required: true, message: "不能为空", trigger: "change" }],
version: [{ required: true, message: "不能为空", trigger: "change" }],
}, },
list: {}, list: {},
addpackagelist: [], addpackagelist: [],
}; };
}, },
created() { created() {
this.form.version = this.$route.query.version this.form.version = this.$route.query.version;
this.form.routeName = this.$route.query.routeName this.form.routeName = this.$route.query.routeName;
this.form.id = this.$route.query.id this.form.id = this.$route.query.id;
this.form.diseaseTypeName = this.$route.query.diseaseTypeName this.updata.parentRouteId = this.$route.query.id;
this.form.diseaseTypeName = this.$route.query.diseaseTypeName;
this.info(); this.info();
this.infolist();
this.infolistoptionslistS();
}, },
watch: { watch: {},
},
methods: { methods: {
//
changetriggerLogic(e, index) {
// console.log(e,index,'index')
this.updata.triggerConditionList[index].triggerConditionOperatorName =
this.optionstriggerConditionOperator.find((el) => el.value == e).label;
// console.log( this.updata.triggerConditionList[index].triggerConditionOperatorName,"this.updata.triggerConditionList[index].triggerConditionOperatorName");
},
//
changetriggerConditionName(e, index) {
// console.log(e,index, "eeeeeeeee");
this.updata.triggerConditionList[index].triggerConditionName =
this.optionsname.find((el) => el.value == e).label;
// console.log(this.updata.triggerConditionList[index].triggerConditionName, " this.form.triggerConditionName");
},
changeoptions() {},
//
changetriggerLogicsname(e, index) {
console.log(e, index, "eeeeeeeeeeeeeeeeee");
this.updata.triggerConditionList[index].triggerLogic = e;
this.updata.triggerConditionList[index].triggerLogicName =
this.optionslistS.find((el) => el.dictValue == e).dictLabel;
console.log(
this.updata.triggerConditionList[index].triggerLogic,
this.updata.triggerConditionList[index].triggerLogicName,
" this.form.triggerLogicName"
);
},
infolist() {
var dictType = "suit_range";
getAgencytype(dictType).then((res) => {
this.options = res.data;
});
},
infolistoptionslistS() {
var dictType = "trigger_logic";
getAgencytype(dictType).then((res) => {
this.optionslistS = res.data;
});
},
delitem(index, item) {
this.updata.triggerConditionList.splice(index, 1);
},
info() { info() {
specialDiseaseRoute(this.$route.query.id).then(res => { getById(this.$route.query.id).then((res) => {
this.list = res.data this.list = res.data;
this.list.percentage = this.list.agreeNumber / this.list.totalNumber * 100 console.log(this.list, "this.list");
res.data.routePackageList?.forEach(e => { this.list.percentage =
e.servicePackageId ? this.form.servicePackageId.push(e.servicePackageId) : '' (this.list.agreeNumber / this.list.totalNumber) * 100;
}) res.data.routePackageList?.forEach((e) => {
// e.servicePackageId
servicepackageinfo({ departmentId: res.data.departmentId }).then(res => { ? this.form.servicePackageId.push(e.servicePackageId)
this.addpackagelist = res.data : "";
}) });
}) // //
servicepackageinfo({ departmentId: res.data.departmentId }).then(
(res) => {
this.addpackagelist = res.data;
}
);
});
}, },
edit() { edit() {
this.$router.push({ this.$router.push({
@ -253,7 +530,7 @@ export default {
query: { query: {
routeName: this.list.routeName, routeName: this.list.routeName,
suitRange: this.list.suitRange, suitRange: this.list.suitRange,
id: this.list.specialDiseaseRouteId id: this.list.specialDiseaseRouteId,
}, },
}); });
}, },
@ -263,170 +540,252 @@ export default {
query: { query: {
routeName: this.list.routeName, routeName: this.list.routeName,
suitRange: this.list.suitRange, suitRange: this.list.suitRange,
id: this.list.specialDiseaseRouteId id: this.list.specialDiseaseRouteId,
}, },
}); });
}, },
goManageNodeInformation() { goManageNodeInformation() {
this.open = true this.open = true;
},
// goManageNodeInformations() {
// this.$router.push({ // this.$router.push({
// path: "/specialdisease/ManageNodeInformation", // path: "/specialdisease/ManageNodeInformation",
// query: { // query: {
// suitRange: this.list.suitRange // suitRange: this.list.suitRange,
// }, // },
// }); // });
}, // },
addtriggerCondition() { addtriggerCondition() {
this.updata.triggerConditionList.push({ this.idd++;
routeId: '', var obj = {
routeName: '', routeId: "",
triggerConditionName: '', routeName: "",
triggerConditionOperator: '', triggerConditionName: "",
triggerConditionValue: '', triggerConditionOperator: "",
}) triggerConditionValue: "",
triggerConditionName: "",
triggerConditionOperatorName: "",
triggerLogic: "",
triggerLogicName: "",
};
// if (this.form.voList.length == 5) {
// this.$message.error("5");
// } else {
// this.form.voList.push(obj);
// // console.log(this.form)
// }
// this.updata.triggerConditionList.push({
// });
// },
if (this.updata.triggerConditionList.length == 3) {
this.$message.error("最多批量添加2条");
} else {
this.updata.triggerConditionList.push(obj);
// console.log(this.form)
}
}, },
editopenfalse() { editopenfalse() {
this.updataform = {} this.updataform = {};
this.editopen = false this.editopen = false;
this.resetForm("updataform"); this.resetForm("updataform");
}, },
editupload() { editupload() {
const loading = this.$loading({ // const loading = this.$loading({
lock: true, // lock: true,
text: 'Loading', // text: "Loading",
spinner: 'el-icon-loading', // spinner: "el-icon-loading",
background: 'rgba(0, 0, 0, 0.7)' // background: "rgba(0, 0, 0, 0.7)",
}); // });
triggerConditionedit(this.updataform).then(res => { triggerConditionedit(this.updataform).then((res) => {
loading.close(); // loading.close();
this.$notify({ this.$notify({
type: 'success', type: "success",
title: '提示', title: "提示",
message: '修改触发条件成功', message: "修改触发条件成功",
}); });
this.info(); this.info();
this.editopenfalse(); this.editopenfalse();
}) });
}, },
openfalse() { openfalse() {
this.updata.triggerConditionList = [{ this.updata.triggerConditionList = [
routeId: '', {
routeName: '', routeId: "",
triggerConditionName: '', routeName: "",
triggerConditionOperator: '', triggerConditionName: "",
triggerConditionValue: '', triggerConditionOperator: "",
}] triggerConditionValue: "",
this.open = false triggerConditionName: "",
triggerConditionOperatorName: "",
triggerLogic: "",
triggerLogicName: "",
},
];
this.open = false;
this.resetForm("updata"); this.resetForm("updata");
}, },
upload() { upload() {
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
text: 'Loading', text: "Loading",
spinner: 'el-icon-loading', spinner: "el-icon-loading",
background: 'rgba(0, 0, 0, 0.7)' background: "rgba(0, 0, 0, 0.7)",
}); });
this.updata.triggerConditionList.forEach(e => { this.updata.triggerConditionList.forEach((e) => {
e.routeId = this.$route.query.id e.routeId = this.$route.query.id;
e.routeName = this.$route.query.routeName e.routeName = this.$route.query.routeName;
}) });
triggerConditionadd(this.updata).then(res => { console.log(this.updata, "(this.updata");
triggerConditionadd(this.updata).then((res) => {
loading.close(); loading.close();
this.$notify({ this.$notify({
type: 'success', type: "success",
title: '提示', title: "提示",
message: '新增触发条件成功', message: "新增触发条件成功",
}); });
this.info(); this.info();
this.openfalse(); this.openfalse();
}) });
}, },
// //
preserve() { preserve() {
if (this.form.servicePackageId?.length > 0 && this.addpackagelist?.length > 0) { if (
let routePackageList = [] this.form.servicePackageId?.length > 0 &&
this.addpackagelist.forEach(e => { this.addpackagelist?.length > 0
this.form.servicePackageId.forEach(el => { ) {
let routePackageList = [];
this.addpackagelist.forEach((e) => {
this.form.servicePackageId.forEach((el) => {
if (e.id == el) { if (e.id == el) {
let item = { let item = {
servicePackageId: el, servicePackageId: el,
packageName: e.packageName packageName: e.packageName,
};
routePackageList.push(item);
} }
routePackageList.push(item) });
});
this.form.routePackageList = routePackageList;
} }
}) this.$refs["form"].validate((valid) => {
})
this.form.routePackageList = routePackageList
}
this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
this.$confirm('是否确认保存?', '提示', { this.$confirm("是否确认保存?", "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
}).then(() => { }).then(() => {
updateSpecialDiseaseRoute(this.form).then(response => { updateSpecialDiseaseRoute(this.form).then((response) => {
this.$notify({ this.$notify({
type: 'success', type: "success",
title: '提示', title: "提示",
message: '保存成功,即将返回上一页', message: "保存成功,即将返回上一页",
duration: 3000 duration: 3000,
}); });
setTimeout(() => { setTimeout(() => {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { this.$store
.dispatch("tagsView/delView", this.$route)
.then(({ visitedViews }) => {
this.$router.push({ this.$router.push({
path: "/specialdisease/specialDiseaseRoute", path: "/specialdisease/specialDiseaseRoute",
}); });
}) });
}, 3000); }, 3000);
}); });
}) });
} }
}) });
}, },
// //
triggerConditionedit(item) { triggerConditionedit(item) {
const loading = this.$loading({ console.log(item, "item");
lock: true, this.$router.push({
text: 'Loading', path: "/specialdisease/ManageNodeInformation",
spinner: 'el-icon-loading', query: {
background: 'rgba(0, 0, 0, 0.7)' suitRange: item.suitRange,
}); id: item.specialDiseaseRouteId,
triggerCondition(item.triggerConditionId).then(res => {
loading.close(); },
this.editopen = true
this.updataform = res.data
}).catch(() => {
loading.close();
}); });
// const loading = this.$loading({
// lock: true,
// text: "Loading",
// spinner: "el-icon-loading",
// background: "rgba(0, 0, 0, 0.7)",
// });
// triggerCondition(item.triggerConditionId)
// .then((res) => {
// loading.close();
// this.editopen = true;
// this.updataform = res.data;
// })
// .catch(() => {
// loading.close();
// });
}, },
// //
deltriggerCondition(item) { deltriggerCondition(item) {
this.$confirm('确定删除此触发条件吗?', '提示', { console.log(item, "item");
confirmButtonText: '确定',
cancelButtonText: '取消', this.$confirm("确定删除此触发条件吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
}).then(() => { }).then(() => {
triggerConditiondel([item.triggerConditionId]).then(res => { triggerConditiondel([item.specialDiseaseRouteId]).then((res) => {
this.$notify({ this.$notify({
type: 'success', type: "success",
title: '提示', title: "提示",
message: '删除成功', message: "删除成功",
duration: 3000 duration: 3000,
}); });
this.info(); this.info();
}) });
}) });
}, },
back() { back() {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => { this.$store
.dispatch("tagsView/delView", this.$route)
.then(({ visitedViews }) => {
this.$router.push({ this.$router.push({
path: "/specialdisease/specialDiseaseRoute", path: "/specialdisease/specialDiseaseRoute",
}); });
}) });
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// .images{
// width: 20px;
// height: 20px;
// background: red;
.login-code-img {
width: 62px;
height: 100px;
position: absolute;
background: red;
z-index: 0;
// top: 17%;
position: absolute;
// left: 2%;
top: -75%;
}
// }
.icon {
// right: -20px;
// background: red;
// top: 40px;
position: relative;
display: inline-block;
width: 150px;
height: 76px;
// .el-icon-delete {
// width: 29px;
// height: 23px;
// }
}
.container { .container {
padding: 20px; padding: 20px;
overflow-y: scroll; overflow-y: scroll;
@ -434,12 +793,12 @@ export default {
} }
.node { .node {
margin-bottom: 10px; margin-left: 60px;
} }
.list { .list {
width: 100%; width: 100%;
background-color: #F2F3F5; background-color: #f2f3f5;
padding: 28px 0; padding: 28px 0;
.item { .item {