suochencheng 7 år sedan
förälder
incheckning
832f84bc5e
100 ändrade filer med 1616 tillägg och 77 borttagningar
  1. 33 0
      src/main/java/com/izouma/awesomeadmin/dao/UserAgreementMapper.java
  2. 367 0
      src/main/java/com/izouma/awesomeadmin/dao/UserAgreementMapper.xml
  3. 1 1
      src/main/java/com/izouma/awesomeadmin/dao/UserInfoMapper.xml
  4. 124 0
      src/main/java/com/izouma/awesomeadmin/model/UserAgreement.java
  5. 27 0
      src/main/java/com/izouma/awesomeadmin/service/UserAgreementService.java
  6. 137 0
      src/main/java/com/izouma/awesomeadmin/service/impl/UserAgreementServiceImpl.java
  7. 20 3
      src/main/java/com/izouma/awesomeadmin/web/MainController.java
  8. 159 0
      src/main/java/com/izouma/awesomeadmin/web/UserAgreementController.java
  9. 17 0
      src/main/vue/src/entries/loginAdmin.html
  10. 112 0
      src/main/vue/src/entries/loginAdmin.js
  11. 1 0
      src/main/vue/src/pages/App.vue
  12. 66 65
      src/main/vue/src/pages/Login.vue
  13. 3 3
      src/main/vue/src/pages/User.vue
  14. 109 0
      src/main/vue/src/pages/UserAgreement.vue
  15. 423 0
      src/main/vue/src/pages/UserAgreements.vue
  16. 10 0
      src/main/vue/src/router/index.js
  17. 1 1
      src/main/webapp/WEB-INF/html/admin.html
  18. 1 1
      src/main/webapp/WEB-INF/html/index.html
  19. 1 0
      src/main/webapp/WEB-INF/html/loginAdmin.html
  20. 0 0
      src/main/webapp/static/css/admin.05829a965d0124187fe7cddf115e75c4.css
  21. 0 0
      src/main/webapp/static/css/index.cde12c34bfa9ef75e8dfc3728725ef02.css
  22. 1 0
      src/main/webapp/static/css/loginAdmin.bc5c78a02358f02b38783ad4d43c1d0d.css
  23. 0 0
      src/main/webapp/static/js/100.9146326b0b4e2c9c8f0d.js
  24. 1 1
      src/main/webapp/static/js/100.bbeae09c374a54197d65.js
  25. 0 0
      src/main/webapp/static/js/101.60b25b83fffb8945f1e7.js
  26. 0 0
      src/main/webapp/static/js/106.2b5dd15f77284a317265.js
  27. 0 0
      src/main/webapp/static/js/107.00e38973fc79b3da132b.js
  28. 0 0
      src/main/webapp/static/js/108.30461e82a0093a815185.js
  29. 0 0
      src/main/webapp/static/js/109.ce1815f37813cb86b2e0.js
  30. 0 0
      src/main/webapp/static/js/11.ded7780acbf648007d19.js
  31. 0 0
      src/main/webapp/static/js/11.df4c9a2ce6d12068cb76.js
  32. 0 0
      src/main/webapp/static/js/110.3e816398ba026d52fdae.js
  33. 0 0
      src/main/webapp/static/js/111.5bf968ec4b5cc30e9f5b.js
  34. 0 0
      src/main/webapp/static/js/112.16b0b9ca7ff4e3dbc0a1.js
  35. 0 0
      src/main/webapp/static/js/113.761439dc1f663138a568.js
  36. 0 0
      src/main/webapp/static/js/114.6ffe5da141ed659de91f.js
  37. 0 0
      src/main/webapp/static/js/115.b0ca01b279e7f53d56cd.js
  38. 0 0
      src/main/webapp/static/js/116.a6a37322706df78b16c9.js
  39. 0 0
      src/main/webapp/static/js/12.05287758d2db7b3648cc.js
  40. 0 0
      src/main/webapp/static/js/12.8fa986fb3ceeaeee5d7f.js
  41. 0 0
      src/main/webapp/static/js/127.0b60879fb5c303908a0f.js
  42. 0 0
      src/main/webapp/static/js/127.13dd7b181ffcd6bffdf4.js
  43. 0 0
      src/main/webapp/static/js/128.542acb57eb57c9ceb6bc.js
  44. 1 1
      src/main/webapp/static/js/129.657d657fa49e8a25a5da.js
  45. 0 0
      src/main/webapp/static/js/13.79811129da79ef972d68.js
  46. 0 0
      src/main/webapp/static/js/13.9b7911cbbcb655bfd1de.js
  47. 0 0
      src/main/webapp/static/js/130.93427d90423d27e86c81.js
  48. 0 0
      src/main/webapp/static/js/131.b643c86ba08f2a4fc523.js
  49. 0 0
      src/main/webapp/static/js/132.967e9ed8fe6587ec6512.js
  50. 0 0
      src/main/webapp/static/js/133.87f5bb6855145330df75.js
  51. 0 0
      src/main/webapp/static/js/134.0230190883463ec72616.js
  52. 0 0
      src/main/webapp/static/js/135.793430fcff477077b48f.js
  53. 0 0
      src/main/webapp/static/js/136.81fe417652e1530e24be.js
  54. 0 0
      src/main/webapp/static/js/137.f00691c06ba8a417790b.js
  55. 0 0
      src/main/webapp/static/js/138.f6b08eb8a86b5802cbf5.js
  56. 0 0
      src/main/webapp/static/js/139.57a0e3bc749666fd92ad.js
  57. 0 0
      src/main/webapp/static/js/14.dd9c5c41709b4b16ad05.js
  58. 0 0
      src/main/webapp/static/js/14.f32722a14bf005a81134.js
  59. 0 0
      src/main/webapp/static/js/140.296437421e7cab520022.js
  60. 0 0
      src/main/webapp/static/js/141.7407164349d9c6a53b25.js
  61. 1 1
      src/main/webapp/static/js/142.114f312491c0ed243814.js
  62. 0 0
      src/main/webapp/static/js/143.eb6a0210c9dbc7167ea9.js
  63. 0 0
      src/main/webapp/static/js/144.56f45d9fbd79908d9869.js
  64. 0 0
      src/main/webapp/static/js/145.6d6a85f13880b9305434.js
  65. 0 0
      src/main/webapp/static/js/146.a7b47a76b8c20eccfaae.js
  66. 0 0
      src/main/webapp/static/js/15.850594bce3c11e8106ca.js
  67. 0 0
      src/main/webapp/static/js/15.e319d94d2e3c1e701764.js
  68. 0 0
      src/main/webapp/static/js/16.c4b98507209081287a3c.js
  69. 0 0
      src/main/webapp/static/js/17.2caaadc162aafe808b9c.js
  70. 0 0
      src/main/webapp/static/js/18.56fa9ac9e377e2673994.js
  71. 0 0
      src/main/webapp/static/js/18.6113a9ed46e02b6a42a1.js
  72. 0 0
      src/main/webapp/static/js/19.21db22f9a15a96fdb8e7.js
  73. 0 0
      src/main/webapp/static/js/19.2d45498aa0a449b6beda.js
  74. 0 0
      src/main/webapp/static/js/20.2f4e37dac56f45d820d9.js
  75. 0 0
      src/main/webapp/static/js/20.f99bd8e7897a8403cbad.js
  76. 0 0
      src/main/webapp/static/js/21.2e9c294b77cdcd3c40fa.js
  77. 0 0
      src/main/webapp/static/js/22.bb138cb751a65d2bd25e.js
  78. 0 0
      src/main/webapp/static/js/22.ed93ab0895e5b80b80e5.js
  79. 0 0
      src/main/webapp/static/js/23.b798ec8df6760983b753.js
  80. 0 0
      src/main/webapp/static/js/24.2cf784d17f943c37aa04.js
  81. 0 0
      src/main/webapp/static/js/25.0fecad07a5981728ffeb.js
  82. 0 0
      src/main/webapp/static/js/25.10095aefdbc8278cdcdf.js
  83. 0 0
      src/main/webapp/static/js/26.9c807c0e4f546fa8f158.js
  84. 0 0
      src/main/webapp/static/js/26.b78e87ce114c48945946.js
  85. 0 0
      src/main/webapp/static/js/27.557bb12d4c2a010d970c.js
  86. 0 0
      src/main/webapp/static/js/27.f161ee77715bc81868eb.js
  87. 0 0
      src/main/webapp/static/js/28.04add25832cafe44c042.js
  88. 0 0
      src/main/webapp/static/js/28.c7526e3059145f9b8981.js
  89. 0 0
      src/main/webapp/static/js/29.4d2da2f10f27626152fa.js
  90. 0 0
      src/main/webapp/static/js/29.8c17d8feb601c10115db.js
  91. 0 0
      src/main/webapp/static/js/30.a202c443fada1e3a02e3.js
  92. 0 0
      src/main/webapp/static/js/30.fa254a2cd902bbf08059.js
  93. 0 0
      src/main/webapp/static/js/31.257823db123fdf4ba12a.js
  94. 0 0
      src/main/webapp/static/js/31.50a68cf31ad451e85ee8.js
  95. 0 0
      src/main/webapp/static/js/33.bc113e9125083b22bb9d.js
  96. 0 0
      src/main/webapp/static/js/33.f9d141fafecdfb281d39.js
  97. 0 0
      src/main/webapp/static/js/34.c6572b1924f069e87614.js
  98. 0 0
      src/main/webapp/static/js/34.d9d18cbb5222ef6e472a.js
  99. 0 0
      src/main/webapp/static/js/35.9825e55b858868078672.js
  100. 0 0
      src/main/webapp/static/js/35.c9eeffd8fa150933ff9c.js

