|  |  | 
 |  |  | <template> | 
 |  |  |     <div class="app-container"> | 
 |  |  |       <el-row :gutter="20"> | 
 |  |  |         <!--用户数据--> | 
 |  |  |         <el-col :span="24" :xs="24"> | 
 |  |  |           <el-form | 
 |  |  |             :model="queryParams" | 
 |  |  |             ref="queryForm" | 
 |  |  |             size="small" | 
 |  |  |             :inline="true" | 
 |  |  |             v-show="showSearch" | 
 |  |  |             label-width="98px" | 
 |  |  |           > | 
 |  |  |             <el-form-item label="姓名" prop="name"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="queryParams.name" | 
 |  |  |                 placeholder="请输入姓名" | 
 |  |  |                 clearable | 
 |  |  |                 style="width: 200px" | 
 |  |  |                 @keyup.enter.native="handleQuery" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="患者编号" prop="iccardno"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="queryParams.iccardno" | 
 |  |  |                 placeholder="请输入患者编号" | 
 |  |  |                 clearable | 
 |  |  |                 style="width: 250px" | 
 |  |  |                 @keyup.enter.native="handleQuery" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="患者编号" prop="telcode"> | 
 |  |  |               <el-input | 
 |  |  |                 v-model="queryParams.telcode" | 
 |  |  |                 placeholder="请输入患者编号" | 
 |  |  |                 clearable | 
 |  |  |                 style="width: 280px" | 
 |  |  |                 @keyup.enter.native="handleQuery" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-form-item label="患者范围" prop="tagId"> | 
 |  |  |               <el-select | 
 |  |  |                 v-model="queryParams.Patientid" | 
 |  |  |                 multiple | 
 |  |  |                 placeholder="请选择" | 
 |  |  |   <div class="app-container"> | 
 |  |  |     <el-row :gutter="20"> | 
 |  |  |       <!--用户数据--> | 
 |  |  |       <el-col :span="24" :xs="24"> | 
 |  |  |         <el-form | 
 |  |  |           :model="queryParams" | 
 |  |  |           ref="queryForm" | 
 |  |  |           size="small" | 
 |  |  |           :inline="true" | 
 |  |  |           v-show="showSearch" | 
 |  |  |           label-width="98px" | 
 |  |  |         > | 
 |  |  |           <el-form-item label="姓名" width="100" prop="name"> | 
 |  |  |             <el-input | 
 |  |  |               v-model="queryParams.patname" | 
 |  |  |               placeholder="请输入姓名" | 
 |  |  |               clearable | 
 |  |  |               style="width: 200px" | 
 |  |  |               @keyup.enter.native="handleQuery" | 
 |  |  |             /> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="诊断" width="100" prop="name"> | 
 |  |  |             <el-input | 
 |  |  |               v-model="queryParams.diagname" | 
 |  |  |               placeholder="请输入诊断" | 
 |  |  |               clearable | 
 |  |  |               style="width: 200px" | 
 |  |  |               @keyup.enter.native="handleQuery" | 
 |  |  |             /> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="科室" width="100" prop="name"> | 
 |  |  |             <el-input | 
 |  |  |               v-model="queryParams.deptname" | 
 |  |  |               placeholder="请输入科室名称" | 
 |  |  |               clearable | 
 |  |  |               style="width: 200px" | 
 |  |  |               @keyup.enter.native="handleQuery" | 
 |  |  |             /> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="医生" width="100" prop="name"> | 
 |  |  |             <el-input | 
 |  |  |               v-model="queryParams.drname" | 
 |  |  |               placeholder="请输入医生姓名" | 
 |  |  |               clearable | 
 |  |  |               style="width: 200px" | 
 |  |  |               @keyup.enter.native="handleQuery" | 
 |  |  |             /> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-form-item label="病案号" prop="outhospno"> | 
 |  |  |             <el-input | 
 |  |  |               v-model="queryParams.outhospno" | 
 |  |  |               placeholder="请输入病案号" | 
 |  |  |               clearable | 
 |  |  |               style="width: 250px" | 
 |  |  |               @keyup.enter.native="handleQuery" | 
 |  |  |             /> | 
 |  |  |           </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="就诊日期"> | 
 |  |  |             <el-date-picker | 
 |  |  |               v-model="dateRange" | 
 |  |  |               style="width: 240px" | 
 |  |  |               value-format="yyyy-MM-dd" | 
 |  |  |               type="daterange" | 
 |  |  |               range-separator="-" | 
 |  |  |               start-placeholder="开始日期" | 
 |  |  |               end-placeholder="结束日期" | 
 |  |  |             ></el-date-picker> | 
 |  |  |             <!-- <el-date-picker | 
 |  |  |                 v-model="dateRange" | 
 |  |  |                 type="datetimerange" | 
 |  |  |                 value-format="yyyy-MM-dd HH:mm:ss" | 
 |  |  |                 start-placeholder="开始日期" | 
 |  |  |                 end-placeholder="结束日期" | 
 |  |  |                 :default-time="['12:00:00']" | 
 |  |  |               > | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="item in Patientrange" | 
 |  |  |                   :key="item.id" | 
 |  |  |                   :label="item.name" | 
 |  |  |                   :value="item.id" | 
 |  |  |                 > | 
 |  |  |                 </el-option> | 
 |  |  |               </el-select> | 
 |  |  |             </el-form-item> | 
 |  |  |             <el-row> | 
 |  |  |               <el-form-item label="患者标签" prop="tagId"> | 
 |  |  |                 <el-select | 
 |  |  |                   v-model="queryParams.tagIds" | 
 |  |  |                   multiple | 
 |  |  |                   placeholder="请选择" | 
 |  |  |                 > | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="item in optionstag" | 
 |  |  |                     :key="item.tagid" | 
 |  |  |                     :label="item.tagname" | 
 |  |  |                     :value="item.tagid" | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label=" 就诊日期 " prop="admitdate"> | 
 |  |  |                 <el-date-picker | 
 |  |  |                   clearable | 
 |  |  |                   v-model="queryParams.admitdate" | 
 |  |  |                   type="date" | 
 |  |  |                   value-format="yyyy-MM-dd" | 
 |  |  |                   placeholder="请选择 就诊日期 " | 
 |  |  |                 > | 
 |  |  |                 </el-date-picker> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item> | 
 |  |  |                 <el-button | 
 |  |  |                   type="primary" | 
 |  |  |                   icon="el-icon-search" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="handleQuery" | 
 |  |  |                   >搜索</el-button | 
 |  |  |                 > | 
 |  |  |                 <el-button | 
 |  |  |                   icon="el-icon-refresh" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="resetQuery" | 
 |  |  |                   >重置</el-button | 
 |  |  |                 > | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-row> | 
 |  |  |           </el-form> | 
 |  |  |    | 
 |  |  |           <el-row :gutter="10" class="mb8"> | 
 |  |  |             <el-col :span="1.5"> | 
 |  |  |               </el-date-picker> --> | 
 |  |  |           </el-form-item> | 
 |  |  |           <el-row> | 
 |  |  |             <!-- <el-form-item label=" 就诊日期 " prop="admitdate"> | 
 |  |  |               <el-date-picker | 
 |  |  |                 clearable | 
 |  |  |                 v-model="queryParams.admitdate" | 
 |  |  |                 type="date" | 
 |  |  |                 value-format="yyyy-MM-dd" | 
 |  |  |                 placeholder="请选择 就诊日期 " | 
 |  |  |               > | 
 |  |  |               </el-date-picker> | 
 |  |  |             </el-form-item> --> | 
 |  |  |  | 
 |  |  |             <el-form-item> | 
 |  |  |               <el-button | 
 |  |  |                 type="primary" | 
 |  |  |                 plain | 
 |  |  |                 icon="el-icon-plus" | 
 |  |  |                 icon="el-icon-search" | 
 |  |  |                 size="medium" | 
 |  |  |                 @click="handleAdd" | 
 |  |  |                 v-hasPermi="['system:user:add']" | 
 |  |  |                 >新增</el-button | 
 |  |  |                 @click="handleQuery" | 
 |  |  |                 >搜索</el-button | 
 |  |  |               > | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="1.5"> | 
 |  |  |               <el-button | 
 |  |  |                 type="success" | 
 |  |  |                 plain | 
 |  |  |                 icon="el-icon-edit" | 
 |  |  |                 icon="el-icon-refresh" | 
 |  |  |                 size="medium" | 
 |  |  |                 :disabled="single" | 
 |  |  |                 @click="handleUpdate" | 
 |  |  |                 v-hasPermi="['system:user:edit']" | 
 |  |  |                 >修改</el-button | 
 |  |  |                 @click="resetQuery" | 
 |  |  |                 >重置</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"> | 
 |  |  |               <div class="documentf"> | 
 |  |  |                 <div class="document"> | 
 |  |  |                   <el-button | 
 |  |  |                     type="info" | 
 |  |  |                     plain | 
 |  |  |                     icon="el-icon-upload2" | 
 |  |  |                     size="medium" | 
 |  |  |                     @click="handleImport" | 
 |  |  |                     v-hasPermi="['system:user:import']" | 
 |  |  |                     >导入</el-button | 
 |  |  |                   > | 
 |  |  |                 </div> | 
 |  |  |                 <div class="document"> | 
 |  |  |                   <el-button | 
 |  |  |                     type="warning" | 
 |  |  |                     plain | 
 |  |  |                     icon="el-icon-download" | 
 |  |  |                     size="medium" | 
 |  |  |                     @click="handleExport" | 
 |  |  |                     v-hasPermi="['system:user:export']" | 
 |  |  |                     >导出</el-button | 
 |  |  |                   > | 
 |  |  |                 </div> | 
 |  |  |               </div> | 
 |  |  |             </el-col> | 
 |  |  |             <!-- <el-col :span="1.5"> </el-col> --> | 
 |  |  |           </el-row> | 
 |  |  |           <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="patid" | 
 |  |  |               prop="patid" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="患者编号" | 
 |  |  |               align="center" | 
 |  |  |               key="Patientnumber" | 
 |  |  |               prop="Patientnumber" | 
 |  |  |             /> | 
 |  |  |             <el-table-column label="姓名" align="center" key="name" prop="name" /> | 
 |  |  |             <el-table-column label="性别" align="center" key="sex" prop="sex"> | 
 |  |  |               <template slot-scope="scope"> | 
 |  |  |                 <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> | 
 |  |  |               </template> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column | 
 |  |  |               label="年龄" | 
 |  |  |               align="center" | 
 |  |  |               key="age" | 
 |  |  |               prop="age" | 
 |  |  |               width="120" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="联系电话" | 
 |  |  |               align="center" | 
 |  |  |               key="telephone" | 
 |  |  |               prop="telephone" | 
 |  |  |               width="120" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="患者标签" | 
 |  |  |               align="center" | 
 |  |  |               key="tagList" | 
 |  |  |               prop="tagList" | 
 |  |  |               width="160" | 
 |  |  |               :show-overflow-tooltip="true" | 
 |  |  |             > | 
 |  |  |               <template slot-scope="scope"> | 
 |  |  |                 <span v-for="item in scope.row.tagList">{{ item }} </span> | 
 |  |  |               </template> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column | 
 |  |  |               label="就诊类别" | 
 |  |  |               align="center" | 
 |  |  |               key="iccardtype" | 
 |  |  |               prop="iccardtype" | 
 |  |  |               width="120" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="诊断" | 
 |  |  |               align="center" | 
 |  |  |               key="iccardno" | 
 |  |  |               prop="iccardno" | 
 |  |  |               width="190" | 
 |  |  |             /> | 
 |  |  |    | 
 |  |  |             <el-table-column | 
 |  |  |               label="科室" | 
 |  |  |               align="center" | 
 |  |  |               key="telcode" | 
 |  |  |               prop="telcode" | 
 |  |  |               width="120" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="医生" | 
 |  |  |               align="center" | 
 |  |  |               key="telcode" | 
 |  |  |               prop="telcode" | 
 |  |  |               width="120" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="状态" | 
 |  |  |               align="center" | 
 |  |  |               key="telcode" | 
 |  |  |               prop="telcode" | 
 |  |  |               width="120" | 
 |  |  |             /> | 
 |  |  |             <el-table-column | 
 |  |  |               label="就诊时间" | 
 |  |  |               align="center" | 
 |  |  |               key="archivetime" | 
 |  |  |               prop="archivetime" | 
 |  |  |               width="160" | 
 |  |  |             > | 
 |  |  |               <template slot-scope="scope"> | 
 |  |  |                 <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               </template> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column | 
 |  |  |               label="复诊时间" | 
 |  |  |               align="center" | 
 |  |  |               prop="updateTime" | 
 |  |  |               width="160" | 
 |  |  |             > | 
 |  |  |               <template slot-scope="scope"> | 
 |  |  |                 <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               </template> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column | 
 |  |  |               label="操作" | 
 |  |  |               align="center" | 
 |  |  |               width="160" | 
 |  |  |               class-name="small-padding fixed-width" | 
 |  |  |             > | 
 |  |  |               <template slot-scope="scope"> | 
 |  |  |                 <el-button | 
 |  |  |                   size="medium" | 
 |  |  |                   type="text" | 
 |  |  |                   @click=" | 
 |  |  |                     $router.push({ | 
 |  |  |                       path: '/patient/patient/profile/', | 
 |  |  |                       query: { id: scope.row.patid }, | 
 |  |  |                     }) | 
 |  |  |                   " | 
 |  |  |                   v-hasPermi="['system:user:edit']" | 
 |  |  |                   ><span class="button-textsc" | 
 |  |  |                     ><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-textxg" | 
 |  |  |                     ><i class="el-icon-edit"></i>修改</span | 
 |  |  |                   ></el-button | 
 |  |  |                 > | 
 |  |  |               </template> | 
 |  |  |             </el-table-column> | 
 |  |  |           </el-table> | 
 |  |  |    | 
 |  |  |           <pagination | 
 |  |  |             v-show="total > 0" | 
 |  |  |             :total="total" | 
 |  |  |             :page.sync="queryParams.pageNum" | 
 |  |  |             :limit.sync="queryParams.pageSize" | 
 |  |  |             @pagination="getList" | 
 |  |  |           /> | 
 |  |  |         </el-col> | 
 |  |  |       </el-row> | 
 |  |  |    | 
 |  |  |       <!-- 添加或修改用户配置对话框 --> | 
 |  |  |       <el-dialog | 
 |  |  |         :title="amendtag ? '修改患者信息' : '新增患者'" | 
 |  |  |         :visible.sync="Labelchange" | 
 |  |  |         width="900px" | 
 |  |  |       > | 
 |  |  |         <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="姓名" prop="name"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="form.name" | 
 |  |  |                   placeholder="请输入姓名" | 
 |  |  |                   maxlength="30" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="性别" prop="sex"> | 
 |  |  |                 <el-select v-model="form.sex" placeholder="请选择性别"> | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="dict in dict.type.sys_user_sex" | 
 |  |  |                     :key="dict.value" | 
 |  |  |                     :label="dict.label" | 
 |  |  |                     :value="dict.value" | 
 |  |  |                   ></el-option> | 
 |  |  |                 </el-select> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="证件类型" prop="iccardtype"> | 
 |  |  |                 <el-select v-model="form.iccardtype" 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="iccardno"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="form.iccardno" | 
 |  |  |                   placeholder="请输入证件号" | 
 |  |  |                   maxlength="50" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="本人手机号" prop="telcode"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="form.telcode" | 
 |  |  |                   placeholder="请输入手机号" | 
 |  |  |                   maxlength="30" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="亲属手机号" prop="relativetelcode"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="form.relativetelcode" | 
 |  |  |                   placeholder="请输入亲属手机号" | 
 |  |  |                   type="password" | 
 |  |  |                   maxlength="20" | 
 |  |  |                   show-password | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="年龄" prop="age"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="form.age" | 
 |  |  |                   placeholder="请输入年龄" | 
 |  |  |                   maxlength="30" | 
 |  |  |                 /> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             <el-col :span="12"> | 
 |  |  |               <el-form-item label="患者标签"> | 
 |  |  |                 <!-- <el-select v-model="form.sex" placeholder="请选择"> --> | 
 |  |  |                 <el-select v-model="form.tagList" multiple placeholder="请选择"> | 
 |  |  |                   <el-option | 
 |  |  |                     v-for="item in optionstag" | 
 |  |  |                     :key="item.tagid" | 
 |  |  |                     :label="item.tagname" | 
 |  |  |                     :value="item.tagid" | 
 |  |  |                   > | 
 |  |  |                   </el-option> | 
 |  |  |                 </el-select> | 
 |  |  |                 <!-- </el-select> --> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |           </el-row> | 
 |  |  |           <el-row> | 
 |  |  |             <el-col :span="24"> | 
 |  |  |               <el-form-item label="备注"> | 
 |  |  |                 <el-input | 
 |  |  |                   v-model="form.remark" | 
 |  |  |                   type="textarea" | 
 |  |  |                   placeholder="请输入内容" | 
 |  |  |                 ></el-input> | 
 |  |  |               </el-form-item> | 
 |  |  |             </el-col> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-row> | 
 |  |  |         </el-form> | 
 |  |  |         <div slot="footer" class="dialog-footer"> | 
 |  |  |           <el-button type="primary" @click="submitForm">确 定</el-button> | 
 |  |  |           <el-button @click="cancel">取 消</el-button> | 
 |  |  |         </div> | 
 |  |  |       </el-dialog> | 
 |  |  |    | 
 |  |  |       <!-- 用户导入对话框 --> | 
 |  |  |       <el-dialog | 
 |  |  |         :title="upload.title" | 
 |  |  |         :visible.sync="upload.open" | 
 |  |  |         width="70%" | 
 |  |  |         append-to-body | 
 |  |  |       > | 
 |  |  |         <el-steps :active="dractive" simple> | 
 |  |  |           <el-step title="上传导入文件" icon="el-icon-upload"></el-step> | 
 |  |  |           <el-step title="导入检查" icon="el-icon-picture"></el-step> | 
 |  |  |           <el-step title="导入结果" icon="el-icon-picture"></el-step> | 
 |  |  |         </el-steps> | 
 |  |  |         <!-- 上传导入文件 --> | 
 |  |  |         <div class="download" v-if="dractive == 1"> | 
 |  |  |           <el-upload | 
 |  |  |             class="upload-demo" | 
 |  |  |             ref="upload" | 
 |  |  |             :limit="1" | 
 |  |  |             accept=".xlsx, .xls" | 
 |  |  |             :headers="upload.headers" | 
 |  |  |             :action="upload.url + '?updateSupport=' + upload.updateSupport" | 
 |  |  |             :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"> | 
 |  |  |                 <el-checkbox v-model="upload.updateSupport" /> | 
 |  |  |                 是否更新已经存在的用户数据 | 
 |  |  |  | 
 |  |  |         <el-row :gutter="10" class="mb8"> | 
 |  |  |           <!-- <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 | 
 |  |  |             > | 
 |  |  |           </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="1.5"> | 
 |  |  |             <el-button | 
 |  |  |               type="warning" | 
 |  |  |               plain | 
 |  |  |               icon="el-icon-plus" | 
 |  |  |               size="medium" | 
 |  |  |               :disabled="multiple" | 
 |  |  |               @click="handleBatchAddTask" | 
 |  |  |             > | 
 |  |  |               批量添加任务</el-button | 
 |  |  |             > | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="19"> | 
 |  |  |             <div class="documentf"> | 
 |  |  |               <div class="document"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="info" | 
 |  |  |                   plain | 
 |  |  |                   icon="el-icon-upload2" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="handleImport" | 
 |  |  |                   v-hasPermi="['system:user:import']" | 
 |  |  |                   >导入</el-button | 
 |  |  |                 > | 
 |  |  |               </div> | 
 |  |  |               <span>仅允许导入xls、xlsx格式文件。</span> | 
 |  |  |               <el-link | 
 |  |  |                 type="primary" | 
 |  |  |                 :underline="false" | 
 |  |  |                 style="font-size: 24px; vertical-align: baseline" | 
 |  |  |                 @click="importTemplate" | 
 |  |  |                 >下载模板</el-link | 
 |  |  |               > | 
 |  |  |               <div class="document"> | 
 |  |  |                 <el-button | 
 |  |  |                   type="warning" | 
 |  |  |                   plain | 
 |  |  |                   icon="el-icon-download" | 
 |  |  |                   size="medium" | 
 |  |  |                   @click="handleExport" | 
 |  |  |                   v-hasPermi="['system:user:export']" | 
 |  |  |                   >导出</el-button | 
 |  |  |                 > | 
 |  |  |               </div> | 
 |  |  |             </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> | 
 |  |  |             <el-table-column prop="certificatenum" label="证件号码"> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column prop="goday" label="出生日期"> </el-table-column> | 
 |  |  |             <el-table-column prop="menum" label="本人联系方式"> </el-table-column> | 
 |  |  |             <el-table-column prop="younum" label="亲属联系方式"> | 
 |  |  |             </el-table-column> | 
 |  |  |             <el-table-column prop="tag" label="患者标签"> </el-table-column> | 
 |  |  |             <el-table-column prop="erry" label="错误原因"> </el-table-column> | 
 |  |  |           </el-table> | 
 |  |  |           <pagination | 
 |  |  |             v-show="total > 0" | 
 |  |  |             :total="total" | 
 |  |  |             :page.sync="queryParams.pageNum" | 
 |  |  |             :limit.sync="queryParams.pageSize" | 
 |  |  |             @pagination="geterryList" | 
 |  |  |           </el-col> | 
 |  |  |           <!-- <el-col :span="1.5"> </el-col> --> | 
 |  |  |         </el-row> | 
 |  |  |  | 
 |  |  |         <el-table | 
 |  |  |           v-loading="loading" | 
 |  |  |           :data="userList" | 
 |  |  |           @selection-change="handleSelectionChange" | 
 |  |  |         > | 
 |  |  |           <el-table-column type="selection" width="50" align="center" /> | 
 |  |  |           <!-- <el-table-column | 
 |  |  |             label="序号" | 
 |  |  |             fixed | 
 |  |  |             align="center" | 
 |  |  |             key="id" | 
 |  |  |             prop="id" | 
 |  |  |           /> --> | 
 |  |  |           <el-table-column | 
 |  |  |             label="就诊时间" | 
 |  |  |             align="center" | 
 |  |  |             key="admitdate" | 
 |  |  |             prop="admitdate" | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ formatTime(scope.row.admitdate) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <!-- <el-table-column | 
 |  |  |             label="病案号" | 
 |  |  |             align="center" | 
 |  |  |             key="patno" | 
 |  |  |             prop="patno" | 
 |  |  |           /> --> | 
 |  |  |           <el-table-column | 
 |  |  |             label="病案号" | 
 |  |  |             align="center" | 
 |  |  |             key="outhospno" | 
 |  |  |             prop="outhospno" | 
 |  |  |           /> | 
 |  |  |         </div> | 
 |  |  |         <!-- 完成 --> | 
 |  |  |         <div class="drexamine" v-else-if="dractive == 3"> | 
 |  |  |           <img | 
 |  |  |             src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" | 
 |  |  |           <el-table-column | 
 |  |  |             label="姓名" | 
 |  |  |             width="100" | 
 |  |  |             align="center" | 
 |  |  |             key="patname" | 
 |  |  |             prop="patname" | 
 |  |  |           > | 
 |  |  |             <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.patname | 
 |  |  |                 }}</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> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  |             label="年龄" | 
 |  |  |             align="center" | 
 |  |  |             key="age" | 
 |  |  |             prop="age" | 
 |  |  |             width="120" | 
 |  |  |           /> | 
 |  |  |           <p>导入患者成功!</p> | 
 |  |  |           <p>本次共计导入{{ ImportQuantity }}位患者</p> | 
 |  |  |         </div> | 
 |  |  |    | 
 |  |  |         <div slot="footer" class="dialog-footer" v-if="dractive == 3"> | 
 |  |  |           <!-- <el-button type="primary" @click="submitFileForm">下一步</el-button> --> | 
 |  |  |           <el-button @click="submitclose">完成</el-button> | 
 |  |  |         </div> | 
 |  |  |         <div slot="footer" v-else> | 
 |  |  |           <el-button type="primary" @click="submitFileForm">下一步</el-button> | 
 |  |  |           <el-button @click="submitclose">取 消</el-button> | 
 |  |  |         </div> | 
 |  |  |       </el-dialog> | 
 |  |  |     </div> | 
 |  |  |   </template> | 
 |  |  |    | 
 |  |  |   <script> | 
 |  |  |   import { delUser } from "@/api/system/user"; | 
 |  |  |   import { | 
 |  |  |     listpat_archive, | 
 |  |  |     getpat_archive, | 
 |  |  |     addpat_archive, | 
 |  |  |     updatepat_archive, | 
 |  |  |     delpat_archive, | 
 |  |  |   } from "@/api/smartorpor/pat_archive"; | 
 |  |  |   import { | 
 |  |  |     messagelistpatient, | 
 |  |  |     alterpatient, | 
 |  |  |     addpatient, | 
 |  |  |     particularpatient, | 
 |  |  |     deletepatient, | 
 |  |  |     Exporterrorpatient, | 
 |  |  |     toleadpatient, | 
 |  |  |   } from "@/api/patient/homepage"; | 
 |  |  |   import { listtag } from "@/api/system/label"; | 
 |  |  |   import { getToken } from "@/utils/auth"; | 
 |  |  |   import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  |   import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  |    | 
 |  |  |   export default { | 
 |  |  |     name: "Userhuanze", | 
 |  |  |     dicts: ["sys_normal_disable", "sys_user_sex"], | 
 |  |  |     components: { Treeselect }, | 
 |  |  |     data() { | 
 |  |  |       return { | 
 |  |  |         // 遮罩层 | 
 |  |  |         loading: true, | 
 |  |  |         // 选中数组 | 
 |  |  |         ids: [], | 
 |  |  |         // 非单个禁用 | 
 |  |  |         single: true, | 
 |  |  |         // 非多个禁用 | 
 |  |  |         multiple: true, | 
 |  |  |         // 显示搜索条件 | 
 |  |  |         showSearch: true, | 
 |  |  |         // 总条数 | 
 |  |  |         total: 0, | 
 |  |  |         // 用户表格数据 | 
 |  |  |         userList: null, | 
 |  |  |         // 弹出层标题 | 
 |  |  |         title: "", | 
 |  |  |         // 部门树选项 | 
 |  |  |         deptOptions: undefined, | 
 |  |  |         // 是否显示弹出层 | 
 |  |  |           <el-table-column | 
 |  |  |             label="联系电话" | 
 |  |  |             align="center" | 
 |  |  |             key="telcode" | 
 |  |  |             prop="telcode" | 
 |  |  |             width="120" | 
 |  |  |           /> | 
 |  |  |           <!-- <el-table-column | 
 |  |  |             label="患者标签(缺)" | 
 |  |  |             align="center" | 
 |  |  |             key="tagList" | 
 |  |  |             prop="tagList" | 
 |  |  |             width="160" | 
 |  |  |             :show-overflow-tooltip="true" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span v-for="item in scope.row.tagList">{{ item }} </span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> --> | 
 |  |  |  | 
 |  |  |           <el-table-column | 
 |  |  |             label="诊断" | 
 |  |  |             align="center" | 
 |  |  |             key="diagname" | 
 |  |  |             prop="diagname" | 
 |  |  |             width="190" | 
 |  |  |           /> | 
 |  |  |           <!-- <el-table-column | 
 |  |  |             label="主述" | 
 |  |  |             align="center" | 
 |  |  |             key="mainsuit" | 
 |  |  |             prop="mainsuit" | 
 |  |  |             width="120" | 
 |  |  |           /> --> | 
 |  |  |           <el-table-column | 
 |  |  |             label="就诊科室" | 
 |  |  |             align="center" | 
 |  |  |             key="deptname" | 
 |  |  |             prop="deptname" | 
 |  |  |             width="120" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="接诊医生" | 
 |  |  |             align="center" | 
 |  |  |             key="drname" | 
 |  |  |             prop="drname" | 
 |  |  |             width="120" | 
 |  |  |           /> | 
 |  |  |           <el-table-column | 
 |  |  |             label="是否存在任务" | 
 |  |  |             align="center" | 
 |  |  |             key="serverState" | 
 |  |  |             prop="serverState" | 
 |  |  |             width="100" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span | 
 |  |  |                 :style="{ | 
 |  |  |                   color: scope.row.serverState == 1 ? 'green' : 'gray', | 
 |  |  |                 }" | 
 |  |  |               > | 
 |  |  |                 {{ scope.row.serverState == 1 ? "是" : "无" }} | 
 |  |  |               </span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  |             label="操作" | 
 |  |  |             fixed="right" | 
 |  |  |             align="center" | 
 |  |  |             width="160" | 
 |  |  |             class-name="small-padding fixed-width" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <el-button | 
 |  |  |                 size="medium" | 
 |  |  |                 type="text" | 
 |  |  |                 @click=" | 
 |  |  |                   $router.push({ | 
 |  |  |                     path: '/patient/patient/profile/', | 
 |  |  |                     query: { id: scope.row.patid }, | 
 |  |  |                   }) | 
 |  |  |                 " | 
 |  |  |                 v-hasPermi="['system:user:edit']" | 
 |  |  |                 ><span class="button-textsc" | 
 |  |  |                   ><i class="el-icon-zoom-in"></i>查看</span | 
 |  |  |                 ></el-button | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |         </el-table> | 
 |  |  |  | 
 |  |  |         <pagination | 
 |  |  |           v-show="total > 0" | 
 |  |  |           :total="total" | 
 |  |  |           :page.sync="queryParams.pageNum" | 
 |  |  |           :limit.sync="queryParams.pageSize" | 
 |  |  |           @pagination="getList" | 
 |  |  |         /> | 
 |  |  |       </el-col> | 
 |  |  |     </el-row> | 
 |  |  |     <el-dialog | 
 |  |  |       title="批量添加任务" | 
 |  |  |       :visible.sync="batchTaskVisible" | 
 |  |  |       width="90%" | 
 |  |  |       append-to-body | 
 |  |  |     > | 
 |  |  |       <el-row :gutter="20"> | 
 |  |  |         <!-- 左侧:选中患者列表 --> | 
 |  |  |         <el-col :span="12"> | 
 |  |  |           <div class="batch-patient-section"> | 
 |  |  |             <h4>选中患者({{ selectedPatients.length }}人)</h4> | 
 |  |  |             <el-table | 
 |  |  |               :data="selectedPatients" | 
 |  |  |               border | 
 |  |  |               style="width: 100%" | 
 |  |  |               size="small" | 
 |  |  |             > | 
 |  |  |               <el-table-column prop="patname" label="姓名" width="100" /> | 
 |  |  |               <el-table-column prop="sex" label="性别" width="80"> | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   {{ scope.row.sex === 1 ? "男" : "女" }} | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="就诊时间" | 
 |  |  |                 align="center" | 
 |  |  |                 key="admitdate" | 
 |  |  |                 prop="admitdate" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ formatTime(scope.row.admitdate) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column prop="outhospno" label="病案号" /> | 
 |  |  |               <el-table-column prop="deptname" label="科室" /> | 
 |  |  |             </el-table> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |  | 
 |  |  |         <!-- 右侧:任务列表 --> | 
 |  |  |         <el-col :span="12"> | 
 |  |  |           <div class="batch-task-section"> | 
 |  |  |             <h4>任务列表(请选择1个任务)</h4> | 
 |  |  |             <el-table | 
 |  |  |               :data="taskList" | 
 |  |  |               border | 
 |  |  |               style="width: 100%" | 
 |  |  |               size="small" | 
 |  |  |               @current-change="handleTaskSelectionChange" | 
 |  |  |               highlight-current-row | 
 |  |  |             > | 
 |  |  |               <el-table-column | 
 |  |  |                 label="任务名称" | 
 |  |  |                 fixed | 
 |  |  |                 align="center" | 
 |  |  |                 key="taskName" | 
 |  |  |                 prop="taskName" | 
 |  |  |                 :show-overflow-tooltip="true" | 
 |  |  |               /> | 
 |  |  |  | 
 |  |  |               <el-table-column | 
 |  |  |                 label="服务项目" | 
 |  |  |                 align="center" | 
 |  |  |                 key="templatename" | 
 |  |  |                 prop="templatename" | 
 |  |  |                 :show-overflow-tooltip="true" | 
 |  |  |               /> | 
 |  |  |  | 
 |  |  |               <el-table-column | 
 |  |  |                 label="创建人" | 
 |  |  |                 align="center" | 
 |  |  |                 key="createBy" | 
 |  |  |                 prop="createBy" | 
 |  |  |                 :show-overflow-tooltip="true" | 
 |  |  |               /> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="创建时间" | 
 |  |  |                 sortable | 
 |  |  |                 align="center" | 
 |  |  |                 prop="createTime" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <template #empty> | 
 |  |  |                 <div class="empty-message"> | 
 |  |  |                   <i class="el-icon-warning"></i> | 
 |  |  |                   <span>患者科室无匹配服务</span> | 
 |  |  |                 </div> | 
 |  |  |               </template> | 
 |  |  |             </el-table> | 
 |  |  |           </div> | 
 |  |  |         </el-col> | 
 |  |  |       </el-row> | 
 |  |  |  | 
 |  |  |       <!-- 底部按钮 --> | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button @click="batchTaskVisible = false">取 消</el-button> | 
 |  |  |         <el-button | 
 |  |  |           type="primary" | 
 |  |  |           :loading="batchLoading" | 
 |  |  |           @click="submitBatchTask" | 
 |  |  |           >创建任务</el-button | 
 |  |  |         > | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |     <!-- 用户导入对话框 --> | 
 |  |  |     <el-dialog | 
 |  |  |       :title="upload.title" | 
 |  |  |       :visible.sync="upload.open" | 
 |  |  |       width="70%" | 
 |  |  |       append-to-body | 
 |  |  |     > | 
 |  |  |       <el-steps :active="dractive" simple> | 
 |  |  |         <el-step title="上传导入文件" icon="el-icon-upload"></el-step> | 
 |  |  |         <el-step title="导入检查" icon="el-icon-picture"></el-step> | 
 |  |  |         <el-step title="导入结果" icon="el-icon-picture"></el-step> | 
 |  |  |       </el-steps> | 
 |  |  |       <!-- 上传导入文件 --> | 
 |  |  |       <div class="download" v-if="dractive == 1"> | 
 |  |  |         <el-upload | 
 |  |  |           class="upload-demo" | 
 |  |  |           ref="upload" | 
 |  |  |           :limit="1" | 
 |  |  |           accept=".xlsx, .xls" | 
 |  |  |           :headers="upload.headers" | 
 |  |  |           :action="upload.url + '?updateSupport=' + upload.updateSupport" | 
 |  |  |           :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"> | 
 |  |  |               <el-checkbox v-model="upload.updateSupport" /> | 
 |  |  |               是否更新已经存在的用户数据 | 
 |  |  |             </div> | 
 |  |  |             <span>仅允许导入xls、xlsx格式文件。</span> | 
 |  |  |             <el-link | 
 |  |  |               type="primary" | 
 |  |  |               :underline="false" | 
 |  |  |               style="font-size: 24px; vertical-align: baseline" | 
 |  |  |               @click="importTemplate" | 
 |  |  |               >下载模板</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="姓名" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="sex" label="性别" width="100"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="certificate" label="证件类型"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="certificatenum" label="证件号码"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="goday" label="出生日期"> </el-table-column> | 
 |  |  |           <el-table-column prop="menum" label="本人联系方式"> </el-table-column> | 
 |  |  |           <el-table-column prop="younum" label="亲属联系方式"> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column prop="tag" label="患者标签"> </el-table-column> | 
 |  |  |           <el-table-column prop="erry" label="错误原因"> </el-table-column> | 
 |  |  |         </el-table> | 
 |  |  |         <pagination | 
 |  |  |           v-show="total > 0" | 
 |  |  |           :total="total" | 
 |  |  |           :page.sync="queryParams.pageNum" | 
 |  |  |           :limit.sync="queryParams.pageSize" | 
 |  |  |           @pagination="geterryList" | 
 |  |  |         /> | 
 |  |  |       </div> | 
 |  |  |       <!-- 完成 --> | 
 |  |  |       <div class="drexamine" v-else-if="dractive == 3"> | 
 |  |  |         <img | 
 |  |  |           src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" | 
 |  |  |         /> | 
 |  |  |         <p>导入患者成功!</p> | 
 |  |  |         <p>本次共计导入{{ ImportQuantity }}位患者</p> | 
 |  |  |       </div> | 
 |  |  |  | 
 |  |  |       <div slot="footer" class="dialog-footer" v-if="dractive == 3"> | 
 |  |  |         <!-- <el-button type="primary" @click="submitFileForm">下一步</el-button> --> | 
 |  |  |         <el-button @click="submitclose">完成</el-button> | 
 |  |  |       </div> | 
 |  |  |       <div slot="footer" v-else> | 
 |  |  |         <el-button type="primary" @click="submitFileForm">下一步</el-button> | 
 |  |  |         <el-button @click="submitclose">取 消</el-button> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | import { delUser } from "@/api/system/user"; | 
 |  |  |  | 
 |  |  | import { | 
 |  |  |   listPatouthosp, | 
 |  |  |   getPatouthosp, | 
 |  |  |   addPatouthosp, | 
 |  |  |   updatePatouthosp, | 
 |  |  |   delPatouthosp, | 
 |  |  | } from "@/api/smartor/patouthosp"; | 
 |  |  | import { particularpatient } from "@/api/patient/homepage"; | 
 |  |  | import { listtag } from "@/api/system/label"; | 
 |  |  | import { getToken } from "@/utils/auth"; | 
 |  |  | import Treeselect from "@riophae/vue-treeselect"; | 
 |  |  | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | 
 |  |  | import { query360PatInfo, getTasklist, addSubtask } from "@/api/AiCentre/index"; | 
 |  |  |  | 
 |  |  | import store from "@/store"; | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  |   name: "Userhuanze", | 
 |  |  |   dicts: ["sys_normal_disable", "sys_user_sex"], | 
 |  |  |   components: { Treeselect }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       // 遮罩层 | 
 |  |  |       loading: true, | 
 |  |  |       // 选中数组 | 
 |  |  |       ids: [], | 
 |  |  |       // 非单个禁用 | 
 |  |  |       single: true, | 
 |  |  |       // 非多个禁用 | 
 |  |  |       multiple: true, | 
 |  |  |       // 显示搜索条件 | 
 |  |  |       showSearch: true, | 
 |  |  |       // 总条数 | 
 |  |  |       total: 0, | 
 |  |  |       // 用户表格数据 | 
 |  |  |       userList: null, | 
 |  |  |       // 弹出层标题 | 
 |  |  |       title: "", | 
 |  |  |       // 部门树选项 | 
 |  |  |       deptOptions: undefined, | 
 |  |  |       // 是否显示弹出层 | 
 |  |  |       open: false, | 
 |  |  |       // 部门名称 | 
 |  |  |       deptName: undefined, | 
 |  |  |       // 默认密码 | 
 |  |  |       initPassword: undefined, | 
 |  |  |       amendtag: false, //是否修改 | 
 |  |  |       // 日期范围 | 
 |  |  |       dateRange: [], | 
 |  |  |       paperstypes: [ | 
 |  |  |         { papersname: "身份证" }, | 
 |  |  |         { papersname: "护照" }, | 
 |  |  |         { papersname: "中国港澳居民身份证" }, | 
 |  |  |         { papersname: "中国台湾居民身份证" }, | 
 |  |  |       ], | 
 |  |  |       // 表单参数 | 
 |  |  |       form: { | 
 |  |  |         name: "", | 
 |  |  |         age: "", | 
 |  |  |         sex: "", | 
 |  |  |         tagList: [], | 
 |  |  |         idcardno: "", | 
 |  |  |         telcode: "", | 
 |  |  |         idcardtype: "", | 
 |  |  |         relativetelcode: "", | 
 |  |  |       }, | 
 |  |  |       //导入进度 | 
 |  |  |       dractive: 1, | 
 |  |  |       // 导入展示表单 | 
 |  |  |       uploadingData: {}, | 
 |  |  |       total: 0, // 总条数 | 
 |  |  |       ImportQuantity: 999, //导入患者数量 | 
 |  |  |       Labelchange: false, //修改新增弹窗 | 
 |  |  |       propss: { multiple: true }, | 
 |  |  |       optionstag: [], //标签列表 | 
 |  |  |       batchTaskVisible: false, // 弹窗可见性 | 
 |  |  |       selectedPatients: [], // 选中的患者列表 | 
 |  |  |       taskList: [], // 任务列表 | 
 |  |  |       selectedTask: null, // 选中的任务列表 | 
 |  |  |       batchLoading: false, // 批量提交加载状态 | 
 |  |  |       deptcode: "", | 
 |  |  |       Patientrange: [ | 
 |  |  |         { | 
 |  |  |           name: "全部", | 
 |  |  |           id: 999, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           name: "当前科室", | 
 |  |  |           id: 1, | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       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", | 
 |  |  |           }, | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       defaultProps: { | 
 |  |  |         children: "children", | 
 |  |  |         label: "label", | 
 |  |  |       }, | 
 |  |  |       sourcetype: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "科室", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "病区", | 
 |  |  |           children: [], | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 3, | 
 |  |  |           label: "全部", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       // 用户导入参数 | 
 |  |  |       upload: { | 
 |  |  |         // 是否显示弹出层(用户导入) | 
 |  |  |         open: false, | 
 |  |  |         // 部门名称 | 
 |  |  |         deptName: undefined, | 
 |  |  |         // 默认密码 | 
 |  |  |         initPassword: undefined, | 
 |  |  |         amendtag: false, //是否修改 | 
 |  |  |         // 日期范围 | 
 |  |  |         dateRange: [], | 
 |  |  |         paperstypes: [ | 
 |  |  |           { papersname: "身份证" }, | 
 |  |  |           { papersname: "护照" }, | 
 |  |  |           { papersname: "中国港澳居民身份证" }, | 
 |  |  |           { papersname: "中国台湾居民身份证" }, | 
 |  |  |         ], | 
 |  |  |         // 表单参数 | 
 |  |  |         form: { | 
 |  |  |           name: "", | 
 |  |  |           age: "", | 
 |  |  |           sex: "", | 
 |  |  |           tagList: [], | 
 |  |  |           iccardno: "", | 
 |  |  |           telcode: "", | 
 |  |  |           iccardtype: "", | 
 |  |  |           relativetelcode: "", | 
 |  |  |         }, | 
 |  |  |         //导入进度 | 
 |  |  |         dractive: 1, | 
 |  |  |         // 导入展示表单 | 
 |  |  |         uploadingData: {}, | 
 |  |  |         total: 0, // 总条数 | 
 |  |  |         ImportQuantity: 999, //导入患者数量 | 
 |  |  |         Labelchange: false, //修改新增弹窗 | 
 |  |  |         propss: { multiple: true }, | 
 |  |  |         optionstag: [], //标签列表 | 
 |  |  |         Patientrange: [ | 
 |  |  |           { | 
 |  |  |             name: "全部", | 
 |  |  |             id: 1, | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             name: "当前科室", | 
 |  |  |             id: 1, | 
 |  |  |           }, | 
 |  |  |         ], | 
 |  |  |         defaultProps: { | 
 |  |  |           children: "children", | 
 |  |  |           label: "label", | 
 |  |  |         }, | 
 |  |  |         // 用户导入参数 | 
 |  |  |         upload: { | 
 |  |  |           // 是否显示弹出层(用户导入) | 
 |  |  |           open: false, | 
 |  |  |           // 弹出层标题(用户导入) | 
 |  |  |           title: "", | 
 |  |  |           // 是否禁用上传 | 
 |  |  |           isUploading: false, | 
 |  |  |           // 是否更新已经存在的用户数据 | 
 |  |  |           updateSupport: 0, | 
 |  |  |           // 设置上传的请求头部 | 
 |  |  |           headers: { Authorization: "Bearer " + getToken() }, | 
 |  |  |           // 上传的地址 | 
 |  |  |           url: process.env.VUE_APP_BASE_API + "/system/user/importData", | 
 |  |  |         }, | 
 |  |  |         // 查询参数 | 
 |  |  |         queryParams: { | 
 |  |  |           pageNum: 1, | 
 |  |  |           pageSize: 10, | 
 |  |  |           iccardno: undefined, | 
 |  |  |           name: undefined, | 
 |  |  |           status: undefined, | 
 |  |  |           tagIds: undefined, | 
 |  |  |           telcode: undefined, | 
 |  |  |         }, | 
 |  |  |         // 表单校验 | 
 |  |  |         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", | 
 |  |  |           //   }, | 
 |  |  |           // ], | 
 |  |  |         }, | 
 |  |  |         // 弹出层标题(用户导入) | 
 |  |  |         title: "", | 
 |  |  |         // 是否禁用上传 | 
 |  |  |         isUploading: false, | 
 |  |  |         // 是否更新已经存在的用户数据 | 
 |  |  |         updateSupport: 0, | 
 |  |  |         // 设置上传的请求头部 | 
 |  |  |         headers: { Authorization: "Bearer " + getToken() }, | 
 |  |  |         // 上传的地址 | 
 |  |  |         url: process.env.VUE_APP_BASE_API + "/system/user/importData", | 
 |  |  |       }, | 
 |  |  |       // 查询参数 | 
 |  |  |       queryParams: { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         searchscope: 3, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }, | 
 |  |  |       // 表单校验 | 
 |  |  |       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", | 
 |  |  |         //   }, | 
 |  |  |         // ], | 
 |  |  |       }, | 
 |  |  |     }; | 
 |  |  |   }, | 
 |  |  |   watch: { | 
 |  |  |     // 根据名称筛选部门树 | 
 |  |  |     deptName(val) { | 
 |  |  |       this.$refs.tree.filter(val); | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  |     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.getList(); | 
 |  |  |     this.gettabList(); | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     /** 查询患者列表 */ | 
 |  |  |     getList() { | 
 |  |  |       this.loading = true; | 
 |  |  |       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); | 
 |  |  |       } | 
 |  |  |       if (this.dateRange) { | 
 |  |  |         this.queryParams.beginTime = this.dateRange[0]; | 
 |  |  |         this.queryParams.endTime = this.dateRange[1]; | 
 |  |  |       } else { | 
 |  |  |         this.queryParams.beginTime = ""; | 
 |  |  |         this.queryParams.endTime = ""; | 
 |  |  |       } | 
 |  |  |       listPatouthosp(this.queryParams).then((response) => { | 
 |  |  |         this.userList = response.rows; | 
 |  |  |         this.total = response.total; | 
 |  |  |         this.loading = false; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     watch: { | 
 |  |  |       // 根据名称筛选部门树 | 
 |  |  |       deptName(val) { | 
 |  |  |         this.$refs.tree.filter(val); | 
 |  |  |       }, | 
 |  |  |     /** 查询标签列表 */ | 
 |  |  |     gettabList() { | 
 |  |  |       const tagqueryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 1000, | 
 |  |  |         tagname: undefined, | 
 |  |  |         tagdescription: undefined, | 
 |  |  |         tagcategoryid: "0", | 
 |  |  |       }; | 
 |  |  |       listtag(tagqueryParams).then((response) => { | 
 |  |  |         console.log(response); | 
 |  |  |         this.optionstag = response.rows; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     created() { | 
 |  |  |     // 患者范围处理 | 
 |  |  |     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; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 查询导入展示列表 | 
 |  |  |     geterryList() { | 
 |  |  |       this.loading = true; | 
 |  |  |       listJob(this.queryParams).then((response) => { | 
 |  |  |         this.jobList = 1; | 
 |  |  |         this.total = 1; | 
 |  |  |         this.loading = false; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     //患者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查询无结果"); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 筛选节点 | 
 |  |  |     filterNode(value, data) { | 
 |  |  |       if (!value) return true; | 
 |  |  |       return data.label.indexOf(value) !== -1; | 
 |  |  |     }, | 
 |  |  |     // 节点单击事件 | 
 |  |  |     handleNodeClick(data) { | 
 |  |  |       this.queryParams.deptId = data.id; | 
 |  |  |       this.handleQuery(); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 取消按钮 | 
 |  |  |     cancel() { | 
 |  |  |       this.Labelchange = false; | 
 |  |  |       this.reset(); | 
 |  |  |     }, | 
 |  |  |     // 表单重置 | 
 |  |  |     reset() { | 
 |  |  |       this.form = { | 
 |  |  |         name: "", | 
 |  |  |         age: "", | 
 |  |  |         sex: "", | 
 |  |  |         tagList: [], | 
 |  |  |         idcardno: "", | 
 |  |  |         telcode: "", | 
 |  |  |         idcardtype: "", | 
 |  |  |         relativetelcode: "", | 
 |  |  |       }; | 
 |  |  |       // this.resetForm("form"); | 
 |  |  |     }, | 
 |  |  |     /** 搜索按钮操作 */ | 
 |  |  |     handleQuery() { | 
 |  |  |       this.queryParams.pageNum = 1; | 
 |  |  |       this.getList(); | 
 |  |  |       this.gettabList(); | 
 |  |  |     }, | 
 |  |  |     methods: { | 
 |  |  |       /** 查询患者列表 */ | 
 |  |  |       getList() { | 
 |  |  |         this.loading = true; | 
 |  |  |         messagelistpatient(this.queryParams).then((response) => { | 
 |  |  |           console.log(response); | 
 |  |  |           this.userList = response.rows; | 
 |  |  |           this.total = response.total; | 
 |  |  |           this.loading = false; | 
 |  |  |         }); | 
 |  |  |       }, | 
 |  |  |       /** 查询标签列表 */ | 
 |  |  |       gettabList() { | 
 |  |  |         const queryParams = {}; | 
 |  |  |         listtag().then((response) => { | 
 |  |  |           console.log(response); | 
 |  |  |           this.optionstag = response.rows; | 
 |  |  |         }); | 
 |  |  |       }, | 
 |  |  |       // 查询导入展示列表 | 
 |  |  |       geterryList() { | 
 |  |  |         this.loading = true; | 
 |  |  |         listJob(this.queryParams).then((response) => { | 
 |  |  |           this.jobList = 1; | 
 |  |  |           this.total = 1; | 
 |  |  |           this.loading = false; | 
 |  |  |         }); | 
 |  |  |       }, | 
 |  |  |    | 
 |  |  |       // 筛选节点 | 
 |  |  |       filterNode(value, data) { | 
 |  |  |         if (!value) return true; | 
 |  |  |         return data.label.indexOf(value) !== -1; | 
 |  |  |       }, | 
 |  |  |       // 节点单击事件 | 
 |  |  |       handleNodeClick(data) { | 
 |  |  |         this.queryParams.deptId = data.id; | 
 |  |  |         this.handleQuery(); | 
 |  |  |       }, | 
 |  |  |    | 
 |  |  |       // 取消按钮 | 
 |  |  |       cancel() { | 
 |  |  |         this.Labelchange = false; | 
 |  |  |         this.reset(); | 
 |  |  |       }, | 
 |  |  |       // 表单重置 | 
 |  |  |       reset() { | 
 |  |  |         this.form = { | 
 |  |  |           name: "", | 
 |  |  |           age: "", | 
 |  |  |           sex: "", | 
 |  |  |           tagList: [], | 
 |  |  |           iccardno: "", | 
 |  |  |           telcode: "", | 
 |  |  |           iccardtype: "", | 
 |  |  |           relativetelcode: "", | 
 |  |  |         }; | 
 |  |  |         // this.resetForm("form"); | 
 |  |  |       }, | 
 |  |  |       /** 搜索按钮操作 */ | 
 |  |  |       handleQuery() { | 
 |  |  |         this.queryParams.pageNum = 1; | 
 |  |  |         this.getList(); | 
 |  |  |       }, | 
 |  |  |       /** 重置按钮操作 */ | 
 |  |  |       resetQuery() { | 
 |  |  |         this.dateRange = []; | 
 |  |  |         this.resetForm("queryForm"); | 
 |  |  |         this.$refs.tree.setCurrentKey(null); | 
 |  |  |         this.handleQuery(); | 
 |  |  |       }, | 
 |  |  |       // 多选框选中数据 | 
 |  |  |       handleSelectionChange(selection) { | 
 |  |  |         this.ids = selection.map((item) => item.patid); | 
 |  |  |         this.single = selection.length != 1; | 
 |  |  |         this.multiple = !selection.length; | 
 |  |  |       }, | 
 |  |  |    | 
 |  |  |       /** 新增按钮操作 */ | 
 |  |  |       handleAdd() { | 
 |  |  |         this.reset(); | 
 |  |  |         this.Labelchange = true; | 
 |  |  |         this.amendtag = false; | 
 |  |  |       }, | 
 |  |  |       /** 修改按钮操作 */ | 
 |  |  |       handleUpdate(row) { | 
 |  |  |         console.log(row); | 
 |  |  |         const userIds = row.patid || this.ids; | 
 |  |  |         particularpatient(userIds).then((response) => { | 
 |  |  |           console.log(response); | 
 |  |  |           this.form = response.data; | 
 |  |  |         }); | 
 |  |  |         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; | 
 |  |  |       }, | 
 |  |  |    | 
 |  |  |       /** 删除按钮操作 */ | 
 |  |  |       handleDelete(row) { | 
 |  |  |         const userIds = row.userId || this.ids; | 
 |  |  |         this.$modal | 
 |  |  |           .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?') | 
 |  |  |           .then(function () { | 
 |  |  |             return deletepatient(userIds); | 
 |  |  |           }) | 
 |  |  |           .then(() => { | 
 |  |  |             this.getList(); | 
 |  |  |             this.$modal.msgSuccess("删除成功"); | 
 |  |  |           }) | 
 |  |  |           .catch(() => {}); | 
 |  |  |       }, | 
 |  |  |       /** 导出按钮操作 */ | 
 |  |  |       handleExport() { | 
 |  |  |         this.download( | 
 |  |  |           "smartor/patarchive/export", | 
 |  |  |           { | 
 |  |  |             ...this.queryParams, | 
 |  |  |           }, | 
 |  |  |           `user_${new Date().getTime()}.xlsx` | 
 |  |  |         ); | 
 |  |  |       }, | 
 |  |  |       /** 导入按钮操作 */ | 
 |  |  |       handleImport() { | 
 |  |  |         this.upload.title = "用户导入"; | 
 |  |  |         this.upload.open = true; | 
 |  |  |       }, | 
 |  |  |       /** 下载模板操作 */ | 
 |  |  |       importTemplate() { | 
 |  |  |         this.download( | 
 |  |  |           "system/user/importTemplate", | 
 |  |  |           {}, | 
 |  |  |           `user_template_${new Date().getTime()}.xlsx` | 
 |  |  |         ); | 
 |  |  |       }, | 
 |  |  |       // 文件上传中处理 | 
 |  |  |       handleFileUploadProgress(event, file, fileList) { | 
 |  |  |         this.upload.isUploading = true; | 
 |  |  |       }, | 
 |  |  |       // 文件上传成功处理 | 
 |  |  |       handleFileSuccess(response, file, fileList) { | 
 |  |  |         this.upload.open = false; | 
 |  |  |         this.upload.isUploading = false; | 
 |  |  |         this.$refs.upload.clearFiles(); | 
 |  |  |         this.$alert( | 
 |  |  |           "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + | 
 |  |  |             response.msg + | 
 |  |  |             "</div>", | 
 |  |  |           "导入结果", | 
 |  |  |           { dangerouslyUseHTMLString: true } | 
 |  |  |         ); | 
 |  |  |         this.getList(); | 
 |  |  |       }, | 
 |  |  |       // 提交上传文件 | 
 |  |  |       submitFileForm() { | 
 |  |  |         // 上传 | 
 |  |  |         if (this.dractive == 1) { | 
 |  |  |           this.$refs.upload.submit(); | 
 |  |  |           this.dractive++; | 
 |  |  |         } else { | 
 |  |  |           this.dractive++; | 
 |  |  |         } | 
 |  |  |       }, | 
 |  |  |       submitclose() { | 
 |  |  |         this.upload.open = false; | 
 |  |  |         this.dractive = 1; | 
 |  |  |       }, | 
 |  |  |     /** 重置按钮操作 */ | 
 |  |  |     resetQuery() { | 
 |  |  |       this.dateRange = []; | 
 |  |  |       this.resetForm("queryForm"); | 
 |  |  |       this.queryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         searchscope: 3, | 
 |  |  |         scopetype: [], | 
 |  |  |         leaveldeptcodes: [], | 
 |  |  |         leavehospitaldistrictcodes: [], | 
 |  |  |       }; | 
 |  |  |       this.handleQuery(); | 
 |  |  |     }, | 
 |  |  |   }; | 
 |  |  |   </script> | 
 |  |  |    | 
 |  |  |   <style lang="scss" scoped> | 
 |  |  |   .el-button--primary.is-plain { | 
 |  |  |     color: #ffffff; | 
 |  |  |     background: #409eff; | 
 |  |  |     border-color: #4fabe9; | 
 |  |  |     // 多选框选中数据 | 
 |  |  |     handleSelectionChange(selection) { | 
 |  |  |       this.ids = selection.map((item) => item.patid); | 
 |  |  |       this.single = selection.length != 1; | 
 |  |  |       this.multiple = !selection.length; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 新增按钮操作 */ | 
 |  |  |     handleAdd() { | 
 |  |  |       this.reset(); | 
 |  |  |       this.Labelchange = true; | 
 |  |  |       this.amendtag = false; | 
 |  |  |     }, | 
 |  |  |     /** 修改按钮操作 */ | 
 |  |  |     handleUpdate(row) { | 
 |  |  |       console.log(row); | 
 |  |  |       const userIds = row.patid || this.ids; | 
 |  |  |       particularpatient(userIds).then((response) => { | 
 |  |  |         console.log(response); | 
 |  |  |         this.form = response.data; | 
 |  |  |       }); | 
 |  |  |       this.amendtag = true; | 
 |  |  |       this.Labelchange = true; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     //修改/新增患者 | 
 |  |  |     submitForm() { | 
 |  |  |       if (this.amendtag) { | 
 |  |  |         console.log(22); | 
 |  |  |         this.form.isoperation = 2; | 
 |  |  |       } 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; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 删除按钮操作 */ | 
 |  |  |     handleDelete(row) { | 
 |  |  |       const userIds = row.userId || this.ids; | 
 |  |  |       this.$modal | 
 |  |  |         .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?') | 
 |  |  |         .then(function () { | 
 |  |  |           return deletepatient(userIds); | 
 |  |  |         }) | 
 |  |  |         .then(() => { | 
 |  |  |           this.getList(); | 
 |  |  |           this.$modal.msgSuccess("删除成功"); | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}); | 
 |  |  |     }, | 
 |  |  |     /** 导出按钮操作 */ | 
 |  |  |     handleExport() { | 
 |  |  |       this.download( | 
 |  |  |         "smartor/patarchive/export", | 
 |  |  |         { | 
 |  |  |           ...this.queryParams, | 
 |  |  |         }, | 
 |  |  |         `user_${new Date().getTime()}.xlsx` | 
 |  |  |       ); | 
 |  |  |     }, | 
 |  |  |     /** 导入按钮操作 */ | 
 |  |  |     handleImport() { | 
 |  |  |       this.upload.title = "用户导入"; | 
 |  |  |       this.upload.open = true; | 
 |  |  |     }, | 
 |  |  |     /** 下载模板操作 */ | 
 |  |  |     importTemplate() { | 
 |  |  |       this.download( | 
 |  |  |         "smartor/import/getImportPatTemplate", | 
 |  |  |         {}, | 
 |  |  |         `user_template_${new Date().getTime()}.xlsx` | 
 |  |  |       ); | 
 |  |  |     }, | 
 |  |  |     // 文件上传中处理 | 
 |  |  |     handleFileUploadProgress(event, file, fileList) { | 
 |  |  |       this.upload.isUploading = true; | 
 |  |  |     }, | 
 |  |  |     // 文件上传成功处理 | 
 |  |  |     handleFileSuccess(response, file, fileList) { | 
 |  |  |       this.upload.open = false; | 
 |  |  |       this.upload.isUploading = false; | 
 |  |  |       this.$refs.upload.clearFiles(); | 
 |  |  |       this.$alert( | 
 |  |  |         "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + | 
 |  |  |           response.msg + | 
 |  |  |           "</div>", | 
 |  |  |         "导入结果", | 
 |  |  |         { dangerouslyUseHTMLString: true } | 
 |  |  |       ); | 
 |  |  |       this.getList(); | 
 |  |  |     }, | 
 |  |  |     // 提交上传文件 | 
 |  |  |     submitFileForm() { | 
 |  |  |       // 上传 | 
 |  |  |       if (this.dractive == 1) { | 
 |  |  |         this.$refs.upload.submit(); | 
 |  |  |         this.dractive++; | 
 |  |  |       } else { | 
 |  |  |         this.dractive++; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     submitclose() { | 
 |  |  |       this.upload.open = false; | 
 |  |  |       this.dractive = 1; | 
 |  |  |     }, | 
 |  |  |     /** 批量添加任务按钮点击 */ | 
 |  |  |     handleBatchAddTask() { | 
 |  |  |       // 校验是否选中患者 | 
 |  |  |       if (this.ids.length === 0) { | 
 |  |  |         this.$modal.msgWarning("请至少选中1名患者"); | 
 |  |  |         return; | 
 |  |  |       } | 
 |  |  |       // 检查选中的患者中是否有已有任务的 | 
 |  |  |       const hasTaskPatients = this.userList.filter( | 
 |  |  |         (item) => this.ids.includes(item.patid) && item.serverState == 1 | 
 |  |  |       ); | 
 |  |  |  | 
 |  |  |       if (hasTaskPatients.length > 0) { | 
 |  |  |         const patientNames = hasTaskPatients.map((p) => p.patname).join("、"); | 
 |  |  |         this.$modal.msgError( | 
 |  |  |           `选中的患者 ${patientNames} 已有任务,无法重复添加` | 
 |  |  |         ); | 
 |  |  |         return; | 
 |  |  |       } | 
 |  |  |       // 获取选中患者的科室信息(用于校验同一科室) | 
 |  |  |       const patientDepts = new Set(); | 
 |  |  |       let deptcode = ""; | 
 |  |  |       this.ids.forEach((patId) => { | 
 |  |  |         const patient = this.userList.find((item) => item.patid === patId); | 
 |  |  |         if (patient) { | 
 |  |  |           patientDepts.add(patient.deptname); | 
 |  |  |           deptcode = patient.deptcode; | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |  | 
 |  |  |       // 校验是否同一科室 | 
 |  |  |       if (patientDepts.size > 1) { | 
 |  |  |         this.$modal.msgError("选中的患者不属于同一科室,无法批量添加任务"); | 
 |  |  |         return; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       // 获取选中患者列表 | 
 |  |  |       this.selectedPatients = this.userList.filter((item) => | 
 |  |  |         this.ids.includes(item.patid) | 
 |  |  |       ); | 
 |  |  |  | 
 |  |  |       // 显示弹窗 | 
 |  |  |       this.batchTaskVisible = true; | 
 |  |  |  | 
 |  |  |       // 获取任务列表 | 
 |  |  |       this.loadTaskList(deptcode); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 加载任务列表 */ | 
 |  |  |     loadTaskList(deptcode) { | 
 |  |  |       this.batchLoading = true; | 
 |  |  |       let topqueryParams = { | 
 |  |  |         pageNum: 1, | 
 |  |  |         pageSize: 10, | 
 |  |  |         serviceType: 3, | 
 |  |  |         type: 2, | 
 |  |  |         deptcode: deptcode, | 
 |  |  |       }; | 
 |  |  |       getTasklist(topqueryParams).then((response) => { | 
 |  |  |         this.taskList = response.rows; | 
 |  |  |         this.batchLoading = false; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 处理任务选择变化 */ | 
 |  |  |     handleTaskSelectionChange(currentRow) { | 
 |  |  |       this.selectedTask = currentRow; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 重写批量提交方法 | 
 |  |  |     async submitBatchTask() { | 
 |  |  |       // 校验是否选中任务 | 
 |  |  |       if (!this.selectedTask) { | 
 |  |  |         this.$modal.msgWarning("请选择1个任务"); | 
 |  |  |         return; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       this.batchLoading = true; | 
 |  |  |       const successPatients = []; | 
 |  |  |       const failedPatients = []; | 
 |  |  |  | 
 |  |  |       try { | 
 |  |  |         // 遍历选中的患者,逐个调用接口 | 
 |  |  |         for (const patient of this.selectedPatients) { | 
 |  |  |           const params = { | 
 |  |  |             taskid: this.selectedTask.taskid, | 
 |  |  |             taskName: this.selectedTask.taskName, | 
 |  |  |             serviceType: this.selectedTask.serviceType, | 
 |  |  |             sendstate:2, | 
 |  |  |             ...patient, | 
 |  |  |             age: "", | 
 |  |  |           }; | 
 |  |  |  | 
 |  |  |           try { | 
 |  |  |             await addSubtask(params); | 
 |  |  |             successPatients.push(patient.patname); | 
 |  |  |           } catch (error) { | 
 |  |  |             failedPatients.push(patient.patname); | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 显示处理结果 | 
 |  |  |         let message = `成功为 ${successPatients.length} 名患者添加任务`; | 
 |  |  |         if (failedPatients.length > 0) { | 
 |  |  |           message += `,${failedPatients.length} 名患者添加失败`; | 
 |  |  |         } | 
 |  |  |         this.$modal.msgSuccess(message); | 
 |  |  |  | 
 |  |  |         this.batchTaskVisible = false; | 
 |  |  |         this.getList(); // 刷新患者列表 | 
 |  |  |       } catch (error) { | 
 |  |  |         this.$modal.msgError("批量添加任务过程中出错"); | 
 |  |  |       } finally { | 
 |  |  |         this.batchLoading = false; | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     /** 批量添加患者任务接口 */ | 
 |  |  |     batchAddPatientTask(params) {}, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .el-button--primary.is-plain { | 
 |  |  |   color: #ffffff; | 
 |  |  |   background: #409eff; | 
 |  |  |   border-color: #4fabe9; | 
 |  |  | } | 
 |  |  | .document { | 
 |  |  |   width: 100px; | 
 |  |  |   height: 50px; | 
 |  |  | } | 
 |  |  | .documentf { | 
 |  |  |   display: flex; | 
 |  |  |   justify-content: flex-end; | 
 |  |  | } | 
 |  |  | .download { | 
 |  |  |   text-align: center; | 
 |  |  |   .el-upload__tip { | 
 |  |  |     font-size: 23px; | 
 |  |  |   } | 
 |  |  |   .document { | 
 |  |  |   .el-upload__text { | 
 |  |  |     font-size: 23px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .uploading { | 
 |  |  |   margin-top: 20px; | 
 |  |  |   margin: 20px; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #ffffff; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  | } | 
 |  |  | .drexamine { | 
 |  |  |   display: flex; | 
 |  |  |   align-items: center; | 
 |  |  |   justify-content: center; | 
 |  |  |   padding: 30px; | 
 |  |  |   background: #daeaf5; | 
 |  |  |   img { | 
 |  |  |     width: 100px; | 
 |  |  |     height: 50px; | 
 |  |  |     height: 100px; | 
 |  |  |   } | 
 |  |  |   .documentf { | 
 |  |  |     display: flex; | 
 |  |  |     justify-content: flex-end; | 
 |  |  |   } | 
 |  |  |   .download { | 
 |  |  |     text-align: center; | 
 |  |  |     .el-upload__tip { | 
 |  |  |       font-size: 23px; | 
 |  |  |     } | 
 |  |  |     .el-upload__text { | 
 |  |  |       font-size: 23px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   .uploading { | 
 |  |  |     margin-top: 20px; | 
 |  |  |     margin: 20px; | 
 |  |  |     padding: 30px; | 
 |  |  |     background: #ffffff; | 
 |  |  |     border: 1px solid #dcdfe6; | 
 |  |  |     -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |       0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  |   } | 
 |  |  |   .drexamine { | 
 |  |  |     display: flex; | 
 |  |  |     align-items: center; | 
 |  |  |     justify-content: center; | 
 |  |  |     padding: 30px; | 
 |  |  |     background: #daeaf5; | 
 |  |  |     img { | 
 |  |  |       width: 100px; | 
 |  |  |       height: 100px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   .button-textsc { | 
 |  |  |     color: #28cfe6; | 
 |  |  |   } | 
 |  |  |   </style> | 
 |  |  |    | 
 |  |  | } | 
 |  |  | .button-textsc { | 
 |  |  |   color: #3664D9; | 
 |  |  | } | 
 |  |  | .batch-patient-section, | 
 |  |  | .batch-task-section { | 
 |  |  |   padding: 15px; | 
 |  |  |   border: 1px solid #ebeef5; | 
 |  |  |   border-radius: 4px; | 
 |  |  |   margin-bottom: 15px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .el-table--enable-row-hover .el-table__body tr:hover > td { | 
 |  |  |   background-color: #f5f7fa; | 
 |  |  | } | 
 |  |  | .el-table__body tr.current-row > td { | 
 |  |  |   background-color: #e6f7ff; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | /* 禁用状态下按钮样式 */ | 
 |  |  | .el-button.is-disabled { | 
 |  |  |   cursor: not-allowed; | 
 |  |  | } | 
 |  |  | .batch-patient-section h4, | 
 |  |  | .batch-task-section h4 { | 
 |  |  |   margin-top: 0; | 
 |  |  |   margin-bottom: 15px; | 
 |  |  |   color: #303133; | 
 |  |  |   font-size: 16px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | /* 表格样式优化 */ | 
 |  |  | .el-table { | 
 |  |  |   margin-bottom: 10px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | /* 弹窗底部按钮间距 */ | 
 |  |  | .dialog-footer { | 
 |  |  |   text-align: right; | 
 |  |  |   padding: 10px 20px 20px; | 
 |  |  | } | 
 |  |  | </style> |