Sfoglia il codice sorgente

Merge branch 'product' of http://1.116.113.26:8088/zhuliu/xiaoshi_system into product

zhuliu 1 anno fa
parent
commit
05665a40e5

+ 31 - 1
src/api/newApi/task.js

@@ -15,9 +15,39 @@ export default {
     return axios.post("/xiaoshi/projectTask/addProjectOpenExamineTask", data);
   },
   /**
-   * 专利挖掘文件分配任务/分配审核任务
+   * 创建专利挖掘文件分配任务/分配审核任务
    */
   addTask(data) {
     return axios.post("/xiaoshi/projectTask/addTask", data);
   },
+  /**
+   * 专利挖掘文件分配任务保存
+   */
+  addAssoTaskFile(data) {
+    return axios.post("/xiaoshi/projectTask/addAssoTaskFile", data);
+  },
+  /**
+   * 专利挖掘文件分配任务弹窗查询文件列表
+   */
+  getAssoTaskFile(data) {
+    return axios.post("/xiaoshi/projectTask/getAssoTaskFile", data);
+  },
+  /**
+   * 专利挖掘文件分配任务弹窗文件列表删除文件
+   */
+  deleteAssoTaskFile(data) {
+    return axios.post("/xiaoshi/projectTask/deleteAssoTaskFile", data);
+  },
+  /**
+   * 专利挖掘文件列表新增
+   */
+  addPatentDigProjectFiles(data) {
+    return axios.post("/xiaoshi/patentDigProjectFiles/addPatentDigProjectFiles", data);
+  },
+  /**
+   * 专利挖掘文件列表查询
+   */
+  queryPatentDigProjectFiles(data) {
+    return axios.post("/xiaoshi/patentDigProjectFiles/queryPatentDigProjectFiles", data);
+  },
 };

+ 5 - 3
src/views/components/dialog/examine.vue

@@ -129,7 +129,9 @@ export default {
                 this.addProjectOpenExamineTask(params)
               break;
             case 6://专利挖掘项目-文件分配任务审核
-
+                params.projectTaskDTO.projectId = this.parentForm.projectId//项目id
+                params.projectTaskDTO.id = this.parentForm.id//当前任务id
+                this.fileTask(params)
               break;
             case 7://专利挖掘项目-文件列表审核任务
 
@@ -143,8 +145,8 @@ export default {
       })
     },
     // 专利挖掘项目-文件分配任务审核
