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
5b8b5d9d
Commit
5b8b5d9d
authored
May 21, 2021
by
乐宝呗666
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改bug
parent
6402c952
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
847 additions
and
416 deletions
+847
-416
package-lock.json
package-lock.json
+115
-18
package.json
package.json
+1
-0
con.business.js
src/api/con.business.js
+26
-0
index.vue
src/components/HeaderLayout/index.vue
+7
-1
doubleYBarChart.vue
src/components/echarts/doubleYBarChart.vue
+2
-2
graphChart.vue
src/components/echarts/graphChart.vue
+1
-1
page.vue
src/views/content/business/page.vue
+67
-106
page.vue
src/views/content/client/page.vue
+198
-201
revenueStatistics.vue
src/views/content/operation/components/revenueStatistics.vue
+1
-14
page.vue
src/views/content/operation/page.vue
+1
-1
orgDetail.vue
src/views/content/organization/components/orgDetail.vue
+1
-1
staffInfo.vue
src/views/content/organization/components/staffInfo.vue
+9
-5
page.vue
src/views/content/organization/page.vue
+5
-5
companyNews.vue
src/views/system/index/components/companyNews.vue
+9
-3
deptIntroduction.vue
src/views/system/index/components/deptIntroduction.vue
+21
-11
deptNews.vue
src/views/system/index/components/deptNews.vue
+9
-13
enterpriseDetail.vue
src/views/system/index/components/enterpriseDetail.vue
+12
-7
enterpriseSize.vue
src/views/system/index/components/enterpriseSize.vue
+5
-3
importantProject.vue
src/views/system/index/components/importantProject.vue
+50
-16
distributed.vue
...s/system/index/components/mainPageEcharts/distributed.vue
+2
-2
mapChina.vue
...iews/system/index/components/mainPageEcharts/mapChina.vue
+191
-1
statistics.vue
...ws/system/index/components/mainPageEcharts/statistics.vue
+2
-2
newsDetail.vue
src/views/system/index/components/newsDetail.vue
+5
-2
pdfDialog.vue
src/views/system/index/components/pdfDialog.vue
+106
-0
page.vue
src/views/system/index/page.vue
+1
-1
No files found.
package-lock.json
View file @
5b8b5d9d
...
...
@@ -4064,7 +4064,6 @@
"version"
:
"6.12.3"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz"
,
"integrity"
:
"sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA=="
,
"dev"
:
true
,
"requires"
:
{
"fast-deep-equal"
:
"^3.1.1"
,
"fast-json-stable-stringify"
:
"^2.0.0"
,
...
...
@@ -4081,8 +4080,7 @@
"ajv-keywords"
:
{
"version"
:
"3.5.1"
,
"resolved"
:
"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz"
,
"integrity"
:
"sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA=="
,
"dev"
:
true
"integrity"
:
"sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA=="
},
"alphanum-sort"
:
{
"version"
:
"1.0.2"
,
...
...
@@ -4605,6 +4603,11 @@
"@types/babel__traverse"
:
"^7.0.6"
}
},
"babel-plugin-syntax-dynamic-import"
:
{
"version"
:
"6.18.0"
,
"resolved"
:
"https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz"
,
"integrity"
:
"sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo="
},
"babel-plugin-transform-es2015-modules-commonjs"
:
{
"version"
:
"6.26.2"
,
"resolved"
:
"https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz"
,
...
...
@@ -4831,8 +4834,7 @@
"big.js"
:
{
"version"
:
"5.2.2"
,
"resolved"
:
"https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz"
,
"integrity"
:
"sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
,
"dev"
:
true
"integrity"
:
"sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
},
"binary-extensions"
:
{
"version"
:
"1.13.1"
,
...
...
@@ -7593,8 +7595,7 @@
"emojis-list"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz"
,
"integrity"
:
"sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
,
"dev"
:
true
"integrity"
:
"sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
},
"encodeurl"
:
{
"version"
:
"1.0.2"
,
...
...
@@ -8695,8 +8696,7 @@
"fast-json-stable-stringify"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
,
"integrity"
:
"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
,
"dev"
:
true
"integrity"
:
"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fast-levenshtein"
:
{
"version"
:
"2.0.6"
,
...
...
@@ -11206,8 +11206,7 @@
"json-schema-traverse"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
,
"integrity"
:
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
,
"dev"
:
true
"integrity"
:
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stable-stringify-without-jsonify"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -11231,7 +11230,6 @@
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"
,
"integrity"
:
"sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="
,
"dev"
:
true
,
"requires"
:
{
"minimist"
:
"^1.2.0"
}
...
...
@@ -11426,7 +11424,6 @@
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz"
,
"integrity"
:
"sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA=="
,
"dev"
:
true
,
"requires"
:
{
"big.js"
:
"^5.2.2"
,
"emojis-list"
:
"^3.0.0"
,
...
...
@@ -11817,8 +11814,7 @@
"minimist"
:
{
"version"
:
"1.2.5"
,
"resolved"
:
"https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
,
"integrity"
:
"sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
,
"dev"
:
true
"integrity"
:
"sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"minipass"
:
{
"version"
:
"3.1.3"
,
...
...
@@ -12726,6 +12722,11 @@
"sha.js"
:
"^2.4.8"
}
},
"pdfjs-dist"
:
{
"version"
:
"2.7.570"
,
"resolved"
:
"https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.7.570.tgz"
,
"integrity"
:
"sha512-/ZkA1FwkEOyDaq11JhMLazdwQAA0F9uwrP7h/1L9Akt9KWh1G5/tkzS+bPuUELq2s2GDFnaT+kooN/aSjT7DXQ=="
},
"performance-now"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
,
...
...
@@ -13674,8 +13675,7 @@
"punycode"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
,
"dev"
:
true
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"px2rem"
:
{
"version"
:
"0.5.0"
,
...
...
@@ -13871,6 +13871,66 @@
"unpipe"
:
"1.0.0"
}
},
"raw-loader"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz"
,
"integrity"
:
"sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA=="
,
"requires"
:
{
"loader-utils"
:
"^2.0.0"
,
"schema-utils"
:
"^3.0.0"
},
"dependencies"
:
{
"@types/json-schema"
:
{
"version"
:
"7.0.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz"
,
"integrity"
:
"sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA=="
},
"ajv"
:
{
"version"
:
"6.12.6"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
,
"integrity"
:
"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
,
"requires"
:
{
"fast-deep-equal"
:
"^3.1.1"
,
"fast-json-stable-stringify"
:
"^2.0.0"
,
"json-schema-traverse"
:
"^0.4.1"
,
"uri-js"
:
"^4.2.2"
}
},
"ajv-keywords"
:
{
"version"
:
"3.5.2"
,
"resolved"
:
"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
,
"integrity"
:
"sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"json5"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
,
"integrity"
:
"sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA=="
,
"requires"
:
{
"minimist"
:
"^1.2.5"
}
},
"loader-utils"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz"
,
"integrity"
:
"sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ=="
,
"requires"
:
{
"big.js"
:
"^5.2.2"
,
"emojis-list"
:
"^3.0.0"
,
"json5"
:
"^2.1.2"
}
},
"schema-utils"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz"
,
"integrity"
:
"sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA=="
,
"requires"
:
{
"@types/json-schema"
:
"^7.0.6"
,
"ajv"
:
"^6.12.5"
,
"ajv-keywords"
:
"^3.5.2"
}
}
}
},
"react-is"
:
{
"version"
:
"16.13.1"
,
"resolved"
:
"https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
,
...
...
@@ -16287,7 +16347,6 @@
"version"
:
"4.2.2"
,
"resolved"
:
"https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"
,
"integrity"
:
"sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="
,
"dev"
:
true
,
"requires"
:
{
"punycode"
:
"^2.1.0"
}
...
...
@@ -16621,6 +16680,24 @@
}
}
},
"vue-pdf"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/vue-pdf/-/vue-pdf-4.2.0.tgz"
,
"integrity"
:
"sha512-GpAbZfM48Hom1R8f4XL5ZzoVBLlbyy+4z0VYmTQORVOSieVIIu+XtnNl0RY6EXg60Qni6T6nIgrmsCcCkWv39A=="
,
"requires"
:
{
"babel-plugin-syntax-dynamic-import"
:
"^6.18.0"
,
"loader-utils"
:
"^1.4.0"
,
"pdfjs-dist"
:
"^2.5.207"
,
"raw-loader"
:
"^4.0.1"
,
"vue-resize-sensor"
:
"^2.0.0"
,
"worker-loader"
:
"^2.0.0"
}
},
"vue-resize-sensor"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vue-resize-sensor/-/vue-resize-sensor-2.0.0.tgz"
,
"integrity"
:
"sha512-W+y2EAI/BxS4Vlcca9scQv8ifeBFck56DRtSwWJ2H4Cw1GLNUYxiZxUHHkuzuI5JPW/cYtL1bPO5xPyEXx4LmQ=="
},
"vue-router"
:
{
"version"
:
"3.1.6"
,
"resolved"
:
"https://registry.npmjs.org/vue-router/-/vue-router-3.1.6.tgz"
,
...
...
@@ -17199,6 +17276,26 @@
"errno"
:
"~0.1.7"
}
},
"worker-loader"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz"
,
"integrity"
:
"sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw=="
,
"requires"
:
{
"loader-utils"
:
"^1.0.0"
,
"schema-utils"
:
"^0.4.0"
},
"dependencies"
:
{
"schema-utils"
:
{
"version"
:
"0.4.7"
,
"resolved"
:
"https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz"
,
"integrity"
:
"sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ=="
,
"requires"
:
{
"ajv"
:
"^6.1.0"
,
"ajv-keywords"
:
"^3.1.0"
}
}
}
},
"wrap-ansi"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"
,
...
...
package.json
View file @
5b8b5d9d
...
...
@@ -37,6 +37,7 @@
"
vis
"
:
"^4.21.0-EOL"
,
"
vue
"
:
"^2.6.11"
,
"
vue-i18n
"
:
"^8.15.1"
,
"
vue-pdf
"
:
"^4.2.0"
,
"
vue-router
"
:
"^3.1.3"
,
"
vuex
"
:
"^3.1.2"
},
...
...
src/api/con.business.js
View file @
5b8b5d9d
...
...
@@ -58,3 +58,29 @@ export function getBillRate (params) {
params
})
}
// 用户端获取商机阶段分析饼状图
export
function
getBigetOpportunitiesByNumberOrMoneyllRate
(
params
)
{
return
request
({
url
:
'/tp/opportunities/getOpportunitiesByNumberOrMoney'
,
method
:
'get'
,
params
})
}
// 用户端获取商机阶段分析漏斗图
export
function
getOpportunitiesByStep
(
params
)
{
return
request
({
url
:
'/tp/opportunities/getOpportunitiesByStep'
,
method
:
'get'
,
params
})
}
// 用户端获取商机阶段分析柱状图及折线图
export
function
getOpportunitiesByDept
(
params
)
{
return
request
({
url
:
'/tp/opportunities/getOpportunitiesByDept'
,
method
:
'get'
,
params
})
}
src/components/HeaderLayout/index.vue
View file @
5b8b5d9d
...
...
@@ -32,11 +32,17 @@
<
script
>
import
util
from
'@/libs/util'
export
default
{
props
:
{
active
:
{
type
:
String
,
default
:
'0'
}
},
data
()
{
return
{
screenWidth
:
document
.
body
.
clientWidth
,
deptName
:
''
,
num
:
0
,
num
:
this
.
active
,
nowDate
:
''
,
week
:
''
,
hour
:
''
,
...
...
src/components/echarts/doubleYBarChart.vue
View file @
5b8b5d9d
...
...
@@ -36,7 +36,7 @@ export default {
tooltip
:
{
transitionDuration
:
0
,
trigger
:
'item'
,
formatter
:
'{a}:<br/>{b}: {c}
({d}%)
'
formatter
:
'{a}:<br/>{b}: {c}'
},
grid
:
{
top
:
'25%'
,
...
...
@@ -97,7 +97,7 @@ export default {
],
series
:
vm
.
message
.
data
}
console
.
log
(
vm
.
message
)
vm
.
drawBar
()
// window.addEventListener("resize",()=>{
// chart.resize();
...
...
src/components/echarts/graphChart.vue
View file @
5b8b5d9d
...
...
@@ -326,7 +326,7 @@ export default {
shadowOffsetX
:
1
,
shadowOffsetY
:
1
,
label
:
{
show
:
tru
e
,
show
:
fals
e
,
position
:
[
-
10
,
-
20
],
textStyle
:
{
// 标签的字体样式
color
:
'#fff'
,
// 字体颜色
...
...
src/views/content/business/page.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"business"
>
<headerLayout></headerLayout>
<headerLayout
active=
"2"
></headerLayout>
<div
class=
"section"
>
<div
class=
"leftBlock"
>
<div
class=
"boxHeight-3"
>
...
...
@@ -58,8 +58,8 @@
<div
class=
"centerBoxHeight-32 d-flex flex-column"
>
<div
class=
"select-box mt-2"
>
<div
class=
"tab-chart"
>
<span
class=
"tab-button"
@
click=
"cha
rtActive=1"
:class=
"
{'is-active':chartActive=== 1
}">数量
</span>
<span
class=
"tab-button"
@
click=
"cha
rtActive=2"
:class=
"
{'is-active':chartActive=== 2
}">金额
</span>
<span
class=
"tab-button"
@
click=
"cha
ngeType('number')"
:class=
"
{'is-active':chartActive=== 'number'
}">数量
</span>
<span
class=
"tab-button"
@
click=
"cha
ngeType('money')"
:class=
"
{'is-active':chartActive=== 'money'
}">金额
</span>
</div>
</div>
<div
class=
"flex-1 d-flex"
>
...
...
@@ -110,7 +110,7 @@ export default {
components
:
{
headerLayout
,
pieChart
,
barChart
,
doubleYBarChart
,
funnel
},
data
()
{
return
{
chartActive
:
1
,
chartActive
:
'number'
,
totalObj
:
{},
// 商机统计
industry
:
''
,
// 行业分布
...
...
@@ -127,107 +127,11 @@ export default {
// 商机预算及硬蛋率
successRatio
:
{},
// 商机分析-中间图
bussionAnalysis
:
{
legend
:
[
'初步接洽'
,
'需求确定'
,
'方案/报价'
,
'谈判审核'
,
'赢单'
],
xAxis
:
[
'运营管理中心'
,
'解决方案中心'
,
'智能制造中心'
,
'生态合作中心'
,
'客户运营中心'
,
'XXXX中心'
],
yAxis
:
[
'单位:个'
,
'赢单率:%'
],
data
:
[
{
name
:
'初步接洽'
,
type
:
'bar'
,
data
:
[
{
value
:
123.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
125.6
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
176.7
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
135.6
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
162.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
200
,
isLeaf
:
false
,
parent
:
''
}
]
},
{
name
:
'需求确定'
,
type
:
'bar'
,
data
:
[
{
value
:
83.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
75.6
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
86.7
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
85.6
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
62.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
90
,
isLeaf
:
false
,
parent
:
''
}
]
},
{
name
:
'方案/报价'
,
type
:
'bar'
,
yAxisIndex
:
1
,
data
:
[
{
value
:
74.5
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
66.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
70.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
80.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
53.4
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
87
,
isLeaf
:
false
,
parent
:
''
}
]
},
{
name
:
'谈判审核'
,
type
:
'bar'
,
yAxisIndex
:
1
,
data
:
[
{
value
:
64.5
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
56.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
60.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
70.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
43.4
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
77
,
isLeaf
:
false
,
parent
:
''
}
]
},
{
name
:
'赢单'
,
type
:
'bar'
,
yAxisIndex
:
1
,
data
:
[
{
value
:
54.5
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
46.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
50.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
60.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
33.4
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
65
,
isLeaf
:
false
,
parent
:
''
}
]
},
{
name
:
'赢单率'
,
type
:
'line'
,
yAxisIndex
:
1
,
data
:
[
{
value
:
4.5
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
6.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
10.2
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
20.3
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
23.4
,
isLeaf
:
false
,
parent
:
''
},
{
value
:
30.2
,
isLeaf
:
false
,
parent
:
''
}
]
}
]
},
bussionAnalysis
:
{},
// 商机类型
bussionType
:
{
legend
:
[
'服务续签'
,
'其他'
,
'特殊事项'
],
data
:
[
{
value
:
335
,
name
:
'服务续签'
},
{
value
:
310
,
name
:
'其他'
},
{
value
:
234
,
name
:
'特殊事项'
}
]
},
bussionType
:
{},
// 商机阶段分析
bussionStep
:
{
legend
:
[
'初步接洽'
,
'需求确定'
,
'方案/报价'
,
'谈判审核'
,
'赢单'
,
'输单'
,
'终止'
,
'暂停'
],
data
:
[
{
value
:
335
,
name
:
'初步接洽'
},
{
value
:
280
,
name
:
'需求确定'
},
{
value
:
234
,
name
:
'方案/报价'
},
{
value
:
190
,
name
:
'谈判审核'
},
{
value
:
185
,
name
:
'赢单'
},
{
value
:
120
,
name
:
'输单'
},
{
value
:
89
,
name
:
'终止'
},
{
value
:
23
,
name
:
'暂停'
}
]
}
bussionStep
:
{}
}
},
mounted
()
{
...
...
@@ -238,6 +142,9 @@ export default {
this
.
getProductType
()
this
.
getNewOpportunities
()
this
.
getBillRate
()
this
.
getBigetOpportunitiesByNumberOrMoneyllRate
()
this
.
getOpportunitiesByStep
()
this
.
getOpportunitiesByDept
(
''
,
false
)
},
filters
:
{
numFilter
(
value
)
{
...
...
@@ -309,6 +216,63 @@ export default {
const
_data
=
await
API_BUSSINESS
.
getBillRate
()
this
.
successRatio
=
_data
.
data
},
// q切换数量和金额
changeType
(
item
)
{
this
.
chartActive
=
item
this
.
getBigetOpportunitiesByNumberOrMoneyllRate
()
this
.
getOpportunitiesByDept
()
},
// 商机阶段分析-中间饼图
async
getBigetOpportunitiesByNumberOrMoneyllRate
()
{
const
_data
=
await
API_BUSSINESS
.
getBigetOpportunitiesByNumberOrMoneyllRate
({
name
:
this
.
chartActive
})
this
.
bussionType
=
{
legend
:
_data
.
data
.
legend
,
data
:
_data
.
data
.
data
.
map
(
item
=>
{
return
{
name
:
item
.
type
,
value
:
item
.
value
}
})
}
},
// 商机阶段分析-中间漏斗图
async
getOpportunitiesByStep
()
{
const
_data
=
await
API_BUSSINESS
.
getOpportunitiesByStep
()
this
.
bussionStep
=
{
legend
:
_data
.
data
.
legend
,
data
:
_data
.
data
.
data
.
map
(
item
=>
{
return
{
name
:
item
.
step
,
value
:
item
.
opportunitiesNumber
}
})
}
},
// 商机阶段分析-中间柱状图
async
getOpportunitiesByDept
(
param
)
{
this
.
parentId
=
param
||
null
const
_data
=
await
API_BUSSINESS
.
getOpportunitiesByDept
({
parentId
:
this
.
parentId
||
null
,
type
:
this
.
chartActive
})
let
isLeaf
=
false
if
(
!
_data
.
data
.
idxs
.
length
)
{
// 下级无数据 即为叶子节点
isLeaf
=
true
this
.
bussionAnalysis
.
isLeaf
=
isLeaf
}
else
{
this
.
bussionAnalysis
=
{
parentId
:
param
||
''
,
isLeaf
:
isLeaf
,
xAxis
:
_data
.
data
.
xAxis
,
yAxis
:
_data
.
data
.
yAxis
,
idxs
:
_data
.
data
.
idxs
,
data
:
_data
.
data
.
data
}
}
},
// 商机阶段分许下钻数据
downData
(
item
)
{
console
.
log
(
'传来的值:'
,
item
)
this
.
getOpportunitiesByDept
(
item
)
},
// 行业分布下钻数据
downDistributeData
(
item
)
{
console
.
log
(
'传来的值:'
,
item
)
...
...
@@ -320,9 +284,6 @@ export default {
console
.
log
(
'pie传来的值:'
,
item
)
this
.
productType
=
item
this
.
getProductType
()
},
downData
(
item
)
{
}
}
}
...
...
src/views/content/client/page.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"business client"
>
<dv-loading
v-show=
"loading"
>
Loading...
</dv-loading>
<div
v-show=
"!loading"
>
<headerLayout></headerLayout>
<headerLayout
active=
"3"
></headerLayout>
<div
class=
"section"
>
<div
class=
"leftBlock"
>
<div
class=
"boxHeight-3"
>
...
...
@@ -221,7 +219,6 @@
</div>
</div>
</div>
</div>
</d2-container>
</template>
...
...
src/views/content/operation/components/revenueStatistics.vue
View file @
5b8b5d9d
...
...
@@ -34,20 +34,7 @@ export default {
typeList
:
[
'合同收入'
,
'项目收入'
,
'切分收入'
],
selectYear
:
''
,
yearList
:
[],
dataList
:
{
xAxis
:
[
'总裁办中心'
,
'客户营销中心'
,
'计划财务中心'
,
'运营管理中心'
,
'解决方案中心'
,
'IT服务中心'
,
'智能制造中心'
,
'生态合作中心'
,
'客户运营中心'
],
data
:
[
{
value
:
123.2
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
76.7
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
135.6
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
162.2
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
32.6
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
76.7
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
135.6
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
162.2
,
parent
:
''
,
isLeaf
:
false
},
{
value
:
32.6
,
parent
:
''
,
isLeaf
:
false
}
]
}
dataList
:
{}
}
},
mounted
()
{
...
...
src/views/content/operation/page.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"operation"
>
<headerLayout></headerLayout>
<headerLayout
active=
"1"
></headerLayout>
<div
class=
"section"
>
<div
class=
"leftBlock"
>
<div
class=
"boxHeight-3"
>
...
...
src/views/content/organization/components/orgDetail.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"orgDetail"
>
<headerLayout></headerLayout>
<headerLayout
active=
"4"
></headerLayout>
<div
class=
"org-wrapper"
>
<div
class=
"org-title d-flex jc-between"
>
<label>
组织架构
</label>
...
...
src/views/content/organization/components/staffInfo.vue
View file @
5b8b5d9d
...
...
@@ -20,10 +20,7 @@
<span
class=
"label"
>
职位
</span>
<span
class=
"text"
>
主持人
</span>
</div>
<div
class=
"item-box d-flex jc-between"
>
<span
class=
"label"
>
电话
</span>
<span
class=
"text"
>
13242321122
</span>
</div>
</el-col>
<el-col
span=
"12"
>
<div
class=
"item-box d-flex jc-between"
>
...
...
@@ -34,6 +31,13 @@
<span
class=
"label"
>
司龄
</span>
<span
class=
"text"
>
12
</span>
</div>
</el-col>
<el-col
span=
"24"
>
<div
class=
"item-box d-flex jc-between"
>
<span
class=
"label"
>
电话
</span>
<span
class=
"text"
>
13242321122
</span>
</div>
<div
class=
"item-box d-flex jc-between"
>
<span
class=
"label"
>
邮箱
</span>
<span
class=
"text"
>
zhaozongxiang@163.cn
</span>
...
...
@@ -113,7 +117,7 @@ export default {
}
.el-image
{
width
:
1
.28rem
;
height
:
1
.
28
rem
;
height
:
1
.
64
rem
;
margin-right
:
.2rem
;
}
.inner-content
{
...
...
src/views/content/organization/page.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"organization"
>
<headerLayout></headerLayout>
<headerLayout
active=
"4"
></headerLayout>
<div
class=
"section"
>
<div
class=
"leftBlock"
>
<div
class=
"boxHeight-3"
style=
"position:relative;"
>
...
...
@@ -27,11 +27,11 @@
<div
class=
"peopleContent"
>
<div
class=
"select-box"
>
<div
class=
"tab-chart"
>
<span
class=
"tab-button"
@
click=
"distributeActive=1"
:class=
"
{'is-active':distributeActive=== 1 }">岗位
分布
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=2"
:class=
"
{'is-active':distributeActive=== 2 }">学历
分布
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=3"
:class=
"
{'is-active':distributeActive=== 3 }">年龄
分布
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=1"
:class=
"
{'is-active':distributeActive=== 1 }">岗位
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=2"
:class=
"
{'is-active':distributeActive=== 2 }">学历
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=3"
:class=
"
{'is-active':distributeActive=== 3 }">年龄
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=4"
:class=
"
{'is-active':distributeActive=== 4 }">男女比例
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=5"
:class=
"
{'is-active':distributeActive=== 5 }">司龄
分布
</span>
<span
class=
"tab-button"
@
click=
"distributeActive=5"
:class=
"
{'is-active':distributeActive=== 5 }">司龄
</span>
</div>
</div>
<pieChart
:message=
"jobDistribution"
idstr=
"jobDistribution"
class=
"jobDistribution heightCut42"
></pieChart>
...
...
src/views/system/index/components/companyNews.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"companyNews"
>
<headerLayout></headerLayout>
<headerLayout
active=
"0"
></headerLayout>
<div
class=
"news-wrapper"
>
<div
class=
"news-title d-flex jc-between"
>
<label>
公司新闻
</label>
...
...
@@ -54,7 +54,7 @@ export default {
methods
:
{
// 查询概况页面数据
getNewsList
()
{
API_BASIC
.
getNewsPageList
({
_index
:
1
,
_size
:
10
}).
then
(
res
=>
{
API_BASIC
.
getNewsPageList
({
_index
:
this
.
pageObj
.
pageNo
,
_size
:
this
.
pageObj
.
pageSize
}).
then
(
res
=>
{
this
.
tableData
=
res
.
data
.
records
this
.
pageObj
.
total
=
Number
(
res
.
data
.
total
)
})
...
...
@@ -64,6 +64,12 @@ export default {
},
goBack
()
{
this
.
$router
.
back
(
-
1
)
},
// 翻页
pageChange
(
page
)
{
this
.
pageObj
.
pageSize
=
page
.
limit
this
.
pageObj
.
pageNo
=
page
.
page
this
.
getNewsList
()
}
}
}
...
...
@@ -102,7 +108,7 @@ export default {
border-bottom
:
none
;
}
.el-table__row--striped
td
{
background-color
:
rgba
(
47
,
219
,
243
,
0
.15
)
;
background-color
:
$color-bg
;
}
tr
{
background-color
:
$color-bg
;
...
...
src/views/system/index/components/deptIntroduction.vue
View file @
5b8b5d9d
...
...
@@ -2,7 +2,7 @@
<div
class=
"deptIntroductionMain"
>
<div
class=
"title"
>
企业介绍
</div>
<div
class=
"content"
>
<div
class=
"d-flex
px-4
d2-text-center"
>
<div
class=
"d-flex d2-text-center"
>
<div
class=
"flex-1 item-box"
v-for=
"(item,index) in basicData.slice(0,3)"
:key=
"index"
@
click=
"handleDetail(index)"
>
<img
:src=
"activeIndex=== index ? item.imgActive : item.img"
>
<p>
{{
item
.
name
}}
</p>
...
...
@@ -19,10 +19,11 @@
</
template
>
<
script
>
import
{
settings
}
from
'nprogress'
export
default
{
data
()
{
return
{
activeIndex
:
0
,
activeIndex
:
''
,
basicData
:
[
{
img
:
require
(
'@/assets/img/icon-info.png'
),
...
...
@@ -36,12 +37,12 @@ export default {
name
:
'企业资质'
,
active
:
false
},
{
img
:
require
(
'@/assets/img/icon-chanquan.png'
),
imgActive
:
require
(
'@/assets/img/icon-chanquan-active.png'
),
name
:
'企业产权'
,
active
:
false
},
//
{
//
img: require('@/assets/img/icon-chanquan.png'),
//
imgActive: require('@/assets/img/icon-chanquan-active.png'),
//
name: '企业产权',
//
active: false
//
},
{
img
:
require
(
'@/assets/img/icon-yewu.png'
),
imgActive
:
require
(
'@/assets/img/icon-yewu-active.png'
),
...
...
@@ -66,22 +67,31 @@ export default {
name
:
'企业规模'
,
active
:
false
}
]
],
timer
:
null
}
},
mounted
()
{
// this.timer = setInterval(() => {
// console.log(this.activeIndex)
// if (this.activeIndex === 7) {
// this.activeIndex = 0
// }
// this.activeIndex++
// }, 1000)
},
methods
:
{
handleDetail
(
item
)
{
this
.
activeIndex
=
item
if
(
this
.
basicData
[
item
].
name
===
'企业规模'
)
{
this
.
$router
.
push
(
'/enterpriseSize'
)
}
else
if
(
this
.
basicData
[
item
].
name
===
'企业产权'
)
{
// this.$router.push('/enterpriseSize')
}
else
{
this
.
$router
.
push
({
path
:
'/enterpriseDetail'
,
query
:
{
type
:
item
}
})
}
}
},
beforeDestroy
()
{
this
.
timer
=
null
}
}
</
script
>
...
...
src/views/system/index/components/deptNews.vue
View file @
5b8b5d9d
...
...
@@ -3,7 +3,7 @@
<div
class=
"title"
>
公司新闻
</div>
<div
class=
"lookMore"
@
click=
"newsDetail"
>
查看更多
</div>
<div
class=
"content heightCut44"
>
<dv-scroll-board
:config=
"config"
style=
"width:calc(100% - 0.01rem);height:calc(100% - 0.01rem)"
/>
<dv-scroll-board
@
click=
"handleClick"
:config=
"config"
style=
"width:calc(100% - 0.01rem);height:calc(100% - 0.01rem)"
/>
</div>
</div>
</
template
>
...
...
@@ -19,14 +19,6 @@ export default {
oddRowBGC
:
'rgba(47,219,243,0.15)'
,
evenRowBGC
:
'rgba(47,219,243,0.05)'
,
data
:
[]
// data: [
// ['群智合成功交付实施*****项目', '2010/9/10'],
// ['群智合成功交付实施*****项目', '2010/9/10'],
// ['群智合成功交付实施*****项目', '2010/9/10'],
// ['群智合成功交付实施*****项目', '2010/9/10'],
// ['群智合成功交付实施*****项目', '2010/9/10'],
// ['群智合成功交付实施*****项目', '2010/9/10']
// ]
}
}
},
...
...
@@ -37,13 +29,14 @@ export default {
// 查询概况页面数据
getNewsList
()
{
API_BASIC
.
getNewsPageList
({
_index
:
1
,
_size
:
10
}).
then
(
res
=>
{
const
newsList
=
res
.
data
.
records
const
_newsList
=
res
.
data
.
records
this
.
newsList
=
_newsList
const
_data
=
[]
newsList
.
forEach
(
element
=>
{
_data
.
push
([
element
.
title
,
element
.
releaseDate
])
_
newsList
.
forEach
(
element
=>
{
_data
.
push
([
element
.
title
,
element
.
releaseDate
?
element
.
releaseDate
.
substring
(
0
,
10
)
:
''
])
})
this
.
config
=
{
columnWidth
:
[
3
50
,
20
0
],
columnWidth
:
[
3
00
,
12
0
],
oddRowBGC
:
'rgba(47,219,243,0.15)'
,
evenRowBGC
:
'rgba(47,219,243,0.05)'
,
data
:
_data
...
...
@@ -52,6 +45,9 @@ export default {
},
newsDetail
()
{
this
.
$router
.
push
(
'/companyNews'
)
},
handleClick
(
row
)
{
this
.
$router
.
push
({
path
:
'/newsDetail'
,
query
:
{
row
:
JSON
.
stringify
(
this
.
newsList
[
row
.
rowIndex
])
}
})
}
}
}
...
...
src/views/system/index/components/enterpriseDetail.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"newsDetail"
>
<headerLayout></headerLayout>
<headerLayout
active=
"0"
></headerLayout>
<div
class=
"news-wrapper"
>
<div
class=
"news-title d-flex jc-between"
>
<label>
{{
titleList
[
type
]
}}
</label>
...
...
@@ -30,11 +30,10 @@ export default {
titleList
:
{
0
:
'企业介绍'
,
1
:
'企业资质'
,
2
:
'企业产权'
,
3
:
'主营业务'
,
4
:
'公司荣誉'
,
5
:
'企业文化'
,
6
:
'企业规模'
2
:
'主营业务'
,
3
:
'公司荣誉'
,
4
:
'企业文化'
,
5
:
'企业规模'
},
type
:
0
,
contentData
:
''
...
...
@@ -108,9 +107,15 @@ export default {
.news-content
{
color
:
#fff
;
font-size
:
.14rem
;
width
:
9
.6rem
;
width
:
12rem
;
height
:
calc
(
100vh
-
3rem
);
overflow-y
:
auto
;
overflow-x
:
hidden
;
margin
:
0
auto
;
padding
:
20px
;
::v-deep
img
{
max-width
:
12rem
;
}
h3
{
text-align
:
center
;
font-size
:
.18rem
;
...
...
src/views/system/index/components/enterpriseSize.vue
View file @
5b8b5d9d
<
template
>
<d2-container
>
<headerLayout></headerLayout>
<headerLayout
active=
"0"
></headerLayout>
<div
class=
"enterpriseSize"
>
<div
class=
"news-title d-flex jc-between"
>
<label>
公司规模
</label>
...
...
@@ -11,7 +11,9 @@
<el-table
:show-header=
"false"
:data=
"tableData"
stripe
style=
"width: 100%"
>
<el-table-column
prop=
"type"
width=
"100"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
==
1
?
'子公司'
:
'母公司'
}}
</span>
<span
v-if=
"scope.row.type==0"
>
母公司
</span>
<span
v-else-if=
"scope.row.type==1"
>
子公司
</span>
<span
v-else
>
办事处
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
></el-table-column>
...
...
@@ -131,7 +133,7 @@ export default {
}
}
.el-table__body
tr
:hover
>
td
{
background-color
:
rgba
(
47
,
219
,
243
,
0
.15
)
;
background-color
:
$color-primary
;
}
}
}
...
...
src/views/system/index/components/importantProject.vue
View file @
5b8b5d9d
...
...
@@ -10,21 +10,26 @@
:value=
"item.customerAttribute"
>
</el-option>
</el-select>
<div
class=
"search d-flex"
>
<el-input
v-model=
"searchName"
placeholder=
"请输入内容"
></el-input>
<el-button
class=
"searchBtn"
@
click=
"getMajorItems"
>
查询
</el-button>
</div>
</div>
<div
class=
"content"
>
<div
class=
"subtitle"
><i
class=
"diamond"
></i>
解决方案
</div>
<div
class=
"solution"
>
<el-carousel
indicator-position=
"none"
>
<el-carousel-item
v-for=
"(
icon, id) in solutionList"
:key=
"id
"
>
<el-carousel-item
v-for=
"(
arr, index) in solutionList"
:key=
"index
"
>
<div
class=
"softwareSolution"
>
<div
class=
"title"
>
{{
icon
.
industry
}}
</div>
<div
class=
"title"
>
{{
arr
[
0
]
.
industry
}}
</div>
</div>
<ul>
<li
v-for=
"(item,
index) in icon.imageUrl.length"
:key=
"index
"
>
<el-image
:src=
"i
con.imageUrl[index]
"
></el-image>
<p>
{{
i
con
.
imageName
[
index
]
}}
</p>
<li
v-for=
"(item,
j) in arr"
:key=
"j"
@
click=
"viewPDF(item)
"
>
<el-image
:src=
"i
tem.imageUrl
"
></el-image>
<p>
{{
i
tem
.
projectName
||
'无项目名称'
}}
</p>
</li>
</ul>
</el-carousel-item>
</el-carousel>
</div>
...
...
@@ -48,18 +53,22 @@
</el-carousel>
</div>
</div>
<pdf-dialog
:is-show
.
sync=
"isShow"
:src=
"pdfUrl"
/>
</div>
</
template
>
<
script
>
import
*
as
API_BASIC
from
'@/api/sys.basic.js'
import
pdfDialog
from
'./pdfDialog'
export
default
{
components
:
{},
components
:
{
pdfDialog
},
data
()
{
return
{
pdfUrl
:
''
,
isShow
:
false
,
industryOptions
:
[],
industry
:
''
,
searchName
:
''
,
solutionList
:
[],
caseList
:
[]
}
...
...
@@ -81,20 +90,32 @@ export default {
},
// 查询概况页面数据
getMajorItems
()
{
API_BASIC
.
getMajorItems
({
industry
:
this
.
industry
||
null
}).
then
(
res
=>
{
API_BASIC
.
getMajorItems
({
industry
:
this
.
industry
||
null
,
name
:
this
.
searchName
||
null
}).
then
(
res
=>
{
if
(
res
.
status
===
200
)
{
this
.
solutionList
=
[]
const
_data
=
res
.
data
_data
.
forEach
(
item
=>
{
this
.
solutionList
.
push
({
industry
:
item
.
industry
,
imageUrl
:
item
.
imageUrl
&&
item
.
imageUrl
.
split
(
','
),
imageName
:
item
.
imageName
&&
item
.
imageName
.
split
(
','
)
})
this
.
solutionList
=
this
.
arrTrans
(
3
,
_data
)
}
})
},
// 一维数组转换为二维数组
arrTrans
(
num
,
arr
)
{
const
iconsArr
=
[]
// 声明数组
arr
.
forEach
((
item
,
index
)
=>
{
const
page
=
Math
.
floor
(
index
/
num
)
// 计算该元素为第几个素组内
if
(
!
iconsArr
[
page
])
{
// 判断是否存在
iconsArr
[
page
]
=
[]
}
iconsArr
[
page
].
push
(
item
)
})
return
iconsArr
},
// 预览PDF文件
viewPDF
(
item
)
{
// this.isShow = true
this
.
pdfUrl
=
item
.
planUrl
window
.
open
(
this
.
pdfUrl
,
'_blank'
)
},
// 案例展示 产品展示
productDemonstration
()
{
API_BASIC
.
productDemonstration
({
industry
:
this
.
industry
||
null
}).
then
(
res
=>
{
if
(
res
.
status
===
200
)
{
...
...
@@ -108,6 +129,19 @@ export default {
<
style
lang=
"scss"
scoped
>
.importantProject
{
.search-box
{
.search
{
margin-left
:
.2rem
;
width
:
calc
(
100%
-
0
.64rem
);
}
.el-input
{
height
:
.28rem
;
}
::v-deep
.el-input__inner
{
width
:
100%
;
height
:
.28rem
;
}
}
.content
{
padding
:
0
.24rem
;
.solution
{
...
...
src/views/system/index/components/mainPageEcharts/distributed.vue
View file @
5b8b5d9d
...
...
@@ -84,9 +84,9 @@ export default {
top
:
'20%'
,
left
:
'10%'
,
right
:
'10%'
,
bottom
:
'
5
%'
,
bottom
:
'
10
%'
,
width
:
'80%'
,
// 图例宽度
height
:
'
70
%'
// 图例高度
height
:
'
65
%'
// 图例高度
},
series
:
[
{
...
...
src/views/system/index/components/mainPageEcharts/mapChina.vue
View file @
5b8b5d9d
...
...
@@ -204,7 +204,197 @@ export default {
广西壮族
:
[
108.479
,
23.1152
],
海南省
:
[
110.3893
,
19.8516
],
上海市
:
[
121.4648
,
31.2891
],
香港
:
[
114.2784
,
22.3057
]
香港
:
[
114.2784
,
22.3057
],
海门
:
[
121.15
,
31.89
],
鄂尔多斯
:
[
109.781327
,
39.608266
],
招远
:
[
120.38
,
37.35
],
舟山
:
[
122.207216
,
29.985295
],
齐齐哈尔
:
[
123.97
,
47.33
],
盐城
:
[
120.13
,
33.38
],
赤峰
:
[
118.87
,
42.28
],
青岛
:
[
120.33
,
36.07
],
乳山
:
[
121.52
,
36.89
],
金昌
:
[
102.188043
,
38.520089
],
泉州
:
[
118.58
,
24.93
],
莱西
:
[
120.53
,
36.86
],
日照
:
[
119.46
,
35.42
],
胶南
:
[
119.97
,
35.88
],
南通
:
[
121.05
,
32.08
],
拉萨
:
[
91.11
,
29.97
],
云浮
:
[
112.02
,
22.93
],
梅州
:
[
116.1
,
24.55
],
文登
:
[
122.05
,
37.2
],
上海
:
[
121.48
,
31.22
],
攀枝花
:
[
101.718637
,
26.582347
],
威海
:
[
122.1
,
37.5
],
承德
:
[
117.93
,
40.97
],
厦门
:
[
118.1
,
24.46
],
汕尾
:
[
115.375279
,
22.786211
],
潮州
:
[
116.63
,
23.68
],
丹东
:
[
124.37
,
40.13
],
太仓
:
[
121.1
,
31.45
],
曲靖
:
[
103.79
,
25.51
],
烟台
:
[
121.39
,
37.52
],
福州
:
[
119.3
,
26.08
],
瓦房店
:
[
121.979603
,
39.627114
],
即墨
:
[
120.45
,
36.38
],
抚顺
:
[
123.97
,
41.97
],
玉溪
:
[
102.52
,
24.35
],
张家口
:
[
114.87
,
40.82
],
阳泉
:
[
113.57
,
37.85
],
莱州
:
[
119.942327
,
37.177017
],
湖州
:
[
120.1
,
30.86
],
汕头
:
[
116.69
,
23.39
],
昆山
:
[
120.95
,
31.39
],
宁波
:
[
121.56
,
29.86
],
湛江
:
[
110.359377
,
21.270708
],
揭阳
:
[
116.35
,
23.55
],
荣成
:
[
122.41
,
37.16
],
连云港
:
[
119.16
,
34.59
],
葫芦岛
:
[
120.836932
,
40.711052
],
常熟
:
[
120.74
,
31.64
],
东莞
:
[
113.75
,
23.04
],
河源
:
[
114.68
,
23.73
],
淮安
:
[
119.15
,
33.5
],
泰州
:
[
119.9
,
32.49
],
南宁
:
[
108.33
,
22.84
],
营口
:
[
122.18
,
40.65
],
惠州
:
[
114.4
,
23.09
],
江阴
:
[
120.26
,
31.91
],
蓬莱
:
[
120.75
,
37.8
],
韶关
:
[
113.62
,
24.84
],
嘉峪关
:
[
98.289152
,
39.77313
],
广州
:
[
113.23
,
23.16
],
延安
:
[
109.47
,
36.6
],
太原
:
[
112.53
,
37.87
],
清远
:
[
113.01
,
23.7
],
中山
:
[
113.38
,
22.52
],
昆明
:
[
102.73
,
25.04
],
寿光
:
[
118.73
,
36.86
],
盘锦
:
[
122.070714
,
41.119997
],
长治
:
[
113.08
,
36.18
],
深圳
:
[
114.07
,
22.62
],
珠海
:
[
113.52
,
22.3
],
宿迁
:
[
118.3
,
33.96
],
咸阳
:
[
108.72
,
34.36
],
铜川
:
[
109.11
,
35.09
],
平度
:
[
119.97
,
36.77
],
佛山
:
[
113.11
,
23.05
],
海口
:
[
110.35
,
20.02
],
江门
:
[
113.06
,
22.61
],
章丘
:
[
117.53
,
36.72
],
肇庆
:
[
112.44
,
23.05
],
大连
:
[
121.62
,
38.92
],
临汾
:
[
111.5
,
36.08
],
吴江
:
[
120.63
,
31.16
],
石嘴山
:
[
106.39
,
39.04
],
沈阳
:
[
123.38
,
41.8
],
苏州
:
[
120.62
,
31.32
],
茂名
:
[
110.88
,
21.68
],
嘉兴
:
[
120.76
,
30.77
],
长春
:
[
125.35
,
43.88
],
胶州
:
[
120.03336
,
36.264622
],
银川
:
[
106.27
,
38.47
],
张家港
:
[
120.555821
,
31.875428
],
三门峡
:
[
111.19
,
34.76
],
锦州
:
[
121.15
,
41.13
],
南昌
:
[
115.89
,
28.68
],
柳州
:
[
109.4
,
24.33
],
三亚
:
[
109.511909
,
18.252847
],
自贡
:
[
104.778442
,
29.33903
],
吉林
:
[
126.57
,
43.87
],
阳江
:
[
111.95
,
21.85
],
泸州
:
[
105.39
,
28.91
],
西宁
:
[
101.74
,
36.56
],
宜宾
:
[
104.56
,
29.77
],
呼和浩特
:
[
111.65
,
40.82
],
成都
:
[
104.06
,
30.67
],
大同
:
[
113.3
,
40.12
],
镇江
:
[
119.44
,
32.2
],
桂林
:
[
110.28
,
25.29
],
张家界
:
[
110.479191
,
29.117096
],
宜兴
:
[
119.82
,
31.36
],
北海
:
[
109.12
,
21.49
],
西安
:
[
108.95
,
34.27
],
金坛
:
[
119.56
,
31.74
],
东营
:
[
118.49
,
37.46
],
牡丹江
:
[
129.58
,
44.6
],
遵义
:
[
106.9
,
27.7
],
绍兴
:
[
120.58
,
30.01
],
扬州
:
[
119.42
,
32.39
],
常州
:
[
119.95
,
31.79
],
潍坊
:
[
119.1
,
36.62
],
重庆
:
[
106.54
,
29.59
],
台州
:
[
121.420757
,
28.656386
],
南京
:
[
118.78
,
32.04
],
滨州
:
[
118.03
,
37.36
],
贵阳
:
[
106.71
,
26.57
],
无锡
:
[
120.29
,
31.59
],
本溪
:
[
123.73
,
41.3
],
克拉玛依
:
[
84.77
,
45.59
],
渭南
:
[
109.5
,
34.52
],
马鞍山
:
[
118.48
,
31.56
],
宝鸡
:
[
107.15
,
34.38
],
焦作
:
[
113.21
,
35.24
],
句容
:
[
119.16
,
31.95
],
北京
:
[
116.46
,
39.92
],
徐州
:
[
117.2
,
34.26
],
衡水
:
[
115.72
,
37.72
],
包头
:
[
110
,
40.58
],
绵阳
:
[
104.73
,
31.48
],
乌鲁木齐
:
[
87.68
,
43.77
],
枣庄
:
[
117.57
,
34.86
],
杭州
:
[
120.19
,
30.26
],
淄博
:
[
118.05
,
36.78
],
鞍山
:
[
122.85
,
41.12
],
溧阳
:
[
119.48
,
31.43
],
库尔勒
:
[
86.06
,
41.68
],
安阳
:
[
114.35
,
36.1
],
开封
:
[
114.35
,
34.79
],
济南
:
[
117
,
36.65
],
德阳
:
[
104.37
,
31.13
],
温州
:
[
120.65
,
28.01
],
九江
:
[
115.97
,
29.71
],
邯郸
:
[
114.47
,
36.6
],
临安
:
[
119.72
,
30.23
],
兰州
:
[
103.73
,
36.03
],
沧州
:
[
116.83
,
38.33
],
临沂
:
[
118.35
,
35.05
],
南充
:
[
106.110698
,
30.837793
],
天津
:
[
117.2
,
39.13
],
富阳
:
[
119.95
,
30.07
],
泰安
:
[
117.13
,
36.18
],
诸暨
:
[
120.23
,
29.71
],
郑州
:
[
113.65
,
34.76
],
哈尔滨
:
[
126.63
,
45.75
],
聊城
:
[
115.97
,
36.45
],
芜湖
:
[
118.38
,
31.33
],
唐山
:
[
118.02
,
39.63
],
平顶山
:
[
113.29
,
33.75
],
邢台
:
[
114.48
,
37.05
],
德州
:
[
116.29
,
37.45
],
济宁
:
[
116.59
,
35.38
],
荆州
:
[
112.239741
,
30.335165
],
宜昌
:
[
111.3
,
30.7
],
义乌
:
[
120.06
,
29.32
],
丽水
:
[
119.92
,
28.45
],
洛阳
:
[
112.44
,
34.7
],
秦皇岛
:
[
119.57
,
39.95
],
株洲
:
[
113.16
,
27.83
],
石家庄
:
[
114.48
,
38.03
],
莱芜
:
[
117.67
,
36.19
],
常德
:
[
111.69
,
29.05
],
保定
:
[
115.48
,
38.85
],
湘潭
:
[
112.91
,
27.87
],
金华
:
[
119.64
,
29.12
],
岳阳
:
[
113.09
,
29.37
],
长沙
:
[
113
,
28.21
],
衢州
:
[
118.88
,
28.97
],
廊坊
:
[
116.7
,
39.53
],
菏泽
:
[
115.480656
,
35.23375
],
合肥
:
[
117.27
,
31.86
],
武汉
:
[
114.31
,
30.52
],
大庆
:
[
125.03
,
46.58
]
}
var
res
=
[]
for
(
var
i
=
0
;
i
<
this
.
message
.
length
;
i
++
)
{
...
...
src/views/system/index/components/mainPageEcharts/statistics.vue
View file @
5b8b5d9d
...
...
@@ -57,9 +57,9 @@ export default {
grid
:
{
top
:
'10%'
,
left
:
'15%'
,
bottom
:
'
5
%'
,
bottom
:
'
10
%'
,
width
:
'80%'
,
// 图例宽度
height
:
'
80
%'
// 图例高度
height
:
'
75
%'
// 图例高度
},
series
:
[{
data
:
vm
.
message
.
series
,
...
...
src/views/system/index/components/newsDetail.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"newsDetail"
>
<headerLayout></headerLayout>
<headerLayout
active=
"0"
></headerLayout>
<div
class=
"news-wrapper"
>
<div
class=
"news-title d-flex jc-between"
>
<label>
公司新闻
</label>
...
...
@@ -65,7 +65,10 @@ export default {
.news-content
{
color
:
#fff
;
font-size
:
.14rem
;
width
:
9
.6rem
;
width
:
12rem
;
height
:
calc
(
100vh
-
3rem
);
overflow-y
:
auto
;
overflow-x
:
hidden
;
margin
:
0
auto
;
h3
{
text-align
:
center
;
...
...
src/views/system/index/components/pdfDialog.vue
0 → 100644
View file @
5b8b5d9d
<
template
>
<el-dialog
:visible
.
sync=
"isShow"
:close-on-click-modal=
"false"
center
@
close=
"close"
:modal-append-to-body=
true
append-to-body
>
<div>
{{
src
}}
<pdf
:src=
"src"
></pdf>
</div>
</el-dialog>
</
template
>
<
script
>
import
pdf
from
'vue-pdf'
export
default
{
components
:
{
pdf
},
props
:
[
'src'
,
'isShow'
],
data
()
{
return
{
}
},
mounted
()
{
},
methods
:
{
// 关闭
close
()
{
this
.
$emit
(
'update:isShow'
,
false
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.el-dialog
{
width
:
60vw
;
height
:
60vh
;
background
:
url("~@/assets/img/dialogBg.png")
rgba
(
0
,
14
,
66
,
0
.8
);
background-size
:
100%
100%
;
box-shadow
:
0px
0px
8px
4px
rgba
(
10
,
18
,
35
,
0
.5
);
.el-dialog__header
{
padding
:
0
;}
.el-dialog__body
{
height
:
100%
;
padding
:
0
;
}
.el-dialog__headerbtn
{
font-size
:
24px
;
z-index
:
1
;
.el-dialog__close
{
color
:
#30DDF4
;
}
}
.el-input__inner
{
background
:rgba
(
144
,
224
,
255
,
0
.15
)
;
border-radius
:
2px
;
border
:
1px
solid
rgba
(
119
,
226
,
255
,
1
);
color
:
#FFFFFF
;
font-size
:
12px
;
font-family
:
PingFang-SC-Bold
,
PingFang-SC
;
font-weight
:bold
;
}
.search
{
font-size
:
12px
;
font-family
:
PingFang-SC-Bold
,
PingFang-SC
;
font-weight
:bold
;
width
:
100%
;
height
:
.28rem
;
margin-top
:
.2rem
;
border-bottom
:
1px
solid
rgba
(
119
,
226
,
255
,
1
);
display
:
flex
;
.el-autocomplete
{
flex
:
1
;
.el-input__inner
{
width
:
100%
;
background
:transparent
;
color
:
#FFFFFF
;
border
:
0
!
important
;
}
}
}
.el-checkbox
{
float
:
left
;
margin
:
4px
0
;
width
:
calc
(
100%
-
20px
);
padding-left
:
20px
;
.el-checkbox__inner
{
background
:
#000E42
;
border
:
1px
solid
#30DDF4
;
}
.el-checkbox__label
{
height
:
16px
;
font-size
:
14px
;
font-family
:
PingFang-SC-Regular
,
PingFang-SC
;
font-weight
:
400
;
color
:rgba
(
255
,
255
,
255
,
1
)
;
line-height
:
16px
}
.
el-checkbox__inner
:
:
after
{
border
:
1px
solid
#30DDF4
;
border-left
:
0
;
border-top
:
0
;
}
}
}
</
style
>
src/views/system/index/page.vue
View file @
5b8b5d9d
<
template
>
<d2-container
class=
"mainPage"
>
<headerLayout></headerLayout>
<headerLayout
active=
"0"
></headerLayout>
<div
class=
"section"
>
<div
class=
"leftBlock"
>
<deptIntroduction
class=
"deptIntroduction"
></deptIntroduction>
...
...
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