zhuhao 1 rok temu
rodzic
commit
ceb36301d7

+ 22 - 10
src/router/index.js

@@ -289,16 +289,28 @@ const routes = [
       //       },
       //       component:() => import('@/views/report/Invalid/index.vue'),
       //     },
-      //     //FTO风险排查
-      //     {
-      //       path: '/FTOIndex',
-      //       name:"FTOIndex",
-      //       meta:{
-      //         aside: true,
-      //         showHeader:true,
-      //       },
-      //       component:() => import('@/views/report/FTO/index.vue'),
-      //     },
+          //FTO风险排查
+          // {
+          //   path: '/FTOIndex',
+          //   name:"FTOIndex",
+          //   meta:{
+          //     aside: true,
+          //     showHeader:true,
+          //   },
+          //   component:() => import('@/views/report/FTO/index.vue'),
+          // },
+          //FTO风险排查分配任务
+          {
+            path: '/allocationTask',
+            name:"allocationTask",
+            meta:{
+              aside: true,
+              showHeader: true,
+              sign:'allocationTask',
+              belong:'AllReport'
+            },
+            component:() => import('@/views/report/components/allocationTask/index.vue'),
+          },
           //侵权分析
           {
             path: '/tortIndex',

+ 260 - 0
src/views/report/components/allocationTask/components/allocationTask.vue

@@ -0,0 +1,260 @@
+<template>
+  <!-- 分配任务3(可做公共组件) -->
+  <div style="padding:20px;height:100%;background:white">
+    <div class="header1">
+      <div>
+        <span>总件数:{{ totalNumber }}</span>
+        <span> 剩余件数:{{ leaveNumber }}</span>
+      </div>
+      <div>
+        <label>任务类型:</label>
+        <el-select v-model="taskType">
+          <el-option label="对比任务" value="2"></el-option>
+          <el-option label="初筛任务" value="3"></el-option>
+        </el-select>
+      </div>
+      <!-- 平均分配 -->
+      <div>
+        <el-button type="primary" size="small" style="height:40px" @click="handleConfirm">平均分配</el-button>
+        <el-button @click="getPerson">添加人员</el-button>
+        <el-button @click="finish" v-if="params">完成</el-button>
+      </div>
+    </div>
+    <div style="margin-top:20px">
+      <el-table :data="tableData" v-loading="loading" style="width: 100%" border>
+        <el-table-column prop="name" label="人员名称" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="tenantName" label="所属租户" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="email" label="邮箱" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="assignCount" label="件数" align="center" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <span v-if="scope.row.vVisible">{{ scope.row.assignCount }}</span>
+            <span v-if="!scope.row.vVisible">
+              <el-input v-model="scope.row.assignCount" size="small" placeholder="请输入件数"></el-input>
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="300px">
+          <template slot-scope="scope">
+            <div class="special">
+              <el-button v-if="scope.row.vVisible" class="items" @click.native="edit(scope.row)"
+                :disabled="scope.row.isChoose">编辑</el-button>
+              <el-button v-if="!scope.row.vVisible" class="items" @click.native="save(scope.row)">保存</el-button>
+              <el-button @click="chosePatentFile(scope.row)" v-if="scope.row.isChoose != true">选择</el-button>
+              <el-tooltip v-else class="item" effect="dark" content="取消选择的专利" placement="top">
+                <el-button @click="cancelChoose(scope.row)">取消</el-button>
+              </el-tooltip>
+              <el-button @click="removePerson(scope.row)" type="danger">移除</el-button>
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+
+
+
+    <el-dialog title="温馨提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
+      <div class="spanDiv">
+        <div>
+          <span class="spanCountdown">{{ countdown }}</span>
+          <span class="spanCenter">秒后跳转到<span class="spanJump" @click="toRouter">报告管理</span>页面</span>
+        </div>
+      </div>
+    </el-dialog>
+
+
+    <personList ref="personList" @getPersonIds="getPersonIds"></personList>
+    <checkPatent ref="checkPatent" @checkPatentList="checkPatentList"></checkPatent>
+  </div>
+</template>
+
+<script>
+import personList from '@/views/components/dialog/person.vue'
+import checkPatent from '../../checkPatent/checkPatent.vue'
+export default {
+  components: {
+    personList,
+    checkPatent,
+  },
+  props: ['projectId',],
+  data() {
+    const isTime = (rule, value, callback) => {
+      if (this.formEndTime) {
+        this.changeEndTime = Date.parse(new Date)
+      }
+      let b = Date.parse(value)
+      if (value) {
+        if (b < this.changeEndTime) {
+          callback(new Error('禁止选择现在及以前时间,请重新选择'))
+        } else {
+          callback()
+        }
+      } else {
+        callback(new Error('请选择时间'))
+      }
+    }
+    return {
+      totalNumber: 0,//总件数
+      leaveNumber: null,//剩余件数
+      // 任务类型
+      taskType: "2",
+      // 表格数据源
+      tableData: [{
+        "id": 351,
+        "name": "朱豪",
+        "gender": 1,
+        "email": "chendayuya@163.com",
+        "tenant": 7,
+        "positions": [],
+        "group": [],
+        "role": [
+          60,
+          96
+        ],
+        "roleList": [
+          {
+            "id": 60,
+            "name": "开发人员",
+            "roleType": 0
+          },
+          {
+            "id": 96,
+            "name": "测试",
+            "roleType": 0
+          }
+        ],
+        "state": 1,
+        "username": "zhuhao",
+        "password": "e424f3cc4f8138f0f68bef092b92212f",
+        "qqNumber": "2232623707",
+        "tenantName": "测试"
+      }],
+      // 表格的loading
+      loading: false,
+      // 编辑时候的数字
+      num: 0,
+      // 控制温馨提示弹窗
+      dialogVisible: false,
+      // 倒计时初始值
+      countdown: 3,
+      // 完成???
+      params: {},
+
+    }
+  },
+  computed: {
+    userInfo() {
+      return
+    },
+  },
+  watch: {
+
+  },
+  created() {
+
+  },
+  mounted() {
+
+
+  },
+  methods: {
+    // 点击直接跳转页面
+    toRouter() {
+      this.$router.replace("/admin/rManage");
+    },
+    // 关闭温馨提示的弹窗
+    handleClose() {
+      this.dialogVisible = false;
+    },
+    //移除人员
+    removePerson(row) {
+
+    },
+    // 取消
+    cancelChoose(row) {
+
+    },
+    // 选择专利
+    chosePatentFile(row) {
+      this.$refs.checkPatent.open(this.projectId)
+    },
+    // 子组件选择的专利号数组数据 
+    checkPatentList(val) {
+      console.log(val);
+    },
+    //编辑
+    edit(row) {
+
+    },
+    //保存
+    save(row) {
+
+    },
+    // 添加人员
+    showTask() {
+
+    },
+    //完成
+    finish() {
+
+    },
+    // 添加人员
+    getPerson() {
+      this.$refs.personList.open()
+    },
+    //获取子组件返回的人员信息
+    getPersonIds({ personIds, persons }) {
+      if (personIds.length > 0) {
+        // adminPersons存储返回的人员id数组
+        // this.$set(this.form, 'involvedPersons', persons)
+        // this.$set(this.form, 'involvedPersonsIds', personIds)
+      } else {
+        // this.$set(this.form, 'involvedPersons', [])
+        // this.$set(this.form, 'involvedPersonsIds', [])
+      }
+    },
+    // 平均分配
+    handleConfirm() {
+
+    },
+
+  },
+
+}
+</script>
+
+<style lang="scss" scoped>
+.header1 {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.spanDiv {
+  display: flex;
+  justify-content: center;
+  height: 100px;
+}
+
+.spanCountdown {
+  color: red;
+  font-size: 24px;
+  margin: 10px;
+}
+
+.spanCenter {
+  margin: 0;
+  font-size: 16px;
+}
+
+.spanJump:hover {
+  cursor: pointer;
+  color: red;
+  text-decoration: underline;
+}
+
+.spanJump {
+  font-size: 16px;
+  margin: 10px 0;
+  color: #42A5F5;
+}
+</style>

+ 33 - 0
src/views/report/components/allocationTask/index.vue

@@ -0,0 +1,33 @@
+<template>
+  <!-- 分配任务 -->
+  <div>
+    <allocationTask :projectId="projectId" ></allocationTask>
+  </div>
+</template>
+
+<script>
+import allocationTask from './components/allocationTask.vue'
+export default {
+  components: {
+    allocationTask
+  },
+  data() {
+    return {
+
+    }
+  },
+  computed: {
+    projectId() {
+      return this.$route.query.projectId
+    },
+  },
+  mounted() {
+
+  },
+  methods: {
+
+  },
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 29 - 16
src/views/report/components/productResult/patentTable/patentTable.vue

@@ -1,9 +1,9 @@
 <template>
+  <!-- 选择专利弹窗 -->
   <div>
     <el-dialog title="选择专利" :visible.sync="dialogVisible" width="800px" :before-close="handleClose">
 
-      <el-table :data="tableData" border v-loading="loading"
-        style="min-width: 100%; overflow:auto">
+      <el-table :data="tableData" border v-loading="loading" style="min-width: 100%; overflow:auto">
         <el-table-column width="80" align="center">
           <template slot-scope="scope">
             <div>
@@ -30,10 +30,9 @@
         </el-table-column>
       </el-table>
 
-      <div class="pagination" v-if="choiceMark">
-        <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size"
-          :total="total" @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper"
-          background></el-pagination>
+      <div style="text-align:center;margin-top:10px">
+        <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total"
+          @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper" background></el-pagination>
       </div>
 
       <span slot="footer" class="dialog-footer">
@@ -45,9 +44,9 @@
 </template>
 
 <script>
-import { patentDetails } from '../../mixins/index2'
+import { patentDetails } from '../mixins/index2'
 export default {
-  mixins:[patentDetails],
+  mixins: [patentDetails],
   data() {
     return {
       // 控制弹窗的打开关闭
@@ -57,22 +56,25 @@ export default {
         current: 1,
         size: 10,
       },
-      total:0,
+      total: 0,
       // 表格信息
       loading: false,
       // 表格数据
-      tableData:[],
+      tableData: [],
+      checkList: [],
     }
   },
   mounted() {
 
   },
   methods: {
-    open() {
+    open(projectId) {
+      // this.getList(projectId)
       this.dialogVisible = true
     },
     // 弹窗确定
     handleSure() {
+      this.$emit('checkPatentList', this.checkList)
       this.handleClose()
     },
     // 关闭弹窗
@@ -81,20 +83,31 @@ export default {
     },
     // 获取勾选的专利的专利号
     getFunInfo(patentNo) {
-
+      if (this.checkList.length > 0) {
+        let index = this.checkList.findIndex(item => {
+          return item == patentNo
+        })
+        if (index != -1) {
+          this.checkList.push(patentNo)
+        } else {
+          this.checkList.splice(index, 1)
+        }
+      } else {
+        this.checkList.push(patentNo)
+      }
     },
     // 分页信息
     handleCurrentChange(val) {
       this.queryParams.current = val,
-      this.getList()
+        this.getList()
     },
-    getList() {
+    getList(projectId) {
       let params = {
-        
+        projectId: projectId
       }
       this.$api.query(params).then(res => {
         if (res.code == 200) {
-          this.tableData=res.data.data
+          this.tableData = res.data.data
         }
       })
     },

+ 17 - 13
src/views/report/components/dialog/addAndEditReport.vue

@@ -9,8 +9,8 @@
           <el-col :span="12">
             <template>
               <div>
-               <el-form-item v-if="form.reportType == 3" label="标的产品" prop="signProjectId">
-                   <el-autocomplete v-model="form.signProjectId" value-key="name" v-SelectLazyLoading="productLoad"
+               <el-form-item v-if="form.reportType == 3" label="标的产品" prop="signProjectIds">
+                   <el-autocomplete v-model="form.signProjectIds" value-key="name" v-SelectLazyLoading="productLoad"
                     :fetch-suggestions="querySearchProduct" placeholder="请输入标的产品" :trigger-on-focus="false"
                     @select="handleSelectProduct" @change="handleChangeProduct"
                     style="width: 100%;"></el-autocomplete>
@@ -256,11 +256,10 @@ export default {
   props: {},
   data() {
     const isExist = (rule, value, callback) => {
-      if (!this.form.signPatentNo && !this.form.signProjectId) {//没有专利号进入报错提示
+      if (!this.form.signPatentNo && !this.form.signProjectIds) {//没有专利号进入报错提示
         if ([3].includes(Number(this.form.reportType))) {
           var text = '请输入标的产品'
         } else {
-          console.log(this.form.signProjectId);
           var text = '请输入标的专利号'
         }
         callback(new Error(text))
@@ -298,7 +297,7 @@ export default {
       //表单规则
       rules: {
         name: [{ required: true, message: '请输入报告名称', trigger: 'blur' },],
-        signProjectId: [{ required: true, validator: isExist, trigger: 'blur' },],//产品
+        signProjectIds: [{ required: true, validator: isExist, trigger: 'blur' },],//产品
         signPatentNo: [{ required: true, validator: isExist, trigger: 'blur' },],//专利
         headId: [{ required: true, message: '请选择负责人', trigger: 'change' },],
         entrustId: [{ required: true, message: '请选择委托方', trigger: 'change' },],
@@ -589,6 +588,7 @@ export default {
       var a = ''
       this.form = JSON.parse(JSON.stringify(form))
       if (this.form.id) {
+        this.$set(this.form,'signProjectIds',this.form.signPatentNo || this.form.signProjectId)
         if (this.$reportPermission(this.form.id, [0, 1])) {
           a = '编辑'
         } else {
@@ -641,12 +641,12 @@ export default {
     async queryProduct() {
       let params = {
         ...this.productList.queryParams,
-        name:this.productList.name
+        searchQuery:`name=${this.productList.name}`,
       }
       await this.$api.queryProduct(params).then(res => {
         if (res.code == 200) {
-          this.productList.data.push(...res.data)
-          this.productList.queryParams.total = res.pageColumn.total
+          this.productList.data.push(...res.data.data)
+          this.productList.queryParams.total = res.data.total
           this.productList.cb(this.productList.data);
         }
       })
@@ -659,13 +659,20 @@ export default {
       this.productList.cb = cb
       await this.queryProduct()
     },
-    // 产品输入框
+    // 产品输入框输入
     handleChangeProduct(val) {
-      this.$set(this.form,'signProjectId',val)
+      this.$set(this.form, 'signPatentNo', val)
+      if (this.form.signProjectId) {
+        this.form.signProjectId=''
+      }
       this.$set(this.form, 'name', val + 'FTO调查')
     },
     // 产品输入框选择
     handleSelectProduct(val) {
+      this.$set(this.form, 'signProjectId', val.id)
+      if (this.form.signProjectId) {
+        this.form.signPatentNo=''
+      }
       this.$set(this.form, 'name', val.name + 'FTO调查')
     },
 
@@ -814,10 +821,8 @@ export default {
 
     //提交填写的信息
     submit() {
-      console.log();
       this.$refs.reportForm.validate((valid) => {
         if (valid) {
-          console.log(2);
           this.form.type = 2//项目类型(1专利数据库 2报告 3专利挖掘项目)
           // 判断文件是否都上传完毕
           this.$commonJS.allUploadFile(this.form)
@@ -861,7 +866,6 @@ export default {
               this.showTask = true
               this.$set(this.taskForm, 'name', this.form.name + '审核')
             }).catch(action => {//不审核直接创建报告
-              console.log(3);
               // 直接完成传true
               // formData.ifFinish = true
               // 调用创建报告公用,接口

+ 2 - 0
src/views/report/components/index.vue

@@ -531,6 +531,8 @@ export default {
           break
       }
     },
+    // 报告文档
+    handleFile(row){},
     //自定义栏位管理
     handleField(row) {
       this.$refs.FieldDrawer.open(row.id)

+ 153 - 112
src/views/report/components/patentList/patentList.vue

@@ -1,44 +1,58 @@
 <template>
   <div class="height_100">
     <div class="height_100" style="display:flex">
-        <div class="height_100 left">
-            <el-container>
-                <el-header style="padding:0 10px !important;">
-                    <div id="step1">
-                        <mySearch style="width:500px" :SearchFields="searchFiled" @search="search" :searchValue="searchOption"></mySearch>
-                    </div>
-                    <div>
-                        <el-dropdown id="step4" trigger="click" split-button type="primary" size="small" @click="handleFieldManage" @command="handleCommand($event)">
-                            <span v-disabled="false">显示栏位管理</span>
-                            <el-dropdown-menu slot="dropdown" class="text-align_center">
-                                <el-dropdown-item command="1">任务分配</el-dropdown-item>
-                                <el-dropdown-item>
-                                    <el-dropdown trigger="hover" placement="right-start" @command="handleCommand($event)">
-                                        <p>导入专利<i class="el-icon-arrow-right el-icon--right"></i></p>
-                                        <el-dropdown-menu slot="dropdown">
-                                            <el-dropdown-item command="2">专利号导入</el-dropdown-item>
-                                            <el-dropdown-item command="3">Excel导入</el-dropdown-item>
-                                            <el-dropdown-item command="4">检索导入</el-dropdown-item>
-                                        </el-dropdown-menu>
-                                    </el-dropdown>
-                                </el-dropdown-item>
-                            </el-dropdown-menu>
-                        </el-dropdown>
-                    </div>
-                </el-header>
-                <el-main>
-                    <component :is='components' :tableData="tableData" :column="fieldList" :projectId="projectId" @on-sort="handleSort" :queryParams="queryParams"></component>
-                </el-main>
-                <el-footer class="pagination">
-                    <el-pagination background layout="total, sizes, prev, pager, next, jumper"
-                        :current-page.sync="queryParams.current" :page-sizes="sizeArr" :page-size.sync="queryParams.size"
-                        @current-change="handleCurrentChange" @size-change="getList" :total="total">
-                    </el-pagination>
-                </el-footer>
-            </el-container>
-        </div>
-        <div class="height_100 right" v-if="showRight"></div>
+      <div class="height_100" :style="{width:showRight?'calc( 100% - 200px )':'100%'}">
+        <el-container>
+          <el-header style="padding:0 10px !important;">
+            <div id="step1">
+              <mySearch style="width:500px" :SearchFields="searchFiled" @search="search" :searchValue="searchOption">
+              </mySearch>
+            </div>
+            <div style="display:flex;align-items:center">
+              <el-dropdown id="step4" trigger="click" split-button type="primary" size="small" @click="handleFieldManage"
+                @command="handleCommand($event)">
+                <span v-disabled="false">显示栏位管理</span>
+                <el-dropdown-menu slot="dropdown" class="text-align_center">
+                  <el-dropdown-item command="1">任务分配</el-dropdown-item>
+                  <el-dropdown-item>
+                    <el-dropdown trigger="hover" placement="right-start" @command="handleCommand($event)">
+                      <p>导入专利<i class="el-icon-arrow-right el-icon--right"></i></p>
+                      <el-dropdown-menu slot="dropdown">
+                        <el-dropdown-item command="2">专利号导入</el-dropdown-item>
+                        <el-dropdown-item command="3">Excel导入</el-dropdown-item>
+                        <el-dropdown-item command="4">检索导入</el-dropdown-item>
+                      </el-dropdown-menu>
+                    </el-dropdown>
+                  </el-dropdown-item>
+                </el-dropdown-menu>
+              </el-dropdown>
+              <div>
+                <el-tooltip class="item" effect="dark" :content="(showRight ? '隐藏' : '显示') + '右侧自定义栏位'" placement="top">
+                  <i :class="showRight ? 'el-icon-s-unfold' : 'el-icon-s-fold'"
+                    style="font-size: 25px; margin-left: 10px;color: #2f2f2f; cursor: pointer"
+                    @click="showRight = !showRight"></i>
+                </el-tooltip>
+              </div>
+            </div>
+          </el-header>
+          <el-main class="height_100" style="width: 100%;">
+            <component :is='components' :tableData="tableData" :column="fieldList" :projectId="projectId"
+              @on-sort="handleSort" :queryParams="queryParams"></component>
+          </el-main>
+          <el-footer class="pagination">
+            <el-pagination background layout="total, sizes, prev, pager, next, jumper"
+              :current-page.sync="queryParams.current" :page-sizes="sizeArr" :page-size.sync="queryParams.size"
+              @current-change="handleCurrentChange" @size-change="getList" :total="total">
+            </el-pagination>
+          </el-footer>
+        </el-container>
+      </div>
+      <div class="height_100 right" v-if="showRight" :style="{'min-width':showRight?'200px':'0px'}">
+        <customFields :projectId="projectId"></customFields>
+      </div>
     </div>
+
+
     <field ref="field" type="patentProject" @getFieldList="getFieldList"></field>
   </div>
 </template>
@@ -46,76 +60,93 @@
 <script>
 import field from '@/views/components/dialog/fields.vue';
 import PatentTableListView from '@/views/project/patentCollection/components/views/Table.vue'
+import customFields from '../patentListTask/components/customFields.vue';
 export default {
   components: {
     field,
-    PatentTableListView
+    PatentTableListView,
+    customFields,
   },
   props: {
-    projectId:{
-        default:0
+    projectId: {
+      default: 0
     }
   },
   data() {
     return {
-        //显示组件
-        components:'PatentTableListView',
-        //显示右侧
-        showRight:false,
-        //检索字段
-        searchFiled: [],
-        //检索条件
-        searchOption: {},
-        //专利数据库数据总数
-        total: 0,
-        //分页信息
-        queryParams: {
-            size: 10,
-            current: 1,
-        },
-        //页大小
-        sizeArr: [10, 20, 30, 40, 50, 100],
-        //排序
-        sort: [
-            {
-                "orderBy": "createTime",
-                "orderType": 1
-            } 
-        ],
-        //专利列表
-        tableData:[],
-        //显示栏位
-        fieldList:[]
+      //显示组件
+      components: 'PatentTableListView',
+      //显示右侧
+      showRight: false,
+      //检索字段
+      searchFiled: [],
+      //检索条件
+      searchOption: {},
+      //专利数据库数据总数
+      total: 0,
+      //分页信息
+      queryParams: {
+        size: 10,
+        current: 1,
+      },
+      //页大小
+      sizeArr: [10, 20, 30, 40, 50, 100],
+      //排序
+      sort: [
+        {
+          "orderBy": "createTime",
+          "orderType": 1
+        }
+      ],
+      //专利列表
+      tableData: [],
+      //显示栏位
+      fieldList: []
     };
   },
   watch: {},
   computed: {},
-  created() {},
+  created() { },
   async mounted() {
     this.fieldList = await this.$commonJS.getCustomField('patent')
     this.getList()
   },
   methods: {
-    search(){
-        let params = {}
-        val.forEach(item => {
-            if (item.type == 3) {
-            params[item.value] = item.searchValue.map(itemValue => {
-                return itemValue.value
-            })
-            } else {
-            params[item.value] = item.searchValue.label
-            }
-        })
-        // 返回字符串
-        this.searchOption = params
-        // 调用查询接口
-        this.queryParams.current = 1
-        this.getList()
+    // 搜索
+    search() {
+      let params = {}
+      val.forEach(item => {
+        if (item.type == 3) {
+          params[item.value] = item.searchValue.map(itemValue => {
+            return itemValue.value
+          })
+        } else {
+          params[item.value] = item.searchValue.label
+        }
+      })
+      // 返回字符串
+      this.searchOption = params
+      // 调用查询接口
+      this.queryParams.current = 1
+      this.getList()
     },
     //获取专利列表
-    getList(){
-
+    getList() {
+      let params = {
+        ...this.queryParams,//分页信息
+        projectId: this.projectId,
+        searchQuery: this.$commonJS.objectToString(this.searchOption),//检索条件
+        orderDTOList: this.sort,//排序信息
+      }
+      this.$api.QueryPatent(params).then(res => {
+        if (res.code == 200) {
+          this.tableData = res.data.data
+          this.total = res.data.total
+        }
+      }).catch(error => {
+        this.tableData = []
+        this.total = 0
+      })
     },
     //排序
     handleSort({ column, prop, order }) {
@@ -136,34 +167,43 @@ export default {
       this.getList();
     },
     //下拉按钮
-    handleCommand(option){
-        switch(option){
-            case '1'://分配任务
-
-                break;
-            case '2'://专利号导入
-                this.patentImport(1)
-                break;
-            case '3'://excel导入
-                this.patentImport(2)
-                break;
-            case '4'://检索导入
-                this.patentImport(4)
-                break;
+    handleCommand(option) {
+      switch (option) {
+        case '1'://分配任务
+          this.toAllocationTask()
+          break;
+        case '2'://专利号导入
+          this.patentImport(1)
+          break;
+        case '3'://excel导入
+          this.patentImport(2)
+          break;
+        case '4'://检索导入
+          this.patentImport(4)
+          break;
+      }
+    },
+    // 去分配任务页面
+    toAllocationTask() {
+      this.$router.push({
+        path: '/allocationTask',
+        query: {
+          projectId: this.projectId,
         }
+      })
     },
     //专利导入
-    patentImport(type){
+    patentImport(type) {
       var form = {
-        importToId:this.projectId,
-        importToType:0,
-        type:type,
+        importToId: this.projectId,
+        importToType: 1,
+        type: type,
       }
-      this.$commonJS.toImportParent(form,type)
+      this.$commonJS.toImportParent(form, type)
     },
     //显示栏位管理
-    handleFieldManage(){
-        this.$refs.field.open(this.fieldList)
+    handleFieldManage() {
+      this.$refs.field.open(this.fieldList)
     },
     //获取自定义栏位
     getFieldList(data) {
@@ -173,10 +213,11 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
-.left{
-    width:100%
+.left {
+  width: 100%
 }
-.right{
-    width:100%
+
+.right {
+  width: 100%
 }
 </style>

+ 44 - 3
src/views/components/patent/components/customFields.vue

@@ -73,7 +73,11 @@
 
 export default {
   // mixins: [patentQueryMixins],
-  // props:["reportId","taskId","isHidden"],
+  props: {
+    projectId: {
+      default: 0
+    }
+  },
   data() {
     return {
       // isHidden: true,// 是都显示已读、未读、全部
@@ -99,17 +103,54 @@ export default {
       queryParams: {
         current: 1,
         size: 10,
-        total: 0,
+       
       },
+      total: 0,
+      // 自定义栏位
+      field:this.customFieldList||[]
     }
   },
   watch: {
 
   },
   mounted() {
-
+    this.getList()
   },
   methods: {
+    // 查询自定义栏位数据
+    getList() {
+      var params = {
+        ...this.queryParams,
+        searchQuery: `projectId=${this.projectId}`,
+        orderDTOList: [],
+      }
+      this.$api.queryCustomField(params).then(response => {
+        if (response.code == 200) {
+          let data = response.data.data
+          this.handleFiled(data)
+        }
+      }).catch(error => {
+        this.loading = false
+      })
+    },
+    handleFiled(data) {
+      data.forEach(item => {
+        this.queryCustomOption(item.id)
+      })
+    },
+    // 查询自定义栏位选项数据
+    queryCustomOption(id) {
+      let params = {
+        customFieldId: id,
+      }
+      this.$api.queryCustomOption(params).then(response => {
+        if (response.code == 200) {
+          console.log();  
+        }
+      }).catch(error => {
+        
+      })
+    },
     // 加载更多
     handleLoadMore(){},
     // 全选

src/views/components/patent/components/index.vue → src/views/report/components/patentListTask/components/index.vue


+ 1 - 0
src/views/components/patent/index.vue

@@ -1,4 +1,5 @@
 <template>
+  <!--  -->
   <div>
 
   </div>

+ 8 - 16
src/views/report/components/productResult/productResult.vue

@@ -140,18 +140,6 @@
       </el-main>
     </el-container>
 
-    <!-- 选择专利弹窗 -->
-    <el-dialog title="选择专利" :visible.sync="dialogVisible" width="800px" :before-close="handleClose">
-
-      <patentTable :projectId="projectId"
-        @choiceFormSelected="handleChoice"></patentTable>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="handleClose">取 消</el-button>
-        <el-button type="primary" @click="handleSure">确 定</el-button>
-      </span>
-    </el-dialog>
-
     <!-- 创建报告组件 -->
     <CreateReport ref="ReportForm"></CreateReport>
 
@@ -159,7 +147,7 @@
     <teamwork ref="teamwork"></teamwork>
 
     <!-- 专利列表弹窗 -->
-    <patentTable ref="patentTable"></patentTable>
+    <checkPatent ref="checkPatent" @checkPatentList="checkPatentList"></checkPatent>
 
   </div>
 </template>
@@ -167,12 +155,12 @@
 <script>
 import CreateReport from '@/views/report/components/dialog/addAndEditReport.vue'
 import teamwork from "@/views/report/components/dialog/teamwork.vue"
-import patentTable from "./patentTable/patentTable.vue"
+import checkPatent from "../checkPatent/checkPatent.vue"
 export default {
   components: {
     CreateReport,
     teamwork,
-    patentTable,
+    checkPatent,
   },
   props: ['projectId', 'patentNo', "reportType"],
   data() {
@@ -276,9 +264,13 @@ export default {
         //侵权分析
         this.$refs.teamwork.open()
       } else {
-        this.$refs.patentTable.open()//选择专利框打开
+        this.$refs.checkPatent.open()//选择专利框打开
       }
     },
+    // 子组件传的勾选的值 
+    checkPatentList(val) {
+      console.log(val);
+    },
     // 选择专利弹窗确定
     handleSure(){},
     // 选择专利弹窗关闭

+ 27 - 21
src/views/report/components/splitPage/splitPage.vue

@@ -152,6 +152,7 @@ export default {
       }
     },
     isResult: '',
+    reportType:'',
   },
   data() {
     return {
@@ -405,10 +406,10 @@ export default {
         })
         let splitDisable = this.splitDisable()
         if (!splitDisable) {
-          this.$message.error('您勾选的特征已填写对比结果信息,无法对勾选的特征进行合并、拆分等操作')
           return false
         }
         // 将内容合并起来
+        this.scopeRow[0].ifChange=true
         this.scopeRow.forEach((rowItem, rowIndex) => {
           for (let m = 0; m < arr.length; m++) {
             merge[arr[m]] = merge[arr[m]] + rowItem[arr[m]]
@@ -446,12 +447,12 @@ export default {
         }
         let splitDisable = this.splitDisable()
         if (!splitDisable) {
-          this.$message.error('您勾选的特征已填写对比结果信息,无法对勾选的特征进行合并、拆分等操作')
           return false
         }
         var rowId = Math.floor((Math.random() * 9999) + 1000);
         var arr = this.columnMerge()
         this.scopeRow.forEach((rowItem, rowIndex) => {
+          rowItem.ifChange=true
           // 将字段的值给到拆分新数据
           var splitAdd = JSON.parse(JSON.stringify(rowItem))
           splitAdd.featureId = rowItem.featureId + rowId + "a"
@@ -468,32 +469,37 @@ export default {
         this.checkList = []
       }
     },
+    // 侵权分析或FTO有对比结果禁止进行合并、拆分操作
     splitDisable() {
-      var arr = this.columnMerge()
-      for (let a = 0; a < this.scopeRow.length; a++) {
-        var b = true
-        for (let c = 0; c < arr.length; c++) {
-          if (this.scopeRow[a].hasOwnProperty(arr[c])) {
-            b = false
-          } else {
-            b = true
+      if (this.reportType == 5) {
+        return true
+      }
+      try {
+        for (var i = 0; i < this.scopeRow.length; i++){
+          for (var j = 0; j < this.columnList.length; j++){
+            var str = this.getColumnData(this.scopeRow[i], this.columnList[j])
+            if (str != 0 && !str) {
+              
+            } else {
+              throw Error();
+            }
           }
         }
-        if (!b) {
-          return false
-        } else {
-          return true
-        }
+        return true
+      }
+      catch (e) {
+        this.$message.error('您勾选的特征已填写对比结果信息,无法对勾选的特征进行合并、拆分等操作')
+        return false
       }
     },
     // 拆分或合并后重新排序
     handleSort(rightSort) {
-      var data = this.tableData2.filter(item => {
-        return item.rightSort == rightSort
-      })
-      for (var i = 0; i < data.length; i++) {
-        data[i].sysOrder = i + 1
-      }
+      // var data = this.tableData2.filter(item => {
+      //   return item.rightSort == rightSort
+      // })
+      // for (var i = 0; i < data.length; i++) {
+      //   data[i].sysOrder = i + 1
+      // }
     },
     // 协同对比结果高亮
     checkDel({ row, rowIndex }) {

+ 1 - 1
src/views/report/components/view/card.vue

@@ -21,7 +21,7 @@
                   <el-dropdown-item command="15" v-if="[2].includes(item.status) && [3,4].includes(item.reportType) && $reportPermission(item.id,[0,1])">产品信息录入</el-dropdown-item>
                   <el-dropdown-item command="8" v-if="(item.reportType == 4 && [2].includes(item.status)) && $reportPermission(item.id,[0,1])">专利与产品关联比对</el-dropdown-item>
                   <el-dropdown-item command="9" v-if="(item.reportType == 5 && [2].includes(item.status)) && $reportPermission(item.id,[0,1])"> 规避方案填写</el-dropdown-item>
-                  <el-dropdown-item command="10" v-if="[0,1,2,3].includes(item.reportType)&&[2].includes(item.status) && $reportPermission(item.id,[0,1])"> 相关对比文件</el-dropdown-item>
+                  <el-dropdown-item command="10" v-if="[3].includes(item.reportType)&&[2].includes(item.status) && $reportPermission(item.id,[0,1])"> 相关对比文件</el-dropdown-item>
                   <el-dropdown-item command="11" v-if="[2].includes(item.status) && $reportPermission(item.id,[0,1])"> 完成报告</el-dropdown-item>
                   <el-dropdown-item command="12" v-if="[3].includes(item.status) && $reportPermission(item.id,[0,1])">添加追踪报告</el-dropdown-item>
                   <el-dropdown-item command="13" v-if="(item.reportType == 7 && [2,3].includes(item.status)) && $reportPermission(item.id,[0,1])">添加无效理由和证据</el-dropdown-item>

+ 1 - 1
src/views/report/components/view/table.vue

@@ -37,7 +37,7 @@
               <el-dropdown-item command="15" v-if="[2].includes(scope.row.status) && [3,4].includes(scope.row.reportType) && $reportPermission(scope.row.id,[0,1])">产品信息录入</el-dropdown-item>
               <el-dropdown-item command="8" v-if="(scope.row.reportType == 4 && [2].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])">专利与产品关联比对</el-dropdown-item>
               <el-dropdown-item command="9" v-if="(scope.row.reportType == 5 && [2].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])"> 规避方案填写</el-dropdown-item>
-              <el-dropdown-item command="10" v-if="[0,1,2,3,4].includes(scope.row.reportType)&&[2,3].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])"> 相关对比文件</el-dropdown-item>
+              <el-dropdown-item command="10" v-if="[3].includes(scope.row.reportType)&&[2,3].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])"> 相关对比文件</el-dropdown-item>
               <el-dropdown-item command="11" v-if="[2].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])"> 完成报告</el-dropdown-item>
               <el-dropdown-item command="12" v-if="[3].includes(scope.row.status) && $reportPermission(scope.row.id,[0,1])">添加追踪报告</el-dropdown-item>
               <el-dropdown-item command="13" v-if="(scope.row.reportType == 7 && [2,3].includes(scope.row.status)) && $reportPermission(scope.row.id,[0,1])">添加无效理由和证据</el-dropdown-item>