Parcourir la source

增加报告任务管理页面

zhuhao il y a 2 ans
Parent
commit
53f56fe42c

+ 12 - 0
src/router/index.js

@@ -317,6 +317,18 @@ const routes = [
             },
             component:() => import('@/views/report/InvalidResponse/components/FileDetails/index.vue'),
           },
+          //报告任务清单
+          {
+            path:'/reportTaskList',
+            name:'reportTaskList',
+            meta:{
+              title:'任务',
+              aside:true,
+              showHeader:true,
+            },
+            component: () => import('@/views/report/task/index.vue'),
+          },
+          // },
         ],
       },
       //场景可视化

+ 5 - 0
src/views/layout/components/UserBar.vue

@@ -168,6 +168,11 @@ export default {
           label:'专利挖掘',
           path:'',
         },
+        {
+          value:'8',
+          label:'任务',
+          path:'/reportTaskList',
+        },
       ],
       clientTitle:'',
       clientVisible:false,

+ 1 - 1
src/views/report/Invalid/InvalidPage/ChoseList.vue

@@ -78,7 +78,7 @@
 </template>
 
 <script>
-import { patentQueryMixins } from "@/views/task/components/mixins";
+import { patentQueryMixins } from "@/views/report/task/components/mixins";
 import { getTreeLastChildren, getTreeDataList } from "@/utils";
 
 export default {

src/views/report/task/MyHandle.vue → src/views/report/task/MyHandle2.vue


src/views/report/task/MyInitiate.vue → src/views/report/task/MyInitiate2.vue


+ 82 - 15
src/views/report/task/index.vue

@@ -1,48 +1,115 @@
 <template>
-  <div>
-    <el-tabs v-model="activeName" @tab-click="handleClick" class="">
+  <div class="taskList">
+    <el-container>
+      <el-header>
+        <el-form inline style="margin: 0 20px;">
+          <el-form-item style="width: 150px;">
+            <el-select v-model="query" size="small">
+              <el-option v-for="item in queryOption" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <template v-if="query != 'type'">
+              <el-input v-model="queryParams[query]" size="small" clearable
+                :placeholder="`请输入${queryOption.filter(item => { return item.value == query })[0].label}`"
+                style="width: 215px;"></el-input>
+            </template>
+            <template v-else>
+              <el-select v-model="queryParams.taskType" size="small" clearable placeholder="请选择任务类型">
+                <el-option v-for="item in type" :key="item.taskType" :label="item.label" :value="item.taskType">
+                </el-option>
+              </el-select>
+            </template>
+          </el-form-item>
+          <el-form-item>
+            <el-button size="small" type="primary" @click="getList2">搜索</el-button>
+          </el-form-item>
+        </el-form>
+      </el-header>
+      <el-main>
+        <taskList :reportType="reportType" :status="status"></taskList>
+      </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>
+    <!-- <el-tabs v-model="activeName" @tab-click="handleClick" class="">
         <el-tab-pane name="first" label="未完成">
         </el-tab-pane>
         <el-tab-pane label="已完成" name="second">
         </el-tab-pane>
     </el-tabs>
-    <router-view :activeName="activeName" :reportType="reportType" :status="status"></router-view>
+    <router-view :activeName="activeName" :reportType="reportType" :status="status"></router-view> -->
   </div>
 </template>
 
 <script>
+import taskList from './taskList.vue'
 export default {
   components: {
+    taskList
   },
   data() {
     return {
-      activeName: 'first',
-      // reportType:['开卷任务','协同任务','对比任务','初筛任务'],
-      status:['未完成','已完成','负责人处理中'],
+      queryOption: [
+        { value: 'untreated', label: '未完成' },
+        { value: 'processed', label: '已完成' },
+        { value: 'createName', label: '任务名称' },
+        { value: 'taskName1', label: '发起人名称' },
+        { value: 'taskName2', label: '处理人名称' },
+        { value: 'type', label: '任务类型' },
+      ],
+      type: [
+        { taskType: 0, label: '开卷任务' },
+        { taskType: 1, label: '协同任务' },
+        { taskType: 2, label: '对比任务' },
+        { taskType: 3, label: '筛选任务' },
+      ],
+      query: 'createName',
+      queryParams: {},
+      isAside: false,
+      status: ['未完成', '已完成', '负责人处理中'],
+      queryParams: {
+        current: 1,
+        size: 10,
+        total: 0,
+      },
     }
   },
-  computed:{
-    reportType(){
+  computed: {
+    reportType() {
       var a = this.$store.state.dictMessage.dictMessage.TASK_TYPE
       var b = {}
-      if(a){
-         a.forEach(item => {
+      if (a) {
+        a.forEach(item => {
           b[item.dictChildValue] = item.dictChildLabel
         });
         return b
       }
-     return []
-      
+      return []
+
     }
   },
   methods: {
-    handleClick(tab) {
+    getList2() {
       // console.log(tab)
-    }
+    },
+     //分页
+     handleCurrentChange(val) {
+      this.queryParams.current = val;
+      // this.getList();
+    },
   },
 }
 </script>
 
 <style lang="scss" scoped>
-
+.taskList {
+ 
+}
 </style>

+ 48 - 0
src/views/report/task/index2.vue

@@ -0,0 +1,48 @@
+<template>
+  <div>
+    <el-tabs v-model="activeName" @tab-click="handleClick" class="">
+        <el-tab-pane name="first" label="未完成">
+        </el-tab-pane>
+        <el-tab-pane label="已完成" name="second">
+        </el-tab-pane>
+    </el-tabs>
+    <router-view :activeName="activeName" :reportType="reportType" :status="status"></router-view>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {
+  },
+  data() {
+    return {
+      activeName: 'first',
+      // reportType:['开卷任务','协同任务','对比任务','初筛任务'],
+      status:['未完成','已完成','负责人处理中'],
+    }
+  },
+  computed:{
+    reportType(){
+      var a = this.$store.state.dictMessage.dictMessage.TASK_TYPE
+      var b = {}
+      if(a){
+         a.forEach(item => {
+          b[item.dictChildValue] = item.dictChildLabel
+        });
+        return b
+      }
+     return []
+      
+    }
+  },
+  methods: {
+    handleClick(tab) {
+      // console.log(tab)
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 303 - 0
src/views/report/task/taskList.vue

@@ -0,0 +1,303 @@
+<template>
+  <div class="untreated">
+    <el-table border style="width: 100%;" :data="tableData" v-loading="loading" :row-class-name="tableRowClassName"
+      header-row-class-name="custom-table-header" :default-sort="{ prop: 'date', order: 'descending' }" element-loading-text="请耐心等待,数据正在加载中...">
+      <el-table-column prop="id" type="index" label="序号" width="60" align="center" fixed="left"></el-table-column>
+      <el-table-column prop="taskName" label="任务名称" width="230" align="center" fixed="left"></el-table-column>
+      <el-table-column prop="reportName" label="所属报告" width="200" align="center">
+        <template slot-scope="scope">
+          <div>
+            <el-link type="primary" @click="checkReport(scope.row)">{{ scope.row.reportName }}</el-link>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="handlePersonName" label="处理人" width="150" align="center"></el-table-column>
+      <el-table-column prop="createName" label="发起人" width="150" align="center"></el-table-column>
+      <el-table-column prop="createTime" label="创建时间" sortable width="180" align="center"></el-table-column>
+      <el-table-column prop="endTime" label="期限" sortable width="200" align="center"></el-table-column>
+      <el-table-column prop="remark" label="备注" sortable width="200" align="center"></el-table-column>
+      <el-table-column prop="type" label="类型" sortable width="120" align="center">
+        <template slot-scope="scope">
+          <div>
+            {{ reportType[scope.row.type] }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="taskStatus" label="状态" sortable width="120" align="center">
+        <template slot-scope="scope">
+          <div>
+            {{ status[scope.row.taskStatus] }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="任务进度" align="center" min-width="200px" show-overflow-tooltip
+        v-if="queryParams.taskStatus != 1">
+        <template slot-scope="scope">
+          <el-progress :text-inside="true" :stroke-width="20" :percentage="scope.row.progress"
+            :color="customColors"></el-progress>
+        </template>
+      </el-table-column>
+      <el-table-column prop="finishTime" label="实际完成时间" width="180" sortable align="center"
+        v-if="queryParams.taskStatus == 1"></el-table-column>
+      <el-table-column prop="result" label="结果" sortable align="center" v-if="queryParams.taskStatus == 1">
+        <template slot-scope="scope">
+          <div v-if="scope.row.type == 0">
+            <span v-if="btnObj.filter(item => { return item.value == scope.row.result }).length > 0">{{
+              btnObj.filter(item => { return item.value == scope.row.result })[0].label }}</span>
+          </div>
+          <div v-else>
+            {{ status[scope.row.taskStatus] }}
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="operation" label="操作" align="center" fixed="right" width="180px">
+        <template slot-scope="scope">
+          <div class="">
+            <span><el-button size="mini" @click="handleEdit(scope.row)">处理</el-button></span>
+            <span v-if="scope.row.type != 0">
+              <el-popconfirm style="margin-left: 10px;" title="这一条任务确定完成吗?" confirm-button-text='确定'
+                cancel-button-text='取消' @confirm="handleFinsh(scope.row)">
+                <el-button size="mini" slot="reference" type="primary">确认完成</el-button>
+              </el-popconfirm>
+            </span>
+          </div>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['reportType', 'status'],
+  data() {
+    return {
+      tableData: [
+        {
+          createID: 328,
+          createName: "朱豪",
+          createTime: "2023-09-21 15:14:34",
+          endTime: "2023-09-22 00:00:00",
+          handlePersonId: 328,
+          handlePersonName: "朱豪",
+          id: 319,
+          reportId: 669,
+          reportName: "测试FTO调查",
+          reportType: 3,
+          signPatentNo: "测试",
+          taskName: "测试FTO调查对比任务",
+          taskStatus: 0,
+          type: 2,
+          MyInitiate:0,
+        },
+        {
+          "id": 281,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 7,
+          "reportId": 499,
+          "reportName": "CN109924892B无效应对报告",
+          "taskName": "审核任务",
+          "type": 0,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-07-14 16:11:01",
+          "endTime": "2023-07-16 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "CN109924892B",
+          MyInitiate:1,
+        },
+        {
+          "id": 319,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 3,
+          "reportId": 669,
+          "reportName": "测试FTO调查",
+          "taskName": "测试FTO调查对比任务",
+          "type": 2,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-09-21 15:14:34",
+          "endTime": "2023-09-22 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "测试"
+        },
+        {
+          "id": 317,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 3,
+          "reportId": 669,
+          "reportName": "测试FTO调查",
+          "taskName": "测试FTO调查对比任务",
+          "type": 2,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-09-21 14:53:56",
+          "endTime": "2023-09-22 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "测试"
+        },
+        {
+          "id": 316,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 0,
+          "reportId": 668,
+          "reportName": "CN102727071A无效分析",
+          "taskName": "CN102727071A无效分析对比任务",
+          "type": 2,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-09-21 14:32:53",
+          "endTime": "2023-09-22 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "CN102727071A"
+        },
+        {
+          "id": 313,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 0,
+          "reportId": 585,
+          "reportName": "CN109924892B无效分析",
+          "taskName": "CN109924892B无效分析初筛任务",
+          "type": 3,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-09-11 09:38:03",
+          "endTime": "2023-09-30 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "CN109924892B"
+        },
+        {
+          "id": 304,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 0,
+          "reportId": 645,
+          "reportName": "CN102727071A无效分析",
+          "taskName": "CN102727071A无效分析对比任务",
+          "type": 2,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-08-25 11:53:11",
+          "endTime": "2023-08-26 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "CN102727071A"
+        },
+        {
+          "id": 293,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 3,
+          "reportId": 630,
+          "reportName": "测试FTO调查",
+          "taskName": "测试FTO调查对比任务",
+          "type": 2,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-08-17 15:52:21",
+          "endTime": "2023-08-31 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "测试",
+          "remark": "FTO对比"
+        },
+        {
+          "id": 292,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 3,
+          "reportId": 630,
+          "reportName": "测试FTO调查",
+          "taskName": "测试FTO调查初筛任务",
+          "type": 3,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-08-17 14:51:24",
+          "endTime": "2023-08-31 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "测试",
+          "remark": "FTO初筛"
+        },
+        {
+          "id": 287,
+          "createName": "朱豪",
+          "createID": 328,
+          "reportType": 0,
+          "reportId": 588,
+          "reportName": "CN201580000051.7无效分析",
+          "taskName": "CN201580000051.7无效分析对比任务",
+          "type": 2,
+          "handlePersonId": 328,
+          "handlePersonName": "朱豪",
+          "createTime": "2023-08-01 18:37:41",
+          "endTime": "2023-08-02 00:00:00",
+          "taskStatus": 0,
+          "signPatentNo": "CN201580000051.7"
+        },
+      ],
+      queryParams: {
+        current: 1,
+        size: 10,
+        total: 0,
+      },
+      customColors: [
+        { color: '#f56c6c', percentage: 20 },
+        { color: '#e6a23c', percentage: 40 },
+        { color: '#5cb87a', percentage: 60 },
+        { color: '#1989fa', percentage: 80 },
+        { color: '#6f7ad3', percentage: 100 }
+      ],
+      loading:false,
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    // 点击处理
+    handleEdit (row){},
+    // 点击所属报告
+    checkReport(row) {
+      // var data = JSON.parse(JSON.stringify(row))
+      // data.dictMessage = this.dictMessage
+      // data.type = row.reportType
+      // data.name = row.taskName
+      // this.$s.setSession('row', data)
+      // var router = this.$router.resolve({
+      // 	name: 'taskReportDetails' ,
+      // })
+      //     window.open(router.href, '_blank');
+    },
+    // row隔行变色
+    tableRowClassName({ row, rowIndex }) {
+      if (rowIndex % 2 === 0) {
+        return 'height-row'
+      }
+    },
+    //分页
+    handleCurrentChange(val) {
+      this.queryParams.current = val;
+      // this.getList();
+    },
+  },
+}
+</script>
+<style lang="scss">
+.untreated {
+
+  .custom-table-header>th {
+    background: #deedff !important;
+    color: #7ba6d5 !important;
+    font-weight: 400 !important;
+  }
+
+  .height-row {
+    background: #f5faff !important;
+  }
+}
+</style>
+<style lang="scss" scoped></style>