前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apriso Modern UI样式系列之三 最强最实用组件Autocomplete

Apriso Modern UI样式系列之三 最强最实用组件Autocomplete

作者头像
李英杰同学
发布2024-03-25 15:14:43
1542
发布2024-03-25 15:14:43
举报
文章被收录于专栏:智能制造社区

概述

在Process Builder界面设计Form view中可以设置下拉框和系统参数实现下拉选择,但功能比较简单,不能支持模糊输入选择,不能支持大数据量场景下的下拉选择。

正如本系列一中介绍的,ModernUI中包含了一些扩展的Javascript、CSS和Operation实体,其中也包含了一些非常有用的窗体组件。

本文介绍其中一个史上最全、最实用的Autocomplete下拉组件基本用法,灵活应用该组件可以大幅提升用户体验、客制化开发效率,该组件包含:

  1. Javascript:ModernUIAutoComplete.js
  2. CSS:ModernUIAutoComplete.css
  3. Operation:Control_ModernUIAutocomplete_GetData:默认的获取下拉列表的Operation

主要功能

  • 支持Json数据、自定义Operation方式和默认Operation方式提供下拉列表数据
  • 支持百万级大数据量以及动态分页下拉(需要配置成List类型系统参数)
  • 支持执行选中、刷新回调函数
  • 支持动态样式设置
  • 支持Enable和Disable设置
  • 支持动态修改数据来源、数据刷新和数据更新

方法说明

1 参数

代码语言:javascript
复制
requestHandler: '',指定获取下拉列表数据Operation
context: null,上下文
data: [],直接指定Json格式下拉数据
limit: 30,分页行数
callbackSelected: '',选中回调函数
callbackRefreshed: '',刷新回调函数
lazyLoading: true,是否懒加载
CSSClass : '',指定CSSClass,内置样式有ModernUISuccess、ModernUIInformation、ModernUIDanger、ModernUIWarning、ModernUIActive
dictionary: '',指定系字典项
inlineInputs: {},初始化inlineInputs
initialDescription: null, 初始值描述
initialKey: null,初始Key
enabled: true,是否启用Enabled
defaultHandler: 'Control_ModernUIAutocomplete_GetData',默认的ajax方法
width: '' // auto, none, or in XXpx or in XX%指定宽度

2 方法

代码语言:javascript
复制
updateData: function(data) {},刷新数据
changeRequestHandler: function(handler) {},修改获取下拉数据的请求
changeSelectedCallback: function(callback) {},修改选中回调函数
changeRefreshedCallback: function(callback) {},修改刷新回调函数
changeCSSClass: function(css) {},修改CSSClasss
changeContext: function(context) {},修改上下文
changeInlineInputs: function(inlineInputs) {},修改InlineInputs
refreshData: function(keyword, autoSelect, key) {},刷新数据
selectFromListByValue: function(keyword) {},根据value在列表中进行选中
selectFromListByKey: function(keyword) {},根据Key在列表中进行选中
selectFirstFromList: function() {},在列表中选中第一个
showAutocomplete: function() {},显示下拉框
hideAutocomplete: function() {},隐藏下拉框
enable: function() {},设置有效启用
disable: function() {},设置无效不启用
getValue: function() {},获取当前值
getText: function() {},获取当前文本

基本用法

▶第一步:编写页面、View:

为各个文本框Textbox分别绑定系统参数。

▶第二步:在主界面的View Operation中引入Javascript文件和css样式文件的引用:

代码语言:javascript
复制
<script> src="[Apriso]/ModernUI/Controls/ModernUIAutoComplete/ModernUIAutoComplete.js"</script>
代码语言:javascript
复制
<link rel="stylesheet" type="text/css" href="[Apriso]/ModernUI/Controls/ModernUIAutoComplete/ModernUIAutoComplete.css" />

▶第三步:引入Ajax Operation:Control_ModernUIAutocomplete_GetData

▶第四步:添加html和Javascript:

代码语言:javascript
复制
<script>
$View.onLoaded(
function(){
//初始化,并获取Handler对象
var handler = $('.fc_AdvancedAutocomplete input').modernUIAutocomplete({
'emptyOnLoad': true,
'context': $Context,
'callbackSelected':function() {
$('.fc_AutocompleteSelectedCallback span').html('Callback: Selected!').css({'color': 'red'});
$('.fc_AutocompleteSelectedCallback span').show();
$('.fc_AutocompleteSelectedCallback span').fadeOut( "slow", function() { });
},
'callbackRefreshed':function() {
$('.fc_AutocompleteRefreshedCallback span').html('Callback: Refreshed!').css({'color': 'red'});
$('.fc_AutocompleteRefreshedCallback span').show();
$('.fc_AutocompleteRefreshedCallback span').fadeOut( "slow", function() { });
}
});
$('.fc_SkillName input').modernUIAutocomplete({
emptyOnLoad: true,
context: $Context
});
$('.fc_CustomerOperation input').modernUIAutocomplete({
'emptyOnLoad': true,
'context': $Context,
'callbackSelected':function() {
$('.fc_AutocompleteSelectedCallback span').html('Callback: Selected!').css({'color': 'red'});
$('.fc_AutocompleteSelectedCallback span').show();
$('.fc_AutocompleteSelectedCallback span').fadeOut( "slow", function() { });
handler[0].resetValue();
handler[0].setDisable();
},
'callbackRefreshed':function() {
$('.fc_AutocompleteRefreshedCallback span').html('Callback: Refreshed!').css({'color': 'red'});
$('.fc_AutocompleteRefreshedCallback span').show();
$('.fc_AutocompleteRefreshedCallback span').fadeOut( "slow", function() { });
},
'requestHandler':function(obj) {
$Context.callOperation('Control_ModernUIAutocomplete_GetData', obj.inputs, function(data){ obj.pushData(data); }, function(data){ obj.pushData(data); } );
}
});
$('.fc_ProductID input').modernUIAutocomplete({
emptyOnLoad: true,
context: $Context,
'callbackSelected':function() {
handler[0].setEnable();
handler[0].refreshData('Session View',true);
var ddd=handler[0].getValue();
},
'requestHandler':function(obj) {
$Context.callOperation('Control_ModernUIAutocomplete_GetData', obj.inputs, function(data){ obj.pushData(data); }, function(data){ obj.pushData(data); } );
}
});
}
);
</script>

▶第五步:运行并进行验证

验证界面运行是否正常,是否支持模糊输入查询,是否支持分页和懒加载等,更多的应用场景和使用方法,可以根据需求和实际情况进行开发和实现。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能制造社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 方法说明
    • 1 参数
      • 2 方法
      • 基本用法
      相关产品与服务
      大数据
      全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档