JBMS www. s o f t 8 6 .cn
文档/Doc
JBMS完整案例:客户管理-编辑客户

须知一:此篇文档内容基于文档:[客户管理-准备工作],编辑客户开发工作是基于已创建好的代码结构上进行局部性的完善即可;;

须知二:此篇文档将以[客户管理]中[编辑客户]为案例,描述说明JBMS中如何在数据列表页面编辑数据;

须知三:编辑实现思路:view.js中监控编辑事件,并编辑数据的ID传递到CustomerCtr.edit,页面控制类中将映射页面同时将ID传递到编辑页面,编辑页面根据ID查询数据还原表单,页面编辑后调用编辑接口完成编辑功能;

目录

--step 1(jbms.api 完善EOperate)

--step 2(jbms.api 编辑客户业务逻辑实现)

--step 3(jbms.web 完成编辑客户功能)

--step 4(开发完成,验证)

step 1(jbms.api EOperate配置编辑客户):

1、基于[完整案例:客户管理][准备工作]中编写的M1_03完善配置:param,将api.domain.customer.Customer数据载体内中新建时必须的业务参数添加到M1_03中;

2、完整代码请下载jbms源码包查看,关键代码如下:代码右上角可点击copy按钮复制当前代码段;

api.cons.EOperate


M1_03(EModel.M1,"3",CURD.UPDATE,"JBMS编辑客户数据","apiAccount,id,customerName"),

step 2(jbms.api 编辑客户业务逻辑实现):

1、api.serviceimpl.customer.CustomerServiceImpl 重写:update(JSONObject jparam)

2、jbms.api中的所有与API层通信的方法都约定参数为:JSONObject,返回数据类型为:HttpResult;

3、完整代码请下载jbms源码包查看,关键代码如下:代码右上角可点击copy按钮复制当前代码段;

api.serviceimpl.customer.CustomerServiceImpl


@Override
public HttpResult update(JSONObject jparam) throws ServiceException {
	//判断客户名称是否存在 
	{
		Customer customer = getByCustomerName(jparam.getString(EText.customerName.text));
		if(getAssertUtil().isNotNull(customer) && customer.getId().longValue() != jparam.getLongValue(EText.id.text)){
			throw new ServiceException(ErrorCode.E0000020);
		}
	}
	
	{
		Customer customer = getByLoginAccount(jparam.getString(EText.loginAccount.text));
		if(getAssertUtil().isNotNull(customer) && customer.getId().longValue() != jparam.getLongValue(EText.id.text)){
			throw new ServiceException(ErrorCode.E0000046);
		}
	}
	
	//持久化数据
	Customer customerUpdate = JSONObject.parseObject(jparam.toJSONString(), Customer.class);
	
	Customer customer = this.customerMapper.selectByPrimaryKey(jparam.getLong(EText.id.text));
	customer.setCustomerEmail(customerUpdate.getCustomerEmail());
	customer.setCustomerName(customerUpdate.getCustomerName());
	customer.setCustomerPhone(customerUpdate.getCustomerPhone());
	customer.setAddrCity(customerUpdate.getAddrCity());
	customer.setAddrCounty(customerUpdate.getAddrCounty());
	customer.setAddrDesc(customerUpdate.getAddrDesc());
	customer.setAddrProvince(customerUpdate.getAddrProvince());
	customer.setContact(customerUpdate.getContact());
	customer.setContactPhone(customerUpdate.getContactPhone());
	customer.setLoginAccount(customerUpdate.getLoginAccount());
	customerMapper.updateByPrimaryKey(customer);
	
	return HttpResult.success(customer);
}

step 3(jbms.web 完成编辑客户功能):

说明:jbms.web 页面组件采用Layui,可访问Layui官网了解如何使用,源码中也有完整的代码供参数;

1、编辑JS:src/main/resources/static/js/edit.js

2、编辑处1:pageJsObj.init(),根据ID查询修改客户对象的数据还原到表单,对应api_config.js配置的 edit:http_model.customer+"get_by_id",

编辑处1:


var param = {
	id:S0000024
};
$.ajax({
type:"get",
	url:api_config.customer.get_by_id,
	data:param,
	dataType: "json",
	contentType: "application/json;charset=utf-8",
	success:function(res){
		if("SUCCESS" === res.code){
			pageJsObj.cform.val("f-form-edit", {
				  "id": res.data.id
				  ,"customerName": res.data.customerName
				  ,"loginAccount": res.data.loginAccount
				  ,"customerPhone": res.data.customerPhone
				  ,"customerEmail": res.data.customerEmail
				  ,"contact": res.data.contact
				  ,"contactPhone": res.data.contactPhone
				  ,"addrDesc": res.data.addrDesc
			});
			
			pageJsObj.clayarea.render({
				elem: '#area-picker',
				data: {
					province: res.data.addrProvince,
					city: res.data.addrCity,
					county: res.data.addrCounty
				 },
				change: function (res) {
				}
			});
		}else{
			layer.msg(res.msg);
		}
	},
	complete:function(XMLHttpRequest,status){
	}
});

3、编辑处2:pageJsObj.addListener(),修改保存提交的服务,对应api_config.js配置的 edit:http_model.customer+"edit",

编辑处2:


$.ajax({
	type:"post",
	url:api_config.customer.edit,

4、编辑处3:pageJsObj.addListener(),修改pageJsObj.cform.verify中表单有效性验证实现;

step 4(开发完成,验证):

1、登录jbms.web URL:http://localhost:8088/jbms.web/ ;

2、使用超级管理员身份登录(无需配置权限等); 使用其它用户,参考文档:系统用户及权限

3、进入系统后,点击顶部模块栏[客户],加载下左侧菜单,菜单路径:客户管理-客户列表 下右主操作区就打开Tab卡页面;

4、点击表格顶部按钮[加载数据] 分页加载客户数据;

5、在数据表格行中点击要编辑的数据右侧操作区按钮[编辑] 在弹出窗口中完成即可;