diff --git a/admin/src/views/commissions/index.vue b/admin/src/views/commissions/index.vue index b988811..dfd13ee 100644 --- a/admin/src/views/commissions/index.vue +++ b/admin/src/views/commissions/index.vue @@ -1,37 +1,60 @@ - - - {{ rateConfig.percentage }} + + +
+

系统默认比例

+ + + {{ rateConfig.percentage }} + + + + % + + + 保存 + + +
+ + + + +
+

用户专属比例设置

+

为特定用户设置专属佣金比例,未设置的用户将使用系统默认比例

+ + + + + + + + + % + + + + + 添加 + + + + + + + + + + + + + + + +
+ 暂无用户设置专属比例 +
+
+ +
+ +
+ + + + + + + {{ editingUser?.nickname }} (UID: {{ editingUser?.uid }}) - + % - - 保存 - -
- -
- + +
@@ -150,14 +259,25 @@ @@ -279,35 +519,145 @@ onMounted(() => { } .stat-card { - .stat-content { - text-align: center; - padding: 10px 0; + border-radius: 12px; + overflow: hidden; + transition: transform 0.3s ease; - .stat-value { - font-size: 28px; - font-weight: bold; - color: #409eff; - - &.rmb { - color: #e6a23c; - } - - &.peso { - color: #67c23a; - font-size: 20px; + &:hover { + transform: translateY(-4px); + } + + .stat-content { + display: flex; + align-items: center; + padding: 8px 0; + + .stat-icon { + width: 56px; + height: 56px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 16px; + flex-shrink: 0; + + .el-icon { + font-size: 28px; + color: #fff; } } - .stat-label { - font-size: 14px; - color: #909399; - margin-top: 8px; + .stat-info { + flex: 1; + min-width: 0; + + .stat-value { + font-size: 24px; + font-weight: 600; + line-height: 1.2; + margin-bottom: 4px; + + &.dual { + font-size: 18px; + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 4px; + + .rmb { + color: #e6a23c; + } + + .peso { + color: #67c23a; + } + + .divider { + color: #c0c4cc; + font-weight: normal; + } + } + } + + .stat-label { + font-size: 13px; + color: #909399; + } + } + } + + &.rmb-card { + .stat-icon { + background: linear-gradient(135deg, #f6d365 0%, #e6a23c 100%); + } + .stat-value { + color: #e6a23c; + } + } + + &.peso-card { + .stat-icon { + background: linear-gradient(135deg, #84fab0 0%, #67c23a 100%); + } + .stat-value { + color: #67c23a; + } + } + + &.count-card { + .stat-icon { + background: linear-gradient(135deg, #667eea 0%, #409eff 100%); + } + .stat-value { + color: #409eff; + } + } + + &.pending-card { + .stat-icon { + background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); } } } .config-card { margin-bottom: 20px; + border-radius: 12px; + + .config-section { + margin-bottom: 20px; + + h4 { + margin: 0 0 16px 0; + font-size: 16px; + color: #303133; + font-weight: 600; + } + + .section-desc { + font-size: 13px; + color: #909399; + margin: -8px 0 16px 0; + } + + .user-rate-form { + background: linear-gradient(135deg, #f5f7fa 0%, #e4e7ed 100%); + padding: 20px; + border-radius: 10px; + border: 1px solid #ebeef5; + } + + .empty-tip { + text-align: center; + color: #909399; + padding: 30px; + font-size: 14px; + background: #fafafa; + border-radius: 8px; + margin-top: 16px; + } + } .rate-suffix { margin-left: 8px; @@ -321,23 +671,23 @@ onMounted(() => { } .table-card { + border-radius: 12px; + .card-header { display: flex; justify-content: space-between; align-items: center; + font-weight: 600; } .payment-amount { color: #e6a23c; - - &.peso { - color: #67c23a; - } + font-weight: 500; } .commission-amount { color: #67c23a; - font-weight: bold; + font-weight: 600; } .text-muted { diff --git a/admin/src/views/payment-orders/index.vue b/admin/src/views/payment-orders/index.vue index aded873..b86f9a0 100644 --- a/admin/src/views/payment-orders/index.vue +++ b/admin/src/views/payment-orders/index.vue @@ -128,7 +128,7 @@ - + @@ -157,6 +157,22 @@ value-format="YYYY-MM-DD HH:mm:ss" /> + + + + + +
点击上传支付凭证截图(必填)
+
@@ -190,6 +206,16 @@ {{ currentOrder.serviceContent }} {{ formatDate(currentOrder.paymentTime) }} {{ formatDate(currentOrder.createdAt) }} + + + - + {{ currentOrder.notes || '-' }} {{ currentOrder.creator?.realName || currentOrder.creator?.username }} {{ currentOrder.appointment?.appointmentNo || '-' }} @@ -232,8 +258,9 @@