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.

171 lines
4.5 KiB

2 years ago
5 months ago
2 years ago
5 months ago
2 years ago
  1. <template>
  2. <div>
  3. <div class="middlebox">
  4. <div class="contenttitle">
  5. 体检查询 /
  6. <span class="contenttitleBold">网上预约汇总</span>
  7. </div>
  8. </div>
  9. <div style="display: flex;padding: 10px;background-color: #fff;border-radius: 8px;">
  10. <div class="query">
  11. <span class="spanClass">体检单位</span>
  12. <el-input placeholder="请选择单位" v-model="patientRegister.query.cusOrgOCX" style="width:400px;" size="small"
  13. disabled>
  14. <el-button slot="append" icon="el-icon-search" @click="report.dialogCusOrgOCX = true"
  15. style="font-size: 20px;"></el-button>
  16. </el-input>
  17. </div>
  18. <div>
  19. <el-button type="primary" class="commonbutton" @click="btnQuery" size="small">查询</el-button>
  20. </div>
  21. </div>
  22. <div>
  23. <el-table :data="tableData" border ref="info" id="info"
  24. :height="(window.pageHeight < 600) ? 450 : (window.pageHeight - 150)" highlight-current-row
  25. size="small">
  26. <el-table-column type="index" label="序号" width="50" align="center" />
  27. <el-table-column prop="customerOrgName" label="单位名称" min-width="200" />
  28. <el-table-column prop="registerCount" label="备单数" min-width="80" align="center" />
  29. <el-table-column prop="appointCount" label="已预约数" min-width="80" align="center" />
  30. <el-table-column prop="unAppointCount" label="未预约数" min-width="80" align="center" />
  31. <el-table-column prop="checkCount" label="已检数" min-width="80" align="center" />
  32. </el-table>
  33. </div>
  34. <!-- 弹窗组件 -->
  35. <div>
  36. <!--通用选单位体检次数分组的控件-->
  37. <el-dialog title="体检单位选择" :visible.sync="report.dialogCusOrgOCX" :close-on-click-modal="false" width="880px"
  38. height="600px">
  39. <CusOrgOCX />
  40. </el-dialog>
  41. </div>
  42. </div>
  43. </template>
  44. <script>
  45. import { mapState } from "vuex";
  46. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  47. import moment from "moment";
  48. import { deepCopy } from "../../utlis/proFunc"
  49. import CusOrgOCX from "./CusOrgOCX.vue"
  50. export default {
  51. components: {
  52. CusOrgOCX,
  53. },
  54. props: ["orgEnable"],
  55. data() {
  56. return {
  57. dialogVisible: false,
  58. tableData:[],
  59. };
  60. },
  61. created() {
  62. },
  63. //挂载完成
  64. mounted() {
  65. },
  66. computed: {
  67. ...mapState(["window", "dict", "patientRegister", "customerOrg", "report"]),
  68. },
  69. methods: {
  70. btnQuery(){
  71. let customerOrgs = [];
  72. if (this.report.dataCusOrgOCX.length > 0) {
  73. this.report.dataCusOrgOCX.forEach(e => {
  74. let dateType = '1'
  75. switch (e.dateType) {
  76. case 'medicalStartDate':
  77. dateType = '2'
  78. break;
  79. case 'checkDate':
  80. dateType = '4'
  81. break;
  82. case 'summaryDate':
  83. dateType = '3'
  84. break;
  85. case 'sumCheckDate':
  86. dateType = '5'
  87. break;
  88. default:
  89. break;
  90. }
  91. let rd = {
  92. startDate: moment(e.startDate).format('yyyy-MM-DD'),
  93. endDate: moment(e.endDate).format('yyyy-MM-DD'),
  94. dateType
  95. }
  96. if (e.customerOrgId) {
  97. rd.customerOrgId = e.customerOrgId
  98. if (e.customerOrgId == this.dict.personOrgId) {
  99. rd.customerOrgRegisterId = this.dict.personOrgId
  100. rd.customerOrgGroupId = []
  101. } else {
  102. rd.customerOrgRegisterId = e.customerOrgRegister.id
  103. rd.customerOrgGroupId = e.customerOrgGroupIds
  104. }
  105. }
  106. customerOrgs.push(rd)
  107. })
  108. }
  109. postapi('/api/app/AppointPatientRegister/GetAppointStatisticsReport',customerOrgs).then(res => {
  110. if(res.code > -1){
  111. this.tableData = res.data
  112. }
  113. })
  114. },
  115. },
  116. };
  117. </script>
  118. <style scoped>
  119. @import '../../assets/css/global.css';
  120. @import '../../assets/css/global_font.css';
  121. ::v-deep .el-input__inner {
  122. /*text-align: center;*/
  123. padding-left: 5px;
  124. padding-right: 15px;
  125. }
  126. ::v-deep .el-input__icon {
  127. width: 15px;
  128. /* 输入框下拉箭头或清除图标 默认 25 */
  129. }
  130. ::v-deep .el-input-group__append {
  131. padding: 0 5px;
  132. /* 控件默认 0 20px;*/
  133. }
  134. ::v-deep .el-icon-search:before {
  135. color: #00F;
  136. }
  137. .query {
  138. margin-left: 10px;
  139. font-size: 14px;
  140. color: #232748;
  141. font-weight: 400;
  142. font-family: "NotoSansSC-Regular";
  143. }
  144. .spanClass {
  145. padding: 0 2px 0 0;
  146. }
  147. </style>