From 1e4a7720c748bc0206b02b30f4a2e0b3dafb54f3 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 19 二月 2024 13:31:13 +0800 Subject: [PATCH] 2024-02-19 --- src/menu/components/share/searchcomponent/dragsearch/index.jsx | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 57 insertions(+), 1 deletions(-) diff --git a/src/menu/components/share/searchcomponent/dragsearch/index.jsx b/src/menu/components/share/searchcomponent/dragsearch/index.jsx index 36d7603..87b345e 100644 --- a/src/menu/components/share/searchcomponent/dragsearch/index.jsx +++ b/src/menu/components/share/searchcomponent/dragsearch/index.jsx @@ -44,6 +44,13 @@ let _val = fromJS(copycard).toJS() try { + delete _val.$srcId + + let srcid = localStorage.getItem(window.location.href.split('#')[0] + 'srcId') + if (srcid) { + _val.$srcId = srcid + } + _val.uuid = Utils.getuuid() _val = window.btoa(window.encodeURIComponent(JSON.stringify(_val))) } catch (e) { @@ -74,7 +81,56 @@ const [, drop] = useDrop({ accept: 'search', - drop() {} + drop(item) { + if (item.hasOwnProperty('originalIndex')) { + return + } + + let newcard = {} + newcard.uuid = Utils.getuuid() + newcard.focus = true + + newcard.label = 'label' + newcard.initval = '' + newcard.type = item.subType + newcard.resourceType = '0' + newcard.options = [] + newcard.orderType = 'asc' + + let _match = 'like' + if (['select', 'link', 'checkcard'].includes(item.subType)) { + _match = '=' + } else if (['date', 'datemonth'].includes(item.subType)) { + _match = '>=' + } else if (['dateweek', 'daterange', 'range'].includes(item.subType)) { + _match = 'between' + } else if (item.subType === 'group') { + _match = 'between' + newcard.items = ['day', 'week', 'month', 'quarter', 'year', 'customized'] + } + + newcard.match = _match + + let targetId = '' + + if (item.dropTargetId) { + targetId = item.dropTargetId + delete item.dropTargetId + } else if (cards.length > 0) { + targetId = cards[cards.length - 1].uuid + } + + const { index: overIndex, card } = findCard(`${targetId}`) + + if (card) { + newcard.ratio = card.ratio || 6 + newcard.labelwidth = card.labelwidth || 33.3 + } + + const _cards = update(cards, { $splice: [[overIndex + 1, 0, newcard]] }) + + handleList(_cards, newcard) + } }) return ( -- Gitblit v1.8.0