function ItemLabel()

in src/ui/editor/complex/AForm.tsx [17:44]


function ItemLabel(props: { uispec?: M3UISpec, schema: MFieldSchema, labelWidth?: number, morph: MORPH }): JSX.Element {
  // label自动加冒号功能 uispec.comma
  let label = props.schema.label;
  if (props.uispec?.comma) {
    // @ts-ignore trimEnd支持正则的,但lodash的声明写得不对
    label = _.trimEnd(label, new RegExp("::" + props.uispec.comma)) + props.uispec.comma;
  }

  // 必填label加星号
  const star = (props.schema.required && props.morph === "editor") ? <span style={{ color: "red" }}>*</span> : undefined;

  if (!props.schema.label) {
    return <></>;
  }

  let popoverDesc = undefined;
  if (props.schema.popoverDesc) {
    popoverDesc = <Popover key=":popoverDesc" content={props.schema.popoverDesc}>
      <QuestionCircleTwoTone style={{ marginLeft: 5 }} />
    </Popover>
  }

  if (props.labelWidth) {
    return <span className="ItemLabel" style={{ display: "inline-block", width: props.labelWidth + 20 }}>{star}{label}{popoverDesc}</span>;
  } else {
    return <div className="ItemLabel" key={"字段标题:" + props.schema.name}>{star}{label}{popoverDesc}</div>;
  }
}