| dist (2).zip | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dist (3).zip | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| dist.zip | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/components/AskRegular/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/components/Regular/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/Satisfaction/configurationmyd/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/followvisit/record/detailpage/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/followvisit/satisfaction/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/patient/patient/hospital.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/patient/propaganda/QuestionnaireTask.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/patient/propaganda/particty.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/repositoryai/templateku/configurat/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
dist (2).zipBinary files differ
dist (3).zipBinary files differ
dist.zipBinary files differ
src/components/AskRegular/index.vue
@@ -14,10 +14,18 @@ ></el-col> <el-col :span="12" ><el-form-item label="异常提醒"> <el-radio-group v-model="radio"> <el-radio :label="3">是</el-radio> <el-radio :label="6">否</el-radio> </el-radio-group> <el-select v-model="item.isabnormal" placeholder="请选择状态"> <el-option :value="0" label="正常" :style="{ color: '#67C23A' }"> <span style="color: #67c23a">● 正常</span> </el-option> <el-option :value="2" label="警告" :style="{ color: '#FFBA00' }"> <span style="color: #ffba00">● 警告</span> </el-option> <el-option :value="1" label="异常" :style="{ color: '#f75c5c' }"> <span style="color: #f75c5c">● 异常</span> </el-option> </el-select> </el-form-item></el-col > <el-col :span="12" v-if="intent" src/components/Regular/index.vue
@@ -18,13 +18,21 @@ </el-input> </el-form-item ></el-col> <el-col :span="12" ><el-form-item label="异常提醒"> <el-radio-group v-model="item.isabnormal"> <el-radio :label="1">是</el-radio> <el-radio :label="0">否</el-radio> </el-radio-group> </el-form-item></el-col > ><el-form-item label="异常提醒"> <el-select v-model="item.isabnormal" placeholder="请选择状态"> <el-option :value="0" label="正常" :style="{ color: '#67C23A' }"> <span style="color: #67c23a">● 正常</span> </el-option> <el-option :value="2" label="警告" :style="{ color: '#FFBA00' }"> <span style="color: #ffba00">● 警告</span> </el-option> <el-option :value="1" label="异常" :style="{ color: '#f75c5c' }"> <span style="color: #f75c5c">● 异常</span> </el-option> </el-select> </el-form-item></el-col > <!-- <el-col :span="12" v-if="intent" ><el-form-item label="选项节点"> <el-input src/views/Satisfaction/configurationmyd/index.vue
@@ -62,9 +62,6 @@ placeholder="请选择模板" clearable filterable :disabled=" !templateForm.templateType || templateOptionsLoading " @change="handleTemplateChange" style="width: 100%" > @@ -315,7 +312,6 @@ filterable clearable multiple collapse-tags style="width: 100%" @change="handleConfigChange(question)" > @@ -616,7 +612,7 @@ changedCount: 0, // 满意度分类ID satisfactionCategoryIds: ["404", "405", "406"], satisfactionCategoryIds: ["404", "405", "406", "10039", "10041", "10042"], // 表单验证规则 configRules: { @@ -670,9 +666,15 @@ // 满意度题目数量 satisfactionQuestionsCount() { return this.questionList.filter((q) => this.satisfactionCategoryIds.includes(q.categoryid?.toString()) ).length; if (this.templateForm.templateType === 1) { return this.questionList.filter((q) => this.satisfactionCategoryIds.includes(q.categoryid?.toString()) ).length; } else if (this.templateForm.templateType === 2) { return this.questionList.filter((q) => this.satisfactionCategoryIds.includes(q.scriptAssortid?.toString()) ).length; } }, // 筛选后的题目列表 @@ -680,9 +682,15 @@ let filtered = this.questionList; // 筛选满意度题目 filtered = filtered.filter((q) => this.satisfactionCategoryIds.includes(q.categoryid?.toString()) ); if (this.templateForm.templateType === 1) { filtered = filtered.filter((q) => this.satisfactionCategoryIds.includes(q.categoryid?.toString()) ); } else if (this.templateForm.templateType === 2) { filtered = filtered.filter((q) => this.satisfactionCategoryIds.includes(q.scriptAssortid?.toString()) ); } // 应用搜索条件 if (this.queryParams.scriptTopic) { @@ -833,6 +841,16 @@ templateStatus: selectedTemplate.isavailable, questionCount: 0, }; } // 加载模板详情数据 this.templateLoading = true; this.loading = true; this.questionList = []; if (this.templateForm.templateType === 1) { this.loadQuestionnaireTemplateDetail(); } else if (this.templateForm.templateType === 2) { this.loadFollowupTemplateDetail(); } } else { this.currentTemplateInfo = null; @@ -992,7 +1010,7 @@ /** 配置变更处理 */ handleConfigChange(question) { this.$nextTick(() => { const index = this.questionList.findIndex((q) => q.id === question.id); const index = this.filteredQuestionList.findIndex((q) => q.id === question.id); if (index !== -1) { const formRef = this.$refs.configForm && this.$refs.configForm[index]; if (formRef) { @@ -1045,7 +1063,9 @@ async saveSingleConfig(question) { if (!question.hasChanges) return; const index = this.questionList.findIndex((q) => q.id === question.id); const index = this.filteredQuestionList.findIndex((q) => q.id === question.id); console.log(index,'filteredQuestionList'); if (index === -1) return; const formRef = this.$refs.configForm && this.$refs.configForm[index]; src/views/followvisit/record/detailpage/index.vue
@@ -1815,8 +1815,10 @@ }; if (item.scriptType == 2 && item.scriptResult[0]) { obj.asrtext = item.scriptResult.join("&"); obj.ivrtext = item.scriptResult.join("&"); } else if (item.scriptType != 2 && item.scriptResult) { obj.asrtext = item.scriptResult; obj.ivrtext = item.scriptResult; } // if (item.isoption == 3) { @@ -2053,6 +2055,7 @@ item.subId = this.id; item.taskid = this.taskid; item.asrtext = item.matchedtext; item.ivrtext = item.matchedtext; if (!item.id) { item.isoperation = 1; } src/views/followvisit/satisfaction/index.vue
@@ -723,6 +723,8 @@ }, /** 导出按钮操作 */ handleExport() { console.log(this.topqueryParams,'打印入参'); this.download( "smartor/satisfaction/export", { src/views/patient/patient/hospital.vue
@@ -121,6 +121,18 @@ </el-col> --> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-plus" size="medium" :disabled="multiple" @click="handleBatchAddTask" > 添加延续护理任务 </el-button> </el-col> <el-col :span="1.5"> <el-button type="danger" plain icon="el-icon-delete" @@ -323,7 +335,114 @@ /> </el-col> </el-row> <!-- 批量添加任务弹窗 --> <el-dialog title="批量添加延续护理" :visible.sync="batchTaskVisible" width="90%" append-to-body > <el-row :gutter="20"> <!-- 左侧:选中患者列表 --> <el-col :span="12"> <div class="batch-patient-section"> <h4>选中患者({{ selectedPatients.length }}人)</h4> <el-table :data="selectedPatients" border style="width: 100%" size="small" > <el-table-column prop="patname" label="姓名" width="100" /> <el-table-column prop="sex" label="性别" width="80"> <template slot-scope="scope"> {{ scope.row.sex === 1 ? "男" : "女" }} </template> </el-table-column> <el-table-column label="出院时间" align="center" key="endtime" prop="endtime" > <template slot-scope="scope"> <span>{{ formatTime(scope.row.endtime) }}</span> </template> </el-table-column> <el-table-column prop="inhospno" label="住院号" /> <el-table-column prop="deptname" label="科室" /> </el-table> </div> </el-col> <!-- 右侧:任务列表 --> <el-col :span="12"> <div class="batch-task-section"> <h4>任务列表(请选择1个任务)</h4> <el-table :data="taskList" border style="width: 100%" size="small" @current-change="handleTaskSelectionChange" highlight-current-row > <el-table-column label="任务名称" fixed align="center" key="taskName" prop="taskName" :show-overflow-tooltip="true" /> <el-table-column label="服务项目" align="center" key="templatename" prop="templatename" :show-overflow-tooltip="true" /> <el-table-column label="创建人" align="center" key="createBy" prop="createBy" :show-overflow-tooltip="true" /> <el-table-column label="创建时间" sortable align="center" prop="createTime" > <template slot-scope="scope"> <span>{{ formatTime(scope.row.createTime) }}</span> </template> </el-table-column> <template #empty> <div class="empty-message"> <i class="el-icon-warning"></i> <span>患者科室无匹配服务</span> </div> </template> </el-table> </div> </el-col> </el-row> <!-- 底部按钮 --> <div slot="footer" class="dialog-footer"> <el-button @click="batchTaskVisible = false">取 消</el-button> <el-button type="primary" :loading="batchLoading" @click="submitBatchTask" >创建任务</el-button > </div> </el-dialog> <!-- 用户导入对话框 --> <el-dialog :title="upload.title" @@ -435,7 +554,7 @@ import Treeselect from "@riophae/vue-treeselect"; import { listDept } from "@/api/system/dept"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import { query360PatInfo } from "@/api/AiCentre/index"; import { query360PatInfo, getTasklist, addSubtask } from "@/api/AiCentre/index"; import store from "@/store"; @@ -470,6 +589,12 @@ // 默认密码 initPassword: undefined, amendtag: false, //是否修改 // 批量任务相关数据 batchTaskVisible: false, // 弹窗可见性 selectedPatients: [], // 选中的患者列表 taskList: [], // 任务列表 selectedTask: null, // 选中的任务 batchLoading: false, // 批量提交加载状态 // 日期范围 dateRange: [], source: [ @@ -669,6 +794,144 @@ } }); }, /** 批量添加任务按钮点击 */ handleBatchAddTask() { // 校验是否选中患者 if (this.ids.length === 0) { this.$modal.msgWarning("请至少选中1名患者"); return; } // 获取选中患者的科室信息 const patientDepts = new Set(); let deptcode = ""; this.ids.forEach((patId) => { const patient = this.userList.find((item) => item.patid === patId); if (patient) { patientDepts.add(patient.deptname); deptcode = patient.deptcode; } }); // 获取选中患者列表 this.selectedPatients = this.userList.filter((item) => this.ids.includes(item.patid) ); // 显示弹窗 this.batchTaskVisible = true; // 获取任务列表 this.loadTaskList(deptcode); }, /** 加载任务列表 */ loadTaskList(deptcode) { this.batchLoading = true; let topqueryParams = { pageNum: 1, pageSize: 100, // 设置较大的分页获取更多任务 type: 2, // 根据实际情况调整 }; getTasklist(topqueryParams) .then((response) => { this.taskList = response.rows; this.batchLoading = false; if (this.taskList.length === 0) { this.$modal.msgWarning("当前科室无可用任务"); } }) .catch((error) => { this.$modal.msgError("获取任务列表失败:" + error.message); this.batchLoading = false; }); }, /** 处理任务选择变化 */ handleTaskSelectionChange(currentRow) { this.selectedTask = currentRow; }, /** 批量提交任务 */ async submitBatchTask() { // 校验是否选中任务 if (!this.selectedTask) { this.$modal.msgWarning("请选择1个任务"); return; } this.batchLoading = true; const successPatients = []; const failedPatients = []; const errorMessages = []; try { // 遍历选中的患者,逐个调用接口 for (const patient of this.selectedPatients) { const params = { taskid: this.selectedTask.taskid, type: this.selectedTask.type, taskName: this.selectedTask.taskName, serviceType: this.selectedTask.serviceType, preachform: this.selectedTask.preachform, templateid: this.selectedTask.templateid, libtemplateid: this.selectedTask.libtemplateid, sendstate: 2, ...patient, sendname: patient.patname, endtime: patient.endtime ? patient.endtime + " 00:00:00" : "", leavediagname: patient.leavediagname || patient.diagname || "", age: patient.age || "", }; try { const response = await addSubtask(params); if (response.code === 200) { successPatients.push(patient.patname); } else { failedPatients.push(patient.patname); errorMessages.push( `${patient.patname}: ${response.msg || "添加失败"}` ); } } catch (error) { failedPatients.push(patient.patname); errorMessages.push( `${patient.patname}: ${error.message || "网络错误"}` ); } } // 显示处理结果 if (failedPatients.length === 0) { this.$modal.msgSuccess( `成功为 ${successPatients.length} 名患者添加任务` ); } else { this.$modal.msgWarning( `成功添加 ${successPatients.length} 人,失败 ${failedPatients.length} 人。` + (errorMessages.length > 0 ? `失败原因:${errorMessages.join("; ")}` : "") ); } this.batchTaskVisible = false; this.getList(); // 刷新患者列表 } catch (error) { this.$modal.msgError("批量添加任务过程中出错:" + error.message); } finally { this.batchLoading = false; } }, /** 格式化时间 */ formatTime(time) { if (!time) return ""; return time; }, /** 查询标签列表 */ gettabList() { const tagqueryParams = { @@ -777,8 +1040,8 @@ leavehospitaldistrictcodes: [], }; this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( (obj) => obj.deptCode ); (obj) => obj.deptCode ); this.handleQuery(); }, // 多选框选中数据 @@ -949,6 +1212,43 @@ } } .button-textsc { color: #3664D9; color: #3664d9; } // 批量任务弹窗样式 .batch-patient-section, .batch-task-section { h4 { margin: 0 0 10px 0; color: #606266; font-size: 16px; } } .empty-message { display: flex; flex-direction: column; align-items: center; padding: 20px; color: #909399; i { font-size: 24px; margin-bottom: 8px; } } .dialog-footer { display: flex; justify-content: flex-end; padding-top: 20px; border-top: 1px solid #ebeef5; } // 响应式调整 @media screen and (max-width: 1200px) { .batch-patient-section, .batch-task-section { margin-bottom: 20px; } } </style> src/views/patient/propaganda/QuestionnaireTask.vue
@@ -1299,6 +1299,10 @@ this.form.serviceType == 15 ) { this.checkboxlist = [ { value: "1", label: "人工", }, { value: "3", label: "智能语音", src/views/patient/propaganda/particty.vue
@@ -1331,6 +1331,10 @@ ]; } else if (this.form.serviceType == 6) { this.checkboxlist = [ { value: "1", label: "人工", }, { value: "3", label: "智能语音", src/views/repositoryai/templateku/configurat/index.vue
@@ -1467,7 +1467,7 @@ illnesslistget, getillness, getgenerallist, depthospgetsondel depthospgetsondel, } from "@/api/AiCentre/index"; import OptionalForm from "@/components/OptionalForm"; //正则组件 import { getToken } from "@/utils/auth"; @@ -1510,7 +1510,9 @@ ruleForm: { templateName: "", revisitBefore: "亲爱的患者/家属,我们是"+localStorage.getItem("orgname")+"的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。", "亲爱的患者/家属,我们是" + localStorage.getItem("orgname") + "的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。", revisitAfter: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!", ivrLibaTemplateTagList: [], @@ -1627,7 +1629,7 @@ this.auxiliary(); this.getDeptTree(); this.mode = store.getters.mode; console.log(this.mode,'this.mode'); console.log(this.mode, "this.mode"); this.usable = store.getters.usable; this.required = store.getters.required; this.valuetype = store.getters.valuetype; @@ -1704,9 +1706,9 @@ console.log(2211); this.ruleForm = res.data; if (this.ruleForm.deptNames) console.log(this.ruleForm.suitway,'suitway'); console.log(this.ruleForm.suitway, "suitway"); this.ruleForm.suitway = this.ruleForm.suitway.split(","); console.log(this.ruleForm.suitway,'suitway'); console.log(this.ruleForm.suitway, "suitway"); if (this.ruleForm.campus) this.ruleForm.campus = this.ruleForm.campus.split(","); this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(","); @@ -2113,6 +2115,7 @@ console.log(res, "详情"); res.data.isoperation = 1; res.data.pid = this.ruleForm.id; res.data.scriptAssortid = res.data.assortid; res.data.ivrLibaScriptTargetoptionList.forEach((item) => { item.isoperation = 1; }); @@ -2123,7 +2126,7 @@ }, handleDelete(row) { this.$modal .confirm('是否确认删除问题:"' + row.scriptTopic + '?') .confirm('是否确认删除问题:"' + row.scriptTopic + "?") .then(() => { this.ruleForm.ivrLibaTemplateScriptVOList.splice( this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row), @@ -2195,7 +2198,7 @@ } else { item.nextScriptno = item.sort + 1; } if (item.ivrLibaScriptTargetoptionList&&!item.branchFlag) { if (item.ivrLibaScriptTargetoptionList && !item.branchFlag) { item.ivrLibaScriptTargetoptionList.forEach((items) => { items.nextQuestion = Number(item.sort) + 1; });