You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1453 lines
						
					
					
						
							52 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							1453 lines
						
					
					
						
							52 KiB
						
					
					
				
								<template>
							 | 
						|
								  <div>
							 | 
						|
								    <!--组件主体-->
							 | 
						|
								    <div style="display: flex">
							 | 
						|
								      <div :style="'width:' + (window.pageWidth - 200 - 145) + 'px;'" @contextmenu.prevent="onContextmenu">
							 | 
						|
								        <div>
							 | 
						|
								          <el-table @body-scrolling="load" :data="tableData" border
							 | 
						|
								            :height="window.pageHeight < 600 ? 248 : Math.floor(((window.pageHeight - 250) * 2) / 3)"
							 | 
						|
								            highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" size="small" row-key="id"
							 | 
						|
								            @selection-change="handleSelectionChange" @cell-contextmenu="onCellRightClick" ref="info" id="info"
							 | 
						|
								            :row-class-name="handleRowClassName">
							 | 
						|
								            <!-- 取消勾选,改为选中
							 | 
						|
								          <el-table-column type="selection" width="40" show-overflow-tooltip/>
							 | 
						|
								          :height="window.pageHeight < 600 ? 202 : Math.floor(((window.pageHeight - 302) * 2) / 3)"
							 | 
						|
								          -->
							 | 
						|
								            <el-table-column v-for="(item, index) in headerCols" :key="`col_${index}`"
							 | 
						|
								              :min-width="dropCol[index].minWidth" :align="dropCol[index].align" :label="item.label"
							 | 
						|
								              :prop="dropCol[index].prop" :sortable="dropCol[index].prop == 'sn' ? false : true">
							 | 
						|
								              <template slot-scope="scope">
							 | 
						|
								                <div v-if="dropCol[index].prop == 'sn'">
							 | 
						|
								                  {{ scope.$index + 1 }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'completeFlag'">
							 | 
						|
								                  {{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'guidePrintTimes'">
							 | 
						|
								                  <i class="el-icon-printer" v-if="scope.row.guidePrintTimes > 0" style="font-size: 20px; color: green" />
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'isLock'
							 | 
						|
								                  || dropCol[index].prop == 'isVip'
							 | 
						|
								                  || dropCol[index].prop == 'isUpload'
							 | 
						|
								                  ">
							 | 
						|
								                  {{ scope.row[dropCol[index].prop] == "Y" ? "是" : "否" }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'customerOrgParentName'">
							 | 
						|
								                  {{ scope.row.customerOrgParentName
							 | 
						|
								                    ? scope.row.customerOrgParentName
							 | 
						|
								                    : scope.row.customerOrgName }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'sexId'">
							 | 
						|
								                  {{ dddw(dict.sex, "id", scope.row[dropCol[index].prop], "displayName") }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'groupPack'">
							 | 
						|
								                  <div
							 | 
						|
								                    v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
							 | 
						|
								                    {{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
							 | 
						|
								                  </div>
							 | 
						|
								                  <div
							 | 
						|
								                    v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
							 | 
						|
								                    {{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
							 | 
						|
								                  </div>
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'nationId'">
							 | 
						|
								                  {{ dddw(dict.nation, "id", scope.row[dropCol[index].prop], "displayName") }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'birthDate'
							 | 
						|
								                  || dropCol[index].prop == 'creationTime'">
							 | 
						|
								                  {{ scope.row[dropCol[index].prop] ? moment(scope.row[dropCol[index].prop]).format('yyyy-MM-DD') : '' }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'maritalStatusId'">
							 | 
						|
								                  {{ dddw(dict.maritalStatus, "id", scope.row[dropCol[index].prop], "displayName") }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'medicalTypeId'">
							 | 
						|
								                  {{ dddw(dict.medicalType, "id", scope.row[dropCol[index].prop], "displayName") }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else-if="dropCol[index].prop == 'personnelTypeId'">
							 | 
						|
								                  {{ dddw(dict.personnelType, "id", scope.row[dropCol[index].prop], "displayName") }}
							 | 
						|
								                </div>
							 | 
						|
								                <div v-else>
							 | 
						|
								                  {{ scope.row[dropCol[index].prop] }}
							 | 
						|
								                </div>
							 | 
						|
								              </template>
							 | 
						|
								            </el-table-column>
							 | 
						|
								            <!--
							 | 
						|
								          "sexHormoneTermId": "00000000-0000-0000-0000-000000000000",
							 | 
						|
								          "interposeMeasure": null,
							 | 
						|
								          "medicalConclusionId": "00000000-0000-0000-0000-000000000000",
							 | 
						|
								          "reportPrintTimes": 0,        
							 | 
						|
								          "isMedicalStart": "N",
							 | 
						|
								          "medicalStartDate": "6/28/2023",
							 | 
						|
								          "isRecoverGuide": "N",
							 | 
						|
								          "summaryDate": "",
							 | 
						|
								          "summaryDoctor": null,
							 | 
						|
								          "isAudit": "N",
							 | 
						|
								          "auditDoctor": null,
							 | 
						|
								          "auditDate": "",        
							 | 
						|
								          "isNameHide": "N",
							 | 
						|
								          "isPhoneFollow": "N",
							 | 
						|
								          "thirdInfo": null,
							 | 
						|
								          "guidePrintTimes": null,
							 | 
						|
								          "remark": null,
							 | 
						|
								          "medicalCenterId": "00000000-0000-0000-0000-000000000000",
							 | 
						|
								          "customerOrgRegisterId": "00000000-0000-0000-0000-000000000000",
							 | 
						|
								          "lastModifierName": "",
							 | 
						|
								          "lastModificationTime": null,
							 | 
						|
								          "lastModifierId": null,
							 | 
						|
								          "creatorId": null,
							 | 
						|
								          "id": "3a0c196d-a6d0-37fe-5c32-4806bdc4530f"
							 | 
						|
								          -->
							 | 
						|
								          </el-table>
							 | 
						|
								          <div style="display: flex;justify-content:space-between;">
							 | 
						|
								            <div></div>
							 | 
						|
								            <div>
							 | 
						|
								              <span style="font-size:12px;">共:{{ loadOpts.totalCount }} 条记录,当前显示:{{ tableData.length }}
							 | 
						|
								                条。</span>
							 | 
						|
								            </div>
							 | 
						|
								          </div>
							 | 
						|
								        </div>
							 | 
						|
								        <!-- 给合项目  基本信息  -->
							 | 
						|
								        <el-tabs v-model="tabChoosed" style="margin-top: -22px;">
							 | 
						|
								          <!-- 给合项目 -->
							 | 
						|
								          <el-tab-pane label="已选组合项目" name="1">
							 | 
						|
								            <PatientRegisterAsbItem />
							 | 
						|
								          </el-tab-pane>
							 | 
						|
								        </el-tabs>
							 | 
						|
								      </div>
							 | 
						|
								      <div style="margin-left: 10px;">
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '人员登记')" class="listBtn">
							 | 
						|
								          <el-button type="success" class="commonbutton" @click="btnAdd">人员登记</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '批量正式登记')" class="listBtn">
							 | 
						|
								          <el-button type="success" class="commonbutton" @click="btnAddBatch">批量正式登记</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '编辑')" class="listBtn">
							 | 
						|
								          <el-button type="primary" class="commonbutton" @click="btnEdit">编辑</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '删除')" class="listBtn">
							 | 
						|
								          <el-button type="danger" class="deleteButton" @click="btnDel">删除</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <!--
							 | 
						|
								      <div class="listBtn">
							 | 
						|
								        <el-button
							 | 
						|
								          type=""
							 | 
						|
								          class="btnClass"
							 | 
						|
								          @click="openCamera"
							 | 
						|
								          icon="el-icon-camera"
							 | 
						|
								          >拍照</el-button
							 | 
						|
								        >
							 | 
						|
								      </div>      
							 | 
						|
								      <div class="listBtn">
							 | 
						|
								        <el-button type="" class="btnClass commonbutton">健康档案</el-button>
							 | 
						|
								      </div>
							 | 
						|
								      -->
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '批量调整分组')" class="listBtn">
							 | 
						|
								          <el-button type="" class="commonbutton" @click="btnGroupBatch">批量调整分组</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '批量调整项目')" class="listBtn">
							 | 
						|
								          <el-button type="" class="commonbutton" @click="btnAsbBatch">批量调整项目</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '指引单打印')" class="listBtn">
							 | 
						|
								          <el-button type="" class="commonbutton" @click="guidePrint('0001', false)">指引单打印</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '指引单预览')" class="listBtn">
							 | 
						|
								          <el-button type="" class="commonbutton" @click="guidePrint('0001', true)">指引单预览</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <div v-show="checkPagePriv(pagePriv.privs, '人员信息导出')" class="listBtn">
							 | 
						|
								          <el-button type="" class="commonbutton" @click="btnExport('info')">人员信息导出</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        <!-- elProgress.display  dialogWin.LocalConfig
							 | 
						|
								        <div class="listBtn"> 
							 | 
						|
								          <el-button type="" class="commonbutton" @click="dialogWin.LocalConfig = true">本地设置</el-button>
							 | 
						|
								        </div>
							 | 
						|
								        -->
							 | 
						|
								        <!--
							 | 
						|
								      <div class="listBtn">
							 | 
						|
								        <el-button type="" class="btnClass commonbutton" @click="rowSelected(tableData)">选中</el-button>
							 | 
						|
								      </div>
							 | 
						|
								      -->
							 | 
						|
								      </div>
							 | 
						|
								    </div>
							 | 
						|
								    <!--组件弹窗-->
							 | 
						|
								    <div>
							 | 
						|
								      <!-- 体检人员登记 :title="patientRegister.patientRegisterRd.id ? '体检人员--编辑' : '体检人员--新增'" -->
							 | 
						|
								      <el-dialog :title="dataTransOpts.tableS.patient_register.id ? '体检人员--编辑' : '体检人员--新增'"
							 | 
						|
								        :visible.sync="dialogWin.PatientRegisterEdit" :close-on-click-modal="false" fullscreen
							 | 
						|
								        @close="close_dialogWin_PatientRegisterEdit">
							 | 
						|
								        <!-- :formInitData="patientRegister.patientRegisterRd" -->
							 | 
						|
								        <PatientRegisterEdit :isDoctor="'1'" :patientRegisterId="patientRegister.patientRegisterRd.id"
							 | 
						|
								          :editTimes="editTimes" :refreshRegister="refreshRegister" :refFuncSetData="refFuncSetData" />
							 | 
						|
								      </el-dialog>
							 | 
						|
								
							 | 
						|
								      <!-- 拍照 -->
							 | 
						|
								      <el-dialog title="拍照" :visible.sync="patientRegister.cameraVisble" width="400" height="800" :show-close="false"
							 | 
						|
								        :append-to-body="true" :close-on-click-modal="false">
							 | 
						|
								        <Camera :id="patientRegister.patientRegisterId" />
							 | 
						|
								      </el-dialog>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								      <!-- 批量调整分组 -->
							 | 
						|
								      <el-dialog title="批量调整分组" :visible.sync="dialogWin.PatientRegisterEditGroupBatch" width="600px" height="800px"
							 | 
						|
								        :append-to-body="true" :close-on-click-modal="false">
							 | 
						|
								        <PatientRegisterEditGroupBatch :multipleSelection="multipleSelection" />
							 | 
						|
								
							 | 
						|
								      </el-dialog>
							 | 
						|
								
							 | 
						|
								      <!-- 批量调整项目 -->
							 | 
						|
								      <el-dialog title="批量调整项目" :visible.sync="dialogWin.PatientRegisterEditItemBatch" width="610px" height="800px"
							 | 
						|
								        :append-to-body="true" :close-on-click-modal="false">
							 | 
						|
								        <PatientRegisterEditItemBatch :multipleSelection="multipleSelection" />
							 | 
						|
								      </el-dialog>
							 | 
						|
								
							 | 
						|
								      <!-- 通用进度条 -->
							 | 
						|
								      <el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
							 | 
						|
								        :close-on-click-modal="false" :append-to-body="true">
							 | 
						|
								        <ElProgressOCX />
							 | 
						|
								      </el-dialog>
							 | 
						|
								
							 | 
						|
								      <!--通用本地参数设置-->
							 | 
						|
								      <el-dialog title="本地参数设置" :visible.sync="dialogWin.LocalConfig" :close-on-click-modal="false" :append-to-body="true"
							 | 
						|
								        width="800px" height="600px">
							 | 
						|
								        <LocalConfig />
							 | 
						|
								      </el-dialog>
							 | 
						|
								
							 | 
						|
								    </div>
							 | 
						|
								  </div>
							 | 
						|
								</template>
							 | 
						|
								<script>
							 | 
						|
								import moment from "moment";
							 | 
						|
								import { mapState, mapActions } from "vuex";
							 | 
						|
								import { getapi, postapi, putapi, deletapi } from "@/api/api";
							 | 
						|
								import Sortable from "sortablejs";
							 | 
						|
								import FileSaver from 'file-saver';
							 | 
						|
								import html2canvas from 'html2canvas';
							 | 
						|
								
							 | 
						|
								import {
							 | 
						|
								  getPagePriv, checkPagePriv,
							 | 
						|
								  dddw,
							 | 
						|
								  objCopy,
							 | 
						|
								  arrayReduce,
							 | 
						|
								  arrayExistObj,
							 | 
						|
								  deepCopy,
							 | 
						|
								} from "../../utlis/proFunc";
							 | 
						|
								
							 | 
						|
								import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue";
							 | 
						|
								import Camera from "../../components/patientRegister/Camera.vue";
							 | 
						|
								import PatientRegisterAsbItem from "../../components/patientRegister/patientRegisterAsbItem.vue";
							 | 
						|
								
							 | 
						|
								import ElProgressOCX from "../../components/report/ElProgressOCX.vue";
							 | 
						|
								import PatientRegisterEditGroupBatch from "./PatientRegisterEditGroupBatch.vue";
							 | 
						|
								import PatientRegisterEditItemBatch from "./PatientRegisterEditItemBatch.vue";
							 | 
						|
								
							 | 
						|
								import LocalConfig from "../../components/common/LocalConfig.vue";
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								export default {
							 | 
						|
								  components: {
							 | 
						|
								    
							 | 
						|
								    PatientRegisterEdit,
							 | 
						|
								    Camera,
							 | 
						|
								    PatientRegisterAsbItem,
							 | 
						|
								    PatientRegisterEditGroupBatch, //批量调整分组
							 | 
						|
								    PatientRegisterEditItemBatch, //批量调整项目
							 | 
						|
								    ElProgressOCX,
							 | 
						|
								    LocalConfig,
							 | 
						|
								  },
							 | 
						|
								  data() {
							 | 
						|
								    return {
							 | 
						|
								      pagePriv: {
							 | 
						|
								        routeUrlorPageName: 'patientRegister', //当前页面归属路由或归属页面权限名称
							 | 
						|
								        privs: [] // 页面权限
							 | 
						|
								      },
							 | 
						|
								      peisid: null,
							 | 
						|
								      startPoint: -1, // 多选起点 -1 表示选择
							 | 
						|
								      endPoint: -1, // 多选终点 -1 表示未选择
							 | 
						|
								
							 | 
						|
								      tableData: [], //表格数据
							 | 
						|
								      tableDataCurrentRow: {}, // 当前被选中的行
							 | 
						|
								
							 | 
						|
								      multipleSelection: [], //选中的数据列表
							 | 
						|
								
							 | 
						|
								      dialogCamera: false,
							 | 
						|
								      tabChoosed: "1",
							 | 
						|
								      formInitData: {}, //体检登记初始表单数据
							 | 
						|
								      editTimes: 0,
							 | 
						|
								
							 | 
						|
								      rClickRow: null, //右击的行
							 | 
						|
								      rClickColumn: null, //右击的列(预留)
							 | 
						|
								
							 | 
						|
								      //动态列
							 | 
						|
								      headerCols: [],
							 | 
						|
								      //拖动列
							 | 
						|
								      dropCol: [
							 | 
						|
								        { label: "序号", prop: "sn", minWidth: 40, align: "center" },
							 | 
						|
								        { label: "体检进度", prop: "completeFlag", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "打印", prop: "guidePrintTimes", minWidth: 55, align: "center" },
							 | 
						|
								        { label: "锁住", prop: "isLock", minWidth: 55, align: "center" },
							 | 
						|
								        { label: "单位", prop: "customerOrgParentName", minWidth: 180, align: "center" },
							 | 
						|
								        { label: "部门", prop: "customerOrgName", minWidth: 120, align: "center" },
							 | 
						|
								        { label: "姓名", prop: "patientName", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "性别", prop: "sexId", minWidth: 55, align: "center" },
							 | 
						|
								        { label: "年龄", prop: "age", minWidth: 55, align: "center" },
							 | 
						|
								        { label: "条码号", prop: "patientRegisterNo", minWidth: 150, align: "center" },
							 | 
						|
								        { label: "档案号", prop: "patientNo", minWidth: 100, align: "center" },
							 | 
						|
								        { label: "体检次数", prop: "medicalTimes", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "分组/套餐", prop: "groupPack", minWidth: 150, align: "center" },
							 | 
						|
								        { label: "民族", prop: "nationId", minWidth: 55, align: "center" },
							 | 
						|
								        { label: "身份证", prop: "idNo", minWidth: 150, align: "center" },
							 | 
						|
								        { label: "出生日期", prop: "birthDate", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "邮箱", prop: "email", minWidth: 150, align: "center" },
							 | 
						|
								        { label: "手机", prop: "mobileTelephone", minWidth: 100, align: "center" },
							 | 
						|
								        { label: "电话", prop: "telephone", minWidth: 100, align: "center" },
							 | 
						|
								        { label: "地址", prop: "address", minWidth: 300, align: "" },
							 | 
						|
								        { label: "体检卡号", prop: "medicalCardNo", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "工卡号", prop: "jobCardNo", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "婚姻状况", prop: "maritalStatusId", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "体检类别", prop: "medicalTypeId", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "人员类别", prop: "personnelTypeId", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "职务", prop: "jobPost", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "职称", prop: "jobTitle", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "介绍人", prop: "salesman", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "是否VIP", prop: "isVip", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "登记人", prop: "creatorName", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "登记日期", prop: "creationTime", minWidth: 80, align: "center" },
							 | 
						|
								        { label: "是否上传", prop: "isUpload", minWidth: 80, align: "center" },
							 | 
						|
								      ],
							 | 
						|
								
							 | 
						|
								      dom: null,   //用于滚动加载数据
							 | 
						|
								      lazyLoading: false,  //是否懒加载中
							 | 
						|
								      loadOpts: {
							 | 
						|
								        totalCount: 0,
							 | 
						|
								        skipCount: 0,
							 | 
						|
								        maxResultCount: 100,
							 | 
						|
								      },
							 | 
						|
								      loadOptsInit: {},
							 | 
						|
								
							 | 
						|
								      oneClick: 0,  // 1 表示行单击一次
							 | 
						|
								      DbClick: 0,  // 1 表示行有单击第二次
							 | 
						|
								    };
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  created() {
							 | 
						|
								    //获取用户当前页面的权限
							 | 
						|
								    let userPriv = window.sessionStorage.getItem('userPriv')
							 | 
						|
								    if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
							 | 
						|
								
							 | 
						|
								    this.loadOptsInit = Object.assign({}, this.loadOpts)
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  //挂载完成
							 | 
						|
								  mounted() {
							 | 
						|
								    this.quickAsb = this.dict.asbItemAll;
							 | 
						|
								
							 | 
						|
								    this.peisid = window.sessionStorage.getItem('peisid');
							 | 
						|
								
							 | 
						|
								    // 初始化可以拖动的列
							 | 
						|
								    this.headerCols = deepCopy(this.dropCol)
							 | 
						|
								    this.dropCol = this.columnDrop(this.dropCol);
							 | 
						|
								
							 | 
						|
								    this.$nextTick(() => {
							 | 
						|
								      this.scrollFull()
							 | 
						|
								    })
							 | 
						|
								  },
							 | 
						|
								  computed: {
							 | 
						|
								    ...mapState([
							 | 
						|
								      "window",
							 | 
						|
								      "dataTransOpts",
							 | 
						|
								      "dialogWin",
							 | 
						|
								      "dict",
							 | 
						|
								      "elProgress",
							 | 
						|
								      "patientRegister",
							 | 
						|
								      "customerOrg",
							 | 
						|
								    ]),
							 | 
						|
								  },
							 | 
						|
								  methods: {
							 | 
						|
								    ...mapActions(["getCustomerOrgGroup", "getPatientRegisterAbs"]),
							 | 
						|
								    moment, dddw, deepCopy, checkPagePriv,
							 | 
						|
								
							 | 
						|
								    // 扩展定义表格行样式
							 | 
						|
								    handleRowClassName({ row, rowIndex }) {
							 | 
						|
								      // highLightBg 为 'selected'的高亮
							 | 
						|
								      //console.log(rowIndex, row)
							 | 
						|
								      //return row.highLightBg == 'selected' ? 'high-light-bg' : '';
							 | 
						|
								      if (row.choosed) {
							 | 
						|
								        return "current-row";
							 | 
						|
								      } else {
							 | 
						|
								        return "";
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    // 行选择
							 | 
						|
								    rowSelected(rows) {
							 | 
						|
								      rows.forEach((e) => {
							 | 
						|
								        this.$refs["info"].toggleRowSelection(e, true);
							 | 
						|
								      });
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    refFuncSetData(item, v) {
							 | 
						|
								      setData(this, item, v)
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    // 打印指引单(isPreview)
							 | 
						|
								    async guidePrint(ReportCode, isPreview) {
							 | 
						|
								      if (!this.$peisAPI) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      let token = window.sessionStorage.getItem("token");
							 | 
						|
								      let user = window.sessionStorage.getItem("user");
							 | 
						|
								      let toOutShell = {
							 | 
						|
								        ReportCode,
							 | 
						|
								        token,
							 | 
						|
								        isBuildImage:'N',
							 | 
						|
								        IsUploadPdf:'N',
							 | 
						|
								        preViewCanPrint: "N",
							 | 
						|
								        Parameters: [
							 | 
						|
								          { Name: "printer", Value: user },
							 | 
						|
								          { Name: "hisLog", Value: "pic/hisLog.jpg" },
							 | 
						|
								        ],
							 | 
						|
								      };
							 | 
						|
								      let lfind = -1;
							 | 
						|
								
							 | 
						|
								      //选中(取消勾选)start -------------------------
							 | 
						|
								      this.multipleSelection = []
							 | 
						|
								      this.tableData.forEach(e => {
							 | 
						|
								        if (e.choosed) {
							 | 
						|
								          this.multipleSelection.push(deepCopy(e))
							 | 
						|
								        }
							 | 
						|
								      })
							 | 
						|
								      //选中(取消勾选) end  -------------------------
							 | 
						|
								
							 | 
						|
								      if (this.multipleSelection.length < 1) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "请选择要打印指引单的人员记录!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      if (isPreview) {
							 | 
						|
								        /*
							 | 
						|
								        //this.multipleSelection.forEach((item,index) =>{
							 | 
						|
								        postapi(
							 | 
						|
								          `/api/app/printreport/getpatientregisterguidereport?PatientRegisterId=${this.multipleSelection[0].id}`
							 | 
						|
								        )
							 | 
						|
								          .then((res) => {
							 | 
						|
								            if (res.code != -1) {
							 | 
						|
								              toOutShell.ReportTable = res.data;
							 | 
						|
								              console.log(
							 | 
						|
								                "JSON.stringify(toOutShell)",
							 | 
						|
								                JSON.stringify(toOutShell)
							 | 
						|
								              );
							 | 
						|
								              return this.$peisAPI.printPre(JSON.stringify(toOutShell));
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .then(res => {
							 | 
						|
								            console.log('this.$peisAPI.printPre', res)
							 | 
						|
								            if (JSON.parse(res).code < 0) {
							 | 
						|
								              this.$message.warning(JSON.parse(res).message);
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            console.log('打印指引单', err)
							 | 
						|
								            this.$message.warning({ showClose: true, message: err });
							 | 
						|
								          });
							 | 
						|
								        */
							 | 
						|
								        toOutShell.BusinessCode = this.multipleSelection[0].id
							 | 
						|
								        this.$peisAPI.printPre(JSON.stringify(toOutShell))
							 | 
						|
								          .then(res => {
							 | 
						|
								            if (JSON.parse(res).code < 0) {
							 | 
						|
								              this.$message.warning({ showClose: true, message: JSON.parse(res).message });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            console.log('打印指引单', err)
							 | 
						|
								            this.$message.warning({ showClose: true, message: `${err}` });
							 | 
						|
								          });
							 | 
						|
								
							 | 
						|
								      } else {
							 | 
						|
								
							 | 
						|
								        this.elProgress.display = true;
							 | 
						|
								        this.elProgress.percentage = 0;
							 | 
						|
								
							 | 
						|
								        for (let i = 0; i < this.multipleSelection.length; i++) {
							 | 
						|
								          try { 
							 | 
						|
								            /*
							 | 
						|
								            resPrintData = await postapi(`/api/app/printreport/getpatientregisterguidereport?PatientRegisterId=${this.multipleSelection[i].id}`)
							 | 
						|
								            if (resPrintData.code == -1) continue
							 | 
						|
								            toOutShell.ReportTable = resPrintData.data
							 | 
						|
								            resPeisAPI = await this.$peisAPI.print(JSON.stringify(toOutShell));
							 | 
						|
								            console.log('壳返回结果', resPeisAPI)
							 | 
						|
								            if (JSON.parse(resPeisAPI).code < 0) continue
							 | 
						|
								            resPrintTimes = await postapi("/api/app/patientregister/updatepatientregisterguideprinttimesmany", [this.multipleSelection[i].id]);
							 | 
						|
								            if (resPrintTimes.code == -1) continue
							 | 
						|
								            lfind = arrayExistObj(this.tableData, "id", this.multipleSelection[i].id);
							 | 
						|
								            if (lfind > -1) {
							 | 
						|
								              if (this.tableData[lfind].guidePrintTimes) {
							 | 
						|
								                this.tableData[lfind].guidePrintTimes = Number(this.tableData[lfind].guidePrintTimes) + 1;
							 | 
						|
								              } else {
							 | 
						|
								                this.tableData[lfind].guidePrintTimes = 1;
							 | 
						|
								              }
							 | 
						|
								            }
							 | 
						|
								            */
							 | 
						|
								            let patientregisterId = this.multipleSelection[i].id
							 | 
						|
								            toOutShell.BusinessCode = patientregisterId
							 | 
						|
								            let resPeisAPI = await this.$peisAPI.print(JSON.stringify(toOutShell));
							 | 
						|
								            if (JSON.parse(resPeisAPI).code < 0) continue
							 | 
						|
								            let resPrintTimes = await postapi("/api/app/patientregister/updatepatientregisterguideprinttimesmany", [patientregisterId]);
							 | 
						|
								            if (resPrintTimes.code == -1) continue
							 | 
						|
								            lfind = arrayExistObj(this.tableData, "id", patientregisterId);
							 | 
						|
								            if (lfind > -1) {
							 | 
						|
								              if (this.tableData[lfind].guidePrintTimes) {
							 | 
						|
								                this.tableData[lfind].guidePrintTimes = Number(this.tableData[lfind].guidePrintTimes) + 1;
							 | 
						|
								              } else {
							 | 
						|
								                this.tableData[lfind].guidePrintTimes = 1;
							 | 
						|
								              }
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								          } catch (error) {
							 | 
						|
								            console.log('打印指引单', error)
							 | 
						|
								            this.$message.warning({ showClose: true, message: `${error}` });
							 | 
						|
								          }
							 | 
						|
								
							 | 
						|
								          this.elProgress.percentage = Math.floor(
							 | 
						|
								            ((i + 1) * 100) / this.multipleSelection.length
							 | 
						|
								          );
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        this.elProgress.display = false;
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    handleSelectionChange(rows) {
							 | 
						|
								      //this.multipleSelection = rows;
							 | 
						|
								      //console.log('this.multipleSelection',this.multipleSelection)
							 | 
						|
								
							 | 
						|
								      rows.forEach((item) => {
							 | 
						|
								        item.highLightBg = "selected";
							 | 
						|
								      });
							 | 
						|
								      // 取消全选
							 | 
						|
								      if (!rows.length) {
							 | 
						|
								        this.tableData.forEach((item) => {
							 | 
						|
								          item.highLightBg = "";
							 | 
						|
								        });
							 | 
						|
								      }
							 | 
						|
								      this.multipleSelection = JSON.parse(JSON.stringify(rows));
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //设置新增/编辑的form数据
							 | 
						|
								    setForm(formData) {
							 | 
						|
								      this.patientRegister.patientRegisterRd = deepCopy(formData)
							 | 
						|
								      if (!this.patientRegister.patientRegisterRd.id) {
							 | 
						|
								        this.patientRegister.patientRegisterRd.customerOrgId = this.patientRegister.query.customerOrgId
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //点击体检次数行
							 | 
						|
								    rowClick(row) {
							 | 
						|
								      if (this.oneClick == 0) {
							 | 
						|
								        this.oneClick = 1;
							 | 
						|
								      } else {
							 | 
						|
								        this.DbClick = 1;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      //双击事件
							 | 
						|
								      if (this.DbClick == 1) { //第一次点击的节点和第二次点击的节点id相同
							 | 
						|
								        this.rowClickRetrieve(row)
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      setTimeout(() => { //300ms内没有第二次点击,执行单击事件
							 | 
						|
								        if (this.oneClick == 1 && this.DbClick == 0) this.rowClickRetrieve(row)
							 | 
						|
								      }, 300)
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    rowClickRetrieve(row) {
							 | 
						|
								      this.oneClick = 0;
							 | 
						|
								      this.DbClick = 0;
							 | 
						|
								
							 | 
						|
								      // 按住了shift键
							 | 
						|
								      if (this.window.shift) {
							 | 
						|
								        //清除所有选择
							 | 
						|
								        this.tableData.forEach((e, index) => {
							 | 
						|
								          e.choosed = false;
							 | 
						|
								          e.index = index;
							 | 
						|
								        });
							 | 
						|
								
							 | 
						|
								        if (this.startPoint == -1) {
							 | 
						|
								          this.tableData[row.index].choosed = true;
							 | 
						|
								          this.startPoint = row.index;
							 | 
						|
								        } else {
							 | 
						|
								          if (this.startPoint > row.index) {
							 | 
						|
								            for (let i = row.index; i <= this.startPoint; i++) {
							 | 
						|
								              this.tableData[i].choosed = true;
							 | 
						|
								            }
							 | 
						|
								          } else if (this.startPoint <= row.index) {
							 | 
						|
								            for (let i = this.startPoint; i <= row.index; i++) {
							 | 
						|
								              this.tableData[i].choosed = true;
							 | 
						|
								            }
							 | 
						|
								          }
							 | 
						|
								        }
							 | 
						|
								      } else if (this.window.ctrl) {  // 按住了ctrl 键
							 | 
						|
								        this.tableData[row.index].choosed = true;
							 | 
						|
								        if (this.startPoint == -1) {
							 | 
						|
								          this.startPoint = row.index;
							 | 
						|
								        }
							 | 
						|
								      } else {
							 | 
						|
								        // 未按住了ctrl 、shift 键
							 | 
						|
								        //清除所有选择
							 | 
						|
								        console.log("清除所有选择");
							 | 
						|
								        this.tableData.forEach((e, index) => {
							 | 
						|
								          e.choosed = false;
							 | 
						|
								          e.index = index;
							 | 
						|
								        });
							 | 
						|
								        console.log(this.tableData, row.index);
							 | 
						|
								        console.log(this.tableData[row.index].choosed);
							 | 
						|
								
							 | 
						|
								        this.tableData[row.index].choosed = true;
							 | 
						|
								        this.startPoint = row.index;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      //选中了多个点编辑时,排序最前的作为当前选中的
							 | 
						|
								      console.log('row.index <= this.startPoint', row.index, this.startPoint)
							 | 
						|
								      let lfind = -1
							 | 
						|
								      for (let i = 0; i < this.tableData.length; i++) {
							 | 
						|
								        if (this.tableData[i].choosed) {
							 | 
						|
								          lfind = i
							 | 
						|
								          break
							 | 
						|
								        }
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      if (lfind > -1) {
							 | 
						|
								        // 弹出编辑框,只有在编辑框显示时,才去触发获取数据
							 | 
						|
								        this.dataTransOpts.tableS.patient_register.id = this.tableData[lfind].id
							 | 
						|
								        this.tableDataCurrentRow = deepCopy(this.tableData[lfind])
							 | 
						|
								        this.dataTransOpts.refresh.register_check_asbitem.M++ //触发所选组合项目刷新       
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    // 双击
							 | 
						|
								    rowDblclick(row) {
							 | 
						|
								      // this.rowClick(row)
							 | 
						|
								      this.btnEdit()
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //体检次数 相关操作
							 | 
						|
								    btnAdd() {
							 | 
						|
								      if (!this.peisid || this.peisid == 'null') {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "该用户未选归属体检中心,不能执行此操作!"});
							 | 
						|
								        return
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      let customerOrgId = this.patientRegister.query.customerOrgId;
							 | 
						|
								      if (!customerOrgId) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请选择单位或个人"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      // this.patientRegister.patientRegisterRdInit.customerOrgId = customerOrgId
							 | 
						|
								      // this.setForm(this.patientRegister.patientRegisterRdInit)      
							 | 
						|
								      // this.patientRegister.patientRegisterAbs = [];
							 | 
						|
								      // this.patientRegister.patientRegisterRd.id = ''
							 | 
						|
								      // this.dialogWin.PatientRegisterEdit = true;
							 | 
						|
								      // this.editTimes++; //触发表单窗口,数据更新
							 | 
						|
								      // this.getPatientRegisterAbs();
							 | 
						|
								
							 | 
						|
								      this.dataTransOpts.tableS.patient_register.id = ''
							 | 
						|
								      this.dialogWin.PatientRegisterEdit = true;
							 | 
						|
								      this.dataTransOpts.plus.clearPatientRegisterQuery++ //触发清空人员登记界面的查询条件
							 | 
						|
								      setTimeout(() => {
							 | 
						|
								        this.dataTransOpts.refresh.patient_register.S++  //触发人员信息刷新
							 | 
						|
								      }, 10);
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //刷新或添加列表数据
							 | 
						|
								    refreshRegister(patientRegister) {
							 | 
						|
								      console.log('编辑/新增的 form :', patientRegister)
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //批量正式登记
							 | 
						|
								    btnAddBatch() {
							 | 
						|
								      let patientRegisterIds = []
							 | 
						|
								      //取消勾选,换成选择的方式  start
							 | 
						|
								      this.multipleSelection = [];
							 | 
						|
								      this.tableData.forEach((e) => {
							 | 
						|
								        if (e.choosed && e.completeFlag == '0') {
							 | 
						|
								          this.multipleSelection.push(e);
							 | 
						|
								          patientRegisterIds.push(e.id)
							 | 
						|
								        }
							 | 
						|
								      });
							 | 
						|
								      //取消勾选,换成选择的方式  end
							 | 
						|
								
							 | 
						|
								      if (patientRegisterIds.length < 1) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "请选择状态为预登记的记录!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      let completeFlag = '1'
							 | 
						|
								      let body = { completeFlag, patientRegisterIds }
							 | 
						|
								      postapi('/api/app/patientregister/updatepatientregistercompleteflagormedicalstartdate', body)
							 | 
						|
								        .then(res => {
							 | 
						|
								          if (res.code != -1) {
							 | 
						|
								            console.log('操作成功!')
							 | 
						|
								            patientRegisterIds.forEach(e => {
							 | 
						|
								              let lfind = arrayExistObj(this.tableData, 'id', e)
							 | 
						|
								              if (lfind > -1) this.tableData[lfind].completeFlag = completeFlag
							 | 
						|
								            });
							 | 
						|
								          }
							 | 
						|
								        })
							 | 
						|
								        .catch(err => {
							 | 
						|
								          this.$message.error({ showClose: true, message: `操作失败 ${err}`});
							 | 
						|
								        });
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    // 单个编辑
							 | 
						|
								    btnEdit() {
							 | 
						|
								      // if (!this.patientRegister.patientRegisterRd.id) {
							 | 
						|
								      if (!this.dataTransOpts.tableS.patient_register.id) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请选择要操作的记录"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      //console.log(this.patientRegister.patientRegisterRd,this.tableData)
							 | 
						|
								      
							 | 
						|
								      // 触发数据刷新
							 | 
						|
								      this.dataTransOpts.refresh.patient_register.S++  //触发人员信息刷新(会同时刷新组合项目)
							 | 
						|
								      this.dataTransOpts.plus.clearPatientRegisterQuery++ //触发清空人员登记界面的查询条件
							 | 
						|
								
							 | 
						|
								      this.dialogWin.PatientRegisterEdit = true;
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //新增或编辑后选中记录
							 | 
						|
								    async close_dialogWin_PatientRegisterEdit() {
							 | 
						|
								      // 如果 dataTransOpts.tableS.patient_register.id 为空(未增加),则不做处理
							 | 
						|
								      let id = this.dataTransOpts.tableS.patient_register.id
							 | 
						|
								      if (!id) {
							 | 
						|
								        id = this.tableDataCurrentRow.id
							 | 
						|
								      }
							 | 
						|
								      if (!id) return
							 | 
						|
								      this.dataTransOpts.tableS.patient_register.id = id
							 | 
						|
								
							 | 
						|
								      let res = await postapi(`/api/app/patientregister/getinfoorpatient?PatientRegisterId=${this.dataTransOpts.tableS.patient_register.id}`)
							 | 
						|
								      if (res.code != 1) return
							 | 
						|
								      let currentRow = res.data
							 | 
						|
								
							 | 
						|
								      // this.tableData.forEach(e => {
							 | 
						|
								      //   e.choosed = false
							 | 
						|
								      // });      
							 | 
						|
								      let lfind = arrayExistObj(this.tableData, 'id', this.dataTransOpts.tableS.patient_register.id)
							 | 
						|
								      if (lfind > -1) {
							 | 
						|
								        objCopy(currentRow, this.tableData[lfind])
							 | 
						|
								      } else {
							 | 
						|
								        lfind = this.tableData.length
							 | 
						|
								        currentRow.index = lfind
							 | 
						|
								        currentRow.choosed = true
							 | 
						|
								        this.tableData.push(currentRow)
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      // 刷新 register_check_asbitem 表记录
							 | 
						|
								      if (lfind > -1) {
							 | 
						|
								        this.dataTransOpts.refresh.register_check_asbitem.M++
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //拍照
							 | 
						|
								    openCamera() {
							 | 
						|
								      if (!this.patientRegister.patientRegisterId) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请选择要操作的记录"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      this.patientRegister.cameraVisble = true;
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //删除(可批量删除)
							 | 
						|
								    // /api/app/patient-register/many?PatientRegisterIds=3a0c2cac-f44c-f407-9504-c1fc5e80a159&PatientRegisterIds=3a0c2cb3-d10c-ed70-db6a-b835e75ce641
							 | 
						|
								    btnDel() {
							 | 
						|
								
							 | 
						|
								      //选中(取消勾选)start -------------------------
							 | 
						|
								      this.multipleSelection = []
							 | 
						|
								      this.tableData.forEach(e => {
							 | 
						|
								        if (e.choosed) {
							 | 
						|
								          this.multipleSelection.push(deepCopy(e))
							 | 
						|
								        }
							 | 
						|
								      })
							 | 
						|
								      //选中(取消勾选) end  -------------------------
							 | 
						|
								
							 | 
						|
								      if (this.multipleSelection.length < 1) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请先勾选要操作的记录"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      let patientRegisterIds = [];
							 | 
						|
								      for (let i = 0; i < this.multipleSelection.length; i++) {
							 | 
						|
								        patientRegisterIds.push(this.multipleSelection[i]["id"]);
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
							 | 
						|
								        confirmButtonText: "是",
							 | 
						|
								        cancelButtonText: "否",
							 | 
						|
								        type: "warning",
							 | 
						|
								      })
							 | 
						|
								        .then(() => {
							 | 
						|
								          //console.log('{patientRegisterIds}',{patientRegisterIds})
							 | 
						|
								          return postapi(`/api/app/patient-register/delete-many`, {
							 | 
						|
								            patientRegisterIds,
							 | 
						|
								          });
							 | 
						|
								        })
							 | 
						|
								        .then((res) => {
							 | 
						|
								          if (res.code != -1) {
							 | 
						|
								            console.log("操作成功");
							 | 
						|
								            this.dataTransOpts.tableS.patient_register.id = ''
							 | 
						|
								            setTimeout(() => {
							 | 
						|
								              this.dataTransOpts.refresh.register_check_asbitem.M++
							 | 
						|
								            }, 10);
							 | 
						|
								            arrayReduce(this.tableData, this.multipleSelection, 'id=id') //清除列表记录
							 | 
						|
								            // this.setForm(this.patientRegister.patientRegisterRdInit)
							 | 
						|
								            // this.getPatientRegisterAbs();
							 | 
						|
								          }
							 | 
						|
								        })
							 | 
						|
								        .catch((err) => {
							 | 
						|
								          if (err == "cancel") {
							 | 
						|
								            this.$message.info({ showClose: true, message: "已取消操作"});
							 | 
						|
								          }
							 | 
						|
								        });
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    //查询
							 | 
						|
								    async Query() {
							 | 
						|
								      // 查询时,清掉明细数据 (滚动时不清)
							 | 
						|
								      this.dataTransOpts.tableS.patient_register.id = ''
							 | 
						|
								      this.tableDataCurrentRow = {} // 清除选择
							 | 
						|
								      this.tableData = []
							 | 
						|
								      setTimeout(() => {
							 | 
						|
								        this.dataTransOpts.refresh.register_check_asbitem.M++ //触发所选组合项目刷新  
							 | 
						|
								      }, 10);
							 | 
						|
								
							 | 
						|
								      this.loadOpts = Object.assign(this.loadOpts, this.loadOptsInit)
							 | 
						|
								      await this.getPrList()
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //数据量多时,滚动加载
							 | 
						|
								    async load() {
							 | 
						|
								      this.loadOpts.skipCount++
							 | 
						|
								      await this.getPrList()
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    // 获取列表数据
							 | 
						|
								    async getPrList() {
							 | 
						|
								
							 | 
						|
								      if (this.loadOpts.skipCount != 0 && this.loadOpts.skipCount * this.loadOpts.maxResultCount >= this.loadOpts.totalCount) return
							 | 
						|
								      console.log('getPrList', this.loadOpts)
							 | 
						|
								
							 | 
						|
								      let body = {
							 | 
						|
								        skipCount: this.loadOpts.skipCount,
							 | 
						|
								        maxResultCount: this.loadOpts.maxResultCount
							 | 
						|
								      };
							 | 
						|
								
							 | 
						|
								      console.log(`this.patientRegister.query`, this.patientRegister.query);
							 | 
						|
								      if (this.patientRegister.query.customerOrgFlag) {
							 | 
						|
								        // if (this.patientRegister.query.CustomerOrgParentId) {
							 | 
						|
								        //   body.customerOrgId = this.patientRegister.query.CustomerOrgParentId;
							 | 
						|
								        // } else {
							 | 
						|
								        //   if (this.patientRegister.query.customerOrgId)
							 | 
						|
								        //     body.customerOrgId = this.patientRegister.query.customerOrgId;
							 | 
						|
								        // }
							 | 
						|
								        if (this.patientRegister.query.customerOrgId) body.customerOrgId = this.patientRegister.query.customerOrgId;
							 | 
						|
								        if (this.patientRegister.query.customerOrgId
							 | 
						|
								          && this.patientRegister.query.customerOrgId != this.dict.personOrgId
							 | 
						|
								          && this.patientRegister.query.customerOrgRegister.id) {
							 | 
						|
								          body.customerOrgRegisterId = this.patientRegister.query.customerOrgRegister.id
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.sex)
							 | 
						|
								        body.sexId = this.patientRegister.query.sex;
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.patientName)
							 | 
						|
								        body.patientName = this.patientRegister.query.patientName;
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.completeFlag)
							 | 
						|
								        body.completeFlag = this.patientRegister.query.completeFlag;
							 | 
						|
								
							 | 
						|
								      //StartDate EndDate
							 | 
						|
								      if (
							 | 
						|
								        this.patientRegister.query.startDate &&
							 | 
						|
								        this.patientRegister.query.endDate
							 | 
						|
								      ) {
							 | 
						|
								        body.startDate = moment(this.patientRegister.query.startDate).format(
							 | 
						|
								          "yyyy-MM-DD"
							 | 
						|
								        );
							 | 
						|
								        body.endDate = moment(this.patientRegister.query.endDate).format(
							 | 
						|
								          "yyyy-MM-DD"
							 | 
						|
								        );
							 | 
						|
								        if (body.startDate > body.endDate) {
							 | 
						|
								          this.$message.warning({ showClose: true, message: "起始日期不能大于截止日期,数据校验不通过!"});
							 | 
						|
								          return;
							 | 
						|
								        }
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.phone)
							 | 
						|
								        body.phone = this.patientRegister.query.phone;
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.idCardNo)
							 | 
						|
								        body = { idNo: this.patientRegister.query.idCardNo };
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.patientNo)
							 | 
						|
								        body = { patientNo: this.patientRegister.query.patientNo };
							 | 
						|
								
							 | 
						|
								      if (this.patientRegister.query.patientRegisterNo)
							 | 
						|
								        body = {
							 | 
						|
								          patientRegisterNo: this.patientRegister.query.patientRegisterNo,
							 | 
						|
								        };
							 | 
						|
								
							 | 
						|
								      console.log("/api/app/patientregister/getlistinfilter", body);
							 | 
						|
								
							 | 
						|
								      postapi("/api/app/patientregister/getlistinfilter", body)
							 | 
						|
								        .then(res => {
							 | 
						|
								          if (res.code > -1) {
							 | 
						|
								            // 刷新最大记录数
							 | 
						|
								            this.loadOpts.totalCount = res.data.totalCount
							 | 
						|
								            let curLoad = res.data.items
							 | 
						|
								            let oldCount = 0
							 | 
						|
								
							 | 
						|
								            if (body.skipCount == 0) {  //查询
							 | 
						|
								              this.tableData = [];
							 | 
						|
								            } else {
							 | 
						|
								              // 懒加载 ,原数据集不用清空
							 | 
						|
								              oldCount = this.tableData.length
							 | 
						|
								            }
							 | 
						|
								            curLoad.forEach((e, index) => {
							 | 
						|
								              this.tableData.push(Object.assign({ index: Number(oldCount) + Number(index), choosed: false }, e))
							 | 
						|
								            })
							 | 
						|
								
							 | 
						|
								            //如果 有选中 记录,则刷新其对应的组合项目
							 | 
						|
								            if (this.dataTransOpts.tableS.patient_register.id) {
							 | 
						|
								              this.dataTransOpts.refresh.register_check_asbitem.M++
							 | 
						|
								            }
							 | 
						|
								          }
							 | 
						|
								        })
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //滚动加载数据 
							 | 
						|
								    scrollFull() {
							 | 
						|
								      this.dom = this.$refs['info'].bodyWrapper
							 | 
						|
								      console.log('this.dom', this.dom)
							 | 
						|
								
							 | 
						|
								      this.dom.addEventListener('scroll', async () => {
							 | 
						|
								        // console.log('scrollTop',this.dom.scrollTop,'clientHeight',this.dom.clientHeight,'scrollHeight',this.dom.scrollHeight);
							 | 
						|
								        if (this.dom.scrollTop + this.dom.clientHeight + 20 > this.dom.scrollHeight && !this.lazyLoading) {
							 | 
						|
								          // 获取到的不是全部数据 当滚动到底部 
							 | 
						|
								          console.log('scrollTop', this.dom.scrollTop, 'clientHeight', this.dom.clientHeight, 'scrollHeight', this.dom.scrollHeight);
							 | 
						|
								          if ((Number(this.loadOpts.skipCount) + 1) * Number(this.loadOpts.maxResultCount) >= Number(this.loadOpts.totalCount)) {
							 | 
						|
								            this.lazyLoading = false
							 | 
						|
								          } else {
							 | 
						|
								            this.lazyLoading = true
							 | 
						|
								            await this.load()
							 | 
						|
								            this.lazyLoading = false
							 | 
						|
								            // this.dom.scrollTop = this.dom.scrollTop - 100
							 | 
						|
								          }
							 | 
						|
								        }
							 | 
						|
								      })
							 | 
						|
								    },
							 | 
						|
								    //右击菜单
							 | 
						|
								    onCellRightClick(row, column) {
							 | 
						|
								      this.rClickRow = { ...row }; //右击的行记录
							 | 
						|
								      this.rClickColumn = { ...column }; //右击的列(预留)
							 | 
						|
								      console.log(row, column.property);
							 | 
						|
								    },
							 | 
						|
								    onContextmenu(event) {
							 | 
						|
								      //console.log('onContextmenu',event);
							 | 
						|
								      if (!this.rClickRow) return false;
							 | 
						|
								      let row = { ...this.rClickRow };
							 | 
						|
								      let items = [] //菜单项
							 | 
						|
								
							 | 
						|
								      if (checkPagePriv(this.pagePriv.privs, '发送检验申请') && row.completeFlag != '0')
							 | 
						|
								        items.push({
							 | 
						|
								          label: "发送检验申请",
							 | 
						|
								          onClick: () => {
							 | 
						|
								            this.lisRequest(row.id);
							 | 
						|
								          },
							 | 
						|
								        })
							 | 
						|
								      if (checkPagePriv(this.pagePriv.privs, '预览检验条码') && row.completeFlag != '0')
							 | 
						|
								        items.push({
							 | 
						|
								          label: "预览检验条码",
							 | 
						|
								          onClick: () => {
							 | 
						|
								            this.lisPrint(row.id, "0002", true);
							 | 
						|
								          },
							 | 
						|
								        })
							 | 
						|
								      if (checkPagePriv(this.pagePriv.privs, '打印检验条码') && row.completeFlag != '0')
							 | 
						|
								        items.push({
							 | 
						|
								          label: "打印检验条码",
							 | 
						|
								          onClick: () => {
							 | 
						|
								            this.lisPrint(row.id, "0002", false);
							 | 
						|
								          },
							 | 
						|
								        })
							 | 
						|
								      if (checkPagePriv(this.pagePriv.privs, '预览Pacs条码') && row.completeFlag != '0')
							 | 
						|
								        items.push({
							 | 
						|
								          label: "预览Pacs条码",
							 | 
						|
								          onClick: () => {
							 | 
						|
								            this.pacsPrint(row.id, "0004", true);
							 | 
						|
								          },
							 | 
						|
								        })
							 | 
						|
								      if (checkPagePriv(this.pagePriv.privs, '打印Pacs条码') && row.completeFlag != '0')
							 | 
						|
								        items.push({
							 | 
						|
								          label: "打印Pacs条码",
							 | 
						|
								          onClick: () => {
							 | 
						|
								            this.pacsPrint(row.id, "0004", false);
							 | 
						|
								          },
							 | 
						|
								        })
							 | 
						|
								      items.push({ label: "----------------", })
							 | 
						|
								      this.$contextmenu({
							 | 
						|
								        items,
							 | 
						|
								        event,
							 | 
						|
								        //x: event.clientX,
							 | 
						|
								        //y: event.clientY,
							 | 
						|
								        customClass: "custom-class",
							 | 
						|
								        zIndex: 3,
							 | 
						|
								        minWidth: 80,
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      this.rClickRow = null;
							 | 
						|
								      return false;
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //批量更新分组按钮
							 | 
						|
								    btnGroupBatch() {
							 | 
						|
								      let customerOrgId = this.patientRegister.query.customerOrgId;
							 | 
						|
								      if (!customerOrgId) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请选择单位"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      //取消勾选,换成选择的方式  start
							 | 
						|
								      this.multipleSelection = [];
							 | 
						|
								      this.tableData.forEach((e) => {
							 | 
						|
								        if (e.choosed) this.multipleSelection.push(e);
							 | 
						|
								      });
							 | 
						|
								      //取消勾选,换成选择的方式  end
							 | 
						|
								
							 | 
						|
								      if (this.multipleSelection.length < 1) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "请选择要操作的记录!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      this.dataTransOpts.plus.PatientRegisterEditGroupBatch++
							 | 
						|
								      this.dialogWin.PatientRegisterEditGroupBatch = true;
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //批量更新项目
							 | 
						|
								    btnAsbBatch() {
							 | 
						|
								      let customerOrgId = this.patientRegister.query.customerOrgId;
							 | 
						|
								      if (!customerOrgId) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请选择单位"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      //取消勾选,换成选择的方式  start
							 | 
						|
								      this.multipleSelection = [];
							 | 
						|
								      this.tableData.forEach((e) => {
							 | 
						|
								        if (e.choosed) this.multipleSelection.push(e);
							 | 
						|
								      });
							 | 
						|
								      //取消勾选,换成选择的方式  end
							 | 
						|
								
							 | 
						|
								      if (this.multipleSelection.length < 1) {
							 | 
						|
								        this.$message.warning({ showClose: true, message: "请选择要操作的记录"})
							 | 
						|
								        return
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      this.dataTransOpts.plus.PatientRegisterEditItemBatch++  //如果放在弹窗显示后面,在首次加载子组件时,会触发两次数据处理 
							 | 
						|
								      this.dialogWin.PatientRegisterEditItemBatch = true;
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //检验申请
							 | 
						|
								    async lisRequest(prId) {
							 | 
						|
								      let isPrintLisRequest = false;
							 | 
						|
								      let res = null;
							 | 
						|
								      if (prId.length < 1) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "人员信息尚未保存,不可执行此操作!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      try {
							 | 
						|
								        res = await postapi(
							 | 
						|
								          `/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`
							 | 
						|
								        );
							 | 
						|
								        console.log(
							 | 
						|
								          `/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`,
							 | 
						|
								          res
							 | 
						|
								        );
							 | 
						|
								      } catch (error) {
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      if (res.code > -1) {
							 | 
						|
								        isPrintLisRequest = true;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      //重复申请,重打
							 | 
						|
								      if (res.code == -1 && res.message.indexOf("已申请") > -1) {
							 | 
						|
								        isPrintLisRequest = true;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      if (!isPrintLisRequest) return;
							 | 
						|
								
							 | 
						|
								      try {
							 | 
						|
								        await this.$confirm("是否打印检验申请单?", "提示", {
							 | 
						|
								          confirmButtonText: "是",
							 | 
						|
								          cancelButtonText: "否",
							 | 
						|
								          type: "info",
							 | 
						|
								          showClose: false,
							 | 
						|
								          closeOnClickModal: false,
							 | 
						|
								          closeOnPressEscape: false,
							 | 
						|
								        });
							 | 
						|
								      } catch (error) {
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      //打印检验申请单
							 | 
						|
								      this.lisPrint(prId, "0003", false);
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //检验条码打印
							 | 
						|
								    lisPrint(prId, ReportCode, isPreview) {
							 | 
						|
								      if (!this.$peisAPI) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      let token = window.sessionStorage.getItem("token");
							 | 
						|
								      let user = window.sessionStorage.getItem("user");
							 | 
						|
								      let toOutShell = {
							 | 
						|
								        ReportCode,
							 | 
						|
								        token,
							 | 
						|
								        isBuildImage:'N',
							 | 
						|
								        IsUploadPdf:'N',
							 | 
						|
								        preViewCanPrint: "N",
							 | 
						|
								        Parameters: [
							 | 
						|
								          { Name: "printer", Value: user },
							 | 
						|
								          { Name: "hisLog", Value: "pic/hisLog.jpg" },
							 | 
						|
								        ],
							 | 
						|
								        BusinessCode:prId
							 | 
						|
								      };
							 | 
						|
								
							 | 
						|
								      if (isPreview) {
							 | 
						|
								        /*
							 | 
						|
								        postapi(
							 | 
						|
								          `/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}`
							 | 
						|
								        )
							 | 
						|
								          .then((res) => {
							 | 
						|
								            if (res.code != -1) {
							 | 
						|
								              toOutShell.ReportTable = { lisRequest: res.data };
							 | 
						|
								              console.log(
							 | 
						|
								                "JSON.stringify(toOutShell)",
							 | 
						|
								                JSON.stringify(toOutShell)
							 | 
						|
								              );
							 | 
						|
								              return this.$peisAPI.printPre(JSON.stringify(toOutShell));
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            this.$message.warning(err);
							 | 
						|
								          });
							 | 
						|
								        */
							 | 
						|
								        this.$peisAPI.printPre(JSON.stringify(toOutShell))          
							 | 
						|
								          .then(res => {
							 | 
						|
								            console.log('this.$peisAPI.printPre',res)
							 | 
						|
								            if (JSON.parse(res).code < 0) {
							 | 
						|
								              this.$message.warning({ showClose: true, message: JSON.parse(res).message });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            console.log('打印检验条码错误', err)
							 | 
						|
								            this.$message.warning({ showClose: true, message: `${err}` });
							 | 
						|
								          });
							 | 
						|
								
							 | 
						|
								      } else {
							 | 
						|
								        /*
							 | 
						|
								        postapi(
							 | 
						|
								          `/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}`
							 | 
						|
								        )
							 | 
						|
								          .then((res) => {
							 | 
						|
								            if (res.code != -1) {
							 | 
						|
								              toOutShell.ReportTable = { lisRequest: res.data };
							 | 
						|
								              console.log(
							 | 
						|
								                "JSON.stringify(toOutShell)",
							 | 
						|
								                JSON.stringify(toOutShell)
							 | 
						|
								              );
							 | 
						|
								              return this.$peisAPI.print(JSON.stringify(toOutShell));
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .then((res) => {
							 | 
						|
								            //console.log("res", res);
							 | 
						|
								            if (JSON.parse(res).code >= 0) {
							 | 
						|
								              //更新打印状态  /api/app/lisrequest/updatelisrequestisprint
							 | 
						|
								              // {
							 | 
						|
								              //   "operateType": 0,  操作类型(1.按PatientRegisterId 2.按LisRequestId)
							 | 
						|
								              //   "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
							 | 
						|
								              //   "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
							 | 
						|
								              // }
							 | 
						|
								              return postapi("/api/app/lisrequest/updatelisrequestisprint", {
							 | 
						|
								                operateType: 1,
							 | 
						|
								                patientRegisterId: prId,
							 | 
						|
								              });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            this.$message.warning(err);
							 | 
						|
								          });
							 | 
						|
								          */
							 | 
						|
								        this.$peisAPI.print(JSON.stringify(toOutShell))
							 | 
						|
								          .then(res => {
							 | 
						|
								            if (JSON.parse(res).code < 0) {
							 | 
						|
								              this.$message.warning({ showClose: true, message: JSON.parse(res).message });
							 | 
						|
								            }else{
							 | 
						|
								              return postapi("/api/app/lisrequest/updatelisrequestisprint", {
							 | 
						|
								                operateType: 1,
							 | 
						|
								                patientRegisterId: prId,
							 | 
						|
								              });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .then(res => {
							 | 
						|
								            if(res && res.code < 0){
							 | 
						|
								              this.$message.error({ showClose: true, message: `${res.message}` });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            console.log('打印检验条码错误', err)
							 | 
						|
								            this.$message.error({ showClose: true, message: `${err}` });
							 | 
						|
								          });
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //pacs条码打印
							 | 
						|
								    pacsPrint(prId, ReportCode, isPreview) {
							 | 
						|
								      if (!this.$peisAPI) {
							 | 
						|
								        this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!"});
							 | 
						|
								        return;
							 | 
						|
								      }
							 | 
						|
								      let token = window.sessionStorage.getItem("token");
							 | 
						|
								      let user = window.sessionStorage.getItem("user");
							 | 
						|
								      let toOutShell = {
							 | 
						|
								        ReportCode,
							 | 
						|
								        token,
							 | 
						|
								        isBuildImage:'N',
							 | 
						|
								        IsUploadPdf:'N',
							 | 
						|
								        preViewCanPrint: "Y",
							 | 
						|
								        Parameters: [
							 | 
						|
								          { Name: "printer", Value: user },
							 | 
						|
								          { Name: "hisLog", Value: "pic/hisLog.jpg" },
							 | 
						|
								        ],
							 | 
						|
								        BusinessCode:prId
							 | 
						|
								      };
							 | 
						|
								
							 | 
						|
								      if (isPreview) {
							 | 
						|
								        /*
							 | 
						|
								        postapi(
							 | 
						|
								          `/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`
							 | 
						|
								        )
							 | 
						|
								          .then((res) => {
							 | 
						|
								            if (res.code != -1) {
							 | 
						|
								              toOutShell.ReportTable = { lisRequest: res.data };
							 | 
						|
								              console.log(
							 | 
						|
								                "JSON.stringify(toOutShell)",
							 | 
						|
								                JSON.stringify(toOutShell)
							 | 
						|
								              );
							 | 
						|
								              return this.$peisAPI.printPre(JSON.stringify(toOutShell));
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            this.$message.warning(err);
							 | 
						|
								          });
							 | 
						|
								        */
							 | 
						|
								        this.$peisAPI.printPre(JSON.stringify(toOutShell))
							 | 
						|
								          .then(res => {
							 | 
						|
								            if (JSON.parse(res).code < 0) {
							 | 
						|
								              this.$message.warning({ showClose: true, message: JSON.parse(res).message });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            console.log('打印pacs条码错误', err)
							 | 
						|
								            this.$message.warning({ showClose: true, message: `${err}` });
							 | 
						|
								          });
							 | 
						|
								      } else {
							 | 
						|
								        /*
							 | 
						|
								        postapi(
							 | 
						|
								          `/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`
							 | 
						|
								        )
							 | 
						|
								          .then((res) => {
							 | 
						|
								            if (res.code != -1) {
							 | 
						|
								              toOutShell.ReportTable = { lisRequest: res.data };
							 | 
						|
								              console.log(
							 | 
						|
								                "JSON.stringify(toOutShell)",
							 | 
						|
								                JSON.stringify(toOutShell)
							 | 
						|
								              );
							 | 
						|
								              return this.$peisAPI.print(JSON.stringify(toOutShell));
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .then((res) => {
							 | 
						|
								            if (JSON.parse(res).code >= 0) {
							 | 
						|
								              //更新打印状态  /api/app/lisrequest/updatelisrequestisprint
							 | 
						|
								              // {
							 | 
						|
								              //   "operateType": 0,  操作类型(1.按PatientRegisterId 2.按LisRequestId)
							 | 
						|
								              //   "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
							 | 
						|
								              //   "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
							 | 
						|
								              // }
							 | 
						|
								              return postapi("/api/app/lisrequest/updatelisrequestisprint", {
							 | 
						|
								                operateType: 1,
							 | 
						|
								                patientRegisterId: prId,
							 | 
						|
								              });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            this.$message.warning(err);
							 | 
						|
								          });
							 | 
						|
								        */
							 | 
						|
								        this.$peisAPI.print(JSON.stringify(toOutShell))
							 | 
						|
								          .then(res => {
							 | 
						|
								            if (JSON.parse(res).code < 0) {
							 | 
						|
								              this.$message.warning({ showClose: true, message: JSON.parse(res).message });
							 | 
						|
								            }else{
							 | 
						|
								              return postapi("/api/app/lisrequest/updatelisrequestisprint", {
							 | 
						|
								                operateType: 1,
							 | 
						|
								                patientRegisterId: prId,
							 | 
						|
								              });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .then(res => {
							 | 
						|
								            if(res && res.code < 0){
							 | 
						|
								              this.$message.error({ showClose: true, message: `${res.message}` });
							 | 
						|
								            }
							 | 
						|
								          })
							 | 
						|
								          .catch((err) => {
							 | 
						|
								            console.log('打印pacs条码错误', err)
							 | 
						|
								            this.$message.error({ showClose: true, message: `${err}` });
							 | 
						|
								          });
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    columnDrop(dropCol) {
							 | 
						|
								      //获取dom节点
							 | 
						|
								      const wrapperTr = document.querySelector(".el-table__header-wrapper tr");
							 | 
						|
								      Sortable.create(wrapperTr, {
							 | 
						|
								        animation: 180,
							 | 
						|
								        delay: 0,
							 | 
						|
								        // 元素被选中
							 | 
						|
								        onChoose: function (/**Event*/ evt) {
							 | 
						|
								          //console.log('onChoose',evt,evt.oldIndex)
							 | 
						|
								          evt.oldIndex; // element index within parent
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        // 元素未被选中的时候(从选中到未选中)
							 | 
						|
								        onUnchoose: function (/**Event*/ evt) {
							 | 
						|
								          // same properties as onEnd
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        // 开始拖拽的时候
							 | 
						|
								        onStart: function (/**Event*/ evt) {
							 | 
						|
								          //console.log('onStart',evt,evt.oldIndex)
							 | 
						|
								          evt.oldIndex; // element index within parent
							 | 
						|
								        },
							 | 
						|
								        onEnd: (evt) => {
							 | 
						|
								          const oldItem = dropCol[evt.oldIndex];  // dropCol[evt.oldIndex - 1]; 
							 | 
						|
								          if (oldItem) {
							 | 
						|
								            dropCol.splice(evt.oldIndex, 1);
							 | 
						|
								            dropCol.splice(evt.newIndex, 0, oldItem);
							 | 
						|
								          }
							 | 
						|
								          //console.log(this.headerCols, oldItem, dropCol);
							 | 
						|
								        },
							 | 
						|
								      });
							 | 
						|
								      return dropCol;
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //通用导出
							 | 
						|
								    btnExport(elId) {
							 | 
						|
								      // 获取HTML元素(表格)
							 | 
						|
								      // let table = document.getElementById(elId); //.cloneNode(true)
							 | 
						|
								      this.$nextTick(() => {
							 | 
						|
								        let refsTable = this.$refs[elId]  //.cloneNode(true) true
							 | 
						|
								        let table = document.getElementById(elId)
							 | 
						|
								        console.log('table,refsTable', table, refsTable)
							 | 
						|
								
							 | 
						|
								        let tableData = table.innerHTML
							 | 
						|
								        let fileName = moment(new Date()).format('yyyyMMDDHHmmss')
							 | 
						|
								        let blob = new Blob([tableData], { type: "text/plain;charset=utf-8" });
							 | 
						|
								
							 | 
						|
								        FileSaver.saveAs(blob, fileName + '.xls');
							 | 
						|
								
							 | 
						|
								        // 导出图片       
							 | 
						|
								        // 使用html2canvas将HTML元素转换为画布
							 | 
						|
								        // let cloneTable = table.cloneNode(true) //[elId]
							 | 
						|
								
							 | 
						|
								        html2canvas(table).then(canvas => {
							 | 
						|
								
							 | 
						|
								          // 创建一个a元素用于下载
							 | 
						|
								          const link = document.createElement('a');
							 | 
						|
								          link.href = canvas.toDataURL('image/jpeg');
							 | 
						|
								          link.download = fileName + '.jpg';
							 | 
						|
								          document.body.appendChild(link);
							 | 
						|
								          link.click();
							 | 
						|
								          //document.body.removeChild(link);
							 | 
						|
								
							 | 
						|
								          // // 创建一个PDF对象
							 | 
						|
								          // var pdf = new jsPDF();    
							 | 
						|
								          // // 设置PDF的尺寸
							 | 
						|
								          // pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0, canvas.width, canvas.height);    
							 | 
						|
								          // // 导出PDF
							 | 
						|
								          // pdf.save('员工信息表.pdf');
							 | 
						|
								
							 | 
						|
								        });
							 | 
						|
								      })
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  //监听事件
							 | 
						|
								  watch: {
							 | 
						|
								    "patientRegister.query.customerOrgId": {
							 | 
						|
								      // immediate: true, // 立即执行
							 | 
						|
								      // deep: true, // 深度监听复杂类型内变化
							 | 
						|
								      handler(newVal, oldVal) {
							 | 
						|
								        //console.log('watch:patientRegister.query.customerOrgId:',newVal,oldVal)
							 | 
						|
								        // 单位变化时,清除当前列表信息
							 | 
						|
								        if (newVal && newVal != oldVal) {
							 | 
						|
								          this.tableData = []
							 | 
						|
								          this.dataTransOpts.tableM.register_check_asbitem = []
							 | 
						|
								        }
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //触发查询事件
							 | 
						|
								    "patientRegister.query.times"(newVal, oldVal) {
							 | 
						|
								      if (newVal != oldVal) {
							 | 
						|
								        //alert('触发查询事件')
							 | 
						|
								        this.Query();
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //新增后,触发赋值
							 | 
						|
								    // "patientRegister.patientRegisterRd.id"(newVal, oldVal) {
							 | 
						|
								    //   if (newVal != oldVal) {
							 | 
						|
								    //     //console.log('patientRegister.patientRegisterRd.customerOrgId',this.patientRegister.patientRegisterRd.customerOrgId)
							 | 
						|
								    //     objCopy(this.patientRegister.patientRegisterRd, this.form);
							 | 
						|
								    //   }
							 | 
						|
								    // },
							 | 
						|
								  },
							 | 
						|
								};
							 | 
						|
								</script>
							 | 
						|
								<style scoped>
							 | 
						|
								@import "../../assets/css/global_input.css";
							 | 
						|
								@import "../../assets/css/global_table.css";
							 | 
						|
								@import "../../assets/css/global.css";
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								.box {
							 | 
						|
								  display: flex;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.listBtn {
							 | 
						|
								  margin-top: 5px;
							 | 
						|
								  text-align: center;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.btnClass {
							 | 
						|
								  width: 100px;
							 | 
						|
								}
							 | 
						|
								</style>
							 |