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

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div>
  3. <!-- 查询条件 -->
  4. <div :style="`display: flex; flex-wrap: wrap; width: 100%;height:${divHeight}px;`">
  5. <div v-if="winAbsolute" style="position: absolute;top:3px;right:0px;">
  6. <el-tooltip content="关闭人员列表窗口" placement="bottom" effect="light">
  7. <i class="el-icon-close"
  8. @click="doctorCheck.doctorCheckDialogVisible = false; sumDoctorCheck.sumDoctorCheckDialogVisible = false;"
  9. style="font-size: 24px;color: red;cursor:pointer;"></i>
  10. </el-tooltip>
  11. </div>
  12. <div class="query" style="display: flex;padding-top: 2px;">
  13. <el-input placeholder="请选择体检单位" v-model="patientRegister.query.cusOrgOCX" style="width:238px;" size="small"
  14. disabled>
  15. </el-input>
  16. <el-button icon="el-icon-search" @click="report.dialogCusOrgOCX = true"
  17. style="font-size: 20px;height:30px;min-width:30px; padding: 5px 5px;" size="small"></el-button>
  18. </div>
  19. <div class="query">
  20. <span>姓名</span>
  21. <el-input placeholder="姓名" v-model="local.query.patientName" size="small" clearable style="width: 110px" />
  22. </div>
  23. <div class="query">
  24. <span>性别</span>
  25. <el-select v-model="local.query.sex" placeholder="请选择" clearable style="width: 80px" size="small">
  26. <el-option v-for="item in dict.forSex" :key="item.id" :label="item.displayName" :value="item.id">
  27. </el-option>
  28. </el-select>
  29. </div>
  30. <div class="query">
  31. <span>人员状态</span>
  32. <el-select v-model="local.query.completeFlag" placeholder="请选择" clearable style="width: 80px" size="small">
  33. <el-option v-for="item in local.completeFlag" :key="item.id" :label="item.displayName" :value="item.id">
  34. </el-option>
  35. </el-select>
  36. <el-select v-model="local.query.isAudit" placeholder="请选择" clearable style="width: 75px;margin: 0 2px;"
  37. size="small">
  38. <el-option label="未审核" value="N" />
  39. <el-option label="已审核" value="Y" />
  40. </el-select>
  41. <el-checkbox v-if="win == 'doctorCheck'" v-model="local.query.haveImage">有图</el-checkbox>
  42. </div>
  43. <div class="query" v-if="win == 'doctorCheck'">
  44. <span>组合项目</span>
  45. <el-select v-model="local.query.checkAsb" placeholder="快速选择组合项目" size="small" filterable
  46. :filter-method="filterMethod" clearable @clear="quickAsb = deepCopy(asbItemQuick)" default-first-option
  47. ref="quickAsbOCX" style="width:207px;text-align: left;">
  48. <el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
  49. </el-select>
  50. </div>
  51. <div class="query" v-if="win == 'doctorCheck'">
  52. <span>检查状态</span>
  53. <el-select v-model="local.query.checkCompleteFlag" placeholder="请选择" clearable style="width: 80px" size="small">
  54. <el-option v-for="item in dict.checkCompleteFlag" :key="item.id" :label="item.displayName" :value="item.id">
  55. </el-option>
  56. </el-select>
  57. <el-select v-model="local.query.isAuditCheck" placeholder="请选择" clearable style="width: 75px;margin: 0 2px;"
  58. size="small">
  59. <el-option label="未审核" value="N" />
  60. <el-option label="已审核" value="Y" />
  61. </el-select>
  62. </div>
  63. <div class="query">
  64. <el-button class="commonbutton" type="primary" @click="query" size="small"
  65. style="width:50px;height:26px;margin: 2px 0 2px -3px;">查询</el-button>
  66. </div>
  67. </div>
  68. <!-- 人员列表 -->
  69. <el-table :data="dataList" border width="100%"
  70. :height="tableHeight" row-key="id"
  71. size="small" highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" ref="info" id="info"
  72. style="border-radius:10px;">
  73. <el-table-column prop="customerOrgParentName" label="单位" width="120" sortable>
  74. <template slot-scope="scope">
  75. <div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
  76. </template>
  77. </el-table-column>
  78. <el-table-column prop="customerOrgName" label="部门" width="100" sortable>
  79. <template slot-scope="scope">
  80. <div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
  81. </template>
  82. </el-table-column>
  83. <el-table-column prop="patientName" label="姓名" width="80" sortable align="center"/>
  84. <el-table-column prop="sexId" label="性别" sortable align="center">
  85. <template slot-scope="scope">
  86. <div>{{ dddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
  87. </template>
  88. </el-table-column>
  89. <el-table-column prop="age" label="年龄" align="center"/>
  90. <el-table-column prop="patientRegisterNo" label="条码号" width="150" sortable align="center"/>
  91. <el-table-column prop="patientNo" label="档案号" sortable align="center"/>
  92. <el-table-column prop="medicalTimes" label="体检次数" align="center" />
  93. <el-table-column label="分组/套餐" width="150">
  94. <template slot-scope="scope">
  95. <div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
  96. {{ dddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
  97. </div>
  98. <div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
  99. {{ dddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
  100. </div>
  101. </template>
  102. </el-table-column>
  103. <el-table-column prop="nationId" label="民族" sortable align="center" >
  104. <template slot-scope="scope">
  105. <div>
  106. {{ dddw(dict.nation, "id", scope.row.nationId, "displayName") }}
  107. </div>
  108. </template>
  109. </el-table-column>
  110. <el-table-column prop="idNo" label="身份证" sortable width="180" align="center" />
  111. <el-table-column prop="birthDate" label="出生日期" align="center" width="100" >
  112. <template slot-scope="scope">
  113. <div v-if="scope.row.birthDate">
  114. {{ lmoment(scope.row.birthDate, "yyyy-MM-DD") }}
  115. </div>
  116. </template>
  117. </el-table-column>
  118. <el-table-column prop="email" label="邮箱" width="150"/>
  119. <el-table-column prop="mobileTelephone" label="手机" width="130"/>
  120. <el-table-column prop="telephone" label="电话" width="130"/>
  121. <el-table-column prop="address" label="地址" width="400"/>
  122. <el-table-column prop="medicalCardNo" label="体检卡号" />
  123. <el-table-column prop="jobCardNo" label="工卡号" />
  124. <el-table-column prop="maritalStatusId" label="婚姻状况" align="center">
  125. <template slot-scope="scope">
  126. <div>
  127. {{ dddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }}
  128. </div>
  129. </template>
  130. </el-table-column>
  131. <el-table-column prop="medicalTypeId" label="体检类别" sortable>
  132. <template slot-scope="scope">
  133. <div v-if="scope.row.medicalTypeId !== dict.personOrgId">
  134. {{ dddw(dict.medicalType, "id", scope.row.medicalTypeId, "displayName") }}
  135. </div>
  136. </template>
  137. </el-table-column>
  138. <el-table-column prop="personnelTypeId" label="人员类别" sortable>
  139. <template slot-scope="scope">
  140. <div v-if="scope.row.personnelTypeId !== dict.personOrgId">
  141. {{ dddw(dict.personnelType, "id", scope.row.personnelTypeId, "displayName") }}
  142. </div>
  143. </template>
  144. </el-table-column>
  145. <el-table-column prop="jobPost" label="职务" width="200"/>
  146. <el-table-column prop="jobTitle" label="职称" />
  147. <el-table-column prop="salesman" label="介绍人" />
  148. <el-table-column prop="isVip" label="是否VIP" align="center">
  149. <template slot-scope="scope">
  150. <div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
  151. </template>
  152. </el-table-column>
  153. <el-table-column prop="creatorName" label="登记人" />
  154. <el-table-column prop="creationTime" label="登记日期" width="100" align="center">
  155. <template slot-scope="scope">
  156. <div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
  157. </template>
  158. </el-table-column>
  159. <el-table-column prop="isUpload" label="是否上传">
  160. <template slot-scope="scope">
  161. <div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
  162. </template>
  163. </el-table-column>
  164. <el-table-column prop="completeFlag" label="体检进度">
  165. <template slot-scope="scope">
  166. <div>{{ dddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
  167. </template>
  168. </el-table-column>
  169. <el-table-column prop="isLock" label="锁住">
  170. <template slot-scope="scope">
  171. <div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
  172. </template>
  173. </el-table-column>
  174. </el-table>
  175. <div style="display: flex;justify-content:space-between;">
  176. <div></div>
  177. <div>
  178. <span style="font-size:12px;">{{ loadOpts.totalCount }} 条记录当前显示{{ dataList.length }}
  179. </span>
  180. </div>
  181. </div>
  182. <!--通用选单位体检次数分组的控件-->
  183. <el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" :close-on-click-modal="false" :append-to-body="true"
  184. width="880px" height="600px">
  185. <CusOrgOCX :useCustomerOrg="false" :initDateType="'medicalStartDate'" />
  186. </el-dialog>
  187. </div>
  188. </template>
  189. <script>
  190. import moment from "moment";
  191. import { mapState, mapMutations } from "vuex";
  192. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  193. import { dddw, objCopy, arrayReduce, deepCopy } from "../../utlis/proFunc"
  194. import CusOrgOCX from "../../components/report/CusOrgOCX.vue"
  195. export default {
  196. components: {
  197. CusOrgOCX,
  198. },
  199. props: ['win', 'winAbsolute'],
  200. data() {
  201. return {
  202. dataList: [], //列表数据
  203. multipleSelection: [], //选中的数据列表
  204. dialogVisible: false,
  205. dialogCamera: false,
  206. local: {
  207. query: {
  208. dateType: 'creationTime', //登记日期
  209. dateRange: null, //日期范围
  210. startDate: null,
  211. endDate: null,
  212. containRefuse: true, //包含弃检项目
  213. times: 0, //触发查询次数
  214. customerOrgId: "", //体检单位ID
  215. CustomerOrgParentId: "", //单位父级ID
  216. customerOrgFlag: true, //单位作为查询条件
  217. customerOrgRegister: { id: '' }, //单位体检次数
  218. checkAsbs: null,
  219. patientName: '', //姓名
  220. sex: '', //性别
  221. idCardNo: '', //身份证号
  222. haveImage: false,
  223. checkAsb: '', //检查项目
  224. checkCompleteFlag:'', //检查项目状态
  225. isAuditCheck:'', //检查项目审核
  226. },
  227. completeFlag: []
  228. },
  229. quickAsb: [],
  230. asbItemQuick: [],
  231. dom: null, //用于滚动加载数据
  232. lazyLoading: false, //是否懒加载中
  233. loadOpts: {
  234. totalCount: 0,
  235. skipCount: 0,
  236. maxResultCount: 100,
  237. },
  238. loadOptsInit: {},
  239. oneClick: 0, // 1 表示行单击一次
  240. DbClick: 0, // 1 表示行有单击第二次
  241. };
  242. },
  243. created() {
  244. this.dictInit()
  245. this.loadOptsInit = Object.assign({}, this.loadOpts)
  246. },
  247. //挂载完成
  248. mounted() {
  249. this.$nextTick(() => {
  250. this.scrollFull()
  251. })
  252. },
  253. computed: {
  254. ...mapState(["window", "dataTransOpts", "dict", "customerOrg", "patientRegister", "doctorCheck", "sumDoctorCheck", "report"]),
  255. divHeight() {
  256. if (this.win == "doctorCheck") {
  257. return 170
  258. } else {
  259. return 105
  260. }
  261. },
  262. tableHeight(){
  263. return this.winAbsolute ? (this.window.pageHeight - 46 - 30 - this.divHeight) : (this.window.pageHeight - 46 - this.divHeight)
  264. },
  265. },
  266. methods: {
  267. ...mapMutations(['doctorCheckPrBaseInit', 'sumPREditInit']),
  268. dddw,
  269. dictInit() {
  270. // 默认 当天 体检日期
  271. let today = moment(new Date()).format('yyyy-MM-DD');
  272. this.report.dataCusOrgOCX = [{
  273. id: Date.now(),
  274. customerOrgId: "",
  275. customerOrgName: "",
  276. customerOrgRegister: {},
  277. customerOrgRegisterList: [],
  278. dateType: "medicalStartDate",
  279. startDate: today,
  280. endDate: today,
  281. customerOrgGroupIds: [],
  282. customerOrgGroupList: []
  283. }]
  284. this.patientRegister.query.cusOrgOCX = `(体检${today}~${today})`
  285. //分组,所有分组,不限单位,不限次数
  286. getapi("/api/app/customerorggroup/getlistinfilter").then((res) => {
  287. if (res.code > -1) {
  288. this.dict.customerOrgGroupAll = res.data;
  289. }
  290. });
  291. // 获取组合项目
  292. postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => {
  293. if (res.code != -1) {
  294. this.asbItemQuick = res.data
  295. this.quickAsb = res.data
  296. }
  297. });
  298. this.local.completeFlag = deepCopy(this.dict.completeFlag)
  299. this.local.completeFlag.splice(0, 1) //预记选项去掉
  300. this.local.completeFlag.splice(2, 0, { id: '5', displayName: '全部已检(未总检)' }) //插入
  301. },
  302. //快速选择组合项目时,调整可按拼间简码及简称查找
  303. filterMethod(keyWords) {
  304. //console.log('filterMethod',this.asbItemQuick)
  305. if (keyWords) {
  306. this.quickAsb = [];
  307. this.asbItemQuick.forEach(item => {
  308. if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
  309. || item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
  310. || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1) {
  311. this.quickAsb.push(item);
  312. }
  313. });
  314. } else {
  315. this.quickAsb = deepCopy(this.asbItemQuick);
  316. }
  317. },
  318. //快速选择组合项目
  319. // quickChoosedAsb(v) {
  320. // //远程查询时,设置了 value-key 也不管用,只能取到value console.log('quickChoosedAsb',v)
  321. // let lfind = -1
  322. // if (v) {
  323. // lfind = arrayExistObj(this.asbItemQuick, 'id', v)
  324. // if (lfind > -1) {
  325. // this.addAbs([this.asbItemQuick[lfind]])
  326. // }
  327. // }
  328. // //this.$refs['quickAsbOCX'].focus(); //asbItemId
  329. // this.$nextTick(() => {
  330. // this.$refs['quickAsbOCX'].blur(); //total asbItemId
  331. // this.asbItemId = ''
  332. // this.quickAsb = deepCopy(this.asbItemQuick)
  333. // this.$refs['quickAsbOCX'].focus(); //total asbItemId
  334. // });
  335. // },
  336. //点击体检次数行
  337. rowClick(row) {
  338. if (this.oneClick == 0) {
  339. this.oneClick = 1;
  340. } else {
  341. this.DbClick = 1;
  342. }
  343. //双击事件
  344. if (this.DbClick == 1) { //第一次点击的节点和第二次点击的节点id相同
  345. this.rowClickRetrieve(row)
  346. return;
  347. }
  348. setTimeout(() => { //300ms内没有第二次点击,执行单击事件
  349. if (this.oneClick == 1 && this.DbClick == 0) this.rowClickRetrieve(row)
  350. }, 300)
  351. },
  352. rowClickRetrieve(row) {
  353. this.oneClick = 0;
  354. this.DbClick = 0;
  355. this.dataTransOpts.tableS.patient_register = deepCopy(row)
  356. // setTimeout(() => {
  357. this.dataTransOpts.refresh.patient_register.S++ //人员体检登记信息刷新
  358. // }, 10);
  359. },
  360. //双击选中客户记录后,并半闭列表
  361. rowDblclick(row) {
  362. // this.rowClick(row)
  363. this.doctorCheck.doctorCheckDialogVisible = false
  364. this.sumDoctorCheck.sumDoctorCheckDialogVisible = false
  365. // console.log('rowDblclick', this.doctorCheck.doctorCheckDialogVisible, this.sumDoctorCheck.sumDoctorCheckDialogVisible)
  366. },
  367. lmoment(date, forMat) {
  368. return moment(new Date(date)).format(forMat);
  369. },
  370. //查询
  371. async query() {
  372. this.loadOpts = Object.assign(this.loadOpts, this.loadOptsInit)
  373. await this.getPrList()
  374. },
  375. async getPrList() {
  376. if (this.loadOpts.skipCount != 0 && this.loadOpts.skipCount * this.loadOpts.maxResultCount >= this.loadOpts.totalCount) return
  377. let body = {}, customerOrgs = []
  378. console.log('this.report.dataCusOrgOCX', this.report.dataCusOrgOCX)
  379. if (this.report.dataCusOrgOCX.length > 0) {
  380. this.report.dataCusOrgOCX.forEach(e => {
  381. let rd = {
  382. startDate: moment(e.startDate).format('yyyy-MM-DD'),
  383. endDate: moment(e.endDate).format('yyyy-MM-DD'),
  384. dateType: e.dateType == 'summaryDate' ? '3' : (e.dateType == 'medicalStartDate' ? '2' : '1')
  385. }
  386. if (e.customerOrgId) {
  387. rd.customerOrgId = e.customerOrgId
  388. if (e.customerOrgId == this.dict.personOrgId) {
  389. rd.customerOrgRegisterId = null
  390. rd.customerOrgGroupId = []
  391. } else {
  392. rd.customerOrgRegisterId = e.customerOrgRegister.id
  393. rd.customerOrgGroupId = e.customerOrgGroupIds
  394. }
  395. }
  396. customerOrgs.push(rd)
  397. })
  398. }
  399. body.customerOrgs = customerOrgs
  400. if (this.local.query.patientName) body.patientName = this.local.query.patientName
  401. if (this.local.query.sex) body.sexId = this.local.query.sex
  402. if (this.local.query.isAudit) body.isAudit = this.local.query.isAudit
  403. if (this.local.query.completeFlag) body.completeFlag = this.local.query.completeFlag
  404. if (this.local.query.checkAsb) body.asbitems = [this.local.query.checkAsb]
  405. if (this.local.query.haveImage) body.isPicture = 'Y'
  406. if (this.local.query.checkCompleteFlag) body.asbitemCompleteFlag = this.local.query.checkCompleteFlag
  407. if (this.local.query.isAuditCheck) body.asbitemIsAudit = this.local.query.isAuditCheck
  408. body.isFilterPreRegistration = 'Y' //是否需要过滤预登记数据 Y=过滤预登记数据 N=不过滤 默认为N (备注:只有CompleteFlag参数的值不为0的情况才有效,null值也有效)
  409. // "patientName": "string",
  410. // "sexId": "string",
  411. // "isAudit": "string",
  412. // "completeFlag": "string",
  413. // "maxResultCount": 0
  414. // console.log('/api/patientregister/getpeisrecordlist', Object.assign(body, this.loadOpts))
  415. // const loading = this.$loading({
  416. // lock: true,
  417. // text: "Loading",
  418. // spinner: "el-icon-loading",
  419. // background: "rgba(0, 0, 0, 0.7)",
  420. // });
  421. body = Object.assign(body, this.loadOpts)
  422. let url = '/api/app/PatientRegister/GetSumDoctorPeisRecordList'
  423. if(this.win == "doctorCheck") url = '/api/app/PatientRegister/GetDoctorPeisRecordList'
  424. postapi(url, body)
  425. .then((res) => {
  426. if (res.code > -1) {
  427. // 刷新最大记录数
  428. this.loadOpts.totalCount = res.data.totalCount
  429. if (body.skipCount == 0) this.dataList = [];
  430. this.dataList = this.dataList.concat(res.data.items)
  431. }
  432. })
  433. // .finally(() =>{
  434. // loading.close();
  435. // })
  436. ;
  437. },
  438. //数据量多时,滚动加载
  439. async load() {
  440. this.loadOpts.skipCount++
  441. await this.getPrList()
  442. },
  443. //滚动加载数据
  444. scrollFull() {
  445. this.dom = this.$refs['info'].bodyWrapper
  446. console.log('this.dom', this.dom)
  447. this.dom.addEventListener('scroll', async () => {
  448. // console.log('scrollTop',this.dom.scrollTop,'clientHeight',this.dom.clientHeight,'scrollHeight',this.dom.scrollHeight);
  449. if (this.dom.scrollTop + this.dom.clientHeight + 20 > this.dom.scrollHeight && !this.lazyLoading) {
  450. // 获取到的不是全部数据 当滚动到底部
  451. console.log('scrollTop', this.dom.scrollTop, 'clientHeight', this.dom.clientHeight, 'scrollHeight', this.dom.scrollHeight);
  452. if ((Number(this.loadOpts.skipCount) + 1) * Number(this.loadOpts.maxResultCount) >= Number(this.loadOpts.totalCount)) {
  453. this.lazyLoading = false
  454. } else {
  455. this.lazyLoading = true
  456. await this.load()
  457. this.lazyLoading = false
  458. // this.dom.scrollTop = this.dom.scrollTop - 100
  459. }
  460. }
  461. })
  462. },
  463. //关闭
  464. close() {
  465. //console.log('this.win',this.win)
  466. if (this.win == 'doctorCheck') {
  467. this.doctorCheck.doctorCheckDialogVisible = false
  468. } else {
  469. this.sumDoctorCheck.sumDoctorCheckDialogVisible = false
  470. }
  471. },
  472. },
  473. //监听事件
  474. watch: {
  475. },
  476. };
  477. </script>
  478. <style scoped>
  479. .box {
  480. display: flex;
  481. }
  482. .query {
  483. margin-left: 5px;
  484. margin-bottom: 2px;
  485. font-size: 14px;
  486. }
  487. .listBtn {
  488. margin-top: 10px;
  489. }
  490. </style>