当前位置: 首页 > news >正文

ShenNiusModularity项目源码学习(29:ShenNius.Admin.Mvc项目分析-14)

  商品列表页面用于搜索、新建、维护及删除商城系统模块的商品信息,包括商品名称、图片、规格、详情等数据。商品列表页面的后台控制器类GoodsController位于ShenNius.Admin.Mvc项目的Areas\Shop\Controllers内,页面文件位于同项目的Areas\Shop\Views\Goods内,其中Index.cshtml页面为主页面,Add.cshtml、Modify.cshtml页面分别用于新建和编辑商品信息,三个页面中调用的后台WebApi接口位于ShenNius.Admin.API项目的GoodsController,主要用到GetListPages(分页获取商品列表)、Add、Deletes、Modify、SoftDelete、AddSpec、UploadImg等函数。
在这里插入图片描述

  商品列表主页面的布局如下所示,最上方为搜索栏,中间为工具栏,下方显示商品数据表格。
在这里插入图片描述
  页面加载后,通过apiUtil.render函数调用WebApi函数GetListPages分页获取商品数据,搜索框的检索事件其实也是触发表格的重载操作(table.reload),并将检索条件传递给后台获取检索结果。专门设置商品名称列,点击该列可以触发编辑事件,点击商品图片列会另弹出页面查看大图。
在这里插入图片描述

  定义事件处理函数处理工具栏按钮点击事件及数据行中的按钮点击事件,添加和编辑按钮调用的分别是Add.cshtml、Modify.cshtml页面,而删除按钮的话,点击工具栏中的删除按钮,处理逻辑是将选中的记录软删除,后续还能在回收站中恢复,而点击数据行中的删除按钮,则是直接删除数据库中的数据,无法恢复。点击数据表格中的商品状态,会调用WebApi接口GoodsController.ChangeState函数更改商品状态。
在这里插入图片描述

  添加商品用的Add.cshtml页面,该页面使用开源富文本编辑器tinymce维护商品详情(设置调用WebApi接口GoodsController.UploadImg函数上传图片)。页面加载时调用common.js内的BindParentCategory函数,调用WebApi接口CategoryController.GetAllParentCategory获取多级商品分类列表填充下拉列表,通过在名称前加空格+"|–"表达分类;点击上传图片按钮,在imgUpload.js文件中调用ShenNius.Admin.API项目的GoodsController.MultipleUploadImg函数上传多个商品关联的图片文件,同时基于layui的上传组件进行图片预览;点击商品规格处的单规格和多规格单选框,会出现不同的编辑界面,专门定义goodsSpec.js文件处理多规格时的操作事件。点击确认保存按钮,基于JQuery和Layui获取待保存数据,然后调用WebApi接口Add函数新建商品。
在这里插入图片描述
在这里插入图片描述

  编辑商品用的Modify.cshtml页面,该页面与Add.cshtml类似,区别在于编辑页面需要根据当前商品数据初始化页面内容,同时点击确认保存按钮,基于JQuery和Layui获取待更新数据,然后调用WebApi接口Modify函数更新商品信息。
在这里插入图片描述

参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity

http://www.xdnf.cn/news/621433.html

相关文章:

  • React整合【ECharts】教程001:柱状图的构建和基本设置
  • 【Python 中 lambda、map、filter 和 reduce】详细功能介绍及用法总结
  • Java三十而立:Java 的30岁与Spring AI 1.0正式发布
  • STC89C52RC/LE52RC
  • 嵌入式Openharmony系统应用开发与实现方法
  • (已开源-CVPR2024) RadarDistill---NuScenes数据集Radar检测第一名
  • TypeScript 和 JavaScript核心关系及区别
  • 最大似然估计(Maximum Likelihood Estimation, MLE)详解
  • 机器学习课程设计报告 —— 基于二分类的岩石与金属识别模型
  • PHP SPL 自动加载机制详解与实战应用:spl_autoload_register 使用指南
  • BLIP论文笔记
  • 使用 CodeBuddy 实现视频合并工具:解决本地视频处理痛点
  • 【RabbitMQ运维】集群搭建
  • 【强化学习】#7 基于表格型方法的规划和学习
  • 力扣 283.移动零 (双指针)
  • SQL语句的执行流程
  • C++搜索二叉树
  • Java语言快速排序和堆排序(优先队列)介绍,附demo代码
  • C# 深入理解类(析构函数和this关键字)
  • 【RK3588新品】嵌入式人工智能实验箱EDU-AIoT ELF 2发布
  • 【萤火工场GD32VW553-IOT开发板】ADC电压的LabVIEW采集
  • 【漫话机器学习系列】275.GrabCut 算法——用于去除图片背景(Grabcut For Removing Image Backgrounds)
  • SpringBoot项目配置文件、yml配置文件
  • 大厂缓存架构方案-Caffeine+Redis双层缓存架构
  • 织梦dedecms登录后台出现Safe Alert Request Error step 2
  • 企业级单元测试流程
  • BLIP3-o:一系列完全开源的统一多模态模型——架构、训练与数据集
  • 深入理解 JVM 运行时数据区
  • 让MySQL更快:EXPLAIN语句详尽解析
  • 如何设计Agent的记忆系统