2.3-测序样品

测序样品

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/469913/1495326/23-%E6%B5%8B%E5%BA%8F%E6%A0%B7%E5%93%81.js

  1. function 测序样品(){
  2. console.log('新的测序样品界面')
  3. var local_修改样品名称=localStorage.getItem('修改样品名称');
  4. var local_批量添加反应=localStorage.getItem('批量添加反应');
  5. var local_显示订单号=localStorage.getItem('显示订单号');
  6. var local_显示样品名称=localStorage.getItem('显示样品名称');
  7. var local_打印样品标签=localStorage.getItem('打印样品标签');
  8. var local_查询引物=localStorage.getItem('查询引物');
  9. var local_其他=localStorage.getItem('其他');
  10. var local_模板板号和孔号改为负一=localStorage.getItem('模板板号和孔号改为负一');
  11. var local_模板改为负一=localStorage.getItem('模板改为负一'); //这是反应组的权限 模板板号和孔号改为负一
  12. var local_修改模板板号=localStorage.getItem('修改模板板号');
  13. var local_修改模板孔号=localStorage.getItem('修改模板孔号');
  14. var local_查询平板菌返还=localStorage.getItem('查询平板菌返还');
  15. var local_重跑标颜色=localStorage.getItem('重跑标颜色');
  16. var 当前用户名=$('#curname',window.parent.document).text()
  17. var html=$('iframe[src="/seq/SeqSampleList.aspx"]')//测序样品页面
  18. html=html.contents().find('body').eq(0)
  19. var toolbar=html.find('.toolbar').eq(0) // 找到了toolbar工具栏
  20. var table=html.find('.ui-jqgrid-btable').eq(0) // 找到了样品的table
  21. 初始化()
  22. function 初始化(){
  23. if (local_重跑标颜色=='true'){
  24. //反应组标的颜色
  25. 状态_标颜色_反应组()
  26. }else{
  27. //录入标的颜色
  28. //选中一些行后,把相同引物位置的其余引物标记颜色
  29. table.on('click','tbody tr',function(){
  30. 相同引物位置标记颜色();
  31. })
  32. //把 测序样品 的 流程名称 是反应生产,模板失败,停止反应 引物已清 标颜色
  33. 状态_标颜色_录入组()
  34. }
  35. //点击批量编辑 批量编辑测序引物 按钮 如果需要改变引物,那么需要跟反应组说一下(反应生产 模板成功等)
  36. $("#w").on('click','#select_temple_notNull',function(){
  37. 更改引物_提醒_跟反应组说()
  38. })
  39. if (当前用户名=='申高天'){
  40. //改成每页150个数据
  41. html.find('#pager_center').eq(0).find("option[value='10']").eq(0).val('150')
  42. }
  43. }
  44. //添加toolbar工具栏按钮
  45. 添加toolbar按钮(html)
  46. //添加toolbar工具栏按钮
  47. function 添加toolbar按钮(html){
  48. if (toolbar.find('.weiyiyici').length==0){
  49. //添加标记
  50. toolbar.addClass('weiyiyici')
  51. //反应组 模板改为负一 和录入组的 模板板号和孔号改为负一 是一样的。
  52. if (local_模板改为负一=='true'){
  53. toolbar.append('<button id="button_muban_-1" onclick="return false">模板板号和孔号改为-1</button>')
  54. //点击按钮
  55. toolbar.find('#button_muban_-1').click(function(){
  56. 模板板号和孔号改为负一()
  57. })
  58. }
  59. //添加修改样品名称按钮
  60. if (local_修改样品名称=='true'){
  61. toolbar.append('<span style="position:relative;z-index:2;"><button id="button_xiugai_yangpin" onclick="return false">修改样品名称◇</button><div id="div_xiugai_yangpin" style="position:absolute;width:250px;height:95px;border:1px solid orange;background-color: #1B211D;display:none"></div></span>')
  62. var div_show_yincang=toolbar.find('#div_xiugai_yangpin').eq(0)
  63. div_show_yincang.append('<input type="text" class="text_huichejian" id="text_qianzhui" placeholder="样品前缀" size="10"/><button id="button_qianzhui" onclick="return false">添加样品前缀</button>')
  64. div_show_yincang.append('<input type="text" class="text_huichejian" id="text_houzhui" placeholder="样品后缀" size="10"/><button id="button_houzhui" onclick="return false">添加样品后缀</button>')
  65. div_show_yincang.append('<input type="text" class="text_huichejian" id="text_gaiqian" placeholder="需要改的部分" size="15"/><input type="text" class="text_huichejian" id="text_gaihou" placeholder="改成的部分" size="10"/><button id="button_genggai" onclick="return false">更改部分样品名称</button>')
  66. //点击修改样品名称按钮 显示或者隐藏DIV
  67. toolbar.find('#button_xiugai_yangpin').click(function(){
  68. 显示隐藏DIV('#div_xiugai_yangpin',"button_xiugai_yangpin")
  69. })
  70. //点击添加样品前缀按钮执行如下函数
  71. toolbar.find('#button_qianzhui').click(function(){
  72. 添加前后缀('前缀','#text_qianzhui')
  73. })
  74. //点击添加样品后缀按钮执行如下函数
  75. toolbar.find('#button_houzhui').click(function(){
  76. 添加前后缀('后缀','#text_houzhui')
  77. })
  78. //点击 更改部分 执行如下函数
  79. toolbar.find('#button_genggai').click(function(){
  80. 更改部分()
  81. })
  82. //给文本框绑定回车键的函数
  83. toolbar.find('.text_huichejian').keypress(function(event){
  84. if(event.keyCode ==13){
  85. return false
  86. }
  87. });
  88. }
  89. //添加批量添加反应按钮
  90. if (local_批量添加反应=='true'){
  91. toolbar.append('<span style="position:relative;z-index:2;"><button id="button_piliang" onclick="return false"><font color="red">批量添加反应◇</font></button><div id="div_piliang" style="position:absolute;left:-250px;height:100px;width:430px;height:105px;border:1px solid orange;background-color: #1B211D;display:none"></div></span>')
  92. div_piliang=toolbar.find('#div_piliang').eq(0)
  93. div_piliang.append('<input type="text" id="text_piliang_duotiaodai" placeholder="添加多条带" size="10" value="1"/><button id="button_duotiaodai" onclick="return false">批量添加多条带,默认双条带(带引物)</button><br/><br/>')
  94. div_piliang.append('<input type="text" id="text_piliang_tongming" placeholder="添加同名反应" size="10" value="1"/><button id="button_tongming" onclick="return false">批量添加同名反应(不带引物,一个名字只能选一次)</button><br/><br/>')
  95. div_piliang.append('<input type="text" id="text_jiace" placeholder="默认1个" value="1" size="10"/><button id="button_jiace" onclick="return false"><font color="red">加测</font></button>')
  96. //点击批量添加反应按钮 显示或者隐藏DIV
  97. toolbar.find('#button_piliang').click(function(){
  98. 显示隐藏DIV('#div_piliang',"button_piliang")
  99. })
  100. //给批量多条带文本框绑定回车键的函数
  101. toolbar.find('#text_piliang_duotiaodai').eq(0).keypress(function(event){
  102. if(event.keyCode ==13){
  103. return false
  104. }
  105. //如果输入的字符不是数字 那么不允许输入
  106. if(event.keyCode !==48 && event.keyCode !==49 && event.keyCode !==50 && event.keyCode !==51 && event.keyCode !==52 && event.keyCode !==53 && event.keyCode !==54 && event.keyCode !==55 && event.keyCode !==56 && event.keyCode !==57 ){
  107. return false
  108. }
  109. });
  110. //给批量同名文本框绑定回车键的函数
  111. toolbar.find('#text_piliang_tongming').eq(0).keypress(function(event){
  112. if(event.keyCode ==13){
  113. return false
  114. }
  115. //如果输入的字符不是数字 那么不允许输入
  116. if(event.keyCode !==48 && event.keyCode !==49 && event.keyCode !==50 && event.keyCode !==51 && event.keyCode !==52 && event.keyCode !==53 && event.keyCode !==54 && event.keyCode !==55 && event.keyCode !==56 && event.keyCode !==57 ){
  117. return false
  118. }
  119. });
  120. //给加测文本框绑定回车键的函数
  121. toolbar.find('#text_jiace').eq(0).keypress(function(event){
  122. if(event.keyCode ==13){
  123. return false
  124. }
  125. });
  126. //点击多条带批量添加按钮
  127. toolbar.find('#button_duotiaodai').click(function(){
  128. 批量_添加多条带()
  129. })
  130. //点击批量添加同名反应按钮
  131. toolbar.find('#button_tongming').click(function(){
  132. 批量_添加同名反应()
  133. })
  134. //点击加测 按钮
  135. toolbar.find('#button_jiace').click(function(){
  136. 加测('jiace');
  137. })
  138. }
  139. //添加显示订单号按钮
  140. if (local_显示订单号=='true'){
  141. toolbar.append('<button id="button_show_order" onclick="return false">显示订单号</button>')
  142. //点击按钮
  143. toolbar.find('#button_show_order').click(function(){
  144. 显示选择行所属的订单号()
  145. })
  146. }
  147. //添加 显示样品名称 按钮
  148. if (local_显示样品名称=='true'){
  149. toolbar.append('<button id="button_show_yp" onclick="return false">显示样品名称</button>')
  150. //点击按钮
  151. toolbar.find('#button_show_yp').click(function(){
  152. 显示选择行的样品名称()
  153. })
  154. }
  155. //点击 打印样品标签 按钮
  156. if (local_打印样品标签 == 'true'){
  157. toolbar.append('<button id="button_print_ypbq" onclick="return false">打印样品标签</button>')
  158. //点击按钮
  159. toolbar.find('#button_print_ypbq').click(function(){
  160. 打印样品标签()
  161. })
  162. }
  163. //添加 查询引物 按钮
  164. if (local_查询引物=='true'){
  165. toolbar.append('<div id="chaxun_yinwu"></div>')
  166. toolbar.find('#chaxun_yinwu').append('<input type="text" disabled value="客户姓名" size="5"/><input type="text" class="text_value" id="text_kehu_value" placeholder="条件value" size="10"/>')
  167. toolbar.find('#chaxun_yinwu').append('<input type="text" disabled value="测序引物" size="5"/><input type="text" class="text_value" id="text_yinwu_value" placeholder="空格区分" size="10"/>')
  168. toolbar.find('#chaxun_yinwu').append('<input type="text" disabled value="课题组" size="5"/><input type="text" class="text_value" id="text_ketizu_value" placeholder="课题组" size="10"/>')
  169. toolbar.find('#chaxun_yinwu').append('<button id="button_qingkong" onclick="return false">清空value</button>') //清空按钮
  170. //客户姓名 回车 要求:客户姓名和测序引物必须有一项不为空
  171. toolbar.find('.text_value').keypress(function(event){
  172. if(event.keyCode ==13){
  173. //如果 客户 或者 引物 或者 课题组, 至少有一个是有数据,那么才能点击
  174. var kehu_val=toolbar.find('#text_kehu_value').val().trim()
  175. var yinwu_val=toolbar.find('#text_yinwu_value').val().trim()
  176. var ketizu_val=toolbar.find('#text_ketizu_value').val().trim()
  177. if( kehu_val !=="" || yinwu_val !=="" || ketizu_val !=="" ){
  178. //查询客户姓名+测序引物+课题组
  179. 查询引物(kehu_val,yinwu_val,ketizu_val)
  180. }
  181. return false
  182. }
  183. });
  184. //点击 清空value按钮
  185. toolbar.find('#button_qingkong').click(function(){
  186. toolbar.find('.text_value').val('')
  187. })
  188. }
  189. //添加 其他 按钮
  190. if (local_其他=='true'){
  191. //在查询引物的后面加其他按钮
  192. toolbar.find('#chaxun_yinwu').append('<span style="position:relative;z-index:1;"><button id="button_qita" onclick="return false">其他◇</button><div id="div_qita" style="position:absolute;left:-150px;width:280px;height:50px;border:1px solid orange;background-color: #1B211D;display:none"></div></span>')
  193. var div_qita=toolbar.find('#div_qita').eq(0)
  194. if(当前用户名==="申高天"){
  195. div_qita.css('height','160px')
  196. if (local_修改模板板号=='true'){
  197. div_qita.append('<input type="text" class="text_huichejian" id="text_add_mubanbanhao" placeholder="模板板号" size="10"/><button id="button_add_mubanbanhao" onclick="return false"><font color="blue">修改模板板号</font></button><br/>')
  198. }
  199. }
  200. div_qita.append('<input type="text" class="text_huichejian" id="text_beizhu_gaiqian" placeholder="需要改的部分" size="10"/><input type="text" class="text_huichejian" id="text_beizhu_gaihou" placeholder="改成的部分" size="10"/><button id="button_beizhu_genggai" onclick="return false">更改备注</button><br/>')
  201. div_qita.append('<button id="button_tiaozhuandao_zibeiyinwu" onclick="return false"><font color="blue">跳转到自备引物</font></button><br/><br/>')
  202. if(当前用户名==="申高天"){
  203. if (local_修改模板孔号=='true'){
  204. div_qita.append('<input type="text" class="text_huichejian" id="text_add_mubankonghao" placeholder="模板孔号" size="10"/><button id="button_add_mubankonghao" onclick="return false"><font color="blue">修改模板孔号</font></button><br/>')
  205. }
  206. div_qita.append('<button id="button_tiqushuju" onclick="return false"><font color="blue">提取数据</font></button>')
  207. div_qita.append('<button id="button_qingchushuju" onclick="return false"><font color="blue">清除数据</font></button><br/>')
  208. //添加 textarea 用于放数据
  209. $("body").find("[class='layout-body panel-body panel-body-noheader panel-body-noborder']").append('<textarea id="textarea_biaoti" style="position:absolute;left:400px;visibility:hidden" rows="1" cols="400"></textarea>')
  210. $("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;visibility:hidden" rows="2" cols="400"></textarea><br/>');
  211. //模板板号和孔号改为负一
  212. if (local_模板板号和孔号改为负一=='true'){
  213. div_qita.append('<button id="button_mubanbanhaokonghao_fuyi" onclick="return false"><font color="blue">模板板号和孔号改为负一</font></button><br/>')
  214. }
  215. }
  216. div_qita.append('<button id="button_jiaji" onclick="return false"><font color="blue">查找菌液加急</font></button><br/>')
  217. //点击 其他 按钮 显示或者隐藏DIV
  218. toolbar.find('#button_qita').click(function(){
  219. 显示隐藏DIV('#div_qita',"button_qita")
  220. })
  221. //给文本框绑定回车键的函数
  222. toolbar.find('.text_huichejian').keypress(function(event){
  223. if(event.keyCode ==13){
  224. return false
  225. }
  226. });
  227. //点击 修改模板板号 按钮
  228. toolbar.find('#button_add_mubanbanhao').click(function(){
  229. 修改模板板号()
  230. })
  231. //点击 修改模板孔号 按钮
  232. toolbar.find('#button_add_mubankonghao').click(function(){
  233. 修改模板孔号()
  234. })
  235. //单击 更改备注 按钮
  236. toolbar.find('#button_beizhu_genggai').click(function(){
  237. 更改备注()
  238. })
  239. //双击 清空备注
  240. toolbar.find('#button_beizhu_genggai').dblclick(function(){
  241. 清空备注()
  242. })
  243. //点击 跳转到自备引物 按钮
  244. toolbar.find('#button_tiaozhuandao_zibeiyinwu').click(function(){
  245. 跳转到自备引物()
  246. })
  247. //点击 提取数据 按钮
  248. toolbar.find('#button_tiqushuju').click(function(){
  249. 提取数据()
  250. })
  251. //点击 清除数据 按钮
  252. toolbar.find('#button_qingchushuju').click(function(){
  253. 清除数据()
  254. })
  255. //点击 模板板号和孔号改为负一 按钮
  256. toolbar.find('#button_mubanbanhaokonghao_fuyi').click(function(){
  257. 模板板号和孔号改为负一()
  258. })
  259. //点击 查找菌液加急 按钮
  260. toolbar.find('#button_jiaji').click(function(){
  261. 查找菌液加急()
  262. })
  263. }
  264. //添加 查询平板菌返还 按钮
  265. if (local_查询平板菌返还=='true'){
  266. toolbar.append('<button id="button_pingbanjunfanhuan" onclick="return false">查询平板菌返还</button>')
  267. //点击按钮
  268. toolbar.find('#button_pingbanjunfanhuan').click(function(){
  269. 查询平板菌返还()
  270. })
  271. }
  272. }
  273. }
  274. //显示或者隐藏DIV
  275. function 显示隐藏DIV(div_id,button_id){
  276. div=toolbar.find(div_id).eq(0)
  277. div.toggle()
  278. //改变背景颜色
  279. if (div.css('display')==="none"){
  280. toolbar.find(button_id).css('background-color','')
  281. }else{
  282. toolbar.find(button_id).css('background-color','#B7A0AA')
  283. //如果是批量添加反应的div 把已填的数据改为1
  284. if (div_id=='#div_piliang'){
  285. toolbar.find(div_id).eq(0).find(":input").val('1')
  286. }else{
  287. //如果是修改样品名称的div 或者 其他div 把已填的数据清除
  288. toolbar.find(div_id).eq(0).find(":input").val('')
  289. }
  290. }
  291. }
  292. //添加前后缀
  293. function 添加前后缀(前后缀,id){
  294. 加的前后缀=html.find(id).eq(0).val()
  295. //如果没写数据,那么退出
  296. if(加的前后缀===""){return false}
  297. //点击 批量编辑
  298. toolbar.find('#a_BatchEdit').eq(0).find('.l-btn-left').eq(0).click();
  299. $('#txt_seqs_sam_num').eq(0).val(加的前后缀)
  300. if (前后缀=='前缀'){
  301. //选择前缀单选按钮
  302. $('#txt_seqs_sam_num_foreedit').attr('checked','true')
  303. }
  304. if (前后缀=='后缀'){
  305. //选择后缀单选按钮
  306. $('#txt_seqs_sam_num_houedit').attr('checked','true')
  307. }
  308. $("#AB").click()
  309. }
  310. //更改部分样品名称
  311. function 更改部分(){
  312. _前=html.find('#text_gaiqian').eq(0).val()
  313. _后=html.find('#text_gaihou').eq(0).val()
  314. //如果没有选择的行,那么退出
  315. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  316. if(改_前===""){return false}
  317. //点击 批量编辑
  318. toolbar.find('#a_BatchEdit').eq(0).find('.l-btn-left').eq(0).click();
  319. $('#txt_seqs_sam_num').eq(0).val(改_前)
  320. $('#txt_seqs_sam_num2').eq(0).val(改_后)
  321. //选择替换单选按钮
  322. $('#txt_seqs_sam_num_partedit').attr('checked','true')
  323. $("#AB").click()
  324. }
  325. //添加多条带
  326. function 批量_添加多条带(){
  327. var geshu=toolbar.find('#text_piliang_duotiaodai').eq(0).val()
  328. res=文本是否是120(geshu)
  329. if(!res){ //说明输入的不符合要求
  330. alert('输入的不符合要求,需要输入1到20')
  331. return false
  332. }
  333. geshu=parseInt(geshu)
  334. //判断是否选择了反应,且选择的是否是同一个订单号
  335. selecteds=is_one_order(html)
  336. if(selecteds===false){//如果返回的是false 那么要不没有选择反应,要不选择的不是同一个订单号
  337. return false
  338. }
  339. yp_all_array=[] //生产编号
  340. ypmc_all_array=[] //样品名称
  341. new_ypmc_all_array=[] //新的样品名称
  342. yinwu_all_array=[] //引物名称
  343. new_yinwu_all_array=[] //新的引物名称
  344. yinwu_weizhi_array=[] //引物位置
  345. new_yinwu_weizhi_array=[] //新的引物位置
  346. yinwu_nong_all_array=[] //引物浓度
  347. new_yinwu_nong_all_array=[] //新的引物浓度
  348. yplx_all_array=[] //样品类型
  349. new_yplx_all_array=[] //新的样品类型
  350. zaiti_array=[] //载体
  351. new_zaiti_array=[] //新的载体
  352. pianduan_array=[] //片段
  353. new_pianduan_array=[] //新的片段
  354. kangshengsu_array=[] //抗生素
  355. new_kangshengsu_array=[] //新的抗生素
  356. beizhu_array=[] //备注
  357. new_beizhu_array=[] //新的备注
  358. is_cetong_array=[] //是否测通
  359. new_is_cetong_array=[] //新的是否测通
  360. //公共函数 生产编号需要降序排序
  361. 是否排好序=生产编号需要降序排序(selecteds)
  362. if(是否排好序===false){//如果返回的是false 那么没有排好序
  363. return false
  364. }
  365. //倒序把样品对应号放进数组
  366. tags=0
  367. $(selecteds.toArray().reverse()).each(function(){
  368. ypdyh_name=$(this).find('[aria-describedby=list_seqs_plus_prod_id]').html()
  369. if(ypdyh_name!=="" && ypdyh_name!=="&nbsp;"){
  370. tags=1
  371. }
  372. })
  373. if(tags===1){
  374. alert('有的反应带有"样品对应号",不能添加多条带')
  375. return false
  376. }
  377. $(selecteds.toArray().reverse()).each(function(){
  378. //倒序把样品名称放进数组
  379. ypmc_all_array.push($(this).find('[aria-describedby=list_seqs_sam_num]').text())
  380. //倒序把引物名称放进数组
  381. yinwu_name=$(this).find('[aria-describedby=list_seqs_primer]').html()
  382. if(yinwu_name=="" || yinwu_name=="&nbsp;"){
  383. yinwu_all_array.push("")
  384. }else{yinwu_all_array.push(yinwu_name)}
  385. //倒序把引物位置放进数组
  386. yinwu_weizhi_array.push($(this).find('[aria-describedby=list_seqs_primer_id_2_kind]').text())
  387. //倒序把引物浓度放进数组
  388. nongdu_name=$(this).find('[aria-describedby=list_seqs_observe]').html()
  389. if(nongdu_name=="" || nongdu_name=="&nbsp;"){ //如果载体为空 或者 空格
  390. yinwu_nong_all_array.push("")
  391. }else{yinwu_nong_all_array.push(nongdu_name)}
  392. //倒序把样品类型放进数组
  393. yplx_name=$(this).find('[aria-describedby=list_seqs_sam_type]').text()
  394. yplx_all_array.push(yplx_name)
  395. //倒序把载体放进数组
  396. zaiti_name=$(this).find('[aria-describedby=list_seqs_carry]').html()
  397. if(zaiti_name=="" || zaiti_name=="&nbsp;"){ //如果载体为空 或者 空格
  398. zaiti_array.push("")
  399. }else{zaiti_array.push(zaiti_name)}
  400. //倒序把片段放进数组
  401. pianduan_name=$(this).find('[aria-describedby=list_seqs_fragment_size]').html()
  402. if(pianduan_name=="" || pianduan_name=="&nbsp;"){ //如果片段为空 或者 空
  403. pianduan_array.push("")
  404. }else{pianduan_array.push(pianduan_name)}
  405. //倒序把抗生素放进数组
  406. kangshengsu_name=$(this).find('[aria-describedby=list_seqs_ant_type]').html()
  407. if(kangshengsu_name=="" || kangshengsu_name=="&nbsp;"){ //如果为空 或者 空格
  408. kangshengsu_array.push("")
  409. }else{kangshengsu_array.push(kangshengsu_name)}
  410. //倒序把备注放进数组
  411. beizhu_name=$(this).find('[aria-describedby=list_remark]').html()
  412. if(beizhu_name=="" || beizhu_name=="&nbsp;"){
  413. beizhu_array.push("")
  414. }else{beizhu_array.push(beizhu_name)}
  415. //倒序把是否测通放进数组
  416. cetong_is=$(this).find('[aria-describedby=list_seqs_istest_pass]').text()
  417. if(cetong_is=="是" || cetong_is=="true"){
  418. is_cetong_array.push(true)
  419. }else{is_cetong_array.push(false)}
  420. })
  421. //对多条带进行重新赋值
  422. quchong_ypm=quchong_arr(ypmc_all_array)
  423. for(var i=0;i<quchong_ypm.length;i++){ //去重后的数组
  424. for(var j=1;j<=geshu;j++){ // 多条带 这是为了方便样品的多条带加上后缀
  425. for(var z=0;z<ypmc_all_array.length;z++){ //原数组
  426. if(quchong_ypm[i]===ypmc_all_array[z]){
  427. new_ypmc_all_array.push(ypmc_all_array[z]+'-'+(j+1).toString()) //把样品名加上多条带的后缀push到新的样品数组里面
  428. new_yinwu_all_array.push(yinwu_all_array[z]) //push到新的引物数组里面
  429. new_yinwu_weizhi_array.push(yinwu_weizhi_array[z]) //push到新的引物位置数组里面
  430. new_yinwu_nong_all_array.push(yinwu_nong_all_array[z]) //push到新的引物浓度数组里面
  431. new_yplx_all_array.push(yplx_all_array[z]) //push到新的样品类型数组里面
  432. new_zaiti_array.push(zaiti_array[z])//push到新的载体数组里面
  433. new_pianduan_array.push(pianduan_array[z])//push到新的片段数组里面
  434. new_kangshengsu_array.push(kangshengsu_array[z]) //push到新的抗生素数组里面
  435. new_beizhu_array.push(beizhu_array[z]) //push到新的备注数组里面
  436. new_is_cetong_array.push(is_cetong_array[z]) //push到新的是否测通数组里面
  437. }
  438. }
  439. }
  440. }
  441. order_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_order_id]').eq(0).text() //查找订单号
  442. kehu_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_cust_id]').eq(0).text() //查找客户ID
  443. kehu_name=selecteds.eq(0).find('[aria-describedby=list_seqo_cust_name]').eq(0).text() //查找客户姓名
  444. ketizu_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_ketizu_id]').eq(0).text() //查找课题组ID
  445. ketizu_name=selecteds.eq(0).find('[aria-describedby=list_seqo_ketizu]').eq(0).text() //查找课题组姓名
  446. company_ID=selecteds.eq(0).find('[aria-describedby=list_seqs_product_company_id]').eq(0).text() // 公司ID 比如昌平的是38
  447. company_name=selecteds.eq(0).find('[aria-describedby=list_seqs_product_company_name]').eq(0).text() // 生产分公司名字 比如北京分公司
  448. var r = confirm("确定要给"+kehu_name+"添加"+(geshu+1).toString()+"条带吗?总共 "+(selecteds.size()*geshu).toString()+" 条反应");
  449. if (r == false) {
  450. return false;
  451. } else{
  452. html.find('#button_duotiaodai').eq(0).attr('disabled',true)
  453. }
  454. josn_str=''
  455. $.each(new_ypmc_all_array,function(index){ //对数组 多条反应,需要结合成josn_str index是从0开始的
  456. weizhi_split_array=new_yinwu_weizhi_array[index].split("-") //位置用split分隔,如果不能分隔,那么长度为1,如果能分隔,那么长度为2
  457. if(weizhi_split_array.length==1){
  458. yinwu_weizhi_kind="";
  459. yinwu_weizhi_primerid=""
  460. }else{
  461. yinwu_weizhi_kind=weizhi_split_array[1]
  462. yinwu_weizhi_primerid=weizhi_split_array[0]
  463. }
  464. josn_str=josn_str+'{"seqs_vip_platestyle":"纵向提交","seqs_vip_platename":"1","seqs_vip_plate":1,"seqs_vip_hole":'+(index+1)+',"seqs_vip_number":'+(index+1)+',"seqs_vip_sam_num":"'+new_ypmc_all_array[index]+'","seqs_vip_sam_kind":"'+new_yplx_all_array[index]+'","seqs_vip_fragment_size":"","seqs_vip_seqs_carry":"'+new_zaiti_array[index]+'","seqs_vip_ant_type":"'+new_kangshengsu_array[index]+'","seqs_vip_seqs_primer":"'+new_yinwu_all_array[index]+'","seqs_vip_seqsprime_kind":"'+yinwu_weizhi_kind+'","seqs_vip_seqs_primer_id":"'+yinwu_weizhi_primerid+'","seqs_vip_istest_pass":'+new_is_cetong_array[index]+',"seqs_vip_return_sample":false,"seqs_vip_sample_remark":"'+new_beizhu_array[index]+'"},'
  465. if(new_ypmc_all_array.length==index+1){ //如果是最后一项,那么把最后的逗号去掉
  466. josn_str=josn_str.slice(0,-1);
  467. }
  468. })
  469. josn_str='['+josn_str+'],'+'"orderid":"'+order_ID+'","companyid":"'+company_ID+'"}'
  470. josn_str='{"action":"AddSeqOrder","seqHighPhoto":"","seqscreenshot":[],"cust_id":'+kehu_ID+',"cust_name":"'+kehu_name+'","ketizu_id":"'+ketizu_ID+'","ketizu_name":"'+ketizu_name+'","ordersort":"","linkToGeneNo":"","seqo_product_company_id":"'+company_ID+'","seqo_product_company_name":"'+company_name+'","seqo_settlement_company_id":"","seqo_settlement_company_name":"","order":{"vip_order_name":"","vip_order_kind":"PCR切胶","vip_order_platestyle":"2","vip_order_remark":"","vip_order_state":0,"vip_order_ketizuid":"'+ketizu_ID+'","vip_order_ketizuname":"'+ketizu_name+'","vip_order_isurgent":"false"},"seqo_id":"'+order_ID+'","seqs":'+josn_str
  471. $.ajax({
  472. type:"POST",
  473. url:"/ajax/PostErpUseVipPageHandler.ashx",
  474. contentType: "application/json", //必须这样写
  475. dataType:"json",
  476. data: JSON.stringify(jQuery.parseJSON(josn_str)), //josn_str是你要提交是json字符串
  477. success:function (data) {
  478. html.find('.ui-pg-input').eq(0).focus()
  479. alert('修改成功 ,光标自动定位在页数,直接按回车或更改页数可以查看更改结果')
  480. html.find('#button_duotiaodai').eq(0).attr('disabled',false)
  481. }
  482. })
  483. }
  484. //批量添加同名反应
  485. function 批量_添加同名反应(){
  486. var geshu=toolbar.find('#text_piliang_tongming').eq(0).val()
  487. res=文本是否是120(geshu)
  488. if(!res){ //说明输入的不符合要求
  489. alert('输入的不符合要求,需要输入1到20')
  490. return false
  491. }
  492. geshu=parseInt(geshu)
  493. //公共函数 判断是否选择了反应,且选择的是否是同一个订单号
  494. selecteds=is_one_order(html)
  495. if(selecteds===false){//如果返回的是false 那么要不没有选择反应,要不选择的不是同一个订单号
  496. return false
  497. }
  498. yp_all_array=[] //生产编号
  499. ypdyh_all_array=[] //样品对应号
  500. new_ypdyh_all_array=[] //新的样品对应号
  501. ypmc_all_array=[] //样品名称
  502. new_ypmc_all_array=[] //新的样品名称
  503. yplx_all_array=[] //样品类型
  504. new_yplx_all_array=[] //新的样品类型
  505. zaiti_array=[] //载体
  506. new_zaiti_array=[] //新的载体
  507. pianduan_array=[] //片段
  508. new_pianduan_array=[] //新的片段
  509. kangshengsu_array=[] //抗生素
  510. new_kangshengsu_array=[] //新的抗生素
  511. beizhu_array=[] //备注
  512. new_beizhu_array=[] //新的备注
  513. is_cetong_array=[] //是否测通
  514. new_is_cetong_array=[] //新的是否测通
  515. //公共函数 生产编号需要降序排序
  516. 是否排好序=生产编号需要降序排序(selecteds)
  517. if(是否排好序===false){//如果返回的是false 那么没有排好序
  518. return false
  519. }
  520. $(selecteds.toArray().reverse()).each(function(){
  521. //倒序把样品名称放进数组
  522. ypmc_all_array.push($(this).find('[aria-describedby=list_seqs_sam_num]').text())
  523. //倒序把样品对应号放进数组
  524. ypdyh_name=$(this).find('[aria-describedby=list_seqs_plus_prod_id]').html()
  525. if(ypdyh_name=="" || ypdyh_name=="&nbsp;"){
  526. ypdyh_all_array.push("")
  527. }else{ypdyh_all_array.push(ypdyh_name)}
  528. //倒序把样品类型放进数组
  529. yplx_name=$(this).find('[aria-describedby=list_seqs_sam_type]').text()
  530. yplx_all_array.push(yplx_name)
  531. //倒序把载体放进数组
  532. zaiti_name=$(this).find('[aria-describedby=list_seqs_carry]').html()
  533. if(zaiti_name=="" || zaiti_name=="&nbsp;"){ //如果载体为空 或者 空格
  534. zaiti_array.push("")
  535. }else{zaiti_array.push(zaiti_name)}
  536. //倒序把片段放进数组
  537. pianduan_name=$(this).find('[aria-describedby=list_seqs_fragment_size]').html()
  538. if(pianduan_name=="" || pianduan_name=="&nbsp;"){ //如果片段为空 或者 空
  539. pianduan_array.push("")
  540. }else{pianduan_array.push(pianduan_name)}
  541. //倒序把抗生素放进数组
  542. kangshengsu_name=$(this).find('[aria-describedby=list_seqs_ant_type]').html()
  543. if(kangshengsu_name=="" || kangshengsu_name=="&nbsp;"){ //如果为空 或者 空格
  544. kangshengsu_array.push("")
  545. }else{kangshengsu_array.push(kangshengsu_name)}
  546. //倒序把备注放进数组
  547. beizhu_name=$(this).find('[aria-describedby=list_remark]').html()
  548. if(beizhu_name=="" || beizhu_name=="&nbsp;"){
  549. beizhu_array.push("")
  550. }else{beizhu_array.push(beizhu_name)}
  551. //倒序把是否测通放进数组
  552. cetong_is=$(this).find('[aria-describedby=list_seqs_istest_pass]').text()
  553. if(cetong_is=="是" || cetong_is=="true"){
  554. is_cetong_array.push(true)
  555. }else{is_cetong_array.push(false)}
  556. })
  557. //对同名数组进行重新赋值
  558. quchong_ypm=quchong_arr(ypmc_all_array)
  559. //如果去重后的长度和原先的长度不一致,代表有重复的
  560. if(ypmc_all_array.length!==quchong_ypm.length){
  561. alert('不要选择重复的样品名,一个样品名只允许选择一次')
  562. return false
  563. }
  564. for(var i=0;i<ypmc_all_array.length;i++){ //去重后的数组
  565. for(var j=1;j<=geshu;j++){ // 多条带 这是为了方便样品的多条带加上后缀
  566. new_ypmc_all_array.push(ypmc_all_array[i]) //把样品名push到新的样品数组里面
  567. new_ypdyh_all_array.push(ypdyh_all_array[i])//把样品对应号push到新的样品数组里面
  568. new_yplx_all_array.push(yplx_all_array[i]) //push到新的样品类型数组里面
  569. new_zaiti_array.push(zaiti_array[i])//push到新的载体数组里面
  570. new_pianduan_array.push(pianduan_array[i])//push到新的片段数组里面
  571. new_kangshengsu_array.push(kangshengsu_array[i]) //push到新的抗生素数组里面
  572. new_beizhu_array.push(beizhu_array[i]) //push到新的备注数组里面
  573. new_is_cetong_array.push(is_cetong_array[i]) //push到新的是否测通数组里面
  574. }
  575. }
  576. order_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_order_id]').eq(0).text() //查找订单号
  577. kehu_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_cust_id]').eq(0).text() //查找客户ID
  578. kehu_name=selecteds.eq(0).find('[aria-describedby=list_seqo_cust_name]').eq(0).text() //查找客户姓名
  579. ketizu_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_ketizu_id]').eq(0).text() //查找课题组ID
  580. ketizu_name=selecteds.eq(0).find('[aria-describedby=list_seqo_ketizu]').eq(0).text() //查找课题组姓名
  581. company_ID=selecteds.eq(0).find('[aria-describedby=list_seqs_product_company_id]').eq(0).text() // 公司ID 比如昌平的是38
  582. company_name=selecteds.eq(0).find('[aria-describedby=list_seqs_product_company_name]').eq(0).text() // 生产分公司名字 比如北京分公司
  583. var r = confirm("确定要给"+kehu_name+"添加"+(selecteds.size()*geshu).toString()+"条同名反应吗?");
  584. if (r == false) {
  585. return false;
  586. } else{
  587. html.find('#button_tongming').eq(0).attr('disabled',true)
  588. }
  589. josn_str=''
  590. $.each(new_ypmc_all_array,function(index){ //对数组 多条反应,需要结合成josn_str index是从0开始的
  591. josn_str=josn_str+'{"seqs_vip_platestyle":"纵向提交","seqs_vip_platename":"1","seqs_vip_plate":1,"seqs_vip_hole":'+(index+1)+',"seqs_vip_number":'+(index+1)+',"seqs_vip_sam_num":"'+new_ypmc_all_array[index]+'","seqs_vip_sam_kind":"'+new_yplx_all_array[index]+'","seqs_vip_fragment_size":"'+new_pianduan_array[index]+'","seqs_vip_seqs_carry":"'+new_zaiti_array[index]+'","seqs_vip_ant_type":"'+new_kangshengsu_array[index]+'","seqs_vip_seqs_primer":"","seqs_vip_seqsprime_kind":"","seqs_vip_seqs_primer_id":"","seqs_vip_istest_pass":'+new_is_cetong_array[index]+',"seqs_vip_return_sample":false,"seqs_vip_sample_remark":"'+new_beizhu_array[index]+'","seqs_plus_prod_id":"'+new_ypdyh_all_array[index]+'"},'
  592. if(new_ypmc_all_array.length==index+1){ //如果是最后一项,那么把最后的逗号去掉
  593. josn_str=josn_str.slice(0,-1);
  594. }
  595. })
  596. josn_str='['+josn_str+'],'+'"orderid":"'+order_ID+'","companyid":"'+company_ID+'"}'
  597. josn_str='{"action":"AddSeqOrder","seqHighPhoto":"","seqscreenshot":[],"cust_id":'+kehu_ID+',"cust_name":"'+kehu_name+'","ketizu_id":"'+ketizu_ID+'","ketizu_name":"'+ketizu_name+'","ordersort":"","linkToGeneNo":"","seqo_product_company_id":"'+company_ID+'","seqo_product_company_name":"'+company_name+'","seqo_settlement_company_id":"","seqo_settlement_company_name":"","order":{"vip_order_name":"","vip_order_kind":"PCR切胶","vip_order_platestyle":"2","vip_order_remark":"","vip_order_state":0,"vip_order_ketizuid":"'+ketizu_ID+'","vip_order_ketizuname":"'+ketizu_name+'","vip_order_isurgent":"false"},"seqo_id":"'+order_ID+'","seqs":'+josn_str
  598. $.ajax({
  599. type:"POST",
  600. url:"/ajax/PostErpUseVipPageHandler.ashx",
  601. contentType: "application/json", //必须这样写
  602. dataType:"json",
  603. data: JSON.stringify(jQuery.parseJSON(josn_str)), //josn_str是你要提交是json字符串
  604. success:function (data) {
  605. html.find('.ui-pg-input').eq(0).focus()
  606. alert('修改成功 ,光标自动定位在页数,直接按回车或更改页数可以查看更改结果')
  607. html.find('#button_tongming').eq(0).attr('disabled',false)
  608. }
  609. })
  610. }
  611. //加测
  612. function 加测(){
  613. //公共函数 判断是否选择了反应,且选择的是否是同一个订单号
  614. selecteds=is_one_order(html)
  615. if(selecteds===false){//如果返回的是false 那么要不没有选择反应,要不选择的不是同一个订单号
  616. return false
  617. }
  618. //公共函数 生产编号需要降序排序
  619. 是否排好序=生产编号需要降序排序(selecteds)
  620. if(是否排好序===false){//如果返回的是false 那么没有排好序
  621. return false
  622. }
  623. //获取选择的行的所有数据
  624. 数据_arr=获取选择的行的所有数据(selecteds)
  625. scbh_arr=数据_arr[0] //生产编号
  626. ypdyh_arr=数据_arr[1] //样品对应号
  627. ypmc_arr=数据_arr[2] //样品名称
  628. yplx_arr=数据_arr[6] //样品类型
  629. zaiti_arr=数据_arr[7] //载体
  630. pianduan_arr=数据_arr[8] //片段
  631. kangshengsu_arr=数据_arr[9] //抗生素
  632. beizhu_arr=数据_arr[10] //备注
  633. is_cetong_arr=数据_arr[11] //是否测通
  634. for (var i=0;i<scbh_arr.length;i++){
  635. //对样品对应号进行循环 如果样品对应号为空 那么把样品对应号改成生产编号
  636. 当前样品对应号=ypdyh_arr[i]
  637. 当前样品对应号=当前样品对应号.trim()
  638. if (当前样品对应号==''){
  639. ypdyh_arr[i]=scbh_arr[i]
  640. }else if (当前样品对应号.indexOf('YP')==-1){
  641. alert('选择的行中,样品对应号有的不对')
  642. return false
  643. }
  644. //对样品类型进行循环 转换成质粒或者PCR已纯化
  645. 当前样品类型=yplx_arr[i]
  646. if(当前样品类型=="质粒" || 当前样品类型.search("菌")!= -1){
  647. yplx_arr[i]="质粒"
  648. }else if( 当前样品类型.search("胶")!= -1 || 当前样品类型.toUpperCase()=="PCR已纯化" || 当前样品类型.toUpperCase()=="PCR单一"){
  649. yplx_arr[i]="PCR已纯化"
  650. }else{yplx_arr[i]="质粒"}
  651. //对是否测通进行循环 放入true或false
  652. 当前是否测通=is_cetong_arr[i]
  653. if(当前是否测通=="是"){
  654. is_cetong_arr[i]=true
  655. }else{is_cetong_arr[i]=false}
  656. }
  657. order_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_order_id]').eq(0).text() //查找订单号
  658. kehu_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_cust_id]').eq(0).text() //查找客户ID
  659. kehu_name=selecteds.eq(0).find('[aria-describedby=list_seqo_cust_name]').eq(0).text() //查找客户姓名
  660. ketizu_ID=selecteds.eq(0).find('[aria-describedby=list_seqo_ketizu_id]').eq(0).text() //查找课题组ID
  661. ketizu_name=selecteds.eq(0).find('[aria-describedby=list_seqo_ketizu]').eq(0).text() //查找课题组姓名
  662. company_ID=selecteds.eq(0).find('[aria-describedby=list_seqs_product_company_id]').eq(0).text() // 公司ID 比如昌平的是38
  663. company_name=selecteds.eq(0).find('[aria-describedby=list_seqs_product_company_name]').eq(0).text() // 生产分公司名字 比如北京分公司
  664. riqi=getday_y_n('---')
  665. jihang=toolbar.find("#text_jiace").eq(0).val() //确定加测几行,
  666. if(jihang.trim()==""){jihang="1"}
  667. jihang=parseInt(jihang)
  668. if(!jihang){jihang="1"}
  669. josn_str=''
  670. var r = confirm("确定要给"+kehu_name+"加测吗?总共 "+jihang*selecteds.size()+" 条加测反应");
  671. if (r == false) {
  672. return false;
  673. } else{
  674. html.find('#button_jiace').eq(0).attr('disabled',true)
  675. }
  676. $(selecteds.toArray().reverse()).each(function(index){ //多条反应,需要结合成josn_str index是从0开始的
  677. qian='{"seqs_vip_platestyle":"纵向提交","seqs_vip_platename":"1","seqs_vip_plate":1,"seqs_vip_hole":'
  678. zhong=index*jihang+1
  679. hou=',"seqs_vip_number":'+(index+1)+',"seqs_vip_sam_num":"'+ypmc_arr[index]+'","seqs_vip_sam_kind":"'+yplx_arr[index]+'","seqs_vip_fragment_size":"'+pianduan_arr[index]+'","seqs_vip_seqs_carry":"'+zaiti_arr[index]+'","seqs_vip_ant_type":"'+kangshengsu_arr[index]+'","seqs_vip_seqs_primer":"","seqs_vip_seqsprime_kind":"","seqs_vip_seqs_primer_id":"","seqs_vip_spec_require":"","seqs_vip_istest_pass":'+is_cetong_arr[index]+',"seqs_vip_return_sample":false,"seqs_vip_sample_remark":"'+beizhu_arr[index]+'","seqs_plus_prod_id":"'+ypdyh_arr[index]+'"},'
  680. josn_str=josn_str+qian+zhong+hou
  681. for(var i=2;i<=jihang;i++){
  682. zhong=index*jihang+i
  683. josn_str=josn_str+qian+zhong+hou
  684. }
  685. if(selecteds.size()==index+1){ //如果是最后一项,那么把最后的逗号去掉
  686. josn_str=josn_str.slice(0,-1);
  687. }
  688. })
  689. josn_str='['+josn_str+'],'+'"orderid":null,"companyid":null}'
  690. josn_str='{"action":"AddSeqOrder","seqHighPhoto":"","seqscreenshot":[],"cust_id":'+kehu_ID+',"cust_name":"'+kehu_name+'","ketizu_id":"'+ketizu_ID+'","ketizu_name":"'+ketizu_name+'","ordersort":"","linkToGeneNo":"","seqo_product_company_id":"'+company_ID+'","seqo_product_company_name":"'+company_name+'","seqo_settlement_company_id":"","seqo_settlement_company_name":"","order":{"vip_order_name":"'+riqi+'","vip_order_kind":"PCR切胶","vip_order_platestyle":"2","vip_order_remark":"","vip_order_state":0,"vip_order_ketizuid":"'+ketizu_ID+'","vip_order_ketizuname":"'+ketizu_name+'","vip_order_isurgent":"false"},"seqo_id":null,"seqs":'+josn_str
  691. $.ajax({
  692. type:"POST",
  693. url:"/ajax/PostErpUseVipPageHandler.ashx",
  694. contentType: "application/json", //必须这样写
  695. dataType:"json",
  696. data: JSON.stringify(jQuery.parseJSON(josn_str)), //josn_str是你要提交是json字符串
  697. success:function (data) {
  698. html.find('.ui-pg-input').eq(0).focus()
  699. alert('修改成功 ,光标自动定位在页数,直接按回车或更改页数可以查看更改结果')
  700. html.find('#button_jiace').eq(0).attr('disabled',false)
  701. }
  702. })
  703. }
  704. //显示选择行所属的订单号
  705. function 显示选择行所属的订单号(){
  706. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  707. var dingdanhao=table.find('tbody').find("[aria-selected='true']").eq(0).find('[aria-describedby=list_seqo_order_id]').text() //查询订单号
  708. toolbar.find('#a_search').eq(0).find('.l-btn-left').eq(0).click(); //点击 查询按钮
  709. $('#searchForm').eq(0).find("option[value='seqo_order_id']").attr('selected','selected') //把找到的第一个查询条件改成 订单号
  710. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(0).val(dingdanhao)
  711. $("#AB").click()
  712. }
  713. //显示选择行的样品名称 查询这个样品在这个客户名下所有的记录
  714. function 显示选择行的样品名称(){
  715. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  716. kehu_id=table.find('tbody').find("[aria-selected='true']").eq(0).find('[aria-describedby=list_seqo_cust_id]').text() //查询客户id
  717. yp_name=table.find('tbody').find("[aria-selected='true']").eq(0).find('[aria-describedby=list_seqs_sam_num]').text() //查询样品名称
  718. toolbar.find('#a_search').eq(0).find('.l-btn-left').eq(0).click(); //点击 查询按钮
  719. $('#searchForm').eq(0).find("option[value='seqo_cust_id']").eq(0).attr('selected','selected') //把找到的第一个查询条件改成 客户ID
  720. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(0).val(kehu_id)
  721. $('#searchForm').eq(0).find("option[value='seqs_sam_num']").eq(1).attr('selected','selected') //把找到的第二个查询条件改成 样品编号
  722. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(1).val(yp_name)
  723. $("#AB").click()
  724. }
  725. //查询客户姓名+测序引物+课题组
  726. function 查询引物(kehu_val,yinwu_val,ketizu_val){
  727. for(var i=1;i<=5;i++){
  728. yinwu_val=yinwu_val.replace(/ /g," ");//两个空格替换成一个空格 多运行几遍
  729. }
  730. yinwu_arr=yinwu_val.split(" "); //把测序引物 按照 空管split成数组
  731. console.log(yinwu_arr)
  732. toolbar.find('#a_search').eq(0).find('.l-btn-left').eq(0).click();
  733. $('#searchForm').eq(0).find("option[value='seqo_cust_name']").eq(0).attr('selected','selected') //把找到的第一个查询条件改成 客户姓名
  734. $('#searchForm').eq(0).find("option[value='seqo_ketizu']").eq(1).attr('selected','selected') //把找到的第二个查询条件改成 课题组
  735. if (yinwu_arr.length>0){
  736. for(var i=2;i<=yinwu_arr.length+1;i++){
  737. $('#searchForm').eq(0).find("option[value='seqs_primer']").eq(i).attr('selected','selected') //测序引物
  738. }
  739. }
  740. //查询方式前14个变成包含
  741. $('.searchOper:lt(14)').find("option[value='cn']").attr('selected','selected') //测序引物
  742. //放入信息
  743. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(0).val(kehu_val)
  744. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(1).val(ketizu_val)
  745. for(var i=2;i<=yinwu_arr.length+1;i++){
  746. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(i).val(yinwu_arr[i-2])
  747. }
  748. $("#AB").click()
  749. }
  750. //修改模板板号
  751. function 修改模板板号(){
  752. 公共_修改模板板号或孔号("模板板号")
  753. }
  754. //修改模板孔号
  755. function 修改模板孔号(){
  756. 公共_修改模板板号或孔号("模板孔号")
  757. }
  758. //公共函数 修改模板板号和孔号
  759. function 公共_修改模板板号或孔号(板号或者孔号){
  760. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  761. selecteds=table.find('tbody').find("[aria-selected='true']")
  762. var r = confirm("确定要给这 "+selecteds.size()+" 条添加"+板号或者孔号+"吗?");
  763. if (r == false) {
  764. return false;
  765. }
  766. if (板号或者孔号=="模板板号"){
  767. wenben=toolbar.find('#text_add_mubanbanhao').val()
  768. }else{
  769. wenben=toolbar.find('#text_add_mubankonghao').val()
  770. }
  771. selecteds.each(function(){
  772. $(this).click()
  773. if($(this).attr("aria-selected")=="false"){
  774. $(this).click()
  775. }
  776. if($(this).attr("aria-selected")=="true"){
  777. toolbar.find("[class='l-btn-text icon-edit']").eq(0).click();
  778. if (板号或者孔号=="模板板号"){
  779. $('#txt_seqs_tempplate').eq(0).val(wenben)
  780. }else{
  781. $('#txt_seqs_tempspace').eq(0).val(wenben)
  782. }
  783. $("#AB").click()
  784. }
  785. })
  786. }
  787. //更改备注
  788. function 更改备注(){
  789. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  790. beizhu_xiugaiqian=toolbar.find('#text_beizhu_gaiqian').eq(0).val()
  791. beizhu_xiugaihou=toolbar.find('#text_beizhu_gaihou').eq(0).val()
  792. if(beizhu_xiugaiqian===""){return false}
  793. selecteds=table.find('tbody').find("[aria-selected='true']")
  794. var r = confirm("确定要给这 "+selecteds.size()+" 条修改备注吗?");
  795. if (r == false) {
  796. return false;
  797. }
  798. var is_goon=true
  799. selecteds.each(function(){
  800. beizhu=$(this).find('[aria-describedby=list_remark]').text() //获取备注
  801. num=beizhu.split(beizhu_xiugaiqian).length-1 //存在多少遍要更改的部分,只有1遍才可以
  802. if (num!=1){is_goon=false; alert('只有每个样品备注都能匹配且只匹配一次,才能修改');return false}
  803. })
  804. if (is_goon==true){
  805. selecteds.each(function(){
  806. $(this).click()
  807. if($(this).attr("aria-selected")=="false"){
  808. $(this).click()
  809. }
  810. if($(this).attr("aria-selected")=="true"){
  811. beizhu=$(this).find('[aria-describedby=list_remark]').text() //获取备注
  812. beizhu=beizhu.replace(beizhu_xiugaiqian,beizhu_xiugaihou) //替换好的备注
  813. toolbar.find("[class='l-btn-text icon-edit']").eq(0).click();
  814. $('#txt_manage_seqsample_remark').eq(0).val(beizhu)
  815. $("#AB").click()
  816. }
  817. })
  818. setTimeout("alert('已改完,检查一下')", 1000 )
  819. }
  820. }
  821. //清空备注
  822. function 清空备注(){
  823. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  824. selecteds=table.find('tbody').find("[aria-selected='true']")
  825. var r = confirm("确定要清空这 "+selecteds.size()+" 条的备注吗?");
  826. if (r == false) {
  827. return false;
  828. }
  829. selecteds.each(function(){
  830. $(this).click()
  831. if($(this).attr("aria-selected")=="false"){
  832. $(this).click()
  833. }
  834. if($(this).attr("aria-selected")=="true"){
  835. toolbar.find("[class='l-btn-text icon-edit']").eq(0).click();
  836. $('#txt_manage_seqsample_remark').eq(0).val('')
  837. $("#AB").click()
  838. }
  839. })
  840. setTimeout("alert('已改完,检查一下')", 1000 )
  841. }
  842. //跳转到自备引物
  843. function 跳转到自备引物(){
  844. if(html.find('tbody').find("[aria-selected='true']").size()==0){return false} //如果没有选择的行,那么退出
  845. //如果 自备引物 页面没有打开 则自动打开
  846. if($('#tabs').find('li:contains(自备引物)').size()===0){
  847. //自动打开 自备引物页面
  848. $('#lnav').find('li:contains(自备引物)').click()
  849. var html_自备引物=$('iframe[src="/viporder/SeqCustPrimerList.aspx"]').get(0)//自备引物页面
  850. html_自备引物.onload=function(){
  851. 公共_查引物()
  852. 自备引物()
  853. }
  854. }else if($('#tabs').find('li:contains(自备引物)').size()===1){
  855. 公共_查引物()
  856. }
  857. function 公共_查引物(){
  858. selecteds=html.find('tbody').find("[aria-selected='true']")
  859. var ids_shuzu = new Array();
  860. for (var i=0;i<selecteds.size();i++){
  861. id=selecteds.eq(i).find('[aria-describedby=list_seqs_primer_id_2_kind]').text() //获取引物位置
  862. //如果没找到 -Z则进行下次循环
  863. if(id.indexOf('-Z')==-1){continue}
  864. id=id.slice(0,-2)//把最后两个字符去掉,最后的引物位置
  865. ids_shuzu[i]=id
  866. }
  867. //数组去重
  868. ids_shuzu=quchong_arr(ids_shuzu)
  869. //在 自备引物界面 查询
  870. //自备引物的html必须加个后缀或者前缀 不能和之前的重复
  871. var zibeiyinwu_html=$('iframe[src="/viporder/SeqCustPrimerList.aspx"]').contents().find('body').eq(0)//如果找到 则说明找到了自备引物的页面
  872. toolbar_zibeiyinwu=zibeiyinwu_html.find('.toolbar').eq(0) // 找到了自备引物的toolbar工具栏
  873. toolbar_zibeiyinwu.find('#a_search').eq(0).find('.l-btn-left').eq(0).click();
  874. //$('#searchForm').eq(0).find("option[value='seqs_primer_id_2_kind']").attr('selected','selected') //把找到的查询条件改成 引物位置
  875. $('#radd').next().attr('checked','true') //选择 OR 选项
  876. for (var i=0;i<ids_shuzu.length;i++){
  877. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(i).val(ids_shuzu[i])
  878. }
  879. if($("#AB").length==1){
  880. setTimeout("$('#AB').click()", 200)
  881. }
  882. $('#tabs').find('li:contains(自备引物)').click()
  883. }
  884. }
  885. //提取数据
  886. function 提取数据(){
  887. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  888. biaoti='生产编号&订单号&客户ID&客户姓名&客户地址&课题组&课题组ID&样品对应号&样品编号&引物位置&测序引物&引物浓度&样品类型&载体&抗生素&片段大小&是否测通&原浓度&模板板号&模板孔号&备注&添加时间&生产分公司'
  889. var shuju=""
  890. table.find('tbody').find("[aria-selected='true']").each(function(){
  891. shengchanbianhao=$(this).find('[aria-describedby=list_undefined]').text() //生产编号
  892. dingdanhao=$(this).find('[aria-describedby=list_seqo_order_id]').text() //订单号
  893. kehu_id=$(this).find('[aria-describedby=list_seqo_cust_id]').text() //客户ID
  894. kehu_xingming=$(this).find('[aria-describedby=list_seqo_cust_name]').text() //客户姓名
  895. kehu_dizhi=$(this).find('[aria-describedby=list_seqo_cust_address]').text() //客户地址
  896. ketizu=$(this).find('[aria-describedby=list_seqo_ketizu]').text() //课题组
  897. ketizu_id=$(this).find('[aria-describedby=list_seqo_ketizu_id]').text() //课题组ID
  898. yangpinduiyinghao=$(this).find('[aria-describedby=list_seqs_plus_prod_id]').text() //样品对应号
  899. yangpinbianhao=$(this).find('[aria-describedby=list_seqs_sam_num]').text() //样品编号
  900. yinwuweizhi=$(this).find('[aria-describedby=list_seqs_primer_id_2_kind]').text() //引物位置
  901. cexuyinwu=$(this).find('[aria-describedby=list_seqs_primer]').text() //测序引物
  902. yinwunongdu=$(this).find('[aria-describedby=list_seqs_observe]').text() // 引物浓度
  903. yangpinleixing=$(this).find('[aria-describedby=list_seqs_sam_type]').text() //样品类型
  904. zaiti=$(this).find('[aria-describedby=list_seqs_carry]').text() // 载体
  905. kangshengsu=$(this).find('[aria-describedby=list_seqs_ant_type]').text() //抗生素
  906. pianduandaxiao=$(this).find('[aria-describedby=list_seqs_fragment_size]').text() //片段大小
  907. shifoucetong=$(this).find('[aria-describedby=list_seqs_istest_pass]').text() //是否测通
  908. yuannongdu=$(this).find('[aria-describedby=list_seqs_original_con]').text() //原浓度
  909. mubanbanhao=$(this).find('[aria-describedby=list_seqs_tempplate]').text() // 模板板号
  910. mubankonghao=$(this).find('[aria-describedby=list_seqs_tempspace]').text() //模板孔号
  911. beizhu=$(this).find('[aria-describedby=list_remark]').text() //备注
  912. tianjiashijian=$(this).find('[aria-describedby=list_seqs_add_time]').text() //添加时间
  913. shengchangongsi=$(this).find('[aria-describedby=list_seqs_product_company_name]').text() //生产分公司
  914. shuju=shuju+shengchanbianhao+"&"+dingdanhao+"&"+kehu_id+"&"+kehu_xingming+"&"+kehu_dizhi+"&"+ketizu+"&"+ketizu_id+"&"+yangpinduiyinghao+"&"+yangpinbianhao+"&"+yinwuweizhi+"&"+cexuyinwu+"&"+yinwunongdu+"&"+yangpinleixing+"&"+zaiti+"&"+kangshengsu+"&"+pianduandaxiao+"&"+shifoucetong+"&"+yuannongdu+"&"+mubanbanhao+"&"+mubankonghao+"&"+beizhu+"&"+tianjiashijian+"&"+shengchangongsi+"\n"
  915. })
  916. if($('#textarea_shuju').length===0){
  917. //$("body").find("[class='layout-body panel-body panel-body-noheader panel-body-noborder']").append('<textarea id="textarea_biaoti" style="position:absolute;left:400px;" rows="1" cols="400"></textarea>')
  918. //$("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>');
  919. }
  920. $('#textarea_shuju').css('visibility','visible')
  921. $('#textarea_biaoti').css('visibility','visible')
  922. $("#textarea_biaoti").val(biaoti)
  923. $("#textarea_shuju").val($("#textarea_shuju").val()+shuju)
  924. }
  925. //清除数据
  926. function 清除数据(){
  927. $("#textarea_biaoti").val('')
  928. $('#textarea_shuju').val('')
  929. $('#textarea_biaoti').css('visibility','hidden')
  930. $('#textarea_shuju').css('visibility','hidden')
  931. }
  932. // 查询平板菌返还
  933. function 查询平板菌返还(){
  934. //如果没有选择的行,那么退出
  935. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  936. selected=table.find('tbody').find("[aria-selected='true']").eq(0)
  937. //获取样品名的前面部分 用-分割
  938. 样品名=selected.find("[aria-describedby='list_seqs_sam_num']").text()
  939. 客户姓名=selected.find("[aria-describedby='list_seqo_cust_name']").text()
  940. 最后一个横杠的位置=样品名.lastIndexOf('-')
  941. if (最后一个横杠的位置==-1){
  942. alert('样品名里没有 -')
  943. return false
  944. }
  945. 样品名=样品名.slice(0,最后一个横杠的位置)
  946. toolbar.find('#a_search').eq(0).find('.l-btn-left').eq(0).click(); //点击 查询按钮
  947. $('#searchForm').eq(0).find("option[value='seqs_sam_num']").eq(0).attr('selected','selected') //把找到的第一个查询条件改成 样品编号
  948. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(0).val(样品名)
  949. //查询方式前1个变成包含
  950. $('.searchOper:lt(1)').find("option[value='cn']").attr('selected','selected')
  951. $('#searchForm').eq(0).find("option[value='seqo_cust_name']").eq(1).attr('selected','selected') //把找到的第二个查询条件改成 客户姓名
  952. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(1).val(客户姓名)
  953. $("#AB").click()
  954. }
  955. //模板板号和孔号改为负一
  956. function 模板板号和孔号改为负一(){
  957. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false} //如果没有选择的行,那么退出
  958. selecteds=table.find('tbody').find("[aria-selected='true']")
  959. var r = confirm("确定要给把 "+selecteds.size()+" 条反应的模板板号和孔号都改成-1吗?");
  960. if (r == false) {
  961. return false;
  962. }
  963. selecteds.each(function(){
  964. $(this).click()
  965. if($(this).attr("aria-selected")=="false"){
  966. $(this).click()
  967. }
  968. if($(this).attr("aria-selected")=="true"){
  969. toolbar.find("[class='l-btn-text icon-edit']").eq(0).click();
  970. $('#txt_seqs_tempplate').eq(0).val('-1')
  971. $('#txt_seqs_tempspace').eq(0).val('-1')
  972. $("#AB").click()
  973. }
  974. })
  975. }
  976. //查找菌液加急
  977. function 查找菌液加急(){
  978. //查询 样品类型包含菌,样品类型不等于直提菌,样品类型不等于沉菌,备注包含加急
  979. toolbar.find('#a_search').eq(0).find('.l-btn-left').eq(0).click();
  980. $('#searchForm').find("option[value='seqs_sam_type']").eq(0).attr('selected','selected') //把找到的第一个查询条件改成 样品类型
  981. $('#searchForm').find("option[value='cn']").eq(0).attr('selected','selected') //把找到的第一个查询方式改成 包含
  982. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(0).val('菌')
  983. $('#searchForm').find("option[value='seqs_sam_type']").eq(1).attr('selected','selected') //把找到的第二个查询条件改成 样品类型
  984. $('#searchForm').find("option[value='ne']").eq(1).attr('selected','selected') //把找到的第二个查询方式改成 不等于
  985. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(1).val('直提菌')
  986. $('#searchForm').find("option[value='seqs_sam_type']").eq(2).attr('selected','selected') //把找到的第三个查询条件改成 样品类型
  987. $('#searchForm').find("option[value='ne']").eq(2).attr('selected','selected') //把找到的第三个查询方式改成 不等于
  988. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(2).val('沉菌')
  989. $('#searchForm').find("option[value='remark']").eq(3).attr('selected','selected') //把找到的第四个查询条件改成 备注
  990. $('#searchForm').find("option[value='cn']").eq(3).attr('selected','selected') //把找到的第四个查询方式改成 包含
  991. $('#searchForm').eq(0).find("[class='txt02 searchString']").eq(3).val('急')
  992. $("#AB").click()
  993. }
  994. //选中一些行后,把相同引物位置的其余引物标记颜色
  995. function 相同引物位置标记颜色(){
  996. //把选中的所有行的行数显示在右下角
  997. old_text=html.find('#pager_right').eq(0).find('div').eq(0).text()
  998. num_s=table.find('tbody').find("[aria-selected='true']").size()
  999. html.find('#pager_right').eq(0).find('div').eq(0).find('#reve').remove()
  1000. html.find('#pager_right').eq(0).find('div').eq(0).prepend("<span id='reve'>总共选中了 "+num_s+" 行&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>")
  1001. //改颜色
  1002. var yinwu_weizhi=[]
  1003. //对被选中的行进行 查找引物位置并赋值到yinwu_weizhi数组里面
  1004. table.find('tbody').find("[aria-selected='true']").each(function(){
  1005. yinwu_weizhi.push($(this).find('[aria-describedby=list_seqs_primer_id_2_kind]').eq(0).text())
  1006. })
  1007. //获取的引物位置需要和当前页面所有的tr里面的引物位置进行比较
  1008. table.find('[aria-describedby=list_seqs_primer_id_2_kind]').attr('Bgcolor','') //先把所有的行的颜色去掉
  1009. if(yinwu_weizhi.length>0){
  1010. table.find('tr').each(function(){
  1011. every_weizhi=$(this).find('[aria-describedby=list_seqs_primer_id_2_kind]').eq(0).text()
  1012. for(var i=0;i<yinwu_weizhi.length;i++){
  1013. if(yinwu_weizhi[i]==every_weizhi){
  1014. $(this).find('[aria-describedby=list_seqs_primer_id_2_kind]').eq(0).attr('Bgcolor','#ceEEe7')
  1015. return;
  1016. }
  1017. }
  1018. })
  1019. }
  1020. }
  1021. //把 测序样品 的 流程名称 是反应生产,模板失败,停止反应 标颜色
  1022. function 状态_标颜色_录入组(){
  1023. table.find('[aria-describedby=list_seqs_process]').each(function(){
  1024. if($(this).text()=="反应生产" || $(this).text()=="模板失败" || $(this).text()=="停止反应" || $(this).text()=="模板成功" || $(this).text()=="样品不足" || $(this).text()=="引物已清"){
  1025. $(this).attr('Bgcolor','#AeEEe7')
  1026. $(this).parent().find('[aria-describedby=list_seqs_primer]').eq(0).attr('title','更改此引物需要跟反应组说!!!')
  1027. }
  1028. })
  1029. //当table出现数据改变的时候
  1030. $(html).find('#list').on('DOMNodeInserted',function(e) {
  1031. //$(e.target)代表的每一行
  1032. 流程名称=$(e.target).find('[aria-describedby=list_seqs_process]')
  1033. if(流程名称.text()=="反应生产" || 流程名称.text()=="模板失败" || 流程名称.text()=="停止反应" || 流程名称.text()=="模板成功" || 流程名称.text()=="样品不足" || 流程名称.text()=="引物已清"){
  1034. 流程名称.attr('Bgcolor','#AeEEe7')
  1035. $(e.target).find('[aria-describedby=list_seqs_primer]').eq(0).attr('title','更改此引物需要跟反应组说!!!')
  1036. }
  1037. 备注=$(e.target).find('[aria-describedby=list_remark]')
  1038. if(备注.text().toUpperCase().indexOf('菌P')!==-1 && 备注.text().indexOf('待测')!==-1) {//说明找到了菌P两个字
  1039. 备注.attr('Bgcolor','#f58220')
  1040. $(e.target).find('[aria-describedby=list_remark]').eq(0).attr('title','如果菌P的样品要把待测去掉 那么需要跟反应组说下')
  1041. }
  1042. })
  1043. }
  1044. //如果是 状态_标颜色_反应组
  1045. function 状态_标颜色_反应组(){
  1046. table.find('[aria-describedby=list_seqs_back]').each(function(){
  1047. if($(this).text()=="报告重跑"){
  1048. $(this).attr('Bgcolor','#AeEEe7')
  1049. }
  1050. })
  1051. //当table出现数据改变的时候
  1052. $(html).find('#list').on('DOMNodeInserted',function(e) {
  1053. //$(e.target)代表的每一行
  1054. 返回状态=$(e.target).find('[aria-describedby=list_seqs_back]')
  1055. if(返回状态.text()=="报告重跑" ){
  1056. 返回状态.attr('Bgcolor','#AeEEe7')
  1057. }
  1058. })
  1059. }
  1060. //点击批量编辑 批量编辑测序引物 按钮 如果需要改变引物,那么需要跟反应组说一下(反应生产 模板成功等)
  1061. function 更改引物_提醒_跟反应组说(){
  1062. selecteds=table.find('tbody').find("[aria-selected='true']")
  1063. tag=0
  1064. selecteds.find('[aria-describedby=list_seqs_process]').each(function(){
  1065. if($(this).text()=="反应生产" || $(this).text()=="模板失败" || $(this).text()=="停止反应" || $(this).text()=="模板成功" || $(this).text()=="引物已清"){
  1066. tag=1
  1067. }
  1068. })
  1069. if(tag===1){
  1070. yinwu_html=$('#iframeUpload').contents().find('body').eq(0) //如果找到 说明找到了 批量更改测序引物界面
  1071. if(yinwu_html.length===1){
  1072. setTimeout(function(){
  1073. alert('改的引物如果有(反应生产)或者(模板成功)或(引物已清)的需要跟反应组说')
  1074. },300)
  1075. }
  1076. }
  1077. }
  1078. //打印样品标签
  1079. function 打印样品标签(){
  1080. selecteds=table.find('tbody').find("[aria-selected='true']")
  1081. if (selecteds.size()==0){return false}
  1082. res="<NewDataSet>"
  1083. selecteds.each(function(){
  1084. shengchanbianhao=$(this).find('[aria-describedby=list_undefined]').text() //生产编号
  1085. kehu_xingming=$(this).find('[aria-describedby=list_seqo_cust_name]').text() //客户姓名
  1086. yangpinbianhao=$(this).find('[aria-describedby=list_seqs_sam_num]').text() //样品编号
  1087. yangpinleixing=$(this).find('[aria-describedby=list_seqs_sam_type]').text() //样品类型
  1088. res+="<Table1>"
  1089. res+="<seqs_prod_id>"+shengchanbianhao+"</seqs_prod_id>"
  1090. res+="<seqo_cust_name>"+kehu_xingming+"</seqo_cust_name>"
  1091. res+="<seqs_sam_num>"+yangpinbianhao+"</seqs_sam_num>"
  1092. res+="<seqs_ant_type />"
  1093. res+="<seqs_sam_type>"+'质粒'+"</seqs_sam_type>"
  1094. res+="<seqs_fragment_size />"
  1095. 当天日期=getday_y_n('---')
  1096. res+="<seqo_send_sample_time>"+当天日期+"T18:47:08+08:00</seqo_send_sample_time>"
  1097. res+="</Table1>"
  1098. })
  1099. res+="</NewDataSet>"
  1100. 保存文本到本地(res,'down.html')
  1101. }
  1102. //保存文本到本地
  1103. function 保存文本到本地(text, filename){
  1104. // 创建一个Blob实例,类型为纯文本
  1105. var blob = new Blob([text], { type: 'text/plain' });
  1106. // 创建一个指向Blob对象的URL
  1107. var url = URL.createObjectURL(blob);
  1108. // 创建一个a标签
  1109. var a = document.createElement("a");
  1110. // 设置a标签属性
  1111. a.href = url;
  1112. a.download =filename;
  1113. // 模拟a标签点击,触发下载
  1114. document.body.appendChild(a);
  1115. a.click();
  1116. // 清理临时DOM和对象URL
  1117. document.body.removeChild(a);
  1118. URL.revokeObjectURL(url);
  1119. window.open('http://localhost//打印/print.html')
  1120. }
  1121. //公共函数 判断选择的是否是同一个订单号
  1122. function is_one_order(html){
  1123. //如果没有选择行则退出
  1124. if(table.find('tbody').find("[aria-selected='true']").size()==0){return false}
  1125. panduan=0
  1126. selecteds=table.find('tbody').find("[aria-selected='true']")
  1127. selecteds.find('[aria-describedby=list_seqo_order_id]').each(function(){
  1128. if(selecteds.find('[aria-describedby=list_seqo_order_id]').eq(0).text()!=$(this).text()){
  1129. alert('需要选择同一个订单号!')
  1130. panduan=1
  1131. return false;
  1132. }
  1133. })
  1134. if(panduan==1){ //如果 不是同一个订单号,就退出
  1135. return false;
  1136. }else{
  1137. return selecteds;
  1138. }
  1139. }
  1140. //公共函数 生产编号需要降序排序
  1141. function 生产编号需要降序排序(selecteds){
  1142. new_scbh_arr=[]
  1143. old_scbh_arr=[]
  1144. $(selecteds.toArray().reverse()).each(function(){ //倒序把生产编号放进数组
  1145. new_scbh_arr.push($(this).find('[aria-describedby=list_undefined]').text())
  1146. })
  1147. old_scbh_arr=new_scbh_arr.slice()
  1148. new_scbh_arr.sort() //对 生产编号排序,如果和 old_scbh_arr的顺序一样,那么继续,如果不一样,那么退出
  1149. for (var i=0;i<old_scbh_arr.length;i++){
  1150. if(old_scbh_arr[i]!=new_scbh_arr[i]){
  1151. alert('生产编号需要降序排序')
  1152. return false;
  1153. }
  1154. }
  1155. return true
  1156. }
  1157. //公共函数 获取选择的行的所有数据
  1158. function 获取选择的行的所有数据(selecteds){
  1159. scbh_arr=[] //生产编号
  1160. ypdyh_arr=[] //样品对应号
  1161. new_ypdyh_arr=[] //新的样品对应号
  1162. ypmc_arr=[] //样品名称
  1163. new_ypmc_arr=[] //新的样品名称
  1164. yinwu_arr=[] //引物名称
  1165. new_yinwu_arr=[] //新的引物名称
  1166. yinwu_weizhi_arr=[] //引物位置
  1167. new_yinwu_weizhi_arr=[] //新的引物位置
  1168. yinwu_nong_arr=[] //引物浓度
  1169. new_yinwu_nong_arr=[] //新的引物浓度
  1170. yplx_arr=[] //样品类型
  1171. new_yplx_arr=[] //新的样品类型
  1172. zaiti_arr=[] //载体
  1173. new_zaiti_arr=[] //新的载体
  1174. pianduan_arr=[] //片段
  1175. new_pianduan_arr=[] //新的片段
  1176. kangshengsu_arr=[] //抗生素
  1177. new_kangshengsu_arr=[] //新的抗生素
  1178. beizhu_arr=[] //备注
  1179. new_beizhu_arr=[] //新的备注
  1180. is_cetong_arr=[] //是否测通
  1181. new_is_cetong_arr=[] //新的是否测通
  1182. $(selecteds.toArray().reverse()).each(function(){
  1183. //倒序把生产编号放进数组
  1184. scbh_arr.push($(this).find('[aria-describedby=list_undefined]').text())
  1185. //倒序把样品对应号放进数组
  1186. ypdyh_name=$(this).find('[aria-describedby=list_seqs_plus_prod_id]').html()
  1187. if(ypdyh_name=="&nbsp;"){
  1188. ypdyh_arr.push('')
  1189. }else{
  1190. ypdyh_arr.push(ypdyh_name)
  1191. }
  1192. //倒序把样品名称放进数组
  1193. ypmc_arr.push($(this).find('[aria-describedby=list_seqs_sam_num]').text().trim())
  1194. //倒序把引物名称放进数组
  1195. yinwu_name=$(this).find('[aria-describedby=list_seqs_primer]').html()
  1196. if(yinwu_name=="&nbsp;"){
  1197. yinwu_arr.push('')
  1198. }else{
  1199. yinwu_arr.push(yinwu_name)
  1200. }
  1201. //倒序把引物位置放进数组
  1202. yinwu_weizhi_arr.push($(this).find('[aria-describedby=list_seqs_primer_id_2_kind]').text().trim())
  1203. //倒序把引物浓度放进数组
  1204. nongdu_name=$(this).find('[aria-describedby=list_seqs_observe]').html()
  1205. if(nongdu_name=="&nbsp;"){
  1206. yinwu_nong_arr.push('')
  1207. }else{
  1208. yinwu_nong_arr.push(nongdu_name)
  1209. }
  1210. //倒序把样品类型放进数组
  1211. yplx_arr.push($(this).find('[aria-describedby=list_seqs_sam_type]').text().trim())
  1212. //倒序把载体放进数组
  1213. zaiti_name=$(this).find('[aria-describedby=list_seqs_carry]').html()
  1214. if(zaiti_name=="&nbsp;"){ //如果载体为空 或者 空格
  1215. zaiti_arr.push("")
  1216. }else{
  1217. zaiti_arr.push(zaiti_name)
  1218. }
  1219. //倒序把片段放进数组
  1220. pianduan_name=$(this).find('[aria-describedby=list_seqs_fragment_size]').html()
  1221. if(pianduan_name=="&nbsp;"){ //如果片段为空 或者 空
  1222. pianduan_arr.push("")
  1223. }else{
  1224. pianduan_arr.push(pianduan_name)
  1225. }
  1226. //倒序把抗生素放进数组
  1227. kangshengsu_name=$(this).find('[aria-describedby=list_seqs_ant_type]').html()
  1228. if(kangshengsu_name=="&nbsp;"){ //如果为空 或者 空格
  1229. kangshengsu_arr.push("")
  1230. }else{
  1231. kangshengsu_arr.push(kangshengsu_name)
  1232. }
  1233. //倒序把备注放进数组
  1234. beizhu_name=$(this).find('[aria-describedby=list_remark]').html()
  1235. if(beizhu_name=="&nbsp;"){
  1236. beizhu_arr.push("")
  1237. }else{
  1238. beizhu_arr.push(beizhu_name)
  1239. }
  1240. //倒序把是否测通放进数组
  1241. cetong_is=$(this).find('[aria-describedby=list_seqs_istest_pass]').html()
  1242. if(cetong_is=="是" || cetong_is=="true"){
  1243. is_cetong_arr.push(true)
  1244. }else{is_cetong_arr.push(false)}
  1245. })
  1246. // console.log(scbh_arr) //生产编号
  1247. // console.log(ypdyh_arr) //样品对应号
  1248. // console.log(ypmc_arr) //样品名称
  1249. // console.log(yinwu_arr) //引物名称
  1250. // console.log(yinwu_weizhi_arr) //引物位置
  1251. // console.log(yinwu_nong_arr) //引物浓度
  1252. // console.log(yplx_arr) //样品类型
  1253. // console.log(zaiti_arr) //载体
  1254. // console.log(pianduan_arr) //片段
  1255. // console.log(kangshengsu_arr) //抗生素
  1256. // console.log(beizhu_arr) //备注
  1257. // console.log(is_cetong_arr) //是否测通
  1258. return [scbh_arr,ypdyh_arr,ypmc_arr,yinwu_arr,yinwu_weizhi_arr,yinwu_nong_arr,yplx_arr,zaiti_arr,pianduan_arr,kangshengsu_arr,beizhu_arr,is_cetong_arr]
  1259. //以下代码是仅仅为了复制方便
  1260. arr[0]=scbh_arr//生产编号
  1261. arr[1]=ypdyh_arr //样品对应号
  1262. arr[2]=ypmc_arr //样品名称
  1263. arr[3]=yinwu_arr //引物名称
  1264. arr[4]=yinwu_weizhi_arr //引物位置
  1265. arr[5]=yinwu_nong_arr //引物浓度
  1266. arr[6]=yplx_arr //样品类型
  1267. arr[7]=zaiti_arr //载体
  1268. arr[8]=pianduan_arr //片段
  1269. arr[9]=kangshengsu_arr //抗生素
  1270. arr[10]=beizhu_arr //备注
  1271. arr[11]=is_cetong_arr //是否测通
  1272. }
  1273. }
  1274.  
  1275.  
  1276.  

QingJ © 2025

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