|
@@ -2,12 +2,23 @@
|
|
<div class="container">
|
|
<div class="container">
|
|
<div class="search">
|
|
<div class="search">
|
|
<div class="search-global">
|
|
<div class="search-global">
|
|
- <img class="global" src="@/assets/icon/ap/ap_04.png" alt="#">
|
|
|
|
|
|
+ <img class="global" src="@/assets/icon/ap/ap_04.png" alt="#" />
|
|
<span>全球数据库</span>
|
|
<span>全球数据库</span>
|
|
- <img class="direction" src="@/assets/icon/ap/ap_05.png" alt="#">
|
|
|
|
|
|
+ <img class="direction" src="@/assets/icon/ap/ap_05.png" alt="#" />
|
|
</div>
|
|
</div>
|
|
- <el-input class="search-input" v-model="input" style="width: 240px" />
|
|
|
|
- <el-button :icon="Search" class="search-button" type="primary" round
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ clearable
|
|
|
|
+ class="search-input"
|
|
|
|
+ v-model="trademarkForm.inventionTitle"
|
|
|
|
+ @clear="pageInitData"
|
|
|
|
+ style="width: 240px"
|
|
|
|
+ />
|
|
|
|
+ <el-button
|
|
|
|
+ :icon="Search"
|
|
|
|
+ class="search-button"
|
|
|
|
+ type="primary"
|
|
|
|
+ round
|
|
|
|
+ @click="onSubmit"
|
|
>检索</el-button
|
|
>检索</el-button
|
|
>
|
|
>
|
|
</div>
|
|
</div>
|
|
@@ -15,44 +26,105 @@
|
|
<div class="aside">
|
|
<div class="aside">
|
|
<el-collapse>
|
|
<el-collapse>
|
|
<el-collapse-item title="专利类型" name="1">
|
|
<el-collapse-item title="专利类型" name="1">
|
|
- <div style="display: flex; flex-direction: column">
|
|
|
|
- <el-checkbox label="发明" size="large" />
|
|
|
|
- <el-checkbox label="实用新型" size="large" />
|
|
|
|
- <el-checkbox label="外观设计" size="large" />
|
|
|
|
- </div>
|
|
|
|
|
|
+ <el-radio-group
|
|
|
|
+ v-model="trademarkForm.patentType"
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ >
|
|
|
|
+ <el-radio v-for="item in patents_type" :value="item.value">{{
|
|
|
|
+ item.label
|
|
|
|
+ }}</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
<el-collapse-item title="专利有效性" name="2">
|
|
<el-collapse-item title="专利有效性" name="2">
|
|
- <div style="display: flex; flex-direction: column">
|
|
|
|
- <el-checkbox label="有效" size="large" />
|
|
|
|
- <el-checkbox label="审中" size="large" />
|
|
|
|
- <el-checkbox label="生效" size="large" />
|
|
|
|
|
|
+ <el-radio-group
|
|
|
|
+ v-model="trademarkForm.validityStatus"
|
|
|
|
+ @change="handleValidityStatus"
|
|
|
|
+ >
|
|
|
|
+ <el-radio
|
|
|
|
+ v-for="item in patent_validity_status"
|
|
|
|
+ :value="item.value"
|
|
|
|
+ >{{ item.label }}</el-radio
|
|
|
|
+ >
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ <div v-if="trademarkForm.validityStatus === '2'">
|
|
|
|
+ <h4>审查状态</h4>
|
|
|
|
+ <el-radio-group
|
|
|
|
+ v-model="trademarkForm.auditStatus"
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ >
|
|
|
|
+ <el-radio
|
|
|
|
+ v-for="item in patent_examination_status"
|
|
|
|
+ :value="item.value"
|
|
|
|
+ >{{ item.label }}</el-radio
|
|
|
|
+ >
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <h4>法律状态</h4>
|
|
|
|
+ <el-radio-group
|
|
|
|
+ v-model="trademarkForm.legalStatus"
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ >
|
|
|
|
+ <el-radio
|
|
|
|
+ :disabled="isEffective && item.value !== '7'"
|
|
|
|
+ v-for="item in patent_law_status"
|
|
|
|
+ :value="item.value"
|
|
|
|
+ >{{ item.label }}</el-radio
|
|
|
|
+ >
|
|
|
|
+ </el-radio-group>
|
|
</div>
|
|
</div>
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
<el-collapse-item title="申请日" name="3">
|
|
<el-collapse-item title="申请日" name="3">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
|
+ v-model="trademarkForm.filingDate"
|
|
|
|
+ format="YYYY/MM/DD"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
type="daterange"
|
|
type="daterange"
|
|
- range-separator="To"
|
|
|
|
- start-placeholder="Start date"
|
|
|
|
- end-placeholder="End date"
|
|
|
|
|
|
+ range-separator="至"
|
|
|
|
+ start-placeholder="开始时间"
|
|
|
|
+ end-placeholder="结束时间"
|
|
|
|
+ style="width: 12rem"
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ @clear="pageInitData"
|
|
/>
|
|
/>
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
<el-collapse-item title="公布(公告)日" name="4">
|
|
<el-collapse-item title="公布(公告)日" name="4">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
|
+ v-model="trademarkForm.publicationDate"
|
|
|
|
+ format="YYYY/MM/DD"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
type="daterange"
|
|
type="daterange"
|
|
- range-separator="To"
|
|
|
|
- start-placeholder="Start date"
|
|
|
|
- end-placeholder="End date"
|
|
|
|
|
|
+ range-separator="至"
|
|
|
|
+ start-placeholder="开始时间"
|
|
|
|
+ end-placeholder="结束时间"
|
|
|
|
+ style="width: 12rem"
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ @clear="pageInitData"
|
|
/>
|
|
/>
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
- <el-collapse-item title="发明人" name="5">
|
|
|
|
- <el-input placeholder="Type something">
|
|
|
|
|
|
+ <el-collapse-item title="发明(设计)人" name="5">
|
|
|
|
+ <el-input
|
|
|
|
+ clearable
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ @clear="pageInitData"
|
|
|
|
+ v-model="trademarkForm.inventorNames"
|
|
|
|
+ placeholder="请输入发明设计人姓名"
|
|
|
|
+ style="width: 14rem"
|
|
|
|
+ >
|
|
<template #prefix>
|
|
<template #prefix>
|
|
<el-icon class="el-input__icon"><search /></el-icon>
|
|
<el-icon class="el-input__icon"><search /></el-icon>
|
|
</template>
|
|
</template>
|
|
</el-input>
|
|
</el-input>
|
|
</el-collapse-item>
|
|
</el-collapse-item>
|
|
- <el-collapse-item title="当前权利人" name="6">
|
|
|
|
- <el-input placeholder="Type something">
|
|
|
|
|
|
+ <el-collapse-item title="专利权人" name="6">
|
|
|
|
+ <el-input
|
|
|
|
+ clearable
|
|
|
|
+ @change="pageInitData"
|
|
|
|
+ @clear="pageInitData"
|
|
|
|
+ v-model="trademarkForm.patentHolderName"
|
|
|
|
+ placeholder="请输入当前权利人姓名"
|
|
|
|
+ style="width: 14rem"
|
|
|
|
+ >
|
|
<template #prefix>
|
|
<template #prefix>
|
|
<el-icon class="el-input__icon"><search /></el-icon>
|
|
<el-icon class="el-input__icon"><search /></el-icon>
|
|
</template>
|
|
</template>
|
|
@@ -62,39 +134,43 @@
|
|
</div>
|
|
</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
<el-table :data="tableData">
|
|
<el-table :data="tableData">
|
|
- <el-table-column prop="date" label="序号" width="280">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <div style="display: flex; gap: 0.3rem;">
|
|
|
|
- <span>{{ scope.row.date }}</span>
|
|
|
|
- <el-tag type="primary">发明公开</el-tag>
|
|
|
|
- <el-tag type="primary">发明授权</el-tag>
|
|
|
|
- <el-tag type="primary">有权</el-tag>
|
|
|
|
- <el-tag type="primary">无效</el-tag>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="name" label="公开(公告)号" width="180" />
|
|
|
|
- <el-table-column prop="title" label="标题"/>
|
|
|
|
- <el-table-column prop="applicationDate" label="申请日" width="180" />
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="publicationNumber"
|
|
|
|
+ label="公布号"
|
|
|
|
+ width="180"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column prop="inventionTitle" width="180" label="标题" />
|
|
|
|
+ <el-table-column prop="filingDate" label="申请日" width="180" />
|
|
<el-table-column
|
|
<el-table-column
|
|
prop="publicationDate"
|
|
prop="publicationDate"
|
|
label="公开(公告)日"
|
|
label="公开(公告)日"
|
|
width="180"
|
|
width="180"
|
|
/>
|
|
/>
|
|
- <el-table-column prop="currentOwner" label="当前权利人" width="150" />
|
|
|
|
- <el-table-column prop="inventor" label="发明(设计)人" width="150" />
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
+ prop="patentHolderName"
|
|
|
|
+ label="专利权人"
|
|
|
|
+ width="150"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column prop="inventorNames" label="发明(设计)人" />
|
|
|
|
+ <el-table-column
|
|
|
|
+ fixed="right"
|
|
|
|
+ label="操作"
|
|
|
|
+ width="200"
|
|
|
|
+ align="center"
|
|
|
|
+ >
|
|
|
|
+ <template v-slot="scope">
|
|
|
|
+ <el-button type="primary" text @click="onShow(scope.row)"
|
|
|
|
+ >详情</el-button
|
|
|
|
+ >
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
<div class="pagination">
|
|
<div class="pagination">
|
|
<el-pagination
|
|
<el-pagination
|
|
- v-model:current-page="currentPage4"
|
|
|
|
- v-model:page-size="pageSize4"
|
|
|
|
- :page-sizes="[100, 200, 300, 400]"
|
|
|
|
- :size="size"
|
|
|
|
- :disabled="disabled"
|
|
|
|
- :background="background"
|
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
- :total="400"
|
|
|
|
- @size-change="handleSizeChange"
|
|
|
|
|
|
+ v-model:current-page="currentPage"
|
|
|
|
+ v-model:page-size="pageSize"
|
|
|
|
+ layout="total, prev, pager, next, jumper"
|
|
|
|
+ :total="total"
|
|
@current-change="handleCurrentChange"
|
|
@current-change="handleCurrentChange"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
@@ -104,68 +180,104 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
-import { ref } from 'vue'
|
|
|
|
|
|
+import { ref, onMounted } from "vue";
|
|
import { Search } from "@element-plus/icons-vue";
|
|
import { Search } from "@element-plus/icons-vue";
|
|
-const currentPage4 = ref(4);
|
|
|
|
-const pageSize4 = ref(100);
|
|
|
|
-const size = ref("default");
|
|
|
|
-const background = ref(false);
|
|
|
|
-const disabled = ref(false);
|
|
|
|
|
|
+import { useDictStore } from "@/store/modules/useDictStore/index";
|
|
|
|
+import { getPatentsList } from "@/api";
|
|
|
|
+import { useRouter, useRoute } from "vue-router";
|
|
|
|
+
|
|
|
|
+interface TrademarkForm {
|
|
|
|
+ inventionTitle: string; //专利名
|
|
|
|
+ patentType: string; //专利类型
|
|
|
|
+ validityStatus: string; //专利有效性
|
|
|
|
+ filingDate: string[]; //申请日
|
|
|
|
+ publicationDate: string[]; //公布日
|
|
|
|
+ inventorNames: string; //发明人
|
|
|
|
+ patentHolderName: string; //专利权人
|
|
|
|
+ auditStatus: string; //法律状态
|
|
|
|
+ legalStatus: string; //法律状态
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const trademarkForm = ref<TrademarkForm>({
|
|
|
|
+ inventionTitle: "",
|
|
|
|
+ patentType: "",
|
|
|
|
+ validityStatus: "",
|
|
|
|
+ filingDate: [],
|
|
|
|
+ publicationDate: [],
|
|
|
|
+ inventorNames: "",
|
|
|
|
+ patentHolderName: "",
|
|
|
|
+ auditStatus: "",
|
|
|
|
+ legalStatus: "",
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+const router = useRouter();
|
|
|
|
+
|
|
|
|
+// 字典
|
|
|
|
+const dictStore = useDictStore();
|
|
|
|
+// 专利类型
|
|
|
|
+const patents_type = dictStore.dictData.patents_type;
|
|
|
|
+// 有效性
|
|
|
|
+const patent_validity_status = dictStore.dictData.patent_validity_status;
|
|
|
|
+// 专利检索专利审查状态
|
|
|
|
+const patent_examination_status = dictStore.dictData.patent_examination_status;
|
|
|
|
+// 专利检索法律状态
|
|
|
|
+const patent_law_status = dictStore.dictData.patent_law_status;
|
|
|
|
+const currentPage = ref(1);
|
|
|
|
+const pageSize = ref(10);
|
|
|
|
+const total = ref(0);
|
|
|
|
+const isEffective = ref(false);
|
|
|
|
+const tableData = ref([]);
|
|
|
|
|
|
-const handleSizeChange = (val: number) => {
|
|
|
|
- console.log(`${val} items per page`);
|
|
|
|
|
|
+onMounted(() => {
|
|
|
|
+ pageInitData();
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+const onShow = (row: any) => {
|
|
|
|
+ router.push({
|
|
|
|
+ path: "/ps/details/" + row.id,
|
|
|
|
+ });
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+const handleValidityStatus = (v: string) => {
|
|
|
|
+ if (Number(v) === 0) {
|
|
|
|
+ isEffective.value = true;
|
|
|
|
+ trademarkForm.value.legalStatus = "7";
|
|
|
|
+ } else {
|
|
|
|
+ isEffective.value = false;
|
|
|
|
+ }
|
|
|
|
+ console.log("handleValidityStatus ===>", v);
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const pageInitData = async () => {
|
|
|
|
+ const data = {
|
|
|
|
+ pageSize: pageSize.value,
|
|
|
|
+ pageNumber: currentPage.value,
|
|
|
|
+ inventionTitle: trademarkForm.value.inventionTitle,
|
|
|
|
+ patentType: trademarkForm.value.patentType,
|
|
|
|
+ validityStatus: trademarkForm.value.validityStatus,
|
|
|
|
+ inventorNames: trademarkForm.value.inventorNames,
|
|
|
|
+ patentHolderName: trademarkForm.value.patentHolderName,
|
|
|
|
+ auditStatus: trademarkForm.value.auditStatus,
|
|
|
|
+ legalStatus: trademarkForm.value.legalStatus,
|
|
|
|
+ beginFilingDate: trademarkForm.value.filingDate[0],
|
|
|
|
+ endFilingDate: trademarkForm.value.filingDate[0],
|
|
|
|
+ beginPublicationDate: trademarkForm.value.publicationDate[0],
|
|
|
|
+ endPublicationDate: trademarkForm.value.publicationDate[1],
|
|
|
|
+ };
|
|
|
|
+ const res = (await getPatentsList(data)) as unknown as any;
|
|
|
|
+ tableData.value = res.data.list;
|
|
|
|
+ total.value = res.data.total;
|
|
|
|
+ console.log("res ===>", res.data.list);
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const onSubmit = () => {
|
|
|
|
+ pageInitData();
|
|
|
|
+};
|
|
|
|
+
|
|
const handleCurrentChange = (val: number) => {
|
|
const handleCurrentChange = (val: number) => {
|
|
- console.log(`current page: ${val}`);
|
|
|
|
|
|
+ pageSize.value = val;
|
|
|
|
+ pageInitData();
|
|
};
|
|
};
|
|
-const input = ref("医药");
|
|
|
|
-const tableData = [
|
|
|
|
- {
|
|
|
|
- date: "1",
|
|
|
|
- name: "CN123456789A",
|
|
|
|
- title: "一种新型环保材料的制备方法",
|
|
|
|
- applicationDate: "2022-01-15",
|
|
|
|
- publicationDate: "2022-07-20",
|
|
|
|
- currentOwner: "张三",
|
|
|
|
- inventor: "李四",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- date: "2",
|
|
|
|
- name: "CN987654321B",
|
|
|
|
- title: "智能家居控制系统",
|
|
|
|
- applicationDate: "2021-05-10",
|
|
|
|
- publicationDate: "2021-11-25",
|
|
|
|
- currentOwner: "王五",
|
|
|
|
- inventor: "赵六",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- date: "3",
|
|
|
|
- name: "CN456789123C",
|
|
|
|
- title: "高效能太阳能电池",
|
|
|
|
- applicationDate: "2020-03-22",
|
|
|
|
- publicationDate: "2020-09-30",
|
|
|
|
- currentOwner: "钱七",
|
|
|
|
- inventor: "孙八",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- date: "4",
|
|
|
|
- name: "CN321654987D",
|
|
|
|
- title: "新型电动汽车动力系统",
|
|
|
|
- applicationDate: "2019-08-05",
|
|
|
|
- publicationDate: "2020-02-15",
|
|
|
|
- currentOwner: "周九",
|
|
|
|
- inventor: "吴十",
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- date: "5",
|
|
|
|
- name: "CN654321789E",
|
|
|
|
- title: "智能穿戴设备的设计",
|
|
|
|
- applicationDate: "2023-02-18",
|
|
|
|
- publicationDate: "2023-08-12",
|
|
|
|
- currentOwner: "郑十一",
|
|
|
|
- inventor: "冯十二",
|
|
|
|
- },
|
|
|
|
-];
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|