Greasy Fork

Greasy Fork is available in English.

2.16-模板生产

模板生产

当前为 2023-07-27 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/471857/1226485/216-%E6%A8%A1%E6%9D%BF%E7%94%9F%E4%BA%A7.js

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

function 模板生产(src){
	console.log('新的模板生产界面')
	var local_质粒引物板号=localStorage.getItem('质粒引物板号');
	var local_直提引物板号=localStorage.getItem('直提引物板号');
	var local_切胶引物板号=localStorage.getItem('切胶引物板号');
	var local_菌引物板号=localStorage.getItem('菌引物板号');
	var local_重抽引物板号=localStorage.getItem('重抽引物板号');
	var html=$('iframe[src="'+src+'"]')//页面
	html=html.contents().find('body').eq(0)
	var toolbar=html.find('.toolbar').eq(0)  // 找到了toolbar工具栏
	//添加toolbar工具栏按钮
	添加toolbar按钮(html)
	//添加toolbar工具栏按钮
	function 添加toolbar按钮(html){
		if (toolbar.find('.weiyiyici').length==0){
			//添加标记
			toolbar.addClass('weiyiyici')
			//查询加测反应
			if (local_质粒引物板号=='true'){
				toolbar.append('<button id="button_zhili_banhao" onclick="return false">质粒引物板号</button>')
				//点击 质粒引物板号  按钮   
				toolbar.find('#button_zhili_banhao').click(function(){
					获取质粒引物板号()
				})
			}
			if (local_直提引物板号=='true'){
				toolbar.append('<button id="button_zhiti_banhao" onclick="return false">直提引物板号</button>')
				//点击 直提引物板号  按钮   
				toolbar.find('#button_zhiti_banhao').click(function(){
					获取直提引物板号()
				})
			}
			if (local_切胶引物板号=='true'){
				toolbar.append('<button id="button_qiejiao_banhao" onclick="return false">切胶引物板号</button>')
				//点击 直提引物板号  按钮
				toolbar.find('#button_qiejiao_banhao').click(function(){
					获取切胶引物板号()
				})
			}
		}
	}
	//获取质粒引物板号  搜索 模板板号包含ZL  
	function 获取质粒引物板号(){
		url="/seq/ashx/SeqProcessHandler.ashx?_search=true&nd=1667131250674&rows=200&page=1&sidx=seqs_prod_id&sord=asc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22seqs_tempplate%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22ZL%22%7D%5D%7D"
		公共_引物(url)
	}
	//获取直提引物板号  搜索 模板板号包含T
	function 获取直提引物板号(){
		url="/seq/ashx/SeqProcessHandler.ashx?_search=true&nd=1667131250674&rows=200&page=1&sidx=seqs_prod_id&sord=asc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22seqs_tempplate%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22T%22%7D%5D%7D"
		公共_引物(url)
	}
	//获取切胶引物板号  搜索 模板板号包含Q
	function 获取切胶引物板号(){
		url="/seq/ashx/SeqProcessHandler.ashx?_search=true&nd=1667131250674&rows=200&page=1&sidx=seqs_prod_id&sord=asc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22seqs_tempplate%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22Q%22%7D%5D%7D"
		公共_引物(url)
	}
	
	//公共函数
	function 公共_引物(url){
		测序引物_arr=[]
		$.ajaxSettings.async = false; //get请求默认是异步的,在这里改为同步
		$.get(url,
			function (data) {
				总个数=文本_取中间文本(data,'"totalrecords":"','"')
				console.log(总个数)
				if (总个数=="0" || 总个数==false){
					return
				}else{
					备注_arr=文本_取中间文本_批量(data,'"remark":"','"')
					客户名_arr=文本_取中间文本_批量(data,'"seqo_cust_name":"','"')
					课题组_arr=文本_取中间文本_批量(data,'"seqo_ketizu":"','"')
					测序引物_arr=文本_取中间文本_批量(data,'"seqs_primer":"','"')
					引物浓度_arr=文本_取中间文本_批量(data,'"seqs_observe":"','"')
					
					//删除 待测和没有包含对应的,所有数组都要去除
					记录需要删除的索引=[]
					for(var i=0;i<备注_arr.length;i++){
						//如果备注有待测                或者 长程序 或  暂时不做 
						if(备注_arr[i].indexOf('待测')!=-1 ){  // 备注_arr[i].indexOf('长程序')!=-1 || 备注_arr[i].indexOf('暂时不做')!=-1
							记录需要删除的索引.push(i)
							continue
						}
						// 如果引物浓度没有包含对应
						if(引物浓度_arr[i].indexOf('对应')==-1){
							记录需要删除的索引.push(i)
							continue
						}
					}
					for(var i=记录需要删除的索引.length-1;i>=0;i--){
						备注_arr.splice (记录需要删除的索引[i],1)
						客户名_arr.splice (记录需要删除的索引[i],1)
						课题组_arr.splice (记录需要删除的索引[i],1)
						测序引物_arr.splice (记录需要删除的索引[i],1)
						引物浓度_arr.splice (记录需要删除的索引[i],1)
					}
					所有连接_arr=[]
					for (var i=0;i<客户名_arr.length;i++){
						所有连接_arr.push(备注_arr[i]+"&$"+客户名_arr[i]+"&$"+课题组_arr[i]+"&$"+测序引物_arr[i]+"&$"+引物浓度_arr[i])
					}
					所有连接_arr=quchong_arr(所有连接_arr)
					备注_arr=[]
					客户名_arr=[]
					课题组_arr=[]
					测序引物_arr=[]
					引物浓度_arr=[]
					for(var i=0;i<所有连接_arr.length;i++){
						备注_arr.push(所有连接_arr[i].split('&$')[0])
						客户名_arr.push(所有连接_arr[i].split('&$')[1])
						课题组_arr.push(所有连接_arr[i].split('&$')[2])
						测序引物_arr.push(所有连接_arr[i].split('&$')[3])
						引物浓度_arr.push(所有连接_arr[i].split('&$')[4])
					}
					console.log('备注_arr的长度',备注_arr.length)
					console.log('客户名_arr的长度',客户名_arr.length)
					console.log('课题组_arr的长度',课题组_arr.length)
					console.log('测序引物_arr的长度',测序引物_arr.length)
					console.log('引物浓度_arr的长度',引物浓度_arr.length)
				}
			})
		//在测序样品根据课题组和测序引物降序排序获取板号
		result_客户名_arr=[]
		result_课题组_arr=[]
		result_引物浓度_arr=[]
		result_备注_arr=[]
		result_测序引物_arr=[]
		result_板号_arr=[]
		for(var i=0;i<测序引物_arr.length;i++){
			tijiao="/seq/ashx/SeqSampleHandler.ashx?_search=true&nd=1667077638736&rows=20&page=1&sidx=seqs_plate&sord=desc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22seqs_primer%22%2C%22op%22%3A%22eq%22%2C%22data%22%3A%22"+测序引物_arr[i]+"%22%7D%2C%7B%22field%22%3A%22seqo_ketizu%22%2C%22op%22%3A%22eq%22%2C%22data%22%3A%22"+课题组_arr[i]+"%22%7D%5D%7D"
			$.get(tijiao,
				function (data) {
					总个数=文本_取中间文本(data,'"totalrecords":"','"')
					if (总个数=="0" || 总个数=='没有找到 前面文本 ' || 总个数=='前面文本必须唯一'){
						console.log('总个数为0')
						tag=1
						return
					}else{
						result_备注_arr.push(文本_取中间文本_批量(data,'"remark":"','"')[0])
						result_客户名_arr.push(文本_取中间文本_批量(data,'"seqo_cust_name":"','"')[0])
						result_课题组_arr.push(文本_取中间文本_批量(data,'"seqo_ketizu":"','"')[0])
						result_测序引物_arr.push(文本_取中间文本_批量(data,'"seqs_primer":"','"')[0])
						result_引物浓度_arr.push(文本_取中间文本_批量(data,'"seqs_observe":"','"')[0])
						result_板号_arr.push(文本_取中间文本_批量(data,'"seqs_plate":"','"')[0])
					}
				})
		}
		//清空文本框内容
		if($('#textarea_shuju').length===1){
			$("#textarea_shuju").val("")
		}
		//给文本框放入结果数据
		for(var i=0;i<result_备注_arr.length;i++){
			shuju=result_测序引物_arr[i]+"  ("+result_板号_arr[i]+")  "+result_客户名_arr[i]+"  "+result_课题组_arr[i]     //+"  "+result_备注_arr[i]+"  "+result_引物浓度_arr[i]
			if($('#textarea_shuju').length===0){
				$("body").find("[class='layout-body panel-body panel-body-noheader panel-body-noborder']").append('<textarea id="textarea_shuju" style="position:absolute;left:400px;top:20px" rows="2" cols="400"></textarea>');
			}
			$("#textarea_shuju").val($("#textarea_shuju").val()+shuju+"\n")
		}
		alert('ok')
	}
}