Giter Club home page Giter Club logo

cq-panda / vue.netcore Goto Github PK

View Code? Open in Web Editor NEW
3.7K 3.7K 1.2K 116.43 MB

(已支持sqlsugar).NetCore、.Net6、Vue2、Vue3、Vite、TypeScript、Element plus+uniapp前后端分离,全自动生成代码;支持移动端(ios/android/h5/微信小程序。http://www.volcore.xyz/

License: MIT License

HTML 9.04% Batchfile 0.01% Vue 26.47% CSS 0.33% C# 55.61% Less 0.44% TSQL 7.22% SCSS 0.19% Dockerfile 0.05% Smalltalk 0.01% JavaScript 0.62% TypeScript 0.01%
axios csharp dapper dotnetcore efcore element-ui elementplus h5 jwt-token vue vue3 vuex

vue.netcore's Introduction

Vue + .NetCore前后端分离,不一样的快速发开框架(提供Vue2/Vue3版本)

框架核心

  • 快速开发(基础功能全部由代码生成器生成)
  • 支持前端、后台自定义业务代码扩展,后台提供了大量常用扩展与通用类
  • 前端、后台提供了近300个扩展方法与属性,开发人员可在此功能上编写扩展自定义业务代码
  • 代码生成(代码生成器可直接生成主/从表前后端业务代码,有30多种属性可在线配置生成的代码)
  • 前端table自动转换key/value
  • 前端表单select/checkbox自动绑定数据源,不需要写任何代码
  • 支持(主从表)一对一前后端代码全自动生成、并支持数据源自动绑定与业务代码扩展,不需要写任何代码
  • 支持一对多从表自定义扩展(不限从表类型与从表数量) , 一对多从表使用扩展可轻松实现
  • 如果能上手框架,可以体会到不用996,更不用掉头发的感觉^_^

框架适用范围

  • 前后端分离项目
  • 编写各种后台restful api接口。后台基础代码由代码生成器完成,在生成的代码上继续编写业务即可
  • 前端表单开发(直接上手看demo即可)
  • 配合app做H5或全h5开发
  • 移动端开发、app、微信小程序(uniapp),见下面介绍
  • 在现有的代码生成器功能上,继续定制开发代码生成器功能,解决重复性工作

框架开发依赖环境

  • 后台:VS2022 、.Net6、EFCor6.0、SqlSugar、JWT、Dapper、SignalR、Quartz.Net、Autofac、SqlServer/MySql/PGSql/Oracle、Redis
  • 前端:VsCode、Vue2/vue3、Vite、TypeScript、vuex、axios、promise、element ui、element plus
  • 2023.10已支持sqlsugar,见后台项目代码Vol.Net.SqlSugar

链接

框架文档

vue3版本: http://v2.volcore.xyz/document/guide
vue3版本: http://www.volcore.xyz
演示地址2: http://120.48.115.252:9990/
App、H5、微信小程序: http://v2.volcore.xyz/app/guide

2023.10增加sqlsugar适配

不是简单的增加sqlsugar而是重写后台,增加框架后台sqlsugar版本并独立维护
sqlsugar: https://www.donet5.com/

2023.05.13增加审批流程分支、条件功能

Home
Home
Home

框架移动端(uniapp)已发布,同样全自动生成代码,扫描小程序二维码即可查看

Home

Home
Home
Home
Home

框架已支持Vue3版本

Home

框架已增加低代码设计器

Home
Home

框架2.0已更新(部分新增功能截图)

增加切换皮肤功能 Home
Home
增加可复用的后台请求参数校验 Home
增加树形菜单与代码生成页面使用 Home
增加文本编辑器直接发布静态页面功能 Home
一对一多从表显示(只需要少量代码就可完成成,其他都由代码生成器生成) Home
表合并显示 (只需要几行代码完成代码生成器生成的页面实现扩展) Home
从图上传图片 (只需要几行代码完成代码生成器生成的页面实现扩展) Home
一对多从表(不限从表数量)扩展 Home
图表 Home

1、只读基础表单

整个只读的基础表单的所有前后端代码,全部由代码生成器生成,代码生成器中几乎不需要配置,并支持并后端业务代码扩展,直接生成代码后,配置菜单权限即可 Home

2、自动绑定下拉框数据表单

整个自动绑定下拉框数据表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,在代码生成器中只需要指定数据源编号,页面加载时会根据编号自动加载数据源并绑定
Home

3、启用图片支持、审核表单

整个启用图片支持、审核表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,审核功能需要在菜单配置权限、代码生成器中勾选启用图片支持 Home

4、高级查询

整个表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,查询字段、类型(下拉框、日期、TextArea等)、所在行与列都由代码生成器完成,不需要写任何代码
Home

5、主从表新建、编辑

主从表新建、编辑所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,新建、编辑从表配置、字段、类型(下拉框、日期、TextArea等)、所在行与列、字段是否只读、标签显示的长度等都由代码生成器完成,不需要写任何代码
Home

6、excel导入

excel导入整个页面都由代码生成器生成,导入的字段、字段是否必填,下载模板也由代码生成器上配置(自己根据实际需要决定是否采用此方法),导入时会验证是否为空与数据的合法性,逻辑校验自己实现扩展方法即可
Home

7、H5开发

Home

8、权限分配

目前只实现了对用户的角色的Action进行权限分配 Home

9、代码生成器

代码生成器提供了20多种可配置的属性,可灵活配置显示、查询、编辑、导入、导出、主从关系等功能点击看代码生成器文档 Home

其他功能。。。。。

框架预览

vue.netcore's People

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  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

vue.netcore's Issues

为菜单增加额外的权限

再一个请教,确实需要为某个菜单增加额外的权限,但是保存的时候会提示验证无法通过。请问下该功能是否还没有实现?另外当增加了新的权限后,前后台(后台应该是在controller标注)分别在什么位置去做控制?

感谢 !

image

上传文件包含的列在数据字典中定义为查询语句

数据字典中定义为查询语句时上传excel会有问题,做了如下修改,你看看怎么改

private static List<CellOptions> GetExportColumnInfo(string tableName, bool temlate = false, bool filterKeyValue = true)
        {
            //&& x.IsDisplay == 1&&x.IsReadDataset==0只导出代码生器中设置为显示并且不是只读的列,可根据具体业务设置导出列
            List<CellOptions> cellOptions = DBServerProvider.DbContext.Set<Sys_TableColumn>()
              .Where(x => x.TableName == tableName && x.IsDisplay == 1 && x.IsReadDataset == 0).Select(c => new CellOptions()
              {
                  ColumnName = c.ColumnName,
                  ColumnCNName = c.ColumnCnName,
                  DropNo = c.DropNo,
                  Requierd = c.IsNull > 0 ? false : true,
                  ColumnWidth = c.ColumnWidth ?? 90
              }).ToList();

            if (temlate) return cellOptions;

            var dicNos = cellOptions.Where(x => !string.IsNullOrEmpty(x.DropNo)).Select(c => c.DropNo);

            if (dicNos.Count() == 0) return cellOptions;

            List<Sys_Dictionary> dictionaries = DictionaryManager.GetDictionaries(dicNos);
            //获取绑定字典数据源下拉框的值
            foreach (string dicNo in dicNos.Distinct())
            {
                Dictionary<string, string> keyValues = null;

                if (dictionaries.Find(p => p.DicNo == dicNo).DbSql != string.Empty)//通过查询语句
                {
                    var data = DBServerProvider.SqlDapper.QueryList<KeyValueDto>(dictionaries
                        .Find(p => p.DicNo == dicNo).DbSql, null).ToList();
                    if (filterKeyValue)
                    {
                        keyValues = data
                            .Where(w => w.key != w.value)? //key==value相同的则不处理
                            .ToDictionary(r => r.key, r => r.value);
                    }
                    else
                    {
                        keyValues = data.ToDictionary(r => r.key, r => r.value);
                    }
                }
                else//通过数据字典
                {
                    var query = dictionaries
                       .Where(x => x.DicNo == dicNo && x.Sys_DictionaryList != null)
                       .Select(s => s.Sys_DictionaryList);
                    //   .FirstOrDefault()
                    //.Where(w => (filterKeyValue && w.DicName != w.DicValue)|| !filterKeyValue) //key==value相同的则不处理
                    //   .ToDictionary(r => r.DicValue, r => r.DicName);
                    if (filterKeyValue)
                    {
                        keyValues = query.FirstOrDefault()?
                         .Where(w => w.DicName != w.DicValue)? //key==value相同的则不处理
                          .ToDictionary(r => r.DicValue, r => r.DicName);
                    }
                    else
                    {
                        keyValues = query.FirstOrDefault()?.ToDictionary(r => r.DicValue, r => r.DicName);
                    }
                }
                foreach (CellOptions options in cellOptions.Where(x => x.DropNo == dicNo))
                {
                    options.KeyValues = keyValues;
                }
            }
            return cellOptions;
        }
    }

  public class KeyValueDto
    {
        public string key { get; set; }
        public string value { get; set; }
    }