-    task(params) {
-      this.$api.task(params).then(res => {
+    fileTask(params) {
+      this.$api.addTask(params).then(res => {
         if (res.code == 200) {
           this.$message.success('已发送审核任务')
           this.$emit('taskForm', '已发送审核任务')

+ 1 - 1
src/views/patentMining/components/details/basicMessage.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <basicMessage :id="id"></basicMessage>
-    <projectPath :id="id"></projectPath>
+    <projectPath :id="id" v-on="$listeners"></projectPath>
   </div>
 </template>
 

+ 23 - 9
src/views/patentMining/components/details/components/projectPath.vue

@@ -5,7 +5,7 @@
     <el-divider></el-divider>
     <svg viewBox="0 0 1800 400" width="100%" height="100%">
       <g transform=translate(0,0) class="svgG">
-        <g @click="toFilePage('创新点流程')">
+        <g @click="toFilePage('创新点流程',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('创新点流程')" />
@@ -15,7 +15,7 @@
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
       <g transform="translate(360,0)" class="svgG">
-        <g  @click="toFilePage('查新检索')">
+        <g  @click="toFilePage('查新检索',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('查新检索')" />
@@ -25,7 +25,7 @@
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
       <g transform="translate(720,0)" class="svgG" >
-        <g @click="toFilePage('保护主题规划')">
+        <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('保护主题规划')" />
@@ -36,7 +36,7 @@
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
       <g transform="translate(1080,0)" class="svgG" >
-        <g @click="toFilePage('独权撰写')">
+        <g @click="toFilePage('独权撰写',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('独权撰写')" />
@@ -47,7 +47,7 @@
         <polygon points="350,55,360,60,350,65"></polygon>
       </g>
       <g transform="translate(1440,0)" class="svgG" >
-        <g @click="toFilePage('从权撰写')">
+        <g @click="toFilePage('从权撰写',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('从权撰写')" />
@@ -65,7 +65,7 @@
         <polygon points="-150,55,-160,60,-150,65"></polygon>
       </g> -->
       <g transform="translate(1440,200)" class="svgG" >
-        <g @click="toFilePage('申请文件定稿')">
+        <g @click="toFilePage('申请文件定稿',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('申请文件定稿')" />
@@ -74,7 +74,7 @@
         </g>
         <polygon points="-150,55,-160,60,-150,65"></polygon>
       </g>
-      <g transform="translate(1080,200)" class="svgG" @click="toFilePage('说明书规划撰写')">
+      <g transform="translate(1080,200)" class="svgG" @click="toFilePage('说明书规划撰写',7)">
         <rect width="200" height="120" :fill="getColor('说明书规划撰写')" > </rect>
         <text x="15" y="65" xml:space='preserve'>说明书规划撰写
         </text>
@@ -102,6 +102,15 @@ export default {
         '申请文件定稿': 0,
         '说明书规划撰写': 0,
       },
+      pathOptions: [
+        { label: '创新点流程', value: 1 },
+        { label: '查新检索', value: 2 },
+        { label: '保护主题规划', value: 3 },
+        { label: '独权撰写', value: 4 },
+        { label: '从权撰写', value: 5 },
+        { label: '申请文件定稿', value: 6 },
+        { label: '说明书规划撰写', value: 7 },
+      ],//流程
     }
   },
   computed: {},
@@ -131,8 +140,13 @@ export default {
      return this.getNumber(str)>0?'#5ed325':'pink'
     },
     // 跳转文件列表界面
-    toFilePage(str) {
-      // console.log(str);
+    toFilePage(str,id) {
+      // console.log(str, id);
+      let obj = {
+        pathName: str,
+        pathId:id
+      }
+      this.$emit('grandson',obj)
     },
   },
 }

+ 17 - 2
src/views/patentMining/components/details/index.vue

@@ -8,7 +8,7 @@
             </el-tabs>
         </el-header>
         <el-main>
-            <component :is='activeName' :id="id"></component>
+            <component :is='activeName' :id="id" @grandson="handleGrandson" :pathObj="pathObj"></component>
         </el-main>
       </el-container>
     </div>
@@ -41,9 +41,17 @@ export default {
           label:'文件列表',
           path:'FileMessage'
         },
-      ]
+      ],
+      pathObj:'',
     };
   },
