feat: 新增财务交易流水模块页面与接口
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
/**
|
||||
* 文件职责:交易流水详情与关联订单抽屉动作。
|
||||
*/
|
||||
import type { FinanceTransactionDetailDto } from '#/api/finance';
|
||||
import type { OrderAllDetailDto } from '#/api/order';
|
||||
|
||||
import { getFinanceTransactionDetailApi } from '#/api/finance';
|
||||
import { getOrderAllDetailApi } from '#/api/order';
|
||||
|
||||
interface DrawerActionOptions {
|
||||
isRelatedOrderDrawerOpen: { value: boolean };
|
||||
isRelatedOrderLoading: { value: boolean };
|
||||
isTransactionDetailLoading: { value: boolean };
|
||||
isTransactionDrawerOpen: { value: boolean };
|
||||
relatedOrderDetail: { value: null | OrderAllDetailDto };
|
||||
selectedStoreId: { value: string };
|
||||
transactionDetail: { value: FinanceTransactionDetailDto | null };
|
||||
}
|
||||
|
||||
/** 创建抽屉动作。 */
|
||||
export function createDrawerActions(options: DrawerActionOptions) {
|
||||
function setTransactionDrawerOpen(value: boolean) {
|
||||
options.isTransactionDrawerOpen.value = value;
|
||||
if (!value) {
|
||||
options.transactionDetail.value = null;
|
||||
}
|
||||
}
|
||||
|
||||
function setRelatedOrderDrawerOpen(value: boolean) {
|
||||
options.isRelatedOrderDrawerOpen.value = value;
|
||||
if (!value) {
|
||||
options.relatedOrderDetail.value = null;
|
||||
}
|
||||
}
|
||||
|
||||
async function openTransactionDetail(transactionId: string) {
|
||||
if (!options.selectedStoreId.value || !transactionId) {
|
||||
return;
|
||||
}
|
||||
|
||||
options.isTransactionDrawerOpen.value = true;
|
||||
options.transactionDetail.value = null;
|
||||
options.isTransactionDetailLoading.value = true;
|
||||
try {
|
||||
options.transactionDetail.value = await getFinanceTransactionDetailApi({
|
||||
storeId: options.selectedStoreId.value,
|
||||
transactionId,
|
||||
});
|
||||
} finally {
|
||||
options.isTransactionDetailLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
async function openRelatedOrder(orderNo: string) {
|
||||
if (!options.selectedStoreId.value || !orderNo) {
|
||||
return;
|
||||
}
|
||||
|
||||
options.isRelatedOrderDrawerOpen.value = true;
|
||||
options.relatedOrderDetail.value = null;
|
||||
options.isRelatedOrderLoading.value = true;
|
||||
try {
|
||||
options.relatedOrderDetail.value = await getOrderAllDetailApi({
|
||||
storeId: options.selectedStoreId.value,
|
||||
orderNo,
|
||||
});
|
||||
} finally {
|
||||
options.isRelatedOrderLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
openRelatedOrder,
|
||||
openTransactionDetail,
|
||||
setRelatedOrderDrawerOpen,
|
||||
setTransactionDrawerOpen,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user