فهرست منبع

专利挖掘第一次提交

zhuhao 2 سال پیش
والد
کامیت
7fd3671fdb

+ 81 - 81
package-lock.json

@@ -1775,87 +1775,6 @@
         "webpack-chain": "^6.4.0",
         "webpack-dev-server": "^3.11.0",
         "webpack-merge": "^4.2.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "vue-loader-v16": {
-          "version": "npm:vue-loader@16.8.3",
-          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
-          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "^4.1.0",
-            "hash-sum": "^2.0.0",
-            "loader-utils": "^2.0.0"
-          }
-        }
       }
     },
     "@vue/cli-shared-utils": {
@@ -12464,6 +12383,87 @@
         }
       }
     },
+    "vue-loader-v16": {
+      "version": "npm:vue-loader@16.8.3",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
+      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chalk": "^4.1.0",
+        "hash-sum": "^2.0.0",
+        "loader-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
     "vue-particles": {
       "version": "1.0.9",
       "resolved": "https://registry.npmmirror.com/vue-particles/-/vue-particles-1.0.9.tgz",

+ 7 - 4
src/utils/model/myView/index.vue

@@ -1,6 +1,6 @@
 <template>
   <!-- 双视图 -->
-  <div class="myView" v-listenDom="getShow" :style="{ 'flex-direction': direction }">
+  <div class="myView" v-listenDom="getShow" :style="{ 'flex-direction': direction }" ref="myView">
     <slot name="left" class="myView_Left"></slot>
     <div :class="className" data-type="mouse" @mousedown="mousedown" v-show="show"></div>
     <slot name="right" class="myView_Right"></slot>
@@ -169,9 +169,11 @@ export default {
           now.style.left = moveLen;
           // 左侧(上一个)的兄弟元素
           prev.style.width = moveLen + 'px';
+          // prev.style.width = moveLen / box.clientWidth * 100 + '%';
           now.style.width = '10px'
           if (next) {
-            next.style.width = (box.clientWidth - moveLen - 10) + 'px';
+            next.style.width = box.clientWidth - moveLen - 10 + 'px';
+            // next.style.width = (box.clientWidth - moveLen - 10)/ box.clientWidth * 100 + '%';
           }
         } else {
           var endY = e.clientY;
@@ -211,9 +213,10 @@ export default {
   display: flex;
 
   .myView_Middle {
-    width: 20px;
+    min-width: 10px;
+    width: 10px;
     height: 100%;
-    background: #ABABAB;
+    background: #dbdbdb;
     cursor: col-resize;
   }
 

+ 140 - 0
src/views/patentMining/components/basicMessage.vue

@@ -0,0 +1,140 @@
+<template>
+  <!-- 基本信息及流程 -->
+  <div class="basicMessage">
+    <div style="margin-bottom: 40px;">
+      <span>项目基本信息</span>
+      <el-divider></el-divider>
+      <el-descriptions class="margin-top" title="" :column="column" size="" border>
+        <el-descriptions-item>
+          <template slot="label"> 
+            <i class="el-icon-user"></i> 项目名称 
+          </template> 
+          {{ row.name }}
+        </el-descriptions-item>
+        <el-descriptions-item> 
+          <template slot="label"> 
+            <i class="el-icon-mobile-phone"></i> 项目产出
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-location-outline"></i> 技术方向
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-tickets"></i> 产品阶段
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 是否检索
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 负责人
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 相关竞争对手
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 技术关键词
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 审核状态
+          </template>
+          <el-tag size="small">{{ row.status }}</el-tag>
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 审核进度
+          </template>
+          <el-tag size="small">{{ row.status }}</el-tag>
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 创建人
+          </template>
+          {{ row.createPerson }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 参与人
+          </template>
+         {{ row.createPerson }}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-office-building"></i> 附件
+          </template>
+          {{ row.type }}
+        </el-descriptions-item>
+      </el-descriptions>
+    </div>
+    <div style="width: 100%;">
+      <!-- 项目流程 -->
+      <projectPath></projectPath>
+    </div>
+  </div>
+</template>
+
+<script>
+import projectPath from './projectPath.vue'
+export default {
+  components: {
+    projectPath,
+  },
+  props:['row'],
+  data() {
+    return {
+      column:4,
+      queryParams:{}
+    }
+  },
+  mounted() {
+    window.addEventListener('resize', (e) => {
+      let width = window.innerWidth
+      if (width > 2200) {  
+        this.column = 6;  
+      } else if (width < 1000) {  
+        this.column = 3;  
+      } else if (width < 1400) {  
+        this.column = 4;  
+      } else if (width < 1800) {  
+        this.column = 5;  
+      }  
+    })
+  },
+  methods: {
+    
+  },
+}
+</script>
+
+<style lang="scss">
+.basicMessage {
+  .el-divider--horizontal {
+    margin: 10px 0;
+  }
+}
+</style>
+<style lang="scss" scoped>
+.basicMessage{
+  width: 100%;
+  height: 100%;
+}
+</style>

+ 58 - 0
src/views/patentMining/components/details/index.vue

@@ -0,0 +1,58 @@
+<template>
+  <!-- 详情 -->
+  <div class="details">
+    <el-tabs v-model="activeName" type="card" @tab-click="handleClick" style="height: 100%;">
+      <el-tab-pane label="基本信息" name="basicMessage">
+        <BasicMessage :row="row"></BasicMessage>
+      </el-tab-pane>
+      <el-tab-pane label="挖掘任务" name="excavateTask" style="height: 100%;">
+        <ExcavateTaskIndex style="height: 100%;"></ExcavateTaskIndex>
+      </el-tab-pane>
+      <el-tab-pane label="文件列表" name="fileMessage" style="height: 100%;">
+        <FileMessage style="height: 100%;"></FileMessage>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<script>
+import BasicMessage from '../basicMessage.vue'
+import ExcavateTaskIndex from '../excavateTask/index.vue'
+import FileMessage from '../fileMessage.vue'
+export default {
+  components: {
+    BasicMessage,
+    ExcavateTaskIndex,
+    FileMessage,
+  },
+  data() {
+    return {
+      activeName: 'basicMessage'
+    };
+  },
+  computed: {
+    row() {
+      return this.$route.query
+    },
+  },
+  mounted() {
+
+  },
+  methods: {
+    handleClick(tab, event) {
+      console.log(tab, event);
+    }
+  }
+};
+</script>
+
+<style lang="scss">
+.details {
+  width: calc(100% - 40px);
+  height: calc(100% - 40px) !important;
+  padding: 20px;
+  .el-tabs__content{
+    height: calc(100% - 40px);
+  }
+}
+</style>

+ 158 - 71
src/views/patentMining/components/dialog/addAndEditProject.vue

@@ -1,54 +1,127 @@
 <template>
   <div>
-    <el-dialog
-        :title="title"
-        :visible.sync="dialogVisible"
-        width="800"
-        :before-close="handleClose">
-        <el-form :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-ruleForm">
-            <el-row>
-                <el-col :span="12">
-                    <el-form-item label="项目名称:">
-                        <el-input v-model="form.name" placeholder="请输入项目名称"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="技术方向:">
-                        <el-input v-model="form.type" placeholder="请输入技术方向"></el-input>
-                     </el-form-item>
-                </el-col>
-            </el-row>
-            <el-row>
-                <el-col :span="12">
-                    <el-form-item label="产品阶段:">
-                        <el-input v-model="form.name" placeholder="请输入产品阶段"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="产出:">
-                        <el-input v-model="form.type" placeholder="请输入产出"></el-input>
-                     </el-form-item>
-                </el-col>
-            </el-row>
-            <el-row>
-                <el-col :span="12">
-                    <el-form-item label="相关竞争对手:">
-                        <el-input v-model="form.name" placeholder="请输入相关竞争对手"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="技术关键词:">
-                        <el-input v-model="form.type" placeholder="请输入技术关键词"></el-input>
-                     </el-form-item>
-                </el-col>
-            </el-row>
-        </el-form>
-        <span slot="footer" class="dialog-footer">
-            <el-button @click="handleClose">取 消</el-button>
-            <el-button type="primary" @click="submit">确 定</el-button>
-        </span>
+    <el-dialog :title="title" :visible.sync="dialogVisible" width="800" :before-close="handleClose">
+      <el-form :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-ruleForm">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="项目名称:" prop="name">
+              <el-input v-model="form.name" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="技术方向:">
+              <el-input v-model="form.type" placeholder="请输入技术方向"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="产品阶段:">
+              <el-input v-model="form.name" placeholder="请输入产品阶段"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="产出:">
+              <el-input v-model="form.type" placeholder="请输入产出"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="相关竞争对手:">
+              <el-input v-model="form.name" placeholder="请输入相关竞争对手"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="技术关键词:">
+              <el-input v-model="form.type" placeholder="请输入技术关键词"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="参与人:">
+              <el-select v-model="form.value" placeholder="请选择负责人" style="width: 100%;">
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="负责人:">
+              <el-select v-model="form.value" placeholder="请选择负责人" style="width: 100%;">
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="是否检索:">
+              <el-switch v-model="form.delivery" active-color="#13ce66" inactive-color="#ff4949">
+              </el-switch>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="是否审核:">
+              <el-switch v-model="form.delivery2" active-color="#13ce66" inactive-color="#ff4949">
+              </el-switch>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <template v-if="form.delivery2">
+          <el-row >
+            <el-col :span="12">
+              <el-form-item label="审核人:">
+                <el-select v-model="form.value" placeholder="请选择负责人" style="width: 100%;">
+                  <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="截止时间:">
+                <el-date-picker style="width: 100%" v-model="form.endTime" type="datetime"
+                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择截止日期时间">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="24">
+              <el-form-item label="审核备注:">
+                <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="form.remark"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </template>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="附件:">
+              <el-upload ref="upload" class="upload-file" drag action="#" :auto-upload="false" :show-file-list="true"
+                :on-change="onChange" :on-remove="handleRemove" :on-preview="handlePreview">
+                <i :class="fileList.length != 0 ? 'el-icon-upload' : 'el-icon-refresh'"></i>
+                <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+                <div class="el-upload__tip" slot="tip"></div>
+              </el-upload>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="项目备注:">
+              <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="form.remark"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose">取 消</el-button>
+        <el-button type="primary" @click="submit">确 定</el-button>
+      </span>
     </el-dialog>
-   
+
   </div>
 </template>
 
@@ -58,40 +131,54 @@ export default {
   props: {},
   data() {
     return {
-        dialogVisible:false,
-        title:'',
-        form:{},
-        rules:{}
-
+      dialogVisible: false,
+      title: '',
+      form: {},
+      rules: {
+        name: [{ required: true, message: '请输入项目名称', trigger: 'blur' },],
+      },
+      options: [],//负责人数组
+      value: '',//负责人
+      fileList: []//文件数组
     };
   },
   watch: {},
   computed: {},
-  created() {},
-  mounted() {},
+  created() { },
+  mounted() { },
   methods: {
+    onChange(file, fileList) { },
+    handlePreview(file, fileList) { },
+    handleRemove(file, fileList) { },
     //打开弹窗
-    open(form){
-        this.form = JSON.parse(JSON.stringify(form))
-        if(this.form.id){
-            this.title = '编辑专利挖掘项目'
-        }else{
-            this.title = '新增专利挖掘项目'
-        }
-        this.dialogVisible = true
+    open(form) {
+      this.form = JSON.parse(JSON.stringify(form))
+      if (this.form.id) {
+        this.title = '编辑专利挖掘项目'
+      } else {
+        this.title = '新增专利挖掘项目'
+      }
+      this.dialogVisible = true
     },
     //关闭弹窗
-    handleClose(){
-        this.form = {}
-        this.dialogVisible = false
+    handleClose() {
+      this.$refs.form.resetFields()
+      this.form = {}
+      this.dialogVisible = false
     },
     //提交数据
-    submit(){
-        this.dialogVisible = false
+    submit() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.handleClose()
+        } else {
+          this.$message.error('信息未输入完整')
+        }
+      });
+      
     }
   },
-    
+
 };
 </script>
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>

+ 69 - 0
src/views/patentMining/components/dialog/auditRecords.vue

@@ -0,0 +1,69 @@
+<template>
+  <!-- 任务审核记录 -->
+  <div class="auditRecords">
+    <el-dialog title="查看审核记录" :visible.sync="dialogVisible" width="1000px" :before-close="handleClose" :close-on-click-modal="false">
+      <el-table :data="tableData" style="width: 100%;" border header-row-class-name="custom-table-header">
+        <el-table-column label="#" align="center" width="60px">
+          <template slot-scope="scope">
+            <div>
+              {{ (queryParams.current - 1) * queryParams.size + scope.$index + 1 }}
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="任务名称" align="center"></el-table-column>
+        <el-table-column prop="type" label="任务类型" align="center"></el-table-column>
+        <el-table-column prop="createPerson" label="发起人" align="center"></el-table-column>
+        <el-table-column prop="handlePerson" label="处理人" align="center"></el-table-column>
+        <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
+        <el-table-column prop="endTime" label="截止时间" align="center"></el-table-column>
+        <el-table-column prop="status" label="状态" align="center"></el-table-column>
+      </el-table>
+      <div style="text-align: center;padding-top: 20px;">
+        <el-pagination background layout="total, prev, pager, next, jumper" :current-page.sync="queryParams.current"
+          :page-size.sync="queryParams.size" @current-change="handleCurrentChange" :total="queryParams.total">
+        </el-pagination>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="handleClose">关 闭</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+      dialogVisible: false,
+      queryParams: {
+        current: 1,
+        size: 10,
+        total: 0,
+      },
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    getList() { },
+    // 打开弹窗
+    open() {
+      // this.getList()
+      this.dialogVisible = true
+    },
+    handleClose() {
+      this.dialogVisible = false
+    },
+    // 分页查询
+    handleCurrentChange(val) {
+      this.queryParams.current=val
+      this.getList()
+    },
+    
+  },
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 100 - 0
src/views/patentMining/components/dialog/createTask.vue

@@ -0,0 +1,100 @@
+<template>
+  <!-- 创建挖掘任务弹窗 -->
+  <div class="createTask">
+    <el-dialog :title="title" :visible.sync="dialogVisible" width="500px" :before-close="handleClose" :close-on-click-modal="false">
+      <el-form :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-ruleForm">
+        <el-form-item label="任务名称:" prop="taskName">
+          <el-input v-model="form.taskName" placeholder="请输入任务名称"></el-input>
+        </el-form-item>
+        <el-form-item label="任务流程:" prop="taskPath">
+          <el-select v-model="form.taskPath" placeholder="请选择流程" style="width: 100%;">
+            <el-option v-for="item in pathOptions" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="处理人:" prop="taskPerson">
+          <el-select v-model="form.taskPerson" placeholder="请选择处理人" style="width: 100%;">
+            <el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="截止时间:" prop="endTime">
+          <el-date-picker style="width: 100%" v-model="form.endTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
+            placeholder="请选择截止日期时间">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose">取 消</el-button>
+        <el-button type="primary" @click="submit">确 定</el-button>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+      dialogVisible: false,
+      title: '',
+      form: {},
+      rules: {},
+      personOptions: [],//处理人
+      pathOptions: [
+        {label:'创新点流程',value:'1'},
+        {label:'查新检索',value:'2'},
+        {label:'保护主题规划',value:'3'},
+        {label:'独权撰写',value:'4'},
+        {label:'从权撰写',value:'5'},
+        {label:'申请文件定稿',value:'6'},
+        { label: '说明书规划撰写', value: '7' },
+      ],//流程
+      rules: {
+        taskName: [{ required: true, message: '请输入任务名称', trigger: 'blur' },],
+        taskPath: [{ required: true, message: '请选择流程', trigger: 'change' },],
+        taskPerson: [{ required: true, message: '请选择处理人', trigger: 'change' },],
+        endTime: [{ required: true, message: '请选择截止时间', trigger: 'change' },],
+      }
+    };
+  },
+  watch: {},
+  computed: {},
+  created() { },
+  mounted() { },
+  methods: {
+    //打开弹窗
+    open(form) {
+      this.form = JSON.parse(JSON.stringify(form))
+      // if(this.form.id){
+      //     this.title = '编辑任务'
+      // }else{
+      //     this.title = '创建任务'
+      // }
+      this.title = '创建任务'
+      this.dialogVisible = true
+    },
+    //关闭弹窗
+    handleClose() {
+      this.$refs.form.resetFields()
+      this.form = {}
+      this.dialogVisible = false
+    },
+    //提交数据
+    submit() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.handleClose()
+        } else {
+          this.$message.error('信息未输入完整')
+        }
+      });
+    }
+  },
+
+};
+</script>
+<style lang="scss" scoped></style>

