Browse Source

fix:
1.数据据编辑提示未选择共同维度。
2.数据集第一次查询没反应。
3.通用维度放开主键。

WanRuixiang 6 months ago
parent
commit
e2dc6b4ea2

+ 1 - 1
src/app/pages/DataSetPage/index.jsx

@@ -64,7 +64,7 @@ export const DataSetPage =()=>{
       period: 'day',
       detectWord: "",
       isInherited: false,
-      groupByDate: groups.length<dimension.length
+      groupByDate: groups.length<dimension?.length
     }
     let dimensionFilters = [];
     (tags||[]).forEach(tag=>{

+ 78 - 64
src/app/pages/IndexDataSet/index.jsx

@@ -67,35 +67,44 @@ export const IndexDataSet = () => {
     , [dataset, temps]
   );
 
+  /** 结果预览面板初始化 */
+  const initFilterPanel=(value)=>{
+    const {dimensionList,metricList} = value;
+    const dimension = (dimensionList||[])
+      // .filter(v=>v?.type!==DIM_TYPE_ENUM.DATETIME)
+      .map(v=>({
+        label:v.description||v.name,
+        value:v.id,
+        bizName:v.bizName,
+        semanticType:v.semanticType,
+        type:TYPE_ENUM.DIMENSION
+      }))
+    const metric = (metricList||[]).map(v=>({
+      label:v.description||v.name,
+      value:v.id,
+      bizName:v.bizName,
+      type:TYPE_ENUM.METRIC
+    }))
+
+    setOption({dimension,metric})
+  }
+
   /** 选中数据集卡片时取数据并渲染WorkFlow */
   const onCardSelect = useCallback((value) => {
     if (value) {
-      // 选中的模型
-      selected.current=value.allModels
       // 缓存点击的数据
       recordRef.current=value
 
-      const {dimensionList,metricList} = value
-      const dimension = (dimensionList||[])
-        // .filter(v=>v?.type!==DIM_TYPE_ENUM.DATETIME)
-        .map(v=>({
-          label:v.description||v.name,
-          value:v.id,
-          bizName:v.bizName,
-          semanticType:v.semanticType,
-          type:TYPE_ENUM.DIMENSION
-        }))
-      const metric = (metricList||[]).map(v=>({
-        label:v.description||v.name,
-        value:v.id,
-        bizName:v.bizName,
-        type:TYPE_ENUM.METRIC
-      }))
-
-      setOption({dimension,metric})
+      initFilterPanel(value)
 
       // 获取模型信息
-      dispatch(getModals({domainId:value.domainId}))
+      dispatch(getModals({
+        domainId:value.domainId,
+        resolve(){
+          // 选中的模型回显
+          selected.current=value.allModels
+        }
+      }))
 
       if (value.id){
         // 获取数据集详情-回显
@@ -119,23 +128,23 @@ export const IndexDataSet = () => {
         })
 
         // 插入关系节点
-        let initEdges=[];
-        modelRelas.map(rel=>{
-          const {fromModelId,toModelId,joinConditions}=rel;
-          const {leftField,rightField} = joinConditions[0];
-          initEdges = [...initEdges,{
-            id:`xy-edge__${fromModelId}.${leftField}-${toModelId}.${rightField}`,
-            style: {strokeWidth: 2, stroke: 'black'},
-            type: 'smoothstep',
-            markerEnd: {
-              type: MarkerType.ArrowClosed,
-              color: 'black',
-            },
-            source: leftField,
-            target: rightField
-          }]
-          updateEdgesState(initEdges);
-        })
+        // let initEdges=[];
+        // modelRelas.map(rel=>{
+        //   const {fromModelId,toModelId,joinConditions}=rel;
+        //   const {leftField,rightField} = joinConditions[0];
+        //   initEdges = [...initEdges,{
+        //     id:`xy-edge__${fromModelId}.${leftField}-${toModelId}.${rightField}`,
+        //     style: {strokeWidth: 2, stroke: 'black'},
+        //     type: 'smoothstep',
+        //     markerEnd: {
+        //       type: MarkerType.ArrowClosed,
+        //       color: 'black',
+        //     },
+        //     source: leftField,
+        //     target: rightField
+        //   }]
+        //   updateEdgesState(initEdges);
+        // })
       }else {
         clear()
       }
@@ -148,6 +157,8 @@ export const IndexDataSet = () => {
 
   /** 选择模型回调*/
   const onChangeModal = useCallback((id) => {
+    // 选中的模型
+    selected.current=[id]
     // 获取模型明细
     dispatch(getModalInfo({
       id,
@@ -205,7 +216,7 @@ export const IndexDataSet = () => {
 
   /** 保存数据集*/
   const onDatasetSave = (update) => {
-    const record = recordRef.current
+    const record = recordRef.current;
     // 模型显示字段
     const displayNodes = getNodesState.filter(node => node.data.checked)
     const dataSetModelConfigs = getNodesState
@@ -237,27 +248,28 @@ export const IndexDataSet = () => {
       return false
     }
     // 模型连接关系
-    const modelRela = getEdgesState.map(edge => {
-      const formModal = getNodesState.find(node => node.id === edge.source);
-      const toModal = getNodesState.find(node => node.id === edge.target);
-      return {
-        domainId: record.domainId,
-        fromModelId: parseInt(formModal.parentId),
-        toModelId: parseInt(toModal.parentId),
-        joinType: "LEFT",
-        joinConditions: [
-          {
-            leftField: edge.source,
-            rightField: edge.target,
-            operator: "IN"
-          }
-        ],
-        createdBy: "admin",
-        updatedBy: "admin",
-        createdAt: "2024-08-13T02:40:17.000+00:00",
-        updatedAt: "2024-08-13T02:40:17.000+00:00"
-      }
-    })
+    // const modelRela = getEdgesState.map(edge => {
+    //   console.log(edge)
+    //   const formModal = getNodesState.find(node => node.id === edge.source);
+    //   const toModal = getNodesState.find(node => node.id === edge.target);
+    //   return {
+    //     domainId: record.domainId,
+    //     fromModelId: parseInt(formModal.parentId),
+    //     toModelId: parseInt(toModal.parentId),
+    //     joinType: "LEFT",
+    //     joinConditions: [
+    //       {
+    //         leftField: edge.source,
+    //         rightField: edge.target,
+    //         operator: "IN"
+    //       }
+    //     ],
+    //     createdBy: "admin",
+    //     updatedBy: "admin",
+    //     createdAt: "2024-08-13T02:40:17.000+00:00",
+    //     updatedAt: "2024-08-13T02:40:17.000+00:00"
+    //   }
+    // })
 
     const params = {
       name: record.name,
@@ -274,7 +286,7 @@ export const IndexDataSet = () => {
       dataSetDetail: {
         dataSetModelConfigs
       },
-      modelRela: modelRela,
+      modelRela: [],
       alias: record.name,
       queryConfig: {
         metricTypeDefaultConfig: {
@@ -303,6 +315,7 @@ export const IndexDataSet = () => {
           setTemps([])
           message.success("修改成功")
           dispatch(getAllDataset({}))
+          initFilterPanel(data)
         }
       }))
     }else {
@@ -313,6 +326,7 @@ export const IndexDataSet = () => {
           setTemps([])
           message.success("保存成功")
           dispatch(getAllDataset({}))
+          initFilterPanel(data)
         }
       }))
     }
@@ -333,7 +347,7 @@ export const IndexDataSet = () => {
       period: 'day',
       detectWord: "",
       isInherited: false,
-      groupByDate: groups.length<dimension.length
+      groupByDate: groups.length<dimension?.length
     }
     let dimensionFilters = [];
     (tags||[]).forEach(tag=>{
@@ -420,7 +434,7 @@ export const IndexDataSet = () => {
   // const items = useMemo(() => [], [queryData,record,modals, getNodesState,getEdgesState]);
 
   /** 创建临时数据集 */
-  const handleDatasetFinish = useCallback((value) => {
+  const handleDatasetFinish = (value) => {
     if (value?.id){
       onDatasetSave(value)
     }else {
@@ -429,7 +443,7 @@ export const IndexDataSet = () => {
       onCardSelect(value)
       setOpen(false)
     }
-  }, [])
+  }
 
   const openForm = useCallback(() => {
     recordRef.current=null

+ 1 - 1
src/app/pages/IndexDefine/components/IndexDetail.jsx

@@ -268,7 +268,7 @@ export const IndexDetail = memo(({
       period: "day",
       detectWord: "",
       isInherited: false,
-      groupByDate: groups.length<dimension.length
+      groupByDate: groups.length<dimension?.length
     }
     let filters = [];
     (tags||[]).forEach(tag=>{

+ 1 - 1
src/app/pages/ModalManage/components/ModalDesign.jsx

@@ -117,7 +117,7 @@ export const ModalDesign = memo(({
       dataIndex: 'common',
       valueType: 'switch',
       width: 90,
-      fieldProps: (form, {entity}) =>({disabled: entity.disabled || entity.dataType && MeasureType.includes(entity.dataType)}),
+      fieldProps: (form, {entity}) =>({disabled: entity.disabled }),
     },
     {
       title: t("columns.dateDim"),