李书文 2 rokov pred
rodič
commit
eb8692b69b

+ 37 - 9
src/main/java/com/lsw/controller/IndexController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.jfinal.aop.Before;
 import com.jfinal.core.Controller;
 import com.jfinal.kit.JsonKit;
+import com.jfinal.kit.Kv;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
@@ -20,15 +21,23 @@ public class IndexController extends Controller {
 
     public void index() {
         long start = System.currentTimeMillis();
-        String table = getPara("table", "TLK_YJCS");
+        String table = getPara("table", "TLK_MYJCS");
         String ITEM_VALUE = getPara("ITEM_VALUE");
         String bh = getPara("bh", "102");
+        String type = getPara("type", "form");
         String user = getPara("user", "基栋");
         set("look", getPara("look"));
         List<Record> all = new ArrayList<>();
         StringBuilder sb = new StringBuilder();
+        Record v = Db.findFirst("SELECT ITEM_VERSION,ITEM_BH,ITEM_NAME FROM TLK_MYJCS WHERE ITEM_XL_NUM=? and ITEM_UPBH IS  NULL ORDER BY ITEM_VERSION DESC", bh);
         sb.append("SELECT ID,ITEM_BH,ITEM_PX,ITEM_NAME,ITEM_UPBH,ITEM_TYPE FROM " + table);
-        sb.append(" WHERE ITEM_KEY=?");
+        if (type.equals("form")) {
+            sb.append(" WHERE ITEM_KEY=?");
+        }
+        if (type.equals("json")) {
+            sb.append(" WHERE ITEM_XL_NUM=?");
+            sb.append(" AND ITEM_VERSION=?");
+        }
         sb.append(" AND ITEM_UPBH IS NOT NULL");
         if (StrKit.notBlank(ITEM_VALUE)) {
             sb.append(" AND ITEM_VALUE=?");
@@ -36,9 +45,14 @@ public class IndexController extends Controller {
             all = Db.find(sb.toString(), bh, ITEM_VALUE);
         } else {
             sb.append(" ORDER BY TO_NUMBER(ITEM_PX) ASC");
-            all = Db.find(sb.toString(), bh);
+            if (type.equals("json")) {
+                all = Db.find(sb.toString(), bh, v.getStr("ITEM_VERSION"));
+            } else {
+                all = Db.find(sb.toString(), bh);
+            }
+
         }
-        List<Record> list = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(bh)).collect(Collectors.toList());
+        List<Record> list = all.stream().filter(r -> r.getStr("ITEM_UPBH").equals(type.equals("form") ? bh : v.getStr("ITEM_BH"))).collect(Collectors.toList());
         for (Record record : list) {
             int rowspan = 0; //总的合并行
             record.set("type", 0);
@@ -82,12 +96,26 @@ public class IndexController extends Controller {
             }
             record.set("rowspan", rowspan);
         }
-        setAttr("list", list);
-        setAttr("table", table);
-        setAttr("user", user);
         long end = System.currentTimeMillis();
-        setAttr("time", mul((end - start), (float) 0.001) + "s");
-        render("index.html");
+        if (type.equals("form")) {
+            setAttr("list", list);
+            setAttr("table", table);
+            setAttr("user", user);
+            setAttr("time", mul((end - start), (float) 0.001) + "s");
+            render("index.html");
+        } else {
+            Record record = new Record();
+            record.set("code", 200);
+            record.set("msg", "请求成功");
+            record.set("time", mul((end - start), (float) 0.001) + "s");
+            Record child = new Record();
+            child.set("ITEM_NAME", v.getStr("ITEM_NAME"));
+            child.set("ITEM_XL_NUM", bh);
+            child.set("ITEM_VERSION", v.getStr("ITEM_VERSION"));
+            child.set("data", list);
+            record.set("data", child);
+            renderJson(record);
+        }
     }
 
     public void edit() {

+ 49 - 72
src/main/webapp/WEB-INF/view/index.html

@@ -60,6 +60,7 @@
         <div class="bar">
            <div style="float: left;">
                <button onclick="window.history.go(-1)">返回上级</button>
+               <button @click="dy()">打印</button>
                <span>时间: #(day)</span>
            </div>
             <el-date-picker
@@ -71,7 +72,7 @@
             </el-date-picker>
             <span class="edit">点击表格内容可编辑</span>
         </div>
-        <table border="1">
+        <table border="1" id="paper">
             <tbody>
             <tr>
                 <td colspan="7" style="font-weight: bold">样机</td>
@@ -93,11 +94,8 @@
                         <span class="sy" title="上移" @click="move('#(a.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(a.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(a.ITEM_NAME)</div>
-                    #else
-                    <input value="#(a.ITEM_NAME)" name="#(a.ITEM_NAME)" id="#(a.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(a.ITEM_NAME)</div>
+                    <input v-else value="#(a.ITEM_NAME)" name="#(a.ITEM_NAME)" id="#(a.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(a.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -108,30 +106,21 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(b.ITEM_NAME)</div>
-                    #else
-                    <input value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(b.ITEM_NAME)</div>
+                    <input v-else value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(b.ID)')">&#xe6df;</span>
                 </td>
                 <td colspan="2">
                     #if(b.child.size()>0)
-                    #if(look)
-                    <div class="lk">#(b.child[0].ITEM_NAME)</div>
-                    #else
-                    <input value="#(b.child[0].ITEM_NAME)" name="#(b.child[0].ITEM_NAME)" id="#(b.child[0].ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(b.child[0].ITEM_NAME)</div>
+                    <input v-else value="#(b.child[0].ITEM_NAME)" name="#(b.child[0].ITEM_NAME)" id="#(b.child[0].ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(b.child[0].ID)')">&#xe6df;</span>
                     #end
                 </td>
                 <td>
                     #if(b.child.size()>1)
-                    #if(look)
-                    <div class="lk">#(b.child[1].ITEM_NAME)</div>
-                    #else
-                    <input value="#(b.child[1].ITEM_NAME)" name="#(b.child[1].ITEM_NAME)" id="#(b.child[1].ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(b.child[1].ITEM_NAME)</div>
+                    <input v-else value="#(b.child[1].ITEM_NAME)" name="#(b.child[1].ITEM_NAME)" id="#(b.child[1].ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(b.child[1].ID)')">&#xe6df;</span>
                     #end
                 </td>
@@ -148,11 +137,8 @@
                         <span class="sy" title="上移" @click="move('#(a.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(a.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(a.ITEM_NAME)</div>
-                    #else
-                    <input value="#(a.ITEM_NAME)" name="#(a.ITEM_NAME)" id="#(a.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(a.ITEM_NAME)</div>
+                    <input v-else value="#(a.ITEM_NAME)" name="#(a.ITEM_NAME)" id="#(a.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(a.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -167,11 +153,8 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(b.ITEM_NAME)</div>
-                    #else
-                    <input value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(b.ITEM_NAME)</div>
+                    <input v-else value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(b.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -182,11 +165,8 @@
                         <span class="sy" title="上移" @click="move('#(c.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(c.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(c.ITEM_NAME)</div>
-                    #else
-                    <input value="#(c.ITEM_NAME)" name="#(c.ITEM_NAME)" id="#(c.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look"  class="lk">#(c.ITEM_NAME)</div>
+                    <input v-else value="#(c.ITEM_NAME)" name="#(c.ITEM_NAME)" id="#(c.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(c.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -197,30 +177,21 @@
                         <span class="sy" title="上移" @click="move('#(d.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(d.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(d.ITEM_NAME)</div>
-                    #else
-                    <input value="#(d.ITEM_NAME)" name="#(d.ITEM_NAME)" id="#(d.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(d.ITEM_NAME)</div>
+                    <input v-else value="#(d.ITEM_NAME)" name="#(d.ITEM_NAME)" id="#(d.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(d.ID)')">&#xe6df;</span>
                 </td>
                 <td colspan="1">
                     #if(d.child.size()>0)
-                    #if(look)
-                    <div class="lk">#(d.child[0].ITEM_NAME)</div>
-                    #else
-                    <input value="#(d.child[0].ITEM_NAME)" name="#(d.child[0].ITEM_NAME)" id="#(d.child[0].ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(d.child[0].ITEM_NAME)</div>
+                    <input v-else value="#(d.child[0].ITEM_NAME)" name="#(d.child[0].ITEM_NAME)" id="#(d.child[0].ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(d.child[0].ID)')">&#xe6df;</span>
                     #end
                 </td>
                 <td>
                     #if(d.child.size()>1)
-                    #if(look)
-                    <div class="lk">#(d.child[1].ITEM_NAME)</div>
-                    #else
-                    <input value="#(d.child[1].ITEM_NAME)" name="#(d.child[1].ITEM_NAME)" id="#(d.child[1].ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(d.child[1].ITEM_NAME)</div>
+                    <input v-else value="#(d.child[1].ITEM_NAME)" name="#(d.child[1].ITEM_NAME)" id="#(d.child[1].ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(d.child[1].ID)')">&#xe6df;</span>
                     #end
                 </td>
@@ -235,11 +206,8 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(b.ITEM_NAME)</div>
-                    #else
-                    <input value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(b.ITEM_NAME)</div>
+                    <input v-else value="#(b.ITEM_NAME)" name="#(b.ITEM_NAME)" id="#(b.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(b.ID)')">&#xe6df;</span>
                 </td>
             </tr>
@@ -250,30 +218,21 @@
                         <span class="sy" title="上移" @click="move('#(b.ID)','add')">&#xe637;</span>
                         <span class="xy" title="下移" @click="move('#(b.ID)','down')">&#xe636;</span>
                     </div>
-                    #if(look)
-                    <div class="lk">#(c.ITEM_NAME)</div>
-                    #else
-                    <input value="#(c.ITEM_NAME)" name="#(c.ITEM_NAME)" id="#(c.ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(c.ITEM_NAME)</div>
+                    <input v-else value="#(c.ITEM_NAME)" name="#(c.ITEM_NAME)" id="#(c.ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(c.ID)')">&#xe6df;</span>
                 </td>
                 <td colspan="2">
                     #if(c.child.size()>0)
-                    #if(look)
-                    <div class="lk">#(c.child[0].ITEM_NAME)</div>
-                    #else
-                    <input value="#(c.child[0].ITEM_NAME)" name="#(c.child[0].ITEM_NAME)" id="#(c.child[0].ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(c.child[0].ITEM_NAME)</div>
+                    <input v-else value="#(c.child[0].ITEM_NAME)" name="#(c.child[0].ITEM_NAME)" id="#(c.child[0].ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(c.child[0].ID)')">&#xe6df;</span>
                     #end
                 </td>
                 <td>
                     #if(c.child.size()>1)
-                    #if(look)
-                    <div class="lk">#(c.child[1].ITEM_NAME)</div>
-                    #else
-                    <input value="#(c.child[1].ITEM_NAME)" name="#(c.child[1].ITEM_NAME)" id="#(c.child[1].ID)" @blur="blur($event)">
-                    #end
+                    <div v-if="look" class="lk">#(c.child[1].ITEM_NAME)</div>
+                    <input v-else value="#(c.child[1].ITEM_NAME)" name="#(c.child[1].ITEM_NAME)" id="#(c.child[1].ID)" @blur="blur($event)">
                     <span class="jly" title="修改记录" @click="record('#(c.child[1].ID)')">&#xe6df;</span>
                     #end
                 </td>
@@ -308,11 +267,12 @@
 <script src="#(path)/static/js/vue.js"></script>
 <script src="#(path)/static/js/common.js"></script>
 <script src="#(path)/static/js/element-ui.js"></script>
-
+<script src="#(path)/static/js/Print.js"></script>
 <script>
     let vm = new Vue({
         el: "#app",
         data: {
+            look:false,
             day:'',
             drawer: false,
             log_list:[]
@@ -323,6 +283,9 @@
                 $('.bar').css("display", "none");
                 $('.jly').css("display", "none");
                 $('.yd').css("display", "none");
+                this.look=true;
+            }else{
+                this.look=false;
             }
         },
         methods: {
@@ -362,6 +325,20 @@
                     window.location.reload();
                     cancelLoding();
                 })
+            },
+            dy(){
+                $('.sy').hide();
+                $('.xy').hide();
+                $('.jly').hide();
+                $('input').attr('type','disabled');
+                this.look=true;
+                setTimeout(()=>{
+                    Print('#paper');
+                    $('.sy').show();
+                    $('.xy').show();
+                    $('.jly').show();
+                    vm.look=false;
+                },2000);
             }
         }
     })

