thinkcmf 3.x 用递归重组方法组合出后台菜单

菜单模型类的位置:\application\Common\Model
<?php

/* * 
 * 菜单
 */
namespace Common\Model;
use Common\Model\CommonModel;
class MenuModel extends CommonModel {

    //自动验证
    protected $_validate = array(
        //array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
        array('name', 'require', '菜单名称不能为空!', 1, 'regex', CommonModel:: MODEL_BOTH ),
        array('app', 'require', '应用不能为空!', 1, 'regex', CommonModel:: MODEL_BOTH ),
        array('model', 'require', '模块名称不能为空!', 1, 'regex', CommonModel:: MODEL_BOTH ),
        array('action', 'require', '方法名称不能为空!', 1, 'regex', CommonModel:: MODEL_BOTH ),
        array('app,model,action', 'checkAction', '同样的记录已经存在!', 1, 'callback', CommonModel:: MODEL_INSERT   ),
    	array('id,app,model,action', 'checkActionUpdate', '同样的记录已经存在!', 1, 'callback', CommonModel:: MODEL_UPDATE   ),
        array('parentid', 'checkParentid', '菜单只支持四级!', 1, 'callback', 1),
    );
    //自动完成
    protected $_auto = array(
            //array(填充字段,填充内容,填充条件,附加规则)
    );

    //验证菜单是否超出三级
    public function checkParentid($parentid) {
        $find = $this->where(array("id" => $parentid))->getField("parentid");
        if ($find) {
            $find2 = $this->where(array("id" => $find))->getField("parentid");
            if ($find2) {
                $find3 = $this->where(array("id" => $find2))->getField("parentid");
                if ($find3) {
                    return false;
                }
            }
        }
        return true;
    }

    //验证action是否重复添加
    public function checkAction($data) {
        //检查是否重复添加
        $find = $this->where($data)->find();
        if ($find) {
            return false;
        }
        return true;
    }
    //验证action是否重复添加
    public function checkActionUpdate($data) {
    	//检查是否重复添加
    	$id=$data['id'];
    	unset($data['id']);
    	$find = $this->field('id')->where($data)->find();
    	if (isset($find['id']) && $find['id']!=$id) {
    		return false;
    	}
    	return true;
    }
    

    /**
     * 按父ID查找菜单子项
     * @param integer $parentid   父菜单ID  
     * @param integer $with_self  是否包括他自己
     */
    public function admin_menu($parentid, $with_self = false) {
        //父节点ID
        $parentid = (int) $parentid;
        $result = $this->where(array('parentid' => $parentid, 'status' => 1))->order(array("listorder" => "ASC"))->select();
        //dump($result);die;
        if ($with_self) {
            $result2[] = $this->where(array('id' => $parentid))->find();
            $result = array_merge($result2, $result);
        }
        //权限检查
        if (sp_get_current_admin_id() == 1) {
            //如果是超级管理员 直接通过
            return $result;
        } 
        
         $array = array();
        foreach ($result as $v) {
        	
            //方法
            $action = $v['action'];
            
            //public开头的通过
            if (preg_match('/^public_/', $action)) {
                $array[] = $v;
            } else {
            	
                if (preg_match('/^ajax_([a-z]+)_/', $action, $_match)){
                	
                	$action = $_match[1];
                }
                   
                $rule_name=strtolower($v['app']."/".$v['model']."/".$action);
                
                if ( sp_auth_check(sp_get_current_admin_id(),$rule_name)){
                	$array[] = $v;
                }
                   
            }
        } 
        
        return $array;
    }

    /**
     * 获取菜单 头部菜单导航
     * @param $parentid 菜单id
     */
    public function submenu($parentid = '', $big_menu = false) {
        $array = $this->admin_menu($parentid, 1);
        $numbers = count($array);
        if ($numbers == 1 && !$big_menu) {
            return '';
        }
        return $array;
    }

    /**
     * 菜单树状结构集合
     */
    public function menu_json() {
        $data = $this->get_tree(0);
        dump($data);die;
        return $data;
    }

