新系统(Windows 10 2021 LTSC)
一步一个坑,真他妈潇洒。
jnpf工程结构
jnpf-netcore
后台源代码
jnpf-web
管理后台前端
jnpf-app
移动前端代码,基于uni-app
jnpf-datareport
数据报表后端
jnpf-web-datareport
数据报表前端
jnpf-web-datascreen
数据可视化大屏前端
jnpf-file-previewe
文档本地预览
jnpf-resource
静态资源文件,包括代码生成模板、图片资源
jnpf-database
数据库脚本
jnpf-resource目录说明
├── BiVisualPath # 大屏设计
├── CodeTemp # 代码生成器临时目录
├── DataBackupFile # 数据备份
├── DocumentFile # 文档
├── DocumentPreview # 文档预览
├── EmailFile # 邮箱附件
├── IMContentFile # IM聊天
├── MPMaterial # 企业微信
├── SystemFile # 系统
├── TemplateCode # 代码生成器模板
│ ├── TemplateCode6 # 功能表单模板
│ ├── TemplateCode7 # 流程表单模板
│ └── TemplateCode8 # 移动表单模板
├── TemplateFile # 其他模板文档
├── TemporaryFile # 临时存放目录
├── UserAvatar # 用户头像
└── WebAnnexFile #
安装数据库并配置后端
MySQL最低支持5.7版本,建议使用新建查询的方式导入初始脚本
● jnpf_init.sql(业务数据库最新初始脚本,含DEMO数据)
● jnpf_init_null.sql(业务数据库最新初始脚本,不含DEMO数据)
● jnpf_tenant.sql(多租户库脚本)
● JNPF-MySQL.sql(多租户创建脚本,无需导入数据库)
● update.sql(针对上一版本的更新脚本)
- 新建数据库:jnpf_enterprise ; 编码为 utf8mb4
- 导入jnpf_init.sql脚本
- 更改 JNPF.NET 工程下 JNPF.API 的 appsettings.json文件的数据库配置、redis链接、本地静态资源目录
- JNPF.API设为启动项目,启动过程
- swagger页面:http://localhost:5000/index.html
- 测试登录:username: admin; password: e10adc3949ba59abbe56e057f20f883e (123456 的md5编码)
各模块端口(开发)
管理后台后端(.net core): localhost:5000
管理后台前端:127.0.0.1:30090
报表后端:http://localhost:30007
报表前端:http://localhost:8200
文件预览后端:http://localhost:30090
数据可视化大屏前端:
需要更改的文件
后端:launchSettings.json
前端:src/utils/define.js
开发时解决跨域问题:不要用IP,用localhost
前端安装运行(npm 真恶心,安装了半天)
# npm 安装淘宝镜像源
npm config set registry https://registry.npm.taobao.org
# 查看
npm config get registry
# 修改src/utils/define.js的接口
npm i
npm run dev
问题:菜单显示不全问题
UPDATE `BASE_MODULE` set F_DeleteMark=NULL
下面是前端的踩坑记录
npm i 下载依赖一直报错:git dep preparation failed等
https://blog.csdn.net/qq_42592823/article/details/121611605
npm i 安装依赖错误:command git --no-replace-objects ls-remote ssh://git@github.com/adobe-webplatform/eve.git
https://www.cnblogs.com/zuiyue_jing/p/13700388.html
https://www.cnblogs.com/zuojiayi/p/15608294.html
github添加密钥:
https://blog.csdn.net/u013778905/article/details/83501204
https://www.cnblogs.com/mingyue5826/p/11141324.html
https://blog.csdn.net/argleary/article/details/100638560
npm 安装express npm ERR! code UNABLE_TO_VERIFY_LEAF_SIGNATURE
https://blog.csdn.net/zc881124/article/details/78280298
安装python 2.7设置环境变量
https://blog.csdn.net/zafkiel_/article/details/104070775
https://blog.csdn.net/qq_41638795/article/details/93075651
安装python 3,cnm的!!!
gyp vs版本不匹配(折腾半天)
https://blog.csdn.net/lxRime/article/details/119377889
https://blog.csdn.net/qq_40414209/article/details/103102383
最恶心的node-gyp,使用node.js 16不行,更改为node.js 14解决。
报表前后端(报表官方就没开发完,坑爹货)
后端需要:1. 加入maven私有库;2. 更改oracle,sql server的jar包版本
前端:1. 更改html目录下的index.html,preview.html的端口地址
报表前端问题:
GET /index.html?id=5204d086d36044eb946410190173f238&token=Bearer%20eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiJhZG1pbiIsIkFjY291bnQiOiJhZG1pbiIsIlVzZXJOYW1lIjoi566h55CG5ZGYIiwiQWRtaW5pc3RyYXRvciI6MSwiVGVuYW50SWQiOiJkZWZhdWx0IiwiVGVuYW50RGJOYW1lIjoiam5wZmVudGVycHJpc2UiLCJpYXQiOjE2NDI0NzIwMTcsIm5iZiI6MTY0MjQ3MjAxNywiZXhwIjoxNjQyNTI2MDE3LCJpc3MiOiJ5aW5tYWlzb2Z0IiwiYXVkIjoieWlubWFpc29mdCJ9.9XbrODwQIgiKZT6wC3hYUmvbNhdWiijQW51RVPcNBNk" Error (404): “Not found”
解决方法:在html中启动项目
报表上传,在后台无法接收文件
参考:https://www.cnblogs.com/yskcoder/p/4718198.html
导入报表后端接口:
http://localhost:30007/import
大屏前后端
安装没问题
文件预览服务
预览服务请求:
Get: Request URL: http://localhost:3000/dev/api/extend/DocumentPreview/127/Preview?previewType=localPreview&n=1642386920
返回:
{
"code": 200,
"msg": "操作成功",
"data": "http://yinmai.tpddns.cn:7772/api/Extend/DocumentPreview/down/项目开发计划1.doc",
"extras": null,
"timestamp": 1642387801990
}
需要修改:appsettings.json的
"JNPF_App": {
"CodeAreasName": "SubDev",
//系统文件路径(末尾必须带斜杆)
"SystemPath": "D:\\gitcode\\jnpfproject\\jnpf-resources\\",
//允许图片类型
"AllowUploadImageType": "jpg,gif,png,bmp,jpeg,tiff,psd,swf,svg,pcx,dxf,wmf,emf,lic,eps,tga",
//允许上传文件类型
"AllowUploadFileType": "jpg,gif,png,bmp,jpeg,doc,docx,ppt,pptx,xls,xlsx,pdf,txt,rar,zip,csv",
"Domain": "http://yinmai.tpddns.cn:7772",
"YOZO": {
"domain": "http://dcsapi.com/",
"domainKey": "57462250284462899305150"
},
//Minio
"BucketName": "jnpfsoftoss",
//文件存储类型(本地:local,MinIo:minio,阿里云:aliyun-oss,腾讯云:tencent-cos)
"FileStoreType": "local",
//App版本
"AppVersion": "3.2.4",
//默认邮箱发件人
"DefaultMailTo": "yinmaisoft@163.com"
}
ASP.NET Core : Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead
public async Task DownloadFile([FromQuery] string encryption)
return new FileStreamResult(new FileStream(filePath, FileMode.Open), “application/octet-stream”) { FileDownloadName = fileDownLoadName };
修改DocumentPreview.cs中的代码:
[HttpGet("down/{fileName}")]
[IgnoreLog]
[AllowAnonymous]
public FileStreamResult FileDown(string fileName)
{
var filePath = FileVariable.DocumentPreviewFilePath + fileName;
var systemFilePath = FileVariable.SystemFilePath + fileName;
if (FileHelper.Exists(filePath))
{
//FileHelper.DownloadFile(filePath, fileName);
return new FileStreamResult(new FileStream(filePath, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
}
else
{
//FileHelper.DownloadFile(systemFilePath, fileName);
return null;
}
}
移动端
uniapp必须实用内置打开,用chrome会出现跨域错误