dcat-admin / form-step

Dcat Admin 分步表单扩展
http://www.dcatadmin.com/
MIT License
26 stars 17 forks source link

扩展不可用 #7

Open z1223473749 opened 1 year ago

z1223473749 commented 1 year ago

官网的demodown下来也用不了了

mbdmt commented 11 months ago

直接在這個git主頁右上角 Code -> Download zip 下載後的.zip包直接進dcat後台 開發工具-> 本地安裝 指定剛剛那個zip就能裝上

這裡我提供小改的測試樣本

    protected function form()
    {
        return Form::make(new yourstepsl(), function (Form $form) {
            $form->multipleSteps()
                ->remember() // 记住表单步骤,默认不开启
                ->width('950px')
                ->add('基本信息', function ($step) {

                    $step->text('type', 'Types')->required();
                })
                ->add('兴趣爱好', function ($step) {
                    $step->text('content', '內容');

                    // 事件
                    $step->shown(function () {
                        return <<<JS
        Dcat.info('兴趣爱好');
        console.log('兴趣爱好', args);
        JS;
                    });

                })
                ->add('地址', function ($step) {
                    $step->text('addr', 'Addr');
                })
                ->done(function ($done){

                    $newId = $done->getNewId();
                    return '成功!! newId: '.$newId;
                    //return view('admin::form.done-step', $data);
                });
            });
        }
    }
YenLung-Huang commented 6 months ago

直接在這個git主頁右上角 Code -> Download zip 下載後的.zip包直接進dcat後台 開發工具-> 本地安裝 指定剛剛那個zip就能裝上

這裡我提供小改的測試樣本

    protected function form()
    {
        return Form::make(new yourstepsl(), function (Form $form) {
            $form->multipleSteps()
                ->remember() // 记住表单步骤,默认不开启
                ->width('950px')
                ->add('基本信息', function ($step) {

                    $step->text('type', 'Types')->required();
                })
                ->add('兴趣爱好', function ($step) {
                    $step->text('content', '內容');

                    // 事件
                    $step->shown(function () {
                        return <<<JS
        Dcat.info('兴趣爱好');
        console.log('兴趣爱好', args);
        JS;
                    });

                })
                ->add('地址', function ($step) {
                    $step->text('addr', 'Addr');
                })
                ->done(function ($done){

                    $newId = $done->getNewId();
                    return '成功!! newId: '.$newId;
                    //return view('admin::form.done-step', $data);
                });
            });
        }
    }

嘗試上述的方法沒有用,因為檔案數少,解決方式為直接將檔案移至專案裡面,在 Directory 底下建立 Extends,修正 namespace,修正 resource,public

app/Admin
├── Extends
│   └── FormStep
│       ├── Builder.php
│       ├── CompletionPage.php
│       ├── Form.php

,之後在 bootstrap.php 裡面引用,之後 formstep 就可以正常使用

/**
 * FormStep
 */
Admin::css('vendor/dcat-admin-extensions/dcat-admin/form-step/css/step.css');
Admin::js('vendor/dcat-admin-extensions/dcat-admin/form-step/js/jquery.smartWizard.min.js');

Form::macro('multipleSteps', function ($builder = null) {
    if (empty($this->context['steps'])) {
        $this->context['steps'] = new App\Admin\Extends\FormStep\Builder($this);
    }

    if ($builder) {
        if ($builder instanceof \Closure) {
            $builder($this->context['steps']);
        } elseif (is_array($builder)) {
            $this->context['steps']->add($builder);
        }
    }

    return $this->context['steps'];
});