您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
自备引物
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/470833/1220007/25-%E8%87%AA%E5%A4%87%E5%BC%95%E7%89%A9.js
function 自备引物(){ console.log('新的自备引物界面') var local_修改测序样品对应的引物名称=localStorage.getItem('修改测序样品对应的引物名称'); var local_在测序样品显示选择的引物=localStorage.getItem('在测序样品显示选择的引物'); var html=$('iframe[src="/viporder/SeqCustPrimerList.aspx"]')//自备引物页面 html=html.contents().find('body').eq(0) var toolbar=html.find('.toolbar').eq(0) // 找到了toolbar工具栏 //添加toolbar工具栏按钮 添加toolbar按钮() //添加toolbar工具栏按钮 function 添加toolbar按钮(){ var toolbar=html.find('.toolbar').eq(0) // 找到了toolbar工具栏 if (toolbar.find('.weiyiyici').length==0){ //添加标记 toolbar.addClass('weiyiyici') //修改测序样品对应的引物名称 按钮 if (local_修改测序样品对应的引物名称=='true'){ toolbar.append('<button id="edit_primer" onclick="return false">修改测序样品对应的引物名称</button>') } //在测序样品显示选择的引物 按钮 if (local_在测序样品显示选择的引物=='true'){ toolbar.append('<button id="show_primer_cexu" onclick="return false">在测序样品显示选择的引物</button>') } //点击 修改测序样品对应的引物名称 按钮 toolbar.find('#edit_primer').click(function(){ 一键修改测序样品的引物名称() }) //点击 在测序样品显示选择的引物 按钮 toolbar.find('#show_primer_cexu').click(function(){ 在测序样品显示选择的引物() }) } } //在 自备引物页面 添加 一键修改 测序样品 的引物名称 function 一键修改测序样品的引物名称(){ if(html.find('tbody').find("[aria-selected='true']").size()==0){return false} //如果没有选择的行,那么退出 selecteds_edit=html.find("[aria-selected='true']") for (var i=0;i<selecteds_edit.size();i++){ id=selecteds_edit.eq(i).find('[aria-describedby=list_SeqCustPrimer_id]').text() //获取id id=id+"-z"//最后的引物位置 primer_name=selecteds_edit.eq(i).find('[aria-describedby=list_SeqCustPrimer_name]').text() //获取自备引物的引物名称 //get 请求 在 测序样品 根据 引物位置 获得所有需要更改的生产编号 $.ajaxSettings.async = false; //get请求默认是异步的,在这里改为同步 $.get("/seq/ashx/SeqSampleHandler.ashx?_search=true&nd=1624035568813&rows=2000000&page=1&sidx=seqs_prod_id&sord=desc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22seqs_primer_id_2_kind%22%2C%22op%22%3A%22eq%22%2C%22data%22%3A%22"+id+"%22%7D%5D%7D", function (data,status) { yps=data.match(/\d{1,}(?=,"seqo_order_id)/g)//匹配获得的生产编号集合,如果没有则为null if(!yps){return; }//如果没有找到生产编号 则进入下个循环 yps_new=[] //新建一个空数组,用于存放所有需要修改的生产编号 primers=data.match(/(seqs_primer":")(.*?)(?=","seqs_observe")/g) if(yps.length!=0){//如果yps有数据,yps为数组 if(yps.length!= primers.length){alert(primer_name+' 在测序样品找到的生产编号和引物名称的个数不一致,需要手动更改');return; } //循环找到的引物,如果和自备引物的引物名称不一致,那么存放在yps_new数组里面 $.each(primers,function(j,item){ primer_dui=item.substr(14) //正确的引物 if(primer_name!=primer_dui) { //如果自备引物的名称和测序样品的每一个引物名称不一致,那么存放在yps_new数组里面 yps_new.push(yps[j]) } }) if (yps_new.length>0){ yps_str=yps_new.join(',') //数组转换成字符串 //post请求 根据找到的生产编号,在 测序样品 批量修改相对应的引物名称 $.post("/seq/ashx/SeqSampleHandler.ashx", {action:"piliang_edit",ids:yps_str,newValue:"seqs_primer="+primer_name,rules_txt:"测序引物"}, function (data,status) {if(i==selecteds_edit.size()-1){alert('修改成功')}}); //最后一次提交成功 }else{return; } }else{return; } }); } } //把选择的行的引物在 测序样品查询出来 function 在测序样品显示选择的引物(){ if(html.find('tbody').find("[aria-selected='true']").size()==0){return false} //如果没有选择的行,那么退出 selecteds=html.find('tbody').find("[aria-selected='true']")//.find('[aria-describedby=list_SeqCustPrimer_id]').text() var ids_shuzu = new Array(); for (var i=0;i<selecteds.size();i++){ id=selecteds.eq(i).find('[aria-describedby=list_SeqCustPrimer_id]').text() //获取id id=id+"-z"//最后的引物位置 ids_shuzu[i]=id } //如果 测序样品 页面是已经打开的 if($('#tabs').find('li:contains(测序样品)').size()===1){ //测序样品的html必须加个后缀或者前缀 不能和之前的重复 var cexuyangpin_html=$('iframe[src="/seq/SeqSampleList.aspx"]').contents().find('body').eq(0)//如果找到 则说明找到了测序样品的页面 toolbar_cexuyangpin=cexuyangpin_html.find('.toolbar').eq(0) // 找到了测序样品的toolbar工具栏 toolbar_cexuyangpin.find('#a_search').eq(0).find('.l-btn-left').eq(0).click(); $('#searchForm').eq(0).find("option[value='seqs_primer_id_2_kind']").attr('selected','selected') //把找到的查询条件改成 引物位置 $('#radd').next().attr('checked','true') //选择 OR 选项 for (var i=0;i<selecteds.size();i++){ $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(i).val(ids_shuzu[i]) } $("#AB").click() $('#tabs').find('li:contains(测序样品)').click() } } }