+ 169 - 0
src/views/patentMining/components/dialog/handleTask1.vue

@@ -0,0 +1,169 @@
+<template>
+  <!-- 处理挖掘任务1(审核任务) -->
+  <div class="handleTask1">
+    <el-dialog :title="title" :visible.sync="dialogVisible" width="800px" :before-close="handleClose" :close-on-click-modal="false">
+      <el-form :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-ruleForm" :disabled="!form.isLook">
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="项目名称:" prop="name">
+              <el-input v-model="form.name" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="技术方向:">
+              <el-input v-model="form.type" placeholder="请输入技术方向"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="产品阶段:">
+              <el-input v-model="form.name" placeholder="请输入产品阶段"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="产品产出:">
+              <el-input v-model="form.type" placeholder="请输入产品产出"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="相关竞争对手:">
+              <el-input v-model="form.name" placeholder="请输入相关竞争对手"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="技术关键词:">
+              <el-input v-model="form.type" placeholder="请输入技术关键词"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="参与人:">
+              <el-input v-model="form.name" placeholder="请输入参与人"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="负责人:">
+              <el-select v-model="form.value" placeholder="请选择负责人" style="width: 100%;">
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="是否检索:" >
+              <el-switch
+                v-model="form.delivery"
+                active-color="#13ce66"
+                inactive-color="#ff4949">
+              </el-switch>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="附件:" prop="file">
+              <el-upload class="upload-demo" ref="upload" action="#" :auto-upload="false" :show-file-list="true"
+                :on-change="onChange" multiple :on-preview="handlePreview" :on-remove="handleRemove"
+                :file-list="fileList">
+                <i class="el-icon-upload2" style="font-size: 18px;"></i>
+              </el-upload>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose" size="small">取 消</el-button>
+        <el-dropdown v-if="form.isLook" split-button type="primary" @click="submit" size="small">
+          <p>{{ btn.label }}</p>
+          <el-dropdown-menu slot="dropdown" class="text-align_center">
+            <el-dropdown-item v-for="item in btnObj" :key="item.label" @click.native="onChangeFamily(item)">{{ item.label
+            }}</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+      dialogVisible: false,
+      title: '',
+      form: {},
+      rules: {
+        name: [{ required: true, message: '请输入项目名称', trigger: 'blur' },],
+      },
+      btnObj: [
+        {
+          label: '同意创建',
+          value: 1
+        },
+        {
+          label: '取消创建',
+          value: 4
+        },
+        {
+          label: '缺少材料',
+          value: 5
+        }
+      ],
+      btn: {
+        label: '同意创建',
+        value: 1
+      },
+      options: [],
+      fileList: [],
+    };
+  },
+  watch: {},
+  computed: {},
+  created() { },
+  mounted() { },
+  methods: {
+    onChange(file, fileList) { },
+    handlePreview(file, fileList) { },
+    handleRemove(file, fileList) { },
+    // 切换按钮
+    onChangeFamily(val) {
+      this.btn = val
+    },
+    //打开弹窗
+    open(form,val) {
+      this.form = JSON.parse(JSON.stringify(form))
+      this.form.isLook=val
+      // if(this.form.id){
+      //     this.title = '编辑任务'
+      // }else{
+      //     this.title = '创建任务'
+      // }
+      if (this.form.isLook) {
+        this.title = '处理任务'
+      } else {
+        this.title = '查看任务'
+      }
+      this.dialogVisible = true
+    },
+    //关闭弹窗
+    handleClose() {
+      this.form = {}
+      this.dialogVisible = false
+    },
+    //提交数据
+    submit() {
+      this.dialogVisible = false
+    }
+  },
+
+};
+</script>
+<style lang="scss" scoped></style>

