中后台管理系统前端可视化低代码方式提效设计一

前言

中后台管理类系统基本都是对数据的增删改查、上传下载等,最多也只是展示形式上的差异, 一般都是由:一块区域用来输入或选择进行调用接口进行查询,一个表格用于对查询出的数据进行展示以及每条数据的操作,一个或两个表单用于数据的添加或者修改,以及一块功能区域用于批量删除、导入、导出等等。这些功能简单且量大编写的再多也不能提升自生境界,纯粹的浪费生命,可谓是苦不堪言。一般可能想到的是cv大法,但是修改也是很痛苦的,因为经常会少改某些变量,在测试的时候又漏掉总是经常偷偷 fixed 也是一脸尴尬。所以我们决定使用可视化的方案来解决这些重复性的问题。

需求分析

如果我们简单的抽象一个CURD的代码大概主要逻辑应该如下(react hook版):

//用于查询
const [searchParams, setSearchParams] = useState({
   })
//列表数据
const [tableList, setTableList] = useState([])
//查询函数
const loadData = useCallback(() => {
    
    service.search(searchParams).then(list => {
   
        setTableList(list)
    })
}, [searchParams])
//loadData 查询函数变化重新调用,因为依赖了 searchParams 所以查询参数变化就会重新查询
useEffect(() => {
   
    loadData()
}, [loadData]) 
//... 其它 
return (<div>
        <Search>
            {
   /*
                <Input />
                ... 
                变化的查询条件
            */} 
            {
   /* 将Search中数据set 到 searchParams 以触发查询 */}
            <Button>查询</Button>
            {
   /* setSearchParams({}) */}
            <Button>重置</Button>
        <Search>
        <div>
            {
   /* openModal() */}
            <Button>新增</Button>
            <Button>批量删除</Button>
            ... 以及其它功能
        </div>
        {
   /*
            1. 将分页数据设置到 searchParams 中以分页查询 setSearchParams({...searchParams, pageNo, pageSize })
            2. 将选择的行保存下来用于如批量删除
        */}
        <Table>
            {
   
                /*<Column lable="姓名" />
                ...
                变化的列
                */
            } 
            <Column lable="操作">
                {
   /*
                    是否确定删除? 是:
                    service.delete(row.id).then(() => loadData())
                */}
                <Button>删除</Button>
                {
   /*
                    打开 modal 将当前行数据 row 传过去
                    openModal(row)
                */}
                <Button>编辑</Button>
                ... 以及其它功能
            </Column >
        </Table>
        <Modal>
            {
   /*
                将数据保存或更新
                service.inserOrUpdate(data).then(() => loadData())
            */}
            <Form>
              
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值