后台管理系统 菜单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后台管理系统 菜单相关的知识,希望对你有一定的参考价值。

参考技术A ### 表单校验

* rules属性绑定

* data中定义规则

* 表单item上prop属性绑定

注意点:  prop的值和规则的值以及表单的值需要保持一致

### 在vue中如何获取dom元素

    - 定义属性

    <div ref='qqq' @click="btn">111111</div>

    - 获取:this.$refs.qqq

### 如何携带token

* 登录成功的时候将获取的token做本地缓存

* 需要做请求拦截====其他所有请求需要携带请求头  Authorization

    - api/index.js

        - 做请求拦截    获取本地缓存

        - 将本都缓存的值添加到请求头上面去

###  左侧菜单数据展示

    - 封装函数  ===获取左侧菜单数据请求的函数    api/index.js

    - home.vue

        + 导入封装请求函数

        + 调用这个函数获取数据,并且将数据 赋值给data中的menuList

        + 将数据循环出来 ====进行2层循环

    步骤分析:

    - 静态组件布局编写===从官网复制过来

    - 动态渲染左侧菜单导航===将获取的请求数据使用循环

    - 配置属性默认值展开一个  ====查看官网配置属性

    - 配置路由实现显示对应的组件

###  做菜菜单导航图标的显示

+ 引入iconfont.css文件      main.js中引入

+ 一级图标

    - 准备一个对象或者数组

          iconObj:

            0: 'icon-user',

            1: 'icon-tijikongjian',

            2: 'icon-shangpin',

            3: 'icon-danju',

            4: 'icon-baobiao'

        ,

    - 图标标签属性绑定  class  然后根据索引找到对象中的哪一个类名进行显示

+ 二级图标====直接在二级循环标题前面提加图标标签====写死

#### 左侧菜单步骤分析:

    - 1-显示组件菜单=====从官网复制

    - 2-只展开一个  通过控制  index

    - 3-配置路由 ===点击谁右边就显示哪一个组件 

        + 配置项上面添加一个router属性  :router="true"

        + 配置唯一值index的值为path值=====:index="item2.path

    - 4-改变默认高亮颜色  active-text-color="#00ff00"

    - 5-点击当前只展开其他收起  :unique-opened="true"

    - 6-刷新保持最后一次的高亮 

        + 设置默认展开项  :default-active="defaultActive"

        + 点击

            + 给当前每一项的二级菜单  绑定点击事件 并且获取当前的path值

            + 将这个值赋值给 defaultActive 并且做本地缓存【刷新的时候还可以获取上一次的path值】

            + 刷新后获取这个值  defaultActive=从本都缓存中拿 ||  'users'

    - 7-解决二级菜单的每一项的右边框    .el-menu border:none;

    - 8-点击收起菜单功能

        + 布局一个按钮  点击按钮

        + 点击设置 collapse=true  or  false 

        + 改变左侧侧边栏宽度样式的设置    <el-aside :width="collapse?'64px':'200px'">

        + 关闭收起和展开的动画  :collapse-transition="false"

  ###  路由拦截

  路由拦截和请求拦截的区别

  请求拦截=====只要请求就拦截

  路由拦截====只要路由值发生改变就拦截

  ###  如何设置路由拦截

    + 在router文件中设置路由前置拦截  router.beforeEach((to,form,next)=>)

    + 判断是不是lofgin路由值  是 就直接放行,

    + 判断是不是有token  有token就放行 没有就去login

    + 最后解决掉了问题会出现兼容性  解决方法如下

    const originalPush = VueRouter.prototype.push;

    VueRouter.prototype.push = function push(location)

    return originalPush.call(this, location).catch(err => err);

    ;

discuzx3.2后台管理菜单定制,管理菜单二次开发,discuzx3.2后台管理菜单自定义

discuzx3.2后台管理菜单定制,管理菜单二次开发

详情请参考:http://www.infosz.com/forum.php?mod=viewthread&tid=199

第一步:source\admincp\menu下添加 menu_infosz.php,内容如下:
技术分享
第二步:source\admincp目录下添加admincp_infosz.php 文件,内容如下:

技术分享

