Authored by mlge

增加展示

  1 +package com.example.demo;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Data;
  5 +import lombok.NoArgsConstructor;
  6 +
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * Created by meiling.ge on 2018/7/4.
  11 + */
  12 +@Data
  13 +@AllArgsConstructor
  14 +@NoArgsConstructor
  15 +public class ImageAndSimilarResp {
  16 + private String sourceImage;
  17 + private List<String> similarImages;
  18 +}
@@ -20,6 +20,9 @@ import java.util.ArrayList; @@ -20,6 +20,9 @@ import java.util.ArrayList;
20 @RequestMapping(path = "/show") 20 @RequestMapping(path = "/show")
21 public class ShowCtrl { 21 public class ShowCtrl {
22 22
  23 +// private static final String DEFAULT_DIR = "E:\\图片\\demo.txt";
  24 + private static final String DEFAULT_DIR = "/home/jack/makesample/zhurui/shoes/ali_similar.info";
  25 +
23 @Autowired 26 @Autowired
24 ShowSer showSer; 27 ShowSer showSer;
25 28
@@ -184,5 +187,45 @@ public class ShowCtrl { @@ -184,5 +187,45 @@ public class ShowCtrl {
184 187
185 } 188 }
186 189
  190 + //跳转至样本展示页面--样本 和 前 50个展示
  191 + @GetMapping(path = "/toSamples")
  192 + public ModelAndView toSamples() {
  193 + return new ModelAndView("showSampleAndSimilar");
  194 + }
  195 +
  196 + /**
  197 + * 获取样本table 分页数据
  198 + * @param req
  199 + * @param sampleDir
  200 + * @return
  201 + */
  202 + @RequestMapping ("/loadImagesFromFile")
  203 + @ResponseBody
  204 + public PageListResp<ImageAndSimilarResp> loadImagesFromFile(PageTableReq req,String sampleDir ) {
  205 + int count = 0;
  206 + PageListResp.Builder pageListResp = PageListResp.newBuilder().iTotalDisplayRecords(count).iTotalRecords(count);
  207 + if(StringUtils.isEmpty( sampleDir )){
  208 + sampleDir = DEFAULT_DIR;
  209 + }
  210 + File file = new File(sampleDir);
  211 + if(!file.exists()){
  212 + return null;
  213 + }
  214 + count = showSer.countFileLines(file);//总行数
  215 +
  216 +
  217 + if( count > 0){//当前行的数据
  218 + pageListResp.iTotalDisplayRecords(count).iTotalRecords(count);
  219 + pageListResp.aaData(showSer.getImagesPyPage(file, req.getIDisplayStart(), req.getIDisplayLength()));
  220 + }else{
  221 + pageListResp.aaData(new ArrayList());
  222 + }
  223 +
  224 +
  225 + return pageListResp.build();
  226 + }
  227 +
  228 +
  229 +
187 230
188 } 231 }
@@ -421,4 +421,80 @@ public class ShowSer { @@ -421,4 +421,80 @@ public class ShowSer {
421 // return photoName.substring(2);//头部不显示 421 // return photoName.substring(2);//头部不显示
422 return photoName; 422 return photoName;
423 } 423 }
  424 +
  425 + //统计文件的行
  426 + public int countFileLines(File file) {
  427 + int count = 0;
  428 + LineIterator lineIterator = null;
  429 + try {
  430 + lineIterator = FileUtils.lineIterator(file, "UTF-8");
  431 + while (lineIterator.hasNext()) {
  432 + lineIterator.next();
  433 + count ++;
  434 + }
  435 + } catch (IOException e) {
  436 + e.printStackTrace();
  437 + }
  438 +
  439 + return count;
  440 +
  441 + }
  442 +
  443 + /**
  444 + *
  445 + * @param file
  446 + * @param iDisplayStart --起始行
  447 + * @param iDisplayLength --总行数(默认值是1)
  448 + * @return
  449 + */
  450 + public List<ImageAndSimilarResp> getImagesPyPage(File file, Integer iDisplayStart, Integer iDisplayLength) {
  451 + List<ImageAndSimilarResp> result = new ArrayList<>();
  452 + try {
  453 + int currentLine = 0;//当前行
  454 + int readTotal = 0;//已经读取的行数
  455 + boolean readFlag = false;
  456 + LineIterator lineIterator = FileUtils.lineIterator(file, "UTF-8");
  457 + while(lineIterator.hasNext()){
  458 + String content = lineIterator.next();
  459 + if(iDisplayStart == currentLine){//需要解析的起始行
  460 + readFlag = true;
  461 + }
  462 +
  463 + if(readFlag){
  464 + ImageAndSimilarResp obj = analyzeLineContent(content);
  465 + result.add(obj);
  466 + readTotal++;//已经读取的行数
  467 + }
  468 +
  469 + if(readTotal == iDisplayLength){
  470 + break;
  471 + }
  472 + currentLine++;
  473 + }
  474 + } catch (IOException e) {
  475 + e.printStackTrace();
  476 + }
  477 + return result;
  478 + }
  479 +
  480 +
  481 + private ImageAndSimilarResp analyzeLineContent(String content) {
  482 + ImageAndSimilarResp obj = new ImageAndSimilarResp();
  483 +// 测试的
  484 +// String[] s = StringUtils.split(content, "-");
  485 + String[] s = StringUtils.split(content, ":");
  486 + if(s.length == 2){//正确解析的情况
  487 + obj.setSourceImage(s[0]);
  488 + String[] similars = StringUtils.split(s[1],",");
  489 + if(similars.length > 50){//前50
  490 + String[] subStr = Arrays.copyOfRange(similars, 0 , 50);
  491 + obj.setSimilarImages(Arrays.asList(subStr));
  492 + }else{
  493 + obj.setSimilarImages( Arrays.asList(similars));
  494 + }
  495 +
  496 + }
  497 + return obj;
  498 +
  499 + }