+ 33 - 0
src/main/java/com/izouma/awesomeadmin/dao/UserAgreementMapper.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.UserAgreement;
+
+
+/**
+*  Dao接口
+*/
+@Repository("com.zoumaframe.dao.UserAgreementMapper")
+public interface UserAgreementMapper{
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insertSelective(UserAgreement record);
+
+    UserAgreement selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(UserAgreement record);
+
+    List<UserAgreement> queryAllUserAgreement(UserAgreement record);
+
+    List<UserAgreement> queryUserAgreementByPage(Map<String, Object> parameter);
+
+    int delete(UserAgreement record);
+
+    UserAgreement queryUserAgreement(UserAgreement record);
+
+    List<UserAgreement> query(UserAgreement record);
+}
+

+ 367 - 0
src/main/java/com/izouma/awesomeadmin/dao/UserAgreementMapper.xml

@@ -0,0 +1,367 @@
+<?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.UserAgreementMapper" >
+    <resultMap id="BaseResultMap" type="com.izouma.awesomeadmin.model.UserAgreement" >
+                <id column="id" property="id" jdbcType="INTEGER" />
+                                        <result column="del_flag" property="delFlag" jdbcType="CHAR" />
+                                <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
+                                <result column="update_user" property="updateUser" jdbcType="VARCHAR" />
+                                <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
+                                <result column="create_user" property="createUser" jdbcType="VARCHAR" />
+                                <result column="agreement" property="agreement" jdbcType="VARCHAR" />
+                                <result column="remark" property="remark" jdbcType="VARCHAR" />
+            </resultMap>
+    <sql id="Base_Column_List" >
+        <trim  suffixOverrides="," >
+            id,
+
+            del_flag,
+
+            update_time,
+
+            update_user,
+
+            create_time,
+
+            create_user,
+
+            agreement,
+
+            remark,
+
+            </trim>
+    </sql>
+    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+        select
+        <include refid="Base_Column_List" />
+        from user_agreement
+        where id = #{id,jdbcType=INTEGER}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
+        delete from user_agreement
+        where id = #{id,jdbcType=INTEGER}
+    </delete>
+    <insert id="insertSelective" parameterType="com.izouma.awesomeadmin.model.UserAgreement" useGeneratedKeys="true" keyProperty="id">
+        insert into user_agreement
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+                <if test="id!= null" >
+                id,
+            </if>
+                <if test="delFlag!= null" >
+                del_flag,
+            </if>
+                <if test="updateTime!= null" >
+                update_time,
+            </if>
+                <if test="updateUser!= null" >
+                update_user,
+            </if>
+                <if test="createTime!= null" >
+                create_time,
+            </if>
+                <if test="createUser!= null" >
+                create_user,
+            </if>
+                <if test="agreement!= null" >
+                agreement,
+            </if>
+                <if test="remark!= null" >
+                remark,
+            </if>
+            </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+                    <if test="id != null" >
+                #{id,jdbcType=INTEGER},
+            </if>
+                    <if test="delFlag != null" >
+                #{delFlag,jdbcType=CHAR},
+            </if>
+                    <if test="updateTime != null" >
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="updateUser != null" >
+                #{updateUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="createTime != null" >
+                #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                    <if test="createUser != null" >
+                #{createUser,jdbcType=VARCHAR},
+            </if>
+                    <if test="agreement != null" >
+                #{agreement,jdbcType=VARCHAR},
+            </if>
+                    <if test="remark != null" >
+                #{remark,jdbcType=VARCHAR},
+            </if>
+                </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.UserAgreement" >
+        update user_agreement
+        <set >
+                    <if test="id != null" >
+               id= #{id,jdbcType=INTEGER},
+            </if>
+                     <if test="delFlag != null" >
+               del_flag= #{delFlag,jdbcType=CHAR},
+            </if>
+                     <if test="updateTime != null" >
+               update_time= #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="updateUser != null" >
+               update_user= #{updateUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="createTime != null" >
+               create_time= #{createTime,jdbcType=TIMESTAMP},
+            </if>
+                     <if test="createUser != null" >
+               create_user= #{createUser,jdbcType=VARCHAR},
+            </if>
+                     <if test="agreement != null" >
+               agreement= #{agreement,jdbcType=VARCHAR},
+            </if>
+                     <if test="remark != null" >
+               remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                 </set>
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+
+    </update>
+    <select id="queryUserAgreementByPage" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.UserAgreement">
+        select <include refid="Base_Column_List"/> from user_agreement
+        <where>
+            and del_flag = 'N'
+            <if test="record.idStr != null and !&quot;&quot;.equals(record.idStr)">
+                and id in (${record.idStr})
+            </if>
+                    <if test="record.id != null and !&quot;&quot;.equals(record.id)">
+                and  id = #{record.id}
+            </if>
+                     <if test="record.delFlag != null and !&quot;&quot;.equals(record.delFlag)">
+                and  del_flag = #{record.delFlag}
+            </if>
+                     <if test="record.updateTime != null and !&quot;&quot;.equals(record.updateTime)">
+                and  update_time = #{record.updateTime}
+            </if>
+                     <if test="record.updateUser != null and !&quot;&quot;.equals(record.updateUser)">
+                and  update_user = #{record.updateUser}
+            </if>
+                     <if test="record.createTime != null and !&quot;&quot;.equals(record.createTime)">
+                and  create_time = #{record.createTime}
+            </if>
+                     <if test="record.createUser != null and !&quot;&quot;.equals(record.createUser)">
+                and  create_user = #{record.createUser}
+            </if>
+                     <if test="record.agreement != null and !&quot;&quot;.equals(record.agreement)">
+                and  agreement = #{record.agreement}
+            </if>
+                     <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
+                and  remark = #{record.remark}
+            </if>
+                  <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+             <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                    OR  agreement LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                             </trim>
+         </if>
+
+            <if test="record.advancedQuery != null and !&quot;&quot;.equals(record.advancedQuery)">
+                <foreach item="item" index="index" collection="record.advancedQuery.split('_;')">
+                    <choose>
+                        <when test="item.indexOf('like') != -1">
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    concat('%',#{itemDetail},'%')
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                                <if test="detailIndex == 3">
+                                    #{itemDetail}
+                                </if>
+
+                                <if test="detailIndex &lt; 3">
+                                    ${itemDetail}
+                                </if>
+
+                            </foreach>
+                        </otherwise>
+                    </choose>
+
+
+                </foreach>
+
+
+            </if>
+
+        </where>
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
+    </select>
+    <select id="queryAllUserAgreement" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.UserAgreement">
+        select <include refid="Base_Column_List"/> from user_agreement
+        <where>
+            and del_flag = 'N'
+            <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+                and id in (${idStr})
+            </if>
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and  id = #{id}
+            </if>
+                    <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and  del_flag = #{delFlag}
+            </if>
+                    <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and  update_time = #{updateTime}
+            </if>
+                    <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and  update_user = #{updateUser}
+            </if>
+                    <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and  create_time = #{createTime}
+            </if>
+                    <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and  create_user = #{createUser}
+            </if>
+                    <if test="agreement != null and !&quot;&quot;.equals(agreement)">
+                and  agreement = #{agreement}
+            </if>
+                    <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and  remark = #{remark}
+            </if>
+                    <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR" >
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                OR  agreement LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                        </trim>
+            </if>
+<if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
+    <foreach item="item" index="index" collection="advancedQuery.split('_;')">
+        <choose>
+            <when test="item.indexOf('like') != -1">
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        concat('%',#{itemDetail},'%')
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </when>
+            <otherwise>
+                <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                    <if test="detailIndex == 3">
+                        #{itemDetail}
+                    </if>
+
+                    <if test="detailIndex &lt; 3">
+                        ${itemDetail}
+                    </if>
+
+                </foreach>
+            </otherwise>
+        </choose>
+
+
+    </foreach>
+
+
+</if>
+        </where>
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
+    </select>
+    <select id="queryUserAgreement" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.UserAgreement">
+        select <include refid="Base_Column_List"/> from user_agreement
+        <where>
+            and del_flag = 'N'
+                    <if test="id != null and !&quot;&quot;.equals(id)">
+                and id = #{id}
+            </if>
+                     <if test="delFlag != null and !&quot;&quot;.equals(delFlag)">
+                and del_flag = #{delFlag}
+            </if>
+                     <if test="updateTime != null and !&quot;&quot;.equals(updateTime)">
+                and update_time = #{updateTime}
+            </if>
+                     <if test="updateUser != null and !&quot;&quot;.equals(updateUser)">
+                and update_user = #{updateUser}
+            </if>
+                     <if test="createTime != null and !&quot;&quot;.equals(createTime)">
+                and create_time = #{createTime}
+            </if>
+                     <if test="createUser != null and !&quot;&quot;.equals(createUser)">
+                and create_user = #{createUser}
+            </if>
+                     <if test="agreement != null and !&quot;&quot;.equals(agreement)">
+                and agreement = #{agreement}
+            </if>
+                     <if test="remark != null and !&quot;&quot;.equals(remark)">
+                and remark = #{remark}
+            </if>
+         
+        </where>
+        LIMIT 1
+    </select>
+    <update id="delete">
+        UPDATE user_agreement SET del_flag = 'Y'
+        where
+        <if test="id != null and !&quot;&quot;.equals(id)">
+            id = #{id,jdbcType=INTEGER}
+        </if>
+
+        <if test="idStr != null and !&quot;&quot;.equals(idStr)">
+            id in (${idStr})
+        </if>
+    </update>
+    <select id="query" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.UserAgreement">
+        select <include refid="Base_Column_List"/> from user_agreement
+        <where>
+            and del_flag = 'N'
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+        order by id desc
+    </select>
+</mapper>
+

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

@@ -656,7 +656,7 @@
         SELECT
         <include refid="Base_Column_List"/>
         from sys_user
-        WHERE (username = #{username} or phone = #{username} ) AND password = #{password} AND del_flag = 'N'
+        WHERE (username = #{username} or phone = #{username} or mail = #{username}) AND password = #{password} AND del_flag = 'N'
     </select>
     <select id="findDepartLeader" resultType="java.lang.String">
         SELECT *

+ 124 - 0
src/main/java/com/izouma/awesomeadmin/model/UserAgreement.java

@@ -0,0 +1,124 @@
+package com.izouma.awesomeadmin.model;
+
+import java.util.*;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+
+@JsonAutoDetect
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class UserAgreement{
+    private Integer id;
+    private String delFlag;
+    private Date updateTime;
+    private String updateUser;
+    private Date createTime;
+    private String createUser;
+    private String agreement;
+    private String remark;
+
+private String idStr;
+
+private String searchKey;
+
+/**
+* and,test_name,like,value;or,remark,=,123
+*/
+private String advancedQuery;
+
+/**
+* column_name_,desc_;column_name_,asc
+*/
+private String orderByStr;
+
+    public Integer getId(){
+        return this.id;
+    }
+
+    public void setId(Integer id){
+        this.id = id;
+    }
+    public String getDelFlag(){
+        return this.delFlag;
+    }
+
+    public void setDelFlag(String delFlag){
+        this.delFlag = delFlag;
+    }
+    public Date getUpdateTime(){
+        return this.updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime){
+        this.updateTime = updateTime;
+    }
+    public String getUpdateUser(){
+        return this.updateUser;
+    }
+
+    public void setUpdateUser(String updateUser){
+        this.updateUser = updateUser;
+    }
+    public Date getCreateTime(){
+        return this.createTime;
+    }
+
+    public void setCreateTime(Date createTime){
+        this.createTime = createTime;
+    }
+    public String getCreateUser(){
+        return this.createUser;
+    }
+
+    public void setCreateUser(String createUser){
+        this.createUser = createUser;
+    }
+    public String getAgreement(){
+        return this.agreement;
+    }
+
+    public void setAgreement(String agreement){
+        this.agreement = agreement;
+    }
+    public String getRemark(){
+        return this.remark;
+    }
+
+    public void setRemark(String remark){
+        this.remark = remark;
+    }
+
+public String getSearchKey() {
+    return searchKey;
+}
+
+public void setSearchKey(String searchKey) {
+    this.searchKey = searchKey;
+}
+
+public String getAdvancedQuery() {
+    return advancedQuery;
+}
+
+public void setAdvancedQuery(String advancedQuery) {
+    this.advancedQuery = advancedQuery;
+}
+
+public String getOrderByStr() {
+    return orderByStr;
+}
+
+public void setOrderByStr(String orderByStr) {
+    this.orderByStr = orderByStr;
+}
+
+public String getIdStr() {
+    return idStr;
+}
+
+public void setIdStr(String idStr) {
+    this.idStr = idStr;
+}
+
+}
+

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

@@ -0,0 +1,27 @@
+package com.izouma.awesomeadmin.service;
+
+import java.util.*;
+import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.model.UserAgreement;
+
+
+/**
+*  service接口类
+*/
+public interface UserAgreementService{
+
+    List<UserAgreement> getUserAgreementList(UserAgreement record);
+
+    List<UserAgreement> getUserAgreementByPage(Page page, UserAgreement record);
+
+    UserAgreement getUserAgreementById(String id);
+
+    UserAgreement getUserAgreement(UserAgreement record);
+
+    boolean createUserAgreement(UserAgreement record);
+
+    boolean deleteUserAgreement(UserAgreement record);
+
+    boolean updateUserAgreement(UserAgreement record);
+}
+

+ 137 - 0
src/main/java/com/izouma/awesomeadmin/service/impl/UserAgreementServiceImpl.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.UserAgreement;
+import com.izouma.awesomeadmin.service.UserAgreementService;
+import com.izouma.awesomeadmin.dao.UserAgreementMapper;
+
+/**
+*  service接口实现类
+*/
+@Service
+public class UserAgreementServiceImpl implements UserAgreementService{
+
+    private static Logger logger = Logger.getLogger(UserAgreementServiceImpl.class);
+
+    @Autowired
+    private UserAgreementMapper userAgreementMapper;
+
+    @Override
+    public List<UserAgreement> getUserAgreementList(UserAgreement record) {
+
+        logger.info("getUserAgreementList");
+        try {
+
+        return userAgreementMapper.queryAllUserAgreement(record);
+        } catch (Exception e) {
+        logger.error("getUserAgreementList", e);
+        }
+
+        return null;
+    }
+    @Override
+    public List<UserAgreement> getUserAgreementByPage(Page page, UserAgreement record) {
+
+        logger.info("getUserAgreementByPage");
+        try {
+
+        Map<String, Object> parameter = new HashMap<String, Object>();
+        parameter.put("record", record);
+        parameter.put(AppConstant.PAGE, page);
+
+        return userAgreementMapper.queryUserAgreementByPage(parameter);
+        } catch (Exception e) {
+        logger.error("getUserAgreementByPage", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    public UserAgreement getUserAgreementById(String id) {
+
+        logger.info("getUserAgreementyId");
+        try {
+
+            return userAgreementMapper.selectByPrimaryKey(Integer.valueOf(id));
+        } catch (Exception e) {
+        logger.error("getUserAgreementById", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    public UserAgreement getUserAgreement(UserAgreement record) {
+
+        logger.info("getUserAgreement");
+        try {
+
+            return userAgreementMapper.queryUserAgreement(record);
+        } catch (Exception e) {
+        logger.error("getUserAgreement", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    public boolean createUserAgreement(UserAgreement record) {
+
+        logger.info("createUserAgreement");
+        try {
+
+            int updates = userAgreementMapper.insertSelective(record);
+
+            if (updates > 0) {
+                 return true;
+            }
+        } catch (Exception e) {
+            logger.error("createUserAgreement", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean deleteUserAgreement(UserAgreement record) {
+
+        logger.info("deleteUserAgreement");
+        try {
+
+             int updates = userAgreementMapper.delete(record);
+
+            if (updates > 0) {
+                 return true;
+            }
+        } catch (Exception e) {
+             logger.error("deleteUserAgreement", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    public boolean updateUserAgreement(UserAgreement record) {
+
+        logger.info("updateUserAgreement");
+        try {
+
+            int updates = userAgreementMapper.updateByPrimaryKeySelective(record);
+
+            if (updates > 0) {
+                 return true;
+            }
+        } catch (Exception e) {
+             logger.error("updateUserAgreement", e);
+        }
+
+        return false;
+    }
+}
+

+ 20 - 3
src/main/java/com/izouma/awesomeadmin/web/MainController.java

@@ -1,5 +1,8 @@
 package com.izouma.awesomeadmin.web;
 
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresRoles;
+import org.apache.shiro.subject.Subject;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -24,9 +27,23 @@ public class MainController {
 //        return new ModelAndView("redirect:/admin");
 //    }
 
-    @RequestMapping("/{viewName}")
-    public ModelAndView index(HttpServletRequest request, @PathVariable("viewName") String viewName) {
-        return new ModelAndView("html/" + viewName + ".html");
+    @RequestMapping("/index")
+    public ModelAndView index(HttpServletRequest request) {
+        return new ModelAndView("html/index.html");
     }
 
+    @RequestMapping("/admin")
+    public ModelAndView admin(HttpServletRequest request) {
+        Subject subject = SecurityUtils.getSubject();
+        if (subject.hasRole("admin")) {
+            return new ModelAndView("html/admin.html");
+        } else {
+            return new ModelAndView("redirect:/loginAdmin");
+        }
+    }
+
+    @RequestMapping("/loginAdmin")
+    public ModelAndView loginAdmin(HttpServletRequest request) {
+        return new ModelAndView("html/loginAdmin.html");
+    }
 }

+ 159 - 0
src/main/java/com/izouma/awesomeadmin/web/UserAgreementController.java

@@ -0,0 +1,159 @@
+package com.izouma.awesomeadmin.web;
+
+import java.util.*;
+
+import com.izouma.awesomeadmin.util.ExportExcelUtil;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresAuthentication;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+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.UserAgreement;
+import com.izouma.awesomeadmin.service.UserAgreementService;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+*  controller类
+*/
+@Controller
+@RequestMapping("/userAgreement")
+public class UserAgreementController {
+
+    @Autowired
+    private UserAgreementService userAgreementService;
+
+    /**
+    * <p>获取全部记录。</p>
+    */
+    @RequiresAuthentication
+    @RequestMapping(value = "/all", method = RequestMethod.GET)
+    @ResponseBody
+    public Result all(UserAgreement record) {
+        List<UserAgreement> pp = userAgreementService.getUserAgreementList(record);
+        return new Result(true, pp);
+    }
+
+    /**
+    * <p>根据Id。</p>
+    */
+    @RequestMapping(value = "/getUserAgreement", method = RequestMethod.GET)
+    @ResponseBody
+    public Result getUserAgreement(@RequestParam(required = false, value = "id") String id) {
+        UserAgreement data = userAgreementService.getUserAgreementById(id);
+        return new Result(true, data);
+    }
+
+    /**
+    * <p>根据条件获取。</p>
+    */
+    @RequestMapping(value = "/getOne", method = RequestMethod.GET)
+    @ResponseBody
+    public Result getOne(UserAgreement record) {
+        UserAgreement data = userAgreementService.getUserAgreement(record);
+        return new Result(true, data);
+    }
+
+
+    /**
+    * <p>分页查询。</p>
+    */
+    @RequestMapping(value = "/page", method = RequestMethod.GET)
+    @ResponseBody
+    public Result page(Page page, UserAgreement record) {
+        Map<String, Object> result = new HashMap<>();
+
+        List<UserAgreement> pp =userAgreementService.getUserAgreementByPage(page, record);
+
+        result.put(AppConstant.PAGE, page);
+        result.put("pp", pp);
+        return new Result(true, result);
+    }
+
+
+    /**
+    * <p>保存。</p>
+    */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @ResponseBody
+    public Result save(UserAgreement record) {
+        boolean num = userAgreementService.createUserAgreement(record);
+        if (num) {
+        return new Result(true, record.getId());
+        }
+        return new Result(false, "保存异常");
+    }
+
+    /**
+    * <p>更新信息。</p>
+    */
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    @ResponseBody
+    public Result updateUserAgreement(UserAgreement record) {
+        boolean num = userAgreementService.updateUserAgreement(record);
+        if (num) {
+        return new Result(true, "保存成功");
+        }
+        return new Result(false, "保存异常");
+    }
+
+    /**
+    * <p>删除。</p>
+    */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    @ResponseBody
+    public Result deleteUserAgreement(UserAgreement record) {
+
+        boolean num = userAgreementService.deleteUserAgreement(record);
+        if (num) {
+        return new Result(true, "删除成功");
+        }
+        return new Result(false, "删除异常");
+    }
+
+    /**
+    * 导出Excel
+    * @param request
+    * @param response
+    * @param record
+    * @throws Exception
+    */
+    @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
+    @ResponseBody
+    public void exportExcel(HttpServletRequest request, HttpServletResponse response, UserAgreement record) throws Exception {
+
+    List<UserAgreement> userAgreements = userAgreementService.getUserAgreementList(record);
+
+
+        String sheetName = "user_agreement";
+        String titleName = "用户协议数据表";
+        String fileName = "用户协议表";
+        int columnNumber = 8;
+        int[] columnWidth = { 20,  20,  20,  20,  20,  20,  20,  20 };
+        String[] columnName = {  "" ,   "删除标识" ,   "更新时间" ,   "更新人" ,   "创建时间" ,   "创建人" ,   "协议" ,   "备注"  };
+        String[][] dataList = new String[userAgreements.size()][8];
+
+        for (int i = 0; i < userAgreements.size(); i++) {
+
+                        dataList[i][0] = String.valueOf(userAgreements.get(i).getId());
+                        dataList[i][1] = String.valueOf(userAgreements.get(i).getDelFlag());
+                        dataList[i][2] = String.valueOf(userAgreements.get(i).getUpdateTime());
+                        dataList[i][3] = String.valueOf(userAgreements.get(i).getUpdateUser());
+                        dataList[i][4] = String.valueOf(userAgreements.get(i).getCreateTime());
+                        dataList[i][5] = String.valueOf(userAgreements.get(i).getCreateUser());
+                        dataList[i][6] = String.valueOf(userAgreements.get(i).getAgreement());
+                        dataList[i][7] = String.valueOf(userAgreements.get(i).getRemark());
+                    }
+
+
+        ExportExcelUtil.ExportWithResponse(sheetName, titleName, fileName,
+        columnNumber, columnWidth, columnName, dataList, response);
+
+
+        }
+    }
+

+ 17 - 0
src/main/vue/src/entries/loginAdmin.html

@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <title>管理后台</title>
+    <link rel="icon" href="/static/favicon.ico"/>
+    <script src="/static/polyfill.min.js"></script>
+</head>
+
+<body>
+<div id="app"></div>
+<!-- built files will be auto injected -->
+</body>
+
+</html>

+ 112 - 0
src/main/vue/src/entries/loginAdmin.js

@@ -0,0 +1,112 @@
+import Vue from 'vue'
+import Login from '../pages/Login'
+import ElementUI from 'element-ui'
+import axios from 'axios'
+import VueI18n from 'vue-i18n'
+
+import 'normalize.css/normalize.css'
+import 'element-ui/lib/theme-chalk/index.css'
+import '../main.less'
+
+Vue.config.productionTip = false;
+Vue.use(ElementUI);
+Vue.use(VueI18n);
+const baseUrl = process.env.NODE_ENV === 'production' ? '../' : `http://${location.hostname}:8080`;
+Vue.prototype.$baseUrl = baseUrl;
+axios.defaults.withCredentials = true;
+axios.defaults.baseURL = baseUrl;
+Vue.prototype.$http = {
+    get(params) {
+        return new Promise((resolve, reject) => {
+            if (params instanceof String) {
+                params = { url: params };
+            } else if (!params instanceof Object) {
+                reject('params error');
+                return;
+            }
+            if (!params.url) {
+                reject('url error');
+                return;
+            } else if (!params.url instanceof String) {
+                reject('url error');
+                return;
+            } else if (params.url.length === 0) {
+                reject('url error');
+                return;
+            }
+            // if (!/^(http:\/\/)|(https:\/\/)/.test(params.url)) {
+            //     params.url = baseUrl + params.url;
+            // }
+            axios.get(params.url, {
+                params: params.data
+            }, { withCredentials: true }).then(res => {
+                if (res.status === 200) {
+                    resolve(res.data);
+                } else {
+                    reject(res);
+                }
+            }).catch(e => {
+                reject(e);
+            });
+        });
+    },
+    post(params) {
+        if (params instanceof String) {
+            params = { url: params };
+        } else if (!params instanceof Object) {
+            reject('params error');
+            return;
+        }
+        if (!params.url) {
+            reject('url error');
+            return;
+        } else if (!params.url instanceof String) {
+            reject('url error');
+            return;
+        } else if (params.url.length === 0) {
+            reject('url error');
+            return;
+        }
+        // if (!/^(http:\/\/)|(https:\/\/)/.test(params.url)) {
+        //     params.url = baseUrl + params.url;
+        // }
+        let data = new FormData();
+        if (params.data) {
+            for (let key in params.data) {
+                if (params.data.hasOwnProperty(key)) {
+                    if (params.data[key] instanceof Array) {
+                        let hasObject = false;
+                        params.data[key].forEach(i => {
+                            if (i instanceof Object) {
+                                hasObject = true;
+                            }
+                        });
+                        if (!hasObject) {
+                            data.append(key, params.data[key].join());
+                        }
+                    } else if (!(params.data[key] instanceof Object)) {
+                        data.append(key, params.data[key]);
+                    }
+                }
+            }
+        }
+        return new Promise((resolve, reject) => {
+            axios.post(params.url, data, { withCredentials: true }).then(res => {
+                if (res.status === 200) {
+                    resolve(res.data);
+                } else {
+                    reject(res);
+                }
+            }).catch(e => {
+                reject(e);
+            });
+        });
+    }
+};
+
+
+new Vue({
+    el: '#app',
+    components: { Login },
+    template: '<Login/>'
+});

+ 1 - 0
src/main/vue/src/pages/App.vue

@@ -142,6 +142,7 @@
         watch: {
             $route(val) {
                 this.findActiveMenu(this.rawMenus);
+                
             },
             isFullscreen(val) {
                 this.$refs.fullscreen.innerHTML = '';

+ 66 - 65
src/main/vue/src/pages/Login.vue

@@ -20,76 +20,77 @@
     </div>
 </template>
 <script>
-    export default {
-        data() {
-            return {
-                rememberMe: false,
-                loading: false,
-                userInfo: {
-                    username: '',
-                    password: ''
-                }
-            }
-        },
-        methods: {
-            login() {
-                this.$refs.form.validate(valid => {
-                    if (valid) {
-                        this.loading = true;
-                        this.$http.post({
-                            url: '/auth/login',
-                            data: {
-                                username: this.userInfo.username,
-                                password: this.userInfo.password,
-                                remember: this.rememberMe
-                            }
-                        }).then(res => {
-                            this.loading = false;
-                            if (res.success) {
-                                this.$router.replace('/');
-                            } else {
-                                this.$message.error('登录失败');
-                            }
-                        }).catch(() => {
-                            this.loading = false;
-                        })
-                    }
-                })
+export default {
+    data() {
+        return {
+            rememberMe: false,
+            loading: false,
+            userInfo: {
+                username: '',
+                password: ''
             }
         }
+    },
+    methods: {
+        login() {
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    this.loading = true;
+                    this.$http.post({
+                        url: '/auth/login',
+                        data: {
+                            username: this.userInfo.username,
+                            password: this.userInfo.password,
+                            remember: this.rememberMe
+                        }
+                    }).then(res => {
+                        this.loading = false;
+                        if (res.success) {
+                            // this.$router.replace('/');
+                            window.location = this.$baseUrl + '/admin'
+                        } else {
+                            this.$message.error('登录失败');
+                        }
+                    }).catch(() => {
+                        this.loading = false;
+                    })
+                }
+            })
+        }
     }
+}
 </script>
 <style lang="less" scoped>
-    .container {
-        width: 100%;
-        height: 100%;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        background-color: #ebebeb;
-        background-image: url('https://microball.oss-cn-hangzhou.aliyuncs.com/izouma/application/rawpixel-com-565462-unsplash%20%281%29.jpg');
-        background-size: cover;
-        background-position: center;
-        background-repeat: no-repeat;
-    }
+.container {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background-color: #ebebeb;
+    background-image: url('https://microball.oss-cn-hangzhou.aliyuncs.com/izouma/application/rawpixel-com-565462-unsplash%20%281%29.jpg');
+    background-size: cover;
+    background-position: center;
+    background-repeat: no-repeat;
+}
 
-    .login-wrapper {
-        display: flex;
-        flex-direction: column;
-        align-items: center;
-        justify-content: center;
-        border-radius: 5px;
-        background: white;
-        border: 1px #eaeaea solid;
-        position: absolute;
-        right: 100px;
-        top: 100px;
-        width: 400px;
-        .title {
-            color: #20a0ff;
-            font-weight: bold;
-            width: 350px;
-            line-height: 60px;
-        }
+.login-wrapper {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    border-radius: 5px;
+    background: white;
+    border: 1px #eaeaea solid;
+    position: absolute;
+    right: 100px;
+    top: 100px;
+    width: 400px;
+    .title {
+        color: #20a0ff;
+        font-weight: bold;
+        width: 350px;
+        line-height: 60px;
     }
+}
 </style>

+ 3 - 3
src/main/vue/src/pages/User.vue

@@ -127,9 +127,9 @@
                             }, trigger: 'blur'
                         }
                     ],
-                    roleId: [
-                        {required: true, message: '请选择角色', trigger: 'blur'},
-                    ]
+                    // roleId: [
+                    //     {required: true, message: '请选择角色', trigger: 'blur'},
+                    // ]
                 },
                 roles: [],
                 departs: [],

+ 109 - 0
src/main/vue/src/pages/UserAgreement.vue

@@ -0,0 +1,109 @@
+<template>
+    <div>
+        <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small" style="max-width: 800px;">
+            <el-form-item prop="agreement" label="协议">
+                <rich-text :height='500' 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-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+<script>
+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];
+        }
+
+        if (this.$route.query.id) {
+            this.$http.get({
+                url: '/userAgreement/getOne',
+                data: {
+                    id: this.$route.query.id
+                }
+            }).then(res => {
+                if (res.success) {
+
+
+                    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;
+            }
+        }
+
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {},
+            rules: {
+            },
+            subColumn: '',
+            subValue: '',
+        }
+    },
+    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 ? '/userAgreement/update' : '/userAgreement/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: '/userAgreement/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('删除失败');
+                }
+            })
+        },
+    },
+    components: {
+        RichText
+    }
+}
+</script>
+<style lang="less" scoped>
+</style>

+ 423 - 0
src/main/vue/src/pages/UserAgreements.vue

@@ -0,0 +1,423 @@
+<template>
+    <div>
+        <div class="filters-container">
+        
+            <el-input placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
+            <el-button @click="searchData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
+            </el-button>
+            <el-button @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small"
+                       icon="el-icon-search" class="filter-item">高级查询
+            </el-button>
+            <el-button @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small"
+                       icon="el-icon-sort" class="filter-item">排序
+            </el-button>
+            <el-button @click="$router.push({path:'/userAgreement',query:{column:$route.query.column}})" type="primary"
+                       size="small" icon="el-icon-edit"
+                       class="filter-item">添加
+            </el-button>
+            <el-button @click="exportExcel" type="primary" size="small" icon="el-icon-share" class="filter-item">导出EXCEL
+            </el-button>
+            <el-dropdown trigger="click" size="medium" class="table-column-filter">
+                <span>
+                  筛选数据<i class="el-icon-arrow-down el-icon--right"></i>
+                </span>
+                <el-dropdown-menu slot="dropdown" class="table-column-filter-wrapper">
+                    <el-checkbox v-for="item in tableColumns" :key="item.value" v-model="item.show">{{item.label}}
+                    </el-checkbox>
+                </el-dropdown-menu>
+            </el-dropdown>
+        </div>
+        <el-table
+                :data="tableData"
+                :height="tableHeight"
+                row-key="id"
+                ref="table">
+            <el-table-column
+                    v-if="multipleMode"
+                    align="center"
+                    type="selection"
+                    width="50">
+            </el-table-column>
+            <el-table-column
+                    type="index"
+                    min-width="50"
+                    align="center">
+            </el-table-column>
+                                                                                                                                                                                                    
+                                            <el-table-column
+                                v-if="isColumnShow('agreement')"
+                                prop="agreement"
+                                label="协议"
+                                min-width="100">
+                        </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('remark')"
+                                prop="remark"
+                                label="备注"
+                                min-width="100">
+                        </el-table-column>
+                                                            <el-table-column
+                    label="操作"
+                    align="center"
+                    fixed="right"
+                    min-width="150"
+            >
+                <template slot-scope="scope">
+                            <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
+                    <el-button @click="deleteRow(scope.row)" type="danger" size="mini" plain>删除</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="pagination-wrapper">
+            <div class="multiple-mode-wrapper" v-if="0">
+                <el-button size="small" v-if="!multipleMode" @click="toggleMultipleMode(true)">批量编辑</el-button>
+                <el-button-group v-else>
+                    <el-button size="small" @click="operation1">批量操作1</el-button>
+                    <el-button size="small" @click="operation2">批量操作2</el-button>
+                    <el-button size="small" @click="toggleMultipleMode(false)">取消</el-button>
+                </el-button-group>
+            </div>
+            <el-pagination
+                    background
+                    @size-change="pageSizeChange"
+                    @current-change="currentPageChange"
+                    :current-page="currentPage"
+                    :page-sizes="[10, 20, 30, 40, 50]"
+                    :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next, jumper"
+                    :total="totalNumber">
+            </el-pagination>
+        </div>
+        <el-dialog title="高级查询" :visible.sync="showAdvancedQueryDialog">
+            <el-button @click="addField" type="text" icon="el-icon-plus">添加</el-button>
+            <el-table :data="advancedQueryFields">
+
+                <el-table-column prop="link" label="链接符" align="center">
+                    <template slot-scope="{row}">
+                        <el-select placeholder="链接" size="small" v-model="row.link" class="filter-item">
+                            <el-option label="AND" value="AND">
+                            </el-option>
+                            <el-option label="OR" value="OR">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="字段" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.name">
+
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
+                                       :key="item.value"></el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="searchMethod" label="搜索方式" width="150" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.searchMethod">
+                            <el-option v-for="item in searchMethods" :label="item" :value="item"
+                                       :key="item"></el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="value" label="参数" align="center">
+                    <template slot-scope="{row}">
+                        <el-input v-model="row.value"></el-input>
+                    </template>
+                </el-table-column>
+                <el-table-column width="60" align="center">
+                    <template slot-scope="{ row, column, $index }">
+                        <el-button @click="removeField($index)" size="small" type="text">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+            <span slot="footer" class="dialog-footer">
+
+                <el-button @click="advancedQuery" :loading="$store.state.fetchingData">确定</el-button>
+            </span>
+        </el-dialog>
+
+        <el-dialog title="排序" :visible.sync="showTableSortDialog">
+            <el-button @click="addSortField" type="text" icon="el-icon-plus">添加</el-button>
+            <el-table :data="tableSortFields">
+
+                <el-table-column prop="name" label="字段" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.name">
+
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
+                                       :key="item.value"></el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="order" label="排序" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.order">
+                            <el-option label="降序" value="desc">
+                            </el-option>
+                            <el-option label="升序" value="asc">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column width="60" align="center">
+                    <template slot-scope="{ row, column, $index }">
+                        <el-button @click="removeSortField($index)" size="small" type="text">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+            <span slot="footer" class="dialog-footer">
+
+                <el-button @click="tableSortQuery" :loading="$store.state.fetchingData">确定</el-button>
+            </span>
+        </el-dialog>
+
+        <el-dialog title="查看图片" :visible.sync="imageDialogVisible" size="small">
+            <img width="100%" :src="imgSrc" alt="">
+        </el-dialog>
+
+    </div>
+</template>
+<script>
+    import {mapState} from 'vuex'
+    import {format} from 'date-fns'
+    import zh from 'date-fns/locale/zh_cn'
+
+    export default {
+        created() {
+            this.getData();
+        },
+        data() {
+            return {
+                totalNumber: 0,
+                totalPage: 10,
+                currentPage: 1,
+                pageSize: 20,
+                tableData: [],
+                filter1: '',
+                filter2: '',
+                tableColumns: [
+                                                                                                                                                                                                                                                                                                                                                {
+                                label: '协议',
+                                value: 'agreement',
+                                show: true
+                            },
+                                                                                                {
+                                label: '备注',
+                                value: 'remark',
+                                show: true
+                            },
+                                                            ],
+                multipleMode: false,
+                showAdvancedQueryDialog: false,
+                advancedQueryFields: [],
+                showTableSortDialog: false,
+                tableSortFields: [],
+                searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
+                advancedQueryColumns: [
+                                                                                                                                                                                                                                                                                                                                                {
+                                label: '协议',
+                                value: 'agreement'
+                            },
+                                                                                                {
+                                label: '备注',
+                                value: 'remark'
+                            },
+                                                            ],
+                advancedQuerySearchKey: '',
+                orderByStr: '',
+                imgSrc: '',
+                imageDialogVisible: false,
+            }
+        },
+        computed: {
+            ...mapState(['tableHeight']),
+            selection() {
+                return this.$refs.table.selection.map(i => i.id);
+            }
+        },
+        methods: {
+            pageSizeChange(size) {
+                this.currentPage = 1;
+                this.pageSize = size;
+                this.getData();
+            },
+            currentPageChange(page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            getData() {
+
+                var data = {
+                    currentPage: this.currentPage,
+                    pageNumber: this.pageSize,
+                    searchKey: this.filter1,
+                    advancedQuery: this.advancedQuerySearchKey,
+                    orderByStr: this.orderByStr,
+                }
+
+                if (this.$route.query.column) {
+                    var tempColumn = this.$route.query.column;
+                    data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
+                }
+
+                this.$http.get({
+                    url: '/userAgreement/page',
+                    data: data
+                }).then(res => {
+                    if (res.success) {
+                        this.totalNumber = res.data.page.totalNumber;
+                        this.tableData = res.data.pp;
+                    }
+                })
+            },
+            isColumnShow(column) {
+                var row = this.tableColumns.find(i => i.value === column);
+                return row ? row.show : false;
+            },
+            toggleMultipleMode(multipleMode) {
+                this.multipleMode = multipleMode;
+                if (!multipleMode) {
+                    this.$refs.table.clearSelection();
+                }
+            },
+            editRow(row) {
+                this.$router.push({
+                    path: '/userAgreement',
+                    query: {
+                        id: row.id,
+                        column: this.$route.query.column,
+                    }
+                })
+            },
+            operation1() {
+                this.$notify({
+                    title: '提示',
+                    message: this.selection
+                });
+            },
+            operation2() {
+                this.$message('操作2');
+            },
+            addField() {
+                this.advancedQueryFields.push({
+                    link: 'AND',
+                    name: '',
+                    searchMethod: '=',
+                    value: '',
+                });
+            },
+            removeField(i) {
+                if (this.advancedQueryFields.length > 0) {
+                    this.advancedQueryFields.splice(i, 1);
+                }
+            },
+            advancedQuery() {
+
+                this.advancedQuerySearchKey = '';
+
+                if (this.advancedQueryFields.length > 0) {
+
+                    var templist = [];
+
+                    this.advancedQueryFields.forEach(item => {
+                        if (item.link && item.name && item.searchMethod && item.value) {
+                            var tempItem = item.link + '_,' + item.name + '_,' + item.searchMethod + '_,' + item.value;
+                            templist.push(tempItem);
+                        }
+                    })
+
+                    if (templist.length > 0) {
+
+                        this.advancedQuerySearchKey = templist.join('_;');
+                    }
+                }
+
+                this.getData();
+                this.showAdvancedQueryDialog = false;
+            },
+            addSortField() {
+                this.tableSortFields.push({
+                    name: '',
+                    order: 'asc',
+                });
+            },
+            removeSortField(i) {
+                if (this.tableSortFields.length > 0) {
+                    this.tableSortFields.splice(i, 1);
+                }
+            },
+            tableSortQuery() {
+
+                this.orderByStr = '';
+
+                if (this.tableSortFields.length > 0) {
+
+                    var templist = [];
+
+                    this.tableSortFields.forEach(item => {
+                        if (item.name && item.order) {
+                            var tempItem = item.name + '_,' + item.order;
+                            templist.push(tempItem);
+                        }
+                    })
+
+                    if (templist.length > 0) {
+
+                        this.orderByStr = templist.join('_;');
+                    }
+                }
+
+                this.getData();
+                this.showTableSortDialog = false;
+            },
+            exportExcel() {
+                window.location.href = this.$baseUrl + "/userAgreement/exportExcel?searchKey="
+                        + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey+"&orderByStr=" + this.orderByStr;
+            },
+            searchData() {
+                this.currentPage = 1;
+                this.getData();
+            },
+            deleteRow(row) {
+                this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
+                    return this.$http.post({
+                        url: '/userAgreement/del',
+                        data: {id: row.id}
+                    })
+                }).then(() => {
+                    this.$message.success('删除成功');
+                    this.getData();
+                }).catch(action => {
+                    if (action === 'cancel') {
+                        this.$message.info('删除取消');
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                })
+            },
+            DateTimeFormatter(row, column, cellValue) {
+                if (cellValue) {
+                    return format(cellValue, 'YYYY/MM/DD HH:mm', {locale: zh})
+                }
+
+            },
+            DateFormatter(row, column, cellValue) {
+                if (cellValue) {
+                    return format(cellValue, 'YYYY/MM/DD', {locale: zh})
+                }
+
+            },
+            showImg(img) {
+                this.imgSrc = img;
+                this.imageDialogVisible = true;
+            },
+
+        }
+    }
+</script>
+<style lang="less" scoped>
+
+</style>

+ 10 - 0
src/main/vue/src/router/index.js

@@ -619,6 +619,16 @@ const router = new Router({
                     path: '/imageDownLogs',
                     name: 'ImageDownLogs',
                     component: () => import('../pages/ImageDownLogs')
+                },
+                {
+                    path: '/userAgreement',
+                    name: 'UserAgreement',
+                    component: () => import('../pages/UserAgreement')
+                },
+                {
+                    path: '/userAgreements',
+                    name: 'UserAgreements',
+                    component: () => import('../pages/UserAgreements')
                 }
                 /**INSERT_LOCATION**/
             ]

+ 1 - 1
src/main/webapp/WEB-INF/html/admin.html

@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><script src=/static/fontawesome-v5.2.0.js></script><link href=/static/css/admin.da4f73e09f989b1618ebd295c1c6c122.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.9eb6c3aa962e4d9ae7fe.js></script><script type=text/javascript src=/static/js/vendor.89cb0930756807ab3c59.js></script><script type=text/javascript src=/static/js/admin.37d06aefedc8adc9c0ca.js></script></body></html>
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><script src=/static/fontawesome-v5.2.0.js></script><link href=/static/css/admin.05829a965d0124187fe7cddf115e75c4.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.af108473940871e39457.js></script><script type=text/javascript src=/static/js/vendor.89cb0930756807ab3c59.js></script><script type=text/javascript src=/static/js/admin.1cbcce0f7e5a4153bad4.js></script></body></html>

+ 1 - 1
src/main/webapp/WEB-INF/html/index.html

@@ -5,7 +5,7 @@
             position: absolute;
             top: 0;
             left: 0;
-        }</style><link href=/static/css/index.e7376316a3defb166804065e2deaa1a6.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.9eb6c3aa962e4d9ae7fe.js></script><script type=text/javascript src=/static/js/vendor.89cb0930756807ab3c59.js></script><script type=text/javascript src=/static/js/index.4a2996224c7f6eeae1e8.js></script></body><script>var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
+        }</style><link href=/static/css/index.cde12c34bfa9ef75e8dfc3728725ef02.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.af108473940871e39457.js></script><script type=text/javascript src=/static/js/vendor.89cb0930756807ab3c59.js></script><script type=text/javascript src=/static/js/index.6096fe993ed79f29e95a.js></script></body><script>var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
     var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
     var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
     var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;

+ 1 - 0
src/main/webapp/WEB-INF/html/loginAdmin.html

@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><link href=/static/css/loginAdmin.bc5c78a02358f02b38783ad4d43c1d0d.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.af108473940871e39457.js></script><script type=text/javascript src=/static/js/vendor.89cb0930756807ab3c59.js></script><script type=text/javascript src=/static/js/loginAdmin.c471bb41727e6f91b753.js></script></body></html>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/css/admin.05829a965d0124187fe7cddf115e75c4.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/css/index.cde12c34bfa9ef75e8dfc3728725ef02.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 0
src/main/webapp/static/css/loginAdmin.bc5c78a02358f02b38783ad4d43c1d0d.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/100.9146326b0b4e2c9c8f0d.js


+ 1 - 1
src/main/webapp/static/js/101.3d5609086cfcf85284c0.js → src/main/webapp/static/js/100.bbeae09c374a54197d65.js

@@ -1 +1 @@
-webpackJsonp([101],{"76TP":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s={name:"home",data:function(){return{joinInfo:{},bannerList:[]}},mounted:function(){var t=this;this.$http.get({url:"/joinUs/getOne",data:{id:1}}).then(function(n){n.success&&(t.joinInfo=n.data)}).catch(function(t){console.log(t)}),this.$http.get({url:"/bannerInfo/all",data:{location:14}}).then(function(n){n.success&&(t.bannerList=n.data)}).catch(function(t){console.log(t)})},computed:{},methods:{goNext:function(){window.open(this.joinInfo.zhaopin)}}},i={render:function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"conatiner"},[s("el-carousel",{staticClass:"swiper banner",class:[1==t.bannerList.length?"noButton":""],attrs:{height:"220px",interval:4e3}},[t._l(t.bannerList,function(n){return[s("el-carousel-item",{style:{backgroundImage:"url("+n.imageUrl+")"}},[n.url?s("a",{attrs:{href:n.url}}):t._e()])]})],2),t._v(" "),s("div",{staticClass:"content"},[t._m(0),t._v(" "),s("div",{staticClass:"content-content"},[s("div",{staticClass:"content-text"},[s("div",{domProps:{innerHTML:t._s(t.joinInfo.manifesto)}}),t._v("\n                邮箱:"+t._s(t.joinInfo.email)+"\n                "),s("br"),t._v(" 联系方式:"+t._s(t.joinInfo.telephone)+"\n            ")]),t._v(" "),s("div",{staticClass:"line"}),t._v(" "),s("div",{staticClass:"content-img"},[s("img",{attrs:{src:e("Ns+n"),alt:""}}),t._v(" "),s("div",{staticClass:"button",on:{click:t.goNext}},[t._v("诚聘英才")])])])])],1)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"name"},[n("div",{staticClass:"kuai"}),this._v(" "),n("span",[this._v("加入我们")])])}]};var a=e("VU/8")(s,i,!1,function(t){e("JPpr")},"data-v-60bc1eee",null);n.default=a.exports},JPpr:function(t,n){},"Ns+n":function(t,n,e){t.exports=e.p+"static/img/join.999e208.png"}});
+webpackJsonp([100],{"76TP":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var s={name:"home",data:function(){return{joinInfo:{},bannerList:[]}},mounted:function(){var t=this;this.$http.get({url:"/joinUs/getOne",data:{id:1}}).then(function(n){n.success&&(t.joinInfo=n.data)}).catch(function(t){console.log(t)}),this.$http.get({url:"/bannerInfo/all",data:{location:14}}).then(function(n){n.success&&(t.bannerList=n.data)}).catch(function(t){console.log(t)})},computed:{},methods:{goNext:function(){window.open(this.joinInfo.zhaopin)}}},i={render:function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"conatiner"},[s("el-carousel",{staticClass:"swiper banner",class:[1==t.bannerList.length?"noButton":""],attrs:{height:"220px",interval:4e3}},[t._l(t.bannerList,function(n){return[s("el-carousel-item",{style:{backgroundImage:"url("+n.imageUrl+")"}},[n.url?s("a",{attrs:{href:n.url}}):t._e()])]})],2),t._v(" "),s("div",{staticClass:"content"},[t._m(0),t._v(" "),s("div",{staticClass:"content-content"},[s("div",{staticClass:"content-text"},[s("div",{domProps:{innerHTML:t._s(t.joinInfo.manifesto)}}),t._v("\n                邮箱:"+t._s(t.joinInfo.email)+"\n                "),s("br"),t._v(" 联系方式:"+t._s(t.joinInfo.telephone)+"\n            ")]),t._v(" "),s("div",{staticClass:"line"}),t._v(" "),s("div",{staticClass:"content-img"},[s("img",{attrs:{src:e("Ns+n"),alt:""}}),t._v(" "),s("div",{staticClass:"button",on:{click:t.goNext}},[t._v("诚聘英才")])])])])],1)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"name"},[n("div",{staticClass:"kuai"}),this._v(" "),n("span",[this._v("加入我们")])])}]};var a=e("VU/8")(s,i,!1,function(t){e("G79N")},"data-v-6c7e461e",null);n.default=a.exports},G79N:function(t,n){},"Ns+n":function(t,n,e){t.exports=e.p+"static/img/join.999e208.png"}});

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/101.60b25b83fffb8945f1e7.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/106.2b5dd15f77284a317265.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/107.00e38973fc79b3da132b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/108.30461e82a0093a815185.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/109.ce1815f37813cb86b2e0.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/11.ded7780acbf648007d19.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/11.df4c9a2ce6d12068cb76.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/110.3e816398ba026d52fdae.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/111.5bf968ec4b5cc30e9f5b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/112.16b0b9ca7ff4e3dbc0a1.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/113.761439dc1f663138a568.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/114.6ffe5da141ed659de91f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/115.b0ca01b279e7f53d56cd.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/116.a6a37322706df78b16c9.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/12.05287758d2db7b3648cc.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/12.8fa986fb3ceeaeee5d7f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/127.0b60879fb5c303908a0f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/127.13dd7b181ffcd6bffdf4.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/128.542acb57eb57c9ceb6bc.js