    //取得树形结构的菜单
    public function get_tree($myid, $parent = "", $Level = 1) {
        $data = $this->admin_menu($myid);
        $Level++;
        if (is_array($data)) {
            $ret = NULL;
            foreach ($data as $a) {
                $id = $a['id'];
                $name = ucwords($a['app']);
                $model = ucwords($a['model']);
                $action = $a['action'];
                //附带参数
              	$params = "";
                if ($a['data']) {
                    $params = "?" . htmlspecialchars_decode($a['data']);
                }
                $array = array(
                    "icon" => $a['icon'],
                    "id" => $id . $name,
                    "name" => $a['name'],
                    "parent" => $parent,
                    "url" => U("{$name}/{$model}/{$action}{$params}"),
                    'lang'=> strtoupper($name.'_'.$model.'_'.$action)
                ); 
                
                
                
                $ret[$id . $name] = $array;
                $child = $this->get_tree($a['id'], $id, $Level);
                //由于后台管理界面只支持三层,超出的不层级的不显示
                if ($child && $Level <= 3) {
                    $ret[$id . $name]['items'] = $child;
                }
               
            }
            return $ret;
        }
       
        return false;
    }

    /**
     * 更新缓存
     * @param type $data
     * @return type
     */
    public function menu_cache($data = null) {
        if (empty($data)) {
            $data = $this->select();
            F("Menu", $data);
        } else {
            F("Menu", $data);
        }
        return $data;
    }

    /**
     * 后台有更新/编辑则删除缓存
     * @param type $data
     */
    public function _before_write(&$data) {
        parent::_before_write($data);
        F("Menu", NULL);
    }

    //删除操作时删除缓存
    public function _after_delete($data, $options) {
        parent::_after_delete($data, $options);
        $this->_before_write($data);
    }
    
    public function menu($parentid, $with_self = false){
    	//父节点ID
    	$parentid = (int) $parentid;
    	$result = $this->where(array('parentid' => $parentid))->select();
    	if ($with_self) {
    		$result2[] = $this->where(array('id' => $parentid))->find();
    		$result = array_merge($result2, $result);
    	}
    	return $result;
    }
    /**
     * 得到某父级菜单所有子菜单,包括自己
     * @param number $parentid 
     */
    public function get_menu_tree($parentid=0){
    	$menus=$this->where(array("parentid"=>$parentid))->order(array("listorder"=>"ASC"))->select();
    	
    	if($menus){
    		foreach ($menus as $key=>$menu){
    			$children=$this->get_menu_tree($menu['id']);
    			if(!empty($children)){
    				$menus[$key]['children']=$children;
    			}
    			unset($menus[$key]['id']);
    			unset($menus[$key]['parentid']);
    		}
    		return $menus;
    	}else{
    		return $menus;
    	}
    	
    }

}


实现的效果

