Sfoglia il codice sorgente

项目单价显示错误

张田田 10 mesi fa
parent
commit
87547e2d21

+ 41 - 16
src/pages/index/care/issueService.vue

@@ -312,7 +312,6 @@ const displayTableData = computed(() => {
 const isShowDelivery = ref<boolean>(false);
 // 监听 displayTableData 的变化
 watch(displayTableData, (newValue, oldValue) => {
-  console.log('displayTableData 变化了:', newValue);
   if (newValue.length > 0) {
     isShowDelivery.value = newValue.some((item) => {
       return item.conditioningProgramDetail?.isDelivery === 'Y';
@@ -320,7 +319,6 @@ watch(displayTableData, (newValue, oldValue) => {
     newValue.forEach((row: any) => {
       row.frequencyTypeing = row.frequencyType ? [row.frequencyType] : [];
     });
-    console.log(newValue, '开过的newValue');
   }
 });
 const totalPrice = computed(() => {
@@ -456,7 +454,6 @@ function detailPreview(row) {
   }
 }
 function editPart(row) {
-  if (row.conditioningProgramDetail.id) {
     VxeUI.modal.open({
       title: `编辑部位`,
       height: 700,
@@ -470,17 +467,13 @@ function editPart(row) {
         default() {
           return h(AcupointEdit, <any>{
             data: row,
-            onSubmit(data: PlanModel) {
-              refresh(page.value);
+            onSubmit(data: any) {
               VxeUI.modal.close(`edit-part-modal`);
             },
           });
         },
       },
     });
-  } else {
-    message.warning('请先添加服务包');
-  }
 }
 const allProjects = ref<
   Array<{
@@ -513,6 +506,9 @@ function calculateCount(row: any) {
   const pricingType = row.conditioningProgramDetail.pricingType;
   const period = Number(row.days) || 0;
   const frequency = Number(row.frequencyMeasure) || 0;
+  const maxCount = row.conditioningProgramDetail.cpDynamicPricingRule?.[1]?.max;
+  const acCount = (row.acuMeridianNames?.length ?? 0) + (row.acuPointNames?.length ?? 0);
+  // console.log(row, 'calculateCount',pricingType);
   // 一口价
   if (pricingType === '0') {
     // 检查是否选择了"不限"
@@ -530,10 +526,39 @@ function calculateCount(row: any) {
     row.totalPrice = (row.totalMeasure * unitPrice).toFixed(2);
   } else if (pricingType === '1') {
     // 按穴位计价
-    row.totalPrice =
-      row.conditioningProgramDetail?.cpDynamicPricingRule?.reduce((sum: number, item: any) => {
-        return sum + (Number(item.price) || 0);
-      }, 0) || 0;
+    const frequencyType = Number(row.frequencyType) || 0;
+    row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
+    if (acCount > maxCount) {
+      if (row.conditioningProgramDetail.cpDynamicPricingRule?.[1]?.priceType === 0) {
+        // 单价
+        let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[1].price*acCount;
+        row.unitPrice = unitPrice;
+        // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
+        row.totalPrice = Math.ceil((period / frequencyType) * frequency * unitPrice);
+      } else if (row.conditioningProgramDetail.cpDynamicPricingRule?.[1]?.priceType === 1) {
+        // 一口价
+        row.unitPrice = '-';
+        row.totalPrice = row.conditioningProgramDetail.cpDynamicPricingRule[1].price;
+        // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
+      }
+    } else {
+      // console.log("数量很少",row.conditioningProgramDetail.cpDynamicPricingRule?.[0]?.priceType)
+      if (row.conditioningProgramDetail.cpDynamicPricingRule?.length > 0) {
+        if (row.conditioningProgramDetail.cpDynamicPricingRule?.[0]?.priceType === 0) {
+          // 单价
+          let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[0].price*acCount;
+          row.unitPrice = unitPrice;
+          // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
+          row.totalPrice = Math.ceil((period / frequencyType) * frequency * unitPrice );
+          // console.log("数量很少",row.totalPrice,'row.unitPrice',row.unitPrice,'period',period,'frequencyType',frequencyType,'acCount',acCount)
+        } else if (row.conditioningProgramDetail.cpDynamicPricingRule?.[0]?.priceType === 1) {
+          // 一口价
+          row.unitPrice = '-';
+          row.totalPrice = row.conditioningProgramDetail.cpDynamicPricingRule[0].price;
+          // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
+        }
+      }
+    }
   }
 }
 // function calculateCount(row: any) {
@@ -896,7 +921,7 @@ watch(showProjectPopover, (val) => {
                     <a-input v-model:value="row.frequencyType" style="width: 50px" @change="() => calculateCount(row)" :disabled="row.frequencyType === '不限'" />
                     <span>天</span>
                     <a-input v-model:value="row.frequencyMeasure" style="width: 50px" @change="() => calculateCount(row)" :disabled="row.frequencyType === '不限'" />
-                    <span>{{ row.conditioningProgramDetail?.cpFixedPricingRule?.convertUnit }}</span>
+                      <span>{{ row.conditioningProgramDetail?.cpFixedPricingRule?.convertUnit ? row.conditioningProgramDetail?.cpFixedPricingRule?.convertUnit : '次' }}</span>
                   </div>
                   <div>
                     <a-checkbox-group
@@ -918,7 +943,7 @@ watch(showProjectPopover, (val) => {
                   <a-input v-model:value="row.frequencyType" style="width: 50px" @change="() => calculateCount(row)" />
                   <span>天</span>
                   <a-input v-model:value="row.frequencyMeasure" style="width: 50px" @change="() => calculateCount(row)" />
-                  <span>{{ row.conditioningProgramDetail?.cpFixedPricingRule?.convertUnit }}</span>
+                    <span>{{ row.conditioningProgramDetail?.cpFixedPricingRule?.convertUnit ? row.conditioningProgramDetail?.cpFixedPricingRule?.convertUnit : '次' }}</span>
                 </div>
               </template>
             </vxe-column>
@@ -934,12 +959,12 @@ watch(showProjectPopover, (val) => {
             </vxe-column>
             <vxe-column field="row?.conditioningProgramDetail?.cpFixedPricingRule?.unit" title="单位" width="60">
               <template #default="{ row }">
-                {{ row?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit || '-' }}
+                {{ row?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit ? row?.conditioningProgramDetail?.cpFixedPricingRule?.pricingUnit : '次' }}
               </template>
             </vxe-column>
             <vxe-column field="row.conditioningProgramDetail.cpFixedPricingRule.unitPrice" title="单价(元)" width="100">
               <template #default="{ row }">
-                {{ row.conditioningProgramDetail?.cpFixedPricingRule?.unitPrice ?? '-' }}
+                {{ row?.conditioningProgramDetail?.pricingType === '0' ? row.conditioningProgramDetail?.cpFixedPricingRule?.unitPrice : row?.unitPrice }}
               </template>
             </vxe-column>
             <vxe-column field="row.totalPrice" title="总价(元)" width="auto" @change="() => calculateCount(row)">

+ 15 - 24
src/service/EditSystemService.vue

@@ -219,17 +219,25 @@ const filteredProjects = computed(() => {
 });
 
 function onSelectProject({ row }: any) {
-  console.log(row, 'onSelectProject');
   if ((formData.items ?? []).some((item) => item.conditioningProgramDetail?.name === row.name)) {
     message.warning('不能重复添加该项目');
     return;
   }
   // 添加新行到主表格
   if (!formData.items) formData.items = [];
+  if (row.cpDynamicPricingRule[0]?.priceType === 0) {
+    // 单价
+    let unitPrice: number = row.cpDynamicPricingRule[0].price;
+    row.unitPrice = unitPrice;
+  } else if (row.cpDynamicPricingRule[0]?.priceType === 1) {
+    // 一口价
+    row.unitPrice = '-';
+  }
   formData.items.push({
     id: '',
     conditioningWrapId: '',
     conditioningProgramId: row.id,
+    unitPrice: row.unitPrice,
     days: '',
     frequencyType: '',
     frequencyMeasure: '',
@@ -340,9 +348,7 @@ function editPart(row: any) {
       default() {
         return h(AcupointEdit, {
           data: row,
-          onSubmit: (data:any) => {
-            console.log(data, '编辑穴位传递的参数');
-            // refresh(page.value);
+          onSubmit: (data: any) => {
             VxeUI.modal.close(`edit-part-modal`);
           },
         });
@@ -357,9 +363,7 @@ function calculateCount(row: any) {
   const period = Number(row.days) || 0;
   const frequency = Number(row.frequencyMeasure) || 0;
   const maxCount = row.conditioningProgramDetail.cpDynamicPricingRule?.[1]?.max;
-  console.log(row, '添加计算数量的函数');
   const acCount = (row.acuMeridianNames?.length ?? 0) + (row.acuPointNames?.length ?? 0);
-  console.log(acCount, 'acCount');
   // 一口价
   if (pricingType === '0') {
     // 检查是否选择了"不限"
@@ -379,34 +383,28 @@ function calculateCount(row: any) {
     // 按穴位计价
     const frequencyType = Number(row.frequencyType) || 0;
     row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
-    let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[0].price;
     if (acCount > maxCount) {
       if (row.conditioningProgramDetail.cpDynamicPricingRule?.[1]?.priceType === 0) {
         // 单价
-        // let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[1].price;
+        let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[1].price * acCount;
         row.unitPrice = unitPrice;
-        // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
-        row.totalPrice = Math.ceil((period / frequencyType) * unitPrice * acCount);
+        row.totalPrice = Math.ceil((period / frequencyType) * frequency * unitPrice);
       } else if (row.conditioningProgramDetail.cpDynamicPricingRule?.[1]?.priceType === 1) {
-      
         // 一口价
-        row.conditioningProgramDetail.unitPrice = '-';
+        row.unitPrice = '-';
         row.totalPrice = row.conditioningProgramDetail.cpDynamicPricingRule[1].price;
-        // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
       }
     } else {
       if (row.conditioningProgramDetail.cpDynamicPricingRule?.length > 0) {
         if (row.conditioningProgramDetail.cpDynamicPricingRule?.[0]?.priceType === 0) {
           // 单价
-          // let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[0].price;
+          let unitPrice: number = row.conditioningProgramDetail.cpDynamicPricingRule[0].price * acCount;
           row.unitPrice = unitPrice;
-          // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
-          row.totalPrice = Math.ceil((period / frequencyType) * unitPrice * acCount);
+          row.totalPrice = Math.ceil((period / frequencyType) * frequency * unitPrice);
         } else if (row.conditioningProgramDetail.cpDynamicPricingRule?.[0]?.priceType === 1) {
           // 一口价
           row.unitPrice = '-';
           row.totalPrice = row.conditioningProgramDetail.cpDynamicPricingRule[0].price;
-          // row.totalMeasure = Math.ceil((period / frequencyType) * frequency);
         }
       }
     }
@@ -452,7 +450,6 @@ function confirm() {
       row.frequencyType = row.frequencyTypeing[0];
     }
   });
-  // console.log(props.data.types, 'formData.items');
   // 如果所有条件都满足,继续执行后续代码
   if (isValid) {
     // 系统服务包
@@ -511,8 +508,6 @@ async function getGender() {
       id: item.label,
       name: item.label,
     }));
-  } else {
-    console.log('性别数据未获取到');
   }
 }
 // 获取年龄
@@ -575,7 +570,6 @@ onMounted(async () => {
 });
 
 const tableData = computed(() => {
-  console.log(formData, 'formData.items');
   return [...(formData.items ?? []), { ...emptyRow }];
 });
 
@@ -631,9 +625,6 @@ const handlePreview = async (file: UploadFile) => {
 };
 let multiple = ref<boolean>(true);
 function handleSelect(value: string, node: any, extra: any) {
-  // console.log(value, 'value');
-  // console.log(node, 'node');
-  // console.log(extra, 'extra');
   formData.institutionId = value;
   formData.institutionName = node.label;
 }

+ 0 - 3
src/widgets/PatientTagWidget.vue

@@ -49,9 +49,6 @@ async function edit(value = !editing.value) {
   }
   editing.value = value;
 }
-onMounted(() => {
-  console.log(props, 'dataset');
-}); 
 </script>
 <template>
   <div class="card flex flex-col">