|
@@ -8,7 +8,7 @@
|
|
|
<div style="display: flex; align-items: center">
|
|
|
<el-form-item label="专利名称">
|
|
|
<el-input
|
|
|
- v-model="queryForm.trademarkName"
|
|
|
+ v-model="queryForm.patentsName"
|
|
|
placeholder="请输入专利名称"
|
|
|
style="width: 200px"
|
|
|
></el-input>
|
|
@@ -24,7 +24,7 @@
|
|
|
|
|
|
<el-form-item label="创建时间">
|
|
|
<el-date-picker
|
|
|
- v-model="queryForm.createDate"
|
|
|
+ v-model="queryForm.createTime"
|
|
|
type="date"
|
|
|
placeholder="选择日期"
|
|
|
style="width: 200px"
|
|
@@ -39,46 +39,46 @@
|
|
|
<div style="display: flex; align-items: center; margin-top: 10px">
|
|
|
<el-form-item label="法律状态">
|
|
|
<el-select
|
|
|
- v-model="queryForm.legalStatus"
|
|
|
+ v-model="queryForm.legislationStatus"
|
|
|
placeholder="请选择法律状态"
|
|
|
style="width: 200px"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="status in legalStatuses"
|
|
|
- :key="status.value"
|
|
|
- :label="status.label"
|
|
|
- :value="status.value"
|
|
|
- ></el-option>
|
|
|
+ v-for="item in legal_status"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ :key="item.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="年费状态">
|
|
|
<el-select
|
|
|
- v-model="queryForm.annualFeeStatus"
|
|
|
+ v-model="queryForm.paymentStatus"
|
|
|
placeholder="请选择年费状态"
|
|
|
style="width: 200px"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="feeStatus in annualFeeStatuses"
|
|
|
- :key="feeStatus.value"
|
|
|
- :label="feeStatus.label"
|
|
|
- :value="feeStatus.value"
|
|
|
- ></el-option>
|
|
|
+ v-for="item in annual_fee_payment_status"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ :key="item.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="专利类型">
|
|
|
<el-select
|
|
|
- v-model="queryForm.trademarkType"
|
|
|
+ v-model="queryForm.patentType"
|
|
|
placeholder="请选择专利类型"
|
|
|
style="width: 200px"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="type in trademarkTypes"
|
|
|
- :key="type.value"
|
|
|
- :label="type.label"
|
|
|
- :value="type.value"
|
|
|
- ></el-option>
|
|
|
+ v-for="item in patents_type"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ :key="item.value"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
@@ -89,47 +89,20 @@
|
|
|
</el-form>
|
|
|
|
|
|
<!-- 数据表格 -->
|
|
|
- <el-table :data="trademarkData" style="width: 100%">
|
|
|
+ <el-table :data="tableData" style="width: 100%">
|
|
|
<el-table-column
|
|
|
- prop="applicationNumber"
|
|
|
- label="申请号"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="registrationNumber"
|
|
|
- label="注册号"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column prop="trademarkName" label="专利名称"></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="applicationDate"
|
|
|
- label="申请日期"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="trademarkType"
|
|
|
- label="专利类型"
|
|
|
- width="120"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="currentStatus"
|
|
|
- label="当前状态"
|
|
|
- width="120"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="reviewProgress"
|
|
|
- label="审查进度"
|
|
|
- width="120"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column prop="legalStatus" label="法律状态"></el-table-column>
|
|
|
+ v-for="field in fieldsConfig.filter((item) => item.visible)"
|
|
|
+ :key="field.key"
|
|
|
+ :prop="field.key"
|
|
|
+ :label="field.label"
|
|
|
+ />
|
|
|
<el-table-column label="操作" width="180">
|
|
|
<template v-slot="scope">
|
|
|
- <el-button @click="handleEdit(scope.row)" type="text" size="small"
|
|
|
+ <el-button @click="handleEdit(scope.row)" size="small"
|
|
|
>编辑</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
@click="handleDelete(scope.row)"
|
|
|
- type="text"
|
|
|
size="small"
|
|
|
style="color: red"
|
|
|
>删除</el-button
|
|
@@ -141,60 +114,77 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { ref } from "vue";
|
|
|
-
|
|
|
-interface QueryForm {
|
|
|
- trademarkName: string;
|
|
|
- applicationNumber: string;
|
|
|
- createDate: Date | null;
|
|
|
- legalStatus: string;
|
|
|
- annualFeeStatus: string;
|
|
|
- trademarkType: string;
|
|
|
-}
|
|
|
+import { ref, onMounted } from "vue";
|
|
|
+import { getPatentApplicationList } from "@/api";
|
|
|
+import { useDictStore } from "@/store/modules/useDictStore/index";
|
|
|
|
|
|
-const queryForm = ref<QueryForm>({
|
|
|
- trademarkName: "",
|
|
|
+const queryForm = ref<any>({
|
|
|
+ patentsName: "",
|
|
|
applicationNumber: "",
|
|
|
- createDate: null,
|
|
|
- legalStatus: "",
|
|
|
- annualFeeStatus: "",
|
|
|
- trademarkType: "",
|
|
|
+ createTime: "",
|
|
|
+ legislationStatus: "",
|
|
|
+ paymentStatus: "",
|
|
|
+ patentType: "",
|
|
|
});
|
|
|
|
|
|
-const trademarkTypes = ref([
|
|
|
- { label: "普通专利", value: "ordinary" },
|
|
|
- { label: "集体专利", value: "collective" },
|
|
|
- { label: "证明专利", value: "certification" },
|
|
|
-]);
|
|
|
-
|
|
|
-const legalStatuses = ref([
|
|
|
- { label: "有效", value: "valid" },
|
|
|
- { label: "失效", value: "invalid" },
|
|
|
- { label: "申请中", value: "pending" },
|
|
|
-]);
|
|
|
-
|
|
|
-const annualFeeStatuses = ref([
|
|
|
- { label: "已缴纳", value: "paid" },
|
|
|
- { label: "未缴纳", value: "unpaid" },
|
|
|
+const currentPage = ref(1);
|
|
|
+const pageSize = ref(10);
|
|
|
+const total = ref(0);
|
|
|
+const tableData = ref([]);
|
|
|
+
|
|
|
+// 字典
|
|
|
+const dictStore = useDictStore();
|
|
|
+const legal_status = dictStore.dictData.legal_status;
|
|
|
+const annual_fee_payment_status = dictStore.dictData.annual_fee_payment_status;
|
|
|
+const patents_type = dictStore.dictData.patents_type;
|
|
|
+
|
|
|
+// 定义所有字段的配置项
|
|
|
+const fieldsConfig = ref([
|
|
|
+ { key: "patentsName", label: "专利名称", visible: true }, // 专利名称
|
|
|
+ { key: "applicationNumber", label: "申请号", visible: true }, // 申请号
|
|
|
+ { key: "applicationDate", label: "申请日", visible: true }, // 申请日
|
|
|
+ { key: "internalCaseNumber", label: "内部案号", visible: true }, // 内部案号
|
|
|
+ { key: "technologyName", label: "技术对接人", visible: true }, // 技术对接人
|
|
|
+ { key: "auditOfOfficialDeadlines", label: "审意官方绝限期", visible: true }, // 审意官方绝限期
|
|
|
+ { key: "patentRemarks", label: "专利备注", visible: true }, // 专利备注
|
|
|
+ { key: "patentee", label: "专利权人", visible: false }, // 专利权人
|
|
|
+ { key: "firstDeviseName", label: "发明人", visible: false }, // 发明人
|
|
|
+ { key: "patentType", label: "专利类型", visible: false }, // 专利类型
|
|
|
+ { key: "patentStatus", label: "专利进度", visible: false }, // 专利进度
|
|
|
+ { key: "legislationStatus", label: "法律状态", visible: false }, // 法律状态
|
|
|
+ { key: "paymentStatus", label: "年费缴纳", visible: false }, // 年费缴纳
|
|
|
+ { key: "priorityReview", label: "优先审查", visible: false }, // 优先审查
|
|
|
+ { key: "agency", label: "代理机构", visible: false }, // 代理机构
|
|
|
+ { key: "involvingTechnicalRoutes", label: "涉及技术路线", visible: false }, // 涉及技术路线
|
|
|
+ { key: "logs", label: "日志", visible: false }, // 日志
|
|
|
+ // 可根据需要添加更多字段
|
|
|
]);
|
|
|
|
|
|
-const trademarkData = ref([]);
|
|
|
+const pageInit = async () => {
|
|
|
+ const data = {
|
|
|
+ pageSize: pageSize.value,
|
|
|
+ pageNumber: currentPage.value,
|
|
|
+ ...queryForm.value,
|
|
|
+ };
|
|
|
+ const res = (await getPatentApplicationList(data)) as unknown as any;
|
|
|
+ tableData.value = res.data.list;
|
|
|
+ total.value = res.data.total;
|
|
|
+};
|
|
|
|
|
|
const handleSearch = () => {
|
|
|
- // 执行查询逻辑,例如向后端发送请求
|
|
|
- console.log("查询条件:", queryForm.value);
|
|
|
- // 这里可以填充 trademarkData 以更新表格显示
|
|
|
+ pageInit();
|
|
|
};
|
|
|
|
|
|
const handleReset = () => {
|
|
|
queryForm.value = {
|
|
|
- trademarkName: "",
|
|
|
+ patentsName: "",
|
|
|
applicationNumber: "",
|
|
|
- createDate: null,
|
|
|
- legalStatus: "",
|
|
|
- annualFeeStatus: "",
|
|
|
- trademarkType: "",
|
|
|
+ createTime: "",
|
|
|
+ legislationStatus: "",
|
|
|
+ paymentStatus: "",
|
|
|
+ patentType: "",
|
|
|
};
|
|
|
+ pageInit();
|
|
|
};
|
|
|
|
|
|
const handleEdit = (row: any) => {
|
|
@@ -206,6 +196,10 @@ const handleDelete = (row: any) => {
|
|
|
// 删除逻辑
|
|
|
console.log("删除行:", row);
|
|
|
};
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ pageInit();
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|