天天看点

WTM框架开发前后端分离项目总结

作者:易步繁星

近期基于WTM框架开发了一套采购数据分析与预警系统,前端用的是框架Vue模板。

框架上手成本很低,按官网文档快速创建一个项目:

「链接」

WTM框架开发前后端分离项目总结

快速创建Vue+Net6前后分离项目

项目创建完成后,正常情况下用VS打开直接F5即可运行。

WTM的代码生成可以用来解决一些基础数据管理功能,比如供应商基本信息管理、预警规则配置、同步日志、预警接收人配置等增删改查,其它功能主要是定制化开发。

项目需求主要有三大模块:

一、数据抽取与清洗

二、数据查询与分析

三、数据预警与消息提醒

数据抽取和消息发送使用了WtmJob来处理,注意Wtm的Job需要放在Web层,我之前放在ViewModel层怎么都跑不起来,看了源码后才知道是从反射中获取当前启动目录的程序集。

其它模块我比较喜欢面向接口开发,基本都是一个接口(IXxxxxService、一个或多个实现,然后添加到IOC容器,在Controller中注入即可使用。

关于前后端的配置

appsettings.json

IsQuickDebug:是否为开发模式,在部署到生产时一定要关掉,否则影响权限管理

/ClientApp/.../config/index.ts是前端的配置文件

development:默认为true,如果要在本地调试权限管理,必须关掉

开发过程中遇到的问题总结

问题1:Mac环境下F5运行报错:

ERR_OSSL_EVP_UNSUPPORTED

Error: error:0308010C:digital envelope routines::unsupported

解决方法:修改package.json,添加 NODE_ENV=development NODE_OPTIONS=--openssl-legacy-provider,如下图

WTM框架开发前后端分离项目总结

问题2:自定义接口方法名导致前端请求报无权限访问

如下图所示,HttpGet中我一开始是用的别名,前端调用接口用的也是别名,在开发模式下一切正常请求。发布到生产后,在菜单编辑-》添加动作-》角色管理-》分配权限后产生的地址是以真实方法名为主,导致我所有请求接口都是无权限访问。。。

解决办法:修改所有Controller中的接口名称,去掉Async后缀、HttpGet中使用[action]

WTM框架开发前后端分离项目总结

以上就是在使用WTM框架时遇到的问题及解决方法,经过2周的开发,系统顺利开发完成并上线,来看下效果图:

WTM框架开发前后端分离项目总结
WTM框架开发前后端分离项目总结

下钻

WTM框架开发前后端分离项目总结

下钻

WTM框架开发前后端分离项目总结

系统分四层进行数据展现:

第一层:数据总览

第二层:按维度分析:类型、方式、部门、供应商等

第三层:项目列表

第四层:项目详情

系统亮点与价值

1、实现了数据层层下钻

2、实现供应商关系图谱

3、每月发送采购分析报告给业务部门,提示采购风险

--------------

关于杭州易步数字科技:

使用最新、最稳定的技术,为客户提供专业的软件定制化开发和服务。

专注一件事,做好每件事!

WTM框架开发前后端分离项目总结

联系我,获取更多解决方案

继续阅读