array(8) {
  ["109Admin"] => array(7) {
    ["icon"] => string(4) "cogs"
    ["id"] => string(8) "109Admin"
    ["name"] => string(6) "设置"
    ["parent"] => string(0) ""
    ["url"] => string(38) "/index.php?g=Admin&m=Setting&a=default"
    ["lang"] => string(21) "ADMIN_SETTING_DEFAULT"
    ["items"] => array(6) {
      ["110Admin"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "110Admin"
        ["name"] => string(12) "个人信息"
        ["parent"] => string(3) "109"
        ["url"] => string(42) "/index.php?g=Admin&m=Setting&a=userdefault"
        ["lang"] => string(25) "ADMIN_SETTING_USERDEFAULT"
        ["items"] => array(2) {
          ["111Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "111Admin"
            ["name"] => string(12) "修改信息"
            ["parent"] => string(3) "110"
            ["url"] => string(36) "/index.php?g=Admin&m=User&a=userinfo"
            ["lang"] => string(19) "ADMIN_USER_USERINFO"
          }
          ["113Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "113Admin"
            ["name"] => string(12) "修改密码"
            ["parent"] => string(3) "110"
            ["url"] => string(39) "/index.php?g=Admin&m=Setting&a=password"
            ["lang"] => string(22) "ADMIN_SETTING_PASSWORD"
          }
        }
      }
      ["115Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "115Admin"
        ["name"] => string(12) "网站信息"
        ["parent"] => string(3) "109"
        ["url"] => string(35) "/index.php?g=Admin&m=Setting&a=site"
        ["lang"] => string(18) "ADMIN_SETTING_SITE"
      }
      ["126Admin"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "126Admin"
        ["name"] => string(12) "邮箱配置"
        ["parent"] => string(3) "109"
        ["url"] => string(37) "/index.php?g=Admin&m=Mailer&a=default"
        ["lang"] => string(20) "ADMIN_MAILER_DEFAULT"
        ["items"] => array(2) {
          ["127Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "127Admin"
            ["name"] => string(10) "SMTP配置"
            ["parent"] => string(3) "126"
            ["url"] => string(35) "/index.php?g=Admin&m=Mailer&a=index"
            ["lang"] => string(18) "ADMIN_MAILER_INDEX"
          }
          ["129Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "129Admin"
            ["name"] => string(18) "注册邮件模板"
            ["parent"] => string(3) "126"
            ["url"] => string(36) "/index.php?g=Admin&m=Mailer&a=active"
            ["lang"] => string(19) "ADMIN_MAILER_ACTIVE"
          }
        }
      }
      ["156Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "156Admin"
        ["name"] => string(12) "文件存储"
        ["parent"] => string(3) "109"
        ["url"] => string(36) "/index.php?g=Admin&m=Storage&a=index"
        ["lang"] => string(19) "ADMIN_STORAGE_INDEX"
      }
      ["167Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "167Admin"
        ["name"] => string(12) "上传设置"
        ["parent"] => string(3) "109"
        ["url"] => string(37) "/index.php?g=Admin&m=Setting&a=upload"
        ["lang"] => string(20) "ADMIN_SETTING_UPLOAD"
      }
      ["131Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "131Admin"
        ["name"] => string(12) "清除缓存"
        ["parent"] => string(3) "109"
        ["url"] => string(41) "/index.php?g=Admin&m=Setting&a=clearcache"
        ["lang"] => string(24) "ADMIN_SETTING_CLEARCACHE"
      }
    }
  }
  ["132User"] => array(7) {
    ["icon"] => string(5) "group"
    ["id"] => string(7) "132User"
    ["name"] => string(12) "用户管理"
    ["parent"] => string(0) ""
    ["url"] => string(40) "/index.php?g=User&m=Indexadmin&a=default"
    ["lang"] => string(23) "USER_INDEXADMIN_DEFAULT"
    ["items"] => array(2) {
      ["133User"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "133User"
        ["name"] => string(9) "用户组"
        ["parent"] => string(3) "132"
        ["url"] => string(41) "/index.php?g=User&m=Indexadmin&a=default1"
        ["lang"] => string(24) "USER_INDEXADMIN_DEFAULT1"
        ["items"] => array(2) {
          ["134User"] => array(6) {
            ["icon"] => string(4) "leaf"
            ["id"] => string(7) "134User"
            ["name"] => string(12) "本站用户"
            ["parent"] => string(3) "133"
            ["url"] => string(38) "/index.php?g=User&m=Indexadmin&a=index"
            ["lang"] => string(21) "USER_INDEXADMIN_INDEX"
          }
          ["137User"] => array(6) {
            ["icon"] => string(4) "leaf"
            ["id"] => string(7) "137User"
            ["name"] => string(15) "第三方用户"
            ["parent"] => string(3) "133"
            ["url"] => string(38) "/index.php?g=User&m=Oauthadmin&a=index"
            ["lang"] => string(21) "USER_OAUTHADMIN_INDEX"
          }
        }
      }
      ["139User"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "139User"
        ["name"] => string(9) "管理组"
        ["parent"] => string(3) "132"
        ["url"] => string(41) "/index.php?g=User&m=Indexadmin&a=default3"
        ["lang"] => string(24) "USER_INDEXADMIN_DEFAULT3"
        ["items"] => array(2) {
          ["140Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "140Admin"
            ["name"] => string(12) "角色管理"
            ["parent"] => string(3) "139"
            ["url"] => string(33) "/index.php?g=Admin&m=Rbac&a=index"
            ["lang"] => string(16) "ADMIN_RBAC_INDEX"
          }
          ["149Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "149Admin"
            ["name"] => string(9) "管理员"
            ["parent"] => string(3) "139"
            ["url"] => string(33) "/index.php?g=Admin&m=User&a=index"
            ["lang"] => string(16) "ADMIN_USER_INDEX"
          }
        }
      }
    }
  }
  ["85Admin"] => array(7) {
    ["icon"] => string(4) "list"
    ["id"] => string(7) "85Admin"
    ["name"] => string(12) "菜单管理"
    ["parent"] => string(0) ""
    ["url"] => string(35) "/index.php?g=Admin&m=Menu&a=default"
    ["lang"] => string(18) "ADMIN_MENU_DEFAULT"
    ["items"] => array(2) {
      ["86Admin"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "86Admin"
        ["name"] => string(12) "前台菜单"
        ["parent"] => string(2) "85"
        ["url"] => string(39) "/index.php?g=Admin&m=Order__&a=default1"
        ["lang"] => string(22) "ADMIN_ORDER
_DEFAULT1"
        ["items"] => array(2) {
          ["87Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(7) "87Admin"
            ["name"] => string(12) "菜单管理"
            ["parent"] => string(2) "86"
            ["url"] => string(32) "/index.php?g=Admin&m=Nav&a=index"
            ["lang"] => string(15) "ADMIN_NAV_INDEX"
          }
          ["94Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(7) "94Admin"
            ["name"] => string(12) "菜单分类"
            ["parent"] => string(2) "86"
            ["url"] => string(35) "/index.php?g=Admin&m=Navcat&a=index"
            ["lang"] => string(18) "ADMIN_NAVCAT_INDEX"
          }
        }
      }
      ["100Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "100Admin"
        ["name"] => string(12) "后台菜单"
        ["parent"] => string(2) "85"
        ["url"] => string(33) "/index.php?g=Admin&m=Menu&a=index"
        ["lang"] => string(16) "ADMIN_MENU_INDEX"
      }
    }
  }
  ["1Admin"] => array(7) {
    ["icon"] => string(2) "th"
    ["id"] => string(6) "1Admin"
    ["name"] => string(12) "内容管理"
    ["parent"] => string(0) ""
    ["url"] => string(38) "/index.php?g=Admin&m=Content&a=default"
    ["lang"] => string(21) "ADMIN_CONTENT_DEFAULT"
    ["items"] => array(6) {
      ["2Api"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(4) "2Api"
        ["name"] => string(12) "所有留言"
        ["parent"] => string(1) "1"
        ["url"] => string(41) "/index.php?g=Api&m=Guestbookadmin&a=index"
        ["lang"] => string(24) "API_GUESTBOOKADMIN_INDEX"
      }
      ["4Comment"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "4Comment"
        ["name"] => string(12) "评论管理"
        ["parent"] => string(1) "1"
        ["url"] => string(43) "/index.php?g=Comment&m=Commentadmin&a=index"
        ["lang"] => string(26) "COMMENT_COMMENTADMIN_INDEX"
      }
      ["7Portal"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "7Portal"
        ["name"] => string(12) "文章管理"
        ["parent"] => string(1) "1"
        ["url"] => string(39) "/index.php?g=Portal&m=AdminPost&a=index"
        ["lang"] => string(22) "PORTAL_ADMINPOST_INDEX"
      }
      ["18Portal"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "18Portal"
        ["name"] => string(12) "分类管理"
        ["parent"] => string(1) "1"
        ["url"] => string(39) "/index.php?g=Portal&m=AdminTerm&a=index"
        ["lang"] => string(22) "PORTAL_ADMINTERM_INDEX"
      }
      ["25Portal"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "25Portal"
        ["name"] => string(12) "页面管理"
        ["parent"] => string(1) "1"
        ["url"] => string(39) "/index.php?g=Portal&m=AdminPage&a=index"
        ["lang"] => string(22) "PORTAL_ADMINPAGE_INDEX"
      }
      ["32Admin"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "32Admin"
        ["name"] => string(9) "回收站"
        ["parent"] => string(1) "1"
        ["url"] => string(38) "/index.php?g=Admin&m=Recycle&a=default"
        ["lang"] => string(21) "ADMIN_RECYCLE_DEFAULT"
        ["items"] => array(2) {
          ["33Portal"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "33Portal"
            ["name"] => string(12) "文章回收"
            ["parent"] => string(2) "32"
            ["url"] => string(44) "/index.php?g=Portal&m=AdminPost&a=recyclebin"
            ["lang"] => string(27) "PORTAL_ADMINPOST_RECYCLEBIN"
          }
          ["36Portal"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(8) "36Portal"
            ["name"] => string(12) "页面回收"
            ["parent"] => string(2) "32"
            ["url"] => string(44) "/index.php?g=Portal&m=AdminPage&a=recyclebin"
            ["lang"] => string(27) "PORTAL_ADMINPAGE_RECYCLEBIN"
          }
        }
      }
    }
  }
  ["39Admin"] => array(7) {
    ["icon"] => string(5) "cloud"
    ["id"] => string(7) "39Admin"
    ["name"] => string(12) "扩展工具"
    ["parent"] => string(0) ""
    ["url"] => string(40) "/index.php?g=Admin&m=Extension&a=default"
    ["lang"] => string(23) "ADMIN_EXTENSION_DEFAULT"
    ["items"] => array(5) {
      ["47Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "47Admin"
        ["name"] => string(12) "插件管理"
        ["parent"] => string(2) "39"
        ["url"] => string(35) "/index.php?g=Admin&m=Plugin&a=index"
        ["lang"] => string(18) "ADMIN_PLUGIN_INDEX"
      }
      ["53Admin"] => array(7) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "53Admin"
        ["name"] => string(9) "幻灯片"
        ["parent"] => string(2) "39"
        ["url"] => string(36) "/index.php?g=Admin&m=Slide&a=default"
        ["lang"] => string(19) "ADMIN_SLIDE_DEFAULT"
        ["items"] => array(2) {
          ["54Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(7) "54Admin"
            ["name"] => string(15) "幻灯片管理"
            ["parent"] => string(2) "53"
            ["url"] => string(34) "/index.php?g=Admin&m=Slide&a=index"
            ["lang"] => string(17) "ADMIN_SLIDE_INDEX"
          }
          ["62Admin"] => array(6) {
            ["icon"] => string(0) ""
            ["id"] => string(7) "62Admin"
            ["name"] => string(15) "幻灯片分类"
            ["parent"] => string(2) "53"
            ["url"] => string(37) "/index.php?g=Admin&m=Slidecat&a=index"
            ["lang"] => string(20) "ADMIN_SLIDECAT_INDEX"
          }
        }
      }
      ["68Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "68Admin"
        ["name"] => string(12) "网站广告"
        ["parent"] => string(2) "39"
        ["url"] => string(31) "/index.php?g=Admin&m=Ad&a=index"
        ["lang"] => string(14) "ADMIN_AD_INDEX"
      }
      ["75Admin"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(7) "75Admin"
        ["name"] => string(12) "友情链接"
        ["parent"] => string(2) "39"
        ["url"] => string(33) "/index.php?g=Admin&m=Link&a=index"
        ["lang"] => string(16) "ADMIN_LINK_INDEX"
      }
      ["83Api"] => array(6) {
        ["icon"] => string(4) "leaf"
        ["id"] => string(5) "83Api"
        ["name"] => string(15) "第三方登陆"
        ["parent"] => string(2) "39"
        ["url"] => string(39) "/index.php?g=Api&m=Oauthadmin&a=setting"
        ["lang"] => string(22) "API_OAUTHADMIN_SETTING"
      }
    }
  }
  ["187Admin"] => array(7) {
    ["icon"] => string(10) "calculator"
    ["id"] => string(8) "187Admin"
    ["name"] => string(12) "订单管理"
    ["parent"] => string(0) ""
    ["url"] => string(36) "/index.php?g=Admin&m=Order&a=default"
    ["lang"] => string(19) "ADMIN_ORDER_DEFAULT"
    ["items"] => array(2) {
      ["188Order"] => array(6) {
        ["icon"] => string(11) "caret-right"
        ["id"] => string(8) "188Order"
        ["name"] => string(12) "项目分类"
        ["parent"] => string(3) "187"
        ["url"] => string(41) "/index.php?g=Order&m=AdminProject&a=index"
        ["lang"] => string(24) "ORDER_ADMINPROJECT_INDEX"
      }
      ["190Order"] => array(6) {
        ["icon"] => string(11) "caret-right"
        ["id"] => string(8) "190Order"
        ["name"] => string(12) "订单列表"
        ["parent"] => string(3) "187"
        ["url"] => string(39) "/index.php?g=Order&m=AdminSheet&a=index"
        ["lang"] => string(22) "ORDER_ADMINSHEET_INDEX"
      }
    }
  }
  ["189Order"] => array(7) {
    ["icon"] => string(10) "comments-o"
    ["id"] => string(8) "189Order"
    ["name"] => string(15) "微信号管理"
    ["parent"] => string(0) ""
    ["url"] => string(39) "/index.php?g=Order&m=AdminWx&a=mainmenu"
    ["lang"] => string(22) "ORDER_ADMINWX_MAINMENU"
    ["items"] => array(2) {
      ["191Order"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "191Order"
        ["name"] => string(12) "微信列表"
        ["parent"] => string(3) "189"
        ["url"] => string(36) "/index.php?g=Order&m=AdminWx&a=index"
        ["lang"] => string(19) "ORDER_ADMINWX_INDEX"
      }
      ["192Order"] => array(6) {
        ["icon"] => string(0) ""
        ["id"] => string(8) "192Order"
        ["name"] => string(12) "微信添加"
        ["parent"] => string(3) "189"
        ["url"] => string(34) "/index.php?g=Order&m=AdminWx&a=add"
        ["lang"] => string(17) "ORDER_ADMINWX_ADD"
      }
    }
  }
  ["193Order"] => array(6) {
    ["icon"] => string(4) "bars"
    ["id"] => string(8) "193Order"
    ["name"] => string(12) "项目管理"
    ["parent"] => string(0) ""
    ["url"] => string(38) "/index.php?g=Order&m=AdminMenu&a=index"
    ["lang"] => string(21) "ORDER_ADMINMENU_INDEX"
  }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值