Browse Source

Pull request #3750: 无JIRA 同步一下代码

Merge in VISUAL/fineui from ~DAILER/fineui:master to master

* commit '039ec622c4ca2a01b1e1b59ec10363bd0b27ff4f':
  BI-150695 fix: 兼容当前元素无parentNode的情况
  BI-150395 fix: safari下拉搜索框定位不对
  BI-149124 refactor: 粘贴限制变成参数
  BI-147036 feat: 更新图标
  REPORT-122294 lodash 低版本安全漏洞
  BI-143733 fix: 深色预览样式调整
  REPORT-121158 fix:控制台报错
  BI-148724 fix: 树控件查看已选项连发两次请求
  Uploaded files
  REPORT-121158 fix:控制台报错
  BI-148724 fix: 树控件查看已选项连发两次请求
  Uploaded files
  BI-148103 fix: 6.0.18过滤组件下拉框异常变小
  BI-138636 fix: 文本、动态时间支持按钮组
  BI-138679 feat: 更新图标
  BI-147341 fix:contentFormat未考虑时区问题
  FDL-10490 fix:demo平台权限管理api列表显示空白
  BI-146095 fix:文本下拉加载最后一次缓存时cachegroup新增了
master
Dailer-刘荣歆 5 months ago
parent
commit
cdec6f784f
  1. 18
      packages/fineui/bi.lessconfig.json
  2. 5
      packages/fineui/src/base/tree/customtree.js
  3. 2
      packages/fineui/src/core/5.inject.js
  4. 11
      packages/fineui/src/core/constant/writable.var.js
  5. 2
      packages/fineui/src/core/controller/controller.layer.js
  6. 7
      packages/fineui/src/core/func/alias.js
  7. 9
      packages/fineui/src/core/utils/dom.js
  8. 8
      packages/fineui/src/less/base/colorchooser/colorpicker/button.colorshow.less
  9. 12
      packages/fineui/src/less/base/single/button/button.less
  10. 2
      packages/fineui/src/less/base/single/button/switch.less
  11. 6
      packages/fineui/src/less/core/utils/common.less
  12. 6
      packages/fineui/src/less/core/utils/list-item.less
  13. 3
      packages/fineui/src/less/lib/colors.less
  14. 4
      packages/fineui/src/less/lib/theme.less
  15. 6
      packages/fineui/src/widget/multiselect/loader.js
  16. 5
      packages/fineui/src/widget/multiselect/multiselect.insert.combo.js
  17. 7
      packages/fineui/src/widget/multiselect/multiselect.insert.combo.nobar.js
  18. 7
      packages/fineui/src/widget/multiselect/trigger/searcher.multiselect.insert.js
  19. 2
      packages/fineui/src/widget/multiselect/trigger/switcher.checkselected.js
  20. 9
      packages/fineui/src/widget/multiselectlist/multiselectlist.insert.js
  21. 9
      packages/fineui/src/widget/multiselectlist/multiselectlist.insert.nobar.js
  22. 15
      packages/fineui/src/widget/multitree/multi.tree.combo.js
  23. 2
      packages/fineui/typescript/core/var.ts
  24. 1
      scripts/lib/fui.export.txt

18
packages/fineui/bi.lessconfig.json

