@whitesev/pops 1.5.9 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.amd.js +70 -33
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +70 -33
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +70 -33
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +70 -33
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +70 -33
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +70 -33
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/panel/index.ts +82 -36
package/package.json
CHANGED
|
@@ -1748,6 +1748,10 @@ export class PopsPanel {
|
|
|
1748
1748
|
".pops-panel-select select"
|
|
1749
1749
|
)!,
|
|
1750
1750
|
},
|
|
1751
|
+
$eleKey: {
|
|
1752
|
+
disable: "__disable__",
|
|
1753
|
+
value: "__value__",
|
|
1754
|
+
},
|
|
1751
1755
|
$data: {
|
|
1752
1756
|
defaultValue: formConfig.getValue(),
|
|
1753
1757
|
},
|
|
@@ -1759,6 +1763,24 @@ export class PopsPanel {
|
|
|
1759
1763
|
this.disable();
|
|
1760
1764
|
}
|
|
1761
1765
|
},
|
|
1766
|
+
/**
|
|
1767
|
+
* 给option元素设置属性
|
|
1768
|
+
* @param $ele
|
|
1769
|
+
* @param key
|
|
1770
|
+
* @param value
|
|
1771
|
+
*/
|
|
1772
|
+
setNodeValue($ele: HTMLElement, key: string, value: any) {
|
|
1773
|
+
Reflect.set($ele, key, value);
|
|
1774
|
+
},
|
|
1775
|
+
/**
|
|
1776
|
+
* 获取option元素上设置的属性
|
|
1777
|
+
* @param $ele
|
|
1778
|
+
* @param value
|
|
1779
|
+
* @param key
|
|
1780
|
+
*/
|
|
1781
|
+
getNodeValue($ele: HTMLElement, key: string) {
|
|
1782
|
+
return Reflect.get($ele, key);
|
|
1783
|
+
},
|
|
1762
1784
|
disable() {
|
|
1763
1785
|
this.$ele.select.setAttribute("disabled", "true");
|
|
1764
1786
|
this.$ele.panelSelect.classList.add("pops-panel-select-disable");
|
|
@@ -1777,9 +1799,18 @@ export class PopsPanel {
|
|
|
1777
1799
|
},
|
|
1778
1800
|
initOption() {
|
|
1779
1801
|
formConfig.data.forEach((dataItem) => {
|
|
1802
|
+
// 初始化默认选中
|
|
1780
1803
|
let optionElement = document.createElement("option");
|
|
1781
|
-
(
|
|
1782
|
-
|
|
1804
|
+
this.setNodeValue(
|
|
1805
|
+
optionElement,
|
|
1806
|
+
this.$eleKey.value,
|
|
1807
|
+
dataItem.value
|
|
1808
|
+
);
|
|
1809
|
+
this.setNodeValue(
|
|
1810
|
+
optionElement,
|
|
1811
|
+
this.$eleKey.disable,
|
|
1812
|
+
dataItem.disable
|
|
1813
|
+
);
|
|
1783
1814
|
if (dataItem.value === this.$data.defaultValue) {
|
|
1784
1815
|
optionElement.setAttribute("selected", "true");
|
|
1785
1816
|
}
|
|
@@ -1787,6 +1818,7 @@ export class PopsPanel {
|
|
|
1787
1818
|
this.$ele.select.appendChild(optionElement);
|
|
1788
1819
|
});
|
|
1789
1820
|
},
|
|
1821
|
+
/** 检测所有option并设置禁用状态 */
|
|
1790
1822
|
setSelectOptionsDisableStatus() {
|
|
1791
1823
|
if (this.$ele.select.options && this.$ele.select.options.length) {
|
|
1792
1824
|
Array.from(this.$ele.select.options).forEach((optionItem) => {
|
|
@@ -1794,18 +1826,33 @@ export class PopsPanel {
|
|
|
1794
1826
|
});
|
|
1795
1827
|
}
|
|
1796
1828
|
},
|
|
1829
|
+
/** 设置禁用状态 */
|
|
1797
1830
|
setOptionDisableStatus(optionElement: HTMLOptionElement) {
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1831
|
+
let disable = false;
|
|
1832
|
+
let optionDisableAttr = this.getNodeValue(
|
|
1833
|
+
optionElement,
|
|
1834
|
+
this.$eleKey.disable
|
|
1835
|
+
);
|
|
1836
|
+
if (optionDisableAttr === "function") {
|
|
1837
|
+
let value = this.getNodeValue(optionElement, this.$eleKey.value);
|
|
1838
|
+
disable = Boolean(optionDisableAttr(value));
|
|
1839
|
+
}
|
|
1840
|
+
if (disable) {
|
|
1841
|
+
optionElement.setAttribute("disabled", "true");
|
|
1842
|
+
} else {
|
|
1843
|
+
optionElement.removeAttribute("disabled");
|
|
1807
1844
|
}
|
|
1808
1845
|
},
|
|
1846
|
+
/** 获取option上的信息 */
|
|
1847
|
+
getSelectOptionInfo($option: HTMLOptionElement) {
|
|
1848
|
+
let optionValue = this.getNodeValue($option, this.$eleKey.value);
|
|
1849
|
+
let optionText = $option.innerText || $option.textContent!;
|
|
1850
|
+
return {
|
|
1851
|
+
value: optionValue,
|
|
1852
|
+
text: optionText,
|
|
1853
|
+
$option: $option,
|
|
1854
|
+
};
|
|
1855
|
+
},
|
|
1809
1856
|
/**
|
|
1810
1857
|
* 监听选择内容改变
|
|
1811
1858
|
*/
|
|
@@ -1813,16 +1860,14 @@ export class PopsPanel {
|
|
|
1813
1860
|
popsDOMUtils.on(this.$ele.select, "change", void 0, (event) => {
|
|
1814
1861
|
this.setSelectOptionsDisableStatus();
|
|
1815
1862
|
if (typeof formConfig.callback === "function") {
|
|
1816
|
-
let isSelectedElement = (event as any).target[
|
|
1863
|
+
let $isSelectedElement = (event as any).target[
|
|
1817
1864
|
(event as any).target.selectedIndex
|
|
1818
1865
|
] as HTMLOptionElement;
|
|
1819
|
-
let
|
|
1820
|
-
let isSelectedText =
|
|
1821
|
-
isSelectedElement.innerText || isSelectedElement.textContent!;
|
|
1866
|
+
let selectInfo = this.getSelectOptionInfo($isSelectedElement);
|
|
1822
1867
|
formConfig.callback(
|
|
1823
1868
|
event as any,
|
|
1824
|
-
|
|
1825
|
-
|
|
1869
|
+
selectInfo.value,
|
|
1870
|
+
selectInfo.text
|
|
1826
1871
|
);
|
|
1827
1872
|
}
|
|
1828
1873
|
});
|
|
@@ -1899,6 +1944,24 @@ export class PopsPanel {
|
|
|
1899
1944
|
this.disable();
|
|
1900
1945
|
}
|
|
1901
1946
|
},
|
|
1947
|
+
/**
|
|
1948
|
+
* 给option元素设置属性
|
|
1949
|
+
* @param $ele
|
|
1950
|
+
* @param key
|
|
1951
|
+
* @param value
|
|
1952
|
+
*/
|
|
1953
|
+
setNodeValue($ele: HTMLElement, key: string, value: any) {
|
|
1954
|
+
Reflect.set($ele, key, value);
|
|
1955
|
+
},
|
|
1956
|
+
/**
|
|
1957
|
+
* 获取option元素上设置的属性
|
|
1958
|
+
* @param $ele
|
|
1959
|
+
* @param value
|
|
1960
|
+
* @param key
|
|
1961
|
+
*/
|
|
1962
|
+
getNodeValue($ele: HTMLElement, key: string) {
|
|
1963
|
+
return Reflect.get($ele, key);
|
|
1964
|
+
},
|
|
1902
1965
|
/** 禁用 */
|
|
1903
1966
|
disable() {
|
|
1904
1967
|
this.$ele.select.setAttribute("disabled", "true");
|
|
@@ -1933,31 +1996,14 @@ export class PopsPanel {
|
|
|
1933
1996
|
this.$eleKey.disable,
|
|
1934
1997
|
dataItem.disable
|
|
1935
1998
|
);
|
|
1936
|
-
|
|
1999
|
+
|
|
2000
|
+
if (this.$data.defaultValue.includes(dataItem.value)) {
|
|
1937
2001
|
optionElement.setAttribute("selected", "true");
|
|
1938
2002
|
}
|
|
1939
2003
|
optionElement.innerText = dataItem.text;
|
|
1940
2004
|
this.$ele.select.appendChild(optionElement);
|
|
1941
2005
|
});
|
|
1942
2006
|
},
|
|
1943
|
-
/**
|
|
1944
|
-
* 给option元素设置属性
|
|
1945
|
-
* @param $ele
|
|
1946
|
-
* @param key
|
|
1947
|
-
* @param value
|
|
1948
|
-
*/
|
|
1949
|
-
setNodeValue($ele: HTMLElement, key: string, value: any) {
|
|
1950
|
-
Reflect.set($ele, key, value);
|
|
1951
|
-
},
|
|
1952
|
-
/**
|
|
1953
|
-
* 获取option元素上设置的属性
|
|
1954
|
-
* @param $ele
|
|
1955
|
-
* @param value
|
|
1956
|
-
* @param key
|
|
1957
|
-
*/
|
|
1958
|
-
getNodeValue($ele: HTMLElement, key: string) {
|
|
1959
|
-
return Reflect.get($ele, key);
|
|
1960
|
-
},
|
|
1961
2007
|
/** 检测所有option并设置禁用状态 */
|
|
1962
2008
|
setSelectOptionsDisableStatus() {
|
|
1963
2009
|
if (this.$ele.select.options && this.$ele.select.options.length) {
|