@@ -7,6 +7,7 @@ import { addVersionList, genreList, showNeedPurchaseDialog } from "@/store/refs"
77import GenreInput from "@/components/GenreInput" ;
88import VersionInput from "@/components/VersionInput" ;
99import { UTAGE_GENRE } from "@/consts" ;
10+ import MusicIdConflictNotifier from "@/components/MusicIdConflictNotifier" ;
1011
1112export default defineComponent ( {
1213 props : {
@@ -77,73 +78,73 @@ export default defineComponent({
7778 </ NFlex >
7879 </ NScrollbar >
7980 { ! ! props . meta . length && < >
80- 为新导入的歌曲指定 ID
81- < NScrollbar class = "max-h-24vh" >
82- < NFlex vertical size = "large" >
83- { props . meta . map ( ( meta , i ) => < MusicIdInput key = { i } meta = { meta } /> ) }
84- </ NFlex >
85- </ NScrollbar >
86- < NFormItem label = "流派" labelPlacement = "left" labelWidth = "5em" showFeedback = { false } >
87- < GenreInput options = { genreList . value } v-model :value = { props . savedOptions . genreId } />
88- </ NFormItem >
89- < NFormItem label = "版本分类" labelPlacement = "left" labelWidth = "5em" showFeedback = { false } >
90- < GenreInput options = { addVersionList . value } v-model :value = { props . savedOptions . addVersionId } />
91- </ NFormItem >
92- < NFormItem label = "版本" labelPlacement = "left" labelWidth = "5em" showFeedback = { false } >
93- < VersionInput v-model :value = { props . savedOptions . version } />
94- </ NFormItem >
95- < NCheckbox v-model :checked = { props . savedOptions . ignoreLevel } >
96- 忽略定数,不参与 B50 计算
97- </ NCheckbox >
98- < NCheckbox v-model :checked = { props . savedOptions . disableBga } >
99- 有 BGA 也不要导入
100- </ NCheckbox >
101- < NCollapse >
102- < NCollapseItem title = "高级选项" >
103- < NFlex vertical >
104- < NFormItem label = "延迟调整模式" labelPlacement = "left" showFeedback = { false } >
105- < NFlex vertical class = "w-full" >
106- < NFlex class = "h-34px" align = "center" >
107- < NRadioGroup v-model :value = { props . tempOptions . shift } >
108- < NPopover trigger = "hover" >
109- { {
110- trigger : ( ) => < NRadio value = { ShiftMethod . Bar } label = "按小节" /> ,
111- default : ( ) => < div >
112- 如果谱面前面的休止符长度小于一小节,那就在前面加上一小节的空白< br />
113- 适用于大部分谱面,防止第一个音符出现的时机奇怪和平移谱面引起的奇怪问题< br />
114- 第一个音符会在第二小节之内出来
115- </ div >
116- } }
117- </ NPopover >
118- < NPopover trigger = "hover" >
119- { {
120- trigger : ( ) => < NRadio value = { ShiftMethod . Legacy } label = "旧版" /> ,
121- default : ( ) => < div >
122- 将谱面的第一押对准第二小节的第一拍< br />
123- v1.1.1 及以前版本默认的处理方式< br />
124- 可能会因为谱面非整数平移而引起一些比如说 BPM 变化的谱面出现问题
125- </ div >
126- } }
127- </ NPopover >
128- < NPopover trigger = "hover" >
129- { {
130- trigger : ( ) => < NRadio value = { ShiftMethod . NoShift } label = "不移动谱面" /> ,
131- default : ( ) => < div >
132- 完全不修改谱面,从音频中删除 & first 的长度(如果有) < br />
133- 可能会导致第一个音符出现的时机比较奇怪,比如说刚开始就有音符
134- </ div >
135- } }
136- </ NPopover >
137- </ NRadioGroup >
81+ 为新导入的歌曲指定 ID
82+ < NScrollbar class = "max-h-24vh" >
83+ < NFlex vertical size = "large" >
84+ { props . meta . map ( ( meta , i ) => < MusicIdInput key = { i } meta = { meta } /> ) }
85+ </ NFlex >
86+ </ NScrollbar >
87+ < NFormItem label = "流派" labelPlacement = "left" labelWidth = "5em" showFeedback = { false } >
88+ < GenreInput options = { genreList . value } v-model :value = { props . savedOptions . genreId } />
89+ </ NFormItem >
90+ < NFormItem label = "版本分类" labelPlacement = "left" labelWidth = "5em" showFeedback = { false } >
91+ < GenreInput options = { addVersionList . value } v-model :value = { props . savedOptions . addVersionId } />
92+ </ NFormItem >
93+ < NFormItem label = "版本" labelPlacement = "left" labelWidth = "5em" showFeedback = { false } >
94+ < VersionInput v-model :value = { props . savedOptions . version } />
95+ </ NFormItem >
96+ < NCheckbox v-model :checked = { props . savedOptions . ignoreLevel } >
97+ 忽略定数,不参与 B50 计算
98+ </ NCheckbox >
99+ < NCheckbox v-model :checked = { props . savedOptions . disableBga } >
100+ 有 BGA 也不要导入
101+ </ NCheckbox >
102+ < NCollapse >
103+ < NCollapseItem title = "高级选项" >
104+ < NFlex vertical >
105+ < NFormItem label = "延迟调整模式" labelPlacement = "left" showFeedback = { false } >
106+ < NFlex vertical class = "w-full" >
107+ < NFlex class = "h-34px" align = "center" >
108+ < NRadioGroup v-model :value = { props . tempOptions . shift } >
109+ < NPopover trigger = "hover" >
110+ { {
111+ trigger : ( ) => < NRadio value = { ShiftMethod . Bar } label = "按小节" /> ,
112+ default : ( ) => < div >
113+ 如果谱面前面的休止符长度小于一小节,那就在前面加上一小节的空白< br />
114+ 适用于大部分谱面,防止第一个音符出现的时机奇怪和平移谱面引起的奇怪问题< br />
115+ 第一个音符会在第二小节之内出来
116+ </ div >
117+ } }
118+ </ NPopover >
119+ < NPopover trigger = "hover" >
120+ { {
121+ trigger : ( ) => < NRadio value = { ShiftMethod . Legacy } label = "旧版" /> ,
122+ default : ( ) => < div >
123+ 将谱面的第一押对准第二小节的第一拍< br />
124+ v1.1.1 及以前版本默认的处理方式< br />
125+ 可能会因为谱面非整数平移而引起一些比如说 BPM 变化的谱面出现问题
126+ </ div >
127+ } }
128+ </ NPopover >
129+ < NPopover trigger = "hover" >
130+ { {
131+ trigger : ( ) => < NRadio value = { ShiftMethod . NoShift } label = "不移动谱面" /> ,
132+ default : ( ) => < div >
133+ 完全不修改谱面,从音频中删除 & first 的长度(如果有) < br />
134+ 可能会导致第一个音符出现的时机比较奇怪,比如说刚开始就有音符
135+ </ div >
136+ } }
137+ </ NPopover >
138+ </ NRadioGroup >
139+ </ NFlex >
140+ </ NFlex >
141+ </ NFormItem >
142+ < NCheckbox v-model :checked = { props . savedOptions . noScale } >
143+ 不要缩放 BGA 到 1080 宽度,此选项会记住
144+ </ NCheckbox >
138145 </ NFlex >
139- </ NFlex >
140- </ NFormItem >
141- < NCheckbox v-model :checked = { props . savedOptions . noScale } >
142- 不要缩放 BGA 到 1080 宽度,此选项会记住
143- </ NCheckbox >
144- </ NFlex >
145- </ NCollapseItem >
146- </ NCollapse >
146+ </ NCollapseItem >
147+ </ NCollapse >
147148 </ > }
148149 </ NFlex > ,
149150 footer : ( ) => < NFlex justify = "end" >
@@ -169,6 +170,7 @@ const MusicIdInput = defineComponent({
169170 return ( ) => < NFlex align = "center" size = "large" >
170171 < img src = { img . value } class = "h-16 w-16 object-fill shrink-0" />
171172 < div class = "w-0 grow" > { props . meta . name } </ div >
173+ < MusicIdConflictNotifier id = { props . meta . id } />
172174 < NInputNumber v-model :value = { props . meta . id } min = { dxBase . value + 1 } max = { dxBase . value + 1e4 - 1 } step = { 1 } class = "shrink-0" />
173175 </ NFlex >
174176 }
0 commit comments