PHPackages                             quansitech/qscmf-buttontype-modal - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. quansitech/qscmf-buttontype-modal

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

quansitech/qscmf-buttontype-modal
=================================

qscmf modal button

v4.0.1(1y ago)01.6k↓50%33MITPHPPHP &gt;=8.2.12

Since Sep 10Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/quansitech/qscmf-buttontype-modal)[ Packagist](https://packagist.org/packages/quansitech/qscmf-buttontype-modal)[ RSS](/packages/quansitech-qscmf-buttontype-modal/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (23)Used By (3)

qscmf-buttontype-modal
======================

[](#qscmf-buttontype-modal)

```
qscmf 按钮类型组件--modal

可以向列表顶部、列表行、表单页添加此类型按钮

```

#### 安装

[](#安装)

```
composer require quansitech/qscmf-buttontype-modal
```

#### 添加按钮

[](#添加按钮)

[ModalButtonBuilder使用说明](https://github.com/quansitech/qscmf-buttontype-modal/blob/master/ModalButtonBuilder.md)

- 向列表添加一个顶部按钮

    ```
    public function add(){
      if (IS_POST) {
          // 业务逻辑
      }
      else {
          // 使用FormBuilder快速建立表单页面。
          $builder = new \Qscmf\Builder\FormBuilder();
          $builder
              ->setPostUrl(U('add'))
              ->addFormItem('nick_name', 'text', '用户名*')
              ->addFormItem('email', 'text', '电子邮箱*')
              ->addFormItem('telephone', 'text', '手机')
              ->addFormItem('pwd', 'password', '密码*')
              ->addFormItem('pwd1', 'password', '重复密码*')
              ->setShowBtn(false);

          return $builder;
      }
    }

    public function buildTopModal(){
      return (new \Qs\ModalButton\ModalButtonBuilder())
                  ->setTitle("新增")
                  ->bindFormBuilder($this->add());
    }

    // 按钮options属性传入ModalButtonBuilder对象
     (new \Qscmf\Builder\ListBuilder())->addTopButton('modal', ['title' => '新增'],'','',$this->buildTopModal())
    ```
- 向列表添加一个行按钮

    ```
    public function edit($id){
      if (IS_POST) {
          // 业务逻辑
      }
      else {
          $info = D('User')->getOne($id);
          // 使用FormBuilder快速建立表单页面。
          $builder = new \Qscmf\Builder\FormBuilder();
          $builder
              ->setPostUrl(U('add'))
              ->addFormItem('nick_name', 'text', '用户名*')
              ->addFormItem('email', 'text', '电子邮箱*')
              ->addFormItem('telephone', 'text', '手机')
              ->addFormItem('pwd', 'password', '密码*')
              ->addFormItem('pwd1', 'password', '重复密码*')
              ->setFormData($info)
              ->setShowBtn(false);

          return $builder;
      }
    }

    public function buildEditFormModal($id ){
      return (new \Qs\ModalButton\ModalButtonBuilder())
          ->bindFormBuilder($this->edit($id))
          ->setKeyboard(false)
          ->setBackdrop(false)
          ->setTitle('编辑');
      }

    $data_list = D('User')->select();
    foreach($data_list as &$data){
      $right_edit_form_modal = $this->buildEditFormModal($data['id']);
      $data['list_edit_form'] = $right_edit_form_modal;
    }
    // 每一行数据需要定义'list_edit_form'的值，且该值为ModalButtonBuilder对象
     (new \Qscmf\Builder\ListBuilder())
    ->addRightButton('modal',['title' => '编辑'], '', '', 'list_edit_form')
    ->setTableDataList($data_list)
    ```
- 向表单添加一个按钮

    ```
      public function edit($id){
      if (IS_POST) {
          // 业务逻辑
      }
      else {
          $info = D('User')->getOne($id);
          // 使用FormBuilder快速建立表单页面。
          $builder = new \Qscmf\Builder\FormBuilder();
          $builder
              ->setPostUrl(U('add'))
              ->addFormItem('nick_name', 'text', '用户名*')
              ->addFormItem('email', 'text', '电子邮箱*')
              ->addFormItem('telephone', 'text', '手机')
              ->addFormItem('pwd', 'password', '密码*')
              ->addFormItem('pwd1', 'password', '重复密码*')
              ->setFormData($info)
              ->setShowBtn(false);

          return $builder;
      }
    }

    public function buildEditFormModal($id){
      return (new \Qs\ModalButton\ModalButtonBuilder())
          ->bindFormBuilder($this->edit($id))
          ->setKeyboard(false)
          ->setBackdrop(false)
          ->setIsForward(false)
          ->setTitle('编辑');
      }

    $info = D('User')->getOne($id);
    $info['form_edit_form'] = $this->buildEditFormModal($info['id'])
     // 表单数据需要定义'form_edit_form'的值，且该值为ModalButtonBuilder对象
     (new \Qscmf\Builder\FormBuilder())
    ->addButton('modal',['title' => '编辑'], '', '', 'form_edit_form')
    ->setFormData($info)
    ```
- ajax的方式加载内容 (实验性功能)

    > 1. 接口说明
    >
    >     > - 需要返回JSON数据格式
    >     > - 若数据正常则设置status为1，否则为0
    >     > - 将需要返回的内容赋值给info
    > 2. 用例
    >
    > ```
    > // 设置Modal 内容请求API
    >  protected function buildTopModal(){
    >      return (new \Qs\ModalButton\ModalButtonBuilder())
    >            ->setTitle("新增")
    >            ->setBackdrop(false)
    >            ->setKeyboard(false)
    >            ->setBodyApiUrl(U("add"));
    >  }
    >
    >  // ListBuilder对应列配置
    >  ->addTopButton('modal', ['title' => '新增'],'','',$this->buildTopModal());
    >
    > public function add(){
    >
    >    $builder = new FormBuilder();
    >    $builder
    >        ->addFormItem('title', 'text', '标题')
    >        ->addFormItem('summary', 'textarea', '简介')
    >        ->addFormItem('cover', 'picture', '封面', '尺寸为214*250px', ['width' => 214, 'height' => 250])
    >        ->setFormData($info)
    >        ->setShowBtn(false)
    >        ->setReadOnly(true);
    >
    >    $this->ajaxReturn(['status' => 1, 'info' => $builder->build(true)]);
    > }
    > ```
- 模态框表单获取ListBuilder选中的checkbox值

    - 按钮添加样式类 inject\_selected
    - 可使用ModalButtonBuilder对象的setSelectedIdFieldName方法自定义对应的表单字段值，默认为 qslb\_selected\_ids
    - 用法 ```
        $builder = new \Qscmf\Builder\ListBuilder();
        $builder = $builder->setMetaTitle('可编辑测试列表');
        $builder
                ->addTopButton('modal', ['title' => '新增', 'class' => "btn btn-primary inject_selected"],'','',$this->buildAddModal());

        protected function buildAddModal(){
            $modal = (new \Qs\ModalButton\ModalButtonBuilder());
            return
                $modal
                    ->setTitle('新增可编辑测试')
                    ->setBackdrop(false)
                    ->setKeyboard(false)
                    ->setSelectedIdFieldName("org_id")
                    ->bindFormBuilder($this->add());
        }

        public function add(){
            $builder = new FormBuilder();
            $builder
                    ->addFormItem('title', 'text', '标题')
                    ->addFormItem('summary', 'textarea', '简介')
                    ->addFormItem('cover', 'picture', '封面', '尺寸为214*250px', ['width' => 214, 'height' => 250])
                    ->setFormData($info)
                    ->setShowBtn(false);

                return $builder;
            }
        }
        ```

#### 升级指南

[](#升级指南)

[升级指南](https://github.com/quansitech/qscmf-buttontype-modal/blob/master/Upgrade.md)

###  Health Score

45

—

FairBetter than 92% of packages

Maintenance57

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 79.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~75 days

Recently: every ~143 days

Total

21

Last Release

204d ago

Major Versions

v1.2.2 → v2.0.02023-02-01

v2.0.2 → v3.0.02023-12-04

v2.x-dev → v4.0.02024-11-22

PHP version history (2 changes)v1.0.0PHP &gt;=7.2

v3.0.0PHP &gt;=8.2.12

### Community

Maintainers

![](https://www.gravatar.com/avatar/15a0610fee78753bdad92fd45c3506455c0fd45ae51924797b1841d260495a3f?d=identicon)[tiderjian](/maintainers/tiderjian)

![](https://www.gravatar.com/avatar/6c2b4bb10b346cb957c091d3273e3332276b5d09a29e255d387184f5dd4b5976?d=identicon)[xhiny](/maintainers/xhiny)

---

Top Contributors

[![Xhiny](https://avatars.githubusercontent.com/u/35066497?v=4)](https://github.com/Xhiny "Xhiny (31 commits)")[![qq958691165](https://avatars.githubusercontent.com/u/13673962?v=4)](https://github.com/qq958691165 "qq958691165 (6 commits)")[![tiderjian](https://avatars.githubusercontent.com/u/1665649?v=4)](https://github.com/tiderjian "tiderjian (2 commits)")

---

Tags

componentmodalbuttonqscmf

### Embed Badge

![Health badge](/badges/quansitech-qscmf-buttontype-modal/health.svg)

```
[![Health](https://phpackages.com/badges/quansitech-qscmf-buttontype-modal/health.svg)](https://phpackages.com/packages/quansitech-qscmf-buttontype-modal)
```

###  Alternatives

[wire-elements/modal

Laravel Livewire modal component

1.2k3.8M31](/packages/wire-elements-modal)[phpoffice/common

PHPOffice Common

23512.3M36](/packages/phpoffice-common)[kartik-v/bootstrap-popover-x

Bootstrap Popover Extended - Popover with modal behavior, styling enhancements and more.

1143.4M3](/packages/kartik-v-bootstrap-popover-x)[kartik-v/yii2-dialog

An asset bundle for bootstrap3-dialog for Yii 2.0 framework.

496.2M18](/packages/kartik-v-yii2-dialog)[kompo/kompo

Laravel &amp; Vue.js FullStack Components for Rapid Application Development

11812.4k21](/packages/kompo-kompo)[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

14720.0k](/packages/markwalet-nova-modal-response)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
