添加配置管理项
parent
155cd897a9
commit
da8c21932d
|
|
@ -90,7 +90,9 @@ class AdAddressController extends AdminController
|
|||
return Form::make(new AdAddress(), function (Form $form) {
|
||||
$form->display('id');
|
||||
|
||||
$form->text('key')->required();
|
||||
$form->text('key')->rules(function (Form $form) {
|
||||
return 'unique:ad_addresses,key,'.$form->model()->id.',id';
|
||||
})->required();
|
||||
$form->text('name');
|
||||
$form->text('dimensions')->help(__('admin_message.ad-address.dimensions.help'));
|
||||
$form->switch('is_show');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Controllers;
|
||||
|
||||
use App\Admin\Repositories\Setting;
|
||||
use Dcat\Admin\Admin;
|
||||
use Dcat\Admin\Form;
|
||||
use Dcat\Admin\Grid;
|
||||
use Dcat\Admin\Grid\Column;
|
||||
use Dcat\Admin\Http\Controllers\AdminController;
|
||||
use Dcat\Admin\Show;
|
||||
|
||||
class SettingController extends AdminController
|
||||
{
|
||||
/**
|
||||
* Make a grid builder.
|
||||
*
|
||||
* @return Grid
|
||||
*/
|
||||
protected function grid()
|
||||
{
|
||||
return Grid::make(new Setting(), function (Grid $grid) {
|
||||
$grid->column('id')->sortable();
|
||||
$grid->column('key')->label();
|
||||
$grid->column('remarks');
|
||||
$grid->column('value')
|
||||
->if(function () {
|
||||
return Admin::user()->can('dcat.admin.settings.edit');
|
||||
})
|
||||
->then(function (Column $column) {
|
||||
$column->editable();
|
||||
});
|
||||
|
||||
$grid->column('created_at')->sortable();
|
||||
|
||||
//排序
|
||||
$grid->model()->orderBy('created_at', 'desc');
|
||||
|
||||
/** 操作 **/
|
||||
//新增
|
||||
if (Admin::user()->can('dcat.admin.settings.create')) {
|
||||
$grid->disableCreateButton(false);
|
||||
$grid->enableDialogCreate();
|
||||
}
|
||||
//删除以及自定义操作
|
||||
$grid->actions(function (Grid\Displayers\Actions $actions) {
|
||||
$actions->disableDelete(Admin::user()->cannot('dcat.admin.ads.destroy'));
|
||||
});
|
||||
|
||||
$grid->quickSearch('key')->placeholder('搜索key');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a show builder.
|
||||
*
|
||||
* @param mixed $id
|
||||
*
|
||||
* @return Show
|
||||
*/
|
||||
protected function detail($id)
|
||||
{
|
||||
return Show::make($id, new Setting(), function (Show $show) {
|
||||
$show->field('id');
|
||||
$show->field('key');
|
||||
$show->field('value');
|
||||
$show->field('created_at');
|
||||
$show->field('updated_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a form builder.
|
||||
*
|
||||
* @return Form
|
||||
*/
|
||||
protected function form()
|
||||
{
|
||||
return Form::make(new Setting(), function (Form $form) {
|
||||
$form->display('id');
|
||||
$form->text('key')->rules(function (Form $form) {
|
||||
return 'unique:settings,key,'.$form->model()->id.',id';
|
||||
})->required();
|
||||
$form->text('value');
|
||||
$form->text('remarks');
|
||||
|
||||
$form->display('created_at');
|
||||
$form->display('updated_at');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace App\Admin\Repositories;
|
||||
|
||||
use App\Models\Setting as Model;
|
||||
use Dcat\Admin\Repositories\EloquentRepository;
|
||||
|
||||
class Setting extends EloquentRepository
|
||||
{
|
||||
/**
|
||||
* Model.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $eloquentClass = Model::class;
|
||||
}
|
||||
|
|
@ -115,6 +115,10 @@ Route::group([
|
|||
'index', 'create', 'store', 'edit', 'update', 'destroy',
|
||||
]);
|
||||
|
||||
$router->resource('settings', 'SettingController')->only([
|
||||
'index', 'create', 'store', 'edit', 'update', 'destroy',
|
||||
]);
|
||||
|
||||
/** api接口 **/
|
||||
$router->get('api/product-categories', 'ProductCategoryController@categories')->name('api.product_categories');
|
||||
$router->get('api/product-group-details', 'ProductGroupController@details')->name('api.product_group_details');
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Setting extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use HasDateTimeFormatter;
|
||||
|
||||
protected $fillable = [
|
||||
'key', 'value', 'remarks',
|
||||
];
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Setting;
|
||||
|
||||
if (!function_exists('app_settings')) {
|
||||
function app_settings($key = null, $default = null)
|
||||
{
|
||||
// app('config')->set($key);
|
||||
// dd(123456);
|
||||
if (is_null($key)) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
if (is_array($key)) {
|
||||
foreach ($key as $i => $value) {
|
||||
Setting::updateOrCreate([
|
||||
'key' => $i,
|
||||
], [
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
return $key;
|
||||
}
|
||||
|
||||
return Setting::where('key', $key)->value('value', $default);
|
||||
}
|
||||
}
|
||||
|
|
@ -40,7 +40,10 @@
|
|||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"app/helpers.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateSettingsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('settings', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('key', 50)->unique()->comment('key');
|
||||
$table->text('value')->nullable()->comment('值');
|
||||
$table->string('remarks')->nullable()->comment('备注');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('settings');
|
||||
}
|
||||
}
|
||||
|
|
@ -237,6 +237,11 @@ class AdminMenuSeeder extends Seeder
|
|||
'icon' => '',
|
||||
'uri' =>'auth/menus',
|
||||
],
|
||||
[
|
||||
'title' =>'配置管理',
|
||||
'icon' => '',
|
||||
'uri' => 'settings',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,126 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Setting;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class AppSettingSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
foreach ([
|
||||
'app_name' => [
|
||||
'value' => '子春生',
|
||||
'remarks'=>'应用名称',
|
||||
],
|
||||
'order_payment_expires_at' => [
|
||||
'value' => 1800,
|
||||
'remarks' => '订单支付过期时间(秒)',
|
||||
],
|
||||
'sale_after_expire_days' => [
|
||||
'value' => 7,
|
||||
'remarks' => '售后过期时间(天)',
|
||||
],
|
||||
|
||||
'sign_click_points' => [
|
||||
'value' => 5,
|
||||
'remarks' => '签到送积分(分)',
|
||||
],
|
||||
'sign_click_continue' => [
|
||||
'value' => 7,
|
||||
'remarks' => '每连续N天签到额外奖励',
|
||||
],
|
||||
'sign_click_continue_points' => [
|
||||
'value' => 10,
|
||||
'remarks' => '每连续签到额外奖励(分)',
|
||||
],
|
||||
|
||||
'article_help' => [
|
||||
'value' => 1,
|
||||
'remarks' => '帮助文章指定分类(ID)',
|
||||
],
|
||||
'article_agreement' => [
|
||||
'value' => 2,
|
||||
'remarks' => '协议文章指定分类(ID)',
|
||||
],
|
||||
'article_agreement' => [
|
||||
'value' => 3,
|
||||
'remarks' => '健康文章指定分类(ID)',
|
||||
],
|
||||
|
||||
'article_about_us' => [
|
||||
'value' => env('APP_URL', '').'/h5/articles/1',
|
||||
'remarks' => '关于我们文章指定(链接)',
|
||||
],
|
||||
'article_user_promotion_agreement' => [
|
||||
'value' => env('APP_URL', '').'/h5/articles/2',
|
||||
'remarks' => '服务协议文章指定(链接)',
|
||||
],
|
||||
'article_user_hide_agreement' => [
|
||||
'value' => env('APP_URL', '').'/h5/articles/3',
|
||||
'remarks' => '隐私协议文章指定(链接)',
|
||||
],
|
||||
|
||||
'kuaidi100_is_use' => [
|
||||
'value' => true,
|
||||
'remarks' => '快递100:是否开启',
|
||||
],
|
||||
'kuaidi100_callback' => [
|
||||
'value' => env('APP_URL', '').'/callback/kuaidi100',
|
||||
'remarks' => '快递100:回调地址(链接)',
|
||||
],
|
||||
'kuaidi100_app_key' => [
|
||||
'value' => 'BTvgbjti4727',
|
||||
'remarks' => '快递100:APP_KEY',
|
||||
],
|
||||
'kuaidi100_customer' => [
|
||||
'value' => '064109188EC4D85DA655DFC342144C6A',
|
||||
'remarks' => '快递100:CUSTOMER',
|
||||
],
|
||||
'kuaidi100_secret' => [
|
||||
'value' => '1bd287d1981749f2a30ea74cac0ab99c',
|
||||
'remarks' => '快递100:SECRET',
|
||||
],
|
||||
'kuaidi100_userid' => [
|
||||
'value' => 'ec0b6ec7729d4f22824cfd3c519dd45b',
|
||||
'remarks' => '快递100:USER_ID',
|
||||
],
|
||||
|
||||
'mall_push_app_id' => [
|
||||
'value' => 'iikmCoESID8bC1LhOPG1r8',
|
||||
'remarks' => '个推:APP_ID',
|
||||
],
|
||||
'mall_push_app_key' => [
|
||||
'value' => 'JX33P0wP8bAQprI953hpN6',
|
||||
'remarks' => '个推:APP_KEY',
|
||||
],
|
||||
'mall_push_app_secret' => [
|
||||
'value' => 'a3u3B6lXjq6fPTBlOGiOc9',
|
||||
'remarks' => '个推:APP_SECRET',
|
||||
],
|
||||
'mall_push_master_secret' => [
|
||||
'value' => 'MAxmqomwo597xJeDuMCvx1',
|
||||
'remarks' => '个推:APP_MASTER_SECRET',
|
||||
],
|
||||
|
||||
'invite_uri' => [
|
||||
'value' => '',
|
||||
'remarks' => '分享邀请地址(链接)',
|
||||
],
|
||||
|
||||
'search_hot_keys' => [
|
||||
'value' => '搜索热词,分词1,分词2,分词3',
|
||||
'remarks'=>'搜索热词(半角逗号,隔开)',
|
||||
],
|
||||
|
||||
] as $key => $values) {
|
||||
Setting::firstOrCreate(['key' => $key], $values);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -20,6 +20,7 @@ class DatabaseSeeder extends Seeder
|
|||
AdminPermissionSeeder::class,
|
||||
ProductPartSeeder::class,
|
||||
AdAddressSeeder::class,
|
||||
AppSettingSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'labels' => [
|
||||
'Setting' => '配置管理',
|
||||
'settings' => '配置管理',
|
||||
],
|
||||
'fields' => [
|
||||
'key' => 'key',
|
||||
'value' => '值',
|
||||
'remarks' => '备注',
|
||||
],
|
||||
'options' => [
|
||||
],
|
||||
];
|
||||
Loading…
Reference in New Issue