vue-vben-admin 与.net core 结合实例 【自学与教学 小白教程】---第3节

ue-vben-admin 与.net core 结合实例 这里计划使用.net core 作为后端 。目标:打造好看 易用 开箱即用 的netcore一体化框架。Vue Vben Admin For NetCore 取命 hcrain-vvadmin 我不是前端人员 但有时开发还是要写一些界面。

之前使用layui是时候 狠心升级下了。

只为了好看----------于是  小白教程来了。可以根据 git提交一步步来重现我的实现。

【后面会发布到在线 效果预览   还没发布啊 我要将它改造成我自己想要的。要时间。这里占个坑而已。不回改文章了。】

目录

第3节---简单列表的增删查改

说在前面

1为简单点,先在复制一份原有的角色页相关内容

2创建业务无关的接口

3分析-》了解-》调整列表查询页

1怎样自定义调用后台Api入参(自由定义参数)  怎样获取到附带的表格查询条件

2因为我们返回的结构与table要求不一样,所以要这里指定下 

3删除记录的处理

4增加角色

git提交记录

本系列文章后在还说会什么?


第3节---简单列表的增删查改

说在前面

1  因为vue-vben-admin table  有高度的封装,如果你的是新项目,可以直接按它的接口风格来定义接口,这个会简单点。下面主要说  本来就有接口了,怎样让 vue-vben-admin table 与原有的自定义接口对接。

2 目前主流的前端在框架,都学了后端的搞多层架构 多层定义。对于我来说 太麻烦了。不够直接,开发也会慢,无法做到快速开发。所以专业的不要学本文。

3  我理想是  定义界面---定义json对象-----统一axios的接口(所有界面业务走统一的api接口 不会一个个去定义)  功能就实现了

这里以角色的管理为例。(可以看代码提交  在界面的代码上 我也很可能说明了 列表各参数的使用了)

1为简单点,先在复制一份原有的角色页相关内容

  同时添加路由

2创建业务无关的接口

post接口HcrainPost

get接口HcrainGet

//通用POST查询
export function HcrainPost(url, params: {}) {
  return defHcHttp.post<BasicFetchResultHc<{}>>({ url: url, params });
}

//通用Get
export function HcrainGet(url) {
  return defHcHttp.get<BasicFetchResultHc<{}>>({ url: url});
}
//统一的返回
export interface BasicFetchResultHc<T> {
  data: T[];
  iTotalRecords: number;
  isSuccess: Boolean;
  message: string;
}

3分析-》了解-》调整列表查询页

Table封装有点强大,但我又不想学。所以下面的说法 不一定对,但能用。

1怎样自定义调用后台Api入参(自由定义参数)  怎样获取到附带的表格查询条件

  1利用beforeFetch 处理查询条件

   2api 参数里,定义后端要的数据。如下图。将它默认的  page, pageSize,分页字段 转为我要的  

page:page, length:pageSize,     同时带个查询栏的查询条件  queryKeyValue:postsearch,

注意 handleSearchInfoFn  在页面第一次加载没有触发,所以我使用了beforeFetch

3 注意我这里也使用了通用的post接口HcrainPost,直接定义url和参数,这就是我想要的,不要到处定义(这里后面应该还会改  还是要二次封 让看起来 不要太lose)

api: async ({ page, pageSize,e }) => {//转化api查询入参

      console.log(postsearch);

      const res = await HcrainPost("/api/SysRole/Search",{

        page:page,

        length:pageSize,

        queryKeyValue:postsearch,

        orderByFiled:' id desc'

      });

      /** 一定要返回改格式的数据 */

      return res;

    },

    beforeFetch: (prams) => {//请求之前对参数进行处理,转化为自己要的结构

      postsearch=[];

      for (let pS in prams) {

           if(pS!="page" && pS!="pageSize")postsearch.push({

            fieldName:pS,

            fieldValue:prams[pS]

           });

        }

    },

    //可拿到查询时的值 开启表单后,在请求之前处理搜索条件参数

    handleSearchInfoFn: (prams) => {//这里会有一个问题 第一次加载 不会进来这里

      // postsearch=[];

      // for (let pS in prams) {

      //      postsearch.push({

      //       fieldName:pS,

      //       fieldValue:prams[pS]

      //      });

      //   }

     

    },

2因为我们返回的结构与table要求不一样,所以要这里指定下 

  fetchSetting:{
      listField: 'data',//数据列表字段---返回的数据组字段
      totalField: 'iTotalRecords',  //数据总量字段----返回的数据数据字段
    },

3删除记录的处理

我还是使用通用的get 方法。(后台的删除是get 不要问为什么不是detelte 哈)