+ 1 - 1
src/main/webapp/static/js/130.fe264b814daf4aaac44d.js → src/main/webapp/static/js/129.657d657fa49e8a25a5da.js

@@ -1 +1 @@
-webpackJsonp([130],{V8wA:function(t,e){},izdZ:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});r("NYxO");var i={created:function(){this.getIframeSrc()},data:function(){return{iframeSrc:"/404"}},computed:{height:function(){return window.innerHeight-104+"px"}},methods:{getIframeSrc:function(){this.iframeSrc=this.$route.query.code}},watch:{$route:function(){this.getIframeSrc()}}},n={render:function(){var t=this.$createElement;return(this._self._c||t)("iframe",{staticClass:"iframe",attrs:{src:this.iframeSrc,height:this.height,width:"100%"}})},staticRenderFns:[]};var c=r("VU/8")(i,n,!1,function(t){r("V8wA")},"data-v-6d20da16",null);e.default=c.exports}});
+webpackJsonp([129],{V8wA:function(t,e){},izdZ:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});r("NYxO");var i={created:function(){this.getIframeSrc()},data:function(){return{iframeSrc:"/404"}},computed:{height:function(){return window.innerHeight-104+"px"}},methods:{getIframeSrc:function(){this.iframeSrc=this.$route.query.code}},watch:{$route:function(){this.getIframeSrc()}}},n={render:function(){var t=this.$createElement;return(this._self._c||t)("iframe",{staticClass:"iframe",attrs:{src:this.iframeSrc,height:this.height,width:"100%"}})},staticRenderFns:[]};var c=r("VU/8")(i,n,!1,function(t){r("V8wA")},"data-v-6d20da16",null);e.default=c.exports}});

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/13.79811129da79ef972d68.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/13.9b7911cbbcb655bfd1de.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/130.93427d90423d27e86c81.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/131.b643c86ba08f2a4fc523.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/132.967e9ed8fe6587ec6512.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/133.87f5bb6855145330df75.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/134.0230190883463ec72616.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/135.793430fcff477077b48f.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/136.81fe417652e1530e24be.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/137.f00691c06ba8a417790b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/138.f6b08eb8a86b5802cbf5.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/139.57a0e3bc749666fd92ad.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/14.dd9c5c41709b4b16ad05.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/14.f32722a14bf005a81134.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/140.296437421e7cab520022.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/141.7407164349d9c6a53b25.js


