lrf402788946 3 anni fa
parent
commit
d091dbc884

+ 5 - 0
src/router/index.js

@@ -72,6 +72,11 @@ const web = [
         meta: { title: '消息管理' },
         component: () => import('../views/adminCenter/message/index.vue'),
       },
+      {
+        path: '/adminCenter/patent/index',
+        meta: { title: '专利管理' },
+        component: () => import('../views/adminCenter/patent/index.vue'),
+      },
     ],
   },
   {

+ 1 - 1
src/views/adminCenter/message/index.vue

@@ -20,7 +20,7 @@ export default {
         { label: '发送时间', model: 'create_time', width: '150px' },
         { label: '是否已读', model: 'is_read', format: (i) => (i ? '已读' : '未读'), width: '150px' },
       ],
-      opera: [{ label: '取消提醒', method: 'off', display: (i) => i.status === '0' }],
+      opera: [{ label: '取消提醒', method: 'off', display: (i) => !i.is_read }],
     };
   },
   created() {

+ 69 - 7
src/views/adminCenter/patent/index.vue

@@ -1,21 +1,47 @@
 <template>
   <div id="index">
-    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @check="toCheck"> </data-table>
+    <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @view="toView">
+      <template #btn>
+        <el-popover placement="bottom" width="370" trigger="click" style="margin-right: 10px">
+          <template #reference>
+            <el-button type="primary" size="mini">导入</el-button>
+          </template>
+          <el-upload
+            class="upload-demo"
+            drag
+            action="/files/test/upload"
+            multiple
+            :on-success="uSuccess"
+            :on-error="uError"
+            :before-upload="uBefore"
+            :show-file-list="false"
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+          </el-upload>
+        </el-popover>
+      </template>
+    </data-table>
+    <el-dialog title="错误记录" center :visible.sync="dialog" :destroy-on-close="true">
+      <el-table border stripe :data="errorList">
+        <el-table-column align="center" label="错误记录">
+          <template v-slot="{ row }">{{ row }}</template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: disclosure } = createNamespacedHelpers('disclosure');
 export default {
   name: 'index',
   props: {},
   components: {},
   data: function () {
     return {
-      list: [
-        { name: '专利1', apply_name: '申请人', type: '申请类型', contact: '联系人', phone: '11111111111', email: 'test@qq.com' },
-        { name: '专利2', apply_name: '申请人2', type: '申请类型2', contact: '联系人2', phone: '11111111112', email: 'test2@qq.com' },
-      ],
+      list: [],
       total: 0,
       fields: [
         { label: '专利名称', model: 'name', filter: true },
@@ -25,11 +51,47 @@ export default {
         { label: '联系人电话', model: 'phone' },
         { label: '联系人邮箱', model: 'email' },
       ],
-      opera: [{ label: '查看', method: 'check' }],
+      opera: [{ label: '查看', method: 'view' }],
+      dialog: false,
+      errorList: [],
     };
   },
   created() {},
-  methods: {},
+  methods: {
+    ...disclosure(['import']),
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      console.log('in function:');
+    },
+    toView({ data }) {
+      // TODO查看
+    },
+    // 导入
+    async toImport(uri) {
+      const res = await this.import({ uri });
+      const { data } = res;
+      if (data) {
+        this.$message.error('导入失败');
+        this.$set(this, 'errorList', data);
+        this.dialog = true;
+      } else {
+        this.$message.success('导入成功');
+      }
+    },
+    // 上传成功
+    uSuccess(response, file, fileList) {
+      const { uri } = response;
+      this.$checkRes(response, '上传成功!正在导入,请稍后...');
+      this.toImport(uri);
+    },
+    // 上传失败
+    uError(err, file, fileList) {
+      this.$message.error('上传失败');
+    },
+    // 正在上传
+    uBefore() {
+      this.$message('正在上传');
+    },
+  },
   computed: {
     ...mapState(['user']),
     pageTitle() {