链接

后台API文档
http://localhost:9991/index.html#/swagger
VOL框架学习(一)从零开始搭建项目
https://blog.csdn.net/qq_38769403/article/details/120532582
VOL框架学习(二)使用代码生成器生成菜单和页面
https://blog.csdn.net/qq_38769403/article/details/120646367
Vol.vue前后端发布笔记
https://blog.csdn.net/weixin_43952332/article/details/125025088
ASP.NET VUE快速开发框架VolCore集成fastreport报表示例
https://www.bilibili.com/s/video/BV1K34y1e7dv

代码生成器
http://v2.volcore.xyz/document/coder

遇到的坑

Cannot read properties of null (reading ‘pickAlgorithm‘)

解决方案:清除缓存npm cache clear --force之后再重新安装依赖npm install

日志批量写入数据时出错:Access denied for user ‘chujiao’@‘123.119.234.162’ (using password: YES)

解决方案,确认数据库连接字符串可用,且用户权限配置正确。

增加链接

到网站外部的链接:

window.open("https://github.com/cq-panda/Vue.NetCore");

可以使用window.open方法,这个方法可以带第二个参数,_blank, _self, 分别是新开窗口或者是在本窗口打开。

网站内部链接,则是打开一个tab,

  1. 在Index,vue中,可以加到links中
{ text: '工单', path: '/formSubmit?id=0431a578-bfc9-407f-b95e-321c350f10cb', id: -2, query: { id: "0431a578-bfc9-407f-b95e-321c350f10cb" }},

注意,如果是低码页面,需要加query参数
2. 在页面的Button中,可以用tabs的open方法

      this.$tabs.open({
        text: '提交新工单',
        path: '/formSubmit',
        query: { id: "0431a578-bfc9-407f-b95e-321c350f10cb" },
      });

注意,如果有参数(低码页面),需要增加query字段

增加API接口

在VOL.WebApi\Controllers\Douyin\Partial\DaiGuanController.cs下增加接口方法即可

[HttpPost, Route("Add2"), AllowAnonymous]
public ActionResult Add2([FromBody] SaveModel saveModel)
{
    return base.Add(saveModel);
}

常用的属性为:
● AllowAnonymous
● FixedToken

需要在方法内部实现数据检查以及数据保存等处理。

在API接口中操作数据库

在VOL.WebApi\Controllers\Douyin\Partial\Hour24RecordController.cs中增加方法,即可增加一个API接口。

[HttpGet, Route("GetMainPageIndex")]
[AllowAnonymous]
public ActionResult GetIndex()
{
    string sql= $"SELECT b.Accont, c.Record, a.Video, a.BoFang, a.DianZan, a.PingLun FROM (select COUNT(ID) AS Accont FROM DaRen) AS b, (SELECT COUNT(ID) AS Record FROM DaiGuan) AS c, (SELECT COUNT(ID) AS Video, max(BoFang+0) AS BoFang, max(DianZan+0) AS DianZan, max(PingLun+0) AS PingLun from Hour24Record) AS a;";
    var re = DBServerProvider.SqlDapper.QueryFirst<MainPageIndex>(sql, null);
    
    string jsonstr = JsonConvert.SerializeObject(re);
    //{"Accont":51,"Record":44196,"Video":928,"BoFang":4265,"DianZan":144,"PingLun":19}
    return Content(jsonstr);
}

在API接口中新增记录

有的时候是在API接口中新增表记录的,会发现有些字段明明已经赋值了,就是不能随着新建而存到数据库中,而其它的值是可以的,也没有错误返回。

原因:
VOL中的Add接口的默认实现中,如果一个字段没有可编辑属性,就不能通过新增接口将值存入到数据库,即使有值,也会将该字段删除,因而就不能保存

解决:
在代码编辑器中,配置该字段的编辑选项,生成代码,上传重新运行,即可。

修改GridView默认排序

在代码编辑器的“排序字段”中填写需要排序字段的英文名称,生成VUE代码,上传即可

