| | |
| | | handleOptionChange( |
| | | $event, |
| | | index, |
| | | item.svyTaskTemplateTargetoptions, |
| | | item.svyLibTemplateTargetoptions, |
| | | item |
| | | ) |
| | | " |
| | |
| | | <el-radio |
| | | v-for="( |
| | | items, indexs |
| | | ) in item.svyTaskTemplateTargetoptions" |
| | | ) in item.svyLibTemplateTargetoptions" |
| | | :class="items.isabnormal ? 'red-star' : ''" |
| | | :key="indexs" |
| | | :label="items.optioncontent" |
| | | @click.native.prevent=" |
| | | handleRadioToggle(item, items.optioncontent) |
| | | " |
| | | >{{ items.optioncontent }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | |
| | | @change="$forceUpdate()" |
| | | v-for="( |
| | | items, indexs |
| | | ) in item.svyTaskTemplateTargetoptions" |
| | | ) in item.svyLibTemplateTargetoptions" |
| | | :key="indexs" |
| | | :label="items.optioncontent" |
| | | > |
| | |
| | | v-for="(items, index) in item.scriptResult" |
| | | :key="items" |
| | | :label="items" |
| | | @click.native.prevent=" |
| | | handleRadioToggle(item, items.optioncontent) |
| | | " |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | |
| | | <el-divider></el-divider> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="随访方式" prop="date1"> |
| | | <el-form-item label="随访方式" prop="visitType"> |
| | | <el-select |
| | | v-model="form.visitType" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | @change="visitChange" |
| | | placeholder="请选择随访方式(依出院时间技计算)" |
| | | placeholder="请选择随访方式(依出院时间计算)" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | |
| | | align="right" |
| | | v-model="form.date1" |
| | | class="custom-disabled" |
| | | value-format="yyyy-MM-dd" |
| | | @change="checkFollowupDate" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | :visible.sync="CaldialogVisible" |
| | | width="60%" |
| | | > |
| | | <CallCenterLs ref="callCenterModal" :initial-phone="currentPhoneNumber" /> |
| | | <CallCenterLs |
| | | ref="callCenterModal" |
| | | :initial-phone="currentPhoneNumber" |
| | | /> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | |
| | | resource: [ |
| | | { required: true, message: "请选择随访方式", trigger: "change" }, |
| | | ], |
| | | date1: [{ required: true, message: "请选择随访时间", trigger: "blur" }], |
| | | date1: [ |
| | | { required: true, message: "请选择随访时间", trigger: "blur" }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(new Error("请选择随访时间")); |
| | | } |
| | | const selectedDate = new Date(value); |
| | | const now = new Date(); |
| | | if (selectedDate < now) { |
| | | return callback(new Error("随访时间不能早于当前日期")); |
| | | } |
| | | callback(); |
| | | }, |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | }, |
| | | userrules: { |
| | | telcode: [{ validator: validatePhone, trigger: "blur" }], |
| | |
| | | // 禁用今天及之前的日期 |
| | | return time.getTime() < Date.now() - 24 * 60 * 60 * 1000; |
| | | }, |
| | | shortcuts: [ |
| | | { |
| | | text: "七天后", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() + 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "15天后", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() + 3600 * 1000 * 24 * 15); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "一个月后", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() + 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "三个月后", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() + 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "六个月后", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() + 3600 * 1000 * 24 * 180); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | { |
| | | text: "一年后", |
| | | onClick(picker) { |
| | | const date = new Date(); |
| | | date.setTime(date.getTime() + 3600 * 1000 * 24 * 365); |
| | | picker.$emit("pick", date); |
| | | }, |
| | | }, |
| | | ], |
| | | // shortcuts: [ |
| | | // { |
| | | // text: "七天后", |
| | | // onClick(picker) { |
| | | // const date = new Date(); |
| | | // date.setTime(date.getTime() + 3600 * 1000 * 24 * 7); |
| | | // picker.$emit("pick", date); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // text: "15天后", |
| | | // onClick(picker) { |
| | | // const date = new Date(); |
| | | // date.setTime(date.getTime() + 3600 * 1000 * 24 * 15); |
| | | // picker.$emit("pick", date); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // text: "一个月后", |
| | | // onClick(picker) { |
| | | // const date = new Date(); |
| | | // date.setTime(date.getTime() + 3600 * 1000 * 24 * 30); |
| | | // picker.$emit("pick", date); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // text: "三个月后", |
| | | // onClick(picker) { |
| | | // const date = new Date(); |
| | | // date.setTime(date.getTime() + 3600 * 1000 * 24 * 90); |
| | | // picker.$emit("pick", date); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // text: "六个月后", |
| | | // onClick(picker) { |
| | | // const date = new Date(); |
| | | // date.setTime(date.getTime() + 3600 * 1000 * 24 * 180); |
| | | // picker.$emit("pick", date); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // text: "一年后", |
| | | // onClick(picker) { |
| | | // const date = new Date(); |
| | | // date.setTime(date.getTime() + 3600 * 1000 * 24 * 365); |
| | | // picker.$emit("pick", date); |
| | | // }, |
| | | // }, |
| | | // ], |
| | | }, |
| | | options: [ |
| | | { |
| | |
| | | }, |
| | | // 再次随访时间选取 |
| | | visitChange(value) { |
| | | // 根据选择的随访方式设置时间 |
| | | if (!this.form.endtime) { |
| | | this.$message.warning("请先确认出院时间"); |
| | | this.form.visitType = ""; |
| | | this.$refs.zcform.clearValidate(["visitType"]); |
| | | return; |
| | | } |
| | | |
| | | const dischargeDate = new Date(this.form.endtime); |
| | | const now = new Date(); |
| | | let followupDate = new Date(dischargeDate); |
| | | |
| | | // 根据选择的随访方式计算随访日期 |
| | | if (value.includes("七天后")) { |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 7 |
| | | ); |
| | | followupDate.setDate(dischargeDate.getDate() + 7); |
| | | } else if (value.includes("15天后")) { |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 15 |
| | | ); |
| | | followupDate.setDate(dischargeDate.getDate() + 15); |
| | | } else if (value.includes("一个月后")) { |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 30 |
| | | ); |
| | | followupDate.setMonth(dischargeDate.getMonth() + 1); |
| | | } else if (value.includes("三个月后")) { |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 90 |
| | | ); |
| | | followupDate.setMonth(dischargeDate.getMonth() + 3); |
| | | } else if (value.includes("六个月后")) { |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 180 |
| | | ); |
| | | followupDate.setMonth(dischargeDate.getMonth() + 6); |
| | | } else if (value.includes("一年后")) { |
| | | this.form.date1 = new Date( |
| | | Date.parse(this.form.endtime) + 3600 * 1000 * 24 * 365 |
| | | followupDate.setFullYear(dischargeDate.getFullYear() + 1); |
| | | } |
| | | |
| | | if (followupDate < now) { |
| | | this.$message.warning( |
| | | `计算出的随访时间 ${this.formatTime(followupDate)} 已过期` |
| | | ); |
| | | this.form.visitType = ""; |
| | | this.$refs.zcform.clearValidate(["visitType", "date1"]); |
| | | return; |
| | | } |
| | | |
| | | this.form.date1 = this.formatTime(followupDate); |
| | | |
| | | this.$refs.zcform.clearValidate(["date1"]); |
| | | }, |
| | | // 检查随访日期是否有效 |
| | | checkFollowupDate(date) { |
| | | console.log(date); |
| | | |
| | | if (!date) { |
| | | this.form.date1 = ''; |
| | | this.$refs.zcform.clearValidate(["date1"]); |
| | | return; |
| | | } |
| | | |
| | | const selectedDate = new Date(date); |
| | | const now = new Date(); |
| | | |
| | | if (selectedDate < now) { |
| | | this.$message.warning("随访时间不能早于当前日期"); |
| | | this.form.date1 = ''; |
| | | this.$refs.zcform.validateField("date1"); // 触发验证 |
| | | } |
| | | }, |
| | | |
| | | // 获取语音数据 |
| | | getPersonVoices(id) { |
| | | let obj = { |
| | |
| | | return; |
| | | } |
| | | } |
| | | var objs = item.svyTaskTemplateTargetoptions.find( |
| | | var objs = item.svyLibTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | if (obj) { |
| | |
| | | this.$modal |
| | | .confirm( |
| | | '任务保存成功是否针对患者:"' + |
| | | this.logsheetlist[0].sendname + |
| | | this.userform.name + |
| | | '"再次随访?', |
| | | "确认", |
| | | { |
| | |
| | | // 呼叫判断 |
| | | if (this.orgname == "景宁畲族自治县人民医院") { |
| | | this.CaldialogVisible = true; |
| | | return |
| | | return; |
| | | } |
| | | |
| | | this.callType = type; |
| | |
| | | formtidy() { |
| | | this.form.visitType2 = this.form.visitType; |
| | | this.form.date2 = this.form.longSendTime; |
| | | // this.form.date1 = this.setCurrentDate(); |
| | | this.form.remark2 = this.form.remark; |
| | | }, |
| | | setCurrentDate() { |
| | | // 获取当前日期并格式化为 yyyy-MM-dd |
| | | const today = new Date(); |
| | | const year = today.getFullYear(); |
| | | const month = String(today.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(today.getDate()).padStart(2, "0"); |
| | | return `${year}-${month}-${day}`; |
| | | }, |
| | | // 获取患者记录 |
| | | getTaskservelist(id) { |
| | |
| | | this.$modal |
| | | .confirm('是否查看任务为"' + row.taskName + '"的服务详情数据?') |
| | | .then(() => { |
| | | if (row.preachformson) { |
| | | if (row.preachformson.includes("3")) { |
| | | this.Voicetype = 1; |
| | | } |
| | | } |
| | | let type = ""; |
| | | console.log(row, "rwo"); |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | this.taskid = row.taskid; |
| | | this.id = row.id; |
| | | this.patid = row.patid; |
| | |
| | | (item) => item.optioncontent == a |
| | | ); |
| | | } else { |
| | | var obj = this.tableDatatop[b].svyTaskTemplateTargetoptions.find( |
| | | var obj = this.tableDatatop[b].svyLibTemplateTargetoptions.find( |
| | | (item) => item.optioncontent == a |
| | | ); |
| | | } |
| | |
| | | this.tableDatatop[b].isabnormal = false; |
| | | } |
| | | this.$forceUpdate(); |
| | | }, |
| | | // 新增的切换选中/取消选中方法 |
| | | handleRadioToggle(questionItem, optionValue) { |
| | | // 如果点击的是当前已选中的选项,则取消选中 |
| | | if (questionItem.scriptResult === optionValue) { |
| | | questionItem.scriptResult = ""; // 清空选中值 |
| | | // 同时重置与选项相关的状态 |
| | | questionItem.isabnormal = false; |
| | | questionItem.showAppendInput = false; |
| | | // 注意:取消选中时,我们通常不希望触发题目跳转逻辑,所以直接返回 |
| | | // 如果需要,可以在这里添加取消选中后的特定逻辑,例如重置题目序列 |
| | | } else { |
| | | // 如果点击的是未选中的选项,则通过更改绑定值来触发原始的 handleOptionChange 方法 |
| | | // 这里只需要改变 v-model 绑定的值,change事件会自动触发 |
| | | questionItem.scriptResult = optionValue; |
| | | // 后续的跳转等复杂逻辑会在 handleOptionChange 中正常执行 |
| | | } |
| | | }, |
| | | // 在methods部分,修改handleOptionChange方法: |
| | | handleOptionChange(selectedOption, questionIndex, options, a) { |
| | |
| | | }, |
| | | overdata() { |
| | | this.tableDatatop.forEach((item, index) => { |
| | | var obj = item.svyTaskTemplateTargetoptions.find( |
| | | var obj = item.svyLibTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | if (obj) { |