lrf402788946 5 năm trước cách đây
mục cha
commit
9f60e702c3
3 tập tin đã thay đổi với 20 bổ sung4 xóa
  1. 5 0
      config/menu-config.js
  2. 13 3
      layout/admin/data-table.vue
  3. 2 1
      layout/admin/list-frame.vue

+ 5 - 0
config/menu-config.js

@@ -19,6 +19,11 @@ export const devMenu = [
     name: '教师管理',
     module: 'center',
   },
+  {
+    path: '/director/index',
+    name: '班主任管理',
+    module: 'center',
+  },
   {
     path: '/work/index',
     name: '作业管理',

+ 13 - 3
layout/admin/data-table.vue

@@ -8,9 +8,11 @@
         <el-table-column label="操作" align="center">
           <template v-slot="{ row, $index }">
             <template v-for="(item, index) in opera">
-              <el-tooltip :key="index" effect="dark" :content="item.label" placement="bottom">
-                <el-button :key="index" type="text" :icon="item.icon || ''" size="mini" @click="handleOpera(row, item.method)"></el-button>
-              </el-tooltip>
+              <template v-if="display(item, row)">
+                <el-tooltip :key="index" effect="dark" :content="item.label" placement="bottom">
+                  <el-button :key="index" type="text" :icon="item.icon || ''" size="mini" @click="handleOpera(row, item.method)"></el-button>
+                </el-tooltip>
+              </template>
             </template>
           </template>
         </el-table-column>
@@ -46,6 +48,14 @@ export default {
     handleOpera(data, method) {
       this.$emit(method, data);
     },
+    display(item, row) {
+      let display = _.get(item, `display`, true);
+      if (display === true) return true;
+      else {
+        let res = display(row);
+        return res;
+      }
+    },
   },
 };
 </script>

+ 2 - 1
layout/admin/list-frame.vue

@@ -28,7 +28,8 @@
             <el-form-item v-for="(item, index) in filter" :key="index" :label="item.label">
               <template v-if="item.type === `select`">
                 <el-select v-model="searchInfo[`${item.model}`]" size="mini">
-                  <el-option v-for="(select, sIndex) in item.list" :key="sIndex" :label="select.label" :value="select.value"></el-option>
+                  <!-- <el-option v-for="(select, sIndex) in item.list" :key="sIndex" :label="select.label" :value="select.value"></el-option> -->
+                  <slot name="options" v-bind="{ item }"></slot>
                 </el-select>
               </template>
               <template v-else>