zhuliu 1 年之前
父节点
当前提交
e9a1d6ff77

+ 30 - 0
src/router/index.js

@@ -421,6 +421,36 @@ const routes = [
           },
         ],
       },
+      //查新检索
+      {
+        path: '/noveltySearch',
+        name: 'noveltySearch',
+        component: { render(c) { return c('router-view') } },
+        redirect: '/noveltySearch',
+        children: [
+          {
+            path: '/',
+            name:'noveltySearch',
+            meta: {
+              title: '查新检索',
+              sign: 'noveltySearch',
+              belong: 'noveltySearch'
+            },
+            component: () => import('@/views/noveltySearch/index.vue'),
+          },
+          {
+            path: '/noveltySearchDetails',
+            name: 'noveltySearchDetails',
+            meta: {
+              title: '查新检索详情',
+              sign: 'noveltySearchDetails',
+              belong: 'noveltySearch',
+              keepAlive:true
+            },
+            component: () => import('@/views/noveltySearch/components/details/index.vue'),
+          },
+        ]
+      },
       //任务模块
       {
         path: '/myTask',

+ 1 - 1
src/utils/common.js

@@ -304,7 +304,7 @@ treeToArray(data,prop={children:children}){
    * getColumnData({value:1},{type:'String',value:'value'}) //返回字符串1 
    */
   getColumnData(row, field, prop, data) {
-    var text = this.getDataByField(row,field.value)
+    var text = this.getDataByField(row,field.value || field.field)
     if (field.type == 'Array') {
       if (text && text.length > 0) {
         if (prop) {

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

@@ -144,49 +144,46 @@ export default {
         //   path:'/enterprisePatentDB',
         // },
         {
-          value:'5',
           label:'场景可视化',
           path:'/visual',
           belong:'visual'
         },
         {
-          value:'3',
           label:'事件',
           path:'/Event',
           belong:'Event'
         },
         {
-          value:'1',
           label:'专利数据库',
           path:'/project',
           belong:'project'
         },
         {
-          value:'4',
           label:'报告',
           path:'/AllReport',
           belong:'AllReport'
         },
         {
-          value:'2',
+          label:'查新检索',
+          path:'/noveltySearch',
+          belong:'noveltySearch'
+        },
+        {
           label:'产品/技术',
           path:'/product',
           belong:'Product'
         },
         {
-          value:'6',
           label:'专利挖掘',
           path:'/patentMining',
           belong:'patentMining'
         },
         {
-          value:'8',
           label:'我的任务',
           path:'/myTask',
           belong:'myTask'
         },
         {
-          value:'9',
           label:'外部专利检索',
           path:'/conditionImport',
           belong:'conditionImport'

+ 21 - 0
src/views/noveltySearch/components/details/components/basicMessage/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>

+ 26 - 0
src/views/noveltySearch/components/details/components/basicMessage/index.vue

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

+ 62 - 0
src/views/noveltySearch/components/details/details.vue

@@ -0,0 +1,62 @@
+<template>
+  <div class="height_100">
+    <el-container>
+      <el-aside :width="width">
+        <div class="point" @click="getCollapse">
+          {{ isCollapse ? '收起' : '展开' }}
+        </div>
+        <el-menu class="theme-dark" :default-active="activeMenu" :collapse="!isCollapse">
+          <el-menu-item v-for="item in menuList" :key="item.name" :index="item.name" >
+            <i class="el-icon-film"></i>
+            <span slot="title">{{ item.label }}</span>
+          </el-menu-item>
+        </el-menu>
+      </el-aside>
+      <el-main>
+        <component :is='activeMenu' :projectId="projectId"></component>
+      </el-main>
+    </el-container>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {
+    projectId:{}
+  },
+  data() {
+    return {
+      isCollapse:true,
+      width:'200px',
+      activeMenu: '',
+      menuList:[],
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    getCollapse(){
+      this.isCollapse = !this.isCollapse
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.point {
+  line-height: 40px;
+  text-align: center;
+  border-bottom: 1px solid #e6e6e6;
+  /* color: var(--color); */
+  font-family: var(--fm);
+  color: var(--color2);
+  cursor: pointer;
+  width: 100%;
+
+  &:hover {
+    background: #ecf5ff
+  }
+}
+</style>

+ 26 - 0
src/views/noveltySearch/components/details/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <div class="height_100">
+    <noveltySearchDetails></noveltySearchDetails>
+  </div>
+</template>
+
+<script>
+import noveltySearchDetails from './details.vue'
+export default {
+  components: {
+    noveltySearchDetails
+  },
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 168 - 0
src/views/noveltySearch/components/noveltySearch.vue

@@ -0,0 +1,168 @@
+<template>
+  <div class="height_100">
+    <el-container>
+        <el-header>
+            <div class="head">
+                <div class="head_left">
+                    <el-form :inline="true" class="project-file-header-form">
+                        <el-form-item label="案号">
+                            <el-input v-model="queryParams.number" size="small" placeholder="请输入案号"></el-input>
+                        </el-form-item>
+                        <el-form-item>
+                            <el-button type="" size="small" @click="search">查询</el-button>
+                        </el-form-item>
+                    </el-form>
+                </div>
+                <div class="head_right">
+                    <el-button type="primary" size="small">新建查新检索</el-button>
+                </div>
+            </div>
+        </el-header>
+        <el-main class="height_100" v-DivHeight="getDivHeight">
+            <el-table :data="tableData" v-if="showTable" border style="width: 100%" header-row-class-name="custom-table-header" @sort-change="sortChange" :height="tableHeight - 20" >
+                <el-table-column label="#" width="60" type="index" align="center">
+                    <template slot-scope="scope">
+                        <span>{{ (scope.$index + 1) + ((queryParams.current - 1) * queryParams.size) }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column v-for="item in column.filter(item=>!item.ifHidden)" :key="item.value" :prop="item.value" :render-header=" $commonJS.renderHeaderMethods" :label="item.name" :sortable="item.ifSort?'custom':false" align="center">
+                    <template slot-scope="scope">
+                        <div v-if="['number'].includes(item.value)">
+                            <el-link type="primary" @click="handleItem(scope.row,item.value)">
+                                <span  v-html="$commonJS.getColumnData(scope.row,item)"></span>
+                            </el-link>
+                        </div>
+                        <div v-else v-html="$commonJS.getColumnData(scope.row,item)"></div>
+                    </template>
+                </el-table-column>
+
+                <el-table-column  label="操作" align="center" width="150px">
+                    <template slot-scope="scope">
+                        <el-dropdown @command="handleCommand($event, scope.row)" split-button type="primary" size="small"  @click="handleCommand('e',scope.row)">
+                            <span>编辑</span>
+                            <el-dropdown-menu slot="dropdown" class="text-align_center">
+                                <el-dropdown-item command="del" divided style="color: red;">删除 </el-dropdown-item>
+                            </el-dropdown-menu>
+                        </el-dropdown>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-main>
+        <el-footer class="pagination">
+            <el-pagination background layout="total,sizes, prev, pager, next, jumper" :current-page.sync="queryParams.current"
+            :page-sizes="pageSize" :page-size.sync="queryParams.size" @current-change="handleCurrentChange" @size-change="handleSizeChange" :total="total">
+            </el-pagination>
+        </el-footer>
+    </el-container>
+  </div>
+</template>
+
+<script>
+import { getTableHeight } from '@/views/components/mixins'
+const column = [
+    {
+        value:'number',
+        type:'string',
+        name:'案号',
+    },
+    {
+        value:'createName',
+        type:'string',
+        name:'创建人',
+    },
+    {
+        value:'createTime',
+        type:'string',
+        name:'创建时间',
+    },
+]
+export default {
+    mixins:[getTableHeight],
+  components: {},
+  props: {},
+  data() {
+    return {
+        pageSize: [10, 20],//分页数量
+        queryParams:{
+            current:1,
+            size:10,
+            number:''
+        },
+        total:0,
+        tableData:[],
+        column:column,
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    //检索
+    search(){
+        this.queryParams.current = 1
+        this.getList()
+    },
+    //获取数据
+    getList(){
+        this.tableData = [
+            {
+                id:1,
+                number:'5W262525',
+                createName:'管理员',
+                createTime:'2024-09-06 17:04'
+            },
+            {
+                id:2,
+                number:'5W131553',
+                createName:'管理员',
+                createTime:'2024-09-06 17:04'
+            }
+        ]
+        this.total = 2
+    },
+    //切换分页
+    handleCurrentChange(val){
+        this.queryParams.current = val
+        this.getList()
+    },
+    //切换也大小
+    handleSizeChange(val){
+        this.queryParams.current = 1
+        this.queryParams.size = 10
+        this.getList()
+    },
+    //排序
+    sortChange({ column, prop, order }){},
+    //点击案号
+    handleItem(row){
+        this.$router.push({
+            path:'/noveltySearchDetails',
+            query:{
+                projectId:row.id
+            }
+        })
+    },
+    //操作
+    handleCommand(event,row){
+        switch(event){
+            case 'del':
+                break;
+            case 'e':
+                break;
+        }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.head{
+    width: 100%;
+    padding: 0 20px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+</style>

+ 26 - 0
src/views/noveltySearch/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <div class="height_100">
+    <noveltySearch></noveltySearch>
+  </div>
+</template>
+
+<script>
+import noveltySearch from './components/noveltySearch.vue'
+export default {
+  components: {
+    noveltySearch
+  },
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>