@ -23,8 +23,8 @@
"@color-bi-border-disabled-radio": "rgba(9, 30, 64, 0.19)",
"@color-bi-background-active-radio-content": "#2C60DB",
"@color-bi-border-checkbox-theme-dark": "rgba(255, 255, 255, 0.37)",
"@color-bi-border-hover-active-radio-theme-dark": "#3869DC",
"@color-bi-background-active-radio-content-theme-dark": "#3869DC",
"@color-bi-border-hover-active-radio-theme-dark": "#497FFD",
"@color-bi-background-active-radio-content-theme-dark": "#497FFD",
"@color-bi-background-disabled-active-radio-content": "#FFFFFF",
"@color-bi-background-disabled-active-radio-content-theme-dark": "#606479",
"@color-bi-background-disabled-active-checkbox-content": "#FFFFFF",
@ -48,5 +48,17 @@
"@font-solid-bottom": "e905",
"@font-solid-right": "e906",
"@font-dot": "e762",
"@font-down-triangle": "e70b"
"@font-down-triangle": "e70b",
"@color-bi-background-theme-dark": "#1B1F31",
"@border-color-light-line-theme-dark": "#30364B",
"@color-bi-background-header-background": "#F8F9FC",
"@color-bi-background-header-background-theme-dark": "#1B1F31",
"@color-bi-background-common-light-button": "#E5EFFF",
"@color-bi-background-common-light-button-theme-dark": "#0F2A62",
"@color-bi-text-highlight-theme-dark": "#497FFD",
"@color-bi-border-active-chooser-show-button-theme-dark": "#497FFD",
"@color-bi-background-button-theme-dark": "#497FFD",
"@color-bi-background-active-switch-theme-dark": "#497FFD",
"@color-bi-text-common-light-button-theme-dark": "#497FFD",
"@color-bi-text-common-light-button": "#2c60db"
}

5
packages/fineui/src/base/tree/customtree.js

