fix:【antd】【erp 系统】finance/account 切换默认的逻辑未实现
This commit is contained in:
@@ -51,7 +51,6 @@ export function updateAccount(data: ErpAccountApi.Account) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 修改结算账户默认状态 */
|
/** 修改结算账户默认状态 */
|
||||||
// TODO @芋艿:这里有少迁移的
|
|
||||||
export function updateAccountDefaultStatus(id: number, defaultStatus: boolean) {
|
export function updateAccountDefaultStatus(id: number, defaultStatus: boolean) {
|
||||||
return requestClient.put('/erp/account/update-default-status', null, {
|
return requestClient.put('/erp/account/update-default-status', null, {
|
||||||
params: { id, defaultStatus },
|
params: { id, defaultStatus },
|
||||||
|
|||||||
@@ -49,13 +49,6 @@ export namespace ErpPurchaseInApi {
|
|||||||
supplierId?: number;
|
supplierId?: number;
|
||||||
status?: number;
|
status?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO @nehc:updatePurchaseInStatus 是不是需要?
|
|
||||||
/** 采购入库状态更新参数 */
|
|
||||||
export interface PurchaseInStatusParams {
|
|
||||||
id: number;
|
|
||||||
status: number;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ export namespace ErpStockOutApi {
|
|||||||
customerId?: number;
|
customerId?: number;
|
||||||
status?: number;
|
status?: number;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询其它出库单分页
|
* 查询其它出库单分页
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
import type { VbenFormSchema } from '#/adapter/form';
|
import type { VbenFormSchema } from '#/adapter/form';
|
||||||
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
|
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
|
||||||
|
|
||||||
import { h } from 'vue';
|
|
||||||
|
|
||||||
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
|
import { CommonStatusEnum, DICT_TYPE } from '@vben/constants';
|
||||||
import { getDictOptions } from '@vben/hooks';
|
import { getDictOptions } from '@vben/hooks';
|
||||||
|
|
||||||
import { Tag } from 'ant-design-vue';
|
|
||||||
|
|
||||||
import { z } from '#/adapter/form';
|
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 [
|
return [
|
||||||
{
|
{
|
||||||
field: 'name',
|
field: 'name',
|
||||||
@@ -163,16 +164,12 @@ export function useGridColumns(): VxeTableGridOptions['columns'] {
|
|||||||
field: 'defaultStatus',
|
field: 'defaultStatus',
|
||||||
title: '是否默认',
|
title: '是否默认',
|
||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
slots: {
|
cellRender: {
|
||||||
default: ({ row }) => {
|
attrs: { beforeChange: onDefaultStatusChange },
|
||||||
return h(
|
name: 'CellSwitch',
|
||||||
Tag,
|
props: {
|
||||||
{
|
checkedValue: true,
|
||||||
class: 'mr-1',
|
unCheckedValue: false,
|
||||||
color: row.defaultStatus ? 'blue' : 'red',
|
|
||||||
},
|
|
||||||
() => (row.defaultStatus ? '是' : '否'),
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
|
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
|
||||||
import type { ErpAccountApi } from '#/api/erp/finance/account';
|
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 { downloadFileFromBlobPart } from '@vben/utils';
|
||||||
|
|
||||||
import { message } from 'ant-design-vue';
|
import { message } from 'ant-design-vue';
|
||||||
@@ -12,6 +12,7 @@ import {
|
|||||||
deleteAccount,
|
deleteAccount,
|
||||||
exportAccount,
|
exportAccount,
|
||||||
getAccountPage,
|
getAccountPage,
|
||||||
|
updateAccountDefaultStatus,
|
||||||
} from '#/api/erp/finance/account';
|
} from '#/api/erp/finance/account';
|
||||||
import { $t } from '#/locales';
|
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({
|
const [Grid, gridApi] = useVbenVxeGrid({
|
||||||
formOptions: {
|
formOptions: {
|
||||||
schema: useGridFormSchema(),
|
schema: useGridFormSchema(),
|
||||||
},
|
},
|
||||||
gridOptions: {
|
gridOptions: {
|
||||||
columns: useGridColumns(),
|
columns: useGridColumns(handleDefaultStatusChange),
|
||||||
height: 'auto',
|
height: 'auto',
|
||||||
keepSource: true,
|
keepSource: true,
|
||||||
proxyConfig: {
|
proxyConfig: {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table';
|
|||||||
import type { ErpWarehouseApi } from '#/api/erp/stock/warehouse';
|
import type { ErpWarehouseApi } from '#/api/erp/stock/warehouse';
|
||||||
|
|
||||||
import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui';
|
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';
|
import { message } from 'ant-design-vue';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user