<!-- -->
|
<template>
|
<div class="batch">
|
<main>
|
<section class="left">
|
<div class="title">批量检索功能说明</div>
|
<!-- <p>1. 可以批量输入公开号、申请号或申请人,检索对应的专利文献。</p>
|
<p>2. 输入号码时,可以用逗号、分号、空格或者回车分隔。输入申请人时需要用回车分隔,每个申请人一行。</p>
|
<p>3. 进行批量号码检索时,最多可输入5000个号码。</p> -->
|
<p>1、可以批量输入公开号、申请号或申请人,检索对应的专利文献。</p>
|
<p>2、输入号码时,可以用逗号、分号、空格或者回车分隔,输入申请人时需要用回车分隔,每个申请人一行。</p>
|
<p>3、进行批量号码检索时,单次输入公开号上限是5000,单次输入申请号上限是5000,单次输入申请人上限是2000。</p>
|
<p>4、点击“检索”按钮,即可查找相关匹配内容。当有未匹配上的号码如:“CN100317B”,会显示“暂无数据”。</p>
|
<!-- <p>
|
1.可以批量输入公开(公告)号、申请号或优先权号或申请人,或从本地导入专利号列表,检索对应的专利文献,也可以直接批量下载PDF全文.
|
</p>
|
<p>
|
2.输入号码时,可以用逗号、分号、空格或者回车分隔.导入专利号列表时仅支持上传TXT文档,输入申请人时需要用回车分隔,每个申请人一行
|
</p>
|
<p>
|
3.进行批量号码检索时,最多可输入5000个号码。进行PDF批量下载时,最多支持100条专利的批量下载.
|
</p>
|
<p>
|
4.可以输入一段带号码的文字内容,支持匹配文字里的号码,文字内容最多可输入2万字符.
|
</p>
|
<p>
|
5.点击“查看匹配结果”按钮,展开右侧号码匹配详情窗口,当有未匹配上的号码如:“EP292137B2”,显示“允许模糊查询”按钮,点击会查询到“EP292137B2”的其他版本如:“Ep292137B1”.
|
</p> -->
|
</section>
|
<section class="right">
|
<div class="title">批量检索</div>
|
<a-tabs class="tab" default-active-key="publicationNumber" @change="callback">
|
<a-tab-pane key="publicationNumber" tab="公开号">
|
<a-textarea v-model="searchParams.publicationNumber" cols="30" rows="6"
|
placeholder="系统将根据公开号列表返回所有匹配的专利信息,单次输入公开号上限是5000"></a-textarea>
|
</a-tab-pane>
|
<a-tab-pane key="applicationNumber" tab="申请号" force-render>
|
<a-textarea v-model="searchParams.applicationNumber" cols="30" rows="6"
|
placeholder="系统将根据申请号列表返回所有匹配的专利信息,单次输入申请号上限是5000"></a-textarea>
|
</a-tab-pane>
|
<!-- <a-tab-pane key="3" tab="优先权号">
|
<textarea name="" id="" cols="30" rows="10"></textarea>
|
</a-tab-pane> -->
|
<!-- <a-tab-pane key="4" tab="所有号码">
|
<textarea name="" id="" cols="30" rows="10"></textarea>
|
</a-tab-pane> -->
|
<a-tab-pane key="assigneeList" tab="申请人">
|
<a-textarea v-model="searchParams.assigneeList" cols="30" rows="6"
|
placeholder="系统将根据申请人列表返回所有匹配的专利信息,单次输入申请人上限是2000"></a-textarea>
|
</a-tab-pane>
|
</a-tabs>
|
<ul>
|
<li>
|
<!-- <div>下载EXCAL模板</div>
|
<div>下载TXT模板</div>
|
<div>上传EXCAL</div>
|
<div>上传TXT</div> -->
|
</li>
|
<li>
|
<div @click="clear">清除</div>
|
<!-- <div>查看匹配结果</div> -->
|
<div @click="handleSearch">检索</div>
|
<!-- <div>查看匹配结果</div> -->
|
</li>
|
</ul>
|
</section>
|
<!-- <section class="results">
|
<div class="title"> 号码匹配详情</div>
|
<ul>
|
<li>
|
<div>输入的号码</div>
|
<div>{{0}}个</div>
|
</li>
|
<li>
|
<div>重复的号码</div>
|
<div>{{0}}个</div>
|
</li>
|
<li>
|
<div>匹配到的专利</div>
|
<div>{{0}}个</div>
|
</li>
|
<li>
|
<div>模糊匹配到的专利</div>
|
<div>{{0}}个</div>
|
</li>
|
<li>
|
<div>未匹配号码</div>
|
<div>{{0}}个</div>
|
</li>
|
</ul>
|
<div>匹配详情</div>
|
<a-table :columns="columns" :data-source="phoData" bordered :rowKey="(record,index)=>{return index++}">
|
<a slot="Name" slot-scope="text">{{ text }}</a>
|
|
|
</a-table>
|
|
</section> -->
|
</main>
|
</div>
|
</template>
|
|
<script>
|
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
|
//例如:import 《组件名称》 from '《组件路径》';
|
|
export default {
|
//import引入的组件需要注入到components对象中才能使用
|
components: {},
|
data() {
|
//这里存放数据
|
return {
|
ScrollHeight: document.documentElement.scrollTop,
|
currentTab: 'publicationNumber',
|
searchParams: {
|
publicationNumber: '',
|
applicationNumber: '',
|
assigneeList: ''
|
},
|
phoData: [],
|
columns: [
|
{
|
title: '号码',
|
fontWeight: 'holder',
|
align: 'center',
|
width: 50,
|
|
},
|
{
|
title: '状态',
|
align: 'center',
|
dataIndex: 'Name',
|
width: 50,
|
|
},
|
{
|
title: '监测到的号码',
|
dataIndex: 'Url',
|
width: 80,
|
|
},
|
|
|
],
|
};
|
},
|
//计算属性 类似于data概念
|
computed: {},
|
//监控data中的数据变化
|
//方法集合
|
methods: {
|
quit() {
|
this.confirm()
|
},
|
callback(key) {
|
this.currentTab = key
|
// console.log(this.currentTab);
|
},
|
clear() {
|
this.searchParams[this.currentTab] = ''
|
},
|
handleSearch() {
|
if (this.searchParams[this.currentTab] == '') {
|
this.$message.warning('输入内容不能为空');
|
return
|
}
|
let num=0
|
let arr=this.searchParams[this.currentTab].replaceAll('\n', ',').replaceAll(';', ',').replaceAll(' ', ',').split(',')
|
// console.log(arr);
|
for(let i=0;i<arr.length;i++){
|
if(arr[i]){
|
num++
|
}
|
}
|
console.log(num);
|
// console.log(this.searchParams[this.currentTab].replaceAll('\n', ',').replaceAll(';', ',').replaceAll(' ', ',').split(',').length);
|
// JSON.stringify(this.searchParams[this.currentTab]).replaceAll('\n', ',').replaceAll(';', ',').replaceAll(' ', ',').split(',').length
|
if (this.currentTab === 'assigneeList') {
|
// console.log(JSON.stringify(this.searchParams[this.currentTab]).replaceAll('\n', ',').replaceAll(';', ',').replaceAll(' ', ',').split(',').length);
|
if (num> 2000) {
|
// console.log(JSON.stringify(this.searchParams[this.currentTab]).replaceAll('\n', ',').replaceAll(';', ',').replaceAll(' ', ',').split(',').length);
|
this.$message.warning('输入字符数超过了 2000 上限');
|
return
|
}
|
} else {
|
// console.log(this.searchParams[this.currentTab].split('\n').join(',') );
|
if (num > 5000) {
|
this.$message.warning('输入字符数超过了 5000 上限');
|
return
|
}
|
}
|
let params = {
|
keywordField: this.currentTab,
|
content: this.searchParams[this.currentTab]
|
}
|
localStorage.setItem('namiParams', '')
|
// console.log(JSON.stringify(params));
|
console.log(params);
|
this.$router.push({
|
path: "/smart",
|
query: {
|
from: 'batch',
|
params: JSON.stringify(params)
|
}
|
})
|
}
|
},
|
beforeCreate() { }, //生命周期 - 创建之前
|
//生命周期 - 创建完成(可以访问当前this实例)
|
created() { },
|
beforeMount() { }, //生命周期 - 挂载之前
|
//生命周期 - 挂载完成(可以访问DOM元素)
|
mounted() {
|
},
|
beforeUpdate() { }, //生命周期 - 更新之前
|
updated() { }, //生命周期 - 更新之后
|
beforeDestroy() { }, //生命周期 - 销毁之前
|
destroyed() { }, //生命周期 - 销毁完成
|
activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
|
};
|
</script>
|
<style lang="scss" scoped>
|
li {
|
list-style-type: none;
|
}
|
|
* {
|
margin: 0;
|
padding: 0;
|
list-style-type: none;
|
}
|
|
a {
|
color: #333333;
|
cursor: pointer;
|
}
|
|
.batch {
|
min-width: 1280px;
|
|
header {
|
width: 100%;
|
position: relative;
|
display: flex;
|
justify-content: space-between;
|
border-bottom: 1px solid #c2c2c2;
|
|
.logo {
|
width: 40%;
|
height: 62px;
|
position: relative;
|
|
img {
|
position: absolute;
|
left: 50px;
|
top: 0;
|
width: 145px;
|
height: 62px;
|
|
@media screen and (max-width: 1280px) {
|
left: 0;
|
}
|
}
|
}
|
|
.features {
|
width: 60%;
|
display: flex;
|
justify-content: space-between;
|
|
.home_icon,
|
.login,
|
.nav {
|
width: 10%;
|
height: 62px;
|
line-height: 70px;
|
}
|
|
.login {
|
.icon-201yonghu_yonghu2 {
|
font-size: 25px;
|
cursor: pointer;
|
}
|
}
|
|
.home_icon {
|
position: relative;
|
top: 5px;
|
|
a {
|
color: #ef8201;
|
|
.icon-shouye {
|
font-size: 25px;
|
}
|
}
|
}
|
|
.nav {
|
@media (min-width: 1280px) {
|
min-width: 80px;
|
}
|
|
cursor: pointer;
|
background: #ef8201;
|
color: #ffffff;
|
font-size: 16px;
|
position: relative;
|
|
.menuList {
|
width: 100%;
|
position: absolute;
|
top: 60px;
|
background-color: #ffffff;
|
border: 1px solid #c2c2c2;
|
z-index: 999;
|
display: none;
|
|
li {
|
height: 40px;
|
line-height: 40px;
|
text-align: left;
|
font-size: 16px;
|
color: black;
|
text-align: center;
|
}
|
|
a:hover {
|
color: #ef8201;
|
}
|
}
|
}
|
|
.nav:hover .menuList {
|
display: block;
|
}
|
|
.classList {
|
width: 70%;
|
display: flex;
|
justify-content: space-around;
|
|
.item {
|
height: 50px;
|
margin-top: 12px;
|
line-height: 50px;
|
text-align: center;
|
font-family: "微软雅黑";
|
font-weight: 500;
|
font-style: normal;
|
font-size: 20px;
|
cursor: pointer;
|
|
a {
|
color: #333333;
|
}
|
|
a:hover {
|
color: #ef8201;
|
}
|
|
span:hover {
|
color: #ef8201;
|
}
|
}
|
|
.item:hover {
|
border-bottom: 5px solid #ef8201;
|
}
|
|
.secItem {
|
border-bottom: 5px solid #ef8201;
|
|
span {
|
color: #ef8201;
|
}
|
}
|
|
.patent {
|
position: relative;
|
|
.patentShow {
|
display: none;
|
position: absolute;
|
width: 170px;
|
background-color: #ffffff;
|
border: 1px solid #c2c2c2;
|
// box-shadow: 0px 0px 3px 1px;
|
z-index: 999;
|
|
li {
|
margin: 2px 0;
|
text-align: center;
|
font-size: 16px;
|
color: black;
|
}
|
|
li:hover a {
|
color: #ef8201;
|
}
|
}
|
}
|
|
.patent:hover .patentShow {
|
display: block;
|
}
|
|
.Retrieval {
|
position: relative;
|
|
.RetrievalShow {
|
display: none;
|
position: absolute;
|
width: 130px;
|
background-color: #ffffff;
|
border: 1px solid #c2c2c2;
|
// box-shadow: 0px 0px 3px 1px;
|
z-index: 999;
|
|
li {
|
height: 40px;
|
line-height: 40px;
|
text-align: center;
|
font-size: 16px;
|
color: black;
|
|
span {
|
font-size: 20px;
|
}
|
}
|
|
li:hover a {
|
color: #ef8201;
|
}
|
}
|
}
|
|
.Retrieval:hover .RetrievalShow {
|
display: block;
|
}
|
}
|
|
.language {
|
cursor: pointer;
|
width: 10%;
|
display: flex;
|
justify-content: space-around;
|
|
li {
|
height: 62px;
|
line-height: 73px;
|
text-align: center;
|
font-family: "微软雅黑";
|
font-weight: 400;
|
font-style: normal;
|
font-size: 16px;
|
}
|
|
li:nth-child(1) {
|
color: #ef8201;
|
}
|
}
|
|
.home_icon,
|
.classList,
|
.language,
|
.login {
|
@media screen and (max-width: 1280px) {
|
display: none;
|
}
|
}
|
|
.nav {
|
@media screen and (max-width: 1280px) {
|
position: absolute;
|
right: 0;
|
}
|
}
|
}
|
}
|
}
|
|
main {
|
width: 100%;
|
margin: 0 auto;
|
display: flex;
|
// justify-content: space-around;
|
|
.left {
|
width: 250px;
|
height: 740px;
|
padding: 10px;
|
margin-top: 40px;
|
padding-top: 5px;
|
background: #fff;
|
box-shadow: 0 0 2px 0;
|
margin-left: 40px;
|
|
// border-right: 2px solid #c2c2c2;
|
|
.title {
|
width: 100%;
|
height: 40px;
|
line-height: 40px;
|
font-size: 20px;
|
font-weight: 600;
|
}
|
|
p {
|
// word-wrap: break-word;
|
display: block;
|
// word-break: break-all;
|
line-height: 25px;
|
text-align: left;
|
margin: 10px 0;
|
}
|
}
|
|
.right {
|
width: calc(100% - 380px);
|
// height: 800px;
|
// margin-left: 50px;
|
box-shadow: 0 0 2px 0;
|
margin-top: 40px;
|
background: #fff;
|
margin-right: 40px;
|
margin-left: 40px;
|
|
.title {
|
width: 100%;
|
height: 40px;
|
line-height: 45px;
|
font-size: 20px;
|
font-weight: 600;
|
padding-left: 5%;
|
}
|
|
.tab {
|
width: 100%;
|
text-align: left;
|
padding-left: 5%;
|
|
textarea {
|
width: 95%;
|
height: 500px;
|
// padding: 5%;
|
background: #f9f9f9;
|
}
|
|
textarea:focus {
|
outline-color: #c2c2c2;
|
}
|
}
|
|
ul {
|
width: 95%;
|
margin: 50px 0;
|
display: flex;
|
padding-left: 5%;
|
justify-content: space-between;
|
|
li {
|
display: flex;
|
justify-content: space-between;
|
cursor: pointer;
|
|
div {
|
padding: 0 10px;
|
margin: 0 5px;
|
height: 40px;
|
line-height: 40px;
|
text-align: center;
|
border: 1px solid #c2c2c2;
|
color: #c2c2c2;
|
}
|
}
|
|
li:nth-child(1) {
|
div:nth-child(1) {
|
margin-left: 0;
|
}
|
}
|
|
li:nth-child(2) {
|
div:nth-last-child(1) {
|
margin-right: 0;
|
background: #ef8201;
|
color: #ffffff;
|
font-weight: 500;
|
}
|
}
|
}
|
}
|
|
.results {
|
width: 15%;
|
height: 600px;
|
border: 1px solid #c2c2c2;
|
// padding: 2px;
|
margin-top: 50px;
|
margin-left: 10px;
|
|
.title {
|
width: 100%;
|
height: 30px;
|
line-height: 30px;
|
background: #c2c2c2;
|
color: #fff;
|
font-weight: 500;
|
}
|
|
ul {
|
width: 100%;
|
|
li {
|
display: flex;
|
justify-content: space-between;
|
}
|
}
|
}
|
}
|
|
footer {
|
width: 100%;
|
height: 80px;
|
background-color: rgba(102, 102, 102, 1);
|
color: #ffffff;
|
font-family: "微软雅黑";
|
font-weight: 400;
|
font-style: normal;
|
font-size: 14px;
|
text-align: center;
|
|
// @media (max-width: 1280px) {
|
// position: relative;
|
// top: var(--height);
|
// }
|
div {
|
width: 100%;
|
margin: 0 auto;
|
line-height: 80px;
|
justify-content: space-between;
|
|
@media (max-width: 1280px) {
|
width: 90%;
|
}
|
}
|
}
|
</style>
|