| 
					
				 | 
			
			
				@@ -4,7 +4,8 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   nextTick, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   onMounted, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   reactive, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ref 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ref, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  toRef 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from './index.module.less'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { NTabs, NTabPane, NModal } from 'naive-ui'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -16,7 +17,9 @@ import ResourceItem from './components/resource-item'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TrainUpdate from '/src/views/attend-class/model/train-update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import requestOrigin from 'umi-request'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { eventGlobal } from '/src/utils'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import useDrag from '@/hooks/useDrag'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Dragbom from '@/hooks/useDrag/dragbom'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { useUserStore } from '@/store/modules/users'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: 'resource-main', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   props: { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -24,6 +27,11 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     cardType: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       type: String as PropType<'' | 'homerowk-record' | 'prepare'>, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       default: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    from: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 来自哪里 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: String, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   setup(props, { expose }) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -79,7 +87,40 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onMounted(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       resetTabPosition(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 弹窗拖动 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 曲目资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let selectResourceStatusAddBoxDragData: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let selectResourceStatusAddBoxClass: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (props.from === 'class') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const users = useUserStore(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectResourceStatusAddBoxClass = 'selectResourceStatusAddBoxClass_drag'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectResourceStatusAddBoxDragData = useDrag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `${selectResourceStatusAddBoxClass} .select-resource>.n-tabs>.n-tabs-nav--top.n-tabs-nav`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `${selectResourceStatusAddBoxClass} .bom_drag` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectResourceStatusAddBoxClass, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        toRef(forms, 'selectMusicStatus'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        users.info.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 曲目资源 作业设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let workSetingBoxDragData: any; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let workSetingBoxClass: string; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (props.from === 'class') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const users = useUserStore(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      workSetingBoxClass = 'workSetingBoxClass_drag'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      workSetingBoxDragData = useDrag( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `${workSetingBoxClass}>.n-card-header`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          `${workSetingBoxClass} .bom_drag` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        workSetingBoxClass, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        toRef(forms, 'editStatus'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        users.info.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     expose({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       resetTabPosition 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,13 +222,22 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               default: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NTabPane name="myMusic" tab="我的曲目"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <SelectMusic cardType={props.cardType} type="myMusic" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <SelectMusic 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      from={props.from} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      cardType={props.cardType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      type="myMusic" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   </NTabPane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NTabPane name="sahreMusic" tab="共享曲目"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <SelectMusic cardType={props.cardType} type="sahreMusic" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <SelectMusic 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      from={props.from} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      cardType={props.cardType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      type="sahreMusic" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   </NTabPane> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   <NTabPane name="collectMusic" tab="收藏曲目"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <SelectMusic 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      from={props.from} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       cardType={props.cardType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       type="collectMusic" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     /> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -211,20 +261,40 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            props.from === 'class' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ? selectResourceStatusAddBoxDragData.styleDrag.value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              : {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           v-model:show={forms.selectMusicStatus} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           onUpdate:show={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!val) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               prepareStore.setSelectMusicStatus(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle', styles.selectMusicModal]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'modalTitle', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            styles.selectMusicModal, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            selectResourceStatusAddBoxClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           title={'选择曲目'}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          <SelectMusicModal onAdd={(item: any) => onAdd(item)} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <SelectMusicModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            from={props.from} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onAdd={(item: any) => onAdd(item)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          {props.from === 'class' && <Dragbom class={styles.dragbom}></Dragbom>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <NModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            props.from === 'class' ? workSetingBoxDragData.styleDrag.value : {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           v-model:show={forms.editStatus} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          class={['modalTitle background', styles.trainEditModal]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          class={[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            'modalTitle background', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            styles.trainEditModal, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            workSetingBoxClass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           preset="card" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           title="作业设置"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           <TrainUpdate 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -244,6 +314,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               eventGlobal.emit('onTrainAddItem', train); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          {props.from === 'class' && <Dragbom class={styles.dragbom}></Dragbom>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </NModal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 |