|  | @@ -412,6 +412,48 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        });
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // 拖拽添加数据
 | 
	
		
			
				|  |  | +    const addDragCoursewareItem = async (item: any, newIndex: number) => {
 | 
	
		
			
				|  |  | +      clearTimeout(timer);
 | 
	
		
			
				|  |  | +      const materialList: any[] = [];
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const { data } = await api_materialDetail(item.materialId);
 | 
	
		
			
				|  |  | +        if (Array.isArray(data.materialRefs)) {
 | 
	
		
			
				|  |  | +          data.materialRefs.forEach((item: any) => {
 | 
	
		
			
				|  |  | +            if (item.refType === 'STRONG') {
 | 
	
		
			
				|  |  | +              const relateMaterialInfo = item.relateMaterialInfo || {};
 | 
	
		
			
				|  |  | +              materialList.push({
 | 
	
		
			
				|  |  | +                content: relateMaterialInfo.content,
 | 
	
		
			
				|  |  | +                coverImg: relateMaterialInfo.coverImg,
 | 
	
		
			
				|  |  | +                isSelected:
 | 
	
		
			
				|  |  | +                  relateMaterialInfo.sourceFrom === 'PLATFORM' ? true : false,
 | 
	
		
			
				|  |  | +                materialId: relateMaterialInfo.id,
 | 
	
		
			
				|  |  | +                title: relateMaterialInfo.name,
 | 
	
		
			
				|  |  | +                type: relateMaterialInfo.type
 | 
	
		
			
				|  |  | +              });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      } catch {
 | 
	
		
			
				|  |  | +        //
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      nextTick(() => {
 | 
	
		
			
				|  |  | +        const array: any = forms.coursewareList[item.index || 0].list || [];
 | 
	
		
			
				|  |  | +        array[newIndex] = item;
 | 
	
		
			
				|  |  | +        materialList.forEach((m: any) => {
 | 
	
		
			
				|  |  | +          array.splice(newIndex + 1, 0, m);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        forms.coursewareList[item.index || 0].list = array;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        console.log(forms.coursewareList, 'courseware add drag');
 | 
	
		
			
				|  |  | +        timer = setTimeout(() => {
 | 
	
		
			
				|  |  | +          // 内容有更新 - 相关资源会刷新
 | 
	
		
			
				|  |  | +          eventGlobal.emit('onCoursewareUpdate');
 | 
	
		
			
				|  |  | +        }, 100);
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // 提交
 | 
	
		
			
				|  |  |      const onSubmit = async () => {
 | 
	
		
			
				|  |  |        try {
 | 
	
	
		
			
				|  | @@ -690,43 +732,44 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                {forms.coursewareList.map((item: any, index: number) => (
 | 
	
		
			
				|  |  |                  <div
 | 
	
		
			
				|  |  |                    class={[styles.listItems, 'row-group']}
 | 
	
		
			
				|  |  | -                  onDragenter={(e: any) => {
 | 
	
		
			
				|  |  | -                    e.preventDefault();
 | 
	
		
			
				|  |  | -                  }}
 | 
	
		
			
				|  |  | -                  onDragover={(e: any) => {
 | 
	
		
			
				|  |  | -                    e.preventDefault();
 | 
	
		
			
				|  |  | -                  }}
 | 
	
		
			
				|  |  | -                  onDrop={(e: any) => {
 | 
	
		
			
				|  |  | -                    let dropItem = e.dataTransfer.getData('text');
 | 
	
		
			
				|  |  | -                    dropItem =
 | 
	
		
			
				|  |  | -                      dropItem && e.dataTransfer.effectAllowed === 'all'
 | 
	
		
			
				|  |  | -                        ? JSON.parse(dropItem)
 | 
	
		
			
				|  |  | -                        : {};
 | 
	
		
			
				|  |  | -                    // 判断是否有数据
 | 
	
		
			
				|  |  | -                    if (dropItem.id) {
 | 
	
		
			
				|  |  | -                      // 获取拖拽的目标元素
 | 
	
		
			
				|  |  | -                      eventGlobal.emit(
 | 
	
		
			
				|  |  | -                        'onPrepareAddItem',
 | 
	
		
			
				|  |  | -                        {
 | 
	
		
			
				|  |  | -                          materialId: dropItem.id,
 | 
	
		
			
				|  |  | -                          coverImg: dropItem.coverImg,
 | 
	
		
			
				|  |  | -                          type: dropItem.type,
 | 
	
		
			
				|  |  | -                          title: dropItem.title,
 | 
	
		
			
				|  |  | -                          refFlag: dropItem.refFlag,
 | 
	
		
			
				|  |  | -                          isCollect: dropItem.isCollect,
 | 
	
		
			
				|  |  | -                          isSelected: dropItem.isSelected,
 | 
	
		
			
				|  |  | -                          content: dropItem.content,
 | 
	
		
			
				|  |  | -                          removeFlag: false,
 | 
	
		
			
				|  |  | -                          index,
 | 
	
		
			
				|  |  | -                          addType: 'drag'
 | 
	
		
			
				|  |  | -                        },
 | 
	
		
			
				|  |  | -                        {
 | 
	
		
			
				|  |  | -                          x: e.clientX,
 | 
	
		
			
				|  |  | -                          y: e.clientY
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                      );
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                  }}>
 | 
	
		
			
				|  |  | +                  // onDragenter={(e: any) => {
 | 
	
		
			
				|  |  | +                  //   e.preventDefault();
 | 
	
		
			
				|  |  | +                  // }}
 | 
	
		
			
				|  |  | +                  // onDragover={(e: any) => {
 | 
	
		
			
				|  |  | +                  //   e.preventDefault();
 | 
	
		
			
				|  |  | +                  // }}
 | 
	
		
			
				|  |  | +                  // onDrop={(e: any) => {
 | 
	
		
			
				|  |  | +                  //   let dropItem = e.dataTransfer.getData('text');
 | 
	
		
			
				|  |  | +                  //   dropItem =
 | 
	
		
			
				|  |  | +                  //     dropItem && e.dataTransfer.effectAllowed === 'all'
 | 
	
		
			
				|  |  | +                  //       ? JSON.parse(dropItem)
 | 
	
		
			
				|  |  | +                  //       : {};
 | 
	
		
			
				|  |  | +                  //   // 判断是否有数据
 | 
	
		
			
				|  |  | +                  //   if (dropItem.id) {
 | 
	
		
			
				|  |  | +                  //     // 获取拖拽的目标元素
 | 
	
		
			
				|  |  | +                  //     eventGlobal.emit(
 | 
	
		
			
				|  |  | +                  //       'onPrepareAddItem',
 | 
	
		
			
				|  |  | +                  //       {
 | 
	
		
			
				|  |  | +                  //         materialId: dropItem.id,
 | 
	
		
			
				|  |  | +                  //         coverImg: dropItem.coverImg,
 | 
	
		
			
				|  |  | +                  //         type: dropItem.type,
 | 
	
		
			
				|  |  | +                  //         title: dropItem.title,
 | 
	
		
			
				|  |  | +                  //         refFlag: dropItem.refFlag,
 | 
	
		
			
				|  |  | +                  //         isCollect: dropItem.isCollect,
 | 
	
		
			
				|  |  | +                  //         isSelected: dropItem.isSelected,
 | 
	
		
			
				|  |  | +                  //         content: dropItem.content,
 | 
	
		
			
				|  |  | +                  //         removeFlag: false,
 | 
	
		
			
				|  |  | +                  //         index,
 | 
	
		
			
				|  |  | +                  //         addType: 'drag'
 | 
	
		
			
				|  |  | +                  //       },
 | 
	
		
			
				|  |  | +                  //       {
 | 
	
		
			
				|  |  | +                  //         x: e.clientX,
 | 
	
		
			
				|  |  | +                  //         y: e.clientY
 | 
	
		
			
				|  |  | +                  //       }
 | 
	
		
			
				|  |  | +                  //     );
 | 
	
		
			
				|  |  | +                  //   }
 | 
	
		
			
				|  |  | +                  // }}
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  |                    <div class={styles.knowledgePoint}>
 | 
	
		
			
				|  |  |                      {/* <div class={styles.btnItem}>
 | 
	
		
			
				|  |  |                        <span class={styles.btnTitle}>
 | 
	
	
		
			
				|  | @@ -805,6 +848,41 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                      // scrollSensitivity={120}
 | 
	
		
			
				|  |  |                      // forceAutoScrollFallback={true}
 | 
	
		
			
				|  |  |                      animation={200}
 | 
	
		
			
				|  |  | +                    // onChange={(evt: any) => {
 | 
	
		
			
				|  |  | +                    //   const added = evt.added;
 | 
	
		
			
				|  |  | +                    //   // 是否为添加
 | 
	
		
			
				|  |  | +                    //   if (!added || (added && !added.element)) {
 | 
	
		
			
				|  |  | +                    //     return;
 | 
	
		
			
				|  |  | +                    //   }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    //   if (added.element.sourceForm !== 'resource-item') {
 | 
	
		
			
				|  |  | +                    //     return;
 | 
	
		
			
				|  |  | +                    //   }
 | 
	
		
			
				|  |  | +                    //   // console.log(forms.coursewareList, 'courseware');
 | 
	
		
			
				|  |  | +                    // }}
 | 
	
		
			
				|  |  | +                    onAdd={(evt: any) => {
 | 
	
		
			
				|  |  | +                      // console.log(
 | 
	
		
			
				|  |  | +                      const list = forms.coursewareList[index].list;
 | 
	
		
			
				|  |  | +                      const dropItem = list[evt.newDraggableIndex];
 | 
	
		
			
				|  |  | +                      console.log(dropItem, 'dropItem');
 | 
	
		
			
				|  |  | +                      if (dropItem.sourceForm === 'resource-item') {
 | 
	
		
			
				|  |  | +                        addDragCoursewareItem(
 | 
	
		
			
				|  |  | +                          {
 | 
	
		
			
				|  |  | +                            materialId: dropItem.id,
 | 
	
		
			
				|  |  | +                            coverImg: dropItem.coverImg,
 | 
	
		
			
				|  |  | +                            type: dropItem.type,
 | 
	
		
			
				|  |  | +                            title: dropItem.title,
 | 
	
		
			
				|  |  | +                            refFlag: dropItem.refFlag,
 | 
	
		
			
				|  |  | +                            isCollect: dropItem.isCollect,
 | 
	
		
			
				|  |  | +                            isSelected: dropItem.isSelected,
 | 
	
		
			
				|  |  | +                            content: dropItem.content,
 | 
	
		
			
				|  |  | +                            removeFlag: false,
 | 
	
		
			
				|  |  | +                            index
 | 
	
		
			
				|  |  | +                          },
 | 
	
		
			
				|  |  | +                          evt.newDraggableIndex
 | 
	
		
			
				|  |  | +                        );
 | 
	
		
			
				|  |  | +                      }
 | 
	
		
			
				|  |  | +                    }}
 | 
	
		
			
				|  |  |                      onDrag={(event: any) => {
 | 
	
		
			
				|  |  |                        // 修复滚动超出范围
 | 
	
		
			
				|  |  |                        const container: any = document.querySelector(
 | 
	
	
		
			
				|  | @@ -817,7 +895,6 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                          window.innerHeight - event.clientY <
 | 
	
		
			
				|  |  |                          sensitivity
 | 
	
		
			
				|  |  |                        ) {
 | 
	
		
			
				|  |  | -                        console.log('1111');
 | 
	
		
			
				|  |  |                          container.scrollTop += 8;
 | 
	
		
			
				|  |  |                        }
 | 
	
		
			
				|  |  |                      }}
 |