diff --git a/apps/web-antd/src/api/erp/finance/account/index.ts b/apps/web-antd/src/api/erp/finance/account/index.ts index 9d5afaf49..e180af65f 100644 --- a/apps/web-antd/src/api/erp/finance/account/index.ts +++ b/apps/web-antd/src/api/erp/finance/account/index.ts @@ -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 }, diff --git a/apps/web-antd/src/api/erp/purchase/in/index.ts b/apps/web-antd/src/api/erp/purchase/in/index.ts index 03b492a99..f807e2800 100644 --- a/apps/web-antd/src/api/erp/purchase/in/index.ts +++ b/apps/web-antd/src/api/erp/purchase/in/index.ts @@ -49,13 +49,6 @@ export namespace ErpPurchaseInApi { supplierId?: number; status?: number; } - - // TODO @nehc:updatePurchaseInStatus 是不是需要? - /** 采购入库状态更新参数 */ - export interface PurchaseInStatusParams { - id: number; - status: number; - } } /** diff --git a/apps/web-antd/src/api/erp/stock/out/index.ts b/apps/web-antd/src/api/erp/stock/out/index.ts index 5ee1a19fa..2f64ff867 100644 --- a/apps/web-antd/src/api/erp/stock/out/index.ts +++ b/apps/web-antd/src/api/erp/stock/out/index.ts @@ -39,6 +39,7 @@ export namespace ErpStockOutApi { customerId?: number; status?: number; } +} /** * 查询其它出库单分页 diff --git a/apps/web-antd/src/views/erp/finance/account/data.ts b/apps/web-antd/src/views/erp/finance/account/data.ts index 595c3cac3..a93b42b8f 100644 --- a/apps/web-antd/src/views/erp/finance/account/data.ts +++ b/apps/web-antd/src/views/erp/finance/account/data.ts @@ -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( + onDefaultStatusChange?: ( + newStatus: boolean, + row: T, + ) => PromiseLike, +): 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, }, }, }, diff --git a/apps/web-antd/src/views/erp/finance/account/index.vue b/apps/web-antd/src/views/erp/finance/account/index.vue index 52cd2bc72..55dd6e697 100644 --- a/apps/web-antd/src/views/erp/finance/account/index.vue +++ b/apps/web-antd/src/views/erp/finance/account/index.vue @@ -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 { + 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: { diff --git a/apps/web-antd/src/views/erp/stock/warehouse/index.vue b/apps/web-antd/src/views/erp/stock/warehouse/index.vue index 3da5da47e..58d931ed2 100644 --- a/apps/web-antd/src/views/erp/stock/warehouse/index.vue +++ b/apps/web-antd/src/views/erp/stock/warehouse/index.vue @@ -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';