当前位置:网站首页>CatchAdmin实战教程(四)Table组件之自定义基础页面
CatchAdmin实战教程(四)Table组件之自定义基础页面
2022-08-10 09:35:00 【Jack_num1】
前言: 大家对CatchAdmin的Table组件自定义基础页面可能不是很清楚怎么使用的,可以参考这篇文章,只要三个大步骤,即可拥有基础页面包含表单、列表、字段搜索、排序等功能。
(一)后台设置
模块:
business; Model:Bonds;控制器:Bonds
路由配置:$router->resource('bonds', '\catchAdmin\business\controller\Bonds');
API:business\bonds
1.1 表单操作
1.1.1 创建Form工厂
路径:catch/business/tables/forms/Factory.php
<?php
namespace catchAdmin\business\tables\forms;
use catcher\library\form\FormFactory;
class Factory extends FormFactory
{
public static function from(): string
{
return __NAMESPACE__;
}
}
1.1.2 创建基础Form类
路径:catch/business/tables/forms/BaseForm.php
<?php
namespace catchAdmin\business\tables\forms;
use catchAdmin\cms\support\DynamicFormFields;
use catcher\library\form\Form;
use catcher\Utils;
abstract class BaseForm extends Form
{
protected $table = null;
public function create(): array
{
$fields = parent::create(); // TODO: Change the autogenerated stub
if ($this->table) {
return array_merge($fields, (new DynamicFormFields())->build(Utils::tableWithPrefix($this->table)));
}
return $fields;
}
}
1.1.3 创建Form
创建Form表单方法说明:
必填方法:required(); 输入最大长度限制:maxlength(number); 所占列数:col(num);
<?php
namespace catchAdmin\business\tables\forms;
class Bonds extends BaseForm
{
// 表名
protected $table = 'business_bonds';
public function fields(): array
{
// TODO: Implement fields() method.
return [
self::input('security_code', '代码')->required()->maxlength(11)->col(12),
self::input('buy_price', '成本价')->col(12),
];
}
}
1.2 表格操作
1.2.1 创建Table
创建表的方法说明:
字段标签:label; 字段设置:prop
开启排序功能:sortable; 设置字段所占表格宽度:width
按钮设置:actions; 搜索设置:withSearch; API接口设置:withApiRoute
工厂模式创建表单:Factory::create()
<?php
namespace catchAdmin\business\tables;
use catcher\CatchTable;
use catchAdmin\business\tables\forms\Factory;
use catcher\library\table\Actions;
use catcher\library\table\HeaderItem;
use catcher\library\table\Search;
class Bonds extends CatchTable
{
public function table(): array
{
// TODO: Implement table() method.
return $this->getTable('business_bonds')
->header([
// sortable:开启页面排序功能 width:字段所占表格宽度
HeaderItem::label('编号')->prop('id')->sortable()->width(80),
HeaderItem::label('代码')->prop('code')->sortable()->width(100),
HeaderItem::label('价格')->prop('price')->sortable()->width(100),
HeaderItem::label('更新时间')->prop('updated_at')->sortable()->width(150),
HeaderItem::label('操作')->actions([
Actions::update(),//更新按钮
Actions::delete() //删除按钮
])
])
// 字段搜索功能
->withSearch([
Search::input('code', '代码')->clearable(true),
])
->withBind()
// 后端Api接口地址
->withApiRoute('business/bonds')
// 创建按钮
->withActions([
Actions::create()
])
->render();
}
// 使用工厂模式创建表单
protected function form()
{
// TODO: Implement form() method.
return Factory::create('bonds');
}
}
(二) 前端设置
2.1 创建页面
方便与后端的接口统一,这里统一设置路径:
src/views/business/bonds/index.vue
友情提示: 一定要在页面创建表单(:formCreate="formCreate"),否则表单页面会显示为空!
<template>
<catch-table
:formCreate="formCreate"
v-bind="table"
/>
</template>
<script>
import render from '@/views/render-table-form'
export default {
name: 'index',
mixins: [render],
data() {
return {
tableFrom: 'table/business/bonds'
}
}
}
</script>
<style scoped>
</style>
2.2 设置路由
路由地址指向:当前路径
bonds目录下的index.vue
export default {
// bonds列表
bonds: () => import('./bonds')
}
(三) 菜单配置
3.1 配置一级菜单

3.2 配置列表菜单

结尾语: 相信你看到这里应该对CatchAdmin的Table组件自定义基础页面有个基本的掌握了,若对你有所帮助,请不要忘了用你的小手点点关注、点赞、收藏哟!
边栏推荐
- How to use [jmeter regular expression extractor] to solve the problem of returning the value as a parameter
- FPGA时钟篇(三) MRCC和SRCC的区别
- J9 Digital Theory: What kind of sparks will Web3.0+ Internet e-commerce cause?
- win下的开发环境变量记录
- Oracle rac所在的网络要割接,停掉其中一个rac节点,这种方案可行吗?
- JWT:拥有我,即拥有权力
- Guo Jingjing's personal chess teaching, the good guy is a robot
- 如何理解BIO、NIO、AIO的区别
- Development environment variable record under win
- 不要把公司当成家,被通知裁员时会变得不幸...
猜你喜欢
随机推荐
钻石价格预测的ML全流程!从模型构建调优道部署应用!
【软考 系统架构设计师】系统可靠性分析与设计① 系统可靠性分析
90.(cesium之家)cesium高度监听事件
DAY25: Logic vulnerability recurrence
[Internet of Things Architecture] The most suitable open source database for the Internet of Things
幂次方(暑假每日一题 20)
Shell functions and arrays
Flink部署 完整使用 (第三章)
shell------常用小工具,sort,uniq,tr,cut
shell iterates over folders and outputs
PostgreSQL 2022 发展现状:13 个非 psql 工具
重学冒泡排序
go web之cookie
[Data Architecture] Distributed Data Grid as a Solution for Centralized Data Monolith
Excel绘制统计图
DeepFake换脸诈骗怎么破?让他侧个身
BUUCTF problem solving PWN 】 【 record (4-6 pages continuously updated)
裸辞→自我放松→闭关→复习→斩获Offer
地平线:面向规模化量产的智能驾驶系统和软件开发
腾讯云校园大使开始招募啦,内推名额和奖金等你来拿









