You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

dataset_preview.js 23 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754
  1. var img=new Image();
  2. var ip = getIp();
  3. var token = getCookie("_csrf");
  4. canvas = document.getElementById("myCanvas");
  5. context = canvas.getContext("2d");
  6. // canvas.width = document.getElementById("myCanvas").offsetWidth;
  7. // canvas.height = document.getElementById("myCanvas").offsetWidth/1280*720;
  8. canvas.width = document.getElementById("win_canvas").offsetWidth;
  9. canvas.height = document.getElementById("win_canvas").offsetHeight;
  10. var color_dict = {"car":"#0099CC", "person":"#FF99CC","point":"#00cc00","pointselected":"red"};
  11. var color_person = {"0":"#13c90c","1":"#fc0707","2":"#FF99CC","3":"#fceb07"};
  12. var rects=[];
  13. var masks=[];
  14. var pointShapes =[];
  15. var fileindex =0;
  16. var lastindex=false;
  17. var labeltastresult;
  18. var pageSize = 12;
  19. var tableData;
  20. var tablePageData;
  21. var dataset_id = $('#hide_uuidid').val();
  22. var dbdatasetid = dataset_id;
  23. var textContent;
  24. var labelInfo;
  25. page(0,pageSize);
  26. function getCookie(name)
  27. {
  28. var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  29. if(arr=document.cookie.match(reg))
  30. return unescape(arr[2]);
  31. else
  32. return null;
  33. }
  34. function list(current,pageSize){
  35. $.ajax({
  36. type:"GET",
  37. url:ip + "/gitea-dateset-item-page",
  38. headers: {
  39. authorization:token,
  40. },
  41. dataType:"json",
  42. data:{
  43. 'datasetId':dbdatasetid,
  44. 'startPage':current,
  45. 'pageSize':pageSize},
  46. async:false,
  47. success:function(json){
  48. tablePageData = json;
  49. tableData = json.data;
  50. labeltastresult = tableData;
  51. fileindex=0;
  52. if(lastindex){
  53. fileindex = pageSize - 1;
  54. }
  55. },
  56. error:function(response) {
  57. }
  58. });
  59. }
  60. function getTextContent(uuid,filename){
  61. $.ajax({
  62. type:"GET",
  63. url:ip + "/getgiteatext",
  64. headers: {
  65. authorization:token,
  66. },
  67. dataType:"text",
  68. data:{
  69. 'uuid':uuid,
  70. 'filename':filename
  71. },
  72. async:false,
  73. success:function(json){
  74. textContent = json;
  75. },
  76. error:function(response) {
  77. }
  78. });
  79. }
  80. /*
  81. function previewDataSetFile(uuid,filename){
  82. console.log('uuid=' + uuid + " filename=" + filename);
  83. loadimg(uuid,filename);
  84. }
  85. function loadimg(uuid,filename){
  86. img.src = ip + "/getgiteaimage?uuid=" + uuid + "&filename=" + filename;
  87. var fname = filename.substring(filename.lastIndexOf('/') + 1);
  88. $("#filename").text(fname);
  89. }
  90. */
  91. function loadimg(){
  92. var length = labeltastresult[fileindex].pic_image_field.length;
  93.  if(labeltastresult[fileindex].pic_image_field.substring(length - 5) == ".json" 
  94.      || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".xml"
  95.      || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".txt"
  96.      || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".csv"
  97.      || labeltastresult[fileindex].pic_image_field.substring(length - 3) == ".md"
  98.      || labeltastresult[fileindex].pic_image_field.substring(length - 3) == ".py"
  99.      || labeltastresult[fileindex].pic_image_field.substring(length - 3) == ".sh"){
  100. //文本
  101. canvas.style.display="none";
  102. document.getElementById("textcontent").style.display="block";
  103. getTextContent(dataset_id,labeltastresult[fileindex].pic_image_field);
  104. $('#textcontent').height(canvas.height-40)
  105. $("#textcontent").text(textContent);
  106. }else{
  107. if(labeltastresult[fileindex].pic_image_field.substring(length - 5) == ".jpeg" 
  108.     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".jpg"
  109.     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".bmp"
  110.     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".gif"
  111.     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".png"){
  112. canvas.style.display="block";
  113. document.getElementById("textcontent").style.display="none";
  114. img.src = ip + "/getgiteaimage?uuid=" + dataset_id + "&filename=" + labeltastresult[fileindex].pic_image_field;
  115. }else{
  116. canvas.style.display="none";
  117. document.getElementById("textcontent").style.display="block";
  118. $('#textcontent').height(canvas.height)
  119. $("#textcontent").text("暂不支持预览");
  120. }
  121. }
  122. var fname = tableData[fileindex].pic_image_field.substring(tableData[fileindex].pic_image_field.lastIndexOf('/') + 1);
  123. $("#filename").text(fname);
  124. }
  125. img.onload = function(){
  126. canvas.width = document.getElementById("win_canvas").offsetWidth;
  127. canvas.height = document.getElementById("win_canvas").offsetHeight-40;
  128. //调整画布大小
  129. // if ((img.width/img.height)<(canvas.width/canvas.height)){
  130. // canvas.width=canvas.height * img.width / img.height;
  131. // }
  132. // else{
  133. // canvas.height=canvas.width * img.height / img.width;
  134. // }
  135. drawimage();
  136. }
  137. function isEmpty(str){
  138. if(typeof str == "undefined" || str == null || str == ""){
  139. return true;
  140. }
  141. return false;
  142. }
  143. function drawimage() {
  144. parse_labelinfo(labeltastresult[fileindex].label_info);
  145. // 清除画布,准备绘制
  146. context.clearRect(0, 0, canvas.width, canvas.heigth);
  147. // modal_context.cleararc
  148. context.drawImage(img,0,0,img.width,img.height,0,0,canvas.width, canvas.height);
  149. for(var i=0; i<rects.length; i++) {
  150. var rect = rects[i];
  151. rectxywh = new Array(4);
  152. rectxywh_tmp = rect.getXYWH();
  153. rectxywh[0] = rectxywh_tmp[0] / canvas.width * canvas.width;
  154. rectxywh[1] = rectxywh_tmp[1] / canvas.height * canvas.height;
  155. rectxywh[2] = rectxywh_tmp[2] / canvas.width * canvas.width;
  156. rectxywh[3] = rectxywh_tmp[3] / canvas.height * canvas.height;
  157. // 绘制矩形
  158. context.lineWidth = 3;
  159. if(rect.type == "person"){
  160. context.strokeStyle = color_person[ i % 4];
  161. }else{
  162. context.strokeStyle=color_dict[rect.type];
  163. }
  164. context.strokeRect(rectxywh[0],rectxywh[1],rectxywh[2],rectxywh[3]);
  165. context.font = "15px Georgia";
  166. context.fillStyle= context.strokeStyle;
  167. context.fillText(rect.type, rectxywh[0],rectxywh[1]-5);
  168. for(var j=0; j<4; j++){
  169. var p_tmp = rect.points[j];
  170. var p = new point(0,0);
  171. p.x = p_tmp.x/ canvas.width * canvas.width;;
  172. p.y = p_tmp.y / canvas.height * canvas.height;
  173. context.fillStyle = color_dict["point"];
  174. context.fillRect(p.x-2,p.y-2,4,4);
  175. }
  176. }
  177. for (var i=0; i<masks.length; i++){
  178. context.strokeStyle="purple"
  179. var mask =masks[i];
  180. context.lineWidth = 2;
  181. for (var j=1; j<mask.points.length; j++){
  182. context.beginPath();
  183. context.moveTo(mask.points[j-1].x, mask.points[j-1].y);
  184. context.lineTo(mask.points[j].x,mask.points[j].y);
  185. context.stroke();
  186. // modal_context.closePath();
  187. }
  188. context.moveTo(mask.points[mask.points.length-1].x,mask.points[mask.points.length-1].y);
  189. context.lineTo(mask.points[0].x,mask.points[0].y);
  190. context.stroke();
  191. context.closePath();
  192. for (var j=0; j<mask.points.length; j++){
  193. var p = mask.points[j]
  194. context.fillStyle = color_dict["point"];
  195. context.fillRect(p.x-2,p.y-2,4,4);
  196. }
  197. }
  198. }
  199. function parse_labelinfo(labelinfo){
  200. rects.length = 0;
  201. masks.length = 0;
  202. pointShapes.length = 0;
  203. if(!isEmpty(labelinfo)){
  204. var label_arr = JSON.parse(labelinfo);
  205. for(var i=0;i<label_arr.length;i++){
  206. if(!isEmpty(label_arr[i].mask)){
  207. cls=label_arr[i].class_name;
  208. var tmpMask = new maskar(getCanvasLocationX(label_arr[i].mask[0]),getCanvasLocationY(label_arr[i].mask[1]),cls);
  209. for(var j = 2; j < label_arr[i].mask.length; j+=2){
  210. tmpMask.points.push(new point(getCanvasLocationX(label_arr[i].mask[j]),getCanvasLocationY(label_arr[i].mask[j+1])));
  211. }
  212. if(!isEmpty(label_arr[i].id)){
  213. tmpMask.id= label_arr[i].id;
  214. }
  215. if(!isEmpty(label_arr[i].blurred)){
  216. tmpMask.blurred = label_arr[i].blurred;
  217. }
  218. if(!isEmpty(label_arr[i].goodIllumination)){
  219. tmpMask.goodIllumination = label_arr[i].goodIllumination;
  220. }
  221. if(!isEmpty(label_arr[i].frontview)){
  222. tmpMask.frontview = label_arr[i].frontview;
  223. }
  224. tmpMask.finish = true;
  225. masks.push(tmpMask);
  226. }else if(!isEmpty(label_arr[i].box)){
  227. x1 = getCanvasLocationX(label_arr[i].box[0]);
  228. y1 = getCanvasLocationY(label_arr[i].box[1]);
  229. x2 = getCanvasLocationX(label_arr[i].box[2]);
  230. y2 = getCanvasLocationY(label_arr[i].box[3]);
  231. cls=label_arr[i].class_name;
  232. score = label_arr[i].score;
  233. rect = new rectar(x1,y1,x2,y2,cls,score);
  234. if(!isEmpty(label_arr[i].id)){
  235. rect.id= label_arr[i].id;
  236. }
  237. if(!isEmpty(label_arr[i].blurred)){
  238. rect.blurred = label_arr[i].blurred;
  239. }
  240. if(!isEmpty(label_arr[i].goodIllumination)){
  241. rect.goodIllumination = label_arr[i].goodIllumination;
  242. }
  243. if(!isEmpty(label_arr[i].frontview)){
  244. rect.frontview = label_arr[i].frontview;
  245. }
  246. rects.push(rect);
  247. }else if(!isEmpty(label_arr[i].keypoints)){
  248. cls=label_arr[i].class_name;
  249. score = label_arr[i].score;
  250. var pointShapeObj = new pointShape(getCanvasLocationX(label_arr[i].keypoints[0]),getCanvasLocationY(label_arr[i].keypoints[1]),cls,score);
  251. pointShapes.push(pointShapeObj);
  252. }
  253. }
  254. }
  255. }
  256. function point(x,y){
  257. this.x = x;
  258. this.y = y;
  259. this.isSelected = false;
  260. };
  261. function pointShape(x,y,type,score=1.0){
  262. this.x = x;
  263. this.y = y;
  264. this.isSelected = false;
  265. this.type = type;
  266. this.score = score;
  267. this.id =""; //标识
  268. this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的
  269. this.goodIllumination = false; //照明
  270. this.frontview = false;//正面图
  271. }
  272. function rectar(x1,y1,x2,y2, type, score=1.0){
  273. // this.x = x;
  274. // this.y = y;
  275. // this.width = width;
  276. // this.height = height;
  277. this.type = type;
  278. this.score = score;
  279. //0--1,
  280. //| |
  281. //2--3
  282. this.points = [new point(x1,y1), new point(x1, y2),new point(x2, y1),new point(x2, y2)];
  283. this.getXYWH = function(){
  284. var x_min=Math.min(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x);
  285. var x_max=Math.max(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x);
  286. var y_min=Math.min(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y);
  287. var y_max=Math.max(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y);
  288. return [x_min,y_min,x_max-x_min,y_max-y_min];
  289. }
  290. this.getX1Y1X2Y2 = function(){
  291. var x_min=Math.min(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x);
  292. var x_max=Math.max(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x);
  293. var y_min=Math.min(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y);
  294. var y_max=Math.max(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y);
  295. return [x_min,y_min,x_max,y_max];
  296. }
  297. this.getdiapid = function(pid){//获取对角点
  298. var twooverlapped,fouroverlapped;
  299. for (var i=0;i<4;i++){
  300. if ((this.points[pid].x!=this.points[i].x)&&(this.points[pid].y!=this.points[i].y)){
  301. return i;
  302. }
  303. if ((this.points[pid].x!=this.points[i].x)||(this.points[pid].y!=this.points[i].y)){
  304. twooverlapped=i;
  305. }
  306. if (i!=pid) fouroverlapped=i;
  307. }
  308. if (twooverlapped)
  309. return twooverlapped;
  310. return fouroverlapped;
  311. }
  312. this.mouseonpoint = false;
  313. this.mouseonrect = false;
  314. this.isSelected = false;
  315. this.id =""; //标识
  316. this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的
  317. this.goodIllumination = true; //照明
  318. this.frontview = true;//正面图
  319. };
  320. function maskar(x0,y0,type){
  321. this.type = type;
  322. this.points = [new point(x0,y0)];
  323. this.finish = false;
  324. this.mouseonpoint = false;
  325. this.mouseonmask = false;
  326. this.isSelected = false;
  327. this.getX1Y1 = function(){return [this.points[0].x,this.points[0].y]}
  328. this.getBound = function(){
  329. mlen = this.points.length;
  330. var minX = 999999999, minY = 999999999, maxX = -1, maxY = -1;
  331. for (var i = 0; i < mlen; i ++){
  332. if(minX > this.points[i].x){
  333. minX = this.points[i].x;
  334. }
  335. if(maxX < this.points[i].x){
  336. maxX = this.points[i].x;
  337. }
  338. if(minY > this.points[i].y){
  339. minY = this.points[i].y;
  340. }
  341. if(maxY < this.points[i].y){
  342. maxY = this.points[i].y;
  343. }
  344. }
  345. return [minX, minY, maxX, maxY];
  346. }
  347. this.id =""; //标识
  348. this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的
  349. this.goodIllumination = true; //照明
  350. this.frontview = true;//正面图
  351. }
  352. function getCanvasLocationX(num){
  353. return Math.round(num * canvas.width/parseInt(img.width));
  354. }
  355. function getCanvasLocationY(num){
  356. return Math.round(num * canvas.height/parseInt(img.height));
  357. }
  358. function page(current,pageSize){
  359. list(current,pageSize);
  360. showfilelist();
  361. breadFiles();
  362. loadimg();
  363. setPage(tablePageData,pageSize);
  364. }
  365. getLabelInfo(dataset_id);
  366. showlabelflist();
  367. function nextPage(){
  368. var current = $('#displayPage1').text();
  369. page(current,pageSize);
  370. }
  371. function prePage(){
  372. var current =$('#displayPage1').text();
  373. if(current > 1){
  374. page(current - 2,pageSize);
  375. }
  376. }
  377. function goPage(){
  378. var goNum = $('#goNum').val();
  379. var pageTotal = $("#totalNum").text();
  380. var pageNum = parseInt(pageTotal/pageSize);
  381. if(pageTotal%pageSize!=0){
  382. pageNum += 1;
  383. }else {
  384. pageNum = pageNum;
  385. }
  386. if (goNum<=0){
  387. alert("请输入大于0的数值");
  388. }
  389. else if(goNum<=pageNum){
  390. page(goNum - 1,pageSize);
  391. }
  392. else{
  393. alert("不能超出总页码!");
  394. }
  395. }
  396. $("#goNum").keydown(function (e) {
  397. if (e.keyCode == 13) {
  398. goPage();
  399. }
  400. });
  401. function setPage(pageData,pageSize){
  402. if (isEmpty(pageData)){
  403. return;
  404. }
  405. var startIndex = pageData.current * pageSize;
  406. if(pageData.total > 0){
  407. startIndex = startIndex + 1;
  408. }
  409. if(startIndex < 10){
  410. $('#startIndex').text(" " + (startIndex));
  411. }else{
  412. $('#startIndex').text(startIndex);
  413. }
  414. var endIndex = pageData.current * pageSize + pageData.data.length;
  415. if(endIndex < 10){
  416. $('#endIndex').text(" " + (endIndex));
  417. }else{
  418. $('#endIndex').text(endIndex);
  419. }
  420. $('#totalNum').text(pageData.total);
  421. $('#displayPage1').text(pageData.current + 1);
  422. if(pageData.current == 0){
  423. $('#prePage').removeAttr("href");
  424. $('#prePage').attr('style','color:#f5f5f6;');
  425. }
  426. else{
  427. $('#prePage').attr("href","javascript:prePage()");
  428. $('#prePage').attr('style','color:#000;');
  429. }
  430. if((pageData.current + 1) * pageSize >= pageData.total){
  431. $('#nextPage').removeAttr("href");
  432. $('#nextPage').attr('style','color:#f5f5f6;')
  433. }
  434. else{
  435. $('#nextPage').attr("href","javascript:nextPage()");
  436. $('#nextPage').attr('style','color:#000;');
  437. }
  438. var pageTotal = pageData.total;
  439. var pageNum = parseInt(pageTotal/pageSize);
  440. if(pageTotal%pageSize!=0){
  441. pageNum += 1;
  442. }else {
  443. pageNum = pageNum;
  444. }
  445. $("#totalPageNum").text(pageNum);
  446. }
  447. function clickfilelist(index){
  448. fileindex=index;
  449. loadimg();
  450. //drawimage();
  451. breadFiles()
  452. showfilelist();
  453. }
  454. function clickNext(){
  455. if(fileindex<tableData.length-1) {
  456. next();
  457. }else{
  458. if((tablePageData.current + 1) * pageSize >= tablePageData.total){
  459. return;
  460. }
  461. nextPage();
  462. }
  463. }
  464. function next(){
  465. if(fileindex<tableData.length-1) {fileindex=fileindex+1;}
  466. loadimg();
  467. //drawimage();
  468. breadFiles()
  469. showfilelist();
  470. }
  471. function clickLast(){
  472. if(fileindex == 0){
  473. lastindex=true;
  474. prePage();
  475. lastindex=false;
  476. }else{
  477. last();
  478. }
  479. }
  480. function last(){
  481. if(fileindex>0) {fileindex=fileindex-1;}
  482. loadimg();
  483. //drawimage();
  484. breadFiles();
  485. showfilelist();
  486. }
  487. // function showfilelist(){
  488. // var htmlstr="";
  489. // for (var i=0;i<labeltastresult.length;i++){
  490. // var fname = labeltastresult[i].pic_image_field.substring(labeltastresult[i].pic_image_field.lastIndexOf('/') + 1);
  491. // var lablebg=" style=\"cursor:pointer\"";
  492. // if (i==fileindex){lablebg=" style=\"background:#eee;color:#5a5a5a;cursor:pointer;\"";}
  493. // htmlstr = htmlstr+"<tr onclick=\"clickfilelist("+i+");\""+ lablebg+"><td>"+ fname+ "</td></tr>";
  494. // };
  495. // document.getElementById("filelist").innerHTML=htmlstr;
  496. // }
  497. function showfilelist(){
  498. // var filename_title = $('a.section:first').text()
  499. // filename_title = filename_title.substring(0,filename_title.lastIndexOf('.'))
  500. var filename_index = labeltastresult[0].pic_image_field.indexOf("/",70);
  501. filename_title = labeltastresult[0].pic_image_field.substring(filename_index + 1);
  502. filename_title = filename_title.substring(0,filename_title.indexOf('/'))
  503. var htmlstr = '';
  504. // htmlstr += '<div class="ui list">';
  505. htmlstr += '<div class="item" style="padding:1.2em;border-bottom:0;display: table;width: 100%;">'
  506. htmlstr += '<i class="caret down icon"></i>'
  507. htmlstr += '<div class="content" style="background:#fff">'
  508. htmlstr += '<div class="header" style="color: rgba(0,0,0,.8);font-size: 12px;font-weight: 600;">'+filename_title+'</div>'
  509. htmlstr += '<div class="list" style="padding:1.2em">'
  510. for (var i=0;i<labeltastresult.length;i++){
  511. var fname = labeltastresult[i].pic_image_field.substring(labeltastresult[i].pic_image_field.lastIndexOf('/') + 1);
  512. //console.log(labeltastresult[i])
  513. if(labeltastresult[i].pic_image_field.length > 70){
  514. var tmpIndex = labeltastresult[i].pic_image_field.indexOf("/",70);
  515. //console.log(tmpIndex)
  516. if(tmpIndex != -1){
  517. fname = labeltastresult[i].pic_image_field.substring(tmpIndex + 1);
  518. fname = fname.substring(fname.indexOf('/')+1);
  519. }
  520. }
  521. htmlstr += '<div class="item" onclick=\"clickfilelist('+i+');\" style="border-bottom:0;padding-bottom:0.9em;cursor:pointer">'
  522. htmlstr += '<div class="content" style="background:#fff;padding:0;">'
  523. if(i==fileindex){
  524. htmlstr += '<div class="header" style="color: rgba(0,0,0,.8);font-size: 12px;font-weight: 100;color:#0366d6;overflow: hidden;text-overflow:ellipsis;">'+fname+'</div>'
  525. }
  526. else{
  527. htmlstr += '<div class="header" style="color: rgba(0,0,0,.8);font-size: 12px;font-weight: 100;overflow: hidden;text-overflow:ellipsis;">'+fname+'</div>'
  528. }
  529. htmlstr += '</div>'
  530. htmlstr += '</div>'
  531. };
  532. htmlstr += '</div>'
  533. htmlstr += '</div>'
  534. htmlstr += '</div>'
  535. document.getElementById("filelist").innerHTML=htmlstr;
  536. }
  537. function breadFiles(){
  538. // for (var i=0;i<labeltastresult.length;i++){
  539. // var fname_full_path=""
  540. // if(labeltastresult[i].pic_image_field.length > 70){
  541. // var tmp_index = labeltastresult[i].pic_image_field.indexOf("/",70);
  542. // if(tmp_index != -1){
  543. // fname_full_path = labeltastresult[i].pic_image_field.substring(tmp_index + 1);
  544. // }
  545. // var fname_path = fname_full_path.split('/')
  546. // html_breadFile += '<div class="section">'+fname_full_path+'.zip'+'</div>'
  547. // for(var i=1;i<fname_path.length;i++){
  548. // html_breadFile += '<div class="divider" style="opacity:0.8"> / </div>'
  549. // html_breadFile += '<div class="section">'+fname_path[i]+'</div>'
  550. // }
  551. // }
  552. // else{
  553. // }
  554. // }
  555. var fname_full_path=""
  556. var filename_title = $('a.section:first').text()
  557. filename_title = filename_title.substring(0,filename_title.lastIndexOf('.'))
  558. var tmp_index = tableData[fileindex].pic_image_field.indexOf("/",70);
  559. if(tmp_index != -1){
  560. fname_full_path = tableData[fileindex].pic_image_field.substring(tmp_index + 1);
  561. }
  562. var fname_path = fname_full_path.split('/')
  563. //console.log(fname_path)
  564. // var filename_text = tableData[fileindex].pic_image_field.substring(tableData[fileindex].pic_image_field.lastIndexOf('/')+1)
  565. var html_breadFile = ''
  566. // var source_name = filename_title+'.zip'
  567. // html_breadFile += '<div class="section">'+source_name+'</div>'
  568. // html_breadFile += '<div class="divider" style="opacity:0.8"> / </div>'
  569. html_breadFile += '<div class="section">'+filename_title+'</div>'
  570. html_breadFile += '<div class="divider" style="opacity:0.8"> / </div>'
  571. for (var i=0;i<fname_path.length;i++){
  572. html_breadFile += '<div class="section">'+fname_path[i]+'</div>'
  573. html_breadFile += '<div class="divider" style="opacity:0.8"> / </div>'
  574. }
  575. document.getElementById("breadFile").innerHTML=html_breadFile
  576. }
  577. function showlabelflist(){
  578. if(!isEmpty(labelInfo)){
  579. var resLabelInfo = JSON.parse(labelInfo)
  580. var textInfo = resLabelInfo["type"]
  581. var html_labelFile = ''
  582. for (var i=0;i<textInfo.length;i++){
  583. html_labelFile += `<span style="display:block;width:70%;margin:0.6em 15%;padding-left:1.5em;padding-top:0.4em;padding-bottom:0.4em;font-size:12px;" class="labelInfo">${textInfo[i]}</span>`
  584. }
  585. document.getElementById("labellist").innerHTML=html_labelFile
  586. setColor()
  587. }
  588. else{
  589. return
  590. }
  591. }
  592. function setColor(){
  593. colorinfo1 = ['rgba(0, 199, 255, 0.4)','rgba(114, 46, 209, 0.4)','rgba(188, 100, 164, 0.4)','rgba(153, 204, 0, 0.4)','rgba(51, 204, 153, 0.4)','rgba(255, 204, 51, 0.4)',
  594. 'rgba(71, 255, 71, 0.4)','rgba(255, 154, 71, 0.4)','rgba(71, 126, 255, 0.4)','rgba(71, 255, 255, 0.4)','rgba(255, 247, 71, 0.4)','rgba(196, 127, 255, 0.4)','rgba(233, 84, 100, 0.4)',
  595. 'rgba(255, 71, 204, 0.4)',' rgba(43, 199, 160, 0.4)']
  596. colorinfo2 = ['#00C7FF','#722ED1','#BC64A4','#99CC00','#33CC99','#FFCC33','#47FF47','#FF9A47','#477EFF','#47FFFF','#FFF747','#C47FFF','#E95464','#FF47CC','#2BC7A0']
  597. var el_span = document.querySelectorAll("span.labelInfo")
  598. for (var i=0;i<el_span.length;i++){
  599. // var colorinfo = ~~(Math.random()*(1<<24))
  600. // var colorinfo1 = '#'+(colorinfo).toString(16)
  601. // var colorinfo2 = '#'+(colorinfo+100).toString(16)
  602. el_span[i].style.backgroundColor = colorinfo1[i]
  603. el_span[i].style.borderLeft = '5px solid'+ colorinfo2[i]
  604. }
  605. }
  606. function getLabelInfo(uuid){
  607. $.ajax({
  608. type:"GET",
  609. url:ip + "/getlabelinfo",
  610. headers: {
  611. authorization:token,
  612. },
  613. dataType:"text",
  614. data:{
  615. 'uuid':uuid
  616. },
  617. async:false,
  618. success:function(json){
  619. labelInfo = json;
  620. },
  621. error:function(response) {
  622. }
  623. });
  624. }