| 
					
				 | 
			
			
				@@ -25,7 +25,6 @@ import TheIcon from "/src/components/The-icon"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { cloneDeep } from "lodash"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import TheSpeed from "./component/the-speed"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { getImage } from "./images"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { Dropdown, Dsubmenu, Doption, Trigger, Input, Select, Option } from "@arco-design/web-vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	NButton, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	NDropdown, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,6 +50,8 @@ import { useRoute } from "vue-router"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { api_musicSheetCreationDetail, api_musicSheetCreationUpdate } from "../api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import instrumentsNames from "/src/constant/instrmentsNames.json"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { ALL_NOTES, NOTE_DOT } from "./noteData"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Close } from "@vicons/ionicons5"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { UseDraggable } from "@vueuse/components"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const allPitches = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"C,,,,", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,6 +187,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			mearseDeleteShow: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			staffShow: false, // 五线谱弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			settingShow: false, // 设置弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			selectMearesShow: false, // 选择小节弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		const data = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			drawCount: 0, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -221,6 +223,11 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			loadingAudioSrouce: false, // 加载音频资源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			/** 移调类型 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			moveKeyType: "inset" as "inset" | "up" | "down", // 移调类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			selectMearesDrag: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				state: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				x: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				y: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}, // 选择小节拖拽状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		const noteTypes = ABC_DATA.types.map((item) => item.value).filter(Boolean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		const accidentals = ABC_DATA.accidentals.map((item) => item.value).filter(Boolean); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -468,7 +475,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				...abcData.abcOptions, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				visualTranspose: abcData.abc.visualTranspose, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			})[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if (data.drawCount <3 ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (data.drawCount < 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				console.log("🚀 ~ visualObj:", abcData.visualObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -478,6 +485,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			const padding = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (let i = 0; i < abcData.visualObj.lines.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				const line = abcData.visualObj.lines[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				console.log("🚀 ~ line:", line); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				for (let j = 0; j < line.staff.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					const staff = line.staff[j]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					const voices = [...staff.voices].flat(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -503,10 +511,6 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			// const annotation = document.querySelectorAll("#paper .abcjs-annotation"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			// annotation.forEach((n) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			// 	n.setAttribute("color", "rgba(0,0,0,0)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			// }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1859,12 +1863,16 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</NSpin> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							<div>{data.playState ? "暂停" : "播放"}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						<div class={[styles.topBtn, styles.btnDisabled]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-							<div class={styles.btnImg}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							class={[styles.topBtn]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							onClick={() => (popup.selectMearesShow = !popup.selectMearesShow)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<div class={[styles.btnImg, popup.selectMearesShow && styles.btnImgActive]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								<img class={styles.topBtnIcon} src={getImage("icon_22.png")} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							<div>选段</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						<div class={[styles.topBtn, styles.btnDisabled]}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 							<div class={styles.btnImg}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 								<img class={styles.topBtnIcon} src={getImage("icon_23.png")} /> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2090,6 +2098,39 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<div ref={downRef}></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				<TheSetting v-model:show={popup.settingShow} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				{/* <UseDraggable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					initialValue={{ x: 320, y: 60 }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					class={[styles.selectMearesBox, !popup.selectMearesShow && styles.selectMearesHidden]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<NSpace justify="space-between"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<div class={styles.btnLineTitle}>输入小节范围</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<NButton circle quaternary size="small" onClick={() => (popup.selectMearesShow = false)}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<NIcon size={16} component={<Close />} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						</NButton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					</NSpace> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<NSpace align="center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<div style={{ width: "200px" }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<NInput pair placeholder={["开始小节", "结束小节"]}></NInput> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<div class={styles.topBtn}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							<NSpin show={data.loadingAudioSrouce} size="small"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								<div class={styles.btnImg} onClick={() => togglePlay(data.playState ? "pause" : "play")}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									<img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										style={{ display: data.playState ? "" : "none" }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										class={styles.topBtnIcon} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										src={getImage("icon_21_1.png")} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									<img 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										style={{ display: data.playState ? "none" : "" }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										class={styles.topBtnIcon} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										src={getImage("icon_21.png")} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							</NSpin> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					</NSpace> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</UseDraggable> */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	}, 
			 |