Browse Source

维护案件信息

panhui 5 years ago
parent
commit
3893c3faf6

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

@@ -0,0 +1,80 @@
+<template>
+    <el-dialog title="新增附件" :visible.sync="show" center width="600px">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" style="padding-right: 120px;">
+            <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"></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],
+    data() {
+        return {
+            form: {
+                attachmentName: '',
+                fileName: '',
+                url: '',
+                remark: ''
+            },
+            show: true,
+            rules: {
+                attachmentName: { required: true, message: '请输入附件名称', trigger: 'blur' },
+                url: { required: true, message: '请输入附件名称', trigger: 'change' }
+            }
+        };
+    },
+    methods: {
+        onSubmit() {
+            this.$refs.form.validate(valid => {
+               if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
+        },
+        cancel() {
+            this.$emit('cancel');
+        },
+        submit() {
+            let data = { ...this.form };
+
+            this.saving = true;
+            this.$http
+                .post('/attachment/save', data, { body: 'json' })
+                .then(res => {
+                    this.saving = false;
+                    this.$message.success('成功');
+                    this.$router.go(-1);
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.saving = false;
+                    this.$message.error(e.error);
+                });
+        }
+    }
+};
+</script>
+
+<style></style>

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

@@ -0,0 +1,169 @@
+<template>
+    <div class="list-view">
+        <page-title>
+            <el-button @click="addRow" type="primary" icon="el-icon-plus" :loading="downloading" class="filter-item">
+                新增
+            </el-button>
+            <el-button @click="download" icon="el-icon-upload2" :loading="downloading" class="filter-item">
+                导出
+            </el-button>
+        </page-title>
+        <div class="filters-container">
+            <el-input
+                placeholder="搜索..."
+                v-model="search"
+                clearable
+                class="filter-item search"
+                @keyup.enter.native="getData"
+            >
+                <el-button @click="getData" slot="append" icon="el-icon-search"> </el-button>
+            </el-input>
+        </div>
+        <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"
+        >
+            <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" label="附件名称"> </el-table-column>
+            <el-table-column prop="fileName" label="上传文件名称"> </el-table-column>
+            <el-table-column prop="remark" label="备注"> </el-table-column>
+            <el-table-column prop="size" label="大小"> </el-table-column>
+            <el-table-column prop="createdAt" label="上传时间"></el-table-column>
+            <el-table-column prop="userId" label="操作人"> </el-table-column>
+            <el-table-column prop="version" label="版本"> </el-table-column>
+            <el-table-column label="操作" align="center" fixed="right" min-width="150">
+                <template slot-scope="{ row }">
+                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
+                    <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="pagination-wrapper">
+            <!-- <div class="multiple-mode-wrapper">
+                <el-button v-if="!multipleMode" @click="toggleMultipleMode(true)">批量编辑</el-button>
+                <el-button-group v-else>
+                    <el-button @click="operation1">批量操作1</el-button>
+                    <el-button @click="operation2">批量操作2</el-button>
+                    <el-button @click="toggleMultipleMode(false)">取消</el-button>
+                </el-button-group>
+            </div> -->
+            <el-pagination
+                background
+                @size-change="onSizeChange"
+                @current-change="onCurrentChange"
+                :current-page="page"
+                :page-sizes="[10, 20, 30, 40, 50]"
+                :page-size="pageSize"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="totalElements"
+            >
+            </el-pagination>
+        </div>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+import pageableTable from '@/mixins/pageableTable';
+
+export default {
+    name: 'AttachmentList',
+    mixins: [pageableTable],
+    data() {
+        return {
+            multipleMode: false,
+            search: '',
+            url: '/attachment/all',
+            downloading: false
+        };
+    },
+    computed: {
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        beforeGetData() {
+            return { search: this.search };
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
+            }
+        },
+        addRow() {
+            this.$router.push({
+                path: '/attachmentEdit',
+                query: {
+                    ...this.$route.query
+                }
+            });
+        },
+        editRow(row) {
+            this.$router.push({
+                path: '/attachmentEdit',
+                query: {
+                    id: row.id
+                }
+            });
+        },
+        download() {
+            this.downloading = true;
+            this.$axios
+                .get('/attachment/excel', {
+                    responseType: 'blob',
+                    params: { size: 10000 }
+                })
+                .then(res => {
+                    console.log(res);
+                    this.downloading = false;
+                    const downloadUrl = window.URL.createObjectURL(new Blob([res.data]));
+                    const link = document.createElement('a');
+                    link.href = downloadUrl;
+                    link.setAttribute('download', res.headers['content-disposition'].split('filename=')[1]);
+                    document.body.appendChild(link);
+                    link.click();
+                    link.remove();
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.downloading = false;
+                    this.$message.error(e.error);
+                });
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+        },
+        operation2() {
+            this.$message('操作2');
+        },
+        deleteRow(row) {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
+                .then(() => {
+                    return this.$http.post(`/attachment/del/${row.id}`);
+                })
+                .then(() => {
+                    this.$message.success('删除成功');
+                    this.getData();
+                })
+                .catch(e => {
+                    if (e !== 'cancel') {
+                        this.$message.error(e.error);
+                    }
+                });
+        }
+    }
+};
+</script>
+<style lang="less" scoped></style>

+ 95 - 0
src/main/vue/src/components/logoPatent/Maintenance.vue

@@ -0,0 +1,95 @@
+<template>
+    <el-dialog title="维护案件信息" :visible.sync="show" center width="600px">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" style="padding-right: 120px;">
+            <el-form-item label="选择供应商" prop="supplierPartnerId">
+                <!-- <el-input v-model="form.attachmentName" placeholder="请输入附件名"></el-input> -->
+                <el-select readonly v-model="form.supplierPartnerId" clearable filterable placeholder="请输入或者选择附件">
+                    <el-option
+                        v-for="item in supplierPartnerIdOptions"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                    >
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="商标LOGO" prop="url">
+                <attachment-upload v-model="form" :fileSize.sync="fileSize"></attachment-upload>
+            </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 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.$router.go(-1);
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.saving = false;
+                    this.$message.error(e.error);
+                });
+        }
+    }
+};
+</script>
+
+<style></style>

+ 1 - 0
src/main/vue/src/mixins/logoPatent.js

@@ -0,0 +1 @@
+exports.logoWorkflow = {};