浏览代码

Merge branch 'feature/bug-170' of ssh://121.43.162.141:10022/six.fe/health.admin into release/2.0.1

张田田 8 月之前
父节点
当前提交
f99afc6bfc

+ 1 - 0
src/components/PatientHealthRecordPreview.vue

@@ -172,6 +172,7 @@ function openIndicatorRecordsPreview() {
       default() {
         return h(component, {
           patient: patient.value,
+          records: indicator.value,
           onDestroy,
         });
       },

+ 4 - 3
src/components/RecordsIndicatorPreview.vue

@@ -20,19 +20,20 @@ const { data: records, loading } = useWatcher(
   },
 );
 onMounted(() => {
-  console.log(props.records, 'records');
   if (props.records) {
     records.value = props.records;
-    console.log(records.value, 'records.value');
   }
 
 });
 </script>
 <template>
   <div ref="containerRef" class="h-full">
-    <a-space direction="vertical" class="w-full">
+    <a-space direction="vertical" class="w-full" v-if="records">
       <ReportIndicatorChartWidget style="height: 400px;" v-for="item in records" :dataset="item" :loading />
     </a-space>
+    <div v-else>
+      <a-empty description="暂无数据" class="pt-20" />
+    </div>
   </div>
 </template>
 <style scoped lang="scss">

+ 2 - 1
src/pages/index/care/conditioningRecord.vue

@@ -202,7 +202,8 @@ const progressTextMap: Record<string, string> = {
   '2': '用户取消',
   '3': '未开始',
   '4': '调理中',
-  '5': '已完结'
+  '5': '已完结',
+  '6': '待收货'
 };
 
 

+ 90 - 40
src/service/CareProgress.vue

