应收账单模块,调整枚举代码优化2
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
/**
|
||||
* 应收模块业务枚举。
|
||||
*
|
||||
* <p>value 必须与后端和数据库保存的英文编码保持一致,label 是面向用户的中文解释,
|
||||
* type 用于统一 Element Plus 标签颜色。</p>
|
||||
*/
|
||||
|
||||
/** 应收账单生命周期状态。 */
|
||||
export const AR_BILL_STATUS = Object.freeze({
|
||||
DRAFT: 'DRAFT', // 草稿:已生成,待确认
|
||||
CONFIRMED: 'CONFIRMED', // 已确认:正式应收,待核销
|
||||
PARTIAL_WRITTEN_OFF: 'PARTIAL_WRITTEN_OFF', // 部分核销:已核销部分金额
|
||||
WRITTEN_OFF: 'WRITTEN_OFF', // 已核销:账单金额全部核销
|
||||
VOID: 'VOID' // 已作废:账单失效,来源订单可重新出账
|
||||
})
|
||||
|
||||
export const AR_BILL_STATUS_OPTIONS = Object.freeze([
|
||||
{ label: '草稿', value: AR_BILL_STATUS.DRAFT },
|
||||
{ label: '已确认', value: AR_BILL_STATUS.CONFIRMED },
|
||||
{ label: '部分核销', value: AR_BILL_STATUS.PARTIAL_WRITTEN_OFF },
|
||||
{ label: '已核销', value: AR_BILL_STATUS.WRITTEN_OFF },
|
||||
{ label: '已作废', value: AR_BILL_STATUS.VOID }
|
||||
])
|
||||
|
||||
export const AR_BILL_STATUS_TYPES = Object.freeze({
|
||||
[AR_BILL_STATUS.DRAFT]: 'info',
|
||||
[AR_BILL_STATUS.CONFIRMED]: 'primary',
|
||||
[AR_BILL_STATUS.PARTIAL_WRITTEN_OFF]: 'warning',
|
||||
[AR_BILL_STATUS.WRITTEN_OFF]: 'success',
|
||||
[AR_BILL_STATUS.VOID]: 'danger'
|
||||
})
|
||||
|
||||
/** 日志状态变化的兼容展示。日志是通用表,除账单状态外还可能保留历史收款状态。 */
|
||||
export const AR_LOG_STATUS_OPTIONS = Object.freeze([
|
||||
...AR_BILL_STATUS_OPTIONS,
|
||||
{ label: '已登记(历史收款)', value: 'REGISTERED' },
|
||||
{ label: '有效(余额核销)', value: 'EFFECTIVE' },
|
||||
{ label: '已取消/已反核销', value: 'CANCELLED' }
|
||||
])
|
||||
|
||||
/** 客户余额核销单状态。 */
|
||||
export const AR_BALANCE_WRITEOFF_STATUS = Object.freeze({
|
||||
EFFECTIVE: 'EFFECTIVE', // 有效:已扣减客户余额并完成核销
|
||||
CANCELLED: 'CANCELLED' // 已反核销:已回补客户余额
|
||||
})
|
||||
|
||||
export const AR_BALANCE_WRITEOFF_STATUS_OPTIONS = Object.freeze([
|
||||
{ label: '有效', value: AR_BALANCE_WRITEOFF_STATUS.EFFECTIVE },
|
||||
{ label: '已反核销', value: AR_BALANCE_WRITEOFF_STATUS.CANCELLED }
|
||||
])
|
||||
|
||||
export const AR_BALANCE_WRITEOFF_STATUS_TYPES = Object.freeze({
|
||||
[AR_BALANCE_WRITEOFF_STATUS.EFFECTIVE]: 'success',
|
||||
[AR_BALANCE_WRITEOFF_STATUS.CANCELLED]: 'info'
|
||||
})
|
||||
|
||||
/** 账单导出文件状态。 */
|
||||
export const AR_EXPORT_STATUS = Object.freeze({
|
||||
PROCESSING: 'PROCESSING', // 生成中:文件尚未生成完成
|
||||
SUCCESS: 'SUCCESS', // 成功:文件可以下载
|
||||
FAILED: 'FAILED' // 失败:文件生成失败
|
||||
})
|
||||
|
||||
export const AR_EXPORT_STATUS_OPTIONS = Object.freeze([
|
||||
{ label: '生成中', value: AR_EXPORT_STATUS.PROCESSING },
|
||||
{ label: '成功', value: AR_EXPORT_STATUS.SUCCESS },
|
||||
{ label: '失败', value: AR_EXPORT_STATUS.FAILED }
|
||||
])
|
||||
|
||||
export const AR_EXPORT_STATUS_TYPES = Object.freeze({
|
||||
[AR_EXPORT_STATUS.PROCESSING]: 'warning',
|
||||
[AR_EXPORT_STATUS.SUCCESS]: 'success',
|
||||
[AR_EXPORT_STATUS.FAILED]: 'danger'
|
||||
})
|
||||
|
||||
/** 应收日志关联的业务对象类型。 */
|
||||
export const AR_LOG_OBJECT_TYPE = Object.freeze({
|
||||
BILL: 'BILL', // 应收账单
|
||||
EXPORT: 'EXPORT', // 账单导出文件
|
||||
BALANCE_WRITEOFF: 'BALANCE_WRITEOFF' // 客户余额核销单
|
||||
})
|
||||
|
||||
export const AR_LOG_OBJECT_TYPE_OPTIONS = Object.freeze([
|
||||
{ label: '应收账单', value: AR_LOG_OBJECT_TYPE.BILL },
|
||||
{ label: '账单导出', value: AR_LOG_OBJECT_TYPE.EXPORT },
|
||||
{ label: '余额核销', value: AR_LOG_OBJECT_TYPE.BALANCE_WRITEOFF }
|
||||
])
|
||||
|
||||
/** 应收日志记录的业务操作类型。 */
|
||||
export const AR_LOG_OPERATION_TYPE = Object.freeze({
|
||||
CREATE: 'CREATE', // 生成正式账单成功
|
||||
GENERATE: 'GENERATE', // 生成账单前校验或生成失败
|
||||
CONFIRM: 'CONFIRM', // 确认草稿账单
|
||||
VOID: 'VOID', // 作废账单
|
||||
EXPORT: 'EXPORT', // 生成账单导出文件
|
||||
BALANCE_WRITEOFF: 'BALANCE_WRITEOFF', // 使用客户余额核销账单
|
||||
CANCEL_BALANCE_WRITEOFF: 'CANCEL_BALANCE_WRITEOFF' // 取消余额核销并回补余额
|
||||
})
|
||||
|
||||
export const AR_LOG_OPERATION_TYPE_OPTIONS = Object.freeze([
|
||||
{ label: '生成账单', value: AR_LOG_OPERATION_TYPE.CREATE },
|
||||
{ label: '生成账单校验', value: AR_LOG_OPERATION_TYPE.GENERATE },
|
||||
{ label: '确认账单', value: AR_LOG_OPERATION_TYPE.CONFIRM },
|
||||
{ label: '作废账单', value: AR_LOG_OPERATION_TYPE.VOID },
|
||||
{ label: '导出账单', value: AR_LOG_OPERATION_TYPE.EXPORT },
|
||||
{ label: '余额核销', value: AR_LOG_OPERATION_TYPE.BALANCE_WRITEOFF },
|
||||
{ label: '取消余额核销', value: AR_LOG_OPERATION_TYPE.CANCEL_BALANCE_WRITEOFF }
|
||||
])
|
||||
|
||||
/** 应收日志产生来源。 */
|
||||
export const AR_LOG_OPERATION_SOURCE = Object.freeze({
|
||||
WEB: 'WEB', // 网页端操作
|
||||
API: 'API', // 系统接口调用
|
||||
JOB: 'JOB', // 定时任务或后台作业
|
||||
IMPORT: 'IMPORT' // 数据导入
|
||||
})
|
||||
|
||||
export const AR_LOG_OPERATION_SOURCE_OPTIONS = Object.freeze([
|
||||
{ label: '网页端', value: AR_LOG_OPERATION_SOURCE.WEB },
|
||||
{ label: '接口', value: AR_LOG_OPERATION_SOURCE.API },
|
||||
{ label: '定时任务', value: AR_LOG_OPERATION_SOURCE.JOB },
|
||||
{ label: '数据导入', value: AR_LOG_OPERATION_SOURCE.IMPORT }
|
||||
])
|
||||
|
||||
/** 应收日志执行结果。 */
|
||||
export const AR_LOG_RESULT = Object.freeze({
|
||||
SUCCESS: 'SUCCESS', // 操作成功
|
||||
FAILED: 'FAILED' // 操作失败
|
||||
})
|
||||
|
||||
export const AR_LOG_RESULT_OPTIONS = Object.freeze([
|
||||
{ label: '成功', value: AR_LOG_RESULT.SUCCESS },
|
||||
{ label: '失败', value: AR_LOG_RESULT.FAILED }
|
||||
])
|
||||
|
||||
export const AR_LOG_RESULT_TYPES = Object.freeze({
|
||||
[AR_LOG_RESULT.SUCCESS]: 'success',
|
||||
[AR_LOG_RESULT.FAILED]: 'danger'
|
||||
})
|
||||
|
||||
/** 从枚举选项中取得中文名称,未知值保留原编码便于排查数据。 */
|
||||
export function arEnumLabel(options, value) {
|
||||
if (value === null || value === undefined || value === '') return '-'
|
||||
return options.find(item => item.value === value)?.label || value
|
||||
}
|
||||
Reference in New Issue
Block a user