+ 124 - 0
src/main/webapp/static/js/Print.js

@@ -0,0 +1,124 @@
+/* @Print.js
+ * DH (http://denghao.me)
+ * 2017-7-14
+ */
+(function (window, document) {
+  var Print = function (dom, options) {
+    if (!(this instanceof Print)) return new Print(dom, options);
+
+    this.options = this.extend({
+      noPrint: '.no-print',
+      onStart: function () { },
+      onEnd: function () { }
+    }, options);
+
+    if ((typeof dom) === "string") {
+      this.dom = document.querySelector(dom);
+    } else {
+      this.dom = dom;
+    }
+
+    this.init();
+  };
+  Print.prototype = {
+    init: function () {
+      var content = this.getStyle() + this.getHtml();
+      this.writeIframe(content);
+    },
+    extend: function (obj, obj2) {
+      for (var k in obj2) {
+        obj[k] = obj2[k];
+      }
+      return obj;
+    },
+
+    getStyle: function () {
+      var str = "",
+        styles = document.querySelectorAll('style,link');
+      for (var i = 0; i < styles.length; i++) {
+        str += styles[i].outerHTML;
+      }
+      str += "<style>" + (this.options.noPrint ? this.options.noPrint : '.no-print') + "{display:none;}</style>";
+
+      return str;
+    },
+
+    getHtml: function () {
+      var inputs = document.querySelectorAll('input');
+      var textareas = document.querySelectorAll('textarea');
+      var selects = document.querySelectorAll('select');
+
+      for (var k in inputs) {
+        if (inputs[k].type == "checkbox" || inputs[k].type == "radio") {
+          if (inputs[k].checked == true) {
+            inputs[k].setAttribute('checked', "checked")
+          } else {
+            inputs[k].removeAttribute('checked')
+          }
+        } else if (inputs[k].type == "text") {
+          inputs[k].setAttribute('value', inputs[k].value)
+        }
+      }
+
+      for (var k2 in textareas) {
+        if (textareas[k2].type == 'textarea') {
+          textareas[k2].innerHTML = textareas[k2].value
+        }
+      }
+
+      for (var k3 in selects) {
+        if (selects[k3].type == 'select-one') {
+          var child = selects[k3].children;
+          for (var i in child) {
+            if (child[i].tagName == 'OPTION') {
+              if (child[i].selected == true) {
+                child[i].setAttribute('selected', "selected")
+              } else {
+                child[i].removeAttribute('selected')
+              }
+            }
+          }
+        }
+      }
+
+      return this.dom.outerHTML;
+    },
+
+    writeIframe: function (content) {
+      var w, doc, iframe = document.createElement('iframe'),
+        f = document.body.appendChild(iframe);
+      iframe.id = "myIframe";
+      iframe.style = "position:absolute;width:0;height:0;top:-10px;left:-10px;";
+
+      w = f.contentWindow || f.contentDocument;
+      doc = f.contentDocument || f.contentWindow.document;
+      doc.open();
+      doc.write(content);
+      doc.close();
+      this.toPrint(w, function () {
+        document.body.removeChild(iframe)
+      });
+    },
+
+    toPrint: function (w, cb) {
+      var _this = this;
+      w.onload = function () {
+        try {
+          setTimeout(function () {
+            w.focus();
+            typeof _this.options.onStart === 'function' && _this.options.onStart();
+            if (!w.document.execCommand('print', false, null)) {
+              w.print();
+            }
+            typeof _this.options.onEnd === 'function' && _this.options.onEnd();
+            w.close();
+            cb && cb()
+          });
+        } catch (err) {
+          console.log('err', err);
+        }
+      }
+    }
+  };
+  window.Print = Print;
+}(window, document));