2.5-自备引物

自备引物

目前為 2023-07-14 提交的版本,檢視 最新版本

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.gf.qytechs.cn/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()
		}
	}
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址