bugfix0531

本WIKI于23/4/26申请开通,编辑权限开放,欢迎更多殿下加入我们来一起搭建!Wiki催更群:945258792
编辑帮助:指南 | 捉虫许愿:反馈

全站通知:

Event.js

阅读

    

2024-03-11更新

    

最新编辑:阿巴阿巴怪的很

阅读:

  

更新日期:2024-03-11

  

最新编辑:阿巴阿巴怪的很

来自代号鸢WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
阿巴阿巴怪的很

var menu1 = document.getElementById('menu1').value; var menu2 = document.getElementById('menu2').value; var tableName=menu1.value+"_"+menu2.value; var Pt=document.getElementById(menu1 + '_' + menu2); alert(Pt); var materialList = { "鎏金铁块":0, "精工木件":0, "墙木榫":0}; //定义一个组成对应表,例如"精工木件"=5个"细沙"+5个"原木","墙木榫"=5个"原木","鎏金铁块"=5个"铁砂","麻绳"=5个"麻草"+10个"原木","线"=5个"鸢绒",要求包含数量和组成 var compose={"精工木件":{"细沙":5,"原木":5},"墙木榫":{"原木":5},"鎏金铁块":{"铁砂":5},"麻绳":{"麻草":5,"原木":10},"线":{"鸢绒":5}}; //定义一个元素列表,包含图纸·起居,图纸·置物,图纸·装饰,图纸·挂件,图纸·互动,图纸·墙纸,图纸·地板,虹石,鸢绒,原木,铁砂,细沙,麻草,赤珠草,仙草,书签 初始值设为0 //var elementList={"图纸·起居":0,"图纸·置物":0,"图纸·装饰":0,"图纸·挂件":0,"图纸·互动":0,"图纸·墙纸":0,"图纸·地板":0,"虹石":0,"鸢绒":0,"原木":0,"铁砂":0,"细沙":0,"麻草":0,"赤珠草":0,"仙草":0,"书签":0}; var elementList={"鸢绒":0,"原木":0,"铁砂":0,"细沙":0,"麻草":0}

var moneyCost = 0; for(i=1;i<Pt.getElementsByTagName("tr").length;i++){

   //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0]添加一个check box
   Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0].innerHTML = '<input type="checkbox">';
   //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]添加一个textbox,后续可以改成加减框?
   Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5].innerHTML = '<input type="number" value="0" min="0" max="9999">';

} function costSum()//求和函数,计算选中的所有材料的合集 {

   for(i=1;i<Pt.getElementsByTagName("tr").length;i++){//遍历表格
       if(eval(Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0])==true)//选了才计算
       {
           //写一个函数遍历Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[3]分解具体材料并*数量Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]累加到 materialList
           //例如Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[3]内容为春山图纸·置物*1,精工木件*4,墙木榫*2,则materialList= { "鎏金铁块":0, "精工木件":4, "墙木榫":2};
           //花费累加到moneyCost,例如Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]五铢钱花费*数量Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]
           moneyCost+=Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[4]*Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5];
           materialSum(Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[3],Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]);
           materialConvert();
       }
   //把元素列表中的结果写成一个文本文件更新到id="SumTable"的表格第二行第一格中,例如elementList= { "鎏金铁块":0, "精工木件":8, "墙木榫":4,"春山图纸·置物"21},则更新到id="SumTable"的表格第二行第一格中
   result=document.getElementById("SumTable");
   result.getElementsByTagName("tr")[1].getElementsByTagName("td")[0].innerHTML=elementList;
   //把花费写到id="SumTable"的表格第四行第一格中
   result.getElementsByTagName("tr")[3].getElementsByTagName("td")[0].innerHTML=moneyCost;
   }

} //写一个函数遍历传入string的值,分解具体材料乘以数量并乘以传入的总数累加到 materialList //例如传入的值为("春山图纸·置物*1,精工木件*4,墙木榫*2",2),则materialList= { "鎏金铁块":0, "精工木件":8, "墙木榫":4,"春山图纸·置物"21}, function materialSum(materialString,quantity) {

   var materialArray = materialString.split(",");
   for(i=0;i<materialArray.length;i++)
   {
       var material = materialArray[i].split("*");
       //如果materialList中没有这个材料,就添加这个材料
       if(materialList[material[0]]==undefined)
       {
           materialList[material[0]]=0;
       }
       materialList[material[0]]+=material[1]*quantity;
   }

} //写一个函数,遍历所有材料转换成基础物资,更新到列表elementList function materialConvert() {

   for(var material in materialList)
   {
       //如果materialList中有这个材料,就转换成基础物资
       if(compose[material]!=undefined)
       {
           for(var element in compose[material])
           {
               if(elementList[element]==undefined)
               {
                   elementList[element]=0;
               }
               elementList[element]+=compose[material][element]*materialList[material];
           }
       }
       //如果compose表中没有这个材料,就直接添加到elementList
       else
       {
           if(elementList[material]==undefined)
           {
               elementList[material]=0;
           }
           elementList[material]+=materialList[material];
       }
   }

}


function cleanScreen()//清空函数,将所有内容重置为0 {

   for(i=1;i<Pt.getElementsByTagName("tr").length;i++)//遍历表格
       {
           //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0]中的checkbox设为未选中
           Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[0].getElementsByTagName("input")[0].checked = false;
           //Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5]设为0
           Pt.getElementsByTagName("tr")[i].getElementsByTagName("td")[5].getElementsByTagName("input")[0].value = 0;
       }
   //将materialList和elementList清空
   materialList = { "鎏金铁块":0, "精工木件":0, "墙木榫":0};
   elementList={"鸢绒":0,"原木":0,"铁砂":0,"细沙":0,"麻草":0};
   //将moneyCost清空
   moneyCost = 0;
   //将id="SumTable"的表格第二行第一格中的内容清空
   result=document.getElementById("SumTable");
   result.getElementsByTagName("tr")[1].getElementsByTagName("td")[0].innerHTML="";
   //将id="SumTable"的表格第四行第一格中的内容清空
   result.getElementsByTagName("tr")[3].getElementsByTagName("td")[0].innerHTML="";

}