+ 166 - 0
src/views/patentMining/components/dialog/handleTask2.vue

@@ -0,0 +1,166 @@
+<template>
+  <!-- 处理挖掘任务2(分配任务) -->
+  <div class="handleTask2">
+    <el-dialog ref="dialog" :title="title" :visible.sync="dialogVisible" width="800px" :before-close="handleClose"
+      :close-on-click-modal="false">
+
+      <el-upload class="upload-demo" ref="upload" action="#" :auto-upload="false" :show-file-list="false"
+        :on-change="onChange" multiple :on-preview="handlePreview" :on-remove="handleRemove" :file-list="fileList">
+        <el-button size="small" type="primary">上传文件</el-button>
+      </el-upload>
+
+      <el-table class="elTable" :data="tableData" border style="width: 100%" header-row-class-name="custom-table-header">
+        <el-table-column prop="name" label="文件名称" align="center"></el-table-column>
+        <el-table-column prop="time" label="文件上传时间" align="center"> </el-table-column>
+        <el-table-column prop="type" label="文件类型" align="center"> </el-table-column>
+        <el-table-column label="操作" align="center" width="140">
+          <el-button @click="deleteFile" size="small" type="text" style="color: red;">删除</el-button>
+        </el-table-column>
+      </el-table>
+      <div class="explain">
+        <span>说明:</span>
+        <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="textarea"></el-input>
+      </div>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose" size="small">取 消</el-button>
+        <el-button @click="handleSave" size="small" type="primary">保 存</el-button>
+        <el-button @click="submit" size="small" type="primary">提交审核</el-button>
+
+      </span>
+    </el-dialog>
+
+
+    <el-dialog title="审核任务" :visible.sync="auditTask" width="600px" :before-close="auditTaskClose"
+      :close-on-click-modal="false">
+      <el-form :model="examineForm" status-icon :rules="examineRules" ref="examineForm" label-width="120px"
+        class="demo-ruleForm">
+        <el-form-item label="任务名称:" prop="name">
+          <el-input v-model="examineForm.name" placeholder="请输入任务名称"></el-input>
+        </el-form-item>
+        <el-form-item label="审核人:" prop="examineId">
+          <el-select v-model="examineForm.examineId" placeholder="请选择审核人" style="width: 100%;">
+            <el-option v-for="item in examinePerson" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="任务备注:" prop="remark">
+          <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model="examineForm.remark"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="auditTaskClose" size="small">取 消</el-button>
+        <el-button @click="sure" size="small" type="primary">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+      title: '',
+      tableData: [
+        {
+          name: '创新文件',
+          time: '2023-10-8',
+          type: 'excel',
+        }
+      ],
+      dialogVisible: false,
+      auditTask: false,
+      fileList: [],
+      textarea: '',
+      examineForm: {},
+      examinePerson: [],
+      examineRules: {
+        name: [{ required: true, message: '请输入任务名称', trigger: 'blur' },],
+        examineId: [{ required: true, message: '请选择审核人', trigger: 'change' },],
+      }
+    };
+  },
+  watch: {},
+  computed: {},
+  created() { },
+  mounted() { },
+  methods: {
+    // 删除文件
+    deleteFile(row) { },
+    // 上传文件
+    onChange(file, fileList) { },
+    handlePreview(file, fileList) { },
+    handleRemove(file, fileList) { },
+    //打开弹窗
+    open(row, val) {
+      // let row = JSON.parse(JSON.stringify(row))
+      // if(this.form.id){
+      //     this.title = '编辑任务'
+      // }else{
+      //     this.title = '创建任务'
+      // }
+      this.tableData[0].isLook = val
+      this.title = '任务名称:' + row.name
+      this.dialogVisible = true
+    },
+    //关闭弹窗
+    handleClose() {
+      this.dialogVisible = false
+    },
+    //提交数据
+    submit() {
+      this.examineForm.name = this.$refs.dialog.title.split(':')[1]
+      // this.examineForm.name =
+      this.auditTask = true
+    },
+    // 保存
+    handleSave() { },
+    // 审核弹窗确定
+    sure() {
+      this.$refs.examineForm.validate((valid) => {
+        if (valid) {
+          this.handleClose()
+          this.auditTaskClose()
+        } else {
+          this.$message.error('信息未输入完整')
+        }
+      });
+    },
+    // 审核弹窗关闭
+    auditTaskClose() {
+      this.$refs.examineForm.resetFields()
+      this.examineForm = {}
+      this.auditTask = false
+    },
+  },
+
+};
+</script>
+<style lang="scss">
+.handleTask2 {
+  .el-dialog__body {
+    padding: 10px 20px;
+  }
+}
+</style>
+<style lang="scss" scoped>
+.handleTask2 {
+  .handleTask2Dialog {
+    background: red;
+  }
+
+  .upload-demo {
+    float: right;
+    margin-bottom: 10px;
+  }
+
+  .explain {
+    margin-top: 10px;
+
+    span {
+      font-size: 16px;
+    }
+  }
+}</style>

