|  |  | 
 |  |  |         label-width="98px" | 
 |  |  |       > | 
 |  |  |         <el-form-item label="任务名称"> | 
 |  |  |           <el-input v-model="topqueryParams.name"></el-input> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.taskName" | 
 |  |  |             @keyup.enter.native="handleQuery" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="审核人"> | 
 |  |  |           <el-input v-model="topqueryParams.name"></el-input> | 
 |  |  |         <el-form-item label="创建人"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.createBy" | 
 |  |  |             @keyup.enter.native="handleQuery" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="审核时间"> | 
 |  |  |         <el-form-item label="发送时间"> | 
 |  |  |           <el-date-picker | 
 |  |  |             v-model="dateRange" | 
 |  |  |             style="width: 240px" | 
 |  |  | 
 |  |  |             end-placeholder="结束日期" | 
 |  |  |           ></el-date-picker> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="随访类型" prop="status"> | 
 |  |  |           <el-select v-model="topqueryParams.topic" placeholder="请选择"> | 
 |  |  |             <el-option | 
 |  |  |               v-for="item in topicoptions" | 
 |  |  |               :key="item.value" | 
 |  |  |               :label="item.label" | 
 |  |  |               :value="item.value" | 
 |  |  |             > | 
 |  |  |             </el-option> | 
 |  |  |           </el-select> | 
 |  |  |  | 
 |  |  |         <el-form-item label="任务模板" prop="status"> | 
 |  |  |           <el-input | 
 |  |  |             v-model="topqueryParams.templatename" | 
 |  |  |             @keyup.enter.native="handleQuery" | 
 |  |  |           ></el-input> | 
 |  |  |         </el-form-item> | 
 |  |  |         <el-form-item label="模版" prop="status"> | 
 |  |  |           <el-select v-model="topqueryParams.topic" placeholder="请选择"> | 
 |  |  |         <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 label="门诊随访状态" prop="status"> | 
 |  |  |           <el-select v-model="topqueryParams.topic" placeholder="请选择"> | 
 |  |  |             <el-option | 
 |  |  |               v-for="item in topicoptions" | 
 |  |  |               v-for="item in dict.type.task_status" | 
 |  |  |               :key="item.value" | 
 |  |  |               :label="item.label" | 
 |  |  |               :value="item.value" | 
 |  |  | 
 |  |  |       <el-divider></el-divider> | 
 |  |  |       <el-row :gutter="10" class="mb8"> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-select | 
 |  |  |             @change="handleQuerytask" | 
 |  |  |             v-model="tasktopic" | 
 |  |  |             placeholder="请选择服务类型" | 
 |  |  |           > | 
 |  |  |             <el-option | 
 |  |  |               v-for="item in taskoptions" | 
 |  |  |               :key="item.value" | 
 |  |  |               :label="item.label" | 
 |  |  |               :value="item.value" | 
 |  |  |             > | 
 |  |  |             </el-option> | 
 |  |  |           </el-select> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-select | 
 |  |  |             @change="handleQuery" | 
 |  |  |             v-model="topqueryParams.type" | 
 |  |  |             placeholder="请选择执行类型" | 
 |  |  |           > | 
 |  |  |             <el-option | 
 |  |  |               v-for="item in longtermlist" | 
 |  |  |               :key="item.value" | 
 |  |  |               :label="item.label" | 
 |  |  |               :value="item.value" | 
 |  |  |             > | 
 |  |  |             </el-option> | 
 |  |  |           </el-select> | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-button | 
 |  |  |             type="primary" | 
 |  |  |             plain | 
 |  |  |             icon="el-icon-plus" | 
 |  |  |             size="medium" | 
 |  |  |             @click="handleAdd" | 
 |  |  |             v-hasPermi="['system:user:add']" | 
 |  |  |             >新增</el-button | 
 |  |  |             :disabled="!tasktopic" | 
 |  |  |             >新建任务</el-button | 
 |  |  |           > | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-button | 
 |  |  |             type="success" | 
 |  |  |             plain | 
 |  |  |             icon="el-icon-edit" | 
 |  |  |             size="medium" | 
 |  |  |             :disabled="single" | 
 |  |  |             @click="handleUpdate" | 
 |  |  |             v-hasPermi="['system:user:edit']" | 
 |  |  |             >修改</el-button | 
 |  |  |           > | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="1.5"> | 
 |  |  |           <el-button | 
 |  |  |             type="danger" | 
 |  |  |             plain | 
 |  |  |             icon="el-icon-delete" | 
 |  |  |             size="medium" | 
 |  |  |             :disabled="multiple" | 
 |  |  |             @click="handleDelete" | 
 |  |  |             v-hasPermi="['system:user:remove']" | 
 |  |  |             >删除</el-button | 
 |  |  |           > | 
 |  |  |         </el-col> | 
 |  |  |         <el-col :span="19"> | 
 |  |  |  | 
 |  |  |         <!-- <el-col :span="19"> | 
 |  |  |           <div class="documentf"> | 
 |  |  |             <div class="document"> | 
 |  |  |               <el-button | 
 |  |  | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |         </el-col> --> | 
 |  |  |         <!-- <el-col :span="1.5"> </el-col> --> | 
 |  |  |       </el-row> | 
 |  |  |       <!-- <right-toolbar | 
 |  |  | 
 |  |  |               @queryTable="getList" | 
 |  |  |               :columns="columns" | 
 |  |  |             ></right-toolbar> --> | 
 |  |  |       <el-table | 
 |  |  |         v-loading="loading" | 
 |  |  |         :data="userList" | 
 |  |  |         @selection-change="handleSelectionChange" | 
 |  |  |       > | 
 |  |  |         <el-table-column type="selection" width="50" align="center" /> | 
 |  |  |         <el-table-column label="序号" align="center" key="id" prop="id" /> | 
 |  |  |       <el-table v-loading="loading" :data="userList"> | 
 |  |  |         <!-- <el-table-column | 
 |  |  |           label="序号" | 
 |  |  |           fixed | 
 |  |  |           align="center" | 
 |  |  |           key="taskid" | 
 |  |  |           prop="taskid" | 
 |  |  |         /> --> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务名称" | 
 |  |  |           fixed | 
 |  |  |           align="center" | 
 |  |  |           sortable | 
 |  |  |           key="name" | 
 |  |  |           prop="name" | 
 |  |  |           key="taskName" | 
 |  |  |           prop="taskName" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务描述" | 
 |  |  |           align="center" | 
 |  |  |           key="describe" | 
 |  |  |           prop="describe" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="待执行/总任务" | 
 |  |  |           align="center" | 
 |  |  |           key="nickName" | 
 |  |  |           prop="nickName" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="状态" | 
 |  |  |           align="center" | 
 |  |  |           key="phonenumber" | 
 |  |  |           prop="phonenumber" | 
 |  |  |           width="120" | 
 |  |  |         /> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="审核人" | 
 |  |  |           align="center" | 
 |  |  |           key="create_by" | 
 |  |  |           prop="create_by" | 
 |  |  |           width="120" | 
 |  |  |           key="taskDesc" | 
 |  |  |           prop="taskDesc" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="审核时间" | 
 |  |  |           sortable | 
 |  |  |           label="服务项目" | 
 |  |  |           align="center" | 
 |  |  |           prop="create_time" | 
 |  |  |           width="160" | 
 |  |  |           key="templatename" | 
 |  |  |           prop="templatename" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="总任务/已随访" | 
 |  |  |           align="center" | 
 |  |  |           key="nickName" | 
 |  |  |           width="120" | 
 |  |  |           prop="nickName" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.create_time) }}</span> | 
 |  |  |             <span | 
 |  |  |               >{{ | 
 |  |  |                 scope.row.wfs || scope.row.wfs == 0 | 
 |  |  |                   ? scope.row.wfs + scope.row.yfs | 
 |  |  |                   : "" | 
 |  |  |               }}/{{ scope.row.yfs }}</span | 
 |  |  |             > | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="是否长期任务" | 
 |  |  |           align="center" | 
 |  |  |           key="longTask" | 
 |  |  |           prop="longTask" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ scope.row.longTask ? "长期任务" : "非长期" }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="状态" | 
 |  |  |           align="center" | 
 |  |  |           key="sendState" | 
 |  |  |           prop="sendState" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <dict-tag | 
 |  |  |               :options="dict.type.task_status" | 
 |  |  |               :value="scope.row.sendState" | 
 |  |  |             /> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |         <el-table-column | 
 |  |  |           label="创建人" | 
 |  |  |           align="center" | 
 |  |  |           key="create_by" | 
 |  |  |           prop="create_by" | 
 |  |  |           width="120" | 
 |  |  |           key="createBy" | 
 |  |  |           prop="createBy" | 
 |  |  |           :show-overflow-tooltip="true" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |           label="创建时间" | 
 |  |  |           sortable | 
 |  |  |           align="center" | 
 |  |  |           prop="create_time" | 
 |  |  |           width="160" | 
 |  |  |           prop="createTime" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.create_time) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 |  |  |        | 
 |  |  |         <el-table-column | 
 |  |  |           label="操作" | 
 |  |  |           fixed="right" | 
 |  |  |           align="center" | 
 |  |  |           width="120" | 
 |  |  |           width="240" | 
 |  |  |           class-name="small-padding fixed-width" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-button | 
 |  |  |               v-if=" | 
 |  |  |                 (scope.row.sendState == 1 || scope.row.sendState == 3) && | 
 |  |  |                 !scope.row.longTask | 
 |  |  |               " | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="handleUpdate(scope.row)" | 
 |  |  |               v-hasPermi="['system:user:edit']" | 
 |  |  |               @click="sponsor(scope.row)" | 
 |  |  |               ><span class="button-zx" | 
 |  |  |                 ><i class="el-icon-s-promotion"></i>开始执行</span | 
 |  |  |                 ><i class="el-icon-s-promotion"></i>发起</span | 
 |  |  |               ></el-button | 
 |  |  |             > | 
 |  |  |             <!-- <el-button size="medium" type="text" @click="newAdd(scope.row)" | 
 |  |  |               ><span class="button-xj" | 
 |  |  |                 ><i class="el-icon-circle-plus-outline"></i>终止</span | 
 |  |  |               ></el-button | 
 |  |  |             > --> | 
 |  |  |             <el-button | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="handleUpdate(scope.row, 1)" | 
 |  |  |               ><span class="button-xj" | 
 |  |  |                 ><i class="el-icon-circle-plus-outline"></i>依照新增</span | 
 |  |  |               ></el-button | 
 |  |  |             > | 
 |  |  |             <el-button | 
 |  |  |               v-if="scope.row.sendState == 2" | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="stop(scope.row)" | 
 |  |  |               ><span class="button-zt" | 
 |  |  |                 ><i class="el-icon-circle-plus-outline"></i>暂停</span | 
 |  |  |               ></el-button | 
 |  |  |             > | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="任务详情" | 
 |  |  |           fixed="right" | 
 |  |  |           align="center" | 
 |  |  |           width="200" | 
 |  |  |           width="240" | 
 |  |  |           class-name="small-padding fixed-width" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="handleUpdate(scope.row)" | 
 |  |  |               v-hasPermi="['system:user:edit']" | 
 |  |  |               ><span class="button-xq" | 
 |  |  |                 ><i class="el-icon-s-data"></i>详情</span | 
 |  |  |               ></el-button | 
 |  |  |             > | 
 |  |  |             <!-- <el-button | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="handleUpdate(scope.row)" | 
 |  |  |               v-hasPermi="['system:user:edit']" | 
 |  |  |               ><span class="button-bb" | 
 |  |  |                 ><i class="el-icon-s-order"></i>报表</span | 
 |  |  |               ></el-button | 
 |  |  |             > --> | 
 |  |  |             <el-button | 
 |  |  |               size="medium" | 
 |  |  |               type="text" | 
 |  |  |               @click="handleUpdate(scope.row)" | 
 |  |  |               v-hasPermi="['system:user:edit']" | 
 |  |  |  | 
 |  |  |             <el-button size="medium" type="text" @click="deletefn(scope.row)" | 
 |  |  |               ><span class="button-sc" | 
 |  |  |                 ><i class="el-icon-delete"></i>删除</span | 
 |  |  |               ></el-button | 
 |  |  | 
 |  |  |         @pagination="getList" | 
 |  |  |       /> | 
 |  |  |     </el-row> | 
 |  |  |     <!-- 添加或修改门诊随访对话框 --> | 
 |  |  |     <!-- 确认发起对话框 --> | 
 |  |  |     <el-dialog | 
 |  |  |       :title="title" | 
 |  |  |       :visible.sync="addalteropen" | 
 |  |  |       width="700px" | 
 |  |  |       append-to-body | 
 |  |  |       title="任务发起确认" | 
 |  |  |       :visible.sync="taskformVisible" | 
 |  |  |       width="50%" | 
 |  |  |       :before-close="handleClose" | 
 |  |  |     > | 
 |  |  |       <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> | 
 |  |  |       <el-tabs type="border-card" v-model="activname"> | 
 |  |  |         <el-tab-pane> | 
 |  |  |           <span slot="label"><i class="el-icon-date"></i> 正常发起</span> | 
 |  |  |           <div style="font-size: 20px; color: red; margin-bottom: 20px"> | 
 |  |  |             请确认任务"{{ taskform.taskName }}"的执行时间 | 
 |  |  |           </div> | 
 |  |  |           <div | 
 |  |  |             style="font-size: 18px; margin-bottom: 20px" | 
 |  |  |             v-if="taskform.showDate" | 
 |  |  |           > | 
 |  |  |             执行日期:<span | 
 |  |  |               style="font-size: 18px; color: #2376b7; margin-bottom: 20px" | 
 |  |  |               >{{ taskform.showDate[0] }} 至 {{ taskform.showDate[1] }}</span | 
 |  |  |             > | 
 |  |  |           </div> | 
 |  |  |           <div | 
 |  |  |             style="font-size: 18px; margin-bottom: 20px" | 
 |  |  |             v-if="taskform.showTimeMorn[0]" | 
 |  |  |           > | 
 |  |  |             第一时间段:<span | 
 |  |  |               style="font-size: 18px; color: #2376b7; margin-bottom: 20px" | 
 |  |  |               >{{ taskform.showTimeMorn[0] }} 至 | 
 |  |  |               {{ taskform.showTimeMorn[1] }}</span | 
 |  |  |             > | 
 |  |  |           </div> | 
 |  |  |           <div | 
 |  |  |             style="font-size: 18px; margin-bottom: 20px" | 
 |  |  |             v-if="taskform.showTimeNight[0]" | 
 |  |  |           > | 
 |  |  |             第二时间段:<span | 
 |  |  |               style="font-size: 18px; color: #2376b7; margin-bottom: 20px" | 
 |  |  |               >{{ taskform.showTimeNight[0] }} 至 | 
 |  |  |               {{ taskform.showTimeNight[1] }}</span | 
 |  |  |             > | 
 |  |  |           </div> | 
 |  |  |           <div | 
 |  |  |             style="font-size: 18px; margin-bottom: 20px" | 
 |  |  |             v-if="taskform.showTimeNoon[0]" | 
 |  |  |           > | 
 |  |  |             第三时间段:<span | 
 |  |  |               style="font-size: 18px; color: #2376b7; margin-bottom: 20px" | 
 |  |  |               >{{ taskform.showTimeNoon[0] }} 至 | 
 |  |  |               {{ taskform.showTimeNoon[1] }}</span | 
 |  |  |             > | 
 |  |  |           </div> | 
 |  |  |         </el-tab-pane> | 
 |  |  |         <el-tab-pane label="立即执行"> | 
 |  |  |           <div style="font-size: 20px; color: red; margin-bottom: 20px"> | 
 |  |  |             此操作将立即发起并执行任务:{{ taskform.taskName }},请谨慎操作! | 
 |  |  |           </div> | 
 |  |  |         </el-tab-pane> | 
 |  |  |       </el-tabs> | 
 |  |  |       <div style="text-align: right; margin: 20px 0"> | 
 |  |  |         <el-button style="margin-right: 20px" @click="taskformVisible = false" | 
 |  |  |           >取 消</el-button | 
 |  |  |         > | 
 |  |  |         <el-button | 
 |  |  |           style="margin-right: 20px" | 
 |  |  |           type="success" | 
 |  |  |           @click="confirmSponsor(taskform)" | 
 |  |  |           >确认执行</el-button | 
 |  |  |         > | 
 |  |  |         <el-button type="primary" @click="handleUpdate(taskform)" | 
 |  |  |           >前往修改</el-button | 
 |  |  |         > | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | import { | 
 |  |  |   listUser, | 
 |  |  |   getUser, | 
 |  |  |   delUser, | 
 |  |  |   addUser, | 
 |  |  | 
 |  |  |   changeUserStatus, | 
 |  |  | } from "@/api/system/user"; | 
 |  |  | import { | 
 |  |  |   listsvr_prj, | 
 |  |  |   getsvr_task, | 
 |  |  |   addsvr_task, | 
 |  |  |   updatesvr_task, | 
 |  |  |   delsvr_task, | 
 |  |  | } from "@/api/smartorpor/svr_task"; | 
 |  |  |   getTasklist, | 
 |  |  |   getTaskInfo, | 
 |  |  |   Editsingletask, | 
 |  |  |   delTaskInfo, | 
 |  |  |   Questionnairetasklist, | 
 |  |  |   Questionnairetaskget, | 
 |  |  |   Questionnairetasksponsor, | 
 |  |  |   TaskTemplateSendExecution, | 
 |  |  | } from "@/api/AiCentre/index"; | 
 |  |  | import store from "@/store"; | 
 |  |  |  | 
 |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  |   name: "User", | 
 |  |  |   dicts: ["sys_normal_disable", "sys_user_sex"], | 
 |  |  |   name: "Tasklist", | 
 |  |  |   dicts: ["sys_normal_disable", "sys_user_sex", "task_status"], | 
 |  |  |   components: { Treeselect }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  | 
 |  |  |       // 用户表格数据 | 
 |  |  |       userList: null, | 
 |  |  |       // 弹出层标题 | 
 |  |  |       title: "新增门诊随访", | 
 |  |  |       title: "新增影像随访", | 
 |  |  |       // 是否显示修改、添加弹出层 | 
 |  |  |       addalteropen: false, | 
 |  |  |       // 部门名称 | 
 |  |  | 
 |  |  |       postOptions: [], | 
 |  |  |       // 角色选项 | 
 |  |  |       roleOptions: [], | 
 |  |  |       longTask: 0, | 
 |  |  |       taskform: { | 
 |  |  |         showDate: [], | 
 |  |  |         showTimeMorn: [], | 
 |  |  |         showTimeNight: [], | 
 |  |  |         showTimeNoon: [], | 
 |  |  |       }, | 
 |  |  |       taskformVisible: false, | 
 |  |  |       dynamicTags: ["选项一", "选项二", "选项三"], //选项 | 
 |  |  |       inputVisible: false, | 
 |  |  |       inputValue: "", | 
 |  |  |       previewVisible: false, //门诊随访预览弹框 | 
 |  |  |       previewVisible: false, //影像随访预览弹框 | 
 |  |  |       TaskOperation: {}, | 
 |  |  |       radio: "", | 
 |  |  |       radios: [], | 
 |  |  |       previewtype: 2, //预览门诊随访类型 | 
 |  |  |       previewtype: 2, //预览影像随访类型 | 
 |  |  |       total: 0, // 总条数 | 
 |  |  |       ImportQuantity: 999, //导门诊随访数量 | 
 |  |  |       //预览门诊随访信息 | 
 |  |  |       ImportQuantity: 999, //导影像随访数量 | 
 |  |  |       //预览影像随访信息 | 
 |  |  |       previewvalue: { | 
 |  |  |         username: "这个医生对你怎么样", | 
 |  |  |       }, | 
 |  |  |       longtermlist: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "语音随访", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "问卷随访", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "宣教关怀", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 4, | 
 |  |  |           label: "消息通知", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       taskoptions: store.getters.tasktypes, | 
 |  |  |       tasktopic: 2, //新增类型 | 
 |  |  |       activname: "", | 
 |  |  |       value: [], | 
 |  |  |       list: [], | 
 |  |  |       loading: false, | 
 |  |  | 
 |  |  |       topqueryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         type: 2, | 
 |  |  |         userName: undefined, | 
 |  |  |         tagid: undefined, | 
 |  |  |         topic: undefined, | 
 |  |  |       }, | 
 |  |  |       propss: { multiple: true }, | 
 |  |  |       options: [], | 
 |  |  |  | 
 |  |  |       topicoptions: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "待审核", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "执行中", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "执行完成", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 4, | 
 |  |  |           label: "已停止", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       checkboxlist: [], | 
 |  |  |       // 表单校验 | 
 |  |  |       rules: { | 
 |  |  |         userName: [ | 
 |  |  | 
 |  |  |   }, | 
 |  |  |   watch: {}, | 
 |  |  |   created() { | 
 |  |  |     // this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |     //   (obj) => obj.deptCode | 
 |  |  |     // ); | 
 |  |  |     // this.topqueryParams.leavehospitaldistrictcodes = | 
 |  |  |     //   store.getters.belongWards.map((obj) => obj.districtCode); | 
 |  |  |     this.tasktopic = this.$route.query.tasktopic | 
 |  |  |       ? this.$route.query.tasktopic | 
 |  |  |       : this.tasktopic; | 
 |  |  |     this.getList(); | 
 |  |  |     this.getConfigKey("sys.user.initPassword").then((response) => { | 
 |  |  |       this.initPassword = response.msg; | 
 |  |  |     }); | 
 |  |  |     this.checkboxlist = store.getters.checkboxlist; | 
 |  |  |   }, | 
 |  |  |   activated() { | 
 |  |  |     this.getList(); | 
 |  |  |   }, | 
 |  |  |   // 搜索 | 
 |  |  |   mounted() { | 
 |  |  | 
 |  |  |     }); | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** 查询门诊随访列表 */ | 
 |  |  |     /** 查询任务列表 */ | 
 |  |  |     getList() { | 
 |  |  |       this.loading = true; | 
 |  |  |       listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( | 
 |  |  |         (response) => { | 
 |  |  |           console.log(response); | 
 |  |  |           this.userList = response.rows; | 
 |  |  |           this.total = response.total; | 
 |  |  |           this.loading = false; | 
 |  |  |         } | 
 |  |  |       ); | 
 |  |  |  | 
 |  |  |       this.topqueryParams.serviceType = Number(this.tasktopic); | 
 |  |  |       if ( | 
 |  |  |         this.tasktopic == 2 || | 
 |  |  |         this.tasktopic == 3 || | 
 |  |  |         this.tasktopic == 1 || | 
 |  |  |         this.tasktopic == 7 || | 
 |  |  |         this.tasktopic == 5 || | 
 |  |  |         this.tasktopic == 6 | 
 |  |  |       ) { | 
 |  |  |         if (!this.topqueryParams.type) this.topqueryParams.type = "2"; | 
 |  |  |         this.longtermlist = [ | 
 |  |  |           { | 
 |  |  |             value: 1, | 
 |  |  |             label: "语音随访", | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             value: 2, | 
 |  |  |             label: "问卷随访", | 
 |  |  |           }, | 
 |  |  |         ]; | 
 |  |  |         this.topqueryParams.type = 2; | 
 |  |  |       } else if (this.tasktopic == 4 || this.tasktopic == 8) { | 
 |  |  |         if (!this.topqueryParams.type) this.topqueryParams.type = "3"; | 
 |  |  |         this.longtermlist = [ | 
 |  |  |           { | 
 |  |  |             value: 3, | 
 |  |  |             label: "宣教关怀", | 
 |  |  |           }, | 
 |  |  |         ]; | 
 |  |  |         this.topqueryParams.type = 3; | 
 |  |  |       } else if (this.tasktopic == 16) { | 
 |  |  |         if (!this.topqueryParams.type) this.topqueryParams.type = "2"; | 
 |  |  |         this.longtermlist = [ | 
 |  |  |           { | 
 |  |  |             value: 1, | 
 |  |  |             label: "语音随访", | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             value: 2, | 
 |  |  |             label: "问卷随访", | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             value: 3, | 
 |  |  |             label: "宣教关怀", | 
 |  |  |           }, | 
 |  |  |         ]; | 
 |  |  |         this.topqueryParams.type = 2; | 
 |  |  |       } | 
 |  |  |       this.topqueryParams.beginTime = this.dateRange[0]; | 
 |  |  |       this.topqueryParams.endTime = this.dateRange[1]; | 
 |  |  |       getTasklist(this.topqueryParams).then((response) => { | 
 |  |  |         this.userList = response.rows; | 
 |  |  |         this.total = response.total; | 
 |  |  |         this.$forceUpdate(); | 
 |  |  |         this.loading = false; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 查看门诊随访详情 | 
 |  |  |     // 查看影像随访详情 | 
 |  |  |     Referencequestion(row) { | 
 |  |  |       this.previewVisible = true; | 
 |  |  |     }, | 
 |  |  | 
 |  |  |         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 = { | 
 |  |  | 
 |  |  |       this.resetForm("form"); | 
 |  |  |     }, | 
 |  |  |     /** 搜索按钮操作 */ | 
 |  |  |     handleQuerytask() { | 
 |  |  |       this.topqueryParams.pageNum = 1; | 
 |  |  |       // this.topqueryParams.type = ''; | 
 |  |  |       this.getList(); | 
 |  |  |     }, | 
 |  |  |     handleQuery() { | 
 |  |  |       this.topqueryParams.pageNum = 1; | 
 |  |  |       this.getList(); | 
 |  |  | 
 |  |  |     resetQuery() { | 
 |  |  |       this.dateRange = []; | 
 |  |  |       this.resetForm("queryForm"); | 
 |  |  |       this.topqueryParams.deptId = undefined; | 
 |  |  |       this.$refs.tree.setCurrentKey(null); | 
 |  |  |       this.topqueryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         type: 2, | 
 |  |  |         userName: undefined, | 
 |  |  |         tagid: undefined, | 
 |  |  |         topic: undefined, | 
 |  |  |       }; | 
 |  |  |       // this.$refs.tree.setCurrentKey(null); | 
 |  |  |       this.handleQuery(); | 
 |  |  |     }, | 
 |  |  |     // 多选框选中数据 | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     /** 新增按钮操作 */ | 
 |  |  |     handleAdd() { | 
 |  |  |       this.$router.push({ | 
 |  |  |         path: "/followvisit/tasklist/FollowupDetails/", | 
 |  |  |       }); | 
 |  |  |       // this.reset(); | 
 |  |  |       // this.addalteropen = true; | 
 |  |  |       // getUser().then((response) => { | 
 |  |  |       //   this.postOptions = response.posts; | 
 |  |  |       //   this.roleOptions = response.roles; | 
 |  |  |       //   this.title = "新增门诊随访"; | 
 |  |  |       //   this.form.password = this.initPassword; | 
 |  |  |       // }); | 
 |  |  |       if (this.topqueryParams.type == 1) { | 
 |  |  |         this.$router.push({ | 
 |  |  |           path: "/followvisit/particty", | 
 |  |  |           query: { | 
 |  |  |             type: this.topqueryParams.type, | 
 |  |  |             serviceType: this.tasktopic, | 
 |  |  |           }, | 
 |  |  |         }); | 
 |  |  |       } else if (this.topqueryParams.type == 2) { | 
 |  |  |         this.$router.push({ | 
 |  |  |           path: "/followvisit/QuestionnaireTask", | 
 |  |  |           query: { | 
 |  |  |             type: this.topqueryParams.type, | 
 |  |  |             serviceType: this.tasktopic, | 
 |  |  |           }, | 
 |  |  |         }); | 
 |  |  |       } else if (this.topqueryParams.type == 3) { | 
 |  |  |         this.$router.push({ | 
 |  |  |           path: "/followvisit/Missioncreation", | 
 |  |  |           query: { | 
 |  |  |             type: this.topqueryParams.type, | 
 |  |  |             serviceType: this.tasktopic, | 
 |  |  |           }, | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     /** 修改按钮操作 */ | 
 |  |  |     handleUpdate(row) { | 
 |  |  |       // const userId = row.userId || this.ids; | 
 |  |  |       this.$router.push({ | 
 |  |  |         path: "/followvisit/tasklist/FollowupDetails/", | 
 |  |  |         query: { id: row.id }, | 
 |  |  |       }); | 
 |  |  |     handleUpdate(row, newadd) { | 
 |  |  |       if (this.topqueryParams.type == 1) { | 
 |  |  |         this.$router.push({ | 
 |  |  |           path: "/followvisit/particty", | 
 |  |  |           query: { | 
 |  |  |             id: row.taskid, | 
 |  |  |             type: this.topqueryParams.type, | 
 |  |  |             serviceType: this.tasktopic, | 
 |  |  |             newadd: newadd, //是否依照新建 | 
 |  |  |           }, | 
 |  |  |         }); | 
 |  |  |       } else if (this.topqueryParams.type == 2) { | 
 |  |  |         this.$router.push({ | 
 |  |  |           path: "/followvisit/QuestionnaireTask", | 
 |  |  |           query: { | 
 |  |  |             id: row.taskid, | 
 |  |  |             type: this.topqueryParams.type, | 
 |  |  |             serviceType: this.tasktopic, | 
 |  |  |             newadd: newadd, | 
 |  |  |           }, | 
 |  |  |         }); | 
 |  |  |       } else if (this.topqueryParams.type == 3) { | 
 |  |  |         this.$router.push({ | 
 |  |  |           path: "/followvisit/Missioncreation", | 
 |  |  |           query: { | 
 |  |  |             id: row.taskid, | 
 |  |  |             type: this.topqueryParams.type, | 
 |  |  |             serviceType: this.tasktopic, | 
 |  |  |             newadd: newadd, | 
 |  |  |           }, | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     /** 重置密码按钮操作 */ | 
 |  |  |     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); | 
 |  |  |     // 删除任务 | 
 |  |  |     deletefn(row) { | 
 |  |  |       this.$modal | 
 |  |  |         .confirm( | 
 |  |  |           '是否删除任务名称为"' + | 
 |  |  |             row.taskName + | 
 |  |  |             '"的数据项,删除后不可撤回!是否继续' | 
 |  |  |         ) | 
 |  |  |         .then(() => { | 
 |  |  |           delTaskInfo(row.taskid).then((res) => { | 
 |  |  |             if (res.code == 200) { | 
 |  |  |               this.getList(); | 
 |  |  |               this.$modal.msgSuccess("删除成功"); | 
 |  |  |             } | 
 |  |  |           }); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     // 任务发起 | 
 |  |  |     sponsor(row) { | 
 |  |  |       console.log(row, "任务信息"); | 
 |  |  |       this.taskform = row; | 
 |  |  |       if (this.taskform.showDate && this.taskform.sendType != 2) { | 
 |  |  |         this.taskform.showDate = this.taskform.showDate.split(","); | 
 |  |  |       } | 
 |  |  |       if (this.taskform.showTimeMorn && this.taskform.sendType != 2) { | 
 |  |  |         this.taskform.showTimeMorn = this.taskform.showTimeMorn.split(","); | 
 |  |  |       } else { | 
 |  |  |         this.taskform.showTimeMorn = []; | 
 |  |  |       } | 
 |  |  |       if (this.taskform.showTimeNight && this.taskform.sendType != 2) { | 
 |  |  |         this.taskform.showTimeNight = this.taskform.showTimeNight.split(","); | 
 |  |  |       } else { | 
 |  |  |         this.taskform.showTimeNight = []; | 
 |  |  |       } | 
 |  |  |       if (this.taskform.showTimeNoon && this.taskform.sendType != 2) { | 
 |  |  |         this.taskform.showTimeNoon = this.taskform.showTimeNoon.split(","); | 
 |  |  |       } else { | 
 |  |  |         this.taskform.showTimeNoon = []; | 
 |  |  |       } | 
 |  |  |       if (this.taskform.sendState != 2 && this.taskform.sendType != 2) { | 
 |  |  |         this.taskformVisible = true; | 
 |  |  |       } else if (this.taskform.sendState != 2 && this.taskform.sendType == 2) { | 
 |  |  |         this.TaskOperation.taskId = row.taskid; | 
 |  |  |         this.TaskOperation.taskType = this.topqueryParams.type; | 
 |  |  |         this.TaskOperation.sendState = 2; | 
 |  |  |         this.TaskOperation.sendType = 2; | 
 |  |  |         this.$modal | 
 |  |  |           .confirm( | 
 |  |  |             '当前选中任务名称为"' + | 
 |  |  |               row.taskName + | 
 |  |  |               '"的数据项为立即执行任务,发起执行后不可撤回!是否继续' | 
 |  |  |           ) | 
 |  |  |           .then(() => { | 
 |  |  |             TaskTemplateSendExecution(this.TaskOperation).then((res) => { | 
 |  |  |               if (res.code == 200) { | 
 |  |  |                 this.getList(); | 
 |  |  |                 this.$modal.msgSuccess("任务已立即执行"); | 
 |  |  |               } | 
 |  |  |             }); | 
 |  |  |           }) | 
 |  |  |           .catch(() => {}); | 
 |  |  |       } else { | 
 |  |  |         this.$modal.msgError("任务已发起,不可再次发起"); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 确认发起 | 
 |  |  |     confirmSponsor(row) { | 
 |  |  |       if (this.activname == 0) { | 
 |  |  |         this.TaskOperation.taskId = row.taskid; | 
 |  |  |         this.TaskOperation.taskType = this.topqueryParams.type; | 
 |  |  |         this.TaskOperation.sendState = 2; | 
 |  |  |         TaskTemplateSendExecution(this.TaskOperation).then((res) => { | 
 |  |  |           if (res.code == 200) { | 
 |  |  |             this.$modal.msgSuccess("任务已成功加入执行队列"); | 
 |  |  |             this.taskformVisible = false; | 
 |  |  |             this.getList(); | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |       } else if (this.activname == 1) { | 
 |  |  |         this.immediateExecution(row); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 立即执行 | 
 |  |  |     immediateExecution(row) { | 
 |  |  |       console.log(row, "任务信息"); | 
 |  |  |       if (row.sendState != 2) { | 
 |  |  |         this.TaskOperation.taskType = this.topqueryParams.type; | 
 |  |  |         this.TaskOperation.taskId = row.taskid; | 
 |  |  |         this.TaskOperation.sendState = 2; | 
 |  |  |         this.TaskOperation.sendType = 2; | 
 |  |  |         this.$modal | 
 |  |  |           .confirm( | 
 |  |  |             '是否立即执行任务名称为为"' + | 
 |  |  |               row.taskName + | 
 |  |  |               '"的数据项?发起执行后不可撤回!' | 
 |  |  |           ) | 
 |  |  |           .then(() => { | 
 |  |  |             TaskTemplateSendExecution(this.TaskOperation).then((res) => { | 
 |  |  |               if (res.code == 200) { | 
 |  |  |                 this.getList(); | 
 |  |  |                 this.$modal.msgSuccess("任务已立即执行"); | 
 |  |  |               } | 
 |  |  |             }); | 
 |  |  |           }) | 
 |  |  |           .then(() => {}) | 
 |  |  |           .catch(() => {}); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 暂停 | 
 |  |  |     stop(row) { | 
 |  |  |       console.log(row); | 
 |  |  |       if (row.sendState == 2) { | 
 |  |  |         this.TaskOperation.taskId = row.taskid; | 
 |  |  |         this.TaskOperation.sendState = 3; | 
 |  |  |         this.TaskOperation.sendType = ""; | 
 |  |  |         this.TaskOperation.taskType = row.type; | 
 |  |  |         TaskTemplateSendExecution(this.TaskOperation).then((res) => { | 
 |  |  |           this.$modal.msgSuccess("任务已暂停"); | 
 |  |  |           this.getList(); | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 提交按钮 */ | 
 |  |  | 
 |  |  |         }, | 
 |  |  |         `user_${new Date().getTime()}.xlsx` | 
 |  |  |       ); | 
 |  |  |     }, | 
 |  |  |     findLabelByValue(data, value) { | 
 |  |  |       const item = data.find((item) => item.value === value); | 
 |  |  |       return item ? item.label : null; | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-lj { | 
 |  |  |   background: #e9614f; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-xj { | 
 |  |  |   background: #815c94; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  | .button-zt { | 
 |  |  |   background: #f9c116; | 
 |  |  |   padding: 5px; | 
 |  |  |   border-radius: 1px; | 
 |  |  |   color: #ffffff; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-radio-group { | 
 |  |  |   span { | 
 |  |  | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-button + .el-button { | 
 |  |  |   margin-left: 0; | 
 |  |  | } | 
 |  |  | ::v-deep.el-checkbox-group { | 
 |  |  |   span { | 
 |  |  |     font-size: 24px; |