fix: 修改结算管理菜单

This commit is contained in:
lzhizhao 2025-11-03 17:21:35 +08:00
parent 60ecd8015d
commit 02ba78a6a9
3 changed files with 1132 additions and 851 deletions

View File

@ -1,16 +1,16 @@
import { getUUID } from '@/utils'
import { getUUID } from "@/utils";
export default {
msg: 'success',
msg: "success",
menuList: [
{
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '账号权限管理',
url: 'operation-management/permission',
perms: 'operation-management:permission',
name: "账号权限管理",
url: "operation-management/permission",
perms: "operation-management:permission",
type: 0,
elIcon: 'el-icon-key',
elIcon: "el-icon-key",
orderNum: 0,
open: null,
list: [
@ -18,11 +18,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '子经营者管理',
url: 'operation-management/permission/sub-operator/index',
perms: 'operation-management:permission:sub-operator:index',
name: "子经营者管理",
url: "operation-management/permission/sub-operator/index",
perms: "operation-management:permission:sub-operator:index",
type: 1,
elIcon: 'el-icon-user',
elIcon: "el-icon-user",
orderNum: 0,
open: null,
list: []
@ -31,11 +31,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '商户账号管理',
url: 'operation-management/permission/merchant-account/index',
perms: 'operation-management:permission:merchant-account:index',
name: "商户账号管理",
url: "operation-management/permission/merchant-account/index",
perms: "operation-management:permission:merchant-account:index",
type: 1,
elIcon: 'el-icon-s-custom',
elIcon: "el-icon-s-custom",
orderNum: 0,
open: null,
list: []
@ -46,11 +46,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '订单管理',
url: 'operation-management/order/index',
perms: 'operation-management:order:index',
name: "订单管理",
url: "operation-management/order/index",
perms: "operation-management:order:index",
type: 1,
elIcon: 'el-icon-document',
elIcon: "el-icon-document",
orderNum: 0,
open: null,
list: []
@ -59,11 +59,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '商品管理',
url: 'operation-management/commodity/index',
perms: 'operation-management:commodity:index',
name: "商品管理",
url: "operation-management/commodity/index",
perms: "operation-management:commodity:index",
type: 1,
elIcon: 'el-icon-goods',
elIcon: "el-icon-goods",
orderNum: 0,
open: null,
list: []
@ -72,11 +72,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '数据分析',
url: 'datacenter',
perms: 'datacenter',
name: "数据分析",
url: "datacenter",
perms: "datacenter",
type: 0,
elIcon: 'el-icon-s-data',
elIcon: "el-icon-s-data",
orderNum: 0,
open: null,
list: [
@ -84,11 +84,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '订单分析',
url: 'datacenter/order-analysis/index',
perms: 'datacenter:order-analysis:index',
name: "订单分析",
url: "datacenter/order-analysis/index",
perms: "datacenter:order-analysis:index",
type: 1,
elIcon: 'el-icon-shopping-cart-full',
elIcon: "el-icon-shopping-cart-full",
orderNum: 0,
open: null,
list: []
@ -97,11 +97,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '商品分析',
url: 'datacenter/product-analysis/index',
perms: 'datacenter:product-analysis:index',
name: "商品分析",
url: "datacenter/product-analysis/index",
perms: "datacenter:product-analysis:index",
type: 1,
elIcon: 'el-icon-data-analysis',
elIcon: "el-icon-data-analysis",
orderNum: 0,
open: null,
list: []
@ -110,11 +110,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '客户分析',
url: 'datacenter/customer-analysis/index',
perms: 'datacenter:customer-analysis:index',
name: "客户分析",
url: "datacenter/customer-analysis/index",
perms: "datacenter:customer-analysis:index",
type: 1,
elIcon: 'el-icon-user',
elIcon: "el-icon-user",
orderNum: 0,
open: null,
list: []
@ -125,11 +125,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '内容管理',
url: 'content-management',
perms: 'content-management',
name: "内容管理",
url: "content-management",
perms: "content-management",
type: 0,
elIcon: 'el-icon-edit',
elIcon: "el-icon-edit",
orderNum: 0,
open: null,
list: [
@ -137,11 +137,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '公告管理',
url: 'operation-management/notice/index',
perms: 'operation-management:notice:index',
name: "公告管理",
url: "operation-management/notice/index",
perms: "operation-management:notice:index",
type: 1,
elIcon: 'el-icon-bell',
elIcon: "el-icon-bell",
orderNum: 0,
open: null,
list: []
@ -150,11 +150,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '购物须知管理',
url: 'operation-management/paynotice/index',
perms: 'operation-management:paynotice:index',
name: "购物须知管理",
url: "operation-management/paynotice/index",
perms: "operation-management:paynotice:index",
type: 1,
elIcon: 'el-icon-warning',
elIcon: "el-icon-warning",
orderNum: 0,
open: null,
list: []
@ -163,11 +163,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '轮播图管理',
url: 'operation-management/banner/index',
perms: 'operation-management:banner:index',
name: "轮播图管理",
url: "operation-management/banner/index",
perms: "operation-management:banner:index",
type: 1,
elIcon: 'el-icon-picture',
elIcon: "el-icon-picture",
orderNum: 0,
open: null,
list: []
@ -204,11 +204,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '菜市场管理',
url: 'market',
perms: 'market',
name: "菜市场管理",
url: "market",
perms: "market",
type: 0,
elIcon: 'el-icon-office-building',
elIcon: "el-icon-office-building",
orderNum: 0,
open: null,
list: [
@ -216,11 +216,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '摊位列表',
url: 'market/stall/index',
perms: 'market:stall:index',
name: "摊位列表",
url: "market/stall/index",
perms: "market:stall:index",
type: 1,
elIcon: 'el-icon-s-shop',
elIcon: "el-icon-s-shop",
orderNum: 0,
open: null,
list: []
@ -229,11 +229,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '专员列表',
url: 'market/assistant/index',
perms: 'market:assistant:index',
name: "专员列表",
url: "market/assistant/index",
perms: "market:assistant:index",
type: 1,
elIcon: 'el-icon-user-solid',
elIcon: "el-icon-user-solid",
orderNum: 0,
open: null,
list: []
@ -242,11 +242,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '市场基础配置',
url: 'market/config/index',
perms: 'market:config:index',
name: "市场基础配置",
url: "market/config/index",
perms: "market:config:index",
type: 1,
elIcon: 'el-icon-setting',
elIcon: "el-icon-setting",
orderNum: 0,
open: null,
list: []
@ -255,11 +255,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '同城运费配置',
url: 'market/city/index',
perms: 'market:city:index',
name: "同城运费配置",
url: "market/city/index",
perms: "market:city:index",
type: 1,
elIcon: 'el-icon-map-location',
elIcon: "el-icon-map-location",
orderNum: 0,
open: null,
list: []
@ -294,11 +294,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '运营管理',
url: 'operation-management',
perms: 'operation-management',
name: "运营管理",
url: "operation-management",
perms: "operation-management",
type: 0,
elIcon: 'el-icon-s-shop',
elIcon: "el-icon-s-shop",
orderNum: 0,
open: null,
list: [
@ -306,11 +306,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '市场列表',
url: 'operation-management/market-list/index',
perms: 'operation-management:market-list:index',
name: "市场列表",
url: "operation-management/market-list/index",
perms: "operation-management:market-list:index",
type: 1,
elIcon: 'el-icon-office-building',
elIcon: "el-icon-office-building",
orderNum: 0,
open: null,
list: []
@ -319,11 +319,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '店铺列表',
url: 'operation-management/shop-list/index',
perms: 'operation-management:shop-list:index',
name: "店铺列表",
url: "operation-management/shop-list/index",
perms: "operation-management:shop-list:index",
type: 1,
elIcon: 'el-icon-s-shop',
elIcon: "el-icon-s-shop",
orderNum: 0,
open: null,
list: []
@ -332,11 +332,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '品牌店铺',
url: 'operation-management/brand-store/index',
perms: 'operation-management:brand-store:index',
name: "品牌店铺",
url: "operation-management/brand-store/index",
perms: "operation-management:brand-store:index",
type: 1,
elIcon: 'el-icon-medal',
elIcon: "el-icon-medal",
orderNum: 0,
open: null,
list: []
@ -345,11 +345,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '品牌市场',
url: 'operation-management/brand-market/index',
perms: 'operation-management:brand-market:index',
name: "品牌市场",
url: "operation-management/brand-market/index",
perms: "operation-management:brand-market:index",
type: 1,
elIcon: 'el-icon-medal-1',
elIcon: "el-icon-medal-1",
orderNum: 0,
open: null,
list: []
@ -358,11 +358,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '分销商列表',
url: 'operation-management/distributor/index',
perms: 'operation-management:distributor:index',
name: "分销商列表",
url: "operation-management/distributor/index",
perms: "operation-management:distributor:index",
type: 1,
elIcon: 'el-icon-connection',
elIcon: "el-icon-connection",
orderNum: 0,
open: null,
list: []
@ -371,11 +371,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '总订单管理',
url: 'operation-management/total-order/index',
perms: 'operation-management:total-order:index',
name: "总订单管理",
url: "operation-management/total-order/index",
perms: "operation-management:total-order:index",
type: 1,
elIcon: 'el-icon-tickets',
elIcon: "el-icon-tickets",
orderNum: 0,
open: null,
list: [],
@ -385,11 +385,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '品牌订单管理',
url: 'operation-management/brand-order/index',
perms: 'operation-management:brand-order:index',
name: "品牌订单管理",
url: "operation-management/brand-order/index",
perms: "operation-management:brand-order:index",
type: 1,
elIcon: 'el-icon-document',
elIcon: "el-icon-document",
orderNum: 0,
open: null,
list: []
@ -427,11 +427,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '银行卡管理',
url: 'bank-card/index',
perms: 'bank-card:index',
name: "银行卡管理",
url: "bank-card/index",
perms: "bank-card:index",
type: 0,
elIcon: 'el-icon-bank-card',
elIcon: "el-icon-bank-card",
orderNum: 0,
open: null,
list: [],
@ -441,11 +441,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '品牌管理',
url: 'brand',
perms: 'brand',
name: "品牌管理",
url: "brand",
perms: "brand",
type: 0,
elIcon: 'el-icon-medal',
elIcon: "el-icon-medal",
orderNum: 0,
open: null,
list: [
@ -453,11 +453,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '品牌管理',
url: 'brand/config/index',
perms: 'brand:config:index',
name: "品牌管理",
url: "brand/config/index",
perms: "brand:config:index",
type: 1,
elIcon: 'el-icon-medal',
elIcon: "el-icon-medal",
orderNum: 0,
open: null,
list: []
@ -468,11 +468,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '结算管理',
url: 'settle',
perms: 'settle',
name: "结算管理",
url: "settle",
perms: "settle",
type: 0,
elIcon: 'el-icon-office-building',
elIcon: "el-icon-office-building",
orderNum: 0,
open: null,
list: [
@ -480,11 +480,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '待结算管理',
url: 'settle/unsettle',
perms: 'settle:unsettle',
name: "结算明细管理",
url: "settle/unsettle",
perms: "settle:unsettle",
type: 1,
elIcon: 'el-icon-document-checked',
elIcon: "el-icon-document-checked",
orderNum: 0,
open: null,
list: []
@ -493,24 +493,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '金额管理',
url: 'settle/money',
perms: 'settle:money',
name: "金额查看",
url: "settle/money",
perms: "settle:money",
type: 1,
elIcon: 'el-icon-coin',
orderNum: 0,
open: null,
list: []
},
{
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '钱包管理',
url: 'settle/wallet',
perms: 'settle:wallet',
type: 1,
elIcon: 'el-icon-wallet',
elIcon: "el-icon-coin",
orderNum: 0,
open: null,
list: []
@ -521,11 +508,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '优惠卷营销工具管理',
url: 'coupon/index',
perms: 'coupon:index',
name: "优惠卷营销工具管理",
url: "coupon/index",
perms: "coupon:index",
type: 0,
elIcon: 'el-icon-present',
elIcon: "el-icon-present",
orderNum: 0,
open: null,
list: []
@ -534,11 +521,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '预售营销工具管理',
url: 'presale',
perms: 'presale',
name: "预售营销工具管理",
url: "presale",
perms: "presale",
type: 0,
elIcon: 'el-icon-alarm-clock',
elIcon: "el-icon-alarm-clock",
orderNum: 0,
open: null,
list: [
@ -546,11 +533,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '预售商品',
url: 'presale/products/index',
perms: 'presale:products:index',
name: "预售商品",
url: "presale/products/index",
perms: "presale:products:index",
type: 1,
elIcon: 'el-icon-goods',
elIcon: "el-icon-goods",
orderNum: 0,
open: null,
list: []
@ -559,11 +546,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '预售订单',
url: 'presale/order/index',
perms: 'presale:order:index',
name: "预售订单",
url: "presale/order/index",
perms: "presale:order:index",
type: 1,
elIcon: 'el-icon-document',
elIcon: "el-icon-document",
orderNum: 0,
open: null,
list: []
@ -574,11 +561,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '等级明细',
url: 'marketing-level/detail',
perms: 'marketing-level:detail',
name: "等级明细",
url: "marketing-level/detail",
perms: "marketing-level:detail",
type: 1,
elIcon: 'el-icon-user',
elIcon: "el-icon-user",
orderNum: 0,
open: null,
list: [],
@ -588,11 +575,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '会员营销工具管理',
url: 'marketing',
perms: 'marketing',
name: "会员营销工具管理",
url: "marketing",
perms: "marketing",
type: 0,
elIcon: 'el-icon-user',
elIcon: "el-icon-user",
orderNum: 0,
open: null,
list: [
@ -600,11 +587,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '等级设置',
url: 'marketing/level/index',
perms: 'marketing:level:index',
name: "等级设置",
url: "marketing/level/index",
perms: "marketing:level:index",
type: 1,
elIcon: 'el-icon-user',
elIcon: "el-icon-user",
orderNum: 0,
open: null,
list: []
@ -614,11 +601,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '会员列表',
url: 'marketing/user/index',
perms: 'marketing:user:index',
name: "会员列表",
url: "marketing/user/index",
perms: "marketing:user:index",
type: 1,
elIcon: 'el-icon-data-analysis',
elIcon: "el-icon-data-analysis",
orderNum: 0,
open: null,
list: []
@ -640,11 +627,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '积分商品',
url: 'marketing/points-mall/index',
perms: 'marketing:points-mall:index',
name: "积分商品",
url: "marketing/points-mall/index",
perms: "marketing:points-mall:index",
type: 1,
elIcon: 'el-icon-goods',
elIcon: "el-icon-goods",
orderNum: 0,
open: null,
list: []
@ -653,11 +640,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '积分订单',
url: 'marketing/points-order/index',
perms: 'marketing:points-order:index',
name: "积分订单",
url: "marketing/points-order/index",
perms: "marketing:points-order:index",
type: 1,
elIcon: 'el-icon-document',
elIcon: "el-icon-document",
orderNum: 0,
open: null,
list: []
@ -668,11 +655,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '代理商',
url: 'agent',
perms: 'agent',
name: "代理商",
url: "agent",
perms: "agent",
type: 0,
elIcon: 'el-icon-tickets',
elIcon: "el-icon-tickets",
orderNum: 0,
open: null,
list: [
@ -680,11 +667,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '数据面板',
url: 'agent/data-panel/index',
perms: 'agent:data-panel:index',
name: "数据面板",
url: "agent/data-panel/index",
perms: "agent:data-panel:index",
type: 1,
elIcon: 'el-icon-s-data',
elIcon: "el-icon-s-data",
orderNum: 0,
open: null,
list: []
@ -693,11 +680,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '品牌管理',
url: 'agent/brand/index',
perms: 'agent:brand:index',
name: "品牌管理",
url: "agent/brand/index",
perms: "agent:brand:index",
type: 1,
elIcon: 'el-icon-medal',
elIcon: "el-icon-medal",
orderNum: 0,
open: null,
list: []
@ -706,11 +693,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '报表',
url: 'agent/report-form/index',
perms: 'agent:report-form:index',
name: "报表",
url: "agent/report-form/index",
perms: "agent:report-form:index",
type: 1,
elIcon: 'el-icon-data-analysis',
elIcon: "el-icon-data-analysis",
orderNum: 0,
open: null,
list: []
@ -719,11 +706,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '权限管理',
url: 'agent/jurisdiction/index',
perms: 'agent:jurisdiction:index',
name: "权限管理",
url: "agent/jurisdiction/index",
perms: "agent:jurisdiction:index",
type: 1,
elIcon: 'el-icon-key',
elIcon: "el-icon-key",
orderNum: 0,
open: null,
list: []
@ -735,11 +722,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '钱包管理',
url: 'local-course/resources',
perms: 'wallet',
name: "钱包管理",
url: "local-course/resources",
perms: "wallet",
type: 0,
elIcon: 'el-icon-wallet',
elIcon: "el-icon-wallet",
orderNum: 0,
open: null,
list: [
@ -747,11 +734,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '我的钱包',
url: 'wallet/index',
perms: 'wallet:index',
name: "我的钱包",
url: "wallet/index",
perms: "wallet:index",
type: 1,
elIcon: 'el-icon-wallet',
elIcon: "el-icon-wallet",
orderNum: 0,
open: null,
list: []
@ -762,11 +749,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '运费管理',
url: 'ogistics-fare',
perms: 'ogistics-fare',
name: "运费管理",
url: "ogistics-fare",
perms: "ogistics-fare",
type: 0,
elIcon: 'el-icon-truck',
elIcon: "el-icon-truck",
orderNum: 0,
open: null,
list: [
@ -774,11 +761,11 @@ export default {
menuId: getUUID(),
parentId: 0,
parentName: null,
name: '运费模板',
url: 'logistics-fare/logistics-template/index',
perms: 'logistics-fare:logistics-template:index',
name: "运费模板",
url: "logistics-fare/logistics-template/index",
perms: "logistics-fare:logistics-template:index",
type: 1,
elIcon: 'el-icon-document-copy',
elIcon: "el-icon-document-copy",
orderNum: 0,
open: null,
list: []
@ -842,4 +829,4 @@ export default {
],
code: 0,
permissions: []
}
};

View File

@ -42,18 +42,17 @@
<!-- 搜索区域 -->
<div class="search-section">
<el-form
ref="incomeSearchForm"
:model="incomeSearchForm"
:inline="true"
ref="incomeSearchForm"
class="search-form"
size="small"
>
<el-form-item label="订单ID" prop="orderId">
<el-form-item label="结算订单ID" prop="orderId">
<el-input
v-model="incomeSearchForm.orderId"
placeholder="请输入订单ID"
placeholder="请输入结算订单ID"
clearable
@clear="handleIncomeSearchClear"
style="width: 200px"
/>
</el-form-item>
@ -71,16 +70,16 @@
<el-form-item>
<el-button
type="primary"
@click="handleIncomeSearch"
icon="el-icon-search"
size="small"
@click="handleIncomeSearch"
>
搜索
</el-button>
<el-button
@click="handleIncomeReset"
icon="el-icon-refresh"
size="small"
@click="handleIncomeReset"
>
重置
</el-button>
@ -91,14 +90,14 @@
<!-- 表格区域 -->
<el-table
ref="incomeTable"
v-loading="incomeLoading"
:data="incomeDataList"
border
style="width: 100%"
v-loading="incomeLoading"
>
<el-table-column
type="index"
width="60"
width="70"
align="center"
label="序号"
/>
@ -106,16 +105,17 @@
prop="orderId"
label="订单ID"
align="center"
min-width="150"
width="180"
show-overflow-tooltip
/>
<el-table-column
prop="orderAmount"
label="订单金额"
align="center"
width="130"
width="140"
>
<template slot-scope="scope">
<span style="font-weight: 600">
<span style="font-weight: 600; font-size: 14px">
¥{{ scope.row.orderAmount.toFixed(2) }}
</span>
</template>
@ -124,16 +124,16 @@
prop="orderTime"
label="订单时间"
align="center"
min-width="160"
width="170"
/>
<el-table-column
prop="incomeAmount"
label="收入金额"
align="center"
width="130"
width="140"
>
<template slot-scope="scope">
<span style="color: #52c41a; font-weight: 600">
<span style="color: #52c41a; font-weight: 600; font-size: 14px">
+ ¥{{ scope.row.incomeAmount.toFixed(2) }}
</span>
</template>
@ -142,14 +142,14 @@
<!-- 分页 -->
<el-pagination
@size-change="handleIncomeSizeChange"
@current-change="handleIncomeCurrentChange"
:current-page="incomePageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]"
:page-size="incomePageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="incomePageInfo.total"
class="pagination-container"
@size-change="handleIncomeSizeChange"
@current-change="handleIncomeCurrentChange"
/>
</el-tab-pane>
@ -158,9 +158,9 @@
<!-- 搜索区域 -->
<div class="search-section">
<el-form
ref="expenseSearchForm"
:model="expenseSearchForm"
:inline="true"
ref="expenseSearchForm"
class="search-form"
size="small"
>
@ -169,7 +169,6 @@
v-model="expenseSearchForm.settlementId"
placeholder="请输入结算明细ID"
clearable
@clear="handleExpenseSearchClear"
style="width: 180px"
/>
</el-form-item>
@ -178,7 +177,6 @@
v-model="expenseSearchForm.clearingId"
placeholder="请输入清算明细ID"
clearable
@clear="handleExpenseSearchClear"
style="width: 180px"
/>
</el-form-item>
@ -187,7 +185,6 @@
v-model="expenseSearchForm.targetId"
placeholder="请输入支出对象ID"
clearable
@clear="handleExpenseSearchClear"
style="width: 180px"
/>
</el-form-item>
@ -205,34 +202,33 @@
<el-form-item>
<el-button
type="primary"
@click="handleExpenseSearch"
icon="el-icon-search"
size="small"
@click="handleExpenseSearch"
>
搜索
</el-button>
<el-button
@click="handleExpenseReset"
icon="el-icon-refresh"
size="small"
@click="handleExpenseReset"
>
重置
</el-button>
</el-form-item>
</el-form>
</div>
<!-- 表格区域 -->
<el-table
ref="expenseTable"
v-loading="expenseLoading"
:data="expenseDataList"
border
style="width: 100%"
v-loading="expenseLoading"
>
<el-table-column
type="index"
width="60"
width="70"
align="center"
label="序号"
/>
@ -240,23 +236,32 @@
prop="settlementId"
label="结算明细ID"
align="center"
min-width="140"
width="160"
show-overflow-tooltip
/>
<el-table-column
prop="clearingId"
label="清算明细ID"
align="center"
min-width="140"
width="160"
show-overflow-tooltip
/>
<el-table-column
prop="orderNumber"
label="结算订单号"
align="center"
width="160"
show-overflow-tooltip
/>
<el-table-column
prop="settlementAmount"
label="结算金额"
align="center"
width="130"
width="140"
>
<template slot-scope="scope">
<span style="color: #ff4d4f; font-weight: 600">
- ¥{{ scope.row.settlementAmount.toFixed(2) }}
<span style="color: #ff4d4f; font-weight: 600; font-size: 14px">
¥{{ scope.row.settlementAmount.toFixed(2) }}
</span>
</template>
</el-table-column>
@ -264,437 +269,398 @@
prop="settlementTime"
label="结算时间"
align="center"
min-width="160"
width="170"
/>
<el-table-column
prop="targetId"
label="支出对象ID"
align="center"
min-width="120"
width="140"
show-overflow-tooltip
/>
<el-table-column
prop="targetRole"
label="支出对象角色"
align="center"
width="120"
width="130"
/>
<el-table-column
prop="expenseTime"
label="支出时间"
align="center"
min-width="160"
width="170"
/>
</el-table>
<!-- 分页 -->
<el-pagination
@size-change="handleExpenseSizeChange"
@current-change="handleExpenseCurrentChange"
:current-page="expensePageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]"
:page-size="expensePageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="expensePageInfo.total"
class="pagination-container"
@size-change="handleExpenseSizeChange"
@current-change="handleExpenseCurrentChange"
/>
</el-tab-pane>
<!-- 提取到钱包Tab -->
<el-tab-pane label="提取到钱包" name="extract">
<!-- 操作区域 -->
<div class="action-section">
<el-button type="primary" size="medium" @click="openExtractDialog">
提取可用金额到钱包余额
</el-button>
</div>
<!-- 表格区域 -->
<el-table
ref="extractTable"
v-loading="extractLoading"
:data="extractDataList"
border
style="width: 100%"
>
<el-table-column
type="index"
width="70"
align="center"
label="序号"
/>
<el-table-column
prop="amount"
label="操作金额"
align="center"
width="150"
>
<template slot-scope="scope">
<span style="color: #52c41a; font-weight: 600; font-size: 14px">
¥{{ scope.row.amount.toFixed(2) }}
</span>
</template>
</el-table-column>
<el-table-column
prop="afterAvailableAmount"
label="提取后可用金额余额"
align="center"
width="190"
>
<template slot-scope="scope">
<span style="font-weight: 600; font-size: 14px">
¥{{ scope.row.afterAvailableAmount.toFixed(2) }}
</span>
</template>
</el-table-column>
<el-table-column
prop="time"
label="操作时间"
align="center"
width="170"
/>
</el-table>
<!-- 分页 -->
<el-pagination
:current-page="extractPageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]"
:page-size="extractPageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="extractPageInfo.total"
class="pagination-container"
@size-change="handleExtractSizeChange"
@current-change="handleExtractCurrentChange"
/>
</el-tab-pane>
</el-tabs>
</el-card>
<!-- 提取到钱包弹窗 -->
<el-dialog
title="提取可用金额到钱包余额"
:visible.sync="extractDialogVisible"
width="500px"
:close-on-click-modal="false"
>
<el-form
ref="extractForm"
:model="extractForm"
:rules="extractRules"
label-width="100px"
>
<el-form-item label="提取金额" prop="amount">
<el-input-number
v-model="extractForm.amount"
:min="0.01"
:max="statsInfo.availableAmount"
:precision="2"
:step="0.01"
controls-position="right"
style="width: 100%"
placeholder="请输入提取金额"
/>
<div style="margin-top: 8px; font-size: 12px; color: #999">
当前可用金额¥{{ statsInfo.availableAmount.toFixed(2) }}
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="extractDialogVisible = false">取消</el-button>
<el-button
type="primary"
:loading="extractSubmitLoading"
@click="handleExtractSubmit"
>
确定
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "MoneyManagement",
name: 'MoneyManagement',
data() {
const validateExtractAmount = (rule, value, callback) => {
if (!value || value <= 0) {
callback(new Error('请输入有效的金额'))
} else if (value > this.statsInfo.availableAmount) {
callback(new Error('可用金额不足'))
} else {
callback()
}
}
return {
//
activeTab: "income",
//
activeTab: 'income',
statsInfo: {
frozenAmount: 5280.0,
availableAmount: 23450.5,
walletBalance: 28730.5
},
//
incomeSearchForm: {
orderId: "",
orderId: '',
dateRange: null
},
//
incomeDataList: [],
//
incomePageInfo: {
pageNumber: 1,
pageSize: 10,
total: 0
},
//
incomeLoading: false,
//
expenseSearchForm: {
settlementId: "",
clearingId: "",
targetId: "",
settlementId: '',
clearingId: '',
targetId: '',
dateRange: null
},
//
expenseDataList: [],
//
expensePageInfo: {
pageNumber: 1,
pageSize: 10,
total: 0
},
//
expenseLoading: false
};
expenseLoading: false,
extractDataList: [],
extractPageInfo: {
pageNumber: 1,
pageSize: 10,
total: 0
},
extractLoading: false,
extractDialogVisible: false,
extractSubmitLoading: false,
extractForm: {
amount: null
},
extractRules: {
amount: [
{ required: true, message: '请输入提取金额', trigger: 'blur' },
{ validator: validateExtractAmount, trigger: 'blur' }
]
}
}
},
computed: {
marketId() {
return this.$store.state.userData.marketId
}
},
created() {
this.fetchStatsInfo();
this.fetchIncomeData();
this.fetchStatsInfo()
this.fetchIncomeData()
},
methods: {
//
async fetchStatsInfo() {
try {
// TODO: API
// const res = await this.$api.mer_admin.getMoneyStats();
// this.statsInfo = res.data.data;
//
this.statsInfo = {
frozenAmount: 5280.0,
availableAmount: 23450.5,
walletBalance: 28730.5
};
}
} catch (error) {
console.error("获取统计信息失败:", error);
this.$message.error("获取统计信息失败");
console.error('获取统计信息失败:', error)
}
},
//
handleTabClick(tab) {
if (tab.name === "income") {
this.fetchIncomeData();
} else if (tab.name === "expense") {
this.fetchExpenseData();
if (tab.name === 'income') {
this.fetchIncomeData()
} else if (tab.name === 'expense') {
this.fetchExpenseData()
} else if (tab.name === 'extract') {
this.fetchExtractData()
}
},
// ==================== ====================
//
fetchIncomeData() {
this.incomeLoading = true;
const marketId = this.marketId;
if (!marketId) {
this.$message.error("获取市场ID失败请重新登录");
this.$router.push("/login");
return;
}
const params = {
pageNumber: this.incomePageInfo.pageNumber,
pageSize: this.incomePageInfo.pageSize,
marketId,
...this.buildIncomeSearchParams()
};
// TODO: API
// this.$api.mer_admin
// .getIncomeList(params)
// .then(res => {
// if (res.data && res.data.data) {
// this.incomeDataList = res.data.data.data || [];
// this.incomePageInfo.total = Number(res.data.data.total) || 0;
// }
// })
// .catch(err => {
// console.error(":", err);
// this.$message.error("");
// })
// .finally(() => {
// this.incomeLoading = false;
// });
//
this.incomeLoading = true
setTimeout(() => {
const mockData = [
this.incomeDataList = [
{
orderId: "ORD202501310001",
orderId: 'SET202501310001',
orderAmount: 1280.0,
orderTime: "2025-01-31 10:30:25",
orderTime: '2025-01-31 10:30:25',
incomeAmount: 1280.0
},
{
orderId: "ORD202501310002",
orderAmount: 850.5,
orderTime: "2025-01-31 11:15:42",
incomeAmount: 850.5
},
{
orderId: "ORD202501310003",
orderAmount: 2100.0,
orderTime: "2025-01-31 14:20:18",
incomeAmount: 2100.0
},
{
orderId: "ORD202501300001",
orderAmount: 560.0,
orderTime: "2025-01-30 09:45:33",
incomeAmount: 560.0
},
{
orderId: "ORD202501300002",
orderAmount: 1450.0,
orderTime: "2025-01-30 16:28:56",
incomeAmount: 1450.0
}
];
//
let filteredData = mockData;
const searchParams = this.buildIncomeSearchParams();
if (searchParams.orderId) {
filteredData = filteredData.filter(item =>
item.orderId.includes(searchParams.orderId)
);
}
this.incomeDataList = filteredData;
this.incomePageInfo.total = 127; //
this.incomeLoading = false;
}, 500);
]
this.incomePageInfo.total = 127
this.incomeLoading = false
}, 500)
},
//
buildIncomeSearchParams() {
const params = {};
if (this.incomeSearchForm.orderId) {
params.orderId = this.incomeSearchForm.orderId;
}
if (
this.incomeSearchForm.dateRange &&
this.incomeSearchForm.dateRange.length === 2
) {
params.startDate = this.incomeSearchForm.dateRange[0];
params.endDate = this.incomeSearchForm.dateRange[1];
}
return params;
},
//
handleIncomeSearch() {
this.incomePageInfo.pageNumber = 1;
this.fetchIncomeData();
this.incomePageInfo.pageNumber = 1
this.fetchIncomeData()
},
//
handleIncomeSearchClear() {
this.handleIncomeSearch();
},
//
handleIncomeReset() {
this.incomeSearchForm = {
orderId: "",
dateRange: null
};
this.incomePageInfo.pageNumber = 1;
this.fetchIncomeData();
this.incomeSearchForm = { orderId: '', dateRange: null }
this.incomePageInfo.pageNumber = 1
this.fetchIncomeData()
},
//
handleIncomeSizeChange(val) {
this.incomePageInfo.pageSize = val;
this.incomePageInfo.pageNumber = 1;
this.fetchIncomeData();
this.incomePageInfo.pageSize = val
this.incomePageInfo.pageNumber = 1
this.fetchIncomeData()
},
//
handleIncomeCurrentChange(val) {
this.incomePageInfo.pageNumber = val;
this.fetchIncomeData();
this.incomePageInfo.pageNumber = val
this.fetchIncomeData()
},
// ==================== ====================
//
fetchExpenseData() {
this.expenseLoading = true;
const marketId = this.marketId;
if (!marketId) {
this.$message.error("获取市场ID失败请重新登录");
this.$router.push("/login");
return;
}
const params = {
pageNumber: this.expensePageInfo.pageNumber,
pageSize: this.expensePageInfo.pageSize,
marketId,
...this.buildExpenseSearchParams()
};
// TODO: API
// this.$api.mer_admin
// .getExpenseList(params)
// .then(res => {
// if (res.data && res.data.data) {
// this.expenseDataList = res.data.data.data || [];
// this.expensePageInfo.total = Number(res.data.data.total) || 0;
// }
// })
// .catch(err => {
// console.error(":", err);
// this.$message.error("");
// })
// .finally(() => {
// this.expenseLoading = false;
// });
//
this.expenseLoading = true
setTimeout(() => {
const mockData = [
this.expenseDataList = [
{
settlementId: "SET202501310001",
clearingId: "CLR202501310001",
settlementId: 'SET202501310001',
clearingId: 'CLR202501310001',
orderNumber: 'ORD202501310001',
settlementAmount: 320.0,
settlementTime: "2025-01-31 15:30:20",
targetId: "SUP100256",
targetRole: "供应商",
expenseTime: "2025-01-31 15:30:25"
},
{
settlementId: "SET202501310002",
clearingId: "CLR202501310002",
settlementAmount: 580.5,
settlementTime: "2025-01-31 16:15:35",
targetId: "DRV100128",
targetRole: "配送员",
expenseTime: "2025-01-31 16:15:40"
},
{
settlementId: "SET202501310003",
clearingId: "CLR202501310003",
settlementAmount: 1200.0,
settlementTime: "2025-01-31 17:20:18",
targetId: "SUP100328",
targetRole: "供应商",
expenseTime: "2025-01-31 17:20:22"
},
{
settlementId: "SET202501300001",
clearingId: "CLR202501300001",
settlementAmount: 450.0,
settlementTime: "2025-01-30 10:45:33",
targetId: "PLT100045",
targetRole: "平台",
expenseTime: "2025-01-30 10:45:38"
},
{
settlementId: "SET202501300002",
clearingId: "CLR202501300002",
settlementAmount: 280.0,
settlementTime: "2025-01-30 14:28:56",
targetId: "DRV100089",
targetRole: "配送员",
expenseTime: "2025-01-30 14:29:00"
settlementTime: '2025-01-31 15:30:20',
targetId: 'SUP100256',
targetRole: '供应商',
expenseTime: '2025-01-31 15:30:25'
}
];
//
let filteredData = mockData;
const searchParams = this.buildExpenseSearchParams();
if (searchParams.settlementId) {
filteredData = filteredData.filter(item =>
item.settlementId.includes(searchParams.settlementId)
);
}
if (searchParams.clearingId) {
filteredData = filteredData.filter(item =>
item.clearingId.includes(searchParams.clearingId)
);
}
if (searchParams.targetId) {
filteredData = filteredData.filter(item =>
item.targetId.includes(searchParams.targetId)
);
}
this.expenseDataList = filteredData;
this.expensePageInfo.total = 85; //
this.expenseLoading = false;
}, 500);
]
this.expensePageInfo.total = 85
this.expenseLoading = false
}, 500)
},
//
buildExpenseSearchParams() {
const params = {};
if (this.expenseSearchForm.settlementId) {
params.settlementId = this.expenseSearchForm.settlementId;
}
if (this.expenseSearchForm.clearingId) {
params.clearingId = this.expenseSearchForm.clearingId;
}
if (this.expenseSearchForm.targetId) {
params.targetId = this.expenseSearchForm.targetId;
}
if (
this.expenseSearchForm.dateRange &&
this.expenseSearchForm.dateRange.length === 2
) {
params.startDate = this.expenseSearchForm.dateRange[0];
params.endDate = this.expenseSearchForm.dateRange[1];
}
return params;
},
//
handleExpenseSearch() {
this.expensePageInfo.pageNumber = 1;
this.fetchExpenseData();
this.expensePageInfo.pageNumber = 1
this.fetchExpenseData()
},
//
handleExpenseSearchClear() {
this.handleExpenseSearch();
},
//
handleExpenseReset() {
this.expenseSearchForm = {
settlementId: "",
clearingId: "",
targetId: "",
settlementId: '',
clearingId: '',
targetId: '',
dateRange: null
};
this.expensePageInfo.pageNumber = 1;
this.fetchExpenseData();
}
this.expensePageInfo.pageNumber = 1
this.fetchExpenseData()
},
//
handleExpenseSizeChange(val) {
this.expensePageInfo.pageSize = val;
this.expensePageInfo.pageNumber = 1;
this.fetchExpenseData();
this.expensePageInfo.pageSize = val
this.expensePageInfo.pageNumber = 1
this.fetchExpenseData()
},
//
handleExpenseCurrentChange(val) {
this.expensePageInfo.pageNumber = val;
this.fetchExpenseData();
}
},
computed: {
// ID
marketId() {
return this.$store.state.userData.marketId;
this.expensePageInfo.pageNumber = val
this.fetchExpenseData()
},
fetchExtractData() {
this.extractLoading = true
setTimeout(() => {
this.extractDataList = [
{
amount: 5000.0,
afterAvailableAmount: 23450.5,
time: '2025-01-31 14:20:15'
}
]
this.extractPageInfo.total = 2
this.extractLoading = false
}, 500)
},
handleExtractSizeChange(val) {
this.extractPageInfo.pageSize = val
this.extractPageInfo.pageNumber = 1
this.fetchExtractData()
},
handleExtractCurrentChange(val) {
this.extractPageInfo.pageNumber = val
this.fetchExtractData()
},
openExtractDialog() {
this.extractForm.amount = null
this.extractDialogVisible = true
this.$nextTick(() => {
if (this.$refs.extractForm) {
this.$refs.extractForm.clearValidate()
}
})
},
handleExtractSubmit() {
this.$refs.extractForm.validate(valid => {
if (valid) {
this.executeExtract()
}
})
},
async executeExtract() {
this.extractSubmitLoading = true
try {
await new Promise(resolve => setTimeout(resolve, 1000))
this.$message.success('提取成功')
this.extractDialogVisible = false
this.fetchStatsInfo()
this.fetchExtractData()
} catch (error) {
console.error('提取失败:', error)
this.$message.error('提取失败,请重试')
} finally {
this.extractSubmitLoading = false
}
}
}
};
}
</script>
<style lang="scss" scoped>
@ -702,7 +668,6 @@ export default {
padding: 0;
}
//
.stats-row {
margin-bottom: 16px;
}
@ -747,7 +712,6 @@ export default {
}
}
//
.tabs-card {
border-radius: 8px;
@ -776,7 +740,6 @@ export default {
}
}
//
.search-section {
padding: 24px;
border-bottom: 1px solid #f0f0f0;
@ -786,17 +749,40 @@ export default {
margin-bottom: 0;
}
//
::v-deep .el-table {
margin: 0;
.action-section {
padding: 24px;
border-bottom: 1px solid #f0f0f0;
}
::v-deep .el-table {
margin: 0;
font-size: 13px;
th {
background-color: #fafafa;
color: #606266;
font-weight: 600;
font-size: 13px;
}
td {
padding: 14px 0;
}
.cell {
padding: 0 10px;
}
}
//
.pagination-container {
padding: 20px 24px;
text-align: right;
border-top: 1px solid #f0f0f0;
}
.dialog-footer {
text-align: right;
}
</style>
<style>

File diff suppressed because it is too large Load Diff