424 } 500 }
@@ -130,6 +130,13 @@ @@ -130,6 +130,13 @@
130 130
131 <li> 131 <li>
132 132
  133 + <a href="toSamples">
  134 +
  135 + 展示 </a>
  136 +
  137 + </li>
  138 + <li>
  139 +
133 <a href="index"> 140 <a href="index">
134 141
135 相似图片展示 </a> 142 相似图片展示 </a>
  1 +<!DOCTYPE html>
  2 +
  3 +<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
  4 +
  5 +<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
  6 +
  7 +<!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->
  8 +
  9 +<!-- BEGIN HEAD -->
  10 +
  11 +<head>
  12 +
  13 + <meta charset="utf-8" />
  14 +
  15 + <title>Metronic | Layouts - Promo Page</title>
  16 +
  17 + <meta content="width=device-width, initial-scale=1.0" name="viewport" />
  18 +
  19 + <meta content="" name="description" />
  20 +
  21 + <meta content="" name="author" />
  22 +
  23 + <!-- BEGIN GLOBAL MANDATORY STYLES -->
  24 +
  25 + <link href="/media/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
  26 +
  27 + <link href="/media/css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css"/>
  28 +
  29 + <link href="/media/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
  30 +
  31 + <link href="/media/css/style-metro.css" rel="stylesheet" type="text/css"/>
  32 +
  33 + <link href="/media/css/style.css" rel="stylesheet" type="text/css"/>
  34 +
  35 + <link href="/media/css/style-responsive.css" rel="stylesheet" type="text/css"/>
  36 +
  37 + <link href="/media/css/default.css" rel="stylesheet" type="text/css" id="style_color"/>
  38 +
  39 + <link href="/media/css/uniform.default.css" rel="stylesheet" type="text/css"/>
  40 +
  41 + <!-- END GLOBAL MANDATORY STYLES -->
  42 +
  43 + <link href="/media/css/promo.css" rel="stylesheet" type="text/css"/>
  44 +
  45 + <link href="/media/css/animate.css" rel="stylesheet" type="text/css"/>
  46 + <link href="/media/css/jquery.dataTables_themeroller.css" rel="stylesheet" type="text/css" media="screen"/>
  47 + <link href="/media/css/jquery.dataTables.css" rel="stylesheet" type="text/css" media="screen"/>
  48 +
  49 + <link rel="shortcut icon" href="/media/image/favicon.ico" />
  50 +
  51 +</head>
  52 +
  53 +<!-- END HEAD -->
  54 +
  55 +<!-- BEGIN BODY -->
  56 +
  57 +<body class="page-header-fixed page-full-width">
  58 +
  59 +<!-- BEGIN HEADER -->
  60 +
  61 +<div class="header navbar navbar-inverse navbar-fixed-top">
  62 +
  63 + <!-- BEGIN TOP NAVIGATION BAR -->
  64 +
  65 + <div class="navbar-inner">
  66 +
  67 + <div class="container">
  68 +
  69 + <!-- BEGIN LOGO -->
  70 +
  71 + <a class="brand" href="index.html">
  72 +
  73 + <img src="/media/image/logo.png" alt="logo" />
  74 +
  75 + </a>
  76 +
  77 + <!-- END LOGO -->
  78 +
  79 + <!-- BEGIN HORIZANTAL MENU -->
  80 +
  81 + <div class="navbar hor-menu hidden-phone hidden-tablet">
  82 +
  83 + <div class="navbar-inner">
  84 +
  85 + <ul class="nav">
  86 +
  87 + <li class="visible-phone visible-tablet">
  88 +
  89 + <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->
  90 +
  91 + <form class="sidebar-search">
  92 +
  93 + <div class="input-box">
  94 +
  95 + <a href="javascript:;" class="remove"></a>
  96 +
  97 + <input type="text" placeholder="Search..." />
  98 +
  99 + <input type="button" class="submit" value=" " />
  100 +
  101 + </div>
  102 +
  103 + </form>
  104 +
  105 + <!-- END RESPONSIVE QUICK SEARCH FORM -->
  106 +
  107 + </li>
  108 +
  109 + <li>
  110 +
  111 + <a href="index.html">
  112 +
  113 + Dashboard
  114 +
  115 + </a>
  116 +
  117 + </li>
  118 +
  119 + <li class="active">
  120 +
  121 + <a data-toggle="dropdown" class="dropdown-toggle" href="javascript:;">
  122 +
  123 + <span class="selected"></span>
  124 +
  125 + Layouts
  126 +
  127 + <span class="arrow"></span>
  128 +
  129 + </a>
  130 +
  131 + <ul class="dropdown-menu">
  132 +
  133 + <li >
  134 +
  135 + <a href="index">
  136 +
  137 + 相似图片展示 </a>
  138 +
  139 + </li>
  140 +
  141 + <li class="active" >
  142 +
  143 + <a href="toSampleShow" >
  144 +
  145 + 样本展示 </a>
  146 +
  147 + </li>
  148 +
  149 + <li >
  150 +
  151 + <a href="loadSingleImage">
  152 +
  153 + 单张图片展示 </a>
  154 +
  155 + </li>
  156 +
  157 +
  158 +
  159 + </ul>
  160 +
  161 + <b class="caret-out"></b>
  162 +
  163 + </li>
  164 +
  165 + <li>
  166 +
  167 + <a href="">Tables</a>
  168 +
  169 + </li>
  170 +
  171 + <li>
  172 +
  173 + <a data-toggle="dropdown" class="dropdown-toggle" href="">Extra
  174 +
  175 + <span class="arrow"></span>
  176 +
  177 + </a>
  178 +
  179 + <ul class="dropdown-menu">
  180 +
  181 + <li><a href="index.html">About Us</a></li>
  182 +
  183 + <li><a href="index.html">Services</a></li>
  184 +
  185 + <li><a href="index.html">Pricing</a></li>
  186 +
  187 + <li><a href="index.html">FAQs</a></li>
  188 +
  189 + <li><a href="index.html">Gallery</a></li>
  190 +
  191 + <li><a href="index.html">Registration</a></li>
  192 +
  193 + <li><a href="index.html">2 Columns (Left)</a></li>
  194 +
  195 + <li><a href="index.html">2 Columns (Right)</a></li>
  196 +
  197 + </ul>
  198 +
  199 + <b class="caret-out"></b>
  200 +
  201 + </li>
  202 +
  203 + <li>
  204 +
  205 + <span class="hor-menu-search-form-toggler">&nbsp;</span>
  206 +
  207 + <div class="search-form hidden-phone hidden-tablet">
  208 +
  209 + <form class="form-search">
  210 +
  211 + <div class="input-append">
  212 +
  213 + <input type="text" placeholder="Search..." class="m-wrap">
  214 +
  215 + <button type="button" class="btn"></button>
  216 +
  217 + </div>
  218 +
  219 + </form>
  220 +
  221 + </div>
  222 +
  223 + </li>
  224 +
  225 + </ul>
  226 +
  227 + </div>
  228 +
  229 + </div>
  230 +
  231 + <!-- END HORIZANTAL MENU -->
  232 +
  233 + <!-- BEGIN RESPONSIVE MENU TOGGLER -->
  234 +
  235 + <a href="javascript:;" class="btn-navbar collapsed" data-toggle="collapse" data-target=".nav-collapse">
  236 +
  237 + <img src="/media/image/menu-toggler.png" alt="" />
  238 +
  239 + </a>
  240 +
  241 + <!-- END RESPONSIVE MENU TOGGLER -->
  242 +
  243 + <!-- BEGIN TOP NAVIGATION MENU -->
  244 +
  245 + <ul class="nav pull-right">
  246 +
  247 + <!-- BEGIN NOTIFICATION DROPDOWN -->
  248 +
  249 + <li class="dropdown" id="header_notification_bar">
  250 +
  251 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  252 +
  253 + <i class="icon-warning-sign"></i>
  254 +
  255 + <span class="badge">6</span>
  256 +
  257 + </a>
  258 +
  259 + <ul class="dropdown-menu extended notification">
  260 +
  261 + <li>
  262 +
  263 + <p>You have 14 new notifications</p>
  264 +
  265 + </li>
  266 +
  267 + <li>
  268 +
  269 + <a href="#">
  270 +
  271 + <span class="label label-success"><i class="icon-plus"></i></span>
  272 +
  273 + New user registered.
  274 +
  275 + <span class="time">Just now</span>
  276 +
  277 + </a>
  278 +
  279 + </li>
  280 +
  281 + <li>
  282 +
  283 + <a href="#">
  284 +
  285 + <span class="label label-important"><i class="icon-bolt"></i></span>
  286 +
  287 + Server #12 overloaded.
  288 +
  289 + <span class="time">15 mins</span>
  290 +
  291 + </a>
  292 +
  293 + </li>
  294 +
  295 + <li>
  296 +
  297 + <a href="#">
  298 +
  299 + <span class="label label-warning"><i class="icon-bell"></i></span>
  300 +
  301 + Server #2 not respoding.
  302 +
  303 + <span class="time">22 mins</span>
  304 +
  305 + </a>
  306 +
  307 + </li>
  308 +
  309 + <li>
  310 +
  311 + <a href="#">
  312 +
  313 + <span class="label label-info"><i class="icon-bullhorn"></i></span>
  314 +
  315 + Application error.
  316 +
  317 + <span class="time">40 mins</span>
  318 +
  319 + </a>
  320 +
  321 + </li>
  322 +
  323 + <li>
  324 +
  325 + <a href="#">
  326 +
  327 + <span class="label label-important"><i class="icon-bolt"></i></span>
  328 +
  329 + Database overloaded 68%.
  330 +
  331 + <span class="time">2 hrs</span>
  332 +
  333 + </a>
  334 +
  335 + </li>
  336 +
  337 + <li>
  338 +
  339 + <a href="#">
  340 +
  341 + <span class="label label-important"><i class="icon-bolt"></i></span>
  342 +
  343 + 2 user IP blocked.
  344 +
  345 + <span class="time">5 hrs</span>
  346 +
  347 + </a>
  348 +
  349 + </li>
  350 +
  351 + <li class="external">
  352 +
  353 + <a href="#">See all notifications <i class="m-icon-swapright"></i></a>
  354 +
  355 + </li>
  356 +
  357 + </ul>
  358 +
  359 + </li>
  360 +
  361 + <!-- END NOTIFICATION DROPDOWN -->
  362 +
  363 + <!-- BEGIN INBOX DROPDOWN -->
  364 +
  365 + <li class="dropdown" id="header_inbox_bar">
  366 +
  367 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  368 +
  369 + <i class="icon-envelope"></i>
  370 +
  371 + <span class="badge">5</span>
  372 +
  373 + </a>
  374 +
  375 + <ul class="dropdown-menu extended inbox">
  376 +
  377 + <li>
  378 +
  379 + <p>You have 12 new messages</p>
  380 +
  381 + </li>
  382 +
  383 + <li>
  384 +
  385 + <a href="inbox.html?a=view">
  386 +
  387 + <span class="photo"><img src="/media/image/avatar2.jpg" alt="" /></span>
  388 +
  389 + <span class="subject">
  390 +
  391 + <span class="from">Lisa Wong</span>
  392 +
  393 + <span class="time">Just Now</span>
  394 +
  395 + </span>
  396 +
  397 + <span class="message">
  398 +
  399 + Vivamus sed auctor nibh congue nibh. auctor nibh
  400 +
  401 + auctor nibh...
  402 +
  403 + </span>
  404 +
  405 + </a>
  406 +
  407 + </li>
  408 +
  409 + <li>
  410 +
  411 + <a href="inbox.html?a=view">
  412 +
  413 + <span class="photo"><img src="/media/image/avatar3.jpg" alt="" /></span>
  414 +
  415 + <span class="subject">
  416 +
  417 + <span class="from">Richard Doe</span>
  418 +
  419 + <span class="time">16 mins</span>
  420 +
  421 + </span>
  422 +
  423 + <span class="message">
  424 +
  425 + Vivamus sed congue nibh auctor nibh congue nibh. auctor nibh
  426 +
  427 + auctor nibh...
  428 +
  429 + </span>
  430 +
  431 + </a>
  432 +
  433 + </li>
  434 +
  435 + <li>
  436 +
  437 + <a href="inbox.html?a=view">
  438 +
  439 + <span class="photo"><img src="/media/image/avatar1.jpg" alt="" /></span>
  440 +
  441 + <span class="subject">
  442 +
  443 + <span class="from">Bob Nilson</span>
  444 +
  445 + <span class="time">2 hrs</span>
  446 +
  447 + </span>
  448 +
  449 + <span class="message">
  450 +
  451 + Vivamus sed nibh auctor nibh congue nibh. auctor nibh
  452 +
  453 + auctor nibh...
  454 +
  455 + </span>
  456 +
  457 + </a>
  458 +
  459 + </li>
  460 +
  461 + <li class="external">
  462 +
  463 + <a href="inbox.html">See all messages <i class="m-icon-swapright"></i></a>
  464 +
  465 + </li>
  466 +
  467 + </ul>
  468 +
  469 + </li>
  470 +
  471 + <!-- END INBOX DROPDOWN -->
  472 +
  473 + <!-- BEGIN TODO DROPDOWN -->
  474 +
  475 + <li class="dropdown" id="header_task_bar">
  476 +
  477 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  478 +
  479 + <i class="icon-tasks"></i>
  480 +
  481 + <span class="badge">5</span>
  482 +
  483 + </a>
  484 +
  485 + <ul class="dropdown-menu extended tasks">
  486 +
  487 + <li>
  488 +
  489 + <p>You have 12 pending tasks</p>
  490 +
  491 + </li>
  492 +
  493 + <li>
  494 +
  495 + <a href="#">
  496 +
  497 + <span class="task">
  498 +
  499 + <span class="desc">New release v1.2</span>
  500 +
  501 + <span class="percent">30%</span>
  502 +
  503 + </span>
  504 +
  505 + <span class="progress progress-success ">
  506 +
  507 + <span style="width: 30%;" class="bar"></span>
  508 +
  509 + </span>
  510 +
  511 + </a>
  512 +
  513 + </li>
  514 +
  515 + <li>
  516 +
  517 + <a href="#">
  518 +
  519 + <span class="task">
  520 +
  521 + <span class="desc">Application deployment</span>
  522 +
  523 + <span class="percent">65%</span>
  524 +
  525 + </span>
  526 +
  527 + <span class="progress progress-danger progress-striped active">
  528 +
  529 + <span style="width: 65%;" class="bar"></span>
  530 +
  531 + </span>
  532 +
  533 + </a>
  534 +
  535 + </li>
  536 +
  537 + <li>
  538 +
  539 + <a href="#">
  540 +
  541 + <span class="task">
  542 +
  543 + <span class="desc">Mobile app release</span>
  544 +
  545 + <span class="percent">98%</span>
  546 +
  547 + </span>
  548 +
  549 + <span class="progress progress-success">
  550 +
  551 + <span style="width: 98%;" class="bar"></span>
  552 +
  553 + </span>
  554 +
  555 + </a>
  556 +
  557 + </li>
  558 +
  559 + <li>
  560 +
  561 + <a href="#">
  562 +
  563 + <span class="task">
  564 +
  565 + <span class="desc">Database migration</span>
  566 +
  567 + <span class="percent">10%</span>
  568 +
  569 + </span>
  570 +
  571 + <span class="progress progress-warning progress-striped">
  572 +
  573 + <span style="width: 10%;" class="bar"></span>
  574 +
  575 + </span>
  576 +
  577 + </a>
  578 +
  579 + </li>
  580 +
  581 + <li>
  582 +
  583 + <a href="#">
  584 +
  585 + <span class="task">
  586 +
  587 + <span class="desc">Web server upgrade</span>
  588 +
  589 + <span class="percent">58%</span>
  590 +
  591 + </span>
  592 +
  593 + <span class="progress progress-info">
  594 +
  595 + <span style="width: 58%;" class="bar"></span>
  596 +
  597 + </span>
  598 +
  599 + </a>
  600 +
  601 + </li>
  602 +
  603 + <li>
  604 +
  605 + <a href="#">
  606 +
  607 + <span class="task">
  608 +
  609 + <span class="desc">Mobile development</span>
  610 +
  611 + <span class="percent">85%</span>
  612 +
  613 + </span>
  614 +
  615 + <span class="progress progress-success">
  616 +
  617 + <span style="width: 85%;" class="bar"></span>
  618 +
  619 + </span>
  620 +
  621 + </a>
  622 +
  623 + </li>
  624 +
  625 + <li class="external">
  626 +
  627 + <a href="#">See all tasks <i class="m-icon-swapright"></i></a>
  628 +
  629 + </li>
  630 +
  631 + </ul>
  632 +
  633 + </li>
  634 +
  635 + <!-- END TODO DROPDOWN -->
  636 +
  637 + <!-- BEGIN USER LOGIN DROPDOWN -->
  638 +
  639 + <li class="dropdown user">
  640 +
  641 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">
  642 +
  643 + <img alt="" src="/media/image/avatar1_small.jpg" />
  644 +
  645 + <span class="username">Bob Nilson</span>
  646 +
  647 + <i class="icon-angle-down"></i>
  648 +
  649 + </a>
  650 +
  651 + <ul class="dropdown-menu">
  652 +
  653 + <li><a href="extra_profile.html"><i class="icon-user"></i> My Profile</a></li>
  654 +
  655 + <li><a href="page_calendar.html"><i class="icon-calendar"></i> My Calendar</a></li>
  656 +
  657 + <li><a href="inbox.html"><i class="icon-envelope"></i> My Inbox(3)</a></li>
  658 +
  659 + <li><a href="#"><i class="icon-tasks"></i> My Tasks</a></li>
  660 +
  661 + <li class="divider"></li>
  662 +
  663 + <li><a href="extra_lock.html"><i class="icon-lock"></i> Lock Screen</a></li>
  664 +
  665 + <li><a href="login.html"><i class="icon-key"></i> Log Out</a></li>
  666 +
  667 + </ul>
  668 +
  669 + </li>
  670 +
  671 + <!-- END USER LOGIN DROPDOWN -->
  672 +
  673 + </ul>
  674 +
  675 + <!-- END TOP NAVIGATION MENU -->
  676 +
  677 + </div>
  678 +
  679 + </div>
  680 +
  681 + <!-- END TOP NAVIGATION BAR -->
  682 +
  683 +</div>
  684 +
  685 +<!-- END HEADER -->
  686 +
  687 +<!-- BEGIN CONTAINER -->
  688 +
  689 +<div class="page-container row-fluid">
  690 +
  691 + <!-- BEGIN EMPTY PAGE SIDEBAR -->
  692 +
  693 + <div class="page-sidebar nav-collapse collapse visible-phone visible-tablet">
  694 +
  695 + <ul class="page-sidebar-menu">
  696 +
  697 + <li class="visible-phone visible-tablet">
  698 +
  699 + <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->
  700 +
  701 + <form class="sidebar-search">
  702 +
  703 + <div class="input-box">
  704 +
  705 + <a href="javascript:;" class="remove"></a>
  706 +
  707 + <input type="text" placeholder="Search..." />
  708 +
  709 + <input type="button" class="submit" value=" " />
  710 +
  711 + </div>
  712 +
  713 + </form>
  714 +
  715 + <!-- END RESPONSIVE QUICK SEARCH FORM -->
  716 +
  717 + </li>
  718 +
  719 + <li>
  720 +
  721 + <a class="active" href="index.html">
  722 +
  723 + Dashboard
  724 +
  725 + </a>
  726 +
  727 + </li>
  728 +
  729 + <li class="active">
  730 +
  731 + <a href="javascript:;">
  732 +
  733 + Layouts
  734 +
  735 + <span class="arrow open"></span>
  736 +
  737 + <span class="selected"></span>
  738 +
  739 + </a>
  740 +
  741 + <ul class="sub-menu">
  742 +
  743 + <li>
  744 +
  745 +
  746 + </li>
  747 +
  748 + <li >
  749 +
  750 +
  751 +
  752 + </li>
  753 +
  754 + <li >
  755 +
  756 +
  757 +
  758 + </li>
  759 +
  760 + <li >
  761 +
  762 + <a href="layout_promo.html">
  763 +
  764 + Promo Page
  765 +
  766 + </a>
  767 +
  768 + </li>
  769 +
  770 + <li >
  771 +
  772 + <a href="layout_email.html">
  773 +
  774 + Email Templates </a>
  775 +
  776 + </li>
  777 +
  778 + <li >
  779 +
  780 + <a href="layout_ajax.html">
  781 +
  782 + Content Loading via Ajax</a>
  783 +
  784 + </li>
  785 +
  786 + <li >
  787 +
  788 + <a href="layout_sidebar_closed.html">
  789 +
  790 + Sidebar Closed Page </a>
  791 +
  792 + </li>
  793 +
  794 + <li >
  795 +
  796 + <a href="layout_blank_page.html">
  797 +
  798 + Blank Page </a>
  799 +
  800 + </li>
  801 +
  802 + <li >
  803 +
  804 + <a href="layout_boxed_page.html">Boxed Page</a>
  805 +
  806 + </li>
  807 +
  808 + <li >
  809 +
  810 + <a href="layout_boxed_not_responsive.html">
  811 +
  812 + Non-Responsive Boxed Layout </a>
  813 +
  814 + </li>
  815 +
  816 + <li >
  817 +
  818 + <a href="layout_blank_page.html">
  819 +
  820 + Blank Page </a>
  821 +
  822 + </li>
  823 +
  824 + <li>
  825 +
  826 + <a href="javascript:;">
  827 +
  828 + More options
  829 +
  830 + <span class="arrow"></span>
  831 +
  832 + </a>
  833 +
  834 + <ul class="sub-menu">
  835 +
  836 + <li><a href="#">Second level link</a></li>
  837 +
  838 + <li>
  839 +
  840 + <a href="javascript:;">More options<span class="arrow"></span></a>
  841 +
  842 + <ul class="sub-menu">
  843 +
  844 + <li><a href="index.html">Third level link</a></li>
  845 +
  846 + <li><a href="index.html">Third level link</a></li>
  847 +
  848 + <li><a href="index.html">Third level link</a></li>
  849 +
  850 + <li><a href="index.html">Third level link</a></li>
  851 +
  852 + <li><a href="index.html">Third level link</a></li>
  853 +
  854 + </ul>
  855 +
  856 + </li>
  857 +
  858 + <li><a href="index.html">Second level link</a></li>
  859 +
  860 + <li><a href="index.html">Second level link</a></li>
  861 +
  862 + <li><a href="index.html">Second level link</a></li>
  863 +
  864 + </ul>
  865 +
  866 + </li>
  867 +
  868 + </ul>
  869 +
  870 + </li>
  871 +
  872 + <li>
  873 +
  874 + <a href="">Tables</a>
  875 +
  876 + </li>
  877 +
  878 + <li>
  879 +
  880 + <a href="">Extra
  881 +
  882 + <span class="arrow"></span>
  883 +
  884 + </a>
  885 +
  886 + <ul class="sub-menu">
  887 +
  888 + <li><a href="index.html">About Us</a></li>
  889 +
  890 + <li><a href="index.html">Services</a></li>
  891 +
  892 + <li><a href="index.html">Pricing</a></li>
  893 +
  894 + <li><a href="index.html">FAQs</a></li>
  895 +
  896 + <li><a href="index.html">Gallery</a></li>
  897 +
  898 + <li><a href="index.html">Registration</a></li>
  899 +
  900 + <li><a href="index.html">2 Columns (Left)</a></li>
  901 +
  902 + <li><a href="index.html">2 Columns (Right)</a></li>
  903 +
  904 + </ul>
  905 +
  906 + </li>
  907 +
  908 + </ul>
  909 +
  910 + </div>
  911 +
  912 + <!-- END EMPTY PAGE SIDEBAR -->
  913 +
  914 + <!-- BEGIN PAGE -->
  915 +
  916 + <div class="page-content no-min-height">
  917 +
  918 + <!-- BEGIN SAMPLE PORTLET CONFIGURATION MODAL FORM-->
  919 +
  920 + <div id="portlet-config" class="modal hide">
  921 +
  922 + <div class="modal-header">
  923 +
  924 + <button data-dismiss="modal" class="close" type="button"></button>
  925 +
  926 + <h3>portlet Settings</h3>
  927 +
  928 + </div>
  929 +
  930 + <div class="modal-body">
  931 +
  932 + <p>Here will be a configuration form</p>
  933 +
  934 + </div>
  935 +
  936 + </div>
  937 +
  938 + <!-- END SAMPLE PORTLET CONFIGURATION MODAL FORM-->
  939 +
  940 + <!-- BEGIN PAGE CONTAINER-->
  941 + <div class="container-fluid promo-page">
  942 + <div class="row-fluid">
  943 + <div class="span12" style=" margin-top: 30px;margin-bottom: 20px;margin-left: 20px;">
  944 + <div class="form-inline" style="min-height: 40px;" >
  945 + <div class="form-group">
  946 + <input id="sampleDir" name="sampleDir" type="text" placeholder="sample目录名称" class="span2"/>
  947 + <button id="sampleLoad" type="button" class="btn blue" onclick="sampleLoad()">sampleLoad</button>
  948 + </div>
  949 +
  950 +
  951 + </div>
  952 + </div>
  953 + </div>
  954 + <div class="row-fluid" >
  955 + <div class="span12" >
  956 +
  957 + <table id = "sampleTable" class="table table-striped table-bordered table-hover" >
  958 +
  959 + </table>
  960 +
  961 +
  962 + </div>
  963 + </div>
  964 +
  965 + <#-- <div class="row-fluid">
  966 + <div class="span12" >
  967 + <button onclick='chooseAll()'type="button" class="btn blue" style="float:right;width: 500px">标识当前页</button>
  968 + </div>
  969 + </div>-->
  970 +
  971 +
  972 + <!-- BEGIN PAGE CONTENT-->
  973 +
  974 +
  975 + </div>
  976 +
  977 + <!-- END PAGE CONTENT-->
  978 +
  979 + </div>
  980 +
  981 + <!-- END PAGE CONTAINER-->
  982 +
  983 + </div>
  984 +
  985 +
  986 + <script src="/media/js/jquery-1.10.1.min.js" type="text/javascript"></script>
  987 + <script src="/media/js/jquery-migrate-1.2.1.min.js" type="text/javascript"></script>
  988 + <script src="/media/js/jquery-ui-1.10.1.custom.min.js" type="text/javascript"></script>
  989 + <script src="/media/js/bootstrap.min.js" type="text/javascript"></script>
  990 + <script src="/media/js/jquery.slimscroll.min.js" type="text/javascript"></script>
  991 + <script src="/media/js/jquery.blockui.min.js" type="text/javascript"></script>
  992 + <script src="/media/js/jquery.cookie.min.js" type="text/javascript"></script>
  993 + <script src="/media/js/jquery.uniform.min.js" type="text/javascript" ></script>
  994 + <script src="/media/js/app.js"></script>
  995 + <script src="/media/js/jquery.dataTables.js"></script>
  996 +
  997 + <script>
  998 +
  999 + jQuery(document).ready(function() {
  1000 +
  1001 + App.init();
  1002 +
  1003 + jQuery('#promo_carousel').carousel({
  1004 +
  1005 + interval: 10000,
  1006 +
  1007 + pause: 'hover'
  1008 +
  1009 + });
  1010 +
  1011 +
  1012 + initSampleTable();//初始化表格,默认值
  1013 +
  1014 + });
  1015 +
  1016 + var sampleDir = "";
  1017 + var sampleTable;
  1018 + function sampleLoad(){
  1019 + sampleDir = $("#sampleDir").val();
  1020 + initSampleTable();
  1021 + }
  1022 +
  1023 + function initSampleTable () {
  1024 + sampleTable = $("#sampleTable").dataTable({
  1025 + iDisplayLength: 1,
  1026 + bProcessing: true,
  1027 + bServerSide: true,
  1028 + bSort: false,
  1029 + bFilter: false,
  1030 + bAutoWidth: false,
  1031 + bDestroy: true,
  1032 + sPaginationType: "full_numbers",
  1033 + oLanguage: {
  1034 + sUrl: "/media/js/cn.txt"
  1035 + },
  1036 + sDom: "tr<'row-fluid'<'span6'i><'span6'p>>",
  1037 + sAjaxSource: encodeURI("/show/loadImagesFromFile?sampleDir="+sampleDir),
  1038 + sServerMethod: "POST",
  1039 + aoColumnDefs: [
  1040 + { sWidth: "100%", aTargets: [0] ,},
  1041 + /* { sWidth: "30%", aTargets: [1] },
  1042 + { sWidth: "30%", aTargets: [2] },
  1043 + { sWidth: "10%", aTargets: [3] }*/
  1044 + ],
  1045 + aoColumns: [
  1046 + {sTitle: "原文件", mData: function(mData){
  1047 +
  1048 + var sourceUrl = encodeURI("/show/readAli?file="+mData.sourceImage);
  1049 + var sourceLine = " <div class='row'><img src='" +sourceUrl + "' ></div>";
  1050 + var similars = mData.similarImages;
  1051 + var similarLine = "";
  1052 + for(var i = 0; i< similars.length; i++){
  1053 + if(i > 0 && i %10 == 0){
  1054 + similarLine += "</br>";//换行
  1055 + }
  1056 + var similarUrl = encodeURI("/show/readAli?file="+similars[i]);
  1057 + similarLine +=" <span style='width: 10%'><img src='"+similarUrl+"' ></span>";
  1058 + }
  1059 + var result_div = "<div style='text-align: center'>" + sourceLine + "</br><hr>" + similarLine;
  1060 + return result_div;
  1061 +
  1062 +
  1063 + }}
  1064 +
  1065 + ],
  1066 + /* fnServerParams: function (aoData) {
  1067 + console.log();
  1068 + aoData.iDisplayStart
  1069 +// aoData = $.merge(aoData, that.getQueryParams());
  1070 + },*/
  1071 +
  1072 + /* fnDrawCallback: function(table) {
  1073 +// /!* $(".dataTables_paginate paging_full_numbers").append("跳转");
  1074 + //首次加载的时候才需要加入如下代码:
  1075 + var jump_element =document.getElementById("jumpPageIndex");
  1076 + if (typeof(jump_element)== "undefined" || jump_element == null){
  1077 + var pageFoot = $("div[class='dataTables_paginate paging_full_numbers']");
  1078 + var appendHtml = "跳转至:"+'<input id="jumpPageIndex" style="width:40px">'+"页";
  1079 + pageFoot.append(appendHtml);
  1080 + $("#jumpPageIndex").keydown(function(event) {
  1081 + if (event.which == "13") {
  1082 + var jumpPageIndex = $("#jumpPageIndex").val();
  1083 + //跳转 table
  1084 + var i = parseInt(jumpPageIndex);
  1085 + sampleTable.fnPageChange(i - 1, true);
  1086 + }
  1087 + });
  1088 + }else{
  1089 + console.log("不加载");
  1090 + }
  1091 + }*/
  1092 +
  1093 +
  1094 + });
  1095 +
  1096 + }
  1097 +
  1098 +
  1099 +
  1100 +
  1101 +
  1102 +
  1103 +
  1104 +
  1105 +
  1106 + </script>
  1107 +
  1108 +
  1109 +</body>
  1110 +
  1111 +<!-- END BODY -->
  1112 +
  1113 +</html>
@@ -129,6 +129,13 @@ @@ -129,6 +129,13 @@
129 </a> 129 </a>
130 130
131 <ul class="dropdown-menu"> 131 <ul class="dropdown-menu">
  132 + <li>
  133 +
  134 + <a href="toSamples">
  135 +
  136 + 展示 </a>
  137 +
  138 + </li>
132 139
133 <li > 140 <li >
134 141