李帅

制作推送模板基本完成,可使用

......@@ -23,10 +23,10 @@ class PickPoetryVerseController extends AdminController
$grid->column('verse_id');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
});
}
......@@ -58,11 +58,45 @@ class PickPoetryVerseController extends AdminController
{
return Form::make(new PickPoetryVerse(), function (Form $form) {
$form->display('id');
$form->text('pick_id');
$form->text('verse_id');
$form->block(8, function (Form\BlockForm $form) {
// 设置标题
$form->title('基本设置');
// 显示底部提交按钮
$form->showFooter();
// 设置字段宽度
$form->width(8, 3);
$form->radio('plant')->addElementClass('plant')
->options([1 => 'Android', 2 => 'IOS'])->default(2);
$form->text('title');
$form->textarea('content');
$form->radio('push_type', '发送时间')->options([1 => '立即', 2 => '定时'])->default(1)
->when(2, function (Form\BlockForm $form) {
$form->datetime('push_time');
});
$form->select('action_type')->options(['打开应用', '临境', '会员介绍页', '众妙页']);
$form->radio('user_type', '目标人群')->options([1 => '所有人', 2 => '指定用户'])->default(1)
->when(2, function (Form\BlockForm $form) {
$form->text('user_id');
});
});
$form->block(4, function (Form\BlockForm $form) {
$form->html(view('admin.form.push'));
});
$form->display('created_at');
$form->display('updated_at');
});
}
public function store()
{
dd(request()->all());
}
}
......
......@@ -7,6 +7,7 @@ use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Illuminate\Http\Request;
class VideoTempController extends AdminController
{
......@@ -20,23 +21,21 @@ class VideoTempController extends AdminController
{
return Grid::make(new VideoTemp(), function (Grid $grid) {
// 设置自定义视图
$grid->view('admin.grid.custom');
$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');
// $grid->column('bg_music');
// $grid->column('state');
// $grid->column('sn');
// $grid->column('top');
// $grid->column('left');
// $grid->column('font_size');
// $grid->column('created_at');
// $grid->column('updated_at')->sortable();
$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('created_at');
$grid->column('updated_at')->sortable();
//
// $grid->filter(function (Grid\Filter $filter) {
// $filter->equal('id');
......@@ -120,7 +119,8 @@ class VideoTempController extends AdminController
$form->number('top');
$form->number('left');
$form->number('font_size');
$form->color('text_color')->addElementClass('text_color');
$form->color('text_color')->default('#f5f5f5')
->addElementClass('text_color');
$form->color('text_bg_color')->addElementClass('text_bg_color');
$form->number('opacity')->min(0)->max(100)
->addElementClass('opacity')->default(90)
......
......@@ -27,13 +27,19 @@ Route::group([
/** 视频模板*/
$router->resource('/template', 'VideoTempController');
/** 订单*/
$router->resource('/order', 'OrderController');
$router->group(['prefix'=>'/tool'],function (Router $router){
/** 每日一言*/
$router->resource('/tool/every-poem', 'EverydayPoemController');
$router->resource('/every-poem', 'EverydayPoemController');
/** 推荐*/
// $router->resource('/tool/recommend','');
/** 推送服务*/
$router->resource('/push', 'PickPoetryVerseController');
// $router->resource('/push', 'PushController');
});
});
......
......@@ -11,6 +11,7 @@
"guzzlehttp/guzzle": "^7.0.1",
"jiannei/laravel-enum": "^3.0",
"jiannei/laravel-response": "^4.0",
"jpush/jpush": "^3.6",
"laravel/framework": "^8.75",
"laravel/sanctum": "^2.11",
"laravel/socialite": "^5.2",
......
......@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "298c2071717850e70431d14a67202770",
"content-hash": "4a78406ea73ce29697f2238eadcbec83",
"packages": [
{
"name": "asm89/stack-cors",
......@@ -1722,6 +1722,59 @@
"time": "2021-12-24T08:17:43+00:00"
},
{
"name": "jpush/jpush",
"version": "v3.6.8",
"source": {
"type": "git",
"url": "https://github.com/jpush/jpush-api-php-client.git",
"reference": "ebb191e8854a35c3fb7a6626028b3a23132cbe2c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jpush/jpush-api-php-client/zipball/ebb191e8854a35c3fb7a6626028b3a23132cbe2c",
"reference": "ebb191e8854a35c3fb7a6626028b3a23132cbe2c",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"ext-curl": "*",
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "*"
},
"type": "library",
"autoload": {
"psr-4": {
"JPush\\": "src/JPush/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "JPush",
"email": "support@jpush.cn",
"homepage": "https://www.jpush.cn/",
"role": "Developer"
}
],
"description": "JPush API PHP Client",
"homepage": "https://github.com/jpush/jpush-api-php-client",
"support": {
"issues": "https://github.com/jpush/jpush-api-php-client/issues",
"source": "https://github.com/jpush/jpush-api-php-client/tree/v3.6.8"
},
"time": "2021-08-12T07:43:39+00:00"
},
{
"name": "laravel/framework",
"version": "v8.77.1",
"source": {
......
<style>
.box-card {
width: 380px;
border: 1px solid rgb(220, 223, 230);
border-radius: 40px;
margin-right: 24px;
padding: 37px 20px;
min-height: 679px;
}
.phone-content {
border: 1px solid rgb(220, 223, 230);
height: 625px;
overflow: hidden;
position: relative;
background: rgb(245, 245, 245);
}
.notification-app-name,
.notification-title,
.notification-detail{
position: absolute;
overflow: hidden;
color: #181919;
}
.notification-app-name{
width: 160px;
font-size: 12px;
top: 222px;
left: 90px;
}
.notification-title{
width: 210px;
font-size: 14px;
top: 242px;
left: 65px;
}
.notification-detail{
width: 210px;
font-size: 13px;
top: 265px;
left: 65px;
word-break: break-all;
white-space: nowrap;
text-overflow: ellipsis;
}
</style>
<button type="button" class="btn btn-primary sync"><i class="feather icon-repeat"></i> 预览看效果</button>
<hr>
<div class="box-card">
<div class="phone-content">
<img src="{{asset('storage/image/ios1-2.png')}}" alt="" width="338" height="625" id="bg_img">
<div class="notification-app-name"> 一言-临境 </div>
<div class="notification-title"> demo 标题 </div>
<div class="notification-detail"> 开发者249d42a097c1944e进行了广播推送,这是一条广播 </div>
</div>
</div>
<script>
Dcat.ready(function () {
var asset = "{{asset('/storage/')}}";
$(document).off('click', '.sync').on('click', '.sync', function () {
let plant = parseInt($('.plant:checked').val());
if (plant === 1) {
$('#bg_img').attr('src', asset + '/image/android-2.png');
$('.notification-app-name').css('top','244px').css('left','80px');
$('.notification-title').css('top','264px').css('left','55px');
$('.notification-detail').css('top','287px').css('left','55px');
}else{
$('#bg_img').attr('src', asset + '/image/ios1-2.png');
$('.notification-app-name').css('top','222px').css('left','90px');
$('.notification-title').css('top','242px').css('left','65px');
$('.notification-detail').css('top','265px').css('left','65px');
}
// let ori_top = 80;
// let top = parseInt($('.field_top').val()) + ori_top;
// let left = $('.field_left').val();
// let font = $('.field_font_size').val();
// let content_size = 12 + parseInt(font);
// let title_size = 14 + parseInt(font);
// let text_color = $('.text_color').val() || 'whitesmoke';
// let text_bg_color = $('.text_bg_color').val() || '#5c6bc6';
// let opacity = parseInt($('.opacity').val()) / 100;
//
// $('.poem-block').css('top', top + 'px').css('left', left + 'px')
// .css('background-color', text_bg_color).css('opacity', opacity);
// $('.poem-title').css('font-size', title_size + 'px').css('color', text_color);
// $('.poem-content').css('font-size', content_size + 'px').css('color', text_color);
//
//
// let bg_img_url = $('.bg_img_url').find("input[type='hidden'][name='bg_url']").val();
// if (bg_img_url !== '') {
// $('.bg_img').attr('src', asset + '/' + bg_img_url).css('display', 'block');
// }
//
// let bg_video_url = $('.bg_video_url').find("input[type='hidden'][name='bg_url']").val();
// if (bg_video_url !== ''){
// $('#bg_video').attr('src', asset + '/' + bg_video_url).css('display', 'block');
// let bg_video = document.getElementById('bg_video');
// bg_video.autoplay = true;
// bg_video.loop = true;
// }
//
// let bgm_url = $('.bgm_url').find("input[type='hidden'][name='bgm_url']").val();
// if (bgm_url !== ''){
// $('#bg_audio').attr('src', asset + '/' + bgm_url);
// let bg_audio = document.getElementById('bg_audio');
// bg_audio.autoplay = true;
// bg_audio.loop = true;
// }
})
})
</script>
\ No newline at end of file