fix:【antd】【erp 系统】finance/account 切换默认的逻辑未实现

This commit is contained in:
YunaiV
2025-10-05 14:19:28 +08:00
parent 8266490674
commit c6bd38f98d
6 changed files with 39 additions and 26 deletions

View File

@@ -51,7 +51,6 @@ export function updateAccount(data: ErpAccountApi.Account) {
}
/** 修改结算账户默认状态 */
// TODO @芋艿:这里有少迁移的
export function updateAccountDefaultStatus(id: number, defaultStatus: boolean) {
return requestClient.put('/erp/account/update-default-status', null, {
params: { id, defaultStatus },

View File

@@ -49,13 +49,6 @@ export namespace ErpPurchaseInApi {
supplierId?: number;
status?: number;
}
// TODO @nehcupdatePurchaseInStatus 是不是需要?
/** 采购入库状态更新参数 */
export interface PurchaseInStatusParams {
id: number;
status: number;
}
}
/**

View File

@@ -39,6 +39,7 @@ export namespace ErpStockOutApi {
customerId?: number;
status?: number;
}
}
/**
* 查询其它出库单分页

View File

@@ -1,13 +1,9 @@
import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import { h } from 'vue';
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
import { Tag } from 'ant-design-vue';
import { z } from '#/adapter/form';
/** 新增/修改的表单 */
@@ -127,7 +123,12 @@ export function useGridFormSchema(): VbenFormSchema[] {
}
/** 列表的字段 */
export function useGridColumns(): VxeTableGridOptions['columns'] {
export function useGridColumns<T = ErpAccountApi.Account>(
onDefaultStatusChange?: (
newStatus: boolean,
row: T,
) => PromiseLike<boolean | undefined>,
): VxeTableGridOptions['columns'] {
return [
{
field: 'name',
@@ -163,16 +164,12 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
field: 'defaultStatus',
title: '是否默认',
minWidth: 100,
slots: {
default: ({ row }) => {
return h(
Tag,
{
class: 'mr-1',
color: row.defaultStatus ? 'blue' : 'red',
},
() => (row.defaultStatus ? '是' : '否'),
);
cellRender: {
attrs: { beforeChange: onDefaultStatusChange },
name: 'CellSwitch',
props: {
checkedValue: true,
unCheckedValue: false,
},
},
},

View File

@@ -2,7 +2,7 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { ErpAccountApi } from '#/api/erp/finance/account';
import { DocAlert, Page, useVbenModal } from '@vben/common-ui';
import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui';
import { downloadFileFromBlobPart } from '@vben/utils';
import { message } from 'ant-design-vue';
@@ -12,6 +12,7 @@ import {
deleteAccount,
exportAccount,
getAccountPage,
updateAccountDefaultStatus,
} from '#/api/erp/finance/account';
import { $t } from '#/locales';
@@ -59,12 +60,34 @@ async function handleDelete(row: ErpAccountApi.Account) {
}
}
/** 修改默认状态 */
async function handleDefaultStatusChange(
newStatus: boolean,
row: ErpAccountApi.Account,
): Promise<boolean | undefined> {
return new Promise((resolve, reject) => {
const text = newStatus ? '设置' : '取消';
confirm({
content: `确认要${text}"${row.name}"默认吗?`,
})
.then(async () => {
// 更新默认状态
await updateAccountDefaultStatus(row.id!, newStatus);
message.success(`${text}默认成功`);
resolve(true);
})
.catch(() => {
reject(new Error('取消操作'));
});
});
}
const [Grid, gridApi] = useVbenVxeGrid({
formOptions: {
schema: useGridFormSchema(),
},
gridOptions: {
columns: useGridColumns(),
columns: useGridColumns(handleDefaultStatusChange),
height: 'auto',
keepSource: true,
proxyConfig: {

View File

@@ -3,7 +3,7 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { ErpWarehouseApi } from '#/api/erp/stock/warehouse';
import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui';
import { downloadFileFromBlobPart, isEmpty } from '@vben/utils';
import { downloadFileFromBlobPart } from '@vben/utils';
import { message } from 'ant-design-vue';