Browse Source

富文本

suochencheng 7 years ago
parent
commit
2fa713d615
54 changed files with 1846 additions and 468 deletions
  1. 46 0
      src/main/java/com/izouma/awesomeadmin/dao/CompanyAuthenticationMapper.xml
  2. 24 1
      src/main/java/com/izouma/awesomeadmin/dao/PersonalAuthenticationMapper.xml
  3. 0 33
      src/main/java/com/izouma/awesomeadmin/dao/ProdcutCollectionMapper.java
  4. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/ProductCollectionMapper.java
  5. 17 17
      src/main/java/com/izouma/awesomeadmin/dao/ProductCollectionMapper.xml
  6. 46 0
      src/main/java/com/izouma/awesomeadmin/dao/StoreInfoMapper.xml
  7. 16 0
      src/main/java/com/izouma/awesomeadmin/model/CompanyAuthentication.java
  8. 8 0
      src/main/java/com/izouma/awesomeadmin/model/PersonalAuthentication.java
  9. 1 1
      src/main/java/com/izouma/awesomeadmin/model/ProductCollection.java
  10. 16 0
      src/main/java/com/izouma/awesomeadmin/model/StoreInfo.java
  11. 0 27
      src/main/java/com/izouma/awesomeadmin/service/ProdcutCollectionService.java
  12. 27 0
      src/main/java/com/izouma/awesomeadmin/service/ProductCollectionService.java
  13. 0 137
      src/main/java/com/izouma/awesomeadmin/service/impl/ProdcutCollectionServiceImpl.java
  14. 137 0
      src/main/java/com/izouma/awesomeadmin/service/impl/ProductCollectionServiceImpl.java
  15. 6 4
      src/main/java/com/izouma/awesomeadmin/web/CompanyAuthenticationController.java
  16. 5 4
      src/main/java/com/izouma/awesomeadmin/web/PersonalAuthenticationController.java
  17. 36 36
      src/main/java/com/izouma/awesomeadmin/web/ProductCollectionController.java
  18. 6 4
      src/main/java/com/izouma/awesomeadmin/web/StoreInfoController.java
  19. 1 1
      src/main/resources/properties/outsidews.properties
  20. 542 0
      src/main/vue/package-lock.json
  21. 1 0
      src/main/vue/package.json
  22. 92 0
      src/main/vue/src/components/RichText.vue
  23. 261 0
      src/main/vue/src/components/zh_CN.js
  24. 10 4
      src/main/vue/src/pages/CompanyAuthentication.vue
  25. 32 0
      src/main/vue/src/pages/CompanyAuthentications.vue
  26. 8 3
      src/main/vue/src/pages/CustomerService.vue
  27. 7 4
      src/main/vue/src/pages/PersonalAuthentication.vue
  28. 16 0
      src/main/vue/src/pages/PersonalAuthentications.vue
  29. 3 3
      src/main/vue/src/pages/ProductCollection.vue
  30. 5 5
      src/main/vue/src/pages/ProductCollections.vue
  31. 30 7
      src/main/vue/src/pages/ProductInfo.vue
  32. 81 75
      src/main/vue/src/pages/ShopAgreement.vue
  33. 58 17
      src/main/vue/src/pages/StoreInfo.vue
  34. 32 0
      src/main/vue/src/pages/StoreInfos.vue
  35. 78 79
      src/main/vue/src/pages/SystemConfig.vue
  36. 6 6
      src/main/vue/src/router/index.js
  37. 0 0
      src/main/vue/static/skins/lightgray/content.inline.min.css
  38. 0 0
      src/main/vue/static/skins/lightgray/content.min.css
  39. 1 0
      src/main/vue/static/skins/lightgray/content.mobile.min.css
  40. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce-mobile.woff
  41. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce-small.eot
  42. 27 0
      src/main/vue/static/skins/lightgray/fonts/tinymce-small.svg
  43. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce-small.ttf
  44. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce-small.woff
  45. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce.eot
  46. 131 0
      src/main/vue/static/skins/lightgray/fonts/tinymce.svg
  47. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce.ttf
  48. BIN
      src/main/vue/static/skins/lightgray/fonts/tinymce.woff
  49. BIN
      src/main/vue/static/skins/lightgray/img/anchor.gif
  50. BIN
      src/main/vue/static/skins/lightgray/img/loader.gif
  51. BIN
      src/main/vue/static/skins/lightgray/img/object.gif
  52. BIN
      src/main/vue/static/skins/lightgray/img/trans.gif
  53. 0 0
      src/main/vue/static/skins/lightgray/skin.min.css
  54. 0 0
      src/main/vue/static/skins/lightgray/skin.mobile.min.css

File diff suppressed because it is too large
+ 46 - 0
src/main/java/com/izouma/awesomeadmin/dao/CompanyAuthenticationMapper.xml


+ 24 - 1
src/main/java/com/izouma/awesomeadmin/dao/PersonalAuthenticationMapper.xml

@@ -15,6 +15,7 @@
                                 <result column="face_image" property="faceImage" jdbcType="VARCHAR" />
                                 <result column="back_image" property="backImage" jdbcType="VARCHAR" />
                                 <result column="status_flag" property="statusFlag" jdbcType="INTEGER" />
+                                <result column="telephone" property="telephone" jdbcType="VARCHAR" />
             </resultMap>
     <sql id="Base_Column_List" >
         <trim  suffixOverrides="," >
@@ -44,6 +45,8 @@
 
             status_flag,
 
+            telephone,
+
             </trim>
     </sql>
     <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
@@ -97,6 +100,9 @@
             </if>
                 <if test="statusFlag!= null" >
                 status_flag,
+            </if>
+                <if test="telephone!= null" >
+                telephone,
             </if>
             </trim>
         <trim prefix="values (" suffix=")" suffixOverrides="," >
@@ -138,6 +144,9 @@
             </if>
                     <if test="statusFlag != null" >
                 #{statusFlag,jdbcType=INTEGER},
+            </if>
+                    <if test="telephone != null" >
+                #{telephone,jdbcType=VARCHAR},
             </if>
                 </trim>
     </insert>
@@ -182,6 +191,9 @@
             </if>
                      <if test="statusFlag != null" >
                status_flag= #{statusFlag,jdbcType=INTEGER},
+            </if>
+                     <if test="telephone != null" >
+               telephone= #{telephone,jdbcType=VARCHAR},
             </if>
                  </set>
         where id = #{id,jdbcType=INTEGER}
@@ -228,6 +240,9 @@
             </if>
                      <if test="record.statusFlag != null and !&quot;&quot;.equals(record.statusFlag)">
                 and  status_flag = #{record.statusFlag}
+            </if>
+                     <if test="record.telephone != null and !&quot;&quot;.equals(record.telephone)">
+                and  telephone = #{record.telephone}
             </if>
                   <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
              <trim prefix="and (" suffix=")" prefixOverrides="OR" >
