Browse Source

Merge pull request #276093 in DEC/fineui from feature/x to bugfix/11.0

* commit '3fe3b3d8e9ca6660ecfaaadd1c27f452e2a60a7e':
  BI-148103 fix: 6.0.18过滤组件下拉框异常变小
  BI-138636 fix: 文本、动态时间支持按钮组
  无JIRA 节点的宽度要随内容撑起来
  REPORT-119215 fix: 统一使用clientWidth和clientHeight,父页面代理掉子应用的body的clientHeight和clientWidth到父应用的body上
  REPORT-119215 fix: 统一使用clientWidth和clientHeight,父页面代理掉子应用的body的clientHeight和clientWidth到父应用的body上
  REPORT-119215 fix: 统一获取宽高的方法
  BI-138679 feat: 更新图标
  BI-147341 fix:contentFormat未考虑时区问题
  BI-142937 fix: 更新字体文件
  FDL-10490 fix:demo平台权限管理api列表显示空白
  无JIRA super调用修复
  BI-143992 fix: 【6.0.17集成】FDL生成的ETL表,右键鼠标悬浮在灰化的来源、原始名上,提示不对
  无JIRA fix: pane的内存泄漏
  BI-146095 fix:文本下拉加载最后一次缓存时cachegroup新增了
  KERNEL-17875 fix: fineui Dep不能回收问题
master^2^2
superman 8 months ago
parent
commit
12899d2e88
  1. BIN
      packages/fineui/dist/font/iconfont.eot
  2. 70
      packages/fineui/dist/font/iconfont.svg
  3. BIN
      packages/fineui/dist/font/iconfont.ttf
  4. BIN
      packages/fineui/dist/font/iconfont.woff
  5. BIN
      packages/fineui/dist/font/iconfont.woff2
  6. 16
      packages/fineui/src/base/1.pane.js
  7. 8
      packages/fineui/src/base/layer/layer.popover.js
  8. 5
      packages/fineui/src/base/tree/customtree.js
  9. 3
      packages/fineui/src/case/button/treeitem/item.icon.treeleaf.js
  10. 100
      packages/fineui/src/case/button/treeitem/item.multilayer.icon.treeleaf.js
  11. 8
      packages/fineui/src/case/button/treeitem/treeitem.js
  12. 16
      packages/fineui/src/core/controller/controller.popover.js
  13. 7
      packages/fineui/src/core/func/alias.js
  14. 9
      packages/fineui/src/core/utils/dom.js
  15. 12
      packages/fineui/src/widget/downlist/item.downlist.js
  16. 6
      packages/fineui/src/widget/downlist/popup.downlist.js
  17. 5
      packages/fineui/src/widget/multilayerdownlist/popup.downlist.js
  18. 6
      packages/fineui/src/widget/multiselect/loader.js
  19. 10
      packages/fineui/webpack/webpack.dev.js

BIN
packages/fineui/dist/font/iconfont.eot vendored

Binary file not shown.

70
packages/fineui/dist/font/iconfont.svg vendored

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1024 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
packages/fineui/dist/font/iconfont.ttf vendored

Binary file not shown.

BIN
packages/fineui/dist/font/iconfont.woff vendored

Binary file not shown.

BIN
packages/fineui/dist/font/iconfont.woff2 vendored

Binary file not shown.

16
packages/fineui/src/base/1.pane.js

@ -111,11 +111,11 @@ export class Pane extends Widget {
}
];
isNotEmptyString(o.loadingText) &&
loadingTipItems.push({
type: Text.xtype,
text: o.loadingText,
tgap: this._getSize(10),
});
loadingTipItems.push({
type: Text.xtype,
text: o.loadingText,
tgap: this._getSize(10),
});
return [
{
@ -158,4 +158,10 @@ export class Pane extends Widget {
this.options.items = items || [];
this.check();
}
destroyed() {
super.destroyed?.();
Layers.remove(`${this.getName()}-loading`);
this._loading?.destroy();
}
}

8
packages/fineui/src/base/layer/layer.popover.js

@ -198,11 +198,11 @@ export class Popover extends Widget {
mounted() {
this.startX = 0;
this.startY = 0;
const bodyDom = getOuterBody();
this.tracker = new MouseMoveTracker(
(deltaX, deltaY) => {
const W = Widget._renderEngine.createElement(bodyDom).width();
const H = Widget._renderEngine.createElement(bodyDom).height();
const el = Widget._renderEngine.createElement(getOuterBody())[0];
const W = el.clientWidth;
const H = el.clientHeight;
this.startX += deltaX;
this.startY += deltaY;
this.element.css({
@ -246,7 +246,7 @@ export class Popover extends Widget {
}
_getSuitableWidth(width) {
return clamp(width, 0, Widget._renderEngine.createElement(getOuterBody()).width());
return clamp(width, 0, Widget._renderEngine.createElement(getOuterBody())[0].clientWidth);
}
_calculateSize() {

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 {

3
packages/fineui/src/case/button/treeitem/item.icon.treeleaf.js

@ -1,6 +1,9 @@
import { CenterAdaptLayout, shortcut, extend, createWidget, LogicFactory, Direction } from "@/core";
import { Icon, Label, BasicButton } from "@/base";
/**
* @deprecated
*/
@shortcut()
export class IconTreeLeafItem extends BasicButton {
static xtype = "bi.icon_tree_leaf_item";

100
packages/fineui/src/case/button/treeitem/item.multilayer.icon.treeleaf.js

@ -1,9 +1,14 @@
import { IconTreeLeafItem } from "./item.icon.treeleaf";
import { Layout, HorizontalAdaptLayout, shortcut, extend, createWidget, Controller, makeArray, count, Events } from "@/core";
import { BasicButton } from "@/base";
import {
shortcut,
extend,
} from "@/core";
import { BasicTreeItem } from "./treeitem";
/**
* @deprecated
*/
@shortcut()
export class MultiLayerIconTreeLeafItem extends BasicButton {
export class MultiLayerIconTreeLeafItem extends BasicTreeItem {
static xtype = "bi.multilayer_icon_tree_leaf_item";
_defaultConfig() {
@ -14,89 +19,8 @@ export class MultiLayerIconTreeLeafItem extends BasicButton {
iconCls: "",
iconHeight: 16,
iconWidth: 16,
showLine: false,
indentWidth: 0
});
}
_init() {
super._init(...arguments);
const o = this.options;
this.item = createWidget({
type: IconTreeLeafItem.xtype,
cls: "bi-list-item-none",
iconCls: o.iconCls,
id: o.id,
pId: o.pId,
isFront: true,
height: o.height,
hgap: o.hgap,
text: o.text,
value: o.value,
py: o.py,
keyword: o.keyword,
iconWidth: o.iconWidth,
iconHeight: o.iconHeight,
});
this.item.on(Controller.EVENT_CHANGE, (...args) => {
const [type] = args;
if (type === Events.CLICK) {
// 本身实现click功能
return;
}
this.fireEvent(Controller.EVENT_CHANGE, ...args);
});
const items = [];
count(0, o.layer, () => {
items.push({
type: Layout.xtype,
width: 15,
height: o.height,
});
});
items.push(this.item);
createWidget({
type: HorizontalAdaptLayout.xtype,
element: this,
columnSize: makeArray(o.layer, 15),
items,
});
}
doRedMark() {
this.item.doRedMark(...arguments);
}
unRedMark() {
this.item.unRedMark(...arguments);
}
doHighLight() {
this.item.doHighLight(...arguments);
}
unHighLight() {
this.item.unHighLight(...arguments);
}
getId() {
return this.options.id;
}
getPId() {
return this.options.pId;
}
doClick() {
super.doClick(...arguments);
this.item.setSelected(this.isSelected());
}
setSelected(v) {
super.setSelected(...arguments);
this.item.setSelected(v);
}
getValue() {
return this.options.value;
}
}

8
packages/fineui/src/case/button/treeitem/treeitem.js

@ -20,6 +20,8 @@ export class BasicTreeItem extends NodeButton {
iconWidth: null,
iconHeight: null,
iconCls: "",
showLine: true,
indentWidth: null,
});
}
@ -37,14 +39,16 @@ export class BasicTreeItem extends NodeButton {
py,
keyword,
iconCls,
showLine,
indentWidth
} = this.options;
const indent = {
el: {
type: Layout.xtype,
height,
width: height,
cls: this.getLineCls(),
width: indentWidth ?? height,
cls: showLine ? this.getLineCls() : "",
},
lgap: layer * SIZE_CONSANTS.LIST_ITEM_HEIGHT / 2, // 偏移公式为每一层的偏移量为节点高度的一半
width: "",

16
packages/fineui/src/core/controller/controller.popover.js

@ -38,7 +38,7 @@ export class PopoverController extends Controller {
type: "bi.popover",
}, context);
this.add(name, popover, options, context);
return this;
}
@ -58,8 +58,8 @@ export class PopoverController extends Controller {
const popover = this.get(name);
popover.show && popover.show();
const render = this.getRender();
const W = Widget._renderEngine.createElement(render).width(),
H = Widget._renderEngine.createElement(render).height();
const el = Widget._renderEngine.createElement(render)[0];
const W = el.clientWidth, H = el.clientHeight;
const w = popover.element.width(), h = popover.element.height();
let left = (W - w) / 2, top = (H - h) / 2;
if (left < 0) {
@ -74,7 +74,7 @@ export class PopoverController extends Controller {
top: `${top}px`,
});
}
return this;
}
@ -87,7 +87,7 @@ export class PopoverController extends Controller {
this.floatContainer[name].invisible();
this.modal && this.floatContainer[name].element.__releaseZIndexMask__(this.zindexMap[name]);
}
return this;
}
@ -135,7 +135,7 @@ export class PopoverController extends Controller {
bottom: 0,
}],
});
return this;
}
@ -167,7 +167,7 @@ export class PopoverController extends Controller {
delete this.zindexMap[name];
delete this.floatContainer[name];
delete this.floatOpened[name];
return this;
}
@ -181,7 +181,7 @@ export class PopoverController extends Controller {
this.floatContainer = {};
this.floatOpened = {};
this.zindexMap = {};
return this;
}

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));
}
}

12
packages/fineui/src/widget/downlist/item.downlist.js

@ -1,5 +1,14 @@
import { Label, Icon, BasicButton } from "@/base";
import { CenterAdaptLayout, shortcut, extend, createWidget, isPlainObject, LogicFactory, Direction, SIZE_CONSANTS } from "@/core";
import {
CenterAdaptLayout,
shortcut,
extend,
createWidget,
isPlainObject,
LogicFactory,
Direction,
SIZE_CONSANTS
} from "@/core";
@shortcut()
export class DownListItem extends BasicButton {
@ -39,7 +48,6 @@ export class DownListItem extends BasicButton {
lgap: o.textLgap,
rgap: o.textRgap,
text: o.text,
title: o.title,
value: o.value,
keyword: o.keyword,
height: o.height,

6
packages/fineui/src/widget/downlist/popup.downlist.js

@ -127,7 +127,7 @@ export class DownListPopup extends Pane {
item.trigger = "hover";
item.isNeedAdjustWidth = false;
item.el = sourceItem.el;
item.el.title = sourceItem.el.title || sourceItem.el.text;
item.el.title = sourceItem.el.title;
item.el.type = "bi.down_list_group_item";
item.el.logic = {
dynamic: true,
@ -151,7 +151,7 @@ export class DownListPopup extends Pane {
this._createChildren(item, sourceItem);
} else {
item.type = sourceItem.type || "bi.down_list_item";
item.title = sourceItem.title || sourceItem.text;
item.title = sourceItem.title;
item.textRgap = 10;
item.isNeedAdjustWidth = false;
item.logic = {
@ -202,7 +202,7 @@ export class DownListPopup extends Pane {
this.singleValues.push(item.value);
item.type = item.type || "bi.down_list_item";
item.extraCls = " child-down-list-item";
item.title = item.title || item.text;
item.title = item.title;
item.textRgap = 10;
item.isNeedAdjustWidth = false;
item.logic = {

5
packages/fineui/src/widget/multilayerdownlist/popup.downlist.js

@ -131,7 +131,7 @@ export class MultiLayerDownListPopup extends Pane {
item.trigger = "hover";
item.isNeedAdjustWidth = false;
item.el = sourceItem.el;
item.el.title = sourceItem.el.title || sourceItem.el.text;
item.el.title = sourceItem.el.title;
item.el.type = DownListGroupItem.xtype;
item.el.logic = {
dynamic: true,
@ -155,7 +155,7 @@ export class MultiLayerDownListPopup extends Pane {
self._createChildren(item, sourceItem);
} else {
item.type = sourceItem.type || DownListItem.xtype;
item.title = sourceItem.title || sourceItem.text;
item.title = sourceItem.title;
item.textRgap = 10;
item.isNeedAdjustWidth = false;
item.logic = {
@ -209,7 +209,6 @@ export class MultiLayerDownListPopup extends Pane {
self.singleValues.push(item.value);
item.type = item.type || DownListItem.xtype;
item.extraCls = " child-down-list-item";
item.title = item.title || item.text;
item.textRgap = 10;
item.isNeedAdjustWidth = false;
item.logic = {

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;
}

10
packages/fineui/webpack/webpack.dev.js

@ -6,7 +6,7 @@ const dirs = require("./dirs");
module.exports = merge(common, {
mode: "development",
devtool: "inline-source-map",
devtool: "eval-source-map",
output: {
path: dirs.DEST,
@ -14,14 +14,14 @@ module.exports = merge(common, {
},
devServer: {
headers: {
"Access-Control-Allow-Origin": "*",
},
port: 9001,
// liveReload: true,
client: {
logging: 'error',
overlay: {
errors: true,
warnings: false,
},
overlay: false,
},
}
});

Loading…
Cancel
Save