+  watch: {
+    activeName(val) {
+      if (val != 'FileMessage') {
+        this.pathObj=''
+      }
+    },
+  },
   computed: {
     id() {
       return this.$route.query.id
@@ -53,6 +61,13 @@ export default {
 
   },
   methods: {
+    // 项目流程孙传祖的值,用于跳转文件列表
+    handleGrandson(val) {
+      if (val) {
+        this.activeName = 'FileMessage'
+        this.pathObj=val
+      }
+    },
     handleClick(tab, event) {
     }
   }

+ 7 - 7
src/views/patentMining/components/dialog/createTask.vue

@@ -56,13 +56,13 @@ export default {
       rules: {},
       personOptions: [],//处理人
       pathOptions: [
-        { label: '创新点流程', value: '1' },
-        { label: '查新检索', value: '2' },
-        { label: '保护主题规划', value: '3' },
-        { label: '独权撰写', value: '4' },
-        { label: '从权撰写', value: '5' },
-        { label: '申请文件定稿', value: '6' },
-        { label: '说明书规划撰写', value: '7' },
+        { label: '创新点流程', value: 1 },
+        { label: '查新检索', value: 2 },
+        { label: '保护主题规划', value: 3 },
+        { label: '独权撰写', value: 4 },
+        { label: '从权撰写', value: 5 },
+        { label: '申请文件定稿', value: 6 },
+        { label: '说明书规划撰写', value: 7 },
       ],//流程
       rules: {
         name: [{ required: true, message: '请输入任务名称', trigger: 'blur' },],

+ 20 - 12
src/views/patentMining/components/dialog/handleTask1.vue

@@ -4,28 +4,32 @@
     <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>
+              <span v-if="form.isLook">{{form.name ? form.name : '--'}}</span>
+              <el-input v-else 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.technicalDirection" placeholder="请输入技术方向"></el-input>
+              <span v-if="form.isLook">{{form.technicalDirection ? form.technicalDirection : '--'}}</span>
+              <el-input v-else v-model="form.technicalDirection" 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.productPhase" placeholder="请输入产品阶段"></el-input>
+              <span v-if="form.isLook">{{form.productPhase ? form.productPhase : '--'}}</span>
+              <el-input v-else v-model="form.productPhase" placeholder="请输入产品阶段"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="产品产出:">
-              <el-input v-model="form.output" placeholder="请输入产品产出"></el-input>
+              <span v-if="form.isLook">{{form.output ? form.output : '--'}}</span>
+              <el-input v-else v-model="form.output" placeholder="请输入产品产出"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -33,12 +37,14 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="相关竞争对手:">
-              <el-input v-model="form.relatedCompetitors" placeholder="请输入相关竞争对手"></el-input>
+              <span v-if="form.isLook">{{form.relatedCompetitors ? form.relatedCompetitors : '--'}}</span>
+              <el-input v-else v-model="form.relatedCompetitors" placeholder="请输入相关竞争对手"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="技术关键词:">
-              <el-input v-model="form.technicalKeyword" placeholder="请输入技术关键词"></el-input>
+              <span v-if="form.isLook">{{form.technicalKeyword ? form.technicalKeyword : '--'}}</span>
+              <el-input v-else v-model="form.technicalKeyword" placeholder="请输入技术关键词"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -59,7 +65,8 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="负责人:">
-              <el-select v-model="form.headId" placeholder="请选择负责人" style="width: 100%;" filterable remote
+              <span v-if="form.isLook">{{form.headId ? form.headId : '--'}}</span>
+              <el-select v-else v-model="form.headId" placeholder="请选择负责人" style="width: 100%;" filterable remote
                 :remote-method="remoteMethodPerson" v-SelectLazyLoading="lazyLoadingPerson"
                 :loading="personnelList.loading">
                 <el-option v-for="item in personnelList.data" :key="item.id" :label="item.name" :value="item.id">
@@ -73,7 +80,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="是否检索:">
-              <el-switch v-model="form.ifSearch" active-color="#13ce66" inactive-color="#ff4949">
+              <el-switch v-model="form.ifSearch" active-color="#13ce66" inactive-color="#ff4949" :disabled="form.isLook">
               </el-switch>
             </el-form-item>
           </el-col>
@@ -82,21 +89,22 @@
           <el-col :span="24">
             <el-form-item label="附件:">
               <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove"
-                @on-preview="onPreview" style="height: 180px;" :autoUpload="true"></myUpload>
+                @on-preview="onPreview" style="height: 180px;" :autoUpload="true" :disabled="form.isLook"></myUpload>
             </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.description"></el-input>
+              <span v-if="form.isLook">{{ form.description ? form.description : '--' }}</span>
+              <el-input v-else type="textarea" :rows="3" placeholder="请输入内容" v-model="form.description"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="handleClose">取 消</el-button>
-        <el-dropdown v-if="form.isLook" split-button type="primary" @click="submit">
+        <el-dropdown v-if="form.isLook == 2" split-button type="primary" @click="submit">
           <span>{{ btn.label }}</span>
           <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

+ 52 - 19
src/views/patentMining/components/dialog/handleTask2.vue

@@ -5,16 +5,21 @@
       :close-on-click-modal="false">
 
       <el-form :model="form" status-icon :rules="rules" ref="form" label-position="top" label-width="120px"
-        class="demo-form">
+        class="demo-form" :disabled="!isLook">
         <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="name" label="文件名称" align="center"></el-table-column>
-            <el-table-column prop="time" label="文件上传时间" align="center"> </el-table-column>
+            <el-table-column prop="fileName" 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 label="操作" align="center" width="140">
-              <el-button @click="deleteFile" size="small" type="text" style="color: red;">删除</el-button>
+              <template slot-scope="scope">
+                <div>
+                  <el-button @click="deleteFile(scope.row)" size="small" type="text" style="color: red;">删除</el-button>
+                </div>
+              </template>
+
             </el-table-column>
           </el-table>
         </el-form-item>
@@ -32,8 +37,12 @@
 
       <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>
+        <template>
+          <div v-if="isLook" style="margin-left: 10px;">
+            <el-button @click="handleSave" size="small" type="primary">保 存</el-button>
+            <el-button @click="submit" size="small" type="primary">提交审核</el-button>
+          </div>
+        </template>
 
       </span>
     </el-dialog>
@@ -108,15 +117,15 @@ export default {
       this.row = row
       this.isLook = val
       this.title = '任务名称:' + row.name
-      // this.getTableList()
+      this.getTableList()
       this.dialogVisible = true
     },
     // 查询已保存的项目
     getTableList() {
       let params = {
-        id: this.row.id
+        taskId: this.row.id
       }
-      this.$api.getTableList(params).then(res => {
+      this.$api.getAssoTaskFile(params).then(res => {
         if (res.code == 200) {
           this.tableData = res.data
         }
@@ -127,7 +136,7 @@ export default {
       this.deleteFiles([row.id])
     },
     deleteFiles(ids) {
-      this.$api.dele(ids).then(res => {
+      this.$api.deleteAssoTaskFile(ids).then(res => {
         if (res.code == 200) {
           this.getTableList()
           this.$message.success('删除已保存的文件成功')
@@ -136,10 +145,24 @@ export default {
     },
     //关闭弹窗
     handleClose() {
+      this.form = {
+        systemFileList: []
+      }
       this.dialogVisible = false
     },
     // 保存
     handleSave() {
+      this.fileIsTrue()
+      this.form.taskId = this.row.id
+      this.$api.addAssoTaskFile(this.form).then(res => {
+        if (res.code == 200) {
+          this.$message.success('保存文件成功')
+          this.handleClose()
+        }
+      })
+    },
+    // 判断文件是否都上传完毕
+    fileIsTrue() {
       // 判断文件是否都上传完毕
       if (this.form.systemFileList && this.form.systemFileList.length > 0) {
         this.form.fileGuids = []
@@ -154,19 +177,24 @@ export default {
       } else {
         return false
       }
-      this.form.id=this.row.id
-      this.$api.add(this.form).then(res => {
-        if (res.code == 200) {
-          this.$message.success('保存文件成功')
-          this.handleClose()
-        }
-      })
     },
     //提交审核
     submit() {
-      this.$refs.form.validate((valid) => { 
+      this.$refs.form.validate((valid) => {
         if (valid) {
-          this.$refs.examine.open(this.form,6)
+          this.fileIsTrue()
+          this.tableData.forEach(item => {
+            if (this.form.fileGuids && this.form.fileGuids.length>0) {
+              this.form.fileGuids.push(item.fileGuid)
+            } else {
+              this.form.fileGuids = []
+              this.form.fileGuids.push(item.fileGuid)
+            }
+            
+          })
+          this.form.projectId = this.row.projectId//项目id
+          this.form.id = this.row.id//当前文件分配任务的id
+          this.$refs.examine.open(this.form, 6)
         }
       })
     },
@@ -204,5 +232,10 @@ export default {
       font-size: 16px;
     }
   }
+
+  .dialog-footer {
+    display: flex;
+    justify-content: end;
+  }
 }
 </style>

+ 19 - 15
src/views/patentMining/components/dialog/uploadFile.vue

@@ -10,7 +10,7 @@
           <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.taskPath" placeholder="请选择流程" style="width: 100%;">
+          <el-select v-model="form.processId" placeholder="请选择流程" style="width: 100%;">
             <el-option v-for="item in pathOptions" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
@@ -46,7 +46,7 @@ export default {
   components: {
     examine,
   },
-  props: {},
+  props: ['pathObj'],
   data() {
     return {
       dialogVisible: false,
@@ -55,13 +55,13 @@ export default {
         systemFileList: [],
       },
       pathOptions: [
-        { label: '创新点流程', value: '1' },
-        { label: '查新检索', value: '2' },
-        { label: '保护主题规划', value: '3' },
-        { label: '独权撰写', value: '4' },
-        { label: '从权撰写', value: '5' },
-        { label: '申请文件定稿', value: '6' },
-        { label: '说明书规划撰写', value: '7' },
+        { label: '创新点流程', value: 1 },
+        { label: '查新检索', value: 2 },
+        { label: '保护主题规划', value: 3 },
+        { label: '独权撰写', value: 4 },
+        { label: '从权撰写', value: 5 },
+        { label: '申请文件定稿', value: 6 },
+        { label: '说明书规划撰写', value: 7 },
       ],//流程
       rules: {
         name: [{ required: true, message: '请输入文件名称', trigger: 'blur' },],
@@ -92,14 +92,20 @@ export default {
       this.btn = val
     },
     //打开弹窗
-    open(row) {
+    open(row,id) {
       if (row && row.id) {
         this.form = JSON.parse(JSON.stringify(row))
+        if (!this.form.systemFileList) {
+          this.$set(this.form,'systemFileList',[])
+        }
         this.title = '编辑文件'
       } else {
+        if (this.pathObj) {
+          this.$set(this.form,'processId',this.pathObj.pathId)
+        }
         this.title = '上传文件'
       }
-      // this.title = '上传文件'
+      this.form.projectId=id//项目id
       this.dialogVisible = true
     },
     //关闭弹窗
@@ -125,11 +131,9 @@ export default {
                 return false
               }
             }
-          } else {
-            return false
-          }
+          } 
           if (!this.form.id) {
-            this.$api.add(this.form).then(res => {
+            this.$api.addPatentDigProjectFiles(this.form).then(res => {
               if (res.code == 200) {
                 this.$message.success('新增成功')
                 this.$emit('isSuccess', '新增成功')

+ 30 - 12
src/views/patentMining/components/fileMessage.vue

@@ -58,14 +58,14 @@
       </el-footer>
     </el-container>
 
-    <uploadFile ref="uploadFile" :isSuccess="isSuccess"></uploadFile>
+    <uploadFile ref="uploadFile" @isSuccess="isSuccess" :pathObj="pathObj"></uploadFile>
   </div>
 </template>
 
 <script>
 import uploadFile from './dialog/uploadFile.vue'
 export default {
-  props: ['id'],
+  props: ['id','pathObj'],
   components: {
     uploadFile
   },
@@ -91,16 +91,16 @@ export default {
           value: "fileName",
         },
         {
+          name: "文件流程",
+          type: "String",
+          value: "path",
+        },
+        {
           name: "文件上传人",
           type: "Integer",
           value: "uploader",
         },
         {
-          name: "文件状态",
-          type: "String",
-          value: "status",
-        },
-        {
           name: "文件上传时间",
           type: "DateTime",
           value: "createTime",
@@ -116,6 +116,15 @@ export default {
           value: "endFile",
         },
       ],
+      pathOptions: [
+        { label: '创新点流程', value: 1 },
+        { label: '查新检索', value: 2 },
+        { label: '保护主题规划', value: 3 },
+        { label: '独权撰写', value: 4 },
+        { label: '从权撰写', value: 5 },
+        { label: '申请文件定稿', value: 6 },
+        { label: '说明书规划撰写', value: 7 },
+      ],//流程
       // 分页信息
       queryParams: {
         current: 1,
@@ -130,12 +139,20 @@ export default {
       sort: [{ "orderBy": "createTime", "orderType": 1 }],
     }
   },
-  async mounted() {
+  watch: {
+    pathObj(val) {
+      if (val) {
+        this.getList()
+      }
+    },
+  },
+  mounted() {
     // 获取table栏位
     // this.columnList = await this.$commonJS.getCustomField('projectTask')
     // 获取栏位
     // this.getColumn()
-    // this.getList()
+    console.log(1);
+    this.getList()
   },
   methods: {
     // 新增/更新文件列表成功
@@ -145,15 +162,16 @@ export default {
     // 获取数据
     getList() {
       let searchOption = {
+        processId:this.pathObj.id || '',//流程节点id
         projectId: this.id,//固有检索
         ...this.searchOption
       }
       let params = {
         ...this.queryParams,//分页信息
-        searchQuery: this.$commonJS.objectToString(searchOption),//检索条件
+        searchQuery: this.$commonJS.objectToString(searchOption || {}),//检索条件
         orderDTOList: this.sort,//排序信息
       }
-      this.$api.query(params).then(res => {
+      this.$api.queryPatentDigProjectFiles(params).then(res => {
         if (res.code == 200) {
           this.tableData = res.data.data
           this.queryParams.size = res.data.size
@@ -198,7 +216,7 @@ export default {
     },
     // 上传文件按钮
     uploadFile() {
-      this.$refs.uploadFile.open()
+      this.$refs.uploadFile.open(null,this.id)
     },
     // 编辑文件按钮
     handleEdit(row) {

+ 46 - 29
src/views/patentMining/components/handleExamine/handleExamine.vue

@@ -56,27 +56,31 @@
       <div slot="right" style="height: 100%;width:100%;padding: 20px 10px 0 10px;">
         <div>审核:</div>
         <el-divider></el-divider>
-        <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove" style="height: 180px;"
-          :autoUpload="true"></myUpload>
-
-        <div class="div_margin">下一个审核人:</div>
-        <el-select style="width:100%;" ref="select1" v-model="form.handler" clearable filterable remote
-            :remote-method="remoteMethodPerson" v-SelectLazyLoading="lazyLoadingPerson">
-            <el-option v-for="item in personnelList.data" :key="item.id" :label="item.name" :value="item.id"
-              placeholder="请选择审核人"></el-option>
-          </el-select>
-        <div class="div_margin">审核意见:</div>
-        <el-input type="textarea" :rows="3" v-model="form.description" style="margin-bottom: 20px;"></el-input>
-        <el-button type="primary" size="small" @click="sure" style="float: right;">确 认</el-button>
+        <template>
+          <div :disabled="row.disabled">
+            <myUpload :file-list="form.systemFileList" @on-change="onchangeFile" @on-remove="onRemove" style="height: 180px;"
+              :autoUpload="true"></myUpload>
+    
+            <div class="div_margin">下一个审核人:</div>
+            <el-select style="width:100%;" ref="select1" v-model="form.handler" clearable filterable remote
+              :remote-method="remoteMethodPerson" v-SelectLazyLoading="lazyLoadingPerson">
+              <el-option v-for="item in personnelList.data" :key="item.id" :label="item.name" :value="item.id"
+                placeholder="请选择审核人"></el-option>
+            </el-select>
+            <div class="div_margin">审核意见:</div>
+            <el-input type="textarea" :rows="3" v-model="form.description" style="margin-bottom: 20px;"></el-input>
+            <el-button type="primary" size="small" @click="sure" style="float: right;">确 认</el-button>
+          </div>
+        </template>
       </div>
     </myView>
   </div>
 </template>
 
 <script>
-import {personnelLoading} from '../mixins/index2'
+import { personnelLoading } from '../mixins/index2'
 export default {
-  mixins:[personnelLoading],
+  mixins: [personnelLoading],
   props: ['row'],
   data() {
     return {
@@ -87,14 +91,13 @@ export default {
           type: 'excel',
         }
       ],//任务详情文件
-      
+
       nextPersonId: '',//下一个审核人
       personOptions: '',//下一个审核人数组
       form: {
         systemFileList: [],//文件数组
         description: '',//审核意见
       },
-      
     }
   },
   mounted() {
@@ -102,17 +105,31 @@ export default {
   },
   methods: {
     // 审核确认
-    sure() { 
-      window.open("about:blank", "_top").close()
-
-      // let params = {
-        
-      // }
-      // this.$api.sure(params).then(res => {
-      //   if (res.code == 200 ) {
-      //     this.$message.success('提交审核成功')
-      //   }
-      // })
+    sure() {
+      // window.open("about:blank", "_top").close()
+      // 判断文件是否都上传完毕
+      if (this.form.systemFileList && this.form.systemFileList.length > 0) {
+        this.form.fileGuids = []
+        for (let i = 0; i < this.form.systemFileList.length; i++) {
+          if (this.form.systemFileList[i].guid) {
+            this.form.fileGuids.push(this.form.systemFileList[i].guid)
+          } else {
+            this.$message.error('文件未全部上传,请耐心等待')
+            return false
+          }
+        }
+      } else {
+        return false
+      }
+      let params = {
+        taskId: this.row.id,
+        ...this.form,
+      }
+      this.$api.addTaskAuditResult(params).then(res => {
+        if (res.code == 200) {
+          this.$message.success('提交审核成功')
+        }
+      })
     },
     // 上传的文件监听
     onchangeFile(file, fileList) {
@@ -138,10 +155,10 @@ export default {
       }
     },
     // 引用
-    handleQuote(row) { 
+    handleQuote(row) {
       this.form.systemFileList.push(row)
     },
-    // 引用下拉菜单处理
+    // 引用下拉菜单处理
     handleCommand(ev, row) {
       switch (ev) {
         case '1'://预览

+ 40 - 13
src/views/task/components/table.vue

@@ -41,11 +41,13 @@
               <div>
                 <el-dropdown split-button type="primary" size="small" @command="handleCommand($event, scope.row)"
                   @click="handleTask(scope.row)">
-                  <span v-if="scope.row.status == '已完成' || scope.row.handlerName != userinfo.name">查 看</span>
+                  <span v-if="scope.row.status == '3' || scope.row.handlerName != userinfo.name">查 看</span>
                   <span v-else>处 理</span>
-                  <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 slot="dropdown" style="text-align: center;">
+                    <el-dropdown-item command="1" v-if="[6].includes(scope.row.type)">查看审核记录</el-dropdown-item>
+                    <el-dropdown-item command="1" v-if="[3].includes(scope.row.status)">编 辑</el-dropdown-item>
+                    <el-dropdown-item command="3" v-if="[6].includes(scope.row.type)">完 成</el-dropdown-item>
+                    <el-dropdown-item command="2" divided style="color: red;">删 除</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
               </div>
@@ -251,14 +253,12 @@ export default {
     },
     //处理任务 
     handleTask(row) {
-
-
-      if (row.handlerName != this.userinfo.name) {// 负责人不是自己
-
+      if (row.status == 3 || row.handlerName != this.userinfo.name) {// 负责人不是自己
+        this.handleTypeTask2(row)
       } else {
-        if (row.status != 3) {
+        // if (row.status != 3) {/
           this.handleTypeTask(row)
-        }
+        // }
       }
 
 
@@ -285,12 +285,14 @@ export default {
       //   }
       // }
     },
+    // 处理人和负责人相同是处理流程
     handleTypeTask(row) {
       switch (row.type) {
         case 1://项目开卷审核任务
-          this.getPatentMining()
+          this.getPatentMining(2)
           break;
         case 5://任务审核任务
+          row.disabled=false
           let router = this.$router.resolve({
             path: '/handleExamine',
             query: {
@@ -300,6 +302,7 @@ export default {
           window.open(router.href, '_blank')
           break;
         case 6://文件分配任务
+          row.projectId=this.id//项目id
           this.$refs.handleTask2Dialog.open(row, true)
           break;
 
@@ -307,8 +310,32 @@ export default {
           break;
       }
     },
+    // 处理人和负责人不相同时处理流程
+    handleTypeTask2(row) {
+      switch (row.type) {
+        case 1://项目开卷审核任务
+          this.getPatentMining(1)
+          break;
+        case 5://任务审核任务
+          row.disabled=true
+          let router = this.$router.resolve({
+            path: '/handleExamine',
+            query: {
+              row: JSON.stringify(row)
+            }
+          })
+          window.open(router.href, '_blank')
+          break;
+        case 6://文件分配任务
+          this.$refs.handleTask2Dialog.open(row, false)
+          break;
+
+        default:
+          break;
+      }
+    },
     // 获取挖掘项目
-    getPatentMining() {
+    getPatentMining(val) {
       let params = {
         current: 1,
         size:10,
@@ -316,7 +343,7 @@ export default {
       }
       this.$api.queryPatentDigProject(params).then(res => {
         if (res.code == 200) {
-          this.$refs.handleTask1Dialog.open(res.data.data[0], 1)
+          this.$refs.handleTask1Dialog.open(res.data.data[0], val)
         }
       })
     },