pengjun 3 months ago
parent
commit
2bc49955de
  1. 3
      src/assets/css/global_table.css
  2. 161
      src/components/doctorCheck/PatientRegisterList.vue
  3. 30
      src/components/patientRegister/PatientRegisterList.vue
  4. 166
      src/components/patientRegister/PatientRegisterRecoverList.vue
  5. 79
      src/components/report/PatientRegisterListNobtn.vue

3
src/assets/css/global_table.css

@ -72,7 +72,8 @@
/* 设置表体样式 */
.el-table td.el-table__cell,
.plTableBox .el-table td.is-center {
.plTableBox .el-table td.is-center,
.plTableBox .el-table td {
padding: 0;
color: #52555F;
/* 设置表体文字颜色 */

161
src/components/doctorCheck/PatientRegisterList.vue

@ -90,28 +90,28 @@
</div>
<!-- 人员列表 -->
<el-table :data="dataList" border width="100%" :height="tableHeight" row-key="id" size="small" highlight-current-row
<u-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;"
:row-class-name="tableRowClassName">
<el-table-column type="index" label="序号" width="40" align="center" />
<el-table-column prop="customerOrgParentName" label="单位" width="120" sortable show-overflow-tooltip>
:row-class-name="tableRowClassName" @table-body-scroll="scrollFull" use-virtual :row-height="23" big-data-checkbox :data-changes-scroll-top="false">
<u-table-column type="index" label="序号" width="40" align="center" />
<u-table-column prop="customerOrgParentName" label="单位" width="120" sortable show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName :
scope.row.customerOrgName }}</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" width="80" sortable align="center" show-overflow-tooltip/>
<el-table-column prop="sexName" label="性别" width="50" sortable align="center" />
<el-table-column prop="age" label="年龄" width="50" align="center" sortable/>
<el-table-column prop="customerOrgName" label="部门" width="100" sortable show-overflow-tooltip>
</u-table-column>
<u-table-column prop="patientName" label="姓名" width="80" sortable align="center" show-overflow-tooltip/>
<u-table-column prop="sexName" label="性别" width="50" sortable align="center" />
<u-table-column prop="age" label="年龄" width="50" align="center" sortable/>
<u-table-column prop="customerOrgName" label="部门" width="100" sortable show-overflow-tooltip>
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
<el-table-column prop="patientRegisterNo" label="条码号" width="150" sortable align="center" show-overflow-tooltip/>
<el-table-column prop="patientNo" label="档案号" sortable align="center" show-overflow-tooltip/>
<el-table-column prop="medicalTimes" label="次数" align="center" />
<el-table-column label="分组/套餐" width="150" show-overflow-tooltip>
</u-table-column>
<u-table-column prop="patientRegisterNo" label="条码号" width="150" sortable align="center" show-overflow-tooltip/>
<u-table-column prop="patientNo" label="档案号" sortable align="center" show-overflow-tooltip/>
<u-table-column prop="medicalTimes" label="次数" align="center" />
<u-table-column label="分组/套餐" width="150" show-overflow-tooltip>
<template slot-scope="scope">
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ scope.row.medicalPackageName }}
@ -120,59 +120,59 @@
{{ scope.row.customerOrgGroupName }}
</div>
</template>
</el-table-column>
<el-table-column prop="nationName" label="民族" sortable align="center" show-overflow-tooltip/>
<el-table-column prop="idNo" label="身份证" sortable width="160" align="center" show-overflow-tooltip/>
<el-table-column prop="birthDate" label="出生日期" align="center" width="100">
</u-table-column>
<u-table-column prop="nationName" label="民族" sortable align="center" show-overflow-tooltip/>
<u-table-column prop="idNo" label="身份证" sortable width="160" align="center" show-overflow-tooltip/>
<u-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" show-overflow-tooltip/>
<el-table-column prop="mobileTelephone" label="手机" width="130" show-overflow-tooltip/>
<el-table-column prop="telephone" label="电话" width="130" show-overflow-tooltip/>
<el-table-column prop="address" label="地址" width="400" sortable show-overflow-tooltip/>
<el-table-column prop="medicalCardNo" label="体检卡号" sortable show-overflow-tooltip/>
<el-table-column prop="jobCardNo" label="工卡号" sortable show-overflow-tooltip/>
<el-table-column prop="maritalStatusName" label="婚姻状况" align="center" sortable/>
<el-table-column prop="medicalTypeName" label="体检类别" sortable show-overflow-tooltip/>
<el-table-column prop="personnelTypeName" label="人员类别" sortable show-overflow-tooltip/>
<el-table-column prop="jobPost" label="职务" width="200" sortable />
<el-table-column prop="jobTitle" label="职称" sortable show-overflow-tooltip/>
<el-table-column prop="salesman" label="介绍人" sortable show-overflow-tooltip/>
<el-table-column prop="isVip" label="是否VIP" align="center" sortable>
</u-table-column>
<u-table-column prop="email" label="邮箱" width="150" show-overflow-tooltip/>
<u-table-column prop="mobileTelephone" label="手机" width="130" show-overflow-tooltip/>
<u-table-column prop="telephone" label="电话" width="130" show-overflow-tooltip/>
<u-table-column prop="address" label="地址" width="400" sortable show-overflow-tooltip/>
<u-table-column prop="medicalCardNo" label="体检卡号" sortable show-overflow-tooltip/>
<u-table-column prop="jobCardNo" label="工卡号" sortable show-overflow-tooltip/>
<u-table-column prop="maritalStatusName" label="婚姻状况" align="center" sortable/>
<u-table-column prop="medicalTypeName" label="体检类别" sortable show-overflow-tooltip/>
<u-table-column prop="personnelTypeName" label="人员类别" sortable show-overflow-tooltip/>
<u-table-column prop="jobPost" label="职务" width="200" sortable />
<u-table-column prop="jobTitle" label="职称" sortable show-overflow-tooltip/>
<u-table-column prop="salesman" label="介绍人" sortable show-overflow-tooltip/>
<u-table-column prop="isVip" label="是否VIP" align="center" sortable>
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" sortable />
<el-table-column prop="creationTime" label="登记日期" width="100" align="center" sortable>
</u-table-column>
<u-table-column prop="creatorName" label="登记人" sortable />
<u-table-column prop="creationTime" label="登记日期" width="100" align="center" sortable>
<template slot-scope="scope">
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="isUpload" label="是否上传" align="center" sortable>
</u-table-column>
<u-table-column prop="isUpload" label="是否上传" align="center" sortable>
<template slot-scope="scope">
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="completeFlag" label="体检进度" sortable>
</u-table-column>
<u-table-column prop="completeFlag" label="体检进度" sortable>
<template slot-scope="scope">
<div>{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="isLock" label="锁住" align="center" sortable>
</u-table-column>
<u-table-column prop="isLock" label="锁住" align="center" sortable>
<template slot-scope="scope">
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="summaryDoctorName" label="总检医生" sortable align="center">
</el-table-column>
<el-table-column prop="auditDoctorName" label="审核医生" sortable align="center">
</el-table-column>
</el-table>
</u-table-column>
<u-table-column prop="summaryDoctorName" label="总检医生" sortable align="center">
</u-table-column>
<u-table-column prop="auditDoctorName" label="审核医生" sortable align="center">
</u-table-column>
</u-table>
<div style="display: flex;justify-content:space-between;">
<div></div>
<div>
@ -194,13 +194,15 @@ 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 { UTable, UTableColumn } from "umy-ui";
import CusOrgOCX from "../../components/report/CusOrgOCX.vue"
export default {
components: {
CusOrgOCX,
UTable,
UTableColumn,
},
props: ['win', 'winAbsolute'],
data() {
@ -262,9 +264,9 @@ export default {
//
mounted() {
this.$nextTick(() => {
this.scrollFull()
})
// this.$nextTick(() => {
// this.scrollFull()
// })
},
computed: {
...mapState(["window", "dataTransOpts", "dict", "customerOrg", "patientRegister", "doctorCheck", "sumDoctorCheck", "report"]),
@ -544,28 +546,47 @@ export default {
async load() {
this.loadOpts.skipCount++
await this.getPrList()
this.lazyLoading = false;
},
//
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
}
}
})
async scrollFull(scroll, event) {
if (!scroll.judgeFlse) return;
//
if (this.lazyLoading) return;
if (
(Number(this.loadOpts.skipCount) + 1) *
Number(this.loadOpts.maxResultCount) >=
Number(this.loadOpts.totalCount)
) {
return;
}
this.lazyLoading = true;
try {
await this.load();
} catch (e) {
console.error('scrollFull load error', e);
}
// 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
// }
// }
// })
},
//

30
src/components/patientRegister/PatientRegisterList.vue

@ -9,7 +9,7 @@
: Math.floor(((window.pageHeight - 250) * 2) / 3)
" highlight-current-row @row-click="rowClick" @row-dblclick="dblClick" size="small" row-key="id"
@selection-change="handleSelectionChange" @row-contextmenu="onCellRightClick" ref="info" id="info"
:row-class-name="handleRowClassName" use-virtual :row-height="25" @table-body-scroll="scrollFull"
:row-class-name="handleRowClassName" use-virtual :row-height="35" @table-body-scroll="scrollFull"
big-data-checkbox :data-changes-scroll-top="false">
<u-table-column type="selection" width="40" align="center"></u-table-column>
<u-table-column v-for="(item, index) in dragCol" :key="index" :type="dragCol[index].type"
@ -1758,6 +1758,7 @@ export default {
async load() {
this.loadOpts.skipCount++;
await this.getPrList();
this.lazyLoading = false;
},
//
@ -1967,16 +1968,23 @@ export default {
//
async scrollFull(scroll, event) {
if (scroll.judgeFlse) {
if (
(Number(this.loadOpts.skipCount) + 1) *
Number(this.loadOpts.maxResultCount) >=
Number(this.loadOpts.totalCount)
) {
return;
} else {
await this.load();
}
if (!scroll.judgeFlse) return;
//
if (this.lazyLoading) return;
if (
(Number(this.loadOpts.skipCount) + 1) *
Number(this.loadOpts.maxResultCount) >=
Number(this.loadOpts.totalCount)
) {
return;
}
this.lazyLoading = true;
try {
await this.load();
} catch (e) {
console.error('scrollFull load error', e);
}
// this.dom = this.$refs.info.bodyWrapper
// console.log('this.dom', this.dom)

166
src/components/patientRegister/PatientRegisterRecoverList.vue

@ -1,44 +1,44 @@
<template>
<div style="display: flex;">
<div :style="'width:' + (window.pageWidth - 200 - 145) + 'px;'">
<el-table :data="tableData" width="100%" border :height="window.pageHeight < 600 ? 330 : window.pageHeight - 240" row-key="id"
size="small" highlight-current-row ref="dataList" @selection-change="handleSelectionChange" @row-click="rowClick">
<el-table-column type="selection" width="40" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="isRecoverGuide" label="回收" align="center" width="50" sortable>
<u-table :data="tableData" width="100%" border :height="window.pageHeight < 600 ? 330 : window.pageHeight - 240" row-key="id"
size="small" highlight-current-row ref="dataList" @selection-change="handleSelectionChange" @row-click="rowClick" @table-body-scroll="scrollFull" use-virtual :row-height="35" big-data-checkbox :data-changes-scroll-top="false">
<u-table-column type="selection" width="40" align="center" />
<u-table-column type="index" label="序号" width="50" align="center" />
<u-table-column prop="isRecoverGuide" label="回收" align="center" width="50" sortable>
<template slot-scope="scope">
<el-checkbox :value="scope.row.isRecoverGuide == 'Y'" />
</template>
</el-table-column>
<el-table-column prop="completeFlag" label="体检进度" sortable>
</u-table-column>
<u-table-column prop="completeFlag" label="体检进度" sortable>
<template slot-scope="scope">
<div>{{ ldddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="isLock" label="锁住" width="50" sortable>
</u-table-column>
<u-table-column prop="isLock" label="锁住" width="50" sortable>
<template slot-scope="scope">
<i class="el-icon-lock" v-if="scope.row.isLock == 'Y'" style="font-size: 20px; color: red" />
</template>
</el-table-column>
<el-table-column prop="customerOrgParentName" label="单位" width="180" sortable>
</u-table-column>
<u-table-column prop="customerOrgParentName" label="单位" width="180" 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="180">
</u-table-column>
<u-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName == scope.row.customerOrgName ? "" : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexName" label="性别">
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数"></el-table-column>
<el-table-column label="分组/套餐" width="150">
</u-table-column>
<u-table-column prop="patientName" label="姓名" />
<u-table-column prop="sexName" label="性别">
</u-table-column>
<u-table-column prop="age" label="年龄" />
<u-table-column prop="patientRegisterNo" label="条码号" width="150" />
<u-table-column prop="patientNo" label="档案号" />
<u-table-column prop="medicalTimes" label="体检次数"></u-table-column>
<u-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ scope.row.medicalPackageName }}
@ -47,50 +47,50 @@
{{ scope.row.customerOrgGroupName }}
</div>
</template>
</el-table-column>
<el-table-column prop="nationName" label="民族">
</el-table-column>
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="birthDate" label="出生日期" width="100">
</u-table-column>
<u-table-column prop="nationName" label="民族">
</u-table-column>
<u-table-column prop="idNo" label="身份证" width="150" />
<u-table-column prop="birthDate" label="出生日期" 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="100" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
<el-table-column prop="medicalCardNo" label="体检卡号" />
<el-table-column prop="jobCardNo" label="工卡号" />
<el-table-column prop="maritalStatusName" label="婚姻状况">
</el-table-column>
<el-table-column prop="medicalTypeName" label="体检类别">
</el-table-column>
<el-table-column prop="personnelTypeName" label="人员类别">
</el-table-column>
<el-table-column prop="jobPost" label="职务" />
<el-table-column prop="jobTitle" label="职称" />
<el-table-column prop="salesman" label="介绍人" />
<el-table-column prop="isVip" label="VIP">
</u-table-column>
<u-table-column prop="email" label="邮箱" width="100" />
<u-table-column prop="mobileTelephone" label="手机" width="100" />
<u-table-column prop="telephone" label="电话" width="100" />
<u-table-column prop="address" label="地址" width="300" />
<u-table-column prop="medicalCardNo" label="体检卡号" />
<u-table-column prop="jobCardNo" label="工卡号" />
<u-table-column prop="maritalStatusName" label="婚姻状况">
</u-table-column>
<u-table-column prop="medicalTypeName" label="体检类别">
</u-table-column>
<u-table-column prop="personnelTypeName" label="人员类别">
</u-table-column>
<u-table-column prop="jobPost" label="职务" />
<u-table-column prop="jobTitle" label="职称" />
<u-table-column prop="salesman" label="介绍人" />
<u-table-column prop="isVip" label="VIP">
<template slot-scope="scope">
<el-checkbox :value="scope.row.isVip == 'Y'" />
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" />
<el-table-column prop="creationTime" label="登记日期" width="100">
</u-table-column>
<u-table-column prop="creatorName" label="登记人" />
<u-table-column prop="creationTime" label="登记日期" width="100">
<template slot-scope="scope">
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="isUpload" label="上传">
</u-table-column>
<u-table-column prop="isUpload" label="上传">
<template slot-scope="scope">
<el-checkbox :value="scope.row.isUpload == 'Y'" />
</template>
</el-table-column>
</u-table-column>
</el-table>
</u-table>
<div style="display: flex; justify-content: space-between">
<div></div>
<div>
@ -142,10 +142,13 @@ import { savePeoplePhoto } from "../../utlis/proApi";
import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue";
import Camera from "../../components/patientRegister/Camera.vue";
import { UTable, UTableColumn } from "umy-ui";
export default {
components: {
PatientRegisterEdit,
Camera,
UTable,
UTableColumn,
},
data() {
return {
@ -236,9 +239,9 @@ export default {
//
mounted() {
this.$nextTick(() => {
this.scrollFull()
})
// this.$nextTick(() => {
// this.scrollFull()
// })
},
computed: {
...mapState(["window", "dict", "patientRegister", "customerOrg"]),
@ -585,24 +588,42 @@ export default {
//
scrollFull() {
this.dom = this.$refs['dataList'].bodyWrapper
console.log('obj', 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', obj.scrollTop, 'clientHeight', obj.clientHeight, 'scrollHeight', obj.scrollHeight);
if (Number(this.loadOpts.skipCount) * Number(this.loadOpts.maxResultCount) >= Number(this.loadOpts.totalCount)) {
this.lazyLoading = false
} else {
this.lazyLoading = true
this.load()
// this.dom.scrollTop = this.dom.scrollTop - 100
}
}
})
async scrollFull(scroll, event) {
if (!scroll.judgeFlse) return;
//
if (this.lazyLoading) return;
if (
(Number(this.loadOpts.skipCount) + 1) *
Number(this.loadOpts.maxResultCount) >=
Number(this.loadOpts.totalCount)
) {
return;
}
this.lazyLoading = true;
try {
await this.load();
} catch (e) {
console.error('scrollFull load error', e);
}
// this.dom = this.$refs['dataList'].bodyWrapper
// console.log('obj', 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', obj.scrollTop, 'clientHeight', obj.clientHeight, 'scrollHeight', obj.scrollHeight);
// if (Number(this.loadOpts.skipCount) * Number(this.loadOpts.maxResultCount) >= Number(this.loadOpts.totalCount)) {
// this.lazyLoading = false
// } else {
// this.lazyLoading = true
// this.load()
// // this.dom.scrollTop = this.dom.scrollTop - 100
// }
// }
// })
},
btnExport(elId) {
let tableDatas = deepCopy(this.tableData)
@ -637,6 +658,7 @@ export default {
};
</script>
<style scoped>
@import "../../assets/css/global_table.css";
.listBtn {
margin-top: 10px;
}

79
src/components/report/PatientRegisterListNobtn.vue

@ -1,19 +1,19 @@
<template>
<div>
<div @contextmenu.prevent="onContextmenu">
<el-table :data="patientRegister.prList" border ref="info" id="info"
<u-table :data="patientRegister.prList" border ref="info" id="info"
:height="(window.pageHeight < 600) ? 230 : (window.pageHeight - 370)" highlight-current-row
@row-click="rowClick" size="small" @selection-change="handleSelectionChange" @row-contextmenu="rowContextmenu">
<el-table-column :type="dragCol[0].type" width="40" align="center" />
@row-click="rowClick" size="small" row-key="patientRegisterId" @selection-change="handleSelectionChange" @row-contextmenu="rowContextmenu" @table-body-scroll="scrollFull" use-virtual :row-height="35" big-data-checkbox :data-changes-scroll-top="false">
<u-table-column :type="dragCol[0].type" width="40" align="center" />
<!--列可拖拽 key值很关键 -->
<el-table-column v-for="(item, index) in dragCol" v-if="index != 0" :key="`${item.label + index}`"
<u-table-column v-for="(item, index) in dragCol" v-if="index != 0" :key="`${item.label + index}`"
:type="dragCol[index].type" :min-width="dragCol[index].minWidth" :align="dragCol[index].align"
:label="dragCol[index].type ? '' : item.label" :prop="dragCol[index].prop"
:sortable="dragCol[index].type || dragCol[index].prop == 'sn' ? false : true"
:show-overflow-tooltip="dragCol[index].showTooltip">
<template slot-scope="scope">
<div v-if="dragCol[index].prop == 'sn'">
<div v-if="dragCol[index].prop == 'sn'">
{{ scope.$index + 1 }}
</div>
<div v-else-if="dragCol[index].prop == 'completeFlag'"
@ -43,9 +43,9 @@
</div>
</template>
</el-table-column>
</u-table-column>
</el-table>
</u-table>
<div style="display: flex;justify-content:space-between;">
<div></div>
<div>
@ -67,12 +67,14 @@ import { dddw, deepCopy, objCopy, arrayReduce, arrayExistObj, setPrStatusColor }
import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue";
import Camera from "../../components/patientRegister/Camera.vue";
import PatientRegisterAsbItem from "../../components/patientRegister/patientRegisterAsbItem.vue";
import { UTable, UTableColumn } from "umy-ui";
export default {
components: {
PatientRegisterEdit,
Camera,
PatientRegisterAsbItem,
UTable,
UTableColumn,
},
props: ['fromType'],
data() {
@ -185,7 +187,7 @@ export default {
//
mounted() {
this.$nextTick(() => {
this.scrollFull()
// this.scrollFull()
//
this.initColDrag()
@ -312,25 +314,43 @@ export default {
//
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) * 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
}
}
})
async scrollFull(scroll, event) {
if (!scroll.judgeFlse) return;
//
if (this.lazyLoading) return;
if (
(Number(this.loadOpts.skipCount) + 1) *
Number(this.loadOpts.maxResultCount) >=
Number(this.loadOpts.totalCount)
) {
return;
}
this.lazyLoading = true;
try {
await this.load();
} catch (e) {
console.error('scrollFull load error', e);
}
// 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) * 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
// }
// }
// })
},
//
@ -507,7 +527,7 @@ export default {
// /api/app/patientregister/getlistinfilter
postapi('/api/app/peisreport/getpatientregisterreport', body).then(res => {
if (res.code > -1) {
this.lazyLoading = false
if (this.patientRegister.query.isSeries == 'Y' && this.patientRegister.query.patientRegisterNo) {
if (this.dataTransOpts.tableM.patient_register.length == 0) {
this.patientRegister.prList = this.prListTrans(res.data.items)
@ -593,6 +613,7 @@ export default {
};
</script>
<style scoped>
@import "../../assets/css/global_table.css";
.box {
display: flex;
}

Loading…
Cancel
Save