var token; if(isEmpty(token)){ var meta = $("meta[name=_uid]"); if(!isEmpty(meta)){ token = meta.attr("content"); console.log("token is uid:" + token); } } var authorMeta = $("meta[name=author]"); var userName; if(!isEmpty(authorMeta)){ userName = authorMeta.attr("content"); console.log("user name=" + userName); } var userType; if(isEmpty(userType)){ userType =1; } var ip = getIp(); var pageSize = 10; var tableData; var tablePageData; var modelListData; var dataSetTaskData; var userInfoData; var labelPropertyData; var repoId = $('#repoId').val(); console.log("repoId=" + repoId); function setDataSetTask(){ //dataset_task_list(); //display_createdatasetlabel(0); //getUser(); //dislpayUser(); getLabelPropertyTask(); displayLabelPropertyTask(); dataset_sele_Change(""); $(".ui.dataset.modal").modal("show"); } function getLabelPropertyTask(){ $.ajax({ type:"GET", url:ip + "/api/label-property-task-all/", headers: { authorization:token, }, dataType:"json", async:false, success:function(json){ labelPropertyData = json; console.log(json); }, error:function(response) { redirect(response); } }); } function displayLabelPropertyTask(){ var html=""; for (var i=0;i"+labelPropertyData[i].task_name + ""; html=html+row; } console.log(html); document.getElementById('labelpropertytask_dataset').innerHTML=html; document.getElementById('labelpropertytask_auto').innerHTML=html; } function dataset_task_list(){ $.ajax({ type:"GET", url:ip + "/gitea-dataset/", headers: { authorization:token, }, dataType:"json", data:{ 'repoId':repoId, 'dateset_type':'[1]' }, async:false, success:function(json){ dataSetTaskData = json; console.log(json); // return json.token; }, error:function(response) { redirect(response); } }); } function countLabel(){ $.ajax({ type:"GET", url:ip + "/gitea/label-count/", headers: { authorization:token, }, dataType:"json", async:false, success:function(json){ alert("请等待几分钟,服务端正在加紧统计。"); }, error:function(response) { redirect(response); } }); } function setPredictTask(){ //dataset_task_list(); //display_createdatasetlabel(1); get_model_list(); displayModelTask(); dataset_auto_sele_Change(""); $(".ui.predict.modal").modal("show"); } function get_model_list(){ $.ajax({ type:"GET", url:ip + "/api/queryAlgModelForAutoLabel/", headers: { authorization:token, }, dataType:"json", async:false, success:function(json){ modelListData = json; console.log(json); // return json.token; }, error:function(response) { redirect(response); } }); } function displayModelTask(){ var html=""; for (var i=0;i"+modelListData[i].model_name + ""; }else{ var row = ""; } html=html+row; } console.log(html); document.getElementById('model_list').innerHTML=html; } function sele_export_Change(sele){ var isNeedPicture = $('#isNeedPicture option:selected').val(); if(isNeedPicture == 3){ document.getElementById("maxscore_div").style.display="block"; document.getElementById("minscore_div").style.display="block"; $('#maxscore').val("1.0"); $('#minscore').val("0.6"); }else{ document.getElementById("maxscore_div").style.display="none"; document.getElementById("minscore_div").style.display="none"; $('#maxscore').val(""); $('#minscore').val(""); } } function dataset_sele_Change(sele){ var dataset_listName = $('#dataset_list option:selected').text(); console.log("select dataset_list =" + dataset_listName); $("#datasetlabeltaskname").val(dataset_listName+"-人工标注"); } function dataset_auto_sele_Change(sele){ var dataset_listName = $('#dataset_list_auto option:selected').text(); console.log("select dataset_list_auto =" + dataset_listName); $("#autolabeltaskname").val(dataset_listName+"-自动标注"); } var createsucced; function submit_datasettask(){ console.log($('#datasetlabeltaskname').val()); var task_name = $('#datasetlabeltaskname').val(); if (isEmpty(task_name) || task_name.length > 32){ alert("人工标注任务名称不能为空或者不能超过32个字符。"); return; } var assign_user_id = $('#assign_user option:selected').val(); if(isEmpty(assign_user_id)){ assign_user_id = token; } var relate_task_id = $('#dataset_list option:selected').val(); if(isEmpty(relate_task_id)){ alert("数据集对象不能为空。"); return; } var labelpropertytaskid = $('#labelpropertytask_dataset option:selected').val(); createsucced = true; label_task_create(task_name, relate_task_id, 2,assign_user_id,labelpropertytaskid,-1); if(createsucced){ $(".ui.dataset.modal").modal("hide"); //$("#labelDataModal").modal('hide'); } page(0,pageSize); } function submit_autolabeltask(){ console.log($('#autolabeltaskname').val()); var task_name = $('#autolabeltaskname').val(); if (isEmpty(task_name) || task_name.length > 32){ alert("自动标注任务名称不能为空或者不能超过32个字符。"); return; } var model_id = $('#model_list option:selected').val(); if(isEmpty(model_id)){ alert("标注模型不能为空。"); return; } var relate_task_id = $('#dataset_list_auto option:selected').val(); if(isEmpty(relate_task_id)){ alert("数据集对象不能为空。"); return; } var assign_user_id = $('#label_assign_user option:selected').val(); if(isEmpty(assign_user_id)){ assign_user_id = token; } var labelpropertytaskid = $('#labelpropertytask_auto option:selected').val(); createsucced = true; label_task_create(task_name, relate_task_id, 1,assign_user_id,labelpropertytaskid,model_id); if(createsucced){ $("#labelModal").modal('hide'); } page(0,pageSize); } function label_task_create(task_name, relate_task_id, taskType,assign_user_id,labelpropertytaskid,model_id){ var task_flow_type = $('#task_flow_type option:selected').val(); var relate_other_label_task = []; if(task_flow_type == 2){ var items = document.getElementsByName("category"); for (i = 0; i < items.length; i++) { if (items[i].checked) { relate_other_label_task.push(items[i].value); } } } relate_other_label_task_jsonstr = JSON.stringify(relate_other_label_task); console.log("relate_task_id=" + relate_task_id); $.ajax({ type:"POST", contentType:'application/json', url:ip + "/gitea/label-task/", dataType:"json", async:false, headers: { authorization:token, }, beforeSend: function (xhr) {       xhr.withCredentials = true     }, data:JSON.stringify({'task_name':task_name, 'assign_user_id':assign_user_id, 'task_flow_type':task_flow_type, 'relate_task_id':relate_task_id,//task id 'relate_other_label_task': relate_other_label_task_jsonstr, "taskType": taskType, "appid": repoId, "createUserName":userName, "labelPropertyTaskId":labelpropertytaskid, "modelId":model_id }), success:function(res){ console.log(res); if(res.code == 0){ alert("标注任务创建成功!"); createsucced = true; } else{ alert("创建标注任务失败," + res.message); createsucced = false; } }, error:function(response) { redirect(response); } }); } function list(current,pageSize){ $.ajax({ type:"GET", url:ip + "/gitea/label-task-page/", headers: { authorization:token, }, dataType:"json", data:{'startPage':current, 'pageSize':pageSize}, async:false, success:function(json){ tablePageData = json; tableData = json.data; //console.log(json); }, error:function(response) { redirect(response); } }); } var otherUserLabelTaskData; function flow_type_sele_Change(sele){ var task_flow_type = $('#task_flow_type option:selected').val(); if(task_flow_type == 2){ var datasetid = $('#dataset_list option:selected').val(); getOtherUserLabelTaskByDataSetId(datasetid); var html = "

请选择该数据集要审核的标注任务

"; for(var i = 0; i < otherUserLabelTaskData.length; i++){ html += "

" + otherUserLabelTaskData[i].task_name + "(标注人:" + otherUserLabelTaskData[i].assign_user + ")" + "

"; } document.getElementById('related_task_list').innerHTML=html; }else{ document.getElementById('related_task_list').innerHTML= ""; } } function getOtherUserLabelTaskByDataSetId(datasetid){ $.ajax({ type:"GET", url:ip + "/gitea/label-related-task/" + datasetid + "/", headers: { authorization:token, }, dataType:"json", async:false, success:function(json){ otherUserLabelTaskData = json; console.log(json); }, error:function(response) { redirect(response); } }); } function dislpayUser(){ var html=""; for (var i=0;i"+userInfoData[i].username+ ""; html=html+row; } console.log(html); document.getElementById('assign_user').innerHTML=html; document.getElementById('label_assign_user').innerHTML=html; } function getUser(){ $.ajax({ type:"GET", url:ip + "/api/queryAllUser/", headers: { authorization:token, }, dataType:"json", async:false, success:function(json){ userInfoData = json; console.log(json); }, error:function(response) { redirect(response); } }); } function delete_labeltask(){ var stop = del(); if (stop){ return; } var Check = $("table[id='label_task_list'] input[type=checkbox]:checked");//在table中找input下类型为checkbox属性为选中状态的数据 Check.each(function () {//遍历 var row = $(this).parent("td").parent("tr");//获取选中行 var id = row.find("[id='labeltask_id']").html();//获取name='Sid'的值 delete_labeltask_byid(id); }); page(0,pageSize); } function del(){ if($("table[id='label_task_list'] input[type=checkbox]").is(":checked")) { if (confirm("确实要删除吗?")) { // alert("已经删除!"); return false; } else { // alert("已经取消了删除操作"); return true; } }else if($("table[id='label_task_list']").find("input").length=="0"){ alert("暂无可删的数据!"); return true; }else{ alert("请先选择需要删除的选项!"); return true; } } function delete_labeltask_byid(label_task_id){ $.ajax({ type:"DELETE", url:ip + "/gitea/label-task/", headers: { authorization:token, }, dataType:"json", async:false, data:{'label_task_id': label_task_id}, success:function(json){ console.log(json); }, error:function(response) { redirect(response); } }); } function getTaskTypeDesc(task_type){ if(task_type == 1){ return "图片-自动标注"; }else if(task_type == 2){ return "图片"; }else if(task_type == 3){ return "CT影像"; }else if(task_type == 4){ return "视频"; } return "其它"; } function getLabelDesc(task_flow_type){ if(task_flow_type == 2){ return "审核"; }else{ return "人工" } } function getTaskSataus(task_status,task_status_desc){ if(task_status == 0){ return "标注中:" + task_status_desc; }else if(task_status == 1){ return "审核中:" + task_status_desc; } else if(task_status == -1){ return "关联的数据集已经被删除。" } else if(task_status == 20){ return "自动标注进行中:" + task_status_desc; }else if(task_status == 21){ return task_status_desc; } return ""; } function getVerify(task_status,id,task_type){ console.log("task_status=" + task_status + " userType=" + userType); if(task_status == 0 && (userType == 1 || userType == 0) ){ return "转审核   "; }else if(task_status == 1 && userType == 2){ return "进入审核   " + "转标注   "; }else{ return ""; } } function getLabel(task_status,id,task_type,task_flow_type){ if((task_status == 0 || task_status == 21) && (userType == 1 || userType == 0)){ return "" + getLabelDesc(task_flow_type) + "标注
"; }else{ return ""; } } function display_list(){ var html="\ \ \ 标注任务名称\ 关联的数据集名称\ 数据类型\ 标注人员\ 审核人员\ 任务开始时间\ 任务状态\ 总标注数量\ 操作\ "; for (var i=0;i\ "+tableData[i].id+"\ "+tableData[i].task_name+"\ "+tableData[i].relate_task_name+"\ "+ getTaskTypeDesc(tableData[i].task_type) +"\ "+tableData[i].assign_user+"\ "+tableData[i].verify_user+"\ "+tableData[i].task_add_time+"\ "+getTaskSataus(tableData[i].task_status,tableData[i].task_status_desc)+"\ "+tableData[i].total_label+"\ " + getLabel(tableData[i].task_status,tableData[i].id,tableData[i].task_type,tableData[i].task_flow_type) + "导出标注" + "\ "; html=html+row; } //console.log(html); document.getElementById('label_task_list').innerHTML=html; $('#label_task_list tr').find('td:eq(1)').hide(); $('#label_task_list tr').find('th:eq(1)').hide(); isNeedToRefresh = false; taskNeedIntervalToRefresh(); } var isNeedToRefresh; var refreshTimeId = []; var refreshCount; var refreshMaxTime; function taskNeedIntervalToRefresh(){ var isNeedToSetInterval = false; refreshMaxTime= 1; if(!isEmpty(tableData)){ for (var i=0;i请选择"; for (var i=0;i" + json[i].username + ""; html=html+row; } document.getElementById('label_verify_user').innerHTML=html; }, error:function(response) { redirect(response); } }); $("#startToVerify").modal('show'); } function submit_labeltask_toverify(){ var label_task_id = $('#hide_labeltasktoverifyid').val(); console.log("label_task_id=" +label_task_id); var verify_user_id = $('#label_verify_user option:selected').val(); //修改状态 $.ajax({ type:"PATCH", url:ip + "/gitea/label-task-status/", dataType:"json", async:false, headers: { authorization:token, }, data:{ "label_task_id" : label_task_id, "verify_user_id" : verify_user_id, "task_status" : 1 }, success:function(res){ console.log(res); }, error:function(response) { redirect(response); } }); $("#startToVerify").modal('hide'); var current =$('#displayPage1').text(); page(current - 1,pageSize); } function goVerify(taskid, task_type){ sessionStorage.setItem('label_task',taskid); sessionStorage.setItem('label_task_status',1);//审核 console.log("task_type=" + task_type); if(task_type == 2 || task_type == 1 || task_type == 4){ window.location.href="labeling.html"; }else if(task_type == 3){ window.location.href="labelingDcm.html"; } } function personLabel(taskid, task_type){ sessionStorage.setItem('label_task',taskid); sessionStorage.setItem('token',token); sessionStorage.setItem('userType',1); var pathname = window.location.pathname; var search = window.location.search var url_name = pathname + search sessionStorage.setItem('return_url',url_name); console.log("task_type=" + task_type); if(task_type == 2 || task_type == 1 || task_type == 4){ window.open("/self/labeling.html?","标注"+new Date().getMilliseconds()); //window.location.href="/self/labeling.html"; }else if(task_type == 3){ window.location.href="labelingDcm.html"; } } function setMultiTaskId(){ var Check = $("table[id='label_task_list'] input[type=checkbox]:checked");//在table中找input下类型为checkbox属性为选中状态的数据 if(Check.length == 0){ alert("请选择一个或者多个标注数据进行导出。"); return; } var taskList = []; Check.each(function () {//遍历 var row = $(this).parent("td").parent("tr");//获取选中行 var id = row.find("[id='labeltask_id']").html();//获取name='Sid'的值 taskList.push(id); //$('#hide_labeltaskid').val(id); }); setTaskId(JSON.stringify(taskList)); } function setTaskId(labeltaskid){ $('#hide_labeltaskid').val(labeltaskid); console.log("go here1"); bar.style.width='1%'; document.getElementById('text-progress').innerHTML="0%"; document.getElementById("predtask_id").removeAttribute("disabled"); console.log("go here2"); $(".ui.export.modal").modal("show"); } function isBeetween(score_threshhold){ if(isEmpty(score_threshhold)){ return true; } var regPos = /^\d+(\.\d+)?$/; //非负浮点数 if(!regPos.test(score_threshhold)){ return false; }else{ if(score_threshhold >1 || score_threshhold < 0){ return false; } } return true; } function downloadFile(){ var labeltaskid = $('#hide_labeltaskid').val(); var isNeedPicture = $('#isNeedPicture option:selected').val(); var maxscore = $('#maxscore').val(); var minscore = $('#minscore').val(); var exportFormat = $('#exportFormat option:selected').val(); if(isNeedPicture == 3){ if(!isBeetween(maxscore)){ alert("标注得分最大值应该填写0--1.0之间的数值。"); return; } if(!isBeetween(minscore)){ alert("标注得分最小值应该填写0--1.0之间的数值。"); return; } if(!isEmpty(maxscore) && !isEmpty(minscore)){ if(minscore>maxscore){ alert("标注得分最小值应该小于标注得分最大值。"); return; } } } document.getElementById("predtask_id").setAttribute("disabled", true); var taskreturnid = ""; $.ajax({ type:"GET", url:ip + "/gitea-label-task-export/", headers: { authorization:token, }, dataType:"json", data:{ "label_task_id" : labeltaskid, "needPicture" : isNeedPicture, "exportFormat":exportFormat, "maxscore":maxscore, "minscore":minscore }, async:false, success:function(json){ taskreturnid = json.message; console.log(json); }, error:function(response) { redirect(response); } }); console.log("taskreturnid=" +taskreturnid); if(!isEmpty(taskreturnid)){ setIntervalToDo(taskreturnid); } } var timeId=[]; var count; var progress; function setIntervalToDo(taskreturnid){ count=0; var tmpTimeId = self.setInterval("clock('" + taskreturnid +"')",1000);//5秒刷新 timeId.push(tmpTimeId); console.log("开始刷新。timeId=" + tmpTimeId); } function clock(taskreturnid){ count++; if(count > 600 ){ for(var i = 0;i < timeId.length; i++){ console.log("清除定时器1。exportTimeId=" + timeId[i]); window.clearInterval(timeId[i]); } timeId = []; $(".ui.export.modal").modal("hide"); return; } $.ajax({ type:"GET", url:ip + "/api/query-download-progress/", headers: { authorization:token, }, dataType:"json", data:{'taskId': taskreturnid}, async:false, success:function(json){ progress = json; console.log(json); }, error:function(response) { progress = null; console.log('query return null.'); redirect(response); } }); if(!isEmpty(progress)){ if(progress.progress >= 100){ var iSpeed = progress.progress; bar.style.width=iSpeed+'%'; document.getElementById('text-progress').innerHTML=iSpeed+'%' + ",开始下载文件。" for(var i = 0;i < timeId.length; i++){ console.log("清除定时器2。exportTimeId=" + timeId[i]); window.clearInterval(timeId[i]); } timeId = []; var url = ip + "/api/label-file-download/"; var $iframe = $('