ServiceDetail.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <script setup lang="ts">
  2. import type { SystemItemModel } from '@/model/care.model';
  3. import { getConditioningSchemeDetailMethod } from '@/request/api/care.api';
  4. const props = defineProps<{
  5. data: SystemItemModel;
  6. }>();
  7. onMounted(async () => {
  8. try {
  9. const res = await getConditioningSchemeDetailMethod(props.data);
  10. Object.assign(props.data, res);
  11. } catch (error) {
  12. console.log(error, 'getCpDetailMethod-error');
  13. }
  14. })
  15. </script>
  16. <template>
  17. <div class="service-detail">
  18. <div class="detail-item">
  19. <div class="label">项目名称:</div>
  20. <div class="content">{{ data.name }}</div>
  21. </div>
  22. <div class="detail-item">
  23. <div class="label">方案类型:</div>
  24. <div class="content">{{ data.conditioningProgramType }}</div>
  25. </div>
  26. <div class="detail-item">
  27. <div class="label">计价规则:</div>
  28. <div class="content">{{ data.pricingType==='0'?'一口价':'按穴位/脉络/部位计价' }}</div>
  29. </div>
  30. <div class="flex" v-if="data?.pricingType==='0'">
  31. <div class="detail-item mr-10">
  32. <div class="label">单价:</div>
  33. <div class="content">{{ data?.cpFixedPricingRule?.unitPrice }}</div>
  34. </div>
  35. <div class="detail-item">
  36. <div class="label">计价单位:</div>
  37. <div class="flex">
  38. <div class="content mr-10">{{ data?.cpFixedPricingRule?.pricingUnit }}</div>
  39. <div class="content">相当于{{ data?.cpFixedPricingRule?.convertDose }}(使用单位)</div>
  40. </div>
  41. </div>
  42. </div>
  43. <div class="flex" v-if="data?.pricingType==='1'">
  44. <div class="detail-item">
  45. <div class="label">计价说明:</div>
  46. <div class="content font-extrabold">{{ data?.pricingType==='1'?`当"穴位/经络/部位 ≤${data?.cpDynamicPricingRule? data?.cpDynamicPricingRule[1]?.max || 0:0}个时,
  47. 单价为${data?.cpDynamicPricingRule? data?.cpDynamicPricingRule[0]?.price || 0:0}元,
  48. 当"穴位/经络/部位 >${data?.cpDynamicPricingRule? data?.cpDynamicPricingRule[1]?.max || 0:0}个时,
  49. 单价为${data?.cpDynamicPricingRule? data?.cpDynamicPricingRule[1]?.price || 0:0}元`:'' }}</div>
  50. </div>
  51. </div>
  52. <div class="detail-item" v-if="data?.cpMedicines?.length>0 && data?.cpMedicines[0]?.name">
  53. <div class="label">中药组成:</div>
  54. <div class="content" v-for="item in data?.cpMedicines" :key="item.id">{{ item.name }} ; </div>
  55. </div>
  56. <div class="detail-item" v-if="data?.effect">
  57. <div class="label">功效:</div>
  58. <div class="content font-extrabold">{{ data?.effect }}</div>
  59. </div>
  60. <div class="detail-item" v-if="data?.institutionName">
  61. <div class="label">机构名称:</div>
  62. <div class="content">{{ data?.institutionName }}</div>
  63. </div>
  64. <div class="detail-item" v-if="data?.conditioningProgramSupplierName">
  65. <div class="label">供应商:</div>
  66. <div class="content">{{ data?.conditioningProgramSupplierName }}</div>
  67. </div>
  68. <div class="detail-item" v-if="data?.photo">
  69. <div class="label">图片:</div>
  70. <div class="content">
  71. <a-image :width="100" :height="100" :src="data?.photo" class="service-image" />
  72. </div>
  73. </div>
  74. </div>
  75. </template>
  76. <style scoped lang="scss">
  77. .service-detail {
  78. padding: 20px;
  79. color: black;
  80. .detail-item {
  81. display: flex;
  82. margin-bottom: 20px;
  83. .label {
  84. // width: 80px;
  85. margin-right: 10px;
  86. }
  87. .content {
  88. // flex: 1;
  89. .service-image {
  90. max-width: 200px;
  91. height: auto;
  92. }
  93. }
  94. }
  95. }
  96. </style>