国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

builder-man UI生成器

2.0.2 版本
2025-03-13 版本更新時間
30 安裝
8 star

關(guān)于

UI builder for webman

http://www.wtbis.cn/plugin/70 的精簡版,只使用其UI生成功能。

這個年代,不應該再干那種:復制一下index.html、edit.htmlcreate.html,修修改改做個功能的事。

2025-03-13 進一步精簡代碼,并適配 webman v2

2024-11-15 升級2.0版本

與1.0版本的不同

  • 簡化代碼,去除了與 webman/admin相關(guān)的依賴代碼,增強兼容性。

  • composer.json中移除了對ichynul/tpextbuilderUI的依賴,有兩套UI可供選擇,改為按需選擇安裝。

安裝webman

http://www.wtbis.cn/doc/webman/install.html

安裝本擴展

1、安裝UI builder擴展(三選一):

基于bootstrap
composer require ichynul/tpextbuilder:^3.9.1

或者 (基于vue3 + tinyvue)

composer require ichynul/tpext-tinyvue:^5.0.1

或者 (基于vue3 + vexipui)

composer require ichynul/tpext-vexipui^5.0.1

2、安裝本擴展

composer require ichynul/builder-man:^2.0.1

會自動安裝相關(guān)依賴:tp-orm、tp-cahce、tp-template

配置

  • 關(guān)閉控制器復用: /config/app.php,'controller_reuse' => false

  • 配置數(shù)據(jù)庫: /config/thinkorm.php

  • 修改語言 /config/plugin/builder/man/lang.php:

    'default_lang'    => 'zh-cn', //en 或 zh-cn

使用

運行webman

代碼編寫

模型使用tp-ormlaravel-orm理論上也支持。

文檔

https://gxzrnxb27j.k.topthink.com/@tpext-docs/about.html

DEMO

簡單使用,一個表單:

此示例中使用了webman/admin的代碼,確保已安裝webman/admin

<?php

namespace app\controller;

use support\Request;
use tpext\builder\common\Builder;
use think\Controller;
use plugin\admin\app\model\Admin;

/**注意控制器后綴,看你是否開啟后綴,
沒開啟的話這里是: Index extends Controller
**/
class IndexController extends Controller
{
    public function index(Request $request)
    {
        $builder = Builder::getInstance('builder', '測試');
        if (request()->method() == 'GET') {
            $form = $builder->form();
            $form->image('avatar', '頭像')->thumbSize(50, 50);
            $form->text('username', '賬號')->required();
            $form->text('nickname', '昵稱')->required();
            $form->text('mobile', '手機號');
            $form->text('email', '郵件');

            $form->fill(Admin::where('id', 1)->first());//測試使用laravel模型

            return $builder;
        } else {
            $data = request()->only([
                'avatar',
                'nickname',
                'mobile',
                'email',
            ]);

            Admin::where('id', 1)->update($data);

            $this->success('成功,數(shù)據(jù)是:' . json_encode($data));
        }
    }
}

進階使用,配合tpext\builder\traits\actions\* traits實現(xiàn)CRUD。(laravel-orm寫法不兼容)

<?php

namespace app\admin\controller;

use think\Controller;
use app\common\model\MemberLevel as LevelModel;
use tpext\builder\traits\actions;

class Memberlevel extends Controller
{
    //引入控制器動作
    use actions\HasBase;//基礎(chǔ),必須
    use actions\HasIndex;//列表
    use actions\HasAdd;//添加
    use actions\HasEdit;//編輯
    use actions\HasView;//查看
    use actions\HasDelete;//刪除

    /**
     * Undocumented variable
     *
     * @var LevelModel
     */
    protected $dataModel;

    protected function initialize()
    {
        $this->dataModel = new LevelModel;
        $this->pageTitle = '代理等級';
        $this->sortOrder = 'level asc';
        $this->selectSearch = 'name';
    }

    protected function filterWhere()
    {
        $searchData = request()->get();

        $where = [];

        if (!empty($searchData['name'])) {
            $where[] = ['name', 'like', '%' . $searchData['name'] . '%'];
        }

        return $where;
    }

    /**
     * 構(gòu)建搜索
     *
     * @return void
     */
    protected function buildSearch()
    {
        $search = $this->search;
        $search->text('name', '名稱', 3)->maxlength(20);
    }

    /**
     * 構(gòu)建表格
     *
     * @return void
     */
    protected function buildTable(&$data = [])
    {
        $table = $this->table;

        $table->show('id', 'ID');
        $table->text('name', '名稱')->autoPost();
        $table->text('level', '等級');
        $table->show('member_count', '人數(shù)統(tǒng)計');
        $table->show('description', '描述');
        $table->show('create_time', '添加時間');
        $table->show('update_time', '更新時間');

         $table->getActionbar()
            ->btnEdit()
            ->btnView()
            ->btnDelete();
    }

    /**
     * 構(gòu)建表單
     *
     * @param boolean $isEdit
     * @param array $data
     */
    protected function buildForm($isEdit, &$data = [])
    {
        $form = $this->form;

        $form->text('name', '名稱');
        $form->number('level', '等級');
        $form->textarea('description', '描述');

        if ($isEdit) {
            $form->show('member_count', '人數(shù)統(tǒng)計');
            $form->show('create_time', '添加時間');
            $form->show('update_time', '更新時間');
        }
    }

    /**
     * 保存數(shù)據(jù)
     *
     * @param integer $id
     * @return void
     */
    private function save($id = 0)
    {
        $data = request()->only([
            'name',
            'level',
            'description',
        ]);

        $result = $this->validate($data, [
            'name|名稱' => 'require',
            'level|等級' => 'require|number'
        ]);

        if (true !== $result) {

            $this->error($result);
        }

        return $this->doSave($data, $id);
    }
}

其他說明

語言

語言默認為英文,如需切換語言:在config\plugin\builder\man\lang.php

'default_lang'    => 'zh-cn',

上傳文件、鑒權(quán)

需要對上傳文件,選擇文件,導入文件等功能進行定制,可以參考以下代碼:


use tpext\builder\common\Module;
use tpext\builder\common\Builder;

//代碼可以放在基礎(chǔ)控制器的構(gòu)造函數(shù)中、或中間件中

public function setup(){

    Module::getInstance()->setUploadUrl('/your/upload/url');//默認為:admin/upload/upfiles
    Module::getInstance()->setChooseUrl('/your/choose/url');//默認為:admin/attachment/index
    Module::getInstance()->setImportUrl('/your/import/url');//默認為:admin/import/page

    //代碼邏輯 可參考 tpextbuilder | tpext-tinyvue 中 controller/admin 目錄下的以下文件:
    // Attachment.php | Import.php | Upload.php

    Builder::auth('yourauthclass');//設置權(quán)限驗證類,需要實現(xiàn)接口:\tpext\builder\inface\Auth。
    Builder::aver('1.0.1');//資源版本號,用于控制更新。依賴的UI庫可能會更新一些靜態(tài)資源,修改版本號可以應用最新資源。
}

License

MIT

贊助商