Browse Source

初始化项目

傅行帆 5 years ago
parent
commit
237de19193
100 changed files with 6233 additions and 0 deletions
  1. 31
    0
      foyo-service/.gitignore
  2. 114
    0
      foyo-service/.mvn/wrapper/MavenWrapperDownloader.java
  3. BIN
      foyo-service/.mvn/wrapper/maven-wrapper.jar
  4. 1
    0
      foyo-service/.mvn/wrapper/maven-wrapper.properties
  5. 286
    0
      foyo-service/mvnw
  6. 161
    0
      foyo-service/mvnw.cmd
  7. 65
    0
      foyo-service/pom.xml
  8. 13
    0
      foyo-service/src/main/java/com/huiju/foyo/FoyoApplication.java
  9. 11
    0
      foyo-service/src/main/java/com/huiju/foyo/common/BaseController.java
  10. 110
    0
      foyo-service/src/main/java/com/huiju/foyo/common/ResponseBean.java
  11. 22
    0
      foyo-service/src/main/java/com/huiju/foyo/config/CorsConfig.java
  12. 36
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/LoginController.java
  13. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TaCarouselPictureController.java
  14. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TaCaseController.java
  15. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TaCaseIndexCoverController.java
  16. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TaCaseTypeController.java
  17. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TaServiceController.java
  18. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TaServiceLabelController.java
  19. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TdCompanyInfoController.java
  20. 149
    0
      foyo-service/src/main/java/com/huiju/foyo/controller/TdPartnerController.java
  21. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TaCarouselPictureMapper.java
  22. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TaCaseIndexCoverMapper.java
  23. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TaCaseMapper.java
  24. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TaCaseTypeMapper.java
  25. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TaServiceLabelMapper.java
  26. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TaServiceMapper.java
  27. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TdCompanyInfoMapper.java
  28. 18
    0
      foyo-service/src/main/java/com/huiju/foyo/dao/TdPartnerMapper.java
  29. 66
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TaCarouselPicture.java
  30. 101
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TaCase.java
  31. 61
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TaCaseIndexCover.java
  32. 61
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TaCaseType.java
  33. 71
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TaService.java
  34. 66
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TaServiceLabel.java
  35. 66
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TdCompanyInfo.java
  36. 71
    0
      foyo-service/src/main/java/com/huiju/foyo/model/TdPartner.java
  37. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITaCarouselPictureService.java
  38. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITaCaseIndexCoverService.java
  39. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITaCaseService.java
  40. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITaCaseTypeService.java
  41. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITaServiceLabelService.java
  42. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITaServiceService.java
  43. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITdCompanyInfoService.java
  44. 16
    0
      foyo-service/src/main/java/com/huiju/foyo/service/ITdPartnerService.java
  45. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCarouselPictureServiceImpl.java
  46. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCaseIndexCoverServiceImpl.java
  47. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCaseServiceImpl.java
  48. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCaseTypeServiceImpl.java
  49. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TaServiceLabelServiceImpl.java
  50. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TaServiceServiceImpl.java
  51. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TdCompanyInfoServiceImpl.java
  52. 20
    0
      foyo-service/src/main/java/com/huiju/foyo/service/impl/TdPartnerServiceImpl.java
  53. 14
    0
      foyo-service/src/main/resources/application.yml
  54. 5
    0
      foyo-service/src/main/resources/mapper/TaCarouselPictureMapper.xml
  55. 5
    0
      foyo-service/src/main/resources/mapper/TaCaseIndexCoverMapper.xml
  56. 5
    0
      foyo-service/src/main/resources/mapper/TaCaseMapper.xml
  57. 5
    0
      foyo-service/src/main/resources/mapper/TaCaseTypeMapper.xml
  58. 5
    0
      foyo-service/src/main/resources/mapper/TaServiceLabelMapper.xml
  59. 5
    0
      foyo-service/src/main/resources/mapper/TaServiceMapper.xml
  60. 5
    0
      foyo-service/src/main/resources/mapper/TdCompanyInfoMapper.xml
  61. 5
    0
      foyo-service/src/main/resources/mapper/TdPartnerMapper.xml
  62. 16
    0
      foyo-service/src/test/java/com/huiju/foyo/FoyoApplicationTests.java
  63. 1403
    0
      foyo.pdman.json
  64. 17
    0
      vue-element-admin/.babelrc
  65. 14
    0
      vue-element-admin/.editorconfig
  66. 3
    0
      vue-element-admin/.eslintignore
  67. 195
    0
      vue-element-admin/.eslintrc.js
  68. 21
    0
      vue-element-admin/.gitignore
  69. 10
    0
      vue-element-admin/.postcssrc.js
  70. 5
    0
      vue-element-admin/.travis.yml
  71. 21
    0
      vue-element-admin/LICENSE
  72. 214
    0
      vue-element-admin/README.md
  73. 226
    0
      vue-element-admin/README.zh-CN.md
  74. 67
    0
      vue-element-admin/build/build.js
  75. 64
    0
      vue-element-admin/build/check-versions.js
  76. BIN
      vue-element-admin/build/logo.png
  77. 108
    0
      vue-element-admin/build/utils.js
  78. 5
    0
      vue-element-admin/build/vue-loader.conf.js
  79. 107
    0
      vue-element-admin/build/webpack.base.conf.js
  80. 98
    0
      vue-element-admin/build/webpack.dev.conf.js
  81. 188
    0
      vue-element-admin/build/webpack.prod.conf.js
  82. 5
    0
      vue-element-admin/config/dev.env.js
  83. 88
    0
      vue-element-admin/config/index.js
  84. 5
    0
      vue-element-admin/config/prod.env.js
  85. 5
    0
      vue-element-admin/config/sit.env.js
  86. BIN
      vue-element-admin/favicon.ico
  87. 15
    0
      vue-element-admin/index.html
  88. 131
    0
      vue-element-admin/package.json
  89. 11
    0
      vue-element-admin/src/App.vue
  90. 41
    0
      vue-element-admin/src/api/article.js
  91. 29
    0
      vue-element-admin/src/api/login.js
  92. 8
    0
      vue-element-admin/src/api/qiniu.js
  93. 9
    0
      vue-element-admin/src/api/remoteSearch.js
  94. 9
    0
      vue-element-admin/src/api/service.js
  95. 4
    0
      vue-element-admin/src/api/transaction.js
  96. BIN
      vue-element-admin/src/assets/401_images/401.gif
  97. BIN
      vue-element-admin/src/assets/404_images/404.png
  98. BIN
      vue-element-admin/src/assets/404_images/404_cloud.png
  99. BIN
      vue-element-admin/src/assets/custom-theme/fonts/element-icons.ttf
  100. 0
    0
      vue-element-admin/src/assets/custom-theme/fonts/element-icons.woff

+ 31
- 0
foyo-service/.gitignore View File

@@ -0,0 +1,31 @@
1
+HELP.md
2
+target/
3
+!.mvn/wrapper/maven-wrapper.jar
4
+!**/src/main/**
5
+!**/src/test/**
6
+
7
+### STS ###
8
+.apt_generated
9
+.classpath
10
+.factorypath
11
+.project
12
+.settings
13
+.springBeans
14
+.sts4-cache
15
+
16
+### IntelliJ IDEA ###
17
+.idea
18
+*.iws
19
+*.iml
20
+*.ipr
21
+
22
+### NetBeans ###
23
+/nbproject/private/
24
+/nbbuild/
25
+/dist/
26
+/nbdist/
27
+/.nb-gradle/
28
+build/
29
+
30
+### VS Code ###
31
+.vscode/

+ 114
- 0
foyo-service/.mvn/wrapper/MavenWrapperDownloader.java View File

@@ -0,0 +1,114 @@
1
+/*
2
+Licensed to the Apache Software Foundation (ASF) under one
3
+or more contributor license agreements.  See the NOTICE file
4
+distributed with this work for additional information
5
+regarding copyright ownership.  The ASF licenses this file
6
+to you under the Apache License, Version 2.0 (the
7
+"License"); you may not use this file except in compliance
8
+with the License.  You may obtain a copy of the License at
9
+
10
+  https://www.apache.org/licenses/LICENSE-2.0
11
+
12
+Unless required by applicable law or agreed to in writing,
13
+software distributed under the License is distributed on an
14
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+KIND, either express or implied.  See the License for the
16
+specific language governing permissions and limitations
17
+under the License.
18
+*/
19
+
20
+import java.io.File;
21
+import java.io.FileInputStream;
22
+import java.io.FileOutputStream;
23
+import java.io.IOException;
24
+import java.net.URL;
25
+import java.nio.channels.Channels;
26
+import java.nio.channels.ReadableByteChannel;
27
+import java.util.Properties;
28
+
29
+public class MavenWrapperDownloader {
30
+
31
+    /**
32
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
33
+     */
34
+    private static final String DEFAULT_DOWNLOAD_URL =
35
+            "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
36
+
37
+    /**
38
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
39
+     * use instead of the default one.
40
+     */
41
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
42
+            ".mvn/wrapper/maven-wrapper.properties";
43
+
44
+    /**
45
+     * Path where the maven-wrapper.jar will be saved to.
46
+     */
47
+    private static final String MAVEN_WRAPPER_JAR_PATH =
48
+            ".mvn/wrapper/maven-wrapper.jar";
49
+
50
+    /**
51
+     * Name of the property which should be used to override the default download url for the wrapper.
52
+     */
53
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
54
+
55
+    public static void main(String args[]) {
56
+        System.out.println("- Downloader started");
57
+        File baseDirectory = new File(args[0]);
58
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
59
+
60
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
61
+        // wrapperUrl parameter.
62
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
63
+        String url = DEFAULT_DOWNLOAD_URL;
64
+        if(mavenWrapperPropertyFile.exists()) {
65
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
66
+            try {
67
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
68
+                Properties mavenWrapperProperties = new Properties();
69
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
70
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
71
+            } catch (IOException e) {
72
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
73
+            } finally {
74
+                try {
75
+                    if(mavenWrapperPropertyFileInputStream != null) {
76
+                        mavenWrapperPropertyFileInputStream.close();
77
+                    }
78
+                } catch (IOException e) {
79
+                    // Ignore ...
80
+                }
81
+            }
82
+        }
83
+        System.out.println("- Downloading from: : " + url);
84
+
85
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
86
+        if(!outputFile.getParentFile().exists()) {
87
+            if(!outputFile.getParentFile().mkdirs()) {
88
+                System.out.println(
89
+                        "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
90
+            }
91
+        }
92
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
93
+        try {
94
+            downloadFileFromURL(url, outputFile);
95
+            System.out.println("Done");
96
+            System.exit(0);
97
+        } catch (Throwable e) {
98
+            System.out.println("- Error downloading");
99
+            e.printStackTrace();
100
+            System.exit(1);
101
+        }
102
+    }
103
+
104
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
105
+        URL website = new URL(urlString);
106
+        ReadableByteChannel rbc;
107
+        rbc = Channels.newChannel(website.openStream());
108
+        FileOutputStream fos = new FileOutputStream(destination);
109
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
110
+        fos.close();
111
+        rbc.close();
112
+    }
113
+
114
+}

BIN
foyo-service/.mvn/wrapper/maven-wrapper.jar View File


+ 1
- 0
foyo-service/.mvn/wrapper/maven-wrapper.properties View File

@@ -0,0 +1 @@
1
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip

+ 286
- 0
foyo-service/mvnw View File

