蓝云ERP3.0项目开发笔记-------------Day05

2023-11-23 11:50

本文主要是介绍蓝云ERP3.0项目开发笔记-------------Day05,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

采购申请功能完善


一、需求分析
  • 实现下拉表格选择供应商
  • 实现前端商品表格的添加与删除
  • 实现实现选择商品后自动显示出商品的价格及编号
  • 实现根据输入的商品数量计算某类商品的总金额
  • 实现根据用户选择的所有商品及每种商品的采购数量,计算出订单的合计
  • 扩展后台订单管理的保存订单功能,实现业务逻辑
  • 解决双向关联,订单信息转换JSON时出现的StackOverFlowException
二、代码过程
1、创建order_add.html文件,引入 Easyui样式,并编写添加订单商品的数据表格,文件内容如下:

在这里插入图片描述

2、编写order_add.js文件,编写采购订单申请页面的数据表格初始化代码,如下:

在这里插入图片描述

3、以上代码编写完成后效果如下:

在这里插入图片描述

4、动态的将数据表格增加一行,需要修改order_add.js文件,代码实现如下:
  • 为添加商品按钮添加事件绑定如下:

    在这里插入图片描述
    调用的是数据表格的方法:
    参数一:appendRow方法,为数据表格添加一行
    参数二:该行的num和money的 初始值

5、实现表格的可编辑,需要为每一列添加一个editor属性,实现表格的可编辑
  • 添加列属性:eidtor

editor属性的API:
在这里插入图片描述
为order_add.js中的每一列添加该属性:
在这里插入图片描述
完成以上操作后,表格仍然无法编辑,原因是:没有开启某行的可编辑状态

  • datagrid数据表格的,开启某行编辑状态的方法:

开启数据表格关于可编辑的API(传入要编辑行的索引):
在这里插入图片描述
创建一个JS的全局变量,记录当前正在编辑的行:
在这里插入图片描述
在开启编辑之前,关闭上一个正在编辑的行,此时前边定义的记录当前编辑行的变量就有了作用,每次点击添加按钮时,都关闭上一行正在编辑状态的行:
在这里插入图片描述
实现效果如下:
在这里插入图片描述

6、实现表格中的下拉菜单,选择商品
  • 修改orders_add.js文件,为商品列添加editor编辑器,具体代码如下:

在这里插入图片描述
运行结果如下:
在这里插入图片描述

7、为表格中的单元格赋值,选择一个商品后,将其单价与编号显示到表格中
  • 为商品选择下拉列表绑定onSelect事件,当商品被选择后,将其其他相关信息赋值到表格

    下拉列表的onSelect事件的API如下:
    在这里插入图片描述
    当商品被选择时,参数record会接收到选择的对象的所有相关信息

  • 若想为某个字段赋值,首先需要获取其编辑器,获取编辑器代码如下:

    获取字段编辑器的API如下:
    在这里插入图片描述
    封装获取编辑器的方法,因为其有两个参数,一个是行索引,一个是字段名,因为我们都是获取正在编辑行的编辑器,所以封装的获取编辑器的方法不需要传入要编辑的行索引,代码如下:
    在这里插入图片描述
    为商品编号添加字段编辑器,并且设置为不可编辑字段:
    在这里插入图片描述
    为商品选择的下拉菜单添加onSelect事件:
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述

8、根据用户选择的商品,与要采购的个数,计算该商品的金额,并且计算出合计
  • 编写计算金额的方法,并为数量输入框绑定键盘弹起keyup事件,完成用户边输入数量,边计算金额:

    编写计算金额的JS方法:
    在这里插入图片描述
    绑定事件,到表格中价格及数量编辑框中,实现键盘按下即计算金额:
    绑定事件的方法:在这里插入图片描述
    选择商品时,绑定自动计算金额
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  • 添加删除一行的方法,实现删除新创建的商品订单

    编写删除方法的函数:
    在这里插入图片描述
    编写格式化器,在每行最后一列添加删除商品的超链接,页脚除外
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  • 自动计算合计

    实现思路是:获取表格中的所有数据,循环读取获取到的数据的金额money字段,进行求和。
    首先编写一个sum的求合计的方法:
    在这里插入图片描述
    在选择商品的事件中,添加求合计方法:
    在这里插入图片描述
    子键盘按下时,即在绑定事件的方法中,添加计算求合计的方法:
    在这里插入图片描述
    加上以上代码后,仍然不能正确的计算合计,因为编辑状态的行,其所有字段值均为空,若想解决,需要修改计算金额的cal方法如下:
    在这里插入图片描述
    添加最后一行代码的作用是将用户输入的值,赋值给正在编辑行的money列的值
    运行结果如下:
    在这里插入图片描述

9、实现供应商的下拉表格
  • 查看API文档,找到combogrid控件,使用方法类似于数据表格的使用

    首先前端添加form表单,还有input标签如下:
    在这里插入图片描述
    修改JS代码,初始化下拉表格,代码如下:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

10、提交数据到后台
  • 前端代码的实现,主要就是获取每行的数据,然后转换为JSON的字符串格式,之后获取供应商表单的数据,之后为供应商表单的数据添加一个键为json,其值为前边表格中转换为字符串的数据,最后如果提交成功,则清空供应商的选择,以及已添加商品的列表

    在这里插入图片描述

11、后台实现
  • 修改OrdersAction添加json属性,用来接收商品明细的JSON字符串

    在这里插入图片描述

  • 修改Orders实体类,增加订单状态和订单类型的常量定义

    在这里插入图片描述

  • 修改Orders实体类,增加订单明细

    在这里插入图片描述

  • 修改orders.hbm.xml,配置级联更新

    在这里插入图片描述

  • 修改Orderdetail实体类,把ordersuuid替换成Orders,增加明细状态的常量定义

    在这里插入图片描述
    在这里插入图片描述

  • 修改Orderdetail.hbm.xml,删除ordersuuid配置跟Orders的关系

    在这里插入图片描述

  • 修改OrdersAction中的add方法,改成如下代码

    在这里插入图片描述

11、保存订单的业务逻辑
  • 修改OrdersBiz,重写add方法

    在这里插入图片描述

    1. 双向关联引发问题解决
    • 问题描述: 在建立订单和订单明细的双向关联后,订单列表无法正常显示,通过调试控制台信息可以看到,输出json的action报错
      在这里插入图片描述
    • 原因分析

      这是因为fastJson在转换成字符串时反复的循环调用其属性造成的死循环
      -解决方案

      在Orderdetail实体里给orders属性加上注解
      在这里插入图片描述

这篇关于蓝云ERP3.0项目开发笔记-------------Day05的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417737

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta