Эх сурвалжийг харах

Merge branch 'develop' of ssh://121.43.162.141:10022/six.fe/health.admin into story-237

# Conflicts:
#	src/order/DispatchOrderPanel.vue
#	src/service/SingleItemDetail.vue
张田田 2 сар өмнө
parent
commit
37af19f5f9

+ 1 - 1
src/order/DispatchOrderPanel.vue

@@ -170,7 +170,7 @@ const gridOptions = reactive<VxeGridProps<Institution>>({
     { field: 'name', title: '机构名称' },
     { field: 'detailAddress', title: '地址' },
     { field: 'phone', title: '联系电话' },
-    { field: 'todayOrderQuantity', title: '当日线下订单数' },
+    { field: 'todayOrderQuantity', title: '当日订单数' },
     { field: 'evaluateScore', title: '机构评分' },
   ],
   data: [],

+ 14 - 0
src/pages/index/equipment/configured.vue

@@ -171,6 +171,10 @@ const gridOptions = reactive<VxeGridProps<DeviceManageModel>>({
   autoResize: false,
   syncResize: true,
   scrollY: { enabled: true, gt: 0 },
+  rowConfig: {
+    isHover: true,
+    isCurrent: true,
+  },
   toolbarConfig: {
     custom: true,
     zoom: true,
@@ -361,6 +365,16 @@ function importOrganization() {
   padding: 0 24px;
   max-height: var(--page-main-container);
 }
+
+/* 行 hover & 选中高亮背景 */
+:deep(.vxe-table .vxe-body--row.row--hover) {
+  background-color: #f5f7ff !important;
+}
+
+:deep(.vxe-table .vxe-body--row.row--current),
+:deep(.vxe-table .vxe-body--row.row--checked) {
+  background-color: #e6f7ff !important;
+}
 .date-range-container {
   display: flex;
   align-items: center;

+ 1 - 1
src/pages/index/order/revenueSharing.vue

@@ -239,7 +239,7 @@ function serviceDetail(model?: ConditioningRecordListModel) {
           <span class="order-no-link" @click="serviceDetail(row as any)">{{ row.orderNo }}</span>
         </template>
         <template #revenueStatusCell="{ row }">
-          <span>{{ row.profitSharingStatus === '1' ? '未分账' : row.revenueStatus === '2' ? '已分账' : row.profitSharingStatus === '3' ? '分账异常' : '' }}</span>
+          <span>{{ row.profitSharingStatus === '1' ? '未分账' : row.profitSharingStatus === '2' ? '已分账' : row.profitSharingStatus === '3' ? '分账异常' : '' }}</span>
         </template>
         <template #toolbar-extra>
           <vxe-button style="margin-right: 12px" icon="vxe-icon-repeat" circle @click="refresh(page)"></vxe-button>

+ 73 - 40
src/service/SingleItemDetail.vue

@@ -67,7 +67,7 @@ const expressTypeText: Record<string, string> = {
 };
 // 包裹数据
 const mockPackageItems = computed(() => {
-  return (props.data as any).sameExpress
+  return (props.data as any).sameExpress ?? []
 });
 // 商品状态映射 - 收货状态(实体商品使用)
 const receiptStatusText: Record<string, string> = {
@@ -236,30 +236,45 @@ onMounted(() => {
     <!-- 分账信息 -->
     <div class="info-section">
       <h3 class="info-title">分账信息</h3>
-      <vxe-table :data="mockSplitAccountList" border>
+      <vxe-table
+        class="split-account-table"
+        :data="mockSplitAccountList"
+        border
+      >
         <vxe-column field="profitSharingTime" title="分账时间" align="center" />
         <vxe-column field="conditioningProgramSupplierName" title="供应商" align="center" />
+        <vxe-column field="profitSharingStatus" title="分账状态" align="center" >
+          <template #default="{ row }">
+            {{ row.profitSharingStatus === '1' ? '未分账' : row.profitSharingStatus === '2' ? '已分账' : row.profitSharingStatus === '3' ? '分账异常' : '' }}
+          </template>
+        </vxe-column>
         <vxe-column field="profitSharing" title="分账比例" align="center">
           <template #default="{ row }">
             {{ row.profitSharing || '-' }}%
           </template>
         </vxe-column>
-        <vxe-column field="realAmount" title="分账金额" align="center">
+        <vxe-column field="profitSharingAmount" title="预计分账金额" align="center" >
           <template #default="{ row }">
-            {{ row.realAmount ?? 0 }}元
+            {{ row.profitSharingAmount ? row.profitSharingAmount + '元' : '' }}
+          </template>
+        </vxe-column>
+        <vxe-column field="realAmount" title="到账金额" align="center">
+          <template #default="{ row }">
+            {{ row.realAmount ? row.realAmount + '元' : '' }}
           </template>
         </vxe-column>
       </vxe-table>
     </div>
     <!-- 物流信息和包裹内商品 实体商品才显示 sellType==='1'-->
-    <div class="info-section" v-if="data.sellType === '1' && data.receiptType !== null">
+    <div class="info-section" v-if="data.sellType === '1'">
       <!-- receiptType	收货方式 0-快递 1-线下取货 -->
       <!-- <h3 class="info-title">{{ data.receiptType === '0' ? '物流信息' : data.receiptType === '1' ? '线下取货' : '' }}</h3> -->
       <h3 class="info-title">物流信息</h3>
-      <div v-if="data.receiptType !== null">
-        <div class="info-content-wrapper" v-if="data.receiptStatus !== null">
-          <!-- 物流信息 -->
-          <div class="logistics-content" v-if="data.receiptType === '0'">
+
+      <div class="info-content-wrapper" v-if="data.receiptType">
+        <!-- 物流信息 -->
+        <div class="logistics-content" v-if="data.receiptType === '0'">
+          <template v-if="mockPackageItems.length > 0">
             <div class="logistics-tracking">
               <span class="tracking-number">{{ mockLogisticsData.trackingNumber }}</span>
               <a @click="handleCopyTracking" class="copy-link">复制</a>
@@ -272,41 +287,44 @@ onMounted(() => {
                   mockLogisticsData.recipientAddress || '' }}
               </span>
             </div>
-          </div>
-          <div class="logistics-content" v-if="data.receiptType === '1'">
-            线下取货
-          </div>
-          <!-- 包裹内商品 -->
-          <div class="package-items-wrapper" v-if="mockPackageItems.length > 0">
-            <h3 class="info-title package-title" v-if="data.receiptType === '0'">
-              <span class="star-icon">★</span>
-              包裹内商品
-            </h3>
-            <div class="package-items">
-
-              <div v-for="(item, index) in mockPackageItems" :key="index" class="package-item">
-                <div class="package-item-image" v-if="item.conditioningProgramPhoto">
-                  <a-image v-if="item.conditioningProgramPhoto" :width="60" :height="60" style="border-radius: 4px;"
-                    :src="item.conditioningProgramPhoto" class="item-img" />
-                </div>
-                <div class="package-item-placeholder" v-else>
-                  <text class="placeholder-icon">📦</text>
-                </div>
-                <div class="package-item-details">
-                  <div class="package-item-name">{{ item.conditioningProgramName }}</div>
-                  <div class="package-item-spec">{{ item.convertDose }} {{ item.convertUnit }}</div>
-                </div>
-                <div class="package-item-details">
-                  <div class="package-item-price">¥{{ item.unitPrice }}</div>
-                  <div class="package-item-quantity">x{{ item.totalMeasure }}</div>
-                </div>
+          </template>
+          <template v-else>
+            暂无
+          </template>
+        </div>
+        <div class="logistics-content" v-if="data.receiptType === '1'">
+          线下取货
+        </div>
+        <!-- 包裹内商品 -->
+        <div class="package-items-wrapper" v-if="mockPackageItems.length > 0">
+          <h3 class="info-title package-title" v-if="data.receiptType === '0'">
+            <span class="star-icon">★</span>
+            包裹内商品
+          </h3>
+          <div class="package-items">
+
+            <div v-for="(item, index) in mockPackageItems" :key="index" class="package-item">
+              <div class="package-item-image" v-if="item.conditioningProgramPhoto">
+                <a-image v-if="item.conditioningProgramPhoto" :width="60" :height="60" style="border-radius: 4px;"
+                  :src="item.conditioningProgramPhoto" class="item-img" />
+              </div>
+              <div class="package-item-placeholder" v-else>
+                <text class="placeholder-icon">📦</text>
+              </div>
+              <div class="package-item-details">
+                <div class="package-item-name">{{ item.conditioningProgramName }}</div>
+                <div class="package-item-spec">{{ item.convertDose }} {{ item.convertUnit }}</div>
+              </div>
+              <div class="package-item-details">
+                <div class="package-item-price">¥{{ item.unitPrice }}</div>
+                <div class="package-item-quantity">x{{ item.totalMeasure }}</div>
               </div>
             </div>
           </div>
         </div>
-        <div class="info-content-wrapper" v-else>
-          暂无信息
-        </div>
+      </div>
+      <div class="info-content-wrapper" v-else>
+        暂无
       </div>
     </div>
 
@@ -606,6 +624,21 @@ onMounted(() => {
     padding: 10px 20px;
   }
 
+  /* 分账表格仅按内容自适应高度,避免一行数据时出现多余空白 */
+  .split-account-table {
+    :deep(.vxe-table--wrapper),
+    :deep(.vxe-table) {
+      height: auto !important;
+    }
+
+    :deep(.vxe-table--body-wrapper) {
+      height: auto !important;
+      min-height: 0 !important;
+      max-height: none !important;
+      flex: unset !important;
+    }
+  }
+
   .empty-text {
     color: #999;
     font-size: 14px;