基於element和vue的一個簡單的后台管理頁面基礎模型(這里我用了php從數據庫獲取數據然后在JS區域接收了獲取的數據。PS:不會用axios)
直接附上所有代碼:數據庫:mywu 用戶名:root 密碼:root 數據表:test
<?php
header("Content-type:text/html;charset=utf-8");
$host = "localhost";
$username = 'root';
$password = 'root';
$db = 'mywu';
//1.連接數據庫
$conn = mysqli_connect($host,$username,$password,$db);
if (!$conn) {
die('Could not connect: ' . mysqli_error($con));
}
//2.定義一個空數組用來接收數據
$usersArr = [];
mysqli_set_charset($conn,'utf8');
//3.獲得數據表test的數據
$user_menu = "select * from test";
//4.發送sql語句
$res = mysqli_query($conn,$user_menu); //結果集的資源
//5.將結果集資源轉換成數據
// $row = $res->fetch_assoc();
//while判定條件是否為true是則循環
while($row = $res->fetch_assoc())
{
$userArr[] = $row;
}
?>
<!DOCTYPE html>
<html>
<!-- head區域引入了element-ui.css,vue.js,vue-router.js,element-ui.js的CDN 注意先后順序 -->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>VUE項目</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui/lib/theme-chalk/index.css">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script>
<script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.0/lib/index.js"></script>
</head>
<body>
<div id="app">
<!-- 路由填充位 -->
<router-view></router-view>
</div>
<script>
//將從數據庫獲取的數據JSON解析並賦值給usermenu
var usermenu = <?php echo json_encode($userArr);?>
// 主頁
const Home = {
data() {
return {
//用來接收JSON數據的空數組
menulist: []
}
},
template:
`<div style="height:100%;">
<el-container class="home-con" style="height:100%">
<el-header>
<img src="http://style.wuliwu.top/LOGO" />
<span>后台管理系統 單頁版</span>
</el-header>
<el-container>
<el-aside width="200px">
<el-menu
default-active="1"
background-color="#545c64"
text-color="#fff"
active-text-color="#ffd04b"
>
//遍歷接受的數據
<el-submenu :index="item.id + ''" v-for="item in menulist" :key="item.id">
<template slot="title">
<i class="el-icon-location"></i>
<span>{{item.username}}</span>
</template>
<el-menu-item index="1-1" @click="cliuser">用戶列表</el-menu-item>
<el-menu-item index="1-2" @click="clipic">上傳圖片</el-menu-item>
</el-submenu>
</el-menu>
</el-aside>
<el-main>
<!-- 路由占位符 -->
<router-view></router-view>
</el-main>
</el-container>
</el-container>
</div>`,
created() {
this.getMenuList()
},
methods: {
cliuser() {
this.$router.push('/user')
},
clipic() {
this.$router.push('/uppicture')
},
getMenuList() {
//將解析后的JSON賦值給menulist
this.menulist = usermenu
console.log(usermenu)
},
}
}
// 用戶
// 上傳圖片按鈕
const router = new VueRouter({
routes: [
{ path: '/', component: Home }
]
})
new Vue({
el: '#app',
data: {},
methods: {},
router
})
</script>
<style>
html,
body,
#app {
height: 100%;
margin: 0;
padding: 0;
}
.el-header {
background-color: #373d41;
padding-left: 0;
color: #fff;
display: flex;
font-size: 20px;
align-items: center;
}
.el-header img {
margin-right: 10px;
}
.el-aside {
background-color: #545c64;
}
.el-card {
margin-top: 10px;
}
.el-breadcrumb {
margin-bottom: 15px;
}
</style>
</body>
</html>
僅供參考,如有不解之處請在下方評論區留言,謝謝!
