|  |  | 
 |  |  |                   font-weight: 600; | 
 |  |  |                 " | 
 |  |  |               > | 
 |  |  |                 {{ item.value }} | 
 |  |  |                 {{ item.value ? item.value : 0 }} | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |           </el-card> | 
 |  |  | 
 |  |  |             end-placeholder="结束日期" | 
 |  |  |           ></el-date-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="应随访时间"> | 
 |  |  |           <el-date-picker | 
 |  |  |             v-model="dateRangefs" | 
 |  |  |             style="width: 240px" | 
 |  |  |             value-format="yyyy-MM-dd" | 
 |  |  |             type="daterange" | 
 |  |  |             range-separator="-" | 
 |  |  |             start-placeholder="开始日期" | 
 |  |  |             end-placeholder="结束日期" | 
 |  |  |           ></el-date-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item label="患者姓名" prop="sendname"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.sendname" | 
 |  |  |             placeholder="请输入患者姓名" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="诊断名称" prop="leavediagname"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.leavediagname" | 
 |  |  |             placeholder="请输入诊断名称" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="随访人员" prop="updateBy"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.updateBy" | 
 |  |  |             placeholder="请输入随访人员" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="主治医生" prop="drname"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.drname" | 
 |  |  |             placeholder="请输入主治医生" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="经管医生" prop="managementDoctor"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.managementDoctor" | 
 |  |  |             placeholder="请输入主治医生" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  | 
 |  |  |             </el-option> | 
 |  |  |           </el-select> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="排序方式" prop="status"> | 
 |  |  |           <el-select v-model="topqueryParams.sort" placeholder="请选择"> | 
 |  |  |             <el-option | 
 |  |  |               v-for="item in topicoptionssort" | 
 |  |  |               :key="item.value" | 
 |  |  |               :label="item.label" | 
 |  |  |               :value="item.value" | 
 |  |  |             > | 
 |  |  |             </el-option> | 
 |  |  |           </el-select> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item> | 
 |  |  |           <el-button | 
 |  |  | 
 |  |  |       </el-form> | 
 |  |  |       <el-divider></el-divider> | 
 |  |  |       <el-row :gutter="10" class="mb8"> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-button | 
 |  |  |             type="primary" | 
 |  |  |             plain | 
 |  |  |             icon="el-icon-plus" | 
 |  |  |             size="medium" | 
 |  |  |             @click="handleAdd" | 
 |  |  |             >新增</el-button | 
 |  |  |           > | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |         <!-- <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-button | 
 |  |  | 
 |  |  |                 icon="el-icon-upload2" | 
 |  |  |                 size="medium" | 
 |  |  |                 @click="handleExport" | 
 |  |  |                 v-hasPermi="['system:user:export']" | 
 |  |  |                 >导出</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> --> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-button | 
 |  |  |             type="primary" | 
 |  |  |             icon="el-icon-plus" | 
 |  |  |             size="medium" | 
 |  |  |             @click="handleAdd" | 
 |  |  |             >新增</el-button | 
 |  |  |           > | 
 |  |  |         </el-col> | 
 |  |  |  | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-button | 
 |  |  |                 type="primary" | 
 |  |  |                 size="medium" | 
 |  |  |                 @click="affiliation()" | 
 |  |  |                 >本人所属服务</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-button type="success" size="medium" @click="onthatday()" | 
 |  |  |                 >当日服务</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         <!-- <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-tooltip | 
 |  |  |                 content="请先选中服务" | 
 |  |  |                 placement="top" | 
 |  |  |                 :disabled="!multiple" | 
 |  |  |               > | 
 |  |  |                 <div class="tooltip-wrapper"> | 
 |  |  |                   <el-button | 
 |  |  |                     type="primary" | 
 |  |  |                     :disabled="multiple" | 
 |  |  |                     class="purple-button" | 
 |  |  |                     @click="scoreDialogVisible = true" | 
 |  |  |                   > | 
 |  |  |                     满意度调查 | 
 |  |  |                   </el-button> | 
 |  |  |                 </div> | 
 |  |  |               </el-tooltip> | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> --> | 
 |  |  |       </el-row> | 
 |  |  |       <el-table | 
 |  |  |         v-loading="loading" | 
 |  |  |         ref="userform" | 
 |  |  |         :data="userList" | 
 |  |  |         height="660" | 
 |  |  |         :row-class-name="tableRowClassName" | 
 |  |  |         @selection-change="handleSelectionChange" | 
 |  |  |       > | 
 |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务名称" | 
 |  |  |           fixed | 
 |  |  |           width="150" | 
 |  |  |           show-overflow-tooltip | 
 |  |  |           align="center" | 
 |  |  |           key="taskName" | 
 |  |  |           prop="taskName" | 
 |  |  |           width="180" | 
 |  |  |         /> | 
 |  |  |         <!-- <el-table-column label="序号" fixed align="center" key="id" prop="id" /> --> | 
 |  |  |         <el-table-column | 
 |  |  |           label="姓名" | 
 |  |  |           width="100" | 
 |  |  |           align="center" | 
 |  |  |           key="sendname" | 
 |  |  |           prop="sendname" | 
 |  |  | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click=" | 
 |  |  |                 $router.push({ | 
 |  |  |                   path: '/patient/indexls'+'?current='+scope.row.sfzh | 
 |  |  |                 }) | 
 |  |  |                 gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname) | 
 |  |  |               " | 
 |  |  |               ><span class="button-textsc">{{ | 
 |  |  |                 scope.row.sendname | 
 |  |  | 
 |  |  |               </div> | 
 |  |  |               <div v-if="scope.row.sendstate == 2"> | 
 |  |  |                 <el-tag type="primary" :disable-transitions="false" | 
 |  |  |                   >待执行</el-tag | 
 |  |  |                   >待随访</el-tag | 
 |  |  |                 > | 
 |  |  |               </div> | 
 |  |  |               <div v-if="scope.row.sendstate == 3"> | 
 |  |  | 
 |  |  |                 > | 
 |  |  |               </div> | 
 |  |  |               <div v-if="scope.row.sendstate == 6"> | 
 |  |  |                 <el-tag type="danger" :disable-transitions="false" | 
 |  |  |                 <el-tag type="success" :disable-transitions="false" | 
 |  |  |                   >已完成</el-tag | 
 |  |  |                 > | 
 |  |  |               </div> | 
 |  |  | 
 |  |  |         /> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="人工处理意见" | 
 |  |  |           label="处理意见" | 
 |  |  |           align="center" | 
 |  |  |           key="suggest" | 
 |  |  |           prop="suggest" | 
 |  |  | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="随访人员" | 
 |  |  |           align="center" | 
 |  |  |           key="createBy" | 
 |  |  |           prop="createBy" | 
 |  |  |           width="120" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="随访时间" | 
 |  |  |           label="随访完成时间" | 
 |  |  |           sortable | 
 |  |  |           align="center" | 
 |  |  |           prop="finishtime" | 
 |  |  | 
 |  |  |           </template></el-table-column | 
 |  |  |         > | 
 |  |  |         <el-table-column | 
 |  |  |           label="主治医生" | 
 |  |  |           width="120" | 
 |  |  |           align="center" | 
 |  |  |           key="drname" | 
 |  |  |           prop="drname" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="随访人员" | 
 |  |  |           align="center" | 
 |  |  |           key="updateBy" | 
 |  |  |           prop="updateBy" | 
 |  |  |           width="120" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="经管医生" | 
 |  |  |           align="center" | 
 |  |  |           key="managementDoctor" | 
 |  |  |           prop="managementDoctor" | 
 |  |  |           width="120" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="出院天数" | 
 |  |  |           width="120" | 
 |  |  |           align="center" | 
 |  |  | 
 |  |  |           key="nurseName" | 
 |  |  |           prop="nurseName" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="主治医生" | 
 |  |  |           width="120" | 
 |  |  |           align="center" | 
 |  |  |           key="drname" | 
 |  |  |           prop="drname" | 
 |  |  |         /> | 
 |  |  |  | 
 |  |  |         <!-- <el-table-column | 
 |  |  |           label="病历号" | 
 |  |  | 
 |  |  |         /> --> | 
 |  |  |  | 
 |  |  |         <!-- <el-table-column label="年龄" align="center" key="age" prop="age" /> --> | 
 |  |  |         <!-- <el-table-column label="性别" align="center" key="sex" prop="sex" /> --> | 
 |  |  |         <!-- <el-table-column label="性别"width="100" align="center" key="sex" prop="sex" /> --> | 
 |  |  |         <!-- <el-table-column label="床号" align="center" key="badNo" prop="badNo" /> --> | 
 |  |  |         <el-table-column | 
 |  |  |           label="科室" | 
 |  |  | 
 |  |  |         > | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |         <!-- <el-table-column | 
 |  |  |           label="疾病名称" | 
 |  |  |         <el-table-column | 
 |  |  |           label="诊断名称" | 
 |  |  |           align="center" | 
 |  |  |           key="icdName" | 
 |  |  |           prop="icdName" | 
 |  |  |           key="leavediagname" | 
 |  |  |           prop="leavediagname" | 
 |  |  |           width="120" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         > | 
 |  |  |         </el-table-column> --> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="出院随访模板名称" | 
 |  |  | 
 |  |  |         </el-table-column> --> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务结果说明" | 
 |  |  |           width="200" | 
 |  |  |           width="220" | 
 |  |  |           align="center" | 
 |  |  |           key="remark" | 
 |  |  |           prop="remark" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope" v-if="scope.row.remark"> | 
 |  |  |             <el-tag | 
 |  |  |               type="warning" | 
 |  |  |               v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" | 
 |  |  |               >{{ scope.row.remark }}</el-tag | 
 |  |  |             <el-tooltip | 
 |  |  |               :content="scope.row.remark" | 
 |  |  |               placement="top" | 
 |  |  |               effect="dark" | 
 |  |  |             > | 
 |  |  |             <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> | 
 |  |  |               <el-tag | 
 |  |  |                 type="warning" | 
 |  |  |                 v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" | 
 |  |  |                 >{{ scope.row.remark }}</el-tag | 
 |  |  |               > | 
 |  |  |               <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> | 
 |  |  |             </el-tooltip> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="操作" | 
 |  |  |           align="center" | 
 |  |  |           fixed="right" | 
 |  |  |           width="200" | 
 |  |  |           width="300" | 
 |  |  |           class-name="small-padding fixed-width" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-tooltip | 
 |  |  |             <!-- <el-tooltip | 
 |  |  |               class="item" | 
 |  |  |               effect="dark" | 
 |  |  |               content="再次随访" | 
 |  |  | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 v-if="scope.row.isVisitAgain!=2" | 
 |  |  |                 @click="followupvisit(scope.row)" | 
 |  |  |                 v-hasPermi="['system:user:edit']" | 
 |  |  |                 ><span class="button-bb" | 
 |  |  |                   ><i class="el-icon-s-promotion"></i>再次随访</span | 
 |  |  |                 ></el-button | 
 |  |  | 
 |  |  |                   ><i class="el-icon-remove-outline"></i>暂停服务</span | 
 |  |  |                 ></el-button | 
 |  |  |               > | 
 |  |  |             </el-tooltip> | 
 |  |  |             </el-tooltip> --> | 
 |  |  |             <el-button size="medium" type="text" @click="Seedetails(scope.row)" | 
 |  |  |               ><span class="button-zx" | 
 |  |  |                 ><i class="el-icon-s-order"></i>查看详情</span | 
 |  |  |               ></el-button | 
 |  |  |             > | 
 |  |  |             <el-button | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="handleUpdate(scope.row)" | 
 |  |  |               ><span class="button-textxga" | 
 |  |  |                 ><i class="el-icon-edit"></i>患者过滤</span | 
 |  |  |               ></el-button | 
 |  |  |             > | 
 |  |  |           </template> | 
 |  |  | 
 |  |  |         @pagination="getList" | 
 |  |  |       /> | 
 |  |  |     </el-row> | 
 |  |  |     <!-- 满意度弹框 --> | 
 |  |  |     <el-dialog | 
 |  |  |       title="随访满意度评分" | 
 |  |  |       :visible.sync="scoreDialogVisible" | 
 |  |  |       width="80%" | 
 |  |  |       :close-on-click-modal="false" | 
 |  |  |     > | 
 |  |  |       <el-table :data="selectedRows" border style="width: 100%"> | 
 |  |  |         <el-table-column | 
 |  |  |           label="姓名" | 
 |  |  |           width="100" | 
 |  |  |           align="center" | 
 |  |  |           prop="sendname" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务名称" | 
 |  |  |           width="180" | 
 |  |  |           align="center" | 
 |  |  |           prop="taskName" | 
 |  |  |         /> | 
 |  |  |         <!-- 新增评分列 --> | 
 |  |  |         <el-table-column | 
 |  |  |           label="真实性(20)" | 
 |  |  |           align="center" | 
 |  |  |           key="authenticity" | 
 |  |  |           prop="authenticity" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.authenticity" | 
 |  |  |               :min="0" | 
 |  |  |               :max="20" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="一周内完成(20)" | 
 |  |  |           align="center" | 
 |  |  |           key="weekFinish" | 
 |  |  |           prop="weekFinish" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.weekFinish" | 
 |  |  |               :min="0" | 
 |  |  |               :max="20" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="规范性(10)" | 
 |  |  |           align="center" | 
 |  |  |           key="standard" | 
 |  |  |           prop="standard" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.standard" | 
 |  |  |               :min="0" | 
 |  |  |               :max="10" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="及时性(10)" | 
 |  |  |           align="center" | 
 |  |  |           key="timeliness" | 
 |  |  |           prop="timeliness" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.timeliness" | 
 |  |  |               :min="0" | 
 |  |  |               :max="10" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="宣教情况(10)" | 
 |  |  |           align="center" | 
 |  |  |           key="library" | 
 |  |  |           prop="library" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.library" | 
 |  |  |               :min="0" | 
 |  |  |               :max="10" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="环境满意度(10)" | 
 |  |  |           align="center" | 
 |  |  |           key="environment" | 
 |  |  |           prop="environment" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.environment" | 
 |  |  |               :min="0" | 
 |  |  |               :max="10" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="医生满意度(10)" | 
 |  |  |           align="center" | 
 |  |  |           key="doctorSatisfaction" | 
 |  |  |           prop="doctorSatisfaction" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.doctorSatisfaction" | 
 |  |  |               :min="0" | 
 |  |  |               :max="10" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="护士满意度(10)" | 
 |  |  |           align="center" | 
 |  |  |           key="nurseSatisfaction" | 
 |  |  |           prop="nurseSatisfaction" | 
 |  |  |           width="150" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-input-number | 
 |  |  |               v-model="scope.row.nurseSatisfaction" | 
 |  |  |               :min="0" | 
 |  |  |               :max="10" | 
 |  |  |               :step="1" | 
 |  |  |               size="small" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="总分" | 
 |  |  |           align="center" | 
 |  |  |           key="total" | 
 |  |  |           prop="total" | 
 |  |  |           fixed="right" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ calculateTotal(scope.row) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |       </el-table> | 
 |  |  |  | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="scoreDialogVisible = false">取消</el-button> | 
 |  |  |         <el-button type="primary" @click="saveScores">保存</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 添加或修改影像随访对话框 --> | 
 |  |  |     <el-dialog | 
 |  |  |       :title="title" | 
 |  |  |       :visible.sync="addalteropen" | 
 |  |  |       width="700px" | 
 |  |  |       append-to-body | 
 |  |  |       :title="amendtag ? '修改患者信息' : '新增患者'" | 
 |  |  |       :visible.sync="Labelchange" | 
 |  |  |       width="900px" | 
 |  |  |     > | 
 |  |  |       <el-form ref="form" :model="form" label-width="100px"> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <el-col :span="12" | 
 |  |  |             ><el-form-item label="任务名称"> | 
 |  |  |               <el-input v-model="form.name"></el-input> </el-form-item | 
 |  |  |           ></el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <el-col :span="24" | 
 |  |  |             ><el-form-item label="所属科室"> | 
 |  |  |               <el-select v-model="form.region" placeholder="请选择科室"> | 
 |  |  |                 <el-option label="区域一" value="shanghai"></el-option> | 
 |  |  |                 <el-option label="区域二" value="beijing"></el-option> | 
 |  |  |               </el-select> </el-form-item></el-col | 
 |  |  |         ></el-row> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <el-col :span="24" | 
 |  |  |             ><el-form-item label="随访类型"> | 
 |  |  |               <el-select v-model="form.region" placeholder="请选择随访类型"> | 
 |  |  |                 <el-option label="区域一" value="shanghai"></el-option> | 
 |  |  |                 <el-option label="区域二" value="beijing"></el-option> | 
 |  |  |               </el-select> </el-form-item | 
 |  |  |           ></el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |             <el-form-item label="服务模块"> | 
 |  |  |               <el-select v-model="form.region" placeholder="请选择模块"> | 
 |  |  |                 <el-option label="区域一" value="shanghai"></el-option> | 
 |  |  |                 <el-option label="区域二" value="beijing"></el-option> | 
 |  |  |       <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-input | 
 |  |  |                 v-model="form.name" | 
 |  |  |                 placeholder="请输入姓名" | 
 |  |  |                 maxlength="30" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="性别" width="100" prop="sex"> | 
 |  |  |               <el-select v-model="form.sex" placeholder="请选择性别"> | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="dict in sextype" | 
 |  |  |                   :key="dict.value" | 
 |  |  |                   :label="dict.label" | 
 |  |  |                   :value="dict.value" | 
 |  |  |                 ></el-option> | 
 |  |  |               </el-select> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="年龄" prop="age"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.age" | 
 |  |  |                 placeholder="请输入年龄" | 
 |  |  |                 maxlength="30" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="过滤医生" width="100" prop="filterDrname"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.filterDrname" | 
 |  |  |                 placeholder="请输入医生姓名" | 
 |  |  |                 maxlength="30" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |             <el-form-item label="影像随访要求"> | 
 |  |  |               <el-input type="textarea" v-model="form.desc"></el-input> | 
 |  |  |             <el-form-item label="过滤原因"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.notrequiredreason" | 
 |  |  |                 type="textarea" | 
 |  |  |                 placeholder="请输入过滤原因" | 
 |  |  |               ></el-input> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |       </el-form> | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button type="primary" @click="submitForm">提 交</el-button> | 
 |  |  |         <el-button @click="cancel">返 回</el-button> | 
 |  |  |         <el-button type="primary" @click="submitForm">确 定</el-button> | 
 |  |  |         <el-button @click="cancel">取 消</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 修改发送时间对话框 --> | 
 |  |  | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 再次随访 --> | 
 |  |  |     <el-dialog title="患者再次随访" :visible.sync="dialogFormVisible"> | 
 |  |  |       <el-form ref="form" :model="zcform" label-width="80px"> | 
 |  |  |         <el-form-item label="患者名称"> | 
 |  |  |           <el-input style="width: 400px" v-model="zcform.name"></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |       <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px"> | 
 |  |  |         <el-form-item label="任务名称"> | 
 |  |  |           <el-input style="width: 400px" v-model="zcform.name"></el-input> | 
 |  |  |           <el-input | 
 |  |  |             style="width: 400px" | 
 |  |  |             disabled | 
 |  |  |             v-model="zcform.taskName" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="随访方式"> | 
 |  |  |         <el-form-item label="患者名称"> | 
 |  |  |           <el-input | 
 |  |  |             style="width: 400px" | 
 |  |  |             disabled | 
 |  |  |             v-model="zcform.sendname" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="年龄"> | 
 |  |  |           <el-input | 
 |  |  |             style="width: 400px" | 
 |  |  |             disabled | 
 |  |  |             v-model="zcform.age" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="科室"> | 
 |  |  |           <el-input | 
 |  |  |             style="width: 400px" | 
 |  |  |             disabled | 
 |  |  |             v-model="zcform.deptname" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="病区"> | 
 |  |  |           <el-input | 
 |  |  |             style="width: 400px" | 
 |  |  |             disabled | 
 |  |  |             v-model="zcform.leavehospitaldistrictname" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item label="随访方式" prop="resource"> | 
 |  |  |           <el-radio-group v-model="zcform.resource"> | 
 |  |  |             <el-radio label="1">本病区随访</el-radio> | 
 |  |  |             <el-radio label="2">随访中心随访</el-radio> | 
 |  |  |           </el-radio-group> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="即刻发送"> | 
 |  |  |         <!-- <el-form-item label="即刻发送"> | 
 |  |  |           <el-switch v-model="zcform.delivery"></el-switch> | 
 |  |  |         </el-form-item> --> | 
 |  |  |         <el-form-item label="出院时间"> | 
 |  |  |           <el-input | 
 |  |  |             style="width: 400px" | 
 |  |  |             disabled | 
 |  |  |             v-model="zcform.endtime" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="随访时间" v-if="!zcform.delivery"> | 
 |  |  |           <el-col :span="11"> | 
 |  |  |             <el-date-picker | 
 |  |  |               type="date" | 
 |  |  |               placeholder="选择日期" | 
 |  |  |               v-model="zcform.date1" | 
 |  |  |               style="width: 100%" | 
 |  |  |             ></el-date-picker> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col class="line" :span="2">-</el-col> | 
 |  |  |           <el-col :span="11"> | 
 |  |  |             <el-time-picker | 
 |  |  |               placeholder="选择时间" | 
 |  |  |               v-model="zcform.date2" | 
 |  |  |               style="width: 100%" | 
 |  |  |             ></el-time-picker> | 
 |  |  |           </el-col> | 
 |  |  |         <el-form-item label="随访完成时间" prop="date1"> | 
 |  |  |           <el-date-picker | 
 |  |  |             type="date" | 
 |  |  |             placeholder="选择日期" | 
 |  |  |             v-model="zcform.date1" | 
 |  |  |             style="width: 100%" | 
 |  |  |           ></el-date-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="随访记录"> | 
 |  |  |           <el-input type="textarea" v-model="zcform.remark"></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |       </el-form> | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="dialogFormVisible = false">取 消</el-button> | 
 |  |  |         <el-button type="primary" @click="dialogFormVisible = false" | 
 |  |  |           >确 定</el-button | 
 |  |  |         > | 
 |  |  |         <el-button type="primary" @click="setupsubtask">确认创建服务</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | import { | 
 |  |  |   listUser, | 
 |  |  |   getUser, | 
 |  |  |   delUser, | 
 |  |  |   addUser, | 
 |  |  |   updateUser, | 
 |  |  |   resetUserPwd, | 
 |  |  |   changeUserStatus, | 
 |  |  | } from "@/api/system/user"; | 
 |  |  | import { getTaskservelist, buidegetTasklist } from "@/api/AiCentre/index"; | 
 |  |  | import { | 
 |  |  |   getTaskservelist, | 
 |  |  |   buidegetTasklist, | 
 |  |  |   addserviceSubtask, | 
 |  |  |   query360PatInfo, | 
 |  |  |   addsatisfaction, | 
 |  |  | } from "@/api/AiCentre/index"; | 
 |  |  | import { alterpatient, particularpatient } from "@/api/patient/homepage"; | 
 |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  | import store from "@/store"; | 
 |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  | 
 |  |  |       initPassword: undefined, | 
 |  |  |       // 日期范围 | 
 |  |  |       dateRange: [], | 
 |  |  |       dateRangefs: [], | 
 |  |  |       // 岗位选项 | 
 |  |  |       postOptions: [], | 
 |  |  |       ruleForm: { | 
 |  |  | 
 |  |  |       zcform: {}, | 
 |  |  |       dynamicTags: ["选项一", "选项二", "选项三"], //选项 | 
 |  |  |       inputVisible: false, | 
 |  |  |       Labelchange: false, | 
 |  |  |       ycvalue: "", | 
 |  |  |       yfsvalue: "", | 
 |  |  |       inputValue: "", | 
 |  |  | 
 |  |  |       radios: [], | 
 |  |  |       previewtype: 2, //预览影像随访类型 | 
 |  |  |       total: 0, // 总条数 | 
 |  |  |       ImportQuantity: 999, //导影像随访数量 | 
 |  |  |       //预览影像随访信息 | 
 |  |  |       previewvalue: { | 
 |  |  |         username: "这个医生对你怎么样", | 
 |  |  |       }, | 
 |  |  |       // 满意度调查数据 | 
 |  |  |       scoreDialogVisible: false, | 
 |  |  |       selectedRows: [], | 
 |  |  |  | 
 |  |  |       value: [], | 
 |  |  |       list: [], | 
 |  |  |  | 
 |  |  | 
 |  |  |           name: "出院服务总量", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "患者过滤", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "应随访", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |  | 
 |  |  |         // { | 
 |  |  |         //   name: "异常", | 
 |  |  |         //   name: "患者过滤", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |         { | 
 |  |  |           name: "需随访", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "发送失败", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "待执行", | 
 |  |  |           name: "待随访", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "已发送", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         // { | 
 |  |  |         //   name: "已发送", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |  | 
 |  |  |         // { | 
 |  |  |         //   name: "表单已发送", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |       ], | 
 |  |  |  | 
 |  |  |       zcrules: { | 
 |  |  |         date1: [ | 
 |  |  |           { required: true, message: "请选择随访方式", trigger: "change" }, | 
 |  |  |         ], | 
 |  |  |         resource: [ | 
 |  |  |           { required: true, message: "请选择随访时间", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |       }, | 
 |  |  |       // 表单参数 | 
 |  |  |       form: { | 
 |  |  |         phonenumber: "", | 
 |  |  | 
 |  |  |         qystatus: "", | 
 |  |  |         btstatus: "", | 
 |  |  |       }, | 
 |  |  |       topicoptionssort: [ | 
 |  |  |         { | 
 |  |  |           value: 0, | 
 |  |  |           label: "出院时间(正序)", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "出院时间(倒序)", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "发送时间(正序)", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "发送时间(倒序)", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       // 查询参数 | 
 |  |  |       topqueryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         sendstate: 2, | 
 |  |  |         sort: 2, //0 出院时间(正序)    1 出院时间(倒序)   2 发送时间(正序)    3 发送时间(倒序) | 
 |  |  |         serviceType: 2, | 
 |  |  |         searchscope: 3, | 
 |  |  |         visitCount: 1, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  | 
 |  |  |  | 
 |  |  |       topicoptions: [ | 
 |  |  |         { | 
 |  |  |           value: null, | 
 |  |  |           label: "全部", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "表单已领取", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "待执行", | 
 |  |  |           label: "待随访", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  | 
 |  |  |           label: "已完成", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       sextype: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "男", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "女", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       topicoptionsyj: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  | 
 |  |  |           label: "正常", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       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", | 
 |  |  |           }, | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       amendtag: false, | 
 |  |  |       errtype: "", | 
 |  |  |       leavehospitaldistrictcode: "", | 
 |  |  |       serviceState: [], | 
 |  |  | 
 |  |  |     this.getList(1); | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** 查询影像随访服务列表 */ | 
 |  |  |     /** 查询随访服务列表 */ | 
 |  |  |     getList(refresh) { | 
 |  |  |       // 默认全部 | 
 |  |  |  | 
 |  |  |       if (this.topqueryParams.searchscope == 3) { | 
 |  |  |         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |           (obj) => obj.deptCode | 
 |  |  | 
 |  |  |         console.log(this.topqueryParams.leavehospitaldistrictcodes, "11"); | 
 |  |  |       } | 
 |  |  |       this.loading = true; | 
 |  |  |       if ( | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes[0] && | 
 |  |  |         this.topqueryParams.leaveldeptcodes[0] | 
 |  |  |       ) { | 
 |  |  |         this.topqueryParams.deptOrDistrict = 2; | 
 |  |  |       } else { | 
 |  |  |         this.topqueryParams.deptOrDistrict = 1; | 
 |  |  |       } | 
 |  |  |       getTaskservelist(this.topqueryParams).then((response) => { | 
 |  |  |         this.userList = response.rows[0].serviceSubtaskList; | 
 |  |  |         this.total = response.total; | 
 |  |  |         if (refresh) { | 
 |  |  |           this.cardlist[0].value = | 
 |  |  |             Number(response.rows[0].wzx) + Number(response.rows[0].ysf); | 
 |  |  |           this.cardlist[1].value = response.rows[0].wzx; | 
 |  |  |           this.cardlist[2].value = response.rows[0].ysf; | 
 |  |  |           // this.cardlist[1].value = response.rows[0].wzx; | 
 |  |  |           this.cardlist[1].value = response.rows[0].ysf; | 
 |  |  |           this.ycvalue = response.rows[0].yc; | 
 |  |  |           this.cardlist[3].value = response.rows[0].fssb; | 
 |  |  |           this.cardlist[4].value = response.rows[0].dfs; | 
 |  |  |           this.cardlist[5].value = response.rows[0].yfs2; | 
 |  |  |           this.cardlist[2].value = response.rows[0].fssb; | 
 |  |  |           this.cardlist[3].value = response.rows[0].dsf; | 
 |  |  |           // this.cardlist[4].value = response.rows[0].yfs2; | 
 |  |  |           this.yfsvalue = response.rows[0].yfs; | 
 |  |  |         } | 
 |  |  |         this.loading = false; | 
 |  |  | 
 |  |  |         this.total = response.total; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     affiliation() { | 
 |  |  |       this.topqueryParams.managementDoctor = store.getters.hisUserId; | 
 |  |  |       this.getList(1); | 
 |  |  |     }, | 
 |  |  |     onthatday() { | 
 |  |  |       this.topqueryParams.startSendDateTime = this.getCurrentDate(); | 
 |  |  |       this.topqueryParams.endSendDateTime = this.getCurrentDate(); | 
 |  |  |       this.getList(1); | 
 |  |  |     }, | 
 |  |  |     getCurrentDate() { | 
 |  |  |       const now = new Date(); | 
 |  |  |       return now.toISOString().slice(0, 10); // 截取前10个字符,即 YYYY-MM-DD | 
 |  |  |     }, | 
 |  |  |     buidegetTasklist(type) { | 
 |  |  |       if (this.topqueryParams.searchscope == 3) { | 
 |  |  |         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  | 
 |  |  |       let obj = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         leavehospitaldistrictcodes: this.topqueryParams.leavehospitaldistrictcodes, | 
 |  |  |         leavehospitaldistrictcodes: | 
 |  |  |           this.topqueryParams.leavehospitaldistrictcodes, | 
 |  |  |         sendstates: [2, 3], | 
 |  |  |         leaveldeptcodes: this.topqueryParams.leaveldeptcodes, | 
 |  |  |       }; | 
 |  |  | 
 |  |  |           this.cardlist[2].value = response.rows[0].ysf; | 
 |  |  |           this.ycvalue = response.rows[0].yc; | 
 |  |  |           this.cardlist[3].value = response.rows[0].fssb; | 
 |  |  |           this.cardlist[4].value = response.rows[0].dfs; | 
 |  |  |           this.cardlist[5].value = response.rows[0].yfs2; | 
 |  |  |           this.cardlist[4].value = response.rows[0].dsf; | 
 |  |  |           // this.cardlist[5].value = response.rows[0].yfs2; | 
 |  |  |           this.yfsvalue = response.rows[0].yfs; | 
 |  |  |         } | 
 |  |  |         this.loading = false; | 
 |  |  | 
 |  |  |           row.status = row.status === "0" ? "1" : "0"; | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |     // 取消按钮 | 
 |  |  |     cancel() { | 
 |  |  |       this.addalteropen = false; | 
 |  |  |       this.reset(); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 表单重置 | 
 |  |  |     reset() { | 
 |  |  |       this.form = { | 
 |  |  | 
 |  |  |       this.topqueryParams.pageNum = 1; | 
 |  |  |       this.topqueryParams.startOutHospTime = this.dateRange[0]; | 
 |  |  |       this.topqueryParams.endOutHospTime = this.dateRange[1]; | 
 |  |  |  | 
 |  |  |       this.topqueryParams.startSendDateTime = this.dateRangefs[0]; | 
 |  |  |       this.topqueryParams.endSendDateTime = this.dateRangefs[1]; | 
 |  |  |       this.getList(refresh); | 
 |  |  |     }, | 
 |  |  |     // 患者范围处理 | 
 |  |  | 
 |  |  |       let code = value.slice(-1)[0]; | 
 |  |  |       this.topqueryParams.leavehospitaldistrictcodes = []; | 
 |  |  |       this.topqueryParams.leaveldeptcodes = []; | 
 |  |  |  | 
 |  |  |       if (type == 1) { | 
 |  |  |         this.topqueryParams.leaveldeptcodes.push(code); | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes = []; | 
 |  |  | 
 |  |  |     /** 重置按钮操作 */ | 
 |  |  |     resetQuery() { | 
 |  |  |       this.dateRange = []; | 
 |  |  |       this.dateRangefs = []; | 
 |  |  |       this.topqueryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         sendstate: 2, | 
 |  |  |         sort: 2, //0 出院时间(正序)    1 出院时间(倒序)   2 发送时间(正序)    3 发送时间(倒序) | 
 |  |  |         serviceType: 2, | 
 |  |  |         searchscope: 2, | 
 |  |  |         searchscope: 3, | 
 |  |  |         visitCount: 1, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }; | 
 |  |  |       this.handleQuery(1); | 
 |  |  |     }, | 
 |  |  |     // 多选框选中数据 | 
 |  |  |     handleSelectionChange(selection) { | 
 |  |  |       this.ids = selection.map((item) => item.userId); | 
 |  |  |       this.single = selection.length != 1; | 
 |  |  |       this.multiple = !selection.length; | 
 |  |  |     handleSelectionChange(rows) { | 
 |  |  |       this.selectedRows = rows.map((row) => { | 
 |  |  |         // 初始化评分字段 | 
 |  |  |         return { | 
 |  |  |           ...row, | 
 |  |  |           authenticity: row.authenticity || 0, | 
 |  |  |           weekFinish: row.weekFinish || 0, | 
 |  |  |           standard: row.standard || 0, | 
 |  |  |           timeliness: row.timeliness || 0, | 
 |  |  |           library: row.library || 0, | 
 |  |  |           environment: row.environment || 0, | 
 |  |  |           doctorSatisfaction: row.doctorSatisfaction || 0, | 
 |  |  |           nurseSatisfaction: row.nurseSatisfaction || 0, | 
 |  |  |         }; | 
 |  |  |       }); | 
 |  |  |  | 
 |  |  |       if (this.selectedRows.length > 0) { | 
 |  |  |         this.multiple = false; | 
 |  |  |       } else { | 
 |  |  |         this.multiple = true; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 计算总分 | 
 |  |  |     calculateTotal(row) { | 
 |  |  |       return ( | 
 |  |  |         (row.authenticity || 0) + | 
 |  |  |         (row.weekFinish || 0) + | 
 |  |  |         (row.standard || 0) + | 
 |  |  |         (row.timeliness || 0) + | 
 |  |  |         (row.library || 0) + | 
 |  |  |         (row.environment || 0) + | 
 |  |  |         (row.doctorSatisfaction || 0) + | 
 |  |  |         (row.nurseSatisfaction || 0) | 
 |  |  |       ); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 保存评分 | 
 |  |  |     saveScores() { | 
 |  |  |       this.selectedRows.forEach((item) => { | 
 |  |  |         item.createBy = null; | 
 |  |  |         item.patName = item.sendname; | 
 |  |  |         item.hospitaldistrictname = item.leavehospitaldistrictname; | 
 |  |  |       }); | 
 |  |  |       addsatisfaction(this.selectedRows).then((res) => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           this.$message.success("评分保存成功"); | 
 |  |  |           this.scoreDialogVisible = false; | 
 |  |  |           this.selectedRows = []; | 
 |  |  |           this.$refs.userform.clearSelection(); | 
 |  |  |         } else { | 
 |  |  |           this.$modal.msgWarning("评分保存失败"); | 
 |  |  |           this.scoreDialogVisible = false; | 
 |  |  |           this.selectedRows = []; | 
 |  |  |           this.$refs.userform.clearSelection(); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |       // 这里可以添加保存逻辑,如调用API保存评分 | 
 |  |  |     }, | 
 |  |  |     //删除选项 | 
 |  |  |     handleClose(tag) { | 
 |  |  | 
 |  |  |         }, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     //患者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查询无结果"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 重置密码按钮操作 */ | 
 |  |  |     handleResetPwd(row) { | 
 |  |  | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 取消按钮 | 
 |  |  |     cancel() { | 
 |  |  |       this.Labelchange = false; | 
 |  |  |       this.reset(); | 
 |  |  |     }, | 
 |  |  |     /** 提交按钮 */ | 
 |  |  |     submitForm: function () { | 
 |  |  |       this.$refs["form"].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           if (this.form.userId != undefined) { | 
 |  |  |             updateUser(this.form).then((response) => { | 
 |  |  |               this.$modal.msgSuccess("修改成功"); | 
 |  |  |               this.open = false; | 
 |  |  |           this.form.isoperation = 2; | 
 |  |  |           this.form.notrequiredFlag = 1; | 
 |  |  |           alterpatient(this.form) | 
 |  |  |             .then((response) => { | 
 |  |  |               console.log(response); | 
 |  |  |             }) | 
 |  |  |             .then(() => { | 
 |  |  |               this.getList(1); | 
 |  |  |               this.$modal.msgSuccess("患者过滤成功"); | 
 |  |  |             }); | 
 |  |  |           } else { | 
 |  |  |             addUser(this.form).then((response) => { | 
 |  |  |               this.$modal.msgSuccess("新增成功"); | 
 |  |  |               this.open = false; | 
 |  |  |               this.getList(1); | 
 |  |  |             }); | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |           this.reset(); | 
 |  |  |           this.Labelchange = false; | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  | 
 |  |  |       if (row.preachformson) { | 
 |  |  |         if (row.preachformson.includes("3")) { | 
 |  |  |           type = 1; | 
 |  |  |           console.log(type, "rwo"); | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       this.$router.push({ | 
 |  |  | 
 |  |  |           patid: row.patid, | 
 |  |  |           id: row.id, | 
 |  |  |           Voicetype: type, | 
 |  |  |           visitCount: this.topqueryParams.visitCount, | 
 |  |  |         }, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 再次随访 | 
 |  |  |     followupvisit() { | 
 |  |  |     followupvisit(row) { | 
 |  |  |       this.zcform = row; | 
 |  |  |       this.zcform.endtime = this.formatTime(this.zcform.endtime); | 
 |  |  |       this.dialogFormVisible = true; | 
 |  |  |     }, | 
 |  |  |     onSubmit() {}, | 
 |  |  | 
 |  |  |           }).then((res) => { | 
 |  |  |             if (res.code == 200) { | 
 |  |  |               objson.sendstate = 4; | 
 |  |  |               objson.remark = '服务暂停'; | 
 |  |  |               objson.remark = "服务暂停"; | 
 |  |  |               Editsingletaskson(objson).then((res) => { | 
 |  |  |                 if (res.code) { | 
 |  |  |                   this.$modal.msgSuccess("记录成功"); | 
 |  |  | 
 |  |  |           }); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     // 患者过滤触发 | 
 |  |  |     handleUpdate(row) { | 
 |  |  |       particularpatient(row.patid).then((response) => { | 
 |  |  |         this.form = response.data; | 
 |  |  |         this.form.filterDrname = store.getters.nickName; | 
 |  |  |       }); | 
 |  |  |       this.amendtag = true; | 
 |  |  |       this.Labelchange = true; | 
 |  |  |     }, | 
 |  |  |     // 便捷按钮 | 
 |  |  |     toleadExport(too) { | 
 |  |  | 
 |  |  |       this.topqueryParams.pageNum = null; | 
 |  |  |       this.topqueryParams.pageSize = null; | 
 |  |  |       this.download( | 
 |  |  |         "smartor/serviceSubtask/export", | 
 |  |  |         "smartor/serviceSubtask/patItemExport", | 
 |  |  |         { | 
 |  |  |           ...this.topqueryParams, | 
 |  |  |         }, | 
 |  |  | 
 |  |  |     tableRowClassName({ row, rowIndex }) { | 
 |  |  |       if (row.excep == 1) { | 
 |  |  |         return "warning-row"; | 
 |  |  |       } else if (row.excep == 2) { | 
 |  |  |         return "remind-row"; | 
 |  |  |       } | 
 |  |  |       return ""; | 
 |  |  |     }, | 
 |  |  |     // 创建再次随访服务 | 
 |  |  |     setupsubtask() { | 
 |  |  |       this.$refs["zcform"].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           this.zcform.remark = | 
 |  |  |             this.zcform.remark + "【" + this.getCurrentTime() + "】"; | 
 |  |  |           let form = structuredClone(this.zcform); | 
 |  |  |           form.longSendTime = this.formatTime(form.date1); | 
 |  |  |           form.finishtime = ""; | 
 |  |  |           if (form.resource) { | 
 |  |  |             if (form.resource == 2) { | 
 |  |  |               form.serviceType = 13; | 
 |  |  |             } | 
 |  |  |           } else { | 
 |  |  |             this.$modal.msgError("未选择随访方式"); | 
 |  |  |           } | 
 |  |  |           form.id = null; | 
 |  |  |           form.sendstate = 2; | 
 |  |  |           form.preachform = form.preachformson; | 
 |  |  |           form.longTask = 0; | 
 |  |  |           addserviceSubtask(form).then((res) => { | 
 |  |  |             if (res.code == 200) { | 
 |  |  |               this.$modal.msgSuccess("创建成功"); | 
 |  |  |             } else { | 
 |  |  |               this.$modal.msgError("创建失败"); | 
 |  |  |             } | 
 |  |  |             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}`; | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | 
 |  |  | } | 
 |  |  | ::v-deep.el-table .warning-row { | 
 |  |  |   background: #eec4c4; | 
 |  |  | } | 
 |  |  | ::v-deep.el-table .remind-row { | 
 |  |  |   background: #fcf5aa; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .documentf { | 
 |  |  | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | ::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; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  | ::v-deep.errleftvlue .el-card__body { | 
 |  |  | 
 |  |  |   background: #d0fdd8; | 
 |  |  | } | 
 |  |  | ::v-deep.ysfleftvlue .el-card__body:hover { | 
 |  |  |   background: #8df8a4; | 
 |  |  |   background: #0abc54; | 
 |  |  |   cursor: pointer; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  | .button-bb { | 
 |  |  | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-zx { | 
 |  |  |   background: #4fabe9; | 
 |  |  |   background: #324a9b; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | 
 |  |  |     font-size: 24px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .purple-button { | 
 |  |  |   background-color: #7e22ce; | 
 |  |  |   border-color: #7e22ce; | 
 |  |  |   color: #fff; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .purple-button:hover, | 
 |  |  | .purple-button:focus { | 
 |  |  |   background-color: #9333ea; | 
 |  |  |   border-color: #9333ea; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .purple-button:active { | 
 |  |  |   background-color: #6b21a8; | 
 |  |  |   border-color: #6b21a8; | 
 |  |  | } | 
 |  |  | .button-textxga { | 
 |  |  |   color: #de7897; | 
 |  |  | } | 
 |  |  | .purple-button.is-disabled { | 
 |  |  |   background-color: #d8b4fe; | 
 |  |  |   border-color: #d8b4fe; | 
 |  |  |   opacity: 1; /* 保持禁用状态透明度 */ | 
 |  |  | } | 
 |  |  | // 选项字体放大 | 
 |  |  | // ::v-deep.el-checkbox-group { | 
 |  |  | //   span { |