代码拉取完成,页面将自动刷新
同步操作将从 荔枝来了/伯乐2号 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//抓取页面的锚点
var $main=null;
const panel = document.createElement('div');
panel.id = 'extend_panel'
panel.innerHTML = `
<div class="left">
<h3 style="color:black;background-color: lightblue;">控制台</h3>
<div class="dashboard-edit-box">
<span>打开【推荐牛人】页面,先滚动到页面底部加载简历(快捷键Ctrl+End)</span>
<br/>
学校名称:<textarea id="input_sql_control" style="width:460px; height: 100px;" placeholder="清空不做筛选,多个以英文逗号分隔,或者以换行分隔">北京大学,中国人民大学,清华大学,北京交通大学,北京工业大学,北京航空航天大学,北京理工大学,北京科技大学,北京化工大学,北京邮电大学,中国农业大学,北京林业大学,北京中医药大学,北京师范大学,北京外国语大学,中国传媒大学,中央财经大学,对外经济贸易大学,北京体育大学,中央音乐学院,中央民族大学,中国政法大学,华北电力大学,南开大学,天津大学,天津医科大学,河北工业大学,太原理工大学,内蒙古大学,辽宁大学,大连理工大学,东北大学,大连海事大学,吉林大学,延边大学,东北师范大学,哈尔滨工业大学,哈尔滨工程大学,东北农业大学,东北林业大学,复旦大学,同济大学,上海交通大学,华东理工大学,东华大学,华东师范大学,上海外国语大学,上海财经大学,上海大学,第二军医大学,南京大学,苏州大学,东南大学,南京航空航天大学,南京理工大学,中国矿业大学,河海大学,江南大学,南京农业大学,中国药科大学,南京师范大学,浙江大学,安徽大学,中国科学技术大学,合肥工业大学,厦门大学,福州大学,南昌大学,山东大学,中国海洋大学,中国石油大学,郑州大学,武汉大学,华中科技大学,中国地质大学,武汉理工大学,华中农业大学,华中师范大学,中南财经政法大学,湖南大学,中南大学,湖南师范大学,国防科学技术大学,中山大学,暨南大学,华南理工大学,华南师范大学,广西大学,海南大学,四川大学,西南交通大学,电子科技大学,四川农业大学,西南财经大学,重庆大学,西南大学,贵州大学,云南大学,西藏大学,西北大学,西安交通大学,西北工业大学,西安电子科技大学,长安大学,西北农林科技大学,陕西师范大学,第四军医大学,兰州大学,青海大学,宁夏大学,新疆大学,石河子大学</textarea>
<br/>
年龄小于:<input id="input_2_control" type="text" style="width:80px;margin-right:8px;" value="34" />
<input id="input_3_control" type="checkbox" checked="checked" style="width: 20px;height: 18px;line-height: 24px;text-align: center;margin: 2px;" />过滤应届生
<br/>
求职岗位:<textarea id="input_4_control" style="width:460px; height: 28px;" placeholder="清空不做筛选,多个以英文逗号分隔,或者以换行分隔">Java,架构师,技术经理,JavaScript,web前端,前端开发,HTML5</textarea>
<br/>
<button id="search_btn1_control" style="float: left;width: 160px;height: 30px;margin-top:2px;margin-right:8px;">一键加载全部(Shift+e)</button>
<button id="search_btn2_control" style="float: left;width: 160px;height: 30px;margin-top:2px;">筛选全部(Shift+q)</button>
<br/>
<br/>
<button id="search_btn3_control" style="float: left;width: 160px;height: 30px;margin-top:2px;margin-right:8px;">上一个(Shift+a)</button>
<button id="search_btn4_control" style="float: left;width: 160px;height: 30px;margin-top:2px;">下一个(Shift+d)</button>
<br />
<br />
<div id="oneByOne_info_control"></div>
<div id="result_view" style="width:480px; height: 100px;overflow-y: auto;"></div>
</div>
</div>
`
document.body.appendChild(panel);
//当前视图
var current_view = 'dashboards';
//查询结果
var excuteResultFailedIds=[];
//是否执行中
var isExcuting=false;
var maxExcuteNum=5000;
//全部li元素
var $recommendLiList=[];
//符合条件的数据集合
var recommendData=[];
//当前数据
var currentItem=null;
init().then(apps=>{
var current_app = null;
//渲染按钮的视图
const render_view_buttons = (()=>{
var vnode = panel.querySelector('.views');
const render_fn = shown=>{
return patch(vnode, h('div.views', {
style: {
visibility: shown ? 'visible' : 'hidden'
}
}, [
h('a.button', {
class: {
active: current_view == 'dashboards'
}, on: {
click: ()=>{
if(current_view == 'dashboards') return;
current_view = 'dashboards';
vnode = render_fn();
refresh_apps_div();
refresh_view();
}
}
}, '仪表盘')
]));
}
return shown=>vnode = render_fn(shown);
})();
//渲染视图
const refresh_view = (()=>{
var metrics_buttons_vnode = panel.querySelector('.metrics-buttons');
return function(switch_view){
if(current_view == 'dashboards') {
return render_all_dashboards().then(()=>{
render_view_buttons(true)
metrics_buttons_vnode = patch(metrics_buttons_vnode, h('div.metrics-buttons'));
});
}
};
})();
refresh_view();
})
const btn = document.createElement('div');
btn.id = 'extend_toggle_button'
btn.innerText = '隐藏'
document.body.appendChild(btn);
btn.addEventListener('click', e=>{
if(panel.style.display == 'none'){
panel.style.display = 'block'
btn.innerText = '隐藏'
} else {
panel.style.display = 'none'
btn.innerText = '控制台'
}
});
//去除重复
function removeRepeatData(arr){
if(arr==null || arr.len()<1){
return arr;
}
var new_arr=[];
for(var i=0;i<arr.length;i++) {
var items=arr[i];
//判断元素是否存在于new_arr中,如果不存在则插入到new_arr的最后
if($.inArray(items,new_arr)==-1) {
new_arr.push(items);
}
}
}
/**筛选简历**/
//绑定快捷键
$(document).bind('keydown.shift_q', function(){
try {
doThings();
} catch (error) {
alert("筛选简历异常!");
console.error(error);
return;
}
});
$(document).bind('keydown.shift_a', function(){
selectPrev();
});
$(document).bind('keydown.shift_d', function(){
selectNext();
});
//绑定按钮事件
const btnSC1=document.getElementById("search_btn1_control");
btnSC1.addEventListener('click', e=>{
try {
scollLoadAll();
} catch (error) {
alert("一键加载全部异常!");
console.error(error);
return;
}
});
const btnSC2=document.getElementById("search_btn2_control");
btnSC2.addEventListener('click', e=>{
try {
doThings();
} catch (error) {
alert("筛选简历异常!");
console.error(error);
return;
}
});
const btnSC3=document.getElementById("search_btn3_control");
btnSC3.addEventListener('click', e=>{
selectPrev();
});
const btnSC4=document.getElementById("search_btn4_control");
btnSC4.addEventListener('click', e=>{
selectNext();
});
// function doThings(){
// if(isExcuting){
// alert("正在玩命处理中,请稍候...");
// return;
// }
// isExcuting=true;
// var universityNames=[];
// excuteResultFailedIds=[];
// var $result_view=$("#result_view");
// $result_view.text("正在玩命处理中,请等候...");
// var inputSql=$.trim($("#input_sql_control").val());
// if(inputSql!=''){
// //如果是带换行符
// inputSql=inputSql.replace(/\n/g,",");
// universityNames=inputSql.split(",");
// }
// if(universityNames==null || universityNames.length<1){
// $result_view.text("输入参数不能为空");
// isExcuting=false;
// return;
// }
// if(universityNames.length>maxExcuteNum){
// $result_view.text("输入参数不能为超过"+maxExcuteNum+"条");
// isExcuting=false;
// return;
// }
// for(var i=0;i<universityNames.length;i++){
// var id=universityNames[i];
// var r=requestDataOfRemove(id);
// if(r==null || !r){
// excuteResultFailedIds.push(id);
// }
// }
// var rText="执行完成";
// rText+=",共"+universityNames.length+"个。";
// if(excuteResultFailedIds!=null && excuteResultFailedIds.length>0){
// rText+="失败"+excuteResultFailedIds.length+"个:"+JSON.stringify(excuteResultFailedIds);
// }
// console.log(rText);
// $result_view.text(rText);
// isExcuting=false;
// function requestDataOfRemove(data){
// var result=null;
// var param={productId: "", applyNo: -1, productForm: 2};
// param.productId=data;
// console.log("开始调用接口,传参:"+JSON.stringify(param));
// jQuery.ajax({
// type:'POST',
// async:false,
// url:'',
// data:JSON.stringify(param),
// // dataType : "json",
// // contentType: 'application/x-www-form-urlencoded; charset=utf-8',
// contentType: 'application/json;charset=UTF-8',
// success:function(responseData){
// if(responseData==null){
// return false;
// }
// if(responseData.success==null || responseData.success==0){
// console.log("调用接口失败!接口返回结果:"+JSON.stringify(responseData));
// return;
// }
// console.log("调用接口成功!");
// console.log(JSON.stringify(responseData));
// result=true;
// },
// error:function(XMLHttpRequest,textStatus,errorThrown){
// alert("调用接口失败:"+XMLHttpRequest)
// }
// });
// return result;
// }
// }
var isExcutingScollLoad=false;
function scollLoadAll(){
if(isExcutingScollLoad){
//如果已经在执行,则停止
isExcutingScollLoad=false;
return;
}
isExcutingScollLoad=true;
//开始滚动加载
setTimeout(function(){
alert("123");
}, 2000);
}
function doThings(){
if(isExcuting){
alert("正在玩命处理中,请稍候...");
return;
}
var universityNames=[];
excuteResultFailedIds=[];
recommendData=[];
currentItem=null;
var $result_view=$("#result_view");
// $result_view.text("正在玩命处理中,请等候...");
//学校名称
var inputSql=$.trim($("#input_sql_control").val());
if(inputSql!=''){
//如果是带换行符
inputSql=inputSql.replace(/\n/g,",");
universityNames=inputSql.split(",");
}
if(universityNames!=null){
if (universityNames.length > maxExcuteNum) {
$result_view.text("输入参数不能为超过" + maxExcuteNum + "条");
return;
}
}
//年龄
var ageLessThan=null;
var ageVal=$.trim($("#input_2_control").val());
if(ageVal!=""){
var reg=/[1-9]+\d*/;
if(!reg.test(ageVal)){
$result_view.text("输入年龄必须为正整数");
return;
}
ageLessThan=parseInt(ageVal);
}
//过滤应届毕业生
var filterYingJie=false;
if($("#input_3_control").prop("checked")){
filterYingJie=true;
}
//求职岗位
var filterExpects=[];
var input_4_val=$.trim($("#input_4_control").val());
if(input_4_val!=''){
//如果是带换行符
input_4_val=input_4_val.replace(/\n/g,",");
filterExpects=input_4_val.split(",");
if(filterExpects==null){
filterExpects=[];
}
filterExpects=trimArray(filterExpects);
}
// isExcuting=true;
//找到简历列表
// $main=$("#main").find("iframe").first();
$main=$(window.frames["syncFrame"].document).find("#main");
// var $recommend_card_list= $main.find("ul.recommend-card-list"); //$("ul.recommend-card-list");
var $recommend_card_list=$main.find("ul.recommend-card-list");
console.info("简历列表:"+$recommend_card_list.length);
if($recommend_card_list==null || $recommend_card_list.length<1){
alert("没有抓到页面数据,请重试!");
isExcuting=false;
return;
}
$recommendLiList=$recommend_card_list.children("li");
var rText="全部简历"+$recommendLiList.length+"个 ";
console.info(rText);
var collectData=[];
for(var i=0;i<$recommendLiList.length;i++){
var $li=$($recommendLiList[i]);
var item = {
"domIndex": i,
"eduExpList": [],//教育经历
};
//标识
item.geek=$li.find(".card-inner").first().attr("data-geek");
//沟通情况
item.goutong="";
var $btn_doc=$li.find("span.btn-doc").children("button");
if($btn_doc!=null && $btn_doc.length>0){
if($btn_doc.hasClass("btn-continue")){
item.goutong="已沟通";
}
else if($btn_doc.hasClass("btn-greet")){
item.goutong="未沟通";
}
else{
item.goutong="";
}
}
//姓名
item.realName=$li.find("div.avatar-box").find("img").first().attr("alt");
var $info_labels=$li.find("div.info-labels").first().find("span.label-text");
if($info_labels){
$info_labels.each(function(index,element){
var $e=$(element);
if(index==0){
item.age = null;
var age = $.trim($e.text()).replace("岁", "");
if ($.isNumeric(age)) {
item.age = parseInt(age);
}
} else if(index==1){
item.jobAge=$.trim($e.text());
} else if(index==2){
item.education=$.trim($e.text());
} else if(index==3){
item.jobStatus=$.trim($e.text());
}
});
}
//教育经历
var $edu_exp_li_list=$li.find("ul.edu-exp-box").children("li");
if($edu_exp_li_list && $edu_exp_li_list.length>0){
$edu_exp_li_list.each(function(index,element){
var $e=$(element);
var $span= $e.children("span");
if($span){
var eduExpItem={"index":index};
if($span.length>0){
eduExpItem.year= $span.first().text();
}
if($span.length>1){
var eduContent= $.trim($($span[1]).text());
if(eduContent){
var splitEdu=eduContent.split("·");
if(splitEdu && splitEdu.length>0){
eduExpItem.universityName= $.trim(splitEdu[0]);
if(splitEdu.length>1){
//专业
eduExpItem.eduMajor= $.trim(splitEdu[1]);
}
if(splitEdu.length>2){
eduExpItem.eduDegree= $.trim(splitEdu[2]);
}
}
}
}
item.eduExpList.push(eduExpItem);
}
});
}
//求职期望
item.expect=null;
var $expectSpans=$li.find("div.expect-box").children("span");
if($expectSpans && $expectSpans.length>1){
var expectContent=$.trim($($expectSpans.get(1)).text());
var expectArr=expectContent.split("·");
if(expectArr && expectArr.length>1){
item.expect=$.trim(expectArr[1]);
}
}
collectData.push(item);
}
isExcuting=false;
//筛选符合条件的数据
for(var i=0;i<collectData.length;i++){
var item=collectData[i];
var checkResult="";
//过滤学校名称
if(item.eduExpList && item.eduExpList.length>0
&& universityNames.length>0){
var eduFilter=false;
for(var j=0;j<item.eduExpList.length;j++){
var eduItem=item.eduExpList[j];
//符合学校条件,并且不能是大专
if(checkStringOfLike(eduItem.universityName,universityNames)
&& eduItem.eduDegree.indexOf("大专")<0){
eduFilter=true;
break;
}
}
if(!eduFilter){
checkResult+="学校不符合条件。";
}
}
//判断年龄
if(ageLessThan!=null && item.age!=null ){
if(ageLessThan<=item.age){
checkResult+="年龄不符合条件。";
}
}
//过滤应届生
if(filterYingJie && item.jobAge.indexOf("应届生")>=0){
checkResult+="应届生不符合条件。";
}
//过滤求职期望
if(item.expect!=null && item.expect!=""
&& filterExpects!=null && filterExpects.length>0){
if(!checkStringOfLike(item.expect,filterExpects)){
checkResult+="求职职位不符合条件。";
}
}
item.checkResult=checkResult;
/**
* 校验通过的处理
*/
var $li=$($recommendLiList.get(item.domIndex));
$li.css("background-color","white");
if(checkResult==""){
recommendData.push(item);
//标记li元素的背景颜色
if($li!=null){
//如果未沟通比较橙色
if(item.goutong=="未沟通"){
$li.css("background-color","orange");
}
else if(item.goutong=="已沟通"){
$li.css("background-color","lightblue");
}
}
//点击按钮,绑定事件
var $btn_doc=$li.find("span.btn-doc").children("button");
$btn_doc.click(btnCommunicateRefresh);
}
}
rText+=",共"+recommendData.length+"个符合条件。";
if(recommendData.length>0){
rText+=JSON.stringify(recommendData);
}
console.log(rText);
$result_view.text(rText);
}
/**
* 判断是否包含字符串
*/
function checkStringOfLike(str,arr){
var result=false;
if(!arr || arr.length<1){
return result;
}
if(str==null){
return result;
}
$.each(arr,function(index,item){
if(str.indexOf(item)>=0){
result=true;
return true;
}
});
return result;
}
function selectNext(){
showInfoOfOneByOne();
if (recommendData == null || recommendData.length <= 0) {
alert("请先筛选");
return;
}
if (currentItem != null) {
var idx = recommendData.indexOf(currentItem);
if (idx < 0) {
alert("数据不存在");
return;
}
if (idx + 1 >= recommendData.length) {
//已经到最后了,从第一个开始
// alert("已经到最后了");
currentItem = recommendData[0];
}
else{
currentItem = recommendData[idx + 1];
}
}
else{
currentItem=recommendData[0];
}
console.info("找到了下一个:"+JSON.stringify(currentItem));
//滚动到这儿
scrollTo($recommendLiList[currentItem.domIndex]);
showInfoOfOneByOne(currentItem);
}
function selectPrev(){
showInfoOfOneByOne();
if (recommendData == null || recommendData.length <= 0) {
alert("请先筛选");
return;
}
if (currentItem != null) {
var idx = recommendData.indexOf(currentItem);
if (idx < 0) {
alert("数据不存在");
return;
}
if (idx ==0) {
//已经到第一个了,从倒数第一开始
// alert("已经到第一个了");
currentItem = recommendData[recommendData.length - 1];
}
else{
currentItem = recommendData[idx - 1];
}
}
else{
// alert("没有上一个");
//没有上一个,从倒数第一开始
currentItem = recommendData[recommendData.length - 1];
}
console.info("找到了上一个:"+JSON.stringify(currentItem));
//滚动到这儿
scrollTo($recommendLiList[currentItem.domIndex]);
showInfoOfOneByOne(currentItem);
}
function showInfoOfOneByOne(data){
var msg="";
if(data!=null){
msg="找到了第"+(recommendData.indexOf(data)+1)+"个,姓名:"+data.realName;
}
var $span_oneByOne=$("#oneByOne_info_control");
$span_oneByOne.text(msg);
}
//滚动到指定位置
function scrollTo(element, speed) {
try {
if (element == null) {
return;
}
if (!speed) {
speed = 300;
}
var $iframe_syncFrame = $(window.frames["syncFrame"]);
// $iframe_syncFrame.scrollTop(-10000);
if (!element) {
// $("html,body").animate({ scrollTop: 0 }, speed);
// $iframe_syncFrame.animate({ scrollTop: 0 });
$iframe_syncFrame.scrollTop(0);
} else {
var $e = $(element);
if ($e.length > 0) {
// $("html,body").animate({ scrollTop: $e.offset().top-200 + "px" }, speed);
var scrollTop=$e.offset().top;
$iframe_syncFrame.scrollTop(scrollTop-200);
}
}
} catch (error) {
console.error(error);
alert("滚动到指定位置,异常了");
}
}
//数组去除空
function trimArray(data){
if(data==null || data.length<1){
return data;
}
for (var i = data.length - 1; i >= 0; i--) {
var item = $.trim(data[i]);
if (item == null || item == "") {
data.splice(i, 1);
}
}
return data;
}
//打招呼之后切换背景颜色
function btnCommunicateRefresh(e){
var $btn_doc=$(this);
if($btn_doc!=null && $btn_doc.length>0){
var $li = $btn_doc.parents("li");
$li.css("background-color","lightblue");
// if($btn_doc.hasClass("btn-continue")){
// $li.css("background-color","orange");
// }
// else if($btn_doc.hasClass("btn-greet")){
// $li.css("background-color","lightblue");
// }
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。