import { defineComponent, reactive, computed } from "vue"; import styles from "./index.module.less" import { headImg } from "../image"; import { headTopData } from "../index" import { Switch, showToast, Field, Popup, Slider } from "vant"; import state, { refreshMusicSvg } from "/src/state" import { api_closeCamera, api_openCamera, api_savePicture } from "/src/helpers/communication"; import { smoothAnimationState} from "/src/page-instrument/view-detail/smoothAnimation" import Recommendation from "../../custom-plugins/helper-model/recommendation"; import { resetRenderMusicScore } from "/src/view/music-score"; import ScreenModel from "../../custom-plugins/helper-model/screen-model"; import { getQuery } from "/src/utils/queryString"; export default defineComponent({ name: "settting", setup() { const query = getQuery(); const helperData = reactive({ screenModelShow: false, // 投屏帮助 recommendationShow: false, // 建议 }); // 加减评测频率 const operateHz = (type: number) => { const minFrequency = state.baseFrequency - 10, maxFrequency = state.baseFrequency + 10 let currentFrequency = state.setting.frequency if (type === 1) { if (currentFrequency - 1 < minFrequency) return showToast({ message: `最低标准音高${minFrequency}HZ` }) currentFrequency = currentFrequency - 1 } else { if (currentFrequency + 1 > maxFrequency) return showToast({ message: `最高标准音高${maxFrequency}HZ` }) currentFrequency = currentFrequency + 1 } state.setting.frequency = currentFrequency >= 0 ? currentFrequency : 0 } const formatterTimeMs = (value: any) => value = String(Math.min(3000, value)); const notationList = computed(() => { const list = state.enableNotation ? [{name:'五线谱',value:'staff'},{name:'首调',value:'firstTone'},{name:'固定谱',value:'fixedTone'}] : [{name:'首调',value:'firstTone'},{name:'固定谱',value:'fixedTone'}]; return list; }); return () => (
{ headTopData.settingMode = false }} />
{ state.isShowFingering && state.fingeringInfo.name && ["practise", "follow"].includes(state.modeType) &&
指法
} { ["practise", "follow"].includes(state.modeType) &&
循环播放
} { state.isSingleLine && state.modeType === "practise" &&
旋律线
} { state.modeType === "evaluating" && <> { !query.workRecord &&
评测难度
{ [{name:'入门',value:"BEGINNER"},{name:'进阶',value:"ADVANCED"},{name:'大师',value:"PERFORMER"}].map(item=>{ return
{ state.setting.evaluationDifficulty = item.value as any } }>{item.name}
}) }
}
延迟检测
摄像头
{ if (value) { const res = await api_openCamera(); // 没有授权 if (res?.content?.reson) { state.setting.camera = false } } else { api_closeCamera(); } }} >
不透明度
{{ button: () =>
{ state.setting.cameraOpacity }
}}
标准音高
operateHz(1)} />
{state.setting.frequency}HZ
operateHz(2)} />
反应时间
毫秒
} {/** 练习模式才有单行/多行谱切换功能,跟练、评测只有单行谱模式 */} { state.modeType === 'practise' ?
切换谱面
{ [{name:'单行谱',value:true},{name:'多行谱',value:false}].map(item=>{ return
{ state.isSingleLine = item.value // resetRenderMusicScore(state.musicRenderType) headTopData.settingMode = false refreshMusicSvg(); // musicScoreRef.value?.refreshMusicScore() } }>{item.name}
}) }
: null } { state.enableNotation || state.specialShowNotation ?
转谱
{ notationList.value.map(item=>{ return
{ state.musicRenderType = item.value as any // resetRenderMusicScore(state.musicRenderType) headTopData.settingMode = false refreshMusicSvg(); } }>{item.name}
}) }
: null }
(helperData.screenModelShow = true)} /> (helperData.recommendationShow = true)} />
{ helperData.recommendationShow = false; }} /> { helperData.screenModelShow = false; }} position="right" teleport="body" > { helperData.screenModelShow = false; }} />
); }, });