feat(P4): precompute移植+app.js sources双向回填+回归1003/1003+验收体积/文件/data.json
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import React from 'react';
|
||||
import './CheckboxCard.css';
|
||||
|
||||
export default function CheckboxCard({ options = [], value = [], cols = 3, onChange }) {
|
||||
function toggle(v) {
|
||||
const arr = value.slice();
|
||||
const idx = arr.indexOf(v);
|
||||
if (idx >= 0) arr.splice(idx, 1); else arr.push(v);
|
||||
onChange && onChange(arr);
|
||||
}
|
||||
return (
|
||||
<div className="aa-checkcard-grid" style={{ gridTemplateColumns: `repeat(${cols}, 1fr)` }}>
|
||||
{options.map((o, i) => (
|
||||
<div
|
||||
key={i}
|
||||
className={'aa-checkcard' + (value.indexOf(o.value) >= 0 ? ' is-selected' : '')}
|
||||
onClick={() => toggle(o.value)}
|
||||
>
|
||||
{o.icon ? <div className="aa-checkcard-icon">{o.icon}</div> : null}
|
||||
<div className="aa-checkcard-body">
|
||||
<div className="aa-checkcard-title">{o.label}</div>
|
||||
{o.desc ? <div className="aa-checkcard-desc">{o.desc}</div> : null}
|
||||
</div>
|
||||
<div className="aa-checkcard-mark" />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user