@ -16,7 +16,8 @@ import {
isNull,
createWidget,
Controller,
Events
Events,
omit,
} from "@/core";
/**
@ -104,7 +105,7 @@ export class CustomTree extends Widget {
return itemsCreator.apply(this, args);
};
isNull(item.popup.el) && (item.popup.el = deepClone(this.options.el));
isNull(item.popup.el) && (item.popup.el = deepClone(omit(this.options.el, "node")));
item.popup.el.node = item.el;
items.push(item);
} else {

2
packages/fineui/src/core/5.inject.js

@ -427,7 +427,7 @@ const providers = {},
export const Providers = {
getProvider: (type, config) => {
if (!providerInjection[type]) {
_global.console && console.error(`provider: [${type}] undefined`);
_global.console && console.warn(`provider: [${type}] undefined`);
}
runConfigFunction(type);
if (!providers[type]) {

11
packages/fineui/src/core/constant/writable.var.js

@ -138,4 +138,13 @@ addDescriptor("DOM", {
addDescriptor("nextTick", {
get: () => nextTick,
set: setNextTick,
});
});
export let PasteLimit = 2000;
export const setPasteLimit = v => {
PasteLimit = v;
};
addDescriptor("PasteLimit", {
get: () => PasteLimit,
set: setPasteLimit,
});

2
packages/fineui/src/core/controller/controller.layer.js

@ -108,7 +108,7 @@ export class LayerController extends Controller {
height: offset.height || (w.outerHeight() - (offset.top || 0) - (offset.bottom || 0)) || "",
};
const { top, left, scaleY, scaleX } = getPositionRelativeContainingBlockRect(layout.element[0]);
const { top, left, scaleY, scaleX } = getPositionRelativeContainingBlockRect(layout.element[0].parentNode || layout.element[0]);
css.top = (css.top - top) / scaleY;
css.left = (css.left - left) / scaleX;

7
packages/fineui/src/core/func/alias.js

@ -9,7 +9,8 @@ import {
leftPad,
parseDateTime,
values,
isArray
isArray,
getDate
} from "../2.base";
import { replaceAll } from "./string";
import { getFullDayName, getMonthName, getTimezone } from "./date";
@ -680,10 +681,10 @@ export const contentFormat = function(cv, fmt) {
if (!(cv instanceof Date)) {
if (typeof cv === "number") {
// 毫秒数类型
cv = new Date(cv);
cv = getDate(cv);
} else {
// 字符串类型转化为date类型
cv = new Date(Date.parse((`${cv}`).replace(/-|\./g, "/")));
cv = getDate(Date.parse((`${cv}`).replace(/-|\./g, "/")));
}
}
if (!isInvalidDate(cv) && !isNull(cv)) {

9
packages/fineui/src/core/utils/dom.js

@ -744,10 +744,11 @@ export function getComboPosition(combo, popup, extraWidth, extraHeight, needAdap
if (needAdaptHeight === true && popup.resetHeight) {
const comboRect = combo.element[0].getBoundingClientRect();
const relativeOffset = positionRelativeElement ? positionRelativeElement.getBoundingClientRect().top : 0;
if (position.top < comboRect.top) {
popup.resetHeight(Math.min(viewportBounds.height - position.top - relativeOffset, comboRect.top, maxHeight));
} else if (position.top >= comboRect.bottom) {
popup.resetHeight(Math.min(viewportBounds.height - position.top - relativeOffset, viewportBounds.height - comboRect.bottom, maxHeight));
const positionTop = position.top + relativeOffset;
if (positionTop < comboRect.top) {
popup.resetHeight(Math.min(viewportBounds.height - positionTop, comboRect.top, maxHeight));
} else if (positionTop >= comboRect.bottom) {
popup.resetHeight(Math.min(viewportBounds.height - positionTop, viewportBounds.height - comboRect.bottom, maxHeight));
}
}

8
packages/fineui/src/less/base/colorchooser/colorpicker/button.colorshow.less

@ -4,4 +4,12 @@
&.active, &:active {
border-color: @color-bi-border-active-chooser-show-button;
}
}
.bi-theme-dark {
.bi-color-chooser-show-button {
&.active, &:active {
border-color: @color-bi-border-active-chooser-show-button-theme-dark;
}
}
}

12
packages/fineui/src/less/base/single/button/button.less

@ -578,6 +578,8 @@ body .bi-button, #body .bi-button {
.bi-theme-dark, #body .bi-theme-dark {
.bi-button {
background-color: @color-bi-background-button-theme-dark;
&.button-ignore {
background-color: @color-bi-background-ignore-button-theme-dark;
@ -643,5 +645,15 @@ body .bi-button, #body .bi-button {
}
}
}
&.button-common {
&.light {
background-color: @color-bi-background-common-light-button-theme-dark;
&, & .b-font:before {
color: @color-bi-text-common-light-button-theme-dark;
}
}
}
}
}

2
packages/fineui/src/less/base/single/button/switch.less

@ -25,7 +25,7 @@
.bi-switch {
background-color: @color-bi-background-switch-theme-dark;
&.active {
background-color: @color-bi-background-active-switch;
background-color: @color-bi-background-active-switch-theme-dark;
}
}
}

6
packages/fineui/src/less/core/utils/common.less

@ -104,6 +104,10 @@
.bi-theme-dark {
.bi-focus-shadow {
&:focus, &:hover {
border-color: @color-bi-border-highlight-theme-dark;
}
&.disabled {
&:hover {
border-color: @border-color-line-theme-dark;
@ -142,7 +146,7 @@
.bi-theme-dark {
.bi-background {
background-color: @color-bi-background-normal-theme-dark;
background-color: @color-bi-background-theme-dark;
color: @color-bi-text-background-theme-dark;
& .bi-input {

6
packages/fineui/src/less/core/utils/list-item.less

@ -161,12 +161,12 @@
}
}
&.active, &:active {
color: @color-bi-text-highlight;
color: @color-bi-text-highlight-theme-dark;
& .bi-input {
color: @color-bi-text-highlight;
color: @color-bi-text-highlight-theme-dark;
}
& .bi-textarea {
color: @color-bi-text-highlight;
color: @color-bi-text-highlight-theme-dark;
}
}
&.disabled {

3
packages/fineui/src/less/lib/colors.less

@ -38,6 +38,7 @@
//基本提亮颜色
@color-bi-text-highlight: @font-color-highlight;
@color-bi-text-highlight-theme-dark: @font-color-highlight;
//标红色
@color-bi-text-redmark: @font-color-warning;
@ -50,6 +51,7 @@
@color-bi-background-normal: @background-color-normal;
//深色主题普通背景
@color-bi-background-normal-theme-dark: @background-color-normal-theme-dark;
@color-bi-background-theme-dark: @background-color-normal-theme-dark;
//默认背景
@color-bi-background-default: @background-color-default;
//深色主题默认背景
@ -132,5 +134,6 @@
@color-bi-border-warning: @border-color-warning;
//边框提亮
@color-bi-border-highlight: @border-color-highlight;
@color-bi-border-highlight-theme-dark: @border-color-highlight;
@color-bi-alert-warning: @color-bi-orange;

4
packages/fineui/src/less/lib/theme.less

@ -62,6 +62,7 @@
// 按钮
@color-bi-border-button: @color-bi-border-highlight;
@color-bi-background-button: @color-bi-background-highlight;
@color-bi-background-button-theme-dark: @color-bi-background-highlight;
@color-bi-text-common-button: @color-bi-text;
@color-bi-text-common-clear-button: @color-bi-text-highlight;
@color-bi-text-common-plain-button: @color-bi-text-highlight;
@ -75,7 +76,9 @@
@color-bi-background-hover-common-ghost-button-theme-dark: @color-bi-background-default;
@color-bi-text-common-light-button: @color-bi-text-highlight;
@color-bi-text-common-light-button-theme-dark: @color-bi-text-highlight;
@color-bi-background-common-light-button: @color-bi-background-light-blue;
@color-bi-background-common-light-button-theme-dark: @color-bi-background-light-blue;
@color-bi-background-hover-common-light-button: @color-bi-background-light-blue;
@color-bi-background-active-common-light-button: @color-bi-background-light-blue;
@color-bi-background-hover-plain-button: @color-black-5;
@ -202,6 +205,7 @@
@color-bi-border-picker-button-mask: @color-bi-border-black;
@color-bi-border-picker-button-mask-theme-dark: @color-bi-border-default;
@color-bi-border-active-chooser-show-button: @color-bi-border-highlight;
@color-bi-border-active-chooser-show-button-theme-dark: @color-bi-border-highlight;
@color-bi-background-disabled-chooser-popup-mask: @color-bi-background-default;
// combo
@color-bi-border-hover-combo: @color-bi-border-highlight;

6
packages/fineui/src/widget/multiselect/loader.js

@ -74,7 +74,7 @@ export class MultiSelectInnerLoader extends Widget {
this.next.setLoaded();
const items = this._composeItems(this.cachItems.slice(0, 100));
this.cachItems = this.cachItems.slice(100);
this.addItems(items);
this.addItems(items, true);
return;
}
@ -183,7 +183,7 @@ export class MultiSelectInnerLoader extends Widget {
]);
}
addItems(items) {
addItems(items, isFromCache = false) {
this.count += items.length;
if (isObject(this.next)) {
if (this.hasNext()) {
@ -194,7 +194,7 @@ export class MultiSelectInnerLoader extends Widget {
}
}
// cacheGroup渲染的是全量的,如果这次加载更多add的items是从cacheItems里面拿的,那不用再add了
if (this.cachItems.length > 0) {
if (isFromCache) {
this.button_group.addItems(...arguments);
return;
}

5
packages/fineui/src/widget/multiselect/multiselect.insert.combo.js

@ -33,6 +33,7 @@ import {
SIZE_CONSANTS,
BlankSplitChar,
size,
PasteLimit,
} from "@/core";
import { Single, Combo, Msg } from "@/base";
import { MultiSelectBar, TriggerIconButton } from "@/case";
@ -146,8 +147,8 @@ export class MultiSelectInsertCombo extends Single {
}
self._dataChange = true;
});
this.getSearcher().getKeywordsLength() > 2000 &&
Msg.alert(i18nText("BI-Basic_Prompt"), i18nText("BI-Basic_Too_Much_Value_Get_Two_Thousand"));
this.getSearcher().getKeywordsLength() > PasteLimit &&
Msg.alert(i18nText("BI-Basic_Prompt"), i18nText("BI-Basic_Paste_Too_Much_Value", PasteLimit));
}
self.fireEvent(MultiSelectInsertCombo.EVENT_SEARCHING);
});

7
packages/fineui/src/widget/multiselect/multiselect.insert.combo.nobar.js

@ -29,7 +29,8 @@ import {
pushDistinct,
Selection,
BlankSplitChar,
SIZE_CONSANTS
SIZE_CONSANTS,
PasteLimit,
} from "@/core";
import { Single, Combo, Msg } from "@/base";
import { MultiSelectInsertTrigger } from "./multiselect.insert.trigger";
@ -134,8 +135,8 @@ export class MultiSelectInsertNoBarCombo extends Single {
}
self._dataChange = true;
});
this.getSearcher().getKeywordsLength() > 2000 &&
Msg.alert(i18nText("BI-Basic_Prompt"), i18nText("BI-Basic_Too_Much_Value_Get_Two_Thousand"));
this.getSearcher().getKeywordsLength() > PasteLimit &&
Msg.alert(i18nText("BI-Basic_Prompt"), i18nText("BI-Basic_Paste_Too_Much_Value", PasteLimit));
}
});

7
packages/fineui/src/widget/multiselect/trigger/searcher.multiselect.insert.js

@ -10,7 +10,8 @@ import {
size,
each,
BlankSplitChar,
Selection
Selection,
PasteLimit,
} from "@/core";
import { MultiSelectEditor } from "./editor.multiselect";
import { Searcher } from "@/base";
@ -123,7 +124,7 @@ export class MultiSelectInsertSearcher extends Widget {
const keywords = this.getKeywords();
self.fireEvent(
MultiSelectInsertSearcher.EVENT_SEARCHING,
keywords.length > 2000 ? keywords.slice(0, 2000).concat([BlankSplitChar]) : keywords.slice(0, 2000)
keywords.length > PasteLimit ? keywords.slice(0, PasteLimit).concat([BlankSplitChar]) : keywords.slice(0, PasteLimit)
);
});
if (isNotNull(o.value)) {
@ -150,7 +151,7 @@ export class MultiSelectInsertSearcher extends Widget {
}
getKeyword() {
let keywords = this.editor.getKeywords().slice(0, 2000);
let keywords = this.editor.getKeywords().slice(0, PasteLimit);
if (keywords[keywords.length - 1] === BlankSplitChar) {
keywords = keywords.slice(0, keywords.length - 1);
}

2
packages/fineui/src/widget/multiselect/trigger/switcher.checkselected.js

@ -10,6 +10,7 @@ export class MultiSelectCheckSelectedSwitcher extends Widget {
static EVENT_TRIGGER_CHANGE = "EVENT_TRIGGER_CHANGE";
static EVENT_BEFORE_POPUPVIEW = "EVENT_BEFORE_POPUPVIEW";
static EVENT_AFTER_HIDEVIEW = "EVENT_AFTER_HIDEVIEW";
static EVENT_TRIGGER_COMBO = "EVENT_TRIGGER_COMBO";
_defaultConfig() {
return extend(super._defaultConfig(...arguments), {
@ -48,6 +49,7 @@ export class MultiSelectCheckSelectedSwitcher extends Widget {
itemsCreator: o.itemsCreator,
onClickContinueSelect() {
self.switcher.hideView();
self.fireEvent(MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_COMBO);
},
ref(_ref) {
self.checkPane = _ref;

9
packages/fineui/src/widget/multiselectlist/multiselectlist.insert.js

@ -28,7 +28,8 @@ import {
isNull,
VerticalFillLayout,
SIZE_CONSANTS,
BlankSplitChar
BlankSplitChar,
PasteLimit,
} from "@/core";
import { Single, Searcher, Msg } from "@/base";
import { MultiSelectBar } from "@/case";
@ -200,10 +201,10 @@ export class MultiSelectInsertList extends Single {
}
self.fireEvent(MultiSelectInsertList.EVENT_CHANGE);
});
self._getKeywordsLength() > 2000 &&
self._getKeywordsLength() > PasteLimit &&
Msg.alert(
i18nText("BI-Basic_Prompt"),
i18nText("BI-Basic_Too_Much_Value_Get_Two_Thousand")
i18nText("BI-Basic_Paste_Too_Much_Value", PasteLimit)
);
}
},
@ -266,7 +267,7 @@ export class MultiSelectInsertList extends Single {
keywords = keywords.concat([BlankSplitChar]);
}
return keywords.length > 2000 ? keywords.slice(0, 2000).concat([BlankSplitChar]) : keywords.slice(0, 2000);
return keywords.length > PasteLimit ? keywords.slice(0, PasteLimit).concat([BlankSplitChar]) : keywords.slice(0, PasteLimit);
}
_getKeywordsLength() {

9
packages/fineui/src/widget/multiselectlist/multiselectlist.insert.nobar.js

@ -28,7 +28,8 @@ import {
isNull,
VTapeLayout,
BlankSplitChar,
SIZE_CONSANTS
SIZE_CONSANTS,
PasteLimit,
} from "@/core";
import { Single, Searcher, Msg } from "@/base";
import { MultiSelectBar } from "@/case";
@ -201,10 +202,10 @@ export class MultiSelectInsertNoBarList extends Single {
}
self.fireEvent(MultiSelectInsertNoBarList.EVENT_CHANGE);
});
self._getKeywordsLength() > 2000 &&
self._getKeywordsLength() > PasteLimit &&
Msg.alert(
i18nText("BI-Basic_Prompt"),
i18nText("BI-Basic_Too_Much_Value_Get_Two_Thousand")
i18nText("BI-Basic_Paste_Too_Much_Value", PasteLimit)
);
}
},
@ -271,7 +272,7 @@ export class MultiSelectInsertNoBarList extends Single {
keywords = keywords.concat([BlankSplitChar]);
}
return keywords.length > 2000 ? keywords.slice(0, 2000).concat([BlankSplitChar]) : keywords.slice(0, 2000);
return keywords.length > PasteLimit ? keywords.slice(0, PasteLimit).concat([BlankSplitChar]) : keywords.slice(0, PasteLimit);
}
_getKeywordsLength() {

15
packages/fineui/src/widget/multitree/multi.tree.combo.js

@ -182,6 +182,7 @@ export class MultiTreeCombo extends Single {
return self.combo.isViewVisible();
}
let shouldComboPopulate = true;
this.trigger.on(MultiSelectTrigger.EVENT_FOCUS, () => {
self.fireEvent(MultiTreeCombo.EVENT_FOCUS);
});
@ -259,14 +260,14 @@ export class MultiTreeCombo extends Single {
}
self.combo.setValue(self.storeValue);
self.numberCounter.setValue(self.storeValue);
self.populate();
shouldComboPopulate && self.populate();
self.fireEvent(MultiTreeCombo.EVENT_BEFORE_POPUPVIEW);
});
this.combo.on(Combo.EVENT_BEFORE_HIDEVIEW, () => {
if (isSearching()) {
self._stopEditing();
self._dataChange &&
self.fireEvent(MultiTreeCombo.EVENT_CONFIRM);
self.fireEvent(MultiTreeCombo.EVENT_CONFIRM);
} else {
if (isPopupView()) {
self._stopEditing();
@ -275,7 +276,7 @@ export class MultiTreeCombo extends Single {
self.storeValue = { value: {} };
}
self._dataChange &&
self.fireEvent(MultiTreeCombo.EVENT_CONFIRM);
self.fireEvent(MultiTreeCombo.EVENT_CONFIRM);
}
}
clear = false;
@ -316,10 +317,18 @@ export class MultiTreeCombo extends Single {
valueFormatter: o.valueFormatter,
value: { value: o.value || {} },
});
this.numberCounter.on(
MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_COMBO,
() => {
self.populate();
shouldComboPopulate = true;
}
);
this.numberCounter.on(
MultiSelectCheckSelectedSwitcher.EVENT_TRIGGER_CHANGE,
() => {
if (!self.combo.isViewVisible()) {
shouldComboPopulate = false;
self.combo.showView();
}
}

2
packages/fineui/typescript/core/var.ts

@ -130,6 +130,7 @@ export declare const VerticalAlign: {
export declare const StartOfWeek: number;
export declare const BlankSplitChar: string;
export declare const Events: Record<string, string>;
export declare const PasteLimit: number;
type SetFunc = (value: any) => void;
@ -141,3 +142,4 @@ export declare const setBlankSplitChar: SetFunc;
export declare const setPixFormat: SetFunc;
export declare const setToPix: SetFunc;
export declare const setEventBlur: SetFunc;
export declare const setPasteLimit: SetFunc;

1
scripts/lib/fui.export.txt

@ -295,6 +295,7 @@ Pager
Pane
Panel
PartTree
PasteLimit
Plugin
PlusGroupNode
Popover

Loading…
Cancel
Save