fastadmin 改版思路,主要写了一下 table 表格的改版方式,同理也可以适用于 form 表单模板的改造。
form表单也可以内置一部分样式格式并分离成单个html插件,根据 getAllFields() 自动类型渲染不同插件,用户可以自定义新增更多样式插件或覆盖内置插件样式。
table 渲染改造
php model class User /** * 获取数据库显示字段全量信息 * fa 根据数据库字段前置以及描述信息,自动生成 * * return array */ public getAllFields() { return [ 'id' => [ 'desc' => '自增ID', //字段描述 'type' => 'integer', //字段类型 'format' => '', //前台格式化显示类型 //为空表示直接显示字段内容,不使用 js 格式化插件 ], 'email' => [ 'desc' => '邮箱', 'type' => 'string', 'format' => 'email', //前台格式化显示类型 //table表格显示字段时,需要使用 js 格式化插件 email 预处理 ], 'state' => [ 'desc' => '状态', 'type' => 'tinyint', 'format' => 'toggle', //前台格式化显示类型 //table表格显示字段时,需要使用 js 格式化插件 toggle 预处理 'values' => [ //字段值对应显示内容 '0' => '关闭', '1' => '显示' ] ] ]; } /** * 获取sql查询字段 用于index方法查询时使用 * fa 根据数据库字段前置以及描述信息,自动生成 * * @param null|bool|string $table 字段前是否需要表前置,默认不带,true表示使用当前 model 对应表名, 其他字符串表示使用此字符串代替表名(应对表别名情况) * @param null|bool|string $as 连表查询时使用,通过 as 别名区分不同表相同字段,as 生成格式可以参考 tp 关联查询时的字段格式 * return string */ public getSqlFields($table = null,$as = null) { $fields = $this->getAllFields(); // 数组格式转化 return 'user.id,user.email,user.state'; //使用 表.字段 的格式可以避免关联查询出现问题 } controller class User /** * @var appModelUser */ protected $model; public index() { if($request->isAjax()){ $total = $this->model->where()->count(); $list = $this->model->field($this->model->getSqlFields())->where()->limit()->order()->select(); } $this->assignconfig('fileds',$this->model->getAllFields); //透传字段处理格式到 js //展示通用 table 模板文件,需要定制化处理模板时,手动复制到 tp 模板路径下,创建新的模板渲染即可 return $this->view->fetch('common/table.html'); }view common table.html user index.html //fa框架可用不再创建这个模板文件 通用情况下使用 common/table.html 定制化模板直接 cp common/table.html user/index.htmlpublic assets common // 此目录下所有文件禁止修改 全部由 fa 框架维护,fa 升级时,从 fa 版本中复制出最新版本文件覆盖此目录下内容 // fa 对于此目录文件应考虑兼容性,尽量避免修改旧文件 js // fa 公共 js 文件夹 table_format // table 字段格式化插件目录 email.js // table_email 邮件样式展示插件 toggle.js // table_toggle 开关样式展示插件 // url.js // table_url 链接样式展示插件 image.js // 单图片样式展示插件 images.js // 多图片样式展示插件 common table.js //table.html 模板自动引入此 table 全局 js //内部根据 php 透传的 fileds 变量,自动初始化 table columns 显示列 libs // js 库,存放 jquery bootstrap 等 css // fa 公共 css 文件夹 table_format // table 字段格式化插件 对应 css 主题,方便某些 js 样式插件需要 css 样式支撑 backend js // 用户自定义后台 js 文件夹 // 此目录优先级高于 common fa 公共目录 目的是方便用户重写 fa 通用插件 table_format // 用户自定义 table 格式化插件目录 swiper.js // 轮播图样式插件 email.js // 邮件样式插件,基于 fa 官方邮件样式修改,增加 xxx 功能 url.js // 链接样式查看,基于 fa 官方链接样式修改,美化展示样式
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。