@@ -236,6 +251,7 @@
                                                                                                     OR  real_name LIKE concat('%',#{record.searchKey},'%')
                                                                                                     OR  idcard LIKE concat('%',#{record.searchKey},'%')
                                                                                                                                                                                                                                       OR  status_flag LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  telephone LIKE concat('%',#{record.searchKey},'%')
                                                              </trim>
          </if>
 
@@ -333,6 +349,9 @@
             </if>
                     <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
                 and  status_flag = #{statusFlag}
+            </if>
+                    <if test="telephone != null and !&quot;&quot;.equals(telephone)">
+                and  telephone = #{telephone}
             </if>
                     <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
                 <trim prefix="and (" suffix=")" prefixOverrides="OR" >
@@ -341,6 +360,7 @@
                                                                                                                                                         OR  real_name LIKE concat('%',#{searchKey},'%')
                                                                                                                                                         OR  idcard LIKE concat('%',#{searchKey},'%')
                                                                                                                                                                                                                                                                                                                                                         OR  status_flag LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  telephone LIKE concat('%',#{searchKey},'%')
                                                                                         </trim>
             </if>
 <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
@@ -437,6 +457,9 @@
             </if>
                      <if test="statusFlag != null and !&quot;&quot;.equals(statusFlag)">
                 and status_flag = #{statusFlag}
+            </if>
+                     <if test="telephone != null and !&quot;&quot;.equals(telephone)">
+                and telephone = #{telephone}
             </if>
          
         </where>
@@ -452,7 +475,7 @@
         select <include refid="Base_Column_List"/> from personal_authentication
         <where>
             and del_flag = 'N'
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </where>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </where>
         order by id desc
     </select>
 </mapper>

+ 0 - 33
src/main/java/com/izouma/awesomeadmin/dao/ProdcutCollectionMapper.java

@@ -1,33 +0,0 @@
-package com.izouma.awesomeadmin.dao;
-
-import java.util.*;
-import com.izouma.awesomeadmin.datasource.DataSource;
-import org.springframework.stereotype.Repository;
-import com.izouma.awesomeadmin.model.ProdcutCollection;
-
-
-/**
-*  Dao接口
-*/
-@Repository("com.zoumaframe.dao.ProdcutCollectionMapper")
-public interface ProdcutCollectionMapper{
-
-    int deleteByPrimaryKey(Integer id);
-
-    int insertSelective(ProdcutCollection record);
-
-    ProdcutCollection selectByPrimaryKey(Integer id);
-
-    int updateByPrimaryKeySelective(ProdcutCollection record);
-
-    List<ProdcutCollection> queryAllProdcutCollection(ProdcutCollection record);
-
-    List<ProdcutCollection> queryProdcutCollectionByPage(Map<String, Object> parameter);
-
-    int delete(String id);
-
-    ProdcutCollection queryProdcutCollection(ProdcutCollection record);
-
-    List<ProdcutCollection> query(ProdcutCollection record);
-}
-

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/ProductCollectionMapper.java

@@ -0,0 +1,33 @@
+package com.izouma.awesomeadmin.dao;
+
+import java.util.*;
+import com.izouma.awesomeadmin.datasource.DataSource;
+import org.springframework.stereotype.Repository;
+import com.izouma.awesomeadmin.model.ProductCollection;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.ProductCollectionMapper")
+public interface ProductCollectionMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(ProductCollection record);
+
+    ProductCollection selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(ProductCollection record);
+
+    List<ProductCollection> queryAllProductCollection(ProductCollection record);
+
+    List<ProductCollection> queryProductCollectionByPage(Map<String, Object> parameter);
+
+    int delete(String id);
+
+    ProductCollection queryProductCollection(ProductCollection record);
+
+    List<ProductCollection> query(ProductCollection record);
+}
+

+ 17 - 17
src/main/java/com/izouma/awesomeadmin/dao/ProdcutCollectionMapper.xml → src/main/java/com/izouma/awesomeadmin/dao/ProductCollectionMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.izouma.awesomeadmin.dao.ProdcutCollectionMapper" >
-    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.ProdcutCollection" >
+<mapper namespace="com.izouma.awesomeadmin.dao.ProductCollectionMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.ProductCollection" >
                 <id column="id" property="id" jdbcType="INTEGER" />
                                         <result column="del_flag" property="delFlag" jdbcType="CHAR" />
                                 <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
@@ -37,15 +37,15 @@
     <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
         select
         <include refid="Base_Column_List" />
-        from prodcut_collection
+        from product_collection
         where id = #{id,jdbcType=INTEGER}
     </select>
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
-        delete from prodcut_collection
+        delete from product_collection
         where id = #{id,jdbcType=INTEGER}
     </delete>
-    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.ProdcutCollection" useGeneratedKeys="true" keyProperty="id">
-        insert into prodcut_collection
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.ProductCollection" useGeneratedKeys="true" keyProperty="id">
+        insert into product_collection
         <trim prefix="(" suffix=")" suffixOverrides="," >
                 <if test="id!= null" >
                 id,
@@ -105,8 +105,8 @@
             </if>
                 </trim>
     </insert>
-    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.ProdcutCollection" >
-        update prodcut_collection
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.ProductCollection" >
+        update product_collection
         <set >
                     <if test="id != null" >
                id= #{id,jdbcType=INTEGER},
@@ -138,8 +138,8 @@
                  </set>
         where id = #{id,jdbcType=INTEGER}
     </update>
-    <select id="queryProdcutCollectionByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProdcutCollection">
-        select <include refid="Base_Column_List"/> from prodcut_collection
+    <select id="queryProductCollectionByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProductCollection">
+        select <include refid="Base_Column_List"/> from product_collection
         <where>
             and del_flag = 'N'
                     <if test="record.id != null and !&quot;&quot;.equals(record.id)">
@@ -229,8 +229,8 @@
         </if>
         id desc
     </select>
-    <select id="queryAllProdcutCollection" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProdcutCollection">
-        select <include refid="Base_Column_List"/> from prodcut_collection
+    <select id="queryAllProductCollection" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProductCollection">
+        select <include refid="Base_Column_List"/> from product_collection
         <where>
             and del_flag = 'N'
                     <if test="id != null and !&quot;&quot;.equals(id)">
@@ -319,8 +319,8 @@
 
         id desc
     </select>
-    <select id="queryProdcutCollection" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProdcutCollection">
-        select <include refid="Base_Column_List"/> from prodcut_collection
+    <select id="queryProductCollection" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProductCollection">
+        select <include refid="Base_Column_List"/> from product_collection
         <where>
             and del_flag = 'N'
                     <if test="id != null and !&quot;&quot;.equals(id)">
@@ -355,13 +355,13 @@
         LIMIT 1
     </select>
     <update id="delete">
-        UPDATE prodcut_collection SET del_flag = 'Y'
+        UPDATE product_collection SET del_flag = 'Y'
         <where>
             AND id = #{id}
         </where>
     </update>
-    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProdcutCollection">
-        select <include refid="Base_Column_List"/> from prodcut_collection
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.ProductCollection">
+        select <include refid="Base_Column_List"/> from product_collection
         <where>
             and del_flag = 'N'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             </where>

File diff suppressed because it is too large
+ 46 - 0
src/main/java/com/izouma/awesomeadmin/dao/StoreInfoMapper.xml


+ 16 - 0
src/main/java/com/izouma/awesomeadmin/model/CompanyAuthentication.java

@@ -24,6 +24,8 @@ public class CompanyAuthentication{
     private String city;
     private String country;
     private Integer statusFlag;
+    private String telephone;
+    private String realName;
 
 private String searchKey;
 
@@ -149,6 +151,20 @@ private String orderByStr;
     public void setStatusFlag(Integer statusFlag){
         this.statusFlag = statusFlag;
     }
+    public String getTelephone(){
+        return this.telephone;
+    }
+
+    public void setTelephone(String telephone){
+        this.telephone = telephone;
+    }
+    public String getRealName(){
+        return this.realName;
+    }
+
+    public void setRealName(String realName){
+        this.realName = realName;
+    }
 
 public String getSearchKey() {
     return searchKey;

+ 8 - 0
src/main/java/com/izouma/awesomeadmin/model/PersonalAuthentication.java

@@ -21,6 +21,7 @@ public class PersonalAuthentication{
     private String faceImage;
     private String backImage;
     private Integer statusFlag;
+    private String telephone;
 
 private String searchKey;
 
@@ -125,6 +126,13 @@ private String orderByStr;
     public void setStatusFlag(Integer statusFlag){
         this.statusFlag = statusFlag;
     }
+    public String getTelephone(){
+        return this.telephone;
+    }
+
+    public void setTelephone(String telephone){
+        this.telephone = telephone;
+    }
 
 public String getSearchKey() {
     return searchKey;

+ 1 - 1
src/main/java/com/izouma/awesomeadmin/model/ProdcutCollection.java → src/main/java/com/izouma/awesomeadmin/model/ProductCollection.java

@@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 
 @JsonAutoDetect
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class ProdcutCollection{
+public class ProductCollection{
     private Integer id;
     private String delFlag;
     private Date updateTime;

+ 16 - 0
src/main/java/com/izouma/awesomeadmin/model/StoreInfo.java

@@ -34,6 +34,8 @@ public class StoreInfo{
     private Integer reworkRate;
     private Integer hotFlag;
     private Integer homeFlag;
+    private Integer typeFlag;
+    private String subclass;
 
 private String searchKey;
 
@@ -229,6 +231,20 @@ private String orderByStr;
     public void setHomeFlag(Integer homeFlag){
         this.homeFlag = homeFlag;
     }
+    public Integer getTypeFlag(){
+        return this.typeFlag;
+    }
+
+    public void setTypeFlag(Integer typeFlag){
+        this.typeFlag = typeFlag;
+    }
+    public String getSubclass(){
+        return this.subclass;
+    }
+
+    public void setSubclass(String subclass){
+        this.subclass = subclass;
+    }
 
 public String getSearchKey() {
     return searchKey;

+ 0 - 27
src/main/java/com/izouma/awesomeadmin/service/ProdcutCollectionService.java

@@ -1,27 +0,0 @@
-package com.izouma.awesomeadmin.service;
-
-import java.util.*;
-import com.izouma.awesomeadmin.dto.Page;
-import com.izouma.awesomeadmin.model.ProdcutCollection;
-
-
-/**
-*  service接口类
-*/
-public interface ProdcutCollectionService{
-
-    List<ProdcutCollection> getProdcutCollectionList(ProdcutCollection record);
-
-    List<ProdcutCollection> getProdcutCollectionByPage(Page page, ProdcutCollection record);
-
-    ProdcutCollection getProdcutCollectionById(String id);
-
-    ProdcutCollection getProdcutCollection(ProdcutCollection record);
-
-    boolean createProdcutCollection(ProdcutCollection record);
-
-    boolean deleteProdcutCollection(String id);
-
-    boolean updateProdcutCollection(ProdcutCollection record);
-}
-

+ 27 - 0
src/main/java/com/izouma/awesomeadmin/service/ProductCollectionService.java

@@ -0,0 +1,27 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.*;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.ProductCollection;
+
+
+/**
+*  service接口类
+*/
+public interface ProductCollectionService{
+
+    List<ProductCollection> getProductCollectionList(ProductCollection record);
+
+    List<ProductCollection> getProductCollectionByPage(Page page, ProductCollection record);
+
+    ProductCollection getProductCollectionById(String id);
+
+    ProductCollection getProductCollection(ProductCollection record);
+
+    boolean createProductCollection(ProductCollection record);
+
+    boolean deleteProductCollection(String id);
+
+    boolean updateProductCollection(ProductCollection record);
+}
+

+ 0 - 137
src/main/java/com/izouma/awesomeadmin/service/impl/ProdcutCollectionServiceImpl.java

@@ -1,137 +0,0 @@
-package com.izouma.awesomeadmin.service.impl;
-
-import java.util.*;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.izouma.awesomeadmin.constant.AppConstant;
-import com.izouma.awesomeadmin.dto.Page;
-import com.izouma.awesomeadmin.model.ProdcutCollection;
-import com.izouma.awesomeadmin.service.ProdcutCollectionService;
-import com.izouma.awesomeadmin.dao.ProdcutCollectionMapper;
-
-/**
-*  service接口实现类
-*/
-@Service
-public class ProdcutCollectionServiceImpl implements ProdcutCollectionService{
-
-    private static Logger logger = Logger.getLogger(ProdcutCollectionServiceImpl.class);
-
-    @Autowired
-    private ProdcutCollectionMapper prodcutCollectionMapper;
-
-    @Override
-    public List<ProdcutCollection> getProdcutCollectionList(ProdcutCollection record) {
-
-        logger.info("getProdcutCollectionList");
-        try {
-
-        return prodcutCollectionMapper.queryAllProdcutCollection(record);
-        } catch (Exception e) {
-        logger.error("getProdcutCollectionList", e);
-        }
-
-        return null;
-    }
-    @Override
-    public List<ProdcutCollection> getProdcutCollectionByPage(Page page, ProdcutCollection record) {
-
-        logger.info("getProdcutCollectionByPage");
-        try {
-
-        Map<String, Object> parameter = new HashMap<String, Object>();
-        parameter.put("record", record);
-        parameter.put(AppConstant.PAGE, page);
-
-        return prodcutCollectionMapper.queryProdcutCollectionByPage(parameter);
-        } catch (Exception e) {
-        logger.error("getProdcutCollectionByPage", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    public ProdcutCollection getProdcutCollectionById(String id) {
-
-        logger.info("getProdcutCollectionyId");
-        try {
-
-            return prodcutCollectionMapper.selectByPrimaryKey(Integer.valueOf(id));
-        } catch (Exception e) {
-        logger.error("getProdcutCollectionById", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    public ProdcutCollection getProdcutCollection(ProdcutCollection record) {
-
-        logger.info("getProdcutCollection");
-        try {
-
-            return prodcutCollectionMapper.queryProdcutCollection(record);
-        } catch (Exception e) {
-        logger.error("getProdcutCollection", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    public boolean createProdcutCollection(ProdcutCollection record) {
-
-        logger.info("createProdcutCollection");
-        try {
-
-            int updates = prodcutCollectionMapper.insertSelective(record);
-
-            if (updates > 0) {
-                 return true;
-            }
-        } catch (Exception e) {
-            logger.error("createProdcutCollection", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    public boolean deleteProdcutCollection(String id) {
-
-        logger.info("deleteProdcutCollection");
-        try {
-
-             int updates = prodcutCollectionMapper.delete(id);
-
-            if (updates > 0) {
-                 return true;
-            }
-        } catch (Exception e) {
-             logger.error("deleteProdcutCollection", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    public boolean updateProdcutCollection(ProdcutCollection record) {
-
-        logger.info("updateProdcutCollection");
-        try {
-
-            int updates = prodcutCollectionMapper.updateByPrimaryKeySelective(record);
-
-            if (updates > 0) {
-                 return true;
-            }
-        } catch (Exception e) {
-             logger.error("updateProdcutCollection", e);
-        }
-
-        return false;
-    }
-}
-

+ 137 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/ProductCollectionServiceImpl.java

@@ -0,0 +1,137 @@
+package com.izouma.awesomeadmin.service.impl;
+
+import java.util.*;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.izouma.awesomeadmin.constant.AppConstant;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.ProductCollection;
+import com.izouma.awesomeadmin.service.ProductCollectionService;
+import com.izouma.awesomeadmin.dao.ProductCollectionMapper;
+
+/**
+*  service接口实现类
+*/
+@Service
+public class ProductCollectionServiceImpl implements ProductCollectionService{
+
+    private static Logger logger = Logger.getLogger(ProductCollectionServiceImpl.class);
+
+    @Autowired
+    private ProductCollectionMapper productCollectionMapper;
+
+    @Override
+    public List<ProductCollection> getProductCollectionList(ProductCollection record) {
+
+        logger.info("getProductCollectionList");
+        try {
+
+        return productCollectionMapper.queryAllProductCollection(record);
+        } catch (Exception e) {
+        logger.error("getProductCollectionList", e);
+        }
+
+        return null;
+    }
+    @Override
+    public List<ProductCollection> getProductCollectionByPage(Page page, ProductCollection record) {
+
+        logger.info("getProductCollectionByPage");
+        try {
+
+        Map<String, Object> parameter = new HashMap<String, Object>();
+        parameter.put("record", record);
+        parameter.put(AppConstant.PAGE, page);
+
+        return productCollectionMapper.queryProductCollectionByPage(parameter);
+        } catch (Exception e) {
+        logger.error("getProductCollectionByPage", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    public ProductCollection getProductCollectionById(String id) {
+
+        logger.info("getProductCollectionyId");
+        try {
+
+            return productCollectionMapper.selectByPrimaryKey(Integer.valueOf(id));
+        } catch (Exception e) {
+        logger.error("getProductCollectionById", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    public ProductCollection getProductCollection(ProductCollection record) {
+
+        logger.info("getProductCollection");
+        try {
+
+            return productCollectionMapper.queryProductCollection(record);
+        } catch (Exception e) {
+        logger.error("getProductCollection", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    public boolean createProductCollection(ProductCollection record) {
+
+        logger.info("createProductCollection");
+        try {
+
+            int updates = productCollectionMapper.insertSelective(record);
+
+            if (updates > 0) {
+                 return true;
+            }
+        } catch (Exception e) {
+            logger.error("createProductCollection", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean deleteProductCollection(String id) {
+
+        logger.info("deleteProductCollection");
+        try {
+
+             int updates = productCollectionMapper.delete(id);
+
+            if (updates > 0) {
+                 return true;
+            }
+        } catch (Exception e) {
+             logger.error("deleteProductCollection", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean updateProductCollection(ProductCollection record) {
+
+        logger.info("updateProductCollection");
+        try {
+
+            int updates = productCollectionMapper.updateByPrimaryKeySelective(record);
+
+            if (updates > 0) {
+                 return true;
+            }
+        } catch (Exception e) {
+             logger.error("updateProductCollection", e);
+        }
+
+        return false;
+    }
+}
+

+ 6 - 4
src/main/java/com/izouma/awesomeadmin/web/CompanyAuthenticationController.java

@@ -132,10 +132,10 @@ public class CompanyAuthenticationController {
         String sheetName = "company_authentication";
         String titleName = "企业认证数据表";
         String fileName = "企业认证表";
-        int columnNumber = 16;
-        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
-        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "用户ID" ,   "用户名" ,   "公司名" ,   "注册时间" ,   "工商注册号" ,   "证件" ,   "省" ,   "城市" ,   "国家" ,   "状态"  };
-        String[][] dataList = new String[companyAuthentications.size()][16];
+        int columnNumber = 18;
+        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
+        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "用户ID" ,   "用户名" ,   "公司名" ,   "注册时间" ,   "工商注册号" ,   "证件" ,   "省" ,   "城市" ,   "国家" ,   "状态" ,   "电话" ,   "姓名"  };
+        String[][] dataList = new String[companyAuthentications.size()][18];
 
         for (int i = 0; i < companyAuthentications.size(); i++) {
 
@@ -155,6 +155,8 @@ public class CompanyAuthenticationController {
                         dataList[i][13] = String.valueOf(companyAuthentications.get(i).getCity());
                         dataList[i][14] = String.valueOf(companyAuthentications.get(i).getCountry());
                         dataList[i][15] = String.valueOf(companyAuthentications.get(i).getStatusFlag());
+                        dataList[i][16] = String.valueOf(companyAuthentications.get(i).getTelephone());
+                        dataList[i][17] = String.valueOf(companyAuthentications.get(i).getRealName());
                     }
 
 

+ 5 - 4
src/main/java/com/izouma/awesomeadmin/web/PersonalAuthenticationController.java

@@ -132,10 +132,10 @@ public class PersonalAuthenticationController {
         String sheetName = "personal_authentication";
         String titleName = "个人认证数据表";
         String fileName = "个人认证表";
-        int columnNumber = 13;
-        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
-        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "用户id" ,   "用户名" ,   "真实姓名" ,   "身份证号" ,   "正面" ,   "背面" ,   "状态"  };
-        String[][] dataList = new String[personalAuthentications.size()][13];
+        int columnNumber = 14;
+        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
+        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "用户id" ,   "用户名" ,   "真实姓名" ,   "身份证号" ,   "正面" ,   "背面" ,   "状态" ,   "电话"  };
+        String[][] dataList = new String[personalAuthentications.size()][14];
 
         for (int i = 0; i < personalAuthentications.size(); i++) {
 
@@ -152,6 +152,7 @@ public class PersonalAuthenticationController {
                         dataList[i][10] = String.valueOf(personalAuthentications.get(i).getFaceImage());
                         dataList[i][11] = String.valueOf(personalAuthentications.get(i).getBackImage());
                         dataList[i][12] = String.valueOf(personalAuthentications.get(i).getStatusFlag());
+                        dataList[i][13] = String.valueOf(personalAuthentications.get(i).getTelephone());
                     }
 
 

+ 36 - 36
src/main/java/com/izouma/awesomeadmin/web/ProdcutCollectionController.java → src/main/java/com/izouma/awesomeadmin/web/ProductCollectionController.java

@@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.*;
 import com.izouma.awesomeadmin.constant.AppConstant;
 import com.izouma.awesomeadmin.dto.Page;
 import com.izouma.awesomeadmin.dto.Result;
-import com.izouma.awesomeadmin.model.ProdcutCollection;
-import com.izouma.awesomeadmin.service.ProdcutCollectionService;
+import com.izouma.awesomeadmin.model.ProductCollection;
+import com.izouma.awesomeadmin.service.ProductCollectionService;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -21,11 +21,11 @@ import javax.servlet.http.HttpServletResponse;
 *  controller类
 */
 @Controller
-@RequestMapping("/prodcutCollection")
-public class ProdcutCollectionController {
+@RequestMapping("/productCollection")
+public class ProductCollectionController {
 
     @Autowired
-    private ProdcutCollectionService prodcutCollectionService;
+    private ProductCollectionService productCollectionService;
 
     /**
     * <p>获取全部记录。</p>
@@ -33,18 +33,18 @@ public class ProdcutCollectionController {
     @RequiresAuthentication
     @RequestMapping(value = "/all", method = RequestMethod.GET)
     @ResponseBody
-    public Result all(ProdcutCollection record) {
-        List<ProdcutCollection> pp = prodcutCollectionService.getProdcutCollectionList(record);
+    public Result all(ProductCollection record) {
+        List<ProductCollection> pp = productCollectionService.getProductCollectionList(record);
         return new Result(true, pp);
     }
 
     /**
     * <p>根据Id。</p>
     */
-    @RequestMapping(value = "/getProdcutCollection", method = RequestMethod.GET)
+    @RequestMapping(value = "/getProductCollection", method = RequestMethod.GET)
     @ResponseBody
-    public Result getProdcutCollection(@RequestParam(required = false, value = "id") String id) {
-        ProdcutCollection data = prodcutCollectionService.getProdcutCollectionById(id);
+    public Result getProductCollection(@RequestParam(required = false, value = "id") String id) {
+        ProductCollection data = productCollectionService.getProductCollectionById(id);
         return new Result(true, data);
     }
 
@@ -53,8 +53,8 @@ public class ProdcutCollectionController {
     */
     @RequestMapping(value = "/getOne", method = RequestMethod.GET)
     @ResponseBody
-    public Result getOne(ProdcutCollection record) {
-        ProdcutCollection data = prodcutCollectionService.getProdcutCollection(record);
+    public Result getOne(ProductCollection record) {
+        ProductCollection data = productCollectionService.getProductCollection(record);
         return new Result(true, data);
     }
 
@@ -64,10 +64,10 @@ public class ProdcutCollectionController {
     */
     @RequestMapping(value = "/page", method = RequestMethod.GET)
     @ResponseBody
-    public Result page(Page page, ProdcutCollection record) {
+    public Result page(Page page, ProductCollection record) {
         Map<String, Object> result = new HashMap<>();
 
-        List<ProdcutCollection> pp =prodcutCollectionService.getProdcutCollectionByPage(page, record);
+        List<ProductCollection> pp =productCollectionService.getProductCollectionByPage(page, record);
 
         result.put(AppConstant.PAGE, page);
         result.put("pp", pp);
@@ -80,8 +80,8 @@ public class ProdcutCollectionController {
     */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ResponseBody
-    public Result save(ProdcutCollection record) {
-        boolean num = prodcutCollectionService.createProdcutCollection(record);
+    public Result save(ProductCollection record) {
+        boolean num = productCollectionService.createProductCollection(record);
         if (num) {
         return new Result(true, record.getId());
         }
@@ -93,8 +93,8 @@ public class ProdcutCollectionController {
     */
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     @ResponseBody
-    public Result updateProdcutCollection(ProdcutCollection record) {
-        boolean num = prodcutCollectionService.updateProdcutCollection(record);
+    public Result updateProductCollection(ProductCollection record) {
+        boolean num = productCollectionService.updateProductCollection(record);
         if (num) {
         return new Result(true, "保存成功");
         }
@@ -106,9 +106,9 @@ public class ProdcutCollectionController {
     */
     @RequestMapping(value = "/del", method = RequestMethod.POST)
     @ResponseBody
-    public Result deleteProdcutCollection(@RequestParam(required = true, value = "id") String id) {
+    public Result deleteProductCollection(@RequestParam(required = true, value = "id") String id) {
 
-        boolean num = prodcutCollectionService.deleteProdcutCollection(id);
+        boolean num = productCollectionService.deleteProductCollection(id);
         if (num) {
         return new Result(true, "删除成功");
         }
@@ -124,30 +124,30 @@ public class ProdcutCollectionController {
     */
     @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
     @ResponseBody
-    public void exportExcel(HttpServletRequest request, HttpServletResponse response, ProdcutCollection record) throws Exception {
+    public void exportExcel(HttpServletRequest request, HttpServletResponse response, ProductCollection record) throws Exception {
 
-    List<ProdcutCollection> prodcutCollections = prodcutCollectionService.getProdcutCollectionList(record);
+    List<ProductCollection> productCollections = productCollectionService.getProductCollectionList(record);
 
 
-        String sheetName = "prodcut_collection";
+        String sheetName = "product_collection";
         String titleName = "商品收藏数据表";
         String fileName = "商品收藏表";
         int columnNumber = 9;
         int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20 };
         String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "类型" ,   "用户" ,   "商品"  };
-        String[][] dataList = new String[prodcutCollections.size()][9];
-
-        for (int i = 0; i < prodcutCollections.size(); i++) {
-
-                        dataList[i][0] = String.valueOf(prodcutCollections.get(i).getId());
-                        dataList[i][1] = String.valueOf(prodcutCollections.get(i).getDelFlag());
-                        dataList[i][2] = String.valueOf(prodcutCollections.get(i).getUpdateTime());
-                        dataList[i][3] = String.valueOf(prodcutCollections.get(i).getUpdateUser());
-                        dataList[i][4] = String.valueOf(prodcutCollections.get(i).getCreateTime());
-                        dataList[i][5] = String.valueOf(prodcutCollections.get(i).getCreateUser());
-                        dataList[i][6] = String.valueOf(prodcutCollections.get(i).getTypeFlag());
-                        dataList[i][7] = String.valueOf(prodcutCollections.get(i).getUserId());
-                        dataList[i][8] = String.valueOf(prodcutCollections.get(i).getTargetId());
+        String[][] dataList = new String[productCollections.size()][9];
+
+        for (int i = 0; i < productCollections.size(); i++) {
+
+                        dataList[i][0] = String.valueOf(productCollections.get(i).getId());
+                        dataList[i][1] = String.valueOf(productCollections.get(i).getDelFlag());
+                        dataList[i][2] = String.valueOf(productCollections.get(i).getUpdateTime());
+                        dataList[i][3] = String.valueOf(productCollections.get(i).getUpdateUser());
+                        dataList[i][4] = String.valueOf(productCollections.get(i).getCreateTime());
+                        dataList[i][5] = String.valueOf(productCollections.get(i).getCreateUser());
+                        dataList[i][6] = String.valueOf(productCollections.get(i).getTypeFlag());
+                        dataList[i][7] = String.valueOf(productCollections.get(i).getUserId());
+                        dataList[i][8] = String.valueOf(productCollections.get(i).getTargetId());
                     }
 
 

+ 6 - 4
src/main/java/com/izouma/awesomeadmin/web/StoreInfoController.java

@@ -132,10 +132,10 @@ public class StoreInfoController {
         String sheetName = "store_info";
         String titleName = "店铺信息数据表";
         String fileName = "店铺信息表";
-        int columnNumber = 26;
-        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
-        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "用户ID" ,   "用户" ,   "店铺名称" ,   "服务类型" ,   "描述" ,   "头像" ,   "省" ,   "市" ,   "区" ,   "详细地址" ,   "银行卡号" ,   "开户行" ,   "开户人" ,   "信誉等级" ,   "可用" ,   "排序" ,   "响应时间" ,   "返片率" ,   "热门" ,   "首页"  };
-        String[][] dataList = new String[storeInfos.size()][26];
+        int columnNumber = 28;
+        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20 };
+        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "用户ID" ,   "用户" ,   "店铺名称" ,   "服务类型" ,   "描述" ,   "头像" ,   "省" ,   "市" ,   "区" ,   "详细地址" ,   "银行卡号" ,   "开户行" ,   "开户人" ,   "信誉等级" ,   "可用" ,   "排序" ,   "响应时间" ,   "返片率" ,   "热门" ,   "首页" ,   "类型" ,   "服务小类"  };
+        String[][] dataList = new String[storeInfos.size()][28];
 
         for (int i = 0; i < storeInfos.size(); i++) {
 
@@ -165,6 +165,8 @@ public class StoreInfoController {
                         dataList[i][23] = String.valueOf(storeInfos.get(i).getReworkRate());
                         dataList[i][24] = String.valueOf(storeInfos.get(i).getHotFlag());
                         dataList[i][25] = String.valueOf(storeInfos.get(i).getHomeFlag());
+                        dataList[i][26] = String.valueOf(storeInfos.get(i).getTypeFlag());
+                        dataList[i][27] = String.valueOf(storeInfos.get(i).getSubclass());
                     }
 
 

+ 1 - 1
src/main/resources/properties/outsidews.properties

@@ -1,4 +1,4 @@
-projectname=awesomeAdmin
+projectname=tutuxiang
 weixinapi=https://api.weixin.qq.com/sns/oauth2/
 weixinappid=wx8d16412d33eaf19c
 weixinsecret=4c16604a837d8c2929c33a03a5080e60

+ 542 - 0
src/main/vue/package-lock.json

@@ -1722,6 +1722,7 @@
         "anymatch": "2.0.0",
         "async-each": "1.0.1",
         "braces": "2.3.1",
+        "fsevents": "1.2.4",
         "glob-parent": "3.1.0",
         "inherits": "2.0.3",
         "is-binary-path": "1.0.1",
@@ -3738,6 +3739,535 @@
       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
       "dev": true
     },
+    "fsevents": {
+      "version": "1.2.4",
+      "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.4.tgz",
+      "integrity": "sha1-9B3LGvJYKvNpLaNvxVy9jhBBxCY=",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "nan": "2.10.0",
+        "node-pre-gyp": "0.10.0"
+      },
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "bundled": true,
+          "dev": true
+        },
+        "aproba": {
+          "version": "1.2.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "are-we-there-yet": {
+          "version": "1.1.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "delegates": "1.0.0",
+            "readable-stream": "2.3.6"
+          }
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "balanced-match": "1.0.0",
+            "concat-map": "0.0.1"
+          }
+        },
+        "chownr": {
+          "version": "1.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "bundled": true,
+          "dev": true
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "bundled": true,
+          "dev": true
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "bundled": true,
+          "dev": true
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "debug": {
+          "version": "2.6.9",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "deep-extend": {
+          "version": "0.5.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "detect-libc": {
+          "version": "1.0.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "fs-minipass": {
+          "version": "1.2.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minipass": "2.2.4"
+          }
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "aproba": "1.2.0",
+            "console-control-strings": "1.1.0",
+            "has-unicode": "2.0.1",
+            "object-assign": "4.1.1",
+            "signal-exit": "3.0.2",
+            "string-width": "1.0.2",
+            "strip-ansi": "3.0.1",
+            "wide-align": "1.1.2"
+          }
+        },
+        "glob": {
+          "version": "7.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "fs.realpath": "1.0.0",
+            "inflight": "1.0.6",
+            "inherits": "2.0.3",
+            "minimatch": "3.0.4",
+            "once": "1.4.0",
+            "path-is-absolute": "1.0.1"
+          }
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "iconv-lite": {
+          "version": "0.4.21",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safer-buffer": "2.1.2"
+          }
+        },
+        "ignore-walk": {
+          "version": "3.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minimatch": "3.0.4"
+          }
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "once": "1.4.0",
+            "wrappy": "1.0.2"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "bundled": true,
+          "dev": true
+        },
+        "ini": {
+          "version": "1.3.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "number-is-nan": "1.0.1"
+          }
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "brace-expansion": "1.1.11"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "bundled": true,
+          "dev": true
+        },
+        "minipass": {
+          "version": "2.2.4",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "safe-buffer": "5.1.1",
+            "yallist": "3.0.2"
+          }
+        },
+        "minizlib": {
+          "version": "1.1.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "minipass": "2.2.4"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "needle": {
+          "version": "2.2.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "debug": "2.6.9",
+            "iconv-lite": "0.4.21",
+            "sax": "1.2.4"
+          }
+        },
+        "node-pre-gyp": {
+          "version": "0.10.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "detect-libc": "1.0.3",
+            "mkdirp": "0.5.1",
+            "needle": "2.2.0",
+            "nopt": "4.0.1",
+            "npm-packlist": "1.1.10",
+            "npmlog": "4.1.2",
+            "rc": "1.2.7",
+            "rimraf": "2.6.2",
+            "semver": "5.5.0",
+            "tar": "4.4.1"
+          }
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "abbrev": "1.1.1",
+            "osenv": "0.1.5"
+          }
+        },
+        "npm-bundled": {
+          "version": "1.0.3",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "npm-packlist": {
+          "version": "1.1.10",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ignore-walk": "3.0.1",
+            "npm-bundled": "1.0.3"
+          }
+        },
+        "npmlog": {
+          "version": "4.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "are-we-there-yet": "1.1.4",
+            "console-control-strings": "1.1.0",
+            "gauge": "2.7.4",
+            "set-blocking": "2.0.0"
+          }
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "bundled": true,
+          "dev": true
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "once": {
+          "version": "1.4.0",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "wrappy": "1.0.2"
+          }
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "osenv": {
+          "version": "0.1.5",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "os-homedir": "1.0.2",
+            "os-tmpdir": "1.0.2"
+          }
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "rc": {
+          "version": "1.2.7",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "deep-extend": "0.5.1",
+            "ini": "1.3.5",
+            "minimist": "1.2.0",
+            "strip-json-comments": "2.0.1"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "bundled": true,
+              "dev": true,
+              "optional": true
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.6",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "core-util-is": "1.0.2",
+            "inherits": "2.0.3",
+            "isarray": "1.0.0",
+            "process-nextick-args": "2.0.0",
+            "safe-buffer": "5.1.1",
+            "string_decoder": "1.1.1",
+            "util-deprecate": "1.0.2"
+          }
+        },
+        "rimraf": {
+          "version": "2.6.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "glob": "7.1.2"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.1",
+          "bundled": true,
+          "dev": true
+        },
+        "safer-buffer": {
+          "version": "2.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "sax": {
+          "version": "1.2.4",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "semver": {
+          "version": "5.5.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "code-point-at": "1.1.0",
+            "is-fullwidth-code-point": "1.0.0",
+            "strip-ansi": "3.0.1"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "5.1.1"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "bundled": true,
+          "dev": true,
+          "requires": {
+            "ansi-regex": "2.1.1"
+          }
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "tar": {
+          "version": "4.4.1",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chownr": "1.0.1",
+            "fs-minipass": "1.2.5",
+            "minipass": "2.2.4",
+            "minizlib": "1.1.0",
+            "mkdirp": "0.5.1",
+            "safe-buffer": "5.1.1",
+            "yallist": "3.0.2"
+          }
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true
+        },
+        "wide-align": {
+          "version": "1.1.2",
+          "bundled": true,
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "string-width": "1.0.2"
+          }
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "bundled": true,
+          "dev": true
+        },
+        "yallist": {
+          "version": "3.0.2",
+          "bundled": true,
+          "dev": true
+        }
+      }
+    },
     "function-bind": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -5412,6 +5942,13 @@
       "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
       "dev": true
     },
+    "nan": {
+      "version": "2.10.0",
+      "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.10.0.tgz",
+      "integrity": "sha1-ltDNYQ69WNS03pzAxoKM2pnHVI8=",
+      "dev": true,
+      "optional": true
+    },
     "nanomatch": {
       "version": "1.2.9",
       "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
@@ -9589,6 +10126,11 @@
         "setimmediate": "1.0.5"
       }
     },
+    "tinymce": {
+      "version": "4.8.2",
+      "resolved": "http://registry.npm.taobao.org/tinymce/download/tinymce-4.8.2.tgz",
+      "integrity": "sha1-K6Ze5W9mQdjcrKhds/s26bNaMBA="
+    },
     "to-arraybuffer": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",

+ 1 - 0
src/main/vue/package.json

@@ -21,6 +21,7 @@
     "less": "^3.0.4",
     "less-loader": "^4.1.0",
     "normalize.css": "^8.0.0",
+    "tinymce": "^4.8.2",
     "vue": "^2.5.2",
     "vue-amap": "^0.5.8",
     "vue-axios": "^2.1.1",

+ 92 - 0
src/main/vue/src/components/RichText.vue

@@ -0,0 +1,92 @@
+<template>
+    <textarea id="tiny" v-model="content"></textarea>
+</template>
+<script>
+    import axios from 'axios';
+    import tinymce from 'tinymce/tinymce';
+
+    import 'tinymce/themes/modern/theme';
+
+    import 'tinymce/plugins/advlist';
+    import 'tinymce/plugins/autolink';
+    import 'tinymce/plugins/lists';
+    import 'tinymce/plugins/link';
+    import 'tinymce/plugins/image';
+    import 'tinymce/plugins/charmap';
+    import 'tinymce/plugins/print';
+    import 'tinymce/plugins/preview';
+    import 'tinymce/plugins/anchor';
+    import 'tinymce/plugins/textcolor';
+    import 'tinymce/plugins/searchreplace';
+    import 'tinymce/plugins/visualblocks';
+    import 'tinymce/plugins/code';
+    import 'tinymce/plugins/fullscreen';
+    import 'tinymce/plugins/insertdatetime';
+    import 'tinymce/plugins/media';
+    import 'tinymce/plugins/table';
+    import 'tinymce/plugins/contextmenu';
+    import 'tinymce/plugins/paste';
+    import 'tinymce/plugins/code';
+    import 'tinymce/plugins/help';
+    import 'tinymce/plugins/imagetools';
+
+    require('./zh_CN');
+    export default {
+        props: ['value'],
+        created() {
+            this.content = this.value || ''
+        },
+        mounted() {
+            tinymce.init({
+                selector: '#tiny',
+                skin_url: '/static/skins/lightgray',
+                language: 'zh_CN',
+                menubar: false,
+                branding: false,
+                statusbar: false,
+                height: 300,
+                toolbar: 'undo redo | styleselect bold italic strikethrough forecolor backcolor  | image media link blockquote visualblocks insert | formatselect | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | preview fullscreen code help',
+                plugins: [
+                    'advlist autolink lists link image charmap print preview anchor textcolor',
+                    'searchreplace visualblocks code fullscreen',
+                    'insertdatetime media table contextmenu paste code help imagetools'
+                ],
+                images_upload_url: this.$baseUrl + '/assets/uploadFile',
+                images_upload_handler: function (blobInfo, success, failure) {
+                    let formData = new FormData();
+                    formData.append('file', blobInfo.blob(), blobInfo.filename());
+                    axios.post('/assets/uploadFile', formData).then(res => {
+                        if (res.status === 200) {
+                            if (res.data.success) {
+                                success(res.data.data[0]);
+                                return;
+                            }
+                        }
+                        failure('error');
+                    }).catch(e => {
+                        failure(e);
+                    })
+                },
+                init_instance_callback: editor => {
+                    editor.on('Change MouseOut', e => {
+                        this.content = editor.getContent();
+                    });
+                }
+            });
+        },
+        data() {
+            return {
+                content: ''
+            }
+        },
+        methods: {},
+        watch: {
+            value(val) {
+                this.content = val
+            },
+            content(val) {
+                this.$emit('input', val)
+            }
+        }
+    }
+</script>

+ 261 - 0
src/main/vue/src/components/zh_CN.js

@@ -0,0 +1,261 @@
+tinymce.addI18n('zh_CN',{
+"Redo": "\u91cd\u590d",
+"Undo": "\u64a4\u6d88",
+"Cut": "\u526a\u5207",
+"Copy": "\u590d\u5236",
+"Paste": "\u7c98\u8d34",
+"Select all": "\u5168\u9009",
+"New document": "\u65b0\u6587\u6863",
+"Ok": "\u786e\u5b9a",
+"Cancel": "\u53d6\u6d88",
+"Visual aids": "\u7f51\u683c\u7ebf",
+"Bold": "\u7c97\u4f53",
+"Italic": "\u659c\u4f53",
+"Underline": "\u4e0b\u5212\u7ebf",
+"Strikethrough": "\u5220\u9664\u7ebf",
+"Superscript": "\u4e0a\u6807",
+"Subscript": "\u4e0b\u6807",
+"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
+"Align left": "\u5de6\u5bf9\u9f50",
+"Align center": "\u5c45\u4e2d",
+"Align right": "\u53f3\u5bf9\u9f50",
+"Justify": "\u4e24\u7aef\u5bf9\u9f50",
+"Bullet list": "\u9879\u76ee\u7b26\u53f7",
+"Numbered list": "\u7f16\u53f7\u5217\u8868",
+"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
+"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
+"Close": "\u5173\u95ed",
+"Formats": "\u683c\u5f0f",
+"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002",
+"Headers": "\u6807\u9898",
+"Header 1": "\u6807\u98981",
+"Header 2": "\u6807\u98982",
+"Header 3": "\u6807\u98983",
+"Header 4": "\u6807\u98984",
+"Header 5": "\u6807\u98985",
+"Header 6": "\u6807\u98986",
+"Headings": "\u6807\u9898",
+"Heading 1": "\u6807\u98981",
+"Heading 2": "\u6807\u98982",
+"Heading 3": "\u6807\u98983",
+"Heading 4": "\u6807\u98984",
+"Heading 5": "\u6807\u98985",
+"Heading 6": "\u6807\u98986",
+"Preformatted": "\u9884\u683c\u5f0f\u5316",
+"Div": "Div\u533a\u5757",
+"Pre": "\u9884\u683c\u5f0f\u6587\u672c",
+"Code": "\u4ee3\u7801",
+"Paragraph": "\u6bb5\u843d",
+"Blockquote": "\u5f15\u7528",
+"Inline": "\u6587\u672c",
+"Blocks": "\u533a\u5757",
+"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
+"Font Family": "\u5b57\u4f53",
+"Font Sizes": "\u5b57\u53f7",
+"Class": "Class",
+"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf",
+"OR": "\u6216",
+"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64",
+"Upload": "\u4e0a\u4f20",
+"Block": "\u5757",
+"Align": "\u5bf9\u9f50",
+"Default": "\u9ed8\u8ba4",
+"Circle": "\u7a7a\u5fc3\u5706",
+"Disc": "\u5b9e\u5fc3\u5706",
+"Square": "\u65b9\u5757",
+"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
+"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
+"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
+"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
+"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
+"Anchor": "\u951a\u70b9",
+"Name": "\u540d\u79f0",
+"Id": "\u6807\u8bc6\u7b26",
+"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002",
+"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
+"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
+"Special character": "\u7279\u6b8a\u7b26\u53f7",
+"Source code": "\u6e90\u4ee3\u7801",
+"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b",
+"Language": "\u8bed\u8a00",
+"Code sample": "\u4ee3\u7801\u793a\u4f8b",
+"Color": "\u989c\u8272",
+"R": "R",
+"G": "G",
+"B": "B",
+"Left to right": "\u4ece\u5de6\u5230\u53f3",
+"Right to left": "\u4ece\u53f3\u5230\u5de6",
+"Emoticons": "\u8868\u60c5",
+"Document properties": "\u6587\u6863\u5c5e\u6027",
+"Title": "\u6807\u9898",
+"Keywords": "\u5173\u952e\u8bcd",
+"Description": "\u63cf\u8ff0",
+"Robots": "\u673a\u5668\u4eba",
+"Author": "\u4f5c\u8005",
+"Encoding": "\u7f16\u7801",
+"Fullscreen": "\u5168\u5c4f",
+"Action": "\u64cd\u4f5c",
+"Shortcut": "\u5feb\u6377\u952e",
+"Help": "\u5e2e\u52a9",
+"Address": "\u5730\u5740",
+"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f",
+"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f",
+"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84",
+"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355",
+"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
+"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
+"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
+"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):",
+"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a",
+"Learn more...": "\u4e86\u89e3\u66f4\u591a...",
+"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}",
+"Plugins": "\u63d2\u4ef6",
+"Handy Shortcuts": "\u5feb\u6377\u952e",
+"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
+"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
+"Image description": "\u56fe\u7247\u63cf\u8ff0",
+"Source": "\u5730\u5740",
+"Dimensions": "\u5927\u5c0f",
+"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
+"General": "\u666e\u901a",
+"Advanced": "\u9ad8\u7ea7",
+"Style": "\u6837\u5f0f",
+"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
+"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
+"Border": "\u8fb9\u6846",
+"Insert image": "\u63d2\u5165\u56fe\u7247",
+"Image": "\u56fe\u7247",
+"Image list": "\u56fe\u7247\u5217\u8868",
+"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c",
+"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c",
+"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c",
+"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c",
+"Edit image": "\u7f16\u8f91\u56fe\u7247",
+"Image options": "\u56fe\u7247\u9009\u9879",
+"Zoom in": "\u653e\u5927",
+"Zoom out": "\u7f29\u5c0f",
+"Crop": "\u88c1\u526a",
+"Resize": "\u8c03\u6574\u5927\u5c0f",
+"Orientation": "\u65b9\u5411",
+"Brightness": "\u4eae\u5ea6",
+"Sharpen": "\u9510\u5316",
+"Contrast": "\u5bf9\u6bd4\u5ea6",
+"Color levels": "\u989c\u8272\u5c42\u6b21",
+"Gamma": "\u4f3d\u9a6c\u503c",
+"Invert": "\u53cd\u8f6c",
+"Apply": "\u5e94\u7528",
+"Back": "\u540e\u9000",
+"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
+"Date\/time": "\u65e5\u671f\/\u65f6\u95f4",
+"Insert link": "\u63d2\u5165\u94fe\u63a5",
+"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
+"Text to display": "\u663e\u793a\u6587\u5b57",
+"Url": "\u5730\u5740",
+"Target": "\u6253\u5f00\u65b9\u5f0f",
+"None": "\u65e0",
+"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
+"Remove link": "\u5220\u9664\u94fe\u63a5",
+"Anchors": "\u951a\u70b9",
+"Link": "\u94fe\u63a5",
+"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5",
+"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f",
+"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f",
+"Link list": "\u94fe\u63a5\u5217\u8868",
+"Insert video": "\u63d2\u5165\u89c6\u9891",
+"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
+"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53",
+"Alternative source": "\u955c\u50cf",
+"Poster": "\u5c01\u9762",
+"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
+"Embed": "\u5185\u5d4c",
+"Media": "\u5a92\u4f53",
+"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
+"Page break": "\u5206\u9875\u7b26",
+"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c",
+"Preview": "\u9884\u89c8",
+"Print": "\u6253\u5370",
+"Save": "\u4fdd\u5b58",
+"Find": "\u67e5\u627e",
+"Replace with": "\u66ff\u6362\u4e3a",
+"Replace": "\u66ff\u6362",
+"Replace all": "\u5168\u90e8\u66ff\u6362",
+"Prev": "\u4e0a\u4e00\u4e2a",
+"Next": "\u4e0b\u4e00\u4e2a",
+"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
+"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
+"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
+"Whole words": "\u5168\u5b57\u5339\u914d",
+"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
+"Ignore": "\u5ffd\u7565",
+"Ignore all": "\u5168\u90e8\u5ffd\u7565",
+"Finish": "\u5b8c\u6210",
+"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178",
+"Insert table": "\u63d2\u5165\u8868\u683c",
+"Table properties": "\u8868\u683c\u5c5e\u6027",
+"Delete table": "\u5220\u9664\u8868\u683c",
+"Cell": "\u5355\u5143\u683c",
+"Row": "\u884c",
+"Column": "\u5217",
+"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
+"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
+"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
+"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
+"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
+"Delete row": "\u5220\u9664\u884c",
+"Row properties": "\u884c\u5c5e\u6027",
+"Cut row": "\u526a\u5207\u884c",
+"Copy row": "\u590d\u5236\u884c",
+"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
+"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
+"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
+"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
+"Delete column": "\u5220\u9664\u5217",
+"Cols": "\u5217",
+"Rows": "\u884c",
+"Width": "\u5bbd",
+"Height": "\u9ad8",
+"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
+"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
+"Caption": "\u6807\u9898",
+"Left": "\u5de6\u5bf9\u9f50",
+"Center": "\u5c45\u4e2d",
+"Right": "\u53f3\u5bf9\u9f50",
+"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
+"Scope": "\u8303\u56f4",
+"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
+"H Align": "\u6c34\u5e73\u5bf9\u9f50",
+"V Align": "\u5782\u76f4\u5bf9\u9f50",
+"Top": "\u9876\u90e8\u5bf9\u9f50",
+"Middle": "\u5782\u76f4\u5c45\u4e2d",
+"Bottom": "\u5e95\u90e8\u5bf9\u9f50",
+"Header cell": "\u8868\u5934\u5355\u5143\u683c",
+"Row group": "\u884c\u7ec4",
+"Column group": "\u5217\u7ec4",
+"Row type": "\u884c\u7c7b\u578b",
+"Header": "\u8868\u5934",
+"Body": "\u8868\u4f53",
+"Footer": "\u8868\u5c3e",
+"Border color": "\u8fb9\u6846\u989c\u8272",
+"Insert template": "\u63d2\u5165\u6a21\u677f",
+"Templates": "\u6a21\u677f",
+"Template": "\u6a21\u677f",
+"Text color": "\u6587\u5b57\u989c\u8272",
+"Background color": "\u80cc\u666f\u8272",
+"Custom...": "\u81ea\u5b9a\u4e49...",
+"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272",
+"No color": "\u65e0",
+"Table of Contents": "\u5185\u5bb9\u5217\u8868",
+"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846",
+"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26",
+"Words: {0}": "\u5b57\u6570\uff1a{0}",
+"{0} words": "{0} \u5b57",
+"File": "\u6587\u4ef6",
+"Edit": "\u7f16\u8f91",
+"Insert": "\u63d2\u5165",
+"View": "\u89c6\u56fe",
+"Format": "\u683c\u5f0f",
+"Table": "\u8868\u683c",
+"Tools": "\u5de5\u5177",
+"Powered by {0}": "\u7531{0}\u9a71\u52a8",
+"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9"
+});

+ 10 - 4
src/main/vue/src/pages/CompanyAuthentication.vue

@@ -31,6 +31,12 @@
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="statusFlag" label="状态">
                 <el-input v-model="formData.statusFlag" :disabled="'statusFlag'==subColumn"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                                            <el-form-item prop="telephone" label="电话">
+                <el-input v-model="formData.telephone" :disabled="'telephone'==subColumn"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                                            <el-form-item prop="realName" label="姓名">
+                <el-input v-model="formData.realName" :disabled="'realName'==subColumn"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                                         <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
@@ -59,7 +65,7 @@
                 }).then(res => {
                     if (res.success) {
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                         this.formData = res.data;
 
                     if (this.$route.query.column) {
@@ -73,14 +79,14 @@
                 }
             }
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    },
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
         data() {
             return {
                 saving: false,
                 formData: {},
                 rules: {
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    },
-                                                                                                                                            subColumn: '',
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
+                                                                                                                                                            subColumn: '',
             subValue: '',
         }
         },

+ 32 - 0
src/main/vue/src/pages/CompanyAuthentications.vue

@@ -117,6 +117,20 @@
                                 label="状态"
                                 min-width="100">
                         </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('telephone')"
+                                prop="telephone"
+                                label="电话"
+                                min-width="100">
+                        </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('realName')"
+                                prop="realName"
+                                label="姓名"
+                                min-width="100">
+                        </el-table-column>
                                                             <el-table-column
                     label="操作"
                     align="center"
@@ -308,6 +322,16 @@
                                 label: '状态',
                                 value: 'statusFlag',
                                 show: true
+                            },
+                                                                                                {
+                                label: '电话',
+                                value: 'telephone',
+                                show: true
+                            },
+                                                                                                {
+                                label: '姓名',
+                                value: 'realName',
+                                show: true
                             },
                                                             ],
                 multipleMode: false,
@@ -356,6 +380,14 @@
                                                                                                 {
                                 label: '状态',
                                 value: 'status_flag'
+                            },
+                                                                                                {
+                                label: '电话',
+                                value: 'telephone'
+                            },
+                                                                                                {
+                                label: '姓名',
+                                value: 'real_name'
                             },
                                                             ],
                 advancedQuerySearchKey: '',

+ 8 - 3
src/main/vue/src/pages/CustomerService.vue

@@ -17,10 +17,15 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          <el-form-item prop="icon" label="头像">
                  <single-upload v-model="formData.icon" :disabled="'icon'==subColumn"></single-upload>
              </el-form-item>
-                                                                                                                                                                                <el-form-item prop="useFlag" label="可用标识">
-                <el-input v-model="formData.useFlag" :disabled="'useFlag'==subColumn"></el-input>
+                                                                                                                                                                                                                                                                                                                                                                                                            <el-form-item prop="useFlag" label="可用标识">
+                <el-switch
+                        v-model="formData.useFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'useFlag'==subColumn">
+                </el-switch>
             </el-form-item>
-                                                                                                                                                                                                                                                                                        <el-form-item>
+                                                            <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
                 <el-button @click="onDelete" v-if="formData.id" type="danger">删除</el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>

+ 7 - 4
src/main/vue/src/pages/PersonalAuthentication.vue

@@ -22,6 +22,9 @@
              </el-form-item>
                                                                                                                                                                                 <el-form-item prop="statusFlag" label="状态">
                 <el-input v-model="formData.statusFlag" :disabled="'statusFlag'==subColumn"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                                            <el-form-item prop="telephone" label="电话">
+                <el-input v-model="formData.telephone" :disabled="'telephone'==subColumn"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                                         <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
@@ -50,7 +53,7 @@
                 }).then(res => {
                     if (res.success) {
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                         this.formData = res.data;
 
                     if (this.$route.query.column) {
@@ -64,14 +67,14 @@
                 }
             }
 
-                                                                                                                                                                                                                                                                                                                                                                                                },
+                                                                                                                                                                                                                                                                                                                                                                                                                            },
         data() {
             return {
                 saving: false,
                 formData: {},
                 rules: {
-                                                                                                                                                                                                                                                                                                                                                                                                },
-                                                                                                                    subColumn: '',
+                                                                                                                                                                                                                                                                                                                                                                                                                            },
+                                                                                                                            subColumn: '',
             subValue: '',
         }
         },

+ 16 - 0
src/main/vue/src/pages/PersonalAuthentications.vue

@@ -100,6 +100,13 @@
                                 label="状态"
                                 min-width="100">
                         </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('telephone')"
+                                prop="telephone"
+                                label="电话"
+                                min-width="100">
+                        </el-table-column>
                                                             <el-table-column
                     label="操作"
                     align="center"
@@ -276,6 +283,11 @@
                                 label: '状态',
                                 value: 'statusFlag',
                                 show: true
+                            },
+                                                                                                {
+                                label: '电话',
+                                value: 'telephone',
+                                show: true
                             },
                                                             ],
                 multipleMode: false,
@@ -312,6 +324,10 @@
                                                                                                 {
                                 label: '状态',
                                 value: 'status_flag'
+                            },
+                                                                                                {
+                                label: '电话',
+                                value: 'telephone'
                             },
                                                             ],
                 advancedQuerySearchKey: '',

+ 3 - 3
src/main/vue/src/pages/ProdcutCollection.vue → src/main/vue/src/pages/ProductCollection.vue

@@ -31,7 +31,7 @@
 
             if (this.$route.query.id) {
                 this.$http.get({
-                    url: '/prodcutCollection/getOne',
+                    url: '/productCollection/getOne',
                     data: {
                         id: this.$route.query.id
                     }
@@ -76,7 +76,7 @@
             submit() {
                 var data = JSON.parse(JSON.stringify(this.formData));
                 this.$http.post({
-                    url: this.formData.id ? '/prodcutCollection/update' : '/prodcutCollection/save',
+                    url: this.formData.id ? '/productCollection/update' : '/productCollection/save',
                     data: data
                 }).then(res => {
                     if (res.success) {
@@ -90,7 +90,7 @@
             onDelete() {
                 this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
                     return this.$http.post({
-                    url: '/prodcutCollection/del',
+                    url: '/productCollection/del',
                     data: { id: this.formData.id }
                     })
                 }).then(() => {

+ 5 - 5
src/main/vue/src/pages/ProdcutCollections.vue → src/main/vue/src/pages/ProductCollections.vue

@@ -11,7 +11,7 @@
             <el-button @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small"
                        icon="el-icon-sort" class="filter-item">排序
             </el-button>
-            <el-button @click="$router.push({path:'/prodcutCollection',query:{column:$route.query.column}})" type="primary"
+            <el-button @click="$router.push({path:'/productCollection',query:{column:$route.query.column}})" type="primary"
                        size="small" icon="el-icon-edit"
                        class="filter-item">添加
             </el-button>
@@ -280,7 +280,7 @@
                 }
 
                 this.$http.get({
-                    url: '/prodcutCollection/page',
+                    url: '/productCollection/page',
                     data: data
                 }).then(res => {
                     if (res.success) {
@@ -301,7 +301,7 @@
             },
             editRow(row) {
                 this.$router.push({
-                    path: '/prodcutCollection',
+                    path: '/productCollection',
                     query: {
                         id: row.id,
                         column: this.$route.query.column,
@@ -390,7 +390,7 @@
                 this.showTableSortDialog = false;
             },
             exportExcel() {
-                window.location.href = this.$baseUrl + "/prodcutCollection/exportExcel?searchKey="
+                window.location.href = this.$baseUrl + "/productCollection/exportExcel?searchKey="
                         + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey+"&orderByStr=" + this.orderByStr;
             },
             searchData() {
@@ -400,7 +400,7 @@
             deleteRow(row) {
                 this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
                     return this.$http.post({
-                        url: '/prodcutCollection/del',
+                        url: '/productCollection/del',
                         data: {id: row.id}
                     })
                 }).then(() => {

+ 30 - 7
src/main/vue/src/pages/ProductInfo.vue

@@ -14,22 +14,45 @@
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          <el-form-item prop="image" label="主图">
                  <single-upload v-model="formData.image" :disabled="'image'==subColumn"></single-upload>
              </el-form-item>
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <el-form-item prop="inventory" label="库存">
+                                                                                                                                                                                                    <el-form-item prop="serviceDetail" label="服务详情">
+                <el-input type="textarea" v-model="formData.serviceDetail" :disabled="'serviceDetail'==subColumn"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                        <el-form-item prop="inventory" label="库存">
                 <el-input v-model="formData.inventory" :disabled="'inventory'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="onShelf" label="上下架">
-                <el-input v-model="formData.onShelf" :disabled="'onShelf'==subColumn"></el-input>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <el-form-item prop="onShelf" label="上下架">
+                <el-switch
+                        v-model="formData.onShelf"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'onShelf'==subColumn">
+                </el-switch>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="useFlag" label="可用">
-                <el-input v-model="formData.useFlag" :disabled="'useFlag'==subColumn"></el-input>
+                <el-switch
+                        v-model="formData.useFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'useFlag'==subColumn">
+                </el-switch>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="hotFlag" label="热门">
-                <el-input v-model="formData.hotFlag" :disabled="'hotFlag'==subColumn"></el-input>
+                <el-switch
+                        v-model="formData.hotFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'hotFlag'==subColumn">
+                </el-switch>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="homeFlag" label="首页">
-                <el-input v-model="formData.homeFlag" :disabled="'homeFlag'==subColumn"></el-input>
+                <el-switch
+                        v-model="formData.homeFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'homeFlag'==subColumn">
+                </el-switch>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="rank" label="排序">
+                                                                                                <el-form-item prop="rank" label="排序">
                 <el-input v-model="formData.rank" :disabled="'rank'==subColumn"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="storeId" label="店铺">

+ 81 - 75
src/main/vue/src/pages/ShopAgreement.vue

@@ -1,105 +1,111 @@
 <template>
     <div>
-        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small"
-                 style="max-width: 500px;">
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <el-form-item prop="remark" label="备注">
+        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small" style="max-width: 500px;">
+            <el-form-item prop="agreement" label="协议">
+                <rich-text v-model="formData.agreement" :disabled="'agreement'==subColumn"></rich-text>
+            </el-form-item>
+            <el-form-item prop="remark" label="备注">
                 <el-input v-model="formData.remark" :disabled="'remark'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                        <el-form-item>
+            <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
-                <el-button @click="onDelete" v-if="formData.id" type="danger">删除</el-button>
-                <el-button @click="$router.go(-1)">取消</el-button>
             </el-form-item>
         </el-form>
     </div>
 </template>
 <script>
-    import formValidator from '../formValidator'
+import formValidator from '../formValidator'
+import RichText from '../components/RichText'
 
-    export default {
-        created() {
-            if (this.$route.query.column) {
-                this.subColumn = this.$route.query.column.split(',')[1];
-                this.subValue = this.$route.query.column.split(',')[0];
-            }
+export default {
+    created() {
+        if (this.$route.query.column) {
+            this.subColumn = this.$route.query.column.split(',')[1];
+            this.subValue = this.$route.query.column.split(',')[0];
+        }
+
+        if (this.$route.query.id) {
+            this.$http.get({
+                url: '/shopAgreement/getOne',
+                data: {
+                    id: this.$route.query.id
+                }
+            }).then(res => {
+                if (res.success) {
 
-            if (this.$route.query.id) {
-                this.$http.get({
-                    url: '/shopAgreement/getOne',
-                    data: {
-                        id: this.$route.query.id
-                    }
-                }).then(res => {
-                    if (res.success) {
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        
-                        this.formData = res.data;
+                    this.formData = res.data;
 
                     if (this.$route.query.column) {
                         this.formData[this.subColumn] = this.subValue;
                     }
-                    }
-                })
-            }else {
-                if (this.$route.query.column) {
-                    this.formData[this.subColumn] = this.subValue;
                 }
+            })
+        } else {
+            if (this.$route.query.column) {
+                this.formData[this.subColumn] = this.subValue;
             }
+        }
 
-                                                                                                                                                                                                                                                    },
-        data() {
-            return {
-                saving: false,
-                formData: {},
-                rules: {
-                                                                                                                                                                                                                                                    },
-                                                                            subColumn: '',
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {
+                agreement: '',
+            },
+            rules: {
+            },
+            subColumn: '',
             subValue: '',
         }
+    },
+    methods: {
+        onSave() {
+            this.$refs.form.validate((valid) => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
         },
-        methods: {
-            onSave() {
-                this.$refs.form.validate((valid) => {
-                    if (valid) {
-                        this.submit();
-                    } else {
-                        return false;
-                    }
-                });
-            },
-            submit() {
-                var data = JSON.parse(JSON.stringify(this.formData));
-                this.$http.post({
-                    url: this.formData.id ? '/shopAgreement/update' : '/shopAgreement/save',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.$message.success('成功');
-                        this.$router.go(-1);
-                    } else {
-                        this.$message.warning('失败')
-                    }
-                });
-            },
-            onDelete() {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
-                    return this.$http.post({
+        submit() {
+            var data = JSON.parse(JSON.stringify(this.formData));
+            this.$http.post({
+                url: this.formData.id ? '/shopAgreement/update' : '/shopAgreement/save',
+                data: data
+            }).then(res => {
+                if (res.success) {
+                    this.$message.success('成功');
+                    //this.$router.go(-1);
+                } else {
+                    this.$message.warning('失败')
+                }
+            });
+        },
+        onDelete() {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
+                return this.$http.post({
                     url: '/shopAgreement/del',
                     data: { id: this.formData.id }
-                    })
-                }).then(() => {
-                    this.$message.success('删除成功');
-                    this.$router.go(-1);
-                }).catch(action => {
-                    if (action === 'cancel') {
-                        this.$message.info('删除取消');
-                    } else {
-                        this.$message.error('删除失败');
-                    }
                 })
-            },
-        }
+            }).then(() => {
+                this.$message.success('删除成功');
+                // this.$router.go(-1);
+            }).catch(action => {
+                if (action === 'cancel') {
+                    this.$message.info('删除取消');
+                } else {
+                    this.$message.error('删除失败');
+                }
+            })
+        },
+    },
+    components: {
+        RichText
     }
+}
 </script>
 <style lang="less" scoped>
 </style>

+ 58 - 17
src/main/vue/src/pages/StoreInfo.vue

@@ -41,26 +41,65 @@
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="openName" label="开户人">
                 <el-input v-model="formData.openName" :disabled="'openName'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="credit" label="信誉等级">
-                <el-input v-model="formData.credit" :disabled="'credit'==subColumn"></el-input>
-            </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="useFlag" label="可用">
-                <el-input v-model="formData.useFlag" :disabled="'useFlag'==subColumn"></el-input>
-            </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="rank" label="排序">
-                <el-input v-model="formData.rank" :disabled="'rank'==subColumn"></el-input>
+                                                                                                                                                                                                                                                                                                                                                                                                                                <el-form-item prop="credit" label="信誉等级">
+                <template>
+                    <el-select v-model="formData.credit" clearable  placeholder="请选择" :disabled="'credit'==subColumn">
+                        <el-option
+                                v-for="item in creditOptions"
+                                :key="item.value"
+                                :label="item.label"
+                                :value="item.value">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    <el-form-item prop="useFlag" label="可用">
+                <el-switch
+                        v-model="formData.useFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'useFlag'==subColumn">
+                </el-switch>
+            </el-form-item>
+                                                                                                                                        <el-form-item prop="rank" label="排序">
+                <el-input type="number" v-model="formData.rank" :disabled="'rank'==subColumn"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="responseTime" label="响应时间">
-                <el-input v-model="formData.responseTime" :disabled="'responseTime'==subColumn"></el-input>
+                <el-input type="number" v-model="formData.responseTime" :disabled="'responseTime'==subColumn"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="reworkRate" label="返片率">
-                <el-input v-model="formData.reworkRate" :disabled="'reworkRate'==subColumn"></el-input>
+                <el-input type="number" v-model="formData.reworkRate" :disabled="'reworkRate'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="hotFlag" label="热门">
-                <el-input v-model="formData.hotFlag" :disabled="'hotFlag'==subColumn"></el-input>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <el-form-item prop="hotFlag" label="热门">
+                <el-switch
+                        v-model="formData.hotFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'hotFlag'==subColumn">
+                </el-switch>
             </el-form-item>
                                                                                                                                                                                                                                                                                                                             <el-form-item prop="homeFlag" label="首页">
-                <el-input v-model="formData.homeFlag" :disabled="'homeFlag'==subColumn"></el-input>
+                <el-switch
+                        v-model="formData.homeFlag"
+                        active-color="#13ce66"
+                        inactive-color="#ff4949"
+                        :disabled="'homeFlag'==subColumn">
+                </el-switch>
+            </el-form-item>
+                                                                                                                                                                                                    <el-form-item prop="typeFlag" label="类型">
+                <template>
+                    <el-select v-model="formData.typeFlag" clearable  placeholder="请选择" :disabled="'typeFlag'==subColumn">
+                        <el-option
+                                v-for="item in typeFlagOptions"
+                                :key="item.value"
+                                :label="item.label"
+                                :value="item.value">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-form-item>
+                                                                                                                                                                                                                        <el-form-item prop="subclass" label="服务小类">
+                <el-input v-model="formData.subclass" :disabled="'subclass'==subColumn"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                                         <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
@@ -89,7 +128,7 @@
                 }).then(res => {
                     if (res.success) {
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                         this.formData = res.data;
 
                     if (this.$route.query.column) {
@@ -103,14 +142,16 @@
                 }
             }
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
         data() {
             return {
                 saving: false,
                 formData: {},
                 rules: {
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            },
-                                                                                                                                                                                                                            subColumn: '',
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    },
+                                                                                                                                                                                creditOptions:[{ label: 'A', value: 'A' }, { label: 'B', value: 'B' },{ label: 'C', value: 'C' },{ label: 'D', value: 'D' },{ label: 'E', value: 'E' }],
+                                                                                            typeFlagOptions:[{ label: '官方', value:0}, { label: '企业', value: 1 },{ label: '个人', value: 2}],
+                                        subColumn: '',
             subValue: '',
         }
         },

+ 32 - 0
src/main/vue/src/pages/StoreInfos.vue

@@ -187,6 +187,20 @@
                                 label="首页"
                                 min-width="100">
                         </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('typeFlag')"
+                                prop="typeFlag"
+                                label="类型"
+                                min-width="100">
+                        </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('subclass')"
+                                prop="subclass"
+                                label="服务小类"
+                                min-width="100">
+                        </el-table-column>
                                                             <el-table-column
                     label="操作"
                     align="center"
@@ -428,6 +442,16 @@
                                 label: '首页',
                                 value: 'homeFlag',
                                 show: true
+                            },
+                                                                                                {
+                                label: '类型',
+                                value: 'typeFlag',
+                                show: true
+                            },
+                                                                                                {
+                                label: '服务小类',
+                                value: 'subclass',
+                                show: true
                             },
                                                             ],
                 multipleMode: false,
@@ -516,6 +540,14 @@
                                                                                                 {
                                 label: '首页',
                                 value: 'home_flag'
+                            },
+                                                                                                {
+                                label: '类型',
+                                value: 'type_flag'
+                            },
+                                                                                                {
+                                label: '服务小类',
+                                value: 'subclass'
                             },
                                                             ],
                 advancedQuerySearchKey: '',

+ 78 - 79
src/main/vue/src/pages/SystemConfig.vue

@@ -1,114 +1,113 @@
 <template>
     <div>
-        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small"
-                 style="max-width: 500px;">
-                                                                                                                                                                                                                                    <el-form-item prop="orderRate" label="订单比率">
+        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small" style="max-width: 500px;">
+            <el-form-item prop="orderRate" label="订单比率">
                 <el-input v-model="formData.orderRate" :disabled="'orderRate'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="tixianRate" label="提现比率">
+            <el-form-item prop="tixianRate" label="提现比率">
                 <el-input v-model="formData.tixianRate" :disabled="'tixianRate'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="extra" label="预留字段">
+            <el-form-item prop="extra" label="预留字段">
                 <el-input v-model="formData.extra" :disabled="'extra'==subColumn"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                                            <el-form-item prop="useFlag" label="启用标识">
-                <el-input v-model="formData.useFlag" :disabled="'useFlag'==subColumn"></el-input>
+            <el-form-item prop="useFlag" label="启用标识">
+                <el-switch v-model="useFlag" active-color="#13ce66" inactive-color="#ff4949" :disabled="'useFlag'==subColumn">
+                </el-switch>
             </el-form-item>
-                                                                                                                                                                                                                                                                                        <el-form-item>
+            <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
-                <el-button @click="onDelete" v-if="formData.id" type="danger">删除</el-button>
-                <el-button @click="$router.go(-1)">取消</el-button>
             </el-form-item>
         </el-form>
     </div>
 </template>
 <script>
-    import formValidator from '../formValidator'
+import formValidator from '../formValidator'
 
-    export default {
-        created() {
-            if (this.$route.query.column) {
-                this.subColumn = this.$route.query.column.split(',')[1];
-                this.subValue = this.$route.query.column.split(',')[0];
-            }
+export default {
+    created() {
+        if (this.$route.query.column) {
+            this.subColumn = this.$route.query.column.split(',')[1];
+            this.subValue = this.$route.query.column.split(',')[0];
+        }
+
+        if (this.$route.query.id) {
+            this.$http.get({
+                url: '/systemConfig/getOne',
+                data: {
+                    id: this.$route.query.id
+                }
+            }).then(res => {
+                if (res.success) {
 
-            if (this.$route.query.id) {
-                this.$http.get({
-                    url: '/systemConfig/getOne',
-                    data: {
-                        id: this.$route.query.id
-                    }
-                }).then(res => {
-                    if (res.success) {
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
-                        this.formData = res.data;
+                    this.formData = res.data;
+                    this.useFlag = this.formData.useFlag == 'Y' ? true : false;
 
                     if (this.$route.query.column) {
                         this.formData[this.subColumn] = this.subValue;
                     }
-                    }
-                })
-            }else {
-                if (this.$route.query.column) {
-                    this.formData[this.subColumn] = this.subValue;
                 }
+            })
+        } else {
+            if (this.$route.query.column) {
+                this.formData[this.subColumn] = this.subValue;
             }
+        }
 
-                                                                                                                                                                                                                                                                                                            },
-        data() {
-            return {
-                saving: false,
-                formData: {},
-                rules: {
-                                                                                                                                                                                                                                                                                                            },
-                                                                                            subColumn: '',
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {},
+            rules: {
+            },
+            subColumn: '',
             subValue: '',
+            useFlag: true,
         }
+    },
+    methods: {
+        onSave() {
+            this.$refs.form.validate((valid) => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
         },
-        methods: {
-            onSave() {
-                this.$refs.form.validate((valid) => {
-                    if (valid) {
-                        this.submit();
-                    } else {
-                        return false;
-                    }
-                });
-            },
-            submit() {
-                var data = JSON.parse(JSON.stringify(this.formData));
-                this.$http.post({
-                    url: this.formData.id ? '/systemConfig/update' : '/systemConfig/save',
-                    data: data
-                }).then(res => {
-                    if (res.success) {
-                        this.$message.success('成功');
-                        this.$router.go(-1);
-                    } else {
-                        this.$message.warning('失败')
-                    }
-                });
-            },
-            onDelete() {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
-                    return this.$http.post({
+        submit() {
+            this.formData.useFlag = this.useFlag ? 'Y' : 'N';
+            var data = JSON.parse(JSON.stringify(this.formData));
+            this.$http.post({
+                url: this.formData.id ? '/systemConfig/update' : '/systemConfig/save',
+                data: data
+            }).then(res => {
+                if (res.success) {
+                    this.$message.success('成功');
+                } else {
+                    this.$message.warning('失败')
+                }
+            });
+        },
+        onDelete() {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
+                return this.$http.post({
                     url: '/systemConfig/del',
                     data: { id: this.formData.id }
-                    })
-                }).then(() => {
-                    this.$message.success('删除成功');
-                    this.$router.go(-1);
-                }).catch(action => {
-                    if (action === 'cancel') {
-                        this.$message.info('删除取消');
-                    } else {
-                        this.$message.error('删除失败');
-                    }
                 })
-            },
-        }
+            }).then(() => {
+                this.$message.success('删除成功');
+            }).catch(action => {
+                if (action === 'cancel') {
+                    this.$message.info('删除取消');
+                } else {
+                    this.$message.error('删除失败');
+                }
+            })
+        },
     }
+}
 </script>
 <style lang="less" scoped>
 </style>

+ 6 - 6
src/main/vue/src/router/index.js

@@ -336,14 +336,14 @@ const router = new Router({
                     component: () => import('../pages/OrderLogisticss')
                 },
                 {
-                    path: '/prodcutCollection',
-                    name: 'ProdcutCollection',
-                    component: () => import('../pages/ProdcutCollection')
+                    path: '/productCollection',
+                    name: 'ProductCollection',
+                    component: () => import('../pages/ProductCollection')
                 },
                 {
-                    path: '/prodcutCollections',
-                    name: 'ProdcutCollections',
-                    component: () => import('../pages/ProdcutCollections')
+                    path: '/productCollections',
+                    name: 'ProductCollections',
+                    component: () => import('../pages/ProductCollections')
                 },
                 {
                     path: '/storeCollection',

File diff suppressed because it is too large
+ 0 - 0
src/main/vue/static/skins/lightgray/content.inline.min.css


File diff suppressed because it is too large
+ 0 - 0
src/main/vue/static/skins/lightgray/content.min.css


+ 1 - 0
src/main/vue/static/skins/lightgray/content.mobile.min.css

@@ -0,0 +1 @@
+.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}

BIN
src/main/vue/static/skins/lightgray/fonts/tinymce-mobile.woff


BIN
src/main/vue/static/skins/lightgray/fonts/tinymce-small.eot


File diff suppressed because it is too large
+ 27 - 0
src/main/vue/static/skins/lightgray/fonts/tinymce-small.svg


BIN
src/main/vue/static/skins/lightgray/fonts/tinymce-small.ttf


BIN
src/main/vue/static/skins/lightgray/fonts/tinymce-small.woff


BIN
src/main/vue/static/skins/lightgray/fonts/tinymce.eot


+ 131 - 0
src/main/vue/static/skins/lightgray/fonts/tinymce.svg

@@ -0,0 +1,131 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="tinymce" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe000;" glyph-name="save" d="M896 960h-896v-1024h1024v896l-128 128zM512 832h128v-256h-128v256zM896 64h-768v768h64v-320h576v320h74.978l53.022-53.018v-714.982z" />
+<glyph unicode="&#xe001;" glyph-name="newdocument" d="M903.432 760.57l-142.864 142.862c-31.112 31.112-92.568 56.568-136.568 56.568h-480c-44 0-80-36-80-80v-864c0-44 36-80 80-80h736c44 0 80 36 80 80v608c0 44-25.456 105.458-56.568 136.57zM858.178 715.314c3.13-3.13 6.25-6.974 9.28-11.314h-163.458v163.456c4.34-3.030 8.184-6.15 11.314-9.28l142.864-142.862zM896 16c0-8.672-7.328-16-16-16h-736c-8.672 0-16 7.328-16 16v864c0 8.672 7.328 16 16 16h480c4.832 0 10.254-0.61 16-1.704v-254.296h254.296c1.094-5.746 1.704-11.166 1.704-16v-608z" />
+<glyph unicode="&#xe002;" glyph-name="fullpage" d="M1024 367.542v160.916l-159.144 15.914c-8.186 30.042-20.088 58.548-35.21 84.98l104.596 127.838-113.052 113.050-127.836-104.596c-26.434 15.124-54.942 27.026-84.982 35.208l-15.914 159.148h-160.916l-15.914-159.146c-30.042-8.186-58.548-20.086-84.98-35.208l-127.838 104.594-113.050-113.050 104.596-127.836c-15.124-26.432-27.026-54.94-35.21-84.98l-159.146-15.916v-160.916l159.146-15.914c8.186-30.042 20.086-58.548 35.21-84.982l-104.596-127.836 113.048-113.048 127.838 104.596c26.432-15.124 54.94-27.028 84.98-35.21l15.916-159.148h160.916l15.914 159.144c30.042 8.186 58.548 20.088 84.982 35.21l127.836-104.596 113.048 113.048-104.596 127.836c15.124 26.434 27.028 54.942 35.21 84.98l159.148 15.92zM704 384l-128-128h-128l-128 128v128l128 128h128l128-128v-128z" />
+<glyph unicode="&#xe003;" glyph-name="alignleft" d="M0 896h1024v-128h-1024zM0 704h640v-128h-640zM0 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe004;" glyph-name="aligncenter" d="M0 896h1024v-128h-1024zM192 704h640v-128h-640zM192 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe005;" glyph-name="alignright" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 320h640v-128h-640zM0 512h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe006;" glyph-name="alignjustify" d="M0 896h1024v-128h-1024zM0 704h1024v-128h-1024zM0 512h1024v-128h-1024zM0 320h1024v-128h-1024zM0 128h1024v-128h-1024z" />
+<glyph unicode="&#xe007;" glyph-name="cut" d="M890.774 250.846c-45.654 45.556-103.728 69.072-157.946 69.072h-29.112l-63.904 64.008 255.62 256.038c63.904 64.010 63.904 192.028 0 256.038l-383.43-384.056-383.432 384.054c-63.904-64.008-63.904-192.028 0-256.038l255.622-256.034-63.906-64.008h-29.114c-54.22 0-112.292-23.518-157.948-69.076-81.622-81.442-92.65-202.484-24.63-270.35 29.97-29.902 70.288-44.494 112.996-44.494 54.216 0 112.29 23.514 157.946 69.072 53.584 53.464 76.742 124 67.084 185.348l65.384 65.488 65.376-65.488c-9.656-61.348 13.506-131.882 67.084-185.348 45.662-45.558 103.732-69.072 157.948-69.072 42.708 0 83.024 14.592 112.994 44.496 68.020 67.866 56.988 188.908-24.632 270.35zM353.024 114.462c-7.698-17.882-19.010-34.346-33.626-48.926-14.636-14.604-31.172-25.918-49.148-33.624-16.132-6.916-32.96-10.568-48.662-10.568-15.146 0-36.612 3.402-52.862 19.612-16.136 16.104-19.52 37.318-19.52 52.288 0 15.542 3.642 32.21 10.526 48.212 7.7 17.884 19.014 34.346 33.626 48.926 14.634 14.606 31.172 25.914 49.15 33.624 16.134 6.914 32.96 10.568 48.664 10.568 15.146 0 36.612-3.4 52.858-19.614 16.134-16.098 19.522-37.316 19.522-52.284 0.002-15.542-3.638-32.216-10.528-48.214zM512.004 293.404c-49.914 0-90.376 40.532-90.376 90.526 0 49.992 40.462 90.52 90.376 90.52s90.372-40.528 90.372-90.52c0-49.998-40.46-90.526-90.372-90.526zM855.272 40.958c-16.248-16.208-37.712-19.612-52.86-19.612-15.704 0-32.53 3.652-48.666 10.568-17.972 7.706-34.508 19.020-49.142 33.624-14.614 14.58-25.926 31.042-33.626 48.926-6.886 15.998-10.526 32.672-10.526 48.212 0 14.966 3.384 36.188 19.52 52.286 16.246 16.208 37.712 19.614 52.86 19.614 15.7 0 32.53-3.654 48.66-10.568 17.978-7.708 34.516-19.018 49.15-33.624 14.61-14.58 25.924-31.042 33.626-48.926 6.884-15.998 10.526-32.67 10.526-48.212-0.002-14.97-3.39-36.186-19.522-52.288z" />
+<glyph unicode="&#xe008;" glyph-name="paste" d="M832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h448l192 192v512h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM832 26.51v101.49h101.49l-101.49-101.49zM960 192h-192v-192h-320v576h512v-384z" />
+<glyph unicode="&#xe009;" glyph-name="searchreplace" d="M64 960h384v-64h-384zM576 960h384v-64h-384zM952 640h-56v256h-256v-256h-256v256h-256v-256h-56c-39.6 0-72-32.4-72-72v-560c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v376h128v-376c0-39.6 32.4-72 72-72h304c39.6 0 72 32.4 72 72v560c0 39.6-32.4 72-72 72zM348 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32zM544 448h-64c-17.6 0-32 14.4-32 32s14.4 32 32 32h64c17.6 0 32-14.4 32-32s-14.4-32-32-32zM924 0h-248c-19.8 0-36 14.4-36 32s16.2 32 36 32h248c19.8 0 36-14.4 36-32s-16.2-32-36-32z" />
+<glyph unicode="&#xe00a;" glyph-name="bullist" d="M384 896h640v-128h-640v128zM384 512h640v-128h-640v128zM384 128h640v-128h-640v128zM0 832c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 448c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128zM0 64c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128s-128 57.308-128 128z" />
+<glyph unicode="&#xe00b;" glyph-name="numlist" d="M384 128h640v-128h-640zM384 512h640v-128h-640zM384 896h640v-128h-640zM192 960v-256h-64v192h-64v64zM128 434v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM256 256v-320h-192v64h128v64h-128v64h128v64h-128v64z" />
+<glyph unicode="&#xe00c;" glyph-name="indent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM0 256v384l256-192z" />
+<glyph unicode="&#xe00d;" glyph-name="outdent" d="M0 896h1024v-128h-1024zM384 704h640v-128h-640zM384 512h640v-128h-640zM384 320h640v-128h-640zM0 128h1024v-128h-1024zM256 640v-384l-256 192z" />
+<glyph unicode="&#xe00e;" glyph-name="blockquote" d="M225 512c123.712 0 224-100.29 224-224 0-123.712-100.288-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.634-11.636-22.252-24.016-31.83-37.020 11.438 1.8 23.16 2.746 35.104 2.746zM801 512c123.71 0 224-100.29 224-224 0-123.712-100.29-224-224-224s-224 100.288-224 224l-1 32c0 247.424 200.576 448 448 448v-128c-85.474 0-165.834-33.286-226.274-93.726-11.636-11.636-22.254-24.016-31.832-37.020 11.44 1.8 23.16 2.746 35.106 2.746z" />
+<glyph unicode="&#xe00f;" glyph-name="undo" d="M761.862-64c113.726 206.032 132.888 520.306-313.862 509.824v-253.824l-384 384 384 384v-248.372c534.962 13.942 594.57-472.214 313.862-775.628z" />
+<glyph unicode="&#xe010;" glyph-name="redo" d="M576 711.628v248.372l384-384-384-384v253.824c-446.75 10.482-427.588-303.792-313.86-509.824-280.712 303.414-221.1 789.57 313.86 775.628z" />
+<glyph unicode="&#xe011;" glyph-name="link" d="M320 256c17.6-17.6 47.274-16.726 65.942 1.942l316.118 316.116c18.668 18.668 19.54 48.342 1.94 65.942s-47.274 16.726-65.942-1.942l-316.116-316.116c-18.668-18.668-19.542-48.342-1.942-65.942zM476.888 284.888c4.56-9.050 6.99-19.16 6.99-29.696 0-17.616-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.382 99.382c-12.248 12.248-18.992 28.694-18.992 46.308s6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994 10.536 0 20.644-2.43 29.696-6.99l65.338 65.338c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-60.67-60.67-60.67-159.948 0-220.618l99.382-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c55.82 55.82 60.238 144.298 13.344 205.344l-65.34-65.34zM978.498 815.116l-99.382 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.972-15.166-110.308-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.248 12.248 28.694 18.994 46.308 18.994s34.060-6.746 46.308-18.994l99.382-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.382-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.502l163.382 163.382c60.67 60.666 60.67 159.944 0 220.614z" />
+<glyph unicode="&#xe012;" glyph-name="unlink" d="M476.888 284.886c4.56-9.048 6.99-19.158 6.99-29.696 0-17.616-6.744-34.058-18.992-46.308l-163.38-163.38c-12.248-12.248-28.696-18.992-46.308-18.992s-34.060 6.744-46.308 18.992l-99.38 99.38c-12.248 12.25-18.992 28.696-18.992 46.308s6.744 34.060 18.992 46.308l163.38 163.382c12.248 12.246 28.696 18.992 46.308 18.992 10.538 0 20.644-2.43 29.696-6.988l65.338 65.336c-27.87 21.41-61.44 32.16-95.034 32.16-39.986 0-79.972-15.166-110.308-45.502l-163.38-163.382c-60.67-60.67-60.67-159.95 0-220.618l99.38-99.382c30.334-30.332 70.32-45.5 110.306-45.5 39.988 0 79.974 15.168 110.308 45.502l163.38 163.38c55.82 55.82 60.238 144.298 13.344 205.346l-65.34-65.338zM978.496 815.116l-99.38 99.382c-30.334 30.336-70.32 45.502-110.308 45.502-39.986 0-79.97-15.166-110.306-45.502l-163.382-163.382c-55.82-55.82-60.238-144.298-13.342-205.342l65.338 65.34c-4.558 9.050-6.988 19.16-6.988 29.694 0 17.616 6.744 34.060 18.992 46.308l163.382 163.382c12.246 12.248 28.694 18.994 46.306 18.994 17.616 0 34.060-6.746 46.308-18.994l99.38-99.382c12.248-12.248 18.992-28.694 18.992-46.308s-6.744-34.060-18.992-46.308l-163.38-163.382c-12.248-12.248-28.694-18.992-46.308-18.992-10.536 0-20.644 2.43-29.696 6.99l-65.338-65.338c27.872-21.41 61.44-32.16 95.034-32.16 39.988 0 79.974 15.168 110.308 45.504l163.38 163.38c60.672 60.666 60.672 159.944 0 220.614zM233.368 681.376l-191.994 191.994 45.256 45.256 191.994-191.994zM384 960h64v-192h-64zM0 576h192v-64h-192zM790.632 214.624l191.996-191.996-45.256-45.256-191.996 191.996zM576 128h64v-192h-64zM832 384h192v-64h-192z" />
+<glyph unicode="&#xe013;" glyph-name="anchor" d="M192 960v-1024l320 320 320-320v1024h-640zM768 90.51l-256 256-256-256v805.49h512v-805.49z" />
+<glyph unicode="&#xe014;" glyph-name="image" d="M0 832v-832h1024v832h-1024zM960 64h-896v704h896v-704zM704 608c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96zM896 128h-768l192 512 256-320 128 96z" />
+<glyph unicode="&#xe015;" glyph-name="media" d="M0 832v-768h1024v768h-1024zM192 128h-128v128h128v-128zM192 384h-128v128h128v-128zM192 640h-128v128h128v-128zM768 128h-512v640h512v-640zM960 128h-128v128h128v-128zM960 384h-128v128h128v-128zM960 640h-128v128h128v-128zM384 640v-384l256 192z" />
+<glyph unicode="&#xe016;" glyph-name="help" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
+<glyph unicode="&#xe017;" glyph-name="code" d="M320 704l-256-256 256-256h128l-256 256 256 256zM704 704h-128l256-256-256-256h128l256 256z" />
+<glyph unicode="&#xe018;" glyph-name="inserttime" d="M512 768c-212.076 0-384-171.922-384-384s171.922-384 384-384c212.074 0 384 171.922 384 384s-171.926 384-384 384zM715.644 180.354c-54.392-54.396-126.716-84.354-203.644-84.354s-149.25 29.958-203.646 84.354c-54.396 54.394-84.354 126.718-84.354 203.646s29.958 149.25 84.354 203.646c54.396 54.396 126.718 84.354 203.646 84.354s149.252-29.958 203.642-84.354c54.402-54.396 84.358-126.718 84.358-203.646s-29.958-149.252-84.356-203.646zM325.93 756.138l-42.94 85.878c-98.874-49.536-179.47-130.132-229.006-229.008l85.876-42.94c40.248 80.336 105.732 145.822 186.070 186.070zM884.134 570.070l85.878 42.938c-49.532 98.876-130.126 179.472-229.004 229.008l-42.944-85.878c80.338-40.248 145.824-105.732 186.070-186.068zM512 576h-64v-192c0-10.11 4.7-19.11 12.022-24.972l-0.012-0.016 160-128 39.976 49.976-147.986 118.39v176.622z" />
+<glyph unicode="&#xe019;" glyph-name="preview" d="M512 640c-209.368 0-395.244-100.556-512-256 116.756-155.446 302.632-256 512-256s395.244 100.554 512 256c-116.756 155.444-302.632 256-512 256zM448 512c35.346 0 64-28.654 64-64s-28.654-64-64-64-64 28.654-64 64 28.654 64 64 64zM773.616 254.704c-39.648-20.258-81.652-35.862-124.846-46.376-44.488-10.836-90.502-16.328-136.77-16.328-46.266 0-92.282 5.492-136.768 16.324-43.194 10.518-85.198 26.122-124.846 46.376-63.020 32.202-120.222 76.41-167.64 129.298 47.418 52.888 104.62 97.1 167.64 129.298 32.336 16.522 66.242 29.946 101.082 40.040-19.888-30.242-31.468-66.434-31.468-105.336 0-106.040 85.962-192 192-192s192 85.96 192 192c0 38.902-11.582 75.094-31.466 105.34 34.838-10.096 68.744-23.52 101.082-40.042 63.022-32.198 120.218-76.408 167.638-129.298-47.42-52.886-104.618-97.1-167.638-129.296zM860.918 716.278c-108.72 55.554-226.112 83.722-348.918 83.722s-240.198-28.168-348.918-83.722c-58.772-30.032-113.732-67.904-163.082-112.076v-109.206c55.338 58.566 120.694 107.754 192.194 144.29 99.62 50.904 207.218 76.714 319.806 76.714s220.186-25.81 319.804-76.716c71.502-36.536 136.858-85.724 192.196-144.29v109.206c-49.35 44.174-104.308 82.046-163.082 112.078z" />
+<glyph unicode="&#xe01a;" glyph-name="forecolor" d="M322.018 128l57.6 192h264.764l57.6-192h113.632l-191.996 640h-223.236l-192-640h113.636zM475.618 640h72.764l57.6-192h-187.964l57.6 192z" />
+<glyph unicode="&#xe01b;" glyph-name="table" d="M0 896v-896h1024v896h-1024zM384 320v192h256v-192h-256zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xe01c;" glyph-name="hr" d="M0 512h1024v-128h-1024z" />
+<glyph unicode="&#xe01d;" glyph-name="removeformat" d="M0 64h576v-128h-576zM192 960h704v-128h-704zM277.388 128l204.688 784.164 123.85-32.328-196.25-751.836zM929.774-64l-129.774 129.774-129.774-129.774-62.226 62.226 129.774 129.774-129.774 129.774 62.226 62.226 129.774-129.774 129.774 129.774 62.226-62.226-129.774-129.774 129.774-129.774z" />
+<glyph unicode="&#xe01e;" glyph-name="sub" d="M768 50v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
+<glyph unicode="&#xe01f;" glyph-name="sup" d="M768 754v-50h128v-64h-192v146l128 60v50h-128v64h192v-146zM676 704h-136l-188-188-188 188h-136l256-256-256-256h136l188 188 188-188h136l-256 256z" />
+<glyph unicode="&#xe020;" glyph-name="charmap" d="M704 64h256l64 128v-256h-384v214.214c131.112 56.484 224 197.162 224 361.786 0 214.432-157.598 382.266-352 382.266-194.406 0-352-167.832-352-382.266 0-164.624 92.886-305.302 224-361.786v-214.214h-384v256l64-128h256v32.59c-187.63 66.46-320 227.402-320 415.41 0 247.424 229.23 448 512 448s512-200.576 512-448c0-188.008-132.37-348.95-320-415.41v-32.59z" />
+<glyph unicode="&#xe021;" glyph-name="emoticons" d="M512 960c-282.77 0-512-229.228-512-512 0-282.77 229.228-512 512-512 282.77 0 512 229.23 512 512 0 282.772-229.23 512-512 512zM512 16c-238.586 0-432 193.412-432 432 0 238.586 193.414 432 432 432 238.59 0 432-193.414 432-432 0-238.588-193.41-432-432-432zM384 640c0-35.346-28.654-64-64-64s-64 28.654-64 64 28.654 64 64 64 64-28.654 64-64zM768 640c0-35.346-28.652-64-64-64s-64 28.654-64 64 28.652 64 64 64 64-28.654 64-64zM512 308c141.074 0 262.688 57.532 318.462 123.192-20.872-171.22-156.288-303.192-318.462-303.192-162.118 0-297.498 132.026-318.444 303.168 55.786-65.646 177.386-123.168 318.444-123.168z" />
+<glyph unicode="&#xe022;" glyph-name="print" d="M256 896h512v-128h-512zM960 704h-896c-35.2 0-64-28.8-64-64v-320c0-35.2 28.796-64 64-64h192v-256h512v256h192c35.2 0 64 28.8 64 64v320c0 35.2-28.8 64-64 64zM704 64h-384v320h384v-320zM974.4 608c0-25.626-20.774-46.4-46.398-46.4-25.626 0-46.402 20.774-46.402 46.4s20.776 46.4 46.402 46.4c25.626 0 46.398-20.774 46.398-46.4z" />
+<glyph unicode="&#xe023;" glyph-name="fullscreen" d="M1024 960v-384l-138.26 138.26-212-212-107.48 107.48 212 212-138.26 138.26zM245.74 821.74l212-212-107.48-107.48-212 212-138.26-138.26v384h384zM885.74 181.74l138.26 138.26v-384h-384l138.26 138.26-212 212 107.48 107.48zM457.74 286.26l-212-212 138.26-138.26h-384v384l138.26-138.26 212 212z" />
+<glyph unicode="&#xe024;" glyph-name="spellchecker" d="M128 704h128v-192h64v384c0 35.2-28.8 64-64 64h-128c-35.2 0-64-28.8-64-64v-384h64v192zM128 896h128v-128h-128v128zM960 896v64h-192c-35.202 0-64-28.8-64-64v-320c0-35.2 28.798-64 64-64h192v64h-192v320h192zM640 800v96c0 35.2-28.8 64-64 64h-192v-448h192c35.2 0 64 28.8 64 64v96c0 35.2-8.8 64-44 64 35.2 0 44 28.8 44 64zM576 576h-128v128h128v-128zM576 768h-128v128h128v-128zM832 384l-416-448-224 288 82 70 142-148 352 302z" />
+<glyph unicode="&#xe025;" glyph-name="nonbreaking" d="M448 384h-192v128h192v192h128v-192h192v-128h-192v-192h-128zM1024 320v-384h-1024v384h128v-256h768v256z" />
+<glyph unicode="&#xe026;" glyph-name="template" d="M384 768h128v-64h-128zM576 768h128v-64h-128zM896 768v-256h-192v64h128v128h-64v64zM320 576h128v-64h-128zM512 576h128v-64h-128zM192 704v-128h64v-64h-128v256h192v-64zM384 384h128v-64h-128zM576 384h128v-64h-128zM896 384v-256h-192v64h128v128h-64v64zM320 192h128v-64h-128zM512 192h128v-64h-128zM192 320v-128h64v-64h-128v256h192v-64zM960 896h-896v-896h896v896zM1024 960v0-1024h-1024v1024h1024z" />
+<glyph unicode="&#xe027;" glyph-name="pagebreak" d="M0 448h128v-64h-128zM192 448h192v-64h-192zM448 448h128v-64h-128zM640 448h192v-64h-192zM896 448h128v-64h-128zM880 960l16-448h-768l16 448h32l16-384h640l16 384zM144-64l-16 384h768l-16-384h-32l-16 320h-640l-16-320z" />
+<glyph unicode="&#xe028;" glyph-name="restoredraft" d="M576 896c247.424 0 448-200.576 448-448s-200.576-448-448-448v96c94.024 0 182.418 36.614 248.902 103.098s103.098 154.878 103.098 248.902c0 94.022-36.614 182.418-103.098 248.902s-154.878 103.098-248.902 103.098c-94.022 0-182.418-36.614-248.902-103.098-51.14-51.138-84.582-115.246-97.306-184.902h186.208l-224-256-224 256h164.57c31.060 217.102 217.738 384 443.43 384zM768 512v-128h-256v320h128v-192z" />
+<glyph unicode="&#xe02a;" glyph-name="bold" d="M707.88 475.348c37.498 44.542 60.12 102.008 60.12 164.652 0 141.16-114.842 256-256 256h-320v-896h384c141.158 0 256 114.842 256 256 0 92.956-49.798 174.496-124.12 219.348zM384 768h101.5c55.968 0 101.5-57.42 101.5-128s-45.532-128-101.5-128h-101.5v256zM543 128h-159v256h159c58.45 0 106-57.42 106-128s-47.55-128-106-128z" />
+<glyph unicode="&#xe02b;" glyph-name="italic" d="M896 896v-64h-128l-320-768h128v-64h-448v64h128l320 768h-128v64z" />
+<glyph unicode="&#xe02c;" glyph-name="underline" d="M704 896h128v-416c0-159.058-143.268-288-320-288-176.73 0-320 128.942-320 288v416h128v-416c0-40.166 18.238-78.704 51.354-108.506 36.896-33.204 86.846-51.494 140.646-51.494s103.75 18.29 140.646 51.494c33.116 29.802 51.354 68.34 51.354 108.506v416zM192 128h640v-128h-640z" />
+<glyph unicode="&#xe02d;" glyph-name="strikethrough" d="M731.42 442.964c63.92-47.938 100.58-116.086 100.58-186.964s-36.66-139.026-100.58-186.964c-59.358-44.518-137.284-69.036-219.42-69.036-82.138 0-160.062 24.518-219.42 69.036-63.92 47.938-100.58 116.086-100.58 186.964h128c0-69.382 87.926-128 192-128s192 58.618 192 128c0 69.382-87.926 128-192 128-82.138 0-160.062 24.518-219.42 69.036-63.92 47.94-100.58 116.086-100.58 186.964s36.66 139.024 100.58 186.964c59.358 44.518 137.282 69.036 219.42 69.036 82.136 0 160.062-24.518 219.42-69.036 63.92-47.94 100.58-116.086 100.58-186.964h-128c0 69.382-87.926 128-192 128s-192-58.618-192-128c0-69.382 87.926-128 192-128 82.136 0 160.062-24.518 219.42-69.036zM0 448h1024v-64h-1024z" />
+<glyph unicode="&#xe02e;" glyph-name="visualchars" d="M384 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224z" />
+<glyph unicode="&#xe02f;" glyph-name="ltr" d="M448 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM64 512l256-224-256-224z" />
+<glyph unicode="&#xe030;" glyph-name="rtl" d="M256 896h512v-128h-128v-768h-128v768h-128v-768h-128v448c-123.712 0-224 100.288-224 224s100.288 224 224 224zM960 64l-256 224 256 224z" />
+<glyph unicode="&#xe031;" glyph-name="copy" d="M832 704h-192v64l-192 192h-448v-768h384v-256h640v576l-192 192zM832 613.49l101.49-101.49h-101.49v101.49zM448 869.49l101.49-101.49h-101.49v101.49zM64 896h320v-192h192v-448h-512v640zM960 0h-512v192h192v448h128v-192h192v-448z" />
+<glyph unicode="&#xe032;" glyph-name="resize" d="M768 704h64v-64h-64zM640 576h64v-64h-64zM640 448h64v-64h-64zM640 320h64v-64h-64zM512 448h64v-64h-64zM512 320h64v-64h-64zM384 320h64v-64h-64zM768 576h64v-64h-64zM768 448h64v-64h-64zM768 320h64v-64h-64zM768 192h64v-64h-64zM640 192h64v-64h-64zM512 192h64v-64h-64zM384 192h64v-64h-64zM256 192h64v-64h-64z" />
+<glyph unicode="&#xe033;" glyph-name="checkbox" d="M128 416l288-288 480 480-128 128-352-352-160 160z" />
+<glyph unicode="&#xe034;" glyph-name="browse" d="M928 832h-416l-32 64h-352l-64-128h896zM904.34 256h74.86l44.8 448h-1024l64-640h484.080c-104.882 37.776-180.080 138.266-180.080 256 0 149.982 122.018 272 272 272 149.98 0 272-122.018 272-272 0-21.678-2.622-43.15-7.66-64zM1002.996 46.25l-198.496 174.692c17.454 28.92 27.5 62.814 27.5 99.058 0 106.040-85.96 192-192 192s-192-85.96-192-192 85.96-192 192-192c36.244 0 70.138 10.046 99.058 27.5l174.692-198.496c22.962-26.678 62.118-28.14 87.006-3.252l5.492 5.492c24.888 24.888 23.426 64.044-3.252 87.006zM640 196c-68.484 0-124 55.516-124 124s55.516 124 124 124 124-55.516 124-124-55.516-124-124-124z" />
+<glyph unicode="&#xe035;" glyph-name="pastetext" d="M512 448v-128h32l32 64h64v-256h-48v-64h224v64h-48v256h64l32-64h32v128zM832 640v160c0 17.6-14.4 32-32 32h-224v64c0 35.2-28.8 64-64 64h-128c-35.204 0-64-28.8-64-64v-64h-224c-17.602 0-32-14.4-32-32v-640c0-17.6 14.398-32 32-32h288v-192h640v704h-192zM384 895.886c0.034 0.038 0.072 0.078 0.114 0.114h127.768c0.042-0.036 0.082-0.076 0.118-0.114v-63.886h-128v63.886zM192 704v64h512v-64h-512zM960 0h-512v576h512v-576z" />
+<glyph unicode="&#xe600;" glyph-name="gamma" d="M483.2 320l-147.2 336c-9.6 25.6-19.2 44.8-25.6 54.4s-16 12.8-25.6 12.8c-16 0-25.6-3.2-28.8-3.2v70.4c9.6 6.4 25.6 6.4 38.4 9.6 32 0 57.6-6.4 73.6-22.4 6.4-6.4 12.8-16 19.2-25.6 6.4-12.8 12.8-25.6 16-41.6l121.6-291.2 150.4 371.2h92.8l-198.4-470.4v-224h-86.4v224zM0 960v-1024h1024v1024h-1024zM960 0h-896v896h896v-896z" />
+<glyph unicode="&#xe601;" glyph-name="orientation" d="M627.2 80h-579.2v396.8h579.2v-396.8zM553.6 406.4h-435.2v-256h435.2v256zM259.2 732.8c176 176 457.6 176 633.6 0s176-457.6 0-633.6c-121.6-121.6-297.6-160-454.4-108.8 121.6-28.8 262.4 9.6 361.6 108.8 150.4 150.4 160 384 22.4 521.6-121.6 121.6-320 128-470.4 19.2l86.4-86.4-294.4-22.4 22.4 294.4 92.8-92.8z" />
+<glyph unicode="&#xe602;" glyph-name="invert" d="M892.8-22.4l-89.6 89.6c-70.4-80-172.8-131.2-288-131.2-208 0-380.8 166.4-384 377.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4v0c0 0 0 0 0 3.2 0 0 0 3.2 0 3.2 3.2 105.6 48 211.2 105.6 304l-192 192 44.8 44.8 182.4-182.4c0 0 0 0 0 0l569.6-569.6c0 0 0 0 0 0l99.2-99.2-48-44.8zM896 326.4c0 0 0 0 0 0 0 3.2 0 6.4 0 6.4-9.6 316.8-384 627.2-384 627.2s-108.8-89.6-208-220.8l70.4-70.4c6.4 9.6 16 22.4 22.4 32 41.6 51.2 83.2 96 115.2 128v0c32-32 73.6-76.8 115.2-128 108.8-137.6 169.6-265.6 172.8-371.2 0 0 0-3.2 0-3.2v0 0c0-3.2 0-3.2 0-6.4s0-3.2 0-3.2v0 0c0-22.4-3.2-41.6-9.6-64l76.8-76.8c16 41.6 28.8 89.6 28.8 137.6 0 0 0 0 0 0 0 3.2 0 3.2 0 6.4s0 3.2 0 6.4z" />
+<glyph unicode="&#xe603;" glyph-name="codesample" d="M199.995 578.002v104.002c0 43.078 34.923 78.001 78.001 78.001h26v104.002h-26c-100.518 0-182.003-81.485-182.003-182.003v-104.002c0-43.078-34.923-78.001-78.001-78.001h-26v-104.002h26c43.078 0 78.001-34.923 78.001-78.001v-104.002c0-100.515 81.485-182.003 182.003-182.003h26v104.002h-26c-43.078 0-78.001 34.923-78.001 78.001v104.002c0 50.931-20.928 96.966-54.646 130.002 33.716 33.036 54.646 79.072 54.646 130.002zM824.005 578.002v104.002c0 43.078-34.923 78.001-78.001 78.001h-26v104.002h26c100.515 0 182.003-81.485 182.003-182.003v-104.002c0-43.078 34.923-78.001 78.001-78.001h26v-104.002h-26c-43.078 0-78.001-34.923-78.001-78.001v-104.002c0-100.515-81.488-182.003-182.003-182.003h-26v104.002h26c43.078 0 78.001 34.923 78.001 78.001v104.002c0 50.931 20.928 96.966 54.646 130.002-33.716 33.036-54.646 79.072-54.646 130.002zM616.002 603.285c0-57.439-46.562-104.002-104.002-104.002s-104.002 46.562-104.002 104.002c0 57.439 46.562 104.002 104.002 104.002s104.002-46.562 104.002-104.002zM512 448.717c-57.439 0-104.002-46.562-104.002-104.002 0-55.845 26-100.115 105.752-103.88-23.719-33.417-59.441-46.612-105.752-50.944v-61.751c0 0 208.003-18.144 208.003 216.577-0.202 57.441-46.56 104.004-104.002 104.004z" />
+<glyph unicode="&#xe604;" glyph-name="tablerowprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xe605;" glyph-name="tablecellprops" d="M0 896v-896h1024v896h-1024zM640 256v-192h-256v192h256zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192zM704 64v192h256v-192h-256z" />
+<glyph unicode="&#xe606;" glyph-name="table2" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-896v192h896v-192z" />
+<glyph unicode="&#xe607;" glyph-name="tablemergecells" d="M0 896v-896h1024v896h-1024zM384 64v448h576v-448h-576zM640 768v-192h-256v192h256zM320 768v-192h-256v192h256zM64 512h256v-192h-256v192zM704 576v192h256v-192h-256zM64 256h256v-192h-256v192z" />
+<glyph unicode="&#xe608;" glyph-name="tableinsertcolbefore" d="M320 188.8v182.4h-182.4v89.6h182.4v182.4h86.4v-182.4h185.6v-89.6h-185.6v-182.4zM0 896v-896h1024v896h-1024zM640 64h-576v704h576v-704zM960 64h-256v192h256v-192zM960 320h-256v192h256v-192zM960 576h-256v192h256v-192z" />
+<glyph unicode="&#xe609;" glyph-name="tableinsertcolafter" d="M704 643.2v-182.4h182.4v-89.6h-182.4v-182.4h-86.4v182.4h-185.6v89.6h185.6v182.4zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v704h576v-704z" />
+<glyph unicode="&#xe60a;" glyph-name="tableinsertrowbefore" d="M691.2 508.8h-144v-144h-70.4v144h-144v67.2h144v144h70.4v-144h144zM0 896v-896h1024v896h-1024zM320 64h-256v192h256v-192zM640 64h-256v192h256v-192zM960 64h-256v192h256v-192zM960 316.8h-896v451.2h896v-451.2z" />
+<glyph unicode="&#xe60b;" glyph-name="tableinsertrowafter" d="M332.8 323.2h144v144h70.4v-144h144v-67.2h-144v-144h-70.4v144h-144zM0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM64 768h256v-192h-256v192zM960 64h-896v451.2h896v-451.2zM960 576h-256v192h256v-192z" />
+<glyph unicode="&#xe60d;" glyph-name="tablesplitcells" d="M0 896v-896h1024v896h-1024zM384 768h256v-192h-256v192zM320 64h-256v192h256v-192zM320 320h-256v192h256v-192zM320 576h-256v192h256v-192zM960 64h-576v448h576v-448zM960 576h-256v192h256v-192zM864 156.8l-60.8-60.8-131.2 131.2-131.2-131.2-60.8 60.8 131.2 131.2-131.2 131.2 60.8 60.8 131.2-131.2 131.2 131.2 60.8-60.8-131.2-131.2z" />
+<glyph unicode="&#xe60e;" glyph-name="tabledelete" d="M0 896h1024v-896h-1024v896zM60.8 768v-704h899.2v704h-899.2zM809.6 211.2l-96-96-204.8 204.8-204.8-204.8-96 96 204.8 204.8-204.8 204.8 96 96 204.8-204.8 204.8 204.8 96-96-204.8-204.8z" />
+<glyph unicode="&#xe62a;" glyph-name="tableleftheader" d="M0 896v-832h1024v832h-1024zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM640 640h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192zM960 640h-256v192h256v-192z" />
+<glyph unicode="&#xe62b;" glyph-name="tabletopheader" d="M0 896v-832h1024v832h-1024zM320 128h-256v192h256v-192zM320 384h-256v192h256v-192zM640 128h-256v192h256v-192zM640 384h-256v192h256v-192zM960 128h-256v192h256v-192zM960 384h-256v192h256v-192z" />
+<glyph unicode="&#xe800;" glyph-name="tabledeleterow" d="M886.4 572.8l-156.8-156.8 160-160-76.8-76.8-160 160-156.8-156.8-76.8 73.6 160 160-163.2 163.2 76.8 76.8 163.2-163.2 156.8 156.8 73.6-76.8zM0 896v-896h1024v896h-1024zM960 576h-22.4l-64-64h86.4v-192h-89.6l64-64h25.6v-192h-896v192h310.4l64 64h-374.4v192h371.2l-64 64h-307.2v192h896v-192z" />
+<glyph unicode="&#xe801;" glyph-name="tabledeletecol" d="M320 499.2l64-64v-12.8l-64-64v140.8zM640 422.4l64-64v137.6l-64-64v-9.6zM1024 896v-896h-1024v896h1024zM960 768h-256v-51.2l-12.8 12.8-51.2-51.2v89.6h-256v-89.6l-51.2 51.2-12.8-12.8v51.2h-256v-704h256v118.4l35.2-35.2 28.8 28.8v-115.2h256v115.2l48-48 16 16v-83.2h256v707.2zM672 662.4l-156.8-156.8-163.2 163.2-76.8-76.8 163.2-163.2-156.8-156.8 76.8-76.8 156.8 156.8 160-160 76.8 76.8-160 160 156.8 156.8-76.8 76.8z" />
+<glyph unicode="&#xe900;" glyph-name="a11y" d="M960 704v64l-448-128-448 128v-64l320-128v-256l-128-448h64l192 448 192-448h64l-128 448v256zM416 800q0 40 28 68t68 28 68-28 28-68-28-68-68-28-68 28-28 68z" />
+<glyph unicode="&#xe901;" glyph-name="toc" d="M0 896h128v-128h-128v128zM192 896h832v-128h-832v128zM0 512h128v-128h-128v128zM192 512h832v-128h-832v128zM0 128h128v-128h-128v128zM192 128h832v-128h-832v128zM192 704h128v-128h-128v128zM384 704h640v-128h-640v128zM192 320h128v-128h-128v128zM384 320h640v-128h-640v128z" />
+<glyph unicode="&#xe902;" glyph-name="fill" d="M521.6 915.2l-67.2-67.2-86.4 86.4-86.4-86.4 86.4-86.4-368-368 432-432 518.4 518.4-428.8 435.2zM435.2 134.4l-262.4 262.4 35.2 35.2 576 51.2-348.8-348.8zM953.6 409.6c-6.4-6.4-16-16-28.8-32-28.8-32-41.6-64-41.6-89.6v0 0 0 0 0 0 0c0-16 6.4-35.2 22.4-48 12.8-12.8 32-22.4 48-22.4s35.2 6.4 48 22.4 22.4 32 22.4 48v0 0 0 0 0 0 0c0 25.6-12.8 54.4-41.6 89.6-9.6 16-22.4 25.6-28.8 32v0z" />
+<glyph unicode="&#xe903;" glyph-name="borderwidth" d="M0 265.6h1024v-128h-1024v128zM0 32h1024v-64h-1024v64zM0 566.4h1024v-192h-1024v192zM0 928h1024v-256h-1024v256z" />
+<glyph unicode="&#xe904;" glyph-name="line" d="M739.2 627.2l-502.4-502.4h-185.6v185.6l502.4 502.4 185.6-185.6zM803.2 688l-185.6 185.6 67.2 67.2c22.4 22.4 54.4 22.4 76.8 0l108.8-108.8c22.4-22.4 22.4-54.4 0-76.8l-67.2-67.2zM41.6 48h940.8v-112h-940.8v112z" />
+<glyph unicode="&#xe905;" glyph-name="count" d="M0 480h1024v-64h-1024v64zM304 912v-339.2h-67.2v272h-67.2v67.2zM444.8 694.4v-54.4h134.4v-67.2h-201.6v153.6l134.4 64v54.4h-134.4v67.2h201.6v-153.6zM854.4 912v-339.2h-204.8v67.2h137.6v67.2h-137.6v70.4h137.6v67.2h-137.6v67.2zM115.2 166.4c3.2 57.6 38.4 83.2 108.8 83.2 38.4 0 67.2-9.6 86.4-25.6s25.6-35.2 25.6-70.4v-112c0-25.6 0-28.8 9.6-41.6h-73.6c-3.2 9.6-3.2 9.6-6.4 19.2-22.4-19.2-41.6-25.6-70.4-25.6-54.4 0-89.6 32-89.6 76.8s28.8 70.4 99.2 80l38.4 6.4c16 3.2 22.4 6.4 22.4 16 0 12.8-12.8 22.4-38.4 22.4s-41.6-9.6-44.8-28.8h-67.2zM262.4 115.2c-6.4-3.2-12.8-6.4-25.6-6.4l-25.6-6.4c-25.6-6.4-38.4-16-38.4-28.8 0-16 12.8-25.6 35.2-25.6s41.6 9.6 54.4 32v35.2zM390.4 336h73.6v-112c22.4 16 41.6 22.4 67.2 22.4 64 0 105.6-51.2 105.6-124.8 0-76.8-44.8-134.4-108.8-134.4-32 0-48 9.6-67.2 35.2v-28.8h-70.4v342.4zM460.8 121.6c0-41.6 22.4-70.4 51.2-70.4s51.2 28.8 51.2 70.4c0 44.8-19.2 70.4-51.2 70.4-28.8 0-51.2-28.8-51.2-70.4zM851.2 153.6c-3.2 22.4-19.2 35.2-44.8 35.2-32 0-51.2-25.6-51.2-70.4 0-48 19.2-73.6 51.2-73.6 25.6 0 41.6 12.8 44.8 41.6l70.4-3.2c-9.6-60.8-54.4-96-118.4-96-73.6 0-121.6 51.2-121.6 128 0 80 48 131.2 124.8 131.2 64 0 108.8-35.2 112-96h-67.2z" />
+<glyph unicode="&#xe906;" glyph-name="reload" d="M889.68 793.68c-93.608 102.216-228.154 166.32-377.68 166.32-282.77 0-512-229.23-512-512h96c0 229.75 186.25 416 416 416 123.020 0 233.542-53.418 309.696-138.306l-149.696-149.694h352v352l-134.32-134.32zM928 448c0-229.75-186.25-416-416-416-123.020 0-233.542 53.418-309.694 138.306l149.694 149.694h-352v-352l134.32 134.32c93.608-102.216 228.154-166.32 377.68-166.32 282.77 0 512 229.23 512 512h-96z" />
+<glyph unicode="&#xe907;" glyph-name="translate" d="M553.6 304l-118.4 118.4c80 89.6 137.6 195.2 172.8 304h137.6v92.8h-326.4v92.8h-92.8v-92.8h-326.4v-92.8h518.4c-32-89.6-80-176-147.2-249.6-44.8 48-80 99.2-108.8 156.8h-92.8c35.2-76.8 80-147.2 137.6-211.2l-236.8-233.6 67.2-67.2 233.6 233.6 144-144c3.2 0 38.4 92.8 38.4 92.8zM816 540.8h-92.8l-208-560h92.8l51.2 140.8h220.8l51.2-140.8h92.8l-208 560zM691.2 214.4l76.8 201.6 76.8-201.6h-153.6z" />
+<glyph unicode="&#xe908;" glyph-name="drag" d="M576 896h128v-128h-128v128zM576 640h128v-128h-128v128zM320 640h128v-128h-128v128zM576 384h128v-128h-128v128zM320 384h128v-128h-128v128zM320 128h128v-128h-128v128zM576 128h128v-128h-128v128zM320 896h128v-128h-128v128z" />
+<glyph unicode="&#xe90b;" glyph-name="home" d="M1024 369.556l-512 397.426-512-397.428v162.038l512 397.426 512-397.428zM896 384v-384h-256v256h-256v-256h-256v384l384 288z" />
+<glyph unicode="&#xe911;" glyph-name="books" d="M576.234 670.73l242.712 81.432 203.584-606.784-242.712-81.432zM0 64h256v704h-256v-704zM64 640h128v-64h-128v64zM320 64h256v704h-256v-704zM384 640h128v-64h-128v64z" />
+<glyph unicode="&#xe914;" glyph-name="upload" d="M839.432 760.57c27.492-27.492 50.554-78.672 55.552-120.57h-318.984v318.984c41.898-4.998 93.076-28.060 120.568-55.552l142.864-142.862zM512 576v384h-368c-44 0-80-36-80-80v-864c0-44 36-80 80-80h672c44 0 80 36 80 80v560h-384zM576 192v-192h-192v192h-160l256 256 256-256h-160z" />
+<glyph unicode="&#xe915;" glyph-name="editimage" d="M768 416v-352h-640v640h352l128 128h-512c-52.8 0-96-43.2-96-96v-704c0-52.8 43.2-96 96-96h704c52.798 0 96 43.2 96 96v512l-128-128zM864 960l-608-608v-160h160l608 608c0 96-64 160-160 160zM416 320l-48 48 480 480 48-48-480-480z" />
+<glyph unicode="&#xe91c;" glyph-name="bubble" d="M928 896h-832c-52.8 0-96-43.2-96-96v-512c0-52.8 43.2-96 96-96h160v-256l307.2 256h364.8c52.8 0 96 43.2 96 96v512c0 52.8-43.2 96-96 96zM896 320h-379.142l-196.858-174.714v174.714h-192v448h768v-448z" />
+<glyph unicode="&#xe91d;" glyph-name="user" d="M622.826 257.264c-22.11 3.518-22.614 64.314-22.614 64.314s64.968 64.316 79.128 150.802c38.090 0 61.618 91.946 23.522 124.296 1.59 34.054 48.96 267.324-190.862 267.324s-192.45-233.27-190.864-267.324c-38.094-32.35-14.57-124.296 23.522-124.296 14.158-86.486 79.128-150.802 79.128-150.802s-0.504-60.796-22.614-64.314c-71.22-11.332-337.172-128.634-337.172-257.264h896c0 128.63-265.952 245.932-337.174 257.264z" />
+<glyph unicode="&#xe926;" glyph-name="lock" d="M592 512h-16v192c0 105.87-86.13 192-192 192h-128c-105.87 0-192-86.13-192-192v-192h-16c-26.4 0-48-21.6-48-48v-480c0-26.4 21.6-48 48-48h544c26.4 0 48 21.6 48 48v480c0 26.4-21.6 48-48 48zM192 704c0 35.29 28.71 64 64 64h128c35.29 0 64-28.71 64-64v-192h-256v192z" />
+<glyph unicode="&#xe927;" glyph-name="unlock" d="M768 896c105.87 0 192-86.13 192-192v-192h-128v192c0 35.29-28.71 64-64 64h-128c-35.29 0-64-28.71-64-64v-192h16c26.4 0 48-21.6 48-48v-480c0-26.4-21.6-48-48-48h-544c-26.4 0-48 21.6-48 48v480c0 26.4 21.6 48 48 48h400v192c0 105.87 86.13 192 192 192h128z" />
+<glyph unicode="&#xe928;" glyph-name="settings" d="M448 832v16c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576zM256 704v128h128v-128h-128zM832 528c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-576v-128h576v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h192v128h-192v16zM640 384v128h128v-128h-128zM448 208c0 26.4-21.6 48-48 48h-160c-26.4 0-48-21.6-48-48v-16h-192v-128h192v-16c0-26.4 21.6-48 48-48h160c26.4 0 48 21.6 48 48v16h576v128h-576v16zM256 64v128h128v-128h-128z" />
+<glyph unicode="&#xe92a;" glyph-name="remove2" d="M192-64h640l64 704h-768zM640 832v128h-256v-128h-320v-192l64 64h768l64-64v192h-320zM576 832h-128v64h128v-64z" />
+<glyph unicode="&#xe92d;" glyph-name="menu" d="M384 896h256v-256h-256zM384 576h256v-256h-256zM384 256h256v-256h-256z" />
+<glyph unicode="&#xe930;" glyph-name="warning" d="M1009.956 44.24l-437.074 871.112c-16.742 29.766-38.812 44.648-60.882 44.648s-44.14-14.882-60.884-44.648l-437.074-871.112c-33.486-59.532-5-108.24 63.304-108.24h869.308c68.302 0 96.792 48.708 63.302 108.24zM512 64c-35.346 0-64 28.654-64 64 0 35.348 28.654 64 64 64 35.348 0 64-28.652 64-64 0-35.346-28.652-64-64-64zM556 256h-88l-20 256c0 35.346 28.654 64 64 64s64-28.654 64-64l-20-256z" />
+<glyph unicode="&#xe931;" glyph-name="question" d="M448 256h128v-128h-128zM704 704c35.346 0 64-28.654 64-64v-192l-192-128h-128v64l192 128v64h-320v128h384zM512 864c-111.118 0-215.584-43.272-294.156-121.844s-121.844-183.038-121.844-294.156c0-111.118 43.272-215.584 121.844-294.156s183.038-121.844 294.156-121.844c111.118 0 215.584 43.272 294.156 121.844s121.844 183.038 121.844 294.156c0 111.118-43.272 215.584-121.844 294.156s-183.038 121.844-294.156 121.844zM512 960v0c282.77 0 512-229.23 512-512s-229.23-512-512-512c-282.77 0-512 229.23-512 512s229.23 512 512 512z" />
+<glyph unicode="&#xe932;" glyph-name="pluscircle" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM512 64c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384s-171.922-384-384-384zM768 384h-192v-192h-128v192h-192v128h192v192h128v-192h192z" />
+<glyph unicode="&#xe933;" glyph-name="info" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM448 768h128v-128h-128v128zM640 128h-256v64h64v256h-64v64h192v-320h64v-64z" />
+<glyph unicode="&#xe934;" glyph-name="notice" d="M1024 224l-288 736h-448l-288-288v-448l288-288h448l288 288v448l-288 288zM576 128h-128v128h128v-128zM576 384h-128v384h128v-384z" />
+<glyph unicode="&#xe935;" glyph-name="drop" d="M864.626 486.838c-65.754 183.44-205.11 348.15-352.626 473.162-147.516-125.012-286.87-289.722-352.626-473.162-40.664-113.436-44.682-236.562 12.584-345.4 65.846-125.14 198.632-205.438 340.042-205.438s274.196 80.298 340.040 205.44c57.27 108.838 53.25 231.962 12.586 345.398zM738.764 201.044c-43.802-83.252-132.812-137.044-226.764-137.044-55.12 0-108.524 18.536-152.112 50.652 13.242-1.724 26.632-2.652 40.112-2.652 117.426 0 228.668 67.214 283.402 171.242 44.878 85.292 40.978 173.848 23.882 244.338 14.558-28.15 26.906-56.198 36.848-83.932 22.606-63.062 40.024-156.34-5.368-242.604z" />
+<glyph unicode="&#xe939;" glyph-name="minus" d="M0 544v-192c0-17.672 14.328-32 32-32h960c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32h-960c-17.672 0-32-14.328-32-32z" />
+<glyph unicode="&#xe93a;" glyph-name="plus" d="M992 576h-352v352c0 17.672-14.328 32-32 32h-192c-17.672 0-32-14.328-32-32v-352h-352c-17.672 0-32-14.328-32-32v-192c0-17.672 14.328-32 32-32h352v-352c0-17.672 14.328-32 32-32h192c17.672 0 32 14.328 32 32v352h352c17.672 0 32 14.328 32 32v192c0 17.672-14.328 32-32 32z" />
+<glyph unicode="&#xe93b;" glyph-name="arrowup" d="M0 320l192-192 320 320 320-320 192 192-511.998 512z" />
+<glyph unicode="&#xe93c;" glyph-name="arrowright" d="M384 960l-192-192 320-320-320-320 192-192 512 512z" />
+<glyph unicode="&#xe93d;" glyph-name="arrowdown" d="M1024 576l-192 192-320-320-320 320-192-192 512-511.998z" />
+<glyph unicode="&#xe93f;" glyph-name="arrowup2" d="M768 320l-256 256-256-256z" />
+<glyph unicode="&#xe940;" glyph-name="arrowdown2" d="M256 576l256-256 256 256z" />
+<glyph unicode="&#xe941;" glyph-name="menu2" d="M256 704l256-256 256 256zM255.996 384.004l256-256 256 256z" />
+<glyph unicode="&#xe961;" glyph-name="newtab" d="M704 384l128 128v-512h-768v768h512l-128-128h-256v-512h512zM960 896v-352l-130.744 130.744-354.746-354.744h-90.51v90.512l354.744 354.744-130.744 130.744z" />
+<glyph unicode="&#xeaa8;" glyph-name="rotateleft" d="M607.998 831.986c-212.070 0-383.986-171.916-383.986-383.986h-191.994l246.848-246.848 246.848 246.848h-191.994c0 151.478 122.798 274.276 274.276 274.276 151.48 0 274.276-122.798 274.276-274.276 0-151.48-122.796-274.276-274.276-274.276v-109.71c212.070 0 383.986 171.916 383.986 383.986s-171.916 383.986-383.986 383.986z" />
+<glyph unicode="&#xeaa9;" glyph-name="rotateright" d="M416.002 831.986c212.070 0 383.986-171.916 383.986-383.986h191.994l-246.848-246.848-246.848 246.848h191.994c0 151.478-122.798 274.276-274.276 274.276-151.48 0-274.276-122.798-274.276-274.276 0-151.48 122.796-274.276 274.276-274.276v-109.71c-212.070 0-383.986 171.916-383.986 383.986s171.916 383.986 383.986 383.986z" />
+<glyph unicode="&#xeaaa;" glyph-name="flipv" d="M0 576h1024v384zM1024 0v384h-1024z" />
+<glyph unicode="&#xeaac;" glyph-name="fliph" d="M576 960v-1024h384zM0-64h384v1024z" />
+<glyph unicode="&#xeb35;" glyph-name="zoomin" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM448 768h-128v-128h-128v-128h128v-128h128v128h128v128h-128z" />
+<glyph unicode="&#xeb36;" glyph-name="zoomout" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384s171.922-384 384-384c95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256zM192 640h384v-128h-384z" />
+<glyph unicode="&#xeba7;" glyph-name="sharpen" d="M768 832h-512l-256-256 512-576 512 576-256 256zM512 181.334v2.666h-2.37l-14.222 16h16.592v16h-30.814l-14.222 16h45.036v16h-59.258l-14.222 16h73.48v16h-87.704l-14.222 16h101.926v16h-116.148l-14.222 16h130.37v16h-144.592l-14.222 16h158.814v16h-173.038l-14.222 16h187.26v16h-201.482l-14.222 16h215.704v16h-229.926l-14.222 16h244.148v16h-258.372l-14.222 16h272.594v16h-286.816l-14.222 16h301.038v16h-315.26l-14.222 16h329.482v16h-343.706l-7.344 8.262 139.072 139.072h211.978v-3.334h215.314l16-16h-231.314v-16h247.314l16-16h-263.314v-16h279.314l16-16h-295.314v-16h311.314l16-16h-327.314v-16h343.312l7.738-7.738-351.050-394.928z" />
+<glyph unicode="&#xec6a;" glyph-name="options" d="M64 768h896v-192h-896zM64 512h896v-192h-896zM64 256h896v-192h-896z" />
+<glyph unicode="&#xeccc;" glyph-name="sun" d="M512 128c35.346 0 64-28.654 64-64v-64c0-35.346-28.654-64-64-64s-64 28.654-64 64v64c0 35.346 28.654 64 64 64zM512 768c-35.346 0-64 28.654-64 64v64c0 35.346 28.654 64 64 64s64-28.654 64-64v-64c0-35.346-28.654-64-64-64zM960 512c35.346 0 64-28.654 64-64s-28.654-64-64-64h-64c-35.348 0-64 28.654-64 64s28.652 64 64 64h64zM192 448c0-35.346-28.654-64-64-64h-64c-35.346 0-64 28.654-64 64s28.654 64 64 64h64c35.346 0 64-28.654 64-64zM828.784 221.726l45.256-45.258c24.992-24.99 24.992-65.516 0-90.508-24.994-24.992-65.518-24.992-90.51 0l-45.256 45.256c-24.992 24.99-24.992 65.516 0 90.51 24.994 24.992 65.518 24.992 90.51 0zM195.216 674.274l-45.256 45.256c-24.994 24.994-24.994 65.516 0 90.51s65.516 24.994 90.51 0l45.256-45.256c24.994-24.994 24.994-65.516 0-90.51s-65.516-24.994-90.51 0zM828.784 674.274c-24.992-24.992-65.516-24.992-90.51 0-24.992 24.994-24.992 65.516 0 90.51l45.256 45.254c24.992 24.994 65.516 24.994 90.51 0 24.992-24.994 24.992-65.516 0-90.51l-45.256-45.254zM195.216 221.726c24.992 24.992 65.518 24.992 90.508 0 24.994-24.994 24.994-65.52 0-90.51l-45.254-45.256c-24.994-24.992-65.516-24.992-90.51 0s-24.994 65.518 0 90.508l45.256 45.258zM512 704c-141.384 0-256-114.616-256-256 0-141.382 114.616-256 256-256 141.382 0 256 114.618 256 256 0 141.384-114.616 256-256 256zM512 288c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160-71.634-160-160-160z" />
+<glyph unicode="&#xeccd;" glyph-name="moon" d="M715.812 895.52c-60.25 34.784-124.618 55.904-189.572 64.48 122.936-160.082 144.768-384.762 37.574-570.42-107.2-185.67-312.688-279.112-512.788-252.68 39.898-51.958 90.376-97.146 150.628-131.934 245.908-141.974 560.37-57.72 702.344 188.198 141.988 245.924 57.732 560.372-188.186 702.356z" />
+<glyph unicode="&#xecd4;" glyph-name="contrast" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM128 448c0 212.078 171.922 384 384 384v-768c-212.078 0-384 171.922-384 384z" />
+<glyph unicode="&#xed6a;" glyph-name="remove22" d="M893.254 738.746l-90.508 90.508-290.746-290.744-290.746 290.744-90.508-90.506 290.746-290.748-290.746-290.746 90.508-90.508 290.746 290.746 290.746-290.746 90.508 90.51-290.744 290.744z" />
+<glyph unicode="&#xedc0;" glyph-name="arrowleft" d="M672-64l192 192-320 320 320 320-192 192-512-512z" />
+<glyph unicode="&#xedf9;" glyph-name="resize2" d="M0 896v-384c0-35.346 28.654-64 64-64s64 28.654 64 64v229.488l677.488-677.488h-229.488c-35.346 0-64-28.652-64-64 0-35.346 28.654-64 64-64h384c35.346 0 64 28.654 64 64v384c0 35.348-28.654 64-64 64s-64-28.652-64-64v-229.488l-677.488 677.488h229.488c35.346 0 64 28.654 64 64s-28.652 64-64 64h-384c-35.346 0-64-28.654-64-64z" />
+<glyph unicode="&#xee78;" glyph-name="crop" d="M832 704l192 192-64 64-192-192h-448v192h-128v-192h-192v-128h192v-512h512v-192h128v192h192v128h-192v448zM320 640h320l-320-320v320zM384 256l320 320v-320h-320z" />
+</font></defs></svg>

BIN
src/main/vue/static/skins/lightgray/fonts/tinymce.ttf


BIN
src/main/vue/static/skins/lightgray/fonts/tinymce.woff


BIN
src/main/vue/static/skins/lightgray/img/anchor.gif


BIN
src/main/vue/static/skins/lightgray/img/loader.gif


BIN
src/main/vue/static/skins/lightgray/img/object.gif


BIN
src/main/vue/static/skins/lightgray/img/trans.gif


File diff suppressed because it is too large
+ 0 - 0
src/main/vue/static/skins/lightgray/skin.min.css


File diff suppressed because it is too large
+ 0 - 0
src/main/vue/static/skins/lightgray/skin.mobile.min.css


Some files were not shown because too many files changed in this diff