File was renamed from src/templates/zshare/tabdragelement/index.jsx |
| | |
| | | |
| | | const { TabPane } = Tabs |
| | | |
| | | const Container = ({list, type, groupId, placeholder, handleList, handleMenu, deleteMenu, doubleClickCard }) => { |
| | | const Container = ({list, placeholder, handleList, handleMenu, deleteMenu, doubleClickCard }) => { |
| | | let target = null |
| | | const [cards, setCards] = useState(list) |
| | | const moveCard = (id, atIndex) => { |
| | |
| | | if (!card) return |
| | | |
| | | const _cards = update(cards, { $splice: [[index, 1], [atIndex, 0, card]] }) |
| | | handleList(type, _cards, card) |
| | | |
| | | handleList(_cards) |
| | | } |
| | | |
| | | if (!is(fromJS(cards), fromJS(list))) { |
| | |
| | | } |
| | | |
| | | const [, drop] = useDrop({ |
| | | accept: type, |
| | | accept: 'tabs', |
| | | drop(item) { |
| | | if (item.hasOwnProperty('originalIndex')) { |
| | | return |
| | |
| | | newcard.icon = '' |
| | | newcard.type = item.subType |
| | | newcard.linkTab = '' |
| | | newcard.subtabs = [] |
| | | newcard.supMenu = 'mainTable' |
| | | newcard.groupId = groupId |
| | | newcard.focus = true |
| | | |
| | | let targetId = cards.length > 0 ? cards[cards.length - 1].uuid : 0 |
| | |
| | | targetIndex++ |
| | | |
| | | const _cards = update(cards, { $splice: [[targetIndex, 0, newcard]] }) |
| | | handleList(type, _cards, newcard) |
| | | handleList(_cards, newcard) |
| | | target = null |
| | | } |
| | | }) |
| | | |
| | | const edit = (card) => { |
| | | handleMenu(card) |
| | | } |
| | | |
| | | const doubleClickBab = id => { |
| | | const { card } = findCard(id) |
| | | doubleClickCard(card) |
| | | } |
| | | |
| | | const del = (card) => { |
| | | deleteMenu({card: card, type: type}) |
| | | } |
| | | |
| | | return ( |
| | | <div ref={drop} className="ant-row maintable-tab-list"> |
| | | <div ref={drop} className="ant-row model-tab-drag-list"> |
| | | <Tabs defaultActiveKey="0"> |
| | | {cards.map((card, index) => ( |
| | | <TabPane tab={ |
| | |
| | | <Card |
| | | key={card.uuid} |
| | | id={`${card.uuid}`} |
| | | type={type} |
| | | card={card} |
| | | moveCard={moveCard} |
| | | findCard={findCard} |
| | | hasDrop={hasDrop} |
| | | doubleClickCard={doubleClickBab} |
| | | /> |
| | | <Icon className="edit" type="edit" onClick={() => edit(card)} /> |
| | | <Icon className="edit close" type="close" onClick={() => del(card)} /> |
| | | <Icon className="edit" type="edit" onClick={() => handleMenu(card)} /> |
| | | <Icon className="edit close" type="close" onClick={() => deleteMenu(card)} /> |
| | | </div> |
| | | } key={`${index}`}> |
| | | 《{card.label}》标签内容 |