panhui 4 سال پیش
والد
کامیت
a68ec9fd5c

+ 1 - 1
src/main/vue/src/components/AttachmentAdd.vue

@@ -70,7 +70,7 @@ export default {
         submit() {
             let data = { ...this.form };
             data.userId = this.$store.state.userInfo.id;
-            data.patentId = this.info.id;
+            data.patentId = this.info.patentId || this.info.id;
             data.version = 1;
             if (this.fileSize) {
                 data.size = this.fileSize + 'KB';

+ 5 - 1
src/main/vue/src/components/PageTitle.vue

@@ -1,7 +1,11 @@
 <template>
     <div class="page-title">
         <div class="navigation">
-            <div class="title">{{ name || $route.meta.title || $route.name }}</div>
+            <div class="title">
+                <slot name="title">
+                    {{ name || $route.meta.title || $route.name }}
+                </slot>
+            </div>
             <el-breadcrumb separator="/">
                 <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
                 <el-breadcrumb-item v-for="(item, index) in showMenus" :key="index" :to="{ path: item.path }">

+ 4 - 4
src/main/vue/src/components/fee/FeeAdd.vue

@@ -105,7 +105,7 @@
 export default {
     name: 'FeeEdit',
     props: {
-        logoPatentInfo: {
+        info: {
             type: Object,
             default: () => {
                 return {};
@@ -235,8 +235,8 @@ export default {
         init() {
             if (this.isLogoPatent) {
                 this.$nextTick(() => {
-                    this.form.patentPartnerId = this.logoPatentInfo.clientPartnerId;
-                    this.form.payPartnerId = this.logoPatentInfo.supplierPartnerId;
+                    this.form.patentPartnerId = this.info.clientPartnerId;
+                    this.form.payPartnerId = this.info.supplierPartnerId;
                     this.show = true;
                 });
             }
@@ -257,7 +257,7 @@ export default {
             data.billRemark = this.form.billInfo.remark;
             data.status = 'UNPAID';
             data.userId = this.$store.state.userInfo.id;
-            data.patentId = this.logoPatentInfo.id;
+            data.patentId = this.info.patentId || this.info.id;
             this.saving = true;
             this.$http
                 .post('/fee/save', data, { body: 'json' })

+ 2 - 2
src/main/vue/src/components/fee/FeeList.vue

@@ -114,7 +114,7 @@ export default {
     name: 'FeeList',
     mixins: [pageableTable],
     props: {
-        logoPatentInfo: {
+        info: {
             type: Object,
             default: () => {
                 return {};
@@ -159,7 +159,7 @@ export default {
         beforeGetData() {
             return {
                 query: {
-                    patentId: this.logoPatentInfo.id
+                    patentId: this.info.patentId || this.info.id
                 }
             };
         },

+ 0 - 97
src/main/vue/src/components/logoPatent/AttachmentAdd.vue

@@ -1,97 +0,0 @@
-<template>
-    <el-dialog title="新增附件" :visible.sync="show" center width="600px">
-        <el-form
-            hide-required-asterisk
-            :model="form"
-            :rules="rules"
-            ref="form"
-            label-width="140px"
-            style="padding-right: 130px;"
-        >
-            <el-form-item label="附件名称" prop="attachmentName">
-                <!-- <el-input v-model="form.attachmentName" placeholder="请输入附件名"></el-input> -->
-                <el-select readonly v-model="form.attachmentName" clearable filterable placeholder="请输入或者选择附件">
-                    <el-option
-                        v-for="item in attachmentOptions"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value"
-                    >
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="上传文件" prop="url">
-                <attachment-upload v-model="form" :fileSize.sync="fileSize"></attachment-upload>
-            </el-form-item>
-            <el-form-item>
-                <el-button style="width: 150px;" size="normal" type="primary" @click="onSubmit">提交</el-button>
-                <el-button style="width: 120px;" size="normal" @click="show = false">取消</el-button>
-            </el-form-item>
-        </el-form>
-    </el-dialog>
-</template>
-
-<script>
-import logoPatent from '@/mixins/logoPatent';
-export default {
-    mixins: [logoPatent],
-    props: {
-        info: {}
-    },
-    data() {
-        return {
-            form: {
-                attachmentName: '',
-                fileName: '',
-                url: '',
-                remark: ''
-            },
-            show: false,
-            rules: {
-                attachmentName: { required: true, message: '请输入附件名称', trigger: 'blur' },
-                url: { required: true, message: '请输入附件名称', trigger: 'change' }
-            },
-            fileSize: 0
-        };
-    },
-    methods: {
-        onSubmit() {
-            this.$refs.form.validate(valid => {
-                if (valid) {
-                    this.submit();
-                } else {
-                    return false;
-                }
-            });
-        },
-        cancel() {
-            this.$emit('cancel');
-        },
-        submit() {
-            let data = { ...this.form };
-            data.userId = this.$store.state.userInfo.id;
-            data.patentId = this.info.id;
-            data.version = 1;
-            if (this.fileSize) {
-                data.size = this.fileSize + 'KB';
-            }
-            this.saving = true;
-            this.$http
-                .post('/attachment/save', data, { body: 'json' })
-                .then(res => {
-                    this.saving = false;
-                    this.$message.success('成功');
-                    this.show = false;
-                    this.$emit('refreash');
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.saving = false;
-                    this.$message.error(e.error);
-                });
-        }
-    }
-};
-</script>
-
-<style></style>

+ 0 - 111
src/main/vue/src/components/logoPatent/AttachmentList.vue

@@ -1,111 +0,0 @@
-<template>
-    <div class="list-view">
-        <el-table
-            :data="tableData"
-            row-key="id"
-            ref="table"
-            header-row-class-name="table-header-row"
-            header-cell-class-name="table-header-cell"
-            row-class-name="table-row"
-            cell-class-name="table-cell"
-            :height="tableHeight"
-            v-loading="tableLoading"
-        >
-            <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
-            <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
-            <!-- <el-table-column prop="patentId" label="专利id"> </el-table-column> -->
-            <el-table-column prop="attachmentName" min-width="120px" show-overflow-tooltip label="附件名称">
-            </el-table-column>
-            <el-table-column prop="fileName" min-width="120px" show-overflow-tooltip label="上传文件名称">
-            </el-table-column>
-            <el-table-column prop="remark" show-overflow-tooltip label="备注">
-                <template slot-scope="{ row }">
-                    <span>{{ row.remark || '无' }}</span>
-                </template>
-            </el-table-column>
-            <el-table-column prop="size" label="大小"> </el-table-column>
-            <el-table-column prop="createdAt" show-overflow-tooltip label="上传时间"></el-table-column>
-            <el-table-column prop="nickname" label="上传人" width="100px"> </el-table-column>
-            <el-table-column prop="version" label="版本" width="80px">
-                <template slot-scope="{ row }">
-                    <span>V {{ row.version }}</span>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" align="center" fixed="right">
-                <template slot-scope="{ row }">
-                    <el-button @click="downLoad(row)" type="primary" size="mini" plain>下载</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-    </div>
-</template>
-<script>
-import pageableTable from '@/mixins/pageableTable';
-
-export default {
-    name: 'AttachmentList',
-    mixins: [pageableTable],
-    props: {
-        logoPatentInfo: {
-            type: Object,
-            default: () => {
-                return {};
-            }
-        }
-    },
-    data() {
-        return {
-            multipleMode: true,
-            search: '',
-            url: '/attachment/all',
-            downloading: false,
-            pageSize: 100
-        };
-    },
-    computed: {
-        selection() {
-            return this.$refs.table.selection.map(i => i.id);
-        }
-    },
-    methods: {
-        init() {
-            this.getData();
-            this.$nextTick(() => {
-                setTimeout(() => {
-                    this.tableHeight = document.querySelector('.el-table').getBoundingClientRect().height + 20;
-                }, 100);
-            });
-        },
-        beforeGetData() {
-            return {
-                query: {
-                    patentId: this.logoPatentInfo.id
-                }
-            };
-        },
-        toggleMultipleMode(multipleMode) {
-            this.multipleMode = multipleMode;
-            if (!multipleMode) {
-                this.$refs.table.clearSelection();
-            }
-        },
-        editRow(row) {
-            this.$router.push({
-                path: '/attachmentEdit',
-                query: {
-                    id: row.id
-                }
-            });
-        },
-        downLoad(row) {
-            window.open(row.url);
-        }
-    }
-};
-</script>
-<style lang="less" scoped>
-.list-view {
-    flex-grow: 1;
-    padding: 20px 0;
-}
-</style>

+ 2 - 2
src/main/vue/src/mixins/domesticPatent.js

@@ -1,7 +1,7 @@
 export default {
     data() {
         return {
-            applyStatusOptions: [
+            statusOptions: [
                 {
                     label: '申请阶段',
                     value: 'APPLY_STAGE',
@@ -60,7 +60,7 @@ export default {
         };
     },
     methods: {
-        applyStatusFormatter(row, column, cellValue, index) {
+        statusFormatter(row, column, cellValue, index) {
             let selectedOption = this.applyStatusOptions.find(i => i.value === cellValue);
             if (selectedOption) {
                 return selectedOption.label;

+ 0 - 14
src/main/vue/src/mixins/domesticPatentList.js

@@ -1,14 +0,0 @@
-export default {
-    data() {
-        workflowOptions: [
-            { label: '待添加供应商', value: 'ADD_SUPPLIERS' },
-            { label: '待提交供应商材料', value: 'SUPPLIER_MATERIALS' },
-            { label: '待维护案件', value: 'MAINTAIN_CASE' },
-            { label: '待审查', value: 'PENDING_REVIEW' },
-            { label: '待办登', value: 'PENDING_REGISTER' },
-            { label: '办理登记', value: 'REGISTER' },
-            { label: '待维护年费信息', value: 'ANNUAL_FEE' },
-            { label: '已完成', value: 'COMPLETED' }
-        ];
-    }
-};

+ 43 - 5
src/main/vue/src/mixins/logoPatent.js

@@ -2,10 +2,48 @@ export default {
     data() {
         return {
             applyStatusOptions: [
-                { label: '申请阶段', value: 'APPLY_STAGE', type: '' },
-                { label: '审查阶段', value: 'REVIEW_STAGE', type: 'warning' },
-                { label: '授权阶段', value: 'GRANT_STAGE', type: 'info' },
-                { label: '已完成', value: 'COMPLETED', type: 'end' }
+                {
+                    label: '申请阶段',
+                    value: 'APPLY_STAGE',
+                    type: '',
+                    workflows: [
+                        { label: '是否决定签约', value: 'IS_CONTRACT' },
+                        { label: '待维护案件', value: 'TO_BE_MAINTAINED' }
+                    ]
+                },
+                {
+                    label: '审查阶段',
+                    value: 'REVIEW_STAGE',
+                    type: 'warning',
+                    workflows: [
+                        { label: '待受理', value: 'PENDING' },
+                        { label: '不签约终止', value: 'NOT_CONTRACT' }
+                    ]
+                },
+                {
+                    label: '授权阶段',
+                    value: 'GRANT_STAGE',
+                    type: 'info',
+                    workflows: [
+                        { label: '待缴费', value: 'PENDING_PAYMENT' },
+                        { label: '回文补正', value: 'PALINDROME_CORRECTION' },
+                        { label: '未缴费终止', value: 'UNPAID' },
+                        { label: '待审查', value: 'PENDING_REVIEW' },
+                        { label: '驳回处理', value: 'DISMISS' },
+                        { label: '待上传复审材料', value: 'REVIEW_MATERIALS' },
+                        { label: '不复审终止', value: 'NO_REVIEW' },
+                        { label: '复审缴费', value: 'REVIEW_PAYMENT' },
+                        { label: '复审审查', value: 'REVIEW' },
+                        { label: '公告初审', value: 'ANNOUNCEMENTS' },
+                        { label: '证件办理', value: 'HANDLE' }
+                    ]
+                },
+                {
+                    label: '已完成',
+                    value: 'COMPLETED',
+                    type: 'end',
+                    workflows: []
+                }
             ],
             logoWorkflowOptions: [
                 { label: '是否决定签约', value: 'IS_CONTRACT' },
@@ -62,7 +100,7 @@ export default {
             }
             return '';
         },
-        logoWorkflowFormatter(row, column, cellValue, index) {
+        workflowFormatter(row, column, cellValue, index) {
             let selectedOption = this.logoWorkflowOptions.find(i => i.value === cellValue);
             if (selectedOption) {
                 return selectedOption.label;

+ 11 - 2
src/main/vue/src/router.js

@@ -172,7 +172,7 @@ const router = new Router({
                     name: 'logoPatentEdit',
                     component: () => import(/* webpackChunkName: "logoPatentEdit" */ '@/views/LogoPatentEdit.vue'),
                     meta: {
-                        title: '商标申请编辑'
+                        title: '商标详情'
                     }
                 },
                 {
@@ -237,7 +237,16 @@ const router = new Router({
                     component: () =>
                         import(/* webpackChunkName: "domesticPatentEdit" */ '@/views/DomesticPatentEdit.vue'),
                     meta: {
-                        title: '国内专利申请编辑'
+                        title: '专利详情'
+                    }
+                },
+                {
+                    path: '/domesticPatentAdd',
+                    name: 'DomesticPatentAdd',
+                    component: () =>
+                        import(/* webpackChunkName: "domesticPatentEdit" */ '@/views/DomesticPatentAdd.vue'),
+                    meta: {
+                        title: '新增国内申请专利'
                     }
                 },
                 {

+ 11 - 0
src/main/vue/src/styles/app.less

@@ -505,3 +505,14 @@ li {
     display: flex;
     justify-content: flex-end;
 }
+
+.filters-left {
+    flex-grow: 1;
+    .filters-item + .filters-item {
+        margin-left: 10px;
+    }
+}
+.filters-container {
+    display: flex;
+    flex-direction: row-reverse;
+}

+ 3 - 3
src/main/vue/src/styles/element_theme/index.css

@@ -1842,7 +1842,7 @@
 }
 .el-radio-button:first-child .el-radio-button__inner {
     border-left: 1px solid #dcdfe6;
-    border-radius: 4px 0 0 4px;
+    border-radius: 0;
     -webkit-box-shadow: none !important;
     box-shadow: none !important;
 }
@@ -1872,11 +1872,11 @@
     background-color: #f2f6fc;
 }
 .el-radio-button:last-child .el-radio-button__inner {
-    border-radius: 0 4px 4px 0;
+    border-radius: 0;
 }
 .el-popover,
 .el-radio-button:first-child:last-child .el-radio-button__inner {
-    border-radius: 4px;
+    border-radius: 0px;
 }
 .el-radio-button--medium .el-radio-button__inner {
     padding: 10px 20px;

+ 69 - 179
src/main/vue/src/views/DomesticPatentAdd.vue

@@ -11,24 +11,26 @@
                     label-width="178px"
                     label-position="right"
                     size="small"
-                    style="max-width: 500px;"
+                    style="width: 578px;"
                 >
                     <el-form-item prop="name" label="专利名称">
-                        <el-input v-model="formData.name"></el-input>
+                        <el-input style="width: 300px;" v-model="formData.name" placeholder="请输入"></el-input>
                     </el-form-item>
                     <el-form-item prop="type" label="专利类型">
-                        <el-select v-model="formData.type" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in typeOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
+                        <el-radio-group v-model="formData.type">
+                            <el-radio :label="item.value" v-for="(item, index) in typeOptions" :key="index">
+                                {{ item.label }}
+                            </el-radio>
+                        </el-radio-group>
                     </el-form-item>
                     <el-form-item prop="clientPartnerId" label="选择客户">
-                        <el-select v-model="formData.clientPartnerId" clearable filterable placeholder="请选择">
+                        <el-select
+                            style="width: 300px;"
+                            v-model="formData.clientPartnerId"
+                            clearable
+                            filterable
+                            placeholder="请选择"
+                        >
                             <el-option
                                 v-for="item in clientPartnerIdOptions"
                                 :key="item.value"
@@ -39,188 +41,63 @@
                         </el-select>
                     </el-form-item>
                     <el-form-item prop="applicantName" label="申请人名称">
-                        <el-input v-model="formData.applicantName"></el-input>
+                        <el-input
+                            style="width: 300px;"
+                            v-model="formData.applicantName"
+                            placeholder="请输入中文名称"
+                        ></el-input>
                     </el-form-item>
                     <el-form-item prop="applicantAddress" label="申请人地址">
-                        <el-input v-model="formData.applicantAddress"></el-input>
+                        <el-input
+                            style="width: 300px;"
+                            v-model="formData.applicantAddress"
+                            placeholder="请输入中文地址"
+                        ></el-input>
                     </el-form-item>
                     <el-form-item prop="applicantUscc" label="申请人统一社会信用代码">
-                        <el-input v-model="formData.applicantUscc"></el-input>
+                        <el-input
+                            style="width: 300px;"
+                            v-model="formData.applicantUscc"
+                            placeholder="请输入"
+                        ></el-input>
                     </el-form-item>
-                    <el-form-item prop="workflow" label="流程">
-                        <el-select v-model="formData.workflow" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in workflowOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item prop="applicantUscc" label="申请人统一社会信用代码">
-                        <el-input v-model="formData.applicantUscc"></el-input>
+                    <el-form-item prop="inventorName" label="发明人姓名">
+                        <el-input style="width: 300px;" v-model="formData.inventorName" placeholder="请输入"></el-input>
                     </el-form-item>
-                    <el-form-item prop="inventorIdno" label="第一发明人身份证">
-                        <el-input v-model="formData.inventorIdno"></el-input>
+                    <el-form-item prop="inventorIdno" label="第一发明人身份证号码">
+                        <el-input style="width: 300px;" v-model="formData.inventorIdno" placeholder="请输入"></el-input>
                     </el-form-item>
+
                     <el-form-item prop="deduction" label="是否请求费减">
-                        <el-switch v-model="formData.deduction"></el-switch>
+                        <el-radio-group v-model="formData.deduction">
+                            <el-radio :label="true">是</el-radio>
+                            <el-radio :label="false">否</el-radio>
+                        </el-radio-group>
                     </el-form-item>
                     <el-form-item prop="essentialReview" label="是否请求实质审查">
-                        <el-switch v-model="formData.essentialReview"></el-switch>
+                        <el-radio-group v-model="formData.essentialReview">
+                            <el-radio :label="true">是</el-radio>
+                            <el-radio :label="false">否</el-radio>
+                        </el-radio-group>
                     </el-form-item>
+
                     <el-form-item prop="publicInAdvance" label="是否申请提前公开">
-                        <el-switch v-model="formData.publicInAdvance"></el-switch>
+                        <el-radio-group v-model="formData.publicInAdvance">
+                            <el-radio :label="true">是</el-radio>
+                            <el-radio :label="false">否</el-radio>
+                        </el-radio-group>
                     </el-form-item>
                     <el-form-item prop="chapterAcceptanceNotice" label="是否申请红章受理通知书">
-                        <el-switch v-model="formData.chapterAcceptanceNotice"></el-switch>
+                        <el-radio-group v-model="formData.chapterAcceptanceNotice">
+                            <el-radio :label="true">是</el-radio>
+                            <el-radio :label="false">否</el-radio>
+                        </el-radio-group>
                     </el-form-item>
                     <el-form-item prop="chapterPaymentNotice" label="是否申请红章缴费通知书">
-                        <el-switch v-model="formData.chapterPaymentNotice"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="decideReply" label="是否决定答复">
-                        <el-switch v-model="formData.decideReply"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="isClientReady" label="准备答复意见">
-                        <el-switch v-model="formData.isClientReady"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="replyPassed" label="是否通过答复">
-                        <el-switch v-model="formData.replyPassed"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="registerNotice" label="办登通知日">
-                        <el-date-picker
-                            v-model="formData.registerNotice"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="registerEndDate" label="办登截止日">
-                        <el-date-picker
-                            v-model="formData.registerEndDate"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="feeRemark" label="费用备注">
-                        <el-input v-model="formData.feeRemark"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="payment" label="是否已缴费">
-                        <el-switch v-model="formData.payment"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="annualFee" label="年费">
-                        <el-input-number type="number" v-model="formData.annualFee"></el-input-number>
-                    </el-form-item>
-                    <el-form-item prop="feePaymentPeriod" label="年费支付期限">
-                        <el-date-picker
-                            v-model="formData.feePaymentPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="bill" label="账单">
-                        <el-input v-model="formData.bill"></el-input>
-                    </el-form-item>
-
-                    <el-form-item prop="status" label="状态">
-                        <el-select v-model="formData.status" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in statusOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item prop="uwNo" label="寰球案号">
-                        <el-input v-model="formData.uwNo"></el-input>
-                    </el-form-item>
-
-                    <el-form-item prop="supplierPartnerId" label="供应商">
-                        <el-input-number type="number" v-model="formData.supplierPartnerId"></el-input-number>
-                    </el-form-item>
-                    <el-form-item prop="supplierNo" label="供应商案号">
-                        <el-input v-model="formData.supplierNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="supplierSubmitPeriod" label="供应商提交期限">
-                        <el-date-picker
-                            v-model="formData.supplierSubmitPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="applicantName" label="申请人名称">
-                        <el-input v-model="formData.applicantName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applicantEnName" label="申请人英文名称">
-                        <el-input v-model="formData.applicantEnName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applicantAddress" label="申请人地址">
-                        <el-input v-model="formData.applicantAddress"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applicantEnAddress" label="申请人英文地址">
-                        <el-input v-model="formData.applicantEnAddress"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="inventorName" label="发明人名称">
-                        <el-input v-model="formData.inventorName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="inventorEnName" label="发明人英文名称">
-                        <el-input v-model="formData.inventorEnName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="priorityNo" label="优先权号">
-                        <el-input v-model="formData.priorityNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="priorityDate" label="优先权日">
-                        <el-date-picker
-                            v-model="formData.priorityDate"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="priorityCountry" label="优先权国别">
-                        <el-input v-model="formData.priorityCountry"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="submitPeriod" label="提交期限/内部期限">
-                        <el-date-picker
-                            v-model="formData.submitPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="officialPeriod" label="官方期限">
-                        <el-date-picker
-                            v-model="formData.officialPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="applyNo" label="申请号">
-                        <el-input v-model="formData.applyNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applyDate" label="申请日">
-                        <el-date-picker
-                            v-model="formData.applyDate"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
+                        <el-radio-group v-model="formData.chapterPaymentNotice">
+                            <el-radio :label="true">是</el-radio>
+                            <el-radio :label="false">否</el-radio>
+                        </el-radio-group>
                     </el-form-item>
 
                     <el-form-item class="form-submit">
@@ -262,7 +139,20 @@ export default {
         return {
             saving: false,
             formData: {},
-            rules: {},
+            rules: {
+                name: { required: true, message: '请输入专利名称', trigger: 'blur' },
+                name: { required: true, message: '请输入专利名称', trigger: 'blur' },
+                attachment3: {
+                    validator: (rule, value, callback) => {
+                        if (!value.url) {
+                            callback(new Error('请上传商标部分驳回通知书'));
+                        } else {
+                            callback();
+                        }
+                    },
+                    trigger: 'change'
+                }
+            },
             clientPartnerIdOptions: [],
             workflowOptions: [
                 { label: '待添加供应商', value: 'ADD_SUPPLIERS' },

+ 177 - 251
src/main/vue/src/views/DomesticPatentEdit.vue

@@ -1,241 +1,63 @@
 <template>
     <div class="edit-view">
         <page-title>
-            <el-button @click="$router.go(-1)">取消</el-button>
-            <el-button @click="del" :loading="$store.state.fetchingData" type="danger" v-if="formData.id">
-                删除
-            </el-button>
-            <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
+            <template slot="title"> 专利详情:{{ formData.name }} </template>
         </page-title>
-        <div class="edit-view__content-wrapper">
-            <div class="edit-view__content-section">
-                <divider />
-                <el-form
-                    :model="formData"
-                    :rules="rules"
-                    ref="form"
-                    label-width="178px"
-                    label-position="right"
-                    size="small"
-                    style="max-width: 500px;"
-                >
-                    <el-form-item prop="workflow" label="流程">
-                        <el-select v-model="formData.workflow" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in workflowOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item prop="applicantUscc" label="申请人统一社会信用代码">
-                        <el-input v-model="formData.applicantUscc"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="inventorIdno" label="第一发明人身份证">
-                        <el-input v-model="formData.inventorIdno"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="deduction" label="是否请求费减">
-                        <el-switch v-model="formData.deduction"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="essentialReview" label="是否请求实质审查">
-                        <el-switch v-model="formData.essentialReview"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="publicInAdvance" label="是否申请提前公开">
-                        <el-switch v-model="formData.publicInAdvance"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="chapterAcceptanceNotice" label="是否申请红章受理通知书">
-                        <el-switch v-model="formData.chapterAcceptanceNotice"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="chapterPaymentNotice" label="是否申请红章缴费通知书">
-                        <el-switch v-model="formData.chapterPaymentNotice"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="decideReply" label="是否决定答复">
-                        <el-switch v-model="formData.decideReply"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="isClientReady" label="准备答复意见">
-                        <el-switch v-model="formData.isClientReady"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="replyPassed" label="是否通过答复">
-                        <el-switch v-model="formData.replyPassed"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="registerNotice" label="办登通知日">
-                        <el-date-picker
-                            v-model="formData.registerNotice"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="registerEndDate" label="办登截止日">
-                        <el-date-picker
-                            v-model="formData.registerEndDate"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="feeRemark" label="费用备注">
-                        <el-input v-model="formData.feeRemark"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="payment" label="是否已缴费">
-                        <el-switch v-model="formData.payment"></el-switch>
-                    </el-form-item>
-                    <el-form-item prop="annualFee" label="年费">
-                        <el-input-number type="number" v-model="formData.annualFee"></el-input-number>
-                    </el-form-item>
-                    <el-form-item prop="feePaymentPeriod" label="年费支付期限">
-                        <el-date-picker
-                            v-model="formData.feePaymentPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="bill" label="账单">
-                        <el-input v-model="formData.bill"></el-input>
-                    </el-form-item>
+        <el-tabs class="edit-tabs" v-model="activeName" @tab-click="tabClick">
+            <div class="right-btns">
+                <!-- <el-button type="primary" size="small">新增答复</el-button> -->
+                <el-button type="primary" size="small" @click="$refs.feeAdd.init()">新增费用</el-button>
+                <el-button type="primary" size="small" @click="$refs.attachmentAdd.show = true">新增附件</el-button>
+                <!-- <el-button type="primary" size="small">分案/接续流程</el-button> -->
+            </div>
+            <div class="tips" v-if="nowStatus && formData.applyStatus !== 'COMPLETED'">
+                <div class="tips-text">
+                    <span class="name">当前流程节点</span>
+                    <span class="val">{{ nowStatus }}</span>
+                </div>
+
+                <div class="tips-text">
+                    <span class="name">处理人</span>
+                    <span class="val">{{ user }}</span>
+                </div>
 
-                    <el-form-item prop="name" label="专利名称">
-                        <el-input v-model="formData.name"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="status" label="状态">
-                        <el-select v-model="formData.status" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in statusOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item prop="type" label="专利类型">
-                        <el-select v-model="formData.type" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in typeOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item prop="uwNo" label="寰球案号">
-                        <el-input v-model="formData.uwNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="clientPartnerId" label="客户id">
-                        <el-input-number type="number" v-model="formData.clientPartnerId"></el-input-number>
-                    </el-form-item>
-                    <el-form-item prop="supplierPartnerId" label="供应商">
-                        <el-input-number type="number" v-model="formData.supplierPartnerId"></el-input-number>
-                    </el-form-item>
-                    <el-form-item prop="supplierNo" label="供应商案号">
-                        <el-input v-model="formData.supplierNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="supplierSubmitPeriod" label="供应商提交期限">
-                        <el-date-picker
-                            v-model="formData.supplierSubmitPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="applicantName" label="申请人名称">
-                        <el-input v-model="formData.applicantName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applicantEnName" label="申请人英文名称">
-                        <el-input v-model="formData.applicantEnName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applicantAddress" label="申请人地址">
-                        <el-input v-model="formData.applicantAddress"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applicantEnAddress" label="申请人英文地址">
-                        <el-input v-model="formData.applicantEnAddress"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="inventorName" label="发明人名称">
-                        <el-input v-model="formData.inventorName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="inventorEnName" label="发明人英文名称">
-                        <el-input v-model="formData.inventorEnName"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="priorityNo" label="优先权号">
-                        <el-input v-model="formData.priorityNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="priorityDate" label="优先权日">
-                        <el-date-picker
-                            v-model="formData.priorityDate"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="priorityCountry" label="优先权国别">
-                        <el-input v-model="formData.priorityCountry"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="submitPeriod" label="提交期限/内部期限">
-                        <el-date-picker
-                            v-model="formData.submitPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="officialPeriod" label="官方期限">
-                        <el-date-picker
-                            v-model="formData.officialPeriod"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item prop="applyNo" label="申请号">
-                        <el-input v-model="formData.applyNo"></el-input>
-                    </el-form-item>
-                    <el-form-item prop="applyDate" label="申请日">
-                        <el-date-picker
-                            v-model="formData.applyDate"
-                            type="date"
-                            value-format="yyyy-MM-dd"
-                            placeholder="选择日期"
-                        >
-                        </el-date-picker>
-                    </el-form-item>
+                <div class="tips-text">
+                    <span class="name">处理截止日期</span>
+                    <span class="val">无</span>
+                </div>
 
-                    <el-form-item class="form-submit">
-                        <el-button @click="onSave" :loading="saving" size="default" type="primary">保存 </el-button>
-                        <el-button @click="onDelete" :loading="saving" size="default" type="danger" v-if="formData.id"
-                            >删除
-                        </el-button>
-                        <el-button @click="$router.go(-1)" size="default">取消</el-button>
-                    </el-form-item>
-                </el-form>
+                <el-button @click="action" type="text" size="small">立即处理</el-button>
             </div>
-        </div>
+            <el-tab-pane label="基本信息" name="first">
+                <base-info ref="base" :info.sync="formData" @submit="submit"></base-info>
+            </el-tab-pane>
+            <el-tab-pane label="附件列表" name="second">
+                <attachment-list ref="attachmentList" :info="formData"></attachment-list>
+            </el-tab-pane>
+            <el-tab-pane label="费用信息" name="third">
+                <fee-list ref="feeList" :info="formData"></fee-list>
+            </el-tab-pane>
+            <!-- <el-tab-pane label="流程信息" name="fourth"></el-tab-pane> -->
+        </el-tabs>
+
+        <attachment-add ref="attachmentAdd" :info="formData" @refreash="init"></attachment-add>
+
+        <fee-add ref="feeAdd" isLogoPatent :info="formData" @refreash="init"></fee-add>
     </div>
 </template>
 <script>
+import BaseInfo from '../components/domesticPatent/BaseInfo.vue';
+import attachmentList from '../components/AttachmentList.vue';
+import domesticPatent from '@/mixins/domesticPatent';
+import AttachmentAdd from '../components/AttachmentAdd.vue';
+import FeeList from '../components/fee/FeeList.vue';
+import FeeAdd from '../components/fee/FeeAdd.vue';
 export default {
     name: 'DomesticPatentEdit',
+    mixins: [domesticPatent],
     created() {
         if (this.$route.query.id) {
-            this.$http
-                .get('domesticPatent/getDTO/' + this.$route.query.id)
-                .then(res => {
-                    this.formData = res;
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.$message.error(e.error);
-                });
+            this.getInfo();
         }
     },
     data() {
@@ -243,30 +65,54 @@ export default {
             saving: false,
             formData: {},
             rules: {},
-            workflowOptions: [
-                { label: '待添加供应商', value: 'ADD_SUPPLIERS' },
-                { label: '待提交供应商材料', value: 'SUPPLIER_MATERIALS' },
-                { label: '待维护案件', value: 'MAINTAIN_CASE' },
-                { label: '待审查', value: 'PENDING_REVIEW' },
-                { label: '待办登', value: 'PENDING_REGISTER' },
-                { label: '办理登记', value: 'REGISTER' },
-                { label: '待维护年费信息', value: 'ANNUAL_FEE' },
-                { label: '已完成', value: 'COMPLETED' }
-            ],
-            statusOptions: [
-                { label: '申请阶段', value: 'APPLY_STAGE' },
-                { label: '审查阶段', value: 'REVIEW_STAGE' },
-                { label: '授权阶段', value: 'GRANT_STAGE' },
-                { label: '已完成', value: 'COMPLETED' }
-            ],
-            typeOptions: [
-                { label: '发明专利', value: 'INVENTION' },
-                { label: '实用新型专利', value: 'UTILITY_MODEL' },
-                { label: '外观设计专利', value: 'APPEARANCE_DESIGN' }
-            ]
+            clientPartnerIdOptions: [],
+            supplierPartnerIdOptions: [],
+            activeName: 'first'
         };
     },
+    computed: {
+        nowStatus() {
+            return this.workflowFormatter('', '', this.formData.workflow);
+        },
+        user() {
+            if (this.formData.workflow === 'IS_CONTRACT') {
+                return '客户经理';
+            } else if (this.formData.workflow) {
+                return '项目经理';
+            } else {
+                return '';
+            }
+        }
+    },
     methods: {
+        getInfo() {
+            this.$http
+                .get('domesticPatent/getDTO/' + this.$route.query.id)
+                .then(res => {
+                    this.formData = res;
+                    this.$nextTick(() => {
+                        this.init();
+                    });
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.$message.error(e.error);
+                });
+        },
+        init() {
+            if (this.activeName === 'first') {
+                this.$refs.base.init();
+            } else if (this.activeName === 'second') {
+                this.$refs.attachmentList.init();
+            } else if (this.activeName === 'third') {
+                this.$refs.feeList.init();
+            }
+        },
+        tabClick(tab) {
+            this.$nextTick(() => {
+                this.init();
+            });
+        },
         onSave() {
             this.$refs.form.validate(valid => {
                 if (valid) {
@@ -276,16 +122,15 @@ export default {
                 }
             });
         },
-        submit() {
-            let data = { ...this.formData };
-
+        submit(info) {
+            let data = { ...info };
             this.saving = true;
             this.$http
-                .post('/domesticPatent/saveDTO', data, { body: 'json' })
+                .post('/domesticPatent/save', data, { body: 'json' })
                 .then(res => {
                     this.saving = false;
                     this.$message.success('成功');
-                    this.$router.go(-1);
+                    this.getInfo();
                 })
                 .catch(e => {
                     console.log(e);
@@ -308,8 +153,89 @@ export default {
                         this.$message.error((e || {}).error || '删除失败');
                     }
                 });
+        },
+        uploadAttement(info) {
+            let data = { ...info };
+            if (!data.url) {
+                return;
+            }
+            data.patentId = this.formData.id;
+            data.userId = this.$store.state.userInfo.id;
+            data.version = 1;
+            if (data.size) {
+                data.size += 'KB';
+            }
+            this.$http.post('/attachment/save', data, { body: 'json' });
+        },
+        action() {
+            if (this.formData.logoWorkflow === 'IS_CONTRACT') {
+                this.$refs.sign.show = true;
+            }
         }
+    },
+    components: {
+        BaseInfo,
+        attachmentList,
+        AttachmentAdd,
+        FeeList,
+        FeeAdd
     }
 };
 </script>
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.edit-tabs {
+    position: relative;
+
+    .right-btns {
+        position: absolute;
+        right: 20px;
+        top: -44px;
+        .el-button {
+            min-width: 100px;
+        }
+    }
+}
+
+.tips {
+    .flex();
+    height: 40px;
+    background: tint(@warn, 68%);
+    border: 1px solid @warn;
+    margin: 20px 20px 0;
+    padding: 0 20px;
+    position: relative;
+
+    .tips-text {
+        margin-right: 60px;
+        .name {
+            font-size: 12px;
+            color: #5e6166;
+            line-height: 22px;
+        }
+
+        .val {
+            font-size: 12px;
+            font-weight: bold;
+            color: @warn;
+            line-height: 22px;
+            margin-left: 10px;
+        }
+    }
+
+    .el-button {
+        position: absolute;
+        right: 20px;
+    }
+}
+</style>
+<style lang="less">
+.el-dialog {
+    .el-form {
+        .el-form-item {
+            &:last-child {
+                margin-top: 70px;
+            }
+        }
+    }
+}
+</style>

+ 50 - 13
src/main/vue/src/views/DomesticPatentList.vue

@@ -18,6 +18,31 @@
             >
                 <el-button @click="getData" slot="append" icon="el-icon-search"> </el-button>
             </el-input>
+            <div class="filters-left">
+                <el-radio-group class="filters-item" v-model="applyStatus" size="mini" @change="refreash">
+                    <el-radio-button v-for="(item, index) in statusOptions" :key="index" :label="item.value">
+                        {{ item.label }}
+                    </el-radio-button>
+                </el-radio-group>
+
+                <el-select
+                    size="mini"
+                    class="filters-item"
+                    v-model="logoWorkflow"
+                    placeholder="筛选节点流程"
+                    clearable
+                    filterable
+                    @change="refreash"
+                >
+                    <el-option
+                        v-for="item in selectLogoWorkflowOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                    >
+                    </el-option>
+                </el-select>
+            </div>
         </div>
         <el-table
             :data="tableData"
@@ -98,31 +123,33 @@
 <script>
 import { mapState } from 'vuex';
 import pageableTable from '@/mixins/pageableTable';
+import domesticPatent from '@/mixins/domesticPatent';
 
 export default {
     name: 'DomesticPatentList',
-    mixins: [pageableTable],
+    mixins: [pageableTable, domesticPatent],
     data() {
         return {
             multipleMode: false,
             search: '',
             url: '/domesticPatent/all',
             downloading: false,
-            workflowOptions: [
-                { label: '待添加供应商', value: 'ADD_SUPPLIERS' },
-                { label: '待提交供应商材料', value: 'SUPPLIER_MATERIALS' },
-                { label: '待维护案件', value: 'MAINTAIN_CASE' },
-                { label: '待审查', value: 'PENDING_REVIEW' },
-                { label: '待办登', value: 'PENDING_REGISTER' },
-                { label: '办理登记', value: 'REGISTER' },
-                { label: '待维护年费信息', value: 'ANNUAL_FEE' },
-                { label: '已完成', value: 'COMPLETED' }
-            ]
+            applyStatus: 'APPLY_STAGE',
+            logoWorkflow: ''
         };
     },
     computed: {
         selection() {
             return this.$refs.table.selection.map(i => i.id);
+        },
+        selectLogoWorkflowOptions() {
+            if (this.applyStatus) {
+                return [...this.statusOptions].find(item => {
+                    return item.value === this.applyStatus;
+                })?.workflows;
+            } else {
+                return this.workflowOptions;
+            }
         }
     },
     methods: {
@@ -134,7 +161,13 @@ export default {
             return '';
         },
         beforeGetData() {
-            return { search: this.search };
+            return {
+                search: this.search,
+                query: {
+                    applyStatus: this.applyStatus,
+                    logoWorkflow: this.logoWorkflow
+                }
+            };
         },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;
@@ -144,7 +177,7 @@ export default {
         },
         addRow() {
             this.$router.push({
-                path: '/domesticPatentEdit',
+                path: '/domesticPatentAdd',
                 query: {
                     ...this.$route.query
                 }
@@ -205,6 +238,10 @@ export default {
                         this.$message.error(e.error);
                     }
                 });
+        },
+        refreash() {
+            this.page = 1;
+            this.getData();
         }
     }
 };

+ 9 - 7
src/main/vue/src/views/LogoPatentEdit.vue

@@ -1,6 +1,8 @@
 <template>
     <div class="edit-view">
-        <page-title></page-title>
+        <page-title>
+            <template slot="title"> 商标详情:{{ formData.name }} </template>
+        </page-title>
         <el-tabs class="edit-tabs" v-model="activeName" @tab-click="tabClick">
             <div class="right-btns">
                 <!-- <el-button type="primary" size="small">新增答复</el-button> -->
@@ -30,10 +32,10 @@
                 <base-info ref="base" :info.sync="formData" @submit="submit"></base-info>
             </el-tab-pane>
             <el-tab-pane label="附件列表" name="second">
-                <attachment-list ref="attachmentList" :logoPatentInfo="formData"></attachment-list>
+                <attachment-list ref="attachmentList" :info="formData"></attachment-list>
             </el-tab-pane>
             <el-tab-pane label="费用信息" name="third">
-                <fee-list ref="feeList" :logoPatentInfo="formData"></fee-list>
+                <fee-list ref="feeList" :info="formData"></fee-list>
             </el-tab-pane>
             <!-- <el-tab-pane label="流程信息" name="fourth"></el-tab-pane> -->
         </el-tabs>
@@ -66,15 +68,15 @@
         <review-se-s ref="reviewSeS" :info="formData" @submit="submit" @uploadAttement="uploadAttement"></review-se-s>
 
         <review-se-t ref="reviewSeT" :info="formData" @submit="submit" @uploadAttement="uploadAttement"></review-se-t>
-        <fee-add ref="feeAdd" isLogoPatent :logoPatentInfo="formData" @refreash="init"></fee-add>
+        <fee-add ref="feeAdd" isLogoPatent :info="formData" @refreash="init"></fee-add>
     </div>
 </template>
 <script>
 import BaseInfo from '../components/logoPatent/BaseInfo.vue';
 import Signed from '../components/logoPatent/Signed.vue';
-import attachmentList from '../components/logoPatent/AttachmentList.vue';
+import attachmentList from '../components/AttachmentList.vue';
 import logoPatent from '@/mixins/logoPatent';
-import AttachmentAdd from '../components/logoPatent/AttachmentAdd.vue';
+import AttachmentAdd from '../components/AttachmentAdd.vue';
 import Maintenance from '../components/logoPatent/Maintenance.vue';
 import Accept from '../components/logoPatent/Accept.vue';
 import Review from '../components/logoPatent/Review.vue';
@@ -108,7 +110,7 @@ export default {
     },
     computed: {
         nowStatus() {
-            return this.logoWorkflowFormatter('', '', this.formData.logoWorkflow);
+            return this.workflowFormatter('', '', this.formData.logoWorkflow);
         },
         user() {
             if (this.formData.logoWorkflow === 'IS_CONTRACT') {

+ 40 - 9
src/main/vue/src/views/LogoPatentList.vue

@@ -9,12 +9,6 @@
             </el-button>
         </page-title>
         <div class="filters-container">
-            <el-radio-group v-model="applyStatus" size="mini" @change="refreash">
-                <el-radio-button v-for="(item, index) in applyStatusOptions" :key="index" :label="item.value">
-                    {{ item.label }}
-                </el-radio-button>
-            </el-radio-group>
-
             <el-input
                 placeholder="搜索..."
                 v-model="search"
@@ -24,6 +18,32 @@
             >
                 <el-button @click="getData" slot="append" icon="el-icon-search"> </el-button>
             </el-input>
+
+            <div class="filters-left">
+                <el-radio-group class="filters-item" v-model="applyStatus" size="mini" @change="refreash">
+                    <el-radio-button v-for="(item, index) in applyStatusOptions" :key="index" :label="item.value">
+                        {{ item.label }}
+                    </el-radio-button>
+                </el-radio-group>
+
+                <el-select
+                    size="mini"
+                    class="filters-item"
+                    v-model="logoWorkflow"
+                    placeholder="筛选节点流程"
+                    clearable
+                    filterable
+                    @change="refreash"
+                >
+                    <el-option
+                        v-for="item in selectLogoWorkflowOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                    >
+                    </el-option>
+                </el-select>
+            </div>
         </div>
         <el-table
             :data="tableData"
@@ -45,7 +65,7 @@
             </el-table-column>
             <el-table-column prop="uwNo" label="寰球案号"> </el-table-column>
             <el-table-column prop="name" label="专利名称"> </el-table-column>
-            <el-table-column prop="logoWorkflow" label="当前流程" :formatter="logoWorkflowFormatter"> </el-table-column>
+            <el-table-column prop="logoWorkflow" label="当前流程" :formatter="workflowFormatter"> </el-table-column>
             <el-table-column prop="userId" label="创建申请人"> </el-table-column>
             <el-table-column prop="createdAt" label="商标申请日"> </el-table-column>
             <el-table-column prop="clientPartner" label="客户"> </el-table-column>
@@ -87,12 +107,22 @@ export default {
             search: '',
             url: '/logoPatent/all',
             downloading: false,
-            applyStatus: 'APPLY_STAGE'
+            applyStatus: 'APPLY_STAGE',
+            logoWorkflow: ''
         };
     },
     computed: {
         selection() {
             return this.$refs.table.selection.map(i => i.id);
+        },
+        selectLogoWorkflowOptions() {
+            if (this.applyStatus) {
+                return [...this.applyStatusOptions].find(item => {
+                    return item.value === this.applyStatus;
+                })?.workflows;
+            } else {
+                return this.logoWorkflowOptions;
+            }
         }
     },
     methods: {
@@ -108,7 +138,8 @@ export default {
             return {
                 search: this.search,
                 query: {
-                    applyStatus: this.applyStatus
+                    applyStatus: this.applyStatus,
+                    logoWorkflow: this.logoWorkflow
                 }
             };
         },