Commit 88fd0d86 by liudx

联调专利搜索接口

parent 8716cb8b
......@@ -11,6 +11,7 @@
"ant-design-vue": "^3.2.20",
"axios": "^1.4.0",
"core-js": "^3.6.5",
"dayjs": "^1.11.9",
"echarts": "^5.4.2",
"echarts-wordcloud": "^2.1.0",
"postcss-px2rem": "^0.3.0",
......
......@@ -3,7 +3,8 @@ import { createStore } from 'vuex'
export default createStore({
state: {
username:'',
token:''
token:'',
current:'首页'
},
mutations: {
setTOKEN(state,payload){
......@@ -12,7 +13,11 @@ export default createStore({
setname(state,payload){
// console.log(state,payload)
this.state.username = payload
}
},
setcurrent(state,payload){
// console.log(state,payload)
this.state.current = payload
},
},
actions: {
},
......
import { get, post,put } from './request'
export const patents = p => get('/api/patent/patents?keyword='+p.keyword+'&page='+p.page+'&size='+p.size);
export const patentselect = p => post('/api/patent/patents',p);
......@@ -11,6 +11,7 @@ import { get, post,put } from './request'
export const sendSms = p => post('/api/common/sendSms',p);
export const users = p => get('/api/backup/users?page='+p.page+'&size='+p.size);
export const changeStatus = p => put('/api/backup/users/'+p.id,{status:p.status});
......
<template>
<router-link to="/companyDetails">企业详情</router-link>
<div class="company">
<a-breadcrumb class="nav_bread">
<a-breadcrumb-item>首页</a-breadcrumb-item>
<a-breadcrumb-item>企业</a-breadcrumb-item>
</a-breadcrumb>
<div class="company_con">
<div class="company_con_left">
<h3>筛选器</h3>
<a-form :layout="'vertical'" :model="formState">
<a-form-item label="关键词">
<a-input
v-model:value="formState.fieldA"
placeholder="请输入关键词"
/>
</a-form-item>
<a-form-item label="区域">
<a-cascader
v-model:value="value"
multiple
:options="optionsArea"
placeholder="请选择"
></a-cascader>
</a-form-item>
<a-form-item label="国民经济行业">
<a-cascader
v-model:value="value"
multiple
:options="optionsArea"
placeholder="请选择"
></a-cascader>
</a-form-item>
<a-form-item label="科技型企业">
<a-cascader
v-model:value="value"
multiple
:options="optionsArea"
placeholder="请选择"
></a-cascader>
</a-form-item>
<a-form-item
name="range-picker"
label="注册时间"
v-bind="rangeConfig"
>
<a-config-provider :locale="zh_CN">
<a-range-picker
v-model:value="formState['range-picker']"
value-format="YYYY-MM-DD"
/>
</a-config-provider>
</a-form-item>
<a-form-item label="企业创新">
<a-select
v-model:value="value2"
mode="multiple"
placeholder="请选择"
:options="optionsStatus"
></a-select>
</a-form-item>
<a-form-item label="注册资本">
<a-input
v-model:value="formState.fieldA"
style="width: 40%"
placeholder="请输入关键词"
/>
-
<a-input
style="width: 40%"
v-model:value="formState.fieldA"
placeholder="请输入关键词"
/>
</a-form-item>
</a-form>
<a-button
type="default"
size="large"
style="width: 100px"
@click="clearvalue"
>重置</a-button
>&nbsp;
<a-button
type="primary"
size="large"
style="width: 100px"
@click="Filter"
>筛选</a-button
>
</div>
</div>
</div>
<router-link to="/companyDetails">企业详情</router-link>
<router-view></router-view>
</template>
<script>
import dayjs from "dayjs";
import "dayjs/locale/zh-cn";
import zh_CN from "ant-design-vue/lib/locale-provider/zh_CN";
dayjs.locale("zh-cn");
export default {
name:'company',
data(){
return{
}
},
components: {
},
methods:{
name: "company",
data() {
return {
zh_CN,
value: [],
value2: [],
optionsArea: [
{
label: "Light",
value: "light",
children: [
{
label: "Little",
value: "little",
},
],
},
{
label: "Bamboo",
value: "bamboo",
children: [
{
label: "Toy Fish",
value: "fish",
},
{
label: "Toy Cards",
value: "cards",
},
{
label: "Toy Bird",
value: "bird",
},
],
},
],
optionsStatus: [
{ label: "有效", value: "有效" },
{ label: "审查中", value: "审查中" },
],
formState: {
layout: "horizontal",
fieldA: "",
fieldB: "",
},
};
},
created(){
}
}
components: {},
methods: {},
created() {},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
.company {
padding: 0 30px;
width: calc(100%);
background-color: #ebebeb;
position: relative;
.nav_bread {
height: 50px;
padding: 20px 3px;
background-color: #ebebeb;
}
.company_con {
background-color: #f3f3f6;
width: 100%;
height: 100%;
display: flex;
.company_con_left {
width: 20%;
height: 90%;
padding: 25px 20px;
background-color: #fff;
}
}
}
</style>
......@@ -4,22 +4,22 @@
<HeaderCon></HeaderCon>
<div class="home_main">
<div class="sider">
<div class="sider">{{ this.$store.state.current }}
<div
:class="[current == item.name ? 'sider_item active' : 'sider_item ']"
:class="[this.$store.state.current == item.name ? 'sider_item active' : 'sider_item ']"
v-for="item in siderArr"
:key="item.name"
@click="changepage(item.name)"
>
<img
:src="current == item.name ? item.img_select : item.img"
:src="this.$store.state.current == item.name ? item.img_select : item.img"
alt=""
class="sider_item_img"
/>
<div
:class="[
current == item.name
? ' sider_item_name active '
this.$store.state.current == item.name
? 'sider_item_name active '
: 'sider_item_name',
]"
>
......@@ -27,10 +27,9 @@
</div>
</div>
</div>
<router-view />
</div>
</div>
</template>
<script>
......@@ -84,49 +83,55 @@ export default {
methods: {
changepage(name) {
// console.log(name)
switch (name) {
case "企业":
this.$router.push({
path: "/company",
});
this.$store.commit("setcurrent", "企业");
break;
case "首页":
this.$router.push({
path: "/home",
});
this.$store.commit("setcurrent", "首页");
break;
case "专利":
this.$router.push({
path: "/patent",
});
this.$store.commit("setcurrent", "专利");
break;
case "历史记录":
this.$store.commit("setcurrent", "历史记录");
this.$router.push({
path: "/history",
});
this.$store.commit("setcurrent", "历史记录");
break;
case "我的关注":
this.$store.commit("setcurrent", "我的关注");
this.$router.push({
path: "/follow",
});
break;
}
this.current = name;
this.current = this.$store.state.current;
},
},
mounted() {},
created() {
this.username = this.$store.state.username;
this.current = this.$store.state.current;
},
};
</script>
<style lang="less" scoped>
.home {
// height: calc(100% - 80px);
width: calc(100% );
height: calc(100%);
width: calc(100%);
.home_main {
// height: 100%;
height: calc(100% - 80px);
width: 100%;
background-color: #ebebeb;
display: flex;
......
<template>
<div class="patent">
<a-breadcrumb class="nav_bread">
<a-breadcrumb-item>首页</a-breadcrumb-item>
<a-breadcrumb-item>专利</a-breadcrumb-item>
</a-breadcrumb>
<div class="patent_con">
<div class="patent_con_left">
<h3>筛选器</h3>
<a-form style="height: 90%" :layout="'vertical'" :model="formState">
<a-form-item label="关键词">
<a-input
v-model:value="formState.keyword"
placeholder="请输入关键词"
/>
</a-form-item>
<a-form-item label="专利类型">
<a-select
v-model:value="value1"
mode="multiple"
placeholder="请选择"
:options="optionsType"
></a-select>
</a-form-item>
<a-form-item name="range-picker" label="申请日" v-bind="rangeConfig">
<a-config-provider :locale="zh_CN">
<a-range-picker
v-model:value="formState['rangetime1']"
value-format="YYYY-MM-DD"
/>
</a-config-provider>
</a-form-item>
<a-form-item name="range-picker" label="公开日" v-bind="rangeConfig">
<a-config-provider :locale="zh_CN">
<a-range-picker
v-model:value="formState['rangetime2']"
value-format="YYYY-MM-DD"
/>
</a-config-provider>
</a-form-item>
<a-form-item label="专利状态">
<a-select
v-model:value="value2"
mode="multiple"
:token-separators="[',']"
placeholder="请选择"
:options="optionsStatus"
></a-select>
</a-form-item>
</a-form>
<a-button
type="default"
size="large"
style="width: 100px"
@click="clearvalue"
>重置</a-button
>&nbsp;
<a-button
type="primary"
size="large"
style="width: 100px"
@click="Filter"
>筛选</a-button
>
</div>
<!-- 专利表格结果 -->
<div class="patent_con_right">
<h2>
推荐<span>{{ total }}</span
>条相关结果
<!-- 筛选的标签展示 -->
<div class="filter">
<a-tag color="blue" v-for="item in filter">
{{ item }}
</a-tag>
</div>
</h2>
<a-table
:columns="columns"
:data-source="patentdata"
:pagination="false"
>
<template #bodyCell="{ column, text }">
<template v-if="column.dataIndex === 'name'">
<a>{{ text }}</a>
</template>
</template>
</a-table>
<br />
<a-pagination
@change="onChange"
:total="total"
:showSizeChanger="false"
/>
<br />
</div>
</div>
</div>
<router-link to="/patentDetails">专利</router-link>
<router-view></router-view>
</template>
<script>
import { patents, patentselect } from "../../utils/indexApi";
import dayjs from "dayjs";
import "dayjs/locale/zh-cn";
import zh_CN from "ant-design-vue/lib/locale-provider/zh_CN";
dayjs.locale("zh-cn");
export default {
name: "patent",
data() {
return {};
return {
zh_CN,
value1: [],
value2: [],
optionsType: [
{ label: "发明授权", value: "发明授权" },
{ label: "发明申请", value: "发明申请" },
{ label: "外观设计", value: "外观设计" },
{ label: "实用新型", value: "实用新型" },
{ label: "其他", value: "其他" },
],
optionsStatus: [
{ label: "有效", value: "有效" },
{ label: "审查中", value: "审查中" },
],
formState: {
// layout: "horizontal",
keyword: "",
rangetime1: "",
rangetime2: "",
},
columns: [
{
title: "专利号",
dataIndex: "gkh",
key: "gkh",
},
{
title: "专利标题",
dataIndex: "title",
key: "title",
ellipsis: true,
},
{
title: "申请人",
dataIndex: "zlr",
key: "zlr",
},
{
title: "当前权利人",
dataIndex: "zlqrdq",
key: "zlqrdq",
ellipsis: true,
},
{
title: "专利类型",
dataIndex: "zl_type",
key: "zl_type",
},
],
patentdata: [],
filter: [],
};
},
components: {},
methods: {},
created() {},
methods: {
//获取页面的表格
getList() {
let params = {
keyword: this.$route.params.keyword || "",
page: 1,
size: 10,
};
patents({ ...params }).then((res) => {
console.log(res);
if (res.code == 0) {
this.patentdata = res.data.list;
this.total = res.data.total;
}
});
},
//改变页码
onChange(page) {
let params = {
keyword: this.$route.params.keyword || "",
page: page,
size: 10,
};
patents({ ...params }).then((res) => {
console.log(res);
if (res.code == 0) {
this.patentdata = res.data.list;
this.total = res.data.total;
}
});
},
//重置筛选
clearvalue() {
this.value1 = [];
this.value2 = [];
this.formState = {
keyword: "",
rangetime1: "",
rangetime2: "",
};
},
//点击筛选
Filter() {
this.filter = [];
let parma = {
page: 1,
size: 10,
keyword: this.formState.keyword ? this.formState.keyword : "",
zl_type: this.value1,
sqrq_start: this.formState.rangetime1[0]
? this.formState.rangetime1[0]
: "",
sqrq_end: this.formState.rangetime1[1]
? this.formState.rangetime1[1]
: "",
gkrq_start: this.formState.rangetime2[0]
? this.formState.rangetime2[0]
: "",
gkrq_start: this.formState.rangetime2[1]
? this.formState.rangetime2[1]
: "",
zl_status: this.value2,
};
patentselect({ parma }).then((res) => {
//将筛选条件渲染到页面上
for (var key in parma) {
if (key == "keyword") {
parma.keyword? this.filter.push(parma.keyword):'';
} else if (key == "zl_type") {
if (this.value1.length != 0) {
this.value1.forEach((item) => {
this.filter.push(item);
});
}
} else if (key == "zl_status") {
if (this.value2.length != 0) {
this.value2.forEach((item) => {
this.filter.push(item);
});
}
}
}
});
},
},
created() {
this.getList();
// console.log(this.$route)
},
computed: {},
};
</script>
<style lang="less" scoped></style>
<style lang="less" scoped>
.patent {
padding: 0 30px;
width: calc(100%);
background-color: #ebebeb;
position: relative;
.nav_bread {
height: 50px;
padding: 20px 3px;
background-color: #ebebeb;
}
.patent_con {
background-color: #f3f3f6;
width: 100%;
height: 100%;
display: flex;
justify-content: space-evenly;
.patent_con_left {
width: 20%;
height: 90%;
padding: 25px 20px;
background-color: #fff;
}
.patent_con_right {
background-color: #fff;
width: 78%;
padding: 25px 20px;
span {
font-size: 20px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
color: #4079ff;
}
.filter {
font-size: 15px;
display: inline-block;
span {
font-size: 15px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
}
}
}
}
}
</style>
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