Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
E
enterprise-opt-kit
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fubaole
enterprise-opt-kit
Commits
75c52e84
Commit
75c52e84
authored
May 14, 2021
by
乐宝呗666
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
概况接口联调
parent
dd078b2c
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
949 additions
and
317 deletions
+949
-317
.env.development
.env.development
+5
-0
.env.production
.env.production
+10
-0
service.js
src/api/service.js
+20
-12
sys.basic.js
src/api/sys.basic.js
+113
-2
user.js
src/api/user.js
+4
-4
public.scss
src/assets/style/public.scss
+12
-0
index.vue
src/components/Pagination/index.vue
+100
-0
graphChart.vue
src/components/echarts/graphChart.vue
+8
-22
main.js
src/main.js
+2
-1
child.js
src/router/modules/child.js
+5
-0
scroll-to.js
src/utils/scroll-to.js
+59
-0
companyNews.vue
src/views/system/index/components/companyNews.vue
+29
-24
deptIntroduction.vue
src/views/system/index/components/deptIntroduction.vue
+5
-3
deptNews.vue
src/views/system/index/components/deptNews.vue
+14
-14
deptOperation.vue
src/views/system/index/components/deptOperation.vue
+72
-64
enterpriseDetail.vue
src/views/system/index/components/enterpriseDetail.vue
+131
-0
enterpriseSize.vue
src/views/system/index/components/enterpriseSize.vue
+19
-56
importantProject.vue
src/views/system/index/components/importantProject.vue
+66
-55
knowledgeGraph.vue
src/views/system/index/components/knowledgeGraph.vue
+217
-1
distributed.vue
...s/system/index/components/mainPageEcharts/distributed.vue
+30
-19
statistics.vue
...ws/system/index/components/mainPageEcharts/statistics.vue
+11
-16
newsDetail.vue
src/views/system/index/components/newsDetail.vue
+5
-21
vue.config.js
vue.config.js
+12
-3
No files found.
.env.development
View file @
75c52e84
...
@@ -2,3 +2,8 @@
...
@@ -2,3 +2,8 @@
# 页面 title 前缀
# 页面 title 前缀
VUE_APP_TITLE=D2Admin Dev
VUE_APP_TITLE=D2Admin Dev
NODE_ENV = "development"
# 开发环境 API
VUE_APP_BASE_API = '/api'
# 开发环境 URL
VUE_APP_REQUEST_URL = 'http://111.203.232.175:8085'
.env.production
0 → 100644
View file @
75c52e84
# 生产环境
# 页面 title 前缀
VUE_APP_TITLE = D2Admin Dev
NODE_ENV = "production"
# 生产环境 API
VUE_APP_BASE_API = '/'
# 生产环境 URL
VUE_APP_REQUEST_URL = 'http://111.203.232.175:8085'
src/api/service.js
View file @
75c52e84
...
@@ -2,7 +2,8 @@ import axios from 'axios'
...
@@ -2,7 +2,8 @@ import axios from 'axios'
import
Adapter
from
'axios-mock-adapter'
import
Adapter
from
'axios-mock-adapter'
import
{
get
}
from
'lodash'
import
{
get
}
from
'lodash'
import
util
from
'@/libs/util'
import
util
from
'@/libs/util'
import
store
from
'../../store/index'
import
{
Message
}
from
'element-ui'
// import store from '../../store/index'
// import { errorLog, errorCreate } from './tools'
// import { errorLog, errorCreate } from './tools'
/**
/**
...
@@ -10,14 +11,19 @@ import store from '../../store/index'
...
@@ -10,14 +11,19 @@ import store from '../../store/index'
*/
*/
function
createService
()
{
function
createService
()
{
// 创建一个 axios 实例
// 创建一个 axios 实例
const
service
=
axios
.
create
()
const
service
=
axios
.
create
({
baseURL
:
process
.
env
.
NODE_ENV
===
'production'
?
process
.
env
.
VUE_APP_REQUEST_URL
:
process
.
env
.
VUE_APP_BASE_API
,
// baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
timeout
:
5000
// request timeout
})
// 请求拦截
// 请求拦截
service
.
interceptors
.
request
.
use
(
service
.
interceptors
.
request
.
use
(
// config => config,
// config => config,
config
=>
{
config
=>
{
const
token
=
sessionStorage
.
getItem
(
'token'
)
const
token
=
sessionStorage
.
getItem
(
'token'
)
if
(
token
)
{
if
(
token
)
{
config
.
headers
[
'Authorization'
]
=
token
config
.
headers
.
Authorization
=
token
}
}
return
config
return
config
},
},
...
@@ -71,7 +77,8 @@ function createService () {
...
@@ -71,7 +77,8 @@ function createService () {
case
505
:
error
.
message
=
'HTTP版本不受支持'
;
break
case
505
:
error
.
message
=
'HTTP版本不受支持'
;
break
default
:
break
default
:
break
}
}
// errorLog(error)
Message
.
closeAll
()
Message
.
error
(
error
.
message
)
return
Promise
.
reject
(
error
)
return
Promise
.
reject
(
error
)
}
}
)
)
...
@@ -91,16 +98,17 @@ function createRequestFunction (service) {
...
@@ -91,16 +98,17 @@ function createRequestFunction (service) {
'Content-Type'
:
get
(
config
,
'headers.Content-Type'
,
'application/json'
)
'Content-Type'
:
get
(
config
,
'headers.Content-Type'
,
'application/json'
)
},
},
timeout
:
5000
,
timeout
:
5000
,
baseURL
:
'http://111.203.232.175:8085'
,
// baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_REQUEST_URL : process.env.VUE_APP_BASE_API,
data
:
{}
baseURL
:
process
.
env
.
VUE_APP_BASE_API
// data: {}
}
}
return
service
(
Object
.
assign
(
configDefault
,
config
))
return
service
(
Object
.
assign
(
configDefault
,
config
))
}
}
}
}
// 用于真实网络请求的实例和请求方法
// 用于真实网络请求的实例和请求方法
export
const
service
=
createService
()
export
const
request
=
createService
()
export
const
request
=
createRequestFunction
(
service
)
//
export const request = createRequestFunction(service)
// 用于模拟网络请求的实例和请求方法
// 用于模拟网络请求的实例和请求方法
export
const
serviceForMock
=
createService
()
export
const
serviceForMock
=
createService
()
...
...
src/api/sys.basic.js
View file @
75c52e84
import
{
service
,
request
,
serviceForMock
,
requestForMock
,
mock
}
from
'./service'
import
{
request
}
from
'./service'
/**
/**
* 获取知识图谱
* 获取知识图谱
*/
*/
export
function
GetBasicList
()
{
export
function
GetBasicList
()
{
return
request
({
return
request
({
url
:
`/tp/basic/getList`
,
url
:
'/tp/basic/getList'
,
method
:
'post'
method
:
'post'
})
})
}
}
...
@@ -15,3 +15,114 @@ export function GetMapChina (type) {
...
@@ -15,3 +15,114 @@ export function GetMapChina (type) {
method
:
'post'
method
:
'post'
})
})
}
}
// 获取企业介绍详情
export
function
getIntroductionById
(
params
)
{
return
request
({
url
:
'/tp/introduction/getById'
,
method
:
'get'
,
params
})
}
// 获取主营业务详情
export
function
getMainBusinessById
(
params
)
{
return
request
({
url
:
'/tp/mainBusiness/getById'
,
method
:
'get'
,
params
})
}
// 获取公司荣誉详情
export
function
getGloryById
(
params
)
{
return
request
({
url
:
'/tp/glory/getById'
,
method
:
'get'
,
params
})
}
// 获取公司文化详情
export
function
getCultureById
(
params
)
{
return
request
({
url
:
'/tp/culture/getById'
,
method
:
'get'
,
params
})
}
// 获取公司资质详情
export
function
getCertificationList
()
{
return
request
({
url
:
'/tp/certification/getCertificationList'
,
method
:
'get'
})
}
// 获取公司新闻列表
export
function
getNewsPageList
(
params
)
{
return
request
({
url
:
'/tp/news/getPageList'
,
method
:
'post'
,
params
})
}
// 获取公司新闻详情
export
function
getNewsById
(
params
)
{
return
request
({
url
:
'/tp/news/getById'
,
method
:
'get'
,
params
})
}
// 获取企业规模列表
export
function
getScalePageList
(
params
)
{
return
request
({
url
:
'/tp/scale/getPageList'
,
method
:
'post'
,
params
})
}
// 获取公司规模详情
export
function
getScaleById
(
params
)
{
return
request
({
url
:
'/tp/scale/getById'
,
method
:
'get'
,
params
})
}
// 公司营收数据
export
function
getRevenueDataList
(
params
)
{
return
request
({
url
:
'/tp/revenue/getRevenueDataList'
,
method
:
'get'
,
params
})
}
// 查询客户增长分布
export
function
getCustomer
(
params
)
{
return
request
({
url
:
'/tp/revenue/getCustomer'
,
method
:
'get'
,
params
})
}
// 查询解决方案数据
export
function
getMajorItems
(
params
)
{
return
request
({
url
:
'/tp/majorItems/getMajorItems'
,
method
:
'get'
,
params
})
}
// 查询产品演示和案例展示
export
function
productDemonstration
(
params
)
{
return
request
({
url
:
'/tp/product/productDemonstration'
,
method
:
'get'
,
params
})
}
// 获取行业信息
export
function
getIndustryData
()
{
return
request
({
url
:
'/tp/customerInformation/getList'
,
method
:
'post'
})
}
src/api/user.js
View file @
75c52e84
// import request from '@/utils/request'
// import request from '@/utils/request'
import
{
service
,
request
,
serviceForMock
,
requestForMock
,
mock
}
from
'./service'
import
{
request
}
from
'./service'
export
function
login
(
params
)
{
export
function
login
(
params
)
{
return
request
({
return
request
({
url
:
'/tp/login'
,
url
:
'/tp/login'
,
method
:
'post'
,
method
:
'post'
,
...
@@ -9,7 +9,7 @@ export function login(params) {
...
@@ -9,7 +9,7 @@ export function login(params) {
})
})
}
}
export
function
getInfo
(
token
)
{
export
function
getInfo
(
token
)
{
return
request
({
return
request
({
url
:
'/vue-admin-template/user/info'
,
url
:
'/vue-admin-template/user/info'
,
method
:
'get'
,
method
:
'get'
,
...
@@ -17,7 +17,7 @@ export function getInfo(token) {
...
@@ -17,7 +17,7 @@ export function getInfo(token) {
})
})
}
}
export
function
logout
()
{
export
function
logout
()
{
return
request
({
return
request
({
url
:
'/vue-admin-template/user/logout'
,
url
:
'/vue-admin-template/user/logout'
,
method
:
'post'
method
:
'post'
...
...
src/assets/style/public.scss
View file @
75c52e84
...
@@ -190,6 +190,13 @@ ul{list-style: none; padding: 0}
...
@@ -190,6 +190,13 @@ ul{list-style: none; padding: 0}
.search-box
{
.search-box
{
padding
:
.2rem
;
padding
:
.2rem
;
.el-input--mini
.el-input__inner
{
height
:
.28rem
;
line-height
:
.28rem
;
}
.el-input--mini
.el-input__icon
{
line-height
:
.28rem
;
}
}
}
// 选择框 搜索框样式
// 选择框 搜索框样式
.el-input__inner
{
.el-input__inner
{
...
@@ -215,7 +222,12 @@ ul{list-style: none; padding: 0}
...
@@ -215,7 +222,12 @@ ul{list-style: none; padding: 0}
width
:
calc
(
100%
-
0
.64rem
);
width
:
calc
(
100%
-
0
.64rem
);
float
:
left
;
float
:
left
;
}
}
.el-input--mini
.el-input__inner
{
height
:
.28rem
;
line-height
:
.28rem
;
}
.searchBtn
{
.searchBtn
{
font-size
:
.14rem
;
color
:
#000E42
;
color
:
#000E42
;
width
:
.64rem
;
width
:
.64rem
;
height
:
.28rem
;
height
:
.28rem
;
...
...
src/components/Pagination/index.vue
0 → 100644
View file @
75c52e84
<
template
>
<div
:class=
"
{'hidden':hidden}" class="pagination-container">
<el-pagination
:background=
"background"
:current-page
.
sync=
"currentPage"
:page-size
.
sync=
"pageSize"
:layout=
"layout"
:page-sizes=
"pageSizes"
:total=
"total"
v-bind=
"$attrs"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
/>
</div>
</
template
>
<
script
>
import
{
scrollTo
}
from
'@/utils/scroll-to'
export
default
{
name
:
'Pagination'
,
props
:
{
total
:
{
required
:
true
,
type
:
Number
},
page
:
{
type
:
Number
,
default
:
1
},
limit
:
{
type
:
Number
,
default
:
10
},
pageSizes
:
{
type
:
Array
,
default
()
{
return
[
10
,
20
,
30
,
50
]
}
},
layout
:
{
type
:
String
,
default
:
'total, sizes, prev, pager, next, jumper'
},
background
:
{
type
:
Boolean
,
default
:
true
},
autoScroll
:
{
type
:
Boolean
,
default
:
true
},
hidden
:
{
type
:
Boolean
,
default
:
false
}
},
computed
:
{
currentPage
:
{
get
()
{
return
this
.
page
},
set
(
val
)
{
this
.
$emit
(
'update:page'
,
val
)
}
},
pageSize
:
{
get
()
{
return
this
.
limit
},
set
(
val
)
{
this
.
$emit
(
'update:limit'
,
val
)
}
}
},
methods
:
{
handleSizeChange
(
val
)
{
this
.
$emit
(
'pagination'
,
{
page
:
this
.
currentPage
,
limit
:
val
})
if
(
this
.
autoScroll
)
{
scrollTo
(
0
,
800
)
}
},
handleCurrentChange
(
val
)
{
this
.
$emit
(
'pagination'
,
{
page
:
val
,
limit
:
this
.
pageSize
})
if
(
this
.
autoScroll
)
{
scrollTo
(
0
,
800
)
}
}
}
}
</
script
>
<
style
scoped
>
.pagination-container
{
padding
:
16px
;
}
.pagination-container.hidden
{
display
:
none
;
}
</
style
>
src/components/echarts/graphChart.vue
View file @
75c52e84
...
@@ -19,61 +19,47 @@ export default {
...
@@ -19,61 +19,47 @@ export default {
methods
:
{
methods
:
{
drawLine
()
{
drawLine
()
{
const
vm
=
this
const
vm
=
this
// const _list = vm.message
const
_list
=
{
const
_list
=
{
nodes
:
[
nodes
:
[
{
{
id
:
'0'
,
id
:
'0'
,
name
:
'群智合'
,
name
:
'群智合'
,
symbolSize
:
5
0
,
symbolSize
:
3
0
,
value
:
28.685715
,
value
:
1
28.685715
,
category
:
0
,
category
:
2
,
itemStyle
:
{
itemStyle
:
{
color
:
'#30DDF4'
color
:
'#30DDF4'
},
label
:
{
position
:
'inside'
}
}
},
},
{
{
id
:
'1'
,
id
:
'1'
,
name
:
'中行'
,
name
:
'中行'
,
symbolSize
:
4
0
,
symbolSize
:
2
0
,
value
:
4
,
value
:
4
,
category
:
0
,
category
:
0
,
itemStyle
:
{
itemStyle
:
{
color
:
'#4f19c7'
color
:
'#4f19c7'
},
label
:
{
fontSize
:
12
,
position
:
'inside'
}
}
},
},
{
{
id
:
'2'
,
id
:
'2'
,
name
:
'新航城'
,
name
:
'新航城'
,
symbolSize
:
4
0
,
symbolSize
:
2
0
,
value
:
9.485714
,
value
:
9.485714
,
category
:
1
,
category
:
0
,
itemStyle
:
{
itemStyle
:
{
color
:
'#c71969'
color
:
'#c71969'
},
label
:
{
fontSize
:
12
,
position
:
'inside'
}
}
},
},
{
{
id
:
'3'
,
id
:
'3'
,
name
:
'科技局'
,
name
:
'科技局'
,
symbolSize
:
4
0
,
symbolSize
:
2
0
,
value
:
9.485714
,
value
:
9.485714
,
category
:
1
,
category
:
1
,
itemStyle
:
{
itemStyle
:
{
color
:
'#1984c7'
color
:
'#1984c7'
},
label
:
{
fontSize
:
12
,
position
:
'inside'
}
}
},
},
{
{
...
...
src/main.js
View file @
75c52e84
...
@@ -6,7 +6,7 @@ import App from './App'
...
@@ -6,7 +6,7 @@ import App from './App'
import
d2Admin
from
'./plugin/d2admin'
import
d2Admin
from
'./plugin/d2admin'
// store
// store
import
store
from
'../store/index'
import
store
from
'../store/index'
import
qs
from
'qs'
// import $ from 'jquery'
// import $ from 'jquery'
// 菜单和路由设置
// 菜单和路由设置
import
router
from
'./router'
import
router
from
'./router'
...
@@ -29,6 +29,7 @@ Object.keys(filters).forEach(key => {
...
@@ -29,6 +29,7 @@ Object.keys(filters).forEach(key => {
Vue
.
filter
(
key
,
filters
[
key
])
Vue
.
filter
(
key
,
filters
[
key
])
})
})
Vue
.
prototype
.
$echarts
=
echarts
Vue
.
prototype
.
$echarts
=
echarts
Vue
.
prototype
.
$qs
=
qs
Vue
.
prototype
.
downUrl
=
'http://10.11.16.19:8080'
Vue
.
prototype
.
downUrl
=
'http://10.11.16.19:8080'
Vue
.
prototype
.
baseUrl
=
'http://10.12.8.67:51005'
Vue
.
prototype
.
baseUrl
=
'http://10.12.8.67:51005'
...
...
src/router/modules/child.js
View file @
75c52e84
...
@@ -27,5 +27,10 @@ export default [
...
@@ -27,5 +27,10 @@ export default [
name
:
'enterpriseSize'
,
name
:
'enterpriseSize'
,
meta
,
meta
,
component
:
_import
(
'system/index/components/enterpriseSize'
)
component
:
_import
(
'system/index/components/enterpriseSize'
)
},
{
path
:
'/enterpriseDetail'
,
// 企业详情
name
:
'enterpriseDetail'
,
meta
,
component
:
_import
(
'system/index/components/enterpriseDetail'
)
}
}
]
]
src/utils/scroll-to.js
0 → 100644
View file @
75c52e84
Math
.
easeInOutQuad
=
function
(
t
,
b
,
c
,
d
)
{
t
/=
d
/
2
if
(
t
<
1
)
{
return
c
/
2
*
t
*
t
+
b
}
t
--
return
-
c
/
2
*
(
t
*
(
t
-
2
)
-
1
)
+
b
}
// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
var
requestAnimFrame
=
(
function
()
{
return
window
.
requestAnimationFrame
||
window
.
webkitRequestAnimationFrame
||
window
.
mozRequestAnimationFrame
||
function
(
callback
)
{
window
.
setTimeout
(
callback
,
1000
/
60
)
}
})()
/**
* Because it's so fucking difficult to detect the scrolling element, just move them all
* @param {number} amount
*/
function
move
(
amount
)
{
document
.
documentElement
.
scrollTop
=
amount
document
.
body
.
parentNode
.
scrollTop
=
amount
document
.
body
.
scrollTop
=
amount
}
function
position
()
{
return
document
.
documentElement
.
scrollTop
||
document
.
body
.
parentNode
.
scrollTop
||
document
.
body
.
scrollTop
}
/**
* @param {number} to
* @param {number} duration
* @param {Function} callback
*/
export
function
scrollTo
(
to
,
duration
,
callback
)
{
const
start
=
position
()
const
change
=
to
-
start
const
increment
=
20
let
currentTime
=
0
duration
=
(
typeof
(
duration
)
===
'undefined'
)
?
500
:
duration
var
animateScroll
=
function
()
{
// increment the time
currentTime
+=
increment
// find the value with the quadratic in-out easing function
var
val
=
Math
.
easeInOutQuad
(
currentTime
,
start
,
change
,
duration
)
// move the document.body
move
(
val
)
// do the animation unless its over
if
(
currentTime
<
duration
)
{
requestAnimFrame
(
animateScroll
)
}
else
{
if
(
callback
&&
typeof
(
callback
)
===
'function'
)
{
// the animation is done so lets callback
callback
()
}
}
}
animateScroll
()
}
src/views/system/index/components/companyNews.vue
View file @
75c52e84
...
@@ -8,23 +8,25 @@
...
@@ -8,23 +8,25 @@
</div>
</div>
<div
class=
"news-content"
>
<div
class=
"news-content"
>
<el-table
stripe
:data=
"tableData"
style=
"width: 100%"
>
<el-table
stripe
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
prop=
"
name"
label=
"内容
"
>
<el-table-column
prop=
"
title
"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<
a
@
click
.
stop=
"goDetail(scope.row)"
>
{{
scope
.
row
.
name
}}
</a
>
<
div
@
click
.
stop=
"goDetail(scope.row)"
>
{{
scope
.
row
.
title
}}
</div
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"right"
prop=
"
publishTime"
label=
"日期
"
>
<el-table-column
align=
"right"
prop=
"
releaseDate
"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<
a
@
click
.
stop=
"goDetail(scope.row)"
>
{{
scope
.
row
.
publishTime
}}
</a
>
<
div
@
click
.
stop=
"goDetail(scope.row)"
>
{{
scope
.
row
.
releaseDate
}}
</div
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<el-pagination
<Pagination
background
v-show=
"pageObj.total > 0"
class=
"text-right"
:total=
"pageObj.total"
layout=
"prev, pager, next"
layout=
"->,total, prev, pager, next"
:total=
"1000"
>
:page
.
sync=
"pageObj.pageNo"
</el-pagination>
:limit
.
sync=
"pageObj.pageSize"
@
pagination=
"pageChange"
/>
</div>
</div>
</div>
</div>
</d2-container>
</d2-container>
...
@@ -32,28 +34,31 @@
...
@@ -32,28 +34,31 @@
<
script
>
<
script
>
import
headerLayout
from
'@/components/headerLayout/index'
// 公共头部
import
headerLayout
from
'@/components/headerLayout/index'
// 公共头部
import
Pagination
from
'@/components/Pagination'
import
*
as
API_BASIC
from
'@/api/sys.basic.js'
export
default
{
export
default
{
components
:
{
headerLayout
},
components
:
{
headerLayout
,
Pagination
},
data
()
{
data
()
{
return
{
return
{
tableData
:
[
pageObj
:
{
{
id
:
'1'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
pageNo
:
1
,
{
id
:
'2'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
total
:
1
,
{
id
:
'3'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
pageSize
:
10
{
id
:
'4'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
},
{
id
:
'5'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
tableData
:
[]
{
id
:
'6'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
{
id
:
'7'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
{
id
:
'8'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
{
id
:
'9'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
},
{
id
:
'10'
,
name
:
'千帆竞渡,群智合助力医药健康行业数字化'
,
publishTime
:
'2021年4月30日'
,
source
:
'中国网'
}
]
}
}
},
},
mounted
()
{
mounted
()
{
this
.
getNewsList
()
},
},
methods
:
{
methods
:
{
// 查询概况页面数据
getNewsList
()
{
API_BASIC
.
getNewsPageList
({
_index
:
1
,
_size
:
10
}).
then
(
res
=>
{
this
.
tableData
=
res
.
data
.
records
this
.
pageObj
.
total
=
Number
(
res
.
data
.
total
)
})
},
goDetail
(
row
)
{
goDetail
(
row
)
{
this
.
$router
.
push
({
path
:
'/newsDetail'
,
query
:
{
row
:
JSON
.
stringify
(
row
)
}
})
this
.
$router
.
push
({
path
:
'/newsDetail'
,
query
:
{
row
:
JSON
.
stringify
(
row
)
}
})
},
},
...
...
src/views/system/index/components/deptIntroduction.vue
View file @
75c52e84
...
@@ -19,8 +19,6 @@
...
@@ -19,8 +19,6 @@
</
template
>
</
template
>
<
script
>
<
script
>
// import * as API_BASIC from '@/api/sys.basic.js'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -77,7 +75,11 @@ export default {
...
@@ -77,7 +75,11 @@ export default {
handleDetail
(
item
)
{
handleDetail
(
item
)
{
this
.
activeIndex
=
item
this
.
activeIndex
=
item
if
(
this
.
basicData
[
item
].
name
===
'企业规模'
)
{
if
(
this
.
basicData
[
item
].
name
===
'企业规模'
)
{
this
.
$router
.
push
(
'./enterpriseSize'
)
this
.
$router
.
push
(
'/enterpriseSize'
)
}
else
if
(
this
.
basicData
[
item
].
name
===
'企业产权'
)
{
// this.$router.push('/enterpriseSize')
}
else
{
this
.
$router
.
push
({
path
:
'/enterpriseDetail'
,
query
:
{
type
:
item
}
})
}
}
}
}
}
}
...
...
src/views/system/index/components/deptNews.vue
View file @
75c52e84
...
@@ -18,31 +18,32 @@ export default {
...
@@ -18,31 +18,32 @@ export default {
columnWidth
:
[
350
,
100
],
columnWidth
:
[
350
,
100
],
oddRowBGC
:
'rgba(47,219,243,0.15)'
,
oddRowBGC
:
'rgba(47,219,243,0.15)'
,
evenRowBGC
:
'rgba(47,219,243,0.05)'
,
evenRowBGC
:
'rgba(47,219,243,0.05)'
,
data
:
[
data
:
[]
[
'群智合成功交付实施*****项目'
,
'2010/9/10'
],
// data: [
[
'群智合成功交付实施*****项目'
,
'2010/9/10'
],
// ['群智合成功交付实施*****项目', '2010/9/10'],
[
'群智合成功交付实施*****项目'
,
'2010/9/10'
],
// ['群智合成功交付实施*****项目', '2010/9/10'],
[
'群智合成功交付实施*****项目'
,
'2010/9/10'
],
// ['群智合成功交付实施*****项目', '2010/9/10'],
[
'群智合成功交付实施*****项目'
,
'2010/9/10'
],
// ['群智合成功交付实施*****项目', '2010/9/10'],
[
'群智合成功交付实施*****项目'
,
'2010/9/10'
]
// ['群智合成功交付实施*****项目', '2010/9/10'],
]
// ['群智合成功交付实施*****项目', '2010/9/10']
// ]
}
}
}
}
},
},
mounted
()
{
mounted
()
{
//
this.getNewsList()
this
.
getNewsList
()
},
},
methods
:
{
methods
:
{
// 查询概况页面数据
// 查询概况页面数据
getNewsList
()
{
getNewsList
()
{
API_BASIC
.
GetBasicList
(
).
then
(
res
=>
{
API_BASIC
.
getNewsPageList
({
_index
:
1
,
_size
:
10
}
).
then
(
res
=>
{
const
newsList
=
res
.
data
.
new
s
const
newsList
=
res
.
data
.
record
s
const
_data
=
[]
const
_data
=
[]
newsList
.
forEach
(
element
=>
{
newsList
.
forEach
(
element
=>
{
_data
.
push
([
element
.
introduce
,
element
.
createTim
e
])
_data
.
push
([
element
.
title
,
element
.
releaseDat
e
])
})
})
this
.
config
=
{
this
.
config
=
{
columnWidth
:
[
350
,
1
00
],
columnWidth
:
[
350
,
2
00
],
oddRowBGC
:
'rgba(47,219,243,0.15)'
,
oddRowBGC
:
'rgba(47,219,243,0.15)'
,
evenRowBGC
:
'rgba(47,219,243,0.05)'
,
evenRowBGC
:
'rgba(47,219,243,0.05)'
,
data
:
_data
data
:
_data
...
@@ -64,6 +65,5 @@ export default {
...
@@ -64,6 +65,5 @@ export default {
padding
:
.24rem
;
padding
:
.24rem
;
width
:
100%
;
width
:
100%
;
}
}
}
}
</
style
>
</
style
>
src/views/system/index/components/deptOperation.vue
View file @
75c52e84
...
@@ -4,12 +4,22 @@
...
@@ -4,12 +4,22 @@
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"select-box"
>
<div
class=
"select-box"
>
<div
class=
"tab-chart"
>
<div
class=
"tab-chart"
>
<span
class=
"tab-button"
@
click=
"
chartActive=1
"
:class=
"
{'is-active':chartActive=== 1 }">公司营收统计
</span>
<span
class=
"tab-button"
@
click=
"
getTypeData(1)
"
:class=
"
{'is-active':chartActive=== 1 }">公司营收统计
</span>
<span
class=
"tab-button"
@
click=
"
chartActive=2
"
:class=
"
{'is-active':chartActive=== 2 }">客户增长分布
</span>
<span
class=
"tab-button"
@
click=
"
getTypeData(2)
"
:class=
"
{'is-active':chartActive=== 2 }">客户增长分布
</span>
</div>
</div>
<div
class=
"tab-data"
>
<div
class=
"tab-data"
v-if=
"chartActive===1"
>
<span
class=
"tab-button"
@
click=
"dataActive=1"
:class=
"
{'is-active':dataActive=== 1 }">年
</span>
<span
class=
"tab-button"
@
click=
"getTimeData('year')"
:class=
"
{'is-active':dataActive=== 'year' }">年
</span>
<span
class=
"tab-button"
@
click=
"dataActive=2"
:class=
"
{'is-active':dataActive=== 2 }">月
</span>
<span
class=
"tab-button"
@
click=
"getTimeData('month')"
:class=
"
{'is-active':dataActive=== 'month' }">月
</span>
</div>
<div
class=
"tab-data"
v-if=
"chartActive===2"
>
<el-select
v-model=
"years"
size=
"mini"
@
change=
"getCustomer"
>
<el-option
v-for=
"item in yearsOption"
:key=
"item"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
</div>
</div>
</div>
</div>
<div
class=
"charts"
>
<div
class=
"charts"
>
...
@@ -30,55 +40,50 @@ export default {
...
@@ -30,55 +40,50 @@ export default {
components
:
{
statistics
,
distributed
},
components
:
{
statistics
,
distributed
},
data
()
{
data
()
{
return
{
return
{
chartActive
:
1
,
yearsOption
:
[
dataActive
:
1
,
'2020'
,
iconList
:
[
'2021'
],
],
years
:
'2021'
,
chartActive
:
1
,
dataActive
:
'year'
,
statisticsChart
:
{},
statisticsChart
:
{},
distributedChart
:
[],
distributedChart
:
{
basicObj
:
{},
xAxis
:
[],
introducearr
:
[],
serise
:
{}
urlarr
:
[],
}
caseList
:
[],
caseObj
:
{}
}
}
},
},
mounted
()
{
mounted
()
{
// this.getCustomerList(
)
this
.
getTypeData
(
1
)
},
},
methods
:
{
methods
:
{
// 查询概况页面数据
getTimeData
(
param
)
{
getCustomerList
()
{
if
(
param
===
'year'
)
{
API_BASIC
.
GetBasicList
().
then
(
res
=>
{
this
.
dataActive
=
'year'
this
.
iconList
=
res
.
data
.
program
}
else
{
for
(
let
i
=
0
;
i
<
this
.
iconList
.
length
;
i
++
)
{
this
.
dataActive
=
'month'
// this.iconList[i].name = this.iconList[i].name
this
.
iconList
[
i
].
urlArr
=
this
.
iconList
[
i
].
url
.
split
(
','
)
this
.
iconList
[
i
].
introArr
=
this
.
iconList
[
i
].
introduce
.
split
(
','
)
}
}
this
.
iconList
.
forEach
(
element
=>
{
this
.
getRevenueDataList
()
this
.
basicObj
.
name
=
element
.
name
},
this
.
introducearr
=
element
.
introduce
.
split
(
','
)
getTypeData
(
param
)
{
this
.
urlarr
=
element
.
url
.
split
(
','
)
if
(
param
===
1
)
{
})
this
.
chartActive
=
1
// 案例展示
this
.
getRevenueDataList
()
this
.
caseList
=
res
.
data
.
case
}
else
{
this
.
caseList
.
forEach
(
ele
=>
{
this
.
chartActive
=
2
this
.
caseObj
=
ele
this
.
getCustomer
()
})
}
// 客户分布
},
const
argcustomer
=
res
.
data
.
customer
// 查询公司营收数据
const
titledis
=
[]
async
getRevenueDataList
()
{
const
data
=
[]
const
_data
=
await
API_BASIC
.
getRevenueDataList
({
time
:
this
.
dataActive
})
const
num
=
[]
this
.
statisticsChart
=
_data
.
data
argcustomer
.
forEach
(
e
=>
{
},
titledis
.
push
(
e
.
status
)
// 查询公司营收数据
num
.
push
(
e
.
new
)
async
getCustomer
()
{
var
dis
=
{
name
:
e
.
status
,
value
:
e
.
new
}
const
_data
=
await
API_BASIC
.
getCustomer
({
time
:
this
.
years
})
data
.
push
(
dis
)
this
.
distributedChart
=
_data
.
data
})
this
.
distributedChart
.
push
({
title
:
titledis
,
num
:
num
,
data
:
data
})
})
}
}
}
}
}
}
...
@@ -93,6 +98,9 @@ export default {
...
@@ -93,6 +98,9 @@ export default {
justify-content
:
flex-end
;
justify-content
:
flex-end
;
.tab-data
{
.tab-data
{
margin-left
:
.4rem
;
margin-left
:
.4rem
;
.el-select
{
width
:
.92rem
;
}
}
}
}
}
.charts
{
.charts
{
...
...
src/views/system/index/components/enterpriseDetail.vue
0 → 100644
View file @
75c52e84
<
template
>
<d2-container
class=
"newsDetail"
>
<headerLayout></headerLayout>
<div
class=
"news-wrapper"
>
<div
class=
"news-title d-flex jc-between"
>
<label>
{{
titleList
[
type
]
}}
</label>
<span
@
click=
"goBack"
>
<
返回
</span>
</div>
<div
class=
"news-content"
v-if=
"type===0 ||type===3|| type===4|| type===5 "
>
<h3>
{{
contentData
.
name
}}
</h3>
<div
v-html=
"contentData.content"
></div>
</div>
<div
class=
"news-content"
v-if=
"type===1"
>
<a
class=
"image-box"
v-for=
"(item,index) in contentData"
:key=
"index"
>
<el-image
:src=
"item.fileUrl"
></el-image>
</a>
</div>
</div>
</d2-container>
</
template
>
<
script
>
import
headerLayout
from
'@/components/headerLayout/index'
// 公共头部
import
*
as
API_BASIC
from
'@/api/sys.basic.js'
export
default
{
components
:
{
headerLayout
},
data
()
{
return
{
titleList
:
{
0
:
'企业介绍'
,
1
:
'企业资质'
,
2
:
'企业产权'
,
3
:
'主营业务'
,
4
:
'公司荣誉'
,
5
:
'企业文化'
,
6
:
'企业规模'
},
type
:
0
,
contentData
:
''
}
},
mounted
()
{
this
.
type
=
JSON
.
parse
(
this
.
$route
.
query
.
type
)
console
.
log
(
typeof
this
.
type
)
if
(
this
.
type
===
0
)
{
this
.
getIntroductionById
()
}
else
if
(
this
.
type
===
1
)
{
this
.
getCertificationList
()
}
else
if
(
this
.
type
===
3
)
{
this
.
getMainBusinessById
()
}
else
if
(
this
.
type
===
4
)
{
this
.
getGloryById
()
}
else
if
(
this
.
type
===
5
)
{
this
.
getCultureById
()
}
},
methods
:
{
async
getIntroductionById
()
{
const
_data
=
await
API_BASIC
.
getIntroductionById
({
id
:
1
})
this
.
contentData
=
_data
.
data
this
.
contentData
.
content
=
unescape
(
this
.
contentData
.
content
)
},
async
getCertificationList
()
{
const
_data
=
await
API_BASIC
.
getCertificationList
()
this
.
contentData
=
_data
.
data
},
async
getMainBusinessById
()
{
const
_data
=
await
API_BASIC
.
getMainBusinessById
({
id
:
1
})
this
.
contentData
=
_data
.
data
this
.
contentData
.
content
=
unescape
(
this
.
contentData
.
content
)
},
async
getGloryById
()
{
const
_data
=
await
API_BASIC
.
getGloryById
({
id
:
1
})
this
.
contentData
=
_data
.
data
this
.
contentData
.
content
=
unescape
(
this
.
contentData
.
content
)
},
async
getCultureById
()
{
const
_data
=
await
API_BASIC
.
getCultureById
({
id
:
1
})
this
.
contentData
=
_data
.
data
this
.
contentData
.
content
=
unescape
(
this
.
contentData
.
content
)
},
goBack
()
{
this
.
$router
.
back
(
-
1
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.newsDetail
{
.news-wrapper
{
padding
:
.5rem
1rem
;
}
.news-title
{
width
:
100%
;
height
:
.54rem
;
font-size
:
.24rem
;
line-height
:
1
.5
;
color
:
$color-primary
;
border-bottom
:
.02rem
solid
$color-primary
;
margin-bottom
:
.5rem
;
span
{
cursor
:
pointer
;
}
}
.news-content
{
color
:
#fff
;
font-size
:
.14rem
;
width
:
9
.6rem
;
margin
:
0
auto
;
padding
:
20px
;
h3
{
text-align
:
center
;
font-size
:
.18rem
;
}
.mb-2
{
margin-bottom
:
.2rem
;
}
.pl
{
padding-left
:
.5rem
;
}
.el-image
{
width
:
2
.4rem
;
height
:
1
.8rem
;
margin
:
.24rem
;
}
}
}
</
style
>
src/views/system/index/components/enterpriseSize.vue
View file @
75c52e84
...
@@ -4,7 +4,11 @@
...
@@ -4,7 +4,11 @@
<div
class=
"section"
>
<div
class=
"section"
>
<div
class=
"leftBlock"
>
<div
class=
"leftBlock"
>
<el-table
:show-header=
"false"
:data=
"tableData"
stripe
style=
"width: 100%"
>
<el-table
:show-header=
"false"
:data=
"tableData"
stripe
style=
"width: 100%"
>
<el-table-column
prop=
"type"
width=
"100"
></el-table-column>
<el-table-column
prop=
"type"
width=
"100"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
==
1
?
'子公司'
:
'母公司'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
></el-table-column>
<el-table-column
prop=
"name"
></el-table-column>
</el-table>
</el-table>
</div>
</div>
...
@@ -25,67 +29,26 @@ export default {
...
@@ -25,67 +29,26 @@ export default {
data
()
{
data
()
{
return
{
return
{
mapChina
:
[],
mapChina
:
[],
tableData
:
[{
tableData
:
[]
name
:
'北京群智合信息科技股份有限公司'
,
type
:
'母公司'
},
{
name
:
'北京群智合信息技术服务有限公司'
,
type
:
'子公司'
},
{
name
:
'北京群智合数码科技有限公司'
,
type
:
'子公司'
},
{
name
:
'北京群智合数码科技有限公司深圳分公司'
,
type
:
'子公司'
},
{
name
:
'天津群智合数码科技有限公司'
,
type
:
'子公司'
},
{
name
:
'许昌群智合数码科技有限公司'
,
type
:
'子公司'
},
{
name
:
'郑州'
,
type
:
'办事处'
},
{
name
:
'西安'
,
type
:
'办事处'
},
{
name
:
'成都'
,
type
:
'办事处'
},
{
name
:
'贵阳'
,
type
:
'办事处'
},
{
name
:
'安阳'
,
type
:
'办事处'
},
{
name
:
'唐山'
,
type
:
'办事处'
},
{
name
:
'张家口'
,
type
:
'办事处'
},
{
name
:
'南京'
,
type
:
'办事处'
},
{
name
:
'云南'
,
type
:
'办事处'
},
{
name
:
'广东'
,
type
:
'办事处'
},
{
name
:
'威海'
,
type
:
'办事处'
},
{
name
:
'烟台'
,
type
:
'办事处'
}]
}
}
},
},
mounted
()
{
mounted
()
{
this
.
getTableData
()
this
.
GET_MapChina
()
this
.
GET_MapChina
()
},
},
methods
:
{
methods
:
{
// 获取表格
getTableData
()
{
const
param
=
{
_index
:
1
,
_size
:
30
}
API_BASIC
.
getScalePageList
(
param
).
then
(
res
=>
{
if
(
res
.
status
===
200
)
{
this
.
tableData
=
res
.
data
.
records
}
})
},
GET_MapChina
()
{
GET_MapChina
()
{
API_BASIC
.
GetMapChina
(
0
).
then
(
res
=>
{
API_BASIC
.
GetMapChina
(
0
).
then
(
res
=>
{
this
.
newData
=
res
.
data
this
.
newData
=
res
.
data
...
...
src/views/system/index/components/importantProject.vue
View file @
75c52e84
<
template
>
<
template
>
<div
class=
"importantProject"
>
<div
class=
"importantProject"
>
<div
class=
"title"
>
重点项目
</div>
<div
class=
"title"
>
重点项目
</div>
<div
class=
"d-flex search-box jc-end"
>
<el-select
v-model=
"industry"
size=
"mini"
@
change=
"getTypeData"
>
<el-option
v-for=
"(item,index) in industryOptions"
:key=
"index"
:label=
"item.customerAttribute"
:value=
"item.customerAttribute"
>
</el-option>
</el-select>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"subtitle"
><i
class=
"diamond"
></i>
解决方案
</div>
<div
class=
"subtitle"
><i
class=
"diamond"
></i>
解决方案
</div>
<div
class=
"solution"
>
<div
class=
"solution"
>
<el-carousel
indicator-position=
"none"
>
<el-carousel
indicator-position=
"none"
>
<el-carousel-item
v-for=
"(icon, id) in solutionList"
:key=
"id"
>
<el-carousel-item
v-for=
"(icon, id) in solutionList"
:key=
"id"
>
<div
class=
"softwareSolution"
>
<div
class=
"softwareSolution"
>
<div
class=
"title"
>
{{
icon
.
name
}}
</div>
<div
class=
"title"
>
{{
icon
.
industry
}}
</div>
</div>
</div>
<ul>
<ul>
<li
v-for=
"(item, index) in icon.i
ntroArr
.length"
:key=
"index"
>
<li
v-for=
"(item, index) in icon.i
mageUrl
.length"
:key=
"index"
>
<el-image
:src=
"icon.
urlArr
[index]"
></el-image>
<el-image
:src=
"icon.
imageUrl
[index]"
></el-image>
<p>
{{
icon
.
i
ntroArr
[
index
]
}}
</p>
<p>
{{
icon
.
i
mageName
[
index
]
}}
</p>
</li>
</li>
</ul>
</ul>
</el-carousel-item>
</el-carousel-item>
...
@@ -23,13 +33,13 @@
...
@@ -23,13 +33,13 @@
<el-carousel>
<el-carousel>
<el-carousel-item
v-for=
"(item, i) in caseList"
:key=
"i"
>
<el-carousel-item
v-for=
"(item, i) in caseList"
:key=
"i"
>
<div
class=
"softwareSolution"
>
<div
class=
"softwareSolution"
>
<div
class=
"title"
>
{{
item
.
name
}}
</div>
<div
class=
"title"
>
{{
item
.
industry
}}
</div>
</div>
</div>
<ul>
<ul>
<li>
<li>
<el-image
:src=
"item.
u
rl"
class=
"case-img"
></el-image>
<el-image
:src=
"item.
imageU
rl"
class=
"case-img"
></el-image>
<div
class=
"case-content"
>
<div
class=
"case-content"
>
<h5>
案例介绍
</h5>
<h5>
{{
item
.
systemName
}}
</h5>
<div
class=
"text-ells"
>
{{
item
.
introduce
}}
</div>
<div
class=
"text-ells"
>
{{
item
.
introduce
}}
</div>
</div>
</div>
</li>
</li>
...
@@ -48,46 +58,48 @@ export default {
...
@@ -48,46 +58,48 @@ export default {
components
:
{},
components
:
{},
data
()
{
data
()
{
return
{
return
{
solutionList
:
[
industryOptions
:
[],
{
icon
:
'intelligent'
,
name
:
'企业智能化'
,
urlArr
:
[
'123'
,
'345'
,
'567'
,
'789'
],
introArr
:
[
'123.png'
,
'456.png'
,
'567.png'
,
'789.png'
]
},
industry
:
''
,
{
icon
:
'retail'
,
name
:
'新零售'
,
urlArr
:
[
'123'
,
'345'
,
'567'
,
'789'
],
introArr
:
[
'123.png'
,
'456.png'
,
'567.png'
,
'789.png'
]
},
solutionList
:
[],
{
icon
:
'city'
,
name
:
'智慧城市'
,
urlArr
:
[
'123'
,
'345'
,
'567'
,
'789'
],
introArr
:
[
'123.png'
,
'456.png'
,
'567.png'
,
'789.png'
]
},
caseList
:
[]
{
icon
:
'energy'
,
name
:
'智慧能源'
,
urlArr
:
[
'123'
,
'345'
,
'567'
,
'789'
],
introArr
:
[
'123.png'
,
'456.png'
,
'567.png'
,
'789.png'
]
},
{
icon
:
'general'
,
name
:
'基础通用'
,
urlArr
:
[
'123'
,
'345'
,
'567'
,
'789'
],
introArr
:
[
'123.png'
,
'456.png'
,
'567.png'
,
'789.png'
]
}
],
caseList
:
[
{
name
:
'企业智能化'
,
url
:
'123'
,
introduce
:
'基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用,基础通用基础通用基础通用,基础通用基础通用基础通用基础通用。'
},
{
name
:
'新零售'
,
url
:
'456'
,
introduce
:
'基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用,基础通用基础通用基础通用,基础通用基础通用基础通用基础通用。'
},
{
name
:
'智慧城市'
,
url
:
'789'
,
introduce
:
'基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用基础通用,基础通用基础通用基础通用,基础通用基础通用基础通用基础通用。'
}
]
}
}
},
},
mounted
()
{
mounted
()
{
// this.getCustomerList()
this
.
getIndustryData
()
this
.
getMajorItems
()
this
.
productDemonstration
()
},
},
methods
:
{
methods
:
{
getTypeData
()
{
this
.
getMajorItems
()
this
.
productDemonstration
()
},
// 获取下拉框数据
async
getIndustryData
()
{
const
_data
=
await
API_BASIC
.
getIndustryData
()
this
.
industryOptions
=
_data
.
data
},
// 查询概况页面数据
// 查询概况页面数据
getCustomerList
()
{
getMajorItems
()
{
API_BASIC
.
GetBasicList
().
then
(
res
=>
{
API_BASIC
.
getMajorItems
({
industry
:
this
.
industry
||
null
}).
then
(
res
=>
{
console
.
log
(
res
.
data
)
if
(
res
.
status
===
200
)
{
// this.solutionList = res.data.program
this
.
solutionList
=
[]
// for (let i = 0; i
<
this
.
solutionList
.
length
;
i
++
)
{
const
_data
=
res
.
data
// this.solutionList[i].urlArr = this.solutionList[i].url.split(',')
_data
.
forEach
(
item
=>
{
// this.solutionList[i].introArr = this.solutionList[i].introduce.split(',')
this
.
solutionList
.
push
({
// }
industry
:
item
.
industry
,
// 案例展示
imageUrl
:
item
.
imageUrl
&&
item
.
imageUrl
.
split
(
','
),
this
.
caseList
=
res
.
data
.
case
imageName
:
item
.
imageName
&&
item
.
imageName
.
split
(
','
)
})
})
}
})
},
productDemonstration
()
{
API_BASIC
.
productDemonstration
({
industry
:
this
.
industry
||
null
}).
then
(
res
=>
{
if
(
res
.
status
===
200
)
{
this
.
caseList
=
res
.
data
}
})
})
}
}
}
}
...
@@ -97,18 +109,18 @@ export default {
...
@@ -97,18 +109,18 @@ export default {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.importantProject
{
.importantProject
{
.content
{
.content
{
padding
:
.24rem
;
padding
:
0
.24rem
;
.solution
{
.solution
{
width
:
100%
;
width
:
100%
;
height
:
1
.2
8
rem
;
height
:
1
.2
4
rem
;
border-radius
:
2px
;
border-radius
:
2px
;
border
:
1px
solid
$color-primary
;
border
:
1px
solid
$color-primary
;
margin
:
.1
6
rem
0
.24rem
;
margin
:
.1
2
rem
0
.24rem
;
.el-carousel
{
.el-carousel
{
height
:
1
.2
8
rem
;
height
:
1
.2
4
rem
;
}
}
::v-deep
.el-carousel__container
{
::v-deep
.el-carousel__container
{
height
:
1
.2
8
rem
;
height
:
1
.2
4
rem
;
}
}
.softwareSolution
{
.softwareSolution
{
...
@@ -158,22 +170,21 @@ export default {
...
@@ -158,22 +170,21 @@ export default {
}
}
}
}
.caseShow
{
.caseShow
{
height
:
1
.6rem
;
::v-deep
.el-carousel__indicators--horizontal
{
.el-carousel
{
bottom
:
-.15rem
;
height
:
1
.6rem
;
}
}
::v-deep
.el-carousel__
container
{
::v-deep
.el-carousel__
indicator--horizontal
{
height
:
1
.6
rem
;
padding
:
.06rem
.04
rem
;
}
}
.case-img
{
.case-img
{
width
:
1
.
6
rem
;
width
:
1
.
15
rem
;
height
:
1
rem
;
height
:
.8
rem
;
box-shadow
:
0px
0px
8px
4px
rgba
(
10
,
18
,
35
,
0
.5
);
box-shadow
:
0px
0px
8px
4px
rgba
(
10
,
18
,
35
,
0
.5
);
border-radius
:
2px
0px
0px
2px
;
border-radius
:
2px
0px
0px
2px
;
float
:
left
;
float
:
left
;
}
}
.case-content
{
.case-content
{
width
:
calc
(
100%
-
1
.
8
rem
);
width
:
calc
(
100%
-
1
.
4
rem
);
height
:
1rem
;
height
:
1rem
;
margin-left
:
.2rem
;
margin-left
:
.2rem
;
float
:
left
;
float
:
left
;
...
@@ -189,7 +200,7 @@ export default {
...
@@ -189,7 +200,7 @@ export default {
.text-ells
{
.text-ells
{
position
:
relative
;
position
:
relative
;
width
:
100%
;
width
:
100%
;
height
:
calc
(
100%
-
.
2
6rem
);
height
:
calc
(
100%
-
.
4
6rem
);
font-size
:
.12rem
;
font-size
:
.12rem
;
font-family
:
PingFang-SC-Regular
,
PingFang-SC
;
font-family
:
PingFang-SC-Regular
,
PingFang-SC
;
color
:
#fff
;
color
:
#fff
;
...
...
src/views/system/index/components/knowledgeGraph.vue
View file @
75c52e84
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
</div>
</div>
<!--
<div
id=
"topology"
></div>
-->
<!--
<div
id=
"topology"
></div>
-->
<graphChart
:message=
"
{}
" idstr="graphChart" class="heightCut44">
</graphChart>
<graphChart
:message=
"
mapData
"
idstr=
"graphChart"
class=
"heightCut44"
></graphChart>
<div
class=
"open"
@
click=
"openDialog"
></div>
<div
class=
"open"
@
click=
"openDialog"
></div>
<knowledgeDialog
v-if=
"knowledgeDialogShow"
ref=
"child"
></knowledgeDialog>
<knowledgeDialog
v-if=
"knowledgeDialogShow"
ref=
"child"
></knowledgeDialog>
</div>
</div>
...
@@ -64,6 +64,222 @@ export default {
...
@@ -64,6 +64,222 @@ export default {
knowledname
:
{},
knowledname
:
{},
knowledid
:
''
,
knowledid
:
''
,
knowledData
:
[],
knowledData
:
[],
mapData
:
{
nodes
:
[
{
category
:
0
,
color
:
'#4f19c7'
,
customerId
:
'83449'
,
customerName
:
'中国银行保险监督管理委员会'
,
id
:
'83449'
,
name
:
'中国银行保险监督管理委员会'
,
refId
:
'6286628186264322878'
,
symbolSize
:
30
,
value
:
10
},
{
category
:
0
,
code
:
''
,
color
:
'#8419c7'
,
id
:
'93232'
,
name
:
'2019年中国银行保险监督管理委员会驻场项目'
,
projectId
:
'93232'
,
projectName
:
'2019年中国银行保险监督管理委员会驻场项目'
,
refId
:
'7906013387793795048'
,
symbolSize
:
50
,
value
:
10
},
{
category
:
0
,
code
:
''
,
color
:
'#8419c7'
,
id
:
'93231'
,
name
:
'保监会2018年驻场项目'
,
projectId
:
'93231'
,
projectName
:
'保监会2018年驻场项目'
,
refId
:
'7633172723624484172'
,
symbolSize
:
50
,
value
:
10
},
{
category
:
0
,
color
:
'#199fc7'
,
id
:
'90243'
,
name
:
'2019年中国银行保险监督管理委员会维保项目'
,
nicheId
:
'90243'
,
nicheName
:
'2019年中国银行保险监督管理委员会维保项目'
,
refId
:
'6102089388333429693'
,
symbolSize
:
50
,
value
:
10
},
{
category
:
0
,
color
:
'#199fc7'
,
id
:
'90242'
,
name
:
'2019年中国银行保险监督管理委员会维保项目'
,
nicheId
:
'90242'
,
nicheName
:
'2019年中国银行保险监督管理委员会维保项目'
,
refId
:
'5460092193160790682'
,
symbolSize
:
50
,
value
:
10
},
{
category
:
0
,
color
:
'#b9c719'
,
id
:
'87336'
,
memberId
:
'87336'
,
memberName
:
'王伟'
,
name
:
'王伟'
,
refId
:
'4624570720492670093'
,
symbolSize
:
10
,
value
:
10
}
],
links
:
[
{
customer
:
{
category
:
0
,
color
:
'#4f19c7'
,
customerId
:
'83449'
,
customerName
:
'中国银行保险监督管理委员会'
,
id
:
'83449'
,
name
:
'中国银行保险监督管理委员会'
,
refId
:
'6286628186264322878'
,
symbolSize
:
10
,
value
:
10
},
id
:
'80577'
,
indexName
:
''
,
project
:
{
category
:
0
,
code
:
''
,
color
:
'#8419c7'
,
id
:
'93232'
,
name
:
'2019年中国银行保险监督管理委员会驻场项目'
,
projectId
:
'93232'
,
projectName
:
'2019年中国银行保险监督管理委员会驻场项目'
,
refId
:
'7906013387793795048'
,
symbolSize
:
10
,
value
:
10
},
source
:
'83449'
,
target
:
'93232'
},
{
customer
:
{
category
:
0
,
color
:
'#4f19c7'
,
customerId
:
'83449'
,
customerName
:
'中国银行保险监督管理委员会'
,
id
:
'83449'
,
name
:
'中国银行保险监督管理委员会'
,
refId
:
'6286628186264322878'
,
symbolSize
:
10
,
value
:
10
},
id
:
'80576'
,
indexName
:
''
,
project
:
{
category
:
0
,
code
:
''
,
color
:
'#8419c7'
,
id
:
'93231'
,
name
:
'保监会2018年驻场项目'
,
projectId
:
'93231'
,
projectName
:
'保监会2018年驻场项目'
,
refId
:
'7633172723624484172'
,
symbolSize
:
10
,
value
:
10
},
source
:
'83449'
,
target
:
'93231'
},
{
customer
:
{
category
:
0
,
color
:
'#4f19c7'
,
customerId
:
'83449'
,
customerName
:
'中国银行保险监督管理委员会'
,
id
:
'83449'
,
name
:
'中国银行保险监督管理委员会'
,
refId
:
'6286628186264322878'
,
symbolSize
:
10
,
value
:
10
},
id
:
'78195'
,
indexName
:
''
,
niche
:
{
category
:
0
,
color
:
'#199fc7'
,
id
:
'90243'
,
name
:
'2019年中国银行保险监督管理委员会维保项目'
,
nicheId
:
'90243'
,
nicheName
:
'2019年中国银行保险监督管理委员会维保项目'
,
refId
:
'6102089388333429693'
,
symbolSize
:
10
,
value
:
10
},
source
:
'83449'
,
target
:
'90243'
},
{
customer
:
{
category
:
0
,
color
:
'#4f19c7'
,
customerId
:
'83449'
,
customerName
:
'中国银行保险监督管理委员会'
,
id
:
'83449'
,
name
:
'中国银行保险监督管理委员会'
,
refId
:
'6286628186264322878'
,
symbolSize
:
10
,
value
:
10
},
id
:
'78194'
,
indexName
:
''
,
niche
:
{
category
:
0
,
color
:
'#199fc7'
,
id
:
'90242'
,
name
:
'2019年中国银行保险监督管理委员会维保项目'
,
nicheId
:
'90242'
,
nicheName
:
'2019年中国银行保险监督管理委员会维保项目'
,
refId
:
'5460092193160790682'
,
symbolSize
:
10
,
value
:
10
},
source
:
'83449'
,
target
:
'90242'
},
{
customer
:
{
category
:
0
,
color
:
'#4f19c7'
,
customerId
:
'83449'
,
customerName
:
'中国银行保险监督管理委员会'
,
id
:
'83449'
,
name
:
'中国银行保险监督管理委员会'
,
refId
:
'6286628186264322878'
,
symbolSize
:
10
,
value
:
10
},
id
:
'74409'
,
indexName
:
''
,
member
:
{
category
:
0
,
color
:
'#b9c719'
,
id
:
'87336'
,
memberId
:
'87336'
,
memberName
:
'王伟'
,
name
:
'王伟'
,
refId
:
'4624570720492670093'
,
symbolSize
:
10
,
value
:
10
},
source
:
'83449'
,
target
:
'87336'
}
]
},
knowledgeDialogShow
:
false
knowledgeDialogShow
:
false
}
}
},
},
...
...
src/views/system/index/components/mainPageEcharts/distributed.vue
View file @
75c52e84
...
@@ -12,11 +12,9 @@ require('echarts/lib/component/title')
...
@@ -12,11 +12,9 @@ require('echarts/lib/component/title')
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
dataObj
:
{},
option
:
{},
option
:
{},
chart
:
null
,
chart
:
null
,
lengendColor
:
[
'#00E8FF'
,
'#746ef8'
,
'#F8E71C'
,
'#7ED321'
,
'#FF663B'
],
lengendColor
:
[
'#00E8FF'
,
'#746ef8'
,
'#F8E71C'
,
'#7ED321'
,
'#FF663B'
]
clickNum
:
[
1
,
1
,
1
,
1
,
1
]
}
}
},
},
props
:
[
'message'
,
'idstr'
],
props
:
[
'message'
,
'idstr'
],
...
@@ -30,11 +28,14 @@ export default {
...
@@ -30,11 +28,14 @@ export default {
vm
.
chart
=
echarts
.
init
(
document
.
getElementById
(
vm
.
idstr
))
vm
.
chart
=
echarts
.
init
(
document
.
getElementById
(
vm
.
idstr
))
// 清空图表
// 清空图表
vm
.
chart
.
clear
()
vm
.
chart
.
clear
()
if
(
!
vm
.
message
.
series
.
number
)
{
return
false
}
vm
.
option
=
{
vm
.
option
=
{
xAxis
:
[
xAxis
:
[
{
{
type
:
'category'
,
type
:
'category'
,
data
:
[
'4行业'
,
'5行业'
,
'6行业'
,
'7行业'
,
'8行业'
,
'9行业'
,
'10行业'
,
'11行业'
,
'12行业'
]
,
data
:
vm
.
message
.
xAxis
,
axisPointer
:
{
axisPointer
:
{
type
:
'shadow'
type
:
'shadow'
},
},
...
@@ -49,9 +50,13 @@ export default {
...
@@ -49,9 +50,13 @@ export default {
{
{
type
:
'value'
,
type
:
'value'
,
name
:
'单位:个'
,
name
:
'单位:个'
,
min
:
0
,
splitLine
:
{
max
:
250
,
show
:
true
,
interval
:
50
,
lineStyle
:
{
type
:
'dashed'
,
color
:
'rgba(255,255,255,.3)'
}
},
axisLine
:
{
axisLine
:
{
lineStyle
:
{
lineStyle
:
{
color
:
'#FFF'
color
:
'#FFF'
...
@@ -61,9 +66,13 @@ export default {
...
@@ -61,9 +66,13 @@ export default {
{
{
type
:
'value'
,
type
:
'value'
,
name
:
'增长率:%'
,
name
:
'增长率:%'
,
min
:
0
,
splitLine
:
{
max
:
25
,
show
:
true
,
interval
:
5
,
lineStyle
:
{
type
:
'dashed'
,
color
:
'rgba(255,255,255,.3)'
}
},
axisLine
:
{
axisLine
:
{
lineStyle
:
{
lineStyle
:
{
color
:
'#FFF'
color
:
'#FFF'
...
@@ -82,14 +91,14 @@ export default {
...
@@ -82,14 +91,14 @@ export default {
series
:
[
series
:
[
{
{
type
:
'bar'
,
type
:
'bar'
,
barWidth
:
'
50
%'
,
barWidth
:
'
25
%'
,
itemStyle
:
{
itemStyle
:
{
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0
,
color
:
'#30DDF4'
},
{
offset
:
0
,
color
:
'#30DDF4'
},
{
offset
:
1
,
color
:
'#001873'
}
{
offset
:
1
,
color
:
'#001873'
}
])
])
},
},
data
:
[
23.2
,
25.6
,
76.7
,
135.6
,
162.2
,
32.6
,
20.0
,
6.4
,
3.3
]
data
:
vm
.
message
.
series
.
number
},
},
{
{
type
:
'line'
,
type
:
'line'
,
...
@@ -110,7 +119,7 @@ export default {
...
@@ -110,7 +119,7 @@ export default {
}
}
}
}
},
},
data
:
[
4.5
,
6.3
,
10.2
,
20.3
,
23.4
,
23.0
,
16.5
,
12.0
,
6.2
]
data
:
vm
.
message
.
series
.
proportion
}
}
]
]
}
}
...
@@ -129,12 +138,14 @@ export default {
...
@@ -129,12 +138,14 @@ export default {
}
}
},
},
watch
:
{
watch
:
{
message
:
function
()
{
message
:
{
handler
()
{
const
vm
=
this
const
vm
=
this
setTimeout
(
function
()
{
setTimeout
(
function
()
{
vm
.
drawLine
()
vm
.
drawLine
()
},
1000
)
},
0
)
// console.log(this.message)
},
deep
:
true
}
}
}
}
}
}
...
...
src/views/system/index/components/mainPageEcharts/statistics.vue
View file @
75c52e84
...
@@ -12,10 +12,8 @@ require('echarts/lib/component/title')
...
@@ -12,10 +12,8 @@ require('echarts/lib/component/title')
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
dataObj
:
{},
option
:
{},
option
:
{},
chart
:
null
,
chart
:
null
clickNum
:
[
1
,
1
,
1
,
1
,
1
]
}
}
},
},
props
:
[
'message'
,
'idstr'
],
props
:
[
'message'
,
'idstr'
],
...
@@ -32,7 +30,7 @@ export default {
...
@@ -32,7 +30,7 @@ export default {
vm
.
option
=
{
vm
.
option
=
{
xAxis
:
{
xAxis
:
{
type
:
'category'
,
type
:
'category'
,
data
:
[
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
]
,
data
:
vm
.
message
.
xAxis
,
axisLine
:
{
axisLine
:
{
lineStyle
:
{
lineStyle
:
{
color
:
'#FFF'
color
:
'#FFF'
...
@@ -64,7 +62,7 @@ export default {
...
@@ -64,7 +62,7 @@ export default {
height
:
'80%'
// 图例高度
height
:
'80%'
// 图例高度
},
},
series
:
[{
series
:
[{
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
620
]
,
data
:
vm
.
message
.
series
,
smooth
:
true
,
// 折线图平滑
smooth
:
true
,
// 折线图平滑
type
:
'line'
,
type
:
'line'
,
areaStyle
:
{
areaStyle
:
{
...
@@ -95,11 +93,6 @@ export default {
...
@@ -95,11 +93,6 @@ export default {
}
}
}
}
}
}
},
{
data
:
[
120
,
232
,
501
,
634
,
290
,
330
,
320
],
type
:
'line'
,
smooth
:
true
,
color
:
'#30DDF4'
}]
}]
}
}
vm
.
drawBar
()
vm
.
drawBar
()
...
@@ -117,12 +110,14 @@ export default {
...
@@ -117,12 +110,14 @@ export default {
}
}
},
},
watch
:
{
watch
:
{
message
:
function
()
{
message
:
{
handler
()
{
const
vm
=
this
const
vm
=
this
setTimeout
(
function
()
{
setTimeout
(
function
()
{
vm
.
drawLine
()
vm
.
drawLine
()
},
1000
)
},
0
)
// console.log(this.message)
},
deep
:
true
}
}
}
}
}
}
...
...
src/views/system/index/components/newsDetail.vue
View file @
75c52e84
...
@@ -7,27 +7,17 @@
...
@@ -7,27 +7,17 @@
<span
@
click=
"goBack"
>
<
返回
</span>
<span
@
click=
"goBack"
>
<
返回
</span>
</div>
</div>
<div
class=
"news-content"
>
<div
class=
"news-content"
>
<h3>
{{
itemContent
.
nam
e
}}
</h3>
<h3>
{{
itemContent
.
titl
e
}}
</h3>
<div
class=
"d-flex jc-center mb-2"
>
<div
class=
"d-flex jc-center mb-2"
>
<div>
<div>
<label>
发布时间:
</label>
<label>
发布时间:
</label>
{{
itemContent
.
publishTim
e
}}
{{
itemContent
.
releaseDat
e
}}
</div>
</div>
<div
class=
"pl"
>
<div
class=
"pl"
>
<label>
来源:
</label>
{{
itemContent
.
source
}}
<label>
来源:
</label>
{{
itemContent
.
source
}}
</div>
</div>
</div>
</div>
<!--
<div
v-html=
"content"
></div>
-->
<div
v-html=
"itemContent.content"
></div>
<div>
“晓看红湿处,花重锦官城”。春天自古是筹谋与播种的季节,春生夏长秋收冬藏,在春意盎然的成都城里,一场关于信息化数字化的讨论为这个3月增添了更多的春色。
3月18日-19日,以“千帆竞渡·数字新起点”为主题的第九届医药健康行业信息化高峰论坛在成都保利公园皇冠假日酒店举行,来自医药健康行业的从业者、信息中心负责人、厂商代表等300余位行业精英共聚一堂,会间,大家围绕疫情后产业变局思维、数字新生态新空间、网络智慧连接运用、数据治理、设备智慧互联、研发全流程信息化等话题展开了激烈交流与探讨,群智合作为国内领先的政企数字化转型方案提供商应邀出席本次盛会。
<div
class=
"text-center"
>
<el-image
src=
""
></el-image>
<el-image
src=
""
></el-image>
</div>
“晓看红湿处,花重锦官城”。春天自古是筹谋与播种的季节,春生夏长秋收冬藏,在春意盎然的成都城里,一场关于信息化数字化的讨论为这个3月增添了更多的春色。
3月18日-19日,以“千帆竞渡·数字新起点”为主题的第九届医药健康行业信息化高峰论坛在成都保利公园皇冠假日酒店举行,来自医药健康行业的从业者、信息中心负责人、厂商代表等300余位行业精英共聚一堂,会间,大家围绕疫情后产业变局思维、数字新生态新空间、网络智慧连接运用、数据治理、设备智慧互联、研发全流程信息化等话题展开了激烈交流与探讨,群智合作为国内领先的政企数字化转型方案提供商应邀出席本次盛会。
</div>
</div>
</div>
</div>
</div>
</d2-container>
</d2-container>
...
@@ -40,13 +30,12 @@ export default {
...
@@ -40,13 +30,12 @@ export default {
components
:
{
headerLayout
},
components
:
{
headerLayout
},
data
()
{
data
()
{
return
{
return
{
itemContent
:
{},
itemContent
:
{}
content
:
''
}
}
},
},
mounted
()
{
mounted
()
{
this
.
itemContent
=
JSON
.
parse
(
this
.
$route
.
query
.
row
)
this
.
itemContent
=
JSON
.
parse
(
this
.
$route
.
query
.
row
)
this
.
content
=
''
this
.
itemContent
.
content
=
unescape
(
this
.
itemContent
.
content
)
},
},
methods
:
{
methods
:
{
goBack
()
{
goBack
()
{
...
@@ -88,11 +77,6 @@ export default {
...
@@ -88,11 +77,6 @@ export default {
.pl
{
.pl
{
padding-left
:
.5rem
;
padding-left
:
.5rem
;
}
}
.el-image
{
width
:
2
.4rem
;
height
:
1
.8rem
;
margin
:
.24rem
;
}
}
}
}
}
</
style
>
</
style
>
vue.config.js
View file @
75c52e84
...
@@ -39,12 +39,21 @@ module.exports = {
...
@@ -39,12 +39,21 @@ module.exports = {
lintOnSave
:
true
,
lintOnSave
:
true
,
devServer
:
{
devServer
:
{
publicPath
,
// 和 publicPath 保持一致
publicPath
,
// 和 publicPath 保持一致
disableHostCheck
:
process
.
env
.
NODE_ENV
===
'development'
// 关闭 host check,方便使用 ngrok 之类的内网转发工具
disableHostCheck
:
process
.
env
.
NODE_ENV
===
'development'
,
// 关闭 host check,方便使用 ngrok 之类的内网转发工具
// headers: {
// headers: {
// 'Access-Control-Allow-Origin': '*'
,
// 'Access-Control-Allow-Origin': '*'
// }
,
// }
// hotOnly: false,
// hotOnly: false,
// disableHostCheck: true
// disableHostCheck: true
proxy
:
{
[
process
.
env
.
VUE_APP_BASE_API
]:
{
target
:
process
.
env
.
VUE_APP_REQUEST_URL
,
changeOrigin
:
true
,
pathRewrite
:
{
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
}
}
}
},
},
css
:
{
css
:
{
loaderOptions
:
{
loaderOptions
:
{
...
...
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