+
+
+
+
+
+ setAsOf(e.target.value)} />
+
+
+
+
+
+
+ {mode === "score" ? (
+ <>
+ 评分因子与权重
+ {factorRows.map((r, i) => (
+
+
+ {
+ const next = [...factorRows];
+ next[i] = { ...next[i], weight: Number(e.target.value) };
+ setFactorRows(next);
+ }}
+ />
+
+
+ ))}
+
+
+
+ setTopN(Number(e.target.value))} />
+
+
+ >
+ ) : (
+ <>
+ 条件(全部满足才入选)
+ {conds.map((c, i) => {
+ const meta = FIELD_OPTIONS.find((f) => f.value === (c.field === "close" && c.ref ? "close_ma60_ref" : c.field));
+ const isRef = c.field === "close" && c.ref === "ma60";
+ return (
+
+
+
+ {!isRef ? (
+ {
+ const next = [...conds];
+ const raw = e.target.value;
+ const val = c.op === "in"
+ ? raw.split(/[,,]/).map((s) => s.trim()).filter(Boolean)
+ : (meta?.kind === "num" && !c.field.startsWith("static.")
+ ? Number(raw)
+ : raw);
+ next[i] = { ...next[i], value: val as never };
+ setConds(next);
+ }}
+ />
+ ) : null}
+
+
+ );
+ })}
+
+ >
+ )}
+
+
+
+ {running ? "筛选中…" : "执行选股"}
+
+
+ {error ? (
+
+ {error}
+
+ ) : null}
+
+
+ {!result && !running && history === null ?