function handleDelete(record: Recordable) {
    console.log(record); console.log(1111111);
    const { createMessage } = useMessage();
     HcrainGet('/api/SysRole/Delete?id='+record['id']) 
     .then((a) => {
              console.log(77777777);
             console.log(a);
              createMessage.success(a["message"]);
              reload();
              //emit('success');//这个成列表 有关  会让列表自动查询一次
            })
            .catch(() => {
             // createMessage.error('修改角色状态失败');
            })
            .finally(() => {
              
            });
  }

4增加角色

这里使用是使用通用的接口HcrainPost

区分添加或删除,这里异常不用管,底层Api访问层处理了,但这个是否合适,有待业务增加后分析

async function handleSubmit() {
    try {
      const values = await validate();
      setDrawerProps({ confirmLoading: true });
      const { createMessage } = useMessage();
      var url="/api/SysRole/Create";
       if (unref(isUpdate)) url='/api/SysRole/Update';
       HcrainPost(url,values)
            .then((a) => {
              createMessage.success(a["message"]);
              closeDrawer();
              emit('success');//这个成列表 有关  会让列表自动查询一次
            })
            .catch(() => {
             // createMessage.error('修改角色状态失败');
            })
            .finally(() => {
              
            });

      console.log(values);
      //closeDrawer();
      //emit('success');
    } finally {
      setDrawerProps({ confirmLoading: false });
    }
  }

git提交记录

本次因不了解和工作的原因,前后有点长了。不好意思 

本系列文章后在还说会什么?

1菜单权限的管理的实现

2组织架构的实现

3文件管理的实现

4怎样让二次开发 很简单

5下一节的复杂表单  复杂查询的了解

6.net core代码的整理共享

7目标快速简单的开发框架 只要会复制就可以实现新业务-----

多谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/306414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苹果电脑Markdown文本编辑Typora mac功能介绍

Typora mac是一款跨平台的Markdown编辑器&#xff0c;支持Windows、MacOS和Linux操作系统。它具有实时预览功能&#xff0c;能够自动将Markdown文本转换为漂亮的排版效果&#xff0c;让用户专注于写作内容而不必关心格式调整。Typora Mac版除了支持常见的Markdown语法外&#x…

C#.Net学习笔记——CLR核心机制

一、CLR基本介绍 &#xff08;1&#xff09;C(Common) L&#xff08;Language&#xff09; R&#xff08;Runtime&#xff09; IL的运行环境 &#xff08;2&#xff09;从下图可以看到&#xff0c;我们的计算机会先把我们写的语言&#xff0c;编写成IL语言&#xff0c;再给计…

Linux入门攻坚——12、Linux网络属性配置相关知识2

CentOS 7网络属性配置&#xff1a; 传统命名机制&#xff1a;以太网eth[0,1,2,...]&#xff0c;wlan[0,1,2...] 可预测功能的命名机制&#xff1a; udev支持多种不同的命名方案&#xff1a; Firmware &#xff0c;拓扑结构 在对待设备文件这块&#xff0c;Linux改…

c++在结构(Struct)中使用栈(Stack)

栈实现 1.入栈 2.出栈 3.空栈 4.满栈 5.栈顶 完整栈实现源码: // // myStack.hpp // algo_demo // // Created by Hacker X on 2024/1/9. //#ifndef myStack_hpp #define myStack_

一个Pygame的Hello World示例程序

创建一个标题为Hello World的窗口&#xff0c;窗口中间显示有Pygame的Logo的python代码 import sys import pygamedef main():pygame.init()screen pygame.display.set_mode((800, 400))pygame.display.set_caption("Hello World")logo pygame.image.load("p…

STL标准库与泛型编程(侯捷)笔记6(完结)

STL标准库与泛型编程&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

离线安装jenkins:使用rpm安装包

目录 一、安装jdk1.8二、安装yum软件包三、下载rmp安装包四、安装jenkins的rpm安装包五、创建jenkins文件目录六、设置环境变量七、配置jdk位置八、配置Jenkins配置文件九、启动Jenkins十、访问Jenkins十一、安装Jenkins插件 一、安装jdk1.8 根据博客Linux操作系统安装jdk1.8并…

Linux:linux计算机和windows计算机 之间 共享资源

在前面章节已经介绍过&#xff0c;NFS用于Linux系统之间的文件共享&#xff0c;windows 并不知道 NFS &#xff0c;而是使用 CIFS (Common Internet File System) 的协议机制 来 “共享” 文件。在1991年&#xff0c;Andrew Tridgell 通过逆向工程 实现了 CIFS 协议&#xff0c…

Swift单元测试Quick+Nimble

