dataDetail.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <script setup lang="ts">
  2. defineOptions({
  3. name: "healthDataDetail"
  4. });
  5. import rankTableDraw from "@/components/rankTable/index.vue";
  6. import assessmentRank from "@/components/rankTable/assessmentRank.vue";
  7. import { getPersonDimensionChartsList, getChartsList } from "@/api/draw";
  8. import seachData from "./componements/seach.vue";
  9. import { ref, nextTick } from "vue";
  10. import { useRouter } from "vue-router";
  11. import { useAppStoreHook } from "@/store/modules/app";
  12. // tab逻辑
  13. const activeName = ref("0");
  14. const handleClick = val => {
  15. activeName.value = val;
  16. };
  17. const rankTableRef = ref();
  18. const seachParams = ref();
  19. const lengthData = ref();
  20. const getPersonDimensionChartsListApi = async () => {
  21. const { code, data } = await getChartsList({
  22. ...seachParams.value,
  23. type: 2
  24. });
  25. if (code == 200) {
  26. if (data.length > 0) {
  27. lengthData.value = data.length;
  28. setTimeout(() => {
  29. nextTick(() => {
  30. rankTableRef.value && rankTableRef.value.init(data, "科室", "姓名");
  31. });
  32. }, 500);
  33. }
  34. }
  35. // console.log(res);
  36. };
  37. const init = (item, type) => {
  38. seachParams.value = item;
  39. if (Number(type)) {
  40. getPersonDimensionChartsListApi();
  41. }
  42. };
  43. // 返回上一页
  44. const router = useRouter();
  45. const backChange = () => {
  46. useAppStoreHook().toggleSideBar(true, "打开");
  47. router.push("/draw/children/health/healthRank");
  48. };
  49. </script>
  50. <template>
  51. <div class="w-full">
  52. <div class="flex mb20">
  53. <el-text class="cursor-pointer" @click="backChange">
  54. <el-icon>
  55. <ArrowLeft />
  56. </el-icon>
  57. 返回
  58. </el-text>
  59. <!-- <el-radio-group v-model="activeName" @change="handleClick">
  60. <el-radio-button value="0">科室维度</el-radio-button>
  61. <el-radio-button value="1">指标维度</el-radio-button>
  62. </el-radio-group> -->
  63. </div>
  64. <div v-if="activeName === '0'">
  65. <div class="mb-2 flex gap-2 justify-between flex-wrap">
  66. <seachData :activeName="activeName" @handClick="init" />
  67. </div>
  68. <rankTableDraw v-if="lengthData > 0" ref="rankTableRef" />
  69. </div>
  70. <!-- <div v-else-if="activeName === '1'">
  71. <div class="mb-2 flex gap-2 justify-between flex-wrap">
  72. <seachData :activeName="activeName" @handClick="init" />
  73. </div>
  74. <assessmentRank ref="rankTableRef2" />
  75. </div> -->
  76. </div>
  77. </template>
  78. <style lang="scss" scoped>
  79. .cursor-pointer {
  80. margin-right: 23px;
  81. }
  82. .mb20 {
  83. padding-top: 20px;
  84. margin-bottom: 20px;
  85. }
  86. </style>