表单动态生成情况下字段验证规则不生效

您好,咨询下如下问题

我的表单字段是在modelOpenBefore里动态生成的,modelBody放了一个VolForm,如果表单字段是预先在data中写好的,那么验证的rules都会生效,如果是在方法里动态生成的,验证规则就不生效,如下图,验证规则都是正确的,不允许为空的字段前面就没有星号,怎么解?多谢!
image

优化后的代码生成器del出现错误

使用优化后的代码生成器 del 时 出现Exception has been thrown by the target of an invocation.System.NullReferenceException: Object reference not set to an instance of an object.↵ at VOL.Core.BaseProvider.ServiceBase2.Del(Object[] keys, Boolean delList) in /Users/admin/Documents/Vue.NetCore/Vue.Net2.23/VOL.Core/BaseProvider/ServiceBase.cs:line 896 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)↵ at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)↵ at VOL.Core.Controllers.Basic.BaseController1.InvokeService(String methodName, Object[] parameters) in /Users/admin/Documents/Vue.NetCore/Vue.Net2.23/VOL.Core/Controllers/Basic/BaseController.cs:line 170↵ at VOL.Core.Controllers.Basic.BaseController1.<>c__DisplayClass19_0.<Del>b__0() in /Users/admin/Documents/Vue.NetCore/Vue.Net2.23/VOL.Core/Controllers/Basic/BaseController.cs:line 136↵ at System.Threading.Tasks.Task1.InnerInvoke()↵ at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)↵--- End of stack trace from previous location where exception was thrown ---↵ at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)↵--- End of stack trace from previous location where exception was thrown ---↵ at VOL.Core.Controllers.Basic.BaseController1.Del(Object[] keys) in /Users/admin/Documents/Vue.NetCore/Vue.Net2.23/VOL.Core/Controllers/Basic/BaseController.cs:line 136↵ at VOL.Core.Controllers.Basic.ApiBaseController1.Del(Object[] keys) in /Users/admin/Documents/Vue.NetCore/Vue.Net2.23/VOL.Core/Controllers/Basic/ApiBaseController.cs:line 110↵ at lambda_method(Closure , Object )↵ at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()↵ at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)↵ at System.Threading.Tasks.ValueTask`1.get_Result()↵ at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()↵ at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()↵ at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)↵ at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)↵ at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()↵ at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()↵ at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)↵ at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)↵ at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()↵ at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()↵ at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)↵ at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.InvokeCore(HttpContext context)↵ at VOL.Core.Middleware.ExceptionHandlerMiddleWare.Invoke(HttpContext context) in /Users/admin/Documents/Vue.NetCore/Vue.Net2.23/VOL.Core/Middleware/ExceptionHandlerMiddleWare.cs:line 26

代码生成器表名取值问题

请问代码生成器中填写 表名*:Wechat 实际表名:wx_wechat
生成实体和服务类都是Wechat命名,这样好看些 (不想到处都是wx_wechat命名文件和类)
实体Wechat类属性
[Entity(TableCnName = "公众号信息",TableName = "wx_wechat")]
说明tableName对了得(wx_wechat)
但是实际执行得时候 tablename是Wechat
说明取值并不是我填写得 "实际表名". 而是取值 "表名*"

提问: 应该判断 可选填"实际表名"空时,才取值"表名*" ?

表单校验在某些浏览器下有问题,VolForm.vue下的validate直接返回false;

因为iview中form的validate是异步的Promise,故直接返回的话校验形同虚设了,但在有些浏览器是有效的,Google Chrome 版本 75.0.3770.100(正式版本) (64 位),这个版本就有问题。
原因如下:
image
就是直接返回Promise:
validate() {
return this.$refs["formValidate"].validate(valid => {
if (!valid) {
this.$Message.error("数据验证未通过!");
}

    return valid;
  });
}

但返回Promise的话,所有调用validate的方法都要改了:
rslt.then(res => {
if (res) {
// doSomething 就这样就OK了
}
});
不知道有没有更好的方法

可以为空的数字验证

请教下是否可以实现数字验证非必须输入(输个0也可以,但是对用户不友好),我尝试了自定义验证,但是貌似有些问题,无法返回(见下面第图三),我的输入框全部为动态生成。

另加一个问题,在这个页面如果有很多input,可以在input输入按enter键后自动切换到下一个么,tab键可以但是不方便,用jquery也许能达成目的,看看你这有没有更方便的方式。

感谢 !

image
image
image

Add new row to detail page but can't edit

Hi 你好,

我研究了明细关联表的操作,但是有些关键点可能还是没找到,有两个问题请指点一下

  1. 生成model有的字段会有标注editable,具体应该是哪个地方的设置才能生成model的字段是editable的
  2. 添加明细到表格中但是无法编辑,示例是可以的,关键设置没找到
    image

感谢 !

不支持导航属性

目前是不是不支持导航属性,请问如果我想要在主表编辑界面把导航属性中部分字段显示出来如何实现?

数据库主键设置参数

能否用参数控制,数据库表主键参数,比如MSSQL 支持自增,GUID或其他方式。
多表关联,数据恢复等,自增不是很灵活。

Don't use MySQL 8.0.17

日志批量写入数据时出错: The used command is not allowed with this MySQL version.

感谢作者,太给力了,学习一下

控制绑定数据列的显示颜色及查询框的回车事件

您好,咨询两个问题,

  1. 数据列表中的绑定列都生成为tag,颜色貌似自动产生的,如果希望按照tag值(绑定数据值)来设定颜色,应该在哪里里修改?
  2. 多数页面的searchform第一个都是input输入框,希望这里可以设置回车事件来执行查询按钮的功能,这样譬如用扫描枪扫描后就自动查询了,怎样才能实现?

多谢 !

image

image

绑定下拉框如何支持远程API或如何绑定大数据表

不好意思,又来一个问题。

数据字典的方式绑定下拉框是个非常好用的特性。我的问题是,需要绑定的数据来自某个数据量比较大的表,怎样自动绑定是否能类似于根据数据的字符自动过滤或查询,设想应该是通过API的方式绑定?没有看到相关例子,请教下这个该如何实现

多谢 !

多数据表操作

您好,

我要实现的业务会涉及到多张表的事务性操作,该怎么实现后台服务? 如下写法貌似不正确,主要是服务怎样注入多个repository ? 多谢 !

image

Microsoft.AspNetCore.App 引用指定版本号导致vs2019编译警告CS1701

各项目文件中配置项&lgPackageReference Include="Microsoft.AspNetCore.App" Version="2.1.5"/> 指定了版本号,vs2019编译会触发警告CS1701(不应指定版本号)。

删除版本号,并在VOL.Order项目文件添加&lgPackageReference Include="Microsoft.AspNetCore.App" >引用,解决方案可以编译通过(运行加载2.1.14版),但在vs2017中编译报错NU1107(版本冲突)。

./src/extension/appmanager/App_Expert.js编译不过

执行npm run build 或者 npm run dev 提示 App_Expert.js 报错
ERROR in ./src/extension/appmanager/App_Expert.js Module not found: Error: Can't resolve './App_Expert/App_ExpertModelBody.vue' in 'D:\Project\Vue.NetCore-master\Vol.Vue\src\extension\appmanager' @ ./src/extension/appmanager/App_Expert.js 1:0-56 @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/views/appmanager/App_Expert.vue @ ./src/views/appmanager/App_Expert.vue @ ./src/router/viewGird.js @ ./src/router/index.js @ ./src/main.js @ multi babel-polyfill ./src/main.js

SqlDapper 能否完善一下

Vue.NetCore/Vue.Net/VOL.Core/Dapper/SqlDapper.cs
增加,修改,删除方法都直接return true;没有具体实现

Voltable自定义查询条件不生效

后台也是自定义的api,查询条件格式也是自定义,在loadbefore中修改param,跟踪到voltable的load方法里,发现最后http调用的api带的参数并没有改变,另外这个业务需求我并不需要分页,voltable是否能满足? 多谢!

image

voltable组件此处未看到查询参数变化
image

自定义的api参数需求如下
image

主从表新增后点击保存是否可以自动变更为编辑状态

您好,再咨询一个问题。

我在单表新增数据保存后,窗口会立即变更为编辑状态,然后再次点击保存按钮的时候实际上是更新数据。

在主从表的新增数据保存后,窗口会立即关闭,实际上我要扩展明细窗口的功能,希望它不要立即关闭,而是窗口继续停留便于进行后续操作,但是我希望它也像单表一样自动变更为编辑状态。

没找到从哪里修改,求教 !!

感谢 !
image

Searchform无法展开在IE11

今天测到IE11浏览器,查询按钮右边的downarrow按钮正常点击后应该展开searchform的内容,但是在IE11下点击向下箭头后就直接触发了查询事件,无法展开form,多谢!

image

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.