Coder Social home page Coder Social logo

fast-crud / fast-crud Goto Github PK

View Code? Open in Web Editor NEW
781.0 9.0 78.0 16.49 MB

面向配置的crud框架,开发crud 快如闪电,超级表格;Options-oriented crud framework, develop crud as fast as lightning;based on vue3;super table

Home Page: http://fast-crud.docmirror.cn/

License: MIT License

JavaScript 8.28% Vue 33.46% TypeScript 57.09% CSS 0.43% Less 0.70% HTML 0.04%
antdv crud vue3 d2-crud-plus element-plus vite fs-admin admin vue ant-design

fast-crud's Introduction

fast-crud

English | 简体中文

FastCrud(简称fs) 是基于Vue3的面向配置的crud开发框架,快速开发crud功能,可作为低代码平台的基础框架。
入门简单,可扩展性强,拥有丰富的示例,让你可以快速完成搬砖任务,更多的时间划水吹逼。

star GitHub stars

源码地址:Github / Gitee

示例地址: 演示预览

文档地址:http://fast-crud.docmirror.cn/

注意:本项目的主要目标是实现一个fs-crud组件,帮助快速开发crud功能,admin脚手架并不是本项目的重点。
你可以通过如下几种方式使用fast-crud

开发crud,快如闪电

1、只需简单编写crud配置

const crudOptions= {
      columns: { //字段配置
        id: {// id字段
          title: "ID",
          type: "number", //字段类型
          column: { width: 50},
          form: { show: false }
        },
        name: { // 姓名字段
          title: "姓名",
          type: "text", //文本类型字段
          search: { show: true } //显示查询
        },
        city: { //城市字段
          title: "城市",
          type: "dict-select", //选择类型字段
          search: { show: true }, //显示查询
          dict: dict({ //本地数据字典
            value: "id",
            label: "text",
            data: [
              { id: "sz", text: "深圳", color: "success" },
              { id: "gz", text: "广州", color: "primary" },
              { id: "bj", text: "北京" },
              { id: "wh", text: "武汉" },
              { id: "sh", text: "上海" }
            ]
          })
        },
        radio: {
          title: "状态",
          search: { show: true }, //显示查询
          type: "dict-radio", //单选类型字段
          dict: dict({ //远程数据字典
            url: "/dicts/OpenStatusEnum?single"
          })
        }
      }
    }

2、 一个完全体crud就出来了

特性

1. 面向配置的crud编程

  • 根据crud配置快速开发crud功能,可作为低代码平台基础框架

2. 数据字典

  • 支持本地和远程获取
  • 配合select,轻松实现数据存的是value值,需要对应字典的label来展示的需求

3. 丰富的字段类型

  • 通过配置字段类型“column.type”来简化配置
  • 根据字段类型不同,自动生成不同的表单组件
  • 支持自定义字段类型

4. 扩展组件

通过扩展自定义组件,扩展自定义类型

5. 多UI支持

支持Antdv、Element、NaiveUI,你喜欢哪个就用哪个

谁在用fast-crud?

好评如潮,你还不试试?

联系作者

欢迎bug反馈,需求建议,技术交流等(请备注fs)

1、 加群

         

微信群                                                   QQ群

2、 加作者好友

捐赠

媳妇儿说:“一天到晚搞开源,也不管管老婆孩子!😡😡😡”
拜托各位捐赠支持一下,让媳妇儿开心开心,我也能有更多时间进行开源项目,感谢🙏🙏🙏

技术支持

  • 群里问问题免费解答
  • 提供远程控制付费技术支持:
    • 半小时内解决,88元。(问题描述清晰,小问题快速解决)
    • 高于半小时,188元(疑难杂症)
    • 解决不了,不收费

依赖

ui组件库

基于

monorepo

lerna

FsAdmin

示例admin脚手架

依赖

参考如下项目

感谢这些优秀的项目

我的其他项目

logo 项目 简介
袖手GPT ChatGPT,国内可用,无需FQ,每日免费额度
certd 免费通配符域名证书全自动申请部署工具
dev-sidecar 直连访问github工具,无需FQ,解决github无法访问的问题

---------------来都来了点个star再走呗-----------------↗↗↗↗↗↗↗↗
DevSidecar解谜提示
谜题共三层,前两层是两种不同的编码方式,第三层这里就不剧透了,留一点小乐趣。

感谢支持

  • jetbrains :感谢jetbrains提供的免费开源license

fast-crud's People

Contributors

aov2005 avatar asdfgh avatar greper avatar hozanhoi avatar sunshio avatar tuikit avatar vellengs avatar zhoufangerqiangu avatar zhzhh7378 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fast-crud's Issues

如果想对表格列表数据根据dict数据做一些操作比较难办,比如后台没有返回label只返回id

valueBuilder 执行时有可能assetPackageList 还没获取到数据

` const assetPackageList = ref([]);
const assetPackageDict = dict({
async getData() {
const res = await api.assetPackageList();
assetPackageList.value = res;
return res;
},
label: "code",
value: "id"
})

------------------crudOptions.columns
assetPackageName: {
title: "项目名称",
type: "text",
form: {
component: {
disabled: true
}
},
valueBuilder(context) {
const id = context.row.assetPackageId;
const target = assetPackageDict.getNodeByValue(id)
console.log('项目名称, 拦截')
if(!target){
setTimeout(()=>{
const target = assetPackageDict.getNodeByValue(id)
console.log(target, '项目名称, 拦截')
context.row.assetPackageName = target ? target.name : "";
},4)
}else {
context.row.assetPackageName = target.name;
}
}
}`

0.17.x BUG 反馈

image

写法一

 expose.setSearchFormData({ form, mergeForm: { sex: content.sex[0], ...form } });

写法二

expose.setSearchFormData({ sex: content.sex[0], ...form });

两种写法均做尝试,再次调用 expose.getSearchFormData() 依旧是空

0.15.0 缺陷

远程获取多选的时候,每选择一次下拉框就会收缩

rowHandle dropdown 如果没有子键是否直接隐藏?

 rowHandle: {
        show: true,
        width: 170,
        dropdown: {
          // 操作列折叠
          atLeast: 3,
          more: {
            size: 'small',
            text: '',
            icon: 'gg:more-o',
            // show:
            //   hasPermission('role:management:distribution_user') ||
            //   hasPermission('role:management:distribution_res'),
          },
        },
        buttons: {
          distribution: {
            text: '分配用户',
            size: 'small',
            order: 4,
            show: hasPermission('role:management:distribution_user'),
            async click(context) {
              await distribution.userModal(context.record.id);
            },
          },
          resource: {
            text: '分配权限',
            size: 'small',
            order: 5,
            show: hasPermission('role:management:distribution_res'),
            async click(context) {
              await distribution.resourceModal(context.record.id);
            },
          },
        },
      },

English Docs

This project is really awesome.
Any way I can contribute a branch for English documentation?

fast 0.11.0 使用建议

icon 支持 iconify 使用更广

头像和操作栏错位

57831625320913_ pic_hd

设置成更多按钮的时候 即使设置了 text 依旧有...

58331625369176_ pic

miss vben-admin-starter demo source code

I saw the vben-admin-starter demo use fast-crud, but I can not find the demo source code in github src tree. I want see how to use fast-crud in vben-admin, any help?

resetCrudOptions(),不会触发部分组件的计算变量重新计算

要实现的功能:列表页面要显示的字段需要从网络获取,然后通过resetCrudOptions()方法重新配置页面要显示或隐藏的字段,页面加载前不知道页面都需要显示什么字段。
问题出现步骤:1,默认配置里面的columns为空。如图:
image
2,网络请求回来信息后重新生成CrudOptions,然后执行resetCrudOptions()方法。列表都能正常显示。但是搜索栏的组件显示不了。调试发现FsSearch组件的computedColumns 计算变量是空的,且props.columns是有值的也是预期值。
image
预期结果:通过调用resetCrudOptions()方法能够实现页面配置更新页面搜索栏的组件也更新。
实际结果:resetCrudOptions(),不会触发部分组件的计算变量重新计算。
临时解决方案:页面挂载后通过v-if先不让页面渲染fs-crud 组件,待调用过resetCrudOptions()方法后再让fs-crud组件渲染。原理其实和直接使用useCrud()差不多,只能等先确定了配置(crudBinding)再渲染组件。无法(完全)达到预期的动态更新配置。
image

0.13.0 版本缺陷

FsButton 中使用 iconfy 无效

  • fs-button没有引用fs-icon

label超出后未换行

image

按钮折叠设置文字后依旧有 ...

折叠按钮触发后告警

image

嵌套子表单弹窗后标签错位

image

0.17.0 dict-cascader bug 反馈

BUG一:复制了一个很简单的案例结果打开数据混乱无法点击选中
71771627732143_ pic
71791627732160_ pic
BUG二:点击的时候为将原始数组修改,只做了追加所以要点两次
71801627732414_ pic_hd
BUG三:插槽方式的字段加到group 后直接变成文本框了
71821627804372_ pic
71851627804390_ pic_hd

0.17.x BUG反馈

切换分页记录数未重置页码

76101628737920_ pic_hd

日期查看打包后丢失(开发环境没问题)

76141628738089_ pic_hd

编辑表单格式化

  • 你好。当我从后段获取了一个值,type:1 ,前端要格式化表单显示,当type:1的时候,select显示为企业,有这个函数没有,目前的格式化是表格的格式化显示,编辑的时候格式化显示,在哪里呢
    001

级联选择任意一项时,无法正常显示

官网没有案例,按照ele的props.checkStrictly = true #

  • 来设置父子节点取消选中关联,从而达到选择任意一级选项的目的。请问一下,zhel这里该怎么写。
    fast

0.17.x BUG反馈

本地没问题,打包后编辑的时候 未操作文件控件 点保存提示如下

image

image

utils.log.ts使用vite build打包时会自动移除console.log,导致代码运行错误

utils.log.ts中有以下代码

const info = (...args) => { console.log("[info]", ...args); }; const debug = (...args) => { const callerInfo = getCallerInfo(); if (DEBUG_WITH_CALLER) { console.log("[debug]", ...args, "\n", callerInfo); } else { console.log("[debug]", ...args); } };

新版的vite 默认使用 minify: 'terser',会去除 console.log console.debug
打包出来就会变成
warn=(...H)=>{console.warn("[warn]",...H)},info=(...H)=>{...H},debug=(...H)=>{const C=getCallerInfo();...H}
代码会直接就无法运行
vite使用的esbuild,有规则可以跳过这个,详见以下网址
https://esbuild.docschina.org/api/#pure

使用fs-dict-switch时,搜索条件不生效

CRUD配置如下:

{
                    title: '内置标识',
                    search: {
                        show: true
                    },
                    form: {
                        rules: [{
                            required: true, message: "请选择字典内置标识"
                        }],
                        value: false
                    },
                    type: "dict-switch",
                    dict: dict({
                        data: [
                            {value: true, label: "系统内置"},
                            {value: false, label: "业务字典"}
                        ]
                    }),
                }

使用fs-dict-switch时,即使开启了搜索条件,fs-dict-switch不会在搜索条件中带上对应的查询条件,使用dict-select/dict-radio组件时,查询条件可以带上并正常查询

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.