1. vue項目實現動態路由和動態菜單搭建插件式開發框架免費源碼
以往我們在開發vue項目的時候,總是通過將路徑和路由寫在route/index.js文件中,然後直接進行訪問即可,一般實現許可權匹配都是通過菜單下面的許可權參數和路由守衛進行一個驗證攔截和許可權匹配,然而這樣安全性仍然不足。因為我們在route/index.js中已經寫滿了所有的路由,這樣子不僅造成靜態路由內容過多、修改困難,同時當靜態路由內容過多的時候,我們在路由中的內容就顯得極其復雜。
而後端對前端的控制也顯得較為無力,無法實現嚴格性的控制。
由此我們發現通過動態路由控制是必然的,此時我們只需要通過後端獲取數據菜單和路由信息json,然後動態添加路由並生成菜單,使菜單與動態路由內容進行一個匹配,這樣子我們可以實現由後端控制前端的菜單和路由,我們的項目往往只需要內置幾個組件無需許可權的公共頁面如登陸、注冊、忘記密碼和404錯誤這幾個常用頁面組件。
我們只需要將寫好的組件放置到我們的view視圖下,然後我們通過動態的路由和菜單實現路由添加和菜單進行匹配,我們便可實現對插件進行訪問,我們減少了對route/index.js內容寫入,同時也有利於減少內存的佔用。
我們通過動態路由的形式,我們生成的菜單許可權更加的完善,不僅實現依靠菜單與路由守衛攔截實現鑒權,也可以通過動態路由實現動態載入vue文件,控制更加深度
我們通過動態路由的形式,我們可以將項目分給不同的人進行完成,便於組建一個開發團隊,因為他們所開發的組件,我們只需要在具備基本的javascript庫的情況下。我們直接進行動態路由的一個掛載和菜單生成便可完成項目合作,減少了對route/index.js文件的操作,保證項目的完整性。
最後我發現在非node環境的開發條件下,我們可以實現遠程的vue文件載入,這不僅為我們開發提供了便利,同時也有利於我們及時修改文件,以達到項目的需求,更有利於保障安全,實現伺服器vue文件載入。
Vue:2.6.11。
Vue-route:3.2.0。
主頁
聊天
第一通過後端返回的一個路由json數據,我們通過前端生成符合路由路由靜態內容數組的一個數組,然後再通過addRoute進行一個循環添加,我們以此生成動態路由。在登陸時獲取後端返回的菜單信息,我們進行菜單的一個循環生成,由此我們的一個動態項目就已經完成。
第二怎樣對動態路由和菜單項目進行一個管理。
我們首先可以通過搭建一個組件通過添加路由信息和管理菜單實現二者的動態匹配。我們只需要對路由信息進行一個添加和修改,並和菜單相互間進行匹配,我們便可實現簡單的路由掛載。
組件管理
菜單管理
此時將數據提交的後端由後端進行數據保存,我們此時的組件只需要放在views文件夾下,添加路由進行文件載入,我們便可實現路由管理。
第一登陸頁面配置。
我們需要在靜態文件夾下創建一個menu.json和route.json。兩個json文件模擬伺服器登錄時返回的數據。
我們在登錄頁面模擬獲取數據之後,我們通過菜單的一個方法進行生成菜單,通過路由的方法生成路由數組並進行循環添加,然後執行路由跳轉。
第二配置路由初始化內容。我們將route/index.js的路由信息填為空是非常不理智的,而且會報錯,因為路由初始化在載入前已經完成。有些頁面完全不需要許可權便可訪問,比如登錄、注冊、找回密碼和404錯誤,這種不需要許可權的頁面,我們還是需要將其直接以靜態的形式寫在route/index.js文件中。
Index初始數據
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue . use ( VueRouter )
const routes = [{
path: '/' , //訪問url
name: 'login' , //路由名稱
component : () => import ( '@/unitui/pages/Login.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "登錄" //網站標題
}
},
{
path: '/register' , //訪問url
name: 'register' , //路由名稱
component : () => import ( '@/unitui/pages/Register.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "注冊" //網站標題
}
},
{
path: '/forget' , //訪問url
name: 'forget' , //路由名稱
component : () => import ( '@/unitui/pages/Forget.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "找回密碼" //網站標題
}
},
{
path: '/404' , //訪問url
name: '404' , //路由名稱
component : () => import ( '@/unitui/pages/404.vue' ), //載入模板文件
meta: {
show_site: 0 , //是否全屏顯示
web_title: "404錯誤" //網站標題
}
},
]
const router = new VueRouter ({
routes
})
router . beforeEach (( to , from , next ) => {
document . title = to . meta . web_title
console . log ( to );
next ()
})
export default router
第三,關於防止刷新後丟失的問題。我們需要在app.vue文件中的methods方法中定義一個路由生成方法。
示例:
init_route () { //初始化路由,防止刷新丟失
if ( sessionStorage . getItem ( "route_data" ) != null ) { //只有後端已經返回數據的情況下才允許生成
const route_data = JSON . parse ( sessionStorage . getItem ( "route_data" )); //獲取路由信息
const data = []; //默認路由數組
for ( let index = 0 ; index < route_data . length ; index ++) { //生成路由信息
data [ index ] = {
path: route_data [ index ]. path , //訪問url
name: route_data [ index ]. name , //路由名稱
component : resolve =>
require ([ `@/views/ ${ route_data [ index ]. component } ` ], resolve ), //載入模板文件
meta: {
show_site: route_data [ index ]. meta . show_site , //是否全屏顯示
web_title: route_data [ index ]. meta . web_title //網站標題
}
};
}
for ( let index = 0 ; index < data . length ; index ++) { //循環添加路由
this . $router . addRoute ( data [ index ]);
}
}
}
在mounted中進行方法調用,防止刷新的時路由丟失,導致發生錯誤。該方法內容基本和登陸頁面的菜單出路由初始內容基本相同,但我們唯一差別的是,我們需要判斷登陸所獲取的路由信息是否存在,只有在存在的時候及後端已經返回了路由信息,即證明登錄成功的時候,我們才會動態添加路由。
第一在刷新之後,默認跳轉到path:』*』的一個路由界面中去,此時我們解決方法只需要將path:』*』路由進行一個刪除,將其刪除就變可正常訪問。
第二動態路由跳轉時發生Cannot find mole xxx錯誤。
意思是無法載入我們指定的一個vue文件,這是由於route3.0版本後import方式不支持傳入變數,此時我們只需要將其改為require方式便可。
我們此次動態vue項目開發已經基本完成,我的開發的項目是基於element-ui進行,那麼如果你需要源碼參考。可以私信回復unit便可獲取。
2. 個人博客管理系統源碼
技術棧
後端技術棧:egg.js + mysql + sequelize + jwt 等
前端技術棧:vue全家桶 + axios + elementUI + markdown編輯器等
前端項目地址:https://github.com/caiheping/vue-cms
項目運行
git clone https://github.com/caiheping/egg-cms.git
# 如果clone 很慢,也可以拉碼雲的倉庫
git clone https://gitee.com/caiheping/egg-cms.git
cd egg-cms
npm install
然後修改config/config.default.js和database/config.json(這個改不改都行)下自己的資料庫用戶名和密碼
創建資料庫egg_cms_development
在egg_cms_development資料庫下導入項目根目錄下egg_cms_development.sql文件
運行項目
npm run dev
瀏覽器打開 http://127.0.0.1:7001/index.html
admin登錄賬號:admin,密碼: 123456 普通用戶賬號密碼自己用admin去用戶管理創建
演示地址:http://blog.caihp.top (自己伺服器只開放部分功能,想要查看全部功能,請代碼在自己的電腦上看)
用戶名: test
密碼:123456
項目功能
登錄 -- 完成
首頁 -- 去我的博客
文章列表 -- 增刪改查
文章類型 -- 增刪改查
用戶中心 -- 增刪改查
角色管理 -- 增刪改查
菜單管理 -- 增刪改查
部門管理 -- 增刪改查
通知公告 -- 增刪改查
頭像上傳 -- 完成
我的博客前端界面(知道地址後無需登錄就可以進入)
界面截圖
傳送門:前端vue3 + 後端egg項目地址:https://github.com/caiheping/oa-api 或者 https://gitee.com/caiheping/oa-api
3. Github上有什麼開源的vue+laravel網站代碼嗎
Laravel 5 Boilerplate —— 基於當前Laravel最新版本(Laravel 5.1.*)並集成Boilerplate的項目
Laravel 5 Angular Material Starter —— 這是一個Laravel 5.1和AngularJS的原型項目
Someline Starter —— 基於Laravel 5和Vue.js,用於快速構架RESTful API和Web應用的原型項目
CMS
Bootstrap CMS —— Laravel 5.1驅動的功能強大的CMS
October —— 基於Laravel 5,致力於讓開發工作變得簡單的CMS
PyroCMS —— MVC架構的PHP內容管理系統,3.0以前基於CodeIgniter,目前基於Laravel 5.1
LavaLite —— 基於Laravel 5.1 & Bootstrap 3的內容管理系統
TypiCMS —— 基於 Laravel 5 構建的、支持多語言的內容管理系統
Laravel and AngularJS CMS —— 基於Laravel 5.1和AngularJS的CMS
Microweber —— 基於 Laravel 拖拽式生成 CMS 及在線商店利器
AsgardCMS —— 基於 Laravel 構建的、支持模塊化和多語言的CMS
CRM
Flarepoint —— 基於Laravel構建的免費開源CRM平台
論壇
Laravel.io —— Laravel開發者社區
Flarum —— 免費的、開源的、專注於簡約的論壇系統,esoTalk和FluexBB的聯合繼承者
PHPHub —— 基於Laravel 4.2,積極向上的 PHP & Laravel 開發者社區
電商
Antvel —— 基於 Laravel 5.* www.lonwin.net開發的開源電子商務項目
項目管理
92five app —— 基於 Laravel框架 & Backbone JS 構建,是一個自託管的、基於web的項目管理應用
Scrumwala —— 基於Laravel5,項目管理應用
博客
Canvas —— 基於Laravel 5.2 開發的輕量級博客系統
Katana —— 靜態博客/站點生成器(支持Markdown和GitHub Pages)
Vuedo —— 基於 Laravel 和 Vue.js 構建的博客平台
Wardrobe —— 專注於寫作的最小化博客平台
後台模板
Laravel Angular Admin —— 基於 Laravel + Angularjs + Bootstrap + AdminLTE 實現的後台模板
其他
Laravel.com —— Laravel官網源碼
Laravel Tricks —— Laravel小技巧&小貼士
Invoice Ninja —— 基於Laravel構建的開源發票及時間跟蹤應用
Paperwork —— 基於Laravel 4.X的開源的筆記&歸檔工具
Cachet —— 基於Laravel 5的開源的狀態頁系統
StyleCI —— 由 PHP CS Fixer開發,提供PHP代碼風格持續集成服務
Podcastwala —— 基於Laravel 5,構建屬於你自己的播客網站
Deployer —— 基於Laravel 5.1的、免費的、開源的PHP應用部署工具
RSS Monster —— 基於 Lumen 開發的 RSS 聚合器和閱讀器
Koel —— 基於 Laravel 5.1 & Vue.js 開發的酷炫音樂流媒體應用
Attendize —— 基於 Laravel 框架開發的開源門票及活動管理應用
4. 免費開源crm客戶管理系統平台有哪些
簡信CRM開源版是國內進行免費開源的CRM管理系統,絕對CRM開源業界開拓者,截止2018年6月,簡信CRM開源版下載用戶量已超200多萬,用戶規模處於國內領先水平。
簡信CRM選擇把核心產品以永久開源免費的形式,推送給廣大中小企業使用。希望能夠始終實實在在的幫助客戶提高客戶管理水平和創造更多價值。
源代碼的開放可供使用者進行二次開發,以滿足企業運營的個性化需求。您可以自己搭建運行環境,保護敏感的商業機密。