|  |  | 
 |  |  | <template> | 
 |  |  |   <div class="Questionnairemanagement"> | 
 |  |  |     <!-- 左侧栏 --> | 
 |  |  |     <div class="sidecolumn"> | 
 |  |  |     <!-- <div class="sidecolumn"> | 
 |  |  |       <div class="sidecolumn-top"> | 
 |  |  |         <div class="top-wj">医院患者</div> | 
 |  |  |       </div> | 
 |  |  | 
 |  |  |           v-model="queryParams.allhosp" | 
 |  |  |           @tab-click="handleClick" | 
 |  |  |         > | 
 |  |  |           <!-- <el-tab-pane label="患者列表" name="0"></el-tab-pane> --> | 
 |  |  |           <el-tab-pane label="出入院患者" name="1"></el-tab-pane> | 
 |  |  |           <el-tab-pane label="门诊患者" name="2"></el-tab-pane> | 
 |  |  |           <el-tab-pane label="体检患者" name="3"></el-tab-pane> | 
 |  |  |         </el-tabs> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     </div> --> | 
 |  |  |     <!-- 右侧数据 --> | 
 |  |  |  | 
 |  |  |     <div class="leftvlue"> | 
 |  |  | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |  | 
 |  |  |               <el-form-item label="门诊编号" prop="visitno"> | 
 |  |  |               <el-form-item label="患者档案号" prop="visitno"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.visitno" | 
 |  |  |                   placeholder="请输入编号" | 
 |  |  | 
 |  |  |                   @keyup.enter.native="handleQuery" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="患者范围" prop="tagId"> | 
 |  |  |               <!-- <el-form-item label="患者范围" prop="tagId"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="queryParams.searchscope" | 
 |  |  |                   placeholder="请选择患者范围" | 
 |  |  | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |               </el-form-item> --> | 
 |  |  |               <!-- <el-form-item label="患者范围" prop="status"> | 
 |  |  |                 <el-cascader | 
 |  |  |                   v-model="queryParams.scopetype" | 
 |  |  |                   placeholder="默认全部" | 
 |  |  |                   :options="sourcetype" | 
 |  |  |                   :props="{ expandTrigger: 'hover' }" | 
 |  |  |                   @change="handleChange" | 
 |  |  |                 ></el-cascader> | 
 |  |  |               </el-form-item> --> | 
 |  |  |               <el-form-item label="联系电话" prop="telcode"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.telcode" | 
 |  |  | 
 |  |  |               <el-col :span="1.5"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="primary" | 
 |  |  |                   plain | 
 |  |  |                   icon="el-icon-s-promotion" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="distribute" | 
 |  |  | 
 |  |  |                 prop="name" | 
 |  |  |               /> --> | 
 |  |  |               <el-table-column | 
 |  |  |  | 
 |  |  |                 label="姓名" | 
 |  |  |           width="100" | 
 |  |  |                 width="100" | 
 |  |  |                 align="center" | 
 |  |  |                 key="name" | 
 |  |  |                 prop="name" | 
 |  |  | 
 |  |  |                   <el-button | 
 |  |  |                     size="medium" | 
 |  |  |                     type="text" | 
 |  |  |                     @click=" | 
 |  |  |                       $router.push({ | 
 |  |  |                     path: '/patient/indexls/', | 
 |  |  |                     query: { sfzh: scope.row.idcardno }, | 
 |  |  |                   }) | 
 |  |  |                     " | 
 |  |  |                     ><span class="button-textsc" | 
 |  |  |                       >{{scope.row.name}}</span | 
 |  |  |                     ></el-button | 
 |  |  |                     @click="gettoken360(scope.row.idcardno,scope.row.drcode,scope.row.drname)" | 
 |  |  |                     ><span class="button-textsc">{{ | 
 |  |  |                       scope.row.name | 
 |  |  |                     }}</span></el-button | 
 |  |  |                   > | 
 |  |  |  | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column label="性别"width="100" align="center" key="sex" prop="sex"> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="性别" | 
 |  |  |                 width="100" | 
 |  |  |                 align="center" | 
 |  |  |                 key="sex" | 
 |  |  |                 prop="sex" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> | 
 |  |  |                 </template> | 
 |  |  | 
 |  |  |             prop="templatename" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="待随访/总任务" | 
 |  |  |             label="总任务/已随访" | 
 |  |  |             align="center" | 
 |  |  |             key="nickName" | 
 |  |  |             width="120" | 
 |  |  |             prop="nickName" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span> | 
 |  |  |               <span | 
 |  |  |                 >{{ scope.row.wfs ? scope.row.wfs + scope.row.yfs : "" }}/{{ | 
 |  |  |                   scope.row.yfs | 
 |  |  |                 }}</span | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  | 
 |  |  |       <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="姓名" | 
 |  |  |           width="100" prop="name"> | 
 |  |  |             <el-form-item label="姓名" width="100" prop="name"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.name" | 
 |  |  |                 placeholder="请输入姓名" | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="性别"width="100" prop="sex"> | 
 |  |  |             <el-form-item label="性别" width="100" prop="sex"> | 
 |  |  |               <el-select v-model="form.sex" placeholder="请选择性别"> | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="dict in sextype" | 
 |  |  | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.age" | 
 |  |  |                 placeholder="请输入年龄" | 
 |  |  |                 maxlength="30" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row v-if="amendtag"> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="过滤医生" width="100" prop="filterDrname"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.filterDrname" | 
 |  |  |                 placeholder="请输入医生姓名" | 
 |  |  |                 maxlength="30" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  | 
 |  |  |       <div class="uploading" v-else-if="dractive == 2"> | 
 |  |  |         <el-table :data="uploadingData" style="width: 100%"> | 
 |  |  |           <el-table-column prop="serial" label="序号"> </el-table-column> | 
 |  |  |           <el-table-column prop="name" label="姓名" | 
 |  |  |           width="100"> </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别"width="100"> </el-table-column> | 
 |  |  |           <el-table-column prop="name" label="姓名" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |  | 
 |  |  |           <el-table-column prop="certificatenum" label="证件号码"> | 
 |  |  |           </el-table-column> | 
 |  |  | 
 |  |  |       <div v-if="dractive == 3"> | 
 |  |  |         <el-table :data="uploadingData" style="width: 100%"> | 
 |  |  |           <el-table-column prop="serial" label="序号"> </el-table-column> | 
 |  |  |           <el-table-column prop="name" label="姓名" | 
 |  |  |           width="100"> </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别"width="100"> </el-table-column> | 
 |  |  |           <el-table-column prop="name" label="姓名" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="certificatenum" label="证件号码"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="goday" label="出生日期"> </el-table-column> | 
 |  |  | 
 |  |  |   Exporterrorpatient, | 
 |  |  |   toleadpatient, | 
 |  |  | } from "@/api/patient/homepage"; | 
 |  |  | import { getTasklist } from "@/api/AiCentre/index"; | 
 |  |  | import { getTasklist,query360PatInfo } from "@/api/AiCentre/index"; | 
 |  |  | import { listtag } from "@/api/system/label"; | 
 |  |  | import { getToken } from "@/utils/auth"; | 
 |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  | import store from "@/store"; | 
 |  |  |  | 
 |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  | 
 |  |  |         idcardtype: "", | 
 |  |  |         relativetelcode: "", | 
 |  |  |       }, | 
 |  |  |       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", | 
 |  |  |           }, | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       activeName: "first", //侧边选择 | 
 |  |  |       //导入进度 | 
 |  |  |       dractive: 1, | 
 |  |  | 
 |  |  |       // 查询参数 | 
 |  |  |       queryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         allhosp: "1", | 
 |  |  |         allhosp: "0", | 
 |  |  |         pageSize: 10, | 
 |  |  |         notrequiredFlag:0, | 
 |  |  |         notrequiredFlag: 0, | 
 |  |  |         searchscope: 2, | 
 |  |  |         idcardno: undefined, | 
 |  |  |         name: undefined, | 
 |  |  |         status: undefined, | 
 |  |  |         tagIds: undefined, | 
 |  |  |         telcode: undefined, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }, | 
 |  |  |       sourcetype: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "科室", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "病区", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "全部", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       // 表单校验 | 
 |  |  |       rules: { | 
 |  |  |         name: [ | 
 |  |  | 
 |  |  |     this.getList(); | 
 |  |  |     this.gettabList(); | 
 |  |  |     //获取已筛选后的可选任务类型 | 
 |  |  |     this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { | 
 |  |  |       return { | 
 |  |  |         label: dept.deptName, | 
 |  |  |         value: dept.deptCode, | 
 |  |  |       }; | 
 |  |  |     }); | 
 |  |  |     this.sourcetype[1].children = store.getters.belongWards.map((dept) => { | 
 |  |  |       return { | 
 |  |  |         label: dept.districtName, | 
 |  |  |         value: dept.districtCode, | 
 |  |  |       }; | 
 |  |  |     }); | 
 |  |  |     this.taskoptions = store.getters.Serviceauthority; | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** 查询患者列表 */ | 
 |  |  |     getList() { | 
 |  |  |       if (this.queryParams.searchscope == 1) { | 
 |  |  |         this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |           (obj) => obj.deptCode | 
 |  |  |         ); | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes = null; | 
 |  |  |       } else if (this.queryParams.searchscope == 2) { | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes = | 
 |  |  |           store.getters.belongWards.map((obj) => obj.districtCode); | 
 |  |  |         this.queryParams.leaveldeptcodes = null; | 
 |  |  |       } else { | 
 |  |  |       if (this.queryParams.searchscope == 3) { | 
 |  |  |         this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |           (obj) => obj.deptCode | 
 |  |  |         ); | 
 |  |  | 
 |  |  |         this.optionstag = response.rows; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     //患者360跳转 | 
 |  |  |     gettoken360(sfzh,drcode,drname) { | 
 |  |  |       this.$modal.msgWarning('360功能暂未开通'); | 
 |  |  |   return; // 阻止后续代码执行 | 
 |  |  |       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查询无结果"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 查询导入展示列表 | 
 |  |  |     geterryList() { | 
 |  |  |       this.loading = true; | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     RiskMarker(row) { | 
 |  |  |       this.RiskVisible = true; | 
 |  |  |       this.RiskObj=row; | 
 |  |  |       this.RiskObj = row; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 取消按钮 | 
 |  |  | 
 |  |  |     /** 重置按钮操作 */ | 
 |  |  |     resetQuery() { | 
 |  |  |       this.dateRange = []; | 
 |  |  |       this.queryParams= { | 
 |  |  |       this.queryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         allhosp: "1", | 
 |  |  |         allhosp: "0", | 
 |  |  |         pageSize: 10, | 
 |  |  |         notrequiredFlag:0, | 
 |  |  |         notrequiredFlag: 0, | 
 |  |  |         searchscope: 2, | 
 |  |  |         idcardno: undefined, | 
 |  |  |         name: undefined, | 
 |  |  |         status: undefined, | 
 |  |  |         tagIds: undefined, | 
 |  |  |         telcode: undefined, | 
 |  |  |       }, | 
 |  |  |       this.handleQuery(); | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }; | 
 |  |  |         this.handleQuery(); | 
 |  |  |     }, | 
 |  |  |     // 多选框选中数据 | 
 |  |  |     handleSelectionChange(selection) { | 
 |  |  | 
 |  |  |     handleUpdate(row) { | 
 |  |  |       const userIds = row.id || this.ids; | 
 |  |  |       particularpatient(userIds).then((response) => { | 
 |  |  |         console.log(response); | 
 |  |  |         this.form = response.data; | 
 |  |  |         this.form.filterDrname = store.getters.nickName; | 
 |  |  |       }); | 
 |  |  |       this.amendtag = true; | 
 |  |  |       this.Labelchange = true; | 
 |  |  | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 患者范围处理 | 
 |  |  |     handleChange(value) { | 
 |  |  |       let type = value[0]; | 
 |  |  |       let code = value.slice(-1)[0]; | 
 |  |  |       this.queryParams.leavehospitaldistrictcodes = []; | 
 |  |  |       this.queryParams.leaveldeptcodes = []; | 
 |  |  |  | 
 |  |  |       if (type == 1) { | 
 |  |  |         this.queryParams.leaveldeptcodes.push(code); | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes = []; | 
 |  |  |         this.queryParams.searchscope = 1; | 
 |  |  |       } else if (type == 2) { | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes.push(code); | 
 |  |  |         this.queryParams.leaveldeptcodes = []; | 
 |  |  |         this.queryParams.searchscope = 2; | 
 |  |  |       } else { | 
 |  |  |         this.queryParams.searchscope = 3; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     /** 删除按钮操作 */ | 
 |  |  |     handleDelete(row) { | 
 |  |  |       const userIds = row.userId || this.ids; | 
 |  |  | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     RiskService() { | 
 |  |  |  | 
 |  |  |       this.RiskObj.visitFlag = this.Risklist.join(", "); | 
 |  |  |       this.RiskObj.visitType = this.Riskradio; | 
 |  |  |       alterpatient(this.RiskObj).then((res) => { | 
 |  |  |         if (res.code==200) { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           this.getList(); | 
 |  |  |           this.Risklist=[]; | 
 |  |  |           this.Riskradio=1; | 
 |  |  |           this.Risklist = []; | 
 |  |  |           this.Riskradio = 1; | 
 |  |  |           this.$modal.msgSuccess("异常记录成功"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .Questionnairemanagement { | 
 |  |  |   display: flex; | 
 |  |  |   // display: flex; | 
 |  |  | } | 
 |  |  | .sidecolumn { | 
 |  |  |   width: 180px; | 
 |  |  | 
 |  |  |   font-size: 20px; | 
 |  |  | } | 
 |  |  | ::v-deep.leftvlue .el-card__body { | 
 |  |  |   background: #d0e9fd; | 
 |  |  |   background: #F2F8FF; | 
 |  |  |   color: #324A9B; | 
 |  |  | } | 
 |  |  | ::v-deep.leftvlue .el-card__body:hover { | 
 |  |  |   background: #8dc8f8; | 
 |  |  |   background: #3664D9; | 
 |  |  |   color: #fff; | 
 |  |  |   cursor: pointer; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  | .leftvlue { | 
 |  |  |   width: 80%; | 
 |  |  |   margin-left:220px ; | 
 |  |  |   // width: 100%; | 
 |  |  |   // margin-left: 220px; | 
 |  |  |   margin-top: 10px; | 
 |  |  | } | 
 |  |  | .leftvlue-bg { | 
 |  |  | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .button-textsc { | 
 |  |  |   color: #28cfe6; | 
 |  |  |   color: #3664D9; | 
 |  |  | } | 
 |  |  | .button-textxga { | 
 |  |  |   color: #de7897; | 
 |  |  | } | 
 |  |  | .button-textxg { | 
 |  |  |   color: #de7897; |