diff --git a/packages/amis-ui/scss/_properties.scss b/packages/amis-ui/scss/_properties.scss index 64707a81694..ba0362c073e 100644 --- a/packages/amis-ui/scss/_properties.scss +++ b/packages/amis-ui/scss/_properties.scss @@ -5,11 +5,13 @@ $remFactor: 16px; /* 此处放置需要override的变量,因为部分变量已经在variables.scss中定义 */ $Table-strip-bg: transparent; -:root, -.AMISCSSWrapper { +:root { --affix-offset-top: 0px; --affix-offset-bottom: 0px; +} +:root, +.AMISCSSWrapper { --white: var(--colors-neutral-text-11); --primary: var(--colors-brand-5); --primary-onHover: var(--colors-brand-6); diff --git a/packages/amis/__tests__/renderers/Table.test.tsx b/packages/amis/__tests__/renderers/Table.test.tsx index 5821c87f09e..86d86def592 100644 --- a/packages/amis/__tests__/renderers/Table.test.tsx +++ b/packages/amis/__tests__/renderers/Table.test.tsx @@ -1243,3 +1243,78 @@ test('Renderer:table-column-quickEdit-inline', async () => { expect(container.querySelector('.is-checked')).toBeInTheDocument(); }); }); + +test('Renderer:table-column-quickEdit-saveImmediately', async () => { + const fetcher = jest + .fn() + .mockImplementation(() => + Promise.resolve({status: 200, data: {status: 0, msg: 'ok'}}) + ); + const {container, getByText} = render( + amisRender( + { + type: 'table', + title: '表格', + data: { + items: [ + { + engine: 'Trident - wixp4', + browser: 'Internet Explorer 4.0', + platform: 'Win 95+', + version: '4', + grade: 'X', + badgeText: '默认', + id: 1 + } + ] + }, + columns: [ + { + name: 'engine', + label: 'Engine', + id: 'u:2e5658776790' + }, + { + name: 'version', + label: 'Version', + id: 'u:5c41ffc2ecb0', + quickEdit: { + type: 'input-text', + saveImmediately: { + api: '/api/mock2/saveImmediately/${id}' + } + } + } + ] + }, + {}, + makeEnv({ + fetcher: fetcher + }) + ) + ); + + await wait(200); + const btn = container.querySelector('.cxd-Field-quickEditBtn'); + expect(btn).toBeInTheDocument(); + fireEvent.click(btn!); + await wait(200); + const input = container.querySelector('input[name=version]'); + expect(input).toBeInTheDocument(); + fireEvent.change(input!, {target: {value: '5'}}); + + await wait(200); + expect(getByText('确认')).toBeInTheDocument(); + fireEvent.click(getByText('确认')); + await wait(500); + expect(fetcher).toBeCalledTimes(1); + expect(fetcher.mock.calls[0][0].data).toMatchObject({ + engine: 'Trident - wixp4', + browser: 'Internet Explorer 4.0', + platform: 'Win 95+', + version: '5', + grade: 'X', + badgeText: '默认', + id: 1 + }); +}); diff --git a/packages/amis/src/renderers/Cards.tsx b/packages/amis/src/renderers/Cards.tsx index e6f0d7d7f63..11acc98234d 100644 --- a/packages/amis/src/renderers/Cards.tsx +++ b/packages/amis/src/renderers/Cards.tsx @@ -430,7 +430,7 @@ export default class Cards extends React.Component { api: saveImmediately.api, reload: options?.reload }, - values + item.locals ); return; } diff --git a/packages/amis/src/renderers/List.tsx b/packages/amis/src/renderers/List.tsx index 86fb95d0629..27359d69791 100644 --- a/packages/amis/src/renderers/List.tsx +++ b/packages/amis/src/renderers/List.tsx @@ -496,7 +496,7 @@ export default class List extends React.Component { api: saveImmediately.api, reload: options?.reload }, - values + item.locals ); return; } diff --git a/packages/amis/src/renderers/Table/index.tsx b/packages/amis/src/renderers/Table/index.tsx index e4fce6a367e..77052364cad 100644 --- a/packages/amis/src/renderers/Table/index.tsx +++ b/packages/amis/src/renderers/Table/index.tsx @@ -1149,7 +1149,7 @@ export default class Table extends React.Component { api: saveImmediately.api, reload: options?.reload }, - values + item.locals ); return; } diff --git a/packages/amis/src/renderers/Table2/index.tsx b/packages/amis/src/renderers/Table2/index.tsx index 693131efa01..2317daaf761 100644 --- a/packages/amis/src/renderers/Table2/index.tsx +++ b/packages/amis/src/renderers/Table2/index.tsx @@ -1161,7 +1161,7 @@ export default class Table2 extends React.Component { api: saveImmediately.api, reload: options?.reload }, - values + item.locals ); return; }