@@ -0,0 +1,286 @@
1
+#!/bin/sh
2
+# ----------------------------------------------------------------------------
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+#    https://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+# KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+# ----------------------------------------------------------------------------
20
+
21
+# ----------------------------------------------------------------------------
22
+# Maven2 Start Up Batch script
23
+#
24
+# Required ENV vars:
25
+# ------------------
26
+#   JAVA_HOME - location of a JDK home dir
27
+#
28
+# Optional ENV vars
29
+# -----------------
30
+#   M2_HOME - location of maven2's installed home dir
31
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32
+#     e.g. to debug Maven itself, use
33
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35
+# ----------------------------------------------------------------------------
36
+
37
+if [ -z "$MAVEN_SKIP_RC" ] ; then
38
+
39
+  if [ -f /etc/mavenrc ] ; then
40
+    . /etc/mavenrc
41
+  fi
42
+
43
+  if [ -f "$HOME/.mavenrc" ] ; then
44
+    . "$HOME/.mavenrc"
45
+  fi
46
+
47
+fi
48
+
49
+# OS specific support.  $var _must_ be set to either true or false.
50
+cygwin=false;
51
+darwin=false;
52
+mingw=false
53
+case "`uname`" in
54
+  CYGWIN*) cygwin=true ;;
55
+  MINGW*) mingw=true;;
56
+  Darwin*) darwin=true
57
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59
+    if [ -z "$JAVA_HOME" ]; then
60
+      if [ -x "/usr/libexec/java_home" ]; then
61
+        export JAVA_HOME="`/usr/libexec/java_home`"
62
+      else
63
+        export JAVA_HOME="/Library/Java/Home"
64
+      fi
65
+    fi
66
+    ;;
67
+esac
68
+
69
+if [ -z "$JAVA_HOME" ] ; then
70
+  if [ -r /etc/gentoo-release ] ; then
71
+    JAVA_HOME=`java-config --jre-home`
72
+  fi
73
+fi
74
+
75
+if [ -z "$M2_HOME" ] ; then
76
+  ## resolve links - $0 may be a link to maven's home
77
+  PRG="$0"
78
+
79
+  # need this for relative symlinks
80
+  while [ -h "$PRG" ] ; do
81
+    ls=`ls -ld "$PRG"`
82
+    link=`expr "$ls" : '.*-> \(.*\)$'`
83
+    if expr "$link" : '/.*' > /dev/null; then
84
+      PRG="$link"
85
+    else
86
+      PRG="`dirname "$PRG"`/$link"
87
+    fi
88
+  done
89
+
90
+  saveddir=`pwd`
91
+
92
+  M2_HOME=`dirname "$PRG"`/..
93
+
94
+  # make it fully qualified
95
+  M2_HOME=`cd "$M2_HOME" && pwd`
96
+
97
+  cd "$saveddir"
98
+  # echo Using m2 at $M2_HOME
99
+fi
100
+
101
+# For Cygwin, ensure paths are in UNIX format before anything is touched
102
+if $cygwin ; then
103
+  [ -n "$M2_HOME" ] &&
104
+    M2_HOME=`cygpath --unix "$M2_HOME"`
105
+  [ -n "$JAVA_HOME" ] &&
106
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107
+  [ -n "$CLASSPATH" ] &&
108
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109
+fi
110
+
111
+# For Mingw, ensure paths are in UNIX format before anything is touched
112
+if $mingw ; then
113
+  [ -n "$M2_HOME" ] &&
114
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
115
+  [ -n "$JAVA_HOME" ] &&
116
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117
+  # TODO classpath?
118
+fi
119
+
120
+if [ -z "$JAVA_HOME" ]; then
121
+  javaExecutable="`which javac`"
122
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
123
+    # readlink(1) is not available as standard on Solaris 10.
124
+    readLink=`which readlink`
125
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
126
+      if $darwin ; then
127
+        javaHome="`dirname \"$javaExecutable\"`"
128
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
129
+      else
130
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
131
+      fi
132
+      javaHome="`dirname \"$javaExecutable\"`"
133
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
134
+      JAVA_HOME="$javaHome"
135
+      export JAVA_HOME
136
+    fi
137
+  fi
138
+fi
139
+
140
+if [ -z "$JAVACMD" ] ; then
141
+  if [ -n "$JAVA_HOME"  ] ; then
142
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
143
+      # IBM's JDK on AIX uses strange locations for the executables
144
+      JAVACMD="$JAVA_HOME/jre/sh/java"
145
+    else
146
+      JAVACMD="$JAVA_HOME/bin/java"
147
+    fi
148
+  else
149
+    JAVACMD="`which java`"
150
+  fi
151
+fi
152
+
153
+if [ ! -x "$JAVACMD" ] ; then
154
+  echo "Error: JAVA_HOME is not defined correctly." >&2
155
+  echo "  We cannot execute $JAVACMD" >&2
156
+  exit 1
157
+fi
158
+
159
+if [ -z "$JAVA_HOME" ] ; then
160
+  echo "Warning: JAVA_HOME environment variable is not set."
161
+fi
162
+
163
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
164
+
165
+# traverses directory structure from process work directory to filesystem root
166
+# first directory with .mvn subdirectory is considered project base directory
167
+find_maven_basedir() {
168
+
169
+  if [ -z "$1" ]
170
+  then
171
+    echo "Path not specified to find_maven_basedir"
172
+    return 1
173
+  fi
174
+
175
+  basedir="$1"
176
+  wdir="$1"
177
+  while [ "$wdir" != '/' ] ; do
178
+    if [ -d "$wdir"/.mvn ] ; then
179
+      basedir=$wdir
180
+      break
181
+    fi
182
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
183
+    if [ -d "${wdir}" ]; then
184
+      wdir=`cd "$wdir/.."; pwd`
185
+    fi
186
+    # end of workaround
187
+  done
188
+  echo "${basedir}"
189
+}
190
+
191
+# concatenates all lines of a file
192
+concat_lines() {
193
+  if [ -f "$1" ]; then
194
+    echo "$(tr -s '\n' ' ' < "$1")"
195
+  fi
196
+}
197
+
198
+BASE_DIR=`find_maven_basedir "$(pwd)"`
199
+if [ -z "$BASE_DIR" ]; then
200
+  exit 1;
201
+fi
202
+
203
+##########################################################################################
204
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
205
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
206
+##########################################################################################
207
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
208
+    if [ "$MVNW_VERBOSE" = true ]; then
209
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
210
+    fi
211
+else
212
+    if [ "$MVNW_VERBOSE" = true ]; then
213
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
214
+    fi
215
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
216
+    while IFS="=" read key value; do
217
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
218
+      esac
219
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
220
+    if [ "$MVNW_VERBOSE" = true ]; then
221
+      echo "Downloading from: $jarUrl"
222
+    fi
223
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
224
+
225
+    if command -v wget > /dev/null; then
226
+        if [ "$MVNW_VERBOSE" = true ]; then
227
+          echo "Found wget ... using wget"
228
+        fi
229
+        wget "$jarUrl" -O "$wrapperJarPath"
230
+    elif command -v curl > /dev/null; then
231
+        if [ "$MVNW_VERBOSE" = true ]; then
232
+          echo "Found curl ... using curl"
233
+        fi
234
+        curl -o "$wrapperJarPath" "$jarUrl"
235
+    else
236
+        if [ "$MVNW_VERBOSE" = true ]; then
237
+          echo "Falling back to using Java to download"
238
+        fi
239
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
240
+        if [ -e "$javaClass" ]; then
241
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
242
+                if [ "$MVNW_VERBOSE" = true ]; then
243
+                  echo " - Compiling MavenWrapperDownloader.java ..."
244
+                fi
245
+                # Compiling the Java class
246
+                ("$JAVA_HOME/bin/javac" "$javaClass")
247
+            fi
248
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
249
+                # Running the downloader
250
+                if [ "$MVNW_VERBOSE" = true ]; then
251
+                  echo " - Running MavenWrapperDownloader.java ..."
252
+                fi
253
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
254
+            fi
255
+        fi
256
+    fi
257
+fi
258
+##########################################################################################
259
+# End of extension
260
+##########################################################################################
261
+
262
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
263
+if [ "$MVNW_VERBOSE" = true ]; then
264
+  echo $MAVEN_PROJECTBASEDIR
265
+fi
266
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
267
+
268
+# For Cygwin, switch paths to Windows format before running java
269
+if $cygwin; then
270
+  [ -n "$M2_HOME" ] &&
271
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
272
+  [ -n "$JAVA_HOME" ] &&
273
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
274
+  [ -n "$CLASSPATH" ] &&
275
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
276
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
277
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
278
+fi
279
+
280
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
281
+
282
+exec "$JAVACMD" \
283
+  $MAVEN_OPTS \
284
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
285
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
286
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 161
- 0
foyo-service/mvnw.cmd View File

@@ -0,0 +1,161 @@
1
+@REM ----------------------------------------------------------------------------
2
+@REM Licensed to the Apache Software Foundation (ASF) under one
3
+@REM or more contributor license agreements.  See the NOTICE file
4
+@REM distributed with this work for additional information
5
+@REM regarding copyright ownership.  The ASF licenses this file
6
+@REM to you under the Apache License, Version 2.0 (the
7
+@REM "License"); you may not use this file except in compliance
8
+@REM with the License.  You may obtain a copy of the License at
9
+@REM
10
+@REM    https://www.apache.org/licenses/LICENSE-2.0
11
+@REM
12
+@REM Unless required by applicable law or agreed to in writing,
13
+@REM software distributed under the License is distributed on an
14
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+@REM KIND, either express or implied.  See the License for the
16
+@REM specific language governing permissions and limitations
17
+@REM under the License.
18
+@REM ----------------------------------------------------------------------------
19
+
20
+@REM ----------------------------------------------------------------------------
21
+@REM Maven2 Start Up Batch script
22
+@REM
23
+@REM Required ENV vars:
24
+@REM JAVA_HOME - location of a JDK home dir
25
+@REM
26
+@REM Optional ENV vars
27
+@REM M2_HOME - location of maven2's installed home dir
28
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
30
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31
+@REM     e.g. to debug Maven itself, use
32
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34
+@REM ----------------------------------------------------------------------------
35
+
36
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37
+@echo off
38
+@REM set title of command window
39
+title %0
40
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
41
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42
+
43
+@REM set %HOME% to equivalent of $HOME
44
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45
+
46
+@REM Execute a user defined script before this one
47
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51
+:skipRcPre
52
+
53
+@setlocal
54
+
55
+set ERROR_CODE=0
56
+
57
+@REM To isolate internal variables from possible post scripts, we use another setlocal
58
+@setlocal
59
+
60
+@REM ==== START VALIDATION ====
61
+if not "%JAVA_HOME%" == "" goto OkJHome
62
+
63
+echo.
64
+echo Error: JAVA_HOME not found in your environment. >&2
65
+echo Please set the JAVA_HOME variable in your environment to match the >&2
66
+echo location of your Java installation. >&2
67
+echo.
68
+goto error
69
+
70
+:OkJHome
71
+if exist "%JAVA_HOME%\bin\java.exe" goto init
72
+
73
+echo.
74
+echo Error: JAVA_HOME is set to an invalid directory. >&2
75
+echo JAVA_HOME = "%JAVA_HOME%" >&2
76
+echo Please set the JAVA_HOME variable in your environment to match the >&2
77
+echo location of your Java installation. >&2
78
+echo.
79
+goto error
80
+
81
+@REM ==== END VALIDATION ====
82
+
83
+:init
84
+
85
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86
+@REM Fallback to current working directory if not found.
87
+
88
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90
+
91
+set EXEC_DIR=%CD%
92
+set WDIR=%EXEC_DIR%
93
+:findBaseDir
94
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
95
+cd ..
96
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
97
+set WDIR=%CD%
98
+goto findBaseDir
99
+
100
+:baseDirFound
101
+set MAVEN_PROJECTBASEDIR=%WDIR%
102
+cd "%EXEC_DIR%"
103
+goto endDetectBaseDir
104
+
105
+:baseDirNotFound
106
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107
+cd "%EXEC_DIR%"
108
+
109
+:endDetectBaseDir
110
+
111
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112
+
113
+@setlocal EnableExtensions EnableDelayedExpansion
114
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116
+
117
+:endReadAdditionalConfig
118
+
119
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
+
123
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
124
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
125
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
126
+)
127
+
128
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
129
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
130
+if exist %WRAPPER_JAR% (
131
+    echo Found %WRAPPER_JAR%
132
+) else (
133
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
134
+	echo Downloading from: %DOWNLOAD_URL%
135
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
136
+    echo Finished downloading %WRAPPER_JAR%
137
+)
138
+@REM End of extension
139
+
140
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
141
+if ERRORLEVEL 1 goto error
142
+goto end
143
+
144
+:error
145
+set ERROR_CODE=1
146
+
147
+:end
148
+@endlocal & set ERROR_CODE=%ERROR_CODE%
149
+
150
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
151
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
152
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
153
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
154
+:skipRcPost
155
+
156
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
157
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
158
+
159
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
160
+
161
+exit /B %ERROR_CODE%

+ 65
- 0
foyo-service/pom.xml View File

@@ -0,0 +1,65 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+	<modelVersion>4.0.0</modelVersion>
5
+	<parent>
6
+		<groupId>org.springframework.boot</groupId>
7
+		<artifactId>spring-boot-starter-parent</artifactId>
8
+		<version>2.1.7.RELEASE</version>
9
+		<relativePath/> <!-- lookup parent from repository -->
10
+	</parent>
11
+	<groupId>com.huiju</groupId>
12
+	<artifactId>foyo</artifactId>
13
+	<version>0.0.1-SNAPSHOT</version>
14
+	<name>foyo</name>
15
+	<description>Demo project for Spring Boot</description>
16
+
17
+	<properties>
18
+		<java.version>1.8</java.version>
19
+	</properties>
20
+
21
+	<dependencies>
22
+		<dependency>
23
+			<groupId>org.springframework.boot</groupId>
24
+			<artifactId>spring-boot-starter-web</artifactId>
25
+		</dependency>
26
+
27
+		<dependency>
28
+			<groupId>com.baomidou</groupId>
29
+			<artifactId>mybatis-plus-boot-starter</artifactId>
30
+			<version>3.0.6</version>
31
+		</dependency>
32
+
33
+		<dependency>
34
+			<groupId>mysql</groupId>
35
+			<artifactId>mysql-connector-java</artifactId>
36
+			<scope>runtime</scope>
37
+		</dependency>
38
+		<dependency>
39
+			<groupId>org.projectlombok</groupId>
40
+			<artifactId>lombok</artifactId>
41
+			<optional>true</optional>
42
+		</dependency>
43
+		<dependency>
44
+			<groupId>org.springframework.boot</groupId>
45
+			<artifactId>spring-boot-starter-test</artifactId>
46
+			<scope>test</scope>
47
+		</dependency>
48
+		<dependency>
49
+			<groupId>com.alibaba</groupId>
50
+			<artifactId>fastjson</artifactId>
51
+			<version>1.2.56</version>
52
+			<scope>compile</scope>
53
+		</dependency>
54
+	</dependencies>
55
+
56
+	<build>
57
+		<plugins>
58
+			<plugin>
59
+				<groupId>org.springframework.boot</groupId>
60
+				<artifactId>spring-boot-maven-plugin</artifactId>
61
+			</plugin>
62
+		</plugins>
63
+	</build>
64
+
65
+</project>

+ 13
- 0
foyo-service/src/main/java/com/huiju/foyo/FoyoApplication.java View File

@@ -0,0 +1,13 @@
1
+package com.huiju.foyo;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class FoyoApplication {
8
+
9
+	public static void main(String[] args) {
10
+		SpringApplication.run(FoyoApplication.class, args);
11
+	}
12
+
13
+}

+ 11
- 0
foyo-service/src/main/java/com/huiju/foyo/common/BaseController.java View File

@@ -0,0 +1,11 @@
1
+package com.huiju.foyo.common;
2
+
3
+import lombok.extern.slf4j.Slf4j;
4
+
5
+/**
6
+ * @author FXF
7
+ * @date 2018-12-18
8
+ */
9
+@Slf4j
10
+public class BaseController {
11
+}

+ 110
- 0
foyo-service/src/main/java/com/huiju/foyo/common/ResponseBean.java View File

@@ -0,0 +1,110 @@
1
+package com.huiju.foyo.common;
2
+
3
+import java.io.Serializable;
4
+
5
+/**
6
+ * 接口统一状态返回BEAN.
7
+ */
8
+public class ResponseBean<T> implements Serializable {
9
+
10
+    private static final long serialVersionUID = 3593827217136880822L;
11
+
12
+    public static final String CODE_SUCCESS =  "0";
13
+    public static final String CODE_FAIL =  "1";
14
+
15
+    private String code = "0";
16
+
17
+    private String message = "成功";
18
+
19
+    private T data;
20
+
21
+    private String url;
22
+
23
+    public ResponseBean() {
24
+    }
25
+
26
+    public void addDefaultError() {
27
+        this.code = "1";
28
+        this.message = "失败";
29
+    }
30
+
31
+    public void addError(String message) {
32
+        this.code = "1";
33
+        this.message = message;
34
+    }
35
+
36
+    public void addError(String message, String url) {
37
+        this.code = "1";
38
+        this.message = message;
39
+        this.url = url;
40
+    }
41
+
42
+    public void addError(String message, T data, String url) {
43
+        this.code = "1";
44
+        this.message = message;
45
+        this.url = url;
46
+        this.data = data;
47
+    }
48
+
49
+    public void addError(String code,String message, T data, String url) {
50
+        this.code = code;
51
+        this.message = message;
52
+        this.url = url;
53
+        this.data = data;
54
+    }
55
+
56
+    public void addSuccess(String message) {
57
+        this.code = "0";
58
+        this.message = message;
59
+    }
60
+
61
+    public void addSuccess(String code, T data) {
62
+        this.code = code;
63
+        this.message = "成功";
64
+        this.data = data;
65
+    }
66
+
67
+    public void addSuccess(String code, String message, T data) {
68
+        this.code = code;
69
+        this.message = message;
70
+        this.data = data;
71
+    }
72
+
73
+    public void addSuccess(String message, T data, String url) {
74
+        this.code = "0";
75
+        this.message = message;
76
+        this.data = data;
77
+        this.url = url;
78
+    }
79
+
80
+    public void addSuccess(T data) {
81
+        this.code = "0";
82
+        this.message = "成功";
83
+        this.data = data;
84
+    }
85
+
86
+    public T getData() {
87
+        return this.data;
88
+    }
89
+
90
+    public String getCode() {
91
+        return this.code;
92
+    }
93
+
94
+    public String getMessage() {
95
+        return this.message;
96
+    }
97
+
98
+    @Override
99
+    public String toString() {
100
+        return "ResponseBaseBean [code=" + this.code + ", message=" + this.message + ", data=" + this.data + ", url=" + url + "]";
101
+    }
102
+
103
+    public String getUrl() {
104
+        return url;
105
+    }
106
+
107
+    public void setUrl(String url) {
108
+        this.url = url;
109
+    }
110
+}

+ 22
- 0
foyo-service/src/main/java/com/huiju/foyo/config/CorsConfig.java View File

