| | |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | v-if=" |
| | | orgname == '景宁畲族自治县人民医院' || |
| | | orgname == '丽水市中医院' |
| | | " |
| | | label="拨号状态" |
| | | width="120" |
| | | align="center" |
| | | key="isManuallyCalled" |
| | | prop="isManuallyCalled" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tag |
| | | v-if="Number(scope.row.isManuallyCalled) > 0" |
| | | type="success" |
| | | :disable-transitions="false" |
| | | >拨通{{ scope.row.isManuallyCalled }}次</el-tag |
| | | > |
| | | <el-tag v-else type="info" :disable-transitions="false" |
| | | >未拨通</el-tag |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="finishtime" |
| | | align="center" |
| | |
| | | > |
| | | </el-table-column> |
| | | |
| | | |
| | | |
| | | <el-table-column |
| | | prop="bankcardno" |
| | | align="center" |
| | |
| | | v-if=" |
| | | (orgname == '南华大学附属第一医院' || |
| | | orgname == '丽水市第二人民医院' || |
| | | orgname == '缙云县人民医院'|| |
| | | orgname == '丽水市妇幼保健院'|| |
| | | orgname == '缙云县人民医院' || |
| | | orgname == '丽水市妇幼保健院' || |
| | | orgname == '松阳县中医医院') && |
| | | !Voicetype |
| | | " |
| | |
| | | <div class="collapse-section"> |
| | | <el-collapse v-model="collapseActive" accordion> |
| | | <el-collapse-item title="患者档案信息" name="patient"> |
| | | <el-form ref="userform2" :model="userform" label-width="90px" size="small"> |
| | | <el-form |
| | | ref="userform2" |
| | | :model="userform" |
| | | label-width="90px" |
| | | size="small" |
| | | > |
| | | <el-row :gutter="16"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="患者姓名"> |
| | | <el-input v-model="userform.name" placeholder="请输入姓名" maxlength="30"></el-input> |
| | | <el-input |
| | | v-model="userform.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="性别"> |
| | | <el-select v-model="userform.sex" placeholder="请选择" style="width: 100%"> |
| | | <el-select |
| | | v-model="userform.sex" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | | <el-option label="男" :value="1"></el-option> |
| | | <el-option label="女" :value="2"></el-option> |
| | | </el-select> |
| | |
| | | <el-row :gutter="16"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="年龄"> |
| | | <el-input v-model="userform.age" placeholder="请输入年龄" maxlength="20"></el-input> |
| | | <el-input |
| | | v-model="userform.age" |
| | | placeholder="请输入年龄" |
| | | maxlength="20" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="联系方式"> |
| | | <el-input v-model="userform.telcode" placeholder="请输入联系方式" maxlength="20"></el-input> |
| | | <el-input |
| | | v-model="userform.telcode" |
| | | placeholder="请输入联系方式" |
| | | maxlength="20" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="亲属电话"> |
| | | <el-input v-model="userform.relativetelcode" placeholder="请输入亲属联系方式" maxlength="20"></el-input> |
| | | <el-input |
| | | v-model="userform.relativetelcode" |
| | | placeholder="请输入亲属联系方式" |
| | | maxlength="20" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="诊断名称"> |
| | | <el-input v-model="form.leavediagname" placeholder="请输入诊断" maxlength="50"></el-input> |
| | | <el-input |
| | | v-model="form.leavediagname" |
| | | placeholder="请输入诊断" |
| | | maxlength="50" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="出生地"> |
| | | <el-input v-model="userform.birthplace" placeholder="国、省、地市、区县、街道等" maxlength="50"></el-input> |
| | | <el-input |
| | | v-model="userform.birthplace" |
| | | placeholder="国、省、地市、区县、街道等" |
| | | maxlength="50" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="16"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="居住地"> |
| | | <el-input v-model="userform.placeOfResidence" placeholder="国、省、地市、区县、街道等" maxlength="50"></el-input> |
| | | <el-input |
| | | v-model="userform.placeOfResidence" |
| | | placeholder="国、省、地市、区县、街道等" |
| | | maxlength="50" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="投诉建议" name="advice" v-if="orgname=='缙云县人民医院'"> |
| | | <el-collapse-item |
| | | title="投诉建议" |
| | | name="advice" |
| | | v-if="orgname == '缙云县人民医院'" |
| | | > |
| | | <AdviceList :subid="taskid" :taskid="id" :patid="patid" /> |
| | | </el-collapse-item> |
| | | </el-collapse> |
| | | </div> |
| | | |
| | | |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | :visible.sync="CaldialogVisible" |
| | | width="60%" |
| | | > |
| | | <CallCenterLs ref="CallCenterLs" :initial-phone="currentPhoneNumber" /> |
| | | <CallCenterLs |
| | | ref="CallCenterLs" |
| | | :initial-phone="currentPhoneNumber" |
| | | @call-connected="recordCallConnected" |
| | | /> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | |
| | | }, |
| | | // 是否以问卷形式展示(非语音服务,或语音服务但无完整语音数据需手动填报) |
| | | showQuestionnaireForm() { |
| | | return !this.Voicetype ; |
| | | return !this.Voicetype; |
| | | }, |
| | | // 是否为管理员角色 |
| | | isAdmin() { |
| | |
| | | .map((obj) => obj.targetvalue) |
| | | .join("&"); |
| | | } |
| | | console.log(item.targetvalue,'item.targetvalue'); |
| | | console.log(item.targetvalue, "item.targetvalue"); |
| | | |
| | | if (item.targetvalue) { |
| | | item.scriptResult = item.targetvalue.split("&"); |
| | | } |
| | | console.log(item.scriptResult); |
| | | |
| | | }); |
| | | } |
| | | }); |
| | |
| | | this.$modal.msgSuccess("服务保存成功"); |
| | | this.Editsingletasksonyic(this.serviceStates); |
| | | const orgName = localStorage.getItem("orgname"); |
| | | |
| | | if (this.form.isVisitAgain != 1 || this.visitAgain == 1) { |
| | | if ( |
| | | this.form.isVisitAgain != 1 || |
| | | orgName == "丽水市中医院" || |
| | | this.visitAgain == 1 |
| | | ) { |
| | | this.Torouter(); |
| | | return; |
| | | } |
| | |
| | | this.CaldialogVisible = true; |
| | | return; |
| | | } |
| | | // 下方是中医院呼叫 |
| | | // 下方是丽水市中医院 |
| | | if (this.isSipRegistering) { |
| | | this.$message.warning("系统正在初始化,请稍候..."); |
| | | return; |
| | |
| | | this.callStatus = status.type; |
| | | |
| | | if (status.type === "connected") { |
| | | this.currentCall = { |
| | | phone: this.currentPhoneNumber, |
| | | type: this.callType, |
| | | startTime: new Date(), |
| | | }; |
| | | if (!this.currentCall) { |
| | | this.currentCall = { |
| | | phone: this.currentPhoneNumber, |
| | | type: this.callType, |
| | | startTime: new Date(), |
| | | }; |
| | | // 丽水市中医院:电话接通后记录拨打成功次数 |
| | | this.recordCallConnected(); |
| | | } |
| | | } else if (status.type === "ended" || status.type === "failed") { |
| | | this.currentCall = null; |
| | | } |
| | |
| | | if (status.type === "failed") { |
| | | this.$message.error(`呼叫失败: ${status.text}`); |
| | | } |
| | | }, |
| | | // 电话拨打成功后(接通)次数 +1,并通过 Editsingletaskson 更新服务数据 |
| | | // 仅限景宁畲族自治县人民医院与丽水市中医院 |
| | | recordCallConnected() { |
| | | const allowedOrgs = ["景宁畲族自治县人民医院", "丽水市中医院"]; |
| | | if (!allowedOrgs.includes(this.orgname)) return; |
| | | |
| | | getTaskservelist({ |
| | | patid: this.patid, |
| | | subId: this.id, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | const objson = res.rows[0].serviceSubtaskList.find( |
| | | (item) => item.id == this.id |
| | | ); |
| | | if (!objson) return; |
| | | objson.isManuallyCalled = (Number(objson.isManuallyCalled) || 0) + 1; |
| | | Editsingletaskson(objson).then((r) => { |
| | | if (r.code == 200) { |
| | | // 及时更新顶部服务列表与表单中的拨号状态 |
| | | const localRow = (this.logsheetlist || []).find( |
| | | (item) => item.id == this.id |
| | | ); |
| | | if (localRow) { |
| | | localRow.isManuallyCalled = objson.isManuallyCalled; |
| | | } |
| | | if (this.form && this.form.id == this.id) { |
| | | this.form.isManuallyCalled = objson.isManuallyCalled; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // 结束当前通话 |
| | | endCurrentCall() { |
| | |
| | | savequestiondetail(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("服务保存成功"); |
| | | // this.Torouter(); |
| | | |
| | | if ( |
| | | this.form.isVisitAgain != 1 || |
| | | orgName == "丽水市中医院" || |
| | |
| | | this.Torouter(); |
| | | return; |
| | | } |
| | | |
| | | this.$modal |
| | | .confirm( |
| | | '任务保存成功是否针对患者:"' + |
| | |
| | | // 同时重置与选项相关的状态 |
| | | // questionItem.isabnormal = false; |
| | | questionItem.showAppendInput = false; |
| | | questionItem.score = null; // 取消选中后清空题目分数 |
| | | // 注意:取消选中时,我们通常不希望触发题目跳转逻辑,所以直接返回 |
| | | // 如果需要,可以在这里添加取消选中后的特定逻辑,例如重置题目序列 |
| | | } else { |
| | |
| | | // 处理异常状态高亮 |
| | | this.tableDatatop[questionIndex].isabnormal = |
| | | selectedOptionObj.isabnormal; |
| | | |
| | | // 处理分数:把选中选项的 score 带到题目 score 上 |
| | | this.tableDatatop[questionIndex].score = selectedOptionObj.score; |
| | | |
| | | // 处理附加输入框显示 |
| | | |
| | |
| | | if (obj.isabnormal) { |
| | | this.tableDatatop[index].isabnormal = obj.isabnormal; |
| | | } |
| | | // 回显单选题目分数:把已选中选项的 score 带到题目 score 上 |
| | | if (obj.score !== undefined && obj.score !== null) { |
| | | this.tableDatatop[index].score = obj.score; |
| | | } |
| | | this.$forceUpdate(); |
| | | } |
| | | }); |
| | |
| | | |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | }, |
| | | updateScore(a, b, c) {}, |
| | | // 多选:把选中选项的分数累加到题目 score 上 |
| | | updateScore(selectedValues, questionIndex, question) { |
| | | const options = question.svyTaskTemplateTargetoptions || []; |
| | | const score = options.reduce((sum, opt) => { |
| | | if (selectedValues && selectedValues.includes(opt.optioncontent)) { |
| | | return sum + (Number(opt.score) || 0); |
| | | } |
| | | return sum; |
| | | }, 0); |
| | | question.score = score; |
| | | this.$forceUpdate(); |
| | | }, |
| | | // 合并修改相关============================= |
| | | toggleMergeMode() { |
| | | this.isMergeMode = !this.isMergeMode; |