@@ -101,11 +101,24 @@ const option = ref({
     type: 'category',
     data: [] as string[],
     boundaryGap: false,
+    axisLine: { show: false },
+    axisTick: { show: false }, // 不显示横坐标刻度
+    axisLabel: { show: false }, // 不显示横坐标刻度名字
   },
   yAxis: {
     type: 'value',
     min: 20,
     max: 100,
+    interval: 20,
+    axisLine: { show: false }, // 不显示Y轴线
+    axisLabel: { color: '#7ec8bb' },
+    splitLine: {
+      show: true,
+      lineStyle: {
+        type: 'dashed',
+        color: '#e0e0e0',
+      },
+    },
   },
   series: [
     {
@@ -114,9 +127,26 @@ const option = ref({
       smooth: true,
       symbol: 'circle',
       symbolSize: 12,
-      itemStyle: { color: '#ff9900', borderColor: '#fff', borderWidth: 2 },
-      lineStyle: { color: '#bfa' },
-      label: { show: false },
+      itemStyle: {
+        color: '#ffd700', // 黄色中心
+        borderColor: '#ff8c00', // 橙色轮廓
+        borderWidth: 2,
+      },
+      lineStyle: {
+        color: '#b0c4de', // 浅蓝色线条
+        width: 2,
+      },
+      label: {
+        show: true,
+        position: 'top',
+        color: '#fff',
+        backgroundColor: '#ff6b6b', // 红色标签背景
+        borderRadius: 4,
+        padding: [4, 8],
+        formatter: function (params: any) {
+          return params.name;
+        },
+      },
       markPoint: {
         symbol: 'circle',
         symbolSize: 16,
@@ -206,41 +236,46 @@ const progressTextMap: Record<string, string> = {
   '2': '用户取消',
   '3': '未开始',
   '4': '调理中',
-  '5': '已完结'
+  '5': '已完结',
+  '6': '待收货',
 };
-
 </script>
 
 <template>
   <div class="care-progress-card">
-    <div class="header" v-if="careProcessList">
-      <span class="title">
-        {{ progressTextMap[careProcessList?.progress] || '' }}
+    <div v-if="careProcessList">
+      <div class="title-wrapper" v-if="careProcessList?.conditioningWrapName">{{ careProcessList?.conditioningWrapName }}</div>
+      <div class="header">
+        <span class="title" v-if="careProcessList?.progress">
+          {{ progressTextMap[careProcessList?.progress] || '' }}
         </span>
-      <span v-if="careProcessList?.patientName"
-        >姓名:<b>{{ careProcessList?.patientName }}</b></span
-      >
-      <span v-if="careProcessList?.diagnosis">疾病名称:{{ careProcessList?.diagnosis }}</span>
-      <span v-if="careProcessList?.symptom">证型:{{ careProcessList?.symptom }}</span>
-      <span v-if="careProcessList?.createBy">开具医生:{{ careProcessList?.createBy }}</span>
-      <span v-if="careProcessList?.estimatedStartDate && careProcessList?.estimatedEndDate"
-        >调养周期:{{ careProcessList?.estimatedStartDate }} ~ {{ careProcessList?.estimatedEndDate }}</span
-      >
+        <span v-if="careProcessList?.patientName"
+          >姓名:<span>{{ careProcessList?.patientName }}</span></span
+        >
+        <span v-if="careProcessList?.diagnosis">疾病名称:{{ careProcessList?.diagnosis }}</span>
+        <span v-if="careProcessList?.symptom">证型:{{ careProcessList?.symptom }}</span>
+        <span v-if="careProcessList?.createBy">开具医生:{{ careProcessList?.createBy }}</span>
+        <span v-if="careProcessList?.estimatedStartDate && careProcessList?.estimatedEndDate"
+          >调养周期:{{ careProcessList?.estimatedStartDate }} ~ {{ careProcessList?.estimatedEndDate }}</span
+        >
+      </div>
     </div>
     <div v-if="isShowDelivery" class="delivery-info" style="margin-left: 75px">
       <a-checkbox checked style="color: #52c41a; margin-right: 8px" />
       <span style="margin-right: 15px">配送</span>
-      <span>地址:{{ careProcessList?.provinceName }}{{ careProcessList?.cityName }}{{ careProcessList?.areaName }}{{ careProcessList?.detailAddress }}</span>
-      <span style="margin-left: 16px">电话:{{ careProcessList?.phone }}</span>
+      <span v-if="careProcessList?.provinceName || careProcessList?.cityName || careProcessList?.areaName || careProcessList?.detailAddress"
+        >地址:{{ careProcessList?.provinceName }}{{ careProcessList?.cityName }}{{ careProcessList?.areaName }}{{ careProcessList?.detailAddress }}</span
+      >
+      <span style="margin-left: 16px" v-if="careProcessList?.phone">电话:{{ careProcessList?.phone }}</span>
     </div>
     <!-- 线上项目 -->
     <div v-for="item in careProcessList?.items" :key="item.id" class="project-card">
       <div class="project-section" v-if="item?.patientConditioningOfflines">
         <div class="project-title">
           <span style="font-size: 14px; font-weight: bold">◇ {{ item?.conditioningProgramDetail?.name }}</span>
-          <span class="stat">数量:{{ item.totalMeasure }} {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
-          <span class="stat">还剩:{{ item?.remainCount }} {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
-          <span class="stat">已核销:{{ item?.finishCount }} {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
+          <span class="stat">数量:{{ item.totalMeasure }}{{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
+          <span class="stat">还剩:{{ item?.remainCount }}{{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
+          <span class="stat">已核销:{{ item?.finishCount }}{{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
         </div>
         <vxe-table :data="item?.patientConditioningOfflines" border>
           <vxe-column type="seq" title="序号" width="80" />
@@ -250,10 +285,7 @@ const progressTextMap: Record<string, string> = {
           <vxe-column field="acuPointNames" title="穴位" />
         </vxe-table>
         <div class="mt-3">
-          <div class="mb-1">
-            预定频率:每 {{ item.frequencyType }} 天 {{ item.frequencyMeasure }}
-            {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}
-          </div>
+          <div class="mb-1">预定频率:每{{ item.frequencyType }}天{{ item.frequencyMeasure }}{{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</div>
           <div v-if="item.remark">操作指南:{{ item.remark }}</div>
         </div>
       </div>
@@ -263,10 +295,7 @@ const progressTextMap: Record<string, string> = {
           <span class="mr-10" style="font-size: 14px; font-weight: bold; color: black">◇ {{ item?.conditioningProgramDetail?.name }}</span>
           <span>数量:{{ item.totalMeasure }} {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</span>
         </div>
-        <div class="mb-1">
-          预定频率:每 {{ item.frequencyType }} 天 {{ item.frequencyMeasure }}
-          {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}
-        </div>
+        <div class="mb-1">预定频率:每{{ item.frequencyType }}天{{ item.frequencyMeasure }}{{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '次' }}</div>
         <div v-if="item.remark">操作指南:{{ item.remark }}</div>
       </div>
       <!-- 健康评估 -->
@@ -290,10 +319,7 @@ const progressTextMap: Record<string, string> = {
           <div class="mb-1">
             预定频率:
             <span v-if="item?.frequencyType === '不限'">不限</span>
-            <span v-else
-              >每 {{ item?.frequencyType }}天 {{ item?.frequencyMeasure }}
-              {{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit }}
-            </span>
+            <span v-else>每{{ item?.frequencyType }}天{{ item?.frequencyMeasure }}{{ item?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit }} </span>
           </div>
           <div v-if="item?.remark">操作指南:{{ item?.remark }}</div>
         </div>
@@ -303,7 +329,7 @@ const progressTextMap: Record<string, string> = {
       <div class="health-records-card">
         <a-tabs class="panel-wrapper" v-model:activeKey="activePanel" v-if="item?.healthAnalysisReports && item?.healthAnalysisReports.length > 0">
           <a-tab-pane v-for="panel in panels" :key="panel.id" class="panel-pane">
-            <div>记录</div>
+            <div class="panel-title">记录</div>
             <component :is="panel.component" :patient="patient" :healthAnalysisReports="item?.healthAnalysisReports" :type="type"></component>
           </a-tab-pane>
         </a-tabs>
@@ -311,13 +337,15 @@ const progressTextMap: Record<string, string> = {
     </div>
     <!-- 调养效果 -->
     <div style="margin: 20px 0 10px 0" v-if="careProcessList?.patientConditioningScores && careProcessList.patientConditioningScores.length > 0">
-      <h3>调养效果</h3>
+      <h3 style="color: black;">调养效果</h3>
       <!-- todo 折线图 -->
-      <v-chart :option="option" style="width: 350px; height: 200px" />
+      <div class="chart-wrapper">
+        <v-chart :option="option" style="width: 350px; height: 200px" />
+      </div>
     </div>
     <!-- 指标 -->
     <div v-if="careProcessList?.patientQuotaGroups && careProcessList?.patientQuotaGroups.length > 0">
-      <label>生理指标</label>
+      <b>指标</b>
       <a-button type="link" @click="openIndicatorRecordsPreview">更新记录</a-button>
     </div>
   </div>
@@ -326,6 +354,7 @@ const progressTextMap: Record<string, string> = {
 <style scoped>
 .panel-pane {
   height: 600px !important;
+  margin-bottom: 28px;
 }
 .panel-wrapper {
   :deep(.ant-tabs-content-holder) {
@@ -355,7 +384,7 @@ const progressTextMap: Record<string, string> = {
   background: #ffb300;
   color: #fff;
   border-radius: 4px;
-  padding: 2px 10px;
+  padding: 4px 10px;
   font-weight: bold;
 }
 .delivery-info {
@@ -408,7 +437,7 @@ const progressTextMap: Record<string, string> = {
   color: black !important;
 }
 .health-records-card :deep(.vxe-table--header th) {
-  background: #F8F8F9 !important;
+  background: #f8f8f9 !important;
   color: unset !important;
 }
 .project-card :deep(.vxe-table--border .vxe-body--row > td),
@@ -419,4 +448,25 @@ const progressTextMap: Record<string, string> = {
 .project-card :deep(.vxe-table--border) {
   border-color: #bfcbd9 !important;
 }
+:deep(.ant-tabs-nav) {
+  position: unset;
+  display: none;
+}
+.panel-title {
+  margin-bottom: 10px;
+  font-size: 16px;
+  font-weight: bold;
+  color: black;
+}
+.title-wrapper {
+  text-align: center;
+  margin-bottom: 20px;
+  font-weight: bold;
+  font-size: 17px;
+  color: black;
+}
+.chart-wrapper {
+  width: 100%;
+  border: 1px solid lightgray !important;
+}
 </style>

+ 2 - 1
src/service/ServicePackageDetail.vue

@@ -98,7 +98,8 @@ const progressTextMap: Record<string, string> = {
   '2': '用户取消',
   '3': '未开始',
   '4': '调理中',
-  '5': '已完结'
+  '5': '已完结',
+  '6': '待收货'
 };
 
 const progressText = computed(() => {