|  | @@ -1,5 +1,5 @@
 | 
	
		
			
				|  |  |  import { Row, showToast, showConfirmDialog } from "vant";
 | 
	
		
			
				|  |  | -import { defineComponent, onMounted, reactive, nextTick, ref } from "vue";
 | 
	
		
			
				|  |  | +import { defineComponent, onMounted, onUnmounted, reactive, nextTick, ref } from "vue";
 | 
	
		
			
				|  |  |  import state from "/src/state";
 | 
	
		
			
				|  |  |  import request from "/src/utils/request";
 | 
	
		
			
				|  |  |  import { getQuery } from "/src/utils/queryString";
 | 
	
	
		
			
				|  | @@ -242,6 +242,7 @@ export const filterMoveData = async () => {
 | 
	
		
			
				|  |  |  			showToast("保存成功");
 | 
	
		
			
				|  |  |  			undoData.undoList = [];
 | 
	
		
			
				|  |  |  			undoData.activeItem = null;
 | 
	
		
			
				|  |  | +			state.extStyleConfigJson = JSON.stringify(extStyleConfigJson)
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		clearActiveModel();
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -570,10 +571,21 @@ export default defineComponent({
 | 
	
		
			
				|  |  |  			// 	initSvgId();
 | 
	
		
			
				|  |  |  			// }
 | 
	
		
			
				|  |  |  			// renderForMoveData();
 | 
	
		
			
				|  |  | +			moveData.modelList = []
 | 
	
		
			
				|  |  |  			nextTick(() => initNoteCoord())
 | 
	
		
			
				|  |  | +			// const hasToolDom = Array.from(document.body.children)?.some((item: any) => item?.id === 'toolBox')
 | 
	
		
			
				|  |  | +			// if (!hasToolDom) {
 | 
	
		
			
				|  |  | +			// 	const toolBox = document.getElementById("toolBox");
 | 
	
		
			
				|  |  | +			// 	toolBox && document.body.appendChild(toolBox);
 | 
	
		
			
				|  |  | +			// }
 | 
	
		
			
				|  |  |  			const toolBox = document.getElementById("toolBox");
 | 
	
		
			
				|  |  |  			toolBox && document.body.appendChild(toolBox);
 | 
	
		
			
				|  |  |  		});
 | 
	
		
			
				|  |  | +		onUnmounted(() => {
 | 
	
		
			
				|  |  | +			moveData.modelList = []
 | 
	
		
			
				|  |  | +			const toolBox = document.getElementById("toolBox");
 | 
	
		
			
				|  |  | +			toolBox && document.body.removeChild(toolBox);
 | 
	
		
			
				|  |  | +		})
 | 
	
		
			
				|  |  |  		return () => (
 | 
	
		
			
				|  |  |  			<div class={[moveData.open ? "" : styles.moveDisabled]}>
 | 
	
		
			
				|  |  |  				<div id="toolBox">
 | 
	
	
		
			
				|  | @@ -612,37 +624,41 @@ export default defineComponent({
 | 
	
		
			
				|  |  |  							class={[styles.rightHideIcon, !showToolBox.value ? styles.rightIconShow : '']} 
 | 
	
		
			
				|  |  |  							src={rightHideIcon}
 | 
	
		
			
				|  |  |  							onClick={() => showToolBox.value = true } />
 | 
	
		
			
				|  |  | -					}   */}
 | 
	
		
			
				|  |  | -					<div class={[styles.editToolBox, !moveData.open && styles.itemDisabled]}>					
 | 
	
		
			
				|  |  | -						<div class={[styles.editItem, styles.canEdit]} onClick={switchMoveState}>
 | 
	
		
			
				|  |  | -							<img src={moveData.open ? editCloseIcon : editIcon} />
 | 
	
		
			
				|  |  | -							<span>{moveData.open ? '取消' : '编辑'}</span>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div class={styles.editItem} onClick={filterMoveData}>
 | 
	
		
			
				|  |  | -							<img src={editSaveIcon} />
 | 
	
		
			
				|  |  | -							<span>保存</span>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div class={[styles.editItem, !undoData.undoList.length && styles.disabled]} onClick={handleUndo}>
 | 
	
		
			
				|  |  | -							<img src={editPreIcon} />
 | 
	
		
			
				|  |  | -							<span>撤回</span>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div class={[styles.editItem, moveData.activeIndex <= -1 && styles.disabled]} onClick={handleDeleteMoveNote}>
 | 
	
		
			
				|  |  | -							<img src={editDeleteIcon} />
 | 
	
		
			
				|  |  | -							<span>{moveData.modelList[moveData.activeIndex]?.isDelete ? '回显' : '删除'}</span>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -						<div class={styles.editItem} onClick={resetMoveNote}>
 | 
	
		
			
				|  |  | -							<img src={editResetIcon} />
 | 
	
		
			
				|  |  | -							<span>重置</span>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | +					}   */}	
 | 
	
		
			
				|  |  | +					<div class={[styles.editToolBox, !moveData.open && styles.itemDisabled]}>		
 | 
	
		
			
				|  |  |  						{
 | 
	
		
			
				|  |  | -							moveData.tool.isAddAndSub && 
 | 
	
		
			
				|  |  | -							<div class={styles.extraItem}>
 | 
	
		
			
				|  |  | -								<img src={editReduceIcon} onClick={() => handleAddAndSub('sub')} />
 | 
	
		
			
				|  |  | -								<img src={editAddIcon} onClick={() => handleAddAndSub('add')} />
 | 
	
		
			
				|  |  | -							</div>								
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -																							
 | 
	
		
			
				|  |  | -					</div>
 | 
	
		
			
				|  |  | +							state.musicRenderType === 'staff' && !state.isSingleLine && 
 | 
	
		
			
				|  |  | +							<>
 | 
	
		
			
				|  |  | +								<div class={[styles.editItem, styles.canEdit]} onClick={switchMoveState}>
 | 
	
		
			
				|  |  | +									<img src={moveData.open ? editCloseIcon : editIcon} />
 | 
	
		
			
				|  |  | +									<span>{moveData.open ? '取消' : '编辑'}</span>
 | 
	
		
			
				|  |  | +								</div>
 | 
	
		
			
				|  |  | +								<div class={styles.editItem} onClick={filterMoveData}>
 | 
	
		
			
				|  |  | +									<img src={editSaveIcon} />
 | 
	
		
			
				|  |  | +									<span>保存</span>
 | 
	
		
			
				|  |  | +								</div>
 | 
	
		
			
				|  |  | +								<div class={[styles.editItem, !undoData.undoList.length && styles.disabled]} onClick={handleUndo}>
 | 
	
		
			
				|  |  | +									<img src={editPreIcon} />
 | 
	
		
			
				|  |  | +									<span>撤回</span>
 | 
	
		
			
				|  |  | +								</div>
 | 
	
		
			
				|  |  | +								<div class={[styles.editItem, moveData.activeIndex <= -1 && styles.disabled]} onClick={handleDeleteMoveNote}>
 | 
	
		
			
				|  |  | +									<img src={editDeleteIcon} />
 | 
	
		
			
				|  |  | +									<span>{moveData.modelList[moveData.activeIndex]?.isDelete ? '回显' : '删除'}</span>
 | 
	
		
			
				|  |  | +								</div>
 | 
	
		
			
				|  |  | +								<div class={styles.editItem} onClick={resetMoveNote}>
 | 
	
		
			
				|  |  | +									<img src={editResetIcon} />
 | 
	
		
			
				|  |  | +									<span>重置</span>
 | 
	
		
			
				|  |  | +								</div>
 | 
	
		
			
				|  |  | +								{
 | 
	
		
			
				|  |  | +									moveData.tool.isAddAndSub && 
 | 
	
		
			
				|  |  | +									<div class={styles.extraItem}>
 | 
	
		
			
				|  |  | +										<img src={editReduceIcon} onClick={() => handleAddAndSub('sub')} />
 | 
	
		
			
				|  |  | +										<img src={editAddIcon} onClick={() => handleAddAndSub('add')} />
 | 
	
		
			
				|  |  | +									</div>								
 | 
	
		
			
				|  |  | +								}		
 | 
	
		
			
				|  |  | +							</>						
 | 
	
		
			
				|  |  | +						}										
 | 
	
		
			
				|  |  | +					</div>		
 | 
	
		
			
				|  |  |  				</div>
 | 
	
		
			
				|  |  |  				{moveData.modelList.map((item: any, index: number) => {
 | 
	
		
			
				|  |  |  					return (
 |