09
2022
07

Mixing for Refer component (Version 2)

//===========================================================master job big window=========================================================================
var column = d => [...document.querySelectorAll(`#Detail > tbody > tr > td:nth-child(${d})`)];
 
var mixing = column(5).map(item => item.innerText.split("+")); 
 
var test = column(2).reduce((acc,curr) => [...acc, (curr.innerText || acc.pop())], []);
 
var obj = test.reduce((acc,curr,i) => (acc[curr] = [...(acc[curr] || []), mixing[i]], acc), {});
 
localStorage.setItem('master'JSON.stringify(obj));

/*
 
**********************************************************************************************************************************************************
 
*/
 
//=========================================================child job small window==============================================================================
function txt_download (contentfilename) { 
  var el = document.createElement('a');
  el.download = filename;
  el.style.display = 'none';
  var blob = new Blob([content]);
  el.href = URL.createObjectURL(blob);
  document.body.appendChild(el);
  el.click();
  document.body.removeChild(el);
};
 
var obj = JSON.parse(localStorage.getItem('master')); 
var standardName = document.querySelector("#lblTestStd").innerText
 
if(!(mixingArr = obj[standardName])) 
  throw `No data for ${standardName} in master job`;
 
var column = d => [...document.querySelectorAll(`[id^=gvRpt_Select_DXDataRow] > td:nth-child(${d})`)];
 
var components = column(4).map(el => el.innerText);
 
//var referNumbers = column(6).map(el => (el.innerText.match(/HJ.*-(\d+)/) || [])[1]);
 
var referNumbers = column(2).map(el => (el.innerText.match(/^(\d+)$/) || [])[1]);
                     
var dict = referNumbers.reduce((acc,curr,i) => (acc[curr || ""] = components[i], acc), {});
 
var content = Object.keys(dict).filter(Boolean).map(referNumber => {
 
  if(matchArr = mixingArr.find(item => item.includes(referNumber)))
    return matchArr.map(item => dict[item] || "null").join("+");

  return `Component ${dict[referNumber]} cannot refer to master job.`
  
}).filter((item,i,arr) => arr.indexOf(item) === i).join("\r\n");
 
if(contenttxt_download(content`${standardName}_mixing.txt`);
     
//localStorage.removeItem('master'); 
« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。