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 @@ + + + + + + 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..6ddb25d 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() diff --git a/src/store/index.js b/src/store/index.js index 20029ec..8a99380 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -9,7 +9,7 @@ export default new Vuex.Store({ namespaced: true, state: { // 导航条, 布局风格, default(白色) / colorful(鲜艳) - navbarLayoutType: 'colorful', + navbarLayoutType: '', // 侧边栏, 布局皮肤, default(白色) / dark(黑色) sidebarLayoutSkin: 'dark', // 侧边栏, 折叠状态 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 @@ + + + +