@@ -0,0 +1,22 @@
1
+package com.huiju.foyo.config;
2
+
3
+import org.springframework.context.annotation.Configuration;
4
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
5
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
6
+
7
+/**
8
+ * @author FXF
9
+ * @date 2019-08-21
10
+ */
11
+@Configuration
12
+public class CorsConfig implements WebMvcConfigurer {
13
+	@Override
14
+	public void addCorsMappings(CorsRegistry registry) {
15
+		registry.addMapping("/**")
16
+				.allowedOrigins("*")
17
+				.allowCredentials(true)
18
+				.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
19
+				.maxAge(3600);
20
+	}
21
+}
22
+

+ 36
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/LoginController.java View File

@@ -0,0 +1,36 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.huiju.foyo.common.ResponseBean;
5
+import org.springframework.web.bind.annotation.GetMapping;
6
+import org.springframework.web.bind.annotation.PostMapping;
7
+import org.springframework.web.bind.annotation.RequestBody;
8
+import org.springframework.web.bind.annotation.RequestMapping;
9
+import org.springframework.web.bind.annotation.RestController;
10
+
11
+/**
12
+ * @author FXF
13
+ * @date 2019-08-21
14
+ */
15
+@RestController
16
+@RequestMapping("/")
17
+public class LoginController {
18
+	
19
+	@PostMapping("/admin/login/login")
20
+	public ResponseBean login(@RequestBody String jsonString){
21
+		ResponseBean responseBean = new ResponseBean();
22
+		responseBean.addSuccess(jsonString);
23
+		return responseBean;
24
+	}
25
+	
26
+	@GetMapping("/admin/user/info")
27
+	public String info(){
28
+		JSONObject jsonObject = new JSONObject();
29
+		jsonObject.put("roles","['admin']");
30
+		jsonObject.put("token","admin");
31
+		jsonObject.put("introduction","我是超级管理员");
32
+		jsonObject.put("avatar","https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
33
+		jsonObject.put("name","'Super Admin'");
34
+		return jsonObject.toJSONString();
35
+	}
36
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TaCarouselPictureController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TaCarouselPicture;
9
+import com.huiju.foyo.service.ITaCarouselPictureService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 轮播图  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TaCarouselPictureController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TaCarouselPictureController.class);
34
+
35
+    @Autowired
36
+    public ITaCarouselPictureService iTaCarouselPictureService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/taCarouselPicture",method= RequestMethod.GET)
46
+    public ResponseBean taCarouselPictureList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                              @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TaCarouselPicture> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TaCarouselPicture> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TaCarouselPicture> result = iTaCarouselPictureService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("taCarouselPictureList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param taCarouselPicture 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/taCarouselPicture",method= RequestMethod.POST)
71
+    public ResponseBean taCarouselPictureAdd(@RequestBody TaCarouselPicture taCarouselPicture){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTaCarouselPictureService.save(taCarouselPicture)){
75
+                responseBean.addSuccess(taCarouselPicture);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("taCarouselPictureAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/taCarouselPicture/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean taCarouselPictureDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTaCarouselPictureService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("taCarouselPictureDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param taCarouselPicture 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/taCarouselPicture/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean taCarouselPictureUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TaCarouselPicture taCarouselPicture){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTaCarouselPictureService.updateById(taCarouselPicture)){
121
+                responseBean.addSuccess(taCarouselPicture);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("taCarouselPictureUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/taCarouselPicture/{id}",method= RequestMethod.GET)
138
+    public ResponseBean taCarouselPictureGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTaCarouselPictureService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("taCarouselPictureDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TaCaseController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TaCase;
9
+import com.huiju.foyo.service.ITaCaseService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 案例表  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TaCaseController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TaCaseController.class);
34
+
35
+    @Autowired
36
+    public ITaCaseService iTaCaseService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/taCase",method= RequestMethod.GET)
46
+    public ResponseBean taCaseList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TaCase> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TaCase> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TaCase> result = iTaCaseService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("taCaseList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param taCase 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/taCase",method= RequestMethod.POST)
71
+    public ResponseBean taCaseAdd(@RequestBody TaCase taCase){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTaCaseService.save(taCase)){
75
+                responseBean.addSuccess(taCase);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("taCaseAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/taCase/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean taCaseDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTaCaseService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("taCaseDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param taCase 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/taCase/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean taCaseUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TaCase taCase){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTaCaseService.updateById(taCase)){
121
+                responseBean.addSuccess(taCase);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("taCaseUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/taCase/{id}",method= RequestMethod.GET)
138
+    public ResponseBean taCaseGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTaCaseService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("taCaseDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TaCaseIndexCoverController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TaCaseIndexCover;
9
+import com.huiju.foyo.service.ITaCaseIndexCoverService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 案例首页封面图  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TaCaseIndexCoverController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TaCaseIndexCoverController.class);
34
+
35
+    @Autowired
36
+    public ITaCaseIndexCoverService iTaCaseIndexCoverService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/taCaseIndexCover",method= RequestMethod.GET)
46
+    public ResponseBean taCaseIndexCoverList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                             @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TaCaseIndexCover> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TaCaseIndexCover> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TaCaseIndexCover> result = iTaCaseIndexCoverService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("taCaseIndexCoverList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param taCaseIndexCover 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/taCaseIndexCover",method= RequestMethod.POST)
71
+    public ResponseBean taCaseIndexCoverAdd(@RequestBody TaCaseIndexCover taCaseIndexCover){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTaCaseIndexCoverService.save(taCaseIndexCover)){
75
+                responseBean.addSuccess(taCaseIndexCover);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("taCaseIndexCoverAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/taCaseIndexCover/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean taCaseIndexCoverDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTaCaseIndexCoverService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("taCaseIndexCoverDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param taCaseIndexCover 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/taCaseIndexCover/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean taCaseIndexCoverUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TaCaseIndexCover taCaseIndexCover){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTaCaseIndexCoverService.updateById(taCaseIndexCover)){
121
+                responseBean.addSuccess(taCaseIndexCover);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("taCaseIndexCoverUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/taCaseIndexCover/{id}",method= RequestMethod.GET)
138
+    public ResponseBean taCaseIndexCoverGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTaCaseIndexCoverService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("taCaseIndexCoverDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TaCaseTypeController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TaCaseType;
9
+import com.huiju.foyo.service.ITaCaseTypeService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 案列类型表  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TaCaseTypeController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TaCaseTypeController.class);
34
+
35
+    @Autowired
36
+    public ITaCaseTypeService iTaCaseTypeService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/taCaseType",method= RequestMethod.GET)
46
+    public ResponseBean taCaseTypeList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                       @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TaCaseType> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TaCaseType> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TaCaseType> result = iTaCaseTypeService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("taCaseTypeList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param taCaseType 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/taCaseType",method= RequestMethod.POST)
71
+    public ResponseBean taCaseTypeAdd(@RequestBody TaCaseType taCaseType){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTaCaseTypeService.save(taCaseType)){
75
+                responseBean.addSuccess(taCaseType);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("taCaseTypeAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/taCaseType/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean taCaseTypeDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTaCaseTypeService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("taCaseTypeDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param taCaseType 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/taCaseType/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean taCaseTypeUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TaCaseType taCaseType){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTaCaseTypeService.updateById(taCaseType)){
121
+                responseBean.addSuccess(taCaseType);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("taCaseTypeUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/taCaseType/{id}",method= RequestMethod.GET)
138
+    public ResponseBean taCaseTypeGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTaCaseTypeService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("taCaseTypeDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TaServiceController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TaService;
9
+import com.huiju.foyo.service.ITaServiceService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 服务表  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TaServiceController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TaServiceController.class);
34
+
35
+    @Autowired
36
+    public ITaServiceService iTaServiceService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/admin/service/list",method= RequestMethod.GET)
46
+    public ResponseBean taServiceList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                      @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TaService> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TaService> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TaService> result = iTaServiceService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("taServiceList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param taService 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/taService",method= RequestMethod.POST)
71
+    public ResponseBean taServiceAdd(@RequestBody TaService taService){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTaServiceService.save(taService)){
75
+                responseBean.addSuccess(taService);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("taServiceAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/taService/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean taServiceDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTaServiceService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("taServiceDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param taService 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/taService/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean taServiceUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TaService taService){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTaServiceService.updateById(taService)){
121
+                responseBean.addSuccess(taService);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("taServiceUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/taService/{id}",method= RequestMethod.GET)
138
+    public ResponseBean taServiceGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTaServiceService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("taServiceDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TaServiceLabelController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TaServiceLabel;
9
+import com.huiju.foyo.service.ITaServiceLabelService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 服务标签表  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TaServiceLabelController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TaServiceLabelController.class);
34
+
35
+    @Autowired
36
+    public ITaServiceLabelService iTaServiceLabelService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/taServiceLabel",method= RequestMethod.GET)
46
+    public ResponseBean taServiceLabelList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                           @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TaServiceLabel> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TaServiceLabel> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TaServiceLabel> result = iTaServiceLabelService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("taServiceLabelList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param taServiceLabel 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/taServiceLabel",method= RequestMethod.POST)
71
+    public ResponseBean taServiceLabelAdd(@RequestBody TaServiceLabel taServiceLabel){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTaServiceLabelService.save(taServiceLabel)){
75
+                responseBean.addSuccess(taServiceLabel);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("taServiceLabelAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/taServiceLabel/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean taServiceLabelDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTaServiceLabelService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("taServiceLabelDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param taServiceLabel 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/taServiceLabel/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean taServiceLabelUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TaServiceLabel taServiceLabel){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTaServiceLabelService.updateById(taServiceLabel)){
121
+                responseBean.addSuccess(taServiceLabel);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("taServiceLabelUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/taServiceLabel/{id}",method= RequestMethod.GET)
138
+    public ResponseBean taServiceLabelGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTaServiceLabelService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("taServiceLabelDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TdCompanyInfoController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TdCompanyInfo;
9
+import com.huiju.foyo.service.ITdCompanyInfoService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 公司信息  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TdCompanyInfoController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TdCompanyInfoController.class);
34
+
35
+    @Autowired
36
+    public ITdCompanyInfoService iTdCompanyInfoService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/tdCompanyInfo",method= RequestMethod.GET)
46
+    public ResponseBean tdCompanyInfoList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                          @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TdCompanyInfo> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TdCompanyInfo> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TdCompanyInfo> result = iTdCompanyInfoService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("tdCompanyInfoList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param tdCompanyInfo 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/tdCompanyInfo",method= RequestMethod.POST)
71
+    public ResponseBean tdCompanyInfoAdd(@RequestBody TdCompanyInfo tdCompanyInfo){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTdCompanyInfoService.save(tdCompanyInfo)){
75
+                responseBean.addSuccess(tdCompanyInfo);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("tdCompanyInfoAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/tdCompanyInfo/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean tdCompanyInfoDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTdCompanyInfoService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("tdCompanyInfoDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param tdCompanyInfo 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/tdCompanyInfo/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean tdCompanyInfoUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TdCompanyInfo tdCompanyInfo){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTdCompanyInfoService.updateById(tdCompanyInfo)){
121
+                responseBean.addSuccess(tdCompanyInfo);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("tdCompanyInfoUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/tdCompanyInfo/{id}",method= RequestMethod.GET)
138
+    public ResponseBean tdCompanyInfoGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTdCompanyInfoService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("tdCompanyInfoDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 149
- 0
foyo-service/src/main/java/com/huiju/foyo/controller/TdPartnerController.java View File

@@ -0,0 +1,149 @@
1
+package com.huiju.foyo.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.foyo.common.BaseController;
7
+import com.huiju.foyo.common.ResponseBean;
8
+import com.huiju.foyo.model.TdPartner;
9
+import com.huiju.foyo.service.ITdPartnerService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import org.springframework.web.bind.annotation.ResponseBody;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+/**
22
+ * <p>
23
+    * 合作伙伴  前端控制器
24
+    * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-08-21
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+public class TdPartnerController extends BaseController {
32
+
33
+    private final Logger logger = LoggerFactory.getLogger(TdPartnerController.class);
34
+
35
+    @Autowired
36
+    public ITdPartnerService iTdPartnerService;
37
+
38
+
39
+    /**
40
+     * 分页查询列表
41
+     * @param pageNum
42
+     * @param pageSize
43
+     * @return
44
+     */
45
+    @RequestMapping(value="/tdPartner",method= RequestMethod.GET)
46
+    public ResponseBean tdPartnerList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
+                                      @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+        ResponseBean responseBean = new ResponseBean();
49
+        try {
50
+            //使用分页插件
51
+		    IPage<TdPartner> pg = new Page<>(pageNum, pageSize);
52
+            QueryWrapper<TdPartner> queryWrapper = new QueryWrapper<>();
53
+            queryWrapper.orderByDesc("create_time");
54
+
55
+            IPage<TdPartner> result = iTdPartnerService.page(pg, queryWrapper);
56
+            responseBean.addSuccess(result);
57
+        }catch (Exception e){
58
+            e.printStackTrace();
59
+            logger.error("tdPartnerList -=- {}",e.toString());
60
+            responseBean.addError(e.getMessage());
61
+        }
62
+        return responseBean;
63
+    }
64
+
65
+    /**
66
+     * 保存对象
67
+     * @param tdPartner 实体对象
68
+     * @return
69
+     */
70
+    @RequestMapping(value="/tdPartner",method= RequestMethod.POST)
71
+    public ResponseBean tdPartnerAdd(@RequestBody TdPartner tdPartner){
72
+        ResponseBean responseBean = new ResponseBean();
73
+        try {
74
+            if (iTdPartnerService.save(tdPartner)){
75
+                responseBean.addSuccess(tdPartner);
76
+            }else {
77
+                responseBean.addError("fail");
78
+            }
79
+        }catch (Exception e){
80
+            e.printStackTrace();
81
+            logger.error("tdPartnerAdd -=- {}",e.toString());
82
+            responseBean.addError(e.getMessage());
83
+        }
84
+        return responseBean;
85
+    }
86
+
87
+    /**
88
+     * 根据id删除对象
89
+     * @param id  实体ID
90
+     */
91
+    @ResponseBody
92
+    @RequestMapping(value="/tdPartner/{id}", method= RequestMethod.DELETE)
93
+    public ResponseBean tdPartnerDelete(@PathVariable Integer id){
94
+        ResponseBean responseBean = new ResponseBean();
95
+        try {
96
+            if(iTdPartnerService.removeById(id)){
97
+                responseBean.addSuccess("success");
98
+            }else {
99
+                responseBean.addError("fail");
100
+            }
101
+        }catch (Exception e){
102
+            e.printStackTrace();
103
+            logger.error("tdPartnerDelete -=- {}",e.toString());
104
+            responseBean.addError(e.getMessage());
105
+        }
106
+        return responseBean;
107
+    }
108
+
109
+    /**
110
+     * 修改对象
111
+     * @param id  实体ID
112
+     * @param tdPartner 实体对象
113
+     * @return
114
+     */
115
+    @RequestMapping(value="/tdPartner/{id}",method= RequestMethod.PUT)
116
+    public ResponseBean tdPartnerUpdate(@PathVariable Integer id,
117
+                                        @RequestBody TdPartner tdPartner){
118
+        ResponseBean responseBean = new ResponseBean();
119
+        try {
120
+            if (iTdPartnerService.updateById(tdPartner)){
121
+                responseBean.addSuccess(tdPartner);
122
+            }else {
123
+                responseBean.addError("fail");
124
+            }
125
+        }catch (Exception e){
126
+            e.printStackTrace();
127
+            logger.error("tdPartnerUpdate -=- {}",e.toString());
128
+            responseBean.addError(e.getMessage());
129
+        }
130
+        return responseBean;
131
+    }
132
+
133
+    /**
134
+     * 根据id查询对象
135
+     * @param id  实体ID
136
+     */
137
+    @RequestMapping(value="/tdPartner/{id}",method= RequestMethod.GET)
138
+    public ResponseBean tdPartnerGet(@PathVariable Integer id){
139
+        ResponseBean responseBean = new ResponseBean();
140
+        try {
141
+            responseBean.addSuccess(iTdPartnerService.getById(id));
142
+        }catch (Exception e){
143
+            e.printStackTrace();
144
+            logger.error("tdPartnerDelete -=- {}",e.toString());
145
+            responseBean.addError(e.getMessage());
146
+        }
147
+        return responseBean;
148
+    }
149
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TaCarouselPictureMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TaCarouselPicture;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 轮播图  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TaCarouselPictureMapper extends BaseMapper<TaCarouselPicture> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TaCaseIndexCoverMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TaCaseIndexCover;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 案例首页封面图  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TaCaseIndexCoverMapper extends BaseMapper<TaCaseIndexCover> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TaCaseMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TaCase;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 案例表  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TaCaseMapper extends BaseMapper<TaCase> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TaCaseTypeMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TaCaseType;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 案列类型表  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TaCaseTypeMapper extends BaseMapper<TaCaseType> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TaServiceLabelMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TaServiceLabel;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 服务标签表  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TaServiceLabelMapper extends BaseMapper<TaServiceLabel> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TaServiceMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TaService;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 服务表  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TaServiceMapper extends BaseMapper<TaService> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TdCompanyInfoMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TdCompanyInfo;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 公司信息  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TdCompanyInfoMapper extends BaseMapper<TdCompanyInfo> {
17
+
18
+}

+ 18
- 0
foyo-service/src/main/java/com/huiju/foyo/dao/TdPartnerMapper.java View File

@@ -0,0 +1,18 @@
1
+package com.huiju.foyo.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.foyo.model.TdPartner;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 合作伙伴  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-08-21
14
+ */
15
+@Mapper
16
+public interface TdPartnerMapper extends BaseMapper<TdPartner> {
17
+
18
+}

+ 66
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TaCarouselPicture.java View File

@@ -0,0 +1,66 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 轮播图 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaCarouselPicture implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 排序
52
+     */
53
+    private Integer sort;
54
+
55
+    /**
56
+     * 状态
57
+     */
58
+    private Integer status;
59
+
60
+    /**
61
+     * 图片链接
62
+     */
63
+    private String imageUrl;
64
+
65
+
66
+}

+ 101
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TaCase.java View File

@@ -0,0 +1,101 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 案例表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaCase implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 类型ID
52
+     */
53
+    private Integer taCaseTypeId;
54
+
55
+    /**
56
+     * 排序
57
+     */
58
+    private Integer sort;
59
+
60
+    /**
61
+     * 状态
62
+     */
63
+    private Integer status;
64
+
65
+    /**
66
+     * 置顶 1是置顶
67
+     */
68
+    private Integer topping;
69
+
70
+    /**
71
+     * 案例封面图
72
+     */
73
+    private String caseCoverImg;
74
+
75
+    /**
76
+     * 案例标题
77
+     */
78
+    private String caseTitle;
79
+
80
+    /**
81
+     * 案例简介
82
+     */
83
+    private String caseSummary;
84
+
85
+    /**
86
+     * 案例客户方logo
87
+     */
88
+    private String caseLogoImg;
89
+
90
+    /**
91
+     * 所属行业
92
+     */
93
+    private String caseIndustry;
94
+
95
+    /**
96
+     * 案例内容
97
+     */
98
+    private String caseContent;
99
+
100
+
101
+}

+ 61
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TaCaseIndexCover.java View File

@@ -0,0 +1,61 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 案例首页封面图 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaCaseIndexCover implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 状态
52
+     */
53
+    private Integer status;
54
+
55
+    /**
56
+     * 封面图
57
+     */
58
+    private String coverImg;
59
+
60
+
61
+}

+ 61
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TaCaseType.java View File

@@ -0,0 +1,61 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 案列类型表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaCaseType implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 排序
52
+     */
53
+    private Integer sort;
54
+
55
+    /**
56
+     * 类型名称
57
+     */
58
+    private String typeName;
59
+
60
+
61
+}

+ 71
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TaService.java View File

@@ -0,0 +1,71 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 服务表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaService implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 服务名称
52
+     */
53
+    private String serviceName;
54
+
55
+    /**
56
+     * 服务展示图
57
+     */
58
+    private String serviceImageUrl;
59
+
60
+    /**
61
+     * 状态
62
+     */
63
+    private Integer status;
64
+
65
+    /**
66
+     * 排序
67
+     */
68
+    private Integer sort;
69
+
70
+
71
+}

+ 66
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TaServiceLabel.java View File

@@ -0,0 +1,66 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 服务标签表 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaServiceLabel implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 服务id
52
+     */
53
+    private Integer serviceId;
54
+
55
+    /**
56
+     * 标签名称
57
+     */
58
+    private String labelName;
59
+
60
+    /**
61
+     * 排序
62
+     */
63
+    private Integer sort;
64
+
65
+
66
+}

+ 66
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TdCompanyInfo.java View File

@@ -0,0 +1,66 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 公司信息 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TdCompanyInfo implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 公司图片
52
+     */
53
+    private String companyImg;
54
+
55
+    /**
56
+     * 公司坐标经度
57
+     */
58
+    private String longitude;
59
+
60
+    /**
61
+     * 公司坐标纬度
62
+     */
63
+    private String latitude;
64
+
65
+
66
+}

+ 71
- 0
foyo-service/src/main/java/com/huiju/foyo/model/TdPartner.java View File

@@ -0,0 +1,71 @@
1
+package com.huiju.foyo.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 合作伙伴 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-08-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TdPartner implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+    
27
+    @TableId(value = "id", type = IdType.AUTO)
28
+    private Integer id;
29
+    
30
+    /**
31
+     * 创建人
32
+     */
33
+    private String createBy;
34
+
35
+    /**
36
+     * 创建时间
37
+     */
38
+    private LocalDateTime createTime;
39
+
40
+    /**
41
+     * 更新人
42
+     */
43
+    private String updateBy;
44
+
45
+    /**
46
+     * 更新时间
47
+     */
48
+    private LocalDateTime updateTime;
49
+
50
+    /**
51
+     * 合作企业名称
52
+     */
53
+    private String name;
54
+
55
+    /**
56
+     * 合作企业logo
57
+     */
58
+    private String logoImg;
59
+
60
+    /**
61
+     * 排序
62
+     */
63
+    private Integer sort;
64
+
65
+    /**
66
+     * 状态
67
+     */
68
+    private Integer status;
69
+
70
+
71
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITaCarouselPictureService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TaCarouselPicture;
5
+
6
+/**
7
+ * <p>
8
+ * 轮播图  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITaCarouselPictureService extends IService<TaCarouselPicture> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITaCaseIndexCoverService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TaCaseIndexCover;
5
+
6
+/**
7
+ * <p>
8
+ * 案例首页封面图  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITaCaseIndexCoverService extends IService<TaCaseIndexCover> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITaCaseService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TaCase;
5
+
6
+/**
7
+ * <p>
8
+ * 案例表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITaCaseService extends IService<TaCase> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITaCaseTypeService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TaCaseType;
5
+
6
+/**
7
+ * <p>
8
+ * 案列类型表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITaCaseTypeService extends IService<TaCaseType> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITaServiceLabelService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TaServiceLabel;
5
+
6
+/**
7
+ * <p>
8
+ * 服务标签表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITaServiceLabelService extends IService<TaServiceLabel> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITaServiceService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TaService;
5
+
6
+/**
7
+ * <p>
8
+ * 服务表  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITaServiceService extends IService<TaService> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITdCompanyInfoService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TdCompanyInfo;
5
+
6
+/**
7
+ * <p>
8
+ * 公司信息  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITdCompanyInfoService extends IService<TdCompanyInfo> {
15
+
16
+}

+ 16
- 0
foyo-service/src/main/java/com/huiju/foyo/service/ITdPartnerService.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.foyo.model.TdPartner;
5
+
6
+/**
7
+ * <p>
8
+ * 合作伙伴  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-08-21
13
+ */
14
+public interface ITdPartnerService extends IService<TdPartner> {
15
+
16
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCarouselPictureServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TaCarouselPictureMapper;
5
+import com.huiju.foyo.model.TaCarouselPicture;
6
+import com.huiju.foyo.service.ITaCarouselPictureService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 轮播图  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TaCarouselPictureServiceImpl extends ServiceImpl<TaCarouselPictureMapper, TaCarouselPicture> implements ITaCarouselPictureService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCaseIndexCoverServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TaCaseIndexCoverMapper;
5
+import com.huiju.foyo.model.TaCaseIndexCover;
6
+import com.huiju.foyo.service.ITaCaseIndexCoverService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 案例首页封面图  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TaCaseIndexCoverServiceImpl extends ServiceImpl<TaCaseIndexCoverMapper, TaCaseIndexCover> implements ITaCaseIndexCoverService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCaseServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TaCaseMapper;
5
+import com.huiju.foyo.model.TaCase;
6
+import com.huiju.foyo.service.ITaCaseService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 案例表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TaCaseServiceImpl extends ServiceImpl<TaCaseMapper, TaCase> implements ITaCaseService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TaCaseTypeServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TaCaseTypeMapper;
5
+import com.huiju.foyo.model.TaCaseType;
6
+import com.huiju.foyo.service.ITaCaseTypeService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 案列类型表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TaCaseTypeServiceImpl extends ServiceImpl<TaCaseTypeMapper, TaCaseType> implements ITaCaseTypeService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TaServiceLabelServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TaServiceLabelMapper;
5
+import com.huiju.foyo.model.TaServiceLabel;
6
+import com.huiju.foyo.service.ITaServiceLabelService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 服务标签表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TaServiceLabelServiceImpl extends ServiceImpl<TaServiceLabelMapper, TaServiceLabel> implements ITaServiceLabelService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TaServiceServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TaServiceMapper;
5
+import com.huiju.foyo.model.TaService;
6
+import com.huiju.foyo.service.ITaServiceService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 服务表  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TaServiceServiceImpl extends ServiceImpl<TaServiceMapper, TaService> implements ITaServiceService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TdCompanyInfoServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TdCompanyInfoMapper;
5
+import com.huiju.foyo.model.TdCompanyInfo;
6
+import com.huiju.foyo.service.ITdCompanyInfoService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 公司信息  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TdCompanyInfoServiceImpl extends ServiceImpl<TdCompanyInfoMapper, TdCompanyInfo> implements ITdCompanyInfoService {
19
+
20
+}

+ 20
- 0
foyo-service/src/main/java/com/huiju/foyo/service/impl/TdPartnerServiceImpl.java View File

@@ -0,0 +1,20 @@
1
+package com.huiju.foyo.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.foyo.dao.TdPartnerMapper;
5
+import com.huiju.foyo.model.TdPartner;
6
+import com.huiju.foyo.service.ITdPartnerService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 合作伙伴  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-08-21
16
+ */
17
+@Service
18
+public class TdPartnerServiceImpl extends ServiceImpl<TdPartnerMapper, TdPartner> implements ITdPartnerService {
19
+
20
+}

+ 14
- 0
foyo-service/src/main/resources/application.yml View File

@@ -0,0 +1,14 @@
1
+spring:
2
+  datasource:
3
+    driver-class-name: com.mysql.jdbc.Driver
4
+    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/foyo?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
5
+    username: root
6
+    password: DQ@0lW##kBb2+-jPZC1s$Ma0h5$9W((q
7
+##mybatis-plus
8
+mybatis-plus:
9
+  global-config:
10
+    db-config:
11
+      id-type: auto
12
+  configuration:
13
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #´òÓ¡sqlÓï¾ä,µ÷ÊÔÓÃ
14
+  mapper-locations: classpath:mapper/*.xml

+ 5
- 0
foyo-service/src/main/resources/mapper/TaCarouselPictureMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TaCarouselPictureMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TaCaseIndexCoverMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TaCaseIndexCoverMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TaCaseMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TaCaseMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TaCaseTypeMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TaCaseTypeMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TaServiceLabelMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TaServiceLabelMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TaServiceMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TaServiceMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TdCompanyInfoMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TdCompanyInfoMapper">
4
+
5
+</mapper>

+ 5
- 0
foyo-service/src/main/resources/mapper/TdPartnerMapper.xml View File

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.foyo.dao.TdPartnerMapper">
4
+
5
+</mapper>

+ 16
- 0
foyo-service/src/test/java/com/huiju/foyo/FoyoApplicationTests.java View File

@@ -0,0 +1,16 @@
1
+package com.huiju.foyo;
2
+
3
+import org.junit.Test;
4
+import org.junit.runner.RunWith;
5
+import org.springframework.boot.test.context.SpringBootTest;
6
+import org.springframework.test.context.junit4.SpringRunner;
7
+
8
+@RunWith(SpringRunner.class)
9
+@SpringBootTest
10
+public class FoyoApplicationTests {
11
+
12
+	@Test
13
+	public void contextLoads() {
14
+	}
15
+
16
+}

+ 1403
- 0
foyo.pdman.json
File diff suppressed because it is too large
View File


+ 17
- 0
vue-element-admin/.babelrc View File

@@ -0,0 +1,17 @@
1
+{
2
+  "presets": [
3
+    ["env", {
4
+      "modules": false,
5
+      "targets": {
6
+        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7
+      }
8
+    }],
9
+    "stage-2"
10
+  ],
11
+  "plugins": ["transform-vue-jsx", "transform-runtime"],
12
+  "env": {
13
+    "development":{
14
+      "plugins": ["dynamic-import-node"]
15
+    }
16
+  }
17
+}

+ 14
- 0
vue-element-admin/.editorconfig View File

@@ -0,0 +1,14 @@
1
+# http://editorconfig.org
2
+root = true
3
+
4
+[*]
5
+charset = utf-8
6
+indent_style = space
7
+indent_size = 2
8
+end_of_line = lf
9
+insert_final_newline = true
10
+trim_trailing_whitespace = true
11
+
12
+[*.md]
13
+insert_final_newline = false
14
+trim_trailing_whitespace = false

+ 3
- 0
vue-element-admin/.eslintignore View File

@@ -0,0 +1,3 @@
1
+build/*.js
2
+config/*.js
3
+src/assets

+ 195
- 0
vue-element-admin/.eslintrc.js View File

@@ -0,0 +1,195 @@
1
+module.exports = {
2
+  root: true,
3
+  parserOptions: {
4
+    parser: 'babel-eslint',
5
+    sourceType: 'module'
6
+  },
7
+  env: {
8
+    browser: true,
9
+    node: true,
10
+    es6: true,
11
+  },
12
+  extends: ['plugin:vue/recommended', 'eslint:recommended'],
13
+
14
+  // add your custom rules here
15
+  //it is base on https://github.com/vuejs/eslint-config-vue
16
+  rules: {
17
+    "vue/max-attributes-per-line": [2, {
18
+      "singleline": 10,
19
+      "multiline": {
20
+        "max": 1,
21
+        "allowFirstLine": false
22
+      }
23
+    }],
24
+    "vue/name-property-casing": ["error", "PascalCase"],
25
+    'accessor-pairs': 2,
26
+    'arrow-spacing': [2, {
27
+      'before': true,
28
+      'after': true
29
+    }],
30
+    'block-spacing': [2, 'always'],
31
+    'brace-style': [2, '1tbs', {
32
+      'allowSingleLine': true
33
+    }],
34
+    'camelcase': [0, {
35
+      'properties': 'always'
36
+    }],
37
+    'comma-dangle': [2, 'never'],
38
+    'comma-spacing': [2, {
39
+      'before': false,
40
+      'after': true
41
+    }],
42
+    'comma-style': [2, 'last'],
43
+    'constructor-super': 2,
44
+    'curly': [2, 'multi-line'],
45
+    'dot-location': [2, 'property'],
46
+    'eol-last': 2,
47
+    'eqeqeq': [2, 'allow-null'],
48
+    'generator-star-spacing': [2, {
49
+      'before': true,
50
+      'after': true
51
+    }],
52
+    'handle-callback-err': [2, '^(err|error)$'],
53
+    'indent': [2, 2, {
54
+      'SwitchCase': 1
55
+    }],
56
+    'jsx-quotes': [2, 'prefer-single'],
57
+    'key-spacing': [2, {
58
+      'beforeColon': false,
59
+      'afterColon': true
60
+    }],
61
+    'keyword-spacing': [2, {
62
+      'before': true,
63
+      'after': true
64
+    }],
65
+    'new-cap': [2, {
66
+      'newIsCap': true,
67
+      'capIsNew': false
68
+    }],
69
+    'new-parens': 2,
70
+    'no-array-constructor': 2,
71
+    'no-caller': 2,
72
+    'no-console': 'off',
73
+    'no-class-assign': 2,
74
+    'no-cond-assign': 2,
75
+    'no-const-assign': 2,
76
+    'no-control-regex': 0,
77
+    'no-delete-var': 2,
78
+    'no-dupe-args': 2,
79
+    'no-dupe-class-members': 2,
80
+    'no-dupe-keys': 2,
81
+    'no-duplicate-case': 2,
82
+    'no-empty-character-class': 2,
83
+    'no-empty-pattern': 2,
84
+    'no-eval': 2,
85
+    'no-ex-assign': 2,
86
+    'no-extend-native': 2,
87
+    'no-extra-bind': 2,
88
+    'no-extra-boolean-cast': 2,
89
+    'no-extra-parens': [2, 'functions'],
90
+    'no-fallthrough': 2,
91
+    'no-floating-decimal': 2,
92
+    'no-func-assign': 2,
93
+    'no-implied-eval': 2,
94
+    'no-inner-declarations': [2, 'functions'],
95
+    'no-invalid-regexp': 2,
96
+    'no-irregular-whitespace': 2,
97
+    'no-iterator': 2,
98
+    'no-label-var': 2,
99
+    'no-labels': [2, {
100
+      'allowLoop': false,
101
+      'allowSwitch': false
102
+    }],
103
+    'no-lone-blocks': 2,
104
+    'no-mixed-spaces-and-tabs': 2,
105
+    'no-multi-spaces': 2,
106
+    'no-multi-str': 2,
107
+    'no-multiple-empty-lines': [2, {
108
+      'max': 1
109
+    }],
110
+    'no-native-reassign': 2,
111
+    'no-negated-in-lhs': 2,
112
+    'no-new-object': 2,
113
+    'no-new-require': 2,
114
+    'no-new-symbol': 2,
115
+    'no-new-wrappers': 2,
116
+    'no-obj-calls': 2,
117
+    'no-octal': 2,
118
+    'no-octal-escape': 2,
119
+    'no-path-concat': 2,
120
+    'no-proto': 2,
121
+    'no-redeclare': 2,
122
+    'no-regex-spaces': 2,
123
+    'no-return-assign': [2, 'except-parens'],
124
+    'no-self-assign': 2,
125
+    'no-self-compare': 2,
126
+    'no-sequences': 2,
127
+    'no-shadow-restricted-names': 2,
128
+    'no-spaced-func': 2,
129
+    'no-sparse-arrays': 2,
130
+    'no-this-before-super': 2,
131
+    'no-throw-literal': 2,
132
+    'no-trailing-spaces': 2,
133
+    'no-undef': 2,
134
+    'no-undef-init': 2,
135
+    'no-unexpected-multiline': 2,
136
+    'no-unmodified-loop-condition': 2,
137
+    'no-unneeded-ternary': [2, {
138
+      'defaultAssignment': false
139
+    }],
140
+    'no-unreachable': 2,
141
+    'no-unsafe-finally': 2,
142
+    'no-unused-vars': [2, {
143
+      'vars': 'all',
144
+      'args': 'none'
145
+    }],
146
+    'no-useless-call': 2,
147
+    'no-useless-computed-key': 2,
148
+    'no-useless-constructor': 2,
149
+    'no-useless-escape': 0,
150
+    'no-whitespace-before-property': 2,
151
+    'no-with': 2,
152
+    'one-var': [2, {
153
+      'initialized': 'never'
154
+    }],
155
+    'operator-linebreak': [2, 'after', {
156
+      'overrides': {
157
+        '?': 'before',
158
+        ':': 'before'
159
+      }
160
+    }],
161
+    'padded-blocks': [2, 'never'],
162
+    'quotes': [2, 'single', {
163
+      'avoidEscape': true,
164
+      'allowTemplateLiterals': true
165
+    }],
166
+    'semi': [2, 'never'],
167
+    'semi-spacing': [2, {
168
+      'before': false,
169
+      'after': true
170
+    }],
171
+    'space-before-blocks': [2, 'always'],
172
+    'space-before-function-paren': [2, 'never'],
173
+    'space-in-parens': [2, 'never'],
174
+    'space-infix-ops': 2,
175
+    'space-unary-ops': [2, {
176
+      'words': true,
177
+      'nonwords': false
178
+    }],
179
+    'spaced-comment': [2, 'always', {
180
+      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
181
+    }],
182
+    'template-curly-spacing': [2, 'never'],
183
+    'use-isnan': 2,
184
+    'valid-typeof': 2,
185
+    'wrap-iife': [2, 'any'],
186
+    'yield-star-spacing': [2, 'both'],
187
+    'yoda': [2, 'never'],
188
+    'prefer-const': 2,
189
+    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
190
+    'object-curly-spacing': [2, 'always', {
191
+      objectsInObjects: false
192
+    }],
193
+    'array-bracket-spacing': [2, 'never']
194
+  }
195
+}

+ 21
- 0
vue-element-admin/.gitignore View File

@@ -0,0 +1,21 @@
1
+.DS_Store
2
+node_modules/
3
+dist/
4
+npm-debug.log*
5
+yarn-debug.log*
6
+yarn-error.log*
7
+**/*.log
8
+
9
+test/unit/coverage
10
+test/e2e/reports
11
+selenium-debug.log
12
+
13
+# Editor directories and files
14
+.idea
15
+.vscode
16
+*.suo
17
+*.ntvs*
18
+*.njsproj
19
+*.sln
20
+
21
+package-lock.json

+ 10
- 0
vue-element-admin/.postcssrc.js View File

@@ -0,0 +1,10 @@
1
+// https://github.com/michael-ciniawsky/postcss-load-config
2
+
3
+module.exports = {
4
+  "plugins": {
5
+    "postcss-import": {},
6
+    "postcss-url": {},
7
+    // to edit target browsers: use "browserslist" field in package.json
8
+    "autoprefixer": {}
9
+  }
10
+}

+ 5
- 0
vue-element-admin/.travis.yml View File

@@ -0,0 +1,5 @@
1
+language: node_js
2
+node_js: stable
3
+script: npm run test
4
+notifications:
5
+  email: false

+ 21
- 0
vue-element-admin/LICENSE View File

@@ -0,0 +1,21 @@
1
+MIT License
2
+
3
+Copyright (c) 2017-present PanJiaChen
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining a copy
6
+of this software and associated documentation files (the "Software"), to deal
7
+in the Software without restriction, including without limitation the rights
8
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+copies of the Software, and to permit persons to whom the Software is
10
+furnished to do so, subject to the following conditions:
11
+
12
+The above copyright notice and this permission notice shall be included in all
13
+copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+SOFTWARE.

+ 214
- 0
vue-element-admin/README.md View File

@@ -0,0 +1,214 @@
1
+<p align="center">
2
+  <img width="320" src="https://wpimg.wallstcn.com/ecc53a42-d79b-42e2-8852-5126b810a4c8.svg">
3
+</p>
4
+
5
+<p align="center">
6
+  <a href="https://github.com/vuejs/vue">
7
+    <img src="https://img.shields.io/badge/vue-2.5.17-brightgreen.svg" alt="vue">
8
+  </a>
9
+  <a href="https://github.com/ElemeFE/element">
10
+    <img src="https://img.shields.io/badge/element--ui-2.4.6-brightgreen.svg" alt="element-ui">
11
+  </a>
12
+  <a href="https://travis-ci.org/PanJiaChen/vue-element-admin" rel="nofollow">
13
+    <img src="https://travis-ci.org/PanJiaChen/vue-element-admin.svg?branch=master" alt="Build Status">
14
+  </a>
15
+  <a href="https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE">
16
+    <img src="https://img.shields.io/github/license/mashape/apistatus.svg" alt="license">
17
+  </a>
18
+  <a href="https://github.com/PanJiaChen/vue-element-admin/releases">
19
+    <img src="https://img.shields.io/github/release/PanJiaChen/vue-element-admin.svg" alt="GitHub release">
20
+  </a>
21
+  <a href="https://gitter.im/vue-element-admin/discuss">
22
+    <img src="https://badges.gitter.im/Join%20Chat.svg" alt="gitter">
23
+  </a>
24
+  <a href="https://panjiachen.github.io/vue-element-admin-site/donate">
25
+    <img src="https://img.shields.io/badge/%24-donate-ff69b4.svg" alt="donate">
26
+  </a>
27
+</p>
28
+
29
+English | [简体中文](./README.zh-CN.md)
30
+
31
+## Introduction
32
+
33
+[vue-element-admin](http://panjiachen.github.io/vue-element-admin) is a front-end management background integration solution. It based on [vue](https://github.com/vuejs/vue) and use the UI Toolkit [element](https://github.com/ElemeFE/element).
34
+
35
+It is a magical vue admin based on the newest development stack of vue, built-in i18n solution, typical templates for enterprise applications, lots of awesome features. It helps you build a large complex Single-Page Applications. I believe whatever your needs are, this project will help you.
36
+
37
+- [Preview](http://panjiachen.github.io/vue-element-admin)
38
+
39
+- [Documentation](https://panjiachen.github.io/vue-element-admin-site/)
40
+
41
+- [Gitter](https://gitter.im/vue-element-admin/discuss)
42
+
43
+- [Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki)
44
+
45
+- [Donate](https://panjiachen.github.io/vue-element-admin-site/donate/)
46
+
47
+- [Gitee](https://panjiachen.gitee.io/vue-element-admin/) 国内用户可访问该地址在线预览
48
+
49
+**This project is positioned as a background integration solution and is not suitable for secondary development as a basic template.**
50
+
51
+- Base template recommends using: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template)
52
+- Desktop: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
53
+- Typescript: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
54
+
55
+**This project does not support low version browsers (e.g. IE). Please add polyfill yourself if you need them.**
56
+
57
+**Note: This project uses element-ui@2.3.0+ version, so the minimum compatible vue@2.5.0+**
58
+
59
+**Start using `webpack4` from `v3.8.0`. If you still want to continue using `webpack3`, please use this branch [webpack3](https://github.com/PanJiaChen/vue-element-admin/tree/webpack3)**
60
+
61
+## Preparation
62
+
63
+You need to install [node](http://nodejs.org/) and [git](https://git-scm.com/) locally. The project is based on [ES2015+](http://es6.ruanyifeng.com/), [vue](https://cn.vuejs.org/index.html), [vuex](https://vuex.vuejs.org/zh-cn/), [vue-router](https://router.vuejs.org/zh-cn/), [axios](https://github.com/axios/axios) and [element-ui](https://github.com/ElemeFE/element), all request data is simulated using [Mock.js](https://github.com/nuysoft/Mock).
64
+Understanding and learning this knowledge in advance will greatly help the use of this project.
65
+
66
+---
67
+
68
+ <p align="center">
69
+  <img width="900" src="https://wpimg.wallstcn.com/a5894c1b-f6af-456e-82df-1151da0839bf.png">
70
+</p>
71
+
72
+## Features
73
+
74
+```
75
+- Login / Logout
76
+
77
+- Permission Authentication
78
+  - Page permission
79
+  - Directive permission
80
+  - Two-step login
81
+
82
+- Multi-environment build
83
+  - dev sit stage prod
84
+
85
+- Global Features
86
+  - I18n
87
+  - Multiple dynamic themes
88
+  - Dynamic sidebar (supports multi-level routing)
89
+  - Dynamic breadcrumb
90
+  - Tags-view(Tab page Support right-click operation)
91
+  - Svg Sprite
92
+  - Mock data
93
+  - Screenfull
94
+  - Responsive Sidebar
95
+
96
+- Editor
97
+  - Rich Text Editor
98
+  - Markdown Editor
99
+  - JSON Editor
100
+
101
+- Excel
102
+  - Export Excel
103
+  - Export zip
104
+  - Upload Excel
105
+  - Visualization Excel
106
+
107
+- Table
108
+  - Dynamic Table
109
+  - Drag And Drop Table
110
+  - Tree Table
111
+  - Inline Edit Table
112
+
113
+- Error Page
114
+  - 401
115
+  - 404
116
+
117
+- Components
118
+  - Avatar Upload
119
+  - Back To Top
120
+  - Drag Dialog
121
+  - Drag Select
122
+  - Drag Kanban
123
+  - Drag List
124
+  - SplitPane
125
+  - Dropzone
126
+  - Sticky
127
+  - CountTo
128
+
129
+- Advanced Example
130
+- Error Log
131
+- Dashboard
132
+- Guide Page
133
+- ECharts
134
+- Clipboard
135
+- Markdown to html
136
+```
137
+
138
+## Getting started
139
+
140
+```bash
141
+# clone the project
142
+git clone https://github.com/PanJiaChen/vue-element-admin.git
143
+
144
+# install dependency
145
+npm install
146
+
147
+# develop
148
+npm run dev
149
+```
150
+
151
+This will automatically open http://localhost:9527.
152
+
153
+## Build
154
+
155
+```bash
156
+# build for test environment
157
+npm run build:sit
158
+
159
+# build for production environment
160
+npm run build:prod
161
+```
162
+
163
+## Advanced
164
+
165
+```bash
166
+# --report to build with bundle size analytics
167
+npm run build:prod --report
168
+
169
+# --generate a bundle size analytics. default: bundle-report.html
170
+npm run build:prod --generate_report
171
+
172
+# --preview to start a server in local to preview
173
+npm run build:prod --preview
174
+
175
+# lint code
176
+npm run lint
177
+
178
+# auto fix
179
+npm run lint -- --fix
180
+```
181
+
182
+Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information
183
+
184
+## Changelog
185
+
186
+Detailed changes for each release are documented in the [release notes](https://github.com/PanJiaChen/vue-element-admin/releases).
187
+
188
+## Online Demo
189
+
190
+[Preview](http://panjiachen.github.io/vue-element-admin)
191
+
192
+## Donate
193
+
194
+If you find this project useful, you can buy author a glass of juice :tropical_drink:
195
+
196
+![donate](https://wpimg.wallstcn.com/bd273f0d-83a0-4ef2-92e1-9ac8ed3746b9.png)
197
+
198
+[Paypal Me](https://www.paypal.me/panfree23)
199
+
200
+[Buy me a coffee](https://www.buymeacoffee.com/Pan)
201
+
202
+## Browsers support
203
+
204
+Modern browsers and Internet Explorer 10+.
205
+
206
+| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
207
+| --------- | --------- | --------- | --------- |
208
+| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
209
+
210
+## License
211
+
212
+[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE)
213
+
214
+Copyright (c) 2017-present PanJiaChen

+ 226
- 0
vue-element-admin/README.zh-CN.md View File

@@ -0,0 +1,226 @@
1
+<p align="center">
2
+  <img width="320" src="https://wpimg.wallstcn.com/ecc53a42-d79b-42e2-8852-5126b810a4c8.svg">
3
+</p>
4
+
5
+<p align="center">
6
+  <a href="https://github.com/vuejs/vue">
7
+    <img src="https://img.shields.io/badge/vue-2.5.10-brightgreen.svg" alt="vue">
8
+  </a>
9
+  <a href="https://github.com/ElemeFE/element">
10
+    <img src="https://img.shields.io/badge/element--ui-2.3.2-brightgreen.svg" alt="element-ui">
11
+  </a>
12
+  <a href="https://travis-ci.org/PanJiaChen/vue-element-admin" rel="nofollow">
13
+    <img src="https://travis-ci.org/PanJiaChen/vue-element-admin.svg?branch=master" alt="Build Status">
14
+  </a>
15
+  <a href="https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE">
16
+    <img src="https://img.shields.io/github/license/mashape/apistatus.svg" alt="license">
17
+  </a>
18
+  <a href="https://github.com/PanJiaChen/vue-element-admin/releases">
19
+    <img src="https://img.shields.io/github/release/PanJiaChen/vue-element-admin.svg" alt="GitHub release">
20
+  </a>
21
+  <a href="https://gitter.im/vue-element-admin/discuss">
22
+    <img src="https://badges.gitter.im/Join%20Chat.svg" alt="gitter">
23
+  </a>
24
+  <a href="https://panjiachen.gitee.io/vue-element-admin-site/zh/donate">
25
+    <img src="https://img.shields.io/badge/%24-donate-ff69b4.svg" alt="donate">
26
+  </a>
27
+</p>
28
+
29
+简体中文 | [English](./README.md)
30
+
31
+## 简介
32
+
33
+[vue-element-admin](http://panjiachen.github.io/vue-element-admin) 是一个后台集成解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element](https://github.com/ElemeFE/element)。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。
34
+
35
+- [在线访问](http://panjiachen.github.io/vue-element-admin)
36
+
37
+- [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/)
38
+
39
+- [Gitter 讨论组](https://gitter.im/vue-element-admin/discuss)
40
+
41
+- [Wiki](https://github.com/PanJiaChen/vue-element-admin/wiki)
42
+
43
+- [Donate](https://panjiachen.github.io/vue-element-admin-site/zh/donate/)
44
+
45
+- [Gitee](https://panjiachen.gitee.io/vue-element-admin/) 国内用户可访问该地址在线预览
46
+
47
+- [国内访问文档](https://panjiachen.gitee.io/vue-element-admin-site/zh/) 方便没翻墙的用户查看文档
48
+
49
+**本项目的定位是后台集成方案,不适合当基础模板来开发。**
50
+
51
+- 模板建议使用: [vue-admin-template](https://github.com/PanJiaChen/vue-admin-template)
52
+- 桌面端: [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
53
+- Typescript版: [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (鸣谢: [@Armour](https://github.com/Armour))
54
+
55
+群主 **[圈子](https://jianshiapp.com/circles/1209)** 楼主会经常分享一些技术相关的东西,或者加入[qq 群](https://github.com/PanJiaChen/vue-element-admin/issues/602)
56
+
57
+**注意:该项目使用 element-ui@2.3.0+ 版本,所以最低兼容 vue@2.5.0+**
58
+
59
+**从`v3.8.0`开始使用`webpack4`。所以若还想使用`webpack3`开发,请使用该分支[webpack3](https://github.com/PanJiaChen/vue-element-admin/tree/webpack3)**
60
+
61
+**该项目不支持低版本浏览器(如 ie),有需求请自行添加 polyfill [详情](https://github.com/PanJiaChen/vue-element-admin/wiki#babel-polyfill)**
62
+
63
+## 前序准备
64
+
65
+你需要在本地安装 [node](http://nodejs.org/) 和 [git](https://git-scm.com/)。本项目技术栈基于 [ES2015+](http://es6.ruanyifeng.com/)、[vue](https://cn.vuejs.org/index.html)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vue-router](https://router.vuejs.org/zh-cn/) 、[axios](https://github.com/axios/axios) 和 [element-ui](https://github.com/ElemeFE/element),所有的请求数据都使用[Mock.js](https://github.com/nuysoft/Mock)模拟,提前了解和学习这些知识会对使用本项目有很大的帮助。
66
+
67
+同时配套一个系列的教程文章,如何从零构建后一个完整的后台项目,建议大家先看完这些文章再来实践本项目
68
+
69
+- [手摸手,带你用 vue 撸后台 系列一(基础篇)](https://juejin.im/post/59097cd7a22b9d0065fb61d2)
70
+- [手摸手,带你用 vue 撸后台 系列二(登录权限篇)](https://juejin.im/post/591aa14f570c35006961acac)
71
+- [手摸手,带你用 vue 撸后台 系列三 (实战篇)](https://juejin.im/post/593121aa0ce4630057f70d35)
72
+- [手摸手,带你用 vue 撸后台 系列四(vueAdmin 一个极简的后台基础模板)](https://juejin.im/post/595b4d776fb9a06bbe7dba56)
73
+- [手摸手,带你封装一个 vue component](https://segmentfault.com/a/1190000009090836)
74
+- [手摸手,带你优雅的使用 icon](https://juejin.im/post/59bb864b5188257e7a427c09)
75
+- [手摸手,带你用合理的姿势使用 webpack4(上)](https://juejin.im/post/5b56909a518825195f499806)
76
+- [手摸手,带你用合理的姿势使用 webpack4(下)](https://juejin.im/post/5b5d6d6f6fb9a04fea58aabc)
77
+
78
+**如有问题请先看上述使用文档和文章,若不能满足,欢迎 issue 和 pr**
79
+
80
+ <p align="center">
81
+  <img width="900" src="https://wpimg.wallstcn.com/a5894c1b-f6af-456e-82df-1151da0839bf.png">
82
+</p>
83
+
84
+## 功能
85
+
86
+```
87
+- 登录 / 注销
88
+
89
+- 权限验证
90
+  - 页面权限
91
+  - 指令权限
92
+  - 二步登录
93
+
94
+- 多环境发布
95
+  - dev sit stage prod
96
+
97
+- 全局功能
98
+  - 国际化多语言
99
+  - 多种动态换肤
100
+  - 动态侧边栏(支持多级路由嵌套)
101
+  - 动态面包屑
102
+  - 快捷导航(标签页)
103
+  - Svg Sprite 图标
104
+  - 本地mock数据
105
+  - Screenfull全屏
106
+  - 自适应收缩侧边栏
107
+
108
+- 编辑器
109
+  - 富文本
110
+  - Markdown
111
+  - JSON 等多格式
112
+
113
+- Excel
114
+  - 导出excel
115
+  - 导出zip
116
+  - 导入excel
117
+  - 前端可视化excel
118
+
119
+- 表格
120
+  - 动态表格
121
+  - 拖拽表格
122
+  - 树形表格
123
+  - 内联编辑
124
+
125
+- 错误页面
126
+  - 401
127
+  - 404
128
+
129
+- 組件
130
+  - 头像上传
131
+  - 返回顶部
132
+  - 拖拽Dialog
133
+  - 拖拽Select
134
+  - 拖拽看板
135
+  - 列表拖拽
136
+  - SplitPane
137
+  - Dropzone
138
+  - Sticky
139
+  - CountTo
140
+
141
+- 综合实例
142
+- 错误日志
143
+- Dashboard
144
+- 引导页
145
+- ECharts 图表
146
+- Clipboard(剪贴复制)
147
+- Markdown2html
148
+```
149
+
150
+## 开发
151
+
152
+```bash
153
+# 克隆项目
154
+git clone https://github.com/PanJiaChen/vue-element-admin.git
155
+
156
+# 安装依赖
157
+npm install
158
+
159
+# 建议不要用 cnpm 安装 会有各种诡异的bug 可以通过如下操作解决 npm 下载速度慢的问题
160
+npm install --registry=https://registry.npm.taobao.org
161
+
162
+# 启动服务
163
+npm run dev
164
+```
165
+
166
+浏览器访问 http://localhost:9527
167
+
168
+## 发布
169
+
170
+```bash
171
+# 构建测试环境
172
+npm run build:sit
173
+
174
+# 构建生产环境
175
+npm run build:prod
176
+```
177
+
178
+## 其它
179
+
180
+```bash
181
+# --report to build with bundle size analytics
182
+npm run build:prod
183
+
184
+# --generate a bundle size analytics. default: bundle-report.html
185
+npm run build:prod --generate_report
186
+
187
+# --preview to start a server in local to preview
188
+npm run build:prod --preview
189
+
190
+# lint code
191
+npm run lint
192
+
193
+# auto fix
194
+npm run lint -- --fix
195
+```
196
+
197
+更多信息请参考 [使用文档](https://panjiachen.github.io/vue-element-admin-site/zh/)
198
+
199
+## Changelog
200
+
201
+Detailed changes for each release are documented in the [release notes](https://github.com/PanJiaChen/vue-element-admin/releases).
202
+
203
+## Online Demo
204
+
205
+[在线 Demo](http://panjiachen.github.io/vue-element-admin)
206
+
207
+## Donate
208
+
209
+如果你觉得这个项目帮助到了你,你可以帮作者买一杯果汁表示鼓励 :tropical_drink:
210
+![donate](https://panjiachen.github.io/donate/donation.png)
211
+
212
+[Paypal Me](https://www.paypal.me/panfree23)
213
+
214
+## Browsers support
215
+
216
+Modern browsers and Internet Explorer 10+.
217
+
218
+| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
219
+| --------- | --------- | --------- | --------- |
220
+| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
221
+
222
+## License
223
+
224
+[MIT](https://github.com/PanJiaChen/vue-element-admin/blob/master/LICENSE)
225
+
226
+Copyright (c) 2017-present PanJiaChen

+ 67
- 0
vue-element-admin/build/build.js View File

@@ -0,0 +1,67 @@
1
+'use strict'
2
+require('./check-versions')()
3
+
4
+const ora = require('ora')
5
+const rm = require('rimraf')
6
+const path = require('path')
7
+const chalk = require('chalk')
8
+const webpack = require('webpack')
9
+const config = require('../config')
10
+const webpackConfig = require('./webpack.prod.conf')
11
+var connect = require('connect')
12
+var serveStatic = require('serve-static')
13
+
14
+const spinner = ora(
15
+  'building for ' + process.env.env_config + ' environment...'
16
+)
17
+spinner.start()
18
+
19
+rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
20
+  if (err) throw err
21
+  webpack(webpackConfig, (err, stats) => {
22
+    spinner.stop()
23
+    if (err) throw err
24
+    process.stdout.write(
25
+      stats.toString({
26
+        colors: true,
27
+        modules: false,
28
+        children: false,
29
+        chunks: false,
30
+        chunkModules: false
31
+      }) + '\n\n'
32
+    )
33
+
34
+    if (stats.hasErrors()) {
35
+      console.log(chalk.red(' Build failed with errors.\n'))
36
+      process.exit(1)
37
+    }
38
+
39
+    console.log(chalk.cyan(' Build complete.\n'))
40
+    console.log(
41
+      chalk.yellow(
42
+        ' Tip: built files are meant to be served over an HTTP server.\n' +
43
+          " Opening index.html over file:// won't work.\n"
44
+      )
45
+    )
46
+
47
+    if (process.env.npm_config_preview) {
48
+      const port = 9526
49
+      const host = 'http://localhost:' + port
50
+      const basePath = config.build.assetsPublicPath
51
+      const app = connect()
52
+
53
+      app.use(
54
+        basePath,
55
+        serveStatic('./dist', {
56
+          index: ['index.html', '/']
57
+        })
58
+      )
59
+
60
+      app.listen(port, function() {
61
+        console.log(
62
+          chalk.green(`> Listening at  http://localhost:${port}${basePath}`)
63
+        )
64
+      })
65
+    }
66
+  })
67
+})

+ 64
- 0
vue-element-admin/build/check-versions.js View File

@@ -0,0 +1,64 @@
1
+'use strict'
2
+const chalk = require('chalk')
3
+const semver = require('semver')
4
+const packageConfig = require('../package.json')
5
+const shell = require('shelljs')
6
+
7
+function exec(cmd) {
8
+  return require('child_process')
9
+    .execSync(cmd)
10
+    .toString()
11
+    .trim()
12
+}
13
+
14
+const versionRequirements = [
15
+  {
16
+    name: 'node',
17
+    currentVersion: semver.clean(process.version),
18
+    versionRequirement: packageConfig.engines.node
19
+  }
20
+]
21
+
22
+if (shell.which('npm')) {
23
+  versionRequirements.push({
24
+    name: 'npm',
25
+    currentVersion: exec('npm --version'),
26
+    versionRequirement: packageConfig.engines.npm
27
+  })
28
+}
29
+
30
+module.exports = function() {
31
+  const warnings = []
32
+
33
+  for (let i = 0; i < versionRequirements.length; i++) {
34
+    const mod = versionRequirements[i]
35
+
36
+    if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
37
+      warnings.push(
38
+        mod.name +
39
+          ': ' +
40
+          chalk.red(mod.currentVersion) +
41
+          ' should be ' +
42
+          chalk.green(mod.versionRequirement)
43
+      )
44
+    }
45
+  }
46
+
47
+  if (warnings.length) {
48
+    console.log('')
49
+    console.log(
50
+      chalk.yellow(
51
+        'To use this template, you must update following to modules:'
52
+      )
53
+    )
54
+    console.log()
55
+
56
+    for (let i = 0; i < warnings.length; i++) {
57
+      const warning = warnings[i]
58
+      console.log('  ' + warning)
59
+    }
60
+
61
+    console.log()
62
+    process.exit(1)
63
+  }
64
+}

BIN
vue-element-admin/build/logo.png View File


+ 108
- 0
vue-element-admin/build/utils.js View File

@@ -0,0 +1,108 @@
1
+'use strict'
2
+const path = require('path')
3
+const config = require('../config')
4
+const MiniCssExtractPlugin = require('mini-css-extract-plugin')
5
+const packageConfig = require('../package.json')
6
+
7
+exports.assetsPath = function(_path) {
8
+  const assetsSubDirectory =
9
+    process.env.NODE_ENV === 'production'
10
+      ? config.build.assetsSubDirectory
11
+      : config.dev.assetsSubDirectory
12
+
13
+  return path.posix.join(assetsSubDirectory, _path)
14
+}
15
+
16
+exports.cssLoaders = function(options) {
17
+  options = options || {}
18
+
19
+  const cssLoader = {
20
+    loader: 'css-loader',
21
+    options: {
22
+      sourceMap: options.sourceMap
23
+    }
24
+  }
25
+
26
+  const postcssLoader = {
27
+    loader: 'postcss-loader',
28
+    options: {
29
+      sourceMap: options.sourceMap
30
+    }
31
+  }
32
+
33
+  // generate loader string to be used with extract text plugin
34
+  function generateLoaders(loader, loaderOptions) {
35
+    const loaders = []
36
+
37
+    // Extract CSS when that option is specified
38
+    // (which is the case during production build)
39
+    if (options.extract) {
40
+      loaders.push(MiniCssExtractPlugin.loader)
41
+    } else {
42
+      loaders.push('vue-style-loader')
43
+    }
44
+
45
+    loaders.push(cssLoader)
46
+
47
+    if (options.usePostCSS) {
48
+      loaders.push(postcssLoader)
49
+    }
50
+
51
+    if (loader) {
52
+      loaders.push({
53
+        loader: loader + '-loader',
54
+        options: Object.assign({}, loaderOptions, {
55
+          sourceMap: options.sourceMap
56
+        })
57
+      })
58
+    }
59
+
60
+    return loaders
61
+  }
62
+  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
63
+  return {
64
+    css: generateLoaders(),
65
+    postcss: generateLoaders(),
66
+    less: generateLoaders('less'),
67
+    sass: generateLoaders('sass', {
68
+      indentedSyntax: true
69
+    }),
70
+    scss: generateLoaders('sass'),
71
+    stylus: generateLoaders('stylus'),
72
+    styl: generateLoaders('stylus')
73
+  }
74
+}
75
+
76
+// Generate loaders for standalone style files (outside of .vue)
77
+exports.styleLoaders = function(options) {
78
+  const output = []
79
+  const loaders = exports.cssLoaders(options)
80
+
81
+  for (const extension in loaders) {
82
+    const loader = loaders[extension]
83
+    output.push({
84
+      test: new RegExp('\\.' + extension + '$'),
85
+      use: loader
86
+    })
87
+  }
88
+
89
+  return output
90
+}
91
+
92
+exports.createNotifierCallback = () => {
93
+  const notifier = require('node-notifier')
94
+
95
+  return (severity, errors) => {
96
+    if (severity !== 'error') return
97
+
98
+    const error = errors[0]
99
+    const filename = error.file && error.file.split('!').pop()
100
+
101
+    notifier.notify({
102
+      title: packageConfig.name,
103
+      message: severity + ': ' + error.name,
104
+      subtitle: filename || '',
105
+      icon: path.join(__dirname, 'logo.png')
106
+    })
107
+  }
108
+}

+ 5
- 0
vue-element-admin/build/vue-loader.conf.js View File

@@ -0,0 +1,5 @@
1
+'use strict'
2
+
3
+module.exports = {
4
+  //You can set the vue-loader configuration by yourself.
5
+}

+ 107
- 0
vue-element-admin/build/webpack.base.conf.js View File

@@ -0,0 +1,107 @@
1
+'use strict'
2
+const path = require('path')
3
+const utils = require('./utils')
4
+const config = require('../config')
5
+const { VueLoaderPlugin } = require('vue-loader')
6
+const vueLoaderConfig = require('./vue-loader.conf')
7
+
8
+function resolve(dir) {
9
+  return path.join(__dirname, '..', dir)
10
+}
11
+
12
+const createLintingRule = () => ({
13
+  test: /\.(js|vue)$/,
14
+  loader: 'eslint-loader',
15
+  enforce: 'pre',
16
+  include: [resolve('src'), resolve('test')],
17
+  options: {
18
+    formatter: require('eslint-friendly-formatter'),
19
+    emitWarning: !config.dev.showEslintErrorsInOverlay
20
+  }
21
+})
22
+
23
+module.exports = {
24
+  context: path.resolve(__dirname, '../'),
25
+  entry: {
26
+    app: './src/main.js'
27
+  },
28
+  output: {
29
+    path: config.build.assetsRoot,
30
+    filename: '[name].js',
31
+    publicPath:
32
+      process.env.NODE_ENV === 'production'
33
+        ? config.build.assetsPublicPath
34
+        : config.dev.assetsPublicPath
35
+  },
36
+  resolve: {
37
+    extensions: ['.js', '.vue', '.json'],
38
+    alias: {
39
+      '@': resolve('src')
40
+    }
41
+  },
42
+  module: {
43
+    rules: [
44
+      ...(config.dev.useEslint ? [createLintingRule()] : []),
45
+      {
46
+        test: /\.vue$/,
47
+        loader: 'vue-loader',
48
+        options: vueLoaderConfig
49
+      },
50
+      {
51
+        test: /\.js$/,
52
+        loader: 'babel-loader?cacheDirectory',
53
+        include: [
54
+          resolve('src'),
55
+          resolve('test'),
56
+          resolve('node_modules/webpack-dev-server/client')
57
+        ]
58
+      },
59
+      {
60
+        test: /\.svg$/,
61
+        loader: 'svg-sprite-loader',
62
+        include: [resolve('src/icons')],
63
+        options: {
64
+          symbolId: 'icon-[name]'
65
+        }
66
+      },
67
+      {
68
+        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
69
+        loader: 'url-loader',
70
+        exclude: [resolve('src/icons')],
71
+        options: {
72
+          limit: 10000,
73
+          name: utils.assetsPath('img/[name].[hash:7].[ext]')
74
+        }
75
+      },
76
+      {
77
+        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
78
+        loader: 'url-loader',
79
+        options: {
80
+          limit: 10000,
81
+          name: utils.assetsPath('media/[name].[hash:7].[ext]')
82
+        }
83
+      },
84
+      {
85
+        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
86
+        loader: 'url-loader',
87
+        options: {
88
+          limit: 10000,
89
+          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
90
+        }
91
+      }
92
+    ]
93
+  },
94
+  plugins: [new VueLoaderPlugin()],
95
+  node: {
96
+    // prevent webpack from injecting useless setImmediate polyfill because Vue
97
+    // source contains it (although only uses it if it's native).
98
+    setImmediate: false,
99
+    // prevent webpack from injecting mocks to Node native modules
100
+    // that does not make sense for the client
101
+    dgram: 'empty',
102
+    fs: 'empty',
103
+    net: 'empty',
104
+    tls: 'empty',
105
+    child_process: 'empty'
106
+  }
107
+}

+ 98
- 0
vue-element-admin/build/webpack.dev.conf.js View File

@@ -0,0 +1,98 @@
1
+'use strict'
2
+const path = require('path')
3
+const utils = require('./utils')
4
+const webpack = require('webpack')
5
+const config = require('../config')
6
+const merge = require('webpack-merge')
7
+const baseWebpackConfig = require('./webpack.base.conf')
8
+const HtmlWebpackPlugin = require('html-webpack-plugin')
9
+const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
10
+const portfinder = require('portfinder')
11
+
12
+function resolve(dir) {
13
+  return path.join(__dirname, '..', dir)
14
+}
15
+
16
+const HOST = process.env.HOST
17
+const PORT = process.env.PORT && Number(process.env.PORT)
18
+
19
+const devWebpackConfig = merge(baseWebpackConfig, {
20
+  mode: 'development',
21
+  module: {
22
+    rules: utils.styleLoaders({
23
+      sourceMap: config.dev.cssSourceMap,
24
+      usePostCSS: true
25
+    })
26
+  },
27
+  // cheap-module-eval-source-map is faster for development
28
+  devtool: config.dev.devtool,
29
+
30
+  // these devServer options should be customized in /config/index.js
31
+  devServer: {
32
+    clientLogLevel: 'warning',
33
+    historyApiFallback: true,
34
+    hot: true,
35
+    compress: true,
36
+    host: HOST || config.dev.host,
37
+    port: PORT || config.dev.port,
38
+    open: config.dev.autoOpenBrowser,
39
+    overlay: config.dev.errorOverlay
40
+      ? { warnings: false, errors: true }
41
+      : false,
42
+    publicPath: config.dev.assetsPublicPath,
43
+    proxy: config.dev.proxyTable,
44
+    quiet: true, // necessary for FriendlyErrorsPlugin
45
+    watchOptions: {
46
+      poll: config.dev.poll
47
+    }
48
+  },
49
+  plugins: [
50
+    new webpack.DefinePlugin({
51
+      'process.env': require('../config/dev.env')
52
+    }),
53
+    new webpack.HotModuleReplacementPlugin(),
54
+    // https://github.com/ampedandwired/html-webpack-plugin
55
+    new HtmlWebpackPlugin({
56
+      filename: 'index.html',
57
+      template: 'index.html',
58
+      inject: true,
59
+      favicon: resolve('favicon.ico'),
60
+      title: 'vue-element-admin',
61
+      templateParameters: {
62
+        BASE_URL: config.dev.assetsPublicPath + config.dev.assetsSubDirectory,
63
+      },
64
+    }),
65
+  ]
66
+})
67
+
68
+module.exports = new Promise((resolve, reject) => {
69
+  portfinder.basePort = process.env.PORT || config.dev.port
70
+  portfinder.getPort((err, port) => {
71
+    if (err) {
72
+      reject(err)
73
+    } else {
74
+      // publish the new Port, necessary for e2e tests
75
+      process.env.PORT = port
76
+      // add port to devServer config
77
+      devWebpackConfig.devServer.port = port
78
+
79
+      // Add FriendlyErrorsPlugin
80
+      devWebpackConfig.plugins.push(
81
+        new FriendlyErrorsPlugin({
82
+          compilationSuccessInfo: {
83
+            messages: [
84
+              `Your application is running here: http://${
85
+                devWebpackConfig.devServer.host
86
+              }:${port}`
87
+            ]
88
+          },
89
+          onErrors: config.dev.notifyOnErrors
90
+            ? utils.createNotifierCallback()
91
+            : undefined
92
+        })
93
+      )
94
+
95
+      resolve(devWebpackConfig)
96
+    }
97
+  })
98
+})

+ 188
- 0
vue-element-admin/build/webpack.prod.conf.js View File

@@ -0,0 +1,188 @@
1
+'use strict'
2
+const path = require('path')
3
+const utils = require('./utils')
4
+const webpack = require('webpack')
5
+const config = require('../config')
6
+const merge = require('webpack-merge')
7
+const baseWebpackConfig = require('./webpack.base.conf')
8
+const CopyWebpackPlugin = require('copy-webpack-plugin')
9
+const HtmlWebpackPlugin = require('html-webpack-plugin')
10
+const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
11
+const MiniCssExtractPlugin = require('mini-css-extract-plugin')
12
+const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
13
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
14
+
15
+function resolve(dir) {
16
+  return path.join(__dirname, '..', dir)
17
+}
18
+
19
+const env = require('../config/' + process.env.env_config + '.env')
20
+
21
+// For NamedChunksPlugin
22
+const seen = new Set()
23
+const nameLength = 4
24
+
25
+const webpackConfig = merge(baseWebpackConfig, {
26
+  mode: 'production',
27
+  module: {
28
+    rules: utils.styleLoaders({
29
+      sourceMap: config.build.productionSourceMap,
30
+      extract: true,
31
+      usePostCSS: true
32
+    })
33
+  },
34
+  devtool: config.build.productionSourceMap ? config.build.devtool : false,
35
+  output: {
36
+    path: config.build.assetsRoot,
37
+    filename: utils.assetsPath('js/[name].[chunkhash:8].js'),
38
+    chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js')
39
+  },
40
+  plugins: [
41
+    // http://vuejs.github.io/vue-loader/en/workflow/production.html
42
+    new webpack.DefinePlugin({
43
+      'process.env': env
44
+    }),
45
+    // extract css into its own file
46
+    new MiniCssExtractPlugin({
47
+      filename: utils.assetsPath('css/[name].[contenthash:8].css'),
48
+      chunkFilename: utils.assetsPath('css/[name].[contenthash:8].css')
49
+    }),
50
+    // generate dist index.html with correct asset hash for caching.
51
+    // you can customize output by editing /index.html
52
+    // see https://github.com/ampedandwired/html-webpack-plugin
53
+    new HtmlWebpackPlugin({
54
+      filename: config.build.index,
55
+      template: 'index.html',
56
+      inject: true,
57
+      favicon: resolve('favicon.ico'),
58
+      title: 'vue-element-admin',
59
+      templateParameters: {
60
+        BASE_URL: config.build.assetsPublicPath + config.build.assetsSubDirectory,
61
+      },
62
+      minify: {
63
+        removeComments: true,
64
+        collapseWhitespace: true,
65
+        removeAttributeQuotes: true
66
+        // more options:
67
+        // https://github.com/kangax/html-minifier#options-quick-reference
68
+      }
69
+      // default sort mode uses toposort which cannot handle cyclic deps
70
+      // in certain cases, and in webpack 4, chunk order in HTML doesn't
71
+      // matter anyway
72
+    }),
73
+    new ScriptExtHtmlWebpackPlugin({
74
+      //`runtime` must same as runtimeChunk name. default is `runtime`
75
+      inline: /runtime\..*\.js$/
76
+    }),
77
+    // keep chunk.id stable when chunk has no name
78
+    new webpack.NamedChunksPlugin(chunk => {
79
+      if (chunk.name) {
80
+        return chunk.name
81
+      }
82
+      const modules = Array.from(chunk.modulesIterable)
83
+      if (modules.length > 1) {
84
+        const hash = require('hash-sum')
85
+        const joinedHash = hash(modules.map(m => m.id).join('_'))
86
+        let len = nameLength
87
+        while (seen.has(joinedHash.substr(0, len))) len++
88
+        seen.add(joinedHash.substr(0, len))
89
+        return `chunk-${joinedHash.substr(0, len)}`
90
+      } else {
91
+        return modules[0].id
92
+      }
93
+    }),
94
+    // keep module.id stable when vender modules does not change
95
+    new webpack.HashedModuleIdsPlugin(),
96
+    // copy custom static assets
97
+    new CopyWebpackPlugin([
98
+      {
99
+        from: path.resolve(__dirname, '../static'),
100
+        to: config.build.assetsSubDirectory,
101
+        ignore: ['.*']
102
+      }
103
+    ])
104
+  ],
105
+  optimization: {
106
+    splitChunks: {
107
+      chunks: 'all',
108
+      cacheGroups: {
109
+        libs: {
110
+          name: 'chunk-libs',
111
+          test: /[\\/]node_modules[\\/]/,
112
+          priority: 10,
113
+          chunks: 'initial' // 只打包初始时依赖的第三方
114
+        },
115
+        elementUI: {
116
+          name: 'chunk-elementUI', // 单独将 elementUI 拆包
117
+          priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app
118
+          test: /[\\/]node_modules[\\/]element-ui[\\/]/
119
+        },
120
+        commons: {
121
+          name: 'chunk-commons',
122
+          test: resolve('src/components'), // 可自定义拓展你的规则
123
+          minChunks: 3, // 最小公用次数
124
+          priority: 5,
125
+          reuseExistingChunk: true
126
+        }
127
+      }
128
+    },
129
+    runtimeChunk: 'single',
130
+    minimizer: [
131
+      new UglifyJsPlugin({
132
+        uglifyOptions: {
133
+          mangle: {
134
+            safari10: true
135
+          }
136
+        },
137
+        sourceMap: config.build.productionSourceMap,
138
+        cache: true,
139
+        parallel: true
140
+      }),
141
+      // Compress extracted CSS. We are using this plugin so that possible
142
+      // duplicated CSS from different components can be deduped.
143
+      new OptimizeCSSAssetsPlugin()
144
+    ]
145
+  }
146
+})
147
+
148
+if (config.build.productionGzip) {
149
+  const CompressionWebpackPlugin = require('compression-webpack-plugin')
150
+
151
+  webpackConfig.plugins.push(
152
+    new CompressionWebpackPlugin({
153
+      asset: '[path].gz[query]',
154
+      algorithm: 'gzip',
155
+      test: new RegExp(
156
+        '\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
157
+      ),
158
+      threshold: 10240,
159
+      minRatio: 0.8
160
+    })
161
+  )
162
+}
163
+
164
+if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) {
165
+  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
166
+    .BundleAnalyzerPlugin
167
+
168
+  if (config.build.bundleAnalyzerReport) {
169
+    webpackConfig.plugins.push(
170
+      new BundleAnalyzerPlugin({
171
+        analyzerPort: 8080,
172
+        generateStatsFile: false
173
+      })
174
+    )
175
+  }
176
+
177
+  if (config.build.generateAnalyzerReport) {
178
+    webpackConfig.plugins.push(
179
+      new BundleAnalyzerPlugin({
180
+        analyzerMode: 'static',
181
+        reportFilename: 'bundle-report.html',
182
+        openAnalyzer: false
183
+      })
184
+    )
185
+  }
186
+}
187
+
188
+module.exports = webpackConfig

+ 5
- 0
vue-element-admin/config/dev.env.js View File

@@ -0,0 +1,5 @@
1
+module.exports = {
2
+  NODE_ENV: '"development"',
3
+  ENV_CONFIG: '"dev"',
4
+  BASE_API: '"http://127.0.0.1:8080/admin/"'
5
+}

+ 88
- 0
vue-element-admin/config/index.js View File

@@ -0,0 +1,88 @@
1
+'use strict'
2
+// Template version: 1.2.6
3
+// see http://vuejs-templates.github.io/webpack for documentation.
4
+
5
+const path = require('path')
6
+
7
+module.exports = {
8
+  dev: {
9
+    // Paths
10
+    assetsSubDirectory: 'static',
11
+    assetsPublicPath: '/',
12
+    proxyTable: {},
13
+
14
+    // Various Dev Server settings
15
+
16
+    // can be overwritten by process.env.HOST
17
+    // if you want dev by ip, please set host: '0.0.0.0'
18
+    host: 'localhost',
19
+    port: 9527, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
20
+    autoOpenBrowser: true,
21
+    errorOverlay: true,
22
+    notifyOnErrors: false,
23
+    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
24
+
25
+    // Use Eslint Loader?
26
+    // If true, your code will be linted during bundling and
27
+    // linting errors and warnings will be shown in the console.
28
+    useEslint: true,
29
+    // If true, eslint errors and warnings will also be shown in the error overlay
30
+    // in the browser.
31
+    showEslintErrorsInOverlay: false,
32
+
33
+    /**
34
+     * Source Maps
35
+     */
36
+
37
+    // https://webpack.js.org/configuration/devtool/#development
38
+    devtool: 'cheap-source-map',
39
+
40
+    // CSS Sourcemaps off by default because relative paths are "buggy"
41
+    // with this option, according to the CSS-Loader README
42
+    // (https://github.com/webpack/css-loader#sourcemaps)
43
+    // In our experience, they generally work as expected,
44
+    // just be aware of this issue when enabling this option.
45
+    cssSourceMap: false
46
+  },
47
+
48
+  build: {
49
+    // Template for index.html
50
+    index: path.resolve(__dirname, '../dist/index.html'),
51
+
52
+    // Paths
53
+    assetsRoot: path.resolve(__dirname, '../dist'),
54
+    assetsSubDirectory: 'static',
55
+
56
+    /**
57
+     * You can set by youself according to actual condition
58
+     * You will need to set this if you plan to deploy your site under a sub path,
59
+     * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/,
60
+     * then assetsPublicPath should be set to "/bar/".
61
+     * In most cases please use '/' !!!
62
+     */
63
+    assetsPublicPath: '/',
64
+
65
+    /**
66
+     * Source Maps
67
+     */
68
+    productionSourceMap: false,
69
+    // https://webpack.js.org/configuration/devtool/#production
70
+    devtool: 'source-map',
71
+
72
+    // Gzip off by default as many popular static hosts such as
73
+    // Surge or Netlify already gzip all static assets for you.
74
+    // Before setting to `true`, make sure to:
75
+    // npm install --save-dev compression-webpack-plugin
76
+    productionGzip: false,
77
+    productionGzipExtensions: ['js', 'css'],
78
+
79
+    // Run the build command with an extra argument to
80
+    // View the bundle analyzer report after build finishes:
81
+    // `npm run build:prod --report`
82
+    // Set to `true` or `false` to always turn it on or off
83
+    bundleAnalyzerReport: process.env.npm_config_report || false,
84
+
85
+    // `npm run build:prod --generate_report`
86
+    generateAnalyzerReport: process.env.npm_config_generate_report || false
87
+  }
88
+}

+ 5
- 0
vue-element-admin/config/prod.env.js View File

@@ -0,0 +1,5 @@
1
+module.exports = {
2
+  NODE_ENV: '"production"',
3
+  ENV_CONFIG: '"prod"',
4
+  BASE_API: '"https://api-prod"'
5
+}

+ 5
- 0
vue-element-admin/config/sit.env.js View File

@@ -0,0 +1,5 @@
1
+module.exports = {
2
+  NODE_ENV: '"production"',
3
+  ENV_CONFIG: '"sit"',
4
+  BASE_API: '"https://api-sit"'
5
+}

BIN
vue-element-admin/favicon.ico View File


+ 15
- 0
vue-element-admin/index.html View File

@@ -0,0 +1,15 @@
1
+<!DOCTYPE html>
2
+<html>
3
+  <head>
4
+    <meta charset="utf-8">
5
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+    <meta name="renderer" content="webkit">
7
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
8
+    <title>vue-element-admin</title>
9
+  </head>
10
+  <body>
11
+    <script src=<%= BASE_URL %>/tinymce4.7.5/tinymce.min.js></script>
12
+    <div id="app"></div>
13
+    <!-- built files will be auto injected -->
14
+  </body>
15
+</html>

+ 131
- 0
vue-element-admin/package.json View File

@@ -0,0 +1,131 @@
1
+{
2
+  "name": "vue-element-admin",
3
+  "version": "3.9.3",
4
+  "description": "A magical vue admin. Typical templates for enterprise applications. Newest development stack of vue. Lots of awesome features",
5
+  "author": "Pan <panfree23@gmail.com>",
6
+  "license": "MIT",
7
+  "scripts": {
8
+    "dev": "cross-env BABEL_ENV=development webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9
+    "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
10
+    "build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js",
11
+    "lint": "eslint --ext .js,.vue src",
12
+    "test": "npm run lint",
13
+    "precommit": "lint-staged",
14
+    "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
15
+  },
16
+  "lint-staged": {
17
+    "src/**/*.{js,vue}": [
18
+      "eslint --fix",
19
+      "git add"
20
+    ]
21
+  },
22
+  "keywords": [
23
+    "vue",
24
+    "element-ui",
25
+    "admin",
26
+    "management-system",
27
+    "admin-template"
28
+  ],
29
+  "repository": {
30
+    "type": "git",
31
+    "url": "git+https://github.com/PanJiaChen/vue-element-admin.git"
32
+  },
33
+  "bugs": {
34
+    "url": "https://github.com/PanJiaChen/vue-element-admin/issues"
35
+  },
36
+  "dependencies": {
37
+    "axios": "0.18.0",
38
+    "clipboard": "1.7.1",
39
+    "codemirror": "5.39.2",
40
+    "connect": "3.6.6",
41
+    "driver.js": "0.5.2",
42
+    "dropzone": "5.2.0",
43
+    "echarts": "4.1.0",
44
+    "element-ui": "2.4.6",
45
+    "file-saver": "1.3.8",
46
+    "font-awesome": "4.7.0",
47
+    "js-cookie": "2.2.0",
48
+    "jsonlint": "1.6.3",
49
+    "jszip": "3.1.5",
50
+    "mockjs": "1.0.1-beta3",
51
+    "normalize.css": "7.0.0",
52
+    "nprogress": "0.2.0",
53
+    "screenfull": "3.3.3",
54
+    "showdown": "1.8.6",
55
+    "simplemde": "1.11.2",
56
+    "sortablejs": "1.7.0",
57
+    "vue": "2.5.17",
58
+    "vue-count-to": "1.0.13",
59
+    "vue-i18n": "7.3.2",
60
+    "vue-router": "3.0.1",
61
+    "vue-splitpane": "1.0.2",
62
+    "vuedraggable": "^2.16.0",
63
+    "vuex": "3.0.1",
64
+    "xlsx": "^0.11.16"
65
+  },
66
+  "devDependencies": {
67
+    "autoprefixer": "8.5.0",
68
+    "babel-core": "6.26.3",
69
+    "babel-eslint": "8.2.6",
70
+    "babel-helper-vue-jsx-merge-props": "2.0.3",
71
+    "babel-loader": "7.1.5",
72
+    "babel-plugin-dynamic-import-node": "2.0.0",
73
+    "babel-plugin-syntax-jsx": "6.18.0",
74
+    "babel-plugin-transform-runtime": "6.23.0",
75
+    "babel-plugin-transform-vue-jsx": "3.7.0",
76
+    "babel-preset-env": "1.7.0",
77
+    "babel-preset-stage-2": "6.24.1",
78
+    "chalk": "2.4.1",
79
+    "copy-webpack-plugin": "4.5.2",
80
+    "cross-env": "5.2.0",
81
+    "css-loader": "1.0.0",
82
+    "eslint": "4.19.1",
83
+    "eslint-friendly-formatter": "4.0.1",
84
+    "eslint-loader": "2.0.0",
85
+    "eslint-plugin-vue": "4.7.1",
86
+    "file-loader": "1.1.11",
87
+    "friendly-errors-webpack-plugin": "1.7.0",
88
+    "hash-sum": "1.0.2",
89
+    "html-webpack-plugin": "4.0.0-alpha",
90
+    "husky": "0.14.3",
91
+    "lint-staged": "7.2.2",
92
+    "mini-css-extract-plugin": "0.4.1",
93
+    "node-notifier": "5.2.1",
94
+    "node-sass": "^4.7.2",
95
+    "optimize-css-assets-webpack-plugin": "5.0.0",
96
+    "ora": "3.0.0",
97
+    "path-to-regexp": "2.4.0",
98
+    "portfinder": "1.0.13",
99
+    "postcss-import": "11.1.0",
100
+    "postcss-loader": "2.1.6",
101
+    "postcss-url": "7.3.2",
102
+    "rimraf": "2.6.2",
103
+    "sass-loader": "7.0.3",
104
+    "script-ext-html-webpack-plugin": "2.0.1",
105
+    "script-loader": "0.7.2",
106
+    "semver": "5.5.0",
107
+    "serve-static": "1.13.2",
108
+    "shelljs": "0.8.2",
109
+    "svg-sprite-loader": "3.8.0",
110
+    "svgo": "1.0.5",
111
+    "uglifyjs-webpack-plugin": "1.2.7",
112
+    "url-loader": "1.0.1",
113
+    "vue-loader": "15.3.0",
114
+    "vue-style-loader": "4.1.2",
115
+    "vue-template-compiler": "2.5.17",
116
+    "webpack": "4.16.5",
117
+    "webpack-bundle-analyzer": "2.13.1",
118
+    "webpack-cli": "3.1.0",
119
+    "webpack-dev-server": "3.1.5",
120
+    "webpack-merge": "4.1.4"
121
+  },
122
+  "engines": {
123
+    "node": ">= 6.0.0",
124
+    "npm": ">= 3.0.0"
125
+  },
126
+  "browserslist": [
127
+    "> 1%",
128
+    "last 2 versions",
129
+    "not ie <= 8"
130
+  ]
131
+}

+ 11
- 0
vue-element-admin/src/App.vue View File

@@ -0,0 +1,11 @@
1
+<template>
2
+  <div id="app">
3
+    <router-view/>
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+export default{
9
+  name: 'App'
10
+}
11
+</script>

+ 41
- 0
vue-element-admin/src/api/article.js View File

@@ -0,0 +1,41 @@
1
+import request from '@/utils/request'
2
+
3
+export function fetchList(query) {
4
+  return request({
5
+    url: '/article/list',
6
+    method: 'get',
7
+    params: query
8
+  })
9
+}
10
+
11
+export function fetchArticle(id) {
12
+  return request({
13
+    url: '/article/detail',
14
+    method: 'get',
15
+    params: { id }
16
+  })
17
+}
18
+
19
+export function fetchPv(pv) {
20
+  return request({
21
+    url: '/article/pv',
22
+    method: 'get',
23
+    params: { pv }
24
+  })
25
+}
26
+
27
+export function createArticle(data) {
28
+  return request({
29
+    url: '/article/create',
30
+    method: 'post',
31
+    data
32
+  })
33
+}
34
+
35
+export function updateArticle(data) {
36
+  return request({
37
+    url: '/article/update',
38
+    method: 'post',
39
+    data
40
+  })
41
+}

+ 29
- 0
vue-element-admin/src/api/login.js View File

@@ -0,0 +1,29 @@
1
+import request from '@/utils/request'
2
+
3
+export function loginByUsername(username, password) {
4
+  const data = {
5
+    username,
6
+    password
7
+  }
8
+  return request({
9
+    url: '/login/login',
10
+    method: 'post',
11
+    data
12
+  })
13
+}
14
+
15
+export function logout() {
16
+  return request({
17
+    url: '/login/logout',
18
+    method: 'post'
19
+  })
20
+}
21
+
22
+export function getUserInfo(token) {
23
+  return request({
24
+    url: '/user/info',
25
+    method: 'get',
26
+    params: { token }
27
+  })
28
+}
29
+

+ 8
- 0
vue-element-admin/src/api/qiniu.js View File

@@ -0,0 +1,8 @@
1
+import request from '@/utils/request'
2
+
3
+export function getToken() {
4
+  return request({
5
+    url: '/qiniu/upload/token', // 假地址 自行替换
6
+    method: 'get'
7
+  })
8
+}

+ 9
- 0
vue-element-admin/src/api/remoteSearch.js View File

@@ -0,0 +1,9 @@
1
+import request from '@/utils/request'
2
+
3
+export function userSearch(name) {
4
+  return request({
5
+    url: '/search/user',
6
+    method: 'get',
7
+    params: { name }
8
+  })
9
+}

+ 9
- 0
vue-element-admin/src/api/service.js View File

@@ -0,0 +1,9 @@
1
+import request from '@/utils/request'
2
+
3
+export function serviceList(query) {
4
+  return request({
5
+    url: '/service/list',
6
+    method: 'get',
7
+    params: query
8
+  })
9
+}

+ 4
- 0
vue-element-admin/src/api/transaction.js View File

@@ -0,0 +1,4 @@
1
+
2
+export function fetchList(query) {
3
+  return
4
+}

BIN
vue-element-admin/src/assets/401_images/401.gif View File


BIN
vue-element-admin/src/assets/404_images/404.png View File


BIN
vue-element-admin/src/assets/404_images/404_cloud.png View File


BIN
vue-element-admin/src/assets/custom-theme/fonts/element-icons.ttf View File


+ 0
- 0
vue-element-admin/src/assets/custom-theme/fonts/element-icons.woff View File


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