Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
ty_patentSys
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hanxiao
ty_patentSys
Commits
e314beaf
Commit
e314beaf
authored
Aug 07, 2023
by
liudx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
联调企业云图,word,模板云图
parent
3e74870f
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
152 additions
and
140 deletions
+152
-140
public/company.docx
+0
-0
public/patent.docx
+0
-0
src/views/company/companyDetails.vue
+80
-35
src/views/company/companyProfile.vue
+3
-7
src/views/company/cooperation.vue
+24
-57
src/views/company/index.vue
+2
-1
src/views/company/overview.vue
+37
-37
src/views/patent/index.vue
+6
-3
No files found.
public/company.docx
View file @
e314beaf
No preview for this file type
public/patent.docx
View file @
e314beaf
No preview for this file type
src/views/company/companyDetails.vue
View file @
e314beaf
<
template
>
<div
class=
"details"
>
<a-breadcrumb
class=
"nav_bread"
>
<a-breadcrumb-item><router-link
:to=
"'/home'"
>
首页
</router-link></a-breadcrumb-item>
<a-breadcrumb-item><router-link
:to=
"'/company'"
>
企业
</router-link></a-breadcrumb-item>
<a-breadcrumb-item
><router-link
:to=
"'/home'"
>
首页
</router-link></a-breadcrumb-item
>
<a-breadcrumb-item
><router-link
:to=
"'/company'"
>
企业
</router-link></a-breadcrumb-item
>
<a-breadcrumb-item>
公司详情
</a-breadcrumb-item>
</a-breadcrumb>
<div
class=
"back_btn"
@
click=
"backbtn"
>
返回
</div>
...
...
@@ -85,7 +89,8 @@
</a-form-item>
</a-form>
</a-modal>
<div
style=
"width: 70%; visibility: hidden; overflow: hidden; height: 20px"
>
<!--
<div
style=
"width: 70%; visibility: hidden; overflow: hidden; height: 20px"
>
-->
<div
style=
"width: 70%"
>
<EchartsCon
:id=
"'applyTrend1'"
:option=
"option1"
...
...
@@ -99,6 +104,12 @@
<EchartsCon
:id=
"'echartsone1'"
:option=
"option3"
></EchartsCon>
<EchartsCon
:id=
"'echartstwo1'"
:option=
"option4"
></EchartsCon>
<EchartsCon
:id=
"'echartsthree1'"
:option=
"option5"
></EchartsCon>
<EchartsCloud
:id=
"'TechnicalField1'"
:dataArr=
"techArr1"
:style=
"'height:300px;width:100%;'"
v-if=
"techArr1.length>0"
></EchartsCloud>
<EchartsCon
:option=
"option7"
:id=
"'apply'"
></EchartsCon>
<EchartsCon
:option=
"option8"
:id=
"'purchase'"
></EchartsCon>
</div>
...
...
@@ -107,6 +118,7 @@
<
script
>
import
*
as
echarts
from
"echarts"
;
import
EchartsCon
from
"../../components/EchartsCon"
;
import
EchartsCloud
from
"../../components/EchartsCloud"
;
import
companyProfile
from
"./companyProfile.vue"
;
import
{
enterpriseDetail
,
...
...
@@ -172,24 +184,7 @@ export default {
deveSustain
:
null
,
count
:
0
,
follow
:
true
,
techArr
:
[
{
name
:
"支架搬运车"
,
value
:
30
,
},
{
name
:
"人工智能领域"
,
value
:
80
,
},
{
name
:
"广泛应用"
,
value
:
70
,
},
{
name
:
"驾驶室"
,
value
:
301
,
},
],
techArr1
:
[],
baseinfo
:
{},
structureData
:
{},
jointData
:
{},
...
...
@@ -202,6 +197,7 @@ export default {
overview
,
technology
,
EchartsCon
,
EchartsCloud
,
},
methods
:
{
openModal
()
{
...
...
@@ -239,6 +235,14 @@ export default {
researchDevelop
({
id
:
id
}).
then
((
res
)
=>
{
if
(
res
.
code
==
0
)
{
this
.
developmentOverview
=
res
.
data
;
let
word_cloud
=
res
.
data
.
word_cloud
;
this
.
techArr1
=
[];
for
(
let
key
in
word_cloud
)
{
this
.
techArr1
.
push
({
name
:
key
,
value
:
word_cloud
[
key
],
});
}
}
else
{
message
.
error
(
res
.
msg
);
}
...
...
@@ -247,8 +251,9 @@ export default {
sustainability
({
id
:
id
}).
then
((
res
)
=>
{
if
(
res
.
code
==
0
)
{
this
.
deveSustain
=
res
.
data
;
this
.
deveSustain
.
patent_authorization_rate
=
(
this
.
deveSustain
.
patent_authorization_rate
*
100
).
toFixed
(
2
)
+
"%"
;
this
.
deveSustain
.
most_patent_authorization_rate
=
(
this
.
deveSustain
.
most_patent_authorization_rate
*
100
).
toFixed
(
2
)
+
"%"
;
this
.
getTrend
();
this
.
getAuthorize
();
}
else
{
...
...
@@ -285,10 +290,8 @@ export default {
patentPurchase
({
id
:
id
}).
then
((
res
)
=>
{
if
(
res
.
code
==
0
)
{
this
.
patentPurchaseData
=
res
.
data
;
this
.
patentPurchaseData
.
max_name_purchase
=
this
.
patentPurchaseData
.
max_name
;
this
.
patentPurchaseData
.
max_value_purchase
=
this
.
patentPurchaseData
.
max_value
;
this
.
patentPurchaseData
.
max_
list
[
0
].
max_
value
;
this
.
getOptions2
();
}
else
{
message
.
error
(
res
.
msg
);
...
...
@@ -504,6 +507,8 @@ export default {
type
:
"value"
,
// boundaryGap: [0, 0.01],
name
:
"专利数量"
,
min
:
0
,
max
:
Math
.
max
(...
ydata2
)
+
1
,
axisLine
:
{
show
:
false
,
},
...
...
@@ -515,6 +520,8 @@ export default {
type
:
"value"
,
// boundaryGap: [0, 0.01],
name
:
"授权占比"
,
min
:
0
,
max
:
100
,
axisLine
:
{
show
:
false
,
},
...
...
@@ -691,6 +698,7 @@ export default {
//添加数据
if
(
this
.
jointData
.
joint_application
.
length
!=
0
)
{
this
.
jointData
.
joint_application
.
forEach
((
item
,
index
)
=>
{
if
(
index
<
9
)
{
points
.
push
({
name
:
item
.
name
,
symbolSize
:
40
,
...
...
@@ -702,12 +710,12 @@ export default {
:
-
300
*
Math
.
ceil
(
index
/
2
),
y
:
80
*
(
10
-
index
),
});
links
.
push
({
source
:
this
.
baseinfo
.
company_name
,
target
:
item
.
name
,
value
:
item
.
value
,
});
}
});
}
this
.
option7
=
{
...
...
@@ -841,7 +849,7 @@ export default {
var
chartDom3
=
document
.
getElementById
(
"echartsone1"
);
var
chartDom4
=
document
.
getElementById
(
"echartstwo1"
);
var
chartDom5
=
document
.
getElementById
(
"echartsthree1"
);
// var chartDom6 = document.getElementById("
");
var
chartDom6
=
document
.
getElementById
(
"TechnicalField1
"
);
var
chartDom7
=
document
.
getElementById
(
"apply"
);
var
chartDom8
=
document
.
getElementById
(
"purchase"
);
let
myChart1
=
null
;
...
...
@@ -849,6 +857,7 @@ export default {
let
myChart3
=
null
;
let
myChart4
=
null
;
let
myChart5
=
null
;
let
myChart6
=
null
;
let
myChart7
=
null
;
let
myChart8
=
null
;
myChart1
=
echarts
.
init
(
chartDom1
);
...
...
@@ -856,6 +865,7 @@ export default {
myChart3
=
echarts
.
init
(
chartDom3
);
myChart4
=
echarts
.
init
(
chartDom4
);
myChart5
=
echarts
.
init
(
chartDom5
);
myChart6
=
echarts
.
init
(
chartDom6
);
myChart7
=
echarts
.
init
(
chartDom7
);
myChart8
=
echarts
.
init
(
chartDom8
);
// myChart2 = echarts.init(chartDom2);
...
...
@@ -869,6 +879,41 @@ export default {
myChart7
.
setOption
(
this
.
option7
);
myChart8
.
setOption
(
this
.
option8
);
//技术领域云图
myChart6
.
setOption
({
series
:
[
{
type
:
"wordCloud"
,
gridSize
:
10
,
sizeRange
:
[
14
,
60
],
rotationRange
:
[
0
,
0
],
//随机生成字体颜色
// maskImage: maskImage,
textStyle
:
{
color
:
function
()
{
return
(
"rgb("
+
Math
.
round
(
Math
.
random
()
*
255
)
+
", "
+
Math
.
round
(
Math
.
random
()
*
255
)
+
", "
+
Math
.
round
(
Math
.
random
()
*
255
)
+
")"
);
},
},
left
:
"center"
,
top
:
"center"
,
right
:
null
,
bottom
:
null
,
width
:
"200%"
,
height
:
"200%"
,
//数据
data
:
that
.
techArr1
,
},
],
});
setTimeout
(()
=>
{
// 加setTimeout是为了让echarts渲染完成后生成图片
JSZipUtils
.
getBinaryContent
(
"company.docx"
,
function
(
error
,
content
)
{
...
...
@@ -890,7 +935,7 @@ export default {
if
(
tagValue
.
size
&&
tagValue
.
data
)
{
return
tagValue
.
size
;
}
return
[
55
0
,
200
];
return
[
60
0
,
200
];
};
// 创建一个JSZip实例,内容为模板的内容
const
zip
=
new
PizZip
(
content
);
...
...
@@ -949,12 +994,12 @@ export default {
excludeComponents
:
[
"toolbox"
],
//忽略组件的列表
type
:
"png"
,
//图片类型支持png和jpeg
}),
// image5: myChart5
.getDataURL({
//
pixelRatio: 5, //导出的图片分辨率比率,默认是1
//
backgroundColor: "#fff", //图表背景色
//
excludeComponents: ["toolbox"], //忽略组件的列表
//
type: "png", //图片类型支持png和jpeg
//
}),
image6
:
myChart6
.
getDataURL
({
pixelRatio
:
5
,
//导出的图片分辨率比率,默认是1
backgroundColor
:
"#fff"
,
//图表背景色
excludeComponents
:
[
"toolbox"
],
//忽略组件的列表
type
:
"png"
,
//图片类型支持png和jpeg
}),
image7
:
myChart7
.
getDataURL
({
pixelRatio
:
5
,
//导出的图片分辨率比率,默认是1
backgroundColor
:
"#fff"
,
//图表背景色
...
...
src/views/company/companyProfile.vue
View file @
e314beaf
...
...
@@ -200,8 +200,8 @@ export default {
},
{
title
:
"认缴出资日期"
,
dataIndex
:
""
,
key
:
""
,
dataIndex
:
"
capital_date
"
,
key
:
"
capital_date
"
,
},
],
// columns_history: [
...
...
@@ -342,11 +342,6 @@ export default {
title
:
"披露日期"
,
dataIndex
:
"pub_date"
,
key
:
"pub_date"
,
// defaultSortOrder: "descend", // 默认上到下为由大到小的顺序
// sorter: (a, b) => {
// return a.pub_date > b.pub_date ? 1 : -1;
// },
// sortOrder:'ascend'
},
{
title
:
"交易金额"
,
...
...
@@ -362,6 +357,7 @@ export default {
title
:
"投资方"
,
dataIndex
:
"investor"
,
key
:
"investor"
,
width
:
240
},
],
pagination
:
{
...
...
src/views/company/cooperation.vue
View file @
e314beaf
...
...
@@ -10,7 +10,9 @@
class=
"color"
>
{{
joint
.
all_nums
}}
</span
>
次产学研合作。
<template
v-if=
"!joint.all_nums"
>
</
template
>
<template
v-if=
"!joint.all_nums"
>
<a-empty></a-empty>
</
template
>
<
template
v-else
>
其中,与
<span
class=
"color"
>
{{
joint
.
max_name_apply
}}
</span
>
最为密切,合作次数为
<span
class=
"color"
>
{{
...
...
@@ -30,23 +32,31 @@
<h2
class=
"title"
>
专利购买
</h2>
<p>
分析该企业专利购买历史,了解该企业向哪些专利权人购买了专利,以及购买了哪些专利。如果该企业购买专利数量较多,需要关注这些外购专利是否为企业的核心专利,进而分析企业的研发能力。
<
template
v-if=
"patentPurchase.max_value_purchase"
>
该企业向
<span
class=
"color"
>
{{
patentPurchase
.
max_name_purchase
<
template
v-if=
"patentPurchase.max_list.length > 0"
>
该企业向
<span
class=
"color"
v-for=
"(item, index) in patentPurchase.max_list"
:key=
"item.max_name"
>
{{
index
==
patentPurchase
.
max_list
.
length
-
1
?
item
.
max_name
:
item
.
max_name
+
","
}}
</span
>
购买专利最多,为
<span
class=
"color"
>
{{
patentPurchase
.
max_
value_purchas
e
patentPurchase
.
max_
list
[
0
].
max_valu
e
}}
</span
>
件。
</
template
>
<
template
v-else
>
该企业购买专利为
<span
class=
"color"
>
{{
patentPurchase
.
max_value_purchase
}}
</span
>
件。
该企业购买专利为
<span
class=
"color"
>
0
</span>
件
<a-empty></a-empty>
</
template
>
</p>
<EchartsCon
:option=
"option2"
:id=
"'echarts2'"
v-if=
"patentPurchase.max_value_purchase"
></EchartsCon>
<EchartsCon
:option=
"option2"
:id=
"'echarts2'"
v-if=
"patentPurchase.max_list.length != 0"
></EchartsCon>
</div>
</div>
<div
class=
"company_con_anchor"
>
...
...
@@ -125,7 +135,7 @@ export default {
//添加数据
if
(
this
.
joint
.
joint_application
.
length
!=
0
)
{
this
.
joint
.
joint_application
.
forEach
((
item
,
index
)
=>
{
if
(
index
<
9
)
{
points
.
push
({
name
:
item
.
name
,
symbolSize
:
40
,
...
...
@@ -137,13 +147,12 @@ export default {
:
-
300
*
Math
.
ceil
(
index
/
2
),
y
:
80
*
(
10
-
index
),
});
links
.
push
({
source
:
this
.
company_name
,
target
:
item
.
name
,
value
:
item
.
value
,
});
}
});
}
this
.
option1
=
{
...
...
@@ -175,48 +184,6 @@ export default {
},
},
data
:
points
,
// data: [
// {
// name: "1",
// symbolSize: 40,
// category: 1,
// value: "3",
// // x: 80,
// // y: 80,
// x: 550 + Math.cos(((Math.PI * 1) / 10) * 10) * 200,
// y: 550 + Math.sin(((Math.PI * 1) / 10) * 10) * 200,
// },
// {
// name: "2",
// symbolSize: 40,
// category: 1,
// value: "3",
// // x: 80,
// // y: 80,
// x: 550 + Math.cos(((Math.PI * 2) / 10) * 10) * 200,
// y: 550 + Math.sin(((Math.PI * 2) / 10) * 10) * 200,
// },
// {
// name: "3",
// symbolSize: 40,
// category: 1,
// value: "3",
// // x: 80,
// // y: 80,
// x: 550 + Math.cos(((Math.PI * 3) / 10) * 10) * 200,
// y: 550 + Math.sin(((Math.PI * 3) / 10) * 10) * 200,
// },
// {
// name: "4",
// symbolSize: 40,
// category: 1,
// value: "3",
// // x: 80,
// // y: 80,
// x: 550 + Math.cos(((Math.PI * 4) / 10) * 10) * 200,
// y: 550 + Math.sin(((Math.PI * 4) / 10) * 10) * 200,
// },
// ],
links
:
links
,
lineStyle
:
{
normal
:
{
...
...
@@ -274,7 +241,7 @@ export default {
},
series
:
[
{
name
:
"
地市资源排行
"
,
name
:
"
专利购买
"
,
type
:
"bar"
,
// symbol: "path://M1 1,L140 1,L140 15,L1 15,Z",
// symbolKeepAspect: false,
...
...
@@ -287,7 +254,7 @@ export default {
fontSize
:
12
,
formatter
:
"{c}"
,
},
data
:
dataList
,
data
:
dataList
.
map
((
r
)
=>
r
.
value
)
,
},
],
};
...
...
src/views/company/index.vue
View file @
e314beaf
...
...
@@ -133,7 +133,8 @@
:key=
"item"
@
click=
"openCompany(item.mysql_id, item.company_name)"
>
<div
class=
"card_title"
>
{{ item.company_name }}
</div>
<div
class=
"card_title"
>
{{ item.company_name }}
</div><br>
<!-- 关注 -->
<div
class=
"follow"
@
click=
"follow"
v-if=
"item.follow"
>
<img
...
...
src/views/company/overview.vue
View file @
e314beaf
...
...
@@ -43,7 +43,7 @@
deveSustainData
.
most_patent_application_num
}}
</span
>
件且专利授权率为
<span
class=
"color"
>
{{
deveSustainData
.
patent_authorization_rate
deveSustainData
.
most_
patent_authorization_rate
}}
</span
>
。
</p>
...
...
@@ -53,18 +53,22 @@
}}
</span
>
件
</p>
<a-radio-group
v-model:value=
"tabchange"
style=
"margin: 8px"
v-if=
"deveSustainData.patent_application_num"
>
<a-radio-group
v-model:value=
"tabchange"
style=
"margin: 8px"
v-if=
"deveSustainData.patent_application_num"
>
<a-radio-button
value=
"1"
>
专利申请年份趋势
</a-radio-button>
<a-radio-button
value=
"2"
>
历年专利申请及授权
</a-radio-button>
</a-radio-group>
<EchartsCon
v-if=
"tabchange == 1 &&deveSustainData.patent_application_num"
v-if=
"tabchange == 1 &&
deveSustainData.patent_application_num"
:id=
"'applyTrend'"
:option=
"option1"
:style=
"'height:300px'"
></EchartsCon>
<EchartsCon
v-if=
"tabchange == 2&& deveSustainData.patent_application_num"
v-if=
"tabchange == 2
&& deveSustainData.patent_application_num"
:id=
"'patentAuthorize'"
:option=
"option2"
:style=
"'height:300px;width:100%;'"
...
...
@@ -116,12 +120,21 @@
<div
class=
"company_con1"
id=
"TechnicalLayout"
>
<h2
class=
"title"
>
技术领域布局
</h2>
<p>
特定周期内,某个主题关键词出现的次数越多,则企业在该主题领域的技术布局越多。通过算法分析,该企业近期主要专注在履带式、运输车、液压支架、支架搬运车、运输设备等技术领域
特定周期内,某个主题关键词出现的次数越多,则企业在该主题领域的技术布局越多。通过算法分析,该企业近期主要专注在
<span
class=
"color"
v-for=
"(item, index) in o_word_cloud"
:key=
"item"
>
{{
index
==
o_word_cloud
.
length
-
1
?
item
:
item
+
"、"
}}
</span
>
等技术领域
</p>
<EchartsCloud
:id=
"'TechnicalField'"
:dataArr=
"techArr"
v-if=
"techArr.length>0"
></EchartsCloud>
</div>
</div>
<div
class=
"company_con_anchor"
>
...
...
@@ -243,7 +256,8 @@ export default {
show
:
false
,
},
type
:
"value"
,
name
:
"kW.h"
,
// name: "",
// 标题名称颜色
nameTextStyle
:
{
color
:
"white"
,
...
...
@@ -325,6 +339,7 @@ export default {
ydata3
=
ydata1
.
map
((
elem
,
index
)
=>
((
elem
/
ydata2
[
index
])
*
100
).
toFixed
(
2
)
);
this
.
option2
=
{
//下面就是上图的配置项,关键部分有注释
tooltip
:
{
...
...
@@ -390,7 +405,9 @@ export default {
axisLine
:
{
show
:
false
,
},
min
:
0
,
max
:
Math
.
max
(...
ydata2
)
+
1
,
minInterval
:
1
,
splitLine
:
{
show
:
false
,
},
...
...
@@ -402,6 +419,8 @@ export default {
axisLine
:
{
show
:
false
,
},
min
:
0
,
max
:
100
,
axisLabel
:
{
formatter
:
"{value}%"
,
},
...
...
@@ -424,7 +443,7 @@ export default {
symbolBoundingData
:
1
,
//图形的个数
z
:
12
,
//柱子的层级
label
:
{
show
:
tru
e
,
show
:
fals
e
,
position
:
"top"
,
// color: "#fff",
formatter
:
"{c}"
,
...
...
@@ -558,26 +577,7 @@ export default {
};
},
//获取技术领域布局
getTechnicalField
()
{
this
.
techArr
=
[
{
name
:
"支架搬运车"
,
value
:
30
,
},
{
name
:
"人工智能领域"
,
value
:
80
,
},
{
name
:
"广泛应用"
,
value
:
70
,
},
{
name
:
"驾驶室"
,
value
:
301
,
},
];
},
getTechnicalField
()
{},
handleAnchorClick
(
e
,
link
)
{
e
.
preventDefault
();
},
...
...
@@ -585,15 +585,15 @@ export default {
created
()
{
this
.
deveSustainData
=
this
.
$props
.
deveSustain
;
this
.
devstructureData
=
this
.
$props
.
structureData
;
// this.deveSustain.patent_authorization_rate =
// (this.deveSustain.patent_authorization_rate * 100).toFixed(2) + "%"
;
// //专利结构占比的发明专利占比
// this.structureData.invent_patent_percent =
// (this.structureData.invent_patent_percent * 100).toFixed(2) + "%";
// //专利结构占比的有效专利占比
// this.structureData.valid_patent_percent =
// (this.structureData.valid_patent_percent * 100).toFixed(2) + "%";
this
.
o_word_cloud
=
this
.
$props
.
developmentOverview
.
o_word_cloud
;
let
word_cloud
=
this
.
$props
.
developmentOverview
.
word_cloud
;
this
.
techArr
=
[]
;
for
(
let
key
in
word_cloud
)
{
this
.
techArr
.
push
({
name
:
key
,
value
:
word_cloud
[
key
],
});
}
},
};
</
script
>
...
...
src/views/patent/index.vue
View file @
e314beaf
...
...
@@ -95,6 +95,9 @@
<template
v-if=
"column.dataIndex === 'name'"
>
<a>
{{
text
}}
</a>
</
template
>
<
template
v-if=
"column.dataIndex === 'gkrq'"
>
{{
text
.
substring
(
0
,
text
.
indexOf
(
"T"
))
}}
</
template
>
</template>
</a-table>
<br
/>
...
...
@@ -164,9 +167,9 @@ export default {
key
:
"zlr"
,
},
{
title
:
"
当前权利人
"
,
dataIndex
:
"
zlqrd
q"
,
key
:
"
zlqrd
q"
,
title
:
"
公开日
"
,
dataIndex
:
"
gkr
q"
,
key
:
"
gkr
q"
,
ellipsis
:
true
,
},
{
...
...
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