index.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <div>
  3. <div class="mx-2 mb-6" v-for="item in basicData" :key="item.type">
  4. <DescCard :title="item.title" :type="item.type" :data="item.data" :id="info.id" />
  5. </div>
  6. </div>
  7. </template>
  8. <script setup lang="ts">
  9. import { ref, reactive } from 'vue';
  10. import DescCard from '/@/components/XTCard/src/DescCard.vue';
  11. import { BasicData } from './data';
  12. import { onMounted } from 'vue';
  13. import { formatDictValue } from '/@/utils';
  14. import { engineerDialysisDeviceDetail } from '/@/api/biz/engineer/dialysisDeviceApi';
  15. import { listDictModelBatch } from '/@/api/common';
  16. const props = defineProps({
  17. info: {
  18. type: Object,
  19. default: () => {},
  20. } as any,
  21. });
  22. const bizDictOptions = reactive({
  23. deviceType: [],
  24. });
  25. const bizDictData = ref([
  26. { key: 'deviceType', dictCode: 'bm_det' },
  27. { key: 'pumpType', dictCode: 'bm_pump' },
  28. { key: 'infectiousDiseases', dictCode: 'pb_epidemic' },
  29. ]);
  30. onMounted(async () => {
  31. const res = await listDictModelBatch(bizDictData.value.map(ele => ele.dictCode));
  32. for (const i in res) {
  33. const filter = bizDictData.value.filter(ele => ele.dictCode == i)[0];
  34. bizDictOptions[filter.key] = res[i];
  35. }
  36. await getData();
  37. });
  38. const basicData = ref(BasicData as any);
  39. // 获取数据
  40. async function getData() {
  41. const res = await engineerDialysisDeviceDetail(props.info?.id);
  42. basicData.value[0].data.forEach(ele => {
  43. if (ele.dict) {
  44. ele.value = formatDictValue(bizDictOptions[ele.field], res[ele.field]);
  45. } else {
  46. ele.value = res[ele.field];
  47. }
  48. });
  49. }
  50. </script>
  51. <style lang="less" scoped></style>