+ 127 - 0
src/views/patentMining/components/dialog/uploadFile.vue

@@ -0,0 +1,127 @@
+<template>
+  <div class="uploadFile">
+    <el-dialog :title="title" :visible.sync="dialogVisible" width="600px" :before-close="handleClose"
+      :close-on-click-modal="false" label-width="300px">
+      <el-form :model="form" status-icon :rules="rules" ref="form" label-width="120px" class="demo-ruleForm">
+        <el-form-item label="文件名称:" prop="name">
+          <el-input v-model="form.name" placeholder="请输入文件名称"></el-input>
+        </el-form-item>
+        <el-form-item label="是否为最终文件:" prop="delivery" style="width: 20px;">
+          <el-switch v-model="form.delivery" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
+        </el-form-item>
+        <el-form-item label="文件类型:">
+          <el-select v-model="form.type" placeholder="请选择文件类型" style="width: 100%;">
+            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="发生时间:">
+          <el-date-picker v-model="form.time" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"
+            style="width: 100%;">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="是否审核:" prop="delivery">
+          <el-switch v-model="form.delivery2" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
+        </el-form-item>
+        <template v-if="form.delivery2">
+          <el-form-item label="审核人:">
+            <el-select v-model="form.type" placeholder="请选择审核人" style="width: 100%;">
+              <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="审核备注:">
+            <el-input v-model="form.remark2" type="textarea" placeholder="请输入内容"></el-input>
+          </el-form-item>
+        </template>
+        
+        <el-form-item label="附件:" prop="delivery">
+          <el-upload ref="upload" class="upload-file" drag action="#" :auto-upload="false" :show-file-list="true"
+            :on-change="onChange" :on-remove="handleRemove" :on-preview="handlePreview">
+            <i :class="fileList.length != 0 ? 'el-icon-upload' : 'el-icon-refresh'"></i>
+            <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+            <div class="el-upload__tip" slot="tip"></div>
+          </el-upload>
+        </el-form-item>
+        <el-form-item label="备注:">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleClose" size="small">取 消</el-button>
+        <el-button @click="submit" size="small" type="primary">确 定</el-button>
+
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+      dialogVisible: false,
+      title: '',
+      form: {},
+      rules: {
+        name: [{ required: true, message: '请输入文件名称', trigger: 'blur' },],
+      },
+      options: [],
+      value: '',
+      delivery: '',
+      fileList: [],
+    };
+  },
+  watch: {},
+  computed: {},
+  created() { },
+  mounted() { },
+  methods: {
+    onChange(file, fileList) { },
+    handlePreview(file, fileList) { },
+    handleRemove(file, fileList) { },
+    // 切换按钮
+    onChangeFamily(val) {
+      this.btn = val
+    },
+    //打开弹窗
+    open(row) {
+      if (row.id) {
+        this.title = '编辑文件'
+      } else {
+        this.title = '上传文件'
+      }
+      // this.title = '上传文件'
+      this.dialogVisible = true
+    },
+    //关闭弹窗
+    handleClose() {
+      this.$refs.form.resetFields()
+      this.form = {}
+      this.dialogVisible = false
+    },
+    //提交数据
+    submit() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.handleClose()
+        } else {
+          this.$message.error('信息未输入完整')
+        }
+      });
+    }
+  },
+
+};
+</script>
+<style lang="scss">
+.uploadFile {
+  .el-dialog__body {
+    padding: 0px 20px;
+  }
+}
+</style>
+<style lang="scss" scoped></style>

