|  |  | 
 |  |  | <template> | 
 |  |  |   <div class="Questionnairemanagement"> | 
 |  |  |     <!-- 左侧栏 --> | 
 |  |  |     <div class="sidecolumn"> | 
 |  |  |     <!-- <div class="sidecolumn"> | 
 |  |  |       <div class="sidecolumn-top"> | 
 |  |  |         <div class="top-wj">医院患者</div> | 
 |  |  |       </div> | 
 |  |  | 
 |  |  |           v-model="queryParams.allhosp" | 
 |  |  |           @tab-click="handleClick" | 
 |  |  |         > | 
 |  |  |           <el-tab-pane label="住院患者" name="1"></el-tab-pane> | 
 |  |  |           <el-tab-pane label="出入院患者" name="1"></el-tab-pane> | 
 |  |  |           <el-tab-pane label="门诊患者" name="2"></el-tab-pane> | 
 |  |  |           <el-tab-pane label="体检患者" name="3"></el-tab-pane> | 
 |  |  |         </el-tabs> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     </div> --> | 
 |  |  |     <!-- 右侧数据 --> | 
 |  |  |  | 
 |  |  |     <div class="leftvlue"> | 
 |  |  |       <div> | 
 |  |  |       <!-- <div> | 
 |  |  |         <el-row :gutter="10"> | 
 |  |  |           <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index"> | 
 |  |  |             <el-card shadow="hover"> | 
 |  |  |               <div style="padding: 8px"> | 
 |  |  |             <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=" | 
 |  |  | 
 |  |  |             </el-card> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |       </div> | 
 |  |  |       </div> --> | 
 |  |  |       <div class="leftvlue-bg"> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <!--用户数据--> | 
 |  |  | 
 |  |  |               v-show="showSearch" | 
 |  |  |               label-width="98px" | 
 |  |  |             > | 
 |  |  |               <el-form-item label="院区" prop="userName"> | 
 |  |  |               <!-- <el-form-item label="院区" prop="userName"> | 
 |  |  |                 <el-select v-model="queryParams.value1" placeholder="请选择"> | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="item in options" | 
 |  |  | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="科室/病区" prop="userName"> | 
 |  |  |               </el-form-item> --> | 
 |  |  |               <!-- <el-form-item label="科室/病区" prop="userName"> | 
 |  |  |                 <el-select v-model="queryParams.value2" placeholder="请选择"> | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="item in options" | 
 |  |  | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |               </el-form-item> --> | 
 |  |  |               <el-form-item | 
 |  |  |                 label-width="138px" | 
 |  |  |                 label="主治医生" | 
 |  |  |                 prop="userName" | 
 |  |  |               > | 
 |  |  |                 <el-select v-model="queryParams.value3" placeholder="请选择"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.drname" | 
 |  |  |                   placeholder="请输入医生姓名" | 
 |  |  |                   maxlength="30" | 
 |  |  |                   @keyup.enter.native="handleQuery" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |  | 
 |  |  |               <el-form-item label="患者档案号" prop="visitno"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.visitno" | 
 |  |  |                   placeholder="请输入编号" | 
 |  |  |                   maxlength="30" | 
 |  |  |                   @keyup.enter.native="handleQuery" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="患者姓名" prop="name"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.name" | 
 |  |  |                   placeholder="请输入姓名" | 
 |  |  |                   maxlength="30" | 
 |  |  |                   @keyup.enter.native="handleQuery" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |               <!-- <el-form-item label="患者范围" prop="tagId"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="queryParams.searchscope" | 
 |  |  |                   placeholder="请选择患者范围" | 
 |  |  |                 > | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="item in options" | 
 |  |  |                     v-for="item in source" | 
 |  |  |                     :key="item.value" | 
 |  |  |                     :label="item.label" | 
 |  |  |                     :value="item.value" | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="入院日期" prop="userName"> | 
 |  |  |                 <el-date-picker | 
 |  |  |                   v-model="queryParams.valuetime1" | 
 |  |  |                   align="right" | 
 |  |  |                   type="date" | 
 |  |  |                   placeholder="选择日期" | 
 |  |  |                 > | 
 |  |  |                 </el-date-picker> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="出院日期" prop="departuretime"> | 
 |  |  |                 <el-date-picker | 
 |  |  |                   v-model="queryParams.departuretime" | 
 |  |  |                   align="right" | 
 |  |  |                   type="date" | 
 |  |  |                   placeholder="选择日期" | 
 |  |  |                 > | 
 |  |  |                 </el-date-picker> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="就诊编号" prop="number"> | 
 |  |  |               </el-form-item> --> | 
 |  |  |               <!-- <el-form-item label="患者范围" prop="status"> | 
 |  |  |                 <el-cascader | 
 |  |  |                   v-model="queryParams.scopetype" | 
 |  |  |                   placeholder="默认全部" | 
 |  |  |                   :options="sourcetype" | 
 |  |  |                   :props="{ expandTrigger: 'hover' }" | 
 |  |  |                   @change="handleChange" | 
 |  |  |                 ></el-cascader> | 
 |  |  |               </el-form-item> --> | 
 |  |  |               <el-form-item label="联系电话" prop="telcode"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.number" | 
 |  |  |                   placeholder="请输入编号" | 
 |  |  |                   v-model="queryParams.telcode" | 
 |  |  |                   placeholder="请输入联系电话" | 
 |  |  |                   maxlength="30" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="姓名" prop="name"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="queryParams.name" | 
 |  |  |                   placeholder="请输入姓名" | 
 |  |  |                   maxlength="30" | 
 |  |  |                   @keyup.enter.native="handleQuery" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |  | 
 |  |  | 
 |  |  |             </el-form> | 
 |  |  |  | 
 |  |  |             <el-row :gutter="10" class="mb8"> | 
 |  |  |               <el-col :span="1.5"> | 
 |  |  |               <!-- <el-col :span="1.5"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="primary" | 
 |  |  |                   plain | 
 |  |  | 
 |  |  |                   v-hasPermi="['system:user:add']" | 
 |  |  |                   >新增</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> --> | 
 |  |  |  | 
 |  |  |               <el-col :span="1.5"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="danger" | 
 |  |  | 
 |  |  |                   @click="handleDelete" | 
 |  |  |                   v-hasPermi="['system:user:remove']" | 
 |  |  |                   >删除</el-button | 
 |  |  |                 > | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="1.5"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="primary" | 
 |  |  |                   icon="el-icon-s-promotion" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="distribute" | 
 |  |  |                   >向任务派发患者</el-button | 
 |  |  |                 > | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="6"> | 
 |  |  | 
 |  |  |             <el-table | 
 |  |  |               v-loading="loading" | 
 |  |  |               :data="userList" | 
 |  |  |               height="808" | 
 |  |  |               @selection-change="handleSelectionChange" | 
 |  |  |             > | 
 |  |  |               <el-table-column type="selection" width="50" align="center" /> | 
 |  |  |               <el-table-column | 
 |  |  |               <!-- <el-table-column | 
 |  |  |                 fixed | 
 |  |  |                 label="序号" | 
 |  |  |                 align="center" | 
 |  |  |                 key="patid" | 
 |  |  |                 prop="patid" | 
 |  |  |               /> | 
 |  |  |               <el-table-column | 
 |  |  |                 key="id" | 
 |  |  |                 prop="id" | 
 |  |  |               /> --> | 
 |  |  |               <!-- <el-table-column | 
 |  |  |                 fixed | 
 |  |  |                 label="姓名" | 
 |  |  |           width="100" | 
 |  |  |                 align="center" | 
 |  |  |                 key="name" | 
 |  |  |                 prop="name" | 
 |  |  |               /> | 
 |  |  |               <el-table-column label="性别" align="center" key="sex" prop="sex"> | 
 |  |  |               /> --> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="姓名" | 
 |  |  |                 width="100" | 
 |  |  |                 align="center" | 
 |  |  |                 key="name" | 
 |  |  |                 prop="name" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <el-button | 
 |  |  |                     size="medium" | 
 |  |  |                     type="text" | 
 |  |  |                     @click="gettoken360(scope.row.idcardno,scope.row.drcode,scope.row.drname)" | 
 |  |  |                     ><span class="button-textsc">{{ | 
 |  |  |                       scope.row.name | 
 |  |  |                     }}</span></el-button | 
 |  |  |                   > | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="性别" | 
 |  |  |                 width="100" | 
 |  |  |                 align="center" | 
 |  |  |                 key="sex" | 
 |  |  |                 prop="sex" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> | 
 |  |  |                 </template> | 
 |  |  | 
 |  |  |                 align="center" | 
 |  |  |                 key="age" | 
 |  |  |                 prop="age" | 
 |  |  |                 width="120" | 
 |  |  |                 width="100" | 
 |  |  |               /> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="出生年月" | 
 |  |  |                 align="center" | 
 |  |  |                 key="birthdate" | 
 |  |  |                 prop="birthdate" | 
 |  |  |                 width="160" | 
 |  |  |                 width="120" | 
 |  |  |               > | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  | 
 |  |  |                 align="center" | 
 |  |  |                 key="placeOfResidence" | 
 |  |  |                 prop="placeOfResidence" | 
 |  |  |                 width="120" | 
 |  |  |                 width="150" | 
 |  |  |                 :show-overflow-tooltip="true" | 
 |  |  |               /> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="患者标签" | 
 |  |  |                 align="center" | 
 |  |  |                 key="tagList" | 
 |  |  |                 prop="tagList" | 
 |  |  |                 width="160" | 
 |  |  |                 width="180" | 
 |  |  |                 :show-overflow-tooltip="true" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span v-for="item in scope.row.tagList">{{ item }} </span> | 
 |  |  |                   <span v-for="item in scope.row.tagList" | 
 |  |  |                     >{{ item.tagname }} | 
 |  |  |                   </span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="证件类型" | 
 |  |  |                 align="center" | 
 |  |  |                 key="idcardtype" | 
 |  |  |                 prop="idcardtype" | 
 |  |  |                 width="120" | 
 |  |  |               /><el-table-column | 
 |  |  |                 label="证件号码" | 
 |  |  |                 align="center" | 
 |  |  |                 key="idcardno" | 
 |  |  | 
 |  |  |                 align="center" | 
 |  |  |                 key="telcode" | 
 |  |  |                 prop="telcode" | 
 |  |  |                 width="120" | 
 |  |  |               /> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="建档日期" | 
 |  |  |                 align="center" | 
 |  |  |                 key="createTime" | 
 |  |  |                 prop="createTime" | 
 |  |  |                 width="160" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="更新日期" | 
 |  |  |                 align="center" | 
 |  |  |                 prop="archivetime" | 
 |  |  |                 width="160" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |                   <span>{{ formatTime(scope.row.archivetime) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 fixed="right" | 
 |  |  |                 label="操作" | 
 |  |  |                 align="center" | 
 |  |  |                 width="190" | 
 |  |  |                 width="200" | 
 |  |  |                 class-name="small-padding fixed-width" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  | 
 |  |  |                     @click=" | 
 |  |  |                       $router.push({ | 
 |  |  |                         path: '/patient/patient/profile/', | 
 |  |  |                         query: { id: scope.row.patid }, | 
 |  |  |                         query: { id: scope.row.id }, | 
 |  |  |                       }) | 
 |  |  |                     " | 
 |  |  |                     v-hasPermi="['system:user:edit']" | 
 |  |  |                     ><span class="button-textsc" | 
 |  |  |                       ><i class="el-icon-zoom-in"></i>查看</span | 
 |  |  |                       ><i class="el-icon-zoom-in"></i>详情编辑</span | 
 |  |  |                     ></el-button | 
 |  |  |                   > | 
 |  |  |                   <el-button | 
 |  |  |                     size="medium" | 
 |  |  |                     type="text" | 
 |  |  |                     @click="handleUpdate(scope.row)" | 
 |  |  |                     v-hasPermi="['system:user:edit']" | 
 |  |  |                     ><span class="button-textxga" | 
 |  |  |                       ><i class="el-icon-edit"></i>修改</span | 
 |  |  |                       ><i class="el-icon-edit"></i>患者过滤</span | 
 |  |  |                     ></el-button | 
 |  |  |                   > | 
 |  |  |                   <el-button | 
 |  |  |                   <!-- <el-button | 
 |  |  |                     size="medium" | 
 |  |  |                     type="text" | 
 |  |  |                     @click="Distributionservice(scope.row)" | 
 |  |  |                     v-hasPermi="['system:user:edit']" | 
 |  |  |                     ><span class="button-textxg" | 
 |  |  |                       ><i class="el-icon-menu"></i>服务</span | 
 |  |  |                     ></el-button | 
 |  |  |                   > | 
 |  |  |                   > --> | 
 |  |  |                   <!-- <el-button | 
 |  |  |                     size="medium" | 
 |  |  |                     type="text" | 
 |  |  |                     @click="RiskMarker(scope.row)" | 
 |  |  |                     ><span class="button-textxg" | 
 |  |  |                       ><i class="el-icon-menu"></i>风险标记</span | 
 |  |  |                     ></el-button | 
 |  |  |                   > --> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |             </el-table> | 
 |  |  | 
 |  |  |         </el-row> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <el-dialog title="选择任务" :visible.sync="distributeVisible" width="70%"> | 
 |  |  |       <div class="preview-left"> | 
 |  |  |         <el-form | 
 |  |  |           :model="queryParams" | 
 |  |  |           ref="queryForm" | 
 |  |  |           size="small" | 
 |  |  |           :inline="true" | 
 |  |  |           label-width="98px" | 
 |  |  |         > | 
 |  |  |           <el-select | 
 |  |  |             @change="distribute" | 
 |  |  |             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-form> | 
 |  |  |         <el-table v-loading="loading" :data="taskuserList"> | 
 |  |  |           <el-table-column | 
 |  |  |             label="任务名称" | 
 |  |  |             fixed | 
 |  |  |             align="center" | 
 |  |  |             key="taskName" | 
 |  |  |             prop="taskName" | 
 |  |  |             width="140" | 
 |  |  |             :show-overflow-tooltip="true" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="任务描述" | 
 |  |  |             align="center" | 
 |  |  |             key="taskDesc" | 
 |  |  |             prop="taskDesc" | 
 |  |  |             width="180" | 
 |  |  |             :show-overflow-tooltip="true" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="服务项目" | 
 |  |  |             align="center" | 
 |  |  |             key="templatename" | 
 |  |  |             prop="templatename" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="总任务/已随访" | 
 |  |  |             align="center" | 
 |  |  |             key="nickName" | 
 |  |  |             width="120" | 
 |  |  |             prop="nickName" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span | 
 |  |  |                 >{{ scope.row.wfs ? scope.row.wfs + scope.row.yfs : "" }}/{{ | 
 |  |  |                   scope.row.yfs | 
 |  |  |                 }}</span | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  |             label="创建人" | 
 |  |  |             align="center" | 
 |  |  |             key="createBy" | 
 |  |  |             prop="createBy" | 
 |  |  |             width="120" | 
 |  |  |             :show-overflow-tooltip="true" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="创建时间" | 
 |  |  |             sortable | 
 |  |  |             align="center" | 
 |  |  |             prop="createTime" | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  |             label="状态" | 
 |  |  |             fixed="right" | 
 |  |  |             align="center" | 
 |  |  |             key="sendState" | 
 |  |  |             prop="sendState" | 
 |  |  |             width="180" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <dict-tag | 
 |  |  |                 :options="dict.type.task_status" | 
 |  |  |                 :value="scope.row.sendState" | 
 |  |  |               /> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |  | 
 |  |  |           <el-table-column | 
 |  |  |             label="任务详情" | 
 |  |  |             fixed="right" | 
 |  |  |             align="center" | 
 |  |  |             width="200" | 
 |  |  |             class-name="small-padding fixed-width" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 @click="handleUpdate(scope.row)" | 
 |  |  |                 ><span class="button-xq" | 
 |  |  |                   ><i class="el-icon-s-data"></i>选择派发</span | 
 |  |  |                 ></el-button | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |         </el-table> | 
 |  |  |  | 
 |  |  |         <pagination | 
 |  |  |           v-show="tasktotal > 0" | 
 |  |  |           :total="tasktotal" | 
 |  |  |           :page.sync="queryParams.pageNum" | 
 |  |  |           :limit.sync="queryParams.pageSize" | 
 |  |  |           @pagination="distribute" | 
 |  |  |         /> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |  | 
 |  |  |     <!-- 添加或修改用户配置对话框 --> | 
 |  |  |     <el-dialog | 
 |  |  | 
 |  |  |       <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="姓名" prop="name"> | 
 |  |  |             <el-form-item label="姓名" width="100" prop="name"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.name" | 
 |  |  |                 placeholder="请输入姓名" | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="性别" prop="sex"> | 
 |  |  |             <el-form-item label="性别" width="100" prop="sex"> | 
 |  |  |               <el-select v-model="form.sex" placeholder="请选择性别"> | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="dict in dict.type.sys_user_sex" | 
 |  |  |                   v-for="dict in sextype" | 
 |  |  |                   :key="dict.value" | 
 |  |  |                   :label="dict.label" | 
 |  |  |                   :value="dict.value" | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row> | 
 |  |  |         <el-row v-if="amendtag"> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="过滤医生" width="100" prop="filterDrname"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.filterDrname" | 
 |  |  |                 placeholder="请输入医生姓名" | 
 |  |  |                 maxlength="30" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row v-if="!amendtag"> | 
 |  |  |           <el-col :span="8"> | 
 |  |  |             <el-form-item label="民族" prop="name"> | 
 |  |  |               <el-input | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row> | 
 |  |  |  | 
 |  |  |         <el-row v-if="!amendtag"> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="证件类型" prop="idcardtype"> | 
 |  |  |               <el-select v-model="form.idcardtype" placeholder="请选择性别"> | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="item in paperstypes" | 
 |  |  |                   :key="item.papersname" | 
 |  |  |                   :label="item.papersname" | 
 |  |  |                   :value="item.papersname" | 
 |  |  |                 ></el-option> | 
 |  |  |               </el-select> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="证件号" prop="idcardno"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.idcardno" | 
 |  |  |                 placeholder="请输入证件号" | 
 |  |  |                 maxlength="50" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="出生地" prop="idcardno"> | 
 |  |  |             <el-form-item label="出生地" prop="birthplace"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.birthplace" | 
 |  |  |                 placeholder="国、省、地市、区县、街道等详细信息" | 
 |  |  | 
 |  |  |               /> | 
 |  |  |             </el-form-item> </el-col | 
 |  |  |           ><el-col :span="12"> | 
 |  |  |             <el-form-item label="居住地" prop="idcardno"> | 
 |  |  |             <el-form-item label="居住地" prop="placeOfResidence"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.placeOfResidence" | 
 |  |  |                 placeholder="国、省、地市、区县、街道等详细信息" | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |  | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |           <el-col :span="amendtag ? 12 : 24" v-if="!amendtag"> | 
 |  |  |             <el-form-item label="患者类型"> | 
 |  |  |               <el-select v-model="form.pattype" placeholder="请选择类型"> | 
 |  |  |                 <el-option | 
 |  |  | 
 |  |  |               </el-select> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <!-- <el-col :span="12" v-if="amendtag"> | 
 |  |  |             <el-form-item label="过滤说明"> | 
 |  |  |               <el-select v-model="form.notrequiredreason" placeholder="请选择过滤类型"> | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="item in dict.type.futter_patient" | 
 |  |  |                   :key="item.value" | 
 |  |  |                   :label="item.label" | 
 |  |  |                   :value="item.value" | 
 |  |  |                 ></el-option> | 
 |  |  |               </el-select> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> --> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |           <el-col :span="24" v-if="amendtag"> | 
 |  |  |             <el-form-item label="过滤原因"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.notrequiredreason" | 
 |  |  |                 type="textarea" | 
 |  |  |                 placeholder="请输入过滤原因" | 
 |  |  |               ></el-input> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="24" v-if="!amendtag"> | 
 |  |  |             <el-form-item label="备注"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="form.remark" | 
 |  |  | 
 |  |  |           :limit="1" | 
 |  |  |           accept=".xlsx, .xls" | 
 |  |  |           :headers="upload.headers" | 
 |  |  |           :action="upload.url + '?updateSupport=' + upload.updateSupport" | 
 |  |  |           :action="upload.url" | 
 |  |  |           :disabled="upload.isUploading" | 
 |  |  |           :on-progress="handleFileUploadProgress" | 
 |  |  |           :on-success="handleFileSuccess" | 
 |  |  |           :auto-upload="false" | 
 |  |  |           drag | 
 |  |  |         > | 
 |  |  |           <i class="el-icon-upload"></i> | 
 |  |  |           <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> | 
 |  |  |           <div class="el-upload__tip text-center" slot="tip"> | 
 |  |  |             <div class="el-upload__tip" slot="tip"> | 
 |  |  |             <!-- <div class="el-upload__tip" slot="tip"> | 
 |  |  |               <el-checkbox v-model="upload.updateSupport" /> | 
 |  |  |               是否更新已经存在的用户数据 | 
 |  |  |             </div> | 
 |  |  |             </div> --> | 
 |  |  |             <span>仅允许导入xls、xlsx格式文件。</span> | 
 |  |  |             <el-link | 
 |  |  |               type="primary" | 
 |  |  | 
 |  |  |               @click="importTemplate" | 
 |  |  |               >下载模板 | 
 |  |  |             </el-link> | 
 |  |  |             <el-link | 
 |  |  |             <!-- <el-link | 
 |  |  |               type="success" | 
 |  |  |               :underline="false" | 
 |  |  |               style="font-size: 24px; vertical-align: baseline" | 
 |  |  |               href="http://m.qpic.cn/psc?/V50ZTolo1AIhq00dqrJP2169QM2VHGTU/ruAMsa53pVQWN7FLK88i5qfmCJclyMduqqL6kjE4h7TXDAjimVtmLmTyGVfF4qlkyOISsYQ4Mxx705X2tkXEIUPrfCS4L4yK.f11SmO8Tq0!/b&bo=twb0AgAAAAADB2U!&rf=viewer_4" | 
 |  |  |               target="_blank" | 
 |  |  |             > | 
 |  |  |               查看模版</el-link | 
 |  |  |             > | 
 |  |  |               查看模板</el-link | 
 |  |  |             > --> | 
 |  |  |           </div> | 
 |  |  |         </el-upload> | 
 |  |  |       </div> | 
 |  |  | 
 |  |  |       <div class="uploading" v-else-if="dractive == 2"> | 
 |  |  |         <el-table :data="uploadingData" style="width: 100%"> | 
 |  |  |           <el-table-column prop="serial" label="序号"> </el-table-column> | 
 |  |  |           <el-table-column prop="name" label="姓名"> </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别"> </el-table-column> | 
 |  |  |           <el-table-column prop="certificate" label="证件类型"> | 
 |  |  |           <el-table-column prop="name" label="姓名" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |  | 
 |  |  |           <el-table-column prop="certificatenum" label="证件号码"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="goday" label="出生日期"> </el-table-column> | 
 |  |  | 
 |  |  |       <div v-if="dractive == 3"> | 
 |  |  |         <el-table :data="uploadingData" style="width: 100%"> | 
 |  |  |           <el-table-column prop="serial" label="序号"> </el-table-column> | 
 |  |  |           <el-table-column prop="name" label="姓名"> </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别"> </el-table-column> | 
 |  |  |           <el-table-column prop="certificate" label="证件类型"> | 
 |  |  |           <el-table-column prop="name" label="姓名" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="certificatenum" label="证件号码"> | 
 |  |  |           </el-table-column> | 
 |  |  | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 跳转服务对话框 --> | 
 |  |  |     <el-dialog title="选择服务类型" :visible.sync="serviceVisible"> | 
 |  |  |       <el-radio-group v-model="serviceradio"> | 
 |  |  |         <el-radio :label="1">宣教随访</el-radio> | 
 |  |  |         <el-radio :label="2">门诊服务</el-radio> | 
 |  |  |         <el-radio :label="3">出院服务</el-radio> | 
 |  |  |         <el-radio :label="4">复诊服务</el-radio> | 
 |  |  |         <el-radio :label="5">体检通知</el-radio> | 
 |  |  |         <el-radio :label="6">问卷服务</el-radio> | 
 |  |  |       </el-radio-group> | 
 |  |  |       <el-card class="box-card"> | 
 |  |  |         <el-radio-group v-model="serviceradio"> | 
 |  |  |           <el-radio :label="1">宣教随访</el-radio> | 
 |  |  |           <el-radio :label="2">门诊服务</el-radio> | 
 |  |  |           <el-radio :label="3">出院服务</el-radio> | 
 |  |  |           <el-radio :label="4">复诊服务</el-radio> | 
 |  |  |           <el-radio :label="5">体检通知</el-radio> | 
 |  |  |           <el-radio :label="6">问卷服务</el-radio> | 
 |  |  |         </el-radio-group> | 
 |  |  |       </el-card> | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="serviceVisible = false">取 消</el-button> | 
 |  |  |         <el-button type="primary" @click="CreateService">创建服务</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 风险类型 --> | 
 |  |  |     <el-dialog title="选择风险类型" :visible.sync="RiskVisible"> | 
 |  |  |       <el-card class="box-card"> | 
 |  |  |         <el-form> | 
 |  |  |           <el-form-item label="风险类型"> | 
 |  |  |             <el-radio-group v-model="Riskradio"> | 
 |  |  |               <el-radio :label="1">正常</el-radio> | 
 |  |  |               <el-radio :label="2">轻微</el-radio> | 
 |  |  |               <el-radio :label="3">高危</el-radio> | 
 |  |  |             </el-radio-group> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="活动性质"> | 
 |  |  |             <el-checkbox-group v-model="Risklist"> | 
 |  |  |               <el-checkbox label="情况1" name="type"></el-checkbox> | 
 |  |  |               <el-checkbox label="情况2" name="type"></el-checkbox> | 
 |  |  |               <el-checkbox label="情况3" name="type"></el-checkbox> | 
 |  |  |               <el-checkbox label="情况4" name="type"></el-checkbox> | 
 |  |  |             </el-checkbox-group> | 
 |  |  |           </el-form-item> | 
 |  |  |         </el-form> | 
 |  |  |       </el-card> | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="RiskVisible = false">取 消</el-button> | 
 |  |  |         <el-button type="primary" @click="RiskService">确认修改</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | 
 |  |  |   Exporterrorpatient, | 
 |  |  |   toleadpatient, | 
 |  |  | } from "@/api/patient/homepage"; | 
 |  |  | import { getTasklist,query360PatInfo } from "@/api/AiCentre/index"; | 
 |  |  | import { listtag } from "@/api/system/label"; | 
 |  |  | import { getToken } from "@/utils/auth"; | 
 |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  | import store from "@/store"; | 
 |  |  |  | 
 |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  |   name: "Userhuanze", | 
 |  |  |   dicts: ["sys_normal_disable", "sys_user_sex"], | 
 |  |  |   name: "Patient", | 
 |  |  |   dicts: [ | 
 |  |  |     "sys_normal_disable", | 
 |  |  |     "task_status", | 
 |  |  |     "sys_user_sex", | 
 |  |  |     "futter_patient", | 
 |  |  |   ], | 
 |  |  |   components: { Treeselect }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  | 
 |  |  |       showSearch: true, | 
 |  |  |       // 总条数 | 
 |  |  |       total: 0, | 
 |  |  |       tasktotal: 0, | 
 |  |  |       Risklist: [], | 
 |  |  |       // 用户表格数据 | 
 |  |  |       userList: null, | 
 |  |  |       taskuserList: null, | 
 |  |  |       // 弹出层标题 | 
 |  |  |       title: "", | 
 |  |  |       // 部门树选项 | 
 |  |  | 
 |  |  |       amendtag: false, //是否修改 | 
 |  |  |       serviceVisible: false, | 
 |  |  |       serviceradio: 1, | 
 |  |  |       distributeVisible: false, | 
 |  |  |       RiskVisible: false, | 
 |  |  |       tasktopic: "5", //新增类型 | 
 |  |  |       Riskradio: 1, | 
 |  |  |       RiskObj: {}, | 
 |  |  |       // 查询参数 | 
 |  |  |       topqueryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         userName: undefined, | 
 |  |  |         tagid: undefined, | 
 |  |  |         topic: undefined, | 
 |  |  |       }, | 
 |  |  |       // 日期范围 | 
 |  |  |       dateRange: [], | 
 |  |  |       taskoptions: [], | 
 |  |  |       paperstypes: [ | 
 |  |  |         { papersname: "身份证" }, | 
 |  |  |         { papersname: "护照" }, | 
 |  |  | 
 |  |  |       Patienttype: [ | 
 |  |  |         { | 
 |  |  |           value: "1", | 
 |  |  |           label: "住院患者", | 
 |  |  |           label: "在院患者", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: "2", | 
 |  |  |           label: "门诊患者", | 
 |  |  |         }, | 
 |  |  |  | 
 |  |  |         { | 
 |  |  |           value: "3", | 
 |  |  |           label: "体检患者", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: "4", | 
 |  |  |           label: "出院患者", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       sextype: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "男", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "女", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |  | 
 |  |  | 
 |  |  |         { | 
 |  |  |           name: "在院患者", | 
 |  |  |           value: 23, | 
 |  |  |           router: "/patient/inpatient", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "离院患者", | 
 |  |  |           name: "出院患者", | 
 |  |  |           value: 41, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "诊疗患者", | 
 |  |  |           value: 56, | 
 |  |  |           router: "/patient/hospital", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "离世患者", | 
 |  |  |           value: 0, | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       source: [ | 
 |  |  |         { | 
 |  |  |           value: 0, | 
 |  |  |           label: "所属患者", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "科室患者", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "病区患者", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       // 表单参数 | 
 |  |  | 
 |  |  |         telcode: "", | 
 |  |  |         idcardtype: "", | 
 |  |  |         relativetelcode: "", | 
 |  |  |       }, | 
 |  |  |       postData: { | 
 |  |  |         XiaoXiTou: { | 
 |  |  |           FaSongFCSJC: "ZJHES", | 
 |  |  |           FaSongJGID: localStorage.getItem("orgid"), | 
 |  |  |           FaSongJGMC: localStorage.getItem("orgname"), | 
 |  |  |           FaSongSJ: "2025-01-09 17:29:36", | 
 |  |  |           FaSongXTJC: "SUIFANGXT", | 
 |  |  |           FaSongXTMC: "随访系统", | 
 |  |  |           XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", | 
 |  |  |           XiaoXiLX: "SC_LC_360STCX", | 
 |  |  |           XiaoXiMC: "360 视图查询", | 
 |  |  |           ZuHuID: localStorage.getItem("ZuHuID"), | 
 |  |  |           ZuHuMC: localStorage.getItem("orgname"), | 
 |  |  |         }, | 
 |  |  |         YeWuXX: { | 
 |  |  |           BingRenXX: { | 
 |  |  |             ZhengJianHM: "", | 
 |  |  |             ZhengJianLXDM: "01", | 
 |  |  |             ZhengJianLXMC: "居民身份证", | 
 |  |  |             ZuZhiJGID: localStorage.getItem("orgid"), | 
 |  |  |             ZuZhiJGMC: localStorage.getItem("orgname"), | 
 |  |  |           }, | 
 |  |  |           YongHuXX: { | 
 |  |  |             XiTongID: "SUIFANGXT", | 
 |  |  |             XiTongMC: "随访系统", | 
 |  |  |             YongHuID: "1400466972205912064", | 
 |  |  |             YongHuXM: "JNRMYY", | 
 |  |  |             ZuZhiJGID: localStorage.getItem("orgid"), | 
 |  |  |             ZuZhiJGMC: localStorage.getItem("orgname"), | 
 |  |  |             idp: "lyra", | 
 |  |  |           }, | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       activeName: "first", //侧边选择 | 
 |  |  |       //导入进度 | 
 |  |  | 
 |  |  |         // 设置上传的请求头部 | 
 |  |  |         headers: { Authorization: "Bearer " + getToken() }, | 
 |  |  |         // 上传的地址 | 
 |  |  |         url: process.env.VUE_APP_BASE_API + "/system/user/importData", | 
 |  |  |         url: process.env.VUE_APP_BASE_API + "/smartor/import/importPatInfo", | 
 |  |  |       }, | 
 |  |  |       // 查询参数 | 
 |  |  |       queryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         allhosp: "1", | 
 |  |  |         allhosp: "0", | 
 |  |  |         pageSize: 10, | 
 |  |  |         idcardno: undefined, | 
 |  |  |         name: undefined, | 
 |  |  |         status: undefined, | 
 |  |  |         tagIds: undefined, | 
 |  |  |         telcode: undefined, | 
 |  |  |         notrequiredFlag: 0, | 
 |  |  |         searchscope: 2, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }, | 
 |  |  |       sourcetype: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "科室", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "病区", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "全部", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       // 表单校验 | 
 |  |  |       rules: { | 
 |  |  |         // userName: [ | 
 |  |  |         //   { required: true, message: "用户名称不能为空", trigger: "blur" }, | 
 |  |  |         //   { | 
 |  |  |         //     min: 2, | 
 |  |  |         //     max: 20, | 
 |  |  |         //     message: "用户名称长度必须介于 2 和 20 之间", | 
 |  |  |         //     trigger: "blur", | 
 |  |  |         //   }, | 
 |  |  |         // ], | 
 |  |  |         // nickName: [ | 
 |  |  |         //   { required: true, message: "用户昵称不能为空", trigger: "blur" }, | 
 |  |  |         // ], | 
 |  |  |         // password: [ | 
 |  |  |         //   { required: true, message: "用户密码不能为空", trigger: "blur" }, | 
 |  |  |         //   { | 
 |  |  |         //     min: 5, | 
 |  |  |         //     max: 20, | 
 |  |  |         //     message: "用户密码长度必须介于 5 和 20 之间", | 
 |  |  |         //     trigger: "blur", | 
 |  |  |         //   }, | 
 |  |  |         // ], | 
 |  |  |         // email: [ | 
 |  |  |         //   { | 
 |  |  |         //     type: "email", | 
 |  |  |         //     message: "请输入正确的邮箱地址", | 
 |  |  |         //     trigger: ["blur", "change"], | 
 |  |  |         //   }, | 
 |  |  |         // ], | 
 |  |  |         // phonenumber: [ | 
 |  |  |         //   { | 
 |  |  |         //     pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, | 
 |  |  |         //     message: "请输入正确的手机号码", | 
 |  |  |         //     trigger: "blur", | 
 |  |  |         //   }, | 
 |  |  |         // ], | 
 |  |  |         // IDnumber: [ | 
 |  |  |         //   { | 
 |  |  |         //     pattern: | 
 |  |  |         //       /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, | 
 |  |  |         //     message: "请输入正确的身份证号码", | 
 |  |  |         //     trigger: "blur", | 
 |  |  |         //   }, | 
 |  |  |         // ], | 
 |  |  |         name: [ | 
 |  |  |           { required: true, message: "用户名称不能为空", trigger: "blur" }, | 
 |  |  |           { | 
 |  |  |             min: 2, | 
 |  |  |             max: 20, | 
 |  |  |             message: "用户名称长度必须介于 2 和 20 之间", | 
 |  |  |             trigger: "blur", | 
 |  |  |           }, | 
 |  |  |         ], | 
 |  |  |  | 
 |  |  |         sex: [{ required: true, message: "性别不能为空", trigger: "blur" }], | 
 |  |  |         nation: [{ required: true, message: "民族不能为空", trigger: "blur" }], | 
 |  |  |         telcode: [ | 
 |  |  |           { required: true, message: "联系方式不能为空", trigger: "blur" }, | 
 |  |  |           { | 
 |  |  |             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, | 
 |  |  |             message: "请输入正确的手机号码", | 
 |  |  |             trigger: "blur", | 
 |  |  |           }, | 
 |  |  |         ], | 
 |  |  |  | 
 |  |  |         idcardno: [ | 
 |  |  |           { required: true, message: "证件号可能为空", trigger: "blur" }, | 
 |  |  |           { | 
 |  |  |             pattern: | 
 |  |  |               /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, | 
 |  |  |             message: "请输入正确的身份证号码", | 
 |  |  |             trigger: "blur", | 
 |  |  |           }, | 
 |  |  |         ], | 
 |  |  |         placeOfResidence: [ | 
 |  |  |           { required: true, message: "居住地不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |         birthplace: [ | 
 |  |  |           { required: true, message: "出生地不能为空", trigger: "blur" }, | 
 |  |  |         ], | 
 |  |  |       }, | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  | 
 |  |  |   created() { | 
 |  |  |     this.getList(); | 
 |  |  |     this.gettabList(); | 
 |  |  |     //获取已筛选后的可选任务类型 | 
 |  |  |     this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { | 
 |  |  |       return { | 
 |  |  |         label: dept.deptName, | 
 |  |  |         value: dept.deptCode, | 
 |  |  |       }; | 
 |  |  |     }); | 
 |  |  |     this.sourcetype[1].children = store.getters.belongWards.map((dept) => { | 
 |  |  |       return { | 
 |  |  |         label: dept.districtName, | 
 |  |  |         value: dept.districtCode, | 
 |  |  |       }; | 
 |  |  |     }); | 
 |  |  |     this.taskoptions = store.getters.Serviceauthority; | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** 查询患者列表 */ | 
 |  |  |     getList() { | 
 |  |  |       if (this.queryParams.searchscope == 3) { | 
 |  |  |         this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( | 
 |  |  |           (obj) => obj.deptCode | 
 |  |  |         ); | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes = | 
 |  |  |           store.getters.belongWards.map((obj) => obj.districtCode); | 
 |  |  |       } | 
 |  |  |       this.loading = true; | 
 |  |  |       messagelistpatient(this.queryParams).then((response) => { | 
 |  |  |         console.log(response); | 
 |  |  |         this.userList = response.rows; | 
 |  |  |         this.total = response.total; | 
 |  |  |         this.loading = false; | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     handleClick() { | 
 |  |  |       this.getList(); | 
 |  |  |     }, | 
 |  |  |     findLabelByValue(data, value) { | 
 |  |  |       const item = data.find((item) => item.value === value); | 
 |  |  |       return item ? item.label : null; | 
 |  |  |     }, | 
 |  |  |     /** 查询标签列表 */ | 
 |  |  |     gettabList() { | 
 |  |  | 
 |  |  |         this.optionstag = response.rows; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     //患者360跳转 | 
 |  |  |     gettoken360(sfzh,drcode,drname) { | 
 |  |  |       this.$modal.msgWarning('360功能暂未开通'); | 
 |  |  |   return; // 阻止后续代码执行 | 
 |  |  |       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; | 
 |  |  |       if (this.postData.XiaoXiTou.ZuHuMC=='丽水市中医院') { | 
 |  |  |         this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; | 
 |  |  |         this.postData.YeWuXX.YongHuXX.YongHuXM = 'LSZYY'; | 
 |  |  |       } | 
 |  |  |       query360PatInfo(this.postData).then((res) => { | 
 |  |  |         if (res.data.url) { | 
 |  |  |           window.open(res.data.url, "_blank"); | 
 |  |  |           // this.linkUrl = res.data.url; | 
 |  |  |         } else { | 
 |  |  |           this.$modal.msgWarning("360查询无结果"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 查询导入展示列表 | 
 |  |  |     geterryList() { | 
 |  |  |       this.loading = true; | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     Distributionservice(row) { | 
 |  |  |       this.serviceVisible = true; | 
 |  |  |     }, | 
 |  |  |     RiskMarker(row) { | 
 |  |  |       this.RiskVisible = true; | 
 |  |  |       this.RiskObj = row; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 取消按钮 | 
 |  |  | 
 |  |  |     /** 重置按钮操作 */ | 
 |  |  |     resetQuery() { | 
 |  |  |       this.dateRange = []; | 
 |  |  |       this.resetForm("queryForm"); | 
 |  |  |       this.$refs.tree.setCurrentKey(null); | 
 |  |  |       this.handleQuery(); | 
 |  |  |       this.queryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         allhosp: "0", | 
 |  |  |         pageSize: 10, | 
 |  |  |         notrequiredFlag: 0, | 
 |  |  |         searchscope: 2, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }; | 
 |  |  |         this.handleQuery(); | 
 |  |  |     }, | 
 |  |  |     // 多选框选中数据 | 
 |  |  |     handleSelectionChange(selection) { | 
 |  |  |       this.ids = selection.map((item) => item.patid); | 
 |  |  |       this.ids = selection.map((item) => item.id); | 
 |  |  |       this.single = selection.length != 1; | 
 |  |  |       this.multiple = !selection.length; | 
 |  |  |     }, | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     /** 修改按钮操作 */ | 
 |  |  |     handleUpdate(row) { | 
 |  |  |       console.log(row); | 
 |  |  |       const userIds = row.patid || this.ids; | 
 |  |  |       const userIds = row.id || this.ids; | 
 |  |  |       particularpatient(userIds).then((response) => { | 
 |  |  |         console.log(response); | 
 |  |  |         this.form = response.data; | 
 |  |  |         this.form.filterDrname = store.getters.nickName; | 
 |  |  |       }); | 
 |  |  |       this.amendtag = true; | 
 |  |  |       this.Labelchange = true; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     //修改/新增患者 | 
 |  |  |     submitForm() { | 
 |  |  |       if (this.amendtag) { | 
 |  |  |         alterpatient(this.form) | 
 |  |  |           .then((response) => { | 
 |  |  |             console.log(response); | 
 |  |  |           }) | 
 |  |  |           .then(() => { | 
 |  |  |             this.getList(); | 
 |  |  |             this.$modal.msgSuccess("修改成功"); | 
 |  |  |           }); | 
 |  |  |       } else { | 
 |  |  |         addpatient(this.form) | 
 |  |  |           .then((response) => { | 
 |  |  |             console.log(response); | 
 |  |  |           }) | 
 |  |  |           .then(() => { | 
 |  |  |             this.getList(); | 
 |  |  |             this.$modal.msgSuccess("添加成功"); | 
 |  |  |           }); | 
 |  |  |       } | 
 |  |  |       this.reset(); | 
 |  |  |       // this.idds = ""; | 
 |  |  |       this.Labelchange = false; | 
 |  |  |       this.$refs["form"].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           if (this.amendtag) { | 
 |  |  |             this.form.isoperation = 2; | 
 |  |  |             this.form.notrequiredFlag = 1; | 
 |  |  |             alterpatient(this.form) | 
 |  |  |               .then((response) => { | 
 |  |  |                 console.log(response); | 
 |  |  |               }) | 
 |  |  |               .then(() => { | 
 |  |  |                 this.getList(); | 
 |  |  |                 this.$modal.msgSuccess("患者过滤成功"); | 
 |  |  |               }); | 
 |  |  |           } else { | 
 |  |  |             this.form.isoperation = 1; | 
 |  |  |             alterpatient(this.form) | 
 |  |  |               .then((response) => { | 
 |  |  |                 console.log(response); | 
 |  |  |               }) | 
 |  |  |               .then(() => { | 
 |  |  |                 this.getList(); | 
 |  |  |                 this.$modal.msgSuccess("添加成功"); | 
 |  |  |               }); | 
 |  |  |           } | 
 |  |  |           this.reset(); | 
 |  |  |           // this.idds = ""; | 
 |  |  |           this.Labelchange = false; | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 患者范围处理 | 
 |  |  |     handleChange(value) { | 
 |  |  |       let type = value[0]; | 
 |  |  |       let code = value.slice(-1)[0]; | 
 |  |  |       this.queryParams.leavehospitaldistrictcodes = []; | 
 |  |  |       this.queryParams.leaveldeptcodes = []; | 
 |  |  |  | 
 |  |  |       if (type == 1) { | 
 |  |  |         this.queryParams.leaveldeptcodes.push(code); | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes = []; | 
 |  |  |         this.queryParams.searchscope = 1; | 
 |  |  |       } else if (type == 2) { | 
 |  |  |         this.queryParams.leavehospitaldistrictcodes.push(code); | 
 |  |  |         this.queryParams.leaveldeptcodes = []; | 
 |  |  |         this.queryParams.searchscope = 2; | 
 |  |  |       } else { | 
 |  |  |         this.queryParams.searchscope = 3; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     /** 删除按钮操作 */ | 
 |  |  |     handleDelete(row) { | 
 |  |  |       const userIds = row.userId || this.ids; | 
 |  |  | 
 |  |  |         query: { type: this.serviceradio }, | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     RiskService() { | 
 |  |  |       this.RiskObj.visitFlag = this.Risklist.join(", "); | 
 |  |  |       this.RiskObj.visitType = this.Riskradio; | 
 |  |  |       alterpatient(this.RiskObj).then((res) => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           this.getList(); | 
 |  |  |           this.Risklist = []; | 
 |  |  |           this.Riskradio = 1; | 
 |  |  |           this.$modal.msgSuccess("异常记录成功"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     distribute() { | 
 |  |  |       this.distributeVisible = true; | 
 |  |  |       if (this.tasktopic == 1) { | 
 |  |  |         this.topqueryParams.type = 3; | 
 |  |  |       } else if (this.tasktopic == 2) { | 
 |  |  |         this.topqueryParams.type = 1; | 
 |  |  |       } else if (this.tasktopic == 3) { | 
 |  |  |         this.topqueryParams.type = 1; | 
 |  |  |       } else if (this.tasktopic == 4) { | 
 |  |  |         this.topqueryParams.type = 1; | 
 |  |  |       } else if (this.tasktopic == 5) { | 
 |  |  |         this.topqueryParams.type = 1; | 
 |  |  |       } else if (this.tasktopic == 6) { | 
 |  |  |         this.topqueryParams.type = 2; | 
 |  |  |       } | 
 |  |  |       this.topqueryParams.typename = this.findLabelByValue( | 
 |  |  |         this.taskoptions, | 
 |  |  |         this.tasktopic | 
 |  |  |       ); | 
 |  |  |       getTasklist(this.topqueryParams).then((response) => { | 
 |  |  |         this.taskuserList = response.rows; | 
 |  |  |         this.tasktotal = response.total; | 
 |  |  |         this.$forceUpdate(); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     /** 导出按钮操作 */ | 
 |  |  |     handleExport() { | 
 |  |  |       this.download( | 
 |  |  | 
 |  |  |     /** 下载模板操作 */ | 
 |  |  |     importTemplate() { | 
 |  |  |       this.download( | 
 |  |  |         "system/user/importTemplate", | 
 |  |  |         "smartor/import/getImportPatTemplate", | 
 |  |  |         {}, | 
 |  |  |         `user_template_${new Date().getTime()}.xlsx` | 
 |  |  |       ); | 
 |  |  | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .Questionnairemanagement { | 
 |  |  |   display: flex; | 
 |  |  |   // display: flex; | 
 |  |  | } | 
 |  |  | .sidecolumn { | 
 |  |  |   width: 180px; | 
 |  |  |   min-height: 100vh; | 
 |  |  |   min-height: 80vh; | 
 |  |  |   position: fixed; | 
 |  |  |   text-align: center; | 
 |  |  |   //   display: flex; | 
 |  |  |   margin-top: 20px; | 
 |  |  |   margin: 20px; | 
 |  |  |   padding: 30px; | 
 |  |  |   padding: 15px; | 
 |  |  |   background: #d0e9fd; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  | 
 |  |  |     display: center !important; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .preview-left { | 
 |  |  |   margin: 20px; | 
 |  |  |   //   margin: 20px; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #ffff; | 
 |  |  |   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); | 
 |  |  |   .scriptTopic-dev { | 
 |  |  |     margin-bottom: 25px; | 
 |  |  |     font-size: 20px !important; | 
 |  |  |     .dev-text { | 
 |  |  |       margin-bottom: 10px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | ::v-deep.el-tabs--left, | 
 |  |  | .el-tabs--right { | 
 |  |  |   overflow: hidden; | 
 |  |  | 
 |  |  |   font-size: 20px; | 
 |  |  | } | 
 |  |  | ::v-deep.leftvlue .el-card__body { | 
 |  |  |   background: #d0e9fd; | 
 |  |  |   background: #F2F8FF; | 
 |  |  |   color: #324A9B; | 
 |  |  | } | 
 |  |  | ::v-deep.leftvlue .el-card__body:hover { | 
 |  |  |   background: #8dc8f8; | 
 |  |  |   background: #3664D9; | 
 |  |  |   color: #fff; | 
 |  |  |   cursor: pointer; /* 鼠标悬浮时变为手形 */ | 
 |  |  | } | 
 |  |  | .leftvlue { | 
 |  |  |   width: 80%; | 
 |  |  |   // width: 100%; | 
 |  |  |   // margin-left: 220px; | 
 |  |  |   margin-top: 10px; | 
 |  |  | } | 
 |  |  | .leftvlue-bg { | 
 |  |  | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .button-textsc { | 
 |  |  |   color: #28cfe6; | 
 |  |  |   color: #3664D9; | 
 |  |  | } | 
 |  |  | .button-textxga { | 
 |  |  |   color: #de7897; | 
 |  |  | } | 
 |  |  | .button-textxg { | 
 |  |  |   color: #de7897; |