b1610e6994
* fix: bug * test: kanban test * test: gantt block test * test: gantt test * test: gantt test * test: gantt test * refactor: convert parameters to destructured object * test: add tests choices * test: add tests media * test: add tests for datetime in creating form * feat(plugin-mock-collection): generate faker time * test: add tests for datetime in editing form * test: add tests for datetime in details form * test: gantt block test * test: gantt test * test: gantt test * test: gantt test * fix: bug * feat: improve code * test: add tests for relation fields * refactor: style improve * fix: rename SchemaSettings * fix: type bug * refactor: useDesinger() * fix: bug * fix: bug * fix: build tip * refactor: kanban setting * refactor: gantt setting * refactor: bulk update setting * refactor: bulk update setting * refactor: bulk edit settings * refactor: duplicate settings * refactor: print action setting * refactor: duplicate settings * refactor: bulk update refactor * refactor: bulk update refactor * fix: designableState * fix: bug * fix: designable * refactor: bulk update * fix: designable * test: add tests for relation fields * test: add tests for relation fields * test: add tests for relation fields * feat: client api doc * test: add tests for relation fields * test: avoid errors * test: make tests passing * fix: bug * test: gantt test * test: make tests passing * test: add tests for advanced fields * test: increase e2e timeout-minutes to 60 * fix: bug * fix: improve code * feat: add schema initailizer component demos * test: make tests passing * fix: schema settings demos * feat: shallowMerge & deepMerge * test: reduce number of tests * test: make tests passing * feat: updates * fix: add Initializer Internal * demos: useSchemaSettingsRender * test: make tests passing * test: make tests passing * test: bulk update test * refactor: useSchemaToolbar * fix: improve docs * fix: bug * test: duplicate action test * test: duplicate action test * test: duplicate action test * test: duplicate action test * chore: upgrade dumi theme * test: make tests passing * test: add tests for linkage rules * test: add test for form data templates * test: add tests for default value * test: reduce number of tests * refactor: bulk edit setting * test: bulk edit action test * test: bulk edit action test * fix: dn.deepMerge * fix: bug * test: bulk edit action test * test: kanban test * refactor: bulk update version * refactor: print action version * fix: bug * fix: toolbar * fix: docs ssr * test: add tests for system fields * test: add tests for actions * fix: bug * test: add tests for lazy loading of variables * test: make testing more stable * test: bulk edit test * test: bulk update action test * fix: update docs * test: print test * test: kanban test * test: kanban test * refactor: duplicate version * fix: merge bug * refactor: bulk update * fix: merge bug * refactor: bulk edit * refactor: import * refactor: export action * refactor: code improve * refactor: kanban code improve * fix: merge bug * refactor: readPrettyFormActionInitializers * test: print action test * test: print action test * refactor: print action * test: action test * refactor: gantt date change * style: gantt style improve * test: gantt &bulkUpdate test * test: bulk update test * test: duplicate action test * test: print action test * test: bulk edit action test * test: gantt block test * test: kanban block test * test: test file name * test: test file name * test: bulk update action tst * refactor: rename test file name * refactor: bulk update action * refactor: gantt test * fix: block template * fix: block template * fix: useFieldModeOptions * refactor: code improve * fix: merge bug --------- Co-authored-by: dream2023 <1098626505@qq.com> Co-authored-by: Rain <958414905@qq.com> Co-authored-by: chenos <chenlinxh@gmail.com>
129 lines
2.8 KiB
TypeScript
129 lines
2.8 KiB
TypeScript
import '@asseinfo/react-kanban/dist/styles.css';
|
|
import { Button } from 'antd';
|
|
import React, { useState } from 'react';
|
|
import Board from './Board';
|
|
import { addCard, moveCard, removeCard } from './helpers';
|
|
|
|
const board = {
|
|
columns: [
|
|
{
|
|
id: 1,
|
|
title: 'Backlog',
|
|
cards: [
|
|
{
|
|
id: 1,
|
|
title: 'Card title 1',
|
|
description: 'Card content',
|
|
},
|
|
{
|
|
id: 2,
|
|
title: 'Card title 2',
|
|
description: 'Card content',
|
|
},
|
|
{
|
|
id: 3,
|
|
title: 'Card title 3',
|
|
description: 'Card content',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 2,
|
|
title: 'Doing',
|
|
cards: [
|
|
{
|
|
id: 9,
|
|
title: 'Card title 9',
|
|
description: 'Card content',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 3,
|
|
title: 'Q&A',
|
|
cards: [
|
|
{
|
|
id: 10,
|
|
title: 'Card title 10',
|
|
description: 'Card content',
|
|
},
|
|
{
|
|
id: 11,
|
|
title: 'Card title 11',
|
|
description: 'Card content',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: 4,
|
|
title: 'Production',
|
|
cards: [
|
|
{
|
|
id: 12,
|
|
title: 'Card title 12',
|
|
description: 'Card content',
|
|
},
|
|
{
|
|
id: 13,
|
|
title: 'Card title 13',
|
|
description: 'Card content',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
|
|
function UncontrolledBoard() {
|
|
const [controlledBoard, setBoard] = useState(board);
|
|
function handleCardMove(card, source, destination) {
|
|
const updatedBoard = moveCard(controlledBoard, source, destination);
|
|
setBoard(updatedBoard);
|
|
}
|
|
function handleCardRemove(card, column) {
|
|
const updatedBoard = removeCard(controlledBoard, column, card);
|
|
setBoard(updatedBoard);
|
|
}
|
|
return (
|
|
<Board
|
|
disableColumnDrag
|
|
allowRemoveCard
|
|
allowAddCard={{ on: 'bottom' }}
|
|
onLaneRemove={console.log}
|
|
onCardRemove={handleCardRemove}
|
|
onCardDragEnd={handleCardMove}
|
|
onLaneRename={console.log}
|
|
cardAdderPosition={'bottom'}
|
|
onNewCardConfirm={(draftCard) => draftCard}
|
|
onCardNew={console.log}
|
|
renderCardAdder={({ column }) => {
|
|
return (
|
|
<Button
|
|
block
|
|
type={'text'}
|
|
onClick={() => {
|
|
const updatedBoard = addCard(controlledBoard, column, {
|
|
id: new Date().getTime(),
|
|
title: 'Card title ' + new Date().getTime(),
|
|
description: 'Card content',
|
|
});
|
|
setBoard(updatedBoard);
|
|
}}
|
|
>
|
|
添加卡片
|
|
</Button>
|
|
);
|
|
}}
|
|
>
|
|
{controlledBoard}
|
|
</Board>
|
|
);
|
|
}
|
|
|
|
export function Kanban() {
|
|
return (
|
|
<>
|
|
<UncontrolledBoard />
|
|
</>
|
|
);
|
|
}
|