二次开发代码添加位置:

如果要增加新的页面

  1. 在“src\views\douyin\farhill.douyin\”目录下增加新的VUE文件、
  2. 在“src\router\viewGird.js”中增加对应的文件路由
  3. 在后台增加对应的菜单

如果要在GridView页面上增加页面显示内容

  1. 如果未涉及公用的组件,在对应的扩展文件“src\extension\douyin\farhill.douyin\xxxx.js”中直接写代码
  2. 如果内容可以在多个页面公用,在“src\extension\douyin\farhill.douyin\”下增加组件VUE文件,并在js文件中引用

Swagger

直接在swagger上测试带验证的接口

  1. 获取tocken
    登录前台网站,打开开发者工具,寻找任何一个xhr请求,例如
    在 http://127.0.0.1:9991/api/user/login 中获取请求的tocken
  2. 再swagger中附加验证码
    点击swagger右上方Authorize,输入上述tocken,这时每个API旁的锁图标变成关闭状态,
  3. 在Swagger上测试
    可以在下方的任何需要身份认证的api上直接进行测试。不用开Postman了。

Swagger 上server地址不正确的问题

在修改了后台的port端口号之后,发现在线的Swagger地址并没有改变,
在这里插入图片描述

参考“https://www.cnblogs.com/weihanli/p/servers-in-swagger.html”
端口和地址是转发协议的头部给出的,而Nginx将后台做了一次HTTPS的代理,进行过转发,检查Nginx文件,发现果然,9991是Nginx中配置的转发地址,也需要进行响应的修改。

将Swagger站变成https协议的方法

使用命令certmgr.msc查看下本机部署的SSL证书,如果证书失效或者没证书:

  1. 安装证书的命令
    dotnet dev-certs https
    dotnet dev-certs https --trust

  2. 在VOL.WebApi\Program.cs中,修改为使用https协议:webBuilder.UseKestrel().UseUrls(“https://*:9991”);
    Tips:要注意仅仅是Swagger的网站变成Https协议,后台输出的API依然需要在Nginx中配置才能变成Https协议的。
    这个方法暂时不行,https的端口是443,不是其它的端口

部署

迁移到Https的设计

  1. 后台保持http: 9991不动
  2. 生成容器
  3. 部署到系统9991端口上
  4. 申请新的域名,如a.xxx.com
  5. 在Nginx中将a.xxx.com,反向代理到http: 9991
  6. 前端也迁移到Https,用新域名,如www.xxx.com
  7. 在Nginx中将www.xxx.com/api/,反向代理到http: 9991
  8. 将前端https地址https://www.xxx.com增加到后台配置cors中
  9. 将后台地址a.xxx.com更新到前端文件“Vol.Vue3版本\src\api\http.js”中的“axios.defaults.baseURL”
  10. 重新编译,部署

迁移到Https之后的Nginx配置:(除了转HTTPS,反向代理,还要加解决跨域问题的add_header代码)

server {
    listen 443 ssl;
    server_name mytool.x.top;
    ssl_certificate     /www/server/nginx/ssl/9231249_mytool.x.top.pem;
    ssl_certificate_key /www/server/nginx/ssl/9231249_mytool.x.top.key;

    add_header Access-Control-Allow-Origin *;
    root   /home/www.mytools;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html =404;

    location ^~ /api/
    {
        if ($request_method = 'OPTIONS') {
                add_header Access-Control-Allow-Origin *;
                add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
                return 204;
        }
        proxy_pass http://127.0.0.0:19991;
    }

    access_log  /www/wwwlogs/access.log;
}

server {
    listen 443 ssl;
    server_name m.x.top;
    ssl_certificate     /www/server/nginx/ssl/9235229_m.x.top.pem;
    ssl_certificate_key /www/server/nginx/ssl/9235229_m.x.top.key;

    location / {
        proxy_pass http://127.0.0.0:19991;
    }
}
Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