sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
56 lines (49 loc) • 1.24 kB
JSX
/**
* Created by Tw93 on 2019-12-07.
* 滑动输入组件
*/
import React from "react";
export default (SliderComponent, NumberComponent) => p => {
const style = p.invalid
? { borderColor: "#ff4d4f", boxShadow: "0 0 0 2px rgba(255,77,79,.2)" }
: {};
const { max, min, step } = p.schema;
let setting = {};
if (max || max === 0) {
setting = { max };
}
if (min || min === 0) {
setting = { ...setting, min };
}
if (step) {
setting = { ...setting, step };
}
const onChange = value => {
p.onChange(p.name, value);
};
return (
<div className="fr-slider">
<SliderComponent
style={{ flexGrow: 1, marginRight: 12 }}
{...setting}
onChange={onChange}
value={typeof p.value === "number" ? p.value : min || 0}
disabled={p.disabled || p.readOnly}
/>
{p.readOnly ? (
<span style={{ width: "90px" }}>
{p.value === (undefined || "") ? "-" : p.value}
</span>
) : (
<NumberComponent
{...p.options}
{...setting}
style={{ width: "90px", ...style }}
value={p.value}
disabled={p.disabled}
onChange={onChange}
/>
)}
</div>
);
};