| | |
| | | plain |
| | | icon="el-icon-warning-outline" |
| | | size="medium" |
| | | @click="toleadExport(1)" |
| | | @click="toleadExport(1, 1)" |
| | | >执行失败</el-button |
| | | > |
| | | </div> |
| | |
| | | plain |
| | | icon="el-icon-warning" |
| | | size="medium" |
| | | @click="toleadExport(2)" |
| | | @click="toleadExport(2, 1)" |
| | | >结果异常</el-button |
| | | > |
| | | </div> |
| | |
| | | prop="drname" |
| | | /> |
| | | <el-table-column |
| | | label="责任护士" |
| | | width="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> |
| | | <el-table-column |
| | | label="经管医生" |
| | | align="center" |
| | | key="managementDoctor" |
| | | prop="managementDoctor" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水市中医院'" |
| | | label="随访人员" |
| | | align="center" |
| | |
| | | prop="sfzh" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="责任护士" |
| | | width="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> |
| | | <el-table-column |
| | | label="经管医生" |
| | | align="center" |
| | | key="managementDoctor" |
| | | prop="managementDoctor" |
| | | width="120" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="病历号" |
| | | align="center" |
| | |
| | | @click="handleUpdate(scope.row)" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>患者过滤</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | v-if="orgname == '南华大学附属第一医院'" |
| | | @click="handleTransferOpen(scope.row)" |
| | | ><span class="button-textxgc" |
| | | ><i class="el-icon-sort"></i>变更科/区</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 修改发送时间对话框 --> |
| | | <el-dialog |
| | | title="发送时间设置" |
| | | :visible.sync="modificationVisible" |
| | | width="45%" |
| | | > |
| | | <div style="margin-bottom: 20px; color: red"> |
| | | 统一修改当天未发送的任务时间 |
| | | </div> |
| | | |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="120px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="发送日期"> |
| | | <el-date-picker |
| | | v-model="ruleForm.value1" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="时间段" prop="type"> |
| | | <el-checkbox-group v-model="ruleForm.type"> |
| | | <el-checkbox label="上午" name="type"></el-checkbox> |
| | | <el-checkbox label="下午" name="type"></el-checkbox> |
| | | <el-checkbox label="晚上" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="上午时间区间" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value2" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下午时间区间" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value3" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="晚上时间区间" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value4" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | placeholder="选择时间范围" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="modificationVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="modificationVisible = false" |
| | | >确 定</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 再次随访 --> |
| | | <el-dialog title="患者再次随访" :visible.sync="dialogFormVisible"> |
| | | <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px"> |
| | |
| | | <el-button type="primary" @click="setupsubtask">确认创建服务</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 变更科室/病区弹窗 --> |
| | | <el-dialog |
| | | title="变更科室/病区" |
| | | :visible.sync="transferDialogVisible" |
| | | width="480px" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form :model="transferForm" label-width="100px"> |
| | | <el-form-item label="当前科室"> |
| | | <span>{{ transferForm.currentDeptName || "-" }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="当前病区"> |
| | | <span>{{ transferForm.currentWardName || "-" }}</span> |
| | | </el-form-item> |
| | | <el-form-item label="目标科室"> |
| | | <el-cascader |
| | | v-model="transferDeptValue" |
| | | :options="deptOptionsks" |
| | | :props="cascaderPropsa" |
| | | placeholder="请选择目标科室" |
| | | filterable |
| | | clearable |
| | | style="width: 100%" |
| | | @change="handleDeptCascaderChange" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="目标病区"> |
| | | <el-cascader |
| | | v-model="transferWardValue" |
| | | :options="deptOptionsbq" |
| | | :props="cascaderPropsa" |
| | | placeholder="请选择目标病区" |
| | | filterable |
| | | clearable |
| | | style="width: 100%" |
| | | @change="handleWardCascaderChange" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="transferDialogVisible = false">取 消</el-button> |
| | | <el-button |
| | | type="primary" |
| | | :loading="transferLoading" |
| | | @click="handleTransferSubmit" |
| | | > |
| | | 确认变更 |
| | | </el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | import { |
| | | getTaskservelist, |
| | |
| | | addserviceSubtask, |
| | | query360PatInfo, |
| | | addsatisfaction, |
| | | transferDept, |
| | | query360PatInfonh, |
| | | } from "@/api/AiCentre/index"; |
| | | import { alterpatient, particularpatient } from "@/api/patient/homepage"; |
| | |
| | | title: "新增影像随访", |
| | | // 是否显示修改、添加弹出层 |
| | | addalteropen: false, |
| | | // 修改发送时间对话框 |
| | | modificationVisible: false, |
| | | |
| | | // 部门名称 |
| | | deptName: undefined, |
| | | // 默认密码 |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstateView: 1, |
| | | sort: localStorage.getItem("orgname") == "丽水市中医院" ? 8 : 1, //0 出院时间(正序) 1 出院时间(倒序) 2 发送时间(正序) 3 发送时间(倒序) 7应随访日期(倒序) 应随访日期(正序) |
| | | sort: |
| | | localStorage.getItem("orgname") == "丽水市中医院" |
| | | ? 8 |
| | | : localStorage.getItem("orgname") == "景宁畲族自治县人民医院" |
| | | ? 2 |
| | | : 1, //0 出院时间(正序) 1 出院时间(倒序) 2 发送时间(正序) 3 发送时间(倒序) 7应随访日期(倒序) 应随访日期(正序) |
| | | serviceType: 2, |
| | | sendstate: null, |
| | | searchscope: 3, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | managementDoctor: |
| | | localStorage.getItem("orgname") == "缙云县人民医院" |
| | | ? store.getters.nickName |
| | | : "", |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | |
| | | leavehospitaldistrictcode: "", |
| | | serviceState: [], |
| | | checkboxlist: [], |
| | | // 变更科室/病区 |
| | | transferDialogVisible: false, |
| | | transferForm: { |
| | | subId: null, |
| | | leavelDeptCode: "", |
| | | leavelDeptName: "", |
| | | leavehospitaldistrictcode: "", |
| | | leavehospitaldistrictname: "", |
| | | }, |
| | | deptOptionsks: [], |
| | | deptOptionsbq: [], |
| | | transferDeptValue: [], |
| | | transferWardValue: [], |
| | | cascaderPropsa: { |
| | | value: "deptCode", |
| | | label: "label", |
| | | checkStrictly: true, |
| | | }, |
| | | transferLoading: false, |
| | | // 表单校验 |
| | | rules: {}, |
| | | }; |
| | |
| | | } |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | const item = this.checkboxlist.find( |
| | |
| | | return `${year}-${month}-${day}`; |
| | | }, |
| | | affiliation() { |
| | | this.resetQuerykj(); |
| | | this.topqueryParams.managementDoctorCode = store.getters.hisUserId; |
| | | this.getList(1); |
| | | }, |
| | | onthatday() { |
| | | this.resetQuerykj(); |
| | | |
| | | this.topqueryParams.startSendDateTime = this.getCurrentDate(); |
| | | this.topqueryParams.endSendDateTime = this.getCurrentDate(); |
| | | this.getList(1); |
| | |
| | | const now = new Date(); |
| | | return now.toISOString().slice(0, 10); // 截取前10个字符,即 YYYY-MM-DD |
| | | }, |
| | | |
| | | buidegetTasklist(type) { |
| | | if (type) { |
| | | this.resetQuerykj(); |
| | | } |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(1); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuerykj() { |
| | | this.dateRange = []; |
| | | this.dateRangefs = []; |
| | | this.serviceStatusValue = null; |
| | | this.topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sendstateView: null, |
| | | sort: 2, //0 出院时间(正序) 1 出院时间(倒序) 2 发送时间(正序) 3 发送时间(倒序) |
| | | serviceType: 2, |
| | | searchscope: 3, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | }, |
| | | handleSelectionChange(rows) { |
| | | // ✅ 如果是恢复选中状态触发的,直接返回 |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 设置发送时间 |
| | | Sendtimesetting() { |
| | | this.modificationVisible = true; |
| | | }, |
| | | |
| | | // 跳转详情页 |
| | | Seedetails(row) { |
| | | let type = ""; |
| | |
| | | this.Labelchange = true; |
| | | }, |
| | | // 便捷按钮 |
| | | toleadExport(too) { |
| | | console.log(too, "too"); |
| | | toleadExport(too, type) { |
| | | if (type) { |
| | | this.resetQuerykj(); |
| | | } |
| | | |
| | | if (too == 1) { |
| | | this.topqueryParams.sendstate = 4; |
| | |
| | | this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | this.getEndOfDay() |
| | | ); |
| | | console.log(1111, this.topqueryParams.endSendDateTime); |
| | | |
| | | this.topqueryParams.excep = null; |
| | | this.topqueryParams.sendstate = 2; |
| | |
| | | const seconds = String(now.getSeconds()).padStart(2, "0"); |
| | | |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | }, |
| | | |
| | | // ---------- 变更科室/病区 ---------- |
| | | handleTransferOpen(row) { |
| | | if (!this.deptOptionsks.length) { |
| | | deptTreeSelect(1).then((res) => { |
| | | this.deptOptionsks = res.data || []; |
| | | }); |
| | | deptTreeSelect(2).then((res) => { |
| | | this.deptOptionsbq = res.data || []; |
| | | }); |
| | | } |
| | | this.transferForm = { |
| | | subId: row.id || row.subtaskid, |
| | | leavelDeptCode: "", |
| | | leavelDeptName: "", |
| | | leavehospitaldistrictcode: "", |
| | | leavehospitaldistrictname: "", |
| | | currentDeptName: row.deptname || row.deptName || "", |
| | | currentWardName: |
| | | row.leavehospitaldistrictname || row.leavehospitaldistrictName || "", |
| | | }; |
| | | this.transferDeptValue = []; |
| | | this.transferWardValue = []; |
| | | this.transferDialogVisible = true; |
| | | }, |
| | | handleDeptCascaderChange(val) { |
| | | if (val && val.length) { |
| | | this.transferForm.leavelDeptCode = val[val.length - 1]; |
| | | // 从选项树中查找对应名称 |
| | | const node = this.findCascaderNode(this.deptOptionsks, this.transferForm.leavelDeptCode); |
| | | this.transferForm.leavelDeptName = node ? node.label : ''; |
| | | } else { |
| | | this.transferForm.leavelDeptCode = ''; |
| | | this.transferForm.leavelDeptName = ''; |
| | | } |
| | | }, |
| | | handleWardCascaderChange(val) { |
| | | if (val && val.length) { |
| | | this.transferForm.leavehospitaldistrictcode = val[val.length - 1]; |
| | | const node = this.findCascaderNode(this.deptOptionsbq, this.transferForm.leavehospitaldistrictcode); |
| | | this.transferForm.leavehospitaldistrictname = node ? node.label : ''; |
| | | } else { |
| | | this.transferForm.leavehospitaldistrictcode = ''; |
| | | this.transferForm.leavehospitaldistrictname = ''; |
| | | } |
| | | }, |
| | | findCascaderNode(options, code) { |
| | | for (const item of options) { |
| | | if (item.deptCode === code || item.value === code) return item; |
| | | if (item.children) { |
| | | const found = this.findCascaderNode(item.children, code); |
| | | if (found) return found; |
| | | } |
| | | } |
| | | return null; |
| | | }, |
| | | handleTransferSubmit() { |
| | | const hasDept = !!this.transferForm.leavelDeptCode; |
| | | const hasWard = !!this.transferForm.leavehospitaldistrictcode; |
| | | if (!hasDept && !hasWard) { |
| | | this.$modal.msgError("请至少选择目标科室或目标病区"); |
| | | return; |
| | | } |
| | | console.log(this.transferForm); |
| | | |
| | | // 组装变更提示文本 |
| | | const deptName = this.transferForm.leavelDeptName || "不变"; |
| | | const wardName = this.transferForm.leavehospitaldistrictname || "不变"; |
| | | const tip = `确认将科室变更为"${deptName}"、病区变更为"${wardName}"?`; |
| | | this.$modal |
| | | .confirm(tip, "变更确认") |
| | | .then(() => { |
| | | this.transferLoading = true; |
| | | transferDept(this.transferForm) |
| | | .then((res) => { |
| | | if (res.code === 200) { |
| | | this.$modal.msgSuccess("科室/病区变更成功"); |
| | | this.transferDialogVisible = false; |
| | | this.getList(); |
| | | } else { |
| | | this.$modal.msgError(res.msg || "变更失败"); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.$modal.msgError("变更失败,请重试"); |
| | | }) |
| | | .finally(() => { |
| | | this.transferLoading = false; |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .button-textxgc { |
| | | color: #9054e4; |
| | | } |
| | | .purple-button.is-disabled { |
| | | background-color: #d8b4fe; |
| | | border-color: #d8b4fe; |