Commit e314beaf by liudx

联调企业云图,word,模板云图

parent 3e74870f
No preview for this file type
No preview for this file type
<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 [550, 200];
return [600, 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", //图表背景色
......
......@@ -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: {
......
......@@ -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_purchase
patentPurchase.max_list[0].max_value
}}</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),
},
],
};
......
......@@ -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
......
......@@ -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: true,
show: false,
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>
......
......@@ -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: "zlqrdq",
key: "zlqrdq",
title: "公开日",
dataIndex: "gkrq",
key: "gkrq",
ellipsis: true,
},
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment