Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
enterprise-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
enterprise-platform
Commits
b8e7d429
Commit
b8e7d429
authored
Sep 19, 2023
by
赵啸非
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
3e699d14
ce6fb0a2
Changes
18
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
9848 additions
and
8845 deletions
+9848
-8845
enterprise-manager-ui/admin/package-lock.json
enterprise-manager-ui/admin/package-lock.json
+0
-74
enterprise-manager-ui/admin/src/assets/images/u2.png
enterprise-manager-ui/admin/src/assets/images/u2.png
+0
-0
enterprise-manager-ui/admin/src/assets/images/u3.png
enterprise-manager-ui/admin/src/assets/images/u3.png
+0
-0
enterprise-manager-ui/admin/src/assets/images/u4.png
enterprise-manager-ui/admin/src/assets/images/u4.png
+0
-0
enterprise-manager-ui/admin/src/assets/images/u5.jpg
enterprise-manager-ui/admin/src/assets/images/u5.jpg
+0
-0
enterprise-manager-ui/admin/src/assets/less/login.css
enterprise-manager-ui/admin/src/assets/less/login.css
+56
-0
enterprise-manager-ui/admin/src/assets/less/login.less
enterprise-manager-ui/admin/src/assets/less/login.less
+57
-0
enterprise-manager-ui/admin/src/components/Header.vue
enterprise-manager-ui/admin/src/components/Header.vue
+1
-1
enterprise-manager-ui/admin/src/router.js
enterprise-manager-ui/admin/src/router.js
+2
-1
enterprise-manager-ui/admin/src/views/Home.vue
enterprise-manager-ui/admin/src/views/Home.vue
+188
-4
enterprise-manager-ui/admin/src/views/home/bar.vue
enterprise-manager-ui/admin/src/views/home/bar.vue
+125
-0
enterprise-manager-ui/admin/src/views/home/home.css
enterprise-manager-ui/admin/src/views/home/home.css
+72
-0
enterprise-manager-ui/admin/src/views/home/home.less
enterprise-manager-ui/admin/src/views/home/home.less
+78
-0
enterprise-manager-ui/admin/src/views/home/line.vue
enterprise-manager-ui/admin/src/views/home/line.vue
+147
-0
enterprise-manager-ui/admin/src/views/home/pie.vue
enterprise-manager-ui/admin/src/views/home/pie.vue
+135
-0
enterprise-manager-ui/admin/src/views/login/login.vue
enterprise-manager-ui/admin/src/views/login/login.vue
+49
-56
enterprise-manager-ui/admin/vue.config.js
enterprise-manager-ui/admin/vue.config.js
+2
-1
enterprise-manager-ui/admin/yarn.lock
enterprise-manager-ui/admin/yarn.lock
+8936
-8708
No files found.
enterprise-manager-ui/admin/package-lock.json
View file @
b8e7d429
...
...
@@ -24,7 +24,6 @@
"json-bigint": "^0.3.0",
"jwt-decode": "^3.1.2",
"moment": "^2.29.4",
"muse-ui": "^3.0.2",
"nprogress": "^0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
...
...
@@ -37,7 +36,6 @@
"vue-cropper": "0.5.5",
"vue-router": "3.4.9",
"vue-template-compiler": "^2.6.14",
"vue2-org-tree": "^1.3.5",
"vuex": "3.6.0"
},
"devDependencies": {
...
...
@@ -3724,11 +3722,6 @@
"ms": "2.0.0"
}
},
"node_modules/body-scroll-lock": {
"version": "2.7.1",
"resolved": "https://registry.npmmirror.com/body-scroll-lock/-/body-scroll-lock-2.7.1.tgz",
"integrity": "sha512-hS53SQ8RhM0e4DsQ3PKz6Gr2O7Kpdh59TWU98GHjaQznL7y4dFycEPk7pFQAikqBaUSCArkc5E3pe7CWIt2fZA=="
},
"node_modules/bonjour": {
"version": "3.5.0",
"resolved": "https://registry.nlark.com/bonjour/download/bonjour-3.5.0.tgz",
...
...
@@ -5756,11 +5749,6 @@
"node": ">=0.10"
}
},
"node_modules/dayjs": {
"version": "1.11.3",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz",
"integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A=="
},
"node_modules/de-indent": {
"version": "1.0.2",
"resolved": "https://registry.nlark.com/de-indent/download/de-indent-1.0.2.tgz",
...
...
@@ -9724,11 +9712,6 @@
"resolved": "https://registry.npmmirror.com/jwt-decode/-/jwt-decode-3.1.2.tgz",
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
},
"node_modules/keycode": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/keycode/-/keycode-2.2.1.tgz",
"integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg=="
},
"node_modules/killable": {
"version": "1.0.1",
"resolved": "https://registry.nlark.com/killable/download/killable-1.0.1.tgz",
...
...
@@ -10981,21 +10964,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/muse-ui": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/muse-ui/-/muse-ui-3.0.2.tgz",
"integrity": "sha512-oIH8wEKQqXA6xbb3HzprxC2xoF7P8G01uvF+Jhs6VtbxQjO7VVkKKFu2Mb2NmhX3mMU2EBCgE8wlTU29ffjkPA==",
"dependencies": {
"body-scroll-lock": "^2.6.1",
"dayjs": "^1.8.2",
"keycode": "^2.1.9",
"normalize-wheel": "^1.0.1",
"resize-observer-polyfill": "^1.5.0"
},
"peerDependencies": {
"vue": "^2.5.0"
}
},
"node_modules/mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.nlark.com/mute-stream/download/mute-stream-0.0.8.tgz",
...
...
@@ -16875,15 +16843,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/vue2-org-tree": {
"version": "1.3.5",
"resolved": "https://registry.npm.taobao.org/vue2-org-tree/download/vue2-org-tree-1.3.5.tgz",
"integrity": "sha1-RGpSjCMTo5tTIKEbMIORbbi13GI=",
"license": "MIT",
"peerDependencies": {
"vue": "^2.5.4"
}
},
"node_modules/vuex": {
"version": "3.6.0",
"resolved": "https://registry.nlark.com/vuex/download/vuex-3.6.0.tgz",
...
...
@@ -20301,11 +20260,6 @@
}
}
},
"body-scroll-lock": {
"version": "2.7.1",
"resolved": "https://registry.npmmirror.com/body-scroll-lock/-/body-scroll-lock-2.7.1.tgz",
"integrity": "sha512-hS53SQ8RhM0e4DsQ3PKz6Gr2O7Kpdh59TWU98GHjaQznL7y4dFycEPk7pFQAikqBaUSCArkc5E3pe7CWIt2fZA=="
},
"bonjour": {
"version": "3.5.0",
"resolved": "https://registry.nlark.com/bonjour/download/bonjour-3.5.0.tgz",
...
...
@@ -21858,11 +21812,6 @@
"assert-plus": "^1.0.0"
}
},
"dayjs": {
"version": "1.11.3",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.3.tgz",
"integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A=="
},
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.nlark.com/de-indent/download/de-indent-1.0.2.tgz",
...
...
@@ -24734,11 +24683,6 @@
"resolved": "https://registry.npmmirror.com/jwt-decode/-/jwt-decode-3.1.2.tgz",
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
},
"keycode": {
"version": "2.2.1",
"resolved": "https://registry.npmmirror.com/keycode/-/keycode-2.2.1.tgz",
"integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg=="
},
"killable": {
"version": "1.0.1",
"resolved": "https://registry.nlark.com/killable/download/killable-1.0.1.tgz",
...
...
@@ -25659,18 +25603,6 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true
},
"muse-ui": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/muse-ui/-/muse-ui-3.0.2.tgz",
"integrity": "sha512-oIH8wEKQqXA6xbb3HzprxC2xoF7P8G01uvF+Jhs6VtbxQjO7VVkKKFu2Mb2NmhX3mMU2EBCgE8wlTU29ffjkPA==",
"requires": {
"body-scroll-lock": "^2.6.1",
"dayjs": "^1.8.2",
"keycode": "^2.1.9",
"normalize-wheel": "^1.0.1",
"resize-observer-polyfill": "^1.5.0"
}
},
"mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.nlark.com/mute-stream/download/mute-stream-0.0.8.tgz",
...
...
@@ -30064,12 +29996,6 @@
"integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
"dev": true
},
"vue2-org-tree": {
"version": "1.3.5",
"resolved": "https://registry.npm.taobao.org/vue2-org-tree/download/vue2-org-tree-1.3.5.tgz",
"integrity": "sha1-RGpSjCMTo5tTIKEbMIORbbi13GI=",
"requires": {}
},
"vuex": {
"version": "3.6.0",
"resolved": "https://registry.nlark.com/vuex/download/vuex-3.6.0.tgz",
enterprise-manager-ui/admin/src/assets/images/u2.png
0 → 100644
View file @
b8e7d429
754 KB
enterprise-manager-ui/admin/src/assets/images/u3.png
0 → 100644
View file @
b8e7d429
967 KB
enterprise-manager-ui/admin/src/assets/images/u4.png
0 → 100644
View file @
b8e7d429
3.66 MB
enterprise-manager-ui/admin/src/assets/images/u5.jpg
0 → 100644
View file @
b8e7d429
27.9 KB
enterprise-manager-ui/admin/src/assets/less/login.css
0 → 100644
View file @
b8e7d429
.loginpage
{
width
:
100%
;
height
:
100%
;
min-width
:
1900px
;
min-height
:
960px
;
}
.lci-img
{
width
:
100%
;
height
:
100%
;
}
.l-right
{
background
:
url('~@/assets/images/u5.jpg')
no-repeat
border-box
;
background-size
:
cover
;
width
:
800px
;
height
:
100%
;
min-height
:
960px
;
position
:
absolute
;
top
:
0
;
right
:
0
;
z-index
:
2
;
opacity
:
0.95
;
text-align
:
center
;
}
.l-right
.lr-title
{
margin
:
200px
auto
100px
;
font-family
:
'微软雅黑 Bold'
,
'微软雅黑 Regular'
,
'微软雅黑'
,
sans-serif
;
font-weight
:
700
;
font-style
:
normal
;
font-size
:
34px
;
color
:
#000000
;
}
.l-right
.lr-form
{
box-sizing
:
border-box
;
padding
:
0
120px
0
50px
;
}
.l-right
.el-input__inner
{
height
:
60px
;
font-weight
:
400
;
font-style
:
normal
;
font-size
:
16px
;
letter-spacing
:
normal
;
border-radius
:
10px
;
margin-bottom
:
20px
;
}
.l-right
.denglubtn
{
width
:
100%
;
height
:
60px
;
background
:
inherit
;
background-color
:
#206eff
;
border
:
none
;
border-radius
:
5px
;
font-family
:
'微软雅黑'
,
sans-serif
;
font-weight
:
400
;
font-style
:
normal
;
font-size
:
16px
;
}
enterprise-manager-ui/admin/src/assets/less/login.less
0 → 100644
View file @
b8e7d429
.loginpage{
width: 100%;
height: 100%;
min-width: 1900px;
min-height: 960px;
}
// 走马灯样式
.lci-img{
width: 100%;
height: 100%;
}
.l-right{
background: url('~@/assets/images/u5.jpg') no-repeat border-box ;
background-size: cover;
width: 800px;
height: 100%;
min-height: 960px;
position: absolute;
top: 0;
right: 0;
z-index: 2;
opacity: 0.95;
text-align: center;
.lr-title{
margin:200px auto 100px;
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑', sans-serif;
font-weight: 700;
font-style: normal;
font-size: 34px;
color: #000000;
}
.lr-form{
box-sizing: border-box;
padding: 0 120px 0 50px;
}
.el-input__inner{
height: 60px;
font-weight: 400;
font-style: normal;
font-size: 16px;
letter-spacing: normal;
border-radius: 10px;
margin-bottom: 20px;
}
.denglubtn{
width: 100%;
height: 60px;
background: inherit;
background-color: rgba(32, 110, 255, 1);
border: none;
border-radius: 5px;
font-family: '微软雅黑', sans-serif;
font-weight: 400;
font-style: normal;
font-size: 16px;
}
}
enterprise-manager-ui/admin/src/components/Header.vue
View file @
b8e7d429
...
...
@@ -272,7 +272,7 @@ export default {
li {
a {
display: block;
padding: 0
1
0px;
padding: 0
2
0px;
height: 40px;
line-height: 40px;
font-size: 14px;
...
...
enterprise-manager-ui/admin/src/router.js
View file @
b8e7d429
...
...
@@ -59,7 +59,8 @@ const router = new Router({
...
restBuilder
(
'
news/category
'
,
'
news/category
'
),
//新闻频道分类
//以下为基础路由配置
builder
(
''
,
'
Home
'
),
builder
(
'
/
'
,
'
Home
'
),
builder
(
'
/home
'
,
'
Home
'
),
builder
(
'
index
'
,
'
Home
'
),
builder
(
'
login/updatePwd
'
,
'
login/updatePwd
'
),
builder
(
'
403
'
,
'
errors/403
'
),
...
...
enterprise-manager-ui/admin/src/views/Home.vue
View file @
b8e7d429
<
template
>
<div
:class=
"classList"
style=
"min-height: 100vh;"
>
欢迎你,
{{
userData
}}
<!--
<div
:class=
"classList"
style=
"min-height: 100vh;"
>
-->
<div
class=
"homepage"
>
<!-- 核心数据 -->
<div
class=
"card"
>
<div
class=
"cardtitle"
>
核心数据
</div>
<div
class=
"header"
>
<div
class=
"hc-itme"
>
<div
class=
"i-title"
>
企业总量(家)
</div>
<div
class=
"i-num"
>
5
</div>
</div>
<div
class=
"hc-itme"
>
<div
class=
"i-title"
>
产品数量(个)
</div>
<div
class=
"i-num"
>
35
</div>
</div>
<div
class=
"hc-itme"
>
<div
class=
"i-title"
>
员工数量(人)
</div>
<div
class=
"i-num"
>
48
</div>
</div>
<div
class=
"hc-itme"
>
<div
class=
"i-title"
>
新闻数量(篇)
</div>
<div
class=
"i-num"
>
89
</div>
</div>
<div
class=
"hc-itme"
>
<div
class=
"i-title"
>
反馈数量(次)
</div>
<div
class=
"i-num"
>
65
</div>
</div>
<div
class=
"hc-itme"
>
<div
class=
"i-title"
>
用户数量(次)
</div>
<div
class=
"i-num"
>
156
</div>
</div>
</div>
</div>
<!-- 饼状图 -->
<div
class=
"hang pies"
>
<div
class=
"card pie"
>
<div
class=
"cardtitle"
>
产品分布
</div>
<div
class=
"piecard"
>
<Pie
class=
"echarts"
:info=
"cpfbDayValue"
ref=
"ageChild"
style=
"width:100%;height:100%"
/>
</div>
</div>
<div
class=
"card pie"
>
<div
class=
"cardtitle"
>
名片分布
</div>
<div
class=
"piecard"
>
<Pie
class=
"echarts"
:info=
"mpfbDayValue"
ref=
"ageChild"
style=
"width:100%;height:100%"
/>
</div>
</div>
<div
class=
"card pie"
>
<div
class=
"cardtitle"
>
新闻分布
</div>
<div
class=
"piecard"
>
<Pie
class=
"echarts"
:info=
"xwfbDayValue"
ref=
"ageChild"
style=
"width:100%;height:100%"
/>
</div>
</div>
</div>
<!-- 折线图柱状图 -->
<div
class=
"hang"
>
<div
class=
"card linebar"
>
<div
class=
"cardtitle"
>
小程序近30日访问次数
</div>
<div
class=
"linebarcar"
>
<CLine
class=
"echarts"
:info=
"lineDayValue"
/>
</div>
</div>
<div
class=
"card linebar"
>
<div
class=
"cardtitle"
>
员工累计发送名片次数
</div>
<div
class=
"linebarcar"
>
<CBar
class=
"echarts"
:info=
"barDayValue"
/>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
Pie
from
"
./home/pie.vue
"
;
import
CLine
from
"
./home/line.vue
"
;
import
CBar
from
"
./home/bar.vue
"
;
export
default
{
computed
:
{
userData
()
{
return
this
.
$store
.
state
.
userData
.
currUserName
;
},
}
},
components
:
{
Pie
,
CLine
,
CBar
},
data
()
{
return
{
classList
:
"
page page-home
"
,
// barDayValue: [{ nums: 1, age_area: "31-40岁" }],
lineDayValue
:
[
{
datetime
:
"
08:00:00-09:00:00
"
,
count
:
0
},
{
datetime
:
"
09:00:00-10:00:00
"
,
count
:
0
},
{
datetime
:
"
10:00:00-11:00:00
"
,
count
:
0
},
{
datetime
:
"
11:00:00-12:00:00
"
,
count
:
0
},
{
datetime
:
"
12:00:00-13:00:00
"
,
count
:
0
},
{
datetime
:
"
13:00:00-14:00:00
"
,
count
:
0
},
{
datetime
:
"
14:00:00-15:00:00
"
,
count
:
4
},
{
datetime
:
"
15:00:00-16:00:00
"
,
count
:
1
},
{
datetime
:
"
16:00:00-17:00:00
"
,
count
:
0
},
{
datetime
:
"
17:00:00-18:00:00
"
,
count
:
0
},
{
datetime
:
"
18:00:00-19:00:00
"
,
count
:
0
}
],
cpfbDayValue
:
[
{
value
:
5
,
name
:
"
四川思迈尔网络科技有限公司
"
},
{
value
:
10
,
name
:
"
四川恒生信达科技有限公司
"
},
{
value
:
10
,
name
:
"
四川信宏翔科技有限公司
"
},
{
value
:
6
,
name
:
"
武汉力龙信息科技股份有限公司
"
},
{
value
:
32
,
name
:
"
四川力龙恒生科技股份有限公司
"
}
],
mpfbDayValue
:
[
{
value
:
5
,
name
:
"
四川思迈尔网络科技有限公司
"
},
{
value
:
10
,
name
:
"
四川恒生信达科技有限公司
"
},
{
value
:
10
,
name
:
"
四川信宏翔科技有限公司
"
},
{
value
:
6
,
name
:
"
武汉力龙信息科技股份有限公司
"
},
{
value
:
32
,
name
:
"
四川力龙恒生科技股份有限公司
"
}
],
xwfbDayValue
:
[
{
value
:
33
,
name
:
"
集团频道
"
},
{
value
:
56
,
name
:
"
产品频道
"
},
{
value
:
89
,
name
:
"
机器人频道
"
}
]
};
},
created
()
{}
,
created
()
{}
};
</
script
>
<
style
scoped
lang=
"less"
>
@import "./home/home.less";
.page-home {
margin-top: 20px !important;
border-radius: 8px;
...
...
enterprise-manager-ui/admin/src/views/home/bar.vue
0 → 100644
View file @
b8e7d429
<
template
>
<div
style=
"width: 100%; height: 100%"
></div>
</
template
>
<
script
>
// import { deepClone } from "@/utils/js/common.js";
// import lodash from "lodash";
// import { getStatisticAges } from "@/api/dataAdmin.js";
export
default
{
props
:
{
info
:
{
type
:
Array
,
default
:
()
=>
[
{
value
:
200
,
name
:
"
员工1
"
,
},
{
value
:
400
,
name
:
"
员工2
"
,
},
{
value
:
600
,
name
:
"
员工3
"
,
},
{
value
:
500
,
name
:
"
员工4
"
,
},
{
value
:
260
,
name
:
"
员工5
"
,
},
{
value
:
100
,
name
:
"
员工6
"
,
},
],
},
option
:
{
type
:
Object
,
default
:
()
=>
{},
},
day
:
{
type
:
String
,
default
:
()
=>
"
0
"
,
},
},
watch
:
{
day
(
newval
,
oldval
)
{
newval
?
this
.
getData
()
:
""
;
},
},
async
mounted
()
{
this
.
getData
();
},
methods
:
{
async
getData
()
{
// let res = await getStatisticAges({
// selected: this.day == 5 ? null : this.day,
// });
// if (res.code != 1) return;
// let label = res.data.map((item) => item.age_area);
// let value = res.data.map((item) => item.nums);
let
label
=
this
.
info
.
map
((
item
)
=>
item
.
name
);
let
value
=
this
.
info
.
map
((
item
)
=>
item
.
value
);
this
.
_initEcharts
(
label
,
value
);
},
_initEcharts
(
label
,
value
)
{
const
myChart
=
this
.
$echarts
.
init
(
this
.
$el
);
const
echarts
=
this
.
$echarts
;
let
option
=
{
legend
:
{
// data: ["预约次数"],
bottom
:
"
5%
"
,
right
:
"
center
"
,
itemWidth
:
13
,
textStyle
:
{
color
:
"
#556677
"
,
},
},
grid
:
{
left
:
"
2%
"
,
right
:
"
2%
"
,
top
:
"
15%
"
,
bottom
:
"
15%
"
,
containLabel
:
true
,
},
xAxis
:
{
type
:
"
category
"
,
data
:
label
,
axisTick
:
{
show
:
false
,
},
},
yAxis
:
{
type
:
"
value
"
,
},
tooltip
:
{
trigger
:
"
axis
"
,
axisPointer
:
{
type
:
"
shadow
"
,
},
},
series
:
[
{
data
:
value
,
// name: "预约次数",
barWidth
:
"
50%
"
,
type
:
"
bar
"
,
itemStyle
:
{
color
:
"
#6194F8
"
,
},
},
],
};
// if (this.option) {
// option = lodash.defaultsDeep(deepClone(this.option), option);
// }
myChart
.
setOption
(
option
,
true
);
},
},
};
</
script
>
enterprise-manager-ui/admin/src/views/home/home.css
0 → 100644
View file @
b8e7d429
.homepage
{
margin
:
20px
20px
0
20px
;
}
.homepage
.hang
{
display
:
flex
;
justify-content
:
space-between
;
margin-top
:
20px
;
}
.homepage
.card
{
background-color
:
#ffffff
;
border-radius
:
8px
;
box-sizing
:
border-box
;
padding
:
10px
20px
;
}
.homepage
.card
.cardtitle
{
font-family
:
'微软雅黑 Bold'
,
'微软雅黑 Regular'
,
'微软雅黑'
,
sans-serif
;
font-weight
:
700
;
font-style
:
normal
;
font-size
:
16px
;
position
:
relative
;
padding
:
10px
20px
;
}
.homepage
.card
.cardtitle
::after
{
content
:
''
;
position
:
absolute
;
left
:
0
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
width
:
4px
;
height
:
20px
;
background-color
:
red
;
}
.header
{
display
:
flex
;
justify-content
:
space-between
;
}
.header
.hc-itme
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
box-sizing
:
border-box
;
padding
:
30px
80px
40px
;
}
.header
.hc-itme
.i-title
{
font-weight
:
400
;
font-style
:
normal
;
color
:
#464646
;
padding
:
10px
0
;
}
.header
.hc-itme
.i-num
{
font-family
:
'微软雅黑 Bold'
,
'微软雅黑 Regular'
,
'微软雅黑'
,
sans-serif
;
font-weight
:
700
;
font-style
:
normal
;
font-size
:
24px
;
color
:
#000000
;
text-align
:
center
;
}
.pies
{
width
:
100%
;
}
.pies
.pie
{
width
:
calc
(
33%
-
4px
);
}
.pies
.pie
.piecard
{
height
:
240px
;
}
.linebar
{
width
:
calc
(
50%
-
9px
);
}
.linebar
.linebarcar
{
height
:
240px
;
}
enterprise-manager-ui/admin/src/views/home/home.less
0 → 100644
View file @
b8e7d429
.homepage{
margin: 20px 20px 0 20px;
.hang{
display: flex;
justify-content: space-between;
margin-top: 20px;
}
.card{
background-color: rgba(255, 255, 255, 1);
border-radius: 8px;
box-sizing: border-box;
padding: 10px 20px;
.cardtitle{
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑', sans-serif;
font-weight: 700;
font-style: normal;
font-size: 16px;
position: relative;
padding: 10px 20px;
}
.cardtitle::after{
content: '';
position: absolute;
left: 0;
top: 50%;
transform: translate(0,-50%);
width: 4px;
height: 20px;
background-color: red;
}
}
}
// 核心数据S
.header{
display: flex;
justify-content: space-between;
.hc-itme{
display: flex;
flex-direction: column;
justify-content: center;
box-sizing: border-box;
padding: 30px 80px 40px;
.i-title{
font-weight: 400;
font-style: normal;
color: #464646;
padding: 10px 0;
}
.i-num{
font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑', sans-serif;
font-weight: 700;
font-style: normal;
font-size: 24px;
color: #000000;
text-align: center;
}
}
}
// 核心数据E
// 饼状图S
.pies{
width: 100%;
.pie{
width: calc(33% - 4px);
.piecard{
height: 240px;
}
}
}
// 饼状图E
// 折线图柱状图S
.linebar{
width: calc(50% - 9px);
.linebarcar{
height: 240px;
}
}
// 折线图柱状图E
enterprise-manager-ui/admin/src/views/home/line.vue
0 → 100644
View file @
b8e7d429
<
template
>
<div
style=
"width: 100%; height: 100%"
></div>
</
template
>
<
script
>
// import { deepClone } from "@/utils/js/common.js";
// import lodash from "lodash";
export
default
{
props
:
{
info
:
{
type
:
Array
,
default
:
()
=>
[],
},
option
:
{
type
:
Object
,
default
:
()
=>
{},
},
},
watch
:{
info
(){
this
.
_initEcharts
();
}
},
mounted
()
{
this
.
_initEcharts
();
},
methods
:
{
_initEcharts
()
{
const
NAME
=
[];
const
VALUE
=
[];
const
myChart
=
this
.
$echarts
.
init
(
this
.
$el
);
const
echarts
=
this
.
$echarts
;
console
.
log
(
123123
,
this
.
info
);
this
.
info
.
forEach
((
item
)
=>
{
NAME
.
push
(
item
.
datetime
);
VALUE
.
push
(
item
.
count
);
});
let
option
=
{
legend
:
{
icon
:
"
circle
"
,
bottom
:
"
5%
"
,
right
:
"
center
"
,
itemWidth
:
10
,
itemGap
:
10
,
textStyle
:
{
color
:
"
#556677
"
,
},
},
grid
:
{
left
:
"
2%
"
,
right
:
"
2%
"
,
top
:
"
15%
"
,
bottom
:
"
15%
"
,
containLabel
:
true
,
},
tooltip
:
{
trigger
:
"
axis
"
,
axisPointer
:
{
type
:
"
line
"
,
lineStyle
:
{
// color: "rgba(50, 216, 205, 1)",
color
:
"
#A1A7B3
"
,
},
},
},
xAxis
:
[
{
type
:
"
category
"
,
boundaryGap
:
1
,
axisLine
:
{
show
:
false
,
},
axisLabel
:
{
color
:
"
#A1A7B3
"
,
},
splitLine
:
{
show
:
false
,
},
axisTick
:
{
show
:
false
,
},
data
:
NAME
,
},
],
yAxis
:
[
{
type
:
"
value
"
,
name
:
""
,
padding
:
5
,
// max: 1000,
splitLine
:
{
show
:
true
,
lineStyle
:
{
color
:
"
#A1A7B3
"
,
type
:
"
dashed
"
,
},
},
axisLine
:
{
show
:
false
,
},
axisLabel
:
{
show
:
true
,
margin
:
10
,
textStyle
:
{
color
:
"
#A1A7B3
"
,
},
},
axisTick
:
{
show
:
false
,
},
},
],
series
:
[
{
// name: "预约次数",
type
:
"
line
"
,
symbolSize
:
5
,
// smooth: true,
// showSymbol: false,
itemStyle
:
{
normal
:
{
color
:
"
#6093F9
"
,
lineStyle
:
{
color
:
"
#6093F9
"
,
width
:
2
,
},
},
},
areaStyle
:
{
normal
:
{
color
:
"
#BDD2FD
"
,
},
},
// data: [140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240],
data
:
VALUE
,
},
],
};
// if (this.option) {
// option = lodash.defaultsDeep(deepClone(this.option), option);
// }
myChart
.
setOption
(
option
,
true
);
},
},
};
</
script
>
\ No newline at end of file
enterprise-manager-ui/admin/src/views/home/pie.vue
0 → 100644
View file @
b8e7d429
<
template
>
<div></div>
</
template
>
<
script
>
// import { deepClone } from "@/utils/js/common.js";
// import lodash from "lodash";
// import { getStatisticSexual } from "@/api/dataAdmin.js";
export
default
{
props
:
{
info
:
{
type
:
Array
,
default
:
()
=>
[
{
value
:
300
,
name
:
"
女士
"
,
},
{
value
:
700
,
name
:
"
男士
"
,
},
],
},
option
:
{
type
:
Object
,
default
:
()
=>
{},
},
day
:
{
type
:
String
,
default
:
()
=>
"
0
"
,
},
},
watch
:
{
day
(
newval
,
oldval
)
{
newval
?
this
.
getData
()
:
""
;
},
},
mounted
()
{
this
.
getData
();
},
methods
:
{
async
getData
()
{
// let res = await getStatisticSexual({
// selected: this.day == 5 ? null : this.day,
// });
// if (res.code != 1) return;
// let value = res.data.map(({ idcard_Sex, nums }) => ({
// name: idcard_Sex,
// value: nums,
// }));
// this._initEcharts(value);
console
.
log
(
this
.
info
);
this
.
_initEcharts
(
this
.
info
);
},
_initEcharts
(
value
)
{
const
myChart
=
this
.
$echarts
.
init
(
this
.
$el
);
const
echarts
=
this
.
$echarts
;
const
colorList
=
[
"
#4D88FE
"
,
"
#50CCCB
"
,
"
#FFBF3C
"
,
"
#703cff
"
,
"
#7b7881
"
];
let
option
=
{
grid
:
{
left
:
"
2%
"
,
right
:
"
2%
"
,
top
:
"
5%
"
,
bottom
:
"
15%
"
,
containLabel
:
true
,
},
legend
:
{
top
:
"
15%
"
,
right
:
"
right
"
,
itemWidth
:
13
,
textStyle
:
{
color
:
"
#556677
"
,
},
},
graphic
:
{
// 这个属性可以在饼图内部填充图片,文字等
elements
:
[
{
type
:
"
image
"
,
left
:
"
center
"
,
//
top
:
"
center
"
,
// 配置图片居中
},
],
},
series
:
[
{
type
:
"
pie
"
,
radius
:
"
80%
"
,
center
:
[
"
30%
"
,
"
52%
"
],
label
:
{
fontWeight
:
"
bold
"
,
rich
:
{
rich_blue
:
{
color
:
"
#4D88FE
"
,
},
rich_orange
:
{
color
:
"
#FFBF3C
"
,
},
rich_green
:
{
color
:
"
#50CCCB
"
,
},
},
},
label
:
{
normal
:
{
formatter
:
"
{c}
"
,
//自定义显示格式(b:name, c:value, d:百分比)
},
},
labelLine
:
{
length
:
6
,
length2
:
6
,
},
itemStyle
:
{
normal
:
{
borderColor
:
"
#fff
"
,
borderWidth
:
2
,
color
:
function
(
params
)
{
return
colorList
[
params
.
dataIndex
];
},
},
},
data
:
value
,
},
],
};
// if (this.option) {
// option = lodash.defaultsDeep(deepClone(this.option), option);
// }
myChart
.
setOption
(
option
,
true
);
},
},
};
</
script
>
enterprise-manager-ui/admin/src/views/login/login.vue
View file @
b8e7d429
<!-- 登录页面 -->
<
template
>
<div
class=
"page page-login flex flex-v"
>
<div
class=
"form-wrap flex flex-1"
>
<div
class=
"loginpage"
>
<!-- 轮播 -->
<el-carousel
ref=
"carousel"
height=
"960px"
:autoplay=
"true"
:loop=
"true"
arrow=
"never"
:interval=
"3000"
indicator-position=
"none"
@
mouseenter.native=
"delHandleMouseEnter"
>
<el-carousel-item>
<img
class=
"lci-img"
src=
"~@/assets/images/u2.png"
/>
</el-carousel-item>
<el-carousel-item>
<img
class=
"lci-img"
src=
"~@/assets/images/u3.png"
/>
</el-carousel-item>
<el-carousel-item>
<img
class=
"lci-img"
src=
"~@/assets/images/u4.png"
/>
</el-carousel-item>
</el-carousel>
<!-- 右侧 -->
<div
class=
"l-right"
>
<div
class=
"lr-title"
>
欢迎使用企业官网综合管理后台
</div>
<div
class=
"lr-from"
>
<el-form
@
submit.prevent=
"onSubmit"
ref=
"form"
:model=
"form"
label-width=
"80px"
size=
"small"
class=
"lr-form"
>
<h1>
{{
sysName
}}
</h1>
<el-form-item
label=
"用户名"
>
<el-input
v-model=
"form.loginName"
></el-input>
<el-form-item>
<el-input
v-model=
"form.loginName"
placeholder=
"请输入用户名"
></el-input>
</el-form-item>
<el-form-item
label=
"密码"
>
<el-input
v-model=
"form.password"
type=
"password"
></el-input>
<el-form-item>
<el-input
v-model=
"form.password"
type=
"password"
placeholder=
"请输入密码"
></el-input>
</el-form-item>
<el-form-item
size=
"large"
>
<el-button
...
...
@@ -23,21 +47,30 @@
native-type=
"submit"
:loading=
"loading"
@
click=
"onSubmit"
class=
"denglubtn"
>
登录
</el-button
>
</el-form-item>
</el-form>
</div>
</div>
<div
class=
"footer"
></div>
</div>
</
template
>
<
script
>
export
default
{
name
:
"
login
"
,
created
()
{},
mounted
()
{
// 为了第一次鼠标进入就触发,需要在mounted方法中写,而且轮播图是多张,所以需要循环遍历index
this
.
$refs
.
carousel
.
handleMouseEnter
=
()
=>
{};
},
methods
:
{
// 鼠标移入卡片banner不停止
delHandleMouseEnter
()
{
this
.
$refs
.
carousel
.
handleMouseEnter
=
()
=>
{};
},
login
()
{
this
.
loading
=
true
;
this
.
$post
(
"
/login/login
"
,
this
.
form
)
...
...
@@ -48,7 +81,7 @@ export default {
this
.
$store
.
commit
(
"
setUserData
"
,
data
);
console
.
log
(
"
userData
"
,
this
.
$store
.
state
.
userData
);
this
.
$router
.
replace
({
path
:
this
.
redirect
,
path
:
this
.
redirect
});
},
loginFail
(
error
)
{
...
...
@@ -69,7 +102,7 @@ export default {
return
this
.
$message
.
warning
(
"
请输入密码
"
);
}
this
.
login
();
}
,
}
},
data
()
{
return
{
...
...
@@ -78,56 +111,16 @@ export default {
redirect
:
this
.
$route
.
query
.
redirect
||
"
/
"
,
form
:
{
loginName
:
""
,
password
:
""
,
password
:
""
},
sysName
:
localStorage
.
getItem
(
"
sysName
"
)
?
localStorage
.
getItem
(
"
sysName
"
)
:
"
企业服务管理平台
"
,
:
"
企业服务管理平台
"
};
}
,
}
};
</
script
>
<
style
lang=
"less"
>
.el-divider--horizontal {
margin: 5px 0;
background: 0 0;
border-top: 2px solid #e8eaec;
}
.page-login {
background-image: linear-gradient(45deg, #333, #111);
background-size: 40px 40px;
margin: 0;
height: 100%;
.el-form {
margin: auto;
width: 400px;
padding: 25px 25px 0 0;
background: #fff;
h1 {
text-align: center;
font-size: 20px;
font-weight: 500;
margin-bottom: 20px;
}
button {
margin-top: 10px;
width: 240px;
}
.el-input-group__append {
padding: 0;
font-size: 0;
}
}
.footer {
height: 80px;
font-size: 12px;
color: #999;
text-align: center;
line-height: 80px;
a {
color: #999;
}
}
}
<
style
lang=
"less"
scopped
>
@import "~@/assets/less/login.less";
</
style
>
enterprise-manager-ui/admin/vue.config.js
View file @
b8e7d429
...
...
@@ -17,8 +17,9 @@ module.exports = {
hot
:
true
,
//自动保存
proxy
:
{
"
/enterprise
"
:
{
target
:
"
http://test.office.com:11073
"
,
//
target: "http://test.office.com:11073",
// target: 'http://8.136.255.30:11078',
target
:
'
http://192.168.0.98:11086
'
,
changeOrigin
:
true
,
secure
:
false
,
cookieDomainRewrite
:
"
localhost
"
,
...
...
enterprise-manager-ui/admin/yarn.lock
View file @
b8e7d429
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment