🏠 

00-公共函数

公共函数

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/469866/1488419/00-%E5%85%AC%E5%85%B1%E5%87%BD%E6%95%B0.js

  1. //备注包含CNAS的行就标个颜色
  2. function 公共_CNAS订单加急(html,搜索信息){
  3. //当table出现数据改变的时候
  4. // 观察器的配置(需要观察什么变动)
  5. var config = {attributes: true}; //, childList: true, subtree: true,characterData:true,characterDataOldValue:true,attributDataOldValue:true
  6. var table变化 = function(mutationRecoard, observer) {
  7. //会有两次变化 根据最终的变化
  8. if ($(html).find('#load_list').css('display')=='none'){
  9. html.find('table').find('tr').each(function(){
  10. 备注=$(this).find(搜索信息).text()
  11. if(备注.toUpperCase().indexOf('CNAS')!==-1){
  12. //设置背景颜色
  13. $(this).find('td').attr('Bgcolor','#24B2C8')
  14. }
  15. })
  16. }
  17. };
  18. var observer = new MutationObserver(table变化);
  19. // 以上述配置开始观察目标节点
  20. dom=$(html).find('#load_list').get(0)
  21. observer.observe(dom, config);
  22. }
  23. //查询年月日的函数
  24. function getday_y_n(d){
  25. var myDate = new Date();
  26. if(d=="yestday" || d==="hecheng_zuotian_riqi" || d=="zuori---"){myDate.setTime(myDate.getTime()-24*60*60*1000);}
  27. var year = (myDate.getFullYear()).toString(); //获取当前年
  28. var mon = (myDate.getMonth() + 1).toString(); //获取当前月
  29. var date = (myDate.getDate()).toString(); //获取当前日
  30. if(mon.length==1){
  31. mon="0"+mon
  32. }
  33. if(date.length==1){
  34. date="0"+date
  35. }
  36. if(d==="hecheng_zuotian_riqi"){
  37. return year+mon+date
  38. }else if(d=="---"){ //---指的格式为XXXX-XX-XX
  39. return year+"-"+mon+"-"+date
  40. }else if(d=="zuori---"){
  41. //返回昨天的日期 比如 2022-05-13
  42. return year+"-"+mon+"-"+date
  43. }else{
  44. return year+mon+date
  45. }
  46. }
  47. //获取日期范围内的所有日期
  48. function 获取日期范围内的所有日期(日期_前,日期_后){
  49. var startTime = new Date(日期_前);
  50. var endTime = new Date(日期_后);
  51. var date_Arr = [];
  52. while ((endTime.getTime() - startTime.getTime()) >= 0) {
  53. var year = startTime.getFullYear();
  54. var month = (startTime.getMonth()+1).toString().length === 1 ? "0" + (parseInt(startTime.getMonth().toString(),10) + 1) : (startTime.getMonth() + 1);
  55. var day = startTime.getDate().toString().length === 1 ? "0" + startTime.getDate() : startTime.getDate();
  56. date_Arr.push(year.toString() + month.toString() + day.toString());
  57. startTime.setDate(startTime.getDate() + 1);
  58. }
  59. console.log(date_Arr)
  60. return date_Arr;
  61. }
  62. //延时函数
  63. var sleep = function(time) {
  64. var startTime = new Date().getTime() + parseInt(time, 10);
  65. while(new Date().getTime() < startTime) {}
  66. };
  67. //设定 页面的高度
  68. function gaodu(html){
  69. console.log(html)
  70. html=$(html).contents().eq(0)
  71. //下面几行是重新设置 测序样品 页面的高度
  72. table_div=html.find('.ui-jqgrid-bdiv').eq(0) // 找到了样品的table的上一级div 用于设置高度
  73. table_height=table_div.css('height') //测序样品 页面的高度
  74. offset_1=$('.footer').eq(0).offset().top
  75. offset_2=html.find('#pager').eq(0).offset().top
  76. if(offset_1-offset_2<=120){
  77. table_div.css('height',table_height.slice(0,-2)-20+"px") //重新设置 页面的高度
  78. }else if(offset_1-offset_2>=160){
  79. table_div.css('height',parseInt(table_height.slice(0,-2))+20+"px") //重新设置 页面的高度
  80. }
  81. }
  82. //字符串全部替换部分文字
  83. function str_replaceAll(str, yuanwenben, xianwenben) {
  84. return str.replace(new RegExp(yuanwenben, 'g'), xianwenben);
  85. }
  86. //判断数据是否是1到20
  87. function 文本是否是120(text){
  88. if(text===""){text="1"}
  89. var tag=false
  90. for(var i=1;i<=20;i++){
  91. if(text===i.toString()){
  92. tag=true
  93. break
  94. }
  95. }
  96. return tag
  97. }
  98. //数组去重
  99. function quchong_arr(arr){
  100. var hash=[];
  101. for (var i = 0; i < arr.length; i++) {
  102. if(hash.indexOf(arr[i])==-1){
  103. hash.push(arr[i]);
  104. }
  105. }
  106. return hash;
  107. }
  108. //数组去掉空字符串
  109. function arr_quchu_kongbai(arr){
  110. var hash=[];
  111. for (var i = 0; i < arr.length; i++) {
  112. if (arr[i]!=""){
  113. hash.push(arr[i]);
  114. }
  115. }
  116. return hash;
  117. }
  118. //统计数组中每个数据出现的次数,形参有2个,第一个已经去重的数组,第二个 原始数组 返回值是个数数组 比如[3,5,1],对应已经去重的形参
  119. function chongfu_cishu_arr(quchong_arr,yuanshi_arr){
  120. var new_geshu_arr=new Array(); //新建一维数组 存放个数
  121. for(var i=0;i<quchong_arr.length;i++){
  122. new_geshu_arr[i]=0
  123. for(var j=0;j<yuanshi_arr.length;j++){
  124. //已经去重的数组和原始数组比对,如果有一致的,那么个数+1
  125. if(quchong_arr[i]===yuanshi_arr[j]){
  126. new_geshu_arr[i]+=1
  127. }
  128. }
  129. }
  130. return new_geshu_arr
  131. }
  132. //数组 统计次数
  133. function 数组_统计次数(arr){
  134. arr_quchonghou=quchong_arr(arr)
  135. arr_个数=chongfu_cishu_arr(arr_quchonghou,arr)
  136. return [arr_quchonghou,arr_个数]
  137. }
  138. //两个数组去重 数组长度要求一致
  139. function 两个数组去重(arr1,arr2){
  140. 所有连接_arr=[]
  141. for (var i=0;i<arr1.length;i++){
  142. 所有连接_arr.push(arr1[i]+"&$"+arr2[i])
  143. }
  144. 所有连接_arr=quchong_arr(所有连接_arr)
  145. arr1=[]
  146. arr2=[]
  147. for(var i=0;i<所有连接_arr.length;i++){
  148. arr1.push(所有连接_arr[i].split('&$')[0])
  149. arr2.push(所有连接_arr[i].split('&$')[1])
  150. }
  151. return [arr1,arr2]
  152. }
  153. //文本_取中间文本_批量
  154. function 文本_取中间文本_批量(总文本,前面文本,后面文本){
  155. function 数组整理(item){
  156. return item.split(前面文本)[1]
  157. }
  158. 表达式=eval('/('+前面文本+')(.*?)(?='+后面文本+')/g')
  159. arr_result=总文本.match(表达式)
  160. arr_result=arr_result.map(数组整理)
  161. return arr_result
  162. }
  163. //文本_取中间文本
  164. function 文本_取中间文本(总文本,前面文本_必须唯一,后面文本){
  165. arr=总文本.split(前面文本_必须唯一)
  166. //如果长度为1,说明没找到 前面文本_必须唯一
  167. if (arr.length==1){
  168. console.log('没有找到 前面文本 ')
  169. return false
  170. }
  171. if (arr.length>3){
  172. console.log('前面文本必须唯一')
  173. return false
  174. }
  175. result=arr[arr.length-1].split(后面文本)[0]
  176. return result
  177. }
  178. //网址 获取总的条数 totalrecords
  179. function 网址_获取总条数(网址){
  180. return 网址_查询公共函数('总条数',网址)
  181. }
  182. //网址 获取总的页数 totalpages":"
  183. function 网址_获取总页数(网址){
  184. return 网址_查询公共函数('总页数',网址)
  185. }
  186. function 网址_获取总页数和总条数(网址){
  187. return 网址_查询公共函数('总页数和总条数',网址)
  188. }
  189. //返回 false 或者 页数
  190. function 网址_查询公共函数(类型,网址){
  191. result=false
  192. $.ajaxSettings.async = false; //get请求默认是异步的,在这里改为同步
  193. $.get(网址,function (data,status) {
  194. //如果没有找到totalpages,说明网页运行失败
  195. if(data.indexOf('totalrecords')==-1){
  196. console.log('查询“订单是否已经上传过”失败,请确定是否断网或者是否需要重新登录,请重新查询!')
  197. result='0'
  198. }else{
  199. if (类型=='总条数'){
  200. //总共有多少条数据
  201. 总条数=文本_取中间文本(data,'totalrecords":"','"')
  202. result=总条数
  203. }
  204. if (类型=='总页数'){
  205. //总共有多少页
  206. 总页数=文本_取中间文本(data,'totalpages":"','"')
  207. result=总页数
  208. }
  209. if (类型=='总页数和总条数'){
  210. //总共有多少条数据
  211. 总条数=文本_取中间文本(data,'totalrecords":"','"')
  212. //总共有多少页
  213. 总页数=文本_取中间文本(data,'totalpages":"','"')
  214. result=总页数+','+总条数
  215. }
  216. }
  217. });
  218. return result
  219. }
  220. //jquery对象转换成dom
  221. function jquery对象转换成dom(){
  222. dom对象=$('div').get(0)
  223. }
  224. //添加style属性
  225. function addGlobalStyle(css) {
  226. var style = document.createElement('style');
  227. style.type = 'text/css';
  228. style.innerHTML = css;
  229. document.head.appendChild(style);
  230. }
  231. // function addScript(url){
  232. // var script = document.createElement('script');
  233. // script.setAttribute('type','text/javascript');
  234. // script.setAttribute('src',url);
  235. // document.getElementsByTagName('head')[0].appendChild(script);
  236. // }