{"id":20144157,"url":"https://github.com/quansitech/qscmf-antd-builder","last_synced_at":"2025-07-23T16:34:35.262Z","repository":{"id":38197161,"uuid":"274103223","full_name":"quansitech/qscmf-antd-builder","owner":"quansitech","description":"antd 控件生成器","archived":false,"fork":false,"pushed_at":"2023-03-06T11:20:03.000Z","size":2740,"stargazers_count":0,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-06T02:17:41.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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":"2020-06-22T10:07:41.000Z","updated_at":"2022-02-18T01:20:55.000Z","dependencies_parsed_at":"2025-01-13T10:42:01.993Z","dependency_job_id":"e6dd1283-aeb1-4c04-b72b-0d5c81212544","html_url":"https://github.com/quansitech/qscmf-antd-builder","commit_stats":{"total_commits":34,"total_committers":3,"mean_commits":"11.333333333333334","dds":0.4117647058823529,"last_synced_commit":"5ecfeb083c41b2a919d46dc8d47cba01ebbf9d0a"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/quansitech/qscmf-antd-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-antd-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-antd-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-antd-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-antd-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quansitech","download_url":"https://codeload.github.com/quansitech/qscmf-antd-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqscmf-antd-builder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266714399,"owners_count":23973112,"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-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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.614Z","updated_at":"2025-07-23T16:34:35.229Z","avatar_url":"https://github.com/quansitech.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qscmf-antd-builder\n\nantd 控件生成器\n\n## 安装\n\n```php\ncomposer require quansitech/qscmf-antd-builder\n```\n\n## 控件列表\n\n+ [Divider](https://github.com/quansitech/qscmf-antd-builder#divider)\n+ [Table](https://github.com/quansitech/qscmf-antd-builder#table)\n\n### Divider\n\n分割线\n\n最简单的分割线\n\n```php\n$divider = new DividerBuilder();\n\necho $divider; //输出html\n```\n\n给分割线设置说明\n\n```php\n$divider = new DividerBuilder();\n$divider-\u003esetTitle('这是一个标题');\necho $divider; //输出html\n```\n\n修改分割线标题位置，默认为 center，即居中\n\n```php\n// 左边\n$divider = new DividerBuilder();\n$divider-\u003esetTitle('这是一个左标题');\n$divider-\u003esetTitlePosiition('left');\necho $divider;\n\n// 右边\n$divider = new DividerBuilder();\n$divider-\u003esetTitle('这是一个右标题');\n$divider-\u003esetTitlePosiition('right');\necho $divider;\n```\n\n实例化对象时设置标题和标题位置\n\n```php\necho new DividerBuilder('标题', 'right');\n```\n\n### Table\n\n表格\n\n最简单的表格\n\n```php\n$table_builder = new TableBuilder();\n//设置列头 title 是列标题  dataIndex对应的字段key\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'Name', 'dataIndex' =\u003e 'name']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'Age', 'dataIndex' =\u003e 'age']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'Address', 'dataIndex' =\u003e 'address']);\n//添加记录  key 为记录唯一标识，最好使用数据库的唯一id\n//其余是记录的键值对\n$table_builder-\u003eaddRow(['key' =\u003e 1, 'name' =\u003e 'John Brown', 'age' =\u003e 32, 'address' =\u003e 'New York No. 1 Lake Park']);\n$table_builder-\u003eaddRow(['key' =\u003e 2, 'name' =\u003e 'Jim Green', 'age' =\u003e 42, 'address' =\u003e 'London No. 1 Lake Park']);\n$table_builder-\u003eaddRow(['key' =\u003e 3, 'name' =\u003e 'Joe Black', 'age' =\u003e 32, 'address' =\u003e 'Sidney No. 1 Lake Park']);\n\necho $table_builder; //输出html\n```\n\n**带有筛选条件的表格**\n\n```php\n// 创建表格及添加数据\nfunction mockData(){\n    for($i=0;$i\u003c100;$i++){\n        $data[] = [\n            'id' =\u003e $i,\n            'name' =\u003e 'name_'.$i,\n            'nick_name' =\u003e 'nick_name_'.$i,\n            'num' =\u003e $i,\n            'status' =\u003e rand(0,1),\n            'color' =\u003e array_rand(['R','G','B']),\n            'date' =\u003e '2020',\n            'date_range' =\u003e '2021-2022',\n        ];\n    }\n\n    return $data;\n}\n\n$table_builder = new \\AntdBuilder\\TableBuilder();\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'name', 'dataIndex' =\u003e 'name']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'nick_name', 'dataIndex' =\u003e 'nick_name']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'num', 'dataIndex' =\u003e 'num']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'status', 'dataIndex' =\u003e 'status']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'color', 'dataIndex' =\u003e 'color']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'date', 'dataIndex' =\u003e 'date']);\n$table_builder-\u003eaddColumn([ 'title' =\u003e 'date_range', 'dataIndex' =\u003e 'date_range']);\n\n$data = $this-\u003emockData();\n$list_data = $data;\n\nforeach ($list_data as \u0026$v){\n    $temp = $v;\n    $temp['key'] = $v['id'];\n\n    $table_builder-\u003eaddRow($temp);\n}\n```\n\n筛选通用参数说明\n\n| 参数               | 说明                                                          | 类型               | 默认值   |\n|:---------------- |:----------------------------------------------------------- |:---------------- |:----- |\n| name             | 列属性值，即data.dataIndex                                        | string           |       |\n| text             | 筛选项标题                                                       | string           |       |\n| type             | 筛选类型，可选值请看 筛选类型及其options参数说明                                | string           |       |\n| rule             | 筛选规则，可选值请看 筛选规则说明                                           | string           |       |\n| changeThenSearch | 筛选内容改变时马上筛选数据，例如选择下拉框值即筛选数据，若需要应该设置为 \"1\"                    | boolean I string | false |\n| showLabel        | 是否在左侧显示筛选项标题，若需要应该设置为 \"1\"                                   | boolean I string | false |\n| options          | 筛选项额外配置，具体请看类型说明；使用自定义筛选规则时应设置callback，具体请看类型说明中的 使用回调自定义规则 | array            |       |\n\n筛选类型及其options参数说明\n\n+ 文本框：TableBuilder::FILTER_TYPE_INPUT\n\n+ 下拉框单选：TableBuilder::FILTER_TYPE_SELECT\n  \n  | 参数         | 说明                                           | 类型               | 默认值   |\n  |:---------- |:-------------------------------------------- |:---------------- |:----- |\n  | options    | 选项，格式为[[\"value\"=\u003e\"value\", \"label\"=\u003e\"label\"]] | array            |       |\n  | showSearch | 支持文本搜索选项，若需要应该设置为 \"1\"                        | boolean I string | false |\n  | width      | 宽度                                           | string           | 100px |\n\n+ 下拉框多选：TableBuilder::FILTER_TYPE_MULTI_SELECT\n  \n  | 参数      | 说明                                           | 类型     | 默认值   |\n  |:------- |:-------------------------------------------- |:------ |:----- |\n  | options | 选项，格式为[[\"value\"=\u003e\"value\", \"label\"=\u003e\"label\"]] | array  |       |\n  | width   | 宽度                                           | string | 100px |\n\n+ 日期：TableBuilder::FILTER_TYPE_DATE\n  \n  | 参数     | 说明      | 类型                                              | 默认值  |\n  |:------ |:------- |:----------------------------------------------- |:---- |\n  | format | 设置日期格式  | string                                          |      |\n  | picker | 设置选择器类型 | string，可选值 date I week I month I quarter I year | date |\n\n+ 日期范围：TableBuilder::FILTER_TYPE_DATE_RANGE\n  \n  | 参数             | 说明       | 类型                                              | 默认值   |\n  |:-------------- |:-------- |:----------------------------------------------- |:----- |\n  | format         | 设置日期格式   | [string,string]                                 |       |\n  | picker         | 设置选择器类型  | string，可选值 date I week I month I quarter I year | date  |\n  | showTime       | 增加时间选择功能 | boolean                                         | false |\n  | valueSeparator | 值分隔符     | string                                          | -     |\n\n筛选规则说明\n\n+ 模糊搜索字符串：wildcard\n\n+ 精准搜索字符串：exact\n\n+ 列表值处于数组内：in\n\n+ 小于：lt\n\n+ 小于等于：elt\n\n+ 大于：gt\n\n+ 大于等于：egt\n\n+ 列表值处于数字区间：between\n\n+ 使用回调自定义规则：callback\n  \n  ```text\n  需要配置options参数，添加callback的值\n  callback只需要定义 js function 的 body，默认接收的参数是：value record searchData\n  function 返回的结果应为 true/false，返回false则表示需要过滤该条数据。\n  \n  例如需要精准匹配列表值与搜索字符串： return value === searchData;\n  ```\n  \n  | 参数         | 说明            |\n  |:---------- |:------------- |\n  | value      | 列的具体值，即name的值 |\n  | record     | 一行的值          |\n  | searchData | 搜索内容          |\n\n使用说明\n\n+ 文本模糊搜索\n  \n  ```php\n  // 参数说明\n  // $name\n  // $text\n  // $showLabel 默认为 false\n  \n  $table_builder-\u003eaddFuzzyFilter('name', '模糊搜索');\n  ```\n\n+ 文本精准搜索\n  \n  ```php\n  // 参数说明\n  // $name\n  // $text\n  // $showLabel 默认为 false\n  \n  $table_builder-\u003eaddExactFilter('name', '精准搜索');\n  ```\n\n+ 下拉框单选\n  \n  ```php\n  $status_list = array_map(function($value){\n    return ['value' =\u003e $value, 'label' =\u003e $value];\n    },[0,1]);\n  \n  // 参数说明\n  // $name\n  // $text\n  // $options\n  // $showLabel 默认为 false\n  // $showSearch 默认为 false\n  // $width 默认为 null\n  \n  $table_builder-\u003eaddSelectFilter('status', '状态', $status_list);\n  ```\n\n+ 下拉框多选\n  \n  ```php\n  $status_list = array_map(function($value){\n    return ['value' =\u003e $value, 'label' =\u003e $value];\n    },[0,1]);\n  \n  // 参数说明\n  // $name\n  // $text\n  // $options\n  // $showLabel 默认为 false\n  // $width 默认为 null\n  \n  $table_builder-\u003eaddMultiSelectFilter('status', '状态多选', $status_list);\n  ```\n\n+ 日期筛选\n  \n  ```php\n  // 参数说明\n  // $name\n  // $text\n  // $rule\n  // $picker 默认为 'date'\n  // $format 默认为 ''\n  // $showLabel 默认为 false\n  \n  $table_builder-\u003eaddDateFilter('date', '年份', TableBuilder::FILTER_RULE_LT, 'year');\n  ```\n\n+ 日期范围筛选\n  \n  ```php\n  // $name\n  // $text\n  // $rule\n  // $picker 默认为 'date'\n  // $format 默认为 ''\n  // $showLabel 默认为 false\n  \n  $table_builder-\u003eaddDateRangeFilter('date','年份范围', TableBuilder::FILTER_RULE_BETWEEN, 'year');\n  ```\n\n+ 自定义类型与使用回调筛选规则\n  \n  ```php\n  // 参数说明\n  // $name\n  // $text\n  // $type\n  // $callback\n  // $showLabel 默认为 false\n  \n  $table_builder-\u003eaddSelfFilter('name','自定义精准搜索', TableBuilder::FILTER_TYPE_INPUT, 'return value === searchData;');\n  ```\n\n+ 自定义类型与筛选规则\n  \n  ```php\n  // 请看通用参数以及对应类型参数说明使用\n  \n  $table_builder-\u003eaddFilter(['name' =\u003e 'nick_name', 'text'=\u003e'自定义模糊搜索', 'type' =\u003e TableBuilder::FILTER_TYPE_INPUT, 'rule' =\u003e TableBuilder::FILTER_RULE_WILDCARD, 'changeThenSearch' =\u003e false]);\n  ```\n\n**带有排序的表格**\n\n排序参数说明\n\n| 参数      | 说明                                                         | 类型            | 默认值  |\n|:------- |:---------------------------------------------------------- |:------------- |:---- |\n| name    | 即data.dataIndex                                            | string        |      |\n| type    | 排序类型，可选值请看 排序类型及其使用说明                                      | string I null | null |\n| options | 排序项额外配置，使用自定义排序规则时应设置callback，具体请看排序类型及其使用说明中的 使用回调函数自定义规则 | array         |      |\n\n排序类型及其使用说明\n\n+ 默认排序，即数字的升序或者降序排序：null\n  \n  ```php\n  // 参数说明\n  // $name\n  \n  $table_builder-\u003eaddDefSorter('num');\n  ```\n\n+ 使用回调函数自定义规则：callback\n  \n  ```text\n  需要配置options参数，添加callback的值\n  callback只需要定义 js function 的 body，默认接收的参数是：rowA rowB，为比较的两个行数据。\n  function 返回的结果应该是一个小于、等于或大于0的整数，当小于0时，rowA在rowB前；当大于0时rowB在rowA前；当等于0时rowA与rowB相等。\n  \n  例如： return rowA.num-rowB.num;\n  ```\n  \n  ```php\n  // 参数说明\n  // $name\n  // $callback\n  \n  $table_builder-\u003eaddSelfSorter('color', \"return rowA.color-rowB.color;\");\n  ```\n\n**使用远程加载数据的表格**\n\n+ 使用setApiUrl设置接口地址\n\n+ 接口返回数据格式\n  \n  ```text\n  必须要返回的字段\n  ```\n\ndata.list 为表格数据源\ndata.count 为数据总条数\n\n```\n```php\npublic function getList(){\n    $get_data = I(\"get.\");\n    $page = $get_data['page']??1;\n    $per_page = $get_data['per_page']??20;\n\n    $map = [\n        // 筛选数据\n    ];\n    $model = D(\"User\");\n\n    $count = $model-\u003ewhere($map)-\u003ecount();\n    $data_list = $model-\u003egetListForPage($map, $page, $per_page);\n\n    $this-\u003eajaxReturn(['status' =\u003e 1, \"info\" =\u003e '', 'data' =\u003e ['list' =\u003e $data_list, 'count' =\u003e $count]]);\n}\n```\n\n+ 设置筛选项，与*带有筛选条件的表格*用法一致，可自由组合\n  \n  ```text\n  仅筛选项样式有效，筛选规则需要接口处理\n  ```\n\n```php\n$table_builder = new TableBuilder();\n$table_builder-\u003eaddColumn(['title' =\u003e 'name', 'dataIndex' =\u003e 'name', 'sorter' =\u003e true]);\n$table_builder-\u003eaddColumn(['title' =\u003e 'remark', 'dataIndex' =\u003e 'remark']);\n$table_builder-\u003eaddColumn(['title' =\u003e 'status', 'dataIndex' =\u003e 'status']);\n$table_builder-\u003eaddColumn(['title' =\u003e 'email', 'dataIndex' =\u003e 'email']);\n$table_builder-\u003eaddColumn(['title' =\u003e 'tel', 'dataIndex' =\u003e 'tel']);\n$table_builder-\u003eaddColumn(['title' =\u003e 'top', 'dataIndex' =\u003e 'top', 'filters' =\u003e [['text' =\u003e 'is_top', 'value' =\u003e '0'], ['text' =\u003e 'not top', 'value' =\u003e '1']]]);\n$table_builder-\u003eaddColumn(['title' =\u003e 'work_date', 'dataIndex' =\u003e 'work_date']);\n\n$table_builder-\u003esetApiUrl(U('getList',['id' =\u003e 1], true, true));\n\n$table_builder-\u003eaddDefSorter(\"status\");\n\n$table_builder-\u003eaddSelectFilter(\"key\", \"search\", [[\"value\"=\u003e\"name\", \"label\"=\u003e\"name\"],[\"value\"=\u003e\"email\", \"label\"=\u003e\"email\"]]);\n$table_builder-\u003eaddFuzzyFilter(\"word\", \"word\");\n\n$table_builder-\u003eaddFuzzyFilter(\"name\", \"name\", true);\n$table_builder-\u003eaddExactFilter(\"email\", \"email\", true);\n$table_builder-\u003eaddSelectFilter(\"status\", \"status\", [[\"value\"=\u003e\"value\", \"label\"=\u003e\"label\"]]    );\n$table_builder-\u003eaddMultiSelectFilter(\"status_m\", \"status_m\", [[\"value\"=\u003e\"value\", \"label\"=\u003e\"label\"],[\"value\"=\u003e\"value2\", \"label\"=\u003e\"label2\"],[\"value\"=\u003e\"value3\", \"label\"=\u003e\"label3\"]]    );\n$table_builder-\u003eaddDateFilter(\"work_date\", \"work_date\",TableBuilder::FILTER_RULE_CALLBACK);\n$table_builder-\u003eaddDateRangeFilter(\"work_date_range\", \"work_date_range\", TableBuilder::FILTER_RULE_CALLBACK);\n```\n\n**自定义单元格属性**\n```text\n通过设置数据的 _cellProperties 的值来自定义单元格的列、行的属性\n```\n+ 表格拆分/合并\n  ```text\n  设置字段的 rowSpan colSpan值\n  当rowSpan/colSpan为0时，不渲染\n  ```\n  ```php\n  // 合并表头\n  $table_builder = new TableBuilder();\n  $table_builder-\u003eaddColumn([ 'title' =\u003e '合同编号', 'dataIndex' =\u003e 'id']);\n  $table_builder-\u003eaddColumn([ 'title' =\u003e '签约日期', 'dataIndex' =\u003e 'code', 'colSpan' =\u003e 2]);\n  // 此表头会被合并，不展示\n  $table_builder-\u003eaddColumn([ 'title' =\u003e '项目名称', 'dataIndex' =\u003e 'name', 'colSpan' =\u003e 0]);\n\n  // 将id相同的数据合并展示，列出不同的name\n  $list_data = [\n    ['id' =\u003e 1, 'code' =\u003e '1', 'name' =\u003e 'name1_1', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 4], 'code' =\u003e ['rowSpan' =\u003e 4], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 1, 'code' =\u003e '1', 'name' =\u003e 'name1_2', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 0], 'code' =\u003e ['rowSpan' =\u003e 0], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 1, 'code' =\u003e '1', 'name' =\u003e 'name1_3', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 0], 'code' =\u003e ['rowSpan' =\u003e 0], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 1, 'code' =\u003e '1', 'name' =\u003e 'name1_4', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 0], 'code' =\u003e ['rowSpan' =\u003e 0], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 2, 'code' =\u003e '2', 'name' =\u003e 'name2_1', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 2], 'code' =\u003e ['rowSpan' =\u003e 2], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 2, 'code' =\u003e '2', 'name' =\u003e 'name2_2', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 0], 'code' =\u003e ['rowSpan' =\u003e 0], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 3, 'code' =\u003e '3', 'name' =\u003e 'name3_1', '_cellProperties' =\u003e ['id' =\u003e ['rowSpan' =\u003e 1], 'code' =\u003e ['rowSpan' =\u003e 1], 'name' =\u003e ['rowSpan' =\u003e 1]]],\n    ['id' =\u003e 4, 'code' =\u003e '4', 'name' =\u003e 'name4_1'],\n  ];\n  \n  foreach ($list_data as \u0026$v){\n     $table_builder-\u003eaddRow($v);\n  }\n  \n  echo $table_builder;\n  ```\n+ 表格样式修改\n   ```text\n  设置字段的 className值\n   ```\n   ```php\n  $table_builder = new TableBuilder();\n  $table_builder-\u003eaddColumn([ 'title' =\u003e '合同编号', 'dataIndex' =\u003e 'id']);\n  $table_builder-\u003eaddColumn([ 'title' =\u003e '签约日期', 'dataIndex' =\u003e 'code']);\n\n  // 修改code的背景色\n  // 自定义样式类，如 bg-green {background-color:#bbe7c1;}\n  $list_data = [\n    ['id' =\u003e 1, 'code' =\u003e '1', 'name' =\u003e 'name1_1', '_cellProperties' =\u003e ['code' =\u003e ['className' =\u003e 'bg-green']]],\n  ];\n  \n  foreach ($list_data as \u0026$v){\n     $table_builder-\u003eaddRow($v);\n  }\n  \n  echo $table_builder;\n  ```\n\n**取消分页**\n```text\n远程加载数据的表格无效\n```\n```php\n$table_builder = new TableBuilder();\n$table_builder-\u003esetPagination(false);\n```\n\n### Collapse\n\n折叠卡\n\n最简单的折叠卡\n\n```php\n$collapse = new CollapseBuilder();\n$collapse-\u003eaddPanel('这是个标题1', '\u003cp\u003e这里可以写html\u003c/p\u003e');\n$collapse-\u003eaddPanel('这是个标题2', '\u003cp\u003e这里可以写html\u003c/p\u003e');\necho $collapse; //输出html\n```\n\n### Descriptions\n\n描述列表\n\n示例:\n\n```php\n$descriptions = new DescriptionsBuilder();\n$descriptions-\u003esetBordered(true);\n$descriptions-\u003eaddItem('抬头', $title)\n    -\u003eaddItem('纳税人识别号', $tax_code, ['span' =\u003e 2])\n    -\u003eaddItem('图片', ['https://demo.test/demo.png', 'https://demo.test/demo.png'], ['type' =\u003e 'image'])\n    -\u003eaddItem('html', \"123 \u003cbr /\u003e 456\", ['type' =\u003e 'html']);\n\necho $descriptions;\n```\n\n函数说明:\n\n+ setBordered \n  \n  指定是否使用边框表格的展示方式\n  \n  | 参数       | 说明              | 必填  | 默认值   |\n  |:-------- |:--------------- | --- |:----- |\n  | bordered | 指定是否使用边框表格的展示方式 | 否   | false |\n\n+ addItem\n  \n  添加展示列\n  \n  | 参数          | 说明                                                                                                       | 必填  | 默认值                          |\n  |:----------- |:-------------------------------------------------------------------------------------------------------- | --- |:---------------------------- |\n  | label       | 列标题                                                                                                      | 是   |                              |\n  | content     | 内容                                                                                                       | 是   |                              |\n  | option      | 配置                                                                                                       | 否   | [ 'type' =\u003e '', 'span' =\u003e 0] |\n  | option.type | 类型 \u003cbr /\u003e1. image 图片 content需要填写图片地址\u003cbr /\u003e    content也可以填入数组表示多图展示\u003cbr /\u003e2. html content可以输入简单的html进行信息展示 | 否   | text                         |\n  | option.span | 列宽 2表示占据两列，以此类推                                                                                          | 否   | 0                            |\n\n\n\n### Datepicker\n\n日期查询控件\n\n示例:\n\n```php\n$datepicker = new DatepickerBuilder(DatepickerBuilder::TYPE_RANGEPICKER);\n$date_range = $datepicker-\u003eparseParam(I('get.'));\nif(count($date_range) === 0){\n   $start = date(\"Y\", time()) . \"-01-01\";\n   $end = date(\"Y-m-d\", time());\n   $date_range = [\n       $start,\n       $end\n   ];\n}\n$datepicker-\u003esetDefaultValue($date_range);\n\n\necho $datepicker;\n```\n\n函数说明:\n\n+ ___construct\n  \n  构造函数\n  \n  | 参数     | 说明                                                                                                                                                                                    | 必填  | 默认值                                |\n  | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ---------------------------------- |\n  | type   | 控件类型\u003cbr\u003eDatepickerBuilder::TYPE_DATEPICKER 单日期选择\u003cbr\u003e\u003cbr\u003eDatepickerBuilder::TYPE_RANGEPICKER 范围选择                                                                                      | 否   | DatepickerBuilder::TYPE_DATEPICKER |\n  | picker | DatepickerBuilder::PICKER_DATE 日\u003cbr/\u003eDatepickerBuilder::PICKER_WEEK 周\u003cbr/\u003eDatepickerBuilder::PICKER_MONTH 月\u003cbr/\u003eDatepickerBuilder::PICKER_YEAR 年\u003cbr/\u003eDatepickerBuilder::PICKER_YEAR 季 | 否   | DatepickerBuilder::PICKER_DATE     |\n  \n  \n- setType \n  \n  控件类型 \n  \n  | 参数   | 说明                                                                                                  | 必填  | 默认值 |\n  | ---- | --------------------------------------------------------------------------------------------------- | --- | --- |\n  | type | 控件类型\u003cbr/\u003eDatepickerBuilder::TYPE_DATEPICKER 单日期选择\u003cbr/\u003e\u003cbr/\u003eDatepickerBuilder::TYPE_RANGEPICKER 范围选择 | 是   | 无   |\n  \n  \n\n- setPicker\n  \n  选择日期粒度\n  \n  | 参数     | 说明                                                                                                                                                                                    | 必填  | 默认值 |\n  | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --- |\n  | picker | DatepickerBuilder::PICKER_DATE 日\u003cbr/\u003eDatepickerBuilder::PICKER_WEEK 周\u003cbr/\u003eDatepickerBuilder::PICKER_MONTH 月\u003cbr/\u003eDatepickerBuilder::PICKER_YEAR 年\u003cbr/\u003eDatepickerBuilder::PICKER_YEAR 季 | 是   | 无   |\n  \n  \n+ setDefaultValue\n  \n  设置日期\n  \n  | 参数    | 说明                                                                                                          | 必填  | 默认值 |\n  | ----- | ----------------------------------------------------------------------------------------------------------- | --- | --- |\n  | dates | 数组 \u003cbr/\u003erange类型时必须传递包含开始日期和结束日期得数组\u003cbr/\u003edatepicker类型时只需传递一个日期\u003cbr/\u003e格式为字符串\u003cbr/\u003e如: ['2022-08-01', '2022-08-31'] | 是   | 无   |\n\n\n\n+ parseParam\n  \n  参数解释函数\n  \n  | 参数       | 说明                                                   | 必填  | 默认值 |\n  | -------- | ---------------------------------------------------- | --- | --- |\n  | get_data | 数组 \u003cbr\u003eurl传参数组，一般为I('get.')\u003cbr/\u003e                     | 是   | 无   |\n  | 返回值      | 数组\u003cbr/\u003erange类型，返回选择的开始和结束时间\u003cbr/\u003edatepicker类型，返回选择的时间 |     |     |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquansitech%2Fqscmf-antd-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquansitech%2Fqscmf-antd-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquansitech%2Fqscmf-antd-builder/lists"}