Compare commits
1 Commits
master
...
dependabot
Author | SHA1 | Date |
---|---|---|
dependabot[bot] | 15a33baf15 |
17
App.vue
|
@ -1,17 +0,0 @@
|
|||
<script>
|
||||
export default {
|
||||
onLaunch: function() {
|
||||
console.log('App Launch')
|
||||
},
|
||||
onShow: function() {
|
||||
console.log('App Show')
|
||||
},
|
||||
onHide: function() {
|
||||
console.log('App Hide')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
</style>
|
|
@ -0,0 +1,31 @@
|
|||
HELP.md
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**
|
||||
!**/src/test/**
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
import java.nio.channels.*;
|
||||
import java.util.Properties;
|
||||
|
||||
public class MavenWrapperDownloader {
|
||||
|
||||
private static final String WRAPPER_VERSION = "0.5.5";
|
||||
/**
|
||||
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
||||
*/
|
||||
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
||||
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
||||
|
||||
/**
|
||||
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
||||
* use instead of the default one.
|
||||
*/
|
||||
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
||||
".mvn/wrapper/maven-wrapper.properties";
|
||||
|
||||
/**
|
||||
* Path where the maven-wrapper.jar will be saved to.
|
||||
*/
|
||||
private static final String MAVEN_WRAPPER_JAR_PATH =
|
||||
".mvn/wrapper/maven-wrapper.jar";
|
||||
|
||||
/**
|
||||
* Name of the property which should be used to override the default download url for the wrapper.
|
||||
*/
|
||||
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
||||
|
||||
public static void main(String args[]) {
|
||||
System.out.println("- Downloader started");
|
||||
File baseDirectory = new File(args[0]);
|
||||
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
||||
|
||||
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
||||
// wrapperUrl parameter.
|
||||
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
||||
String url = DEFAULT_DOWNLOAD_URL;
|
||||
if (mavenWrapperPropertyFile.exists()) {
|
||||
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
||||
try {
|
||||
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
||||
Properties mavenWrapperProperties = new Properties();
|
||||
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
||||
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
||||
} catch (IOException e) {
|
||||
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
||||
} finally {
|
||||
try {
|
||||
if (mavenWrapperPropertyFileInputStream != null) {
|
||||
mavenWrapperPropertyFileInputStream.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Ignore ...
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("- Downloading from: " + url);
|
||||
|
||||
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
||||
if (!outputFile.getParentFile().exists()) {
|
||||
if (!outputFile.getParentFile().mkdirs()) {
|
||||
System.out.println(
|
||||
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
||||
}
|
||||
}
|
||||
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
||||
try {
|
||||
downloadFileFromURL(url, outputFile);
|
||||
System.out.println("Done");
|
||||
System.exit(0);
|
||||
} catch (Throwable e) {
|
||||
System.out.println("- Error downloading");
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
||||
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
||||
String username = System.getenv("MVNW_USERNAME");
|
||||
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
||||
Authenticator.setDefault(new Authenticator() {
|
||||
@Override
|
||||
protected PasswordAuthentication getPasswordAuthentication() {
|
||||
return new PasswordAuthentication(username, password);
|
||||
}
|
||||
});
|
||||
}
|
||||
URL website = new URL(urlString);
|
||||
ReadableByteChannel rbc;
|
||||
rbc = Channels.newChannel(website.openStream());
|
||||
FileOutputStream fos = new FileOutputStream(destination);
|
||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
||||
fos.close();
|
||||
rbc.close();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
|
||||
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
|
|
@ -0,0 +1,310 @@
|
|||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Maven2 Start Up Batch script
|
||||
#
|
||||
# Required ENV vars:
|
||||
# ------------------
|
||||
# JAVA_HOME - location of a JDK home dir
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# M2_HOME - location of maven2's installed home dir
|
||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
# e.g. to debug Maven itself, use
|
||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$MAVEN_SKIP_RC" ] ; then
|
||||
|
||||
if [ -f /etc/mavenrc ] ; then
|
||||
. /etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.mavenrc" ] ; then
|
||||
. "$HOME/.mavenrc"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false;
|
||||
darwin=false;
|
||||
mingw=false
|
||||
case "`uname`" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
MINGW*) mingw=true;;
|
||||
Darwin*) darwin=true
|
||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
if [ -x "/usr/libexec/java_home" ]; then
|
||||
export JAVA_HOME="`/usr/libexec/java_home`"
|
||||
else
|
||||
export JAVA_HOME="/Library/Java/Home"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
if [ -r /etc/gentoo-release ] ; then
|
||||
JAVA_HOME=`java-config --jre-home`
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$M2_HOME" ] ; then
|
||||
## resolve links - $0 may be a link to maven's home
|
||||
PRG="$0"
|
||||
|
||||
# need this for relative symlinks
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG="`dirname "$PRG"`/$link"
|
||||
fi
|
||||
done
|
||||
|
||||
saveddir=`pwd`
|
||||
|
||||
M2_HOME=`dirname "$PRG"`/..
|
||||
|
||||
# make it fully qualified
|
||||
M2_HOME=`cd "$M2_HOME" && pwd`
|
||||
|
||||
cd "$saveddir"
|
||||
# echo Using m2 at $M2_HOME
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --unix "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
||||
fi
|
||||
|
||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
||||
if $mingw ; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
javaExecutable="`which javac`"
|
||||
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=`which readlink`
|
||||
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
|
||||
if $darwin ; then
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
|
||||
else
|
||||
javaExecutable="`readlink -f \"$javaExecutable\"`"
|
||||
fi
|
||||
javaHome="`dirname \"$javaExecutable\"`"
|
||||
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
|
||||
JAVA_HOME="$javaHome"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$JAVACMD" ] ; then
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="`which java`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||
echo " We cannot execute $JAVACMD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ] ; then
|
||||
echo "Warning: JAVA_HOME environment variable is not set."
|
||||
fi
|
||||
|
||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||
|
||||
# traverses directory structure from process work directory to filesystem root
|
||||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
echo "Path not specified to find_maven_basedir"
|
||||
return 1
|
||||
fi
|
||||
|
||||
basedir="$1"
|
||||
wdir="$1"
|
||||
while [ "$wdir" != '/' ] ; do
|
||||
if [ -d "$wdir"/.mvn ] ; then
|
||||
basedir=$wdir
|
||||
break
|
||||
fi
|
||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
||||
if [ -d "${wdir}" ]; then
|
||||
wdir=`cd "$wdir/.."; pwd`
|
||||
fi
|
||||
# end of workaround
|
||||
done
|
||||
echo "${basedir}"
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "$(tr -s '\n' ' ' < "$1")"
|
||||
fi
|
||||
}
|
||||
|
||||
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
||||
if [ -z "$BASE_DIR" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
##########################################################################################
|
||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
##########################################################################################
|
||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
||||
fi
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
||||
fi
|
||||
if [ -n "$MVNW_REPOURL" ]; then
|
||||
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
|
||||
else
|
||||
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
|
||||
fi
|
||||
while IFS="=" read key value; do
|
||||
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
||||
esac
|
||||
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Downloading from: $jarUrl"
|
||||
fi
|
||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
||||
if $cygwin; then
|
||||
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
||||
fi
|
||||
|
||||
if command -v wget > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found wget ... using wget"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
wget "$jarUrl" -O "$wrapperJarPath"
|
||||
else
|
||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
|
||||
fi
|
||||
elif command -v curl > /dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found curl ... using curl"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
||||
else
|
||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
||||
fi
|
||||
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Falling back to using Java to download"
|
||||
fi
|
||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
||||
# For Cygwin, switch paths to Windows format before running javac
|
||||
if $cygwin; then
|
||||
javaClass=`cygpath --path --windows "$javaClass"`
|
||||
fi
|
||||
if [ -e "$javaClass" ]; then
|
||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
# Compiling the Java class
|
||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
||||
fi
|
||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
# Running the downloader
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Running MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
##########################################################################################
|
||||
# End of extension
|
||||
##########################################################################################
|
||||
|
||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo $MAVEN_PROJECTBASEDIR
|
||||
fi
|
||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
||||
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
||||
fi
|
||||
|
||||
# Provide a "standardized" way to retrieve the CLI args that will
|
||||
# work with both Windows and non-Windows executions.
|
||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||
export MAVEN_CMD_LINE_ARGS
|
||||
|
||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
exec "$JAVACMD" \
|
||||
$MAVEN_OPTS \
|
||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
|
@ -0,0 +1,182 @@
|
|||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM https://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Maven2 Start Up Batch script
|
||||
@REM
|
||||
@REM Required ENV vars:
|
||||
@REM JAVA_HOME - location of a JDK home dir
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM M2_HOME - location of maven2's installed home dir
|
||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
|
||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
@REM e.g. to debug Maven itself, use
|
||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||
@echo off
|
||||
@REM set title of command window
|
||||
title %0
|
||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||
|
||||
@REM set %HOME% to equivalent of $HOME
|
||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||
|
||||
@REM Execute a user defined script before this one
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
|
||||
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
|
||||
:skipRcPre
|
||||
|
||||
@setlocal
|
||||
|
||||
set ERROR_CODE=0
|
||||
|
||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||
@setlocal
|
||||
|
||||
@REM ==== START VALIDATION ====
|
||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME not found in your environment. >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
:OkJHome
|
||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
@REM ==== END VALIDATION ====
|
||||
|
||||
:init
|
||||
|
||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set EXEC_DIR=%CD%
|
||||
set WDIR=%EXEC_DIR%
|
||||
:findBaseDir
|
||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set WDIR=%CD%
|
||||
goto findBaseDir
|
||||
|
||||
:baseDirFound
|
||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||
cd "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
:endDetectBaseDir
|
||||
|
||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||
|
||||
@setlocal EnableExtensions EnableDelayedExpansion
|
||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||
|
||||
:endReadAdditionalConfig
|
||||
|
||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
|
||||
|
||||
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
||||
)
|
||||
|
||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
if exist %WRAPPER_JAR% (
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Found %WRAPPER_JAR%
|
||||
)
|
||||
) else (
|
||||
if not "%MVNW_REPOURL%" == "" (
|
||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
|
||||
)
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
||||
echo Downloading from: %DOWNLOAD_URL%
|
||||
)
|
||||
|
||||
powershell -Command "&{"^
|
||||
"$webclient = new-object System.Net.WebClient;"^
|
||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
||||
"}"^
|
||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
||||
"}"
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Finished downloading %WRAPPER_JAR%
|
||||
)
|
||||
)
|
||||
@REM End of extension
|
||||
|
||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
||||
@REM work with both Windows and non-Windows executions.
|
||||
set MAVEN_CMD_LINE_ARGS=%*
|
||||
|
||||
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
||||
if ERRORLEVEL 1 goto error
|
||||
goto end
|
||||
|
||||
:error
|
||||
set ERROR_CODE=1
|
||||
|
||||
:end
|
||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
|
||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
|
||||
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
|
||||
:skipRcPost
|
||||
|
||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||
if "%MAVEN_BATCH_PAUSE%" == "on" pause
|
||||
|
||||
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
|
||||
|
||||
exit /B %ERROR_CODE%
|
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.2.1.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>top.weimumu</groupId>
|
||||
<artifactId>login-api</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>login-api</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.junit.vintage</groupId>
|
||||
<artifactId>junit-vintage-engine</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!--junit-->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.13.1</version>
|
||||
</dependency>
|
||||
<!--mysql-->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>8.0.16</version>
|
||||
</dependency>
|
||||
<!--mybatis plus-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</dependency>
|
||||
<!--lombok-->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.18.8</version>
|
||||
</dependency>
|
||||
<!--druid-->
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
<version>1.1.19</version>
|
||||
</dependency>
|
||||
<!--log4j-->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.28</version>
|
||||
</dependency>
|
||||
<!-- http客户端 -->
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
<artifactId>okhttp</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk16</artifactId>
|
||||
<version>1.46</version>
|
||||
</dependency>
|
||||
<!--base64加密-->
|
||||
<dependency>
|
||||
<groupId>org.apache.shiro</groupId>
|
||||
<artifactId>shiro-core</artifactId>
|
||||
<version>1.4.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<groupId>org.slf4j</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- google json 解析 -->
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,15 @@
|
|||
package top.weimumu.loginapi;
|
||||
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
@MapperScan("top.weimumu.loginapi.mapper")
|
||||
public class LoginApiApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(LoginApiApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package top.weimumu.loginapi.VO;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2020/3/31
|
||||
**/
|
||||
@Data
|
||||
public class ResultVO<T> {
|
||||
|
||||
/** 错误码. */
|
||||
private Integer code;
|
||||
|
||||
/** 提示信息. */
|
||||
private String msg;
|
||||
|
||||
/** 具体内容. */
|
||||
private T data;
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
package top.weimumu.loginapi.common;
|
||||
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2019/12/10
|
||||
**/
|
||||
|
||||
public class GlobalResult {
|
||||
// 响应业务状态
|
||||
private Integer status;
|
||||
|
||||
// 响应消息
|
||||
private String msg;
|
||||
|
||||
// 响应中的数据
|
||||
private Object data;
|
||||
|
||||
private String ok; // 不使用
|
||||
|
||||
public static GlobalResult build(Integer status, String msg, Object data) {
|
||||
return new GlobalResult(status, msg, data);
|
||||
}
|
||||
|
||||
public static GlobalResult ok(Object data) {
|
||||
return new GlobalResult(data);
|
||||
}
|
||||
|
||||
public static GlobalResult ok() {
|
||||
return new GlobalResult(null);
|
||||
}
|
||||
|
||||
public static GlobalResult errorMsg(String msg) {
|
||||
return new GlobalResult(500, msg, null);
|
||||
}
|
||||
|
||||
public static GlobalResult errorMap(Object data) {
|
||||
return new GlobalResult(501, "error", data);
|
||||
}
|
||||
|
||||
public static GlobalResult errorTokenMsg(String msg) {
|
||||
return new GlobalResult(502, msg, null);
|
||||
}
|
||||
|
||||
public static GlobalResult errorException(String msg) {
|
||||
return new GlobalResult(555, msg, null);
|
||||
}
|
||||
|
||||
public GlobalResult() {
|
||||
|
||||
}
|
||||
|
||||
public GlobalResult(Integer status, String msg, Object data) {
|
||||
this.status = status;
|
||||
this.msg = msg;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public GlobalResult(Object data) {
|
||||
this.status = 200;
|
||||
this.msg = "OK";
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public Boolean isOK() {
|
||||
return this.status == 200;
|
||||
}
|
||||
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public Object getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(Object data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public String getOk() {
|
||||
return ok;
|
||||
}
|
||||
|
||||
public void setOk(String ok) {
|
||||
this.ok = ok;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
package top.weimumu.loginapi.common;
|
||||
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.utils.URIBuilder;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2019/12/10
|
||||
**/
|
||||
public class HttpClientUtil {
|
||||
public static String doGet(String url, Map<String, String> param) {
|
||||
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpclient = HttpClients.createDefault();
|
||||
|
||||
String resultString = "";
|
||||
CloseableHttpResponse response = null;
|
||||
try {
|
||||
// 创建uri
|
||||
URIBuilder builder = new URIBuilder(url);
|
||||
if (param != null) {
|
||||
for (String key : param.keySet()) {
|
||||
builder.addParameter(key, param.get(key));
|
||||
}
|
||||
}
|
||||
URI uri = builder.build();
|
||||
|
||||
// 创建http GET请求
|
||||
HttpGet httpGet = new HttpGet(uri);
|
||||
|
||||
// 执行请求
|
||||
response = httpclient.execute(httpGet);
|
||||
// 判断返回状态是否为200
|
||||
if (response.getStatusLine().getStatusCode() == 200) {
|
||||
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (response != null) {
|
||||
response.close();
|
||||
}
|
||||
httpclient.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return resultString;
|
||||
}
|
||||
|
||||
public static String doGet(String url) {
|
||||
return doGet(url, null);
|
||||
}
|
||||
|
||||
public static String doPost(String url, Map<String, String> param) {
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
CloseableHttpResponse response = null;
|
||||
String resultString = "";
|
||||
try {
|
||||
// 创建Http Post请求
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
// 创建参数列表
|
||||
if (param != null) {
|
||||
List<NameValuePair> paramList = new ArrayList<>();
|
||||
for (String key : param.keySet()) {
|
||||
paramList.add(new BasicNameValuePair(key, param.get(key)));
|
||||
}
|
||||
// 模拟表单
|
||||
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
|
||||
httpPost.setEntity(entity);
|
||||
}
|
||||
// 执行http请求
|
||||
response = httpClient.execute(httpPost);
|
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return resultString;
|
||||
}
|
||||
|
||||
public static String doPost(String url) {
|
||||
return doPost(url, null);
|
||||
}
|
||||
|
||||
public static String doPostJson(String url, String json) {
|
||||
// 创建Httpclient对象
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
CloseableHttpResponse response = null;
|
||||
String resultString = "";
|
||||
try {
|
||||
// 创建Http Post请求
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
// 创建请求内容
|
||||
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
|
||||
httpPost.setEntity(entity);
|
||||
// 执行http请求
|
||||
response = httpClient.execute(httpPost);
|
||||
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
response.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return resultString;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package top.weimumu.loginapi.common;
|
||||
|
||||
import java.util.Random;
|
||||
/**
|
||||
* calvin wong
|
||||
* */
|
||||
|
||||
public class KeyUtil {
|
||||
|
||||
/**
|
||||
* 生成唯一的主键
|
||||
* 格式: 时间+随机数
|
||||
* @return
|
||||
*/
|
||||
public static synchronized String genUniqueKey() {
|
||||
Random random = new Random();
|
||||
Integer number = random.nextInt(900000) + 100000;
|
||||
|
||||
return System.currentTimeMillis() + String.valueOf(number);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package top.weimumu.loginapi.common;
|
||||
|
||||
import top.weimumu.loginapi.VO.ResultVO;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2020/4/1
|
||||
**/
|
||||
public class ResultVOUtils {
|
||||
|
||||
public static ResultVO success(Object object) {
|
||||
ResultVO resultVO = new ResultVO();
|
||||
resultVO.setData(object);
|
||||
resultVO.setCode(0);
|
||||
resultVO.setMsg("成功");
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
public static ResultVO success() {
|
||||
return success(null);
|
||||
}
|
||||
|
||||
public static ResultVO error(Integer code, String msg) {
|
||||
ResultVO resultVO = new ResultVO();
|
||||
resultVO.setCode(code);
|
||||
resultVO.setMsg(msg);
|
||||
return resultVO;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
package top.weimumu.loginapi.common;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.shiro.codec.Base64;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.security.AlgorithmParameters;
|
||||
import java.security.Security;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2019/12/10
|
||||
**/
|
||||
public class WechatUtil {
|
||||
public static JSONObject getSessionKeyOrOpenId(String code) {
|
||||
String requestUrl = "https://api.weixin.qq.com/sns/jscode2session";
|
||||
Map<String, String> requestUrlParam = new HashMap<>();
|
||||
// https://mp.weixin.qq.com/wxopen/devprofile?action=get_profile&token=164113089&lang=zh_CN
|
||||
//小程序appId
|
||||
requestUrlParam.put("appid", "wx62e0151eaf62eff7");
|
||||
//小程序secret
|
||||
requestUrlParam.put("secret", "c45170b3aa8dbc5cd45ab12c319298f8");
|
||||
//小程序端返回的code
|
||||
requestUrlParam.put("js_code", code);
|
||||
//默认参数
|
||||
requestUrlParam.put("grant_type", "authorization_code");
|
||||
//发送post请求读取调用微信接口获取openid用户唯一标识
|
||||
JSONObject jsonObject = JSON.parseObject(HttpClientUtil.doPost(requestUrl, requestUrlParam));
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
public static JSONObject getUserInfo(String encryptedData, String sessionKey, String iv) {
|
||||
// 被加密的数据
|
||||
byte[] dataByte = Base64.decode(encryptedData);
|
||||
// 加密秘钥
|
||||
byte[] keyByte = Base64.decode(sessionKey);
|
||||
// 偏移量
|
||||
byte[] ivByte = Base64.decode(iv);
|
||||
try {
|
||||
// 如果密钥不足16位,那么就补足. 这个if 中的内容很重要
|
||||
int base = 16;
|
||||
if (keyByte.length % base != 0) {
|
||||
int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0);
|
||||
byte[] temp = new byte[groups * base];
|
||||
Arrays.fill(temp, (byte) 0);
|
||||
System.arraycopy(keyByte, 0, temp, 0, keyByte.length);
|
||||
keyByte = temp;
|
||||
}
|
||||
// 初始化
|
||||
Security.addProvider(new BouncyCastleProvider());
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC");
|
||||
SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");
|
||||
AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");
|
||||
parameters.init(new IvParameterSpec(ivByte));
|
||||
cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化
|
||||
byte[] resultByte = cipher.doFinal(dataByte);
|
||||
if (null != resultByte && resultByte.length > 0) {
|
||||
String result = new String(resultByte, "UTF-8");
|
||||
return JSON.parseObject(result);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package top.weimumu.loginapi.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 八字表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/sys/bazi-info")
|
||||
public class BaziInfoController{
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package top.weimumu.loginapi.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 名字推荐表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/sys/name-detail")
|
||||
public class NameDetailController{
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package top.weimumu.loginapi.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/sys/name-info")
|
||||
public class NameInfoController{
|
||||
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package top.weimumu.loginapi.controller;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import top.weimumu.loginapi.VO.ResultVO;
|
||||
import top.weimumu.loginapi.common.ResultVOUtils;
|
||||
import top.weimumu.loginapi.converter.OrderForm2OrderDTOConverter;
|
||||
import top.weimumu.loginapi.dto.OrderDTO;
|
||||
import top.weimumu.loginapi.enums.ResultEnum;
|
||||
import top.weimumu.loginapi.exception.NameException;
|
||||
import top.weimumu.loginapi.form.OrderForm;
|
||||
import top.weimumu.loginapi.service.IOrderMasterService;
|
||||
import top.weimumu.loginapi.service.IUserService;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/order")
|
||||
@Slf4j
|
||||
public class OrderMasterController{
|
||||
|
||||
@Autowired
|
||||
private IOrderMasterService iOrderMasterService;
|
||||
|
||||
@Autowired
|
||||
private IUserService iUserService;
|
||||
|
||||
//创建订单
|
||||
@PostMapping("/create")
|
||||
public ResultVO<Map<String,String>> create(@Valid OrderForm orderForm,
|
||||
BindingResult bindingResult){
|
||||
//校验参数
|
||||
if (bindingResult.hasErrors()) {
|
||||
log.error("【订单生成】参数不正确,orderForm={}",orderForm);
|
||||
throw new NameException(ResultEnum.PARAM_ERROR);
|
||||
}
|
||||
OrderDTO orderDTO = OrderForm2OrderDTOConverter.convert(orderForm);
|
||||
OrderDTO createResult = iOrderMasterService.saveInfo(orderDTO);
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("orderId", createResult.getOrder_id());
|
||||
|
||||
return ResultVOUtils.success(map);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package top.weimumu.loginapi.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/sys/user")
|
||||
public class UserController{
|
||||
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package top.weimumu.loginapi.converter;
|
||||
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import top.weimumu.loginapi.dto.OrderDTO;
|
||||
import top.weimumu.loginapi.entity.NameDetail;
|
||||
import top.weimumu.loginapi.enums.ResultEnum;
|
||||
import top.weimumu.loginapi.exception.NameException;
|
||||
import top.weimumu.loginapi.form.OrderForm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Slf4j
|
||||
public class OrderForm2OrderDTOConverter {
|
||||
|
||||
public static OrderDTO convert(OrderForm orderForm) {
|
||||
Gson gson = new Gson();
|
||||
OrderDTO orderDTO = new OrderDTO();
|
||||
|
||||
orderDTO.setOpen_id(orderForm.getOpen_id());
|
||||
orderDTO.setSurname(orderForm.getSurname());
|
||||
orderDTO.setGender(orderForm.getGender());
|
||||
orderDTO.setBirth_time(orderForm.getBirth_time());
|
||||
|
||||
List<NameDetail> orderDetailList = new ArrayList<>();
|
||||
|
||||
orderDTO.setOrderDetailList(orderDetailList);
|
||||
|
||||
|
||||
return orderDTO;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package top.weimumu.loginapi.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import lombok.Data;
|
||||
import top.weimumu.loginapi.entity.NameDetail;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2020/3/24
|
||||
**/
|
||||
@Data
|
||||
public class OrderDTO {
|
||||
/** order_id */
|
||||
private String order_id;
|
||||
|
||||
/** 姓氏*/
|
||||
private String surname;
|
||||
|
||||
/** 性别 */
|
||||
private Integer gender;
|
||||
|
||||
/** 出生日期 */
|
||||
private Date birth_time;
|
||||
|
||||
/** detail_id名字id*/
|
||||
private String detail_id;
|
||||
|
||||
/** 用户身份识别open_id*/
|
||||
private String open_id;
|
||||
|
||||
/** 八字id*/
|
||||
private Integer bazi_id;
|
||||
|
||||
/** 创建时间. */
|
||||
private Date createTime;
|
||||
|
||||
/** 更新时间. */
|
||||
private Date updateTime;
|
||||
|
||||
List<NameDetail> orderDetailList;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package top.weimumu.loginapi.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 八字表
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class BaziInfo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "bazi_id", type = IdType.AUTO)
|
||||
private Integer baziId;
|
||||
|
||||
/**
|
||||
* 八字类型
|
||||
*/
|
||||
private String baziType;
|
||||
|
||||
/**
|
||||
* 喜用神信息
|
||||
*/
|
||||
private String baziContent;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package top.weimumu.loginapi.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 名字推荐表
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class NameDetail{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String detailId;
|
||||
|
||||
/**
|
||||
* 名字
|
||||
*/
|
||||
private String ming;
|
||||
|
||||
/**
|
||||
* 名字id
|
||||
*/
|
||||
private String nameId;
|
||||
|
||||
/**
|
||||
* 八字id
|
||||
*/
|
||||
private Integer baziId;
|
||||
|
||||
/**
|
||||
* 姓氏
|
||||
*/
|
||||
private String surname;
|
||||
|
||||
/**
|
||||
* 得分
|
||||
*/
|
||||
private BigDecimal score;
|
||||
|
||||
/**
|
||||
* 八字信息
|
||||
*/
|
||||
private String baziContent;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package top.weimumu.loginapi.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class NameInfo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String nameId;
|
||||
|
||||
/**
|
||||
* 姓氏
|
||||
*/
|
||||
private String surname;
|
||||
|
||||
/**
|
||||
* 名字
|
||||
*/
|
||||
private String ming;
|
||||
|
||||
/**
|
||||
* 性别 1男 2女
|
||||
*/
|
||||
private Integer gender;
|
||||
|
||||
/**
|
||||
* 名字评分
|
||||
*/
|
||||
private BigDecimal score;
|
||||
|
||||
/**
|
||||
* 八字id
|
||||
*/
|
||||
private Integer baiziId;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package top.weimumu.loginapi.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OrderMaster {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String orderId;
|
||||
|
||||
private LocalDateTime birthTime;
|
||||
|
||||
private String surname;
|
||||
|
||||
private String detailId;
|
||||
|
||||
private String openId;
|
||||
|
||||
private Integer gender;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package top.weimumu.loginapi.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class User{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String openId;
|
||||
|
||||
private String sessionKey;
|
||||
|
||||
private LocalDateTime lastVisitTime;
|
||||
|
||||
private String avatarUrl;
|
||||
|
||||
private String skey;
|
||||
|
||||
private String nickName;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package top.weimumu.loginapi.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2020/4/2
|
||||
**/
|
||||
|
||||
@Getter
|
||||
public enum GenderEnum {
|
||||
BOY(1,"男孩"),
|
||||
GIRL(2,"女孩"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
GenderEnum(Integer code, String message){
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package top.weimumu.loginapi.enums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2019/12/10
|
||||
**/
|
||||
@Getter
|
||||
public enum ResultEnum {
|
||||
|
||||
SUCCESS(0, "成功"),
|
||||
|
||||
PARAM_ERROR(1, "参数不正确"),
|
||||
|
||||
ORDER_NOT_EXIST(12, "订单不存在"),
|
||||
|
||||
ORDERDETAIL_NOT_EXIST(13, "订单详情不存在"),
|
||||
|
||||
ORDER_STATUS_ERROR(14, "订单状态不正确"),
|
||||
|
||||
ORDER_UPDATE_FAIL(15, "订单更新失败"),
|
||||
|
||||
ORDER_DETAIL_EMPTY(16, "订单详情为空"),
|
||||
|
||||
ORDER_PAY_STATUS_ERROR(17, "订单支付状态不正确"),
|
||||
|
||||
ORDER_OWNER_ERROR(19, "该订单不属于当前用户"),
|
||||
|
||||
WECHAT_MP_ERROR(20, "微信公众账号方面错误"),
|
||||
|
||||
WXPAY_NOTIFY_MONEY_VERIFY_ERROR(21, "微信支付异步通知金额校验不通过"),
|
||||
|
||||
ORDER_CANCEL_SUCCESS(22, "订单取消成功"),
|
||||
|
||||
ORDER_FINISH_SUCCESS(23, "订单完结成功"),
|
||||
|
||||
LOGIN_FAIL(25, "登录失败, 登录信息不正确"),
|
||||
|
||||
LOGOUT_SUCCESS(26, "登出成功"),
|
||||
;
|
||||
|
||||
private Integer code;
|
||||
|
||||
private String message;
|
||||
|
||||
ResultEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package top.weimumu.loginapi.exception;
|
||||
|
||||
import top.weimumu.loginapi.enums.ResultEnum;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2020/3/27
|
||||
**/
|
||||
public class NameException extends RuntimeException {
|
||||
private Integer code;
|
||||
|
||||
public NameException(ResultEnum resultEnum){
|
||||
super(resultEnum.getMessage());
|
||||
this.code = resultEnum.getCode();
|
||||
}
|
||||
|
||||
public NameException(Integer code,String message){
|
||||
super(message);
|
||||
this.code = code;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package top.weimumu.loginapi.form;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author: create by calvin wong
|
||||
* @date:2020/3/25
|
||||
**/
|
||||
|
||||
@Data
|
||||
public class OrderForm {
|
||||
/** 用户微信open_id*/
|
||||
@NotEmpty(message = "open_id不能为空")
|
||||
private String open_id;
|
||||
/** 姓氏*/
|
||||
@NotEmpty(message="姓氏不能为空")
|
||||
private String surname;
|
||||
/** 性别*/
|
||||
@NotEmpty(message = "性别不能为空")
|
||||
private Integer gender;
|
||||
/** 出生日期*/
|
||||
@NotEmpty(message = "出生时间不能为空")
|
||||
private Date birth_time;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import top.weimumu.loginapi.entity.BaziInfo;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 八字表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface BaziInfoMapper extends BaseMapper<BaziInfo> {
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package top.weimumu.loginapi.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import top.weimumu.loginapi.entity.NameDetail;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 名字推荐表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface NameDetailMapper extends BaseMapper<NameDetail> {
|
||||
@Override
|
||||
List<NameDetail> selectList(Wrapper<NameDetail> queryWrapper);
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import top.weimumu.loginapi.entity.NameInfo;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface NameInfoMapper extends BaseMapper<NameInfo> {
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import top.weimumu.loginapi.entity.OrderMaster;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface OrderMasterMapper extends BaseMapper<OrderMaster> {
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import top.weimumu.loginapi.entity.User;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface UserMapper extends BaseMapper<User> {
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import top.weimumu.loginapi.entity.BaziInfo;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 八字表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface IBaziInfoService extends IService<BaziInfo> {
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import top.weimumu.loginapi.entity.NameDetail;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 名字推荐表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface INameDetailService extends IService<NameDetail> {
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package top.weimumu.loginapi.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import top.weimumu.loginapi.dto.OrderDTO;
|
||||
import top.weimumu.loginapi.entity.NameInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface INameInfoService extends IService<NameInfo> {
|
||||
|
||||
/** 根据姓氏和生辰八字查询名字 */
|
||||
List<NameInfo> findList(OrderDTO orderDTO);
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package top.weimumu.loginapi.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import top.weimumu.loginapi.dto.OrderDTO;
|
||||
import top.weimumu.loginapi.entity.OrderMaster;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface IOrderMasterService extends IService<OrderMaster> {
|
||||
/** 创建订单*/
|
||||
OrderDTO saveInfo(OrderDTO orderDTO);
|
||||
/** 删除订单*/
|
||||
OrderDTO removeInfo(OrderDTO orderDTO);
|
||||
/** 查询订单*/
|
||||
List<OrderDTO> getList(String openid);
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package top.weimumu.loginapi.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import top.weimumu.loginapi.entity.User;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
public interface IUserService extends IService<User> {
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package top.weimumu.loginapi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import top.weimumu.loginapi.entity.BaziInfo;
|
||||
import top.weimumu.loginapi.mapper.BaziInfoMapper;
|
||||
import top.weimumu.loginapi.service.IBaziInfoService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 八字表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Service
|
||||
public class BaziInfoServiceImpl extends ServiceImpl<BaziInfoMapper, BaziInfo> implements IBaziInfoService {
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package top.weimumu.loginapi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import top.weimumu.loginapi.entity.NameDetail;
|
||||
import top.weimumu.loginapi.mapper.NameDetailMapper;
|
||||
import top.weimumu.loginapi.service.INameDetailService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 名字推荐表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Service
|
||||
public class NameDetailServiceImpl extends ServiceImpl<NameDetailMapper, NameDetail> implements INameDetailService {
|
||||
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package top.weimumu.loginapi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import top.weimumu.loginapi.dto.OrderDTO;
|
||||
import top.weimumu.loginapi.entity.NameInfo;
|
||||
import top.weimumu.loginapi.mapper.NameInfoMapper;
|
||||
import top.weimumu.loginapi.service.INameInfoService;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Service
|
||||
public class NameInfoServiceImpl extends ServiceImpl<NameInfoMapper, NameInfo> implements INameInfoService {
|
||||
|
||||
@Autowired
|
||||
private NameInfoMapper nameInfoMapper;
|
||||
|
||||
@Override
|
||||
public List<NameInfo> findList(OrderDTO orderDTO){
|
||||
Map<String,Object> columnMap = new HashMap<>();
|
||||
columnMap.put("surname",orderDTO.getSurname());
|
||||
columnMap.put("gender", orderDTO.getGender());
|
||||
columnMap.put("bazi_id",orderDTO.getBazi_id());
|
||||
return nameInfoMapper.selectByMap(columnMap);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package top.weimumu.loginapi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sun.org.apache.xml.internal.security.keys.KeyUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import top.weimumu.loginapi.common.KeyUtil;
|
||||
import top.weimumu.loginapi.dto.OrderDTO;
|
||||
import top.weimumu.loginapi.entity.NameDetail;
|
||||
import top.weimumu.loginapi.entity.NameInfo;
|
||||
import top.weimumu.loginapi.entity.OrderMaster;
|
||||
import top.weimumu.loginapi.mapper.OrderMasterMapper;
|
||||
import top.weimumu.loginapi.service.INameInfoService;
|
||||
import top.weimumu.loginapi.service.IOrderMasterService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 订单表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Service
|
||||
public class OrderMasterServiceImpl extends ServiceImpl<OrderMasterMapper, OrderMaster> implements IOrderMasterService {
|
||||
|
||||
@Autowired
|
||||
private OrderMasterMapper orderMasterMapper;
|
||||
|
||||
@Autowired
|
||||
private INameInfoService iNameInfoService;
|
||||
@Override
|
||||
public OrderDTO saveInfo(OrderDTO orderDTO) {
|
||||
String orderId = KeyUtil.genUniqueKey();
|
||||
// 查询姓名库中10个名字
|
||||
List<NameDetail> nameInfoList= iNameInfoService.findList(orderDTO);
|
||||
// 刷选10个数据
|
||||
// 将数据入库namedetail
|
||||
// 写入订单
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderDTO removeInfo(OrderDTO orderDTO){
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderDTO> getList(String openId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package top.weimumu.loginapi.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import top.weimumu.loginapi.entity.User;
|
||||
import top.weimumu.loginapi.mapper.UserMapper;
|
||||
import top.weimumu.loginapi.service.IUserService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author calvin
|
||||
* @since 2020-03-30
|
||||
*/
|
||||
@Service
|
||||
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
server:
|
||||
port: 8080
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://192.168.253.133:3307/create_name?useUnicode=true&useSSL=false&characterEndcoding=utf8&useTimezone=true&serverTimezone=Asia/Shanghai
|
||||
username: root
|
||||
password: 123456
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
|
@ -0,0 +1,13 @@
|
|||
package top.weimumu.loginapi;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest
|
||||
class LoginApiApplicationTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
<script>
|
||||
import { mapMutations } from 'vuex';
|
||||
export default {
|
||||
methods: {
|
||||
...mapMutations(['login'])
|
||||
},
|
||||
onLaunch: function() {
|
||||
let userInfo = uni.getStorageSync('userInfo') || '';
|
||||
if (userInfo.id) {
|
||||
//更新登陆状态
|
||||
uni.getStorage({
|
||||
key: 'userInfo',
|
||||
success: res => {
|
||||
this.login(res.data);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
onShow: function() {
|
||||
console.log('App Show');
|
||||
},
|
||||
onHide: function() {
|
||||
console.log('App Hide');
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/*每个页面公共css */
|
||||
/*每个页面公共css */
|
||||
@import 'colorui/main.css';
|
||||
@import 'colorui/icon.css';
|
||||
</style>
|
|
@ -0,0 +1,184 @@
|
|||
/*
|
||||
Animation 微动画
|
||||
基于ColorUI组建库的动画模块 by 文晓港 2019年3月26日19:52:28
|
||||
*/
|
||||
|
||||
/* css 滤镜 控制黑白底色gif的 */
|
||||
.gif-black{
|
||||
mix-blend-mode: screen;
|
||||
}
|
||||
.gif-white{
|
||||
mix-blend-mode: multiply;
|
||||
}
|
||||
|
||||
|
||||
/* Animation css */
|
||||
[class*=animation-] {
|
||||
animation-duration: .5s;
|
||||
animation-timing-function: ease-out;
|
||||
animation-fill-mode: both
|
||||
}
|
||||
|
||||
.animation-fade {
|
||||
animation-name: fade;
|
||||
animation-duration: .8s;
|
||||
animation-timing-function: linear
|
||||
}
|
||||
|
||||
.animation-scale-up {
|
||||
animation-name: scale-up
|
||||
}
|
||||
|
||||
.animation-scale-down {
|
||||
animation-name: scale-down
|
||||
}
|
||||
|
||||
.animation-slide-top {
|
||||
animation-name: slide-top
|
||||
}
|
||||
|
||||
.animation-slide-bottom {
|
||||
animation-name: slide-bottom
|
||||
}
|
||||
|
||||
.animation-slide-left {
|
||||
animation-name: slide-left
|
||||
}
|
||||
|
||||
.animation-slide-right {
|
||||
animation-name: slide-right
|
||||
}
|
||||
|
||||
.animation-shake {
|
||||
animation-name: shake
|
||||
}
|
||||
|
||||
.animation-reverse {
|
||||
animation-direction: reverse
|
||||
}
|
||||
|
||||
@keyframes fade {
|
||||
0% {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scale-up {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(.2)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scale-down {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(1.8)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-top {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(-100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-bottom {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: translateX(0)
|
||||
}
|
||||
|
||||
10% {
|
||||
transform: translateX(-9px)
|
||||
}
|
||||
|
||||
20% {
|
||||
transform: translateX(8px)
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateX(-7px)
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: translateX(6px)
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateX(-5px)
|
||||
}
|
||||
|
||||
60% {
|
||||
transform: translateX(4px)
|
||||
}
|
||||
|
||||
70% {
|
||||
transform: translateX(-3px)
|
||||
}
|
||||
|
||||
80% {
|
||||
transform: translateX(2px)
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translateX(-1px)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-left {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateX(-100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slide-right {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateX(100%)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
<template>
|
||||
<view>
|
||||
<view class="cu-custom" :style="[{height:CustomBar + 'px'}]">
|
||||
<view class="cu-bar fixed" :style="style" :class="[bgImage!=''?'none-bg text-white bg-img':'',bgColor]">
|
||||
<view class="action" @tap="BackPage" v-if="isBack">
|
||||
<text class="cuIcon-back"></text>
|
||||
<slot name="backText"></slot>
|
||||
</view>
|
||||
<view class="content" :style="[{top:StatusBar + 'px'}]">
|
||||
<slot name="content"></slot>
|
||||
</view>
|
||||
<slot name="right"></slot>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
StatusBar: this.StatusBar,
|
||||
CustomBar: this.CustomBar
|
||||
};
|
||||
},
|
||||
name: 'cu-custom',
|
||||
computed: {
|
||||
style() {
|
||||
var StatusBar= this.StatusBar;
|
||||
var CustomBar= this.CustomBar;
|
||||
var bgImage = this.bgImage;
|
||||
var style = `height:${CustomBar}px;padding-top:${StatusBar}px;`;
|
||||
if (this.bgImage) {
|
||||
style = `${style}background-image:url(${bgImage});`;
|
||||
}
|
||||
return style
|
||||
}
|
||||
},
|
||||
props: {
|
||||
bgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
isBack: {
|
||||
type: [Boolean, String],
|
||||
default: false
|
||||
},
|
||||
bgImage: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
BackPage() {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,119 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
|
||||
<view class="mix-list-cell" :class="border" @click="eventClick" hover-class="cell-hover" :hover-stay-time="50">
|
||||
<text
|
||||
v-if="icon"
|
||||
class="cell-icon yticon"
|
||||
:style="[{
|
||||
color: iconColor,
|
||||
}]"
|
||||
:class="icon"
|
||||
></text>
|
||||
<text class="cell-tit clamp">{{title}}</text>
|
||||
<text v-if="tips" class="cell-tip">{{tips}}</text>
|
||||
<text class="cell-more yticon"
|
||||
:class="typeList[navigateType]"
|
||||
></text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* 简单封装了下, 应用范围比较狭窄,可以在此基础上进行扩展使用
|
||||
* 比如加入image, iconSize可控等
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
typeList: {
|
||||
left: 'icon-zuo',
|
||||
right: 'icon-you',
|
||||
up: 'icon-shang',
|
||||
down: 'icon-xia'
|
||||
},
|
||||
}
|
||||
},
|
||||
props: {
|
||||
icon: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '标题'
|
||||
},
|
||||
tips: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
navigateType: {
|
||||
type: String,
|
||||
default: 'right'
|
||||
},
|
||||
border: {
|
||||
type: String,
|
||||
default: 'b-b'
|
||||
},
|
||||
hoverClass: {
|
||||
type: String,
|
||||
default: 'cell-hover'
|
||||
},
|
||||
iconColor: {
|
||||
type: String,
|
||||
default: '#333'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
eventClick(){
|
||||
this.$emit('eventClick');
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='scss'>
|
||||
|
||||
.icon .mix-list-cell.b-b:after{
|
||||
left: 90upx;
|
||||
}
|
||||
.mix-list-cell{
|
||||
display:flex;
|
||||
align-items:baseline;
|
||||
padding: 20upx 20upx;
|
||||
line-height:60upx;
|
||||
position:relative;
|
||||
|
||||
&.cell-hover{
|
||||
background:#fafafa;
|
||||
}
|
||||
&.b-b:after{
|
||||
left: 30upx;
|
||||
}
|
||||
|
||||
.cell-icon{
|
||||
align-self:center;
|
||||
width:56upx;
|
||||
max-height:60upx;
|
||||
font-size:38upx;
|
||||
}
|
||||
.cell-more{
|
||||
align-self: center;
|
||||
font-size:30upx;
|
||||
color:$font-color-base;
|
||||
margin-left:$uni-spacing-row-sm;
|
||||
}
|
||||
.cell-tit{
|
||||
flex: 1;
|
||||
font-size: $font-base;
|
||||
color: $font-color-dark;
|
||||
margin-right:10upx;
|
||||
}
|
||||
.cell-tip{
|
||||
font-size: $font-sm+2upx;
|
||||
color: $font-color-light;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,66 @@
|
|||
<template>
|
||||
<view class="mix-load-more">
|
||||
<image
|
||||
class="mix-load-icon"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUJCRjNGOEQ1RDNBMTFFOUFERjY5MEU0MTg5MjY0NDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUJCRjNGOEU1RDNBMTFFOUFERjY5MEU0MTg5MjY0NDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QkJGM0Y4QjVEM0ExMUU5QURGNjkwRTQxODkyNjQ0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QkJGM0Y4QzVEM0ExMUU5QURGNjkwRTQxODkyNjQ0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pkf/QQsAAAHYSURBVHjavFfRcYJAEOVu8h87SFJBSAUJNGCsIKQCsQK1AkkHpAKwAaUE7YB0kFRg3prFcWAPTziyM+uJHPvuvV32TuVZ2na79TG8wWkc8Ui2g3/z+BkEwc4mnrIAXGCYMpiN0SISLGDZCRiArxhW8Huvm5XwGRaQSzd1C8usB6jHz2aINbdijIkp59KlpWD+bmTMTNtA13AK8IRAipy+82/rlucijt1kzDnNWgBjAJUXCpHkTeBjw5RJlfMT8GazKZVSd8JkKpDkGl2xgJgLs1FwiPVwkppkcAVKxs/MpIKrJD8CHw6HWJK3C2gNXMr79AhMHQlsb4UJsYNqlmKMCJMYRwa2ZV9UjiGxjjRk9oUbucN3uBGLMLWhB+8cAjdiUWo1Ph4FiZwBG2L52vsHg7Q/9WvK8d6w9zozqJrUrzXvnw0pXAJDbmoaAXz5dxksboBOOXiuzaW+nToGLzAU57uTBDDmhj+Yaaq6evLZVoMCS8mv5OZdZhCz2RZpH/4YhDGzNrFLwDxznXMlHH3mF/ou+b5vd+t72LM6Q1ufqy2YC69pUHTKsdBpJnjNvizjvHQuLgE8D8OQCmppeM/PrXAidcuftogPDiPaTmlB1ANYoavsV4ABAGz+xJ8bzHJJAAAAAElFTkSuQmCC"
|
||||
v-show="status === 1"
|
||||
>
|
||||
</image>
|
||||
<text class="mix-load-text">{{text[status]}}</text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "mix-load-more",
|
||||
props: {
|
||||
status: {
|
||||
//0加载前,1加载中,2没有更多了
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
text: {
|
||||
type: Array,
|
||||
default () {
|
||||
return [
|
||||
'上拉显示更多',
|
||||
'正在加载...',
|
||||
'没有更多数据了'
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.mix-load-more{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 90upx;
|
||||
padding-top: 10upx;
|
||||
}
|
||||
.mix-load-icon{
|
||||
display: block;
|
||||
width: 36upx;
|
||||
height: 36upx;
|
||||
margin-right: 12upx;
|
||||
animation: load 1.2s cubic-bezier(.37,1.08,.7,.74) infinite;
|
||||
}
|
||||
.mix-load-text{
|
||||
font-size: 28upx;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
@-webkit-keyframes load {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,315 @@
|
|||
<template>
|
||||
<view>
|
||||
<!-- 海报 -->
|
||||
<canvas canvas-id="wongPoster" :style="{width:cansWidth,height:cansHeight}" class="isCan"></canvas>
|
||||
<view class="bg" @click="closeCans"></view>
|
||||
<view class="fixedBox">
|
||||
<view class="boxLeft"><button class="flexBtn btnLeft" hover-class="btnHover" @click="saveCans">保存</button></view>
|
||||
<view class="boxRight"><button class="flexBtn btnRight" hover-class="btnHover" @click="closeCans">关闭</button></view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props:{
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 海报
|
||||
cansWidth:270, //海报宽度
|
||||
cansHeight:480 //海报高度
|
||||
// 海报
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.ctx = uni.createCanvasContext('wongPoster',this);
|
||||
//绘制海报底色为白色
|
||||
this.drawBaseBg('white');
|
||||
/*
|
||||
绘制图片
|
||||
调用方式:this.drawBg({
|
||||
url:'',路径
|
||||
sLeft:0~1 | 'center' 百分比离左边距离 1则为100vw,
|
||||
sTop:0~1 百分比离顶部距离,
|
||||
sWidth:0~1 百分比宽度,
|
||||
sHeight:0~1 百分比高度
|
||||
})
|
||||
*/
|
||||
this.drawBg({url:'/static/can_bg.png',sLeft:0,sTop:0,sWidth:1,sHeight:0.75})
|
||||
this.drawBg({url:'/static/scan.jpg',sLeft:.05,sTop:0.80,sWidth:.30,sHeight:0.15})
|
||||
/*
|
||||
绘制头像
|
||||
绘制头像需要添加域名白名单 downloadFile合法域名 https://wx.qlogo.cn
|
||||
调用方式:this.circleImg(img, x, y, r)
|
||||
img:图片路径
|
||||
x:0~1 百分比离左边距离,
|
||||
y:0~1 百分比离顶部距离
|
||||
*/
|
||||
this.circleImg('http://wx.qlogo.cn/mmopen/g1fhzkUAKGxa6OShKmbCB2nz2BvaGJzdjwGDduibvTLwmHChCiaFHxHI71tFIJyQfMHNxDibSJZ30TUgRKTEhEGonmRj3icNeEht/64',.35,.23, 12)
|
||||
/*
|
||||
绘制单行文本
|
||||
调用方式:this.drawText({
|
||||
text:'文本', String || Array
|
||||
sLeft:0~1 || 'center' 百分比离左边距离,
|
||||
sTop:0~1 百分比离顶部距离,
|
||||
fontSize:Number 文字大小,
|
||||
color:'' 颜色,
|
||||
bold:Boolean 粗体,
|
||||
lineHeight:Number //如果是数组则设置行高
|
||||
})
|
||||
*/
|
||||
this.drawText({text:'恭喜您获得免费好名字',sLeft:'center',sTop:0.1,fontSize:12,color:'#5A390F'})
|
||||
this.drawText({text:'王金富',sLeft:.48,sTop:0.265,fontSize:12,color:'#5A390F'})
|
||||
this.drawText({text:'王金富',sLeft:.67,sTop:0.53,fontSize:10,color:'#5A390F'})
|
||||
this.drawText({text:this.today,sLeft:.64,sTop:0.58,fontSize:10,color:'#5A390F'})
|
||||
this.drawText({text:'求财得财',sLeft:.1,sTop:0.65,fontSize:10,color:'#5A390F',bold:true})
|
||||
this.drawText({text:['XXXXXXXXXXXXXXXX','XXXXXXXXX','XXXXXXXX'],sLeft:.37,sTop:0.85,fontSize:10,color:'#5A390F',lineHeight:12})
|
||||
// 绘制多行文本
|
||||
this.drawPara({
|
||||
para:'姓名评分为:88,配合您的生辰八字属于求财得财,大富大贵;您可以保存图片分享给亲友。',//文本
|
||||
fontSize:10,//字体大小
|
||||
sLeft:.06,//百分比离左边距离
|
||||
sTop:.32,//百分比李作边距离
|
||||
titleHeight:16,//一行高度
|
||||
sMaxWidth:.84,//一行最大宽度
|
||||
redWord:['2020年6月6日','姓名评分为:88'],//关键字
|
||||
color:'#5A390F',//正常颜色
|
||||
redColor:'#DD524D',//高亮颜色
|
||||
bold:false //是否加粗
|
||||
})
|
||||
},
|
||||
computed:{
|
||||
today(){
|
||||
let year = new Date().getFullYear();
|
||||
let month =new Date().getMonth() + 1
|
||||
let date =new Date().getDate()
|
||||
let time = year + "年" + month + "月" + date +"日"
|
||||
return time
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
drawBaseBg(bgColor){
|
||||
this.ctx.rect(0, 0, this.cansWidth, this.cansHeight)
|
||||
this.ctx.setFillStyle(bgColor)
|
||||
this.ctx.fill()
|
||||
this.ctx.draw(true)
|
||||
},
|
||||
circleImg(img, x, y, r) {
|
||||
uni.getImageInfo({
|
||||
src:img
|
||||
}).then((image)=>{
|
||||
console.log(image[1].path)
|
||||
x= Math.ceil(this.cansWidth * x)
|
||||
y = Math.ceil(this.cansHeight * y)
|
||||
this.ctx.save();
|
||||
var d = 2 * r;
|
||||
var cx = x + r;
|
||||
var cy = y + r;
|
||||
this.ctx.arc(cx, cy, r, 0, 2 * Math.PI);
|
||||
this.ctx.clip();
|
||||
this.ctx.drawImage(image[1].path, x, y, d, d);
|
||||
this.ctx.restore();
|
||||
this.ctx.draw(true);
|
||||
})
|
||||
},
|
||||
closeCans() {
|
||||
this.$parent.posterShow = false
|
||||
},
|
||||
saveCans(){
|
||||
console.log('保存')
|
||||
uni.showLoading({
|
||||
title:'保存ing...',
|
||||
mask:true
|
||||
})
|
||||
uni.canvasToTempFilePath({
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: this.cansWidth*1.5,
|
||||
height: this.cansHeight * 1.5,
|
||||
destWidth: this.cansWidth * 3,
|
||||
destHeight: this.cansHeight * 3,
|
||||
canvasId:'wongPoster',
|
||||
success: function(res) {
|
||||
uni.hideLoading()
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: res.tempFilePath,
|
||||
success: function (res) {
|
||||
uni.showToast({
|
||||
title:'保存相册成功'
|
||||
})
|
||||
console.log('save success')
|
||||
},
|
||||
fail(res) {
|
||||
console.log(res)
|
||||
if(res.errMsg == "saveImageToPhotosAlbum:fail auth deny") {
|
||||
uni.showModal({
|
||||
title:'您需要授权相册权限',
|
||||
success(res) {
|
||||
if(res.confirm){
|
||||
uni.openSetting({
|
||||
success(res) {
|
||||
|
||||
},
|
||||
fail(res) {
|
||||
console.log(res)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
fail(res) {
|
||||
uni.hideLoading()
|
||||
}
|
||||
},this)
|
||||
},
|
||||
drawPara(item){
|
||||
var redIndexObj = {}
|
||||
if(item.redWord.length > 0){
|
||||
for(var i = 0; i < item.redWord.length ;i++){
|
||||
let startIndex = 0,index;
|
||||
while ((index = item.para.indexOf(item.redWord[i], startIndex)) > -1) {
|
||||
redIndexObj[index] = true;
|
||||
for(var j = 0;j<item.redWord[i].length; j++){
|
||||
redIndexObj[index+j] = true
|
||||
}
|
||||
startIndex = index + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.ctx.font =`normal normal ${item.fontSize}px sans-serif`;
|
||||
this.ctx.setFillStyle(item.color)
|
||||
var isLeft
|
||||
if(item.sLeft == 'center'){
|
||||
isLeft = this.cansWidth * (.5 - item.sMaxWidth /2) - item.fontSize
|
||||
} else {
|
||||
isLeft = item.sLeft * this.cansWidth
|
||||
}
|
||||
var maxWidth = Math.floor(this.cansWidth * item.sMaxWidth)
|
||||
var tempList = item.para.split('')
|
||||
var nowText = '',
|
||||
isCol = 0,
|
||||
textWidth = 0
|
||||
for(var i = 0 ; i <tempList.length;i++){
|
||||
if(i>0){
|
||||
nowText += tempList[i -1]
|
||||
} else {
|
||||
nowText += tempList[0]
|
||||
}
|
||||
textWidth = this.ctx.measureText(nowText).width
|
||||
if(textWidth > maxWidth){
|
||||
isCol++
|
||||
nowText = '占'
|
||||
textWidth = this.ctx.measureText(nowText).width
|
||||
}
|
||||
if(redIndexObj[i]){
|
||||
this.ctx.save()
|
||||
if(item.bold) this.ctx.font =`normal bold ${item.fontSize}px sans-serif`;
|
||||
this.ctx.setFillStyle(item.redColor)
|
||||
}
|
||||
this.ctx.fillText(tempList[i],isLeft+textWidth, item.sTop * this.cansHeight + item.titleHeight * isCol)
|
||||
this.ctx.restore()
|
||||
}
|
||||
this.ctx.draw(true)
|
||||
},
|
||||
drawBg(item){
|
||||
if(item.sLeft == 'center'){
|
||||
this.ctx.drawImage(item.url, this.cansWidth * (.5 - item.sWidth /2) , this.cansHeight * item.sTop, this.cansWidth * item.sWidth, this.cansHeight * item.sHeight);
|
||||
} else {
|
||||
this.ctx.drawImage(item.url, this.cansWidth * item.sLeft, this.cansHeight * item.sTop, this.cansWidth * item.sWidth, this.cansHeight * item.sHeight);
|
||||
}
|
||||
this.ctx.draw(true);
|
||||
},
|
||||
drawText(item){
|
||||
var isLeft
|
||||
if(item.sLeft == 'center'){
|
||||
isLeft = this.cansWidth * .5 - (item.fontSize*item.text.length) /2
|
||||
} else {
|
||||
isLeft = item.sLeft * this.cansWidth
|
||||
}
|
||||
this.ctx.save()
|
||||
if(item.bold) this.ctx.font =`normal bold ${item.fontSize}px sans-serif`;
|
||||
this.ctx.setFillStyle(item.color)
|
||||
this.ctx.setFontSize(item.fontSize)
|
||||
if(item.text instanceof Array){
|
||||
if(!item.lineHeight) item.lineHeight = item.fontSize + 2
|
||||
console.log('我是数组',item.text)
|
||||
for(var i = 0 ; i < item.text.length ; i++){
|
||||
this.ctx.fillText(item.text[i],isLeft, item.sTop * this.cansHeight + item.lineHeight * i)
|
||||
}
|
||||
} else{
|
||||
console.log('我是字符串',item.text)
|
||||
this.ctx.fillText(item.text,isLeft, item.sTop * this.cansHeight)
|
||||
}
|
||||
this.ctx.draw(true)
|
||||
this.ctx.restore()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bg{
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 998;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
.fixedBox{
|
||||
width: 100%;
|
||||
height: 100upx;
|
||||
position: fixed;
|
||||
bottom: 30upx;
|
||||
left: 0;
|
||||
display: flex;
|
||||
z-index: 1000;
|
||||
.boxLeft,.boxRight{
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
z-index: 1000;
|
||||
justify-content: center;
|
||||
.flexBtn{
|
||||
position: relative;
|
||||
z-index: 1000;
|
||||
width: 200upx;
|
||||
height: 60upx;
|
||||
text-align: center;
|
||||
line-height: 55upx;
|
||||
font-size: 24upx;
|
||||
border-bottom: 6upx #f58365 solid;
|
||||
border-radius: 32upx;
|
||||
color: white;
|
||||
background: linear-gradient(to left, #f58365, #ff188a);
|
||||
}
|
||||
}
|
||||
}
|
||||
.btnHover{
|
||||
height: 55upx !important;
|
||||
border-bottom: 0 #F6BE3C solid !important;
|
||||
transform: translateY(3px) translateZ(0px) !important;
|
||||
}
|
||||
.isCan{
|
||||
border: 6px solid white;
|
||||
border-radius: 10px;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
z-index: 999;
|
||||
width: 270px;
|
||||
height: 480px;
|
||||
right: 0;
|
||||
bottom: 130upx;
|
||||
margin:0 auto;
|
||||
background-size: 100%;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,8 @@
|
|||
const dev = {
|
||||
baseUrl: 'http://192.168.133.253:8080',
|
||||
|
||||
}
|
||||
|
||||
export function def() {
|
||||
return dev
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
const tabList = [{
|
||||
name: '男孩名',
|
||||
id: '1',
|
||||
}, {
|
||||
name: '女孩名',
|
||||
id: '2'
|
||||
}, {
|
||||
name: '唐诗名',
|
||||
id: '3'
|
||||
}, {
|
||||
name: '宋词名',
|
||||
id: '4'
|
||||
}, {
|
||||
name: '周易名',
|
||||
id: '5'
|
||||
}, {
|
||||
name: '公司名',
|
||||
id: '6'
|
||||
}];
|
||||
const newsList = [{
|
||||
id: 1,
|
||||
title: '2020鼠年宝宝起名大全',
|
||||
author: '泰山起名',
|
||||
images: [
|
||||
'https://www.yw11.com/uploads/00_yw11/baby/1(144).png',
|
||||
'https://www.yw11.com/uploads/00_yw11/baby/1(323).png',
|
||||
'https://www.yw11.com/uploads/00_yw11/baby/1(29).png',
|
||||
],
|
||||
time: '2小时前',
|
||||
type: 3,
|
||||
},
|
||||
|
||||
{
|
||||
id: 2,
|
||||
title: '取什么名字对宝宝成为学霸帮助大?',
|
||||
author: '爱考试',
|
||||
images: [
|
||||
'https://www.yw11.com/uploads/00_yw11/baby/1(125).png'
|
||||
],
|
||||
time: '30分钟前',
|
||||
type: 1,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: '女宝宝起名注意事项”',
|
||||
author: '新京报',
|
||||
images: [
|
||||
'https://www.yw11.com/uploads/00_yw11/girl/5(195).png',
|
||||
],
|
||||
time: '2小时前',
|
||||
type: 2,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
title: '2020女宝宝名字案例',
|
||||
author: '神说要唱歌',
|
||||
images: [
|
||||
'https://www.yw11.com/uploads/allimg/190215/49-1Z215141SG43.png',
|
||||
],
|
||||
videoSrc: 'https://dcloud-img.oss-cn-hangzhou.aliyuncs.com/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126.mp4',
|
||||
time: '2019-04-10 11:43',
|
||||
type: 2,
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
title: '2019改名字最新规定,看过的都说好!”',
|
||||
author: '全球加盟网',
|
||||
images: ['https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2892004605,2174659864&fm=26&gp=0.jpg'],
|
||||
videoSrc: 'https://dcloud-img.oss-cn-hangzhou.aliyuncs.com/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126.mp4',
|
||||
time: '5分钟前',
|
||||
type: 3,
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
title: '诗词典故为宝宝取儒雅名的意义!',
|
||||
author: '诗词网',
|
||||
images: ['https://www.yw11.com/uploads/00_yw11/girl/5_134.png'],
|
||||
time: '5分钟前',
|
||||
type: 3,
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
title: '好听时髦名字如何定位宝宝',
|
||||
author: '时尚网',
|
||||
images: [
|
||||
'https://www.yw11.com/uploads/00_yw11/boy/2_62.png',
|
||||
'https://www.yw11.com/uploads/00_yw11/boy/2_158.png',
|
||||
'https://www.yw11.com/uploads/00_yw11/boy/2_63.png'
|
||||
],
|
||||
time: '2019-04-14 :10:58',
|
||||
type: 3,
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
title: '利用软件起名靠谱吗!',
|
||||
author: '程序员大哥',
|
||||
images: [
|
||||
'http://p3-tt.bytecdn.cn/list/pgc-image/15394993934784aeea82ef5',
|
||||
'http://p1-tt.bytecdn.cn/list/pgc-image/153949939338547b7a69cf6',
|
||||
'http://p1-tt.bytecdn.cn/list/509a000211b25f210c77',
|
||||
],
|
||||
time: '2019-04-14 :10:58',
|
||||
type: 3,
|
||||
},
|
||||
]
|
||||
const evaList = [{
|
||||
src: 'http://gss0.baidu.com/-fo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/77c6a7efce1b9d1663174705fbdeb48f8d546486.jpg',
|
||||
nickname: 'Ranth Allngal',
|
||||
time: '09-20 12:54',
|
||||
zan: '54',
|
||||
content: '评论不要太苛刻,不管什么产品都会有瑕疵,客服也说了可以退货并且商家承担运费,我觉得至少态度就可以给五星。'
|
||||
},
|
||||
{
|
||||
src: 'http://img0.imgtn.bdimg.com/it/u=2396068252,4277062836&fm=26&gp=0.jpg',
|
||||
nickname: 'Ranth Allngal',
|
||||
time: '09-20 12:54',
|
||||
zan: '54',
|
||||
content: '楼上说的好有道理。'
|
||||
}
|
||||
]
|
||||
|
||||
export default {
|
||||
tabList,
|
||||
newsList,
|
||||
evaList
|
||||
}
|
|
@ -0,0 +1,115 @@
|
|||
import Vue from 'vue'
|
||||
import store from './store'
|
||||
import App from './App'
|
||||
import * as config from './config'
|
||||
|
||||
const defConfig = config.def
|
||||
|
||||
const msg = (title, duration = 1500, mask = false, icon = 'none') => {
|
||||
//统一提示方便全局修改
|
||||
if (Boolean(title) === false) {
|
||||
return;
|
||||
}
|
||||
uni.showToast({
|
||||
title,
|
||||
duration,
|
||||
mask,
|
||||
icon
|
||||
});
|
||||
}
|
||||
|
||||
const request = (_gp, _mt, data = {}, failCallback) => {
|
||||
//异步请求数据
|
||||
return new Promise(resolve => {
|
||||
if (!userInfo || !userInfo.accessToken) {
|
||||
userInfo = uni.getStorageSync('userInfo')
|
||||
}
|
||||
let accessToken = userInfo ? userInfo.accessToken : ''
|
||||
let baseUrl = config.def().baseUrl
|
||||
uni.request({
|
||||
url: baseUrl + '/m.api',
|
||||
data: {
|
||||
...data,
|
||||
_gp,
|
||||
_mt
|
||||
},
|
||||
method: 'POST',
|
||||
header: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
'ACCESSTOKEN': accessToken
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.errno === 200) {
|
||||
resolve(res.data);
|
||||
} else if (res.data.errno === 10001) {
|
||||
if (failCallback) {
|
||||
failCallback(res.data)
|
||||
}
|
||||
if (!loginLock) {
|
||||
loginLock = true
|
||||
uni.showModal({
|
||||
title: '登录提示',
|
||||
content: '您尚未登录,是否立即登录?',
|
||||
showCancel: true,
|
||||
confirmText: '登录',
|
||||
success: (e) => {
|
||||
if (e.confirm) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/public/login'
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: () => {},
|
||||
complete: () => {
|
||||
loginLock = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
} else {
|
||||
if (failCallback) {
|
||||
failCallback(res.data)
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.data.errmsg,
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
let userInfo = undefined
|
||||
|
||||
const logout = () => {
|
||||
userInfo = undefined
|
||||
uni.removeStorage({
|
||||
key: 'userInfo'
|
||||
})
|
||||
}
|
||||
|
||||
const setUserInfo = (i) => {
|
||||
userInfo = i
|
||||
}
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.prototype.$store = store;
|
||||
Vue.prototype.$api = {
|
||||
request,
|
||||
setUserInfo,
|
||||
logout,
|
||||
msg,
|
||||
defConfig
|
||||
};
|
||||
|
||||
|
||||
App.mpType = 'app'
|
||||
|
||||
const app = new Vue({
|
||||
...App
|
||||
})
|
||||
app.$mount()
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name" : "newName",
|
||||
"appid" : "__UNI__EB8F0F8",
|
||||
"name" : "wx-login",
|
||||
"appid" : "__UNI__3EF5909",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
|
@ -8,8 +8,7 @@
|
|||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
"usingComponents" : true,
|
||||
"nvueStyleCompiler" : "uni-app",
|
||||
"compilerVersion" : 3,
|
||||
"nvueCompiler" : "uni-app",
|
||||
"splashscreen" : {
|
||||
"alwaysShowBeforeRender" : true,
|
||||
"waiting" : true,
|
||||
|
@ -17,40 +16,57 @@
|
|||
"delay" : 0
|
||||
},
|
||||
/* 模块配置 */
|
||||
"modules" : {},
|
||||
"modules" : {
|
||||
"OAuth" : {}
|
||||
},
|
||||
/* 应用发布信息 */
|
||||
"distribute" : {
|
||||
/* android打包配置 */
|
||||
"android" : {
|
||||
"permissions" : [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
/* ios打包配置 */
|
||||
"ios" : {},
|
||||
/* SDK配置 */
|
||||
"sdkConfigs" : {}
|
||||
"sdkConfigs" : {
|
||||
"oauth" : {
|
||||
"weixin" : {
|
||||
"appid" : "wx62e0151eaf62eff7",
|
||||
"appsecret" : "308e5884a703a14ef00401bf2e5d740e",
|
||||
"UniversalLinks" : ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
/* 快应用特有相关 */
|
||||
"quickapp" : {},
|
||||
/* 小程序特有相关 */
|
||||
"mp-weixin" : {
|
||||
"appid" : "",
|
||||
"appid" : "wx62e0151eaf62eff7",
|
||||
"setting" : {
|
||||
"urlCheck" : false,
|
||||
"es6" : false
|
||||
|
@ -65,8 +81,5 @@
|
|||
},
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"uniStatistics" : {
|
||||
"enable" : false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
{
|
||||
"path": "pages/index/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "起名"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/name/name",
|
||||
"style": {
|
||||
"navigationBarTitleText": "鉴名"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/me/me",
|
||||
"style": {
|
||||
"navigationBarTitleText": "我的"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path":"pages/details/details",
|
||||
"style":{
|
||||
"navigationBarTitleText":"详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path":"pages/login/login",
|
||||
"style":{
|
||||
"navigationBarTitleText":"登录"
|
||||
}
|
||||
}
|
||||
|
||||
],
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "CreateName",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
},
|
||||
"tabBar": {
|
||||
"color":"#C0C4CC",
|
||||
"selectedColor":"#2C2C2C",
|
||||
"borderStyle":"black",
|
||||
"backgroundColor":"#ffffff",
|
||||
"list": [
|
||||
{
|
||||
"pagePath":"pages/index/index",
|
||||
"iconPath":"static/create.png",
|
||||
"selectedIconPath":"static/create-current.png",
|
||||
"text":"起名"
|
||||
},
|
||||
{
|
||||
"pagePath":"pages/name/name",
|
||||
"iconPath":"static/name.png",
|
||||
"selectedIconPath":"static/name-current.png",
|
||||
"text":"鉴名"
|
||||
},
|
||||
{
|
||||
"pagePath":"pages/me/me",
|
||||
"iconPath":"static/wode.png",
|
||||
"selectedIconPath":"static/wode-current.png",
|
||||
"text":"我的"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,172 @@
|
|||
<template>
|
||||
<view>
|
||||
<scroll-view :scroll-y="modalName==null" class="page" :class="modalName!=null?'show':''" >
|
||||
<view class="cu-bar bg-white solid-bottom margin-top">
|
||||
<view class="action">
|
||||
<text class="cuIcon-title text-orange "></text> 列表左滑
|
||||
</view>
|
||||
</view>
|
||||
<view class="cu-list menu-avatar">
|
||||
<view class="cu-item" :class="modalName=='move-box-'+ index?'move-cur':''" v-for="(item,index) in 4" :key="index"
|
||||
@touchstart="ListTouchStart" @touchmove="ListTouchMove" @touchend="ListTouchEnd" :data-target="'move-box-' + index">
|
||||
<view class="cu-avatar round lg" :style="[{backgroundImage:'url(https://ossweb-img.qq.com/images/lol/web201310/skin/big2100'+ (index+2) +'.jpg)'}]"></view>
|
||||
<view class="content">
|
||||
<view class="text-grey">文晓港</view>
|
||||
<view class="text-gray text-sm">
|
||||
<text class="cuIcon-infofill text-red margin-right-xs"></text> 消息未送达</view>
|
||||
</view>
|
||||
<view class="action">
|
||||
<view class="text-grey text-xs">22:20</view>
|
||||
<view class="cu-tag round bg-grey sm">5</view>
|
||||
</view>
|
||||
<view class="move">
|
||||
<view class="bg-grey">置顶</view>
|
||||
<view class="bg-red">删除</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
cuIconList: [{
|
||||
cuIcon: 'cardboardfill',
|
||||
color: 'red',
|
||||
badge: 120,
|
||||
name: 'VR'
|
||||
}, {
|
||||
cuIcon: 'recordfill',
|
||||
color: 'orange',
|
||||
badge: 1,
|
||||
name: '录像'
|
||||
}, {
|
||||
cuIcon: 'picfill',
|
||||
color: 'yellow',
|
||||
badge: 0,
|
||||
name: '图像'
|
||||
}, {
|
||||
cuIcon: 'noticefill',
|
||||
color: 'olive',
|
||||
badge: 22,
|
||||
name: '通知'
|
||||
}, {
|
||||
cuIcon: 'upstagefill',
|
||||
color: 'cyan',
|
||||
badge: 0,
|
||||
name: '排行榜'
|
||||
}, {
|
||||
cuIcon: 'clothesfill',
|
||||
color: 'blue',
|
||||
badge: 0,
|
||||
name: '皮肤'
|
||||
}, {
|
||||
cuIcon: 'discoverfill',
|
||||
color: 'purple',
|
||||
badge: 0,
|
||||
name: '发现'
|
||||
}, {
|
||||
cuIcon: 'questionfill',
|
||||
color: 'mauve',
|
||||
badge: 0,
|
||||
name: '帮助'
|
||||
}, {
|
||||
cuIcon: 'commandfill',
|
||||
color: 'purple',
|
||||
badge: 0,
|
||||
name: '问答'
|
||||
}, {
|
||||
cuIcon: 'brandfill',
|
||||
color: 'mauve',
|
||||
badge: 0,
|
||||
name: '版权'
|
||||
}],
|
||||
modalName: null,
|
||||
gridCol: 3,
|
||||
gridBorder: false,
|
||||
menuBorder: false,
|
||||
menuArrow: false,
|
||||
menuCard: false,
|
||||
skin: false,
|
||||
listTouchStart: 0,
|
||||
listTouchDirection: null,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
showModal(e) {
|
||||
this.modalName = e.currentTarget.dataset.target
|
||||
},
|
||||
hideModal(e) {
|
||||
this.modalName = null
|
||||
},
|
||||
Gridchange(e) {
|
||||
this.gridCol = e.detail.value
|
||||
},
|
||||
Gridswitch(e) {
|
||||
this.gridBorder = e.detail.value
|
||||
},
|
||||
MenuBorder(e) {
|
||||
this.menuBorder = e.detail.value
|
||||
},
|
||||
MenuArrow(e) {
|
||||
this.menuArrow = e.detail.value
|
||||
},
|
||||
MenuCard(e) {
|
||||
this.menuCard = e.detail.value
|
||||
},
|
||||
SwitchSex(e) {
|
||||
this.skin = e.detail.value
|
||||
},
|
||||
|
||||
// ListTouch触摸开始
|
||||
ListTouchStart(e) {
|
||||
this.listTouchStart = e.touches[0].pageX
|
||||
},
|
||||
|
||||
// ListTouch计算方向
|
||||
ListTouchMove(e) {
|
||||
this.listTouchDirection = e.touches[0].pageX - this.listTouchStart > 0 ? 'right' : 'left'
|
||||
},
|
||||
|
||||
// ListTouch计算滚动
|
||||
ListTouchEnd(e) {
|
||||
if (this.listTouchDirection == 'left') {
|
||||
this.modalName = e.currentTarget.dataset.target
|
||||
} else {
|
||||
this.modalName = null
|
||||
}
|
||||
this.listTouchDirection = null
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.page {
|
||||
height: 100Vh;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
.page.show {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.switch-sex::after {
|
||||
content: "\e716";
|
||||
}
|
||||
|
||||
.switch-sex::before {
|
||||
content: "\e7a9";
|
||||
}
|
||||
|
||||
.switch-music::after {
|
||||
content: "\e66a";
|
||||
}
|
||||
|
||||
.switch-music::before {
|
||||
content: "\e6db";
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,97 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<form @submit="formSubmit">
|
||||
<!-- 宝宝姓氏 -->
|
||||
<view class="cu-form-group">
|
||||
<view class="title">宝宝姓氏</view>
|
||||
<input name="input" placeholder="请输入姓氏" maxlength="2" />
|
||||
</view>
|
||||
<!-- 宝宝性别 -->
|
||||
<view class="cu-form-group">
|
||||
<view class="title">宝宝性别</view>
|
||||
<radio-group name="radio1">
|
||||
<label>
|
||||
<radio class="black radio" :class="radio == 'A' ? 'checked' : ''" :checked="radio == 'A' ? true : false" value="A" />
|
||||
<text>男孩</text>
|
||||
</label>
|
||||
<label>
|
||||
<radio class="black radio" :class="radio == 'B' ? 'checked' : ''" :checked="radio == 'B' ? true : false" value="B" />
|
||||
<text>女孩</text>
|
||||
</label>
|
||||
</radio-group>
|
||||
</view>
|
||||
|
||||
<!-- 名字字数 -->
|
||||
<view class="cu-form-group">
|
||||
<view class="title">名字字数</view>
|
||||
<radio-group name="radio2">
|
||||
<label>
|
||||
<radio class="black radio" :class="radio == 'C' ? 'checked' : ''" :checked="radio == 'C' ? true : false" value="C" />
|
||||
<text>单字名</text>
|
||||
</label>
|
||||
<label>
|
||||
<radio class="black radio" :class="radio == 'D' ? 'checked' : ''" :checked="radio == 'D' ? true : false" value="D" />
|
||||
<text>多字名</text>
|
||||
</label>
|
||||
</radio-group>
|
||||
</view>
|
||||
<!-- 日期选择 -->
|
||||
<view class="cu-form-group">
|
||||
<view class="title">出生日期</view>
|
||||
<picker name="datePicker" mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
|
||||
<view class="picker">{{date}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- 时辰选择 -->
|
||||
<view class="cu-form-group">
|
||||
<view class="title">出生时辰</view>
|
||||
<picker name="timePicker" mode="time" :value="time" start="09:01" end="21:01" @change="bindTimeChange">
|
||||
<view class="picker">{{time}}</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="margin"><button class="w-btn big radius bg-black margin-tb white-color" form-type="submit" >免费起名</button></view>
|
||||
</form>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
isBorn: true,
|
||||
date: '2020-2-2',
|
||||
posterShow: false,
|
||||
time: '12:01',
|
||||
radio: 'A'
|
||||
};
|
||||
},
|
||||
onLoad() {},
|
||||
methods: {
|
||||
bindDateChange: function(e) {
|
||||
this.date = e.target.value;
|
||||
},
|
||||
bindTimeChange: function(e) {
|
||||
this.time = e.target.value;
|
||||
},
|
||||
formSubmit: function (e) {
|
||||
console.log('form发生了submit事件,携带数据为:' + JSON.stringify(e.target.value))
|
||||
var formData = e.target.value;
|
||||
uni.showToast({
|
||||
title: '提交成功',
|
||||
icon: 'success',
|
||||
duration: 1000
|
||||
})
|
||||
setTimeout(() => {
|
||||
uni.navigateTo({
|
||||
url:'../details/details'
|
||||
})
|
||||
}, 600);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style></style>
|
|
@ -0,0 +1,102 @@
|
|||
<template>
|
||||
<view class="container">
|
||||
<view class="left-top-sign">LOGIN</view>
|
||||
<view class="welcome">欢迎回来!</view>
|
||||
<button class="confirm-btn" open-type="getUserInfo" @getuserinfo="wxLogin" :disabled="logining">微信授权登录</button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapMutations } from 'vuex';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
logining: false
|
||||
};
|
||||
},
|
||||
onLoad() {},
|
||||
methods: {
|
||||
wxLogin(e) {
|
||||
const that = this;
|
||||
that.logining = true;
|
||||
let userInfo = e.detail.userInfo;
|
||||
uni.login({
|
||||
provider:"weixin",
|
||||
success:(login_res => {
|
||||
let code = login_res.code;
|
||||
uni.getUserInfo({
|
||||
success(info_res) {
|
||||
console.log(info_res)
|
||||
uni.request({
|
||||
url:'http://localhost:8080/wxlogin',
|
||||
method:"POST",
|
||||
header: {
|
||||
'content-type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
data:{
|
||||
code : code,
|
||||
rawData : info_res.rawData
|
||||
},
|
||||
success(res) {
|
||||
if(res.data.status == 200){
|
||||
that.$store.commit('login',userInfo);
|
||||
// uni.setStorageSync("userInfo",userInfo);
|
||||
// uni.setStorageSync("skey", res.data.data);
|
||||
}else{
|
||||
console.log('服务器异常')
|
||||
}
|
||||
},
|
||||
fail(error) {
|
||||
console.log(error)
|
||||
}
|
||||
})
|
||||
uni.hideLoading()
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.container {
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.left-top-sign {
|
||||
font-size: 120upx;
|
||||
color: $page-color-base;
|
||||
position: relative;
|
||||
left: -10upx;
|
||||
margin-top: 100upx;
|
||||
}
|
||||
.welcome {
|
||||
position: relative;
|
||||
left: 50upx;
|
||||
top: -90upx;
|
||||
font-size: 46upx;
|
||||
color: #555;
|
||||
text-shadow: 1px 0px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.confirm-btn {
|
||||
width: 630upx;
|
||||
height: 76upx;
|
||||
line-height: 76upx;
|
||||
border-radius: 50px;
|
||||
margin-top: 70upx;
|
||||
background: $uni-color-primary;
|
||||
color: #fff;
|
||||
font-size: $font-lg;
|
||||
&:after {
|
||||
border-radius: 100px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,76 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<!-- 登录头像 -->
|
||||
<image class="logo" :src="userInfo.avatarUrl || '/static/missing-face.png'"></image>
|
||||
<view class="text-area">
|
||||
<text class="title" @click="toLogin">{{ hasLogin ? userInfo.nickName || '未设置昵称' : '立即登录' }}</text>
|
||||
</view>
|
||||
<!-- list列表 -->
|
||||
<view class="section">
|
||||
<list-cell icon="icon-chuangzuo" iconColor="#8a8a8a" title="起名记录"></list-cell>
|
||||
<list-cell icon="icon-dingdan" iconColor="#8a8a8a" title="测名记录"></list-cell>
|
||||
<list-cell icon="icon-dianhua" iconColor="#8a8a8a" title="联系客服"></list-cell>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex';
|
||||
import listCell from '../../components/list-cell.vue';
|
||||
export default {
|
||||
components:{
|
||||
listCell
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
onLoad() {},
|
||||
computed: {
|
||||
...mapState(['hasLogin', 'userInfo'])
|
||||
},
|
||||
|
||||
methods: {
|
||||
toLogin() {
|
||||
if (!this.hasLogin) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/login/login'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 200rpx;
|
||||
width: 200rpx;
|
||||
margin-top: 200rpx;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 50rpx;
|
||||
}
|
||||
|
||||
.text-area {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 36rpx;
|
||||
color: #8f8f94;
|
||||
}
|
||||
.section {
|
||||
padding: 30upx 0 0;
|
||||
margin-top: 40upx;
|
||||
background: #fff;
|
||||
border-radius:10upx;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,448 @@
|
|||
<template>
|
||||
<view>
|
||||
<!-- 测名 -->
|
||||
<view>
|
||||
<view class="search-bar">
|
||||
<text class="icon-search sz-sm"></text>
|
||||
<input type="text" placeholder="给你的名字做个评分" confirm-type="search" @input="searchIcon" />
|
||||
<text class="test-font">测一测</text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- 顶部选项卡 -->
|
||||
<scroll-view id="nav-bar" class="nav-bar" scroll-x scroll-with-animation :scroll-left="scrollLeft">
|
||||
<view
|
||||
v-for="(item,index) in tabBars" :key="item.id"
|
||||
class="nav-item"
|
||||
:class="{current: index === tabCurrentIndex}"
|
||||
:id="'tab'+index"
|
||||
@click="changeTab(index)"
|
||||
>{{item.name}}</view>
|
||||
</scroll-view>
|
||||
|
||||
<!-- 下拉刷新组件 -->
|
||||
<down-refresh ref="mixPulldownRefresh" class="panel-content" :top="90" @refresh="onPulldownReresh" @setEnableScroll="setEnableScroll">
|
||||
<!-- 内容部分 -->
|
||||
<swiper
|
||||
id="swiper"
|
||||
class="swiper-box"
|
||||
:duration="300"
|
||||
:current="tabCurrentIndex"
|
||||
@change="changeTab"
|
||||
>
|
||||
<swiper-item v-for="tabItem in tabBars" :key="tabItem.id">
|
||||
<scroll-view
|
||||
class="panel-scroll-box"
|
||||
:scroll-y="enableScroll"
|
||||
@scrolltolower="loadMore"
|
||||
>
|
||||
<!-- 文章列表 -->
|
||||
<view v-for="(item, index) in tabItem.newsList" :key="index" class="news-item" @click="navToDetails(item)">
|
||||
<text :class="['title', 'title'+item.type]">{{item.title}}</text>
|
||||
<view v-if="item.images.length > 0" :class="['img-list', 'img-list'+item.type, item.images.length === 1 && item.type===3 ? 'img-list-single': '']">
|
||||
<view
|
||||
v-for="(imgItem, imgIndex) in item.images" :key="imgIndex"
|
||||
:class="['img-wrapper', 'img-wrapper'+item.type, item.images.length === 1 && item.type===3 ? 'img-wrapper-single': '']"
|
||||
>
|
||||
<image class="img" :src="imgItem"></image>
|
||||
<view class="video-tip" v-if="item.videoSrc">
|
||||
<image class="video-tip-icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAEC0lEQVRoQ+2ajVEVMRDHdzuwA6ACpQKxArECtQKxAqECoQKhAqECoQKxAqEDrWCdn7Nx8vJy+bp3T4YhM2+O8S7J/rO7//2IKo9k6CPBIU9Acpo0s10ReSkiPA8mtH0tIncicqOqPDcyZmvEhX8rIu8cQI9gtyJyKSIXc0ENA3EAnxxAj/BT356LyEdV/TWyWDcQM3smIgA4mtjwXkQ4aX4Mngj3QkSYy5PfTmb+laoeLg7EzBDga8aEEB4TOVfVAKAoj2sUc+QXQC0PxMzY8Esi3W8ROVbV05FTDHPMDC1AEBzEcqY1AeLMQQxtXANuZvjMa/cb/i6Oqo9kQKCFI1WtLl7bfOq9mUHd3/w9ND1F5f+WKAJxn/gebQiIg1Y/mAEEUsDX8J0zVZ0iljoQZydAYLuMrYCIwXOQrYc2qREzw4E/RAu/X9KcRrUX5mWBODX+jBY/UdXjuZuNznd5PnscepNjtikgODJpRzCp3VFaHBU+MTEOkSDMIJ0hFKyMNSAZbZA2NMUJn7ujqjebABDWyDDnXpqb5YDEvnGvqsHZi7I5CMgBxiHDxRx5bmSYGZlyyADWmCwHBN8IwjdRH5Im3B+En5UIJuYFBeMnjFtV3Y/frwDJmNV+K/1NAGEvIv+pqp7MUU1GthXzSoHE+VSzWRU0EsuOaUDhw+aWmNdKOEiBxOzQlYkWNJIqAiAI0V0dmhkZNvkXYyUkpEDYhFJ17cOaWXQACUtxaPhgc9JpZvFBr+Rg/xNI8B+0w0lXR0LDzUCIoE0bNPpISdC1uJD7uJQVlzTyEIFQgFGhMpo10pVfDfgIwlAiU9s0af4h+gglARkE8WURZ98G/V65Fhal3zgg3qnqXpVK/IMG0/rhAOYExDh9KgZEcqy4DtlEirKpTgutqLjsnk5RnEaLWeaUhiY0srFOS1KxrqVPtTS+2by8xsdsnkONNN5G0pDCQcVmtcaoLYVVV63e0zDo8L+0OVgvrNy84lIXemRiM022CtjynWsabVCwMdpKXQeSOlZXcGwRsPWbJAgyLZvOPOh2UKZWn6xYS0Dibl/IVF+1VoytJ15wbqyCtmkwKdIZGnZZE+9tmbLI4mC8VRuDAG8xpo00sQFDi2iRJrabU2jGBYVVmbMKxJ0/dzfSXeGVzM3ZiRZt2tGsgmDdJiAFMGiHNPxijk+YGV1NsuHgD82aCB82A4lomdohvf8jrQm3s61XbzgzAMJtVXwWOPZhD7F0AXEwnBrqjzv1sRCACnfp/HvIdsNlTbiDn+pgDuVn3UCCxN4wA1Bods+xrr8R26/yuuuULh8p8D0nSzsTE8ldOZcAhttgKsUhAEM+Ujty1xIm1PJfOK7nCh/LM2xaNVDbfv8EZNsnXtvvDyrmF1FIBKIwAAAAAElFTkSuQmCC"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 空图片占位 -->
|
||||
<view v-else class="img-empty"></view>
|
||||
<view :class="['bot', 'bot'+item.type]">
|
||||
<text class="author">{{item.author}}</text>
|
||||
<text class="time">{{item.time}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 上滑加载更多组件 -->
|
||||
<up-load :status="tabItem.loadMoreStatus"></up-load>
|
||||
</scroll-view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</down-refresh>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import json from '@/json'
|
||||
import downRefresh from '@/components/down-refresh.vue';
|
||||
import upLoad from '@/components/up-load.vue';
|
||||
let windowWidth = 0, scrollTimer = false, tabBar;
|
||||
export default {
|
||||
components: {
|
||||
downRefresh,
|
||||
upLoad,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tabCurrentIndex: 0, //当前选项卡索引
|
||||
scrollLeft: 0, //顶部选项卡左滑距离
|
||||
enableScroll: true,
|
||||
tabBars: [],
|
||||
}
|
||||
},
|
||||
|
||||
async onLoad() {
|
||||
// 获取屏幕宽度
|
||||
windowWidth = uni.getSystemInfoSync().windowWidth;
|
||||
this.loadTabbars();
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 数据处理方法在vue和nvue中通用,可以直接用mixin混合
|
||||
* 这里直接写的
|
||||
* mixin使用方法看index.nuve
|
||||
*/
|
||||
//获取分类
|
||||
loadTabbars(){
|
||||
let tabList = json.tabList;
|
||||
tabList.forEach(item=>{
|
||||
item.newsList = [];
|
||||
item.loadMoreStatus = 0; //加载更多 0加载前,1加载中,2没有更多了
|
||||
item.refreshing = 0;
|
||||
})
|
||||
this.tabBars = tabList;
|
||||
this.loadNewsList('add');
|
||||
},
|
||||
//新闻列表
|
||||
loadNewsList(type){
|
||||
let tabItem = this.tabBars[this.tabCurrentIndex];
|
||||
|
||||
//type add 加载更多 refresh下拉刷新
|
||||
if(type === 'add'){
|
||||
if(tabItem.loadMoreStatus === 2){
|
||||
return;
|
||||
}
|
||||
tabItem.loadMoreStatus = 1;
|
||||
}
|
||||
// #ifdef APP-PLUS
|
||||
else if(type === 'refresh'){
|
||||
tabItem.refreshing = true;
|
||||
}
|
||||
// #endif
|
||||
|
||||
//setTimeout模拟异步请求数据
|
||||
setTimeout(()=>{
|
||||
let list = json.newsList;
|
||||
list.sort((a,b)=>{
|
||||
return Math.random() > .5 ? -1 : 1; //静态数据打乱顺序
|
||||
})
|
||||
if(type === 'refresh'){
|
||||
tabItem.newsList = []; //刷新前清空数组
|
||||
}
|
||||
list.forEach(item=>{
|
||||
item.id = parseInt(Math.random() * 10000);
|
||||
tabItem.newsList.push(item);
|
||||
})
|
||||
//下拉刷新 关闭刷新动画
|
||||
if(type === 'refresh'){
|
||||
this.$refs.mixPulldownRefresh && this.$refs.mixPulldownRefresh.endPulldownRefresh();
|
||||
// #ifdef APP-PLUS
|
||||
tabItem.refreshing = false;
|
||||
// #endif
|
||||
tabItem.loadMoreStatus = 0;
|
||||
}
|
||||
//上滑加载 处理状态
|
||||
if(type === 'add'){
|
||||
tabItem.loadMoreStatus = tabItem.newsList.length > 40 ? 2: 0;
|
||||
}
|
||||
}, 600)
|
||||
},
|
||||
//新闻详情
|
||||
navToDetails(item){
|
||||
let data = {
|
||||
id: item.id,
|
||||
title: item.title,
|
||||
author: item.author,
|
||||
time: item.time
|
||||
}
|
||||
let url = item.videoSrc ? 'videoDetails' : 'details';
|
||||
|
||||
uni.navigateTo({
|
||||
url: `/pages/details/${url}?data=${JSON.stringify(data)}`
|
||||
})
|
||||
},
|
||||
|
||||
//下拉刷新
|
||||
onPulldownReresh(){
|
||||
this.loadNewsList('refresh');
|
||||
},
|
||||
//上滑加载
|
||||
loadMore(){
|
||||
this.loadNewsList('add');
|
||||
},
|
||||
//设置scroll-view是否允许滚动,在小程序里下拉刷新时避免列表可以滑动
|
||||
setEnableScroll(enable){
|
||||
if(this.enableScroll !== enable){
|
||||
this.enableScroll = enable;
|
||||
}
|
||||
},
|
||||
|
||||
//tab切换
|
||||
async changeTab(e){
|
||||
|
||||
if(scrollTimer){
|
||||
//多次切换只执行最后一次
|
||||
clearTimeout(scrollTimer);
|
||||
scrollTimer = false;
|
||||
}
|
||||
let index = e;
|
||||
//e=number为点击切换,e=object为swiper滑动切换
|
||||
if(typeof e === 'object'){
|
||||
index = e.detail.current
|
||||
}
|
||||
if(typeof tabBar !== 'object'){
|
||||
tabBar = await this.getElSize("nav-bar")
|
||||
}
|
||||
//计算宽度相关
|
||||
let tabBarScrollLeft = tabBar.scrollLeft;
|
||||
let width = 0;
|
||||
let nowWidth = 0;
|
||||
//获取可滑动总宽度
|
||||
for (let i = 0; i <= index; i++) {
|
||||
let result = await this.getElSize('tab' + i);
|
||||
width += result.width;
|
||||
if(i === index){
|
||||
nowWidth = result.width;
|
||||
}
|
||||
}
|
||||
if(typeof e === 'number'){
|
||||
//点击切换时先切换再滚动tabbar,避免同时切换视觉错位
|
||||
this.tabCurrentIndex = index;
|
||||
}
|
||||
//延迟300ms,等待swiper动画结束再修改tabbar
|
||||
scrollTimer = setTimeout(()=>{
|
||||
if (width - nowWidth/2 > windowWidth / 2) {
|
||||
//如果当前项越过中心点,将其放在屏幕中心
|
||||
this.scrollLeft = width - nowWidth/2 - windowWidth / 2;
|
||||
}else{
|
||||
this.scrollLeft = 0;
|
||||
}
|
||||
if(typeof e === 'object'){
|
||||
this.tabCurrentIndex = index;
|
||||
}
|
||||
this.tabCurrentIndex = index;
|
||||
|
||||
|
||||
//第一次切换tab,动画结束后需要加载数据
|
||||
let tabItem = this.tabBars[this.tabCurrentIndex];
|
||||
if(this.tabCurrentIndex !== 0 && tabItem.loaded !== true){
|
||||
this.loadNewsList('add');
|
||||
tabItem.loaded = true;
|
||||
}
|
||||
}, 300)
|
||||
|
||||
},
|
||||
//获得元素的size
|
||||
getElSize(id) {
|
||||
return new Promise((res, rej) => {
|
||||
let el = uni.createSelectorQuery().select('#' + id);
|
||||
el.fields({
|
||||
size: true,
|
||||
scrollOffset: true,
|
||||
rect: true
|
||||
}, (data) => {
|
||||
res(data);
|
||||
}).exec();
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang='scss'>
|
||||
|
||||
.test-font {
|
||||
color: #2C2C2C;
|
||||
margin-left: 40%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* 顶部tabbar */
|
||||
.nav-bar{
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
height: 90upx;
|
||||
white-space: nowrap;
|
||||
box-shadow: 0 2upx 8upx rgba(0,0,0,.06);
|
||||
background-color: #fff;
|
||||
.nav-item{
|
||||
display: inline-block;
|
||||
width: 150upx;
|
||||
height: 90upx;
|
||||
text-align: center;
|
||||
line-height: 90upx;
|
||||
font-size: 30upx;
|
||||
color: #8a8a8a;
|
||||
position: relative;
|
||||
&:after{
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-bottom: 4upx solid #2c2c2c;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
bottom: 0;
|
||||
transform: translateX(-50%);
|
||||
transition: .3s;
|
||||
}
|
||||
}
|
||||
.current{
|
||||
color: #2c2c2c;
|
||||
&:after{
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.swiper-box{
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.panel-scroll-box{
|
||||
height: 100%;
|
||||
|
||||
.panel-item{
|
||||
background: #fff;
|
||||
padding: 30px 0;
|
||||
border-bottom: 2px solid #000;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新闻列表 直接拿的nvue样式修改,,
|
||||
* 一共需要修改不到10行代码, 另外px需要直接修改为upx,只有单位不一样,计算都是一样的
|
||||
* 吐槽:难道不能在编译的时候把nuve中的upx转为px? 这样就不用修改单位了
|
||||
*/
|
||||
.video-wrapper{
|
||||
width: 100%;
|
||||
height: 440upx;
|
||||
.video{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
view{
|
||||
display:flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.news-item{
|
||||
position:relative;
|
||||
}
|
||||
/* 修改结束 */
|
||||
|
||||
/* 新闻列表 emmm 仅供参考 */
|
||||
.news-item{
|
||||
width: 750upx;
|
||||
padding: 24upx 30upx;
|
||||
border-bottom-width: 1px;
|
||||
border-color: #eee;
|
||||
background-color: #fff;
|
||||
}
|
||||
.title{
|
||||
font-size: 32upx;
|
||||
color: #303133;
|
||||
line-height: 46upx;
|
||||
}
|
||||
.bot{
|
||||
flex-direction: row;
|
||||
}
|
||||
.author{
|
||||
font-size: 26upx;
|
||||
color: #aaa;
|
||||
}
|
||||
.time{
|
||||
font-size: 26upx;
|
||||
color: #aaa;
|
||||
margin-left: 20upx;
|
||||
}
|
||||
.img-list{
|
||||
flex-shrink: 0;
|
||||
flex-direction: row;
|
||||
background-color: #fff;
|
||||
width: 220upx;
|
||||
height: 140upx;
|
||||
}
|
||||
.img-wrapper{
|
||||
flex: 1;
|
||||
flex-direction: row;
|
||||
height: 140upx;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.img{
|
||||
flex: 1;
|
||||
}
|
||||
.img-empty{
|
||||
height: 20upx;
|
||||
}
|
||||
|
||||
/* 图在左 */
|
||||
.img-list1{
|
||||
position:absolute;
|
||||
left: 30upx;
|
||||
top: 24upx;
|
||||
}
|
||||
.title1{
|
||||
padding-left: 240upx;
|
||||
}
|
||||
.bot1{
|
||||
padding-left: 240upx;
|
||||
margin-top: 20upx;
|
||||
}
|
||||
/* 图在右 */
|
||||
.img-list2{
|
||||
position:absolute;
|
||||
right: 30upx;
|
||||
top: 24upx;
|
||||
}
|
||||
.title2{
|
||||
padding-right: 210upx;
|
||||
}
|
||||
.bot2{
|
||||
margin-top: 20upx;
|
||||
}
|
||||
/* 底部3图 */
|
||||
.img-list3{
|
||||
width: 700upx;
|
||||
margin: 16upx 0upx;
|
||||
}
|
||||
.img-wrapper3{
|
||||
margin-right: 4upx;
|
||||
}
|
||||
/* 底部大图 */
|
||||
.img-list-single{
|
||||
width: 690upx;
|
||||
height: 240upx;
|
||||
margin: 16upx 0upx;
|
||||
}
|
||||
.img-wrapper-single{
|
||||
height: 240upx;
|
||||
margin-right: 0upx;
|
||||
}
|
||||
|
||||
.video-tip{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0,0,0,.3);
|
||||
}
|
||||
.video-tip-icon{
|
||||
width: 60upx;
|
||||
height:60upx;
|
||||
}
|
||||
</style>
|
After Width: | Height: | Size: 369 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 6.9 KiB |
|
@ -0,0 +1,35 @@
|
|||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
const store = new Vuex.Store({
|
||||
state: {
|
||||
hasLogin: false,
|
||||
userInfo: {},
|
||||
},
|
||||
mutations: {
|
||||
login(state, provider) {
|
||||
|
||||
state.hasLogin = true;
|
||||
state.userInfo = provider;
|
||||
uni.setStorage({//缓存用户登陆状态
|
||||
key: 'userInfo',
|
||||
data: provider
|
||||
})
|
||||
console.log(state.userInfo);
|
||||
},
|
||||
logout(state) {
|
||||
state.hasLogin = false;
|
||||
state.userInfo = {};
|
||||
uni.removeStorage({
|
||||
key: 'userInfo'
|
||||
})
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
export default store
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
/* 页面左右间距 */
|
||||
$page-row-spacing: 30upx;
|
||||
$page-color-base: #f8f8f8;
|
||||
$page-color-light: #f8f6fc;
|
||||
$base-color: #fa436a;
|
||||
|
||||
/* 文字尺寸 */
|
||||
$font-sm: 24upx;
|
||||
$font-base: 28upx;
|
||||
$font-lg: 32upx;
|
||||
/*文字颜色*/
|
||||
$font-color-dark: #303133;
|
||||
$font-color-base: #606266;
|
||||
$font-color-light: #909399;
|
||||
$font-color-disabled: #C0C4CC;
|
||||
$font-color-spec: #4399fc;
|
||||
/* 边框颜色 */
|
||||
$border-color-dark: #DCDFE6;
|
||||
$border-color-base: #E4E7ED;
|
||||
$border-color-light: #EBEEF5;
|
||||
/* 图片加载中颜色 */
|
||||
$image-bg-color: #eee;
|
||||
/* 行为相关颜色 */
|
||||
$uni-color-primary:#fa436a;
|
||||
$uni-color-success: #4cd964;
|
||||
$uni-color-warning: #f0ad4e;
|
||||
$uni-color-error: #dd524d;
|
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/components/down-refresh.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/components/list-cell.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/components/up-load.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/components/wongPoster.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/pages/details/details.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
vendored
Normal file
1
CreateName-uni/unpackage/dist/dev/.sourcemap/mp-weixin/pages/name/name.js.map
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/name/name",
|
||||
"pages/me/me",
|
||||
"pages/details/details",
|
||||
"pages/login/login"
|
||||
],
|
||||
"subPackages": [],
|
||||
"window": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "CreateName",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#C0C4CC",
|
||||
"selectedColor": "#2C2C2C",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index",
|
||||
"iconPath": "static/create.png",
|
||||
"selectedIconPath": "static/create-current.png",
|
||||
"text": "起名"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/name/name",
|
||||
"iconPath": "static/name.png",
|
||||
"selectedIconPath": "static/name-current.png",
|
||||
"text": "鉴名"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/me/me",
|
||||
"iconPath": "static/wode.png",
|
||||
"selectedIconPath": "static/wode-current.png",
|
||||
"text": "我的"
|
||||
}
|
||||
]
|
||||
},
|
||||
"usingComponents": {},
|
||||
"sitemapLocation": "sitemap25.json"
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
@import './common/main.wxss';
|
|
@ -0,0 +1,256 @@
|
|||
(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/main"],[
|
||||
/* 0 */
|
||||
/*!**************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/main.js ***!
|
||||
\**************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* WEBPACK VAR INJECTION */(function(uni, createApp) {__webpack_require__(/*! uni-pages */ 4);__webpack_require__(/*! @dcloudio/uni-stat */ 5);
|
||||
var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
|
||||
var _store = _interopRequireDefault(__webpack_require__(/*! ./store */ 9));
|
||||
var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 11));
|
||||
var config = _interopRequireWildcard(__webpack_require__(/*! ./config */ 17));function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;} else {var newObj = {};if (obj != null) {for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};if (desc.get || desc.set) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}}newObj.default = obj;return newObj;}}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};var ownKeys = Object.keys(source);if (typeof Object.getOwnPropertySymbols === 'function') {ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {return Object.getOwnPropertyDescriptor(source, sym).enumerable;}));}ownKeys.forEach(function (key) {_defineProperty(target, key, source[key]);});}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}
|
||||
|
||||
var defConfig = config.def;
|
||||
|
||||
var msg = function msg(title) {var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1500;var mask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;var icon = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'none';
|
||||
//统一提示方便全局修改
|
||||
if (Boolean(title) === false) {
|
||||
return;
|
||||
}
|
||||
uni.showToast({
|
||||
title: title,
|
||||
duration: duration,
|
||||
mask: mask,
|
||||
icon: icon });
|
||||
|
||||
};
|
||||
|
||||
var request = function request(_gp, _mt) {var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};var failCallback = arguments.length > 3 ? arguments[3] : undefined;
|
||||
//异步请求数据
|
||||
return new Promise(function (resolve) {
|
||||
if (!userInfo || !userInfo.accessToken) {
|
||||
userInfo = uni.getStorageSync('userInfo');
|
||||
}
|
||||
var accessToken = userInfo ? userInfo.accessToken : '';
|
||||
var baseUrl = config.def().baseUrl;
|
||||
uni.request({
|
||||
url: baseUrl + '/m.api',
|
||||
data: _objectSpread({},
|
||||
data, {
|
||||
_gp: _gp,
|
||||
_mt: _mt }),
|
||||
|
||||
method: 'POST',
|
||||
header: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
|
||||
'ACCESSTOKEN': accessToken },
|
||||
|
||||
success: function success(res) {
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.errno === 200) {
|
||||
resolve(res.data);
|
||||
} else if (res.data.errno === 10001) {
|
||||
if (failCallback) {
|
||||
failCallback(res.data);
|
||||
}
|
||||
if (!loginLock) {
|
||||
loginLock = true;
|
||||
uni.showModal({
|
||||
title: '登录提示',
|
||||
content: '您尚未登录,是否立即登录?',
|
||||
showCancel: true,
|
||||
confirmText: '登录',
|
||||
success: function success(e) {
|
||||
if (e.confirm) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/public/login' });
|
||||
|
||||
}
|
||||
},
|
||||
fail: function fail() {},
|
||||
complete: function complete() {
|
||||
loginLock = false;
|
||||
} });
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
if (failCallback) {
|
||||
failCallback(res.data);
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.data.errmsg,
|
||||
icon: 'none' });
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} });
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
var userInfo = undefined;
|
||||
|
||||
var logout = function logout() {
|
||||
userInfo = undefined;
|
||||
uni.removeStorage({
|
||||
key: 'userInfo' });
|
||||
|
||||
};
|
||||
|
||||
var setUserInfo = function setUserInfo(i) {
|
||||
userInfo = i;
|
||||
};
|
||||
|
||||
_vue.default.config.productionTip = false;
|
||||
_vue.default.prototype.$store = _store.default;
|
||||
_vue.default.prototype.$api = {
|
||||
request: request,
|
||||
setUserInfo: setUserInfo,
|
||||
logout: logout,
|
||||
msg: msg,
|
||||
defConfig: defConfig };
|
||||
|
||||
|
||||
|
||||
_App.default.mpType = 'app';
|
||||
|
||||
var app = new _vue.default(_objectSpread({},
|
||||
_App.default));
|
||||
|
||||
createApp(app).$mount();
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createApp"]))
|
||||
|
||||
/***/ }),
|
||||
/* 1 */,
|
||||
/* 2 */,
|
||||
/* 3 */,
|
||||
/* 4 */,
|
||||
/* 5 */,
|
||||
/* 6 */,
|
||||
/* 7 */,
|
||||
/* 8 */,
|
||||
/* 9 */,
|
||||
/* 10 */,
|
||||
/* 11 */
|
||||
/*!**************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/App.vue ***!
|
||||
\**************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 12);
|
||||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||||
/* harmony import */ var _App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=css& */ 14);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 16);
|
||||
var render, staticRenderFns, recyclableRender, components
|
||||
var renderjs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* normalize component */
|
||||
|
||||
var component = Object(_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
|
||||
_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"],
|
||||
render,
|
||||
staticRenderFns,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
components,
|
||||
renderjs
|
||||
)
|
||||
|
||||
/* hot reload */
|
||||
if (false) { var api; }
|
||||
component.options.__file = "F:/demo/app/wx--uni/CreateName-uni/App.vue"
|
||||
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
|
||||
|
||||
/***/ }),
|
||||
/* 12 */
|
||||
/*!***************************************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/App.vue?vue&type=script&lang=js& ***!
|
||||
\***************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 13);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||||
/* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
/* 13 */
|
||||
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/demo/app/wx--uni/CreateName-uni/App.vue?vue&type=script&lang=js& ***!
|
||||
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
|
||||
var _vuex = __webpack_require__(/*! vuex */ 10);function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};var ownKeys = Object.keys(source);if (typeof Object.getOwnPropertySymbols === 'function') {ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {return Object.getOwnPropertyDescriptor(source, sym).enumerable;}));}ownKeys.forEach(function (key) {_defineProperty(target, key, source[key]);});}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}var _default =
|
||||
{
|
||||
methods: _objectSpread({},
|
||||
(0, _vuex.mapMutations)(['login'])),
|
||||
|
||||
onLaunch: function onLaunch() {var _this = this;
|
||||
var userInfo = uni.getStorageSync('userInfo') || '';
|
||||
if (userInfo.id) {
|
||||
//更新登陆状态
|
||||
uni.getStorage({
|
||||
key: 'userInfo',
|
||||
success: function success(res) {
|
||||
_this.login(res.data);
|
||||
} });
|
||||
|
||||
}
|
||||
},
|
||||
onShow: function onShow() {
|
||||
console.log('App Show');
|
||||
},
|
||||
onHide: function onHide() {
|
||||
console.log('App Hide');
|
||||
} };exports.default = _default;
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
|
||||
|
||||
/***/ }),
|
||||
/* 14 */
|
||||
/*!***********************************************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/App.vue?vue&type=style&index=0&lang=css& ***!
|
||||
\***********************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-1!./node_modules/css-loader??ref--6-oneOf-1-2!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css& */ 15);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||||
/* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
/* 15 */
|
||||
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-1!./node_modules/css-loader??ref--6-oneOf-1-2!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/demo/app/wx--uni/CreateName-uni/App.vue?vue&type=style&index=0&lang=css& ***!
|
||||
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
/***/ })
|
||||
],[[0,"common/runtime","common/vendor"]]]);
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map
|
|
@ -12,7 +12,7 @@
|
|||
/******/ var moduleId, chunkId, i = 0, resolves = [];
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
|
||||
/******/ if(installedChunks[chunkId]) {
|
||||
/******/ resolves.push(installedChunks[chunkId][0]);
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
|
@ -48,13 +48,17 @@
|
|||
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ return result;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // object to store loaded CSS chunks
|
||||
/******/ var installedCssChunks = {
|
||||
/******/ "common/runtime": 0
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // object to store loaded and loading chunks
|
||||
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||
/******/ // Promise = chunk loading, 0 = chunk loaded
|
||||
|
@ -64,6 +68,11 @@
|
|||
/******/
|
||||
/******/ var deferredModules = [];
|
||||
/******/
|
||||
/******/ // script path function
|
||||
/******/ function jsonpScriptSrc(chunkId) {
|
||||
/******/ return __webpack_require__.p + "" + chunkId + ".js"
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
|
@ -88,6 +97,104 @@
|
|||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // This file contains only the entry chunk.
|
||||
/******/ // The chunk loading function for additional chunks
|
||||
/******/ __webpack_require__.e = function requireEnsure(chunkId) {
|
||||
/******/ var promises = [];
|
||||
/******/
|
||||
/******/
|
||||
/******/ // mini-css-extract-plugin CSS loading
|
||||
/******/ var cssChunks = {"components/down-refresh":1,"components/up-load":1,"components/list-cell":1};
|
||||
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
|
||||
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
|
||||
/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
|
||||
/******/ var href = "" + ({"components/down-refresh":"components/down-refresh","components/up-load":"components/up-load","components/list-cell":"components/list-cell"}[chunkId]||chunkId) + ".wxss";
|
||||
/******/ var fullhref = __webpack_require__.p + href;
|
||||
/******/ var existingLinkTags = document.getElementsByTagName("link");
|
||||
/******/ for(var i = 0; i < existingLinkTags.length; i++) {
|
||||
/******/ var tag = existingLinkTags[i];
|
||||
/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
|
||||
/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
|
||||
/******/ }
|
||||
/******/ var existingStyleTags = document.getElementsByTagName("style");
|
||||
/******/ for(var i = 0; i < existingStyleTags.length; i++) {
|
||||
/******/ var tag = existingStyleTags[i];
|
||||
/******/ var dataHref = tag.getAttribute("data-href");
|
||||
/******/ if(dataHref === href || dataHref === fullhref) return resolve();
|
||||
/******/ }
|
||||
/******/ var linkTag = document.createElement("link");
|
||||
/******/ linkTag.rel = "stylesheet";
|
||||
/******/ linkTag.type = "text/css";
|
||||
/******/ linkTag.onload = resolve;
|
||||
/******/ linkTag.onerror = function(event) {
|
||||
/******/ var request = event && event.target && event.target.src || fullhref;
|
||||
/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
|
||||
/******/ err.request = request;
|
||||
/******/ delete installedCssChunks[chunkId]
|
||||
/******/ linkTag.parentNode.removeChild(linkTag)
|
||||
/******/ reject(err);
|
||||
/******/ };
|
||||
/******/ linkTag.href = fullhref;
|
||||
/******/
|
||||
/******/ var head = document.getElementsByTagName("head")[0];
|
||||
/******/ head.appendChild(linkTag);
|
||||
/******/ }).then(function() {
|
||||
/******/ installedCssChunks[chunkId] = 0;
|
||||
/******/ }));
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // JSONP chunk loading for javascript
|
||||
/******/
|
||||
/******/ var installedChunkData = installedChunks[chunkId];
|
||||
/******/ if(installedChunkData !== 0) { // 0 means "already installed".
|
||||
/******/
|
||||
/******/ // a Promise means "currently loading".
|
||||
/******/ if(installedChunkData) {
|
||||
/******/ promises.push(installedChunkData[2]);
|
||||
/******/ } else {
|
||||
/******/ // setup Promise in chunk cache
|
||||
/******/ var promise = new Promise(function(resolve, reject) {
|
||||
/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject];
|
||||
/******/ });
|
||||
/******/ promises.push(installedChunkData[2] = promise);
|
||||
/******/
|
||||
/******/ // start chunk loading
|
||||
/******/ var script = document.createElement('script');
|
||||
/******/ var onScriptComplete;
|
||||
/******/
|
||||
/******/ script.charset = 'utf-8';
|
||||
/******/ script.timeout = 120;
|
||||
/******/ if (__webpack_require__.nc) {
|
||||
/******/ script.setAttribute("nonce", __webpack_require__.nc);
|
||||
/******/ }
|
||||
/******/ script.src = jsonpScriptSrc(chunkId);
|
||||
/******/
|
||||
/******/ onScriptComplete = function (event) {
|
||||
/******/ // avoid mem leaks in IE.
|
||||
/******/ script.onerror = script.onload = null;
|
||||
/******/ clearTimeout(timeout);
|
||||
/******/ var chunk = installedChunks[chunkId];
|
||||
/******/ if(chunk !== 0) {
|
||||
/******/ if(chunk) {
|
||||
/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type);
|
||||
/******/ var realSrc = event && event.target && event.target.src;
|
||||
/******/ var error = new Error('Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')');
|
||||
/******/ error.type = errorType;
|
||||
/******/ error.request = realSrc;
|
||||
/******/ chunk[1](error);
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = undefined;
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/ var timeout = setTimeout(function(){
|
||||
/******/ onScriptComplete({ type: 'timeout', target: script });
|
||||
/******/ }, 120000);
|
||||
/******/ script.onerror = script.onload = onScriptComplete;
|
||||
/******/ document.head.appendChild(script);
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ return Promise.all(promises);
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
|
@ -141,6 +248,9 @@
|
|||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "/";
|
||||
/******/
|
||||
/******/ // on error function for async loading
|
||||
/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
|
||||
/******/
|
||||
/******/ var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || [];
|
||||
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
|
||||
/******/ jsonpArray.push = webpackJsonpCallback;
|
|
@ -0,0 +1,299 @@
|
|||
(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["components/down-refresh"],{
|
||||
|
||||
/***/ 60:
|
||||
/*!**********************************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue ***!
|
||||
\**********************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./down-refresh.vue?vue&type=template&id=74ec3871& */ 61);
|
||||
/* harmony import */ var _down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./down-refresh.vue?vue&type=script&lang=js& */ 63);
|
||||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||||
/* harmony import */ var _down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./down-refresh.vue?vue&type=style&index=0&lang=css& */ 65);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 16);
|
||||
|
||||
var renderjs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* normalize component */
|
||||
|
||||
var component = Object(_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
|
||||
_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
|
||||
_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["render"],
|
||||
_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["components"],
|
||||
renderjs
|
||||
)
|
||||
|
||||
/* hot reload */
|
||||
if (false) { var api; }
|
||||
component.options.__file = "F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue"
|
||||
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 61:
|
||||
/*!*****************************************************************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue?vue&type=template&id=74ec3871& ***!
|
||||
\*****************************************************************************************************/
|
||||
/*! exports provided: render, staticRenderFns, recyclableRender, components */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./down-refresh.vue?vue&type=template&id=74ec3871& */ 62);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["render"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
|
||||
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_template_id_74ec3871___WEBPACK_IMPORTED_MODULE_0__["components"]; });
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 62:
|
||||
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue?vue&type=template&id=74ec3871& ***!
|
||||
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/*! exports provided: render, staticRenderFns, recyclableRender, components */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
|
||||
var components
|
||||
var render = function() {
|
||||
var _vm = this
|
||||
var _h = _vm.$createElement
|
||||
var _c = _vm._self._c || _h
|
||||
}
|
||||
var recyclableRender = false
|
||||
var staticRenderFns = []
|
||||
render._withStripped = true
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 63:
|
||||
/*!***********************************************************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue?vue&type=script&lang=js& ***!
|
||||
\***********************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./down-refresh.vue?vue&type=script&lang=js& */ 64);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||||
/* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 64:
|
||||
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue?vue&type=script&lang=js& ***!
|
||||
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* WEBPACK VAR INJECTION */(function(uni) {Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0; //
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
var startY,moveY,windowHeight = 500,platform;
|
||||
var timeDiff = 0;
|
||||
var touchending;var _default =
|
||||
{
|
||||
|
||||
props: {
|
||||
top: {
|
||||
//距离顶部距离,单位upx
|
||||
type: Number,
|
||||
default: 0 } },
|
||||
|
||||
|
||||
data: function data() {
|
||||
return {
|
||||
pageDeviation: 0, //下偏移量
|
||||
pageTransition: 0, //回弹过渡时间
|
||||
refreshReady: false, //进入刷新准备状态
|
||||
refreshing: false // 进入刷新状态
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
pageTop: function pageTop() {
|
||||
return uni.upx2px(this.top);
|
||||
} },
|
||||
|
||||
created: function created() {
|
||||
uni.getSystemInfo({
|
||||
success: function success(e) {
|
||||
console.log(e);
|
||||
platform = e.platform;
|
||||
windowHeight = e.windowHeight;
|
||||
} });
|
||||
|
||||
},
|
||||
methods: {
|
||||
pageTouchstart: function pageTouchstart(e) {
|
||||
touchending = false;
|
||||
this.pageTransition = 0;
|
||||
startY = e.touches[0].pageY;
|
||||
},
|
||||
pageTouchmove: function pageTouchmove(e) {
|
||||
if (touchending) {
|
||||
return;
|
||||
}
|
||||
moveY = (e.touches[0].pageY - startY) * 0.4;
|
||||
if (moveY >= 0) {
|
||||
this.pageDeviation = moveY;
|
||||
|
||||
this.$emit('setEnableScroll', false);
|
||||
}
|
||||
if (moveY >= 50 && this.refreshReady === false) {
|
||||
this.refreshReady = true;
|
||||
} else if (moveY < 50 && this.refreshReady === true) {
|
||||
this.refreshReady = false;
|
||||
}
|
||||
if (platform === 'ios' && e.touches[0].pageY > windowHeight + 10) {
|
||||
this.pageTouchend();
|
||||
}
|
||||
},
|
||||
pageTouchend: function pageTouchend() {
|
||||
touchending = true;
|
||||
if (moveY === 0) {
|
||||
return;
|
||||
}
|
||||
this.pageTransition = 0.3;
|
||||
if (moveY >= 50) {
|
||||
this.startPulldownRefresh();
|
||||
} else {
|
||||
this.pageDeviation = 0;
|
||||
}
|
||||
|
||||
if (this.refreshReady === true) {
|
||||
this.refreshReady = false;
|
||||
}
|
||||
//修复下拉一点回弹后页面无法滚动的bug
|
||||
this.$emit('setEnableScroll', true);
|
||||
startY = moveY = 0;
|
||||
},
|
||||
//开启下拉刷新
|
||||
startPulldownRefresh: function startPulldownRefresh() {
|
||||
if (+new Date() - timeDiff < 100) {
|
||||
return;
|
||||
}
|
||||
timeDiff = +new Date();
|
||||
this.refreshing = true;
|
||||
this.pageDeviation = uni.upx2px(90);
|
||||
this.$emit('refresh');
|
||||
},
|
||||
//结束下拉刷新
|
||||
endPulldownRefresh: function endPulldownRefresh() {
|
||||
this.refreshing = false;
|
||||
this.pageDeviation = uni.upx2px(0);
|
||||
//this.$emit('setEnableScroll', true);
|
||||
} } };exports.default = _default;
|
||||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["default"]))
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 65:
|
||||
/*!*******************************************************************************************************!*\
|
||||
!*** F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue?vue&type=style&index=0&lang=css& ***!
|
||||
\*******************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-1!./node_modules/css-loader??ref--6-oneOf-1-2!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./down-refresh.vue?vue&type=style&index=0&lang=css& */ 66);
|
||||
/* harmony import */ var _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||||
/* harmony default export */ __webpack_exports__["default"] = (_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_1_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_index_js_ref_6_oneOf_1_2_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_E_HBuilderX_2_2_2_20190816_full_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_down_refresh_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 66:
|
||||
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
||||
!*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-1!./node_modules/css-loader??ref--6-oneOf-1-2!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!F:/demo/app/wx--uni/CreateName-uni/components/down-refresh.vue?vue&type=style&index=0&lang=css& ***!
|
||||
\***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
/***/ })
|
||||
|
||||
}]);
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/components/down-refresh.js.map
|
||||
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
|
||||
'components/down-refresh-create-component',
|
||||
{
|
||||
'components/down-refresh-create-component':(function(module, exports, __webpack_require__){
|
||||
__webpack_require__('1')['createComponent'](__webpack_require__(60))
|
||||
})
|
||||
},
|
||||
[['components/down-refresh-create-component']]
|
||||
]);
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"usingComponents": {},
|
||||
"component": true
|
||||
}
|