Skip to content

Commit df9bc41

Browse files
committed
update
2 parents 7940baf + 835dc27 commit df9bc41

File tree

12 files changed

+143
-69
lines changed

12 files changed

+143
-69
lines changed

.gitignore

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
/vendor
2-
/node_modules
3-
/public/storage
4-
/public/uploads
1+
vendor
2+
node_modules
3+
public/storage
4+
public/uploads
55
Homestead.yaml
66
Homestead.json
77
.env
88
.idea
9+
public/admin
10+
npm-debug.log

app/Http/Controllers/Backend/AuthController.php

+9-1
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,18 @@
1313
class AuthController extends Controller
1414
{
1515

16+
protected $username = 'name';
17+
1618
public function postLogin(Request $request)
1719
{
20+
1821
$result = ['flag' => false, 'msg' => '登陆失败,账户和密码不企配'];
19-
$credentials = $request->only('email', 'password');
22+
$result = ['flag' => false, 'msg' => '登陆失败'];
23+
$credentials = $request->only('name', 'password');
24+
if (str_contains($credentials['name'], '@')) {
25+
$credentials['email'] = $credentials['name'];
26+
unset($credentials['name']);
27+
}
2028
if (Auth::guard('admin')->attempt($credentials)) {
2129
$token = uniqid();
2230
$id = Auth::guard('admin')->id();

database/seeds/AdminsTableSeeder.php

+8
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,14 @@ public function run()
2121
'is_super' => 1
2222
]);
2323

24+
\App\Admin::create([
25+
'name' => 'demo',
26+
'email' => '[email protected]',
27+
'password' => Hash::make('demo'),
28+
'image' => $faker->imageUrl(100, 100),
29+
'is_super' => 1
30+
]);
31+
2432
foreach (range(1, 10) as $index) {
2533
\App\Admin::create([
2634
'name' => 'admin' . $index,

package.json

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
{
2-
"private": true,
2+
"name": "laravel-vue-cms",
3+
"version": "0.0.1",
4+
"description": "a cms built on laravel5.2, vue.js 1.0+",
5+
"author": "noop",
6+
"license": "MIT",
37
"scripts": {
48
"dev": "webpack-dev-server --inline --hot",
5-
"web": "php artisan serve"
9+
"web": "php artisan serve",
10+
"build": "webpack",
611
},
712
"devDependencies": {
813
"babel-core": "^6.0.0",
@@ -27,5 +32,9 @@
2732
"vue-style-loader": "^1.0.0",
2833
"webpack": "^1.12.2",
2934
"webpack-dev-server": "^1.12.0"
35+
},
36+
"repository": {
37+
"type": "git",
38+
"url": "https://github.com/liukaijv/laravel-vue-cms.git"
3039
}
3140
}

readme.md

+31-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
# laravel-vue-cms
22

3-
learn laravel & vue.js, built with laravel5.2, vue.js 1.0+
3+
learn laravel & vue.js, built on laravel5.2, vue.js 1.0+ and INSPINIA Admin Theme
44

5-
## clone & install dependencies
5+
## 线上演示
6+
7+
http://115.28.223.2:9000/admin/
8+
user: demo
9+
password: demo
10+
11+
## 本地运行
12+
13+
### 克隆代码,安装依赖
614

715
```
816
clone https://github.com/liukaijv/laravel-vue-cms.git someDir
@@ -11,13 +19,13 @@ cd someDir
1119
1220
composer install
1321
14-
npm install
22+
npm install
1523
1624
```
1725

18-
## config
26+
### 数据库设置
1927

20-
open .env file & config database
28+
mysql:修改.env文件的数据库配置
2129

2230
```
2331
DB_HOST=127.0.0.1
@@ -28,15 +36,31 @@ DB_PASSWORD=
2836
2937
```
3038

31-
## run
39+
sqlite:修改config/database.php,使用sqlite
3240

3341
```
34-
php artisan migrate
42+
'default' => env('DB_CONNECTION', 'sqlite')
43+
44+
// 创建database.sqlite文件
45+
touch database/database.sqlite
46+
47+
```
48+
49+
50+
### 运行
3551

52+
```
53+
// 创建数据库,填充数据
54+
php artisan migrate
3655
php artisan db:seed
3756
57+
// 后台服务
3858
npm run web
3959
60+
// 前台测试
4061
npm run dev
4162
63+
// 代码生成到publick/admin目录
64+
npm run build
65+
4266
```

resources/admin/app.vue

+30-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,34 @@
11
<template>
22
<div>
33
<router-view></router-view>
4+
<loading :show="showLoading"></loading>
45
</div>
5-
</template>
6+
</template>
7+
8+
<script>
9+
import Vue from 'vue';
10+
import Loading from './components/loading';
11+
export default {
12+
ready: function () {
13+
let vm = this;
14+
Vue.http.interceptors.push({
15+
request: function (request) {
16+
vm.showLoading = true;
17+
return request;
18+
},
19+
response: function (response) {
20+
vm.showLoading = false;
21+
return response;
22+
}
23+
});
24+
},
25+
data: function () {
26+
return {
27+
showLoading: false
28+
}
29+
},
30+
components: {
31+
loading: Loading
32+
}
33+
}
34+
</script>
+30-20
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,38 @@
1-
<style >
1+
<style>
22
3-
.loading-mask {
4-
position: absolute;
5-
left: 0;
6-
top: 0;
7-
z-index: 2001;
8-
width: 100%;
9-
height: 100%;
10-
background-color: rgba(0, 0, 0, 0.2);
11-
}
3+
.loading-mask {
4+
position: absolute;
5+
left: 0;
6+
top: 0;
7+
z-index: 2001;
8+
width: 100%;
9+
height: 100%;
10+
background-color: rgba(0, 0, 0, 0.2);
11+
}
1212
13-
.loading-mask > div {
14-
position: absolute!important;
15-
top: 50%!important;
16-
left: 50%!important;
17-
transform: translate(-50%,-50%);
18-
}
13+
.loading-mask > div {
14+
position: absolute !important;
15+
top: 50% !important;
16+
left: 50% !important;
17+
transform: translate(-50%, -50%);
18+
}
1919
2020
</style>
2121

2222
<template>
2323

24-
<div class="loading-mask" :transition="fade" keep-alive>
25-
<div class="sk-spinner sk-spinner-rotating-plane"></div>
26-
</div>
24+
<div class="loading-mask" :transition="fade" v-show="show">
25+
<div class="sk-spinner sk-spinner-rotating-plane"></div>
26+
</div>
2727

28-
</template>
28+
</template>
29+
30+
<script>
31+
export default {
32+
props: {
33+
show: {
34+
default: false
35+
}
36+
}
37+
}
38+
</script>

resources/admin/lib/auth.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,21 @@ export default {
1010
login(context, creds) {
1111

1212
return new Promise(function (resolve, reject) {
13+
let error_result = {flag: false, msg: "登陆失败"};
1314
context.$http.post(LOGIN_URL, creds).then((result) => {
1415
let data = result.data;
1516
if (data.flag === true && data.jwt_token) {
1617
localStorage.setItem('jwt_token', data.jwt_token);
1718
localStorage.setItem('jwt_user', JSON.stringify(data.data));
1819
this.authenticated = true;
1920
this.user = data.data;
20-
resolve(data.jwt_token);
21+
resolve(result);
2122
} else {
22-
reject();
23+
reject(error_result);
2324
}
2425

2526
}, (error) => {
26-
reject(error);
27+
reject(error_result);
2728
});
2829

2930
}.bind(this));

resources/admin/views/editor.vue

-23
This file was deleted.

resources/admin/views/login.vue

+5-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div>
44
<form class="m-t" role="form" onsubmit="return false">
55
<div class="form-group">
6-
<input type="email" class="form-control" placeholder="邮箱地址" required v-model="credentials.email">
6+
<input type="text" class="form-control" placeholder="邮箱/用户名" required v-model="credentials.name">
77
</div>
88
<div class="form-group">
99
<input type="password" class="form-control" placeholder="密码" required
@@ -23,7 +23,7 @@
2323
data: function () {
2424
return {
2525
credentials: {
26-
email: '',
26+
name: '',
2727
password: ''
2828
}
2929
@@ -35,8 +35,10 @@
3535
let vm = this;
3636
3737
auth.login(vm, vm.credentials).then(function () {
38-
vm.$toast['success']('登陆成功');
3938
vm.$route.router.go('/main/dashboard');
39+
vm.$toast['success']('登陆成功');
40+
}, function (error) {
41+
vm.$toast['success'](error.msg);
4042
});
4143
4244
}

resources/admin/views/partial/top.vue

+5-4
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
@click="toggleCanvasMenu">
77
<i class="fa fa-bars"></i>
88
</button>
9-
<form role="search" class="navbar-form-custom" @submit="search">
9+
<form role="search" class="navbar-form-custom">
1010
<div class="form-group">
11-
<input type="text" placeholder="搜索…" class="form-control" v-model="search_text">
11+
<input type="text" placeholder="搜索…" class="form-control" v-model="search_text"
12+
@keyup="onKeyup | debounce 300">
1213
</div>
1314
</form>
1415

@@ -40,8 +41,8 @@
4041
},
4142
mixins: [AuthMixin],
4243
methods: {
43-
search: function () {
44-
this.$broadcast(this.search_text);
44+
onKeyup: function () {
45+
this.$root.$broadcast('onSearch', this.search_text);
4546
return false;
4647
},
4748
toggleCanvasMenu: function () {

resources/admin/views/post/index.vue

+4-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
columns: {
6666
id: '#',
6767
title: '标题',
68-
category: ['所属分类','name'],
68+
category: ['所属分类', 'name'],
6969
created_at: '创建时间'
7070
}
7171
@@ -104,6 +104,9 @@
104104
onChangePage: function (page) {
105105
this.page = page;
106106
this.getData();
107+
},
108+
onSearch: function (text) {
109+
console.log(text);
107110
}
108111
}
109112
}

0 commit comments

Comments
 (0)