Browse Source

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

zhuhao 1 năm trước cách đây
mục cha
commit
0252909a1d

+ 10 - 0
src/router/index.js

@@ -259,6 +259,16 @@ const routes = [
             },
             component: () => import('@/views/report/index.vue'),
           },
+          {
+            path:'/reportDetails',
+            name:'reportDetails',
+            meta: {
+              title: '报告详情',
+              sign:'reportDetails',
+              belong:'AllReport'
+            },
+            component: () => import('@/views/report/components/details'),
+          },
       //     //无效分析、第三方意见、稳定性分析
       //     {
       //       path: '/InvalidIndex',

+ 0 - 176
src/views/home/components/carousels/carousel_1.vue

@@ -1,176 +0,0 @@
-<template>
-    <div>
-        <div style="display:flex;flex-direction: column;align-items: center;">
-            <p>遇到知识产权事情了怎么办?</p>
-            <p>没关系,请<el-link type="primary" style="font-size: 16px;vertical-align:baseline" @click="open">点击</el-link>我,让我来帮助你</p>
-        </div>
-        <el-dialog
-            :visible.sync="dialogVisible"
-            width="600px"
-            custom-class="event"
-            :before-close="handleClose"
-            append-to-body>
-            <!-- <el-carousel ref="carouselRef" trigger="click" height="200px" width="300px" arrow="never" :autoplay="false" indicator-position="none">
-                <el-carousel-item v-for="item in step" :key="item" style="text-align:center;">
-                    <div v-if="index == 0" class="items">
-                        <div>
-                            <p>您遇到的事情是什么:</p>
-                            <el-input v-model="form.questionName" placeholder="请输入事件"></el-input>
-                        </div>
-                    </div>
-                    <div v-if="index == 1"  class="items">
-                        <div>
-                            <p>什么时间遇到的:</p>
-                            <el-date-picker
-                                v-model="form.eventDate"
-                                type="date"
-                                value-format="yyyy-MM-dd"
-                                placeholder="选择日期">
-                            </el-date-picker>
-                        </div>
-                    </div>
-                    <div v-if="index == 2"  class="items">
-                        <div>
-                            <p>什么场景下遇到的:</p>
-                            <el-select v-model="form.applicationScenarios" multiple  style="width: 100%;" placeholder="请选择事件场景">
-                                <el-option
-                                    v-for="item in commonData.ENTERPRISE_APPLICATION_SCENARIO ? commonData.ENTERPRISE_APPLICATION_SCENARIO : []"
-                                    :key="parseInt(item.value)" :label="item.label" :value="parseInt(item.value)"
-                                >
-                                </el-option>
-                            </el-select>
-                        </div>
-                    </div>
-                </el-carousel-item>
-            </el-carousel> -->
-            <addQuestion @formData="handleFormData" :type="type" @resetClose="handleClose"></addQuestion>
-            <!-- <span slot="footer" class="dialog-footer">
-                <el-button @click="setActiveItem(0)" v-if="index!=0">上一步</el-button>
-                <el-button @click="setActiveItem(1)" v-if="index!=step && index!=step-1">下一步</el-button>
-                <el-button type="primary" @click="submit" v-if="index==step-1" style="width:84px">确认</el-button>
-            </span> -->
-        </el-dialog>
-    </div>
-  
-</template>
-
-<script>
-import addQuestion from '@/views/questionEvent/components/addQuestion.vue';
-export default {
-  components: {
-    addQuestion
-  },
-  props: {},
-  data() {
-    return {
-        index:0,
-        step:3,
-        dialogVisible:false,
-        form:{},
-        commonData:{},
-        type:1
-    };
-  },
-  watch: {},
-  computed: {},
-  created() {},
-  mounted() {},
-  methods: {
-    setActiveItem(val){
-        if(val){
-            this.index +=1
-        }else{
-            this.index -=1
-        }
-        const carousel = this.$refs.carouselRef;
-        carousel.setActiveItem(this.index);
-    },
-    open(){
-        this.type = 0
-        this.$nextTick(()=>{
-            this.type=1
-            this.dialogVisible = true
-            this.getCommonData()
-        })
-        
-    },
-    submit(){
-        console.log(this.form)
-        this.$router.push({
-            path: '/questionEvent'
-        })
-    },
-    handleClose(){
-        this.dialogVisible = false
-        this.index = 0
-    },
-    async getCommonData() {
-      await this.$api.getCommonData({ keys: 'QUERY_GROUP,ENTERPRISE_APPLICATION_SCENARIO,INVESTIGATION_TYPE' }).then(response => {
-        this.commonData = response.data
-      })
-    },
-
-    //新增事件
-    handleFormData({ list, option,edit }) {
-      let lists = JSON.parse(JSON.stringify(list))
-      if(lists.length == 0){
-        this.handleClose()
-        return false
-      }
-      this.forms = {
-        projectId: this.projectId,
-        eventAddNewDTOs:lists
-      }
-      if(edit){
-        return false
-      }
-      this.$api.eventAddNew(this.forms).then(res => {
-        if (res.code == 200) {
-        //   this.getList()
-          this.$message.success('事件新增成功')
-          this.visualRouter(lists)//跳转
-          this.handleClose()
-        }
-      }).catch(error => {
-        this.$message.error(error.message)
-      })
-
-    },
-    visualRouter(val){
-        if(val.length ==1){
-            if( val[0].applicationScenarios.length == 0){
-                return false
-            }
-            var visuals = {
-                Scenario:null,
-                eventId:null,
-                eventName:val[0].questionName
-            }
-            this.$router.push({
-                path:'/eventVisual',
-                query:{
-                    visuals:JSON.stringify(visuals)
-                }
-            })
-        }
-    },
-  },
-};
-</script>
-<style lang="scss">
-    .event{
-        .el-dialog__body{
-            padding:20px 20px ;
-        }
-    }
-</style>
-<style lang="scss" scoped>
-
-.items{
-    height: 100%;
-    display:flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-}
-</style>

+ 0 - 48
src/views/home/components/carousels/carousel_2.vue

@@ -1,48 +0,0 @@
-<template>
-    <div>
-        <div style="display:flex;flex-direction: column;align-items: center;">
-            <p>不知道怎么查找专利?</p>
-            <p><el-link type="primary" style="font-size: 16px;vertical-align:baseline" @click="open">点击</el-link>我,让我带你去</p>
-        </div>
-    </div>
-  
-</template>
-
-<script>
-export default {
-  components: {},
-  props: {},
-  data() {
-    return {
-    };
-  },
-  watch: {},
-  computed: {},
-  created() {},
-  mounted() {},
-  methods: {
-    open(){
-        this.$router.push({
-            path: '/conditionImport',
-        })
-        },
-  },
-};
-</script>
-<style lang="scss">
-    .event{
-        .el-dialog__body{
-            padding:10px 20px ;
-        }
-    }
-</style>
-<style lang="scss" scoped>
-
-.items{
-    height: 100%;
-    display:flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-}
-</style>

+ 0 - 62
src/views/home/components/tabs.vue

@@ -1,62 +0,0 @@
-<template>
-  <div>
-    <div id="step3">
-      <el-tabs v-model="activeName" @tab-click="handleClick">
-        <el-tab-pane label="事件" name="event">
-          <eventTable :isOperate="1" :tableData="tableData"></eventTable>
-        </el-tab-pane>
-        <el-tab-pane label="专利数据库" name="project">
-          <projectTable :isOperate="1" :tableData="tableData"></projectTable>
-        </el-tab-pane>
-        <el-tab-pane label="报告" name="report">
-          <reportTable :isOperate="1" :tableData="tableData"></reportTable>
-        </el-tab-pane>
-        <el-tab-pane label="我的任务" name="task">
-          <taskTable :tableData="tableData"></taskTable>
-        </el-tab-pane>
-      </el-tabs>
-    </div>
-    <div>
-      <el-link class="link" @click="seeMore">查看更多> > ></el-link>
-    </div>
-  </div>
-</template>
-
-<script>
-import eventTable from '@/views/event/components/view/table.vue';
-import projectTable from '@/views/project/components/view/table.vue';
-import reportTable from '@/views/report/components/view/table.vue';
-import taskTable from '@/views/task/components/view/table.vue';
-export default {
-  components: {
-    eventTable,
-    projectTable,
-    reportTable,
-    taskTable,
-  },
-  props: {},
-  data() {
-    return {
-        activeName: 'event',
-        tableData:[]
-    };
-  },
-  watch: {},
-  computed: {},
-  created() {},
-  mounted() {},
-  methods: {
-    //切换tag获取数据
-    handleClick() { },
-    // 点击查看更多
-    seeMore() {},
-  },
-};
-</script>
-<style lang="scss" scoped>
-    .link {
-      float: right;
-      margin-top: 10px;
-      color: #409EFF;
-    }
-</style>

+ 0 - 132
src/views/project/patentCollection/components/filter/Folder.vue

@@ -1,132 +0,0 @@
-<template>
-  <div class="patent-folder-filter">
-    <div class="patent-folder-filter-option">
-      <el-input :style="{ width: true ? '180px' : '220px'}" v-model="queryParams.name" placeholder="请输入文件夹名称" size="small"></el-input>
-      <div class="float_right">
-        <el-button type="primary" size="small" icon="el-icon-search" circle @click="handleSearch"></el-button>
-        <el-button type="success" size="small" icon="el-icon-edit" circle @click="handleManage" :disabled="!($permission('/workspace/common/folder_manage') && $r(projectId,[1,2]))"></el-button>
-      </div>
-    </div>
-    <el-tree
-        v-if="refresh"
-        class="folder-tree"
-        @node-click="handleSelect"
-        ref="patentFolderFilterTree"
-        :data="folder"
-        node-key="id"
-        default-expand-all
-        check-strictly
-        :expand-on-click-node="false"
-        highlight-current
-        :current-node-key="activeItem"
-    >
-      <div class="custom-filter-tree-node" slot-scope="{ node, data }">
-        <span class="name">{{ data.name }}</span>
-        <span class="total">(<span>{{ data.total }}</span>)</span>
-      </div>
-    </el-tree>
-    <folder-dialog @close="close" ref="folderDialog" />
-  </div>
-</template>
-
-<script>
-import FolderDialog from '../../../components/dialog/Folder'
-
-export default {
-  components: {
-    FolderDialog,
-  },
-  data() {
-    return {
-      folder: [],
-      queryParams: {
-        name: '',
-        projectId: 0,
-        patentTotal: true
-      },
-      activeItem: 0,
-      refresh: true
-    }
-  },
-  computed: {
-    projectId() {
-      return this.$store.state.patent.projectId
-    },
-    queryData() {
-      return this.$store.state.patent.queryData
-    }
-  },
-  mounted() {
-    this.queryParams.projectId = this.projectId
-    this.getList()
-  },
-  methods: {
-    updateQueryDataFolder(data) {
-      this.$store.commit('SET_PATENT_QUERY_DATA', [])
-      const index = this.queryData.map(item => item.type).indexOf('folder')
-      const value = {
-        data: [{
-          value: data.id,
-          label: data.name,
-        }],
-        type: 'folder',
-        key: 'folder',
-        name: '文件夹'
-      }
-      if (index === -1) {
-        this.queryData.push(value)
-      } else {
-        this.$set(this.queryData, index, value)
-      }
-    },
-    handleSelect(data) {
-      this.activeItem = data.id
-      this.updateQueryDataFolder(data)
-      this.$emit('on-change', data.id)
-    },
-    close() {
-      this.getList()
-    },
-    getList() {
-      this.refresh = false
-      this.$api.getProjectFolderList(this.queryParams).then(response => {
-        this.folder = response.data
-        this.$nextTick(() => {
-          this.refresh = true
-        })
-      })
-    },
-    refreshView() {
-      this.activeItem = 0
-      this.refresh = false
-      this.$nextTick(() => {
-        this.refresh = true
-      })
-    },
-    handleSearch() {
-      this.getList()
-    },
-    handleManage() {
-      this.$refs.folderDialog.open(this.queryParams.projectId)
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-.patent-folder-filter {
-  .patent-folder-filter-option {
-    margin-bottom: 10px;
-  }
-  .folder-tree {
-    .el-tree-node__content {
-      height: 45px;
-      color: #000;
-    }
-  }
-  .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
-    background: #ecf5ff !important;
-    color: #409EFF!important;
-  }
-}
-</style>

+ 0 - 4
src/views/project/patentCollection/components/filter/Query.vue

@@ -58,7 +58,6 @@
       </el-main>
       <el-footer class="patent-query-filter-footer">
         <el-button type="primary" size="small" @click="handleMoreQuery">更多过滤项</el-button>
-        <el-button type="warning" size="small" @click="handleTextQuery" class="margin-right_10">文本筛选</el-button>
       </el-footer>
     </el-container>
 
@@ -90,18 +89,15 @@
       </div>
     </el-dialog>
 
-    <patent-text-query-filter ref="patentTextQueryFilter" @submit="handleTextSearch" />
   </div>
 </template>
 
 <script>
 import { patentQueryMixins } from "../mixins";
-import PatentTextQueryFilter from "../dialog/PatentTextQueryFilter";
 
 export default {
   mixins: [patentQueryMixins],
   components: {
-    PatentTextQueryFilter
   },
   data() {
     return {

+ 1 - 1
src/views/project/patentCollection/components/views/Table.vue

@@ -10,7 +10,7 @@
       <el-table-column v-for="item in column.filter(item => !item.ifHidden)" :render-header="$commonJS.renderHeaderMethods"
         :key="item.value" :prop="item.value" :label="item.name" sortable="custom" align="center">
         <template slot-scope="scope">
-          <div v-if="['name'].includes(item.value)">
+          <div v-if="['patentNo'].includes(item.value)">
             <el-link type="primary" @click="handleClick(scope.row, item.value)">
               <span v-html="$commonJS.getColumnData(scope.row, item)"></span>
             </el-link>

+ 9 - 18
src/views/project/patentCollection/index.vue

@@ -112,6 +112,7 @@
     </el-container>
 
     <Field-Drawer ref="FieldDrawer"></Field-Drawer>
+    <field ref="field" type="patent" @getFieldList="getFieldList"></field>
   </div>
 </template>
 
@@ -122,12 +123,14 @@ import PatentAbstractListView from './components/views/Abstract'
 import PatentTableListView from './components/views/Table.vue'
 import PatentPictureListView from './components/views/Picture'
 // import PatentPDFListView from './components/views/PDF.vue'
+import field from '@/views/components/dialog/fields.vue';
 export default {
   components: {
     FieldDrawer,
     PatentAbstractListView,
     PatentTableListView,
-    PatentPictureListView
+    PatentPictureListView,
+    field
   },
   props: {},
   data() {
@@ -297,29 +300,17 @@ export default {
       this.getList();
     },
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
     //自定义栏位管理
     handleField() {
       this.$refs.FieldDrawer.open(5)
     },
+    //获取自定义栏位
+    getFieldList(data) {
+      this.customList = data
+    },
     //显示栏位管理
     async handleFieldManage() {
-      this.$refs.patentViewField.open(this.patentViewField, this.projectId, this.viewSelected)
+      this.$refs.field.open(this.customList)
     },
     //批量上传说明书
     handleBatch() {

+ 11 - 4
src/views/project/patentDetails/components/menu.vue

@@ -9,7 +9,7 @@
               <patent-keywords-highlight :project-id="projectId" />
             </el-popover>
             <el-tooltip content="返回专题库专利清单" placement="top">
-              <el-button size="small" @click="handleClick"><i class="iconfont icon-fanhui"></i></el-button>
+              <el-button size="small" @click="goBack()"><i class="iconfont icon-fanhui"></i></el-button>
             </el-tooltip>
             <el-tooltip :content="isRight ? '设置菜单栏为左侧' : '设置菜单栏为右侧'" placement="top">
               <el-button size="small" class="articles-Loop" @click="isRight = !isRight">
@@ -44,7 +44,7 @@
       <div v-else class="articles-Loop-div">
         <el-tooltip content="返回专题库专利清单" placement="right">
           <div class="articles-Loop">
-            <i class="iconfont icon-fanhui"></i>
+            <i class="iconfont icon-fanhui" @click="goBack()"></i>
           </div>
         </el-tooltip>
         <el-tooltip :content="isRight ? '设置菜单栏为左侧' : '设置菜单栏为右侧'" placement="right-end">
@@ -66,7 +66,7 @@
           </el-popover>
         </el-tooltip>
         <el-tooltip content="对比" placement="right-end">
-          <div class="articles-Loop" @click="value = !value" :style="{ background: value ? '#9cb2e5' : 'white' }">
+          <div class="articles-Loop" @click="contrast()" :style="{ background: value ? '#9cb2e5' : 'white' }">
             <i v-if="!value" class="iconfont icon-duibi"></i>
             <i v-else class="iconfont icon-duibi1"></i>
           </div>
@@ -119,12 +119,19 @@ export default {
     //分页
     handleCurrentChange(val){
         this.queryParams.current = val
+    },
+    goBack(){
+
+    },
+    contrast(){
+      this.value = !this.value
+      this.$emit('contrast',this.value)
     }
   },
 };
 </script>
 <style lang="scss" scoped>
-.articles_menu{
+.article_menu{
 .articles-Loop-div {
     width: 51px;
     height: 100%;

+ 1 - 1
src/views/project/patentDetails/components/patentDetails.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="height_100">
     <el-container>
         <el-header style="min-height: 100px !important;height: auto;">
             <div class="patent-articles-title-box">

+ 8 - 3
src/views/project/patentDetails/index.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="height_100 article">
-    <articleMenu></articleMenu>
+    <articleMenu @contrast="contrast"></articleMenu>
     <div class="height_100">
-        <my-View>
+        <my-View :showView="showView">
             <div slot="left">
               <Patent-Details></Patent-Details>
             </div>
@@ -26,13 +26,18 @@ export default {
   props: {},
   data() {
     return {
+      showView:false,
     };
   },
   watch: {},
   computed: {},
   created() {},
   mounted() {},
-  methods: {},
+  methods: {
+    contrast(val){
+      this.showView = val
+    }
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 21 - 0
src/views/report/components/details/components/basicMessage.vue

@@ -0,0 +1,21 @@
+<template>
+  <div></div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 55 - 15
src/views/report/components/details/index.vue

@@ -1,6 +1,19 @@
 <template>
-  <div>
-    <component :is='componentName'></component>
+  <div class="height_100">
+    <el-container>
+      <el-aside width="200px">
+        <el-menu class="theme-dark" :default-active="activeMenu" @select="changeComponent">
+          <el-menu-item v-for="item in menuList" :key="item.name" :index="item.name" v-if="!item.show">
+            <i class="el-icon-film"></i>
+            <span slot="title">{{item.label}}</span>
+          </el-menu-item>
+        </el-menu>
+      </el-aside>
+      <el-main>
+        <component :is='componentName'></component>
+      </el-main>
+    </el-container>
+    
   </div>
 </template>
 
@@ -10,8 +23,20 @@ export default {
   props: {},
   data() {
     return {
+        activeMenu:'Table',
         componentName:'',
-        menu:[],
+        menuList:[
+          {
+            label:'基本信息',
+            name:'Table',
+            path:'report/components/details/components/basicMessage.vue'
+          },
+          {
+            label:'任务清单',
+            name:'task',
+            path:'task/components/index.vue'
+          }
+        ],
         comments:{}
     };
   },
@@ -23,20 +48,33 @@ export default {
   },
   methods: {
     getMenu(){
-        this.menu = [
-            {
-                name:'Table',
-                path:'task/components/index.vue'
-            },
-            {
-                name:'report',
-                path:'report/components/index.vue'
-            }
-        ]
+      var menu = [
+        {
+          label:'标的专利特征拆分',
+          name:'splitPatent',
+          path:'task/components/index.vue'
+        },
+        { 
+          label: '回避设计方案', 
+          name:"avoid",
+          path:'report/avoid/components/avoidDirection.vue'
+        }, 
+        { 
+          label: '回避设计结果', 
+          name:"direction",
+          path:'report/avoid/components/avoidDirection.vue'
+        },
+        { 
+          label: '报告文档', 
+          name:"reportFile",
+          path:'report/components/reportFile/reportFileTable.vue'
+        },
+      ]
+        this.menuList.splice(1,0,...menu)
         this.getComponents()
     },
     getComponents(){
-        this.menu.forEach((item,index)=>{
+        this.menuList.forEach((item,index)=>{
          import(`@/views/${item.path}`).then(res=>{
           this.comments[item.name] = res.default
           if(index == 0){
@@ -46,8 +84,10 @@ export default {
       })
     },
     changeComponent(name){
+      this.activeMenu = name
         this.componentName = this.comments[name]
-    }
+    },
+
   },
 };
 </script>

+ 5 - 1
src/views/report/components/mixins/index.js

@@ -24,7 +24,11 @@ export default {
   methods: {
     // 点击名称等事件
     handleItem(row, key) {
-      
+      this.$router.push(
+        {
+          path:'/reportDetails'
+        }
+      )
     },
     //操作列事件
     handleCommand(option, row) {