diff --git a/components.d.ts b/components.d.ts index c310fff2..ad9fbed2 100644 --- a/components.d.ts +++ b/components.d.ts @@ -43,6 +43,7 @@ declare module 'vue' { IconWrapper: typeof import('./src/components/IconWrapper.vue')['default'] Input: typeof import('./src/components/Input.vue')['default'] List: typeof import('./src/components/List.vue')['default'] + ListItem: typeof import('./src/components/ListItem.vue')['default'] MiniModal: typeof import('./src/components/MiniModal.vue')['default'] Modal: typeof import('./src/components/Modal/Modal.vue')['default'] Options: typeof import('./src/components/Practice/Options.vue')['default'] diff --git a/src/components/Article/ArticleList.vue b/src/components/Article/ArticleList.vue index e8b3ecf1..8a4c9411 100644 --- a/src/components/Article/ArticleList.vue +++ b/src/components/Article/ArticleList.vue @@ -5,6 +5,7 @@ import Input from "@/components/Input.vue"; import {$computed, $ref} from "vue/macros"; import {cloneDeep, throttle} from "lodash-es"; import {Article} from "@/types.ts"; +import ListItem from "@/components/ListItem.vue"; interface IProps { list: Article[] @@ -19,9 +20,7 @@ const emit = defineEmits<{ 'update:list': [list: Article[]], }>() -let dragItem: Article = $ref({id: ''} as any) let searchKey = $ref('') -let draggable = $ref(false) let localList = $computed({ get() { @@ -41,47 +40,6 @@ let localList = $computed({ } }) -function dragstart(item: Article) { - dragItem = item; -} - -const dragenter = throttle((e, item: Article) => { - // console.log('dragenter', 'item.id', item.id, 'dragItem.id', dragItem.id) - e.preventDefault(); - // 避免源对象触发自身的dragenter事件 - if (dragItem.id && dragItem.id !== item.id) { - let rIndex = props.list.findIndex(v => v.id === dragItem.id) - let rIndex2 = props.list.findIndex(v => v.id === item.id) - // console.log('dragenter', 'item-Index', rIndex2, 'dragItem.index', rIndex) - //这里不能直接用localList splice。不知道为什么会导致有筛选的情况下,多动无法变换位置 - let temp = cloneDeep(props.list) - temp.splice(rIndex, 1); - temp.splice(rIndex2, 0, cloneDeep(dragItem)); - localList = temp; - } -}, 300) - -function dragover(e) { - // console.log('dragover') - e.preventDefault(); -} - -function dragend() { - // console.log('dragend') - draggable = false - dragItem = {id: ''} as Article -} - -function delItem(item: Article) { - if (item.id === props.selectItem.id) { - emit('delSelectItem') - } - let rIndex = props.list.findIndex(v => v.id === item.id) - if (rIndex > -1) { - localList.splice(rIndex, 1) - } -} - let el: HTMLDivElement = $ref() function scrollBottom() { @@ -103,64 +61,16 @@ defineExpose({scrollBottom})