Browse Source

BI-129591 feat: HexColorChooserPopup 支持配置自动和透明

research/test
dailer 1 year ago
parent
commit
8e67cef3f7
  1. 2
      packages/fineui/src/case/colorchooser/colorchooser.popup.hex.js
  2. 47
      packages/fineui/src/case/colorchooser/colorpicker/editor.colorpicker.hex.js

2
packages/fineui/src/case/colorchooser/colorchooser.popup.hex.js

@ -69,6 +69,8 @@ export class HexColorChooserPopup extends Widget {
: HexColorPickerEditor.xtype, : HexColorPickerEditor.xtype,
value: o.value, value: o.value,
height: o.simple ? 36 : 70, height: o.simple ? 36 : 70,
transparent: o.transparent,
auto: o.auto,
listeners: [ listeners: [
{ {
eventName: ColorPickerEditor.EVENT_CHANGE, eventName: ColorPickerEditor.EVENT_CHANGE,

47
packages/fineui/src/case/colorchooser/colorpicker/editor.colorpicker.hex.js

@ -41,6 +41,8 @@ export class HexColorPickerEditor extends Widget {
props = { props = {
baseCls: "bi-color-picker-editor bi-hex-color-picker-editor", baseCls: "bi-color-picker-editor bi-hex-color-picker-editor",
height: 30, height: 30,
transparent: true,
auto: true,
}; };
render() { render() {
@ -95,23 +97,27 @@ export class HexColorPickerEditor extends Widget {
height: 24, height: 24,
items: [ items: [
{ {
type: ColorChooserShowButton.xtype, el: {
cls: "trans-color-icon", type: ColorChooserShowButton.xtype,
height: 22, cls: "trans-color-icon",
title: i18nText("BI-Transparent_Color"), height: 22,
text: i18nText("BI-Transparent_Color"), title: i18nText("BI-Transparent_Color"),
listeners: [ text: i18nText("BI-Transparent_Color"),
{ invisible: !this.options.transparent,
eventName: ColorChooserShowButton.EVENT_CHANGE, listeners: [
action: () => { {
this.setValue("transparent"); eventName: ColorChooserShowButton.EVENT_CHANGE,
this.fireEvent(ColorPickerEditor.EVENT_CHANGE); action: () => {
}, this.setValue("transparent");
} this.fireEvent(ColorPickerEditor.EVENT_CHANGE);
], },
ref: _ref => { }
this.transparent = _ref; ],
ref: _ref => {
this.transparent = _ref;
},
}, },
rgap: this.options.auto ? 5 : 0,
}, },
{ {
el: { el: {
@ -120,6 +126,7 @@ export class HexColorPickerEditor extends Widget {
height: 22, height: 22,
title: i18nText("BI-Basic_Auto"), title: i18nText("BI-Basic_Auto"),
text: i18nText("BI-Basic_Auto"), text: i18nText("BI-Basic_Auto"),
invisible: !this.options.auto,
listeners: [ listeners: [
{ {
eventName: ColorChooserShowButton.EVENT_CHANGE, eventName: ColorChooserShowButton.EVENT_CHANGE,
@ -133,7 +140,7 @@ export class HexColorPickerEditor extends Widget {
this.none = _ref; this.none = _ref;
}, },
}, },
lgap: 10, lgap: this.options.transparent ? 5 : 0,
} }
], ],
}, },
@ -176,6 +183,9 @@ export class HexColorPickerEditor extends Widget {
{ {
eventName: "EVENT_CHANGE", eventName: "EVENT_CHANGE",
action: () => { action: () => {
if (isEmptyString(this.hexEditor.getValue())) {
return;
}
this._checkHexEditor(); this._checkHexEditor();
if ( if (
checker(this.storeValue.r) && checker(this.storeValue.r) &&
@ -261,9 +271,6 @@ export class HexColorPickerEditor extends Widget {
} }
_checkHexEditor() { _checkHexEditor() {
if (isEmptyString(this.hexEditor.getValue())) {
this.hexEditor.setValue("000000");
}
const json = DOM.rgb2json(DOM.hex2rgb(`#${this.hexEditor.getValue()}`)); const json = DOM.rgb2json(DOM.hex2rgb(`#${this.hexEditor.getValue()}`));
this.storeValue = { this.storeValue = {
r: json.r || 0, r: json.r || 0,

Loading…
Cancel
Save