+ 1 - 1
src/main/webapp/static/js/143.7c90f8432fb2ef0b7086.js → src/main/webapp/static/js/142.114f312491c0ed243814.js

@@ -1 +1 @@
-webpackJsonp([143],{"7pWu":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={name:"home",data:function(){return{aboutInfo:{},bannerList:[]}},mounted:function(){var t=this;this.$http.get({url:"/aboutUs/getOne",data:{id:1}}).then(function(n){n.success&&(t.aboutInfo=n.data)}).catch(function(t){console.log(t)}),this.$http.get({url:"/bannerInfo/all",data:{location:13}}).then(function(n){n.success&&(t.bannerList=n.data)}).catch(function(t){console.log(t)})},computed:{},methods:{scrollMenu:function(){}}},s={render:function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"conatiner"},[e("el-carousel",{staticClass:"swiper banner",class:[1==t.bannerList.length?"noButton":""],attrs:{height:"220px",interval:4e3}},[t._l(t.bannerList,function(n){return[e("el-carousel-item",{style:{backgroundImage:"url("+n.imageUrl+")"}},[n.url?e("a",{attrs:{href:n.url}}):t._e()])]})],2),t._v(" "),e("div",{staticClass:"content"},[t._m(0),t._v(" "),e("div",{staticClass:"content-content"},[e("div",{staticClass:"content-img",style:{backgroundImage:"url("+t.aboutInfo.image+")"}}),t._v(" "),e("div",{staticClass:"content-text"},[e("div",{staticClass:"title"},[t._v(t._s(t.aboutInfo.title))]),t._v(" "),e("div",{staticClass:"content-all",domProps:{innerHTML:t._s(t.aboutInfo.description)}})])])])],1)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"name"},[n("div",{staticClass:"kuai"}),this._v(" "),n("span",[this._v("关于我们")])])}]};var i=e("VU/8")(a,s,!1,function(t){e("c+fW")},"data-v-472e9b91",null);n.default=i.exports},"c+fW":function(t,n){}});
+webpackJsonp([142],{"7pWu":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a={name:"home",data:function(){return{aboutInfo:{},bannerList:[]}},mounted:function(){var t=this;this.$http.get({url:"/aboutUs/getOne",data:{id:1}}).then(function(n){n.success&&(t.aboutInfo=n.data)}).catch(function(t){console.log(t)}),this.$http.get({url:"/bannerInfo/all",data:{location:13}}).then(function(n){n.success&&(t.bannerList=n.data)}).catch(function(t){console.log(t)})},computed:{},methods:{scrollMenu:function(){}}},s={render:function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"conatiner"},[e("el-carousel",{staticClass:"swiper banner",class:[1==t.bannerList.length?"noButton":""],attrs:{height:"220px",interval:4e3}},[t._l(t.bannerList,function(n){return[e("el-carousel-item",{style:{backgroundImage:"url("+n.imageUrl+")"}},[n.url?e("a",{attrs:{href:n.url}}):t._e()])]})],2),t._v(" "),e("div",{staticClass:"content"},[t._m(0),t._v(" "),e("div",{staticClass:"content-content"},[e("div",{staticClass:"content-img",style:{backgroundImage:"url("+t.aboutInfo.image+")"}}),t._v(" "),e("div",{staticClass:"content-text"},[e("div",{staticClass:"title"},[t._v(t._s(t.aboutInfo.title))]),t._v(" "),e("div",{staticClass:"content-all",domProps:{innerHTML:t._s(t.aboutInfo.description)}})])])])],1)},staticRenderFns:[function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"name"},[n("div",{staticClass:"kuai"}),this._v(" "),n("span",[this._v("关于我们")])])}]};var i=e("VU/8")(a,s,!1,function(t){e("gjue")},"data-v-44fef9b8",null);n.default=i.exports},gjue:function(t,n){}});

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/143.eb6a0210c9dbc7167ea9.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/144.56f45d9fbd79908d9869.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/145.6d6a85f13880b9305434.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/146.a7b47a76b8c20eccfaae.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/15.850594bce3c11e8106ca.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/15.e319d94d2e3c1e701764.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/16.c4b98507209081287a3c.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/17.2caaadc162aafe808b9c.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/18.56fa9ac9e377e2673994.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/18.6113a9ed46e02b6a42a1.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/19.21db22f9a15a96fdb8e7.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/19.2d45498aa0a449b6beda.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/20.2f4e37dac56f45d820d9.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/20.f99bd8e7897a8403cbad.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/21.2e9c294b77cdcd3c40fa.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/22.bb138cb751a65d2bd25e.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/22.ed93ab0895e5b80b80e5.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/23.b798ec8df6760983b753.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/24.2cf784d17f943c37aa04.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/25.0fecad07a5981728ffeb.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/25.10095aefdbc8278cdcdf.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/26.9c807c0e4f546fa8f158.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/26.b78e87ce114c48945946.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/27.557bb12d4c2a010d970c.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/27.f161ee77715bc81868eb.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/28.04add25832cafe44c042.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/28.c7526e3059145f9b8981.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/29.4d2da2f10f27626152fa.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/29.8c17d8feb601c10115db.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/30.a202c443fada1e3a02e3.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/30.fa254a2cd902bbf08059.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/31.257823db123fdf4ba12a.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/31.50a68cf31ad451e85ee8.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/33.bc113e9125083b22bb9d.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/33.f9d141fafecdfb281d39.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/34.c6572b1924f069e87614.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/34.d9d18cbb5222ef6e472a.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/35.9825e55b858868078672.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
src/main/webapp/static/js/35.c9eeffd8fa150933ff9c.js


Vissa filer visades inte eftersom för många filer har ändrats