diff --git a/babel.config.js b/babel.config.js
index e955840..ca8c045 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -1,5 +1,14 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
+ ],
+ plugins: [
+ [
+ 'component',
+ {
+ libraryName: 'element-ui',
+ styleLibraryName: 'theme-chalk'
+ }
+ ]
]
}
diff --git a/package-lock.json b/package-lock.json
index 29b4fe9..d2af2e3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,9 @@
"version": "0.1.0",
"dependencies": {
"core-js": "^3.8.3",
- "vue": "^2.6.14"
+ "element-ui": "^2.15.14",
+ "vue": "^2.6.14",
+ "vue-router": "^3.6.5"
},
"devDependencies": {
"@babel/core": "^7.12.16",
@@ -17,6 +19,7 @@
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
+ "babel-plugin-component": "^1.1.1",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"vue-template-compiler": "^2.6.14"
@@ -3435,6 +3438,14 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/async-validator": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
+ "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+ "dependencies": {
+ "babel-runtime": "6.x"
+ }
+ },
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -3482,6 +3493,12 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/babel-helper-vue-jsx-merge-props": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+ "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==",
+ "license": "MIT"
+ },
"node_modules/babel-loader": {
"version": "8.4.1",
"resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.4.1.tgz",
@@ -3517,6 +3534,39 @@
"node": ">=8.9.0"
}
},
+ "node_modules/babel-plugin-component": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz",
+ "integrity": "sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "7.0.0-beta.35"
+ }
+ },
+ "node_modules/babel-plugin-component/node_modules/@babel/helper-module-imports": {
+ "version": "7.0.0-beta.35",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz",
+ "integrity": "sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "7.0.0-beta.35",
+ "lodash": "^4.2.0"
+ }
+ },
+ "node_modules/babel-plugin-component/node_modules/@babel/types": {
+ "version": "7.0.0-beta.35",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.35.tgz",
+ "integrity": "sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.2.0",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
"node_modules/babel-plugin-dynamic-import-node": {
"version": "2.3.3",
"resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
@@ -3569,6 +3619,24 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+ "license": "MIT",
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-runtime/node_modules/core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
+ "hasInstallScript": true,
+ "license": "MIT"
+ },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -4803,7 +4871,6 @@
"version": "1.5.2",
"resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz",
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5228,6 +5295,23 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/element-ui": {
+ "version": "2.15.14",
+ "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz",
+ "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
+ "license": "MIT",
+ "dependencies": {
+ "async-validator": "~1.8.1",
+ "babel-helper-vue-jsx-merge-props": "^2.0.0",
+ "deepmerge": "^1.2.0",
+ "normalize-wheel": "^1.0.1",
+ "resize-observer-polyfill": "^1.5.0",
+ "throttle-debounce": "^1.0.1"
+ },
+ "peerDependencies": {
+ "vue": "^2.5.17"
+ }
+ },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -8423,6 +8507,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/normalize-wheel": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+ "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==",
+ "license": "BSD-3-Clause"
+ },
"node_modules/npm-run-path": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -9863,6 +9953,12 @@
"node": ">=4"
}
},
+ "node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "license": "MIT"
+ },
"node_modules/regexpp": {
"version": "3.2.0",
"resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz",
@@ -9965,6 +10061,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
+ "license": "MIT"
+ },
"node_modules/resolve": {
"version": "1.22.12",
"resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.12.tgz",
@@ -11109,6 +11211,15 @@
"url": "https://opencollective.com/webpack"
}
},
+ "node_modules/throttle-debounce": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+ "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
@@ -11116,6 +11227,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -11528,6 +11649,12 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/vue-router": {
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz",
+ "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==",
+ "license": "MIT"
+ },
"node_modules/vue-style-loader": {
"version": "4.1.3",
"resolved": "https://registry.npmmirror.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz",
diff --git a/package.json b/package.json
index 2e4e4cb..3f7bb0b 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,9 @@
},
"dependencies": {
"core-js": "^3.8.3",
- "vue": "^2.6.14"
+ "element-ui": "^2.15.14",
+ "vue": "^2.6.14",
+ "vue-router": "^3.6.5"
},
"devDependencies": {
"@babel/core": "^7.12.16",
@@ -17,6 +19,7 @@
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
+ "babel-plugin-component": "^1.1.1",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"vue-template-compiler": "^2.6.14"
diff --git a/src/App.vue b/src/App.vue
index 55df315..19226fa 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,28 +1,15 @@
-

-
+
diff --git a/src/assets/css/style_public.css b/src/assets/css/style_public.css
new file mode 100644
index 0000000..c624f1a
--- /dev/null
+++ b/src/assets/css/style_public.css
@@ -0,0 +1,48 @@
+* {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ }
+
+ li {
+ list-style: none;
+ }
+
+ a {
+ text-decoration: none;
+ }
+
+ button {
+ outline: none;
+ user-select: none;
+ }
+
+ input {
+ outline: none;
+ }
+
+ .fl {
+ float: left;
+ }
+
+ .fr {
+ float: right;
+ }
+
+ /* 清除浮动 */
+ .clearfix:after {
+ content: "";
+ display: block;
+ clear: both;
+ }
+
+ .el-message-box__wrapper {
+ top: -500px;
+ }
+
+ .el-card {
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15) !important
+ }
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 63eb05f..6439016 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,8 +1,19 @@
import Vue from 'vue'
import App from './App.vue'
+import router from './router'
+import store from './store'
+import { Button, Select, Input, InputNumber } from 'element-ui';
+import './assets/css/style_public.css'
Vue.config.productionTip = false
+Vue.use(Button)
+Vue.use(Select)
+Vue.use(Input)
+Vue.use(InputNumber)
+
new Vue({
+ router,
+ store,
render: h => h(App),
}).$mount('#app')
diff --git a/src/pages/index/IndexPage.vue b/src/pages/index/IndexPage.vue
new file mode 100644
index 0000000..c01bc3e
--- /dev/null
+++ b/src/pages/index/IndexPage.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/login/Login.vue b/src/pages/login/Login.vue
deleted file mode 100644
index d167419..0000000
--- a/src/pages/login/Login.vue
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
{{ msg }}
-
-
-
-
-
-
-
diff --git a/src/pages/login/LoginPage.vue b/src/pages/login/LoginPage.vue
new file mode 100644
index 0000000..7094e4c
--- /dev/null
+++ b/src/pages/login/LoginPage.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/login/RegisterPage.vue b/src/pages/login/RegisterPage.vue
new file mode 100644
index 0000000..a3862ed
--- /dev/null
+++ b/src/pages/login/RegisterPage.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/router.js b/src/router.js
index e69de29..a5b79e2 100644
--- a/src/router.js
+++ b/src/router.js
@@ -0,0 +1,38 @@
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+
+import LoginPage from './pages/login/LoginPage.vue'
+import RegisterPage from './pages/login/RegisterPage.vue'
+import IndexPage from './pages/index/IndexPage.vue'
+
+Vue.use(VueRouter)
+
+const routes = [
+ {
+ path: '/',
+ redirect: '/login'
+ },
+ {
+ path: '/login',
+ name: 'login',
+ component: LoginPage
+ },
+ {
+ path: '/register',
+ name: 'RegisterPage',
+ componenr: RegisterPage
+ },
+ {
+ path: '/index',
+ name: 'index',
+ component: IndexPage
+ }
+]
+
+const router = new VueRouter({
+ mode: 'history',
+ base: process.env.BASE_URL,
+ routes
+})
+
+export default router
\ No newline at end of file
diff --git a/src/store/index.js b/src/store/index.js
new file mode 100644
index 0000000..e69de29