初始化上传医疗项目到 medical-mall

This commit is contained in:
2026-04-10 09:03:21 +08:00
parent ca8794ea3a
commit ce124e7119
421 changed files with 15139 additions and 2363 deletions

View File

@@ -1,9 +1,9 @@
<!-- 商家端 - 个人中心 -->
<!-- 商家端 - 机构中心 -->
<template>
<view class="merchant-profile">
<!-- #ifdef MP-WEIXIN -->
<view class="mp-tab-navbar">
<text class="mp-tab-title">我的</text>
<text class="mp-tab-title">机构中心</text>
</view>
<!-- #endif -->
<scroll-view direction="vertical" class="profile-scroll">
@@ -11,11 +11,11 @@
<view class="profile-header">
<image :src="shopInfo.shop_logo || '/static/logo.png'" class="shop-logo" mode="aspectFill" @click="goToSettings" />
<view class="shop-info">
<text class="shop-name">{{ shopInfo.shop_name || '我的店铺' }}</text>
<text class="shop-name">{{ shopInfo.shop_name || '我的机构' }}</text>
<text class="shop-status">{{ getShopStatus() }}</text>
<view class="shop-stats">
<text class="stat-item">评分: {{ shopInfo.rating_avg || 5.0 }}/5.0</text>
<text class="stat-item">总量: {{ shopInfo.total_sales || 0 }}</text>
<text class="stat-item">总服务量: {{ shopInfo.total_sales || 0 }}</text>
</view>
</view>
<view class="settings-icon" @click="goToSettings">
@@ -25,34 +25,34 @@
<!-- 前往店铺主页(跳转店铺详情,而非 shop-edit -->
<view class="shop-home-entry" @click="goToShopHome">
<text class="shop-home-icon">🏪</text>
<text class="shop-home-text">前往店铺主页</text>
<text class="shop-home-icon"><EFBFBD></text>
<text class="shop-home-text">查看机构主页</text>
<text class="shop-home-arrow"></text>
</view>
<!-- 订单管理快捷入口 -->
<view class="section-card">
<view class="section-title-text">订单管理</view>
<view class="section-title-text">服务订单</view>
<view class="order-tabs">
<view class="order-tab" @click="goToOrders('all')">
<view class="tab-icon-wrap">
<text class="tab-icon">📋</text>
<text v-if="pendingCounts.pending_shipment > 0" class="tab-badge">{{ pendingCounts.pending_shipment }}</text>
</view>
<text class="tab-text">待发货</text>
<text class="tab-text">待上门</text>
</view>
<view class="order-tab" @click="goToOrders('shipped')">
<view class="tab-icon-wrap">
<text class="tab-icon">🚚</text>
<text class="tab-icon"><EFBFBD></text>
</view>
<text class="tab-text">已发货</text>
<text class="tab-text">服务中</text>
</view>
<view class="order-tab" @click="goToOrders('refund')">
<view class="tab-icon-wrap">
<text class="tab-icon">↩️</text>
<text v-if="pendingCounts.refund_requests > 0" class="tab-badge alert">{{ pendingCounts.refund_requests }}</text>
</view>
<text class="tab-text">退款</text>
<text class="tab-text">取消/售后</text>
</view>
<view class="order-tab" @click="goToOrders('all')">
<view class="tab-icon-wrap">
@@ -65,23 +65,23 @@
<!-- 今日经营数据:复用 index 的 todayStats 字段 -->
<view class="section-card">
<view class="section-title-text">今日营</view>
<view class="section-title-text">今日营</view>
<view class="stats-grid">
<view class="stat-card">
<text class="stat-value">¥{{ formatNumber(todayStats.sales) }}</text>
<text class="stat-label">营业额</text>
<text class="stat-label">服务收入</text>
</view>
<view class="stat-card">
<text class="stat-value">{{ todayStats.orders || 0 }}</text>
<text class="stat-label">单数</text>
<text class="stat-label">服务单数</text>
</view>
<view class="stat-card">
<text class="stat-value">{{ todayStats.visitors || 0 }}</text>
<text class="stat-label">访客数</text>
<text class="stat-label">问诊人数</text>
</view>
<view class="stat-card">
<text class="stat-value">{{ todayStats.conversion || 0 }}%</text>
<text class="stat-label">转化率</text>
<text class="stat-label">预约转化率</text>
</view>
</view>
</view>
@@ -111,26 +111,26 @@
<!-- 商品管理入口 -->
<view class="section-card">
<view class="section-title-text">商品管理</view>
<view class="section-title-text">服务/商品管理</view>
<view class="management-grid">
<view class="management-item" @click="goToProducts">
<text class="mgmt-icon">📦</text>
<text class="mgmt-label">商品管理</text>
<text class="mgmt-label">服务/商品管理</text>
</view>
<view class="management-item" @click="goToInventory">
<text class="mgmt-icon">📊</text>
<text class="mgmt-label">库存管理</text>
<text class="mgmt-label">器械库存</text>
<view v-if="pendingCounts.low_stock > 0" class="mgmt-badge">
<text class="mgmt-badge-text">{{ pendingCounts.low_stock }}</text>
</view>
</view>
<view class="management-item" @click="goToPromotions">
<text class="mgmt-icon">🎉</text>
<text class="mgmt-label">促销活动</text>
<text class="mgmt-icon"><EFBFBD></text>
<text class="mgmt-label">关怀活动</text>
</view>
<view class="management-item" @click="goToReviews">
<text class="mgmt-icon">⭐</text>
<text class="mgmt-label">评价管理</text>
<text class="mgmt-label">服务评价</text>
<view v-if="pendingCounts.pending_reviews > 0" class="mgmt-badge">
<text class="mgmt-badge-text">{{ pendingCounts.pending_reviews }}</text>
</view>
@@ -142,17 +142,17 @@
<view class="section-card function-menu">
<view class="menu-item" @click="goToFinance">
<text class="menu-icon">💳</text>
<text class="menu-label">财务管理</text>
<text class="menu-label">结算中心</text>
<text class="menu-arrow"></text>
</view>
<view class="menu-item" @click="goToCustomers">
<text class="menu-icon">👥</text>
<text class="menu-label">客户管理</text>
<text class="menu-label">用户档案管理</text>
<text class="menu-arrow"></text>
</view>
<view class="menu-item" @click="goToMarketing">
<text class="menu-icon">📢</text>
<text class="menu-label">营工具</text>
<text class="menu-label">营工具</text>
<text class="menu-arrow"></text>
</view>
</view>
@@ -519,11 +519,11 @@
},
getOrderStatusText(status: number): string {
if (status === 1) return '待付'
if (status === 2) return '待发货'
if (status === 3) return '已发货'
if (status === 1) return '待付'
if (status === 2) return '待接单'
if (status === 3) return '服务中'
if (status === 4) return '已完成'
if (status === 0) return '退款中'
if (status === 0) return '取消/售后'
return '未知'
},
@@ -669,7 +669,7 @@
.view-all-link {
font-size: 24rpx;
color: #667eea;
color: rgb(66, 121, 240);
}
/* ===== 店铺头部(渐变背景与 index header 保持同设计语言)===== */
@@ -678,7 +678,7 @@
flex-direction: row;
align-items: center;
padding: 40rpx 30rpx;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
background: linear-gradient(135deg, rgb(66, 121, 240) 0%, #5856D6 100%);
}
.shop-logo {
@@ -830,7 +830,7 @@
.stat-value {
font-size: 32rpx;
font-weight: bold;
color: #667eea;
color: rgb(66, 121, 240);
margin-bottom: 6rpx;
}
@@ -851,7 +851,7 @@
border-radius: 16rpx;
border-left-width: 6rpx;
border-left-style: solid;
border-left-color: #667eea;
border-left-color: rgb(66, 121, 240);
margin-bottom: 16rpx;
}