优化
This commit is contained in:
@@ -140,11 +140,11 @@ export const adminNavigation: AdminNavigationNode[] = [
|
|||||||
title: '财务管理',
|
title: '财务管理',
|
||||||
icon: PrototypeFinanceIcon,
|
icon: PrototypeFinanceIcon,
|
||||||
children: [
|
children: [
|
||||||
{ key: 'finance-customer-accounts', title: '客户账户', icon: CircleDollarSign, path: '/finance/customer-accounts', permission: 'platform:finance:customer-account:list' },
|
{ key: 'finance-customer-accounts', title: '客户账户', icon: CircleDollarSign, path: '/finance/customer-accounts', permission: 'platform:finance:customer-account:list', permissionAnyOf: ['platform:finance:account:view'] },
|
||||||
{ key: 'finance-customer-arap', title: '客户应收应付', icon: Database, path: '/finance/customer-arap', permission: 'platform:finance:customer-arap:list' },
|
{ key: 'finance-customer-arap', title: '客户应收应付', icon: Database, path: '/finance/customer-arap', permission: 'platform:finance:customer-arap:list', permissionAnyOf: ['platform:finance:bill:view'] },
|
||||||
{ key: 'finance-customer-statements', title: '客户对账单', icon: FileCheck2, path: '/finance/customer-statements', permission: 'platform:finance:customer-statement:list' },
|
{ key: 'finance-customer-statements', title: '客户对账单', icon: FileCheck2, path: '/finance/customer-statements', permission: 'platform:finance:customer-statement:list', permissionAnyOf: ['platform:finance:bill:view'] },
|
||||||
{ key: 'finance-settlement-receivables', title: '结算单应收', icon: CircleDollarSign, path: '/finance/settlement-receivables', permission: 'platform:finance:settlement-ar:list' },
|
{ key: 'finance-settlement-receivables', title: '结算单应收', icon: CircleDollarSign, path: '/finance/settlement-receivables', permission: 'platform:finance:settlement-ar:list', permissionAnyOf: ['platform:finance:settlement-ar:view'] },
|
||||||
{ key: 'finance-settlement-payables', title: '结算单应付', icon: Database, path: '/finance/settlement-payables', permission: 'platform:finance:settlement-ap:list' },
|
{ key: 'finance-settlement-payables', title: '结算单应付', icon: Database, path: '/finance/settlement-payables', permission: 'platform:finance:settlement-ap:list', permissionAnyOf: ['platform:finance:settlement-ap:view'] },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ const ledgerPage = ref(1)
|
|||||||
const ledgerPageSize = ref(20)
|
const ledgerPageSize = ref(20)
|
||||||
const ledgerTotal = ref(0)
|
const ledgerTotal = ref(0)
|
||||||
|
|
||||||
const canView = computed(() => access.can('platform:finance:customer-account:list'))
|
const canView = computed(() => access.can('platform:finance:customer-account:list') || access.can('platform:finance:account:view'))
|
||||||
const canViewTerms = computed(() => canView.value)
|
const canViewTerms = computed(() => access.can('platform:finance:customer-terms:view'))
|
||||||
const canUpdateTerms = computed(() => canViewTerms.value && access.can('platform:finance:customer-terms:update'))
|
const canUpdateTerms = computed(() => canViewTerms.value && access.can('platform:finance:customer-terms:update'))
|
||||||
const queryFields: QueryField[] = [
|
const queryFields: QueryField[] = [
|
||||||
{ key: 'keyword', type: 'input', label: '关键词', width: 260, placeholder: '客户编号/客户名称/联系人/手机号', props: { 'aria-label': '关键词' } },
|
{ key: 'keyword', type: 'input', label: '关键词', width: 260, placeholder: '客户编号/客户名称/联系人/手机号', props: { 'aria-label': '关键词' } },
|
||||||
|
|||||||
@@ -69,9 +69,9 @@ const selectedRows = ref<ArapRow[]>([])
|
|||||||
const page = ref(1)
|
const page = ref(1)
|
||||||
const pageSize = ref(20)
|
const pageSize = ref(20)
|
||||||
|
|
||||||
const canView = computed(() => access.can('platform:finance:customer-arap:list'))
|
const canView = computed(() => access.can('platform:finance:customer-arap:list') || access.can('platform:finance:bill:view'))
|
||||||
const canListCustomers = computed(() => canView.value || access.can('platform:customer:list'))
|
const canListCustomers = computed(() => canView.value || access.can('platform:customer:list'))
|
||||||
const canViewSource = computed(() => canView.value)
|
const canViewSource = computed(() => access.can('platform:finance:fee-source:view') || access.can('platform:finance:bill:view'))
|
||||||
const canReviewSource = computed(() => access.can('platform:finance:fee-source:review'))
|
const canReviewSource = computed(() => access.can('platform:finance:fee-source:review'))
|
||||||
const canSettleSource = computed(() => access.can('platform:finance:fee-source:settlement'))
|
const canSettleSource = computed(() => access.can('platform:finance:fee-source:settlement'))
|
||||||
const canCreateStatement = computed(() => access.can('platform:finance:reconciliation:create'))
|
const canCreateStatement = computed(() => access.can('platform:finance:reconciliation:create'))
|
||||||
|
|||||||
@@ -71,9 +71,9 @@ const adjustStatement = ref<FinanceStatementReadModel | null>(null)
|
|||||||
const adjustReason = ref('')
|
const adjustReason = ref('')
|
||||||
const adjustLines = ref<AdjustmentRow[]>([])
|
const adjustLines = ref<AdjustmentRow[]>([])
|
||||||
|
|
||||||
const canView = computed(() => access.can('platform:finance:customer-statement:list'))
|
const canView = computed(() => access.can('platform:finance:customer-statement:list') || access.can('platform:finance:bill:view'))
|
||||||
const canListCustomers = computed(() => access.can('platform:customer:list'))
|
const canListCustomers = computed(() => access.can('platform:customer:list'))
|
||||||
const canViewFeeSource = computed(() => access.can('platform:finance:customer-arap:list'))
|
const canViewFeeSource = computed(() => access.can('platform:finance:fee-source:view'))
|
||||||
const canCreate = computed(() => access.can('platform:finance:reconciliation:create'))
|
const canCreate = computed(() => access.can('platform:finance:reconciliation:create'))
|
||||||
const canReview = computed(() => access.can('platform:finance:reconciliation:review'))
|
const canReview = computed(() => access.can('platform:finance:reconciliation:review'))
|
||||||
const canIssue = computed(() => access.can('platform:finance:reconciliation:issue'))
|
const canIssue = computed(() => access.can('platform:finance:reconciliation:issue'))
|
||||||
|
|||||||
@@ -66,9 +66,10 @@ const receiptFile = ref<File | null>(null)
|
|||||||
const receiptForm = ref({ receivedDate: new Date().toISOString().slice(0, 10), amount: 0, paymentMethod: 'BANK_TRANSFER' as 'BANK_TRANSFER' | 'CASH' | 'OTHER', remark: '' })
|
const receiptForm = ref({ receivedDate: new Date().toISOString().slice(0, 10), amount: 0, paymentMethod: 'BANK_TRANSFER' as 'BANK_TRANSFER' | 'CASH' | 'OTHER', remark: '' })
|
||||||
const actionBusy = ref(false)
|
const actionBusy = ref(false)
|
||||||
|
|
||||||
|
const viewPermission = computed(() => props.kind === 'receivable' ? 'platform:finance:settlement-ar:view' : 'platform:finance:settlement-ap:view')
|
||||||
const createPermission = computed(() => props.kind === 'receivable' ? 'platform:finance:settlement-ar:create' : 'platform:finance:settlement-ap:create')
|
const createPermission = computed(() => props.kind === 'receivable' ? 'platform:finance:settlement-ar:create' : 'platform:finance:settlement-ap:create')
|
||||||
const listPermission = computed(() => props.kind === 'receivable' ? 'platform:finance:settlement-ar:list' : 'platform:finance:settlement-ap:list')
|
const listPermission = computed(() => props.kind === 'receivable' ? 'platform:finance:settlement-ar:list' : 'platform:finance:settlement-ap:list')
|
||||||
const canView = computed(() => access.can(listPermission.value))
|
const canView = computed(() => access.can(listPermission.value) || access.can(viewPermission.value))
|
||||||
const canListCustomers = computed(() => access.can('platform:customer:list'))
|
const canListCustomers = computed(() => access.can('platform:customer:list'))
|
||||||
const canCreate = computed(() => access.can(createPermission.value))
|
const canCreate = computed(() => access.can(createPermission.value))
|
||||||
const canPay = computed(() => props.kind === 'payable' && access.can('platform:finance:payment:create'))
|
const canPay = computed(() => props.kind === 'payable' && access.can('platform:finance:payment:create'))
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ let receiptBillsRequest = 0
|
|||||||
let costOptionsRequest = 0
|
let costOptionsRequest = 0
|
||||||
|
|
||||||
const title = computed(() => ({ bills: '客户对账单', receipts: '结算单应收', costs: '结算单应付' }[props.mode]))
|
const title = computed(() => ({ bills: '客户对账单', receipts: '结算单应收', costs: '结算单应付' }[props.mode]))
|
||||||
const viewPermission = computed(() => ({ bills: 'platform:finance:customer-statement:list', receipts: 'platform:finance:settlement-ar:list', costs: 'platform:finance:settlement-ap:list' }[props.mode]))
|
const viewPermission = computed(() => ({ bills: 'platform:finance:bill:view', receipts: 'platform:finance:receipt:view', costs: 'platform:finance:cost:view' }[props.mode]))
|
||||||
const createPermission = computed(() => ({ bills: 'platform:finance:bill:create', receipts: 'platform:finance:receipt:create', costs: 'platform:finance:cost:create' }[props.mode]))
|
const createPermission = computed(() => ({ bills: 'platform:finance:bill:create', receipts: 'platform:finance:receipt:create', costs: 'platform:finance:cost:create' }[props.mode]))
|
||||||
const canView = computed(() => access.can(viewPermission.value))
|
const canView = computed(() => access.can(viewPermission.value))
|
||||||
const canCreate = computed(() => Boolean(createPermission.value) && access.can(createPermission.value))
|
const canCreate = computed(() => Boolean(createPermission.value) && access.can(createPermission.value))
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import type { RouteRecordRaw } from 'vue-router'
|
import type { RouteRecordRaw } from 'vue-router'
|
||||||
|
|
||||||
export const financeRoutes = [
|
export const financeRoutes = [
|
||||||
{ path: 'finance/customer-accounts', name: 'finance-customer-accounts', component: () => import('./pages/FinanceCustomerAccountsView.vue'), meta: { title: '客户账户', description: '查看客户 CNY 应收台账并维护独立账期', permission: 'platform:finance:customer-account:list' } },
|
{ path: 'finance/customer-accounts', name: 'finance-customer-accounts', component: () => import('./pages/FinanceCustomerAccountsView.vue'), meta: { title: '客户账户', description: '查看客户 CNY 应收台账并维护独立账期', permission: 'platform:finance:customer-account:list', permissionAnyOf: ['platform:finance:account:view'] } },
|
||||||
{ path: 'finance/customer-accounts/:customerId', name: 'finance-customer-account-detail', component: () => import('./pages/FinanceCustomerAccountsView.vue'), meta: { title: '客户账户详情', description: '查看客户派生财务汇总与账户流水', permission: 'platform:finance:customer-account:list', showPageHeading: false } },
|
{ path: 'finance/customer-accounts/:customerId', name: 'finance-customer-account-detail', component: () => import('./pages/FinanceCustomerAccountsView.vue'), meta: { title: '客户账户详情', description: '查看客户派生财务汇总与账户流水', permission: 'platform:finance:customer-account:list', permissionAnyOf: ['platform:finance:account:view'], showPageHeading: false } },
|
||||||
{ path: 'finance/customer-arap', name: 'finance-customer-arap', component: () => import('./pages/FinanceCustomerArapView.vue'), meta: { title: '客户应收应付', description: '按客户追溯入库单、订单和柜次费用来源', permission: 'platform:finance:customer-arap:list' } },
|
{ path: 'finance/customer-arap', name: 'finance-customer-arap', component: () => import('./pages/FinanceCustomerArapView.vue'), meta: { title: '客户应收应付', description: '按客户追溯入库单、订单和柜次费用来源', permission: 'platform:finance:customer-arap:list', permissionAnyOf: ['platform:finance:bill:view'] } },
|
||||||
{ path: 'finance/customer-arap/:feeSourceId', name: 'finance-customer-arap-detail', component: () => import('./pages/FinanceCustomerArapView.vue'), meta: { title: '费用来源详情', description: '查看费用来源、审核进度、关联业务与操作记录', permission: 'platform:finance:customer-arap:list', showPageHeading: false } },
|
{ path: 'finance/customer-arap/:feeSourceId', name: 'finance-customer-arap-detail', component: () => import('./pages/FinanceCustomerArapView.vue'), meta: { title: '费用来源详情', description: '查看费用来源、审核进度、关联业务与操作记录', permission: 'platform:finance:customer-arap:list', permissionAnyOf: ['platform:finance:bill:view'], showPageHeading: false } },
|
||||||
{ path: 'finance/customer-statements', name: 'finance-customer-statements', component: () => import('./pages/FinanceCustomerStatementsView.vue'), meta: { title: '客户对账单', description: '维护 CNY 客户对账单并在出账后冻结', permission: 'platform:finance:customer-statement:list' } },
|
{ path: 'finance/customer-statements', name: 'finance-customer-statements', component: () => import('./pages/FinanceCustomerStatementsView.vue'), meta: { title: '客户对账单', description: '维护 CNY 客户对账单并在出账后冻结', permission: 'platform:finance:customer-statement:list', permissionAnyOf: ['platform:finance:bill:view'] } },
|
||||||
{ path: 'finance/settlement-receivables', name: 'finance-settlement-receivables', component: () => import('./pages/FinanceSettlementReceivablesView.vue'), meta: { title: '结算单应收', description: '登记客户收款、凭证及对应对账单金额', permission: 'platform:finance:settlement-ar:list' } },
|
{ path: 'finance/settlement-receivables', name: 'finance-settlement-receivables', component: () => import('./pages/FinanceSettlementReceivablesView.vue'), meta: { title: '结算单应收', description: '登记客户收款、凭证及对应对账单金额', permission: 'platform:finance:settlement-ar:list', permissionAnyOf: ['platform:finance:settlement-ar:view'] } },
|
||||||
{ path: 'finance/settlement-receivables/:settlementId', name: 'finance-settlement-receivable-detail', component: () => import('./pages/FinanceSettlementReceivablesView.vue'), meta: { title: '应收结算单详情', description: '查看应收结算信息、费用明细和收款记录', permission: 'platform:finance:settlement-ar:list', showPageHeading: false } },
|
{ path: 'finance/settlement-receivables/:settlementId', name: 'finance-settlement-receivable-detail', component: () => import('./pages/FinanceSettlementReceivablesView.vue'), meta: { title: '应收结算单详情', description: '查看应收结算信息、费用明细和收款记录', permission: 'platform:finance:settlement-ar:list', permissionAnyOf: ['platform:finance:settlement-ar:view'], showPageHeading: false } },
|
||||||
{ path: 'finance/settlement-payables', name: 'finance-settlement-payables', component: () => import('./pages/FinanceSettlementPayablesView.vue'), meta: { title: '结算单应付', description: '登记单票及整柜公共成本并追溯业务来源', permission: 'platform:finance:settlement-ap:list' } },
|
{ path: 'finance/settlement-payables', name: 'finance-settlement-payables', component: () => import('./pages/FinanceSettlementPayablesView.vue'), meta: { title: '结算单应付', description: '登记单票及整柜公共成本并追溯业务来源', permission: 'platform:finance:settlement-ap:list', permissionAnyOf: ['platform:finance:settlement-ap:view'] } },
|
||||||
{ path: 'finance/settlement-payables/:settlementId', name: 'finance-settlement-payable-detail', component: () => import('./pages/FinanceSettlementPayablesView.vue'), meta: { title: '应付结算单详情', description: '查看应付结算信息、费用明细和付款记录', permission: 'platform:finance:settlement-ap:list', showPageHeading: false } },
|
{ path: 'finance/settlement-payables/:settlementId', name: 'finance-settlement-payable-detail', component: () => import('./pages/FinanceSettlementPayablesView.vue'), meta: { title: '应付结算单详情', description: '查看应付结算信息、费用明细和付款记录', permission: 'platform:finance:settlement-ap:list', permissionAnyOf: ['platform:finance:settlement-ap:view'], showPageHeading: false } },
|
||||||
] satisfies RouteRecordRaw[]
|
] satisfies RouteRecordRaw[]
|
||||||
|
|||||||
Reference in New Issue
Block a user