{"id":20144153,"url":"https://github.com/quansitech/qscmf-buttontype-modal","last_synced_at":"2025-07-24T14:38:43.304Z","repository":{"id":47313989,"uuid":"402727260","full_name":"quansitech/qscmf-buttontype-modal","owner":"quansitech","description":"qscmf 按钮类型组件--modal","archived":false,"fork":false,"pushed_at":"2025-02-05T09:57:12.000Z","size":41,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-14T22:02:34.628Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quansitech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-03T10:11:32.000Z","updated_at":"2025-02-05T09:55:19.000Z","dependencies_parsed_at":"2023-02-16T04:50:31.199Z","dependency_job_id":"91f16287-c2bd-4089-8692-6f0d9f71af6c","html_url":"https://github.com/quansitech/qscmf-buttontype-modal","commit_stats":{"total_commits":27,"total_committers":3,"mean_commits":9.0,"dds":"0.14814814814814814","last_synced_commit":"0139253ffc7112f49019705fbb03c0a053054479"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/quansitech/qscmf-buttontype-modal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-buttontype-modal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-buttontype-modal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-buttontype-modal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-buttontype-modal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quansitech","download_url":"https://codeload.github.com/quansitech/qscmf-buttontype-modal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-buttontype-modal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266856894,"owners_count":23995760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T22:09:00.019Z","updated_at":"2025-07-24T14:38:43.279Z","avatar_url":"https://github.com/quansitech.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qscmf-buttontype-modal\n\n```text\nqscmf 按钮类型组件--modal\n\n可以向列表顶部、列表行、表单页添加此类型按钮\n```\n\n#### 安装\n\n```php\ncomposer require quansitech/qscmf-buttontype-modal\n```\n\n#### 添加按钮\n\n[ModalButtonBuilder使用说明](https://github.com/quansitech/qscmf-buttontype-modal/blob/master/ModalButtonBuilder.md)\n\n+ 向列表添加一个顶部按钮\n  \n  ```php\n  public function add(){\n    if (IS_POST) {\n        // 业务逻辑\n    }\n    else {\n        // 使用FormBuilder快速建立表单页面。\n        $builder = new \\Qscmf\\Builder\\FormBuilder();\n        $builder\n            -\u003esetPostUrl(U('add'))\n            -\u003eaddFormItem('nick_name', 'text', '用户名*')\n            -\u003eaddFormItem('email', 'text', '电子邮箱*')\n            -\u003eaddFormItem('telephone', 'text', '手机')\n            -\u003eaddFormItem('pwd', 'password', '密码*')\n            -\u003eaddFormItem('pwd1', 'password', '重复密码*')\n            -\u003esetShowBtn(false);\n  \n        return $builder;\n    }\n  }\n  \n  public function buildTopModal(){\n    return (new \\Qs\\ModalButton\\ModalButtonBuilder())\n                -\u003esetTitle(\"新增\")\n                -\u003ebindFormBuilder($this-\u003eadd());\n  }\n  \n  // 按钮options属性传入ModalButtonBuilder对象 \n   (new \\Qscmf\\Builder\\ListBuilder())-\u003eaddTopButton('modal', ['title' =\u003e '新增'],'','',$this-\u003ebuildTopModal())\n  ```\n\n+ 向列表添加一个行按钮\n  \n  ```php\n  public function edit($id){\n    if (IS_POST) {\n        // 业务逻辑\n    }\n    else {\n        $info = D('User')-\u003egetOne($id);\n        // 使用FormBuilder快速建立表单页面。\n        $builder = new \\Qscmf\\Builder\\FormBuilder();\n        $builder\n            -\u003esetPostUrl(U('add'))\n            -\u003eaddFormItem('nick_name', 'text', '用户名*')\n            -\u003eaddFormItem('email', 'text', '电子邮箱*')\n            -\u003eaddFormItem('telephone', 'text', '手机')\n            -\u003eaddFormItem('pwd', 'password', '密码*')\n            -\u003eaddFormItem('pwd1', 'password', '重复密码*')\n            -\u003esetFormData($info)\n            -\u003esetShowBtn(false);\n  \n        return $builder;\n    }\n  }\n  \n  public function buildEditFormModal($id ){\n    return (new \\Qs\\ModalButton\\ModalButtonBuilder())\n        -\u003ebindFormBuilder($this-\u003eedit($id))\n        -\u003esetKeyboard(false)\n        -\u003esetBackdrop(false)\n        -\u003esetTitle('编辑');\n    }\n  \n  $data_list = D('User')-\u003eselect();\n  foreach($data_list as \u0026$data){\n    $right_edit_form_modal = $this-\u003ebuildEditFormModal($data['id']);\n    $data['list_edit_form'] = $right_edit_form_modal;\n  }\n  // 每一行数据需要定义'list_edit_form'的值，且该值为ModalButtonBuilder对象 \n   (new \\Qscmf\\Builder\\ListBuilder())\n  -\u003eaddRightButton('modal',['title' =\u003e '编辑'], '', '', 'list_edit_form')\n  -\u003esetTableDataList($data_list)\n  ```\n\n+ 向表单添加一个按钮\n  \n  ```php\n    public function edit($id){\n    if (IS_POST) {\n        // 业务逻辑\n    }\n    else {\n        $info = D('User')-\u003egetOne($id);\n        // 使用FormBuilder快速建立表单页面。\n        $builder = new \\Qscmf\\Builder\\FormBuilder();\n        $builder\n            -\u003esetPostUrl(U('add'))\n            -\u003eaddFormItem('nick_name', 'text', '用户名*')\n            -\u003eaddFormItem('email', 'text', '电子邮箱*')\n            -\u003eaddFormItem('telephone', 'text', '手机')\n            -\u003eaddFormItem('pwd', 'password', '密码*')\n            -\u003eaddFormItem('pwd1', 'password', '重复密码*')\n            -\u003esetFormData($info)\n            -\u003esetShowBtn(false);\n  \n        return $builder;\n    }\n  }\n  \n  public function buildEditFormModal($id){\n    return (new \\Qs\\ModalButton\\ModalButtonBuilder())\n        -\u003ebindFormBuilder($this-\u003eedit($id))\n        -\u003esetKeyboard(false)\n        -\u003esetBackdrop(false)\n        -\u003esetIsForward(false)\n        -\u003esetTitle('编辑');\n    }\n  \n  $info = D('User')-\u003egetOne($id);\n  $info['form_edit_form'] = $this-\u003ebuildEditFormModal($info['id'])\n   // 表单数据需要定义'form_edit_form'的值，且该值为ModalButtonBuilder对象 \n   (new \\Qscmf\\Builder\\FormBuilder())\n  -\u003eaddButton('modal',['title' =\u003e '编辑'], '', '', 'form_edit_form')\n  -\u003esetFormData($info)\n  ```\n\n+ ajax的方式加载内容 (实验性功能)\n  \n  \u003e 1. 接口说明\n  \u003e    \n  \u003e    \u003e + 需要返回JSON数据格式\n  \u003e    \u003e + 若数据正常则设置status为1，否则为0\n  \u003e    \u003e + 将需要返回的内容赋值给info\n  \u003e \n  \u003e 2. 用例\n  \u003e \n  \u003e ```php\n  \u003e // 设置Modal 内容请求API\n  \u003e  protected function buildTopModal(){\n  \u003e      return (new \\Qs\\ModalButton\\ModalButtonBuilder())\n  \u003e            -\u003esetTitle(\"新增\")\n  \u003e            -\u003esetBackdrop(false)\n  \u003e            -\u003esetKeyboard(false)\n  \u003e            -\u003esetBodyApiUrl(U(\"add\"));\n  \u003e  }\n  \u003e \n  \u003e  // ListBuilder对应列配置\n  \u003e  -\u003eaddTopButton('modal', ['title' =\u003e '新增'],'','',$this-\u003ebuildTopModal());\n  \u003e \n  \u003e public function add(){\n  \u003e \n  \u003e    $builder = new FormBuilder();\n  \u003e    $builder\n  \u003e        -\u003eaddFormItem('title', 'text', '标题')\n  \u003e        -\u003eaddFormItem('summary', 'textarea', '简介')\n  \u003e        -\u003eaddFormItem('cover', 'picture', '封面', '尺寸为214*250px', ['width' =\u003e 214, 'height' =\u003e 250])\n  \u003e        -\u003esetFormData($info)\n  \u003e        -\u003esetShowBtn(false)\n  \u003e        -\u003esetReadOnly(true);\n  \u003e \n  \u003e    $this-\u003eajaxReturn(['status' =\u003e 1, 'info' =\u003e $builder-\u003ebuild(true)]);\n  \u003e }\n  \u003e ```\n\n+ 模态框表单获取ListBuilder选中的checkbox值\n  + 按钮添加样式类 inject_selected\n  + 可使用ModalButtonBuilder对象的setSelectedIdFieldName方法自定义对应的表单字段值，默认为 qslb_selected_ids\n  + 用法\n    ```php\n    $builder = new \\Qscmf\\Builder\\ListBuilder();\n    $builder = $builder-\u003esetMetaTitle('可编辑测试列表');\n    $builder\n            -\u003eaddTopButton('modal', ['title' =\u003e '新增', 'class' =\u003e \"btn btn-primary inject_selected\"],'','',$this-\u003ebuildAddModal());\n    \n    \n    protected function buildAddModal(){\n        $modal = (new \\Qs\\ModalButton\\ModalButtonBuilder());\n        return\n            $modal\n                -\u003esetTitle('新增可编辑测试')\n                -\u003esetBackdrop(false)\n                -\u003esetKeyboard(false)\n                -\u003esetSelectedIdFieldName(\"org_id\")\n                -\u003ebindFormBuilder($this-\u003eadd());\n    }\n  \n    public function add(){\n        $builder = new FormBuilder();\n        $builder\n                -\u003eaddFormItem('title', 'text', '标题')\n                -\u003eaddFormItem('summary', 'textarea', '简介')\n                -\u003eaddFormItem('cover', 'picture', '封面', '尺寸为214*250px', ['width' =\u003e 214, 'height' =\u003e 250])\n                -\u003esetFormData($info)\n                -\u003esetShowBtn(false);\n                \n            return $builder;\n        }\n    }\n  \n    ```\n\n#### 升级指南\n\n[升级指南](https://github.com/quansitech/qscmf-buttontype-modal/blob/master/Upgrade.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquansitech%2Fqscmf-buttontype-modal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquansitech%2Fqscmf-buttontype-modal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquansitech%2Fqscmf-buttontype-modal/lists"}