From 0a9b6e565843bd25e5ef37e979c7da9bbf3df218 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 22 四月 2022 17:06:43 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 java110-generator/src/main/java/com/java110/code/DealHtml.java |  382 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 382 insertions(+), 0 deletions(-)

diff --git a/java110-generator/src/main/java/com/java110/code/DealHtml.java b/java110-generator/src/main/java/com/java110/code/DealHtml.java
index 36310bf..19df703 100644
--- a/java110-generator/src/main/java/com/java110/code/DealHtml.java
+++ b/java110-generator/src/main/java/com/java110/code/DealHtml.java
@@ -1,5 +1,16 @@
 package com.java110.code;
 
+import com.alibaba.fastjson.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.FilterWriter;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 /**
  * @ClassName DealHtml
  * @Description TODO
@@ -9,4 +20,375 @@
  * add by wuxw 2022/4/20
  **/
 public class DealHtml {
+
+    public static void main(String[] args) throws Exception {
+        File file = new File("C:\\Users\\Administrator\\Documents\\project\\hc\\MicroCommunityWeb\\public\\components");
+        JSONObject js = new JSONObject();
+        listFiles(file, js);
+        System.out.println("js = " + js.toJSONString());
+    }
+
+//    public static void main(String[] args) throws Exception {
+//       String js = "<div id=\"addContractModel\" class=\"modal fade\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLabel\"\n" +
+//               "  aria-hidden=\"true\">\n" +
+//               "  <div class=\"modal-dialog modal-lg\">\n" +
+//               "    <div class=\"modal-content\">\n" +
+//               "      <div class=\"modal-body\">\n" +
+//               "        <h3 class=\"m-t-none m-b \">娣诲姞鍚堝悓</h3>\n" +
+//               "        <div class=\"ibox-content\">\n" +
+//               "          <div>\n" +addPrivilege
+//               "            <div>\n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鍚堝悓鍚嶇О</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.contractName\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓鍚堝悓鍚嶇О\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鍚堝悓缂栧彿</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.contractCode\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓鍚堝悓缂栧彿\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鍚堝悓绫诲瀷</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <select class=\"custom-select\" v-model=\"addContractInfo.contractType\"\n" +
+//               "                        @change=\"_changeContractType()\">\n" +
+//               "                        <option selected disabled value=\"\">蹇呭~锛岃閫夋嫨鍚堝悓绫诲瀷</option>\n" +
+//               "                        <option v-for=\"(item,index) in addContractInfo.contractTypes\" :key=\"index\"\n" +
+//               "                          :value=\"item.contractTypeId\">{{item.typeName}}</option>\n" +
+//               "                      </select>\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鐢叉柟</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.partyA\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓鐢叉柟\" class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鐢叉柟鑱旂郴浜�</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.aContacts\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓鐢叉柟鑱旂郴浜篭"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鐢叉柟鑱旂郴鐢佃瘽</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.aLink\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓鐢叉柟鑱旂郴鐢佃瘽\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">涔欐柟</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.partyB\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓涔欐柟\" class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">涔欐柟鑱旂郴浜�</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.bContacts\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓涔欐柟鑱旂郴浜篭"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">涔欐柟鑱旂郴鐢佃瘽</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.bLink\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓涔欐柟鑱旂郴鐢佃瘽\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">缁忓姙浜�</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.operator\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓缁忓姙浜篭"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鑱旂郴鐢佃瘽</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.operatorLink\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓鑱旂郴鐢佃瘽\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">鍚堝悓閲戦</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.amount\" type=\"text\" placeholder=\"閫夊~锛岃濉啓鍚堝悓閲戦\" class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">寮�濮嬫椂闂�</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.startTime\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓寮�濮嬫椂闂碶"\n" +
+//               "                        class=\"form-control addStartTime\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">缁撴潫鏃堕棿</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.endTime\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓缁撴潫鏃堕棿\"\n" +
+//               "                        class=\"form-control addEndTime\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">绛捐鏃堕棿</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.signingTime\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓绛捐鏃堕棿\"\n" +
+//               "                        class=\"form-control addSigningTime\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">妤兼爧</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.allNum\" type=\"text\" placeholder=\"閫夊~锛岃濉啓 妤兼爧缂栫爜\" class=\"form-control\" @blur=\"_queryRoom\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">涓氫富</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.ownerName\" disabled=\"disabled\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓涓氫富\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "                <div class=\"col-sm-4\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">涓氫富鐢佃瘽</label>\n" +
+//               "                    <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                      <input v-model=\"addContractInfo.link\" disabled=\"disabled\" type=\"text\" placeholder=\"蹇呭~锛岃濉啓涓氫富鐢佃瘽\"\n" +
+//               "                        class=\"form-control\">\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "              <div v-for=\"(item,index) in addContractInfo.contractTypeSpecs\">\n" +
+//               "                <div class=\"row\" v-if=\"index % 3 == 0\">\n" +
+//               "                  <div class=\"col-sm-4\">\n" +
+//               "                    <div class=\"form-group row\">\n" +
+//               "                      <label class=\"col-sm-3 col-form-label padding-lr-sm text-right\">{{item.specName}}</label>\n" +
+//               "                      <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                        <input v-model=\"item.value\" type=\"text\" :placeholder=\"item.specHoldplace\" class=\"form-control\">\n" +
+//               "                      </div>\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                  <div class=\"col-sm-4\" v-if=\"index < addContractInfo.contractTypeSpecs.length-1\">\n" +
+//               "                    <div class=\"form-group row\">\n" +
+//               "                      <label\n" +
+//               "                        class=\"col-sm-3 col-form-label padding-lr-sm text-right\">{{addContractInfo.contractTypeSpecs[index+1].specName}}</label>\n" +
+//               "                      <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                        <input v-model=\"addContractInfo.contractTypeSpecs[index+1].value\" type=\"text\"\n" +
+//               "                          :placeholder=\"addContractInfo.contractTypeSpecs[index+1].specHoldplace\" class=\"form-control\">\n" +
+//               "                      </div>\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                  <div class=\"col-sm-4\" v-if=\"index < addContractInfo.contractTypeSpecs.length-2\">\n" +
+//               "                    <div class=\"form-group row\">\n" +
+//               "                      <label\n" +
+//               "                        class=\"col-sm-3 col-form-label padding-lr-sm text-right\">{{addContractInfo.contractTypeSpecs[index+2].specName}}</label>\n" +
+//               "                      <div class=\"col-sm-9 padding-lr-xs\">\n" +
+//               "                        <input v-model=\"addContractInfo.contractTypeSpecs[index+2].value\" type=\"text\"\n" +
+//               "                          :placeholder=\"addContractInfo.contractTypeSpecs[index+2].specHoldplace\" class=\"form-control\">\n" +
+//               "                      </div>\n" +
+//               "                    </div>\n" +
+//               "                  </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "  \n" +
+//               "              <div class=\"row\">\n" +
+//               "                <div class=\"col-sm-10\">\n" +
+//               "                  <div class=\"form-group row\">\n" +
+//               "                    <label class=\"col-sm-2 col-form-label\">鍚堝悓闄勪欢</label>\n" +
+//               "                    <div class=\"col-sm-10\">\n" +
+//               "                        <div class=\"row \" style=\"margin-left: 0px;\">\n" +
+//               "                            <button type=\"button\" class=\"btn btn-primary\" @click=\"addFileStep()\">娣诲姞闄勪欢</button>\n" +
+//               "                        </div>\n" +
+//               "                        <div v-for=\"(item,index) in addContractInfo.contractFilePo\">\n" +
+//               "                            <div class=\"row margin-0 margin-top\">\n" +
+//               "                                <div  class=\"col-sm-1 text-center\">\n" +
+//               "                                    <label class=\"col-form-label\">绗瑊{index+1}}涓�</label>\n" +
+//               "                                </div>\n" +
+//               "                                <input type=\"file\"\n" +
+//               "                                class=\"custom-file-input form-control\" name=\"excelTemplate\" style=\"width: 11%;opacity: 1;\"\n" +
+//               "                                v-on:change=\"getFile($event,index)\" accept=\".png,.pdf,.jpg\">\n" +
+//               "                                <label  class=\"col-sm-5 col-form-label padding-lr-sm text-right\">{{item.fileRealName}}</label>\n" +
+//               "                                <div>\n" +
+//               "                                    <button type=\"button\" class=\"btn btn-link\" @click=\"deleteStep(item)\">鍒犻櫎闄勪欢</button>\n" +
+//               "                                </div>\n" +
+//               "                              \n" +
+//               "                            </div>\n" +
+//               "                           \n" +
+//               "                        </div>\n" +
+//               "                    </div>\n" +
+//               "                </div>\n" +
+//               "                </div>\n" +
+//               "              </div>\n" +
+//               "\n" +
+//               "              <div class=\"ibox-content\">\n" +
+//               "                <button class=\"btn btn-primary float-right\" type=\"button\" v-on:click=\"saveContractInfo()\"><i\n" +
+//               "                    class=\"fa fa-check\"></i>&nbsp;淇濆瓨</button>\n" +
+//               "                <button type=\"button\" class=\"btn btn-warning float-right\" style=\"margin-right:20px;\"\n" +
+//               "                  data-dismiss=\"modal\">鍙栨秷</button>\n" +
+//               "              </div>\n" +
+//               "            </div>\n" +
+//               "          </div>\n" +
+//               "        </div>\n" +
+//               "      </div>\n" +
+//               "    </div>\n" +
+//               "  </div>\n" +
+//               "</div>";
+//        Pattern p = Pattern.compile("=\"([\u4e00-\u9fa5]|锛寍,| )+");
+//
+//        Matcher m = p.matcher(js);
+//
+//        while (m.find()) {
+//            String chinese = m.group();//鍖归厤鍑虹殑涓枃
+//            chinese = chinese.replace("=\"", "");
+//            System.out.println(chinese);
+//        }
+//    }
+
+    public static void listFiles(File file, JSONObject js) throws Exception {
+        if (file.isFile()) {
+            if (file.getName().endsWith(".html")) {
+                doDealHtml(file, js);
+
+            }
+            return;
+        }
+
+        File[] files = file.listFiles();
+
+        for (File tmpFile : files) {
+            listFiles(tmpFile, js);
+        }
+    }
+
+    private static void doDealHtml(File tmpFile, JSONObject js) throws Exception {
+
+        String fileName = tmpFile.getName().replace(".html", "");
+        System.out.println("fileName=" + fileName + ",dir=" + tmpFile.getPath());
+        BufferedReader in = new BufferedReader(new FileReader(tmpFile));
+        String str;
+        String context = "";
+        JSONObject fileNameObj = new JSONObject();
+        while ((str = in.readLine()) != null) {
+            context += (doDealHtmlNode(str, fileName, fileNameObj) + "\n");
+            //doDealHtmlNode(str,fileName);
+        }
+        js.put(fileName, fileNameObj);
+        System.out.println(context);
+        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(tmpFile));
+        bufferedWriter.write(context);
+        bufferedWriter.close();
+
+
+    }
+
+    private static String doDealHtmlNode(String str, String fileName, JSONObject fileNameObj) {
+//        Pattern p = Pattern.compile("=\"([\u4e00-\u9fa5]|锛�)+");
+//
+//        Matcher m = p.matcher(str);
+        Pattern p = Pattern.compile("=\"([\u4e00-\u9fa5]|锛寍,| )+");
+
+        Matcher m = p.matcher(str);
+
+        while (m.find()) {
+            String chinese = m.group();//鍖归厤鍑虹殑涓枃
+            chinese = chinese.replace("=\"", "");
+            fileNameObj.put(chinese, chinese);
+            //m.appendReplacement(buf, "><vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+            str = str.replace(chinese, "vc.i18n('" + chinese + "','" + fileName + "')");
+            str = str.replace("placeholder", ":placeholder");
+        }
+
+        p = Pattern.compile(">[\u4e00-\u9fa5]+");
+
+        m = p.matcher(str);
+
+        while (m.find()) {
+            String chinese = m.group();//鍖归厤鍑虹殑涓枃
+            chinese = chinese.replace(">", "");
+            fileNameObj.put(chinese, chinese);
+            //m.appendReplacement(buf, "><vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+            str = str.replace(chinese, "<vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+        }
+
+        p = Pattern.compile("}}[\u4e00-\u9fa5]+");
+
+        m = p.matcher(str);
+
+        while (m.find()) {
+            String chinese = m.group();//鍖归厤鍑虹殑涓枃
+            chinese = chinese.replace("}}", "");
+            fileNameObj.put(chinese, chinese);
+            //m.appendReplacement(buf, "><vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+            str = str.replace(chinese, "<vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+        }
+
+        p = Pattern.compile("> [\u4e00-\u9fa5]+");
+
+        m = p.matcher(str);
+
+        while (m.find()) {
+            String chinese = m.group();//鍖归厤鍑虹殑涓枃
+            chinese = chinese.replace("> ", "");
+            fileNameObj.put(chinese, chinese);
+            //m.appendReplacement(buf, "><vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+            str = str.replace(chinese, "<vc:i18n name=\"" + chinese + "\" namespace=\"" + fileName + "\"></vc:i18n>");
+        }
+
+
+        return str;
+    }
 }

--
Gitblit v1.8.0