台词试听功能(武将/皮肤/将灵)已上线,在对应页面的台词板块即可试听;目前音频功能仍有缺失或错误的情况,可点击反馈提醒我们;有兴趣参与编辑的请点击下方企鹅群加入我们哦~。欢迎收藏起来防止迷路~(´▽`ʃ♡ƪ)!

如果你看到本段文字,说明该页面未正常加载全局JS,包括但不仅限于语音、评论区等部分功能将无法使用,请点击 重新加载页面,如果刷新无效,请找BWIKI客服进行反馈。
全站通知:

动态查询

阅读

    

2022-01-09更新

    

最新编辑:摇晃の目光

阅读:

  

更新日期:2022-01-09

  

最新编辑:摇晃の目光

来自三国杀WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模板为一键安装导入,不建议手动修改。

简单说明

说明:动态查询被smw声明的数据,不受页面模板数量上限限制

安装方法

自动安装:拥有站点管理员权限的同学可以在本页面使用一键安装功能

手动安装:复制以下依赖页面中的内容到相同页面名称的页面中

使用说明

第一步

创建一个筛选列表

第二步

改造筛选列表,此处举例一种书写方式

{|class="wikitable" style="width:100%"
|- data-ask-key="分类:" style="display:none" <!--这一行必须有,data-ask-key="分类:":在分类:页面下进行查询-->
!width="90"| 分类
|
{{条件项|材料|材料|1}} <!--与表头部分组合,此处填写材料,即可组合为ask的查询条件[[分类:材料]]-->
|- data-ask-key="类型::" 
!width="90"| 类型
|
{{条件项|角色经验素材|角色经验素材}}
{{条件项|角色培养素材|角色培养素材}}
{{条件项|天赋培养素材|天赋培养素材}}
{{条件项|武器突破素材|武器突破素材}}
{{条件项|食材|食材}}
{{条件项|素材|素材}}
{{条件项|蒙德区域特产|蒙德区域特产}}
{{条件项|璃月区域特产|璃月区域特产}}
|- data-ask-key="来源::"
!width="90"| 来源
|
{{条件项|'''普通怪物掉落'''|普通怪物掉落}}
{{条件项|'''BOSS掉落'''|BOSS掉落}}
{{条件项|'''周常BOSS掉落'''|周常BOSS掉落}}
{{条件项|'''秘境获得'''|秘境获得}}
{{条件项|'''合成获得'''|合成获得}}
{{条件项|烹饪加工获得|烹饪加工获得}}
{{条件项|野外采集|野外采集}}
{{条件项|杂货店购买|杂货店购买}}
{{条件项|'''纪念品商店兑换'''|纪念品商店兑换}}
|- data-ask-key="来源::"
!width="90"| 秘境名称
| 
{{条件项|'''忘却之峡'''|忘却之峡}}
{{条件项|'''太山府'''|太山府}}
{{条件项|'''震雷连山密宫'''|震雷连山密宫}}
{{条件项|'''塞西莉亚苗圃'''|塞西莉亚苗圃}}
|- data-ask-key="稀有度::"
!width="90"| 稀有度
| 
{{条件项|1|[[file:1星.png|link=]]}}
{{条件项|2|[[file:2星.png|link=]]}}
{{条件项|3|[[file:3星.png|link=]]}}
{{条件项|4|[[file:4星.png|link=]]}}
{{条件项|5|[[file:5星.png|link=]]}}
|-
|}

<span id="queryDataBtn" class="btn btn-default" href="#" role="button" style="width:calc(100% - 105px);margin-top:4px">查询</span>
<span id="clearParamBtn" class="btn btn-default" href="#" role="button" style="width:100px;margin-top:4px;color:#db6161">重置条件</span>

{{#vardefine:gridHeader|
{ {{!}}id="CardSelectTr" class="CardSelect wikitable sortable" style="width:100%;text-align:center"
{{!}}-id="CardSelectTabHeader"
! style="width:10%" {{!}}
! style="width:12%" {{!}} 名称
! style="width:8%" {{!}} 稀有度
! style="width:10%" {{!}} 类型
! class="visible-md visible-sm visible-lg" style="width:25%" {{!}} 来源
! class="visible-md visible-sm visible-lg" style="width:30%" {{!}} 用处
{{!}}-
}}

{{#widget:数据查询
|btnid=queryDataBtn
|header={{#var:gridHeader}}
|defaultSearch=true <!--为空则默认不进行搜索-->
|print=名称,稀有度,类型,来源,介绍,用处
|param=sort:稀有度,template:素材测试/行,headers:hide,format:template,link=none
|limit=10
}}

作者

迦洛翎


标签

标签:方法

标签:widget

已使用该功能的页面

依赖页面

<style> li.btn.queryParams.selected { color: #333 !important; background-color: #e6e6e6; border-color: #adadad; outline: 0; -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.125); box-shadow: inset 0 3px 5px rgba(0,0,0,.125); } </style> <div style="float:left;line-height: 44px;"> 查询到结果 <span id="queryCount">0</span> 个,每页显示 <span id="queryLimit">0</span> 个</div> <nav style="text-align:right;" aria-label="Page navigation"> <ul class="pagination" data-ul="1"> <li class="gridFirstPageBtn" data-page="0"> « </li> <li class="gridPageBtn">1</li> <li class="gridPageBtn">2</li> <li class="gridPageBtn">3</li> <li class="gridPageBtn">4</li> <li class="gridPageBtn">5</li> <li class="gridLastPageBtn" data-page="-1"> » </li> </ul> </nav> <div id="queryDataGrid" class="resp-tabs-box" style="margin-top:10px;font-size: larger;">初始化...</div> <nav style="text-align:right;" aria-label="Page navigation"> <ul class="pagination" data-ul="2">    <li class="gridFirstPageBtn" data-page="0">       « </li> <li class="gridPageBtn">1</li> <li class="gridPageBtn">2</li> <li class="gridPageBtn">3</li> <li class="gridPageBtn">4</li> <li class="gridPageBtn">5</li> <li class="gridLastPageBtn" data-page="-1"> » </li> </ul> </nav> <script type="text/javascript"> var GameModeCache = window.location.href.split("#")[0] + "GameMode"; var GameModeCacheOn = ""; if(!GameModeCacheOn) sessionStorage.clear(); var GameMode=sessionStorage.getItem(GameModeCache); if(window.location.href.split("#").length > 1) GameMode = decodeURI(window.location.href.split("#")[1]); console.log("GameModeCache :"+sessionStorage.getItem(GameModeCache)); console.log("GameMode :"+GameMode); var submitBtnId = ""; var tableHeader = ("").replace("{ |", "{|"); var tableFooter = "" || '\n|}'; var defaultSearch = ""; var conditions = ""; var params = ""; var cur_conditions = []; var printColumn = paramsFormmatter("", "|?"); var parameters = paramsFormmatter(("")/*.replace(/:/g, "=")*/, "|"); var mdScreen = window.innerWidth > 992 && window.innerWidth < 1200; var limit = - ( mdScreen ? 4 : 0 ); var count = 0; var defaultParams = ""; var $defaultHide; var $defaultSelect; var loopCount = 0; var $ready = function (){ defaultParams = getQueryParams(); $defaultHide = $("tr.iteminfo"); $defaultSelect = $(".queryParams.selected"); $("#searchBtn").append("<input style=\"width: 120px;\" placeholder=\"例:夏侯、刘\" />"); bindClickEvents(); } function bindClickEvents(){ //input回车开始 $("#searchBtn").children("input").keyup(function(e){ if(e.keyCode==13){ $('#queryDataBtn').click(); //处理事件 // $(this).blur();  } }); //input回车结束 $("body").on("click", ".btn.queryParams", function(){ var bodyScroll = document.body.scrollHeight - document.body.scrollTop; var isSelected = $(this).hasClass("selected");     //选项     cur_conditions = [];     $(".selected").not("[data-id!='']").each(function (index,element) { var tmp = $(this).attr("data-conditions"); if(tmp)cur_conditions.push(tmp); }); var tmpX = $(this).not("[data-id!='']").attr("data-conditions"); if(!isSelected) { if(tmpX) cur_conditions.push(tmpX);     }else    { cur_conditions.forEach(function(item, index, arr) { if(item === tmpX) { arr.splice(index, 1); } }); }   console.log(cur_conditions); var id=$(this).attr("data-id");       var group=$(this).attr("data-group");       if(group) {       var $group=$('*[data-group*='+group+']').not(this);       var $id2 = $('*[data-group*='+group+']'+"[data-id!='']").not(this); if(!isSelected) {       $group.removeClass("selected"); $id2.each(function (index,element) {//遍历每个对象           var tmpid = $(this).attr("data-id"); if(tmpid) { var $tmp = $('*[data-id*='+tmpid+']'+"[data-ask-key]").not(this); $tmp.addClass("iteminfo");             $tmp.find("li").removeClass("selected");           } });         }       }      if(id) { var $id=$('*[data-id*='+id+']'+"[data-ask-key]").not(this); if(!isSelected) {       $id.removeClass("iteminfo"); SetCondtion(id); }else { $id.addClass("iteminfo"); $id.find("li").removeClass("selected"); }         } $(this)[isSelected?"removeClass":"addClass"]("selected"); var $tmp = $(".queryParams.selected");         if($tmp.length == 0) { Default(); } document.body.scrollTop = document.body.scrollHeight - bodyScroll; GameModeCacheFunc(); }).on("click", "#" + submitBtnId, function(){ queryData(); }).on("click", "#clearParamBtn", function(){ cur_conditions = []; var bodyScroll = document.body.scrollHeight - document.body.scrollTop;   $("#searchBtn").children("input").val(""); var $tmp = $("tr").not("iteminfo").find("li.selected").not("*[data-group*='version']"); console.log($tmp); if($tmp.length==0) { Default(); }else { $tmp.removeClass("selected"); } document.body.scrollTop = document.body.scrollHeight - bodyScroll; GameModeCacheFunc(); }).on("click", ".gridPageBtn, .gridFirstPageBtn, .gridLastPageBtn", function(){ if($(this).hasClass("hide") || $(this).hasClass("active")) return false; var page = $(this).attr("data-page") || $(this).text(); getPageData(limit, refreshPager(count, limit, page,$(this).parents("ul").eq(0).attr("data-ul"))); }) if(defaultSearch === "true" || defaultSearch === "1") { Load(); } } function Load() { try { $("li").filter("*[data-conditions*='[[分类:武将]][[武将版本::"+ GameMode +"]]']").click();   queryData(); } catch(err) {     loopCount = loopCount + 1; if(loopCount>=100) {     alert("响应时间超过3秒!");      return false;     } setTimeout("Load()",30); } } function Default() { $(".queryParams.selected ").removeClass("selected"); $("tr.iteminfo").removeClass("iteminfo"); $defaultHide.addClass("iteminfo"); $defaultSelect.addClass("selected"); //SetCondtion($defaultSelect.filter("*[data-id!='']:first").attr("data-id")); } function queryData(){ if(GameMode == "经典" || GameMode == "国战" || GameMode == "界限" || GameMode == "自走棋") history.replaceState(null,null,window.location.href.split("#")[0]); conditions = getQueryParams()|| defaultParams; params = conditions + printColumn + parameters; //替换处理 params=params.replaceAll("$input",$("#searchBtn").children("input").val()); for (var i = 0; i < replaces.length; i ++) { var tmp = replaces[i].split("@"); params = params.replace(tmp[0],tmp[1]); conditions = conditions.replace(tmp[0],tmp[1]); } //是否有历史版本 var ShowChange = false; if(params.indexOf("技能历史版本") >= 0 ) { ShowChange=true; } Set_Highlight(ShowChange); console.log("技能高亮状态:"+ShowChange); $.getJSON( mw.util.wikiScript( 'api'), { format: 'json', action: 'parse', text: '{'+'{#ask:'+ conditions +'|format=count}}', contentmodel: 'wikitext' }).done( function ( data ) { count = parseInt($(data.parse.text["*"]).text()); $("#queryCount").text(count); $("#queryLimit").text(limit); refreshPager(count, limit, 1); getPageData(limit, 1); ShuaXin(); }); } function getPageData(limit, page){ limit = Number(limit); page = Number(page); var Limit_And_Offset = "|limit=" + limit + "|offset=" + (page-1) * limit; var iconCoditions = ""; $(".btn.queryParams.selected").each(function(){ if($(this).attr("data-iconCoditions")!="")     iconCoditions = iconCoditions +$(this).attr("data-iconCoditions")+"||"; }); var queryText = tableHeader + '{'+'{#ask:'+ params.replace("[[分类:","[[分类:"+ iconCoditions ) + Limit_And_Offset + '}}' + tableFooter; console.log(queryText);console.log(defaultParams); var html_img = ""; for(var i=0;i < (count == 0 ? 1 : (count > limit ? limit : count));i++) { html_img = html_img + "<div class=\"headshot tt-box\"><img src=\"https://patchwiki.biligame.com/images/sgs/c/c9/5wxdfoa2e28dudv99gui5barojmx3jf.png\" alt=\"\" width=\"100\" height=\"100\" class=\"handbook-round-corner\"/><img src=\"https://patchwiki.biligame.com/images/sgs/5/5d/9nce3414gps9a61monxotpd5zog8eba.gif\" alt=\"\" width=\"100\" height=\"100\" style=\"position:absolute;top:0;left:0;\"/></div>"; } $("#queryDataGrid").html("<div class=\"handbook-100\">" + html_img + "</div>"); $.getJSON( mw.util.wikiScript( 'api'), { format: 'json', action: 'parse', text: queryText, contentmodel: 'wikitext' }).done( function ( data ) { $("#queryDataGrid").html(data.parse.text["*"]); //外链处理 /* 技术处理外链 来源:异星工厂WIKI $("#queryDataGrid").find("a").each(function(){ url=$(this).attr("href"); if(typeof(url)!="undefined"){ key=["game.bilibili.com","space.bilibili.com","wiki.biligame.com", "sanguosha.com","www.sanguosha.com","club.sanguosha.com","web.sanguosha.com","sgs10thanniversary.sanguosha.com","h5.sanguosha.com", "hu6.me","jq.qq.com","tieba.baidu.com","www.huya.com","www.douyu.com"]; var status=false; key.forEach(function(k){ status=url.replace(/^.+linkfilter\/\?url=https*:\/\/([^\/]+).*$/ig, "$1").indexOf(k)>=0||status; }); url=status?url.replace(/^.+linkfilter\/\?url=(.+)/g, "$1"):url; $(this).attr("href",url); } });*/ $(".sortable").tablesorter(); }); } function refreshPager(count, limit, page , scroll){ var sumPage = Math.min(Math.ceil(Number(count)/Number(limit))); page = Number(page); page = page === 0 ? 1 : page; page = page < 0 ? sumPage : page; var pageStart = Math.max(1, page-2); var pageEnd = Math.min(Math.ceil(count/limit), pageStart + 4); pageStart = pageEnd <= 5 ? 1 : pageStart; var $a = $("<a>").attr({href:"javascript:void(0);"}); var btnArray = []; for(var i = pageStart; i <= pageEnd; i++){ btnArray.push($("<li>").attr({class:"gridPageBtn" + (page === i?" active":"")}).append($a.clone().text(i))); } $(".gridPageBtn").remove(); $(".pagination li:first-child").after(btnArray); $(".gridFirstPageBtn")[page === 1?"addClass":"removeClass"]("hide"); $(".gridLastPageBtn")[page === sumPage || pageEnd === 1?"addClass":"removeClass"]("hide");   //alert(document.body.clientWidth);   if(scroll) { //if(scroll!=2) document.body.scrollTop = $("#queryDataGrid").offset().top - (document.body.clientWidth < 747 ? 100 : 150); //document.body.scrollTop = $(".pagination[data-ul*='2']").offset().top - window.innerHeight + 150; } return page; } var replaces = []; function getQueryParams(){ var conditions = {}, query = [], str = ""; replaces = []; $(".btn.queryParams.selected").each(function(){     var replace = $(this).attr("data-replace"); replace=("$"+replace).split("$").filter(Boolean); console.log(replace); for(var i = 0; i < replace.length; i++) {     replaces .push(replace[i]); } var key = $(this).parents("tr").attr("data-ask-key"); var cond = $(this).attr("data-conditions"); if(key === "") { if(cond.includes("]]")){str += cond;} return true} if(conditions[key] === undefined) conditions[key] = []; conditions[key].push($(this).attr("data-conditions")); }) //输入框input模块开始 var $input = $("#searchBtn").children("input"); var key = $("#searchBtn").attr("data-ask-key"); if($input.val()) { if($input.val().includes("]]")) str+=$input.val(); else {   var inputs = $input.val().split("、");     if(conditions[key] === undefined) conditions[key] = [];   for(var i=0;i<inputs.length;i++) {   if(inputs[i]) conditions[key].push("~*"+inputs[i]+"*"); } } } //输入框input模块结束 $.each(conditions, function(key, valArr){ query.push("["+"[" + key + valArr.join("||") + "]"+"]") }); console.log(replaces); return query.join("") + str; } function paramsFormmatter(param, connector){ return (";" + param).split(";").join(connector); } function ShuaXin() { var queryText= ' ▶ 刷新筛选内容('+ count +') ' console.log(queryText); $.getJSON( mw.util.wikiScript( 'api'), { format: 'json', action: 'parse', text: queryText, contentmodel: 'wikitext' }).done( function ( data ) { $("#refreshContainer").html(data.parse.text["*"]); $(".sortable").tablesorter(); }); } function SetCondtion(id) { var t; var id2;     $('tr[data-id*='+id+']').find("li").each(function (index,element) { for(var i=0;i<cur_conditions.length;i++) { if($(this).attr("data-conditions")==cur_conditions[i]) $(this).addClass("selected");         if(cur_conditions[i].includes("上线时间::+")) t=1;         } }); if(id=="guo") {         id2="国战";         }else if(id=="jie") {         id2="界限";         }else if(id=="Default") {         id2="经典"; }         if(t && id2) {                     $("li").filter("*[data-conditions*='[["+id2+"上线时间::+]]']").addClass("selected"); } } function GameModeCacheFunc() { if(GameModeCacheOn) { var Mode1 = $("li").filter("*[data-conditions='[[分类:武将]][[武将版本::"+"经典"+"]]']").hasClass("selected"); var Mode2 = $("li").filter("*[data-conditions='[[分类:武将]][[武将版本::"+"界限"+"]]']").hasClass("selected"); var Mode3 = $("li").filter("*[data-conditions='[[分类:武将]][[武将版本::"+"国战"+"]]']").hasClass("selected"); var Mode4 = $("li").filter("*[data-conditions='[[分类:武将]][[武将版本::"+"自走棋"+"]]']").hasClass("selected"); sessionStorage.setItem(GameModeCache,(Mode1 ? "经典" : (Mode2 ? "界限" : (Mode3 ? "国战" : (Mode4 ? "自走棋" : ""))))); } } </script> <script>(function () { var t = function () { window.jQuery && window.mw ? $ready() : window.setTimeout(t, 100); }; t(); })();</script>

更新日志

  • 1.1