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

View File

@ -42,18 +42,17 @@
<!-- 搜索区域 --> <!-- 搜索区域 -->
<div class="search-section"> <div class="search-section">
<el-form <el-form
ref="incomeSearchForm"
:model="incomeSearchForm" :model="incomeSearchForm"
:inline="true" :inline="true"
ref="incomeSearchForm"
class="search-form" class="search-form"
size="small" size="small"
> >
<el-form-item label="订单ID" prop="orderId"> <el-form-item label="结算订单ID" prop="orderId">
<el-input <el-input
v-model="incomeSearchForm.orderId" v-model="incomeSearchForm.orderId"
placeholder="请输入订单ID" placeholder="请输入结算订单ID"
clearable clearable
@clear="handleIncomeSearchClear"
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
@ -71,16 +70,16 @@
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@click="handleIncomeSearch"
icon="el-icon-search" icon="el-icon-search"
size="small" size="small"
@click="handleIncomeSearch"
> >
搜索 搜索
</el-button> </el-button>
<el-button <el-button
@click="handleIncomeReset"
icon="el-icon-refresh" icon="el-icon-refresh"
size="small" size="small"
@click="handleIncomeReset"
> >
重置 重置
</el-button> </el-button>
@ -91,14 +90,14 @@
<!-- 表格区域 --> <!-- 表格区域 -->
<el-table <el-table
ref="incomeTable" ref="incomeTable"
v-loading="incomeLoading"
:data="incomeDataList" :data="incomeDataList"
border border
style="width: 100%" style="width: 100%"
v-loading="incomeLoading"
> >
<el-table-column <el-table-column
type="index" type="index"
width="60" width="70"
align="center" align="center"
label="序号" label="序号"
/> />
@ -106,16 +105,17 @@
prop="orderId" prop="orderId"
label="订单ID" label="订单ID"
align="center" align="center"
min-width="150" width="180"
show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="orderAmount" prop="orderAmount"
label="订单金额" label="订单金额"
align="center" align="center"
width="130" width="140"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span style="font-weight: 600"> <span style="font-weight: 600; font-size: 14px">
¥{{ scope.row.orderAmount.toFixed(2) }} ¥{{ scope.row.orderAmount.toFixed(2) }}
</span> </span>
</template> </template>
@ -124,16 +124,16 @@
prop="orderTime" prop="orderTime"
label="订单时间" label="订单时间"
align="center" align="center"
min-width="160" width="170"
/> />
<el-table-column <el-table-column
prop="incomeAmount" prop="incomeAmount"
label="收入金额" label="收入金额"
align="center" align="center"
width="130" width="140"
> >
<template slot-scope="scope"> <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) }} + ¥{{ scope.row.incomeAmount.toFixed(2) }}
</span> </span>
</template> </template>
@ -142,14 +142,14 @@
<!-- 分页 --> <!-- 分页 -->
<el-pagination <el-pagination
@size-change="handleIncomeSizeChange"
@current-change="handleIncomeCurrentChange"
:current-page="incomePageInfo.pageNumber" :current-page="incomePageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:page-size="incomePageInfo.pageSize" :page-size="incomePageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="incomePageInfo.total" :total="incomePageInfo.total"
class="pagination-container" class="pagination-container"
@size-change="handleIncomeSizeChange"
@current-change="handleIncomeCurrentChange"
/> />
</el-tab-pane> </el-tab-pane>
@ -158,9 +158,9 @@
<!-- 搜索区域 --> <!-- 搜索区域 -->
<div class="search-section"> <div class="search-section">
<el-form <el-form
ref="expenseSearchForm"
:model="expenseSearchForm" :model="expenseSearchForm"
:inline="true" :inline="true"
ref="expenseSearchForm"
class="search-form" class="search-form"
size="small" size="small"
> >
@ -169,7 +169,6 @@
v-model="expenseSearchForm.settlementId" v-model="expenseSearchForm.settlementId"
placeholder="请输入结算明细ID" placeholder="请输入结算明细ID"
clearable clearable
@clear="handleExpenseSearchClear"
style="width: 180px" style="width: 180px"
/> />
</el-form-item> </el-form-item>
@ -178,7 +177,6 @@
v-model="expenseSearchForm.clearingId" v-model="expenseSearchForm.clearingId"
placeholder="请输入清算明细ID" placeholder="请输入清算明细ID"
clearable clearable
@clear="handleExpenseSearchClear"
style="width: 180px" style="width: 180px"
/> />
</el-form-item> </el-form-item>
@ -187,7 +185,6 @@
v-model="expenseSearchForm.targetId" v-model="expenseSearchForm.targetId"
placeholder="请输入支出对象ID" placeholder="请输入支出对象ID"
clearable clearable
@clear="handleExpenseSearchClear"
style="width: 180px" style="width: 180px"
/> />
</el-form-item> </el-form-item>
@ -205,34 +202,33 @@
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@click="handleExpenseSearch"
icon="el-icon-search" icon="el-icon-search"
size="small" size="small"
@click="handleExpenseSearch"
> >
搜索 搜索
</el-button> </el-button>
<el-button <el-button
@click="handleExpenseReset"
icon="el-icon-refresh" icon="el-icon-refresh"
size="small" size="small"
@click="handleExpenseReset"
> >
重置 重置
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<!-- 表格区域 --> <!-- 表格区域 -->
<el-table <el-table
ref="expenseTable" ref="expenseTable"
v-loading="expenseLoading"
:data="expenseDataList" :data="expenseDataList"
border border
style="width: 100%" style="width: 100%"
v-loading="expenseLoading"
> >
<el-table-column <el-table-column
type="index" type="index"
width="60" width="70"
align="center" align="center"
label="序号" label="序号"
/> />
@ -240,23 +236,32 @@
prop="settlementId" prop="settlementId"
label="结算明细ID" label="结算明细ID"
align="center" align="center"
min-width="140" width="160"
show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="clearingId" prop="clearingId"
label="清算明细ID" label="清算明细ID"
align="center" 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 <el-table-column
prop="settlementAmount" prop="settlementAmount"
label="结算金额" label="结算金额"
align="center" align="center"
width="130" width="140"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color: #ff4d4f; font-weight: 600"> <span style="color: #ff4d4f; font-weight: 600; font-size: 14px">
- ¥{{ scope.row.settlementAmount.toFixed(2) }} ¥{{ scope.row.settlementAmount.toFixed(2) }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
@ -264,437 +269,398 @@
prop="settlementTime" prop="settlementTime"
label="结算时间" label="结算时间"
align="center" align="center"
min-width="160" width="170"
/> />
<el-table-column <el-table-column
prop="targetId" prop="targetId"
label="支出对象ID" label="支出对象ID"
align="center" align="center"
min-width="120" width="140"
show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="targetRole" prop="targetRole"
label="支出对象角色" label="支出对象角色"
align="center" align="center"
width="120" width="130"
/> />
<el-table-column <el-table-column
prop="expenseTime" prop="expenseTime"
label="支出时间" label="支出时间"
align="center" align="center"
min-width="160" width="170"
/> />
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<el-pagination <el-pagination
@size-change="handleExpenseSizeChange"
@current-change="handleExpenseCurrentChange"
:current-page="expensePageInfo.pageNumber" :current-page="expensePageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:page-size="expensePageInfo.pageSize" :page-size="expensePageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="expensePageInfo.total" :total="expensePageInfo.total"
class="pagination-container" 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-tab-pane>
</el-tabs> </el-tabs>
</el-card> </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> </div>
</template> </template>
<script> <script>
export default { export default {
name: "MoneyManagement", name: 'MoneyManagement',
data() { 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 { return {
// activeTab: 'income',
activeTab: "income",
//
statsInfo: { statsInfo: {
frozenAmount: 5280.0, frozenAmount: 5280.0,
availableAmount: 23450.5, availableAmount: 23450.5,
walletBalance: 28730.5 walletBalance: 28730.5
}, },
//
incomeSearchForm: { incomeSearchForm: {
orderId: "", orderId: '',
dateRange: null dateRange: null
}, },
//
incomeDataList: [], incomeDataList: [],
//
incomePageInfo: { incomePageInfo: {
pageNumber: 1, pageNumber: 1,
pageSize: 10, pageSize: 10,
total: 0 total: 0
}, },
//
incomeLoading: false, incomeLoading: false,
//
expenseSearchForm: { expenseSearchForm: {
settlementId: "", settlementId: '',
clearingId: "", clearingId: '',
targetId: "", targetId: '',
dateRange: null dateRange: null
}, },
//
expenseDataList: [], expenseDataList: [],
//
expensePageInfo: { expensePageInfo: {
pageNumber: 1, pageNumber: 1,
pageSize: 10, pageSize: 10,
total: 0 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() { created() {
this.fetchStatsInfo(); this.fetchStatsInfo()
this.fetchIncomeData(); this.fetchIncomeData()
}, },
methods: { methods: {
//
async fetchStatsInfo() { async fetchStatsInfo() {
try { try {
// TODO: API
// const res = await this.$api.mer_admin.getMoneyStats();
// this.statsInfo = res.data.data;
//
this.statsInfo = { this.statsInfo = {
frozenAmount: 5280.0, frozenAmount: 5280.0,
availableAmount: 23450.5, availableAmount: 23450.5,
walletBalance: 28730.5 walletBalance: 28730.5
}; }
} catch (error) { } catch (error) {
console.error("获取统计信息失败:", error); console.error('获取统计信息失败:', error)
this.$message.error("获取统计信息失败");
} }
}, },
//
handleTabClick(tab) { handleTabClick(tab) {
if (tab.name === "income") { if (tab.name === 'income') {
this.fetchIncomeData(); this.fetchIncomeData()
} else if (tab.name === "expense") { } else if (tab.name === 'expense') {
this.fetchExpenseData(); this.fetchExpenseData()
} else if (tab.name === 'extract') {
this.fetchExtractData()
} }
}, },
// ==================== ====================
//
fetchIncomeData() { fetchIncomeData() {
this.incomeLoading = true; 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;
// });
//
setTimeout(() => { setTimeout(() => {
const mockData = [ this.incomeDataList = [
{ {
orderId: "ORD202501310001", orderId: 'SET202501310001',
orderAmount: 1280.0, orderAmount: 1280.0,
orderTime: "2025-01-31 10:30:25", orderTime: '2025-01-31 10:30:25',
incomeAmount: 1280.0 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
} }
]; ]
this.incomePageInfo.total = 127
// this.incomeLoading = false
let filteredData = mockData; }, 500)
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);
}, },
//
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() { handleIncomeSearch() {
this.incomePageInfo.pageNumber = 1; this.incomePageInfo.pageNumber = 1
this.fetchIncomeData(); this.fetchIncomeData()
}, },
//
handleIncomeSearchClear() {
this.handleIncomeSearch();
},
//
handleIncomeReset() { handleIncomeReset() {
this.incomeSearchForm = { this.incomeSearchForm = { orderId: '', dateRange: null }
orderId: "", this.incomePageInfo.pageNumber = 1
dateRange: null this.fetchIncomeData()
};
this.incomePageInfo.pageNumber = 1;
this.fetchIncomeData();
}, },
//
handleIncomeSizeChange(val) { handleIncomeSizeChange(val) {
this.incomePageInfo.pageSize = val; this.incomePageInfo.pageSize = val
this.incomePageInfo.pageNumber = 1; this.incomePageInfo.pageNumber = 1
this.fetchIncomeData(); this.fetchIncomeData()
}, },
//
handleIncomeCurrentChange(val) { handleIncomeCurrentChange(val) {
this.incomePageInfo.pageNumber = val; this.incomePageInfo.pageNumber = val
this.fetchIncomeData(); this.fetchIncomeData()
}, },
// ==================== ====================
//
fetchExpenseData() { fetchExpenseData() {
this.expenseLoading = true; 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;
// });
//
setTimeout(() => { setTimeout(() => {
const mockData = [ this.expenseDataList = [
{ {
settlementId: "SET202501310001", settlementId: 'SET202501310001',
clearingId: "CLR202501310001", clearingId: 'CLR202501310001',
orderNumber: 'ORD202501310001',
settlementAmount: 320.0, settlementAmount: 320.0,
settlementTime: "2025-01-31 15:30:20", settlementTime: '2025-01-31 15:30:20',
targetId: "SUP100256", targetId: 'SUP100256',
targetRole: "供应商", targetRole: '供应商',
expenseTime: "2025-01-31 15:30:25" 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"
} }
]; ]
this.expensePageInfo.total = 85
// this.expenseLoading = false
let filteredData = mockData; }, 500)
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);
}, },
//
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() { handleExpenseSearch() {
this.expensePageInfo.pageNumber = 1; this.expensePageInfo.pageNumber = 1
this.fetchExpenseData(); this.fetchExpenseData()
}, },
//
handleExpenseSearchClear() {
this.handleExpenseSearch();
},
//
handleExpenseReset() { handleExpenseReset() {
this.expenseSearchForm = { this.expenseSearchForm = {
settlementId: "", settlementId: '',
clearingId: "", clearingId: '',
targetId: "", targetId: '',
dateRange: null dateRange: null
}; }
this.expensePageInfo.pageNumber = 1; this.expensePageInfo.pageNumber = 1
this.fetchExpenseData(); this.fetchExpenseData()
}, },
//
handleExpenseSizeChange(val) { handleExpenseSizeChange(val) {
this.expensePageInfo.pageSize = val; this.expensePageInfo.pageSize = val
this.expensePageInfo.pageNumber = 1; this.expensePageInfo.pageNumber = 1
this.fetchExpenseData(); this.fetchExpenseData()
}, },
//
handleExpenseCurrentChange(val) { handleExpenseCurrentChange(val) {
this.expensePageInfo.pageNumber = val; this.expensePageInfo.pageNumber = val
this.fetchExpenseData(); this.fetchExpenseData()
}
}, },
computed: {
// ID fetchExtractData() {
marketId() { this.extractLoading = true
return this.$store.state.userData.marketId; 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -702,7 +668,6 @@ export default {
padding: 0; padding: 0;
} }
//
.stats-row { .stats-row {
margin-bottom: 16px; margin-bottom: 16px;
} }
@ -747,7 +712,6 @@ export default {
} }
} }
//
.tabs-card { .tabs-card {
border-radius: 8px; border-radius: 8px;
@ -776,7 +740,6 @@ export default {
} }
} }
//
.search-section { .search-section {
padding: 24px; padding: 24px;
border-bottom: 1px solid #f0f0f0; border-bottom: 1px solid #f0f0f0;
@ -786,17 +749,40 @@ export default {
margin-bottom: 0; margin-bottom: 0;
} }
// .action-section {
::v-deep .el-table { padding: 24px;
margin: 0; 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 { .pagination-container {
padding: 20px 24px; padding: 20px 24px;
text-align: right; text-align: right;
border-top: 1px solid #f0f0f0; border-top: 1px solid #f0f0f0;
} }
.dialog-footer {
text-align: right;
}
</style> </style>
<style> <style>

View File

@ -37,52 +37,71 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- 搜索和表格区域 -->
<el-card class="content-card" shadow="never">
<!-- Tab 切换 -->
<el-tabs
v-model="activeTab"
@tab-click="handleTabClick"
class="custom-tabs"
>
<!-- 待结算 Tab -->
<el-tab-pane label="待结算" name="pending">
<!-- 搜索区域 --> <!-- 搜索区域 -->
<el-card class="search-card" shadow="never"> <div class="search-section">
<el-form <el-form
:model="searchForm" :model="pendingSearchForm"
:inline="true" :inline="true"
ref="searchForm" ref="pendingSearchForm"
class="search-form" class="search-form"
size="small" size="small"
> >
<el-form-item label="待结算明细ID" prop="settlementId"> <el-form-item label="结算明细ID" prop="settlementId">
<el-input <el-input
v-model="searchForm.settlementId" v-model="pendingSearchForm.settlementId"
placeholder="请输入结算明细ID" placeholder="请输入结算明细ID"
clearable clearable
@clear="handleSearchClear"
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="关联清算明细ID" prop="clearingId"> <el-form-item label="关联清算明细ID" prop="clearingId">
<el-input <el-input
v-model="searchForm.clearingId" v-model="pendingSearchForm.clearingId"
placeholder="请输入关联清算明细ID" placeholder="请输入关联清算明细ID"
clearable clearable
@clear="handleSearchClear"
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="结算目标对象ID" prop="targetId"> <el-form-item label="结算目标对象ID" prop="targetId">
<el-input <el-input
v-model="searchForm.targetId" v-model="pendingSearchForm.targetId"
placeholder="请输入结算目标对象ID" placeholder="请输入结算目标对象ID"
clearable clearable
@clear="handleSearchClear" style="width: 200px"
/>
</el-form-item>
<el-form-item label="结算订单号" prop="orderNumber">
<el-input
v-model="pendingSearchForm.orderNumber"
placeholder="请输入结算订单号"
clearable
style="width: 200px" style="width: 200px"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@click="handleSearch" @click="handlePendingSearch"
icon="el-icon-search" icon="el-icon-search"
size="small" size="small"
> >
查询 查询
</el-button> </el-button>
<el-button @click="handleReset" icon="el-icon-refresh" size="small"> <el-button
@click="handlePendingReset"
icon="el-icon-refresh"
size="small"
>
重置 重置
</el-button> </el-button>
<el-button <el-button
@ -95,50 +114,64 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </div>
<!-- 表格区域 --> <!-- 表格 -->
<div class="table-container">
<el-table <el-table
ref="multipleTable" ref="pendingTable"
:data="dataList" :data="pendingDataList"
border border
style="width: 100%" style="width: 100%"
v-loading="loading" v-loading="pendingLoading"
> >
<el-table-column type="index" width="60" align="center" label="序号" /> <el-table-column
type="index"
width="70"
align="center"
label="序号"
/>
<el-table-column <el-table-column
prop="id" prop="id"
label="待结算明细ID" label="结算明细ID"
align="center" align="center"
min-width="140" width="160"
show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="clearingId" prop="clearingId"
label="关联清算明细ID" label="关联清算明细ID"
align="center" align="center"
min-width="150" width="160"
show-overflow-tooltip
/>
<el-table-column
prop="orderNumber"
label="结算订单号"
align="center"
width="160"
show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="targetId" prop="targetId"
label="结算目标对象ID" label="结算目标对象ID"
align="center" align="center"
min-width="140" width="150"
show-overflow-tooltip
/> />
<el-table-column <el-table-column
prop="targetRole" prop="targetRole"
label="结算目标角色" label="结算目标角色"
align="center" align="center"
width="120" width="130"
/> />
<el-table-column <el-table-column
prop="amount" prop="amount"
label="结算金额(元)" label="结算金额(元)"
align="center" align="center"
width="130" width="140"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color: #f56c6c; font-weight: 600"> <span style="color: #f56c6c; font-weight: 600; font-size: 14px">
¥{{ scope.row.amount.toFixed(2) }} ¥{{ scope.row.amount.toFixed(2) }}
</span> </span>
</template> </template>
@ -147,9 +180,9 @@
prop="clearingTime" prop="clearingTime"
label="清算时间" label="清算时间"
align="center" align="center"
min-width="160" width="170"
/> />
<el-table-column label="结算状态" align="center" width="100"> <el-table-column label="结算状态" align="center" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag
v-if="scope.row.status === 'pending'" v-if="scope.row.status === 'pending'"
@ -165,10 +198,14 @@
> >
执行中 执行中
</el-tag> </el-tag>
<el-tag v-else type="success" size="small">已完成</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="150"> <el-table-column
label="操作"
fixed="right"
align="center"
width="130"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-if="scope.row.status === 'pending'" v-if="scope.row.status === 'pending'"
@ -186,68 +223,231 @@
> >
重新执行 重新执行
</el-button> </el-button>
<span v-else style="color: #909399">-</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 -->
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handlePendingSizeChange"
@current-change="handleCurrentChange" @current-change="handlePendingCurrentChange"
:current-page="pageInfo.pageNumber" :current-page="pendingPageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:page-size="pageInfo.pageSize" :page-size="pendingPageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="pageInfo.total" :total="pendingPageInfo.total"
class="pagination-container" class="pagination-container"
/> />
</el-tab-pane>
<!-- 已结算 Tab -->
<el-tab-pane label="已结算" name="completed">
<!-- 搜索区域 -->
<div class="search-section">
<el-form
:model="completedSearchForm"
:inline="true"
ref="completedSearchForm"
class="search-form"
size="small"
>
<el-form-item label="结算明细ID" prop="settlementId">
<el-input
v-model="completedSearchForm.settlementId"
placeholder="请输入结算明细ID"
clearable
style="width: 200px"
/>
</el-form-item>
<el-form-item label="关联清算明细ID" prop="clearingId">
<el-input
v-model="completedSearchForm.clearingId"
placeholder="请输入关联清算明细ID"
clearable
style="width: 200px"
/>
</el-form-item>
<el-form-item label="结算目标对象ID" prop="targetId">
<el-input
v-model="completedSearchForm.targetId"
placeholder="请输入结算目标对象ID"
clearable
style="width: 200px"
/>
</el-form-item>
<el-form-item label="结算订单号" prop="orderNumber">
<el-input
v-model="completedSearchForm.orderNumber"
placeholder="请输入结算订单号"
clearable
style="width: 200px"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="handleCompletedSearch"
icon="el-icon-search"
size="small"
>
查询
</el-button>
<el-button
@click="handleCompletedReset"
icon="el-icon-refresh"
size="small"
>
重置
</el-button>
</el-form-item>
</el-form>
</div> </div>
<!-- 表格 -->
<el-table
ref="completedTable"
:data="completedDataList"
border
style="width: 100%"
v-loading="completedLoading"
>
<el-table-column
type="index"
width="70"
align="center"
label="序号"
/>
<el-table-column
prop="id"
label="结算明细ID"
align="center"
width="160"
show-overflow-tooltip
/>
<el-table-column
prop="clearingId"
label="关联清算明细ID"
align="center"
width="160"
show-overflow-tooltip
/>
<el-table-column
prop="orderNumber"
label="结算订单号"
align="center"
width="160"
show-overflow-tooltip
/>
<el-table-column
prop="targetId"
label="结算目标对象ID"
align="center"
width="150"
show-overflow-tooltip
/>
<el-table-column
prop="targetRole"
label="结算目标角色"
align="center"
width="130"
/>
<el-table-column
prop="amount"
label="结算金额(元)"
align="center"
width="140"
>
<template slot-scope="scope">
<span style="color: #f56c6c; font-weight: 600; font-size: 14px">
¥{{ scope.row.amount.toFixed(2) }}
</span>
</template>
</el-table-column>
<el-table-column
prop="clearingTime"
label="清算时间"
align="center"
width="170"
/>
</el-table>
<!-- 分页 -->
<el-pagination
@size-change="handleCompletedSizeChange"
@current-change="handleCompletedCurrentChange"
:current-page="completedPageInfo.pageNumber"
:page-sizes="[10, 20, 50, 100]"
:page-size="completedPageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="completedPageInfo.total"
class="pagination-container"
/>
</el-tab-pane>
</el-tabs>
</el-card>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "UnsettleManagement", name: "SettlementManagement",
data() { data() {
return { return {
//
activeTab: "pending",
// //
accountInfo: { accountInfo: {
totalAmount: 0, totalAmount: 0,
availableAmount: 0, availableAmount: 0,
walletBalance: 0 walletBalance: 0
}, },
// //
searchForm: { pendingSearchForm: {
settlementId: "", settlementId: "",
clearingId: "", clearingId: "",
targetId: "" targetId: "",
orderNumber: ""
}, },
// //
dataList: [], pendingDataList: [],
// //
pageInfo: { pendingPageInfo: {
pageNumber: 1, pageNumber: 1,
pageSize: 10, pageSize: 10,
total: 0 total: 0
}, },
// //
loading: false, pendingLoading: false,
//
completedSearchForm: {
settlementId: "",
clearingId: "",
targetId: "",
orderNumber: ""
},
//
completedDataList: [],
//
completedPageInfo: {
pageNumber: 1,
pageSize: 10,
total: 0
},
//
completedLoading: false,
//
refreshLoading: false refreshLoading: false
}; };
}, },
created() { created() {
this.fetchAccountInfo(); this.fetchAccountInfo();
this.fetchData(); this.fetchPendingData();
}, },
methods: { methods: {
// //
async fetchAccountInfo() { async fetchAccountInfo() {
try { try {
// TODO: API // TODO: API
// const res = await this.$api.mer_admin.getAccountInfo();
// this.accountInfo = res.data.data;
//
this.accountInfo = { this.accountInfo = {
totalAmount: 8770.5, totalAmount: 8770.5,
availableAmount: 6420.25, availableAmount: 6420.25,
@ -272,9 +472,20 @@ export default {
} }
}, },
// // Tab
fetchData() { handleTabClick(tab) {
this.loading = true; if (tab.name === "pending") {
this.fetchPendingData();
} else if (tab.name === "completed") {
this.fetchCompletedData();
}
},
// ==================== ====================
//
fetchPendingData() {
this.pendingLoading = true;
const marketId = this.marketId; const marketId = this.marketId;
if (!marketId) { if (!marketId) {
this.$message.error("获取市场ID失败请重新登录"); this.$message.error("获取市场ID失败请重新登录");
@ -283,35 +494,21 @@ export default {
} }
const params = { const params = {
pageNumber: this.pageInfo.pageNumber, pageNumber: this.pendingPageInfo.pageNumber,
pageSize: this.pageInfo.pageSize, pageSize: this.pendingPageInfo.pageSize,
marketId, marketId,
...this.buildSearchParams() status: "pending",
...this.buildPendingSearchParams()
}; };
// TODO: API // TODO: API
// this.$api.mer_admin
// .getUnsettleList(params)
// .then(res => {
// if (res.data && res.data.data) {
// this.dataList = res.data.data.data || [];
// this.pageInfo.total = Number(res.data.data.total) || 0;
// }
// })
// .catch(err => {
// console.error(":", err);
// this.$message.error("");
// })
// .finally(() => {
// this.loading = false;
// });
// //
setTimeout(() => { setTimeout(() => {
const mockData = [ const mockData = [
{ {
id: "SET2024010001", id: "SET2024010001",
clearingId: "CLR2024010001", clearingId: "CLR2024010001",
orderNumber: "ORD2024010001",
targetId: "TGT001", targetId: "TGT001",
targetRole: "商家", targetRole: "商家",
amount: 1580.5, amount: 1580.5,
@ -321,24 +518,17 @@ export default {
{ {
id: "SET2024010002", id: "SET2024010002",
clearingId: "CLR2024010002", clearingId: "CLR2024010002",
orderNumber: "ORD2024010002",
targetId: "TGT002", targetId: "TGT002",
targetRole: "供应商", targetRole: "供应商",
amount: 2350.0, amount: 2350.0,
clearingTime: "2024-01-15 15:20:10", clearingTime: "2024-01-15 15:20:10",
status: "processing" status: "processing"
}, },
{
id: "SET2024010003",
clearingId: "CLR2024010003",
targetId: "TGT003",
targetRole: "平台",
amount: 890.75,
clearingTime: "2024-01-15 16:45:30",
status: "completed"
},
{ {
id: "SET2024010004", id: "SET2024010004",
clearingId: "CLR2024010004", clearingId: "CLR2024010004",
orderNumber: "ORD2024010004",
targetId: "TGT004", targetId: "TGT004",
targetRole: "商家", targetRole: "商家",
amount: 3200.0, amount: 3200.0,
@ -348,6 +538,7 @@ export default {
{ {
id: "SET2024010005", id: "SET2024010005",
clearingId: "CLR2024010005", clearingId: "CLR2024010005",
orderNumber: "ORD2024010005",
targetId: "TGT005", targetId: "TGT005",
targetRole: "供应商", targetRole: "供应商",
amount: 1750.25, amount: 1750.25,
@ -356,85 +547,158 @@ export default {
} }
]; ];
// this.pendingDataList = mockData;
let filteredData = mockData; this.pendingPageInfo.total = mockData.length;
const searchParams = this.buildSearchParams(); this.pendingLoading = false;
if (searchParams.settlementId) {
filteredData = filteredData.filter(item =>
item.id.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.dataList = filteredData;
this.pageInfo.total = filteredData.length;
this.loading = false;
}, 500); }, 500);
}, },
// //
buildSearchParams() { buildPendingSearchParams() {
const params = {}; const params = {};
if (this.searchForm.settlementId) { if (this.pendingSearchForm.settlementId) {
params.settlementId = this.searchForm.settlementId; params.settlementId = this.pendingSearchForm.settlementId;
} }
if (this.searchForm.clearingId) { if (this.pendingSearchForm.clearingId) {
params.clearingId = this.searchForm.clearingId; params.clearingId = this.pendingSearchForm.clearingId;
} }
if (this.searchForm.targetId) { if (this.pendingSearchForm.targetId) {
params.targetId = this.searchForm.targetId; params.targetId = this.pendingSearchForm.targetId;
}
if (this.pendingSearchForm.orderNumber) {
params.orderNumber = this.pendingSearchForm.orderNumber;
} }
return params; return params;
}, },
// //
handleSearch() { handlePendingSearch() {
this.pageInfo.pageNumber = 1; this.pendingPageInfo.pageNumber = 1;
this.fetchData(); this.fetchPendingData();
}, },
// //
handleSearchClear() { handlePendingReset() {
this.handleSearch(); this.pendingSearchForm = {
},
//
handleReset() {
this.searchForm = {
settlementId: "", settlementId: "",
clearingId: "", clearingId: "",
targetId: "" targetId: "",
orderNumber: ""
}; };
this.pageInfo.pageNumber = 1; this.pendingPageInfo.pageNumber = 1;
this.fetchData(); this.fetchPendingData();
}, },
// //
handleSizeChange(val) { handlePendingSizeChange(val) {
this.pageInfo.pageSize = val; this.pendingPageInfo.pageSize = val;
this.pageInfo.pageNumber = 1; this.pendingPageInfo.pageNumber = 1;
this.fetchData(); this.fetchPendingData();
}, },
// //
handleCurrentChange(val) { handlePendingCurrentChange(val) {
this.pageInfo.pageNumber = val; this.pendingPageInfo.pageNumber = val;
this.fetchData(); this.fetchPendingData();
}, },
// ==================== ====================
//
fetchCompletedData() {
this.completedLoading = true;
const marketId = this.marketId;
if (!marketId) {
this.$message.error("获取市场ID失败请重新登录");
this.$router.push("/login");
return;
}
const params = {
pageNumber: this.completedPageInfo.pageNumber,
pageSize: this.completedPageInfo.pageSize,
marketId,
status: "completed",
...this.buildCompletedSearchParams()
};
// TODO: API
//
setTimeout(() => {
const mockData = [
{
id: "SET2024010003",
clearingId: "CLR2024010003",
orderNumber: "ORD2024010003",
targetId: "TGT003",
targetRole: "平台",
amount: 890.75,
clearingTime: "2024-01-15 16:45:30",
status: "completed"
}
];
this.completedDataList = mockData;
this.completedPageInfo.total = mockData.length;
this.completedLoading = false;
}, 500);
},
//
buildCompletedSearchParams() {
const params = {};
if (this.completedSearchForm.settlementId) {
params.settlementId = this.completedSearchForm.settlementId;
}
if (this.completedSearchForm.clearingId) {
params.clearingId = this.completedSearchForm.clearingId;
}
if (this.completedSearchForm.targetId) {
params.targetId = this.completedSearchForm.targetId;
}
if (this.completedSearchForm.orderNumber) {
params.orderNumber = this.completedSearchForm.orderNumber;
}
return params;
},
//
handleCompletedSearch() {
this.completedPageInfo.pageNumber = 1;
this.fetchCompletedData();
},
//
handleCompletedReset() {
this.completedSearchForm = {
settlementId: "",
clearingId: "",
targetId: "",
orderNumber: ""
};
this.completedPageInfo.pageNumber = 1;
this.fetchCompletedData();
},
//
handleCompletedSizeChange(val) {
this.completedPageInfo.pageSize = val;
this.completedPageInfo.pageNumber = 1;
this.fetchCompletedData();
},
//
handleCompletedCurrentChange(val) {
this.completedPageInfo.pageNumber = val;
this.fetchCompletedData();
},
// ==================== ====================
// //
handleSettlement(row, isRetry) { handleSettlement(row, isRetry) {
const action = isRetry ? "重新执行" : "开始结算"; const action = isRetry ? "重新执行" : "开始结算";
const message = `确认${action}该笔待结算明细吗?\n待结算明细ID: ${ const message = `确认${action}该笔待结算明细吗?\n结算明细ID: ${
row.id row.id
}\n结算金额: ¥${row.amount.toFixed(2)}`; }\n结算金额: ¥${row.amount.toFixed(2)}`;
@ -454,19 +718,11 @@ export default {
// //
async executeSettlement(row, isRetry) { async executeSettlement(row, isRetry) {
try { try {
this.loading = true; this.pendingLoading = true;
// TODO: API // TODO: API
// const params = {
// settlementId: row.id,
// isRetry: isRetry
// };
// await this.$api.mer_admin.executeSettlement(params);
// API
await new Promise(resolve => setTimeout(resolve, 1000)); await new Promise(resolve => setTimeout(resolve, 1000));
//
row.status = "processing"; row.status = "processing";
this.$message.success("结算任务已提交"); this.$message.success("结算任务已提交");
@ -474,13 +730,14 @@ export default {
setTimeout(() => { setTimeout(() => {
row.status = "completed"; row.status = "completed";
this.$message.success("结算完成"); this.$message.success("结算完成");
this.fetchAccountInfo(); // this.fetchAccountInfo();
this.fetchPendingData();
}, 2000); }, 2000);
} catch (error) { } catch (error) {
console.error("结算失败:", error); console.error("结算失败:", error);
this.$message.error("结算失败,请重试"); this.$message.error("结算失败,请重试");
} finally { } finally {
this.loading = false; this.pendingLoading = false;
} }
} }
}, },
@ -563,25 +820,76 @@ export default {
margin-left: 4px; margin-left: 4px;
} }
// //
.search-card { .content-card {
margin-bottom: 16px; border-radius: 8px;
::v-deep .el-card__body {
padding: 0;
}
}
// Tabs
.custom-tabs {
::v-deep .el-tabs__header {
margin: 0;
padding: 0 24px;
background: #fafafa;
border-bottom: 1px solid #f0f0f0;
}
::v-deep .el-tabs__nav-wrap::after {
height: 0;
}
::v-deep .el-tabs__item {
height: 48px;
line-height: 48px;
font-size: 15px;
padding: 0 20px;
}
::v-deep .el-tabs__content {
padding: 0;
}
}
//
.search-section {
padding: 24px;
border-bottom: 1px solid #f0f0f0;
} }
.search-form .el-form-item { .search-form .el-form-item {
margin-bottom: 0; margin-bottom: 0;
} }
// //
.table-container { ::v-deep .el-table {
background: white; margin: 0;
padding: 20px; font-size: 13px;
border-radius: 8px;
th {
background-color: #fafafa;
color: #606266;
font-weight: 600;
font-size: 13px;
}
td {
padding: 14px 0;
}
.cell {
padding: 0 10px;
}
} }
//
.pagination-container { .pagination-container {
margin-top: 20px; padding: 20px 24px;
text-align: right; text-align: right;
border-top: 1px solid #f0f0f0;
} }
</style> </style>