|  |  | 
 |  |  | <template> | 
 |  |  |   <div>问卷服务</div> | 
 |  |  |   <div class="app-container"> | 
 |  |  |     <div class="leftvlue" style="margin-bottom: 20px"> | 
 |  |  |       <el-row :gutter="10"> | 
 |  |  |         <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index"> | 
 |  |  |           <el-card | 
 |  |  |             shadow="hover" | 
 |  |  |             :body-style="item.router ? ' cursor: pointer' : 'cursor: default'" | 
 |  |  |           > | 
 |  |  |             <div style="padding: 8px" @click="$router.push(item.router)"> | 
 |  |  |               <span>{{ item.name }}</span> | 
 |  |  |               <div | 
 |  |  |                 style=" | 
 |  |  |                   text-align: center; | 
 |  |  |                   font-size: 18px; | 
 |  |  |                   margin-top: 10px; | 
 |  |  |                   font-weight: 600; | 
 |  |  |                 " | 
 |  |  |               > | 
 |  |  |               {{ item.value ? item.value : 0 }} | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |           </el-card> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="2.5"> | 
 |  |  |           <div class="ysfleftvlue"> | 
 |  |  |             <el-card shadow="hover"> | 
 |  |  |               <div style="padding: 8px"> | 
 |  |  |                 <span>表单已发送</span> | 
 |  |  |                 <div | 
 |  |  |                   style=" | 
 |  |  |                     text-align: center; | 
 |  |  |                     font-size: 18px; | 
 |  |  |                     margin-top: 10px; | 
 |  |  |                     font-weight: 600; | 
 |  |  |                   " | 
 |  |  |                 > | 
 |  |  |                   {{ yfsvalue }} | 
 |  |  |                 </div> | 
 |  |  |               </div> | 
 |  |  |             </el-card> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="2.5"> | 
 |  |  |           <div class="errleftvlue"> | 
 |  |  |             <el-card shadow="hover"> | 
 |  |  |               <div style="padding: 8px"> | 
 |  |  |                 <span>异常</span> | 
 |  |  |                 <div | 
 |  |  |                   style=" | 
 |  |  |                     text-align: center; | 
 |  |  |                     font-size: 18px; | 
 |  |  |                     margin-top: 10px; | 
 |  |  |                     font-weight: 600; | 
 |  |  |                   " | 
 |  |  |                 > | 
 |  |  |                   {{ ycvalue }} | 
 |  |  |                 </div> | 
 |  |  |               </div> | 
 |  |  |             </el-card> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |       </el-row> | 
 |  |  |     </div> | 
 |  |  |     <el-row :gutter="20"> | 
 |  |  |       <!--用户数据--> | 
 |  |  |       <el-form | 
 |  |  |         :model="topqueryParams" | 
 |  |  |         ref="queryForm" | 
 |  |  |         size="small" | 
 |  |  |         :inline="true" | 
 |  |  |         v-show="showSearch" | 
 |  |  |         label-width="98px" | 
 |  |  |       > | 
 |  |  |         <el-form-item label="任务名称"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.taskName" | 
 |  |  |             placeholder="请选择任务名称" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item label="出院时间"> | 
 |  |  |           <el-date-picker | 
 |  |  |             v-model="dateRange" | 
 |  |  |             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="status"> | 
 |  |  |           <el-cascader | 
 |  |  |             v-model="topqueryParams.scopetype" | 
 |  |  |             placeholder="默认全部" | 
 |  |  |             :options="sourcetype" | 
 |  |  |             :props="{ expandTrigger: 'hover' }" | 
 |  |  |             @change="handleChange" | 
 |  |  |           ></el-cascader> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item label="任务状态" prop="status"> | 
 |  |  |           <el-select v-model="topqueryParams.sendstate" placeholder="请选择"> | 
 |  |  |             <el-option | 
 |  |  |               v-for="item in topicoptions" | 
 |  |  |               :key="item.value" | 
 |  |  |               :label="item.label" | 
 |  |  |               :value="item.value" | 
 |  |  |             > | 
 |  |  |             </el-option> | 
 |  |  |           </el-select> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item> | 
 |  |  |           <el-button | 
 |  |  |             type="primary" | 
 |  |  |             icon="el-icon-search" | 
 |  |  |             size="medium" | 
 |  |  |             @click="handleQuery(1)" | 
 |  |  |             >搜索</el-button | 
 |  |  |           > | 
 |  |  |           <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" | 
 |  |  |             >重置</el-button | 
 |  |  |           > | 
 |  |  |         </el-form-item> | 
 |  |  |       </el-form> | 
 |  |  |       <el-divider></el-divider> | 
 |  |  |       <el-row :gutter="10" class="mb8"> | 
 |  |  |         <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"> | 
 |  |  |               <el-button | 
 |  |  |                 type="warning" | 
 |  |  |                 plain | 
 |  |  |                 icon="el-icon-upload2" | 
 |  |  |                 size="medium" | 
 |  |  |                 @click="handleExport" | 
 |  |  |                 >导出</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-button | 
 |  |  |                 type="warning" | 
 |  |  |                 plain | 
 |  |  |                 icon="el-icon-warning-outline" | 
 |  |  |                 size="medium" | 
 |  |  |                 @click="toleadExport(1)" | 
 |  |  |                 >执行失败</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-button | 
 |  |  |                 type="danger" | 
 |  |  |                 plain | 
 |  |  |                 icon="el-icon-warning" | 
 |  |  |                 size="medium" | 
 |  |  |                 @click="toleadExport(2)" | 
 |  |  |                 >结果异常</el-button | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |       </el-row> | 
 |  |  |       <el-table | 
 |  |  |         v-loading="loading" | 
 |  |  |         :data="userList" | 
 |  |  |         height="808" | 
 |  |  |         :row-class-name="tableRowClassName" | 
 |  |  |         @selection-change="handleSelectionChange" | 
 |  |  |       > | 
 |  |  |         <el-table-column type="selection" width="50" align="center" /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务名称" | 
 |  |  |           fixed | 
 |  |  |           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" | 
 |  |  |           fixed | 
 |  |  |           align="center" | 
 |  |  |           key="sendname" | 
 |  |  |           prop="sendname" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务状态" | 
 |  |  |           align="center" | 
 |  |  |           key="sendstate" | 
 |  |  |           prop="sendstate" | 
 |  |  |           width="120" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <div v-if="scope.row.sendstate == 1"> | 
 |  |  |               <el-tag type="primary" :disable-transitions="false" | 
 |  |  |                 >表单已领取</el-tag | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div v-if="scope.row.sendstate == 2"> | 
 |  |  |               <el-tag type="primary" :disable-transitions="false" | 
 |  |  |                 >待随访</el-tag | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div v-if="scope.row.sendstate == 3"> | 
 |  |  |               <el-tag type="success" :disable-transitions="false" | 
 |  |  |                 >表单已发送</el-tag | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div v-if="scope.row.sendstate == 4"> | 
 |  |  |               <el-tag type="info" :disable-transitions="false">不执行</el-tag> | 
 |  |  |             </div> | 
 |  |  |             <div v-if="scope.row.sendstate == 5"> | 
 |  |  |               <el-tag type="danger" :disable-transitions="false" | 
 |  |  |                 >发送失败</el-tag | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div v-if="scope.row.sendstate == 6"> | 
 |  |  |               <el-tag type="danger" :disable-transitions="false">已完成</el-tag> | 
 |  |  |             </div> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <!-- <el-table-column | 
 |  |  |           label="任务异常说明" | 
 |  |  |           width="120" | 
 |  |  |           align="center" | 
 |  |  |           key="remark" | 
 |  |  |           prop="remark" --> | 
 |  |  |         /> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="处理意见" | 
 |  |  |           align="center" | 
 |  |  |           key="suggest" | 
 |  |  |           prop="suggest" | 
 |  |  |           width="120" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <dict-tag | 
 |  |  |               :options="dict.type.sys_suggest" | 
 |  |  |               :value="scope.row.suggest" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="随访人员" | 
 |  |  |           align="center" | 
 |  |  |           key="updateBy" | 
 |  |  |           prop="updateBy" | 
 |  |  |           width="120" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="随访完成时间" | 
 |  |  |           sortable | 
 |  |  |           align="center" | 
 |  |  |           prop="finishtime" | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.finishtime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="出院日期" | 
 |  |  |           width="200" | 
 |  |  |           align="center" | 
 |  |  |           key="endtime" | 
 |  |  |           prop="endtime" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ formatTime(scope.row.endtime) }}</span> | 
 |  |  |           </template></el-table-column | 
 |  |  |         > | 
 |  |  |         <el-table-column | 
 |  |  |           label="应随访日期" | 
 |  |  |           width="200" | 
 |  |  |           align="center" | 
 |  |  |           key="longSendTime" | 
 |  |  |           prop="longSendTime" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ formatTime(scope.row.longSendTime) }}</span> | 
 |  |  |           </template></el-table-column | 
 |  |  |         > | 
 |  |  |         <el-table-column | 
 |  |  |           label="出院天数" | 
 |  |  |           width="120" | 
 |  |  |           align="center" | 
 |  |  |           key="endDay" | 
 |  |  |           prop="endDay" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ scope.row.endDay ? scope.row.endDay + "天" : "" }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="身份证号码" | 
 |  |  |           width="200" | 
 |  |  |           align="center" | 
 |  |  |           key="sfzh" | 
 |  |  |           prop="sfzh" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="联系电话" | 
 |  |  |           width="200" | 
 |  |  |           align="center" | 
 |  |  |           key="phone" | 
 |  |  |           prop="phone" | 
 |  |  |         /> | 
 |  |  |         <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="病历号" | 
 |  |  |           align="center" | 
 |  |  |           sortable | 
 |  |  |           key="medicalRecordNo" | 
 |  |  |           prop="medicalRecordNo" | 
 |  |  |           width="120" | 
 |  |  |         /> --> | 
 |  |  |  | 
 |  |  |         <!-- <el-table-column label="年龄" align="center" key="age" prop="age" /> --> | 
 |  |  |         <!-- <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="科室" | 
 |  |  |           align="center" | 
 |  |  |           key="deptname" | 
 |  |  |           prop="deptname" | 
 |  |  |           width="120" | 
 |  |  |         > | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="病区" | 
 |  |  |           align="center" | 
 |  |  |           key="leavehospitaldistrictname" | 
 |  |  |           prop="leavehospitaldistrictname" | 
 |  |  |           width="120" | 
 |  |  |         > | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |         <!-- <el-table-column | 
 |  |  |           label="疾病名称" | 
 |  |  |           align="center" | 
 |  |  |           key="icdName" | 
 |  |  |           prop="icdName" | 
 |  |  |           width="120" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         > | 
 |  |  |         </el-table-column> --> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="出院随访模板名称" | 
 |  |  |           align="center" | 
 |  |  |           key="templatename" | 
 |  |  |           prop="templatename" | 
 |  |  |           width="200" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务执行方式" | 
 |  |  |           align="center" | 
 |  |  |           key="preachform" | 
 |  |  |           prop="preachform" | 
 |  |  |           width="160" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span v-for="item in scope.row.preachform">{{ item }}、 </span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <!-- <el-table-column | 
 |  |  |           label="任务发送流程" | 
 |  |  |           align="center" | 
 |  |  |           key="serviceSubtaskRecordList" | 
 |  |  |           prop="serviceSubtaskRecordList" | 
 |  |  |           width="160" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span v-for="item in scope.row.serviceSubtaskRecordList" | 
 |  |  |               >{{ item.remark }}、 | 
 |  |  |             </span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> --> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务结果说明" | 
 |  |  |           width="200" | 
 |  |  |           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-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="操作" | 
 |  |  |           align="center" | 
 |  |  |           fixed="right" | 
 |  |  |           width="200" | 
 |  |  |           class-name="small-padding fixed-width" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <!-- <el-tooltip | 
 |  |  |               class="item" | 
 |  |  |               effect="dark" | 
 |  |  |               content="重新随访" | 
 |  |  |               placement="top" | 
 |  |  |             > | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 @click="followupvisit(scope.row)" | 
 |  |  |                 v-hasPermi="['system:user:edit']" | 
 |  |  |                 ><span class="button-bb" | 
 |  |  |                   ><i class="el-icon-s-promotion"></i></span | 
 |  |  |               ></el-button> | 
 |  |  |             </el-tooltip> --> | 
 |  |  |             <!-- <el-tooltip | 
 |  |  |               class="item" | 
 |  |  |               effect="dark" | 
 |  |  |               content="停止" | 
 |  |  |               placement="top" | 
 |  |  |             > | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 @click="handlestop(scope.row)" | 
 |  |  |                 v-hasPermi="['system:user:edit']" | 
 |  |  |                 ><span class="button-sc"><i class="el-icon-delete"></i></span | 
 |  |  |               ></el-button> | 
 |  |  |             </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 | 
 |  |  |             > | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |       </el-table> | 
 |  |  |  | 
 |  |  |       <pagination | 
 |  |  |         v-show="total > 0" | 
 |  |  |         :total="total" | 
 |  |  |         :page.sync="topqueryParams.pageNum" | 
 |  |  |         :limit.sync="topqueryParams.pageSize" | 
 |  |  |         @pagination="getList" | 
 |  |  |       /> | 
 |  |  |     </el-row> | 
 |  |  |     <!-- 添加或修改影像随访对话框 --> | 
 |  |  |     <el-dialog | 
 |  |  |       :title="title" | 
 |  |  |       :visible.sync="addalteropen" | 
 |  |  |       width="700px" | 
 |  |  |       append-to-body | 
 |  |  |     > | 
 |  |  |       <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-select> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |             <el-form-item label="影像随访要求"> | 
 |  |  |               <el-input type="textarea" v-model="form.desc"></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> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 修改发送时间对话框 --> | 
 |  |  |     <el-dialog | 
 |  |  |       title="发送时间设置" | 
 |  |  |       :visible.sync="modificationVisible" | 
 |  |  |       width="45%" | 
 |  |  |     > | 
 |  |  |       <div style="margin-bottom: 20px; color: red"> | 
 |  |  |         统一修改当天未发送的任务时间 | 
 |  |  |       </div> | 
 |  |  |  | 
 |  |  |       <el-form | 
 |  |  |         :model="ruleForm" | 
 |  |  |         :rules="rules" | 
 |  |  |         ref="ruleForm" | 
 |  |  |         label-width="120px" | 
 |  |  |         class="demo-ruleForm" | 
 |  |  |       > | 
 |  |  |         <el-form-item label="发送日期"> | 
 |  |  |           <el-date-picker | 
 |  |  |             v-model="ruleForm.value1" | 
 |  |  |             type="date" | 
 |  |  |             placeholder="选择日期" | 
 |  |  |           > | 
 |  |  |           </el-date-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |  | 
 |  |  |         <el-form-item label="时间段" prop="type"> | 
 |  |  |           <el-checkbox-group v-model="ruleForm.type"> | 
 |  |  |             <el-checkbox label="上午" name="type"></el-checkbox> | 
 |  |  |             <el-checkbox label="下午" name="type"></el-checkbox> | 
 |  |  |             <el-checkbox label="晚上" name="type"></el-checkbox> | 
 |  |  |           </el-checkbox-group> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="上午时间区间" required> | 
 |  |  |           <el-time-picker | 
 |  |  |             is-range | 
 |  |  |             v-model="ruleForm.value2" | 
 |  |  |             range-separator="至" | 
 |  |  |             start-placeholder="开始时间" | 
 |  |  |             end-placeholder="结束时间" | 
 |  |  |             placeholder="选择时间范围" | 
 |  |  |           > | 
 |  |  |           </el-time-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="下午时间区间" required> | 
 |  |  |           <el-time-picker | 
 |  |  |             is-range | 
 |  |  |             v-model="ruleForm.value3" | 
 |  |  |             range-separator="至" | 
 |  |  |             start-placeholder="开始时间" | 
 |  |  |             end-placeholder="结束时间" | 
 |  |  |             placeholder="选择时间范围" | 
 |  |  |           > | 
 |  |  |           </el-time-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="晚上时间区间" required> | 
 |  |  |           <el-time-picker | 
 |  |  |             is-range | 
 |  |  |             v-model="ruleForm.value4" | 
 |  |  |             range-separator="至" | 
 |  |  |             start-placeholder="开始时间" | 
 |  |  |             end-placeholder="结束时间" | 
 |  |  |             placeholder="选择时间范围" | 
 |  |  |           > | 
 |  |  |           </el-time-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |       </el-form> | 
 |  |  |  | 
 |  |  |       <span slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="modificationVisible = false">取 消</el-button> | 
 |  |  |         <el-button type="primary" @click="modificationVisible = false" | 
 |  |  |           >确 定</el-button | 
 |  |  |         > | 
 |  |  |       </span> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | import { | 
 |  |  |   listUser, | 
 |  |  |   getUser, | 
 |  |  |   delUser, | 
 |  |  |   addUser, | 
 |  |  |   updateUser, | 
 |  |  |   resetUserPwd, | 
 |  |  |   changeUserStatus, | 
 |  |  | } from "@/api/system/user"; | 
 |  |  | import { getTaskservelist } from "@/api/AiCentre/index"; | 
 |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  | import store from "@/store"; | 
 |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  |   name: "Discharge", | 
 |  |  |   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], | 
 |  |  |   components: { Treeselect }, | 
 |  |  |   data() { | 
 |  |  |     return {}; | 
 |  |  |     return { | 
 |  |  |       // 遮罩层 | 
 |  |  |       loading: true, | 
 |  |  |       // 选中数组 | 
 |  |  |       ids: [], | 
 |  |  |       // 非单个禁用 | 
 |  |  |       single: true, | 
 |  |  |       // 非多个禁用 | 
 |  |  |       multiple: true, | 
 |  |  |       // 显示搜索条件 | 
 |  |  |       showSearch: true, | 
 |  |  |       // 总条数 | 
 |  |  |       total: 0, | 
 |  |  |       // 用户表格数据 | 
 |  |  |       userList: null, | 
 |  |  |       // 弹出层标题 | 
 |  |  |       title: "新增影像随访", | 
 |  |  |       // 是否显示修改、添加弹出层 | 
 |  |  |       addalteropen: false, | 
 |  |  |       // 修改发送时间对话框 | 
 |  |  |       modificationVisible: false, | 
 |  |  |       // 部门名称 | 
 |  |  |       deptName: undefined, | 
 |  |  |       // 默认密码 | 
 |  |  |       initPassword: undefined, | 
 |  |  |       // 日期范围 | 
 |  |  |       dateRange: [], | 
 |  |  |       // 岗位选项 | 
 |  |  |       postOptions: [], | 
 |  |  |       ruleForm: { | 
 |  |  |         type: [], | 
 |  |  |       }, | 
 |  |  |       dynamicTags: ["选项一", "选项二", "选项三"], //选项 | 
 |  |  |       inputVisible: false, | 
 |  |  |       ycvalue: "", | 
 |  |  |       yfsvalue: "", | 
 |  |  |       inputValue: "", | 
 |  |  |       preachform: "", | 
 |  |  |       previewVisible: false, //门诊随访预览弹框 | 
 |  |  |       radio: "", | 
 |  |  |       radios: [], | 
 |  |  |       previewtype: 2, //预览影像随访类型 | 
 |  |  |       total: 0, // 总条数 | 
 |  |  |       ImportQuantity: 999, //导影像随访数量 | 
 |  |  |       //预览影像随访信息 | 
 |  |  |       previewvalue: { | 
 |  |  |         username: "这个医生对你怎么样", | 
 |  |  |       }, | 
 |  |  |       value: [], | 
 |  |  |       list: [], | 
 |  |  |  | 
 |  |  |       sourcetype: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "科室", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "病区", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "全部", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       loading: false, | 
 |  |  |       cardlist: [ | 
 |  |  |         { | 
 |  |  |           name: "出院服务总量", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         // { | 
 |  |  |         //   name: "患者过滤", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |         { | 
 |  |  |           name: "需随访", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |  | 
 |  |  |         // { | 
 |  |  |         //   name: "异常", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |         { | 
 |  |  |           name: "发送失败", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "待随访", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |         // { | 
 |  |  |         //   name: "已发送", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |  | 
 |  |  |         // { | 
 |  |  |         //   name: "表单已发送", | 
 |  |  |         //   value: 0, | 
 |  |  |         // }, | 
 |  |  |       ], | 
 |  |  |  | 
 |  |  |       // 表单参数 | 
 |  |  |       form: { | 
 |  |  |         phonenumber: "", | 
 |  |  |         totagid: "", | 
 |  |  |         types: "", | 
 |  |  |         nickName: "", | 
 |  |  |         qystatus: "", | 
 |  |  |         btstatus: "", | 
 |  |  |       }, | 
 |  |  |       // 查询参数 | 
 |  |  |       topqueryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         serviceType: 7, | 
 |  |  |         searchscope: 3, | 
 |  |  |         sendstate:2, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }, | 
 |  |  |       propss: { multiple: true }, | 
 |  |  |       options: [], | 
 |  |  |  | 
 |  |  |       topicoptions: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "表单已领取", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "待随访", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "表单已发送", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 4, | 
 |  |  |           label: "不执行", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 5, | 
 |  |  |           label: "发送失败", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 6, | 
 |  |  |           label: "已完成", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       topicoptionsyj: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "异常", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 0, | 
 |  |  |           label: "正常", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       errtype: "", | 
 |  |  |       leavehospitaldistrictcode: "", | 
 |  |  |       serviceState: [], | 
 |  |  |       checkboxlist: [], | 
 |  |  |       // 表单校验 | 
 |  |  |       rules: {}, | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  |   watch: {}, | 
 |  |  |   created() { | 
 |  |  |     this.serviceState = store.getters.serviceState; | 
 |  |  |     this.checkboxlist = store.getters.checkboxlist; | 
 |  |  |     this.errtype = this.$route.query.errtype; | 
 |  |  |     this.leavehospitaldistrictcode = | 
 |  |  |       this.$route.query.leavehospitaldistrictcode; | 
 |  |  |     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, | 
 |  |  |       }; | 
 |  |  |     }); | 
 |  |  |     if (this.errtype) { | 
 |  |  |       this.toleadExport(2); | 
 |  |  |     } else { | 
 |  |  |       this.getList(1); | 
 |  |  |     } | 
 |  |  |     this.getConfigKey("sys.user.initPassword").then((response) => { | 
 |  |  |       this.initPassword = response.msg; | 
 |  |  |     }); | 
 |  |  |   }, | 
 |  |  |   activated() { | 
 |  |  |     this.getList(1); | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** 查询门诊随访服务列表 */ | 
 |  |  |     getList(refresh) { | 
 |  |  |       // 默认全部 | 
 |  |  |       if (this.topqueryParams.searchscope == 3) { | 
 |  |  |         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |           (obj) => obj.deptCode | 
 |  |  |         ); | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes = | 
 |  |  |           store.getters.belongWards.map((obj) => obj.districtCode); | 
 |  |  |       } | 
 |  |  |       // 接受异常跳转 | 
 |  |  |       if (this.errtype) { | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes.push( | 
 |  |  |           this.leavehospitaldistrictcode | 
 |  |  |         ); | 
 |  |  |         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[1].value = response.rows[0].ysf; | 
 |  |  |           this.ycvalue = response.rows[0].yc; | 
 |  |  |           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.userList.forEach((item) => { | 
 |  |  |           let idArray = null; | 
 |  |  |           if (item.endtime) { | 
 |  |  |             item.endDay = this.daysBetween(item.endtime); | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |   created() {}, | 
 |  |  |           if (item.preachform) { | 
 |  |  |             if (item.endtime) { | 
 |  |  |               item.preachformson = item.preachform; | 
 |  |  |               idArray = item.preachform.split(","); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |   methods: {}, | 
 |  |  |             item.preachform = idArray.map((value) => { | 
 |  |  |               // 查找id对应的对象 | 
 |  |  |               const item = this.checkboxlist.find( | 
 |  |  |                 (item) => item.value == value | 
 |  |  |               ); | 
 |  |  |               // 如果找到对应的id,返回label值,否则返回null | 
 |  |  |               return item ? item.label : null; | 
 |  |  |             }); | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |         this.total = response.total; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 查看影像随访详情 | 
 |  |  |     Referencequestion(row) { | 
 |  |  |       this.previewVisible = true; | 
 |  |  |     }, | 
 |  |  |     // 添加弹框搜索 | 
 |  |  |     remoteMethod(query) { | 
 |  |  |       if (query !== "") { | 
 |  |  |         this.loading = true; | 
 |  |  |         setTimeout(() => { | 
 |  |  |           this.loading = false; | 
 |  |  |           this.options = this.list.filter((item) => { | 
 |  |  |             return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; | 
 |  |  |           }); | 
 |  |  |         }, 200); | 
 |  |  |       } else { | 
 |  |  |         this.options = []; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 影像随访状态修改 | 
 |  |  |     handleStatusChange(row) { | 
 |  |  |       let text = row.status === "0" ? "启用" : "停用"; | 
 |  |  |       this.$modal | 
 |  |  |         .confirm('确认要"' + text + '""' + row.userName + '"用户吗?') | 
 |  |  |         .then(function () { | 
 |  |  |           return changeUserStatus(row.userId, row.status); | 
 |  |  |         }) | 
 |  |  |         .then(() => { | 
 |  |  |           this.$modal.msgSuccess(text + "成功"); | 
 |  |  |         }) | 
 |  |  |         .catch(function () { | 
 |  |  |           row.status = row.status === "0" ? "1" : "0"; | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |     // 取消按钮 | 
 |  |  |     cancel() { | 
 |  |  |       this.addalteropen = false; | 
 |  |  |       this.reset(); | 
 |  |  |     }, | 
 |  |  |     // 表单重置 | 
 |  |  |     reset() { | 
 |  |  |       this.form = { | 
 |  |  |         userId: undefined, | 
 |  |  |         deptId: undefined, | 
 |  |  |         userName: undefined, | 
 |  |  |         nickName: undefined, | 
 |  |  |         password: undefined, | 
 |  |  |         phonenumber: undefined, | 
 |  |  |         email: undefined, | 
 |  |  |         sex: undefined, | 
 |  |  |         status: "0", | 
 |  |  |         remark: undefined, | 
 |  |  |         postIds: [], | 
 |  |  |         roleIds: [], | 
 |  |  |       }; | 
 |  |  |       this.resetForm("form"); | 
 |  |  |     }, | 
 |  |  |     /** 搜索按钮操作 */ | 
 |  |  |     handleQuery(refresh) { | 
 |  |  |       if (this.topqueryParams.searchscope == 3) { | 
 |  |  |         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |           (obj) => obj.deptCode | 
 |  |  |         ); | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes = | 
 |  |  |           store.getters.belongWards.map((obj) => obj.districtCode); | 
 |  |  |       } | 
 |  |  |       this.topqueryParams.pageNum = 1; | 
 |  |  |       this.topqueryParams.startOutHospTime = this.dateRange[0]; | 
 |  |  |       this.topqueryParams.endOutHospTime = this.dateRange[1]; | 
 |  |  |  | 
 |  |  |       this.getList(refresh); | 
 |  |  |     }, | 
 |  |  |     // 患者范围处理 | 
 |  |  |     handleChange(value) { | 
 |  |  |       let type = value[0]; | 
 |  |  |       let code = value.slice(-1)[0]; | 
 |  |  |       this.topqueryParams.leavehospitaldistrictcodes = []; | 
 |  |  |       this.topqueryParams.leaveldeptcodes = []; | 
 |  |  |  | 
 |  |  |       if (type == 1) { | 
 |  |  |         this.topqueryParams.leaveldeptcodes.push(code); | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes = []; | 
 |  |  |         this.topqueryParams.searchscope = 1; | 
 |  |  |       } else if (type == 2) { | 
 |  |  |         this.topqueryParams.leavehospitaldistrictcodes.push(code); | 
 |  |  |         this.topqueryParams.leaveldeptcodes = []; | 
 |  |  |         this.topqueryParams.searchscope = 2; | 
 |  |  |       } else { | 
 |  |  |         this.topqueryParams.searchscope = 3; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     /** 重置按钮操作 */ | 
 |  |  |     resetQuery() { | 
 |  |  |       this.dateRange = []; | 
 |  |  |       this.topqueryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         serviceType: 7, | 
 |  |  |         searchscope: 2, | 
 |  |  |         sendstate:2, | 
 |  |  |       }; | 
 |  |  |       this.handleQuery(1); | 
 |  |  |     }, | 
 |  |  |     // 多选框选中数据 | 
 |  |  |     handleSelectionChange(selection) { | 
 |  |  |       this.ids = selection.map((item) => item.userId); | 
 |  |  |       this.single = selection.length != 1; | 
 |  |  |       this.multiple = !selection.length; | 
 |  |  |     }, | 
 |  |  |     //删除选项 | 
 |  |  |     handleClose(tag) { | 
 |  |  |       this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); | 
 |  |  |     }, | 
 |  |  |     //触发新增输入 | 
 |  |  |     showInput() { | 
 |  |  |       this.inputVisible = true; | 
 |  |  |       this.$nextTick((_) => { | 
 |  |  |         this.$refs.saveTagInput.$refs.input.focus(); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     //获取失去焦点触发 | 
 |  |  |     handleInputConfirm() { | 
 |  |  |       let inputValue = this.inputValue; | 
 |  |  |       if (inputValue) { | 
 |  |  |         this.dynamicTags.push(inputValue); | 
 |  |  |       } | 
 |  |  |       this.inputVisible = false; | 
 |  |  |       this.inputValue = ""; | 
 |  |  |     }, | 
 |  |  |     /** 新增按钮操作 */ | 
 |  |  |     handleAdd() { | 
 |  |  |       this.$router.push({ | 
 |  |  |         path: "/followvisit/QuestionnaireTask", | 
 |  |  |         query: { | 
 |  |  |           type: 2, | 
 |  |  |           serviceType: 7, | 
 |  |  |         }, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 重置密码按钮操作 */ | 
 |  |  |     handleResetPwd(row) { | 
 |  |  |       this.$prompt('请输入"' + row.userName + '"的新密码', "提示", { | 
 |  |  |         confirmButtonText: "确定", | 
 |  |  |         cancelButtonText: "取消", | 
 |  |  |         closeOnClickModal: false, | 
 |  |  |         inputPattern: /^.{5,20}$/, | 
 |  |  |         inputErrorMessage: "用户密码长度必须介于 5 和 20 之间", | 
 |  |  |       }) | 
 |  |  |         .then(({ value }) => { | 
 |  |  |           resetUserPwd(row.userId, value).then((response) => { | 
 |  |  |             this.$modal.msgSuccess("修改成功,新密码是:" + value); | 
 |  |  |           }); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 提交按钮 */ | 
 |  |  |     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.getList(1); | 
 |  |  |             }); | 
 |  |  |           } else { | 
 |  |  |             addUser(this.form).then((response) => { | 
 |  |  |               this.$modal.msgSuccess("新增成功"); | 
 |  |  |               this.open = false; | 
 |  |  |               this.getList(1); | 
 |  |  |             }); | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     /** 删除按钮操作 */ | 
 |  |  |     handleDelete(row) { | 
 |  |  |       const userIds = row.userId || this.ids; | 
 |  |  |       this.$modal | 
 |  |  |         .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?') | 
 |  |  |         .then(function () { | 
 |  |  |           return delUser(userIds); | 
 |  |  |         }) | 
 |  |  |         .then(() => { | 
 |  |  |           this.getList(1); | 
 |  |  |           this.$modal.msgSuccess("删除成功"); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     // 全部停止 | 
 |  |  |     AllStop() { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm("是否停止全部任务?") | 
 |  |  |         .then(function () { | 
 |  |  |           return console.log("停止成功"); | 
 |  |  |         }) | 
 |  |  |         .then(() => { | 
 |  |  |           this.getList(1); | 
 |  |  |           this.$modal.msgWarning("停止成功"); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     // 全部开始 | 
 |  |  |     AllStarted() { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm("是否开启全部任务?") | 
 |  |  |         .then(function () { | 
 |  |  |           return console.log("开启成功"); | 
 |  |  |         }) | 
 |  |  |         .then(() => { | 
 |  |  |           this.getList(1); | 
 |  |  |           this.$modal.msgSuccess("开启成功"); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     // 任务重置 | 
 |  |  |     TaskReset() { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm("是否重置选中的任务项?") | 
 |  |  |         .then(function () { | 
 |  |  |           return console.log("选中成功"); | 
 |  |  |         }) | 
 |  |  |         .then(() => { | 
 |  |  |           this.getList(1); | 
 |  |  |           this.$modal.msgSuccess("重置成功"); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     // 设置发送时间 | 
 |  |  |     Sendtimesetting() { | 
 |  |  |       this.modificationVisible = true; | 
 |  |  |     }, | 
 |  |  |     // 跳转详情页 | 
 |  |  |     Seedetails(row) { | 
 |  |  |       let type = ""; | 
 |  |  |       console.log(row, "rwo"); | 
 |  |  |       if (row.preachformson) { | 
 |  |  |         if (row.preachformson.includes("3")) { | 
 |  |  |           type = 1; | 
 |  |  |           console.log(type, "rwo"); | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       this.$router.push({ | 
 |  |  |         path: "/followvisit/record/detailpage/", | 
 |  |  |         query: { | 
 |  |  |           taskid: row.taskid, | 
 |  |  |           patid: row.patid, | 
 |  |  |           id: row.id, | 
 |  |  |           Voicetype: type, | 
 |  |  |         }, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 便捷按钮 | 
 |  |  |     toleadExport(too) { | 
 |  |  |       if (too == 1) { | 
 |  |  |         this.topqueryParams.sendstate = 4; | 
 |  |  |         this.topqueryParams.excep = null; | 
 |  |  |       } else if (too == 2) { | 
 |  |  |         this.topqueryParams.excep = 1; | 
 |  |  |       } | 
 |  |  |       this.handleQuery(); | 
 |  |  |     }, | 
 |  |  |     /** 导出按钮操作 */ | 
 |  |  |     handleExport() { | 
 |  |  |       this.topqueryParams.pageNum = null; | 
 |  |  |       this.topqueryParams.pageSize = null; | 
 |  |  |       this.download( | 
 |  |  |         "smartor/serviceSubtask/patItemExport", | 
 |  |  |         { | 
 |  |  |           ...this.topqueryParams, | 
 |  |  |         }, | 
 |  |  |         `user_${new Date().getTime()}.xlsx` | 
 |  |  |       ); | 
 |  |  |     }, | 
 |  |  |     // 异常列渲染 | 
 |  |  |     tableRowClassName({ row, rowIndex }) { | 
 |  |  |       if (row.excep == 1) { | 
 |  |  |         return "warning-row"; | 
 |  |  |       } | 
 |  |  |       return ""; | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped></style> | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .el-button--primary.is-plain { | 
 |  |  |   color: #ffffff; | 
 |  |  |   background: #409eff; | 
 |  |  |   border-color: #4fabe9; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .document { | 
 |  |  |   // width: 100px; | 
 |  |  |   height: 50px; | 
 |  |  | } | 
 |  |  | ::v-deep.el-table .warning-row { | 
 |  |  |   background: #eec4c4; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .documentf { | 
 |  |  |   display: flex; | 
 |  |  |   justify-content: flex-end; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .download { | 
 |  |  |   text-align: center; | 
 |  |  |  | 
 |  |  |   .el-upload__tip { | 
 |  |  |     font-size: 23px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .el-upload__text { | 
 |  |  |     font-size: 23px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .uploading { | 
 |  |  |   margin-top: 20px; | 
 |  |  |   margin: 20px; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #ffffff; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .el-tag + .el-tag { | 
 |  |  |   margin-left: 10px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .button-new-tag { | 
 |  |  |   margin-left: 10px; | 
 |  |  |   height: 32px; | 
 |  |  |   line-height: 30px; | 
 |  |  |   padding-top: 0; | 
 |  |  |   padding-bottom: 0; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .input-new-tag { | 
 |  |  |   width: 90px; | 
 |  |  |   margin-left: 10px; | 
 |  |  |   vertical-align: bottom; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .drexamine { | 
 |  |  |   display: flex; | 
 |  |  |   align-items: center; | 
 |  |  |   justify-content: center; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #daeaf5; | 
 |  |  |  | 
 |  |  |   img { | 
 |  |  |     width: 100px; | 
 |  |  |     height: 100px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .qrcode-dialo { | 
 |  |  |   // text-align: center; | 
 |  |  |   //   display: flex; | 
 |  |  |   margin: 20px; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #edf1f7; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  |  | 
 |  |  |   .topic-dev { | 
 |  |  |     margin-bottom: 25px; | 
 |  |  |     font-size: 20px !important; | 
 |  |  |  | 
 |  |  |     .dev-text { | 
 |  |  |       margin-bottom: 10px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | ::v-deep.leftvlue .el-card__body { | 
 |  |  |   background: #F2F8FF; | 
 |  |  |   color: #324A9B; | 
 |  |  | } | 
 |  |  | ::v-deep.leftvlue .el-card__body:hover { | 
 |  |  |   background: #3664D9; | 
 |  |  |   color: #fff; | 
 |  |  |   cursor: pointer; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  | ::v-deep.errleftvlue .el-card__body { | 
 |  |  |   background: #fdd0d7; | 
 |  |  | } | 
 |  |  | ::v-deep.errleftvlue .el-card__body:hover { | 
 |  |  |   background: #f88d96; | 
 |  |  |   cursor: pointer; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.ysfleftvlue .el-card__body { | 
 |  |  |   background: #d0fdd8; | 
 |  |  | } | 
 |  |  | ::v-deep.ysfleftvlue .el-card__body:hover { | 
 |  |  |   background: #8df8a4; | 
 |  |  |   cursor: pointer; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  | .button-bb { | 
 |  |  |   font-weight: 500; | 
 |  |  |   background-color: #2ba05c; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-xq { | 
 |  |  |   font-weight: 500; | 
 |  |  |   background-color: #409eff; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-sc { | 
 |  |  |   font-weight: 500; | 
 |  |  |   background-color: #dd302a; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-zx { | 
 |  |  |   background: #4fabe9; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-radio-group { | 
 |  |  |   span { | 
 |  |  |     font-size: 24px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // 选项字体放大 | 
 |  |  | // ::v-deep.el-checkbox-group { | 
 |  |  | //   span { | 
 |  |  | //     font-size: 24px; | 
 |  |  | //   } | 
 |  |  | // } | 
 |  |  | </style> |