浏览代码

专利挖掘审核任务

zhuhao 1 年之前
父节点
当前提交
29b932e939

+ 2 - 2
src/api/newApi/task.js

@@ -29,8 +29,8 @@ export default {
   /**
    * 专利挖掘文件分配任务弹窗查询文件列表
    */
-  getAssoTaskFile(data) {
-    return axios.post("/xiaoshi/projectTask/getAssoTaskFile", data);
+  getTaskHandleResult(params) {
+    return axios.get("/xiaoshi/projectTask/getTaskHandleResult", {params});
   },
   /**
    * 专利挖掘文件分配任务弹窗文件列表删除文件

+ 6 - 2
src/utils/index.js

@@ -1,6 +1,7 @@
 import moment from 'moment'
 import _ from 'lodash'
 import constants from '@/utils/constants'
+import commonJS from './common'
 
 export const formatDate = (date, format = 'YYYY-MM-DD') => {
   return moment(date).format(format)
@@ -51,8 +52,11 @@ export const downLoadBase64 = (content, fileName) => {
   aLink.click();
 }
 
-export const downLoad2 = (url) => {
-  const href = `/api/v2/common/download?url=${encodeURIComponent(url)}`
+export const downLoad2 = (guid) => {
+  const href = commonJS.checkViewer(guid)
+
+  // const href = `/api/v2/common/download?url=${encodeURIComponent(url)}`
+
   const anchor = document.createElement('a');
   const fileName = 'download';
   if ('download' in anchor) {

+ 10 - 3
src/views/patentMining/components/details/basicMessage.vue

@@ -1,17 +1,20 @@
 <template>
   <div>
     <basicMessage :id="id"></basicMessage>
-    <projectPath :id="id" v-on="$listeners"></projectPath>
+    <projectPath :id="id" v-on="$listeners" @on-drawer="handleDrawer"></projectPath>
+    <drawerPage ref="drawerPage" :id="id"> </drawerPage>
   </div>
 </template>
 
 <script>
 import basicMessage from './components/basicMessage.vue';
 import projectPath from './components/projectPath.vue'
+import drawerPage from './components/drawer.vue'
 export default {
   components: {
     basicMessage,
-    projectPath
+    projectPath,
+    drawerPage,
   },
   props: {
     id:'',
@@ -24,7 +27,11 @@ export default {
   computed: {},
   created() {},
   mounted() {},
-  methods: {},
+  methods: {
+    handleDrawer(obj) {
+      this.$refs.drawerPage.open(obj)
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 59 - 0
src/views/patentMining/components/details/components/drawer.vue

@@ -0,0 +1,59 @@
+<template>
+  <div>
+    <el-drawer title="任务及文件信息" :visible.sync="drawer" direction="rtl" :before-close="handleClose" size="1000px">
+      <el-container>
+        <el-header class="basic_header">
+          <el-tabs v-model="activeName" type="card" @tab-click="handleClick" style="width:100%">
+            <el-tab-pane v-for="item in menu" :key='item.path' :label="item.label" :name="item.path"></el-tab-pane>
+          </el-tabs>
+        </el-header>
+        <el-main>
+          <component :is='activeName' :id="id"></component>
+        </el-main>
+      </el-container>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import ExcavateTaskIndex from '../../excavateTask/index.vue'
+import FileMessage from '../../fileMessage.vue'
+export default {
+  props: ['id'],
+  components: {
+    ExcavateTaskIndex,
+    FileMessage,
+  },
+  data() {
+    return {
+      drawer: false,
+      activeName: 'ExcavateTaskIndex',
+      menu: [
+        {
+          label: '任务清单',
+          path: 'ExcavateTaskIndex'
+        },
+        {
+          label: '文件列表',
+          path: 'FileMessage'
+        },
+      ],
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    // 打开
+    open(data) {
+      this.drawer = true
+    },
+    // 关闭
+    handleClose() {
+      this.drawer = false
+    },
+  },
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 45 - 41
src/views/patentMining/components/details/components/projectPath.vue

@@ -5,68 +5,68 @@
     <el-divider></el-divider>
     <svg viewBox="0 0 1800 400" width="100%" height="100%">
       <g transform=translate(0,0) class="svgG">
-        <g @click="toFilePage('创新点梳理',1)">
-          <rect width="200" height="120" :fill="getColor('创新点梳理')" > </rect>
+        <g @click="toDrawer('创新点梳理', 1)">
+          <rect width="200" height="120" :fill="getColor('创新点梳理')"> </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>
+          <text :x="getNumber('创新点梳理') > 9 ? '140' : '145'" y="65" fill="#fff">{{ getNumber('创新点梳理') }}</text>
           <line x1="200" y1="60" x2="350" y2="60" stroke='#333'></line>
         </g>
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
       <g transform="translate(360,0)" class="svgG">
-        <g  @click="toFilePage('查新检索',2)">
-          <rect width="200" height="120" :fill="getColor('查新检索')" > </rect>
+        <g @click="toDrawer('查新检索', 2)">
+          <rect width="200" height="120" :fill="getColor('查新检索')"> </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>
+          <text :x="getNumber('查新检索') > 9 ? '140' : '145'" y="65" fill="#fff">{{ getNumber('查新检索') }}</text>
           <line x1="200" y1="60" x2="350" y2="60" stroke='#333'></line>
         </g>
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
-      <g transform="translate(720,0)" class="svgG" >
-        <g @click="toFilePage('保护主题规划',3)">
-            <rect width="200" height="120" :fill="getColor('保护主题规划')" > </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>
+      <g transform="translate(720,0)" class="svgG">
+        <g @click="toDrawer('保护主题规划', 3)">
+          <rect width="200" height="120" :fill="getColor('保护主题规划')"> </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>
         </g>
-       
+
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
-      <g transform="translate(1080,0)" class="svgG" >
-        <g @click="toFilePage('独权撰写',4)">
-          <rect width="200" height="120" :fill="getColor('独权撰写')" > </rect>
+      <g transform="translate(1080,0)" class="svgG">
+        <g @click="toDrawer('独权撰写', 4)">
+          <rect width="200" height="120" :fill="getColor('独权撰写')"> </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>
         </g>
-        
+
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
-      <g transform="translate(1440,0)" class="svgG" >
-        <g @click="toFilePage('从权撰写',5)">
-          <rect width="200" height="120" :fill="getColor('从权撰写')" > </rect>
+      <g transform="translate(1440,0)" class="svgG">
+        <g @click="toDrawer('从权撰写', 5)">
+          <rect width="200" height="120" :fill="getColor('从权撰写')"> </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> 
+          <line x1="100" y1="120" x2="100" y2="190" stroke='#333'></line>
         </g>
         <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>
+        <rect width="200" height="120" :fill="getColor('从权撰写')" @click="toDrawer('从权撰写')">  </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" >
-        <g @click="toFilePage('申请文件定稿',6)">
-          <rect width="200" height="120" :fill="getColor('申请文件定稿')" > </rect>
+      <g transform="translate(1440,200)" class="svgG">
+        <g @click="toDrawer('申请文件定稿', 6)">
+          <rect width="200" height="120" :fill="getColor('申请文件定稿')"> </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>
@@ -74,29 +74,27 @@
         </g>
         <polygon points="-150,55,-160,60,-150,65"></polygon>
       </g>
-      <g transform="translate(1080,200)" class="svgG" @click="toFilePage('说明书规划撰写',7)">
-        <rect width="200" height="120" :fill="getColor('说明书规划撰写')" > </rect>
+      <g transform="translate(1080,200)" class="svgG" @click="toDrawer('说明书规划撰写', 7)">
+        <rect width="200" height="120" :fill="getColor('说明书规划撰写')"> </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>
-import {optionsData} from '../../mixins/index2'
+import { optionsData } from '../../mixins/index2'
 export default {
-  mixins:[optionsData],
-  props:['id'],
+  mixins: [optionsData],
+  props: ['id'],
   data() {
     return {
       numObj: {
-        '创新点梳理':{},
+        '创新点梳理': 2,
         '查新检索': 0,
         '保护主题规划': 0,
         '独权撰写': 0,
@@ -114,7 +112,7 @@ export default {
     // 获取流程节点及相对应的文件
     getFileNumber() {
       let params = {
-        id:this.id,
+        id: this.id,
       }
       this.$api.query(params).then(response => {
         if (response.code == 200) {
@@ -130,14 +128,20 @@ export default {
     },
     // 获取背景颜色
     getColor(str) {
-     return this.getNumber(str)>0?'#5ed325':'pink'
+      return this.getNumber(str) > 0 ? '#5ed325' : 'pink'
+    },
+    toDrawer(str, id) {
+      let obj = {
+        pathName: str,
+        pathId: id
+      }
+      this.$emit('on-drawer',obj)
     },
     // 跳转文件列表界面
-    toFilePage(str,id) {
-      // console.log(str, id);
+    toFilePage(str, id) {
       let obj = {
         pathName: str,
-        pathId:id
+        pathId: id
       }
       this.$emit('grandson',obj)
     },
@@ -153,8 +157,8 @@ export default {
 }
 </style>
 <style lang="scss" scoped>
-.projectPath{
-  .svgG{
+.projectPath {
+  .svgG {
     cursor: pointer;
   }
 }

+ 15 - 13
src/views/patentMining/components/dialog/auditRecords.vue

@@ -74,25 +74,27 @@ export default {
       this.queryParams.current = 1
       this.getList()
     },
-    getList(id) {
+    getList(row) {
+      // let params = {
+      //   ...this.queryParams,//分页信息
+      //   // searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
+      //   orderDTOList: this.sort,//排序信息
+      //   id: id,
+      // }
       let params = {
-        ...this.queryParams,//分页信息
-        // searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
-        orderDTOList: this.sort,//排序信息
-        id: id,
+        taskId: row.id
       }
-      this.$api.query(params).then(response => {
-        if (response.code == 200) {
-          this.tableData = response.data.data
-          this.queryParams.current = response.data.current
-          this.queryParams.size = response.data.size
-          this.queryParams.total = response.data.total
+      this.$api.queryAuditHistory(params).then(res => {
+        if (res.code == 200) {
+          // this.detailsMessage = res.data.projectTaskVO//分配任务信息
+          // this.tableData = res.data.systemFileList//文件
+          this.tableData = res.data.auditHistoryVOS//审查历史
         }
       })
     },
     // 打开弹窗
-    open(id) {
-      // this.getList(id)
+    open(row) {
+      this.getList(row)
       this.dialogVisible = true
     },
     handleClose() {

+ 7 - 11
src/views/patentMining/components/dialog/handleTask2.vue

@@ -9,10 +9,9 @@
         <el-form-item label="附件(已保存):">
           <el-table class="elTable" :data="tableData" border style="width: 100%"
             header-row-class-name="custom-table-header">
-            <el-table-column prop="fileName" label="文件名称" align="center"></el-table-column>
+            <el-table-column prop="originalName" label="文件名称" align="center"></el-table-column>
             <el-table-column prop="createTime" label="文件上传时间" align="center"> </el-table-column>
-            <el-table-column prop="fileType" label="文件类型" align="center"> </el-table-column>
-            <el-table-column prop="description" 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">
               <template slot-scope="scope">
                 <div>
@@ -125,9 +124,9 @@ export default {
       let params = {
         taskId: this.row.id
       }
-      this.$api.getAssoTaskFile(params).then(res => {
+      this.$api.getTaskHandleResult(params).then(res => {
         if (res.code == 200) {
-          this.tableData = res.data
+          this.tableData = res.data.systemFileList
         }
       })
     },
@@ -151,7 +150,7 @@ export default {
       this.dialogVisible = false
     },
     // 保存
-    handleSave(type) {
+    handleSave() {
        // 判断文件是否都上传完毕
        if (this.form.systemFileList && this.form.systemFileList.length > 0) {
         this.form.fileGuids = []
@@ -167,12 +166,10 @@ export default {
         return false
       }
       this.form.taskId = this.row.id
-      this.$api.addAssoTaskFile(this.form).then(res => {
+      this.$api.addTaskAuditResult(this.form).then(res => {
         if (res.code == 200) {
           this.$message.success('保存文件成功')
-          if (!type) {
-            this.handleClose()
-          } 
+          this.handleClose()
         }
       })
     },
@@ -180,7 +177,6 @@ export default {
     submit() {
       this.$refs.form.validate((valid) => {
         if (valid) {
-          this.handleSave(1)
           // this.tableData.forEach(item => {
           //   if (this.form.fileGuids && this.form.fileGuids.length>0) {
           //     this.form.fileGuids.push(item.fileGuid)

+ 1 - 1
src/views/patentMining/components/dialog/uploadFile.vue

@@ -16,7 +16,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="发生时间:">
-          <el-date-picker v-model="form.time" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"
+          <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"
             style="width: 100%;">
           </el-date-picker>
         </el-form-item>

+ 6 - 1
src/views/patentMining/components/fileMessage.vue

@@ -100,7 +100,7 @@ export default {
         {
           name: "文件上传人",
           type: "Integer",
-          value: "uploader",
+          value: "createName",
         },
         {
           name: "文件上传时间",
@@ -117,6 +117,11 @@ export default {
           type: "DateTime",
           value: "endFile",
         },
+        {
+          name: "描述",
+          type: "DateTime",
+          value: "description",
+        },
       ],
       // 分页信息
       queryParams: {

+ 25 - 25
src/views/patentMining/components/handleExamine/detailsPage.vue

@@ -27,45 +27,45 @@
               <template slot="label">
                 <i class="el-icon-user"></i> 任务名称
               </template>
-              {{ row.name }}
+              {{ detailsMessage.name }}
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 <i class="el-icon-user"></i> 创建人
               </template>
-              {{ row.name }}
+              {{ detailsMessage.createName }}
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 <i class="el-icon-user"></i> 处理人
               </template>
-              {{ row.name }}
+              {{ detailsMessage.handlerName }}
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 <i class="el-icon-mobile-phone"></i> 所属项目
               </template>
-              {{ row.name }}
+              {{ detailsMessage.name }}
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 <i class="el-icon-location-outline"></i> 所属流程
               </template>
-              {{ row.taskPath }}
+              {{ detailsMessage.taskPath }}
             </el-descriptions-item>
             <el-descriptions-item>
               <template slot="label">
                 <i class="el-icon-tickets"></i> 截止时间
               </template>
-              {{ row.endTime }}
+              {{ detailsMessage.deadLineTime }}
             </el-descriptions-item>
           </el-descriptions>
         </div>
         <div class="fileTable">
           <el-table :data="tableData" border>
-            <el-table-column prop="name" label="文件名称" align="center"></el-table-column>
-            <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="originalName" label="文件名称" align="center"></el-table-column>
+            <el-table-column prop="createName" label="上传人" align="center"></el-table-column>
+            <el-table-column prop="createTime" label="上传时间" align="center"> </el-table-column>
             <el-table-column prop="type" label="文件类型" align="center"> </el-table-column>
             <el-table-column label="操作" align="center" width="120px">
               <template slot-scope="scope">
@@ -96,10 +96,11 @@
                 <el-card v-for="item in timelineList" :key="item.id">
                   <div style="margin-bottom: 5px;">
                     <span>处理人:</span>
+                    <span>{{ item.taskHandleResultVO.createName }}</span>
                   </div>
                   <div>
                     <span>说明:</span>
-                    <span>--</span>
+                    <span>{{ item.taskHandleResultVO.handleResult }}</span>
                   </div>
                 </el-card>
               </div>
@@ -129,13 +130,7 @@ export default {
       // 分配任务详情
       detailsMessage: {},
       //文件
-      tableData: [
-        {
-          name: '创新文件',
-          time: '2023-10-8',
-          type: 'excel',
-        }
-      ],
+      tableData: [],
       //审核历史
       timelineList: [],
     }
@@ -146,6 +141,7 @@ export default {
     this.getDetails()
   },
   methods: {
+    // 点击左侧图标回到指定位置
     handleTarget(val) {
       let dom=''
       switch (val) {
@@ -182,20 +178,20 @@ export default {
       }
       this.$api.queryAuditHistory(params).then(res => {
         if (res.code == 200) {
-          this.detailsMessage = res.data
-          this.tableData = res.data
-          this.timelineList = res.data.projectTaskVOS//审查历史
+          this.detailsMessage = res.data.projectTaskVO//分配任务信息
+          this.tableData = res.data.systemFileList//文件
+          this.timelineList = res.data.auditHistoryVOS//审查历史
         }
       })
     },
     // 下拉菜单等处理
     handleCommand(ev, row) {
       switch (ev) {
-        case '1'://预览
+        case 1://预览
           this.preview(row)
           break;
-        case '2'://下载
-          this.downloads()
+        case 2://下载
+          this.downloads(row)
           break;
 
         default:
@@ -203,9 +199,13 @@ export default {
       }
     },
     // 预览
-    preview(data) { },
+    preview(data) { 
+
+    },
     // 下载
-    downloads(data){},
+    downloads(data) {
+      downLoad2(data.guid)
+    },
   },
 }
 </script>

+ 11 - 10
src/views/patentMining/components/handleExamine/handleExamine.vue

@@ -19,12 +19,20 @@
                 <el-col :span="24">
                   <el-form-item label="审核附件:">
                     <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove"
-                      style="height: 180px;" :autoUpload="true" @on-dblclick="handleOndblclick" @on-preview="onPreview"></myUpload>
+                      style="height: 180px;" :autoUpload="true" @on-dblclick="handleOndblclick"></myUpload>
                   </el-form-item>
                 </el-col>
               </el-row>
               <el-row>
                 <el-col :span="12">
+                  <el-form-item label="是否返回修改:">
+                    <el-switch v-model="form.ifSearch" active-color="#13ce66" inactive-color="#ff4949">
+                    </el-switch>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row v-if="!form.ifSearch">
+                <el-col :span="12">
                   <el-form-item label="下一个审核人:">
                     <el-autocomplete v-model="form.handlerName" value-key="name" v-SelectLazyLoading="personnelLoad"
                       :fetch-suggestions="querySearchPersonnel" placeholder="请输入审核人(外部审核人请直接输入邮箱)"
@@ -40,14 +48,7 @@
                   </el-form-item>
                 </el-col>
               </el-row>
-              <el-row>
-                <el-col :span="12">
-                  <el-form-item label="是否返回修改:">
-                    <el-switch v-model="form.ifSearch" active-color="#13ce66" inactive-color="#ff4949">
-                    </el-switch>
-                  </el-form-item>
-                </el-col>
-              </el-row>
+              
               <el-row>
                 <el-col :span="24">
                   <el-form-item label="审核意见:">
@@ -86,7 +87,7 @@ export default {
   data() {
     return {
       form: {
-        systemFileList: [{name:'创新点流程'}],//文件数组
+        systemFileList: [],//文件数组
         description: '',//审核意见
         ifSearch: false,//是否返回修改
       },

+ 1 - 1
src/views/patentMining/components/mixins/index2.js

@@ -48,7 +48,7 @@ export const column = {
         {
           name: "备注",
           type: "String",
-          value: "status",
+          value: "description",
         },
       ],
     }

+ 1 - 1
src/views/task/components/table.vue

@@ -229,7 +229,7 @@ export default {
     handleCommand(ev, row) {
       switch (ev) {
         case '1'://查看审核记录
-          this.$refs.auditRecords.open(row.id)
+          this.$refs.auditRecords.open(row)
           break;
         case '2'://删除任务
           this.deleteTask(row)