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

news2024/11/20 16:34:20

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

多谢

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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

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

从无到有:AI绘画API在插画与游戏设计中的应用

引言 随着人工智能技术的快速发展&#xff0c;AI绘画API已经逐渐成为插画和游戏设计领域的新宠。这些API能够将创意与技术完美结合&#xff0c;帮助设计师快速生成高质量的图像&#xff0c;为插画和游戏产业带来了巨大的变革。 AI绘画API的工作原理 AI绘画API基于深度学习和…

CentOS忘记root密码重置方法

1.开机进入引导界面&#xff0c;按键盘e 2.找到linux16开头的最后一行&#xff0c;添加rd.break&#xff0c;按下Ctrlx进入救援模式 3.执行命令&#xff08;注意空格&#xff09; 1&#xff09;mount -o rw,remount /sysroot 2&#xff09;chroot /sysroot 3&#xff09;pas…

基于模块自定义扩展字段的后端逻辑实现(一)

目录 一&#xff1a;背景介绍 二&#xff1a;实现过程 三&#xff1a;字段标准化 四&#xff1a;数据存储 五&#xff1a;数据扩展 六&#xff1a;表的设计 一&#xff1a;背景介绍 最近要做一个系统&#xff0c;里面涉及一个模块是使用拖拉拽的形式配置模块使用的字段表…

sympy质点模型

文章目录 质点动能和动能势能角动量 质点 粒子&#xff0c;或者说质点&#xff0c;堪称经典物理中的核心模型了&#xff0c;其所具备的重要物理量&#xff0c;包括质量、能量、动量、角动量之类&#xff0c;也早已从经典力学蔓延出去&#xff0c;成为内涵更加深刻的物理概念。…

Linux系统操作——tcping安装与使用

目录 .一、安装 1、安装依赖 tcptraceroute和bc 2、安装tcping 3、赋予tcping执行权限 4、测试 5、tcping返回结果说明 二、使用说明&#xff08;参数&#xff09; 一、安装 1、安装依赖 tcptraceroute和bc 【 CentOS 或 RHEL】 sudo yum install -y tcptraceroute bc…

Open CASCADE学习|创建拓朴

目录 1、创建点gp_Pnt 2、创建向量gp_Vec 3、创建边TopoDS_Edge 4、线网络TopoDS_Wire 5、面TopoDS_Face 6、体TopoDS_Shape OpenCascade中的拓朴实体如下图所示&#xff0c;其中Compound可以包含很多Solid&#xff1b;Solid由Shell包围而成&#xff1b;Shell由相连的Fac…

通信用磷酸铁锂电池做YD/T2344.1招标报告

通信用磷酸铁锂电池做YD/T2344.1标准报告 YD/T 2344.1标准范国&#xff1a; YD/T 2344.1规定了通信用磷酸铁鲤电池组的定义、要求、试验方法、检验规则及标志、包装、运输和贮存本部分适用于电池模块与电池管理系统集成为一体的通信用磷酸铁电池组。 YD/T 2344.1测试要求&…

linux异常情况,排查处理中

登录客户环境后&#xff0c;发现一个奇怪情况如下图&#xff0c;之前也遇到过&#xff0c;直接fuser -ck /backup操作的话&#xff0c;主机将会重启&#xff0c;因数据库运行中&#xff0c;等待停机维护时间&#xff0c;同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…

哪个品牌的超声波清洗机最好?超声波清洗机是如何工作的呢?

作为一个经常佩戴眼镜&#xff0c;却又经常因为眼镜脏了而头疼的人来说&#xff0c;又是对这些智能家居一窍不通的&#xff0c;我曾经非常苦恼于到底如何选购超声波清洗机&#xff0c;经过一番做功课以及实践&#xff0c;我精选出几款适合清洗眼镜超声波清洗机&#xff0c;来以…

004集 try-except 语句应用实例—python基础入门实例

try-except 该语句用来处理异常情况。 try块中包含可能抛出异常的语句&#xff0c;而except块则用来处理异常。如果try块中出现了异常&#xff0c;那么程序将跳过try块中剩余的语句&#xff0c;转而执行except块的语句。 try: 可能产生异常的代码块 except [ (Error1, E…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票创建后端实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

【39 Pandas+Pyecharts | 第七次人口普查数据分析可视化】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 数据预览 &#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 全国各省人口统计三维地图3.2 全国各地区人口数量分布地图3.3 全国人口性别比例3…

Make自动化构建程序工具介绍

Makefile是一种用来自动化构建程序的工具于&#xff0c;主要在UNIX和类UNIX系统上使用。它使用一种简单的语法来定义目标和依赖关系&#xff0c;从而实现自动化构建和管理项目的过程。 一个Makefile由一系列规则组成&#xff0c;每个规则包含一个目标和一组依赖文件。目标是要…

数十位大咖共话AI大模型落地,2024 AI 科技峰会前瞻 | 光锥智能

在ChatGPT带起的AI浪潮中&#xff0c;我们进入了一个科技狂奔的时代。 2023年&#xff0c;风云变幻中&#xff0c;我们见证了中国数百个大模型如雨后春笋般冒出&#xff0c;在多个重要版本的优化下&#xff0c;我们见证了大模型以光速迭代&#xff0c;在参数量、长文本、多模态…

Rancher2部署MySQL无法挂载Longhorn创建的pvc,怎么办?

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 环境描述&#xff1a; rancher版本&#xff1a;v2.5.7 Longhorn版本&#xff1a;v1.1.1 MySQL版本&#xff1a;v5.7.26 问题描述…

基于Spring Boot框架的音乐平台

如今&#xff0c;互联网上的管理系统种类越来越多&#xff0c;人们思考将网站的使用运用到生活的方方面面&#xff0c;所以我联想到的是设计一个音乐平台&#xff0c;由于音乐平台的发展以及业务的提升&#xff0c;对音乐平台管理的要求越来越高&#xff0c;而一个稳定的音乐平…

AI人工智能虚拟现实行业发展分析

AI人工智能和虚拟现实是当今科技领域最受关注和研究的两个领域。这两项技术的迅速发展给各行各业带来了巨大的变革和机遇。在过去的几年里&#xff0c;AI和虚拟现实已经取得了显著的进展&#xff0c;并且有着广阔的发展前景。 AI人工智能作为一种模拟人类智能的技术&#xff0…

C#,数值计算,高斯消元法与列主元消元法的源代码及数据动态可视化

高斯消元法&#xff01; 一、高斯消元法 Gaussian Elimination 高斯消元法&#xff08;或译&#xff1a;高斯消去法&#xff09;&#xff0c;是线性代数中的一个常用算法&#xff0c;常用于求解线性方程组和矩阵的逆。 本程序的运行效果&#xff1a; 1、高斯消元法的动画演示…

成功解决使用git clone下载失败的问题: fatal: 过早的文件结束符(EOF) fatal: index-pack 失败

一.使用 http 可能出现的问题和解决 1.问题描述 ~$ git clone https://github.com/oKermorgant/ecn_baxter_vs.git 正克隆到 ecn_baxter_vs... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (…