فهرست منبع

充值和销账

shish 1 سال پیش
والد
کامیت
a7951c6d00

+ 2 - 3
hdApp/src/admin/custom/balanceChange.vue

@@ -5,7 +5,7 @@
                     <view class="table-header table-row">
                         <view class="table-cell cell-date">日期</view>
                         <view class="table-cell cell-event">事项</view>
-                        <view class="table-cell cell-staff">人员</view>
+                        <view class="table-cell cell-staff">操作</view>
                         <view class="table-cell cell-amount">变动</view>
                         <view class="table-cell cell-balance">余额</view>
                     </view>
@@ -20,8 +20,7 @@
                         <view class="table-row table-row-extra" v-if="Number(item.settleId)>0 || Number(item.orderId)>0 || !$util.isEmpty(item.remark)">
                             <view class="table-cell cell-extra" :colspan="5">
                                 <view v-if="Number(item.settleId)>0">结清账单(编号 {{item.settleNo}}) {{item.settleAmount?parseFloat(item.settleAmount):0}}元</view>
-                                <view v-if="Number(item.orderId)>0">消除订单欠款(编号 {{item.orderNo}}){{item.orderAmount?parseFloat(item.orderAmount):0}}元</view>
-                                <view v-if="(Number(item.orderAmount)>0 || Number(item.settleAmount)>0) && Number(item.becomeBalance)>0">存入余额 {{item.becomeBalance}}元</view>
+                                <view v-if="Number(item.settleAmount)>0 && Number(item.becomeBalance)>0">存入余额 {{item.becomeBalance}}元</view>
                                 <view v-if="!$util.isEmpty(item.remark)">{{ item.remark }}</view>
                             </view>
                         </view>

+ 1 - 1
hdApp/src/admin/home/workbench.vue

@@ -274,7 +274,7 @@
   <uni-popup ref="toShowMore" background-color="#fff" type="center" :animation="true" class="class-popup-style">
 			<view style="display:flex;width:100vw;padding:20upx 20upx 40upx 20upx;height:auto;justify-content: space-between;align-items:center;flex-wrap:wrap;max-height:100vh;overflow:auto;">
         <view style="width:100vw;margin-top:8upx;"><button @click="rechargeChange()">充值记录</button></view>
-				<view style="width:100vw;margin-top:8upx;"><button @click="balanceChange()">余额变动明细</button></view>
+				<view style="width:100vw;margin-top:8upx;"><button @click="balanceChange()">余额变动</button></view>
 				<view style="width:100vw;margin-top:8upx;"><button @click="bpSj()">屏蔽此商家</button></view>
 				<view style="width:100vw;margin-top:30upx;"><button @click="closeToShow()">取消</button></view>
 			</view>

+ 3 - 3
hdApp/src/pages.json

@@ -53,7 +53,7 @@
 				{"path": "addCustom","style": {"navigationBarTitleText": "添加客户"}},
 				{"path": "selectCustom","style": {"navigationBarTitleText": "选择客户"}},
 				{"path": "showTotalBalance","style": {"navigationBarTitleText": "赊账与余额汇总"}},
-				{"path": "balanceChange","style": {"navigationBarTitleText": "余额变动明细"}},
+				{"path": "balanceChange","style": {"navigationBarTitleText": "余额变动"}},
 				{"path": "debtChange","style": {"navigationBarTitleText": "欠款变动明细"}},
 				{"path": "rechargeChange","style": {"navigationBarTitleText": "充值记录"}},
 				{"path": "levelChange","style": {"navigationBarTitleText": "等级变动记录"}}
@@ -178,7 +178,7 @@
 		{
 			"root": "pagesStore",
 			"pages": [
-				{ "path": "me/shopYeChange", "style": { "navigationBarTitleText": "余额变动明细" } },
+				{ "path": "me/shopYeChange", "style": { "navigationBarTitleText": "余额变动" } },
 				{ "path": "me/withdraw", "style": { "navigationBarTitleText": "提现记录" } },
 				{ "path": "me/incomeExpenses", "style": { "navigationBarTitleText": "收支记录" } },
 				{"path": "me/income","style": {"navigationBarTitleText": "收入记录"}},
@@ -199,7 +199,7 @@
 				{ "path": "result", "style": {"navigationBarTitleText": "付款成功"}},
 				{ "path": "addGhs", "style": {"navigationBarTitleText": "添加"}},
 				{ "path": "debtChange", "style": {"navigationBarTitleText": "欠款变动明细"}},
-				{ "path": "balanceChange", "style": {"navigationBarTitleText": "余额变动明细"}},
+				{ "path": "balanceChange", "style": {"navigationBarTitleText": "余额变动"}},
 				{ "path": "rechargeChange", "style": {"navigationBarTitleText": "充值记录"}}
 			]
 		},

+ 6 - 0
mallApp/src/pages.json

@@ -28,6 +28,12 @@
                 { "path": "result", "style": { "navigationBarTitleText": "付款结果" } }
             ]
         },
+        {
+            "root": "pages/balance",
+            "pages": [
+                { "path": "changeList", "style": { "navigationBarTitleText": "余额变动" } }
+            ]
+        },
         {
             "root": "pages/member",
             "pages": [

+ 171 - 0
mallApp/src/pages/balance/changeList.vue

@@ -0,0 +1,171 @@
+<template>
+    <view class="app-content">
+            <block v-if="!$util.isEmpty(list.data)">
+                <view class="balance-table">
+                    <view class="table-header table-row">
+                        <view class="table-cell cell-date">日期</view>
+                        <view class="table-cell cell-event">事项</view>
+                        <view class="table-cell cell-staff">操作</view>
+                        <view class="table-cell cell-amount">变动</view>
+                        <view class="table-cell cell-balance">余额</view>
+                    </view>
+                    <view v-for="(item, index) in list.data" :key="index" class="table-body">
+                        <view class="table-row table-row-data" @click="goDetail(item)">
+                            <view class="table-cell cell-date">{{ item.addTime.substr(5,11) }}</view>
+                            <view class="table-cell cell-event">{{ item.event }}</view>
+                            <view class="table-cell cell-staff">{{ item.staffName }}</view>
+                            <view class="table-cell cell-amount">{{ item.amount }}</view>
+                            <view class="table-cell cell-balance">{{ parseFloat(item.balance) }}</view>
+                        </view>
+                        <view class="table-row table-row-extra" v-if="Number(item.settleId)>0 || Number(item.orderId)>0 || !$util.isEmpty(item.remark)">
+                            <view class="table-cell cell-extra" :colspan="5">
+                                <view v-if="Number(item.settleId)>0">结清账单(编号 {{item.settleNo}}) {{item.settleAmount?parseFloat(item.settleAmount):0}}元</view>
+                                <view v-if="Number(item.settleAmount)>0 && Number(item.becomeBalance)>0">存入余额 {{item.becomeBalance}}元</view>
+                                <view v-if="!$util.isEmpty(item.remark)">{{ item.remark }}</view>
+                            </view>
+                        </view>
+                    </view>
+                </view>
+            </block>
+            <block v-else>
+                <AppWrapperEmpty title="暂无数据" :is-empty="$util.isEmpty(list.data)" />
+            </block>
+        </view>
+    </template>
+    <script>
+    import AppWrapperEmpty from "@/components/app-wrapper-empty";
+    import { getBalanceChangeList } from '@/api/custom'
+    import list from '@/mixins/list'
+    export default {
+        name: "balanceChange",
+        components: {
+            AppWrapperEmpty
+        },
+        mixins:[list],
+        data() {
+            return {
+            };
+        },
+        methods: {
+            goDetail(item){
+                if(item.capitalType == 0){
+                    //订单详情
+                    this.$util.pageTo({url: '/admin/order/detail?id='+item.relateId})
+                }
+            },
+            async init(){
+                let id = this.option.id ? this.option.id : 0
+                const res = await getBalanceChangeList({ page:this.list.page,customId:id })
+                if (this.$util.isEmpty(res.data.list)){
+                    this.completes(res)
+                    return
+                }
+                let currentList = res.data.list
+
+                currentList.forEach(function(item,index,array){
+                    array[index].amount = item.io == 0 ? '-'+parseFloat(item.amount) : '+'+parseFloat(item.amount)
+                });
+
+                res.data.list = currentList
+                this.completes(res)
+            }
+        },
+        async onPullDownRefresh() {
+            this.resetList();
+            await this.init()
+            uni.stopPullDownRefresh();
+        },
+        async onReachBottom() {
+            if (!this.list.finished) {
+                await this.init()
+                uni.stopPullDownRefresh();;
+            } else {
+                uni.stopPullDownRefresh();
+            }
+        }
+    };
+    </script>
+    <style lang="scss" scoped>
+    .balance-table {
+        width: 100%;
+        border-radius: 16upx;
+        overflow: hidden;
+        background: #fff;
+        box-shadow: 0 4upx 24upx rgba(0,0,0,0.06);
+        margin: 20upx 0;
+        .table-row {
+            display: flex;
+            align-items: center;
+            min-height: 72upx;
+            border-bottom: 1px solid #f0f0f0;
+            &.table-header {
+                background: #f5f7fa;
+                font-weight: bold;
+                font-size: 30upx;
+                color: #333;
+            }
+            &.table-row-data {
+                font-size: 26upx;
+                color: #222;
+                transition: background 0.2s;
+                cursor: pointer;
+                &:hover {
+                    background: #f0f9ff;
+                }
+            }
+            &.table-row-remark {
+                background: #fafbfc;
+                color: #989494;
+                font-size: 24upx;
+                .cell-remark {
+                    padding: 16upx 20upx;
+                }
+            }
+            &.table-row-extra {
+                background: #f8f8f8;
+                color: #989494;
+                font-size: 24upx;
+                .cell-extra {
+                    padding: 16upx 20upx;
+                    display: flex;
+                    flex-direction: column;
+                    gap: 2upx;
+                }
+            }
+        }
+        .table-cell {
+            flex: 1;
+            padding: 18upx 8upx 18upx 8upx;
+            &.cell-date {
+                text-align: center;
+                min-width: 100upx;
+                flex: 1.2;
+            }
+            &.cell-staff {
+                text-align: center;
+                min-width: 60upx;
+                flex: 0.8;
+            }
+            &.cell-event {
+                text-align: left;
+                min-width: 200upx;
+                flex: 2.2;
+            }
+            &.cell-amount {
+                text-align: right;
+                min-width: 100upx;
+                color: #2d8cf0;
+                font-weight: 500;
+                flex: 1;
+            }
+            &.cell-balance {
+                text-align: right;
+                min-width: 100upx;
+                color: #2d8cf0;
+                font-weight: 500;
+                padding-right: 32upx;
+                flex: 1;
+            }
+        }
+    }
+    </style>

+ 15 - 323
mallApp/src/pages/home/category.vue

@@ -214,33 +214,6 @@ export default {
     padding: 0 15upx;
     box-sizing: border-box;
     background: linear-gradient(to bottom,#3385FF, #fff);
-    .nav{
-      position:absolute;
-      top:148upx;
-      .selected{
-        width:auto;
-        height:60upx;
-        line-height:60upx;
-        display:inline-block;
-        font-weight:bold;
-        font-size:38upx;
-        border-bottom:1upx solid red;
-        margin-left:200upx;
-        text-align:left;
-        color:red;
-      }
-      .not-selected{
-        width:auto;
-        height:60upx;
-        line-height:60upx;
-        display:inline-block;
-        font-weight:bold;
-        font-size:38upx;
-        margin-left:110upx;
-        text-align:left;
-        color:#3a6363;
-      }
-    }
     &>.header_inside{
       position: relative;
       height: 124upx;
@@ -271,58 +244,11 @@ export default {
           width: 580upx;
           overflow: hidden;
           white-space: nowrap;
-		      .level{
-            margin-left:20upx;
-            color:white;
-            background:#6da3f5;
-            border:1px solid #6da3f5;
-            border-radius:50upx;
-            font-size:22upx;
-            padding:6upx 10upx;
-			      position:absolute;
-		      }
-		  .level-common{
-            margin-left:30upx;
-            color:white;
-            background:#76a9f5;
-            border:1px solid #76a9f5;
-            border-radius:50upx;
-            font-size:20upx;
-            padding:5upx 10upx;
-			position:absolute;
-		  }
         }
-        &>.shop_intro{
-          margin-top: 15upx;
-          font-size: 26upx;
-          font-weight: 400;
-          color: #666666;
-        }
-      }
-      .hbInfo{
-        font-size:20upx;
-		position: absolute;
-        right:15upx;
-		top: 120upx;
-		color: #3385FF;
       }
-	  .hbImg{
-		width:120upx;
-		height:120upx;
-		position: absolute;
-        right:0;
-		top: 10upx;
-		background: white;
-	  }
     }
   }
 
-  .fadeOut{
-    height: 0;
-    overflow: hidden;
-    animation-name: fadeOutFrames;
-    animation-duration:.3s;
-  }
   .fadeIn{
     height:180upx;
     overflow: hidden;
@@ -406,12 +332,14 @@ page {
       .goods-det {
         padding-top: 18upx;
         font-size: 28upx;
-        .goods-name {
-          margin-bottom: 10upx;
-        }
-        .goods-sales {
-          color: $fontColor3;
-          font-size: 24upx;
+        .goods-det-top {
+          .goods-name {
+            margin-bottom: 10upx;
+          }
+          .goods-sales {
+            color: $fontColor3;
+            font-size: 24upx;
+          }
         }
         .goods-price {
           margin-top: 50upx;
@@ -501,251 +429,15 @@ page {
 	}
 }
 
-@keyframes material-bounce {
-	0%, 20%, 50%, 80%, 100% {
+@keyframes fadeInFrames {
+	0% {
+		opacity: 0;
 		transform: translateY(0);
+		height: 0;
 	}
-	40% {
-		transform: translateY(-4upx);
-	}
-	60% {
-		transform: translateY(-2upx);
-	}
-}
-
-@keyframes leaf-sway {
-	0%, 100% {
-		transform: rotate(0deg);
-	}
-	25% {
-		transform: rotate(5deg);
-	}
-	75% {
-		transform: rotate(-5deg);
-	}
-}
-
-/* 
-=== 树枝枝条风格的设计方案 ===
-
-方案A:简洁树枝束(当前应用)
-- 7根棕色树枝,长短不一
-- 6个绿色小叶子装饰
-- 底部"20支"白色文字
-
-方案B:捆扎枝条束
-如需使用此方案,请将.material-icon-css样式替换为:
-
-.material-icon-css {
-	width: 32upx;
-	height: 24upx;
-	margin-right: 8upx;
-	position: relative;
-	animation: material-bounce 1.8s infinite;
-
-	&::before {
-		content: '';
-		position: absolute;
-		width: 1upx;
-		height: 16upx;
-		background: #795548;
-		left: 16upx;
-		top: 2upx;
-		border-radius: 1upx;
-		box-shadow: 
-			-8upx 0upx 0 1upx #795548,
-			-4upx 1upx 0 0upx #795548,
-			4upx -1upx 0 0upx #795548,
-			8upx 1upx 0 1upx #795548,
-			-12upx 2upx 0 0upx #795548,
-			12upx 0upx 0 0upx #795548;
-	}
-
-	&::after {
-		content: '';
-		position: absolute;
-		width: 24upx;
-		height: 2upx;
-		background: #8bc34a;
-		bottom: 6upx;
-		left: 4upx;
-		border-radius: 1upx;
-		box-shadow: 
-			0 -10upx 0 0 #8bc34a;
-	}
-}
-
-方案C:自然枝条+数字标签
-.material-icon-css {
-	width: 34upx;
-	height: 24upx;
-	margin-right: 8upx;
-	position: relative;
-	animation: material-bounce 1.8s infinite;
-
-	&::before {
-		content: '';
-		position: absolute;
-		width: 2upx;
-		height: 14upx;
-		background: #6d4c41;
-		left: 16upx;
-		top: 6upx;
-		border-radius: 1upx 1upx 0 0;
-		box-shadow: 
-			-6upx -2upx 0 -1upx #6d4c41,
-			-3upx 1upx 0 -1upx #6d4c41,
-			3upx -1upx 0 -1upx #6d4c41,
-			6upx 0upx 0 -1upx #6d4c41,
-			-9upx 1upx 0 -1upx #6d4c41;
-	}
-
-	&::after {
-		content: '20';
-		position: absolute;
-		right: 0;
-		top: 2upx;
-		color: #fff;
-		font-size: 14upx;
-		font-weight: bold;
-		text-shadow: 0 1upx 2upx rgba(0,0,0,0.3);
-	}
-}
-
-方案D:细密枝条+叶片
-.material-icon-css {
-	width: 28upx;
-	height: 24upx;
-	margin-right: 8upx;
-	position: relative;
-	animation: material-bounce 1.8s infinite;
-
-	&::before {
-		content: '';
-		position: absolute;
-		width: 1upx;
-		height: 20upx;
-		background: #8d6e63;
-		left: 14upx;
-		top: 2upx;
-		border-radius: 1upx;
-		box-shadow: 
-			-2upx 0upx 0 0 #8d6e63,
-			-4upx 1upx 0 0 #8d6e63,
-			-6upx -1upx 0 0 #8d6e63,
-			2upx 1upx 0 0 #8d6e63,
-			4upx -1upx 0 0 #8d6e63,
-			6upx 0upx 0 0 #8d6e63,
-			-8upx 2upx 0 0 #8d6e63,
-			8upx 1upx 0 0 #8d6e63;
-	}
-
-	&::after {
-		content: '';
-		position: absolute;
-		width: 2upx;
-		height: 3upx;
-		background: #66bb6a;
-		border-radius: 50%;
-		left: 13upx;
-		top: 4upx;
-		box-shadow: 
-			-3upx 2upx 0 0 #66bb6a,
-			3upx 1upx 0 0 #66bb6a,
-			-5upx 4upx 0 0 #66bb6a,
-			5upx 3upx 0 0 #66bb6a,
-			0upx 14upx 0 -1upx #fff,
-			-12upx 16upx 0 -1upx #fff;
+	100% {
+		opacity: 1;
+		height: 180upx;
 	}
 }
-*/
-
-/* 
-=== 🌿叶子装饰风格的设计方案 ===
-
-方案A:多片叶子装饰(当前应用)
-- 7根棕色树枝
-- 6片绿色叶子分布在树枝间
-- 叶子有轻微旋转角度,更自然
-
-方案B:三叶草风格
-如需使用此方案,请将.material-icon-css的&::after部分替换为:
-
-&::after {
-	content: '';
-	position: absolute;
-	width: 3upx;
-	height: 3upx;
-	background: #4caf50;
-	border-radius: 50%;
-	left: 24upx;
-	top: 2upx;
-	box-shadow: 
-		-2upx 0upx 0 0 #4caf50,
-		-1upx -2upx 0 0 #4caf50,
-		-8upx 3upx 0 0 #4caf50,
-		-10upx 3upx 0 0 #4caf50,
-		-9upx 1upx 0 0 #4caf50,
-		-16upx 6upx 0 0 #4caf50,
-		-18upx 6upx 0 0 #4caf50,
-		-17upx 4upx 0 0 #4caf50;
-}
-
-方案C:藤蔓叶片风格
-&::after {
-	content: '';
-	position: absolute;
-	width: 2upx;
-	height: 6upx;
-	background: #66bb6a;
-	border-radius: 2upx 6upx 6upx 2upx;
-	left: 26upx;
-	top: 1upx;
-	transform: rotate(20deg);
-	box-shadow: 
-		-6upx 2upx 0 0 #66bb6a,
-		-12upx 4upx 0 0 #66bb6a,
-		-18upx 6upx 0 0 #66bb6a,
-		-4upx 8upx 0 -1upx #66bb6a,
-		-10upx 10upx 0 -1upx #66bb6a,
-		-16upx 12upx 0 -1upx #66bb6a;
-}
-
-方案D:散落叶子效果
-&::after {
-	content: '';
-	position: absolute;
-	width: 3upx;
-	height: 5upx;
-	background: #4caf50;
-	border-radius: 0 5upx 5upx 0;
-	left: 22upx;
-	top: 0upx;
-	transform: rotate(-30deg);
-	box-shadow: 
-		-4upx 6upx 0 -1upx #4caf50,
-		-8upx 2upx 0 -1upx #4caf50,
-		-12upx 8upx 0 -1upx #4caf50,
-		-16upx 4upx 0 -1upx #4caf50,
-		-2upx 12upx 0 -1upx #66bb6a,
-		-6upx 14upx 0 -1upx #66bb6a,
-		-10upx 16upx 0 -1upx #66bb6a;
-}
-
-方案E:简约单叶
-&::after {
-	content: '';
-	position: absolute;
-	width: 6upx;
-	height: 10upx;
-	background: #4caf50;
-	border-radius: 0 10upx 10upx 0;
-	left: 22upx;
-	top: 2upx;
-	transform: rotate(-25deg);
-	box-shadow: 
-		-8upx 8upx 0 -2upx #66bb6a,
-		-16upx 6upx 0 -2upx #4caf50;
-}
-*/
 </style>

+ 4 - 37
mallApp/src/pages/home/recent.vue

@@ -51,11 +51,11 @@
                 <view class="show_clear_area flex-row justify-between">
                   <text class="waite_clear_order" style="color:#3385ff;">
                     <text>可用余额 ¥{{ parseFloat(item.balance) }}</text>
+                    <text style="margin-left:30upx;text-decoration: underline;">去充值</text>
                   </text>
                 </view>
               </view>
 
-              <view class="button_recharge flex-col" @click.stop="recharge(item)"><text class="text_13">充值</text></view>
               <view class="button_4 flex-col" @click.stop="bug(item)"><text class="text_13">买花</text></view>
 
               </view>
@@ -435,24 +435,7 @@ export default {
             }
           }
         }
-        .button_recharge {
-          height: 80upx;
-          line-height:80upx;
-          text-align:center;
-          background-color:#3385ff;
-          background-size: 137upx 137upx;
-          width: 130upx;
-          position: absolute;
-          right: 270upx;
-          top: 105upx;
-          border-radius:20upx;
-          z-index: 10;
-          .text_13 {
-            color: rgba(255, 255, 255, 1);
-            font-size: 30upx;
-            font-weight:bold;
-          }
-        }
+
         .button_4 {
           height: 80upx;
           line-height:80upx;
@@ -461,7 +444,7 @@ export default {
           background-size: 137upx 137upx;
           width: 130upx;
           position: absolute;
-          right: 50upx;
+          right: 100upx;
           top: 105upx;
           border-radius:20upx;
           z-index: 10;
@@ -471,23 +454,7 @@ export default {
             font-weight:bold;
           }
         }
-        .button_5 {
-          height: 80upx;
-          line-height:80upx;
-          text-align:center;
-          background-color:#FF2842;
-          background-size: 137upx 137upx;
-          width: 130upx;
-          position: absolute;
-          left: 430upx;
-          top: 90upx;
-          border-radius:20upx;
-          .text_13 {
-            color: rgba(255, 255, 255, 1);
-            font-size: 30upx;
-            font-weight:bold;
-          }
-        }
+
       }
     }
   }

+ 120 - 7
mallApp/src/pages/member/recharge.vue

@@ -18,11 +18,21 @@
 					<view v-if="hdInfo.balance >= 0" class="balance-item positive">
 						<view class="balance-label">账户余额</view>
 						<view class="balance-amount">¥{{ hdInfo.balance?parseFloat(hdInfo.balance).toFixed(2):0.00 }}</view>
+						<view class="action-buttons">
+							<view class="action-btn bill-btn" @click="viewBill">
+								<view class="btn-icon bill-icon"></view>
+								<text class="btn-text">查看已结账单</text>
+							</view>
+							<view class="action-btn detail-btn" @click="viewChange">
+								<view class="btn-icon chart-icon"></view>
+								<text class="btn-text">查看明细</text>
+							</view>
+						</view>
 					</view>
 					
 					<view v-else class="balance-item negative">
 						<view class="debt-info">
-							<view class="debt-label">当前欠账</view>
+							<view class="debt-label">账户欠账</view>
 							<view class="debt-amount">¥{{ hdInfo.balance?Math.abs(parseFloat(hdInfo.balance)).toFixed(2):0.00 }}</view>
 						</view>
 						<view class="action-buttons">
@@ -30,7 +40,7 @@
 								<view class="btn-icon bill-icon"></view>
 								<text class="btn-text">查看账单</text>
 							</view>
-							<view class="action-btn detail-btn" @click="viewDetail">
+							<view class="action-btn detail-btn" @click="viewChange">
 								<view class="btn-icon chart-icon"></view>
 								<text class="btn-text">查看明细</text>
 							</view>
@@ -288,8 +298,8 @@ export default {
 		viewBill() {
 			this.pageTo({ url: '/pages/settle/debt?id='+this.id+'&account='+this.account})
 		},
-		viewDetail() {
-			this.$util.pageTo({url: '/pages/member/detail?id='+this.id+'&salt='+this.salt})
+		viewChange() {
+			this.pageTo({ url: '/pages/balance/chageList?id='+this.id+'&account='+this.account})
 		}
 	}
 }
@@ -413,9 +423,112 @@ export default {
 					}
 					
 					.balance-amount {
-						font-size: 40upx;
+						font-size: 52upx;
 						font-weight: bold;
 						color: #4CAF50;
+						margin-bottom: 20upx;
+					}
+					
+					.action-buttons {
+						display: flex;
+						gap: 16upx;
+						
+						.action-btn {
+							flex: 1;
+							background-color: #fff;
+							border-radius: 8upx;
+							padding: 16upx 12upx;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							box-shadow: 0 2upx 8upx rgba(0, 0, 0, 0.1);
+							transition: all 0.3s ease;
+							
+							&:active {
+								transform: scale(0.95);
+								box-shadow: 0 1upx 4upx rgba(0, 0, 0, 0.15);
+							}
+							
+							.btn-icon {
+								width: 28upx;
+								height: 28upx;
+								margin-right: 8upx;
+								position: relative;
+								
+								&.bill-icon {
+									background-color: #3b82f6;
+									border-radius: 4upx;
+									position: relative;
+									
+									&::before {
+										content: '';
+										position: absolute;
+										top: 6upx;
+										left: 4upx;
+										right: 4upx;
+										height: 2upx;
+										background-color: white;
+										border-radius: 1upx;
+									}
+									
+									&::after {
+										content: '';
+										position: absolute;
+										top: 12upx;
+										left: 4upx;
+										width: 12upx;
+										height: 2upx;
+										background-color: white;
+										border-radius: 1upx;
+									}
+								}
+								
+								&.chart-icon {
+									border: 1upx solid #8b5cf6;
+									border-radius: 3upx;
+									display: flex;
+									align-items: flex-end;
+									justify-content: center;
+									padding: 2upx;
+									
+									&::before {
+										content: '';
+										width: 4upx;
+										height: 10upx;
+										background-color: #8b5cf6;
+										margin-right: 2upx;
+									}
+									
+									&::after {
+										content: '';
+										width: 4upx;
+										height: 16upx;
+										background-color: #8b5cf6;
+									}
+								}
+							}
+							
+							.btn-text {
+								font-size: 26upx;
+								font-weight: 500;
+							}
+							
+							&.bill-btn {
+								border: 2upx solid #3b82f6;
+								
+								.btn-text {
+									color: #3b82f6;
+								}
+							}
+							
+							&.detail-btn {
+								border: 2upx solid #8b5cf6;
+								
+								.btn-text {
+									color: #8b5cf6;
+								}
+							}
+						}
 					}
 				}
 				
@@ -435,9 +548,9 @@ export default {
 						}
 						
 						.debt-amount {
-							font-size: 40upx;
+							font-size: 52upx;
 							font-weight: bold;
-							color: #f56565;
+							color: #db5454;
 						}
 					}