LLWiki正在建设中,欢迎加入我们!
“User:Bhsd/widget/list.js”的版本间差异
跳转到导航
跳转到搜索
小 |
小 |
||
第18行: | 第18行: | ||
], width: '100%', filterFromInput: true, filterMode: 'substring'} }).on('change', value => { |
], width: '100%', filterFromInput: true, filterMode: 'substring'} }).on('change', value => { |
||
const term = mw.sifdata.find(ele => ele.j == value || ele.c == value); |
const term = mw.sifdata.find(ele => ele.j == value || ele.c == value); |
||
if (!term) { return; } |
|||
$output.text( `{{sif-song-tablerow|${ term.j }|${ attr[term.a] }|${ convertTime( term.t ) }` + |
$output.text( `{{sif-song-tablerow|${ term.j }|${ attr[term.a] }|${ convertTime( term.t ) }` + |
||
term.s.map(ele => { |
term.s.map(ele => { |
2021年4月22日 (四) 09:26的版本
"use strict"; /* global mw, $, OO */ (() => { const main = (data) => { mw.sifdata = data[0]; const buildOptions = (key) => mw.sifdata.map(ele => ele[key]).filter(ele => ele).sort() .map(ele => new OO.ui.MenuOptionWidget({data: ele, label: ele})), optionsJa = buildOptions( 'j' ), optionsZh = buildOptions( 'c' ), $output = $('<pre>'), attr = ['s', 'p', 'c'], diff = ['easy', 'normal', 'hard', 'expert', 'exran', 'master'], convertTime = (t) => `${ Math.floor(t / 60) }:${ (t % 60).toString().padStart(2, 0) }`, select = new OO.ui.ComboBoxInputWidget({ menu: {items: [ new OO.ui.MenuSectionOptionWidget({label: '原名'}), ...optionsJa, new OO.ui.MenuSectionOptionWidget({label: '中文名'}), ...optionsZh, ], width: '100%', filterFromInput: true, filterMode: 'substring'} }).on('change', value => { const term = mw.sifdata.find(ele => ele.j == value || ele.c == value); if (!term) { return; } $output.text( `{{sif-song-tablerow|${ term.j }|${ attr[term.a] }|${ convertTime( term.t ) }` + term.s.map(ele => { const level = diff[ele.d - 1]; return `|d-${ level }=${ ele.s }|c-${ level }=${ ele.c }`; }).join( '' ) + '|条件=}}' ); }); $(() => { select.$element.prependTo( '#mw-content-text .mw-parser-output' ) .append( $('<i>', {class: 'fas fa-backspace'}).click(() => { select.setValue(''); }) ) .after( $output ); optionsJa.forEach(ele => { ele.$element.attr('lang', 'ja'); }); }); }, init = () => { Promise.all([ $.ajax({ dataType: 'json', cache: true, url: '/zh?title=user:bhsd/widget/list.json&action=raw&ctype=application/json' }), mw.loader.using( 'oojs-ui-core' ) ]).then( main ); }; if (window.jQuery) { init(); } else { window.addEventListener('jquery', init); } }) ();