Toggle navigation
Toggle navigation
This project
Loading...
Sign in
OnePoem
/
OnePoem-Server
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
李帅
2022-03-17 18:38:24 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
5d659fcb501d9b9803d343060bc48d7ce5bf2b8e
5d659fcb
1 parent
b61d4e4b
1.重构模板和临境上传功能
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
310 additions
and
27 deletions
app/Admin/Controllers/OnePoemController.php
app/Admin/Controllers/VideoShowController.php
app/Admin/Controllers/VideoTempController.php
app/Admin/Renderable/PoemTable.php
app/Admin/Renderable/TemplateTable.php
app/Admin/routes.php
app/Models/Component.php
app/Models/VideoTemp.php
database/migrations/2022_03_17_144518_create_components_table.php
routes/api.php
app/Admin/Controllers/OnePoemController.php
View file @
5d659fc
...
...
@@ -85,7 +85,7 @@ class OnePoemController extends AdminController
$form
->
display
(
'id'
);
$form
->
text
(
'title'
);
$form
->
text
(
'author'
);
$form
->
text
(
'content'
);
$form
->
text
area
(
'content'
);
$form
->
text
(
'annotate'
);
$form
->
text
(
'spelling'
);
$form
->
text
(
'en'
);
...
...
app/Admin/Controllers/VideoShowController.php
View file @
5d659fc
...
...
@@ -2,7 +2,10 @@
namespace
App\Admin\Controllers
;
use
App\Admin\Renderable\PoemTable
;
use
App\Admin\Renderable\TemplateTable
;
use
App\Admin\Repositories\VideoShow
;
use
App\Models\OnePoem
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Show
;
...
...
@@ -62,11 +65,60 @@ class VideoShowController extends AdminController
{
return
Form
::
make
(
new
VideoShow
(),
function
(
Form
$form
)
{
$form
->
display
(
'id'
);
$form
->
text
(
'video_url'
);
$form
->
text
(
'video_size'
);
$form
->
text
(
'video_time'
);
$form
->
text
(
'is_horizontal'
);
$form
->
selectTable
(
'poem_id'
,
'选择一言'
)
->
title
(
'一言诗词库'
)
->
from
(
PoemTable
::
make
());
// $form->radio('type')->addElementClass('type')
// ->options([1=>'图文音频',2=>'视频'])->default(1);
$form
->
radio
(
'type'
)
->
options
([
1
=>
'视频'
,
2
=>
'图文音频'
])
->
when
(
1
,
function
(
Form
$form
){
$form
->
file
(
'bg_url'
,
'上传视频'
)
->
accept
(
'mp4'
)
->
autoUpload
()
->
uniqueName
()
->
addElementClass
(
'bg_video_url'
);
})
->
when
(
2
,
function
(
Form
$form
){
$form
->
multipleImage
(
'bg_url'
,
'上传图片'
)
->
limit
(
5
)
->
uniqueName
()
->
addElementClass
(
'bg_img_url'
);
})
->
default
(
1
);
$form
->
radio
(
'bg_music'
,
'背景音'
)
->
options
([
'无'
,
'有'
])
->
when
(
1
,
function
(
Form
$form
){
$form
->
file
(
'bgm_url'
,
'上传背景音'
)
->
accept
(
'mp3,aac,wav'
)
->
autoUpload
()
->
uniqueName
()
->
addElementClass
(
'bgm_url'
);
})
->
default
(
0
);
$form
->
textarea
(
'feel'
,
'有感'
);
$form
->
selectTable
(
'poem_id'
,
'选择模板'
)
->
title
(
'模板选择'
)
->
from
(
TemplateTable
::
make
());
$form
->
radio
(
'thumbnail'
,
'封面'
)
->
options
([
1
=>
'手动上传'
,
2
=>
'选择截屏'
])
->
when
(
1
,
function
(
Form
$form
){
$form
->
multipleImage
(
'bg_url'
,
'上传图片'
)
->
limit
(
5
)
->
uniqueName
()
->
addElementClass
(
'bg_img_url'
);
})
->
when
(
2
,
function
(
Form
$form
){
$form
->
html
(
''
);
})
->
default
(
1
);
$form
->
display
(
'created_at'
);
$form
->
display
(
'updated_at'
);
});
...
...
app/Admin/Controllers/VideoTempController.php
View file @
5d659fc
...
...
@@ -2,16 +2,18 @@
namespace
App\Admin\Controllers
;
use
App\Admin\Repositories\VideoTemp
;
use
App\Models\VideoTemp
;
use
App\Models\Component
;
use
Dcat\Admin\Form
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Show
;
use
Dcat\Admin\Http\Controllers\AdminController
;
use
Illuminate\Http\Request
;
use
Dcat\Admin\Widgets\Table
;
use
Illuminate\Support\Facades\DB
;
class
VideoTempController
extends
AdminController
{
protected
$title
=
'
视频
模板'
;
protected
$title
=
'
临境
模板'
;
/**
* Make a grid builder.
*
...
...
@@ -20,20 +22,28 @@ class VideoTempController extends AdminController
protected
function
grid
()
{
return
Grid
::
make
(
new
VideoTemp
(),
function
(
Grid
$grid
)
{
$grid
->
model
()
->
with
(
'components'
);
// 设置自定义视图
$grid
->
setActionClass
(
Grid\Displayers\Actions
::
class
);
$grid
->
column
(
'id'
,
__
(
'ID'
))
->
sortable
();
$grid
->
column
(
'title'
);
$grid
->
column
(
'type'
);
$grid
->
column
(
'bg_type'
);
$grid
->
column
(
'bg_url'
)
->
image
(
'/storage/'
);
$grid
->
column
(
'bg_music'
);
$grid
->
column
(
'state'
);
$grid
->
column
(
'sn'
);
$grid
->
column
(
'top'
);
$grid
->
column
(
'left'
);
$grid
->
column
(
'font_size'
);
$grid
->
column
(
''
,
'组件信息'
)
->
display
(
'展开'
)
->
expand
(
function
(){
$th
=
[
'id'
,
'模板id'
,
'名称'
,
'位置'
,
'字号'
,
'字体颜色'
,
'背景色'
,
'透明度'
,
'创建时间'
,
'修改时间'
];
return
Table
::
make
(
$th
,
$this
->
components
->
toArray
())
->
withBorder
();
});
// $grid->column('type');
// $grid->column('bg_type');
// $grid->column('bg_url')->image('/storage/');
// $grid->column('bg_music');
$grid
->
column
(
'state'
)
->
switch
();
// $grid->column('sn');
// $grid->column('top');
// $grid->column('left');
// $grid->column('font_size');
$grid
->
column
(
'created_at'
);
$grid
->
column
(
'updated_at'
)
->
sortable
();
//
...
...
@@ -75,7 +85,7 @@ class VideoTempController extends AdminController
*
* @return Form
*/
protected
function
form
()
protected
function
form
2
()
{
return
Form
::
make
(
new
VideoTemp
(),
function
(
Form
$form
)
{
$form
->
display
(
'id'
);
...
...
@@ -139,4 +149,107 @@ class VideoTempController extends AdminController
$form
->
display
(
'updated_at'
);
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected
function
form
()
{
return
Form
::
make
(
new
VideoTemp
(),
function
(
Form
$form
)
{
$form
->
display
(
'id'
);
$form
->
block
(
8
,
function
(
Form\BlockForm
$form
)
{
// 设置标题
$form
->
title
(
'基本设置'
);
// 显示底部提交按钮
$form
->
showFooter
();
// 设置字段宽度
$form
->
width
(
8
,
3
);
$form
->
text
(
'title'
);
$form
->
checkbox
(
'components'
,
'组件'
)
->
when
(
'every_poem'
,
function
(
Form\BlockForm
$form
)
{
$form
->
select
(
'pos_every_poem'
,
'每日位置'
)
->
options
([
'topLeft'
=>
'上左'
,
'topMiddle'
=>
'上中'
,
'topRight'
=>
'上右'
,
]);
$form
->
divider
();
})
->
when
(
'one_poem'
,
function
(
Form\BlockForm
$form
)
{
$form
->
select
(
'pos_one_poem'
,
'一言位置'
)
->
options
([
'topLeft'
=>
'上左'
,
'topMiddle'
=>
'上中'
,
'topRight'
=>
'上右'
,
]);
$form
->
divider
();
})
->
when
(
'weather'
,
function
(
Form\BlockForm
$form
)
{
$form
->
select
(
'pos_weather'
,
'天气位置'
)
->
options
([
'topLeft'
=>
'上左'
,
'topMiddle'
=>
'上中'
,
'topRight'
=>
'上右'
,
]);
$form
->
divider
();
})
->
when
(
'date'
,
function
(
Form\BlockForm
$form
)
{
$form
->
select
(
'pos_date'
,
'日期位置'
)
->
options
([
'topLeft'
=>
'上左'
,
'topMiddle'
=>
'上中'
,
'topRight'
=>
'上右'
,
]);
$form
->
divider
();
})
->
when
(
'feel'
,
function
(
Form\BlockForm
$form
)
{
$form
->
select
(
'pos_feel'
,
'日期位置'
)
->
options
([
'topLeft'
=>
'上左'
,
'topMiddle'
=>
'上中'
,
'topRight'
=>
'上右'
,
]);
$form
->
divider
();
})
->
default
([
'one_poem'
,
'weather'
,
'date'
])
->
options
([
'every_poem'
=>
'每日一言组件'
,
'one_poem'
=>
'一言组件'
,
'weather'
=>
'天气组件'
,
'date'
=>
'日期组件'
,
'feel'
=>
'临境有感组件'
,
]);
$form
->
hidden
(
'state'
)
->
saving
(
function
(
$v
)
{
return
$v
;
});
});
// $form->block(4, function (Form\BlockForm $form) {
// $form->html(view('admin.form.phone'));
// });
$form
->
display
(
'created_at'
);
$form
->
display
(
'updated_at'
);
});
}
public
function
store
()
{
$all
=
\request
()
->
all
();
dd
(
$all
);
try
{
DB
::
transaction
(
function
()
use
(
$all
){
$vide_temp
=
VideoTemp
::
query
()
->
create
([
'title'
=>
$all
[
'title'
],
'state'
=>
1
,
]);
foreach
(
$all
[
'components'
]
as
$component
)
{
if
(
$component
!==
null
){
Component
::
query
()
->
create
([
'temp_id'
=>
$vide_temp
->
id
,
'name'
=>
$component
,
'position'
=>
$all
[
'pos_'
.
$component
]
]);
}
}
});
}
catch
(
\Exception
$exception
){
return
$this
->
form
()
->
response
()
->
error
(
$exception
->
getMessage
());
}
return
$this
->
form
()
->
response
()
->
refresh
()
->
success
(
trans
(
'admin.save_succeeded'
));
}
}
...
...
app/Admin/Renderable/PoemTable.php
View file @
5d659fc
...
...
@@ -22,8 +22,8 @@ class PoemTable extends LazyRenderable
$grid
->
column
(
'author'
);
$grid
->
column
(
'content'
);
$grid
->
column
(
'annotate'
);
$grid
->
column
(
'spelling'
);
$grid
->
column
(
'en'
);
//
$grid->column('spelling');
//
$grid->column('en');
$grid
->
quickSearch
([
'title'
,
'author'
,
'content'
,
'annotate'
]);
...
...
@@ -31,8 +31,9 @@ class PoemTable extends LazyRenderable
$grid
->
disableActions
();
$grid
->
filter
(
function
(
Grid\Filter
$filter
)
{
$filter
->
like
(
'username'
)
->
width
(
4
);
$filter
->
like
(
'name'
)
->
width
(
4
);
$filter
->
like
(
'title'
)
->
width
(
3
);
$filter
->
like
(
'author'
)
->
width
(
3
);
$filter
->
like
(
'content'
)
->
width
(
3
);
});
});
}
...
...
app/Admin/Renderable/TemplateTable.php
0 → 100644
View file @
5d659fc
<?php
/**
* Created by PhpStorm.
* User: lishuai
* Date: 2022/1/10
* Time: 5:57 PM
*/
namespace
App\Admin\Renderable
;
use
App\Models\VideoTemp
;
use
Dcat\Admin\Grid
;
use
Dcat\Admin\Grid\LazyRenderable
;
use
Dcat\Admin\Widgets\Table
;
class
TemplateTable
extends
LazyRenderable
{
public
function
grid
()
:
Grid
{
return
Grid
::
make
(
new
VideoTemp
(),
function
(
Grid
$grid
)
{
$grid
->
model
()
->
with
([
'componentsTable'
]);
$grid
->
column
(
'id'
,
'ID'
)
->
sortable
();
$grid
->
column
(
'title'
);
$grid
->
column
(
''
,
'组件信息'
)
->
display
(
'展开'
)
->
expand
(
function
(){
$th
=
[
'id'
,
'模板id'
,
'名称'
,
'位置'
,
'字号'
];
return
Table
::
make
(
$th
,
$this
->
componentsTable
->
toArray
())
->
withBorder
();
});
$grid
->
column
(
'state'
)
->
switch
();
$grid
->
quickSearch
([
'title'
]);
$grid
->
paginate
(
10
);
$grid
->
disableActions
();
$grid
->
filter
(
function
(
Grid\Filter
$filter
)
{
$filter
->
like
(
'title'
)
->
width
(
3
);
$filter
->
like
(
'author'
)
->
width
(
3
);
$filter
->
like
(
'content'
)
->
width
(
3
);
});
});
}
}
\ No newline at end of file
app/Admin/routes.php
View file @
5d659fc
...
...
@@ -24,8 +24,11 @@ Route::group([
/** 众妙*/
$router
->
resource
(
'/package'
,
'PackPoemController'
);
/** 视频模板*/
$router
->
resource
(
'/template'
,
'VideoTempController'
);
/** 临境*/
$router
->
group
([
'prefix'
=>
'/linjing'
],
function
(
Router
$router
){
$router
->
resource
(
'/template'
,
'VideoTempController'
);
$router
->
resource
(
'/official'
,
'VideoShowController'
);
});
/** 订单*/
$router
->
resource
(
'/order'
,
'OrderController'
);
...
...
app/Models/Component.php
0 → 100644
View file @
5d659fc
<?php
namespace
App\Models
;
use
Illuminate\Database\Eloquent\Factories\HasFactory
;
use
Illuminate\Database\Eloquent\Model
;
class
Component
extends
Model
{
use
HasFactory
;
protected
$guarded
=
[
''
];
}
app/Models/VideoTemp.php
View file @
5d659fc
...
...
@@ -10,5 +10,16 @@ class VideoTemp extends Model
{
use
HasDateTimeFormatter
;
protected
$table
=
'video_temp'
;
protected
$guarded
=
[
''
];
public
function
components
()
{
return
$this
->
hasMany
(
'App\Models\Component'
,
'temp_id'
);
}
public
function
componentsTable
()
{
return
$this
->
hasMany
(
'App\Models\Component'
,
'temp_id'
)
->
select
([
'id'
,
'temp_id'
,
'name'
,
'position'
,
'font_size'
]);
}
}
...
...
database/migrations/2022_03_17_144518_create_components_table.php
0 → 100644
View file @
5d659fc
<?php
use
Illuminate\Database\Migrations\Migration
;
use
Illuminate\Database\Schema\Blueprint
;
use
Illuminate\Support\Facades\Schema
;
class
CreateComponentsTable
extends
Migration
{
/**
* Run the migrations.
*
* @return void
*/
public
function
up
()
{
Schema
::
dropIfExists
(
'video_temp'
);
Schema
::
create
(
'video_temp'
,
function
(
Blueprint
$table
)
{
$table
->
id
();
$table
->
string
(
'title'
);
$table
->
unsignedTinyInteger
(
'state'
);
$table
->
timestamps
();
});
Schema
::
create
(
'components'
,
function
(
Blueprint
$table
)
{
$table
->
id
();
$table
->
unsignedInteger
(
'temp_id'
);
$table
->
string
(
'name'
)
->
comment
(
'组件名称'
);
$table
->
string
(
'position'
)
->
nullable
()
->
comment
(
'位置'
);
$table
->
unsignedTinyInteger
(
'font_size'
)
->
default
(
12
)
->
comment
(
'字号'
);
$table
->
string
(
'text_color'
)
->
nullable
()
->
comment
(
'文字颜色'
);
$table
->
string
(
'text_bg_color'
)
->
nullable
()
->
comment
(
'文字背景色'
);
$table
->
double
(
'opacity'
)
->
nullable
()
->
comment
(
'透明度'
);
$table
->
timestamps
();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function
down
()
{
Schema
::
dropIfExists
(
'components'
);
}
}
routes/api.php
View file @
5d659fc
...
...
@@ -15,7 +15,6 @@ use Illuminate\Routing\Router;
*/
Route
::
prefix
(
'v1'
)
->
namespace
(
'App\Http\Controllers\V1'
)
->
group
(
function
(
Router
$api
){
/** 移动端微信用户登录*/
$api
->
get
(
'login/{service}/callback'
,
'AuthController@apiHandleProviderCallback'
);
});
...
...
Please
register
or
login
to post a comment