第三步: source\language\lang_admincp_menu.php添加如下内容:
技术分享
第四步:source\admincp\infosz下添加后台处理逻辑文件(业务处理逻辑可以参考最后)
技术分享
第5步:admin.php页, $admincp_actions_normal 变量添加后加一项 infosz ,否则会提示没有权限访问;
完成后后台显示效果如下
技术分享

:gift.php内容如下:
<?php
    shownav(‘global‘, ‘礼品兑换‘);
        if(!submitcheck(‘delGiftBtn‘) && !submitcheck(‘addGiftBtn‘)
           && !submitcheck(‘addGiftInfoSubmit‘) &&!submitcheck(‘editGiftInfoSubmit‘)
           ) {
                         if(empty($_GET[‘giftId‘])){   //无礼品ID为显示列表
                                //此处action必须为infosz,否则会提示无权限
                                showformheader("infosz&operation=gift&do=addGift","","addGiftForm");
                                showtableheader(‘当前礼品列表‘, ‘fixpadding‘);//表格开始  
                                showsubtitle(array(‘ID‘,‘礼品名称‘,‘图片路径‘,‘礼品价值‘, ‘所需金币‘,‘礼品总数‘,‘剩余数量‘,‘状态‘,‘商品链接‘,‘备注‘,‘操作‘));
                                $groups=array();
                                $query  = C::t(‘infosz_gift‘)->fetch_all_range();
                                foreach($query as $group) {
                                        $newgroup = array(  
                                           $group[‘id‘],  
                                           $group[‘gift_name‘],  
                                           $group[‘img_path‘],  
                                           $group[‘value‘],  
                                           $group[‘credit‘],  
                                           $group[‘total_count‘],  
                                           $group[‘left_count‘],  
                                           $group[‘status‘],  
                                           $group[‘detail_url‘], 
                                           $group[‘remark‘],  
                                           "<a href=‘admin.php?action=infosz&operation=gift&do=editGift&giftId={$group[‘id‘]}‘>编辑</a>
                                                <a href=‘admin.php?action=infosz&operation=gift&do=delGift&giftId={$group[‘id‘]}‘>删除</a>"
                                        ); 
                                        showtablerow(‘‘, array(‘width="20"‘,‘width="100"‘,‘width="100"‘,‘width="50"‘),$newgroup);  
                                }
                                showsubmit(‘addGiftBtn‘,‘新增‘);
                                showtablefooter();
                                showformfooter();
                         }
                         else{//有礼品ID则为点击编辑的入口
                                
                                if($_GET[‘do‘]==‘editGift‘)
                                {
                                        shownav(‘global‘, ‘修改礼品‘);
                                        $giftId=$_GET[‘giftId‘];
                                        $group =C::t(‘infosz_gift‘)->get_gift_by_id($giftId);
                                        
                                        showformheader("infosz&operation=gift&do=editGiftInfoSubmit","","editGiftInfoForm");

                                        showhiddenfields(array(‘id‘ => "{$group[‘id‘]}"));
                                        showsetting(‘礼品名称‘, ‘‘, ‘‘, ‘<input type="text" style="width:300px;" name="gift_name" value="‘.$group[‘gift_name‘].‘"‘);
                                        echo ‘<br><br>‘;
                                        showsetting(‘图片路径‘,‘img_path‘,"{$group[‘img_path‘]}",‘text‘);
                                        echo ‘<br><br>‘;
                                        showsetting(‘礼品价值‘,‘value‘,"{$group[‘value‘]}",‘text‘);
                                        echo ‘<br><br>‘;
                                        showsetting(‘所需金币‘,‘credit‘,"{$group[‘credit‘]}",‘text‘);
                                        echo ‘<br><br>‘;
                                        showsetting(‘礼品总数‘,‘total_count‘,"{$group[‘total_count‘]}",‘text‘);
                                        echo ‘<br><br>‘;
                                        showsetting(‘剩余数量‘,‘left_count‘,"{$group[‘left_count‘]}",‘text‘);
                                        echo ‘<br><br>‘;
                                        showsetting(‘状态‘,‘status‘,"{$group[‘status‘]}",‘text‘);
                                        echo ‘ 1 可用,0 禁用<br><br>‘;
                                        showsetting(‘商品链接‘,‘detail_url‘,"{$group[‘detail_url‘]}",‘text‘);
                                        echo ‘ 1 可用,0 禁用<br><br>‘;
                                        showsetting(‘备注‘,‘remark‘,"{$group[‘remark‘]}",‘text‘);
                                        
                                        showsubmit(‘editGiftInfoSubmit‘,‘提交‘);
                                        showformfooter();
                                }
                                if($_GET[‘do‘]==‘delGift‘)
                                {        
                                        $giftId=$_GET[‘giftId‘];
                                        C::t(‘info_gift‘)->delete($giftId);
                                        echo ‘删除成功‘;
                                }
                                
                         }

                        
        }else{
                //进入新增礼品界面
                if($do==‘addGift‘){
                        shownav(‘global‘, ‘新增礼品‘);
                        showformheader("infosz&operation=gift&do=addGiftInfoSubmit","","addGiftInfoForm");
                        showsetting(‘礼品名称‘, ‘‘, ‘‘, ‘<input type="text" style="width:300px;" name="gift_name" value=""‘);
                        echo ‘<br><br>‘;
                        showsetting(‘图片路径‘,‘img_path‘,‘‘,‘text‘);
                        echo ‘ 图片存路径:static\image\aikede\gift<br><br>‘;
                        showsetting(‘礼品价值‘,‘value‘,‘‘,‘text‘);
                        echo ‘<br><br>‘;
                        showsetting(‘所需金币‘,‘credit‘,‘‘,‘text‘);
                        echo ‘<br><br>‘;
                        showsetting(‘商品链接‘,‘‘,‘‘,‘<input type="text" style="width:300px;" name="detail_url" value=""‘);
                        echo ‘<br><br>‘;
                        showsetting(‘礼品总数‘,‘total_count‘,‘‘,‘text‘);
                        echo ‘<br><br>‘;
                        showsetting(‘剩余数量‘,‘left_count‘,‘‘,‘text‘);
                        echo ‘<br><br>‘;
                        
                        showsetting(‘备      注‘,‘remark‘,‘‘,‘text‘);
                        echo ‘<br><br>‘;
                        showsubmit(‘addGiftInfoSubmit‘,‘提交‘);
                        showformfooter();
                }
                //新增礼品表单提交
                if($do==‘addGiftInfoSubmit‘){
                        require_once libfile(‘function/infosz_duihuan‘);
                        new_gift($_GET[‘gift_name‘],$_GET[‘img_path‘],$_GET[‘value‘],$_GET[‘credit‘],$_GET[‘total_count‘],$_GET[‘left_count‘],$_GET[‘remark‘],
                                 $_GET[‘detail_url‘]
                        );
                        echo ‘保存成功‘;
                }
                //修改礼品信息提交
                if($do==‘editGiftInfoSubmit‘){
                        $giftId=$_GET[‘id‘];
                        $giftData=array(
                                ‘gift_name‘=>$_GET[‘gift_name‘],
                                ‘img_path‘=>$_GET[‘img_path‘],
                                ‘value‘=>$_GET[‘value‘],
                                ‘credit‘=>$_GET[‘credit‘],
                                ‘total_count‘=>$_GET[‘total_count‘],
                                ‘left_count‘=>$_GET[‘left_count‘],
                                ‘status‘=>$_GET[‘status‘],
                                ‘detail_url‘=>$_GET[‘detail_url‘],
                                ‘remark‘=>$_GET[‘remark‘]
                                );
                        C::t(‘infosz_gift‘)->update($giftId,$giftData);
                        echo ‘修改成功‘;
                }
        }
?>

本内容由www.infosz.com原创,保留所有版权,转载请注明出处!

以上是关于后台管理系统 菜单的主要内容,如果未能解决你的问题,请参考以下文章

后台管理系统 菜单

基于tp5免费开源的后台管理系统

后台管理系统的导航设计归纳总结

后台菜单和权限管理

Django 权限管理-后台根据用户权限动态生成菜单

魔众博客系统 v4.4.0 后台菜单快捷搜索 优化已知字段问题