308308 </header >
309309
310310 <div class =" trick-modal-body" >
311- <h3
312- class =" trick-modal-title"
313- v-html =" renderInlineMarkdown(selectedTrick.title || '未命名 trick')"
314- ></h3 >
315-
316- <div class =" trick-modal-meta" >
317- <span >发布者:{{ selectedTrick.author?.username || "-" }}</span >
318- <span >发布时间:{{ formatTime(selectedTrick.created_at) }}</span >
319- <span >点赞:{{ selectedTrick.like_count || 0 }}</span >
320- </div >
311+ <section class =" trick-modal-overview" >
312+ <h3
313+ class =" trick-modal-title"
314+ v-html =" renderInlineMarkdown(selectedTrick.title || '未命名 trick')"
315+ ></h3 >
316+
317+ <div class =" trick-modal-meta" >
318+ <span >发布者:{{ selectedTrick.author?.username || "-" }}</span >
319+ <span >发布时间:{{ formatTime(selectedTrick.created_at) }}</span >
320+ <span >点赞:{{ selectedTrick.like_count || 0 }}</span >
321+ </div >
321322
322- <div class =" trick-card-keywords" v-if =" selectedTrick.keywords?.length" >
323- <span
324- v-for =" keyword in selectedTrick.keywords"
325- :key =" `modal-keyword-${selectedTrick.id}-${keyword}`"
326- class =" trick-keyword-chip"
323+ <div
324+ class =" trick-card-keywords trick-modal-keywords"
325+ v-if =" selectedTrick.keywords?.length"
327326 >
328- {{ keyword }}
329- </span >
330- </div >
327+ <span
328+ v-for =" keyword in selectedTrick.keywords"
329+ :key =" `modal-keyword-${selectedTrick.id}-${keyword}`"
330+ class =" trick-keyword-chip"
331+ >
332+ {{ keyword }}
333+ </span >
334+ </div >
331335
332- <div
333- class =" trick-action-row trick-modal-manage"
334- v-if ="
335- canEditTrick(selectedTrick) ||
336- canDeleteTrick(selectedTrick) ||
337- canModerateTrick(selectedTrick)
338- "
339- >
340- <button
341- class =" btn btn-mini"
342- v-if =" canEditTrick(selectedTrick)"
343- @click.stop =" startEditTrick(selectedTrick)"
344- >
345- {{
346- editingTrickId === selectedTrick.id ? "取消编辑" : "编辑"
347- }}
348- </button >
349- <button
350- class =" btn btn-mini"
351- v-if =" canDeleteTrick(selectedTrick)"
352- @click.stop =" deleteTrick(selectedTrick)"
353- >
354- 删除
355- </button >
356- <button
357- class =" btn btn-mini"
358- v-if =" canModerateTrick(selectedTrick)"
359- @click.stop =" setTrickStatus(selectedTrick, 'approved')"
360- >
361- 通过
362- </button >
363- <button
364- class =" btn btn-mini"
365- v-if =" canModerateTrick(selectedTrick)"
366- @click.stop =" setTrickStatus(selectedTrick, 'rejected')"
336+ <div
337+ class =" trick-action-row trick-modal-manage"
338+ v-if ="
339+ canEditTrick(selectedTrick) ||
340+ canDeleteTrick(selectedTrick) ||
341+ canModerateTrick(selectedTrick)
342+ "
367343 >
368- 拒绝
369- </button >
370- </div >
344+ <button
345+ class =" btn btn-mini"
346+ v-if =" canEditTrick(selectedTrick)"
347+ @click.stop =" startEditTrick(selectedTrick)"
348+ >
349+ {{
350+ editingTrickId === selectedTrick.id ? "取消编辑" : "编辑"
351+ }}
352+ </button >
353+ <button
354+ class =" btn btn-mini"
355+ v-if =" canDeleteTrick(selectedTrick)"
356+ @click.stop =" deleteTrick(selectedTrick)"
357+ >
358+ 删除
359+ </button >
360+ <button
361+ class =" btn btn-mini"
362+ v-if =" canModerateTrick(selectedTrick)"
363+ @click.stop =" setTrickStatus(selectedTrick, 'approved')"
364+ >
365+ 通过
366+ </button >
367+ <button
368+ class =" btn btn-mini"
369+ v-if =" canModerateTrick(selectedTrick)"
370+ @click.stop =" setTrickStatus(selectedTrick, 'rejected')"
371+ >
372+ 拒绝
373+ </button >
374+ </div >
375+ </section >
371376
372377 <div
373378 v-if =" editingTrickId === selectedTrick.id"
@@ -1833,6 +1838,7 @@ onMounted(async () => {
18331838 color: #475569 ;
18341839 background: rgba (148 , 163 , 184 , 0.16 );
18351840 border: 1px solid rgba (148 , 163 , 184 , 0.18 );
1841+ word- break: break - word;
18361842}
18371843
18381844.trick - keyword- chip-- muted {
@@ -1959,12 +1965,18 @@ onMounted(async () => {
19591965 flex: 1 1 auto;
19601966 padding: 18px 26px 14px ;
19611967 display: grid;
1962- gap: 12px ;
1968+ gap: 18px ;
19631969 min- height: 0 ;
19641970 overflow- y: auto;
19651971 overscroll- behavior: contain;
19661972}
19671973
1974+ .trick - modal- overview {
1975+ display: grid;
1976+ gap: 12px ;
1977+ min- width: 0 ;
1978+ }
1979+
19681980.trick - modal- title {
19691981 margin: 0 ;
19701982 font- size: clamp (24px , 3vw , 34px );
@@ -1988,13 +2000,19 @@ onMounted(async () => {
19882000 font- size: 14px ;
19892001}
19902002
1991- .trick - modal- body > . trick - card - keywords {
2003+ .trick - modal- keywords {
19922004 min- height: 0 ;
19932005 gap: 6px ;
2006+ padding: 2px 0 0 ;
19942007}
19952008
19962009.trick - modal- manage {
19972010 margin: 0 ;
2011+ padding: 12px 14px ;
2012+ border- radius: 18px ;
2013+ border: 1px solid color- mix (in srgb, var (-- hairline) 84 % , transparent);
2014+ background: color- mix (in srgb, var (-- surface- soft) 84 % , transparent);
2015+ align- items: flex- start;
19982016}
19992017
20002018.trick - detail- markdown {
0 commit comments