Bläddra i källkod

fix:
1.创建派生指标BUG,conditionId默认传null,constraint自定义公式优先,filters长度可以0

WanRuixiang 5 månader sedan
förälder
incheckning
927583f67e

+ 2 - 3
src/app/components/LogicPanel.jsx

@@ -30,15 +30,14 @@ const component = forwardRef(({
   return (
     <Container ref={ref}>
       <CustomFromList
-        min={1}
         name="filters"
         wrapperCol={{span:24}}
         initialValue={value}
         creatorButtonProps={{
           creatorButtonText: t("operation.attributes")
         }}
-        onAfterAdd={(e,s,c)=>{setCount(c)}}
-        onAfterRemove={(e,c)=>{setCount(c)}}
+        onAfterAdd={(e,s,c)=>setCount(c)}
+        onAfterRemove={(e,c)=>setCount(c)}
         itemContainerRender={(doms,{index})=> {
           return <>
             {doms}

+ 11 - 6
src/app/pages/IndexDefine/components/DerivedIndexForm.jsx

@@ -15,15 +15,18 @@ export const DerivedIndexForm = memo(({
   onChange,
   onConditionSave,
   initialValues,
-  onSetField
+  onSetField,
+  onExprChange
 }) => {
   const isCondition = !!initialValues?.ext?.filters;
-  const measures = initialValues?.metricDefineByMeasureParams?.measures[0]
+  const measures = initialValues?.metricDefineByMeasureParams?.measures[0];
+  const initTab = initialValues?.ext?.filters?.length<1 && measures?.constraint ?'customScript':'fieldsConfig';
+
   const t = useI18NPrefix('global');
   const dispatch = useAppDispatch();
   const modals = useAppSelector(selectModals);
   const conditions = useAppSelector(selectConditions);
-  const [tab, setTab] = useState('fieldsConfig');
+  const [tab, setTab] = useState(initTab);
   const [conditionType, setConditionType] = useState(!isCondition);
   const [dateDims, setDateDims] = useState([]);
   const [analyzeDims, setAnalyzeDims] = useState([]);
@@ -37,6 +40,7 @@ export const DerivedIndexForm = memo(({
     }
     if (initialValues?.modelId){
       initialSelector(initialValues?.modelId)
+      onExprChange?.({expr:measures?.constraint})
     }
   }, []);
 
@@ -90,8 +94,9 @@ export const DerivedIndexForm = memo(({
   }, [])
 
 
-  const onEditorChange = (txt)=>{
-    editorRef.current = txt;
+  const onEditorChange = (expr)=>{
+    editorRef.current = expr;
+    onExprChange?.({expr})
   }
 
   const onSaveCondition = (tab)=>{
@@ -150,7 +155,7 @@ export const DerivedIndexForm = memo(({
                   {
                     label: t("operation.customScript"),
                     key: 'customScript',
-                    children: <CodeEditor value={measures?.constraint} onEditorChange={onEditorChange} width="100%" height="180"/>,
+                    children: <CodeEditor ref={editorRef} value={measures?.constraint} onEditorChange={onEditorChange} width="100%" height="180"/>,
                   }
                 ],
                 onChange: (key) => {

+ 2 - 2
src/app/pages/IndexDefine/components/IndexCreator.jsx

@@ -131,6 +131,7 @@ const component = forwardRef(({
       id:initialValues?.id || null,
       domainId:initialValues?.domainId,
       ...val,
+      conditionId:val?.conditionId || null,
       metricDefineByMetricParams:compositeRef.current,
       measureExpr:compositeRef.current||""
     })
@@ -183,7 +184,6 @@ const component = forwardRef(({
           <ProFormRadio.Group
             name="type"
             label={t("formItem.metricType")}
-            disabled={initialValues.id}
             rules={[{ required: true }]}
             valueEnum={INDEX_TYPE}
             fieldProps={{
@@ -246,7 +246,7 @@ const component = forwardRef(({
                 case FORM_TYPE.ATOMIC.value:
                   return <AtomicIndexForm initialValues={initialValues} onChange={onFieldChange} onExprChange={expr=>compositeRef.current=expr}/>
                 case FORM_TYPE.DERIVED.value:
-                  return <DerivedIndexForm initialValues={initialValues} onSetField={onSetFields} onChange={onFieldChange} onConditionSave={onConditionSave}/>
+                  return <DerivedIndexForm initialValues={initialValues} onSetField={onSetFields} onExprChange={expr=>compositeRef.current=expr} onChange={onFieldChange} onConditionSave={onConditionSave}/>
                 case FORM_TYPE.COMPOSITE.value:
                   return <CompositeIndexForm initialValues={initialValues} onChange={expr=>compositeRef.current=expr}/>
                 default : return null

+ 2 - 1
src/app/pages/IndexDefine/index.jsx

@@ -42,6 +42,7 @@ import useI18NPrefix from "../../hooks/useI18NPrefix";
 // TODO
 //  1.指标SQK创建AS中文,
 //  2.创建指标退出时SQL字段配置重置,
+//  3.
 export const IndexDefine = () => {
   const t = useI18NPrefix('global');
   const dispatch = useAppDispatch();
@@ -261,7 +262,7 @@ export const IndexDefine = () => {
             {
               agg:formIndexObj?.operations,
               bizName:formIndexObj.bizName,
-              constraint:bizCondition,
+              constraint:measureExpr.expr||bizCondition,
             }
           ],
           expr:formIndexObj.expr,