Widget:雷吉斯托环上传
上传表格
<form>
名字:
<button class="btn btn-primary" data-toggle="dropdown">
</button>
等级上限:
最低1 <input placeholder="num" type="number" name="maxlv" class=" form-control " value="" required="required" pattern="" title="输入数字"> 最大100
粉末消耗:
0 <input type="text" name="powder" class=" form-control " value="" required="required" pattern="" title="输入粉末消耗" placeholder="托环升一级需要的粉末"> 1000
托环类型:
<label> <input type="radio" name="type" value="1" checked="0"> 数值类 </label> <label> <input type="radio" name="type" value="2" checked="0">技能强化 </label> <label> <input type="radio" name="type" value="3" checked="0">技能变异 </label> <label> <input type="radio" name="type" value="4" checked="0">自身变异 </label>
效果:
<textarea placeholder="游戏内的介绍和实际效果" name="effect" name="effect" class="form-control" rows="3" required="required"></textarea>
来源地图:
<label> <input type="checkbox" name="from" value="10" checked="0"> 【10】 渊底的遗迹 </label> <label> <input type="checkbox" name="from" value="30" checked="0"> 【30】 灼热山峰 </label> <label> <input type="checkbox" name="from" value="50" checked="0"> 【50】 上古女帝陵墓 </label> <label> <input type="checkbox" name="from" value="70" checked="0"> 【70】 砂石梯层 </label> <label> <input type="checkbox" name="from" value="90" checked="0"> 【90】 升华 观园 </label> <label> <input type="checkbox" name="from" value="110" checked="0"> 【110】 灼烧地沟 </label> <label> <input type="checkbox" name="from" value="130" checked="0"> 【130】 怪物森林 </label> <label> <input type="checkbox" name="from" value="150" checked="0"> 【150】 暗龙神殿 </label> <label> <input type="checkbox" name="from" value="170" checked="0"> 【170】 拉比兰斯地区 </label> <label> <input type="checkbox" name="from" value="190" checked="0"> 【190】 多西亚海岸 </label> <label> <input type="checkbox" name="from" value="210" checked="0"> 【210】 隐匿的湖泊 </label>
<button type="button" class="btn btn-info mark" name="mark" value="0">标记为上传</button>
<button type="button" class="btn btn-default copry">复制</button>
<button type="button" class="btn btn-primary delete">移除</button>
</form>
<button type="button" class="btn btn-warning" onclick="submits();">提交</button>🧡
<script type="text/javascript"> function start() {
try { gettoken(); } catch (tokenerror) { console.log('获取token错误'); } $(".mw-parser-output").append($(".datainput")); initiaControl(); intiadoms();
} function initiaControl() {
//初始化复制和删除自身的方法 $(".thuploaC").on('click', '.copry', function (e) { console.log('复制自身', e.delegateTarget); let $this = $(e.delegateTarget); $this.after($this.clone(true)); }); $(".thuploaC").on('click', '.delete', function (e) { if ($(".thuploaC")[1] == undefined) { return alert('最后一个了不允许删除') } let $this = e.delegateTarget; console.log('删除自身',); $($this).remove(); }); //标记单位托环是否上传 $(".thuploaC").on('click', '.mark', function (e) { if(this.value==0){ this.value=1; this.innerText='数据错误,标记删除'; this.className='btn btn-danger mark'; }else{ this.value=0; this.innerText='标记为上传'; this.className='btn btn-info m mark'; } });
//定义查找输入托环的事件响应 $(".thuploaC ").on('input', '.nameinput', function (e) { let $this = $(e.delegateTarget); let $list = $this.find('.haslist'); $list.empty(); $list.append(getTresultsByname(this.value)); $list.parent().addClass('open'); }); //定义选中 $(".thuploaC ").on('click', '.haslist li', function (e) { let $this = $(e.delegateTarget); let o = Doms[this.innerText]; $this.find('[name=name]').val(o.name) $this.find('[name=maxlv]').val(o.maxlv) $this.find('[name=powder]').val(o.powder); $this.find('[name=type]').filter(function () { return this.value == o.type; })[0].checked = 1; $this.find('[name=effect]').val(o.effect); $this.find('[name=from]').each(function (index, checkbox) { if (o.textfroms[checkbox.value] == undefined) { checkbox.checked = 0; } else { checkbox.checked = 1; } });; });
}
/**
* 通过名字查找结果 * @param {string} name */
function getTresultsByname(name) {
let arr = []; Doms.forEach(function (v, i) { if (v.name.indexOf(name) != -1) {
arr.push($(`
`)); } }) return arr; } var Doms = []; Doms.flushadd = function (o) { //模型插入与刷新数据 let k = Doms[o.name]; if (k == undefined) { o.index = Doms.length; Doms.push(o); } else { o.index=k.index; Doms[k.index] = o; } Doms[o.name] = o; } const proto = { typeenum: [, '数值类', '技能强化', '改变技能效果', '自身获得新特性'], fromenum: { '10': '【10】 渊底的遗迹 ', '30': "【30】 灼热山峰 ", "50": "【50】 上古女帝陵墓", "70": "【70】 砂石梯层 ", "90": "【90】 升华 观园", "110": "【110】 灼烧地沟 ", "130": "【130】 怪物森林", "150": "【150】 暗龙神殿 ", "170": "【170】 拉比兰斯地区", "190": "【190】 多西亚海岸 ", "210": "【210】 隐匿的湖泊 " }, }; function intiadoms() { let $doms = $('.Onering '); let $names = $doms.find('.mw-headline'); $doms.each(function (index, dom) { let $dom = $(dom); let o = {//原型 name: $dom.find('.mw-headline').text(), maxlv: $dom.find('.maxlv').text(), powder: $dom.find('.powder').text(), type: $dom.find(".type").text(), effect: $dom.find('.effect').text(), from: $dom.find('.from').text(), append: $dom.find('.append').text() }; Object.setPrototypeOf(o, proto) o.texttype = o.typeenum[o.type] o.textfroms = (() => { let arr = [] o.from.split(/[\s]*[,,][\s]*/).forEach(function (text, index) { let c = o.fromenum[text]; arr.push(c); arr[text] = c; }); return arr; })() Doms.flushadd(o); }) } function submits() { let $forms = $(".datainput .thuploaC form"); let n=; $.each($forms, function (index, form) { let formdata = new FormData(form); console.log("------------") let O = { name: formdata.get('name'), maxlv: formdata.get("maxlv"), powder: formdata.get('powder'), type: formdata.get('type'), effect: formdata.get('effect'), from: formdata.getAll('from').join(','), mark:$(form).find('.mark').val() } if (O.name == ) { return; } if (O.maxlv == ) { return; } Doms.flushadd(O); n=O.name; }); let results = Doms.filter(function (e) { return e.mark=='1'?false:true; }).map(function (O, i, arr) { return text = `
`;
});
uploadtowiki(results.join(),n);
} let config = {
title: "雷吉斯托环", action: "edit", format: "json", assert: "user", token: , basetxt:`\r\n上传表格
🧡
\r\n`
};
function gettoken() {
$.get(mw.util.wikiScript('api'), { 'action': 'query', 'meta': 'tokens', 'format': 'json' }, function (data, textStatus) { config.token = data['query']['tokens'].csrftoken; console.log(`this token(${textStatus}):`, config.token); } );
} function uploadtowiki(text,name) {
if (config.token == ) { gettoken(); return alert("token错误,正在获取token,请重试"); } if (uploadtowiki) { $.post(mw.util.wikiScript('api'), { "title": config.title, "text": config.basetxt+text, "action": config.action, "format": config.format, "assert": config.assert, 'token': config.token }, function (data, textStatus, jqXHR) { console.log('resultdatais:', data); console.log('textStatus:', jqXHR); if(data.edit!=undefined&&data.edit.result=='Success'){ if(confirm('Success:成功!\r\n是否刷新并转到最后编辑位置?')){ location.hash=name; location.reload(); }else{
} }else{ let a='\r\n'; if(data.edit){ a+=data.edit.result; } if(data.error){ a+=data.error.code; } alert("失败",a) }
} ); }
};
setTimeout(function f(count) {
try { if ($) { start();
} } catch (notFindDataerr) { if (count < 10) { setTimeout(f, 200, ++count) } else { console.log("$ load timeout") } }
}, 200, 0); </script>