Quellcode durchsuchen

优化下拉菜单的二级菜单

zhuliu vor 1 Jahr
Ursprung
Commit
037bb02a67

+ 1 - 0
src/assets/css/main.scss

@@ -143,6 +143,7 @@
     }
     p{
       margin: 0 -15px;
+      padding: 0 15px;
       cursor: pointer;
     }
     p:hover{

+ 9 - 4
src/views/product/components/view/categoryTable.vue

@@ -23,12 +23,12 @@
       </el-table-column>
       <el-table-column label="操作" align="center" width="150px">
         <template slot-scope="scope">
-          <el-dropdown split-button type="primary" size="small" @click="handleCommand('0', scope.row)"
-            @command="handleCommand($event, scope.row)">
+          <el-dropdown split-button type="primary" size="small" :ref="'myDropdown'+scope.$index" trigger="click" :hide-on-click="false" @click="handleCommand('0', scope)"
+            @command="handleCommand($event, scope)">
             <span>编 辑</span>
             <el-dropdown-menu slot="dropdown" style="text-align:center">
               <el-dropdown-item>
-                  <el-dropdown trigger="hover" placement="left-start" @command="handleCommand($event,scope.row)">
+                  <el-dropdown trigger="hover" placement="left-start" @command="handleCommand($event,scope)">
                     <p class="el-dropdown-link">新增产品</p>
                     <el-dropdown-menu  class="text-align_center">
                       <el-dropdown-item command="7">新增本公司产品</el-dropdown-item>
@@ -137,7 +137,12 @@ export default {
 
     },
     // 编辑下拉菜单
-    handleCommand(val, row) {
+    handleCommand(val, scope) {
+      var row = scope.row
+      var index = scope.$index
+      if(val!=undefined){
+        this.$refs['myDropdown'+index].hide()
+      }
       this.$emit('options', { val, row })
     },
     

+ 5 - 4
src/views/project/components/mixins/index.js

@@ -34,7 +34,10 @@ export const workspaceOptions = {
 
     },
     //操作列
-    handleCommand(event, row) {
+    handleCommand(event, row,index) {
+      if(event != undefined){
+        this.$refs['myDropdown'+index].hide()
+      }
       var isLast = false
       if(event == 10){//删除
         this.action={
@@ -52,9 +55,7 @@ export const workspaceOptions = {
         } 
       }
       this.$emit('option', { option: event, row ,isLast:isLast})
-      if(event){
-        this.$refs.showDropdown.hide()
-      }
+
       
     },
   },

+ 3 - 3
src/views/project/components/view/card.vue

@@ -8,13 +8,13 @@
               <div>
                 <!-- <el-image v-if="item.ifUpdate" style="width:20px;height:20px" :src="require('@/assets/img/摄像头.png')" fit="contain"></el-image> -->
                 <!-- <span v-if="item.ifUpdate" class="iconfont icon-a-yijiankong2x"> </span> -->
-                <el-dropdown class="float_right" @command="handleCommand($event, item)" trigger="click" size="small">
+                <el-dropdown class="float_right" @command="handleCommand($event, item,index)" :ref="'myDropdown'+index" trigger="click" :hide-on-click="false" size="small">
                   <span class="el-dropdown-link">
                     <i class="el-icon-more el-icon--right"></i>
                   </span>
                   <el-dropdown-menu slot="dropdown" class="text-align_center">
-                    <el-dropdown-item command="0">
-                      <el-dropdown @command="handleCommand($event, item)" placement="right-start">
+                    <el-dropdown-item>
+                      <el-dropdown @command="handleCommand($event, item,index)" placement="right-start">
                         <span class="el-dropdown-link"> 专利导入 </span>
                         <el-dropdown-menu  class="children_item">
                             <el-dropdown-item command="0"> Excel导入 </el-dropdown-item>

+ 3 - 3
src/views/project/components/view/table.vue

@@ -29,12 +29,12 @@
 
         <el-table-column v-if="[1].indexOf(isOperate) == -1" label="操作" align="center" width="150px">
           <template slot-scope="scope">
-            <el-dropdown split-button type="primary" size="small" @click="handleCommand('e', scope.row)" :hide-on-click="false" ref="showDropdown"
-              @command="handleCommand($event, scope.row)">
+            <el-dropdown split-button type="primary" size="small" @click="handleCommand('e', scope.row,scope.$index)" :ref="'myDropdown'+scope.$index" trigger="click" :hide-on-click="false"
+              @command="handleCommand($event, scope.row,scope.$index)">
               <span>编 辑</span>
               <el-dropdown-menu slot="dropdown" style="text-align:center">
                 <el-dropdown-item>
-                  <el-dropdown @command="handleCommand($event, scope.row)" placement="left-start">
+                  <el-dropdown @command="handleCommand($event, scope.row,scope.$index)" placement="left-start">
                     <p> 专利导入 </p>
                     <el-dropdown-menu style="text-align:center">
                       <el-dropdown-item command="0"> Excel导入 </el-dropdown-item>

+ 7 - 2
src/views/project/patentCollection/index.vue

@@ -52,7 +52,7 @@
               </el-tooltip>
             </el-button-group>
             <el-button class="margin-left_10" type="primary" size="small" @click="handleFieldManage" v-if="toProjectId && toProjectName">显示栏位管理</el-button>
-            <el-dropdown v-else trigger="click" split-button type="primary" size="small">
+            <el-dropdown v-else ref="myDropdown" trigger="click" :hide-on-click="false" split-button type="primary" size="small" @command="clickMyDropdown($event)">
               <span @click="handleFieldManage">显示栏位管理</span>
               <el-dropdown-menu slot="dropdown" class="text-align_center">
                 <el-dropdown-item @click.native="handleFile">报告文档</el-dropdown-item>
@@ -61,7 +61,7 @@
                 <el-dropdown-item @click.native="handleField" v-disabled="false">自定义栏位管理</el-dropdown-item>
                 <!-- <el-dropdown-item @click.native="exportPDF">导出PDF首页</el-dropdown-item> -->
 
-                <el-dropdown-item>
+                <el-dropdown-item command="e">
                   <el-dropdown @command="patentImport($event)" trigger="hover" placement="right-start">
                     <p>
                       专利导入<i class="el-icon-arrow-right el-icon--right"></i>
@@ -860,6 +860,11 @@ export default {
                 }
             });
     },
+    clickMyDropdown(e){
+      if(e == undefined){
+        this.$refs.myDropdown.hide()
+      }
+    },
      //专利导入
     async patentImport(type){
       if(!(await this.$permission.projectPermission(this.projectId))){

+ 4 - 1
src/views/report/components/patentList/components/index.vue

@@ -20,7 +20,7 @@
             </div>
             <el-button v-if="taskId" type="primary" size="small" @click="handleFieldManage">显示栏位管理</el-button>
             <div v-else style="display:flex;align-items:center">
-              <el-dropdown id="step4" trigger="click" split-button type="primary" size="small" @click="handleFieldManage"
+              <el-dropdown id="step4" ref="myDropdown" trigger="click" :hide-on-click="false" split-button type="primary" size="small" @click="handleFieldManage"
                 @command="handleCommand($event)">
                 <span>显示栏位管理</span>
                 <el-dropdown-menu slot="dropdown" class="text-align_center">
@@ -426,6 +426,9 @@ getPatentFields(){
     },
     // 显示管理旁下拉菜单
     async handleCommand(event) {
+      if(event != undefined){
+        this.$refs.myDropdown.hide()
+      }
       if(!(await this.$permission.projectPermission(this.projectId))){
         this.$showPermissionDialog()
         return false