+ 235 - 0
src/views/patentMining/components/excavateTask/excavateTask.vue

@@ -0,0 +1,235 @@
+<template>
+  <!-- 挖掘任务 -->
+  <div class="excavateTask">
+    <el-container>
+      <el-header style="display: flex;justify-content: space-between;align-items: center;">
+        <div>
+          <mySearch :SearchFields="searchFiled" @search="search" :searchValue="searchOption"></mySearch>
+        </div>
+        <div style="display:flex;margin-right:10px">
+          <el-button type="primary" size="small" @click="createTask">创建任务</el-button>
+        </div>
+      </el-header>
+      <el-main>
+        <el-table :data="tableData" style="width: 100%;" border header-row-class-name="custom-table-header">
+          <el-table-column label="#" align="center" width="80px">
+            <template slot-scope="scope">
+              <div>
+                {{ (queryParams.current - 1) * queryParams.size + scope.$index + 1 }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="name" label="任务名称" align="center"></el-table-column>
+          <el-table-column prop="taskType" label="任务类型" align="center">
+            <template slot-scope="scope">
+              <div>
+                {{ taskType[scope.row.taskType] }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createPerson" label="发起人" align="center"></el-table-column>
+          <el-table-column prop="handlePerson" label="处理人" align="center"></el-table-column>
+          <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column>
+          <el-table-column prop="endTime" label="截止时间" align="center"></el-table-column>
+          <el-table-column prop="status" label="状态" align="center"></el-table-column>
+          <el-table-column label="操作" align="center" width="180px">
+            <template slot-scope="scope">
+              <div>
+                <el-dropdown split-button type="primary" size="small" @command="handleCommand($event, scope.row)"
+                  @click="handleTask(scope.row)">
+                  <p v-if="scope.row.status == '已完成' || scope.row.handlePerson != userInfo.name">查 看</p>
+                  <p v-else>处 理</p>
+                  <el-dropdown-menu slot="dropdown">
+                    <el-dropdown-item command="1">查看审核记录</el-dropdown-item>
+                    <el-dropdown-item command="2" style="color: red;text-align: center;">删除</el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-main>
+      <el-footer>
+        <div>
+          <el-pagination background layout="total, prev, pager, next, jumper" :current-page.sync="queryParams.current"
+            :page-size.sync="queryParams.size" @current-change="handleCurrentChange" :total="queryParams.total">
+          </el-pagination>
+        </div>
+      </el-footer>
+    </el-container>
+
+    <createTask ref="createTaskDialog"></createTask>
+    <handleTask1 ref="handleTask1Dialog"></handleTask1>
+    <!-- <handleTask2 ref="handleTask2Dialog"></handleTask2> -->
+    <handleTask2 ref="handleTask2Dialog"></handleTask2>
+    <auditRecords ref="auditRecords"></auditRecords>
+  </div>
+</template>
+
+<script>
+import createTask from '../dialog/createTask.vue'
+import handleTask1 from '../dialog/handleTask1.vue'
+import handleTask2 from '../dialog/handleTask2.vue'
+import auditRecords from '../dialog/auditRecords.vue'
+export default {
+  components: {
+    createTask,
+    handleTask1,
+    handleTask2,
+    auditRecords,
+  },
+  data() {
+    return {
+      tableData: [
+        {
+          name: '加热器专利挖掘1',
+          taskType: '1',
+          createPerson: '朱豪',
+          handlePerson: '张三',
+          createTime: '2023-9-28 13:52',
+          endTime: '2023-9-28 18:02',
+          status: '未完成'
+        },
+        {
+          name: '加热器专利挖掘2',
+          taskType: '1',
+          createPerson: '朱豪',
+          handlePerson: '朱豪',
+          createTime: '2023-9-28 13:52',
+          endTime: '2023-9-28 18:02',
+          status: '未完成'
+        },
+        {
+          name: '加热器专利挖掘3',
+          taskType: '2',
+          createPerson: '张三',
+          handlePerson: '朱豪',
+          createTime: '2023-9-28 13:52',
+          endTime: '2023-9-28 18:02',
+          status: '未完成'
+        },
+        {
+          name: '加热器专利挖掘4',
+          taskType: '3',
+          createPerson: '朱豪',
+          handlePerson: '朱豪',
+          createTime: '2023-9-28 13:52',
+          endTime: '2023-9-28 18:02',
+          status: '未完成',
+          taskPath: '创新点梳理',
+          endTime: '2023-10-10',
+        },
+        {
+          name: '加热器专利挖掘5',
+          taskType: '1',
+          createPerson: '张三',
+          handlePerson: '朱豪',
+          createTime: '2023-9-28 13:52',
+          endTime: '2023-9-28 18:02',
+          status: '已完成'
+        },
+        {
+          name: '加热器专利挖掘6',
+          taskType: '1',
+          createPerson: '朱豪',
+          handlePerson: '张三',
+          createTime: '2023-9-28 13:52',
+          endTime: '2023-9-28 18:02',
+          status: '已完成'
+        },
+      ],
+      taskType: {
+        1: '项目审核任务',
+        2: '文件分配任务',
+        3: '文件审核任务',
+      },
+      queryParams: {
+        current: 1,
+        size: 10,
+        total: 0,
+      },
+      searchFiled: [
+        {
+          label: '任务名称',
+          value: 'taskName',
+          type: 1,
+          placeholder: '请输入任务名称'
+        },
+        {
+          label: '创建人',
+          value: 'createPerson',
+          type: 1,
+          placeholder: '请输入创建人名称'
+        },
+      ],
+      searchOption: {}
+    }
+  },
+  computed: {
+    userInfo() {
+      return this.$store.state.user.userinfo
+    },
+  },
+  mounted() {
+    // this.getList()
+  },
+  methods: {
+    //处理任务 
+    handleTask(row) {
+      if (row.status == '已完成' || row.handlePerson != this.userInfo.name) {
+        if (row.taskType == '1') {
+          this.$refs.handleTask1Dialog.open(row,false)
+        } else if (row.taskType == '2') {
+          this.$refs.handleTask2Dialog.open(row,false)
+        }
+      } else {
+        if (row.taskType == '1') {
+          this.$refs.handleTask1Dialog.open(row,true)
+        } else if (row.taskType == '2') {
+          this.$refs.handleTask2Dialog.open(row,true)
+        } else {
+          let router = this.$router.resolve({
+            path: '/handleExamine',
+            query: {
+              row: JSON.stringify(row)
+            }
+          })
+          window.open(router.href, '_blank')
+        }
+      }
+    },
+    handleCommand(ev, row) {
+      switch (ev) {
+        case '1'://查看审核记录
+          this.$refs.auditRecords.open()
+          break;
+        case '2'://删除任务
+
+          break;
+
+        default:
+          break;
+      }
+    },
+    // 左侧搜索
+    search() {
+
+    },
+    // 创建任务事件
+    createTask() {
+      this.$refs.createTaskDialog.open({})
+    },
+    // 初始化请求数据
+    getList() { },
+    // 分页
+    handleCurrentChange(val) {
+      // this.queryParams.current = val
+      // this.getList()
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.excavateTask {}
+</style>

+ 28 - 0
src/views/patentMining/components/excavateTask/index.vue

@@ -0,0 +1,28 @@
+<template>
+  <div>
+    <excavateTask style="height: 100%;"></excavateTask>
+  </div>
+</template>
+
+<script>
+import excavateTask from './excavateTask.vue'
+export default {
+  components: {
+    excavateTask
+  },
+  data() {
+    return {
+
+    }
+  },
+  computed: {},
+  mounted() {
+
+  },
+  methods: {
+
+  },
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 128 - 0
src/views/patentMining/components/fileMessage.vue

@@ -0,0 +1,128 @@
+<template>
+  <!-- 详情文件 -->
+  <div class="fileMessage">
+    <el-container>
+      <el-header style="display: flex;justify-content: space-between;align-items: center;">
+        <div>
+          <mySearch :SearchFields="searchFiled" @search="search" :searchValue="searchOption" ></mySearch>
+        </div>
+        <div style="display:flex;margin-right:10px">
+          <!-- <el-button-group class="margin-left_10">
+                    <el-button :type="queryShowType === '0' ? 'primary' : ''" @click="onChange2('0')" size="small">列表</el-button>
+                    <el-button :type="queryShowType === '1' ? 'primary' : ''" @click="onChange2('1')" size="small">卡片</el-button>
+                  </el-button-group> -->
+          <el-button type="primary" size="small" @click="uploadFile">上传文件</el-button>
+        </div>
+      </el-header>
+      <el-main>
+        <el-table :data="tableData" style="width: 100%;" border header-row-class-name="custom-table-header">
+          <el-table-column label="#" align="center" width="100px">
+            <template slot-scope="scope">
+              <div>
+                {{ (queryParams.current - 1) * queryParams.size + scope.$index + 1 }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="fileName" label="文件名称" align="center">
+            <!-- <template slot-scope="scope">
+              <div>
+                <el-link type="primary" @click="toDetails(scope.row)">{{ scope.row.name }}</el-link>
+              </div>
+            </template> -->
+          </el-table-column>
+          <el-table-column prop="uploader" label="文件上传人" align="center"></el-table-column>
+          <el-table-column prop="status" label="文件状态" align="center"></el-table-column>
+          <el-table-column prop="uploadTime" label="文件上传时间" align="center"></el-table-column>
+          <el-table-column prop="type" label="文件类型" align="center"></el-table-column>
+          <el-table-column prop="endFile" label="是否最终文件" align="center"></el-table-column>
+          <el-table-column label="操作" align="center" width="200px">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="primary" size="small" @click="handleEdit(scope.row)">编辑</el-button>
+                <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-main>
+      <el-footer>
+        <div>
+          <el-pagination background layout="total, prev, pager, next, jumper" :current-page.sync="queryParams.current"
+            :page-size.sync="queryParams.size" @current-change="handleCurrentChange" :total="queryParams.total">
+          </el-pagination>
+        </div>
+      </el-footer>
+    </el-container>
+
+    <uploadFile ref="uploadFile"></uploadFile>
+  </div>
+</template>
+
+<script>
+import uploadFile from './dialog/uploadFile.vue'
+export default {
+  components: {
+    uploadFile
+  },
+  data() {
+    return {
+      tableData: [
+        {
+          fileName:'加热器',
+          uploader:'朱豪',
+          status:'处理中',
+          uploadTime:'2023-9-28 17:09',
+          type:'',
+          endFile: '否',
+          id:1
+        }
+      ],
+      queryParams: {
+        current: 1,
+        size: 10,
+        total: 0,
+      },
+      searchFiled: [
+        {
+          label: '文件名称',
+          value: 'fileName',
+          type: 1,
+          placeholder: '请输入文件名称'
+        },
+        {
+          label: '上传人',
+          value: 'createPerson',
+          type: 1,
+          placeholder: '请输入上传人名称'
+        },
+      ],
+      searchOption: {}  
+    }
+  },
+  mounted() {
+    
+  },
+  methods: {
+    // 搜索
+    search(){},
+    // 上传文件
+    uploadFile() { 
+      this.$refs.uploadFile.open({})
+    },
+    // 编辑
+    handleEdit(row) {
+      this.$refs.uploadFile.open(row)
+    },
+    // 删除
+    handleDelete(row) { 
+      
+    },
+    // 分页
+    handleCurrentChange(val) {
+      
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 160 - 0
src/views/patentMining/components/handleExamine/handleExamine.vue

@@ -0,0 +1,160 @@
+<template>
+  <div class="handleExamine">
+    <myView style="height: 100%;width: 100%;" position="row">
+      <div slot="left" style="height: 100%;width:100%;padding: 20px 10px 0 10px;">
+        <div>任务详情:</div>
+        <el-divider></el-divider>
+        <el-descriptions title="" :column="2" size="" border style="margin-bottom: 20px;">
+          <el-descriptions-item>
+            <template slot="label">
+              <i class="el-icon-user"></i> 任务名称
+            </template>
+            {{ row.name }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              <i class="el-icon-mobile-phone"></i> 所属项目
+            </template>
+            {{ row.name }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              <i class="el-icon-location-outline"></i> 所属流程
+            </template>
+            {{ row.taskPath }}
+          </el-descriptions-item>
+          <el-descriptions-item>
+            <template slot="label">
+              <i class="el-icon-tickets"></i> 截止时间
+            </template>
+            {{ row.endTime }}
+          </el-descriptions-item>
+        </el-descriptions>
+
+        <el-table :data="tableData" border>
+          <el-table-column prop="name" label="文件名称" align="center"></el-table-column>
+          <el-table-column prop="time" label="文件上传时间" align="center"> </el-table-column>
+          <el-table-column prop="type" label="文件类型" align="center"> </el-table-column>
+          <el-table-column label="操作" align="center">
+            <template slot-scope="scope">
+              <div>
+                <el-dropdown split-button type="primary" size="small" @command="handleCommand($event, scope.row)"
+                  @click="handleQuote(scope.row)">
+                  <p>引 用</p>
+                  <el-dropdown-menu slot="dropdown">
+                    <el-dropdown-item command="1">预览</el-dropdown-item>
+                    <el-dropdown-item command="2">下载</el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="div_margin">说明:</div>
+        <el-input type="textarea" :rows="3" readonly v-model="row.textarea"></el-input>
+      </div>
+      <div slot="right" style="height: 100%;width:100%;padding: 20px 10px 0 10px;">
+        <div>审核:</div>
+        <el-divider></el-divider>
+        <el-upload class="upload_demo" ref="upload" action="#" :auto-upload="false" :show-file-list="false"
+          :on-change="onChange" multiple :on-preview="handlePreview" :on-remove="handleRemove" :file-list="fileList">
+          <el-button size="small" type="primary">上传文件</el-button>
+        </el-upload>
+        <el-table :data="examineData" border style="width: 100%" header-row-class-name="custom-table-header">
+          <el-table-column prop="name" label="文件名称" align="center"></el-table-column>
+          <el-table-column prop="time" label="文件上传时间" align="center"> </el-table-column>
+          <el-table-column prop="type" label="文件类型" align="center"> </el-table-column>
+          <el-table-column label="操作" align="center">
+            <el-button @click="deleteFile" size="small" type="text" style="color: red;">删除</el-button>
+          </el-table-column>
+        </el-table>
+        <div class="div_margin">下一个审核人:</div>
+        <el-select v-model="nextPersonId" placeholder="请选择下一个审核人" style="width: 100%;">
+          <el-option v-for="item in personOptions" :key="item.value" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+        <div class="div_margin">审核意见:</div>
+        <el-input type="textarea" :rows="3" v-model="reviewComments" style="margin-bottom: 20px;"></el-input>
+        <el-button type="primary" size="small" @click="sure" style="float: right;">确 认</el-button>
+      </div>
+    </myView>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['row'],
+  data() {
+    return {
+      tableData: [
+        {
+          name: '创新文件',
+          time: '2023-10-8',
+          type: 'excel',
+        }
+      ],//任务详情文件
+      examineData: [
+        {
+          name: '创新文件2',
+          time: '2023-10-10',
+          type: 'excel',
+        }
+      ],//审核文件
+      reviewComments: '',//评审意见
+      nextPersonId: '',//下一个审核人
+      personOptions: '',//下一个审核人数组
+      fileList: [],//文件数组
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    // 审核确认
+    sure() { },
+    // 删除文件
+    deleteFile(row) { },
+    // 上传文件
+    onChange(file, fileList) { },
+    handlePreview(file, fileList) { },
+    handleRemove(file, fileList) { },
+    // 引用
+    handleQuote(row) { },
+    // 引用下拉菜单胡处理
+    handleCommand(ev, row) {
+      switch (ev) {
+        case '1'://预览
+
+          break;
+        case '2'://下载
+
+          break;
+
+        default:
+          break;
+      }
+    },
+  },
+}
+</script>
+
+<style lang="scss">
+.handleExamine {
+  .el-divider--horizontal {
+    margin: 10px 0;
+  }
+}
+</style>
+<style lang="scss" scoped>
+.handleExamine {
+  .upload_demo {
+    display: flex;
+    justify-content: flex-end;
+    margin-bottom: 10px;
+  }
+
+  .div_margin {
+    margin: 20px 0 10px 0;
+  }
+}
+</style>

+ 28 - 0
src/views/patentMining/components/handleExamine/index.vue

@@ -0,0 +1,28 @@
+<template>
+  <div>
+    <handleExamine :row=row style="height: 100%;"></handleExamine>
+  </div>
+</template>
+
+<script>
+import handleExamine from './handleExamine.vue'
+export default {
+  components: {
+    handleExamine,
+  },
+  data() {
+    return {
+      
+    }
+  },
+  computed: {
+    row() {
+      return JSON.parse(this.$route.query.row)
+    }
+  },
+  mounted() { },
+  method:{},
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 126 - 0
src/views/patentMining/components/projectPath.vue

@@ -0,0 +1,126 @@
+<template>
+  <!-- 项目流程 -->
+  <div class="projectPath" style="width: 100%;height:100%;">
+    <span>项目流程</span>
+    <el-divider></el-divider>
+    <svg viewBox="0 0 1800 800" width="100%" height="100%">
+      <g transform=translate(0,0) class="svgG">
+        <rect width="200" height="120" :fill="getColor('创新点流程')" @click="toFilePage('创新点流程')"> </rect>
+        <text x="30" y="65">创新点流程</text>
+        <circle cx="150" cy="60" r="16" stroke-width="1" stroke="#fff" :fill="getColor('创新点流程')" />
+        <text :x="getNumber('创新点流程') >9? '140':'145'" y="65" fill="#fff">{{ getNumber('创新点流程') }}</text>
+        <line x1="200" y1="60" x2="350" y2="60" stroke='#333'></line>
+        <polygon points="350,55,360,60,350,65"></polygon>
+      </g>
+      <g transform="translate(360,0)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('查新检索')" @click="toFilePage('查新检索')"> </rect>
+        <text x="30" y="65">查新检索</text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('查新检索')" />
+        <text :x="getNumber('查新检索') >9? '140':'145'" y="65" fill="#fff">{{ getNumber('查新检索') }}</text>
+        <line x1="200" y1="60" x2="350" y2="60" stroke='#333'></line>
+        <polygon points="350,55,360,60,350,65"></polygon>
+      </g>
+      <g transform="translate(720,0)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('保护主题规划')" @click="toFilePage('保护主题规划')"> </rect>
+        <text x="30" y="65">保护主题规划</text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('保护主题规划')" />
+        <text x="145" y="65" fill="#fff">{{ getNumber('保护主题规划') }}</text>
+        <line x1="200" y1="60" x2="350" y2="60" stroke='#333'></line>
+        <polygon points="350,55,360,60,350,65"></polygon>
+      </g>
+      <g transform="translate(1080,0)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('独权撰写')" @click="toFilePage('独权撰写')"> </rect>
+        <text x="30" y="65">独权撰写</text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('独权撰写')" />
+        <text x="145" y="65" fill="#fff">{{ getNumber('独权撰写') }}</text>
+        <line x1="200" y1="60" x2="350" y2="60" stroke='#333'></line>
+        <polygon points="350,55,360,60,350,65"></polygon>
+      </g>
+      <g transform="translate(1440,0)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('从权撰写')" @click="toFilePage('从权撰写')"> </rect>
+        <text x="30" y="65">从权撰写</text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('从权撰写')" />
+        <text x="145" y="65" fill="#fff">{{ getNumber('从权撰写') }}</text>
+        <line x1="100" y1="120" x2="100" y2="190" stroke='#333'></line>
+        <polygon points="95,190,100,200,105,190"></polygon>
+      </g>
+      <!-- <g transform="translate(1080,200)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('从权撰写')" @click="toFilePage('从权撰写')">  </rect>
+        <text x="30" y="65">从权撰写</text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('从权撰写')" />
+        <text x="145" y="65" fill="#fff">{{ getNumber('从权撰写') }}</text>
+        <line x1="0" y1="60" x2="-150" y2="60" stroke='#333'></line>
+        <polygon points="-150,55,-160,60,-150,65"></polygon>
+      </g> -->
+      <g transform="translate(1440,200)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('申请文件定稿')" @click="toFilePage('申请文件定稿')"> </rect>
+        <text x="30" y="65">申请文件定稿</text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('申请文件定稿')" />
+        <text x="145" y="65" fill="#fff">{{ getNumber('申请文件定稿') }}</text>
+        <line x1="0" y1="60" x2="-150" y2="60" stroke='#333'></line>
+        <polygon points="-150,55,-160,60,-150,65"></polygon>
+      </g>
+      <g transform="translate(1080,200)" class="svgG">
+        <rect width="200" height="120" :fill="getColor('说明书规划撰写')" @click="toFilePage('说明书规划撰写')"> </rect>
+        <text x="15" y="65" xml:space='preserve'>说明书规划撰写
+        </text>
+        <circle cx="150" cy="60" r="15" stroke-width="1" stroke="#fff" :fill="getColor('说明书规划撰写')" />
+        <text x="145" y="65" fill="#fff">{{ getNumber('说明书规划撰写') }}</text>
+      </g>
+
+    </svg>
+
+
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      numObj: {
+        '创新点流程':12,
+        '查新检索': 0,
+        '保护主题规划': 0,
+        '独权撰写': 0,
+        '从权撰写': 0,
+        '申请文件定稿': 0,
+        '说明书规划撰写': 0,
+      },
+    }
+  },
+  computed: {},
+  mounted() {
+
+  },
+  methods: {
+    // 获取文件数量
+    getNumber(str) {
+      return this.numObj[str]
+    },
+    // 获取背景颜色
+    getColor(str) {
+     return this.getNumber(str)>0?'#5ed325':'pink'
+    },
+    // 跳转文件列表界面
+    toFilePage(str) {
+      console.log(str);
+    },
+  },
+}
+</script>
+
+<style lang="scss">
+.projectPath {
+  .el-divider--horizontal {
+    margin: 10px 0;
+  }
+}
+</style>
+<style lang="scss" scoped>
+.projectPath{
+  .svgG{
+    cursor: pointer;
+  }
+}
+</style>

+ 78 - 65
src/views/patentMining/components/view/commonTable.vue

@@ -1,71 +1,84 @@
 <template>
-    <div>
-      <el-table :data="tableData" border style="width: 100%" header-row-class-name="custom-table-header">
-          <el-table-column label="#" align="center" width="100px">
-              <template slot-scope="scope">
-                  <div>
-                      {{ (params.current-1)*params.size + scope.$index+1 }}
-                  </div>
-              </template>
-          </el-table-column>
-          <el-table-column prop="name" label="项目名称" align="center">
-            <template slot-scope="scope">
-              <div>
-                <el-link type="primary">{{ scope.row.name }}</el-link>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column prop="type" label="产出" align="center"></el-table-column>
-          <el-table-column prop="type" label="技术方向" align="center"></el-table-column>
-          <el-table-column prop="type" label="技术关键词" align="center"></el-table-column>
-          <el-table-column prop="type" label="相关竞争对手" align="center"></el-table-column>
-          <el-table-column prop="status" label="状态" align="center"></el-table-column>
-          <el-table-column prop="createPerson" label="创建人" align="center"></el-table-column>
-          <el-table-column label="操作" align="center" width="200px">
-              <template slot-scope="scope">
-                  <div>
-                      <el-dropdown split-button type="primary" size="small" @command="handleCommand($event, scope.row)">
-                          <p @click="handleCommand('e', scope.row)">编辑</p>
-                          <el-dropdown-menu slot="dropdown">
-                              <el-dropdown-item command="0">设置定时更新</el-dropdown-item>
-                              <el-dropdown-item divided class="color-red" command="1">删除</el-dropdown-item>
-                          </el-dropdown-menu>
-                      </el-dropdown>
-                  </div>
-              </template>
-          </el-table-column>
-      </el-table>
-    </div>
+  <div>
+    <el-table :data="tableData" border style="width: 100%" header-row-class-name="custom-table-header">
+      <el-table-column label="#" align="center" width="100px">
+        <template slot-scope="scope">
+          <div>
+            {{ (params.current - 1) * params.size + scope.$index + 1 }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="name" label="项目名称" align="center">
+        <template slot-scope="scope">
+          <div>
+            <el-link type="primary" @click="toDetails(scope.row)">{{ scope.row.name }}</el-link>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="type" label="产出" align="center"></el-table-column>
+      <el-table-column prop="type" label="技术方向" align="center"></el-table-column>
+      <el-table-column prop="type" label="技术关键词" align="center"></el-table-column>
+      <el-table-column prop="type" label="相关竞争对手" align="center"></el-table-column>
+      <el-table-column prop="status" label="状态" align="center"></el-table-column>
+      <el-table-column prop="createPerson" label="创建人" align="center"></el-table-column>
+      <el-table-column label="操作" align="center" width="200px">
+        <template slot-scope="scope">
+          <div>
+            <el-dropdown split-button type="primary" size="small" @command="handleCommand($event, scope.row)">
+              <p @click="handleCommand('e', scope.row)">编辑</p>
+              <el-dropdown-menu slot="dropdown" style="text-align: center;">
+                <!-- <el-dropdown-item command="0">设置定时更新</el-dropdown-item> -->
+                <el-dropdown-item divided class="color-red" command="1" >删除</el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
 </template>
   
 <script>
-  export default {
-    components: {},
-    props: {
-      params:Object
+export default {
+  components: {},
+  props: {
+    params: Object
+  },
+  data() {
+    return {
+      tableData: [
+        {
+          name: 'xxx有限公司',
+          type: '本公司专利数据库',
+          status: '进行中',
+          createPerson: '朱豪',
+          id:1,
+        }
+      ]
+    };
+  },
+  watch: {},
+  computed: {},
+  created() { },
+  mounted() { },
+  methods: {
+    // 跳转详情页面
+    toDetails(row) {
+      let router=this.$router.resolve({
+        path: '/details',
+        query: {
+          name: row.name,
+          type: row.type,
+          status: row.status,
+          createPerson: row.createPerson,
+        }
+      })
+      window.open(router.href,'_blank')
     },
-    data() {
-      return {
-          tableData:[
-            {
-              name:'xxx有限公司',
-              type:'本公司专利数据库',
-              status:'进行中',
-              createPerson:'朱豪'
-            }
-          ]
-      };
+    handleCommand(option, row) {
+      this.$emit('option', { option, row })
     },
-    watch: {},
-    computed: {},
-    created() {},
-    mounted() {},
-    methods: {
-      handleCommand(option,row){
-        this.$emit('option',{option,row})
-      },
-    },
-  };
-  </script>
-  <style lang="scss" scoped>
-  </style>
+  },
+};
+</script>
+<style lang="scss" scoped></style>

+ 1 - 1
src/views/patentMining/index.vue

@@ -33,7 +33,7 @@
           <el-footer>
               <div>
                   <el-pagination
-                      backgroundx
+                      background
                       layout="total, prev, pager, next, jumper"
                       :current-page.sync="queryParams.current"
                       :page-size.sync="queryParams.size"