LH 4 năm trước cách đây
mục cha
commit
6617dd7fba

+ 8 - 4
src/main/java/com/izouma/jmrh/web/PostController.java

@@ -3,17 +3,16 @@ package com.izouma.jmrh.web;
 import com.izouma.jmrh.domain.BaseEntity;
 import com.izouma.jmrh.domain.Post;
 import com.izouma.jmrh.dto.MyPostAndComment;
+import com.izouma.jmrh.dto.PageQuery;
 import com.izouma.jmrh.dto.PostDTO;
 import com.izouma.jmrh.enums.PostType;
-import com.izouma.jmrh.service.PostService;
-import com.izouma.jmrh.dto.PageQuery;
 import com.izouma.jmrh.exception.BusinessException;
 import com.izouma.jmrh.repo.PostRepo;
+import com.izouma.jmrh.service.PostService;
 import com.izouma.jmrh.utils.SecurityUtils;
 import com.izouma.jmrh.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -26,7 +25,7 @@ import java.util.Optional;
 @AllArgsConstructor
 public class PostController extends BaseController {
     private PostService postService;
-    private PostRepo    postRepo;
+    private PostRepo postRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -45,6 +44,11 @@ public class PostController extends BaseController {
         return postRepo.findAll(toSpecification(pageQuery, Post.class), toPageRequest(pageQuery));
     }
 
+    @GetMapping("/count")
+    public long count(PageQuery pageQuery) {
+        return postRepo.count(toSpecification(pageQuery, Post.class));
+    }
+
     @GetMapping("/get/{id}")
     public Post get(@PathVariable Long id) {
         return postRepo.findById(id).orElseThrow(new BusinessException("无记录"));

+ 16 - 62
src/main/resources/static/backlog.json

@@ -1,89 +1,43 @@
 [
-  {
-    todoName: '技术需求信息待办',
-    count: 0,
-    url: '/artNeedList',
-    query: {
-      state: 0
-    }
-  },
-  {
-    todoName: '产品需求信息待办',
-    count: 0,
-    url: '/productNeedList',
-    query: {
-      state: 0
-    }
-  },
-  {
-    todoName: '融资需求信息待办',
-    count: 0,
-    url: '/financingNeedsList',
-    query: {
-      state: 0
-    }
-  },
-  {
-    todoName: '产品待办',
-    count: 0,
-    url: '/productList',
-    query: {
-      state: 0
-    }
-  },
-  {
-    todoName: '技术待办',
-    count: 0,
-    url: '/artProductList',
-    query: {
-      state: 0
-    }
-  },
-  {
-    todoName: '设备资源待办',
-    count: 0,
-    url: '/tresourceList',
-    query: {
-      state: 0
-    }
-  },
   {
     todoName: '公告审核',
-    count: 0,
     url: '/articleList',
     query: {
       type: {
         keyType: 'gg'
       },
-      state: 0
+      status: 'PENDING'
     }
   },
   {
     todoName: '政策审核',
-    count: 0,
     url: '/articleList',
     query: {
       type: {
         keyType: 'zcfg'
       },
-      state: 0
-    },
-    "urlCount": ''
+      status: 'PENDING'
+    }
   },
   {
-    todoName: '官方问答审核',
-    count: 0,
-    url: '/questionList',
+    todoName: '企业信息审核',
+    url: '/orgInfoList',
     query: {
-      state: 0
+      status: 'PENDING'
     }
   },
   {
-    todoName: '企业信息审核',
-    count: 0,
-    url: '/orgInfoList',
+    todoName: '资源供需审核',
+    url: '/resourceSupplyAndDemandList',
+    query: {
+      status: 'PENDING'
+    }
+  },
+  {
+    todoName: '民政互动审核',
+    url: '/postList',
     query: {
-      state: 0
+      status: 'PENDING'
     }
   }
 ]

+ 2 - 0
src/main/vue/src/views/ArticleAudit.vue

@@ -56,6 +56,8 @@
                 </template>
             </el-table-column>
             <el-table-column prop="type.name" label="类型"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+
             <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="{ row }">

+ 2 - 0
src/main/vue/src/views/ArticleList.vue

@@ -56,6 +56,8 @@
                 </template>
             </el-table-column>
             <el-table-column prop="type.name" label="类型"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+
             <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="{ row }">

+ 6 - 4
src/main/vue/src/views/OrgInfoList.vue

@@ -34,6 +34,7 @@
             <el-table-column prop="address" label="所在地" min-width="100" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="addressDetail" label="详细地址" min-width="100" show-overflow-tooltip>
             </el-table-column>
+            <el-table-column prop="createdAt" label="提交日期" width="150"> </el-table-column>
             <el-table-column prop="intro" label="企业介绍" min-width="100" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="license" label="营业执照" width="80" align="center">
                 <template v-slot="{ row }">
@@ -59,7 +60,7 @@
                 </template>
             </el-table-column>
             <el-table-column prop="nickname" label="用户名" min-width="100" show-overflow-tooltip> </el-table-column>
-            <el-table-column prop="state" label="状态" :formatter="stateFormatter" width="80"> </el-table-column>
+            <el-table-column prop="status" label="状态" :formatter="statusFormatter" width="80"> </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>
@@ -103,7 +104,8 @@ export default {
             search: '',
             url: '/orgInfo/all',
             downloading: false,
-            stateOptions: [
+            sortStr: 'createdAt,desc',
+            statusOptions: [
                 { label: '未审核', value: 0 },
                 { label: '审核通过', value: 1 },
                 { label: '驳回', value: 2 }
@@ -116,8 +118,8 @@ export default {
         }
     },
     methods: {
-        stateFormatter(row, column, cellValue, index) {
-            let selectedOption = this.stateOptions.find(i => i.value === cellValue);
+        statusFormatter(row, column, cellValue, index) {
+            let selectedOption = this.statusOptions.find(i => i.value === cellValue);
             if (selectedOption) {
                 return selectedOption.label;
             }

+ 12 - 22
src/main/vue/src/views/PolicyAudit.vue

@@ -49,14 +49,15 @@
             </el-table-column>
             <el-table-column prop="publish" label="发布" width="60" align="center"> </el-table-column>
             <el-table-column prop="type.name" label="类型"> </el-table-column>
-            <el-table-column prop="state" label="状态" :formatter="stateFormatter"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+
+            <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
 
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="{ row }">
                     <el-button
                         type="primary"
-                        v-if="row.state === 0"
-                        @click="pass({ article: { id: row.id, state: 1 }, state: 1 })"
+                        @click="pass({ article: { id: row.id, status: 'PASS' }, status: 'PASS' })"
                         plain
                         size="mini"
                     >
@@ -64,8 +65,7 @@
                     </el-button>
                     <el-button
                         type="warning"
-                        v-if="row.state === 0"
-                        @click="deny({ article: { id: row.id, state: 2 }, refuseDesc: '', state: 2 })"
+                        @click="deny({ article: { id: row.id, status: 'DENY' }, refuseDesc: '', status: 'DENY' })"
                         plain
                         size="mini"
                     >
@@ -75,14 +75,6 @@
             </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"
@@ -124,14 +116,12 @@ export default {
                     keyType: 'zcfg',
                     id: ''
                 },
-                state: 0
+                status: 'PENDING'
             },
-            stateOptions: [
-                { label: '未审核', value: 0 },
-                { label: '审核通过', value: 1 },
-                { label: '驳回', value: 2 },
-                { label: '正在对接', value: 3 },
-                { label: '完成', value: 4 }
+            statusOptions: [
+                { label: '待审核', value: 'PENDING' },
+                { label: '审核通过', value: 'PASS' },
+                { label: '审核失败', value: 'DENY' }
             ],
             typeIdOptions: []
         };
@@ -145,8 +135,8 @@ export default {
         this.getDataType({ query: { keyType: 'zcfg' } }, this.typeIdOptions);
     },
     methods: {
-        stateFormatter(row, column, cellValue, index) {
-            let selectedOption = this.stateOptions.find(i => i.value === cellValue);
+        statusFormatter(row, column, cellValue, index) {
+            let selectedOption = this.statusOptions.find(i => i.value === cellValue);
             if (selectedOption) {
                 return selectedOption.label;
             }

+ 9 - 9
src/main/vue/src/views/PolicyList.vue

@@ -49,7 +49,9 @@
             </el-table-column>
             <el-table-column prop="publish" label="发布" width="60" align="center"> </el-table-column>
             <el-table-column prop="type.name" label="类型"> </el-table-column>
-            <el-table-column prop="state" label="状态" :formatter="stateFormatter"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+
+            <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
 
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="{ row }">
@@ -109,12 +111,10 @@ export default {
                     id: ''
                 }
             },
-            stateOptions: [
-                { label: '未审核', value: 0 },
-                { label: '审核通过', value: 1 },
-                { label: '驳回', value: 2 },
-                { label: '正在对接', value: 3 },
-                { label: '完成', value: 4 }
+            statusOptions: [
+                { label: '待审核', value: 'PENDING' },
+                { label: '审核通过', value: 'PASS' },
+                { label: '审核失败', value: 'DENY' }
             ],
             typeIdOptions: []
         };
@@ -129,8 +129,8 @@ export default {
     },
 
     methods: {
-        stateFormatter(row, column, cellValue, index) {
-            let selectedOption = this.stateOptions.find(i => i.value === cellValue);
+        statusFormatter(row, column, cellValue, index) {
+            let selectedOption = this.statusOptions.find(i => i.value === cellValue);
             if (selectedOption) {
                 return selectedOption.label;
             }

+ 1 - 0
src/main/vue/src/views/PostAudit.vue

@@ -105,6 +105,7 @@ export default {
             search: '',
             url: '/post/all',
             downloading: false,
+            sortStr: 'createdAt,desc',
             typeOptions: [
                 { label: '官方问答', value: 'OFFICIAL' },
                 { label: '热议话题', value: 'TOPIC' },

+ 2 - 0
src/main/vue/src/views/PostList.vue

@@ -29,6 +29,7 @@
             <el-table-column prop="content" label="内容"> </el-table-column>
             <el-table-column prop="pics" label="图片"> </el-table-column>
             <el-table-column prop="type" label="类型" :formatter="typeFormatter"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
             <el-table-column prop="commentNum" label="评论数"> </el-table-column>
             <el-table-column prop="viewNum" label="热度"> </el-table-column>
             <el-table-column prop="likeNum" label="赞数"> </el-table-column>
@@ -82,6 +83,7 @@ export default {
             search: '',
             url: '/post/all',
             downloading: false,
+            sortStr: 'createdAt,desc',
             typeOptions: [
                 { label: '官方问答', value: 'OFFICIAL' },
                 { label: '热议话题', value: 'TOPIC' },

+ 3 - 0
src/main/vue/src/views/ResourceSupplyAndDemandAudit.vue

@@ -27,6 +27,8 @@
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="name" label="名称"> </el-table-column>
             <el-table-column prop="expireTime" label="有效期"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+
             <el-table-column prop="contact" label="联系人"> </el-table-column>
             <el-table-column prop="phone" label="联系方式"> </el-table-column>
             <el-table-column prop="address" label="联系地址"> </el-table-column>
@@ -109,6 +111,7 @@ export default {
         return {
             multipleMode: false,
             search: '',
+            sortStr: 'createdAt,desc',
             url: '/resourceSupplyAndDemand/all',
             downloading: false,
             statusOptions: [

+ 0 - 1
src/main/vue/src/views/ResourceSupplyAndDemandEdit.vue

@@ -53,7 +53,6 @@
             <el-form-item prop="details" label="详细介绍">
                 <el-input v-model="formData.details"></el-input>
             </el-form-item>
-            <el-form-item prop="resSnDPropertyList" label="resSnDPropertyList"> </el-form-item>
             <el-form-item>
                 <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
                 <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>

+ 2 - 0
src/main/vue/src/views/ResourceSupplyAndDemandList.vue

@@ -31,6 +31,7 @@
             <el-table-column prop="id" label="ID" width="100"> </el-table-column>
             <el-table-column prop="name" label="名称"> </el-table-column>
             <el-table-column prop="expireTime" label="有效期"> </el-table-column>
+            <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
             <el-table-column prop="contact" label="联系人"> </el-table-column>
             <el-table-column prop="phone" label="联系方式"> </el-table-column>
             <el-table-column prop="address" label="联系地址"> </el-table-column>
@@ -81,6 +82,7 @@ export default {
         return {
             multipleMode: false,
             search: '',
+            sortStr: 'createdAt,desc',
             query: {
                 type: '' /* ,
                 resSnDPropertyList: 'name:stageType,value:1' */

+ 0 - 199
src/main/vue/src/views/TopicAudit.vue

@@ -1,199 +0,0 @@
-<template>
-    <div class="list-view">
-        <div class="filters-container">
-            <el-input placeholder="输入关键字" v-model="search" clearable class="filter-item"></el-input>
-            <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">搜索 </el-button>
-            <el-button @click="addRow" type="primary" icon="el-icon-plus" class="filter-item">添加 </el-button>
-            <el-button
-                @click="download"
-                type="primary"
-                icon="el-icon-download"
-                :loading="downloading"
-                class="filter-item"
-                >导出EXCEL
-            </el-button>
-        </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="title" label="标题"> </el-table-column>
-            <el-table-column prop="name" label="姓名"> </el-table-column>
-            <el-table-column prop="phone" label="电话"> </el-table-column>
-            <el-table-column prop="email" label="邮箱"> </el-table-column>
-            <el-table-column prop="papersType" label="证件"> </el-table-column>
-            <el-table-column prop="papersCode" label="证件编号"> </el-table-column>
-            <el-table-column prop="publicity" label="公开">
-                <template slot-scope="{ row }">
-                    <el-tag :type="row.publicity ? '' : 'info'">{{ row.publicity }}</el-tag>
-                </template>
-            </el-table-column>
-            <el-table-column prop="img" label="图片附件">
-                <template slot-scope="{ row }">
-                    <el-image
-                        style="width: 30px; height: 30px"
-                        :src="row.img"
-                        fit="cover"
-                        :preview-src-list="[row.img]"
-                    ></el-image>
-                </template>
-            </el-table-column>
-            <el-table-column prop="description" label="正文"> </el-table-column>
-            <el-table-column label="操作" align="center" fixed="right" min-width="150">
-                <template slot-scope="{ row }">
-                    <el-button
-                        type="primary"
-                        v-if="row.state === 0"
-                        @click="pass({ topic: { id: row.id, state: 1 }, state: 1 })"
-                        plain
-                        size="mini"
-                    >
-                        通过
-                    </el-button>
-                    <el-button
-                        type="warning"
-                        v-if="row.state === 0"
-                        @click="deny({ topic: { id: row.id, state: 2 }, refuseDesc: '', state: 2 })"
-                        plain
-                        size="mini"
-                    >
-                        拒绝
-                    </el-button>
-                    <!--        <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: 'TopicAudit',
-    mixins: [pageableTable],
-    data() {
-        return {
-            multipleMode: false,
-            search: '',
-            url: '/topic/all',
-            downloading: false,
-            query: { state: 0, type: 1 }
-        };
-    },
-    computed: {
-        selection() {
-            return this.$refs.table.selection.map(i => i.id);
-        }
-    },
-    methods: {
-        beforeGetData() {
-            if (this.search || this.query) {
-                return { search: this.search, query: this.query };
-            }
-        },
-        toggleMultipleMode(multipleMode) {
-            this.multipleMode = multipleMode;
-            if (!multipleMode) {
-                this.$refs.table.clearSelection();
-            }
-        },
-        addRow() {
-            this.$router.push({
-                path: '/topicEdit',
-                query: {
-                    ...this.$route.query
-                }
-            });
-        },
-        editRow(row) {
-            this.$router.push({
-                path: '/topicEdit',
-                query: {
-                    id: row.id
-                }
-            });
-        },
-        download() {
-            this.downloading = true;
-            this.$axios
-                .get('/topic/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(`/topic/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>

+ 0 - 140
src/main/vue/src/views/TopicEdit.vue

@@ -1,140 +0,0 @@
-<template>
-    <div class="edit-view">
-        <el-form
-            :model="formData"
-            :rules="rules"
-            ref="form"
-            label-width="110px"
-            label-position="right"
-            size="small"
-            style="max-width: 500px;"
-        >
-            <el-form-item prop="title" label="标题">
-                <el-input v-model="formData.title"></el-input>
-            </el-form-item>
-            <el-form-item prop="name" label="姓名">
-                <el-input v-model="formData.name"></el-input>
-            </el-form-item>
-            <el-form-item prop="phone" label="电话">
-                <el-input v-model="formData.phone"></el-input>
-            </el-form-item>
-            <el-form-item prop="email" label="邮箱">
-                <el-input v-model="formData.email"></el-input>
-            </el-form-item>
-            <el-form-item prop="papersType" label="证件类型">
-                <el-select v-model="formData.papersType" clearable filterable placeholder="请选择">
-                    <el-option
-                        v-for="item in [{ value: '0', label: '证件类型' }]"
-                        :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 [
-                            { value: '0', label: '话题' },
-                            { value: '1', label: '提问' }
-                        ]"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value"
-                    >
-                    </el-option>
-                </el-select>
-            </el-form-item>
-
-            <el-form-item prop="papersCode" label="证件编号">
-                <el-input v-model="formData.papersCode"></el-input>
-            </el-form-item>
-            <el-form-item prop="publicity" label="公开">
-                <el-switch v-model="formData.publicity"></el-switch>
-            </el-form-item>
-            <el-form-item prop="img" label="图片附件">
-                <single-upload v-model="formData.img"></single-upload>
-            </el-form-item>
-            <el-form-item prop="description" label="正文">
-                <rich-text v-model="formData.description"></rich-text>
-            </el-form-item>
-            <el-form-item>
-                <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
-                <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
-                <el-button @click="$router.go(-1)">取消</el-button>
-            </el-form-item>
-        </el-form>
-    </div>
-</template>
-<script>
-export default {
-    name: 'TopicEdit',
-    created() {
-        if (this.$route.query.id) {
-            this.$http
-                .get('topic/get/' + this.$route.query.id)
-                .then(res => {
-                    this.formData = res;
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.$message.error(e.error);
-                });
-        }
-    },
-    data() {
-        return {
-            saving: false,
-            formData: {},
-            rules: {},
-            papersTypeOptions: [{ lable: '身份证号', value: 0 }]
-        };
-    },
-    methods: {
-        onSave() {
-            this.$refs.form.validate(valid => {
-                if (valid) {
-                    this.submit();
-                } else {
-                    return false;
-                }
-            });
-        },
-        submit() {
-            let data = { ...this.formData };
-
-            this.saving = true;
-            this.$http
-                .post('/topic/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);
-                });
-        },
-        onDelete() {
-            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
-                .then(() => {
-                    return this.$http.post(`/topic/del/${this.formData.id}`);
-                })
-                .then(() => {
-                    this.$message.success('删除成功');
-                    this.$router.go(-1);
-                })
-                .catch(e => {
-                    if (e !== 'cancel') {
-                        console.log(e);
-                        this.$message.error(e.error);
-                    }
-                });
-        }
-    }
-};
-</script>
-<style lang="less" scoped></style>

+ 0 - 196
src/main/vue/src/views/TopicList.vue

@@ -1,196 +0,0 @@
-<template>
-    <div class="list-view">
-        <div class="filters-container">
-            <el-input placeholder="输入关键字" v-model="search" clearable class="filter-item"></el-input>
-            <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">搜索 </el-button>
-            <el-button @click="addRow" type="primary" icon="el-icon-plus" class="filter-item">添加 </el-button>
-            <el-button
-                @click="download"
-                type="primary"
-                icon="el-icon-download"
-                :loading="downloading"
-                class="filter-item"
-                >导出EXCEL
-            </el-button>
-        </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="title" label="标题"> </el-table-column>
-            <el-table-column prop="name" label="姓名"> </el-table-column>
-            <el-table-column prop="phone" label="电话"> </el-table-column>
-            <el-table-column prop="email" label="邮箱"> </el-table-column>
-            <el-table-column prop="papersType" label="证件"> </el-table-column>
-            <el-table-column prop="papersCode" label="证件编号"> </el-table-column>
-            <el-table-column prop="publicity" label="公开">
-                <template slot-scope="{ row }">
-                    <el-tag :type="row.publicity ? '' : 'info'">{{ row.publicity }}</el-tag>
-                </template>
-            </el-table-column>
-            <el-table-column prop="img" label="图片附件">
-                <template slot-scope="{ row }">
-                    <el-image
-                        style="width: 30px; height: 30px"
-                        :src="row.img"
-                        fit="cover"
-                        :preview-src-list="[row.img]"
-                    ></el-image>
-                </template>
-            </el-table-column>
-            <el-table-column prop="description" label="正文"> </el-table-column>
-            <!--             <el-table-column label="操作" align="center" fixed="right" min-width="150">
-                <template slot-scope="{ row }">
-                    <el-button
-                        type="primary"
-                        v-if="row.state === 0"
-                        @click="pass({ topic: { id: row.id, state: 1 }, state: 1 })"
-                        plain
-                        size="mini"
-                    >
-                        通过
-                    </el-button>
-                    <el-button
-                        type="warning"
-                        v-if="row.state === 0"
-                        @click="deny({ topic: { id: row.id, state: 2 }, refuseDesc: '', state: 2 })"
-                        plain
-                        size="mini"
-                    >
-                        拒绝
-                    </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: 'TopicList',
-    mixins: [pageableTable],
-    data() {
-        return {
-            multipleMode: false,
-            search: '',
-            url: '/topic/all',
-            downloading: false,
-            query: { state: 0, type: 1 }
-        };
-    },
-    computed: {
-        selection() {
-            return this.$refs.table.selection.map(i => i.id);
-        }
-    },
-    methods: {
-        beforeGetData() {
-            if (this.search || this.query) {
-                return { search: this.search, query: this.query };
-            }
-        },
-        toggleMultipleMode(multipleMode) {
-            this.multipleMode = multipleMode;
-            if (!multipleMode) {
-                this.$refs.table.clearSelection();
-            }
-        },
-        addRow() {
-            this.$router.push({
-                path: '/topicEdit',
-                query: {
-                    ...this.$route.query
-                }
-            });
-        },
-        editRow(row) {
-            this.$router.push({
-                path: '/topicEdit',
-                query: {
-                    id: row.id
-                }
-            });
-        },
-        download() {
-            this.downloading = true;
-            this.$axios
-                .get('/topic/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(`/topic/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>

+ 3 - 1
src/main/vue/src/views/UserList.vue

@@ -44,6 +44,7 @@
                         :preview-src-list="[row.avatar]"
                     ></el-image>
                 </template>
+                <el-table-column prop="createdAt" label="创建日期" width="150"> </el-table-column>
             </el-table-column>
             <el-table-column label="操作" align="center" fixed="right">
                 <template slot-scope="{ row }">
@@ -78,7 +79,8 @@ export default {
             multipleMode: false,
             search: '',
             url: '/user/all',
-            downloading: false
+            downloading: false,
+            sortStr: 'createdAt,desc'
         };
     },
     computed: {

+ 218 - 89
src/main/vue/src/views/agency.vue

@@ -19,6 +19,96 @@
                 <span>{{ todoName }}</span>
             </div>
             <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="400"
+                    v-if="menuList[0].todoName === show"
+                    key="9"
+                >
+                    <el-table-column prop="id" label="ID" width="100"> </el-table-column>
+                    <el-table-column prop="orgName" label="单位名称" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="orgType" label="单位性质" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="publicCompany" label="上市公司" width="70">
+                        <template v-slot="{ row }">{{ row.publicCompany ? '是' : '否' }}</template>
+                    </el-table-column>
+                    <el-table-column prop="parentOrg" label="隶属单位" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="address" label="所在地" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="addressDetail" label="详细地址" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="createdAt" label="提交日期" width="150"> </el-table-column>
+                    <el-table-column prop="intro" label="企业介绍" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="license" label="营业执照" width="80" align="center">
+                        <template v-slot="{ row }">
+                            <el-image
+                                style="width: 50px; height: 30px"
+                                fit="contain"
+                                :src="row.license"
+                                :preview-src-list="[row.license]"
+                            >
+                            </el-image>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="contactName" label="联系人" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="contactIdNo" label="身份证号" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="contactPhone" label="手机号" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="contactEmail" label="电子邮箱" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="attach" label="信息报送承诺书" min-width="110" show-overflow-tooltip>
+                        <template v-slot="{ row }">
+                            <el-link type="primary" v-if="row.attach" :href="row.attach" target="_blank">下载</el-link>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="nickname" label="用户名" min-width="100" show-overflow-tooltip>
+                    </el-table-column>
+                    <el-table-column prop="status" label="状态" :formatter="statusFormatter" width="80">
+                    </el-table-column>
+                    <el-table-column label="操作" align="center" fixed="right" min-width="150">
+                        <template slot-scope="{ row }">
+                            <el-button
+                                type="primary"
+                                @click="
+                                    pass(menuList[0].todoName, {
+                                        title: row.orgName,
+                                        orgInfo: { id: row.id }
+                                    })
+                                "
+                                plain
+                                size="mini"
+                            >
+                                通过
+                            </el-button>
+                            <el-button
+                                type="warning"
+                                @click="
+                                    deny(menuList[0].todoName, {
+                                        title: row.orgName,
+                                        orgInfo: { id: row.id },
+                                        refuseDesc: ''
+                                    })
+                                "
+                                plain
+                                size="mini"
+                            >
+                                拒绝
+                            </el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
                 <!-- 公告审核 -->
                 <el-table
                     :data="tableData"
@@ -29,7 +119,7 @@
                     row-class-name="table-row"
                     cell-class-name="table-cell"
                     :height="400"
-                    v-if="menuList[5].todoName === show"
+                    v-if="menuList[1].todoName === show"
                     key="6"
                 >
                     <el-table-column prop="id" label="ID" width="100"> </el-table-column>
@@ -60,18 +150,17 @@
                         </template>
                     </el-table-column>
                     <el-table-column prop="type.name" label="类型"> </el-table-column>
-                    <el-table-column prop="state" label="状态" :formatter="stateFormatter"> </el-table-column>
+                    <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+                    <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
                     <el-table-column label="操作" align="center">
                         <template slot-scope="{ row }">
                             <el-button
                                 type="primary"
-                                v-if="row.state === 0"
                                 @click="
-                                    pass(menuList[5].todoName, {
+                                    pass(menuList[1].todoName, {
                                         title: row.title,
-                                        dataType: { id: 10 },
-                                        article: { id: row.id, state: 1 },
-                                        state: 1
+
+                                        article: { id: row.id }
                                     })
                                 "
                                 plain
@@ -81,14 +170,11 @@
                             </el-button>
                             <el-button
                                 type="warning"
-                                v-if="row.state === 0"
                                 @click="
-                                    deny(menuList[5].todoName, {
+                                    deny(menuList[1].todoName, {
                                         title: row.title,
-                                        dataType: { id: 10 },
-                                        article: { id: row.id, state: 2 },
-                                        refuseDesc: '',
-                                        state: 2
+                                        article: { id: row.id },
+                                        refuseDesc: ''
                                     })
                                 "
                                 plain
@@ -109,7 +195,7 @@
                     row-class-name="table-row"
                     cell-class-name="table-cell"
                     :height="400"
-                    v-else-if="menuList[6].todoName === show"
+                    v-else-if="menuList[2].todoName === show"
                     key="7"
                 >
                     <el-table-column prop="id" label="ID" width="100"> </el-table-column>
@@ -135,18 +221,16 @@
                     </el-table-column>
                     <el-table-column prop="publish" label="发布" width="60" align="center"> </el-table-column>
                     <el-table-column prop="type.name" label="类型"> </el-table-column>
-                    <el-table-column prop="state" label="状态" :formatter="stateFormatter"> </el-table-column>
+                    <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+                    <el-table-column prop="status" label="状态" :formatter="staFormatter"> </el-table-column>
                     <el-table-column label="操作" align="center" fixed="right">
                         <template slot-scope="{ row }">
                             <el-button
                                 type="primary"
-                                v-if="row.state === 0"
                                 @click="
-                                    pass(menuList[6].todoName, {
+                                    pass(menuList[2].todoName, {
                                         title: row.title,
-                                        dataType: { id: 12 },
-                                        article: { id: row.id, state: 1 },
-                                        state: 1
+                                        article: { id: row.id }
                                     })
                                 "
                                 plain
@@ -156,14 +240,11 @@
                             </el-button>
                             <el-button
                                 type="warning"
-                                v-if="row.state === 0"
                                 @click="
-                                    deny(menuList[6].todoName, {
+                                    deny(menuList[2].todoName, {
                                         title: row.title,
-                                        dataType: { id: 12 },
-                                        article: { id: row.id, state: 2 },
-                                        refuseDesc: '',
-                                        state: 2
+                                        article: { id: row.id },
+                                        refuseDesc: ''
                                     })
                                 "
                                 plain
@@ -175,8 +256,8 @@
                     </el-table-column>
                 </el-table>
 
-                <!-- 企业认证 -->
                 <el-table
+                    v-else-if="menuList[3].todoName === show"
                     :data="tableData"
                     row-key="id"
                     ref="table"
@@ -184,65 +265,101 @@
                     header-cell-class-name="table-header-cell"
                     row-class-name="table-row"
                     cell-class-name="table-cell"
-                    :height="400"
-                    v-else-if="menuList[8].todoName === show"
-                    key="9"
+                    :key="32"
                 >
                     <el-table-column prop="id" label="ID" width="100"> </el-table-column>
-                    <el-table-column prop="orgName" label="单位名称" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="orgType" label="单位性质" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="publicCompany" label="上市公司" width="70">
-                        <template v-slot="{ row }">{{ row.publicCompany ? '是' : '否' }}</template>
-                    </el-table-column>
-                    <el-table-column prop="parentOrg" label="隶属单位" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="address" label="所在地" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="addressDetail" label="详细地址" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="intro" label="企业介绍" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="license" label="营业执照" width="80" align="center">
-                        <template v-slot="{ row }">
+                    <el-table-column prop="name" label="名称"> </el-table-column>
+                    <el-table-column prop="expireTime" label="有效期"> </el-table-column>
+                    <el-table-column prop="contact" label="联系人"> </el-table-column>
+                    <el-table-column prop="phone" label="联系方式"> </el-table-column>
+                    <el-table-column prop="address" label="联系地址"> </el-table-column>
+                    <el-table-column prop="status" label="审核状态" :formatter="statusFormatter"> </el-table-column>
+                    <el-table-column prop="images" label="图片">
+                        <template slot-scope="{ row }">
                             <el-image
-                                style="width: 50px; height: 30px"
-                                fit="contain"
-                                :src="row.license"
-                                :preview-src-list="[row.license]"
-                            >
-                            </el-image>
+                                style="width: 30px; height: 30px"
+                                :src="row.images[0]"
+                                fit="cover"
+                                :preview-src-list="row.images"
+                            ></el-image>
                         </template>
                     </el-table-column>
-                    <el-table-column prop="contactName" label="联系人" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="contactIdNo" label="身份证号" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="contactPhone" label="手机号" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="contactEmail" label="电子邮箱" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="attach" label="信息报送承诺书" min-width="110" show-overflow-tooltip>
-                        <template v-slot="{ row }">
-                            <el-link type="primary" v-if="row.attach" :href="row.attach" target="_blank">下载</el-link>
+                    <el-table-column prop="type" label="资源供需类型" :formatter="typeFormatter"> </el-table-column>
+                    <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+                    <el-table-column prop="description" label="功能简介"> </el-table-column>
+                    <el-table-column prop="details" label="详细介绍"> </el-table-column>
+
+                    <el-table-column label="操作" align="center" fixed="right" min-width="150">
+                        <template slot-scope="{ row }">
+                            <el-button
+                                type="primary"
+                                v-if="row.status === 'PENDING'"
+                                @click="
+                                    pass(menuList[3].todoName, {
+                                        title: row.name,
+                                        resourceSupplyAndDemand: { id: row.id, status: 'PASS' }
+                                    })
+                                "
+                                plain
+                                size="mini"
+                            >
+                                通过
+                            </el-button>
+                            <el-button
+                                type="warning"
+                                v-if="row.status === 'PENDING'"
+                                @click="
+                                    deny(menuList[3].todoName, {
+                                        title: row.name,
+                                        resourceSupplyAndDemand: { id: row.id },
+                                        refuseDesc: ''
+                                    })
+                                "
+                                plain
+                                size="mini"
+                            >
+                                拒绝
+                            </el-button>
                         </template>
                     </el-table-column>
-                    <el-table-column prop="nickname" label="用户名" min-width="100" show-overflow-tooltip>
-                    </el-table-column>
-                    <el-table-column prop="state" label="状态" :formatter="stateFormatter" width="80">
+                </el-table>
+
+                <el-table
+                    v-else-if="menuList[4].todoName === show"
+                    :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"
+                    :key="333"
+                >
+                    <el-table-column prop="id" label="ID" width="100"> </el-table-column>
+                    <el-table-column prop="title" label="标题"> </el-table-column>
+                    <el-table-column prop="content" label="内容"> </el-table-column>
+                    <el-table-column prop="pics" label="图片"> </el-table-column>
+                    <el-table-column prop="type" label="类型" :formatter="typeFormatter"> </el-table-column>
+                    <el-table-column prop="createdAt" label="发布日期" width="150"> </el-table-column>
+                    <el-table-column prop="commentNum" label="评论数"> </el-table-column>
+                    <el-table-column prop="viewNum" label="热度"> </el-table-column>
+                    <el-table-column prop="likeNum" label="赞数"> </el-table-column>
+                    <el-table-column prop="dislikeNum" label="踩数"> </el-table-column>
+                    <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
+                    <el-table-column prop="publicPost" label="公开">
+                        <template slot-scope="{ row }">
+                            <el-tag :type="row.publicPost ? '' : 'info'">{{ row.publicPost }}</el-tag>
+                        </template>
                     </el-table-column>
                     <el-table-column label="操作" align="center" fixed="right" min-width="150">
                         <template slot-scope="{ row }">
                             <el-button
                                 type="primary"
-                                v-if="row.state === 0"
+                                v-if="row.status === 'PENDING'"
                                 @click="
-                                    pass(menuList[8].todoName, {
-                                        title: row.orgName,
-                                        dataType: { id: 11 },
-                                        orgInfo: { id: row.id, state: 1 },
-                                        state: 1
+                                    pass(menuList[4].todoName, {
+                                        title: row.name,
+                                        resourceSupplyAndDemand: { id: row.id, status: 'PASS' }
                                     })
                                 "
                                 plain
@@ -252,14 +369,12 @@
                             </el-button>
                             <el-button
                                 type="warning"
-                                v-if="row.state === 0"
+                                v-if="row.status === 'PENDING'"
                                 @click="
-                                    deny(menuList[8].todoName, {
-                                        title: row.orgName,
-                                        dataType: { id: 11 },
-                                        orgInfo: { id: row.id, state: 2 },
-                                        refuseDesc: '',
-                                        state: 2
+                                    deny(menuList[4].todoName, {
+                                        title: row.name,
+                                        resourceSupplyAndDemand: { id: row.id },
+                                        refuseDesc: ''
                                     })
                                 "
                                 plain
@@ -296,18 +411,26 @@ export default {
                 { label: '审核通过', value: 'PASS' },
                 { label: '审核失败', value: 'DENY' }
             ],
-            show: '技术需求信息待办',
+            show: '资源供需审核',
             search: '',
-            query: { state: 0 },
+            query: { status: 'PENDING' },
             todoName: '',
-            url: '/artNeed/all',
+            url: '/resourceSupplyAndDemand/all',
             toMenuList: [],
             menuList: [
+                { todoName: '企业信息审核', url: '/orgInfo/all' },
                 { todoName: '公告审核', url: '/article/all' },
                 { todoName: '政策审核', url: '/article/all' },
-                { todoName: '民政互动审核', url: '/question/all' },
-                { todoName: '资源供需审核', url: '/question/all' },
-                { todoName: '企业信息审核', url: '/orgInfo/all' }
+                { todoName: '资源供需审核', url: '/resourceSupplyAndDemand/all' },
+                { todoName: '民政互动审核', url: '/post/all' }
+            ],
+            typeOptions: [
+                { label: '技术需求', value: 'TECH_DEMAND' },
+                { label: '产品需求', value: 'PRODUCT_DEMAND' },
+                { label: '融资需求', value: 'FINANCING_DEMAND' },
+                { label: '技术发布', value: 'TECH_SUPPLY' },
+                { label: '产品发布', value: 'PRODUCT_SUPPLY' },
+                { label: '共享资源', value: 'RES_SUPPLY' }
             ]
         };
     },
@@ -315,6 +438,13 @@ export default {
         this.toList();
     },
     methods: {
+        typeFormatter(row, column, cellValue, index) {
+            let selectedOption = this.typeOptions.find(i => i.value === cellValue);
+            if (selectedOption) {
+                return selectedOption.label;
+            }
+            return '';
+        },
         papersTypeFormatter(row, column, cellValue, index) {
             let selectedOption = this.papersTypeOptions.find(i => i.value === cellValue);
             if (selectedOption) {
@@ -322,8 +452,8 @@ export default {
             }
             return '';
         },
-        stateFormatter(row, column, cellValue, index) {
-            let selectedOption = this.stateOptions.find(i => i.value === cellValue);
+        statusFormatter(row, column, cellValue, index) {
+            let selectedOption = this.statusOptions.find(i => i.value === cellValue);
             if (selectedOption) {
                 return selectedOption.label;
             }
@@ -406,7 +536,6 @@ export default {
         },
         deny(todoName, data) {
             this.show = todoName;
-            /*  { artNeed: { id: row.id, state: 2 }, refuseDesc: value, state: 2 } */
             this.$prompt('请输入拒绝原因', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',