diff --git a/src/assets/img/choicepart/ArtManager.png b/src/assets/img/choicepart/ArtManager.png
new file mode 100644
index 0000000..ae31964
Binary files /dev/null and b/src/assets/img/choicepart/ArtManager.png differ
diff --git a/src/assets/img/choicepart/ArticleManager.png b/src/assets/img/choicepart/ArticleManager.png
new file mode 100644
index 0000000..30a1a7e
Binary files /dev/null and b/src/assets/img/choicepart/ArticleManager.png differ
diff --git a/src/assets/img/choicepart/DataAnalysis.png b/src/assets/img/choicepart/DataAnalysis.png
new file mode 100644
index 0000000..672cc10
Binary files /dev/null and b/src/assets/img/choicepart/DataAnalysis.png differ
diff --git a/src/assets/img/choicepart/EquipmentManager.png b/src/assets/img/choicepart/EquipmentManager.png
new file mode 100644
index 0000000..763e539
Binary files /dev/null and b/src/assets/img/choicepart/EquipmentManager.png differ
diff --git a/src/assets/img/choicepart/MaterialsManage.png b/src/assets/img/choicepart/MaterialsManage.png
new file mode 100644
index 0000000..d808730
Binary files /dev/null and b/src/assets/img/choicepart/MaterialsManage.png differ
diff --git a/src/assets/img/choicepart/OperationalOverview.png b/src/assets/img/choicepart/OperationalOverview.png
new file mode 100644
index 0000000..77af087
Binary files /dev/null and b/src/assets/img/choicepart/OperationalOverview.png differ
diff --git a/src/assets/img/choicepart/WarehouseManager.png b/src/assets/img/choicepart/WarehouseManager.png
new file mode 100644
index 0000000..8f18d70
Binary files /dev/null and b/src/assets/img/choicepart/WarehouseManager.png differ
diff --git a/src/assets/img/choicepart/basicData.png b/src/assets/img/choicepart/basicData.png
new file mode 100644
index 0000000..f1d1b73
Binary files /dev/null and b/src/assets/img/choicepart/basicData.png differ
diff --git a/src/assets/img/choicepart/choice-item-back.png b/src/assets/img/choicepart/choice-item-back.png
new file mode 100644
index 0000000..1cddcef
Binary files /dev/null and b/src/assets/img/choicepart/choice-item-back.png differ
diff --git a/src/assets/img/choicepart/choicepart-back.png b/src/assets/img/choicepart/choicepart-back.png
new file mode 100644
index 0000000..b16893b
Binary files /dev/null and b/src/assets/img/choicepart/choicepart-back.png differ
diff --git a/src/assets/img/choicepart/factoryManage.png b/src/assets/img/choicepart/factoryManage.png
new file mode 100644
index 0000000..a804d85
Binary files /dev/null and b/src/assets/img/choicepart/factoryManage.png differ
diff --git a/src/assets/img/choicepart/formManage.png b/src/assets/img/choicepart/formManage.png
new file mode 100644
index 0000000..7c8a321
Binary files /dev/null and b/src/assets/img/choicepart/formManage.png differ
diff --git a/src/assets/img/choicepart/orderManage.png b/src/assets/img/choicepart/orderManage.png
new file mode 100644
index 0000000..23038d2
Binary files /dev/null and b/src/assets/img/choicepart/orderManage.png differ
diff --git a/src/assets/img/choicepart/packingManage.png b/src/assets/img/choicepart/packingManage.png
new file mode 100644
index 0000000..60ccd89
Binary files /dev/null and b/src/assets/img/choicepart/packingManage.png differ
diff --git a/src/assets/img/choicepart/qualityManage.png b/src/assets/img/choicepart/qualityManage.png
new file mode 100644
index 0000000..e6680df
Binary files /dev/null and b/src/assets/img/choicepart/qualityManage.png differ
diff --git a/src/assets/img/cnbm.png b/src/assets/img/cnbm.png
new file mode 100644
index 0000000..ed7d3fd
Binary files /dev/null and b/src/assets/img/cnbm.png differ
diff --git a/src/assets/img/login-back.jpg b/src/assets/img/login-back.jpg
new file mode 100644
index 0000000..cfed13e
Binary files /dev/null and b/src/assets/img/login-back.jpg differ
diff --git a/src/assets/img/login-back.png b/src/assets/img/login-back.png
new file mode 100644
index 0000000..a98739e
Binary files /dev/null and b/src/assets/img/login-back.png differ
diff --git a/src/assets/img/login.gif b/src/assets/img/login.gif
new file mode 100644
index 0000000..8c93120
Binary files /dev/null and b/src/assets/img/login.gif differ
diff --git a/src/assets/scss/common.scss b/src/assets/scss/common.scss
index fcbacf7..fde7116 100644
--- a/src/assets/scss/common.scss
+++ b/src/assets/scss/common.scss
@@ -5,6 +5,8 @@
}
body {
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
+ // font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
+ // font-family: Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;
font-size: $--font-size-base;
line-height: $base--line-height;
color: $--color-text-primary;
@@ -15,8 +17,8 @@ a {
text-decoration: none;
&:focus,
&:hover {
- color: $--color-primary;
- text-decoration: underline;
+ color: #fff;
+ // text-decoration: underline;
}
}
img {
@@ -217,6 +219,17 @@ img {
&__brand {
&-lg {
display: none;
+ // margin: 0;
+ // color: #fff;
+ // width: 189px;
+ // overflow: hidden;
+ // text-overflow: ellipsis;
+ // white-space: nowrap;
+ // font-weight: 500;
+ // line-height: 50px;
+ // font-size: 14px;
+ // font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
+ // vertical-align: middle;
}
&-mini {
display: inline-block;
@@ -268,7 +281,9 @@ img {
box-shadow: 0 1px 0 0 rgba(0, 0, 0, .05);
&--colorful {
.aui-navbar__body {
+ // navbar body颜色
background-color: transparent;
+ // background-color: #304156;
}
.aui-navbar__menu {
> .el-menu-item,
@@ -278,6 +293,7 @@ img {
&:hover {
color: #fff;
background-color: mix(#000, $--color-primary, 15%);
+ // background-color: #001528;
}
}
> .el-menu-item.is-active,
@@ -285,7 +301,7 @@ img {
color: #fff;
&:focus,
&:hover {
- color: #fff;
+ color: #263445;
}
}
.el-menu-item i,
@@ -332,7 +348,16 @@ img {
color: #fff;
overflow: hidden;
transition: width .3s;
- &-lg,
+ &-lg {
+ width: 238px;
+ height: 100%;
+ font-size: 18px;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #FFFFFF;
+ line-height: 20px;
+ margin-top: 7px;
+ }
&-mini {
max-width: 100%;
color: #fff;
@@ -392,9 +417,10 @@ img {
* {
vertical-align: initial;
}
+ //
.aui-navbar__icon-menu {
vertical-align: middle;
- font-size: 16px;
+ font-size: 22px;
}
.el-dropdown {
color: $--color-text-secondary;
@@ -463,7 +489,8 @@ img {
bottom: 0;
z-index: 1020;
width: $sidebar--width;
- background-color: #fff;
+ // background-color: #fff;
+ background-color:#304156;
box-shadow: 1px 0 2px 0 rgba(0, 0, 0, .05);
overflow: hidden;
transition: width .3s;
@@ -471,23 +498,28 @@ img {
background-color: $sidebar--background-color-dark;
.aui-sidebar__menu,
> .el-menu--popup {
- background-color: $sidebar--background-color-dark;
+ // background-color: $sidebar--background-color-dark;
+ background-color: #304156;;
.el-menu-item,
.el-submenu > .el-submenu__title {
- color: $sidebar--text-color-dark;
+ // color: $sidebar--text-color-dark;
+ color: #f4f4f5;
&:focus,
&:hover {
color: mix(#fff, $sidebar--text-color-dark, 50%);
- background-color: mix(#fff, $sidebar--background-color-dark, 2.5%);
+ // background-color: mix(#fff, $sidebar--background-color-dark, 2.5%);
+ background-color:#0B253F;
}
}
.el-menu,
.el-submenu.is-opened {
- background-color: mix(#000, $sidebar--background-color-dark, 15%);
+ // background-color: mix(#000, $sidebar--background-color-dark, 15%);
+ background-color:#0B253F;
}
.el-menu-item.is-active,
.el-submenu.is-active > .el-submenu__title {
- color: mix(#fff, $sidebar--text-color-dark, 80%);
+ // color: mix(#fff, $sidebar--text-color-dark, 80%);
+ color: #409EFF;
}
}
}
diff --git a/src/assets/scss/variables.scss b/src/assets/scss/variables.scss
index 56d591a..623778c 100644
--- a/src/assets/scss/variables.scss
+++ b/src/assets/scss/variables.scss
@@ -5,9 +5,11 @@ $base--line-height: 1.15;
$navbar--height: 50px;
// Sidebar
-$sidebar--width: 300px;
+// $sidebar--width: 300px;
+$sidebar--width: 248px;
$sidebar--width-fold: 64px;
-$sidebar--background-color-dark: #263238;
+// $sidebar--background-color-dark: #263238;
+$sidebar--background-color-dark: #001529;
$sidebar--text-color-dark: #8a979e;
$sidebar--menu-item-height: 48px;
diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue
new file mode 100644
index 0000000..a1a0651
--- /dev/null
+++ b/src/components/Breadcrumb/index.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+ {{ item.meta.title }}
+ {{ item.meta.title }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Hamburger/index.vue b/src/components/Hamburger/index.vue
new file mode 100644
index 0000000..ef49f8e
--- /dev/null
+++ b/src/components/Hamburger/index.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue
new file mode 100644
index 0000000..b07ded2
--- /dev/null
+++ b/src/components/SvgIcon/index.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/small-title/index.vue b/src/components/small-title/index.vue
index a939ea0..7b5ea8e 100644
--- a/src/components/small-title/index.vue
+++ b/src/components/small-title/index.vue
@@ -45,7 +45,8 @@ $mgr: 6px;
line-height: $height;
color: #000;
font-weight: 500;
- font-family: '微软雅黑', 'Microsoft YaHei', Arial, Helvetica, sans-serif;
+ // font-family: '微软雅黑', 'Microsoft YaHei', Arial, Helvetica, sans-serif;
+ font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
&::before {
content: '';
diff --git a/src/element-ui/theme-variables.scss b/src/element-ui/theme-variables.scss
index d85690d..e34c21c 100644
--- a/src/element-ui/theme-variables.scss
+++ b/src/element-ui/theme-variables.scss
@@ -16,7 +16,8 @@ $--color-transition-base: color .2s cubic-bezier(.645,.045,.355,1) !default;
/* Color
-------------------------- */
/// color|1|Brand Color|0
-$--color-primary: #409EFF !default;
+// $--color-primary: #409EFF !default;
+$--color-primary: #001529 !default;
/// color|1|Background Color|4
$--color-white: #FFFFFF !default;
/// color|1|Background Color|4
diff --git a/src/i18n/en.js b/src/i18n/en.js
index 3e118ed..de460d7 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -4,8 +4,8 @@ t.loading = 'Loading...'
t.createTime = 'Create Time'
t.brand = {}
-t.brand.lg = 'Monitoring System'
-t.brand.mini = 'PMS'
+t.brand.lg = 'Deep Processing SCADA Platform'
+t.brand.mini = 'SCADA'
t.routes = {}
t.routes['产品池'] = 'Products Pool'
@@ -431,6 +431,7 @@ t.login.password = 'Password'
t.login.captcha = 'Captcha'
t.login.demo = 'Demo'
t.login.copyright = 'Copyright @Intelligent Automation Research Institute Co., Ltd Version: 1.0'
+t.login.warning = 'Already Login!'
t.schedule = {}
t.schedule.beanName = 'Bean Name'
diff --git a/src/i18n/zh-CN.js b/src/i18n/zh-CN.js
index 4e67e3f..1c62625 100644
--- a/src/i18n/zh-CN.js
+++ b/src/i18n/zh-CN.js
@@ -4,8 +4,8 @@ t.loading = '加载中...'
t.createTime = '添加时间'
t.brand = {}
-t.brand.lg = '生产监控系统'
-t.brand.mini = '监控'
+t.brand.lg = '深加工SCADA平台'
+t.brand.mini = 'SCADA'
t.routes = {}
// 一级
@@ -430,6 +430,7 @@ t.login.password = '密码'
t.login.captcha = '验证码'
t.login.demo = '在线演示'
t.login.copyright = '版权所有:中建材智能自动化研究院有限公司 版本: 1.0'
+t.login.warning = '已经登录过了'
t.schedule = {}
t.schedule.beanName = 'bean名称'
diff --git a/src/icons/iconfont.js b/src/icons/iconfont.js
index b438d8a..b45a3c3 100644
--- a/src/icons/iconfont.js
+++ b/src/icons/iconfont.js
@@ -1 +1,9 @@
-(function(window){var svgSprite='';var script=function(){var scripts=document.getElementsByTagName("script");return scripts[scripts.length-1]}();var shouldInjectCss=script.getAttribute("data-injectcss");var ready=function(fn){if(document.addEventListener){if(~["complete","loaded","interactive"].indexOf(document.readyState)){setTimeout(fn,0)}else{var loadFn=function(){document.removeEventListener("DOMContentLoaded",loadFn,false);fn()};document.addEventListener("DOMContentLoaded",loadFn,false)}}else if(document.attachEvent){IEContentLoaded(window,fn)}function IEContentLoaded(w,fn){var d=w.document,done=false,init=function(){if(!done){done=true;fn()}};var polling=function(){try{d.documentElement.doScroll("left")}catch(e){setTimeout(polling,50);return}init()};polling();d.onreadystatechange=function(){if(d.readyState=="complete"){d.onreadystatechange=null;init()}}}};var before=function(el,target){target.parentNode.insertBefore(el,target)};var prepend=function(el,target){if(target.firstChild){before(el,target.firstChild)}else{target.appendChild(el)}};function appendSvg(){var div,svg;div=document.createElement("div");div.innerHTML=svgSprite;svgSprite=null;svg=div.getElementsByTagName("svg")[0];if(svg){svg.setAttribute("aria-hidden","true");svg.style.position="absolute";svg.style.width=0;svg.style.height=0;svg.style.overflow="hidden";prepend(svg,document.body)}}if(shouldInjectCss&&!window.__iconfont__svg__cssinject__){window.__iconfont__svg__cssinject__=true;try{document.write("")}catch(e){console&&console.log(e)}}ready(appendSvg)})(window)
\ No newline at end of file
+/*
+ * @Descripttion:
+ * @version:
+ * @Author: fzq
+ * @Date: 2022-11-25 09:51:46
+ * @LastEditors: fzq
+ * @LastEditTime: 2022-12-01 10:38:15
+ */
+(function(window){var svgSprite='';var script=function(){var scripts=document.getElementsByTagName("script");return scripts[scripts.length-1]}();var shouldInjectCss=script.getAttribute("data-injectcss");var ready=function(fn){if(document.addEventListener){if(~["complete","loaded","interactive"].indexOf(document.readyState)){setTimeout(fn,0)}else{var loadFn=function(){document.removeEventListener("DOMContentLoaded",loadFn,false);fn()};document.addEventListener("DOMContentLoaded",loadFn,false)}}else if(document.attachEvent){IEContentLoaded(window,fn)}function IEContentLoaded(w,fn){var d=w.document,done=false,init=function(){if(!done){done=true;fn()}};var polling=function(){try{d.documentElement.doScroll("left")}catch(e){setTimeout(polling,50);return}init()};polling();d.onreadystatechange=function(){if(d.readyState=="complete"){d.onreadystatechange=null;init()}}}};var before=function(el,target){target.parentNode.insertBefore(el,target)};var prepend=function(el,target){if(target.firstChild){before(el,target.firstChild)}else{target.appendChild(el)}};function appendSvg(){var div,svg;div=document.createElement("div");div.innerHTML=svgSprite;svgSprite=null;svg=div.getElementsByTagName("svg")[0];if(svg){svg.setAttribute("aria-hidden","true");svg.style.position="absolute";svg.style.width=0;svg.style.height=0;svg.style.overflow="hidden";prepend(svg,document.body)}}if(shouldInjectCss&&!window.__iconfont__svg__cssinject__){window.__iconfont__svg__cssinject__=true;try{document.write("")}catch(e){console&&console.log(e)}}ready(appendSvg)})(window)
\ No newline at end of file
diff --git a/src/icons/index.js b/src/icons/index.js
index 7ca71db..2234a06 100644
--- a/src/icons/index.js
+++ b/src/icons/index.js
@@ -1,4 +1,21 @@
import './iconfont'
+import Vue from 'vue'
+import SvgIcon from '@/components/SvgIcon'// svg component
+
+// register globally
+Vue.component('svg-icon', SvgIcon)
+
+const req = require.context('./svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys().map(requireContext)
+requireAll(req)
const svgFiles = require.context('./svg', true, /\.svg$/)
svgFiles.keys().map(item => svgFiles(item))
+
+export default {
+ // 获取图标icon-(*).svg名称列表, 例如[shouye, xitong, zhedie, ...]
+ getNameList() {
+ return requireAll(req).map(item => item.default.id.replace('icon-', ''))
+ }
+}
+
diff --git a/src/icons/svg/eye-open.svg b/src/icons/svg/eye-open.svg
new file mode 100644
index 0000000..88dcc98
--- /dev/null
+++ b/src/icons/svg/eye-open.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/eye.svg b/src/icons/svg/eye.svg
new file mode 100644
index 0000000..16ed2d8
--- /dev/null
+++ b/src/icons/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/international.svg b/src/icons/svg/international.svg
new file mode 100644
index 0000000..e9b56ee
--- /dev/null
+++ b/src/icons/svg/international.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 4f6d57c..b839a4e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -30,7 +30,7 @@ export const pageRoutes = [
meta: { title: '登录' },
beforeEnter(to, from, next) {
if (Cookies.get('token')) {
- Vue.prototype.$message({ message: '已经登录过了', type: 'error' })
+ Vue.prototype.$message({ message: $t('login.warning'), type: 'error' })
next(false)
} else {
next()
@@ -44,10 +44,12 @@ export const moduleRoutes = {
path: '/',
component: () => import('@/views/main'),
name: 'main',
- redirect: { name: 'home' },
+ // redirect: { name: 'home' },
+ redirect: { name: 'sys-log-login' },
meta: { title: '主入口布局' },
children: [
- { path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } }
+ { path: '/sys-log-login', component: () => import('@/views/modules/sys/log-login'), name: 'sys-log-login', meta: { title: '首页', isTab: true } }
+ // { path: '/home', component: () => import('@/views/modules/home'), name: 'home', meta: { title: '首页', isTab: true } }
]
}
diff --git a/src/store/index.js b/src/store/index.js
index 20029ec..a075c88 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1,3 +1,11 @@
+/*
+ * @Descripttion:
+ * @version:
+ * @Author: fzq
+ * @Date: 2022-12-11 20:33:35
+ * @LastEditors: fzq
+ * @LastEditTime: 2022-12-11 20:43:32
+ */
import Vue from 'vue'
import Vuex from 'vuex'
import cloneDeep from 'lodash/cloneDeep'
@@ -9,7 +17,7 @@ export default new Vuex.Store({
namespaced: true,
state: {
// 导航条, 布局风格, default(白色) / colorful(鲜艳)
- navbarLayoutType: 'colorful',
+ navbarLayoutType: '',
// 侧边栏, 布局皮肤, default(白色) / dark(黑色)
sidebarLayoutSkin: 'dark',
// 侧边栏, 折叠状态
@@ -23,11 +31,13 @@ export default new Vuex.Store({
contentTabs: [
{
...window.SITE_CONFIG['contentTabDefault'],
- 'name': 'home',
+ 'name': 'sys-log-login',
+ // 'name': 'home',
'title': 'home'
}
],
- contentTabsActiveName: 'home'
+ // contentTabsActiveName: 'home'
+ contentTabsActiveName: 'sys-log-login'
},
modules: {
user
diff --git a/src/utils/validate.js b/src/utils/validate.js
index c8edcac..14e3bb0 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -1,3 +1,11 @@
+/*
+ * @Descripttion:
+ * @version:
+ * @Author: fzq
+ * @Date: 2022-11-25 09:51:46
+ * @LastEditors: fzq
+ * @LastEditTime: 2022-11-30 15:09:05
+ */
/**
* 邮箱
* @param {*} s
@@ -29,3 +37,11 @@ export function isPhone (s) {
export function isURL (s) {
return /^http[s]?:\/\/.*/.test(s)
}
+
+/**
+ * @param {string} path
+ * @returns {Boolean}
+ */
+ export function isExternal(path) {
+ return /^(https?:|mailto:|tel:)/.test(path)
+}
\ No newline at end of file
diff --git a/src/views/main-navbar.vue b/src/views/main-navbar.vue
index 442f231..519274a 100644
--- a/src/views/main-navbar.vue
+++ b/src/views/main-navbar.vue
@@ -1,11 +1,20 @@