| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox-group |
| | | v-model="checkList" |
| | | @change="handleCheckedCitiesChange" |
| | | > |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item.value" |
| | | @change="checkboxChange($event, item.value)" |
| | | > |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <div class="xinz-infs"> |
| | | <el-form-item label="服务执行顺序" prop="daytime"> |
| | | <el-tag |
| | | :key="tag.label" |
| | | type="success" |
| | | v-for="(tag, index) in foncheckList" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClosetag(tag)" |
| | | > |
| | | ({{ index + 1 }}){{ tag.label }} |
| | | </el-tag> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="是否长期" prop="longTask"> |
| | | <el-radio-group v-model="form.longTask"> |
| | | <el-radio :label="0">普通任务</el-radio> |
| | |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | |
| | | </div> |
| | | <!-- 任务详情 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <el-alert title="在本阶段选择宣教病人" type="success" effect="dark"> |
| | | <el-alert title="在本阶段选择病人" type="success" effect="dark"> |
| | | </el-alert> |
| | | <div class="leftvlue-jbxx"> |
| | | <div class="examine-jic"> |
| | |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | :disabled="!patientqueryParams.allhosp" |
| | | @click="handleQuery" |
| | | >新增</el-button |
| | | > |
| | | <div v-if="form.longTask"> |
| | | <el-tooltip |
| | | |
| | | class="item" |
| | | effect="dark" |
| | | content="长期任务不支持手动添加患者!" |
| | | placement="top-start" |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | disabled |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >新增</el-button |
| | | > |
| | | </el-tooltip> |
| | | </div> |
| | | <div v-else> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | :disabled="!patientqueryParams.allhosp" |
| | | @click="handleQuery" |
| | | >新增</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="14"> |
| | | <el-form-item label="可用状态" prop="isenable"> |
| | | <el-radio-group v-model="objyl.usestate"> |
| | | <el-radio-group v-model="objyl.isenable"> |
| | | <el-radio |
| | | v-for="(item, index) in usable" |
| | | :label="item.value" |
| | |
| | | class="ruleFormaa" |
| | | v-for="item in belongDepts" |
| | | :key="item.deptCode" |
| | | :label="item.deptName" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in belongWards" |
| | | :key="item.districtCode" |
| | | :label="item.districtName" |
| | | :value="item.districtCode" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | |
| | | getFollowupclassify, |
| | | depthospgetsonlist, |
| | | } from "@/api/AiCentre/index"; |
| | | import { deptTreeSelect } from "@/api/system/user"; |
| | | |
| | | |
| | | import SFtable from "@/components/SFtable"; //表格组件 |
| | | |
| | |
| | | id: "", // |
| | | previewid: "", //任务模板传递id |
| | | libName: "", |
| | | username: "", |
| | | objyl: {}, |
| | | overallCase: [], //选择患者总 |
| | | allpids: [], |
| | |
| | | { label: "出院日期", width: "150", prop: "inhosptime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "电话号码", width: "180", prop: "telcode" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | |
| | | { label: "出院日期", width: "150", prop: "endtime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "电话号码", width: "180", prop: "telcode" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | |
| | | ], |
| | | |
| | | tableLabelwj: [ |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "模板标题", width: "", prop: "templateName" }, |
| | | { label: "随访描述", width: "", prop: "note" }, |
| | | { label: "修改日期", width: "", prop: "updateTime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | ], |
| | | // 变量 |
| | | tableLabelvariable: [ |
| | |
| | | pageSize: 10, |
| | | }, |
| | | checkList: [], |
| | | foncheckList: [], |
| | | formatvalue: { |
| | | format1: "", |
| | | format2: "", |
| | | format3: "", |
| | | }, |
| | | deliverytopqueryParams: { |
| | | pageNum: 1, // |
| | | pageSize: 10, |
| | |
| | | SelectPatientslist: [], |
| | | form: { |
| | | patTaskRelevances: [], |
| | | sendType: 1, |
| | | sendType: 3, |
| | | longTask: 0, |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!", |
| | | kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,进行本次回访服务。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访内容就到这里,祝您身体健康!", |
| | | }, |
| | | taskoptions: [ |
| | | { |
| | |
| | | // 科室院区查询入参 |
| | | queryParamsdept: { |
| | | tempid: "", |
| | | type: 11, |
| | | type: 2, |
| | | }, |
| | | quote: false, |
| | | serviceType: null, |
| | |
| | | |
| | | created() { |
| | | this.appraiselist = store.getters.appraiselist; |
| | | this.belongWards = store.getters.belongWards; |
| | | this.belongDepts = store.getters.belongDepts; |
| | | // this.belongWards = store.getters.belongWards; |
| | | // this.belongDepts = store.getters.belongDepts; |
| | | this.username = store.getters.name; |
| | | this.mode = store.getters.Askmode; |
| | | this.id = this.$route.query.id; |
| | | this.newadd = this.$route.query.newadd; |
| | |
| | | this.form.serviceType = Number(this.$route.query.serviceType); |
| | | this.Acquisitiontype(); |
| | | this.Getdetails(); |
| | | this.getDeptTree(); |
| | | this.getFollowupclassify(); |
| | | }, |
| | | activated() { |
| | | if (this.id != this.$route.query.id) { |
| | | this.Acquisitiontype(); |
| | | this.Getdetails(); |
| | | this.getDeptTree(); |
| | | this.getFollowupclassify(); |
| | | } |
| | | }, |
| | |
| | | }); |
| | | return result; |
| | | }, |
| | | getDeptTree() { |
| | | // 科室列表 |
| | | deptTreeSelect().then((response) => { |
| | | let flatArray = this.flattenArray(response.data); |
| | | this.belongWards = flatArray; |
| | | this.belongDepts = flatArray; |
| | | }); |
| | | }, |
| | | flattenArray(multiArray) { |
| | | let result = []; |
| | | |
| | | // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 |
| | | function flatten(element) { |
| | | // 如果当前元素有子元素,继续递归 |
| | | if (element.children && element.children.length > 0) { |
| | | element.children.forEach((child) => flatten(child)); |
| | | } else { |
| | | // 克隆元素以避免修改原始数据 |
| | | let item = JSON.parse(JSON.stringify(element)); |
| | | result.push(item); // 将最底层的元素添加到结果数组 |
| | | } |
| | | } |
| | | |
| | | // 从顶层元素开始递归 |
| | | multiArray.forEach((element) => flatten(element)); |
| | | return result; // 返回只包含最底层元素的一维数组 |
| | | }, |
| | | // 获取当前类型 |
| | | Acquisitiontype() { |
| | | let queryParams = { |
| | |
| | | value: "1", |
| | | label: "人工", |
| | | }, |
| | | |
| | | { |
| | | value: "2", |
| | | label: "纸质", |
| | |
| | | xh: 1, |
| | | }, |
| | | ]; |
| | | if ( |
| | | (this.belongWards[0] || this.belongWards[0]) && |
| | | this.username == "andmin" |
| | | ) { |
| | | if (this.tempbelongWards[0] || this.tempbelongWards[0]) { |
| | | } else { |
| | | this.$modal.msgError("请选择科室或病区"); |
| | | return; |
| | | } |
| | | } |
| | | if (this.checkList[0]) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | } else { |
| | |
| | | if (this.form.longTask) { |
| | | this.objyl.longTemp = 1; |
| | | } |
| | | this.queryParamsdept.type = 1; |
| | | this.queryParamsdept.type = 2; |
| | | this.queryParamsdept.tempid = row.id; |
| | | this.listDept(); |
| | | |
| | | this.objyl.suitway = this.objyl.suitway.split(","); |
| | | this.questionList = res.data.ivrLibaTemplateScriptVOList; |
| | | this.getillness(row.id); |
| | | console.log(res.data, "11"); |
| | | this.Variablehandling(res.data.ivrLibaTemplateScriptVOList, 1); |
| | | this.previewtf = true; |
| | | } |
| | |
| | | if (this.objyl.suitway) |
| | | this.objyl.suitway = this.objyl.suitway.split(","); |
| | | this.queryParamsdept.tempid = this.form.templateid; |
| | | this.queryParamsdept.type = 11; |
| | | this.queryParamsdept.type = 21; |
| | | this.getillness(this.form.libtemplateid); |
| | | // 执行获取该任务模板id |
| | | this.listDept(); |
| | |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | const Aarr = Variablist.filter( |
| | | (obj, index, self) => |
| | | index === |
| | |
| | | { label: "出院日期", width: "150", prop: "endtime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "电话号码", width: "180", prop: "telcode" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | |
| | | { label: "入院日期", width: "150", prop: "starttime" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "电话号码", width: "180", prop: "telcode" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | |
| | | this.patientqueryParams.cry = 1; |
| | | } else if (this.patientqueryParams.allhosp == 4) { |
| | | this.patientqueryParams.cry = 0; |
| | | this.patientqueryParams.allhosp = "1"; |
| | | } |
| | | // 来源判断 |
| | | |
| | |
| | | templatename: "", |
| | | templateid: null, |
| | | libtemplateid: null, |
| | | kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访随访。", |
| | | kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。", |
| | | jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", |
| | | }; |
| | | |
| | |
| | | this.objyl.suitway = this.objyl.suitway.join(","); |
| | | } |
| | | this.objyl.ivrLibaTemplateScriptVOList.forEach((item) => { |
| | | item.svyTaskTemplateTargetoptions = item.ivrLibaScriptTargetoptionList; |
| | | item.ivrTaskScriptTargetoptionList = item.ivrLibaScriptTargetoptionList; |
| | | }); |
| | | this.objyl.svyTaskTemplateScriptVOS = |
| | | this.objyl.ivrTaskTemplateScriptVOList = |
| | | this.objyl.ivrLibaTemplateScriptVOList; |
| | | this.objyl.isoperation = 1; |
| | | if (this.form.id) { |
| | | this.objyl.taskid=this.form.id |
| | | } |
| | | if (this.form.templateid) { |
| | | deleteTaskparticty(this.form.templateid).then((res) => { |
| | | if (res.code == 200) { |
| | | Taskparticty(this.objyl).then((response) => { |
| | | this.previewtf = false; |
| | | this.form.libtemplateid = this.objyl.id; |
| | | this.form.templateid = response.data; |
| | | this.putbelongDepts(response.data); |
| | | this.form.templatename = this.objyl.templateName; |
| | | this.$modal.msgSuccess("选择模板成功"); |
| | | }); |
| | | Taskparticty(this.objyl).then((response) => { |
| | | this.previewtf = false; |
| | | this.form.libtemplateid = this.objyl.id; |
| | | this.form.templateid = response.data; |
| | | this.putbelongDepts(response.data); |
| | | this.form.templatename = this.objyl.templateName; |
| | | this.$modal.msgSuccess("选择模板成功"); |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | // 处理服务形式 |
| | | formatFn(type) { |
| | | let list = []; |
| | | let formlist = []; |
| | | if (type == 1) { |
| | | this.preachform.forEach((item) => { |
| | | this.checkList.forEach((obj) => { |
| | | if (item.label == obj) { |
| | | list.push(item.value); |
| | | } |
| | | }); |
| | | }); |
| | | console.log(list, "list"); |
| | | this.form.preachform = list.join(","); |
| | | } else { |
| | | console.log(this.form.preachform, "this.form.preachform"); |
| | | formlist = this.form.preachform.split(","); |
| | | console.log(11); |
| | | this.preachform.forEach((item) => { |
| | | formlist.forEach((obj) => { |
| | | if (item.value == obj) { |
| | | list.push(item.label); |
| | | } |
| | | }); |
| | | }); |
| | | this.checkList = list; |
| | | } |
| | | checkboxChange(checked, value) {}, |
| | | // 服务形式选取 |
| | | handleCheckedCitiesChange(row) { |
| | | console.log(row, "服务"); |
| | | this.foncheckList = this.checkboxlist.filter((obj) => |
| | | row.includes(obj.value) |
| | | ); |
| | | }, |
| | | // 服务形式删除 |
| | | handleClosetag(tag) { |
| | | console.log(tag, "tag"); |
| | | console.log(this.foncheckList, "foncheckList"); |
| | | this.checkList = this.checkList.filter((item) => item != tag.value); |
| | | this.foncheckList = this.foncheckList.filter( |
| | | (obj) => obj.value !== tag.value |
| | | ); |
| | | console.log(this.checkList, "checkList"); |
| | | }, |
| | | // 科室处理 |
| | | Departmenttreatment() { |
| | |
| | | longTemp: this.form.longTask, |
| | | deptCode: item, |
| | | tempid: null, |
| | | type: 11, |
| | | type: 21, |
| | | }); |
| | | }); |
| | | |
| | |
| | | longTemp: this.form.longTask, |
| | | deptCode: item, |
| | | tempid: null, |
| | | type: 11, |
| | | type: 21, |
| | | }); |
| | | }); |
| | | console.log(33); |
| | |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | // .leftvlue-jbxx { |
| | | // margin-bottom: 50px; |
| | | // font-size: 20px; |
| | | // span { |
| | | // position: absolute; |
| | | // right: 80px; |
| | | // } |
| | | // .demo-cascader { |
| | | // margin-right: 20px; |
| | | // } |
| | | // .PreviewTemplate { |
| | | // color: #02a7f0; |
| | | // cursor: pointer; |
| | | // font-size: 20px; |
| | | // margin: 0 20px; |
| | | // } |
| | | // } |
| | | |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |