Online之JS增强-关联修改控件值【从表】

功能说明:在online主从表表单中,当表表单某一控件值改变从的时候关联改变其他控件的值,【以下说明仅限于从表】示例说明:当改变学校字段(school)的时候对应的描述字段(note)跟着改变 ,步骤如下

1.配置form的增强JS:(JS增强定义见online基础篇)输入图片说明代码如下:

  1. a_sub_kua_onlChange(){
  2. return {
  3. school(){
  4. let id = event.row.id
  5. let value = event.value
  6. let targrt = event.target
  7. let columnKey = event.column.key
  8. getAction('/test/jeecgDemo/getNote',{school:value}).then(res=>{
  9. let otherValues = {'note':res}
  10. that.triggleChangeValues(otherValue,id,targrt)
  11. })
  12. }
  13. }
  14. }

2.编写后台代码接收请求输入图片说明代码如下:

  1. @Autowired
  2. private ISysDictService sysDictService;
  3. @GetMapping("/getNote")
  4. public String getNote(@RequestParam(name="school") String school) {
  5. //TODO 业务自定义 此处下拉框的value是字典项的编码需要将其转换成名称
  6. String schoolName = sysDictService.queryDictTextByKey("school", school);
  7. return schoolName+"是一所学校";
  8. }

3.测试:输入图片说明

Summary:配置form表单JS增强 -主子表实现子表的关联change有如下几点需要注意(如1图例子)

  • 方法名规则是:表名+'_onlChange',每张表对应一个一个方法
  • 上述方法会返回一个对象,对象中的属性名和数据库的字段名保持一致,上述1定义表示:当school字段内容改变的时候会触发school方法
  • 每个字段方法内有两个内置参数that和event,that指向当前页面的vue实例对象,event对象包含属性如下表
  • 使用getAction发起请求
  • 使用that.triggleChangeValues(values,id,target)改变其他控件的值,values是一个对象可以配置多个控件的值

event对象描述如下

属性名描述
type当前操作控件的类型
row当前行的数据,通过row.id可以获取当前行的id值
column当前列的配置信息,通过column.key 获取当前字段名称
value当前控件的值
target当前控件所在table的target对象,调用triggleChangeValues用到