Browse Source

企业专利数据库

zhuliu 2 years ago
parent
commit
f09815d61f

+ 17 - 1
src/router/index.js

@@ -69,6 +69,22 @@ const routes = [
           },
         ],
       },
+      //企业专利数据库
+      {
+        path: '/enterprisePatentDB',
+        name:'enterprisePatentDB',
+        component:{render(c){return c('router-view')}},
+        redirect:'/enterprisePatentDB',
+        children:[
+          {
+            path:'/',
+            meta: {
+              title: '企业专利数据库',
+            },
+            component: () => import('@/views/EnterprisePatentDatabase/index.vue'),
+          },
+        ]
+      },
       // 产品
       {
         path: '/product',
@@ -348,7 +364,7 @@ const routes = [
         },
         component: () => import('@/views/visual/title/index.vue')
       },
-      //图分析
+      //图分析
       {
         path: "/analyse",
         component:{render(c){return c('router-view')}},

+ 116 - 0
src/views/EnterprisePatentDatabase/components/dialog/addAndEditDB.vue

@@ -0,0 +1,116 @@
+<template>
+  <div>
+    <el-dialog
+        :title="title"
+        :visible.sync="dialogVisible"
+        width="800px"
+        :before-close="handleClose">
+        <el-form label-position="left" label-width="100px" :model="form">
+            <template v-if="!show">
+                <div>
+                    <el-form-item label="企业名称:">
+                        <el-input v-model="form.name" placeholder="请输入企业名称"></el-input>
+                    </el-form-item>
+                    <el-form-item label="别名:">
+                        <el-input v-model="form.alias" placeholder="请输入企业别名"></el-input>
+                    </el-form-item>
+                    <el-form-item label="英文名:">
+                        <el-input v-model="form.EnglishName" placeholder="请输入企业英文名"></el-input>
+                    </el-form-item>
+                    <el-form-item label="类型:">
+                        <el-select v-model="form.type" placeholder="请选择企业专利数据库类型" style="width:100%">
+                            <el-option label="合作伙伴" value="1"></el-option>
+                            <el-option label="竞争对手" value="2"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+            </template>
+            <template>
+                <div>
+                    <el-form-item label="更新周期:">
+                        <el-select v-model="form.cycle" placeholder="请选择更新周期" style="width:100%">
+                            <el-option
+                            v-for="item in options"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="更新时间:" v-if="form.cycle">
+                        <timeChoose :type="form.cycle" @value="handleData" :cron="form.crons"></timeChoose>
+                    </el-form-item>
+                </div>
+            </template>
+            
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="handleClose">取 消</el-button>
+            <el-button type="primary" @click="submit">确 定</el-button>
+        </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import timeChoose from "@/views/workspace/components/common/timeChoose.vue";
+export default {
+  components: {
+    timeChoose
+  },
+  props: {},
+  data() {
+    return {
+        dialogVisible:false,
+        options: [
+            {label:'每天',value:'day'},
+            {label:'每周',value:'week'},
+            {label:'每月',value:'month'},
+            {label:'每年',value:'year'},
+        ],
+        form:{},
+        title:'',
+        show:null
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    //打开弹窗
+    open(form,type){
+        this.form = JSON.parse(JSON.stringify(form))
+        if(this.form.id){
+            this.title = '编辑企业专利数据库'
+        }else{
+            this.title = '新增企业专利数据库'
+        }
+        if(type){
+            this.title = '设置定时任务'
+        }
+        this.show = type
+        this.dialogVisible = true
+    },
+    //关闭弹窗
+    handleClose(){
+        this.form = {}
+        this.dialogVisible = false
+    },
+    //提交数据
+    submit(){
+        this.dialogVisible = false
+    },
+    // 获取时间
+    handleData(val) {
+      if (this.form.cycle=='') {
+        this.$message.error('请先选择更新周期')
+        return false
+      }
+      this.form.crons=val
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 41 - 0
src/views/EnterprisePatentDatabase/components/view/MergeTable.vue

@@ -0,0 +1,41 @@
+<template>
+  <div class="workspace-merge-table">
+    <el-table :data="tableData" header-row-class-name="custom-table-header" @expand-change="expandChange" >
+      <el-table-column type="expand">
+        <template slot-scope="props">
+          <common-table :data="showData[props.row.index]" :params="params" :field="field" @option="handleOption" />
+        </template>
+      </el-table-column>
+      <el-table-column v-for="column in columnList" :label="column.label" :prop="column.prop" show-overflow-tooltip></el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import commonTable from './commonTable.vue';
+export default {
+  components: {
+    commonTable
+  },
+  props: {
+    params: Object,
+    field: []
+  },
+  data() {
+    return {
+        columnList:[]
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    expandChange(){
+
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 66 - 0
src/views/EnterprisePatentDatabase/components/view/commonTable.vue

@@ -0,0 +1,66 @@
+<template>
+  <div>
+    <el-table :data="tableData" border style="width: 100%" header-row-class-name="custom-table-header">
+        <el-table-column label="#" align="center" width="100px">
+            <template slot-scope="scope">
+                <div>
+                    {{ (params.current-1)*params.size + scope.$index+1 }}
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column prop="name" label="企业名称" align="center">
+          <template slot-scope="scope">
+            <div>
+              <el-link type="primary">{{ scope.row.name }}</el-link>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="type" label="企业专利数据库类型" align="center"></el-table-column>
+        <el-table-column prop="createPerson" label="创建人" align="center"></el-table-column>
+        <el-table-column label="操作" align="center" width="200px">
+            <template slot-scope="scope">
+                <div>
+                    <el-dropdown split-button type="primary" size="small" @command="handleCommand($event, scope.row)">
+                        <p @click="handleCommand('e', scope.row)">编辑</p>
+                        <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item command="0">设置定时更新</el-dropdown-item>
+                            <el-dropdown-item divided class="color-red" command="1">删除</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
+                </div>
+            </template>
+        </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  props: {
+    params:Object
+  },
+  data() {
+    return {
+        tableData:[
+          {
+            name:'xxx有限公司',
+            type:'本公司专利数据库',
+            createPerson:'朱豪'
+          }
+        ]
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    handleCommand(option,row){
+      this.$emit('option',{option,row})
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 126 - 0
src/views/EnterprisePatentDatabase/index.vue

@@ -0,0 +1,126 @@
+<template>
+  <div>
+    <el-container>
+        <el-header>
+            <div>
+              <mySearch style="width:500px" :SearchFields="searchFiled" @search="search" :searchValue="searchOption" :disabled="!$permission('/workspace/project/check')"></mySearch>  
+            </div>
+            <div style="display:flex;margin-right:10px">
+                <!-- <div>
+                    <span>分组查询:</span>
+                    <el-select v-model="queryParams.group" :disabled="!$permission('/workspace/project/check')" multiple clearable collapse-tags size="small" @change="onChange" style="width:200px">
+                        <el-option v-for="item in commonData.QUERY_GROUP" :key="item.value" :label="item.label" :value="parseInt(item.value)">
+                        </el-option>
+                    </el-select>
+                </div> -->
+                <el-button-group class="margin-left_10">
+                  <el-button :type="queryShowType === '0' ? 'primary' : ''" @click="onChange2('0')" size="small">列表</el-button>
+                  <el-button :type="queryShowType === '1' ? 'primary' : ''" @click="onChange2('1')" size="small">卡片</el-button>
+                </el-button-group>
+                <el-dropdown trigger="click" split-button type="primary" size="small">
+                    <p @click="handleAdd" v-disabled="!$permission('/workspace/project/add')">新增其他企业专利数据库</p>
+                    <el-dropdown-menu slot="dropdown" class="text-align_center">
+                        <!-- <el-dropdown-item @click.native="handleExport">导出列表</el-dropdown-item> -->
+                        <!-- <el-dropdown-item @click.native="handleImport" :disabled="!$permission('/workspace/project/import')">导入数据包</el-dropdown-item>
+                        <el-dropdown-item @click.native="handleField">显示栏位管理</el-dropdown-item> -->
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </div>
+        </el-header>
+        <el-main>
+            <component :is="viewType" :data="dataList" :group="queryParams.group" :params="queryParams" @option="handleOption" @sort="handleSort"></component> 
+        </el-main>
+        <el-footer>
+            <div>
+                <el-pagination
+                    backgroundx
+                    layout="total, prev, pager, next, jumper"
+                    :current-page.sync="queryParams.current"
+                    :page-size.sync="queryParams.size"
+                    @current-change="handleCurrentChange"
+                    :total="total">
+                </el-pagination>
+            </div>
+        </el-footer>
+    </el-container>
+    <addAndEditDB ref="addAndEditDB"></addAndEditDB>
+  </div>
+</template>
+
+<script>
+
+import addAndEditDB from './components/dialog/addAndEditDB.vue';
+import commonTable from './components/view/commonTable.vue';
+export default {
+  components: {
+    commonTable,
+    addAndEditDB
+  },
+  props: {},
+  data() {
+    return {
+        viewType:'commonTable',
+        queryShowType:'0',
+        dataList:[],
+        queryParams:{
+            size:10,
+            current:0,
+        },
+        total:0,
+        searchFiled:[
+            {
+                label:'企业名称',
+                value:'name',
+                type:1,
+                placeholder:'请输入企业名称'
+            },
+            {
+                label:'企业专利数据库类型',
+                value:'type',
+                type:1,
+                placeholder:'请输入企业专利数据库类型'
+            },
+        ],
+        searchOption:{}
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {
+    search(){
+
+    },
+    handleSort(sort) {
+      this.queryParams.sort = { ...sort }
+      this.getList()
+    },
+    handleOption({ option, row }) {
+      switch (option) {
+        case '0'://设置定时任务
+            this.$refs.addAndEditDB.open(row,true)
+            break;
+        case '1'://删除
+            break;
+        case 'e'://编辑
+            this.$refs.addAndEditDB.open(row)
+          break;
+      }
+    },
+    handleCurrentChange(val) {
+      this.queryParams.current = val;
+      this.getList();
+    },
+    getList(){
+
+    },
+    //添加其他企业专利数据库
+    handleAdd(){
+        this.$refs.addAndEditDB.open({})
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 2 - 2
src/views/layout/components/UserBar.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="admin-user-bar">
     <div class="menu">
-      <el-link :underline="false" v-for="item in menu" :key="item.label" @click="changePage(item.path)" :type="item.label==title?'danger':'default'">{{ $t(item.label )}}</el-link>
+      <el-link :underline="false" v-for="item in menu" :key="item.path" @click="changePage(item.path)" :type="item.label==title?'danger':'default'">{{ item.label }}</el-link>
       <!-- <el-link :underline="false" @click="changePage(5)">场景可视化</el-link>
       <el-link :underline="false" @click="changePage(1)">专题库</el-link>
       <el-link :underline="false" @click="changePage(4)">报告</el-link>
@@ -136,7 +136,7 @@ export default {
         {
           value:'7',
           label:'企业专利数据库',
-          path:'',
+          path:'/enterprisePatentDB',
         },
         {
           value:'5',

+ 18 - 19
src/views/workspace/components/common/timeChoose.vue

@@ -32,7 +32,8 @@
             </el-time-picker>
             <el-date-picker
                 popper-class="picker-date"
-                format="MM-dd HH:mm:ss"
+                style="width:100%"
+                value-format="MM-dd HH:mm:ss"
                 v-if="showDate"
                 @change="changeTime"
                 v-model="value"
@@ -51,7 +52,7 @@ export default {
         type:{
             default:'day'
       },
-        cron:{}
+      cron:{}
         
     },
     data() {
@@ -103,24 +104,22 @@ export default {
       } else if(this.cron && this.type){
          this.cronChangeDate(this.cron)
       }
-      },
-        check(item){
-            this.$set(this,'day',item)
-            if(!this.time){
-               this.$set(this,'time','18:30:00') 
-            }
-            
-            this.changeTime()
-        },
-        changeTime(){
-            if(!this.showDate && !this.showTime){
-                this.$set(this,'value',this.day+" "+this.time)
-            }
-          // console.log(this.value)
-            let cron=this.getCron()
-          this.$emit('value', cron)
-        }
     },
+    check(item){
+      this.$set(this,'day',item)
+      if(!this.time){
+        this.$set(this,'time','18:30:00') 
+      }
+      this.changeTime()
+    },
+    changeTime(){
+      if(!this.showDate && !this.showTime){
+        this.$set(this,'value',this.day+" "+this.time)
+      }
+      let cron=this.getCron()
+      this.$emit('value', cron)
+    }
+  },
 }
 </script>
 

+ 6 - 6
src/views/workspace/index.vue

@@ -204,12 +204,12 @@ export default {
   data() {
     return {
       searchFiled:[
-            {
-                label:'项目名称',
-                value:'name',
-                type:1,
-                placeholder:'请输入项目名称'
-            },
+              {
+                  label:'项目名称',
+                  value:'name',
+                  type:1,
+                  placeholder:'请输入项目名称'
+              },
             // {
             //     label:'委托方',
             //     value:'clientName',