Browse Source

JSY-26063 fix: 前端搜索支持配置大小写敏感

research/test
Renzo 2 years ago
parent
commit
bb7905bf0f
  1. 10
      src/core/func/function.js
  2. 3
      typescript/core/func/function.ts

10
src/core/func/function.js

@ -40,11 +40,13 @@ BI._.extend(BI.Func, {
* @param items * @param items
* @param keyword * @param keyword
* @param param 搜索哪个属性 * @param param 搜索哪个属性
* @param opt 额外配置caseSensitive: 大小写敏感
*/ */
getSearchResult: function (items, keyword, param) { getSearchResult: function (items, keyword, param, opt) {
var isArray = BI.isArray(items); var isArray = BI.isArray(items);
items = isArray ? BI.flatten(items) : items; items = isArray ? BI.flatten(items) : items;
param || (param = "text"); param || (param = "text");
opt || (opt = {caseSensitive: false});
if (!BI.isKey(keyword)) { if (!BI.isKey(keyword)) {
return { return {
find: items, find: items,
@ -69,8 +71,10 @@ BI._.extend(BI.Func, {
py = BI.makeFirstPY(text, { py = BI.makeFirstPY(text, {
splitChar: "\u200b" splitChar: "\u200b"
}); });
text = BI.toUpperCase(text); if (!opt.caseSensitive) {
py = BI.toUpperCase(py); text = BI.toUpperCase(text);
py = BI.toUpperCase(py);
}
var pidx; var pidx;
if (text.indexOf(keyword) > -1) { if (text.indexOf(keyword) > -1) {
if (text === keyword) { if (text === keyword) {

3
typescript/core/func/function.ts

@ -13,8 +13,9 @@ export type _function = {
* @param items * @param items
* @param keyword * @param keyword
* @param param * @param param
* @param opt caseSensitive: 大小写敏感
*/ */
getSearchResult: (items: any, keyword: any, param?: string) => { find: any[], match: any[] }; getSearchResult: (items: any, keyword: any, param?: string, opt?: {caseSensitive: boolean}) => { find: any[], match: any[] };
/** /**
* url * url

Loading…
Cancel
Save