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.
		
		
		
		
		
			
		
			
				
					
					
						
							543 lines
						
					
					
						
							20 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							543 lines
						
					
					
						
							20 KiB
						
					
					
				
								<template>
							 | 
						|
								  <div>
							 | 
						|
								    <!-- 查询条件 -->
							 | 
						|
								    <div :style="`display: flex; flex-wrap: wrap; width: 100%;height:${divHeight}px;`">
							 | 
						|
								      <div v-if="winAbsolute" style="position: absolute;top:3px;right:0px;">
							 | 
						|
								        <el-tooltip content="关闭人员列表窗口" placement="bottom" effect="light">
							 | 
						|
								          <i class="el-icon-close"
							 | 
						|
								            @click="doctorCheck.doctorCheckDialogVisible = false; sumDoctorCheck.sumDoctorCheckDialogVisible = false;"
							 | 
						|
								            style="font-size: 24px;color: red;cursor:pointer;"></i>
							 | 
						|
								        </el-tooltip>
							 | 
						|
								      </div>
							 | 
						|
								      <div class="query" style="display: flex;padding-top: 2px;">
							 | 
						|
								        <el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:238px;" size="small"
							 | 
						|
								          disabled>
							 | 
						|
								        </el-input>
							 | 
						|
								        <el-button icon="el-icon-search" @click="report.dialogCusOrgOCX = true"
							 | 
						|
								          style="font-size: 20px;height:30px;min-width:30px; padding: 5px 5px;" size="small"></el-button>
							 | 
						|
								      </div>
							 | 
						|
								
							 | 
						|
								      <div class="query">
							 | 
						|
								        <span>姓名:</span>
							 | 
						|
								        <el-input placeholder="姓名" v-model="local.query.patientName" size="small" clearable style="width: 110px" />
							 | 
						|
								      </div>
							 | 
						|
								      <div class="query">
							 | 
						|
								        <span>性别:</span>
							 | 
						|
								        <el-select v-model="local.query.sex" placeholder="请选择" clearable style="width: 80px" size="small">
							 | 
						|
								          <el-option v-for="item in dict.forSex" :key="item.id" :label="item.displayName" :value="item.id">
							 | 
						|
								          </el-option>
							 | 
						|
								        </el-select>
							 | 
						|
								      </div>
							 | 
						|
								      <div class="query">
							 | 
						|
								        <span>人员状态:</span>
							 | 
						|
								        <el-select v-model="local.query.completeFlag" placeholder="请选择" clearable style="width: 80px" size="small">
							 | 
						|
								          <el-option v-for="item in local.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
							 | 
						|
								          </el-option>
							 | 
						|
								        </el-select>
							 | 
						|
								        <el-select v-model="local.query.isAudit" placeholder="请选择" clearable style="width: 75px;margin: 0 2px;"
							 | 
						|
								          size="small">
							 | 
						|
								          <el-option label="未审核" value="N" />
							 | 
						|
								          <el-option label="已审核" value="Y" />
							 | 
						|
								        </el-select>
							 | 
						|
								        <el-checkbox v-if="win == 'doctorCheck'" v-model="local.query.haveImage">有图</el-checkbox>
							 | 
						|
								      </div>
							 | 
						|
								      
							 | 
						|
								        <div class="query" v-if="win == 'doctorCheck'">
							 | 
						|
								          <span>组合项目:</span>
							 | 
						|
								          <el-select v-model="local.query.checkAsb" placeholder="快速选择组合项目" size="small" filterable
							 | 
						|
								            :filter-method="filterMethod" clearable @clear="quickAsb = deepCopy(asbItemQuick)" default-first-option
							 | 
						|
								            ref="quickAsbOCX" style="width:207px;text-align: left;">
							 | 
						|
								            <el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
							 | 
						|
								          </el-select>
							 | 
						|
								        </div>
							 | 
						|
								        <div class="query" v-if="win == 'doctorCheck'">
							 | 
						|
								          <span>检查状态:</span>
							 | 
						|
								          <el-select v-model="local.query.checkCompleteFlag" placeholder="请选择" clearable style="width: 80px" size="small">
							 | 
						|
								            <el-option v-for="item in dict.checkCompleteFlag" :key="item.id" :label="item.displayName" :value="item.id">
							 | 
						|
								            </el-option>
							 | 
						|
								          </el-select>
							 | 
						|
								          <el-select v-model="local.query.isAuditCheck" placeholder="请选择" clearable style="width: 75px;margin: 0 2px;"
							 | 
						|
								            size="small">
							 | 
						|
								            <el-option label="未审核" value="N" />
							 | 
						|
								            <el-option label="已审核" value="Y" />
							 | 
						|
								          </el-select>
							 | 
						|
								        </div>
							 | 
						|
								      
							 | 
						|
								      <div class="query">
							 | 
						|
								        <el-button class="commonbutton" type="primary" @click="query" size="small"
							 | 
						|
								          style="width:50px;height:26px;margin: 2px 0 2px -3px;">查询</el-button>
							 | 
						|
								      </div>
							 | 
						|
								    </div>
							 | 
						|
								
							 | 
						|
								    <!-- 人员列表 -->
							 | 
						|
								    <el-table :data="dataList" border width="100%"
							 | 
						|
								      :height="tableHeight" row-key="id"
							 | 
						|
								      size="small" highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" ref="info" id="info"
							 | 
						|
								      style="border-radius:10px;">
							 | 
						|
								      <el-table-column prop="customerOrgParentName" label="单位" width="120" sortable>
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="customerOrgName" label="部门" width="100" sortable>
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="patientName" label="姓名" width="80" sortable align="center"/>
							 | 
						|
								      <el-table-column prop="sexId" label="性别" sortable align="center">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="age" label="年龄" align="center"/>
							 | 
						|
								      <el-table-column prop="patientRegisterNo" label="条码号" width="150" sortable align="center"/>
							 | 
						|
								      <el-table-column prop="patientNo" label="档案号" sortable align="center"/>
							 | 
						|
								      <el-table-column prop="medicalTimes" label="体检次数" align="center" />
							 | 
						|
								      <el-table-column label="分组/套餐" width="150">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <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>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="nationId" label="民族" sortable align="center" >
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>
							 | 
						|
								            {{ dddw(dict.nation, "id", scope.row.nationId, "displayName") }}
							 | 
						|
								          </div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="idNo" label="身份证" sortable width="180" align="center" />
							 | 
						|
								      <el-table-column prop="birthDate" label="出生日期" align="center" width="100" >
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div v-if="scope.row.birthDate">
							 | 
						|
								            {{ lmoment(scope.row.birthDate, "yyyy-MM-DD") }}
							 | 
						|
								          </div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="email" label="邮箱" width="150"/>
							 | 
						|
								      <el-table-column prop="mobileTelephone" label="手机" width="130"/>
							 | 
						|
								      <el-table-column prop="telephone" label="电话" width="130"/>
							 | 
						|
								      <el-table-column prop="address" label="地址" width="400"/>
							 | 
						|
								      <el-table-column prop="medicalCardNo" label="体检卡号" />
							 | 
						|
								      <el-table-column prop="jobCardNo" label="工卡号" />
							 | 
						|
								      <el-table-column prop="maritalStatusId" label="婚姻状况" align="center">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>
							 | 
						|
								            {{ dddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }}
							 | 
						|
								          </div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="medicalTypeId" label="体检类别" sortable>
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div v-if="scope.row.medicalTypeId !== dict.personOrgId">
							 | 
						|
								            {{ dddw(dict.medicalType, "id", scope.row.medicalTypeId, "displayName") }}
							 | 
						|
								          </div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="personnelTypeId" label="人员类别" sortable>
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div v-if="scope.row.personnelTypeId !== dict.personOrgId">
							 | 
						|
								            {{ dddw(dict.personnelType, "id", scope.row.personnelTypeId, "displayName") }}
							 | 
						|
								          </div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="jobPost" label="职务" width="200"/>
							 | 
						|
								      <el-table-column prop="jobTitle" label="职称" />
							 | 
						|
								      <el-table-column prop="salesman" label="介绍人" />
							 | 
						|
								      <el-table-column prop="isVip" label="是否VIP" align="center">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="creatorName" label="登记人" />
							 | 
						|
								      <el-table-column prop="creationTime" label="登记日期" width="100" align="center">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="isUpload" label="是否上传">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="completeFlag" label="体检进度">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								      <el-table-column prop="isLock" label="锁住">
							 | 
						|
								        <template slot-scope="scope">
							 | 
						|
								          <div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
							 | 
						|
								        </template>
							 | 
						|
								      </el-table-column>
							 | 
						|
								    </el-table>
							 | 
						|
								    <div style="display: flex;justify-content:space-between;">
							 | 
						|
								      <div></div>
							 | 
						|
								      <div>
							 | 
						|
								        <span style="font-size:12px;">共:{{ loadOpts.totalCount }} 条记录,当前显示:{{ dataList.length }}
							 | 
						|
								          条。</span>
							 | 
						|
								      </div>
							 | 
						|
								    </div>
							 | 
						|
								
							 | 
						|
								    <!--通用选单位、体检次数、分组的控件-->
							 | 
						|
								    <el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" :close-on-click-modal="false" :append-to-body="true"
							 | 
						|
								      width="880px" height="600px">
							 | 
						|
								      <CusOrgOCX :useCustomerOrg="false" :initDateType="'medicalStartDate'" />
							 | 
						|
								    </el-dialog>
							 | 
						|
								
							 | 
						|
								  </div>
							 | 
						|
								</template>
							 | 
						|
								<script>
							 | 
						|
								import moment from "moment";
							 | 
						|
								import { mapState, mapMutations } from "vuex";
							 | 
						|
								import { getapi, postapi, putapi, deletapi } from "@/api/api";
							 | 
						|
								import { dddw, objCopy, arrayReduce, deepCopy } from "../../utlis/proFunc"
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								import CusOrgOCX from "../../components/report/CusOrgOCX.vue"
							 | 
						|
								
							 | 
						|
								export default {
							 | 
						|
								  components: {
							 | 
						|
								    CusOrgOCX,
							 | 
						|
								  },
							 | 
						|
								  props: ['win', 'winAbsolute'],
							 | 
						|
								  data() {
							 | 
						|
								    return {
							 | 
						|
								      dataList: [], //列表数据
							 | 
						|
								      multipleSelection: [], //选中的数据列表
							 | 
						|
								      dialogVisible: false,
							 | 
						|
								      dialogCamera: false,
							 | 
						|
								
							 | 
						|
								      local: {
							 | 
						|
								        query: {
							 | 
						|
								          dateType: 'creationTime', //登记日期
							 | 
						|
								          dateRange: null, //日期范围
							 | 
						|
								          startDate: null,
							 | 
						|
								          endDate: null,
							 | 
						|
								          containRefuse: true, //包含弃检项目        
							 | 
						|
								          times: 0, //触发查询次数
							 | 
						|
								          customerOrgId: "", //体检单位ID
							 | 
						|
								          CustomerOrgParentId: "", //单位父级ID
							 | 
						|
								          customerOrgFlag: true, //单位作为查询条件
							 | 
						|
								          customerOrgRegister: { id: '' }, //单位体检次数 
							 | 
						|
								          checkAsbs: null,
							 | 
						|
								          patientName: '', //姓名
							 | 
						|
								          sex: '', //性别
							 | 
						|
								          idCardNo: '', //身份证号
							 | 
						|
								          haveImage: false,
							 | 
						|
								          checkAsb: '', //检查项目   
							 | 
						|
								          checkCompleteFlag:'',  //检查项目状态
							 | 
						|
								          isAuditCheck:'',      //检查项目审核
							 | 
						|
								        },
							 | 
						|
								        completeFlag: []
							 | 
						|
								      },
							 | 
						|
								
							 | 
						|
								      quickAsb: [],
							 | 
						|
								      asbItemQuick: [],
							 | 
						|
								
							 | 
						|
								      dom: null,   //用于滚动加载数据
							 | 
						|
								      lazyLoading: false,  //是否懒加载中
							 | 
						|
								      loadOpts: {
							 | 
						|
								        totalCount: 0,
							 | 
						|
								        skipCount: 0,
							 | 
						|
								        maxResultCount: 100,
							 | 
						|
								      },
							 | 
						|
								      loadOptsInit: {},
							 | 
						|
								
							 | 
						|
								      oneClick: 0,  // 1 表示行单击一次
							 | 
						|
								      DbClick: 0,  // 1 表示行有单击第二次
							 | 
						|
								    };
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  created() {
							 | 
						|
								    this.dictInit()
							 | 
						|
								    this.loadOptsInit = Object.assign({}, this.loadOpts)
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  //挂载完成
							 | 
						|
								  mounted() {
							 | 
						|
								    this.$nextTick(() => {
							 | 
						|
								      this.scrollFull()
							 | 
						|
								    })
							 | 
						|
								  },
							 | 
						|
								  computed: {
							 | 
						|
								    ...mapState(["window", "dataTransOpts", "dict", "customerOrg", "patientRegister", "doctorCheck", "sumDoctorCheck", "report"]),
							 | 
						|
								    divHeight() {
							 | 
						|
								      if (this.win == "doctorCheck") {
							 | 
						|
								        return 170
							 | 
						|
								      } else {
							 | 
						|
								        return 105
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								    tableHeight(){
							 | 
						|
								      return this.winAbsolute ? (this.window.pageHeight - 46 - 30 - this.divHeight) : (this.window.pageHeight - 46 - this.divHeight)
							 | 
						|
								    },
							 | 
						|
								  },
							 | 
						|
								  methods: {
							 | 
						|
								    ...mapMutations(['doctorCheckPrBaseInit', 'sumPREditInit']),
							 | 
						|
								    dddw,
							 | 
						|
								
							 | 
						|
								    dictInit() {
							 | 
						|
								      // 默认 当天 体检日期 
							 | 
						|
								      let today = moment(new Date()).format('yyyy-MM-DD');
							 | 
						|
								      this.report.dataCusOrgOCX = [{
							 | 
						|
								        id: Date.now(),
							 | 
						|
								        customerOrgId: "",
							 | 
						|
								        customerOrgName: "",
							 | 
						|
								        customerOrgRegister: {},
							 | 
						|
								        customerOrgRegisterList: [],
							 | 
						|
								        dateType: "medicalStartDate",
							 | 
						|
								        startDate: today,
							 | 
						|
								        endDate: today,
							 | 
						|
								        customerOrgGroupIds: [],
							 | 
						|
								        customerOrgGroupList: []
							 | 
						|
								      }]
							 | 
						|
								      this.patientRegister.query.cusOrgOCX = `(体检${today}~${today})`
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								      //分组,所有分组,不限单位,不限次数
							 | 
						|
								      getapi("/api/app/customerorggroup/getlistinfilter").then((res) => {
							 | 
						|
								        if (res.code > -1) {
							 | 
						|
								          this.dict.customerOrgGroupAll = res.data;
							 | 
						|
								        }
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      // 获取组合项目
							 | 
						|
								      postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => {
							 | 
						|
								        if (res.code != -1) {
							 | 
						|
								          this.asbItemQuick = res.data
							 | 
						|
								          this.quickAsb = res.data
							 | 
						|
								        }
							 | 
						|
								      });
							 | 
						|
								
							 | 
						|
								      this.local.completeFlag = deepCopy(this.dict.completeFlag)
							 | 
						|
								      this.local.completeFlag.splice(0, 1) //预记选项去掉
							 | 
						|
								      this.local.completeFlag.splice(2, 0, { id: '5', displayName: '全部已检(未总检)' }) //插入
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    //快速选择组合项目时,调整可按拼间简码及简称查找
							 | 
						|
								    filterMethod(keyWords) {
							 | 
						|
								      //console.log('filterMethod',this.asbItemQuick)  
							 | 
						|
								      if (keyWords) {
							 | 
						|
								        this.quickAsb = [];
							 | 
						|
								        this.asbItemQuick.forEach(item => {
							 | 
						|
								          if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
							 | 
						|
								            || item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
							 | 
						|
								            || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1) {
							 | 
						|
								            this.quickAsb.push(item);
							 | 
						|
								          }
							 | 
						|
								        });
							 | 
						|
								      } else {
							 | 
						|
								        this.quickAsb = deepCopy(this.asbItemQuick);
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //快速选择组合项目
							 | 
						|
								    // quickChoosedAsb(v) {
							 | 
						|
								    //   //远程查询时,设置了 value-key 也不管用,只能取到value console.log('quickChoosedAsb',v)
							 | 
						|
								    //   let lfind = -1
							 | 
						|
								    //   if (v) {
							 | 
						|
								    //     lfind = arrayExistObj(this.asbItemQuick, 'id', v)
							 | 
						|
								    //     if (lfind > -1) {
							 | 
						|
								    //       this.addAbs([this.asbItemQuick[lfind]])
							 | 
						|
								    //     }
							 | 
						|
								    //   }    
							 | 
						|
								    //   //this.$refs['quickAsbOCX'].focus(); //asbItemId
							 | 
						|
								    //   this.$nextTick(() => {        
							 | 
						|
								    //     this.$refs['quickAsbOCX'].blur(); //total  asbItemId
							 | 
						|
								    //     this.asbItemId = ''
							 | 
						|
								    //     this.quickAsb = deepCopy(this.asbItemQuick)        
							 | 
						|
								    //     this.$refs['quickAsbOCX'].focus(); //total  asbItemId       
							 | 
						|
								    //   });
							 | 
						|
								
							 | 
						|
								    // },
							 | 
						|
								
							 | 
						|
								    //点击体检次数行
							 | 
						|
								    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;
							 | 
						|
								
							 | 
						|
								      this.dataTransOpts.tableS.patient_register = deepCopy(row)
							 | 
						|
								      // setTimeout(() => {
							 | 
						|
								      this.dataTransOpts.refresh.patient_register.S++ //人员体检登记信息刷新
							 | 
						|
								      // }, 10);    
							 | 
						|
								
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //双击选中客户记录后,并半闭列表
							 | 
						|
								    rowDblclick(row) {
							 | 
						|
								      // this.rowClick(row)
							 | 
						|
								
							 | 
						|
								      this.doctorCheck.doctorCheckDialogVisible = false
							 | 
						|
								      this.sumDoctorCheck.sumDoctorCheckDialogVisible = false
							 | 
						|
								      // console.log('rowDblclick', this.doctorCheck.doctorCheckDialogVisible, this.sumDoctorCheck.sumDoctorCheckDialogVisible)
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    lmoment(date, forMat) {
							 | 
						|
								      return moment(new Date(date)).format(forMat);
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //查询
							 | 
						|
								    async query() {
							 | 
						|
								      this.loadOpts = Object.assign(this.loadOpts, this.loadOptsInit)
							 | 
						|
								      await this.getPrList()
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    async getPrList() {
							 | 
						|
								      if (this.loadOpts.skipCount != 0 && this.loadOpts.skipCount * this.loadOpts.maxResultCount >= this.loadOpts.totalCount) return
							 | 
						|
								      let body = {}, customerOrgs = []
							 | 
						|
								      console.log('this.report.dataCusOrgOCX', this.report.dataCusOrgOCX)
							 | 
						|
								      if (this.report.dataCusOrgOCX.length > 0) {
							 | 
						|
								        this.report.dataCusOrgOCX.forEach(e => {
							 | 
						|
								          let rd = {
							 | 
						|
								            startDate: moment(e.startDate).format('yyyy-MM-DD'),
							 | 
						|
								            endDate: moment(e.endDate).format('yyyy-MM-DD'),
							 | 
						|
								            dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1')
							 | 
						|
								          }
							 | 
						|
								
							 | 
						|
								          if (e.customerOrgId) {
							 | 
						|
								            rd.customerOrgId = e.customerOrgId
							 | 
						|
								            if (e.customerOrgId == this.dict.personOrgId) {
							 | 
						|
								              rd.customerOrgRegisterId = null
							 | 
						|
								              rd.customerOrgGroupId = []
							 | 
						|
								            } else {
							 | 
						|
								              rd.customerOrgRegisterId = e.customerOrgRegister.id
							 | 
						|
								              rd.customerOrgGroupId = e.customerOrgGroupIds
							 | 
						|
								            }
							 | 
						|
								          }
							 | 
						|
								          customerOrgs.push(rd)
							 | 
						|
								        })
							 | 
						|
								      }
							 | 
						|
								
							 | 
						|
								      body.customerOrgs = customerOrgs
							 | 
						|
								      if (this.local.query.patientName) body.patientName = this.local.query.patientName
							 | 
						|
								      if (this.local.query.sex) body.sexId = this.local.query.sex
							 | 
						|
								      if (this.local.query.isAudit) body.isAudit = this.local.query.isAudit
							 | 
						|
								      if (this.local.query.completeFlag) body.completeFlag = this.local.query.completeFlag
							 | 
						|
								      if (this.local.query.checkAsb) body.asbitems = [this.local.query.checkAsb]
							 | 
						|
								      if (this.local.query.haveImage) body.isPicture = 'Y'
							 | 
						|
								      if (this.local.query.checkCompleteFlag) body.asbitemCompleteFlag = this.local.query.checkCompleteFlag
							 | 
						|
								      if (this.local.query.isAuditCheck) body.asbitemIsAudit = this.local.query.isAuditCheck
							 | 
						|
								
							 | 
						|
								      body.isFilterPreRegistration = 'Y' //是否需要过滤预登记数据 Y=过滤预登记数据 N=不过滤 默认为N (备注:只有CompleteFlag参数的值不为0的情况才有效,null值也有效)
							 | 
						|
								      // "patientName": "string",
							 | 
						|
								      // "sexId": "string",
							 | 
						|
								      // "isAudit": "string",
							 | 
						|
								      // "completeFlag": "string",
							 | 
						|
								      // "maxResultCount": 0
							 | 
						|
								      // console.log('/api/patientregister/getpeisrecordlist', Object.assign(body, this.loadOpts))
							 | 
						|
								      // const loading = this.$loading({
							 | 
						|
								      //   lock: true,
							 | 
						|
								      //   text: "Loading",
							 | 
						|
								      //   spinner: "el-icon-loading",
							 | 
						|
								      //   background: "rgba(0, 0, 0, 0.7)",
							 | 
						|
								      // });
							 | 
						|
								      body = Object.assign(body, this.loadOpts)
							 | 
						|
								      let url = '/api/app/PatientRegister/GetSumDoctorPeisRecordList'
							 | 
						|
								      if(this.win == "doctorCheck") url = '/api/app/PatientRegister/GetDoctorPeisRecordList'      
							 | 
						|
								
							 | 
						|
								      postapi(url, body)
							 | 
						|
								        .then((res) => {
							 | 
						|
								          if (res.code > -1) {
							 | 
						|
								
							 | 
						|
								            // 刷新最大记录数
							 | 
						|
								            this.loadOpts.totalCount = res.data.totalCount
							 | 
						|
								            if (body.skipCount == 0) this.dataList = [];
							 | 
						|
								            this.dataList = this.dataList.concat(res.data.items)
							 | 
						|
								
							 | 
						|
								          }
							 | 
						|
								        })
							 | 
						|
								        // .finally(() =>{
							 | 
						|
								        //   loading.close();
							 | 
						|
								        // })
							 | 
						|
								        ;
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //数据量多时,滚动加载
							 | 
						|
								    async load() {
							 | 
						|
								      this.loadOpts.skipCount++
							 | 
						|
								      await this.getPrList()
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //滚动加载数据 
							 | 
						|
								    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
							 | 
						|
								          }
							 | 
						|
								        }
							 | 
						|
								      })
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    //关闭
							 | 
						|
								    close() {
							 | 
						|
								      //console.log('this.win',this.win)
							 | 
						|
								      if (this.win == 'doctorCheck') {
							 | 
						|
								        this.doctorCheck.doctorCheckDialogVisible = false
							 | 
						|
								      } else {
							 | 
						|
								        this.sumDoctorCheck.sumDoctorCheckDialogVisible = false
							 | 
						|
								      }
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								  },
							 | 
						|
								
							 | 
						|
								  //监听事件
							 | 
						|
								  watch: {
							 | 
						|
								
							 | 
						|
								  },
							 | 
						|
								};
							 | 
						|
								</script>
							 | 
						|
								<style scoped>
							 | 
						|
								.box {
							 | 
						|
								  display: flex;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.query {
							 | 
						|
								  margin-left: 5px;
							 | 
						|
								  margin-bottom: 2px;
							 | 
						|
								  font-size: 14px;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								.listBtn {
							 | 
						|
								  margin-top: 10px;
							 | 
						|
								}
							 | 
						|
								</style>
							 |