|  |  | 
 |  |  | <template> | 
 |  |  |   <!-- 聊连页面记录 --> | 
 |  |  |   <div class="Followupdetailspage"> | 
 |  |  |   <div class="Followupdetailspage" id="app-container"> | 
 |  |  |     <div class="Followuserinfo"> | 
 |  |  |       <div> | 
 |  |  |         <div class="userinfo-text"> | 
 |  |  | 
 |  |  |             label="姓名" | 
 |  |  |             width="100" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 @click=" | 
 |  |  |                   gettoken360( | 
 |  |  |                     scope.row.sfzh, | 
 |  |  |                     scope.row.drcode, | 
 |  |  |                     scope.row.drname | 
 |  |  |                   ) | 
 |  |  |                 " | 
 |  |  |                 ><span class="button-textsc">{{ | 
 |  |  |                   scope.row.sendname | 
 |  |  |                 }}</span></el-button | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  |             prop="taskName" | 
 |  |  | 
 |  |  |           <div class="headline"> | 
 |  |  |             <div>人工处理</div> | 
 |  |  |             <el-row :gutter="20"> | 
 |  |  |               <el-col :span="12" | 
 |  |  |               <el-col :span="8" | 
 |  |  |                 ><el-form-item label="联系电话"> | 
 |  |  |                   <el-input | 
 |  |  |                     placeholder="联系电话缺失" | 
 |  |  |                     v-model="userform.telcode" | 
 |  |  |                   ></el-input> </el-form-item | 
 |  |  |               ></el-col> | 
 |  |  |               <el-col :span="12" | 
 |  |  |               <el-col :span="8" | 
 |  |  |                 ><el-form-item label="联系人电话"> | 
 |  |  |                   <el-input | 
 |  |  |                     placeholder="联系人电话缺失" | 
 |  |  |                     v-model="userform.relativetelcode" | 
 |  |  |                   ></el-input> </el-form-item | 
 |  |  |               ></el-col> | 
 |  |  |               <el-col :span="8" | 
 |  |  |                 ><el-form-item label="联系人关系"> | 
 |  |  |                   <el-input | 
 |  |  |                     placeholder="联系人关系缺失" | 
 |  |  |                     v-model="userform.relation" | 
 |  |  |                   ></el-input> </el-form-item | 
 |  |  |               ></el-col> | 
 |  |  |             </el-row> | 
 |  |  | 
 |  |  |               <el-button plain type="info" @click="Editsingletaskson('5')" | 
 |  |  |                 >中心随访</el-button | 
 |  |  |               > | 
 |  |  |               <el-button type="primary" round @click="sendAgain()" | 
 |  |  |               <el-button | 
 |  |  |                 type="primary" | 
 |  |  |                 round | 
 |  |  |                 v-if="this.form.isVisitAgain != 2" | 
 |  |  |                 @click="sendAgain()" | 
 |  |  |                 >再次随访</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  | 
 |  |  |                         maxlength="30" | 
 |  |  |                       ></el-input> </el-form-item | 
 |  |  |                   ></el-col> | 
 |  |  |                 </el-row> | 
 |  |  |                 <el-row :gutter="20"> | 
 |  |  |                   <el-col :span="12" | 
 |  |  |                     ><el-form-item label="联系方式" prop="telcode"> | 
 |  |  |                       <el-input | 
 |  |  |                         v-model="userform.telcode" | 
 |  |  |                         placeholder="请输入联系方式" | 
 |  |  |                         maxlength="30" | 
 |  |  |                         maxlength="20" | 
 |  |  |                       /> </el-form-item | 
 |  |  |                   ></el-col> | 
 |  |  |                   <el-col :span="12"> | 
 |  |  |                     <el-form-item label="亲属联系方式" prop="name"> | 
 |  |  |                       <el-input | 
 |  |  |                         v-model="userform.relativetelcode" | 
 |  |  |                         placeholder="请输入姓名" | 
 |  |  |                         maxlength="20" | 
 |  |  |                       ></el-input> </el-form-item | 
 |  |  |                   ></el-col> | 
 |  |  |                 </el-row> | 
 |  |  |                 <el-row :gutter="20"> | 
 |  |  | 
 |  |  |             <div class="title">{{ taskname ? taskname : "问卷" }}</div> | 
 |  |  |  | 
 |  |  |             <div class="preview-left" v-if="!Voicetype"> | 
 |  |  |               <!-- 单选 --> | 
 |  |  |               <div | 
 |  |  |                 class="topic-dev" | 
 |  |  |                 v-for="(item, index) in tableDatatop" | 
 |  |  |                 :key="item.id" | 
 |  |  |               > | 
 |  |  |                 <!-- 单选 --> | 
 |  |  |                 <div | 
 |  |  |                   :class=" | 
 |  |  |                     item.isabnormal | 
 |  |  | 
 |  |  |         </el-tab-pane> | 
 |  |  |       </el-tabs> | 
 |  |  |     </div> | 
 |  |  |     <el-dialog title="患者再次随访" :visible.sync="dialogFormVisible"> | 
 |  |  |     <el-dialog | 
 |  |  |       title="患者再次随访" | 
 |  |  |       v-dialogDrags | 
 |  |  |       :visible.sync="dialogFormVisible" | 
 |  |  |     > | 
 |  |  |       <el-form ref="zcform" :rules="zcrules" :model="form" label-width="80px"> | 
 |  |  |         <el-form-item label="任务名称"> | 
 |  |  |           <el-input | 
 |  |  | 
 |  |  |           <el-date-picker | 
 |  |  |             type="date" | 
 |  |  |             placeholder="选择日期" | 
 |  |  |              :picker-options="pickerOptions" | 
 |  |  |              align="right" | 
 |  |  |             v-model="form.date1" | 
 |  |  |             style="width: 100%" | 
 |  |  |           ></el-date-picker> | 
 |  |  | 
 |  |  |         </el-form-item> | 
 |  |  |       </el-form> | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="dialogFormVisible = false">取 消</el-button> | 
 |  |  |         <el-button type="warning" @click="dialogFormVisible = false" | 
 |  |  |           >取 消</el-button | 
 |  |  |         > | 
 |  |  |         <el-button type="primary" @click="setupsubtask">确认创建服务</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  | 
 |  |  |   serviceSubtaskDetailadd, | 
 |  |  |   updatePersonVoices, | 
 |  |  |   addPersonVoices, | 
 |  |  |   query360PatInfo, | 
 |  |  | } from "@/api/AiCentre/index"; | 
 |  |  | import { messagelistpatient, alterpatient } from "@/api/patient/homepage"; | 
 |  |  | import { | 
 |  |  |   messagelistpatient, | 
 |  |  |   alterpatient, | 
 |  |  |   listcontactinformation, | 
 |  |  | } from "@/api/patient/homepage"; | 
 |  |  | export default { | 
 |  |  |   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], | 
 |  |  |   data() { | 
 |  |  | 
 |  |  |           { required: true, message: "请选择随访时间", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |       }, | 
 |  |  |       url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", | 
 |  |  |       postData: { | 
 |  |  |         XiaoXiTou: { | 
 |  |  |           FaSongFCSJC: "ZJHES", | 
 |  |  |           FaSongJGID: localStorage.getItem("orgid"), | 
 |  |  |           FaSongJGMC: localStorage.getItem("orgname"), | 
 |  |  |           FaSongSJ: "2025-01-09 17:29:36", | 
 |  |  |           FaSongXTJC: "SUIFANGXT", | 
 |  |  |           FaSongXTMC: "随访系统", | 
 |  |  |           XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", | 
 |  |  |           XiaoXiLX: "SC_LC_360STCX", | 
 |  |  |           XiaoXiMC: "360 视图查询", | 
 |  |  |           ZuHuID: localStorage.getItem("ZuHuID"), | 
 |  |  |           ZuHuMC: localStorage.getItem("orgname"), | 
 |  |  |         }, | 
 |  |  |         YeWuXX: { | 
 |  |  |           BingRenXX: { | 
 |  |  |             ZhengJianHM: "", | 
 |  |  |             ZhengJianLXDM: "01", | 
 |  |  |             ZhengJianLXMC: "居民身份证", | 
 |  |  |             ZuZhiJGID: localStorage.getItem("orgid"), | 
 |  |  |             ZuZhiJGMC: localStorage.getItem("orgname"), | 
 |  |  |           }, | 
 |  |  |           YongHuXX: { | 
 |  |  |             XiTongID: "SUIFANGXT", | 
 |  |  |             XiTongMC: "随访系统", | 
 |  |  |             YongHuID: "1400466972205912064", | 
 |  |  |             YongHuXM: "JNRMYY", | 
 |  |  |             ZuZhiJGID: localStorage.getItem("orgid"), | 
 |  |  |             ZuZhiJGMC: localStorage.getItem("orgname"), | 
 |  |  |             idp: "lyra", | 
 |  |  |           }, | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       pickerOptions: { | 
 |  |  |           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: '30天后', | 
 |  |  |             onClick(picker) { | 
 |  |  |               const date = new Date(); | 
 |  |  |               date.setTime(date.getTime() + 3600 * 1000 * 24 * 30); | 
 |  |  |               picker.$emit('pick', date); | 
 |  |  |             } | 
 |  |  |           }] | 
 |  |  |         }, | 
 |  |  |       userform: {}, | 
 |  |  |       Whetherall: false, //是否全部记录展示 | 
 |  |  |       dialogFormVisible: false, | 
 |  |  | 
 |  |  |         if (res.code === 200) { | 
 |  |  |           this.tableDatatop = res.data.scriptResult; | 
 |  |  |           this.tableDatatop.forEach((item) => { | 
 |  |  |             console.log(item.scriptResultId, "scriptResultId"); | 
 |  |  |  | 
 |  |  |             if (item.scriptResultId && item.scriptType != 2) { | 
 |  |  |             if (item.scriptType == 2) item.scriptResult = []; | 
 |  |  |             if (item.scriptResult && item.scriptType != 2) { | 
 |  |  |               item.isoption = 3; | 
 |  |  |               item.scriptResult = item.scriptResult; | 
 |  |  |             } else if (item.scriptResultId && item.scriptType == 2) { | 
 |  |  |             } else if (item.scriptResult && item.scriptType == 2) { | 
 |  |  |               item.scriptResult = item.scriptResult.split("&"); | 
 |  |  |               item.isoption = 3; | 
 |  |  |             } | 
 |  |  |           }); | 
 |  |  |           this.taskname = res.data.taskName; | 
 |  |  |           this.overdata(); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     //患者360跳转 | 
 |  |  |     gettoken360(sfzh, drcode, drname) { | 
 |  |  |       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; | 
 |  |  |       if (this.postData.XiaoXiTou.ZuHuMC == "丽水市中医院") { | 
 |  |  |         this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; | 
 |  |  |         this.postData.YeWuXX.YongHuXX.YongHuXM = "LSZYY"; | 
 |  |  |       } | 
 |  |  |       query360PatInfo(this.postData).then((res) => { | 
 |  |  |         if (res.data.url) { | 
 |  |  |           window.open(res.data.url, "_blank"); | 
 |  |  |           // this.linkUrl = res.data.url; | 
 |  |  |         } else { | 
 |  |  |           this.$modal.msgWarning("360查询无结果"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  | 
 |  |  |         if (response.rows[0]) { | 
 |  |  |           this.userform = response.rows[0]; | 
 |  |  |           // this.dynamicTags = response.rows[0].tagList.map(this.processElement); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |       listcontactinformation({ patid: this.patid }).then((response) => { | 
 |  |  |         this.tableData = response.rows; | 
 |  |  |         if (this.tableData.length) { | 
 |  |  |           this.userform.relativetelcode = this.tableData[0].contactway; | 
 |  |  |           this.userform.relation = this.tableData[0].relation; | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  | 
 |  |  |               item.scriptResult = []; | 
 |  |  |             } | 
 |  |  |           }); | 
 |  |  |           console.log(this.tableDatatop, "this.tableDatatop"); | 
 |  |  |  | 
 |  |  |           if (!this.tableDatatop.length) { | 
 |  |  |             this.puttaskid(this.templateid); | 
 |  |  |           } | 
 |  |  | 
 |  |  |             } | 
 |  |  |           }); | 
 |  |  |           this.Editsingletasksonyic(6); | 
 |  |  |  | 
 |  |  |           this.$modal | 
 |  |  |             .confirm( | 
 |  |  |               '任务保存成功是否针对患者:"' + this.userform.name + '"再次随访?' | 
 |  |  |               '任务保存成功是否针对患者:"' + | 
 |  |  |                 this.logsheetlist[0].sendname + | 
 |  |  |                 '"再次随访?' | 
 |  |  |             ) | 
 |  |  |             .then(() => { | 
 |  |  |               document.querySelector("#app").scrollTo(0, 0); | 
 |  |  |               this.dialogFormVisible = true; | 
 |  |  |             }) | 
 |  |  |             .catch(() => {}); | 
 |  |  | 
 |  |  |               '任务保存成功是否针对患者:"' + this.userform.name + '"再次随访?' | 
 |  |  |             ) | 
 |  |  |             .then(() => { | 
 |  |  |               document.querySelector("#app").scrollTo(0, 0); | 
 |  |  |               this.dialogFormVisible = true; | 
 |  |  |             }) | 
 |  |  |             .catch(() => {}); | 
 |  |  | 
 |  |  |           } | 
 |  |  |           this.getuserinfo(); | 
 |  |  |         } | 
 |  |  |         console.log(this.Voicetype, "this.Voicetype"); | 
 |  |  |  | 
 |  |  |         if (this.Voicetype) { | 
 |  |  |           this.getPersonVoices(); | 
 |  |  |         } else { | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     // 调起再次发送 | 
 |  |  |     sendAgain() { | 
 |  |  |       document.querySelector("#app").scrollTo(0, 0); | 
 |  |  |       // scrollTo(0, 0) | 
 |  |  |       this.dialogFormVisible = true; | 
 |  |  |     }, | 
 |  |  |     // 查看详情 | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     overdata() { | 
 |  |  |       this.tableDatatop.forEach((item, index) => { | 
 |  |  |         console.log(item.svyLibTemplateTargetoptions); | 
 |  |  |  | 
 |  |  |         var obj = item.svyLibTemplateTargetoptions.find( | 
 |  |  |           (items) => items.optioncontent == item.scriptResult | 
 |  |  |         ); | 
 |  |  | 
 |  |  |     setupsubtask() { | 
 |  |  |       this.$refs["zcform"].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           this.form.remark = | 
 |  |  |             this.form.remark + "【" + this.getCurrentTime() + "】"; | 
 |  |  |           let form = structuredClone(this.form); | 
 |  |  |           form.longSendTime = this.formatTime(form.date1); | 
 |  |  |           form.finishtime = ""; | 
 |  |  |           if (form.resource) { | 
 |  |  |             if (form.resource == 2) { | 
 |  |  |               form.serviceType = 10; | 
 |  |  |               form.serviceType = 13; | 
 |  |  |             } | 
 |  |  |           } else { | 
 |  |  |             this.$modal.msgError("未选择随访方式"); | 
 |  |  |           } | 
 |  |  |           form.id = null; | 
 |  |  |           // form.id = null; | 
 |  |  |           form.sendstate = 2; | 
 |  |  |           addserviceSubtask(form).then((res) => { | 
 |  |  |             if (res.code == 200) { | 
 |  |  |               this.$modal.msgSuccess("创建成功"); | 
 |  |  |               if (form.serviceType == 13) { | 
 |  |  |                 this.$router.push({ | 
 |  |  |                   path: "/logisticsservice/record", | 
 |  |  |                 }); | 
 |  |  |               } else if (form.serviceType == 2) { | 
 |  |  |                 this.$router.push({ | 
 |  |  |                   path: "/followvisit/discharge", | 
 |  |  |                 }); | 
 |  |  |               } | 
 |  |  |             } else { | 
 |  |  |               this.$modal.msgError("创建失败"); | 
 |  |  |             } | 
 |  |  |             document.querySelector("#app").scrollTo(0, 0); | 
 |  |  |             this.dialogFormVisible = false; | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     getCurrentTime() { | 
 |  |  |       const now = new Date(); | 
 |  |  |       const year = now.getFullYear(); | 
 |  |  |       const month = String(now.getMonth() + 1).padStart(2, "0"); | 
 |  |  |       const day = String(now.getDate()).padStart(2, "0"); | 
 |  |  |       const hours = String(now.getHours()).padStart(2, "0"); | 
 |  |  |       const minutes = String(now.getMinutes()).padStart(2, "0"); | 
 |  |  |       const seconds = String(now.getSeconds()).padStart(2, "0"); | 
 |  |  |  | 
 |  |  |       return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; | 
 |  |  |     }, | 
 |  |  |     updateScore(a, b, c) { | 
 |  |  |       console.log(a); | 
 |  |  |       console.log(b); |