文章目录 使用QuickNimble1、苹果官方测试框架XCTest的优缺点2、选择QuickNimble的原因&#xff1a;3、QuickNimble使用介绍集成&#xff1a;Quick关键字说明&#xff1a;Nimble中的匹配函数等值判断&#xff1a;使用equal函数是否是同一个对象&#xff1a;使用beIdenticalTo函…

鼠标随动指定区域高亮显示(Excel聚光灯)

实例需求&#xff1a;工作表中数据表实现跟随鼠标选中高亮效果&#xff0c;需要注意如下几个细节需求 数据表为连续区域&#xff0c;但是不一定从A1单元格开始数据表的前两行&#xff08;标题行&#xff09;不使用高亮效果数据表中已经应用了条件格式&#xff0c;高亮显示取消…

stm32的FMC数据访问与突发模式

数据访问 配置外部存储器的宽度为 16 位&#xff0c; FMC 将使用内部的 ADDR[25:1]地址来作为对外部存储器的寻址地址 FMC_A[24:0]&#xff0c;这段描述是在解释在STM32的FMC&#xff08;Flexible Memory Controller&#xff09;中&#xff0c;如何配置外部存储器的宽度为16位…

YOLOv5改进 | 2023主干篇 | EfficientViT替换Backbone(高效的视觉变换网络)

一、本文介绍 本文给大家带来的改进机制是EfficientViT(高效的视觉变换网络),EfficientViT的核心是一种轻量级的多尺度线性注意力模块,能够在只使用硬件高效操作的情况下实现全局感受野和多尺度学习。本文带来是2023年的最新版本的EfficientViT网络结构,论文题目是Effici…

麒麟操作系统缓存rpm包,制作离线yum源

缓存rpm包&#xff0c;以make为例 mkdir -p /data/yum yumdownloader --resolve --destdir/data/yum make制作离线yum包 yum install createrepo -y cd /data/yum createrepo .写yum配置文件/etc/yum.repos.d/local.repo [local-repo] namelocal-repo baseurlfile:///data/…

spring boot 自动扫描Controller、Service、Component原理

项目里面为什么不加上ComponentScan("com.yym.*")注解&#xff0c;也能加载到子目录里面的Controller&#xff0c;Service&#xff0c;Component的bean呢&#xff1f; 启动类没有ComponentScan注解 SpringBootApplication public class BootStrap {public static v…

2023.11.16

1. 数据预处理&#xff0c; 对于质量守恒&#xff0c;加和比都为100% 数据清洗 箱型图 散点图 3σ 进行一次正态性检验 描述性分析&#xff1a;计算平均值、标准差。趋势分析&#xff0c;通过散点图&#xff0c;折线图&#xff0c;观察不同混合比对焦油、水、合成气体的…

数据挖掘在制造业中的预测与优化应用

随着大数据时代的到来&#xff0c;数据挖掘技术在各行各业的应用日益广泛&#xff0c;尤其在制造业中&#xff0c;其对于提升生产效率、降低运营成本、优化供应链管理等方面发挥着不可替代的作用。本文将探讨数据挖掘在制造业中的预测与优化应用&#xff0c;通过深入剖析实际案…

linux(ubuntu)中drontab定时器命令详解

linux&#xff08;ubuntu&#xff09;中drontab定时器命令详解 crontab 是一个用于创建、编辑和管理用户的定时任务的命令&#xff0c;它可以让用户在指定的时间自动执行指定的命令或脚本。 基本语法 -e&#xff1a;编辑用户的 crontab 文件&#xff1b;-l&#xff1a;列出用…

sentinel熔断简单实现

sentinel详细介绍网址 基于qps限流 package mainimport ("fmt"sentinel "github.com/alibaba/sentinel-golang/api""github.com/alibaba/sentinel-golang/core/base""github.com/alibaba/sentinel-golang/core/flow""log"…

CentOS常用命令

CentOS常用命令 1 背景知识1.1 Centos 简介1.2 centos 和ubuntu的区别1.3 安装centos的时候需要注意什么 2 常用命令集锦2.1 文件目录类&#xff1a;2.2 驱动挂载类&#xff1a;2.3 关机命令&#xff1a;2.4 查看系统信息命令&#xff1a;2.5 文本命令2.6 系统管理命令&#xf…

Redis异步写失败后补数逻辑设计

背景 最近各种机房事故频发&#xff0c;所以很多公司都对Redis存储等进行异步多活&#xff0c;我们公司采用的方式是通过客户端双写的方式来实现异地Redis机房的备份&#xff0c;但是当异地机房出现临时网络故障时&#xff0c;就涉及到了如何进行补数的操作&#xff0c;本文就…