123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- <?php
- namespace App\Distributor\Controllers;
- use App\Distributor\Repositories\DistAdminDistributor;
- use App\Http\Controllers\Controller;
- use Dcat\Admin\Layout\Column;
- use Dcat\Admin\Layout\Content;
- use Dcat\Admin\Layout\Row;
- use Dcat\Admin\Widgets\Form;
- use Illuminate\Http\Request;
- use Dcat\Admin\Models\Setting as SettingModel;
- use Dcat\Admin\Traits\HasUploadedFile;
- class SettingsController extends Controller
- {
- use HasUploadedFile;
- public function index(Content $content)
- {
- $formTab = isset($_GET['tab']) ? $_GET['tab'] : 0;
- if ($formTab == 0) {
- return $content->title(admin_trans( 'admin.settings'))
- ->body($this->form1());
- } else {
- return $content->title(admin_trans( 'admin.settings'))
- ->body($this->form2());
- }
- }
- /*
- * 域名配置
- */
- protected function form1()
- {
- exit;
- $distInfo = DistAdminDistributor::getInfo();
- $form = new \Dcat\Admin\Form();
- $form->title(admin_trans_label('domain'));
- //提交URL
- $form->action('/dist-settings');
- $form->hidden('act')->value('domain');
- //查分销商信息
- $secondaryDomain = $distInfo->secondary_domain ? $distInfo->secondary_domain : '';
- $customDomain = $distInfo->custom_domain ? $distInfo->custom_domain : '';
- $form->radio('domain_type')
- ->when(0, function (\Dcat\Admin\Form $form) use ($secondaryDomain) {
- $form->text('secondary_domain')->width(4,2)->value($secondaryDomain)->readOnly();
- })
- ->when(1, function (\Dcat\Admin\Form $form) use ($customDomain){
- $form->text('custom_domain')->width(4,2)->value($customDomain)->help('Please enter the domain name, such as www.example.com,and bind the domain name to the IP address '.env('DIST_SITE_IP'));
- })
- ->options([0=>admin_trans_field('secondary_domain'),1=>admin_trans_field('custom_domain')])
- ->value($distInfo->domain_type)
- ->required();
- //按钮
- $form->disableListButton();
- $form->disableViewCheck();
- $form->disableEditingCheck();
- $form->disableCreatingCheck();
- return $form;
- }
- /*
- * 站点配置
- */
- protected function form2()
- {
- $distInfo = DistAdminDistributor::getInfo();
- $form = new \Dcat\Admin\Form();
- $form->title(admin_trans_label('site'));
- //提交URL
- $form->action('/dist-settings');
- //字段
- $form->hidden('act')->value('site');
- $form->column(6, function (\Dcat\Admin\Form $form) use ($distInfo) {
- $form->text('site_name')->value($distInfo->site_name)->required();
- $form->text('seo_title')->value($distInfo->seo_title)->required();
- $form->text('seo_keywords')->value($distInfo->seo_keywords);
- $form->textarea('seo_description')->value($distInfo->seo_description);
- $form->image("logo")
- //->aspectRatio(130/50)// 设置裁剪框比例
- ->retainable()//禁止删OSS图
- ->autoUpload()
- ->uniqueName()
- ->accept(config('distributor.upload.oss_image.accept'))
- ->maxSize(config('distributor.upload.oss_image.max_size'))
- ->dir(config("distributor.upload.directory.image").'/logo')
- ->url('/dist-settings/upload')
- ->default($distInfo->logo)->width(4,2);
- });
- $form->column(6, function (\Dcat\Admin\Form $form) use ($distInfo) {
- $form->text('company_name')->value($distInfo->company_name);
- $form->text('company_address')->value($distInfo->company_address);
- $form->text('service_hotline')->value($distInfo->service_hotline);
- $form->text('dist_email',admin_trans_label('email'))->value($distInfo->dist_email);
- $form->text('whats_app')->value($distInfo->whats_app);
- $form->text('facebook')->value($distInfo->facebook);
- $form->text('instagram')->value($distInfo->instagram);
- $form->text('youtube')->value($distInfo->youtube);
- $form->text('linkedin')->value($distInfo->linkedin);
- $form->text('tiktok')->value($distInfo->tiktok);
- $form->text('copy_right')->value($distInfo->copy_right);
- });
- $form->disableListButton();
- $form->disableViewCheck();
- $form->disableEditingCheck();
- $form->disableCreatingCheck();
- return $form;
- }
- /*
- * 保存配置
- */
- public function store(Request $request) {
- $form = new Form();
- $act = $request->input('act');
- if ($act == 'domain') {
- $domainType = $request->input('domain_type');
- $customDomain = $request->input('custom_domain');
- if (!in_array($domainType, [0,1])) {
- return $form->response()->error('Invalid argument');
- }
- $customDomain = $this->removeHttpAndPort($customDomain);
- DistAdminDistributor::updateDomain($domainType,$customDomain);
- } else {
- //站点配置
- DistAdminDistributor::updateInfo($request->all());
- }
- return $form->response()->success(admin_trans_label('update_success'));
- }
- public function upload()
- {
- $disk = $this->disk('oss');
- // 判断是否是删除文件请求
- if ($this->isDeleteRequest()) {
- // 删除文件并响应
- //return $this->deleteFileAndResponse($disk);
- return $this->responseDeleted();
- }
- // 获取上传的文件
- $file = $this->file();
- // 获取上传的字段名称
- // $column = $this->uploader()->upload_column;
- $column = uniqueCode("logo");
- $dir = config("distributor.upload.directory.image").'/logo';
- $newName = $column.'.'.$file->getClientOriginalExtension();
- $result = $disk->putFileAs($dir, $file, $newName);
- $path = "{$dir}/$newName";
- return $result
- ? $this->responseUploaded($path, $disk->url($path))
- : $this->responseErrorMessage(admin_trans_label('upload_failed'));
- }
- private function removeHttpAndPort($url) {
- // 使用正则表达式去除 http:// 和 https://
- $url = preg_replace('#^https?://#', '', $url);
- // 使用正则表达式去除端口号
- $url = preg_replace('#:\d+/#', '/', $url);
- $url = preg_replace('#:\d+$#', '', $url);
- $url = trim($url);
- $url = trim($url,'/');
- $url = trim($url,'\\');
- return $url;
- }
- }
|