{
    "version": "1.0.0",
    "componentsMap": [
        {
            "package": "procomponents",
            "version": "0.2.0",
            "exportName": "Select",
            "destructuring": true,
            "componentName": "Select"
        },
        {
            "package": "procomponents",
            "exportName": "Input",
            "destructuring": true,
            "componentName": "Input",
            "version": "latest"
        },
        {
            "package": "procomponents",
            "exportName": "CodeList",
            "destructuring": true,
            "subName": "",
            "componentName": "CodeList",
            "version": "latest"
        },
        {
            "package": "procomponents",
            "version": "0.1.26",
            "exportName": "InputNumber",
            "destructuring": true,
            "componentName": "InputNumber"
        },
        {
            "package": "procomponents",
            "version": "0.2.0",
            "exportName": "Radio",
            "destructuring": true,
            "componentName": "Radio"
        },
        {
            "package": "procomponents",
            "exportName": "DatePicker",
            "destructuring": true,
            "subName": "",
            "componentName": "DatePicker",
            "version": "latest"
        },
        {
            "package": "procomponents",
            "version": "0.1.26",
            "exportName": "SearchForm",
            "destructuring": true,
            "componentName": "SearchForm"
        },
        {
            "package": "procomponents",
            "version": "1.3",
            "exportName": "PageSearchFormCard",
            "destructuring": true,
            "componentName": "PageSearchFormCard"
        },
        {
            "package": "procomponents",
            "exportName": "Grid",
            "destructuring": true,
            "subName": "",
            "componentName": "Grid",
            "version": "latest"
        },
        {
            "package": "procomponents",
            "version": "0.1.27",
            "exportName": "Button",
            "subName": "GradientPrimaryAdd",
            "destructuring": true,
            "componentName": "Button.GradientPrimaryAdd"
        },
        {
            "package": "procomponents",
            "exportName": "Button",
            "destructuring": true,
            "subName": "",
            "componentName": "Button",
            "version": "latest"
        },
        {
            "package": "procomponents",
            "version": "0.1.27",
            "exportName": "Button",
            "subName": "EditGroup",
            "destructuring": true,
            "componentName": "Button.EditGroup"
        },
        {
            "package": "procomponents",
            "version": "1.3",
            "exportName": "PageGridCard",
            "destructuring": true,
            "componentName": "PageGridCard"
        },
        {
            "package": "procomponents",
            "version": "1.3",
            "exportName": "Input",
            "subName": "TextArea",
            "destructuring": true,
            "componentName": "Input.TextArea"
        },
        {
            "package": "procomponents",
            "version": "0.1.26",
            "exportName": "DrawerForm",
            "destructuring": true,
            "componentName": "DrawerForm"
        },
        {
            "package": "procomponents",
            "version": "0.2.0",
            "exportName": "Page",
            "destructuring": true,
            "componentName": "Page"
        },
        {
            "componentName": "AddButton",
            "package": "./AddButton",
            "exportName": "AddButton",
            "destructuring": false
        }
    ],
    "componentsTree": [
        {
            "componentName": "Page",
            "id": "node_71345019370",
            "props": {
                "ref": "outerView",
                "style": {
                    "height": "100%"
                },
                "className": "lce-page",
                "rootPath": "bommgmt/engineerbom/engineerbom",
                "uiVersion": 3
            },
            "docId": "doclaqkk3b9",
            "fileName": "testbom/engineerbom",
            "hidden": false,
            "title": "页面1",
            "isLocked": false,
            "condition": true,
            "conditionGroup": "",
            "isAnchored": false,
            "statements": [
                {
                    "type": "JsVarDeclaration",
                    "value": "const { detailInfo } = props;",
                    "id": "Root_detailInfo",
                    "names": [
                        "detailInfo"
                    ],
                    "dependencies": [],
                    "source": "const { detailInfo } = props;",
                    "references": [
                        "Root.Page.detailInfo"
                    ],
                    "metaInfos": {},
                    "private": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst [drawerFormDefaultData1, setDrawerFormDefaultData1] = useState({});"
                    ],
                    "names": [
                        "drawerFormDefaultData1",
                        "setDrawerFormDefaultData1"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useState"
                        }
                    ],
                    "source": "const [drawerFormDefaultData1, setDrawerFormDefaultData1] = useState({});",
                    "id": "node_ocmj28lfyzg_drawerFormDefaultData",
                    "references": [
                        "node_ocmj28lfyzg.DrawerForm.drawerFormDefaultData"
                    ],
                    "metaInfos": {
                        "formId": "node_ocmj28lfyzg",
                        "componentName": "DrawerForm"
                    },
                    "private": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const { currentUser } = userStore;",
                    "id": "Root_userStore",
                    "names": [
                        "currentUser"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "userStore"
                        }
                    ],
                    "source": "const { currentUser } = userStore;",
                    "references": [
                        "Root.Page.userStore"
                    ],
                    "metaInfos": {},
                    "private": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst [actionType, setActionType] = useState();"
                    ],
                    "names": [
                        "actionType",
                        "setActionType"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useState"
                        }
                    ],
                    "source": "const [actionType, setActionType] = useState();",
                    "id": "node_69525166987_actionType",
                    "references": [
                        "node_69525166987.DrawerForm.actionType"
                    ],
                    "private": true,
                    "metaInfos": {
                        "drawerId": "node_69525166987"
                    },
                    "category": "state",
                    "targetFile": "index.tsx",
                    "exported": false,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst [drawerFormDefaultData2, setDrawerFormDefaultData2] = useState({});"
                    ],
                    "names": [
                        "drawerFormDefaultData2",
                        "setDrawerFormDefaultData2"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useState"
                        }
                    ],
                    "source": "const [drawerFormDefaultData2, setDrawerFormDefaultData2] = useState({});",
                    "id": "node_69525166987_drawerFormDefaultData",
                    "references": [
                        "node_69525166987.DrawerForm.drawerFormDefaultData"
                    ],
                    "metaInfos": {
                        "formId": "node_69525166987",
                        "componentName": "DrawerForm"
                    },
                    "private": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst [searchFormDefaultData, setSearchFormDefaultData] = useState({});"
                    ],
                    "names": [
                        "searchFormDefaultData",
                        "setSearchFormDefaultData"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useState"
                        }
                    ],
                    "source": "const [searchFormDefaultData, setSearchFormDefaultData] = useState({});",
                    "id": "node_44218142240_searchFormDefaultData",
                    "references": [
                        "node_44218142240.SearchForm.searchFormDefaultData"
                    ],
                    "metaInfos": {
                        "formId": "node_44218142240",
                        "componentName": "SearchForm"
                    },
                    "private": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const defaultGridRecord = {\n  \"isEndItem\": false,\n  \"strictMode\": true,\n  \"isModified\": false\n};"
                    ],
                    "names": [
                        "defaultGridRecord"
                    ],
                    "dependencies": [],
                    "source": "const defaultGridRecord = {\n    \"isEndItem\": false,\n    \"strictMode\": true,\n    \"isModified\": false\n  };",
                    "id": "node_18033288798_defaultGridRecord",
                    "references": [
                        "node_18033288798.Grid.defaultGridRecord"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "value": {}
                    }
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst namespace = 'namespace_53629';"
                    ],
                    "names": [
                        "namespace"
                    ],
                    "dependencies": [],
                    "source": "const namespace = 'namespace_53629'",
                    "id": "Root.namespace",
                    "references": [
                        "Root.Page.namespace"
                    ],
                    "private": false,
                    "metaInfos": {
                        "name": "namespace_53629"
                    },
                    "category": "store",
                    "targetFile": "store.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const useDataSourceStore = create(set => ({\n      dataSource: [],\n      setDataSource: dataSource => set({ dataSource }),\n    }))",
                    "names": [
                        "useDataSourceStore"
                    ],
                    "dependencies": [
                        {
                            "package": "zustand",
                            "importName": "create"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        }
                    ],
                    "id": "node_18033288798_dataSourceStore",
                    "references": [
                        "node_18033288798.Grid.dataSourceStore"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    },
                    "private": false,
                    "category": "store",
                    "targetFile": "store.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const { dataSource, setDataSource } = useDataSourceStore()",
                    "names": [
                        "dataSource",
                        "setDataSource"
                    ],
                    "dependencies": [],
                    "id": "node_18033288798_useDataSource",
                    "references": [
                        "node_18033288798.Grid.setDataSource"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_18033288798_dataSourceStore"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const fetchApi = data => {",
                        "var _filterInfo$filterInf;",
                        "const {\n    filterInfo,\n    ...otherInfo\n  } = data;",
                        "let keyWordInfo = {};",
                        "if (filterInfo !== null && filterInfo !== void 0 && (_filterInfo$filterInf = filterInfo.filterInfo) !== null && _filterInfo$filterInf !== void 0 && _filterInfo$filterInf.keywords) {\n    keyWordInfo = {\n      keywords: searchScope_node_44218142240,\n      keywordsValues: filterInfo.filterInfo.keywords\n    };\n    delete filterInfo.keywords;\n  }",
                        "const whereList = (filterInfo === null || filterInfo === void 0 ? void 0 : filterInfo.whereList) || [];",
                        "const newWhereList = whereList.concat([{\n    \"fieldName\": \"bomType\",\n    \"value\": \"EBOM\",\n    \"operator\": \"EQ\"\n  }]);",
                        "return request.post('/mstdata/partAssembly/findList', {\n    data: {\n      ...otherInfo,\n      \n      whereList: newWhereList\n    }\n  });",
                        "};"
                    ],
                    "names": [
                        "fetchApi"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "request"
                        }
                    ],
                    "source": "const fetchApi = (data) => {\n    const {\n      filterInfo,\n      ...otherInfo\n    } = data;\n    \n    const whereList = filterInfo?.whereList || [];\n    const newWhereList = whereList.concat([{\n      \"fieldName\": \"bomType\",\n      \"value\": \"EBOM\",\n      \"operator\": \"EQ\"\n    }]);\n    return request.post('/mstdata/partAssembly/findList', {\n      data: {\n        ...otherInfo,\n        \n        whereList: newWhereList\n      }\n    });\n  };",
                    "id": "node_18033288798_fetchApi",
                    "references": [
                        "node_18033288798.Grid.fetchApi",
                        "node_44218142240.SearchForm.fetchApi"
                    ],
                    "private": false,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "searchFormId": "node_44218142240",
                        "isTree": true,
                        "defaultParams": [
                            {
                                "fieldName": "bomType",
                                "value": "EBOM",
                                "operator": "EQ"
                            }
                        ]
                    },
                    "category": "service",
                    "targetFile": "services.ts",
                    "exported": true,
                    "internalRefs": [
                        "Root_projectModuleId",
                        "node_44218142240_searchScope"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst batchSaveApi = data => {\n  return request.post('/mstdata/partAssembly/batchSave', {\n    data\n  }, {\n    showSuccess: true,\n    successMessage: SucMessage.saveMes\n  });\n};"
                    ],
                    "names": [
                        "batchSaveApi"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "request"
                        },
                        {
                            "package": "procomponents",
                            "importName": "SucMessage"
                        }
                    ],
                    "source": "const batchSaveApi = (data: any) => {\n    return request.post('/mstdata/partAssembly/batchSave', {\n      data,\n    }, {\n    showSuccess: true,\n    successMessage: SucMessage.saveMes\n  });\n  };",
                    "id": "node_18033288798_batchSaveApi",
                    "references": [
                        "node_18033288798.Grid.batchSaveApi"
                    ],
                    "private": false,
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    },
                    "category": "service",
                    "targetFile": "services.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  gridHeight,\n  onSearchSizeChange,\n  onFullscreenChange,\n  onHeaderSizeChange\n} = useSearchAndGridHeight();"
                    ],
                    "names": [
                        "gridHeight",
                        "onSearchSizeChange",
                        "onFullscreenChange",
                        "onHeaderSizeChange"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useSearchAndGridHeight"
                        }
                    ],
                    "source": "const {\n    gridHeight,\n    onSearchSizeChange,\n    onFullscreenChange,\n    onHeaderSizeChange\n  } = useSearchAndGridHeight();",
                    "id": "node_18033288798_useSearchAndGridHeight",
                    "references": [
                        "node_18033288798.Grid.useSearchAndGridHeight"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    }
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  gridApiRef,\n  onColumnsChange,\n  onGridReady,\n  gridManagerRef,\n  gridConfig\n} = useGrid();"
                    ],
                    "names": [
                        "gridApiRef",
                        "onColumnsChange",
                        "onGridReady",
                        "gridManagerRef",
                        "gridConfig"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useGrid"
                        }
                    ],
                    "source": "const {\n    gridApiRef,\n    onColumnsChange,\n    onGridReady,\n    gridManagerRef,\n    gridConfig\n  } = useGrid();",
                    "id": "node_18033288798_useGrid",
                    "references": [
                        "node_18033288798.Grid.useGrid"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    }
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  params,\n  onRefresh,\n  onSearch,\n  loading,\n  pagination\n, isLoaded\n} = usePageSearch(async (filterInfo = {}, pageInfo) => {\n  const res = await fetchApi({\n    filterInfo,\n    pageInfo\n  });\n  setDataSource((res === null || res === void 0 ? void 0 : res.content) || res || []);\n  return res === null || res === void 0 ? void 0 : res.totalCount;\n}, {\n  namespace,\n  gridManagerRef\n});"
                    ],
                    "names": [
                        "params",
                        "onRefresh",
                        "onSearch",
                        "loading",
                        "pagination",
                        "isLoaded"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "usePageSearch"
                        }
                    ],
                    "source": "const {\n    params,\n    onRefresh,\n    onSearch,\n    loading,\n    pagination\n, isLoaded\n  } = usePageSearch(\n    async (filterInfo = {}, pageInfo) => {\n      const res = await fetchApi({\n        filterInfo,\n        pageInfo\n      });\n      setDataSource(res?.content || res || []);\n      return res?.totalCount;\n    }, {\n      namespace,\n      gridManagerRef,\n    }\n  );",
                    "id": "node_18033288798_usePageSearch",
                    "references": [
                        "node_18033288798.Grid.usePageSearch",
                        "node_44218142240.SearchForm.usePageSearch"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "searchFormId": "node_44218142240"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_18033288798_fetchApi",
                        "node_18033288798_dataSourceStore",
                        "node_18033288798_useGrid",
                        "Root.namespace"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  rowSelection,\n  selectedRows\n} = useRowSelection(gridApiRef, {\n  loading,\n  type: 'multiple'\n});"
                    ],
                    "names": [
                        "rowSelection",
                        "selectedRows"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useRowSelection"
                        }
                    ],
                    "source": "const {\n    rowSelection,\n    selectedRows\n  } = useRowSelection(gridApiRef, {\n    loading,\n    type: 'multiple'\n  });",
                    "id": "node_18033288798_useRowSelection",
                    "references": [
                        "node_18033288798.Grid.useRowSelection"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "type": "multiple"
                    },
                    "category": "hook",
                    "targetFile": "index.tsx",
                    "exported": false,
                    "internalRefs": [
                        "node_18033288798_useGrid"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst getContextMenuItems = useGridContextMenuItems();"
                    ],
                    "names": [
                        "getContextMenuItems"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useGridContextMenuItems"
                        }
                    ],
                    "source": "const getContextMenuItems = useGridContextMenuItems();",
                    "id": "node_18033288798_useGridContextMenuItems",
                    "references": [
                        "node_18033288798.Grid.useGridContextMenuItems"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    }
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const {\n  onItemClick: onItemClick1,\n  modalFormProps: {\n    form: form1,\n    open: open1,\n    onCancel: onCancel1,\n    onSubmit: onSubmit1,\n    confirmLoading: confirmLoading1,\n    registReset: registReset1,\n    defaultData: defaultData1\n  }\n} = useModalFormOpen(async (formData, isContinueCreate) => {",
                        "var _newFormData, _newFormData2, _newFormData3;",
                        "const changeDataReq = {};",
                        "const defaultData = defaultData1 || {};",
                        "let newFormData = {\n    ...defaultData,\n    ...formData\n  };",
                        "\n        const userFields = [];\n        userFields.map(userField => {\n          if(!isEmpty(newFormData?.[userField])){\n            newFormData[userField] = newFormData?.[userField]?.id;\n          };\n        });\n      ",
                        "const id = 'N_' + generateUuid();",
                        "let path = `${id}/`;",
                        "if ((_newFormData = newFormData) !== null && _newFormData !== void 0 && _newFormData.parentId) {\n    var _gridApiRef_node_;\n    const {\n      data: {\n        path: parentPath\n      }\n    } = (_gridApiRef_node_ = gridApiRef.current) === null || _gridApiRef_node_ === void 0 ? void 0 : _gridApiRef_node_.getRowNode(newFormData.parentId);\n    path = `${parentPath}${id}/`;\n  }",
                        "newFormData = {\n    id,\n    path,\n    ...newFormData\n  };",
                        "if ((_newFormData2 = newFormData) !== null && _newFormData2 !== void 0 && _newFormData2.id && !((_newFormData3 = newFormData) !== null && _newFormData3 !== void 0 && _newFormData3.id.includes('N_'))) {\n    changeDataReq['modifiedData'] = [newFormData];\n  } else {\n    changeDataReq['addedData'] = [newFormData];\n  }",
                        ";",
                        "await batchSaveApi(changeDataReq);",
                        "await onRefresh();",
                        "if (isContinueCreate) return;",
                        "});"
                    ],
                    "names": [
                        "onItemClick1",
                        "form1",
                        "open1",
                        "onCancel1",
                        "onSubmit1",
                        "confirmLoading1",
                        "registReset1",
                        "defaultData1"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useModalFormOpen"
                        },
                        {
                            "package": "procomponents",
                            "importName": "generateUuid"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "isEmpty"
                        }
                    ],
                    "id": "node_ocmj28lfyzg_useModalFormOpen",
                    "references": [
                        "node_ocmj28lfyzg.DrawerForm.useModalFormOpen",
                        "node_18033288798.Grid.useModalFormOpen"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "drawerFormId": "node_ocmj28lfyzg",
                        "successMsg_fn": "",
                        "isTree": true,
                        "userFields": []
                    },
                    "private": true,
                    "source": "const {\n  onItemClick: onItemClick1,\n  modalFormProps: {\n    form: form1,\n    open: open1,\n    onCancel: onCancel1,\n    onSubmit: onSubmit1,\n    confirmLoading: confirmLoading1,\n    registReset: registReset1,\n    defaultData: defaultData1\n  }\n} = useModalFormOpen(async (formData, isContinueCreate) => {\nvar _newFormData, _newFormData2, _newFormData3;\nconst changeDataReq = {};\nconst defaultData = defaultData1 || {};\nlet newFormData = {\n    ...defaultData,\n    ...formData\n  };\n\n        const userFields = [];\n        userFields.map(userField => {\n          if(!isEmpty(newFormData?.[userField])){\n            newFormData[userField] = newFormData?.[userField]?.id;\n          };\n        });\n      \nconst id = 'N_' + generateUuid();\nlet path = `${id}/`;\nif ((_newFormData = newFormData) !== null && _newFormData !== void 0 && _newFormData.parentId) {\n    var _gridApiRef_node_;\n    const {\n      data: {\n        path: parentPath\n      }\n    } = (_gridApiRef_node_ = gridApiRef.current) === null || _gridApiRef_node_ === void 0 ? void 0 : _gridApiRef_node_.getRowNode(newFormData.parentId);\n    path = `${parentPath}${id}/`;\n  }\nnewFormData = {\n    id,\n    path,\n    ...newFormData\n  };\nif ((_newFormData2 = newFormData) !== null && _newFormData2 !== void 0 && _newFormData2.id && !((_newFormData3 = newFormData) !== null && _newFormData3 !== void 0 && _newFormData3.id.includes('N_'))) {\n    changeDataReq['modifiedData'] = [newFormData];\n  } else {\n    changeDataReq['addedData'] = [newFormData];\n  }\n;\nawait batchSaveApi(changeDataReq);\nawait onRefresh();\nif (isContinueCreate) return;\n});",
                    "internalRefs": [
                        "node_18033288798_batchSaveApi",
                        "node_18033288798_usePageSearch",
                        "Root_projectModuleId",
                        "node_18033288798_useGrid"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const [editHandles] = useGridEdit(gridManagerRef, {\n  generateRowData: options => {\nconst id = 'N_' + generateUuid();\nconst {\n      parentData = {}\n    } = options;\nconst {\n      id: parentId,\n      path: parentPath\n    } = parentData;\nreturn {\n      id,\n      parentId,\n      path: parentPath ? `${parentPath}${id}/` : `${id}/`,\n      ...defaultGridRecord\n    };\n},\n  saveCallBack: async ({\n    addedData,\n    modifiedData,\n    removedData\n  }) => {\nconst addData = addedData;\nconst res = await batchSaveApi({\n      addedData: addData,\n      modifiedData,\n      removedData\n    });\nreturn res;\n},\n  afterSaveCallback: () => {\n    onRefresh();\n  }\n});"
                    ],
                    "names": [
                        "editHandles"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useGridEdit"
                        },
                        {
                            "package": "procomponents",
                            "importName": "generateUuid"
                        }
                    ],
                    "source": "const [editHandles] = useGridEdit(gridManagerRef, {\n    generateRowData: (options: any) => {\n      const id = 'N_' + generateUuid();\n      \n      const {\n        parentData = {}\n      } = options;\n      const {\n        id: parentId,\n        path: parentPath\n      } = parentData;\n      return {\n        id,\n        parentId,\n        path: parentPath ? `${parentPath}${id}/` : `${id}/`,\n        ...defaultGridRecord\n      };\n      \n    },\n    saveCallBack: async ({\n      addedData,\n      modifiedData,\n      removedData\n    }) => {\n      const addData = addedData;\n      const res = await batchSaveApi({\n        addedData: addData,\n        modifiedData,\n        removedData,\n      });return res;\n    },\n  afterSaveCallback: () => {\n    onRefresh();\n  }\n});",
                    "id": "node_18033288798_useGridEdit",
                    "references": [
                        "node_18033288798.Grid.useGridEdit"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "successMsg_fn": "",
                        "isTree": true
                    },
                    "internalRefs": [
                        "node_18033288798_batchSaveApi",
                        "node_18033288798_defaultGridRecord",
                        "node_18033288798_usePageSearch",
                        "node_18033288798_useGrid",
                        "Root_projectModuleId"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  editable,\n  interEdit,\n  cancelEdit,\n  onRemove: onGridRemove,\n  onCreate: onGridCreate,\n  onSave,\n  saveLoading\n} = editHandles;"
                    ],
                    "names": [
                        "editable",
                        "interEdit",
                        "cancelEdit",
                        "onGridRemove",
                        "onGridCreate",
                        "onSave",
                        "saveLoading"
                    ],
                    "dependencies": [],
                    "source": "const {\n    editable,\n    interEdit,\n    cancelEdit,\n    onRemove: onGridRemove,\n    onCreate: onGridCreate,\n    onSave,\n    saveLoading\n  } = editHandles;",
                    "id": "node_18033288798_editHandles",
                    "references": [
                        "node_18033288798.Grid.editHandles"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_18033288798_useGridEdit"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  onRemove,\n  removeLoading\n} = useConfirmRemove(async selectedRows => {\n  await batchSaveApi({\n    removedData: selectedRows\n  });\n  await onRefresh();\n}, {\n  labelProp: \"lineNum\",\n  valueProp: 'id',\n  check: item => {\n    return null;\n  }\n});"
                    ],
                    "names": [
                        "onRemove",
                        "removeLoading"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useConfirmRemove"
                        }
                    ],
                    "source": "const {\n    onRemove,\n    removeLoading\n  } = useConfirmRemove(\n    async (selectedRows: any[]) => {\n      await batchSaveApi({\n        removedData: selectedRows,\n      });\n      \n      await onRefresh();\n    }, {\n      labelProp: \"lineNum\",\n      valueProp: 'id',\n      check: (item: any) => {\n        \n        return null;\n      },\n    }\n  );",
                    "id": "node_18033288798_useConfirmRemove",
                    "references": [
                        "node_68150988732.Button.onRemove",
                        "node_18033288798.Grid.useConfirmRemove"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "btnRemoveId": "node_68150988732",
                        "removeLabelField": "lineNum",
                        "successMsg_fn": "",
                        "verifyStr": ""
                    },
                    "internalRefs": [
                        "node_18033288798_batchSaveApi",
                        "node_18033288798_usePageSearch",
                        "Root_projectModuleId"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const _onRemove = useCallback(() => {",
                        "if (editable) return onGridRemove();",
                        "const deleteRows = getGridNodesAllChildren(map(selectedRows, 'id'), gridApiRef.current);",
                        "onRemove(deleteRows);",
                        "}, [editable, selectedRows]);"
                    ],
                    "names": [
                        "_onRemove"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useCallback"
                        },
                        {
                            "package": "procomponents",
                            "importName": "getGridNodesAllChildren"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "map"
                        }
                    ],
                    "source": "const _onRemove = useCallback(() => {\n    if (editable) return onGridRemove();\n    \n    const deleteRows = getGridNodesAllChildren(map(selectedRows, 'id'), gridApiRef.current);\n    onRemove(deleteRows);\n    \n  }, [editable, selectedRows]);",
                    "id": "node_18033288798_onGridRemoveFn",
                    "references": [
                        "node_68150988732.Button.onGridRemove",
                        "node_18033288798.Grid.onGridRemove"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "btnRemoveId": "node_68150988732",
                        "isTree": true
                    },
                    "internalRefs": [
                        "node_18033288798_useConfirmRemove",
                        "node_18033288798_editHandles",
                        "node_18033288798_useRowSelection",
                        "node_18033288798_useGrid"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const {\n  onItemClick: onItemClick2,\n  modalFormProps: {\n    form: form2,\n    open: open2,\n    onCancel: onCancel2,\n    onSubmit: onSubmit2,\n    confirmLoading: confirmLoading2,\n    registReset: registReset2,\n    defaultData: defaultData2\n  }\n} = useModalFormOpen(async (formData, isContinueCreate) => {",
                        "var _newFormData, _newFormData2, _newFormData3;",
                        "const changeDataReq = {};",
                        "const defaultData = defaultData2 || {};",
                        "let newFormData = {\n    ...defaultData,\n    ...formData\n  };",
                        "\n        const userFields = [];\n        userFields.map(userField => {\n          if(!isEmpty(newFormData?.[userField])){\n            newFormData[userField] = newFormData?.[userField]?.id;\n          };\n        });\n      ",
                        "const id = 'N_' + generateUuid();",
                        "let path = `${id}/`;",
                        "if ((_newFormData = newFormData) !== null && _newFormData !== void 0 && _newFormData.parentId) {\n    var _gridApiRef_node_;\n    const {\n      data: {\n        path: parentPath\n      }\n    } = (_gridApiRef_node_ = gridApiRef.current) === null || _gridApiRef_node_ === void 0 ? void 0 : _gridApiRef_node_.getRowNode(newFormData.parentId);\n    path = `${parentPath}${id}/`;\n  }",
                        "newFormData = {\n    id,\n    path,\n    ...newFormData\n  };",
                        "if ((_newFormData2 = newFormData) !== null && _newFormData2 !== void 0 && _newFormData2.id && !((_newFormData3 = newFormData) !== null && _newFormData3 !== void 0 && _newFormData3.id.includes('N_'))) {\n    changeDataReq['modifiedData'] = [newFormData];\n  } else {\n    changeDataReq['addedData'] = [newFormData];\n  }",
                        ";",
                        "await batchSaveApi(changeDataReq);",
                        "await onRefresh();",
                        "if (isContinueCreate) return;",
                        "});"
                    ],
                    "names": [
                        "onItemClick2",
                        "form2",
                        "open2",
                        "onCancel2",
                        "onSubmit2",
                        "confirmLoading2",
                        "registReset2",
                        "defaultData2"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useModalFormOpen"
                        },
                        {
                            "package": "procomponents",
                            "importName": "generateUuid"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "isEmpty"
                        }
                    ],
                    "source": "const {\n  onItemClick: onItemClick2,\n  modalFormProps: {\n    form: form2,\n    open: open2,\n    onCancel: onCancel2,\n    onSubmit: onSubmit2,\n    confirmLoading: confirmLoading2,\n    registReset: registReset2,\n    defaultData: defaultData2\n  }\n} = useModalFormOpen(async (formData, isContinueCreate) => {\nvar _newFormData, _newFormData2, _newFormData3;\nconst changeDataReq = {};\nconst defaultData = defaultData2 || {};\nlet newFormData = {\n    ...defaultData,\n    ...formData\n  };\n\n        const userFields = [];\n        userFields.map(userField => {\n          if(!isEmpty(newFormData?.[userField])){\n            newFormData[userField] = newFormData?.[userField]?.id;\n          };\n        });\n      \nconst id = 'N_' + generateUuid();\nlet path = `${id}/`;\nif ((_newFormData = newFormData) !== null && _newFormData !== void 0 && _newFormData.parentId) {\n    var _gridApiRef_node_;\n    const {\n      data: {\n        path: parentPath\n      }\n    } = (_gridApiRef_node_ = gridApiRef.current) === null || _gridApiRef_node_ === void 0 ? void 0 : _gridApiRef_node_.getRowNode(newFormData.parentId);\n    path = `${parentPath}${id}/`;\n  }\nnewFormData = {\n    id,\n    path,\n    ...newFormData\n  };\nif ((_newFormData2 = newFormData) !== null && _newFormData2 !== void 0 && _newFormData2.id && !((_newFormData3 = newFormData) !== null && _newFormData3 !== void 0 && _newFormData3.id.includes('N_'))) {\n    changeDataReq['modifiedData'] = [newFormData];\n  } else {\n    changeDataReq['addedData'] = [newFormData];\n  }\n;\nawait batchSaveApi(changeDataReq);\nawait onRefresh();\nif (isContinueCreate) return;\n});",
                    "id": "node_69525166987_useModalFormOpen",
                    "references": [
                        "node_69525166987.DrawerForm.useModalFormOpen",
                        "node_18033288798.Grid.useModalFormOpen"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "drawerFormId": "node_69525166987",
                        "isTree": true,
                        "successMsg_fn": "",
                        "userFields": []
                    },
                    "internalRefs": [
                        "node_18033288798_batchSaveApi",
                        "node_18033288798_usePageSearch",
                        "Root_projectModuleId",
                        "node_18033288798_useGrid"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const onCreate1 = useCallback(() => {",
                        "var _gridApiRef_node_, _selectedRows_node_, _parentNode$data, _parentNode$data2;",
                        "const parentNode = (_gridApiRef_node_ = gridApiRef.current) === null || _gridApiRef_node_ === void 0 ? void 0 : _gridApiRef_node_.getRowNode((_selectedRows_node_ = selectedRows[0]) === null || _selectedRows_node_ === void 0 ? void 0 : _selectedRows_node_.id);",
                        "if (editable) {\n    const createObj = {\n      type: 'root',\n      parentData: selectedRows[0],\n      parentNode\n    };\n    return onGridCreate(createObj);\n  }",
                        ";",
                        "actionType && setActionType('ADD');",
                        "const obj = drawerFormDefaultData2;",
                        "if (parentNode !== null && parentNode !== void 0 && (_parentNode$data = parentNode.data) !== null && _parentNode$data !== void 0 && _parentNode$data.id) obj['parentId'] = parentNode === null || parentNode === void 0 || (_parentNode$data2 = parentNode.data) === null || _parentNode$data2 === void 0 ? void 0 : _parentNode$data2.id;",
                        "onItemClick2(obj);",
                        "}, [editable, selectedRows, drawerFormDefaultData2]);"
                    ],
                    "names": [
                        "onCreate1"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useCallback"
                        }
                    ],
                    "source": "const onCreate1 = useCallback(() => {\n    const parentNode = gridApiRef.current?.getRowNode(selectedRows[0]?.id);\n    if (editable) {\n      \n      \n      const createObj = {\n        type: 'root',\n        parentData: selectedRows[0],\n        parentNode\n      };\n      return onGridCreate(createObj);\n      \n    };\n    \n    \n    actionType && setActionType('ADD')\n    const obj = drawerFormDefaultData2;\n    if (parentNode?.data?.id) obj['parentId'] = parentNode?.data?.id;\n    onItemClick2(obj);\n    \n  }, [editable, selectedRows, drawerFormDefaultData2]);",
                    "id": "node_74786236282_onGridCreateFn",
                    "references": [
                        "node_74786236282.Button.onGridCreateFn",
                        "node_18033288798.Grid.onGridCreateFn",
                        "node_69525166987.Drawer.onGridCreateFn"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "drawerId": "node_69525166987",
                        "btnCreateId": "node_74786236282",
                        "isTree": true
                    },
                    "internalRefs": [
                        "node_18033288798_editHandles",
                        "node_18033288798_useRowSelection",
                        "node_18033288798_useGrid",
                        "node_69525166987_useModalFormOpen",
                        "node_69525166987_actionType"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst getDataPath = data => compact(get(data, 'path', '').split('/'));"
                    ],
                    "names": [
                        "getDataPath"
                    ],
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "compact"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        }
                    ],
                    "source": "const getDataPath = (data) => compact(get(data, 'path', '').split('/'));",
                    "id": "node_18033288798_getDataPath",
                    "references": [
                        "node_18033288798.Grid.getDataPath"
                    ],
                    "private": false,
                    "metaInfos": {
                        "gridId": "node_18033288798"
                    },
                    "category": "util",
                    "targetFile": "utils.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const renderSearchTag = useCallback((name, value) => {",
                        "switch (name) {\n    case 'weightTag':\n    case 'costTag':\n    case 'isShip':\n    case 'isComposites':\n    case 'isEndItem':\n    case 'strictMode':\n    case 'isModified':\n      return booleanFormatter(value);\n    default:\n      return value;\n  }",
                        "}, []);"
                    ],
                    "names": [
                        "renderSearchTag"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useCallback"
                        },
                        {
                            "package": "procomponents",
                            "importName": "booleanFormatter"
                        }
                    ],
                    "source": "const renderSearchTag = useCallback((name: string, value: any) => {\n    switch (name) {\n      \n      case 'weightTag':\n        \n      case 'costTag':\n        \n      case 'isShip':\n        \n      case 'isComposites':\n        \n      case 'isEndItem':\n        \n      case 'strictMode':\n        \n      case 'isModified':\n        return booleanFormatter(value);\n      default:\n        return value;\n    }\n  }, []);",
                    "id": "node_44218142240_renderSearchTag",
                    "references": [
                        "node_44218142240.SearchForm.renderSearchTag"
                    ],
                    "private": true,
                    "metaInfos": {
                        "searchFormId": "node_44218142240",
                        "searchFormChildren": {}
                    }
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  onQuery: onQuery_grid_Material,\n  dataSource: dataSource_grid_Material,\n  loading: loading_grid_Material,\n  onDropdownVisibleChange: onDropdownVisibleChange_grid_Material\n} = useSelectorData(async () => {\n  const res = await request('/fwSecurity/sampleData/findByCriteria', {\n    method: 'POST',\n    data: {\n      \"pageInfo\": {\n        \"pageIndex\": 0,\n        \"pageSize\": 50\n      },\n      \"filterInfo\": {\n        \"projectModuleId\": \"6ce96e08980a7966af6b50d7d8c0ff0c\"\n      }\n    }\n  });\n  console.log('res===', (res === null || res === void 0 ? void 0 : res.content) || res);\n  return (res === null || res === void 0 ? void 0 : res.content) || res;\n}, {\n  mode: 'force'\n});"
                    ],
                    "names": [
                        "onQuery_grid_Material",
                        "dataSource_grid_Material",
                        "loading_grid_Material",
                        "onDropdownVisibleChange_grid_Material"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useSelectorData"
                        },
                        {
                            "package": "procomponents",
                            "importName": "request"
                        }
                    ],
                    "source": "const {\n    onQuery: onQuery_grid_Material,\n    dataSource: dataSource_grid_Material,\n    loading: loading_grid_Material,\n    onDropdownVisibleChange: onDropdownVisibleChange_grid_Material\n  } = useSelectorData(\n    async () => {\n      const res = await request('/fwSecurity/sampleData/findByCriteria', {\n        method: 'POST',\n        data: {\n          \"pageInfo\": {\n            \"pageIndex\": 0,\n            \"pageSize\": 50\n          },\n          \"filterInfo\": {\n            \"projectModuleId\": \"6ce96e08980a7966af6b50d7d8c0ff0c\"\n          }\n        }\n      });\n      console.log('res===', res?.content || res)\n      return res?.content || res;\n    }, {\n      mode: 'force'\n    },\n  );",
                    "id": "grid_Material_materialNum_useSelectorData",
                    "references": [
                        "grid_Material_materialNum.Select.useSelectorData"
                    ],
                    "metaInfos": {
                        "selectId": "grid_Material_materialNum",
                        "url": "/fwSecurity/sampleData/findByCriteria",
                        "params": "{\"pageInfo\":{\"pageIndex\":0,\"pageSize\":50},\"filterInfo\":{\"projectModuleId\":\"6ce96e08980a7966af6b50d7d8c0ff0c\"}}"
                    },
                    "private": true
                },
                {
                    "type": "JSExpression",
                    "value": [
                        "\n\nuseEffect(() => {\n  onQuery_grid_Material();\n}, []);"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useEffect"
                        }
                    ],
                    "source": "useEffect(() => {\n    onQuery_grid_Material()\n  }, [])",
                    "scope": "inner",
                    "id": "grid_Material_materialNum_onQuery",
                    "references": [
                        "grid_Material_materialNum.Select.onQuery"
                    ],
                    "metaInfos": {
                        "selectId": "grid_grid_Material_materialNum"
                    },
                    "private": true,
                    "internalRefs": [
                        "grid_grid_Material_materialNum_useSelectorData"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst {\n  onQuery: onQuery_grid_ChgChange_id,\n  dataSource: dataSource_grid_ChgChange_id,\n  loading: loading_grid_ChgChange_id,\n  onDropdownVisibleChange: onDropdownVisibleChange_grid_ChgChange_id\n} = useSelectorData(async () => {\n  const res = await request('/fwSecurity/sampleData/findByCriteria', {\n    method: 'POST',\n    data: {\n      \"pageInfo\": {\n        \"pageIndex\": 0,\n        \"pageSize\": 50\n      },\n      \"filterInfo\": {\n        \"projectModuleId\": \"0cf6d3f4a9df1866d60d9190d637cd03\"\n      }\n    }\n  });\n  console.log('dataSource_grid_ChgChange_id', (res === null || res === void 0 ? void 0 : res.content) || res);\n  return (res === null || res === void 0 ? void 0 : res.content) || res;\n}, {\n  mode: 'force'\n});"
                    ],
                    "names": [
                        "onQuery_grid_ChgChange_id",
                        "dataSource_grid_ChgChange_id",
                        "loading_grid_ChgChange_id",
                        "onDropdownVisibleChange_grid_ChgChange_id"
                    ],
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "useSelectorData"
                        },
                        {
                            "package": "procomponents",
                            "importName": "request"
                        }
                    ],
                    "source": "const {\n    onQuery: onQuery_grid_ChgChange_id,\n    dataSource: dataSource_grid_ChgChange_id,\n    loading: loading_grid_ChgChange_id,\n    onDropdownVisibleChange: onDropdownVisibleChange_grid_ChgChange_id\n  } = useSelectorData(\n    async () => {\n      const res = await request('/fwSecurity/sampleData/findByCriteria', {\n        method: 'POST',\n        data: {\n          \"pageInfo\": {\n            \"pageIndex\": 0,\n            \"pageSize\": 50\n          },\n          \"filterInfo\": {\n            \"projectModuleId\": \"0cf6d3f4a9df1866d60d9190d637cd03\"\n          }\n        }\n      });\n      console.log('dataSource_grid_ChgChange_id', res?.content || res);\n      return res?.content || res;\n    }, {\n      mode: 'force'\n    },\n  );",
                    "id": "grid_ChgChange_id_useSelectorData",
                    "references": [
                        "grid_ChgChange_id.Select.useSelectorData"
                    ],
                    "metaInfos": {
                        "selectId": "grid_ChgChange_id",
                        "url": "/fwSecurity/sampleData/findByCriteria",
                        "params": "{\"pageInfo\":{\"pageIndex\":0,\"pageSize\":50},\"filterInfo\":{\"projectModuleId\":\"0cf6d3f4a9df1866d60d9190d637cd03\"}}"
                    },
                    "private": true
                },
                {
                    "type": "JSExpression",
                    "value": [
                        "\n\nuseEffect(() => {\n  onQuery_grid_ChgChange_id();\n}, []);"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useEffect"
                        }
                    ],
                    "source": "useEffect(() => {\n    onQuery_grid_ChgChange_id()\n  }, [])",
                    "scope": "inner",
                    "id": "grid_ChgChange_id_onQuery",
                    "references": [
                        "grid_ChgChange_id.Select.onQuery"
                    ],
                    "metaInfos": {
                        "selectId": "grid_grid_ChgChange_id"
                    },
                    "private": true,
                    "internalRefs": [
                        "grid_grid_ChgChange_id_useSelectorData"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst Material = useMemo(() => dataSource_grid_Material, [dataSource_grid_Material]);"
                    ],
                    "names": [
                        "Material"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "source": "const Material = useMemo(() => dataSource_grid_Material, [dataSource_grid_Material]);",
                    "id": "node_18033288798_Material_materialNumList_dataSource",
                    "references": [
                        "node_18033288798_Material_materialNumList_dataSource",
                        "node_18033288798_fetchUrl_",
                        "node_78476306503_node_78476306503"
                    ],
                    "metaInfos": {
                        "selectId": "grid_Material_materialNum",
                        "gridId": "node_18033288798",
                        "variableName": "Material_materialNumList",
                        "dataSourceName": "dataSource_grid_Material_materialNum"
                    },
                    "private": true,
                    "accessible": true,
                    "exported": false
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst ChgChange_idList = useMemo(() => dataSource_grid_ChgChange_id, [dataSource_grid_ChgChange_id]);"
                    ],
                    "names": [
                        "ChgChange_idList"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "source": "const ChgChange_idList = useMemo(() => dataSource_grid_ChgChange_id, [dataSource_grid_ChgChange_id]);",
                    "id": "node_18033288798_ChgChange_idList_dataSource",
                    "references": [
                        "node_18033288798_ChgChange_idList_dataSource",
                        "grid_ChgChange_id_fetchUrl",
                        "node_18033288798_node_18033288798"
                    ],
                    "metaInfos": {
                        "selectId": "grid_ChgChange_id",
                        "gridId": "node_18033288798",
                        "variableName": "ChgChange_idList",
                        "dataSourceName": "dataSource_grid_ChgChange_id"
                    },
                    "private": true,
                    "accessible": true,
                    "exported": false
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const onCellEditChange = async (record, fieldName, newValue) => {",
                        "console.log('record', fieldName, record);",
                        "if (fieldName === 'employeeIdDisplayName') {\n    set(record, 'employeeId', get(newValue, 'userId'));\n    set(record, 'employeeIdDisplayName', get(newValue, 'userName'));\n  }",
                        ";",
                        "if (fieldName === 'partCodeObj.materialNum') {\n    set(record, 'partCodeObj.materialNum', get(newValue, 'materialNum', ''));\n    set(record, 'partCode', get(newValue, 'materialNum'));\n  }",
                        ";",
                        "if (fieldName === 'breakPointCodeObj.id') {\n    record['breakPointCode'] = get(newValue, 'change_code');\n    set(record, 'breakPointCodeObj.id', get(newValue, 'id', ''));\n  }",
                        ";",
                        "if (fieldName === 'sourceChangeCodeObj.id') {\n    record['sourceChangeCode'] = get(newValue, 'change_code');\n    set(record, 'sourceChangeCodeObj.id', get(newValue, 'id', ''));\n  }",
                        ";",
                        "if (fieldName === 'changeCodeObj.id') {\n    record['changeCode'] = get(newValue, 'change_code');\n    set(record, 'changeCodeObj.id', get(newValue, 'id', ''));\n  }",
                        ";",
                        "if (fieldName === 'vppsCode') {\n      set(record, 'vsgCode', get(newValue, 'structureShortCode'));\nset(record, 'vppsCode', get(newValue, 'structureCode'));\n\n    }",
                        "if (fieldName === 'fpcCode') {\n      set(record, 'zhDesc', get(newValue, 'partDescZh'));\nset(record, 'enDesc', get(newValue, 'partDescEn'));\nset(record, 'fpcCode', get(newValue, 'positionCode'));\n\n    }",
                        "return record;",
                        "};"
                    ],
                    "names": [
                        "onCellEditChange"
                    ],
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        }
                    ],
                    "source": "const onCellEditChange = async (record, fieldName, newValue) => {\nconsole.log('record', fieldName, record);\nif (fieldName === 'employeeIdDisplayName') {\n    set(record, 'employeeId', get(newValue, 'userId'));\n    set(record, 'employeeIdDisplayName', get(newValue, 'userName'));\n  }\n;\nif (fieldName === 'partCodeObj.materialNum') {\n    set(record, 'partCodeObj.materialNum', get(newValue, 'materialNum', ''));\n    set(record, 'partCode', get(newValue, 'materialNum'));\n  }\n;\nif (fieldName === 'breakPointCodeObj.id') {\n    record['breakPointCode'] = get(newValue, 'change_code');\n    set(record, 'breakPointCodeObj.id', get(newValue, 'id', ''));\n  }\n;\nif (fieldName === 'sourceChangeCodeObj.id') {\n    record['sourceChangeCode'] = get(newValue, 'change_code');\n    set(record, 'sourceChangeCodeObj.id', get(newValue, 'id', ''));\n  }\n;\nif (fieldName === 'changeCodeObj.id') {\n    record['changeCode'] = get(newValue, 'change_code');\n    set(record, 'changeCodeObj.id', get(newValue, 'id', ''));\n  }\n;\nif (fieldName === 'vppsCode') {\n      set(record, 'vsgCode', get(newValue, 'structureShortCode'));\nset(record, 'vppsCode', get(newValue, 'structureCode'));\n\n    }\nif (fieldName === 'fpcCode') {\n      set(record, 'zhDesc', get(newValue, 'partDescZh'));\nset(record, 'enDesc', get(newValue, 'partDescEn'));\nset(record, 'fpcCode', get(newValue, 'positionCode'));\n\n    }\nreturn record;\n};",
                    "id": "node_18033288798_onCellEditChange",
                    "references": [
                        "node_18033288798.Grid.onCellEditChange"
                    ],
                    "private": false,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "contentStr": {}
                    },
                    "category": "hooks",
                    "targetFile": "hooks/useCellEditChange.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst productStructure = [{\n  \"structureCode\": \"10.01.01\",\n  \"structureShortCode\": \"E10\",\n  \"zhDesc\": \"发动机\"\n}, {\n  \"structureCode\": \"10.01.02\",\n  \"structureShortCode\": \"E20\",\n  \"zhDesc\": \"电子牵引功能\"\n}, {\n  \"structureCode\": \"10.01.03\",\n  \"structureShortCode\": \"E30\",\n  \"zhDesc\": \"燃料电池模块\"\n}, {\n  \"structureCode\": \"10.01.04\",\n  \"structureShortCode\": \"\",\n  \"zhDesc\": \"其它功能\"\n}, {\n  \"structureCode\": \"10.02.01\",\n  \"structureShortCode\": \"T10\",\n  \"zhDesc\": \"自动变速器\"\n}, {\n  \"structureCode\": \"10.02.02\",\n  \"structureShortCode\": \"T20\",\n  \"zhDesc\": \"机械变速器\"\n}, {\n  \"structureCode\": \"10.02.03\",\n  \"structureShortCode\": \"T30\",\n  \"zhDesc\": \"电控机械自动变速器\"\n}, {\n  \"structureCode\": \"10.02.04\",\n  \"structureShortCode\": \"T40\",\n  \"zhDesc\": \"分动器\"\n}, {\n  \"structureCode\": \"10.02.05\",\n  \"structureShortCode\": \"T50\",\n  \"zhDesc\": \"双离合自动变速器\"\n}, {\n  \"structureCode\": \"10.02.06\",\n  \"structureShortCode\": \"T60\",\n  \"zhDesc\": \"混合动力双离合自动变速器\"\n}];"
                    ],
                    "names": [
                        "productStructure"
                    ],
                    "dependencies": [],
                    "source": "const productStructure = [{\n      \"structureCode\": \"10.01.01\",\n      \"structureShortCode\": \"E10\",\n      \"zhDesc\": \"发动机\"\n    },\n    {\n      \"structureCode\": \"10.01.02\",\n      \"structureShortCode\": \"E20\",\n      \"zhDesc\": \"电子牵引功能\"\n    },\n    {\n      \"structureCode\": \"10.01.03\",\n      \"structureShortCode\": \"E30\",\n      \"zhDesc\": \"燃料电池模块\"\n    },\n    {\n      \"structureCode\": \"10.01.04\",\n      \"structureShortCode\": \"\",\n      \"zhDesc\": \"其它功能\"\n    },\n    {\n      \"structureCode\": \"10.02.01\",\n      \"structureShortCode\": \"T10\",\n      \"zhDesc\": \"自动变速器\"\n    },\n    {\n      \"structureCode\": \"10.02.02\",\n      \"structureShortCode\": \"T20\",\n      \"zhDesc\": \"机械变速器\"\n    },\n    {\n      \"structureCode\": \"10.02.03\",\n      \"structureShortCode\": \"T30\",\n      \"zhDesc\": \"电控机械自动变速器\"\n    },\n    {\n      \"structureCode\": \"10.02.04\",\n      \"structureShortCode\": \"T40\",\n      \"zhDesc\": \"分动器\"\n    },\n    {\n      \"structureCode\": \"10.02.05\",\n      \"structureShortCode\": \"T50\",\n      \"zhDesc\": \"双离合自动变速器\"\n    },\n    {\n      \"structureCode\": \"10.02.06\",\n      \"structureShortCode\": \"T60\",\n      \"zhDesc\": \"混合动力双离合自动变速器\"\n    }\n  ];",
                    "id": "node_27920561129_productStructure_dataSource",
                    "references": [
                        "node_27920561129_productStructure_dataSource",
                        "node_27920561129_fetchUrl_",
                        "node_18033288798_node_18033288798"
                    ],
                    "private": false,
                    "category": "constant",
                    "targetFile": "constants.ts",
                    "exported": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const onFormValueChange1 = async (record, fieldName, newValue) => {",
                        "if (fieldName === 'vppsCode') {\n    set(record, 'vsgCode', get(newValue, 'structureShortCode'));\n    record['vppsCode'] = get(newValue, 'structureCode');\n  }",
                        "if (fieldName === 'fpcCode') {\n    set(record, 'zhDesc', get(newValue, 'partDescZh'));\n    set(record, 'enDesc', get(newValue, 'partDescEn'));\n    record['fpcCode'] = get(newValue, 'positionCode');\n  }",
                        "if (fieldName === 'partCode') {\n          record['partName'] = get(newValue, 'materialName');\nrecord['partTypeName'] = get(newValue, 'partType.partTypeName');\nrecord['measurementUnit'] = get(newValue, 'measurementUnit');\nrecord['ecuTypeCode'] = get(newValue, 'ecuTypeCode');\nrecord['vppsCode'] = get(newValue, 'structureCode');\nrecord['vsgCode'] = get(newValue, 'structureShortCode');\nrecord['fpcCode'] = get(newValue, 'positionCode');\nrecord['zhDesc'] = get(newValue, 'partDescZh');\nrecord['enDesc'] = get(newValue, 'partDescEn');\nrecord['partCode'] = get(newValue, 'materialNum');\n\n        }",
                        "return record;",
                        "};"
                    ],
                    "names": [
                        "onFormValueChange1"
                    ],
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        }
                    ],
                    "source": "const onFormValueChange1 = async (record, fieldName, newValue) => {\nif (fieldName === 'vppsCode') {\n    set(record, 'vsgCode', get(newValue, 'structureShortCode'));\n    record['vppsCode'] = get(newValue, 'structureCode');\n  }\nif (fieldName === 'fpcCode') {\n    set(record, 'zhDesc', get(newValue, 'partDescZh'));\n    set(record, 'enDesc', get(newValue, 'partDescEn'));\n    record['fpcCode'] = get(newValue, 'positionCode');\n  }\nif (fieldName === 'partCode') {\n          record['partName'] = get(newValue, 'materialName');\nrecord['partTypeName'] = get(newValue, 'partType.partTypeName');\nrecord['measurementUnit'] = get(newValue, 'measurementUnit');\nrecord['ecuTypeCode'] = get(newValue, 'ecuTypeCode');\nrecord['vppsCode'] = get(newValue, 'structureCode');\nrecord['vsgCode'] = get(newValue, 'structureShortCode');\nrecord['fpcCode'] = get(newValue, 'positionCode');\nrecord['zhDesc'] = get(newValue, 'partDescZh');\nrecord['enDesc'] = get(newValue, 'partDescEn');\nrecord['partCode'] = get(newValue, 'materialNum');\n\n        }\nreturn record;\n};",
                    "id": "node_69525166987_onFormValueChange",
                    "references": [
                        "node_69525166987.Form.onFormValueChange"
                    ],
                    "private": false,
                    "metaInfos": {
                        "formId": "node_69525166987",
                        "contentMaps": {}
                    },
                    "category": "hooks",
                    "targetFile": "hooks/useFormValueChange.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst partDesc = [{\n  \"positionCode\": \"A029\",\n  \"partDescZh\": \"发动机总成-1.6L SSS\",\n  \"partDescEn\": \"Engine assembly-1.6L SSS\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A030\",\n  \"partDescZh\": \"发动机总成-1.6L SSS\",\n  \"partDescEn\": \"Engine assembly-1.6L SSS\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A031\",\n  \"partDescZh\": \"发动机总成-1.6L SSS\",\n  \"partDescEn\": \"Engine assembly-1.6L SSS\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01A\",\n  \"partDescZh\": \"发动机总成-2.0L TCI\",\n  \"partDescEn\": \"ENGINE ASM 2.0L TCI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01B\",\n  \"partDescZh\": \"发动机总成-1.8L TGDI\",\n  \"partDescEn\": \"ENGINE ASM 1.8L TGDI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01C\",\n  \"partDescZh\": \"发动机总成-2.0L TGDI\",\n  \"partDescEn\": \"ENGINE ASM 2.0L TGDI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01D\",\n  \"partDescZh\": \"发动机总成-1.4L TGDI\",\n  \"partDescEn\": \"ENGINE ASM 1.4L TGDI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01E\",\n  \"partDescZh\": \"发动机总成-1.6L MPI\",\n  \"partDescEn\": \"ENGINE ASM 1.6L MPI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01F\",\n  \"partDescZh\": \"发动机总成-1.5L MPI\",\n  \"partDescEn\": \"ENGINE ASM 1.5L MPI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}, {\n  \"positionCode\": \"A01G\",\n  \"partDescZh\": \"发动机总成-1.2L TCI\",\n  \"partDescEn\": \"ENGINE ASM 1.2L TCI\",\n  \"structureShortCode\": \"E10\",\n  \"structureCode\": \"10.01.01\"\n}];"
                    ],
                    "names": [
                        "partDesc"
                    ],
                    "dependencies": [],
                    "source": "const partDesc = [{\n    \"positionCode\": \"A029\",\n    \"partDescZh\": \"发动机总成-1.6L SSS\",\n    \"partDescEn\": \"Engine assembly-1.6L SSS\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A030\",\n    \"partDescZh\": \"发动机总成-1.6L SSS\",\n    \"partDescEn\": \"Engine assembly-1.6L SSS\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A031\",\n    \"partDescZh\": \"发动机总成-1.6L SSS\",\n    \"partDescEn\": \"Engine assembly-1.6L SSS\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01A\",\n    \"partDescZh\": \"发动机总成-2.0L TCI\",\n    \"partDescEn\": \"ENGINE ASM 2.0L TCI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01B\",\n    \"partDescZh\": \"发动机总成-1.8L TGDI\",\n    \"partDescEn\": \"ENGINE ASM 1.8L TGDI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01C\",\n    \"partDescZh\": \"发动机总成-2.0L TGDI\",\n    \"partDescEn\": \"ENGINE ASM 2.0L TGDI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01D\",\n    \"partDescZh\": \"发动机总成-1.4L TGDI\",\n    \"partDescEn\": \"ENGINE ASM 1.4L TGDI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01E\",\n    \"partDescZh\": \"发动机总成-1.6L MPI\",\n    \"partDescEn\": \"ENGINE ASM 1.6L MPI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01F\",\n    \"partDescZh\": \"发动机总成-1.5L MPI\",\n    \"partDescEn\": \"ENGINE ASM 1.5L MPI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }, {\n    \"positionCode\": \"A01G\",\n    \"partDescZh\": \"发动机总成-1.2L TCI\",\n    \"partDescEn\": \"ENGINE ASM 1.2L TCI\",\n    \"structureShortCode\": \"E10\",\n    \"structureCode\": \"10.01.01\"\n  }];",
                    "id": "node_74296928224_partDesc_dataSource",
                    "references": [
                        "node_74296928224_partDesc_dataSource",
                        "node_74296928224_fetchUrl_",
                        "node_18033288798_node_18033288798"
                    ],
                    "private": false,
                    "category": "constant",
                    "targetFile": "constants.ts",
                    "exported": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst partGroup = [{\n  \"partGroupCode\": \"M01\",\n  \"partGroupName\": \"前保险杠总成\",\n  \"partGroupNameEn\": \"Front bumper assembly\"\n}, {\n  \"partGroupCode\": \"M02\",\n  \"partGroupName\": \"仪表板总成\",\n  \"partGroupNameEn\": \"Instrument panel assembly\"\n}, {\n  \"partGroupCode\": \"M03\",\n  \"partGroupName\": \"上垫(用于400壳架)8LD.834.1039\",\n  \"partGroupNameEn\": \"上垫(用于400壳架)8LD.834.1039\"\n}, {\n  \"partGroupCode\": \"T01\",\n  \"partGroupName\": \"木制材料01\",\n  \"partGroupNameEn\": \"Wooden Material 01\"\n}];"
                    ],
                    "names": [
                        "partGroup"
                    ],
                    "dependencies": [],
                    "source": "const partGroup = [{\n    \"partGroupCode\": \"M01\",\n    \"partGroupName\": \"前保险杠总成\",\n    \"partGroupNameEn\": \"Front bumper assembly\"\n  }, {\n    \"partGroupCode\": \"M02\",\n    \"partGroupName\": \"仪表板总成\",\n    \"partGroupNameEn\": \"Instrument panel assembly\"\n  }, {\n    \"partGroupCode\": \"M03\",\n    \"partGroupName\": \"上垫(用于400壳架)8LD.834.1039\",\n    \"partGroupNameEn\": \"上垫(用于400壳架)8LD.834.1039\"\n  }, {\n    \"partGroupCode\": \"T01\",\n    \"partGroupName\": \"木制材料01\",\n    \"partGroupNameEn\": \"Wooden Material 01\"\n  }];",
                    "id": "node_93136318553_partGroup_dataSource",
                    "references": [
                        "node_93136318553_partGroup_dataSource",
                        "node_93136318553_fetchUrl_",
                        "node_18033288798_node_18033288798"
                    ],
                    "private": false,
                    "category": "constant",
                    "targetFile": "constants.ts",
                    "exported": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst replaceGroup = [{\n  \"code\": \"A\"\n}, {\n  \"code\": \"ABC\"\n}, {\n  \"code\": \"AC\"\n}, {\n  \"code\": \"B\"\n}, {\n  \"code\": \"C\"\n}];"
                    ],
                    "names": [
                        "replaceGroup"
                    ],
                    "dependencies": [],
                    "source": "const replaceGroup = [{\n      \"code\": \"A\"\n    },\n    {\n      \"code\": \"ABC\"\n    },\n    {\n      \"code\": \"AC\"\n    },\n    {\n      \"code\": \"B\"\n    },\n    {\n      \"code\": \"C\"\n    }\n  ];",
                    "id": "node_65291855642_replaceGroup_dataSource",
                    "references": [
                        "node_65291855642_replaceGroup_dataSource",
                        "node_65291855642_fetchUrl_",
                        "node_18033288798_node_18033288798"
                    ],
                    "private": false,
                    "category": "constant",
                    "targetFile": "constants.ts",
                    "exported": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst supportGroup = [{\n  \"code\": \"A1\"\n}, {\n  \"code\": \"A2\"\n}, {\n  \"code\": \"B1\"\n}, {\n  \"code\": \"B2\"\n}, {\n  \"code\": \"C1\"\n}, {\n  \"code\": \"C2\"\n}];"
                    ],
                    "names": [
                        "supportGroup"
                    ],
                    "dependencies": [],
                    "source": "const supportGroup = [{\n      \"code\": \"A1\"\n    },\n    {\n      \"code\": \"A2\"\n    },\n    {\n      \"code\": \"B1\"\n    },\n    {\n      \"code\": \"B2\"\n    },\n    {\n      \"code\": \"C1\"\n    },\n    {\n      \"code\": \"C2\"\n    }\n  ];",
                    "id": "node_47322837369_supportGroup_dataSource",
                    "references": [
                        "node_47322837369_supportGroup_dataSource",
                        "node_47322837369_fetchUrl_",
                        "node_18033288798_node_18033288798"
                    ],
                    "private": false,
                    "category": "constant",
                    "targetFile": "constants.ts",
                    "exported": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst product = [{\n  \"nodeCode\": \"A01S5\",\n  \"nodeName\": \"S50\",\n  \"id\": \"cea77630bbf84afaa2b8e3312a8c5210\"\n}, {\n  \"nodeCode\": \"DA\",\n  \"nodeName\": \"DA\",\n  \"id\": \"7c3e40c8f1a94e92a28fa545b47b17a3\"\n}, {\n  \"nodeCode\": \"FA\",\n  \"nodeName\": \"FA\",\n  \"id\": \"d75cd5df841740d8a6a14f194bfc4353\"\n}, {\n  \"nodeCode\": \"S60\",\n  \"nodeName\": \"S60\",\n  \"id\": \"c404df4806a6479bb4212d6627c69b56\"\n}, {\n  \"nodeCode\": \"B01E3\",\n  \"nodeName\": \"E30\",\n  \"id\": \"fd780418f76042f2ba9cb423b5d01609\"\n}, {\n  \"nodeCode\": \"B01E4\",\n  \"nodeName\": \"E40\",\n  \"id\": \"1dd662a8f53f4908b27d3f5edcd3fd9c\"\n}];"
                    ],
                    "names": [
                        "product"
                    ],
                    "dependencies": [],
                    "source": "const product = [{\n    \"nodeCode\": \"A01S5\",\n    \"nodeName\": \"S50\",\n    \"id\": \"cea77630bbf84afaa2b8e3312a8c5210\"\n  }, {\n    \"nodeCode\": \"DA\",\n    \"nodeName\": \"DA\",\n    \"id\": \"7c3e40c8f1a94e92a28fa545b47b17a3\"\n  }, {\n    \"nodeCode\": \"FA\",\n    \"nodeName\": \"FA\",\n    \"id\": \"d75cd5df841740d8a6a14f194bfc4353\"\n  }, {\n    \"nodeCode\": \"S60\",\n    \"nodeName\": \"S60\",\n    \"id\": \"c404df4806a6479bb4212d6627c69b56\"\n  }, {\n    \"nodeCode\": \"B01E3\",\n    \"nodeName\": \"E30\",\n    \"id\": \"fd780418f76042f2ba9cb423b5d01609\"\n  }, {\n    \"nodeCode\": \"B01E4\",\n    \"nodeName\": \"E40\",\n    \"id\": \"1dd662a8f53f4908b27d3f5edcd3fd9c\"\n  }];",
                    "id": "node_86237947130_product_dataSource",
                    "references": [
                        "node_86237947130_product_dataSource",
                        "node_86237947130_fetchUrl_"
                    ],
                    "private": false,
                    "category": "constant",
                    "targetFile": "constants.ts",
                    "exported": true,
                    "accessible": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const onFormValueChange2 = async (record, fieldName, newValue) => {",
                        "if (fieldName === 'partCode') {\n    set(record, 'bomProductCode', get(newValue, 'nodeCode'));\n    set(record, 'partName', get(newValue, 'nodeName'));\n    record['partCode'] = get(newValue, 'nodeCode');\n  }",
                        "return record;",
                        "};"
                    ],
                    "names": [
                        "onFormValueChange2"
                    ],
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        }
                    ],
                    "source": "const onFormValueChange2 = async (record, fieldName, newValue) => {\n    if (fieldName === 'partCode') {\n      set(record, 'bomProductCode', get(newValue, 'nodeCode'));\n      set(record, 'partName', get(newValue, 'nodeName'));\n      record['partCode'] = get(newValue, 'nodeCode');\n      \n    }\n    return record;\n  };",
                    "id": "node_ocmj28lfyzg_onFormValueChange",
                    "references": [
                        "node_ocmj28lfyzg.Form.onFormValueChange"
                    ],
                    "metaInfos": {
                        "formId": "node_ocmj28lfyzg",
                        "contentMaps": {}
                    },
                    "private": false,
                    "category": "hooks",
                    "targetFile": "hooks/useFormValueChange.ts",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const onGridUpdate = useCallback(() => {",
                        "if (selectedRows.length == 0) return;",
                        "setActionType('UPDATE');",
                        "const data = get(selectedRows, '[0]', {});",
                        "onItemClick1(data);",
                        "}, [editable, selectedRows]);"
                    ],
                    "names": [
                        "onGridUpdate"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useCallback"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        }
                    ],
                    "source": "const onGridUpdate = useCallback(() => {\n    if (selectedRows.length == 0) return;\n    setActionType('UPDATE');\n    const data = get(selectedRows, '[0]', {});\n    onItemClick1(data);\n  }, [editable, selectedRows]);",
                    "id": "node_18033288798_onGridUpdateFn",
                    "references": [
                        "node_18033288798.Grid.onGridUpdateFn",
                        "node_69525166987.DrawerForm.onGridUpdateFn"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "formId": "node_69525166987"
                    },
                    "internalRefs": [
                        "node_18033288798_useRowSelection",
                        "node_18033288798_editHandles"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const formDrawerDisabled = useMemo(() => {",
                        "if (actionType == 'UPDATE') {\n    const data = get(selectedRows, '[0]', {});\n    return;\n  }",
                        "return false;",
                        "}, [actionType, selectedRows]);"
                    ],
                    "names": [
                        "formDrawerDisabled"
                    ],
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        },
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "source": "const formDrawerDisabled = useMemo(() => {\n    if (actionType == 'UPDATE') {\n      const data = get(selectedRows, '[0]', {});\n      return\n    }\n    return false;\n  }, [actionType, selectedRows]);",
                    "id": "node_ocmj28lfyzg_formDrawerDisabled",
                    "references": [
                        "node_ocmj28lfyzg.DrawerForm.formDrawerDisabled",
                        "node_18033288798.Grid.formDrawerDisabled"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "drawerId": "node_ocmj28lfyzg",
                        "actionType": "UPDATE",
                        "verifyStr": false
                    },
                    "private": true,
                    "internalRefs": [
                        "node_ocmj28lfyzg_actionType",
                        "node_18033288798_useRowSelection"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "const onCreate2 = useCallback(() => {",
                        "var _gridApiRef_node_, _selectedRows_node_, _parentNode$data, _parentNode$data2;",
                        "const parentNode = (_gridApiRef_node_ = gridApiRef.current) === null || _gridApiRef_node_ === void 0 ? void 0 : _gridApiRef_node_.getRowNode((_selectedRows_node_ = selectedRows[0]) === null || _selectedRows_node_ === void 0 ? void 0 : _selectedRows_node_.id);",
                        "if (editable) {\n    const createObj = {\n      type: 'root',\n      parentData: selectedRows[0],\n      parentNode\n    };\n    return onGridCreate(createObj);\n  }",
                        ";",
                        "actionType && setActionType('ADD');",
                        "const obj = drawerFormDefaultData1;",
                        "if (parentNode !== null && parentNode !== void 0 && (_parentNode$data = parentNode.data) !== null && _parentNode$data !== void 0 && _parentNode$data.id) obj['parentId'] = parentNode === null || parentNode === void 0 || (_parentNode$data2 = parentNode.data) === null || _parentNode$data2 === void 0 ? void 0 : _parentNode$data2.id;",
                        "onItemClick1(obj);",
                        "}, [editable, selectedRows, drawerFormDefaultData1]);"
                    ],
                    "names": [
                        "onCreate2"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useCallback"
                        }
                    ],
                    "source": "const onCreate2 = useCallback(() => {\n    const parentNode = gridApiRef.current?.getRowNode(selectedRows[0]?.id);\n    if (editable) {\n      \n      \n      const createObj = {\n        type: 'root',\n        parentData: selectedRows[0],\n        parentNode\n      };\n      return onGridCreate(createObj);\n      \n    };\n    \n    \n    actionType && setActionType('ADD')\n    const obj = drawerFormDefaultData1;\n    if (parentNode?.data?.id) obj['parentId'] = parentNode?.data?.id;\n    onItemClick1(obj);\n    \n  }, [editable, selectedRows, drawerFormDefaultData1]);",
                    "id": "node_ocmj28lfyzf_onGridCreateFn",
                    "references": [
                        "node_ocmj28lfyzf.Button.onGridCreateFn",
                        "node_18033288798.Grid.onGridCreateFn",
                        "node_ocmj28lfyzg.Drawer.onGridCreateFn"
                    ],
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "drawerId": "node_ocmj28lfyzg",
                        "isTree": true,
                        "btnCreateId": "node_ocmj28lfyzf"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_18033288798_editHandles",
                        "node_18033288798_useRowSelection",
                        "node_18033288798_useGrid",
                        "node_ocmj28lfyzg_useModalFormOpen",
                        "node_ocmj28lfyzg_actionType"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const createSearchFormSchema = deps => {\n  const {\n    product,\n    Material,\n    ChgChange_idList\n  } = deps;\n  const schema = {\n    \"bomProductCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"产品编码\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"nodeCode\",\n        \"labelProp\": [\"nodeCode\", \"nodeName\"],\n        \"dataSource\": product,\n        \"labelRender\": data => {\n          const labelProp = [\"nodeCode\", \"nodeName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"treeDefaultExpandAll\": true\n      }\n    },\n    \"partCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"零件号\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"materialNum\",\n        \"labelProp\": [\"materialNum\", \"materialName\"],\n        \"foreignKey\": \"Material\",\n        \"labelRender\": data => {\n          const labelProp = [\"materialNum\", \"materialName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"dataSource\": Material,\n        \"isTitleChanged\": true\n      }\n    },\n    \"lineNum\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"BOM行标识\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"bomStatus\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"BOM行状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"BOM_DEV_STATUS\",\n        \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n      }\n    },\n    \"supportGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"配套组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        }\n      },\n      \"dependencies\": [\"supportGroup\"],\n      \"onDependenciesChange\": ([supportGroup], schema, form) => {\n        set(schema, 'props.dataSource', supportGroup);\n        return schema;\n      }\n    },\n    \"replaceGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"替代组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        }\n      },\n      \"dependencies\": [\"replaceGroup\"],\n      \"onDependenciesChange\": ([replaceGroup], schema, form) => {\n        set(schema, 'props.dataSource', replaceGroup);\n        return schema;\n      }\n    },\n    \"compositesNum\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"合件分组编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"quantity\": {\n      \"componentType\": \"InputNumber\",\n      \"title\": tr(\"用量\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"GT\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"operationType\": {\n      \"componentType\": \"CodeList\",\n      \"options\": {\n        \"rules\": []\n      },\n      \"title\": tr(\"操作类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"OPERATION_TYPE\",\n        \"labelProp\": \"label\",\n        \"dataSource\": [{\n          \"value\": \"ADD\",\n          \"label\": \"新增\"\n        }, {\n          \"value\": \"UPDATE\",\n          \"label\": \"修改\"\n        }, {\n          \"value\": \"DELETE\",\n          \"label\": \"删除\"\n        }, {\n          \"value\": \"SCRAP\",\n          \"label\": \"作废\"\n        }, {\n          \"value\": \"REPLACE\",\n          \"label\": \"替换\"\n        }, {\n          \"value\": \"UPDATE_BEFORE\",\n          \"label\": \"修改前\"\n        }, {\n          \"value\": \"UPDATE_AFTER\",\n          \"label\": \"修改后\"\n        }, {\n          \"value\": \"REPLACE_BEFORE\",\n          \"label\": \"替换前\"\n        }, {\n          \"value\": \"REPLACE_AFTER\",\n          \"label\": \"替换后\"\n        }]\n      }\n    },\n    \"usageValue\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"usageDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"weightTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"重量标记\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"costTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"成本标记\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"fpcCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"位置码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"vsgCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"结构简码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"vppsCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"结构编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"suggestSourcing\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"建议来源\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"SUGGEST_SOURCE\"\n      }\n    },\n    \"devType\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"开发策略\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"DEVELOPMENT_STRATEGY\"\n      }\n    },\n    \"assemblyDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用备注\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"enDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"英⽂描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"zhDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"中⽂描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"partName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"partTypeName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件类型名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"ecuTypeCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"控制类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"measurementUnit\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"计量单位\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"PART_BASIC_UNIT\"\n      }\n    },\n    \"effectiveFrom\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期起\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"GT\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"effectiveTo\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期止\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"GT\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"activeStatus\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"生效状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"changeCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"变更单号\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"change_code\",\n        \"labelProp\": [\"id\"],\n        \"foreignKey\": \"ChgChange\",\n        \"labelRender\": data => {\n          const labelProp = [\"id\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"dataSource\": ChgChange_idList\n      }\n    }\n  };\n  const defaultData = undefined;\n  return [schema, defaultData];\n};",
                    "names": [
                        "createSearchFormSchema"
                    ],
                    "source": "const createSearchFormSchema = deps => {\n  const {\n    product,\n    Material,\n    ChgChange_idList\n  } = deps;\n  const schema = {\n    \"bomProductCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"产品编码\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"nodeCode\",\n        \"labelProp\": [\"nodeCode\", \"nodeName\"],\n        \"dataSource\": product,\n        \"labelRender\": data => {\n          const labelProp = [\"nodeCode\", \"nodeName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"treeDefaultExpandAll\": true\n      }\n    },\n    \"partCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"零件号\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"materialNum\",\n        \"labelProp\": [\"materialNum\", \"materialName\"],\n        \"foreignKey\": \"Material\",\n        \"labelRender\": data => {\n          const labelProp = [\"materialNum\", \"materialName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"dataSource\": Material,\n        \"isTitleChanged\": true\n      }\n    },\n    \"lineNum\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"BOM行标识\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"bomStatus\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"BOM行状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"BOM_DEV_STATUS\",\n        \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n      }\n    },\n    \"supportGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"配套组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        }\n      },\n      \"dependencies\": [\"supportGroup\"],\n      \"onDependenciesChange\": ([supportGroup], schema, form) => {\n        set(schema, 'props.dataSource', supportGroup);\n        return schema;\n      }\n    },\n    \"replaceGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"替代组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        }\n      },\n      \"dependencies\": [\"replaceGroup\"],\n      \"onDependenciesChange\": ([replaceGroup], schema, form) => {\n        set(schema, 'props.dataSource', replaceGroup);\n        return schema;\n      }\n    },\n    \"compositesNum\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"合件分组编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"quantity\": {\n      \"componentType\": \"InputNumber\",\n      \"title\": tr(\"用量\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"GT\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"operationType\": {\n      \"componentType\": \"CodeList\",\n      \"options\": {\n        \"rules\": []\n      },\n      \"title\": tr(\"操作类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"OPERATION_TYPE\",\n        \"labelProp\": \"label\",\n        \"dataSource\": [{\n          \"value\": \"ADD\",\n          \"label\": \"新增\"\n        }, {\n          \"value\": \"UPDATE\",\n          \"label\": \"修改\"\n        }, {\n          \"value\": \"DELETE\",\n          \"label\": \"删除\"\n        }, {\n          \"value\": \"SCRAP\",\n          \"label\": \"作废\"\n        }, {\n          \"value\": \"REPLACE\",\n          \"label\": \"替换\"\n        }, {\n          \"value\": \"UPDATE_BEFORE\",\n          \"label\": \"修改前\"\n        }, {\n          \"value\": \"UPDATE_AFTER\",\n          \"label\": \"修改后\"\n        }, {\n          \"value\": \"REPLACE_BEFORE\",\n          \"label\": \"替换前\"\n        }, {\n          \"value\": \"REPLACE_AFTER\",\n          \"label\": \"替换后\"\n        }]\n      }\n    },\n    \"usageValue\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"usageDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"weightTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"重量标记\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"costTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"成本标记\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"fpcCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"位置码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"vsgCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"结构简码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"vppsCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"结构编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"suggestSourcing\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"建议来源\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"SUGGEST_SOURCE\"\n      }\n    },\n    \"devType\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"开发策略\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"DEVELOPMENT_STRATEGY\"\n      }\n    },\n    \"assemblyDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用备注\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"enDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"英⽂描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"zhDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"中⽂描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"partName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"partTypeName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件类型名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"ecuTypeCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"控制类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"measurementUnit\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"计量单位\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"PART_BASIC_UNIT\"\n      }\n    },\n    \"effectiveFrom\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期起\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"GT\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"effectiveTo\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期止\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"GT\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"activeStatus\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"生效状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"LIKE\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"changeCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"变更单号\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"operator\": \"EQ\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"change_code\",\n        \"labelProp\": [\"id\"],\n        \"foreignKey\": \"ChgChange\",\n        \"labelRender\": data => {\n          const labelProp = [\"id\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"dataSource\": ChgChange_idList\n      }\n    }\n  };\n  const defaultData = undefined;\n  return [schema, defaultData];\n};",
                    "id": "node_44218142240_SearchForm_schema_factory",
                    "references": [
                        "node_44218142240.SearchForm.schemaFactory"
                    ],
                    "metaInfos": {
                        "nodeId": "node_44218142240",
                        "componentName": "SearchForm"
                    },
                    "private": false,
                    "category": "schema",
                    "targetFile": "schema.tsx",
                    "exported": true,
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "merge"
                        }
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const [searchFormSchema, newDefaultData1] = useMemo(() => {\n  return createSearchFormSchema({\n    product,\n    Material,\n    ChgChange_idList\n  });\n}, [product, Material, ChgChange_idList]);",
                    "names": [
                        "searchFormSchema",
                        "newDefaultData1"
                    ],
                    "source": "const [searchFormSchema, newDefaultData1] = useMemo(() => {\n  return createSearchFormSchema({\n    product,\n    Material,\n    ChgChange_idList\n  });\n}, [product, Material, ChgChange_idList]);",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "id": "node_44218142240_SearchForm_schema",
                    "references": [
                        "node_44218142240.SearchForm.schema"
                    ],
                    "metaInfos": {
                        "nodeId": "node_44218142240",
                        "componentName": "SearchForm"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_44218142240_SearchForm_schema_factory",
                        "node_86237947130_product_dataSource",
                        "node_18033288798_Material_materialNumList_dataSource",
                        "node_18033288798_ChgChange_idList_dataSource"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "\n    useEffect(()=>{\n      setSearchFormDefaultData(newDefaultData1);\n    },[JSON.stringify(newDefaultData1)]);\n  ",
                    "names": [],
                    "id": "node_44218142240_SearchForm.defaultData.useEffect",
                    "source": "\n    useEffect(()=>{\n      setSearchFormDefaultData(newDefaultData1);\n    },[JSON.stringify(newDefaultData1)]);\n  ",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useEffect"
                        }
                    ],
                    "references": [
                        "node_44218142240.SearchForm.defaultDataEffect"
                    ],
                    "metaInfos": {
                        "nodeId": "node_44218142240",
                        "componentName": "SearchForm"
                    },
                    "private": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const createGridSchema = deps => {\n  const {\n    Material,\n    productStructure,\n    partDesc,\n    partGroup,\n    ChgChange_idList\n  } = deps;\n  const columns = [{\n    \"fieldName\": \"lineNum\",\n    \"title\": tr(\"BOM行标识\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {},\n      \"componentType\": \"Input\"\n    },\n    \"pinned\": \"left\"\n  }, {\n    \"fieldName\": \"bomStatus\",\n    \"title\": tr(\"BOM状态\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"BOM_DEV_STATUS\",\n        \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n      },\n      \"componentType\": \"CodeList\"\n    },\n    \"isTitleChanged\": true,\n    \"pinned\": \"left\",\n    ...getCodeListColumn({\n      \"fieldName\": \"bomStatus\",\n      \"title\": tr(\"BOM状态\"),\n      \"width\": 120,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"BOM_DEV_STATUS\",\n          \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n        },\n        \"componentType\": \"CodeList\"\n      },\n      \"isTitleChanged\": true,\n      \"pinned\": \"left\"\n    }, 'BOM_DEV_STATUS', {\n      \"tag\": true,\n      \"colorTypes\": {\n        \"primary\": [\"INITIAL_CREATE\"],\n        \"green\": [\"EARLY_CONTROL\", \"ENGINEERING_CONTROL\"],\n        \"orange\": [\"PRODUCTION_PERMISSION\", \"PRODUCTION_PREPARE\"]\n      }\n    })\n  }, {\n    \"fieldName\": \"activeStatus\",\n    \"title\": tr(\"生效状态\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"ACTIVE_STATUS\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    \"isTitleChanged\": true,\n    \"pinned\": \"left\",\n    ...getCodeListColumn({\n      \"fieldName\": \"activeStatus\",\n      \"title\": tr(\"生效状态\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"ACTIVE_STATUS\"\n        },\n        \"componentType\": \"CodeList\"\n      },\n      \"isTitleChanged\": true,\n      \"pinned\": \"left\"\n    }, 'ACTIVE_STATUS', {\n      \"colorTypes\": {\n        \"primary\": [\"DRAFT\"],\n        \"green\": [\"CURRENT\", \"CONTROL\"],\n        \"red\": [\"HISTORY\", \"CANCEL\"]\n      }\n    })\n  }, {\n    \"fieldName\": \"operationType\",\n    \"title\": tr(\"操作\"),\n    \"width\": 70,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"OPERATION_TYPE\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    \"pinned\": \"left\",\n    ...getCodeListColumn({\n      \"fieldName\": \"operationType\",\n      \"title\": tr(\"操作\"),\n      \"width\": 70,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"OPERATION_TYPE\"\n        },\n        \"componentType\": \"CodeList\"\n      },\n      \"pinned\": \"left\"\n    }, 'OPERATION_TYPE')\n  }, {\n    \"width\": 70,\n    \"title\": tr(\"层级\"),\n    \"isTitleChanged\": true,\n    \"fieldName\": \"level\",\n    \"pinned\": \"left\",\n    \"editConfig\": {\n      \"editable\": false\n    },\n    \"render\": (text, data, index, params) => {\n      if (!data.path) return data.levelPath;\n      const level = params.node.level || 0;\n      return level;\n    }\n  }, {\n    \"fieldName\": \"partCode\",\n    \"title\": tr(\"零件号\"),\n    \"width\": 250,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'materialNum',\n          labelProp: [\"materialNum\", \"materialName\"],\n          dataSource: Material,\n          labelInValue: true,\n          labelRender: data => {\n            const labelProp = [\"materialNum\", \"materialName\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_partCodeObj_materialNum !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_partCodeObj_materialNum;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\",\n      \"rules\": [{\n        \"required\": true,\n        \"message\": \"[object Object]必填\"\n      }]\n    },\n    \"valueFormatter\": params => {\n      const Material = get(params, 'context.Material', []);\n      const dataSource = flattenTree(Material) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, 'partCode', '');\n      const obj = dataSource.find(item => get(item, 'materialNum', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'materialNum', value);\n      }\n      return value;\n    },\n    \"pinned\": \"left\",\n    ...getCombonationColumn({\n      \"fieldName\": \"partCode\",\n      \"title\": tr(\"零件号\"),\n      \"width\": 250,\n      \"pinned\": \"left\"\n    }, 10, getLevelColumn({\n      \"fieldName\": \"partCode\",\n      \"title\": tr(\"零件号\"),\n      \"width\": 250,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": (record, params) => {\n          const paramsObj = {\n            valueProp: 'materialNum',\n            labelProp: [\"materialNum\", \"materialName\"],\n            dataSource: Material,\n            labelInValue: true,\n            labelRender: data => {\n              const labelProp = [\"materialNum\", \"materialName\"];\n              return labelProp.map(item => data[item]).join(' ');\n            }\n          };\n          if (typeof onDropdownVisibleChange_grid_partCodeObj_materialNum !== 'undefined') {\n            paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_partCodeObj_materialNum;\n          }\n          ;\n          return paramsObj;\n        },\n        \"componentType\": \"Select\",\n        \"rules\": [{\n          \"required\": true,\n          \"message\": \"[object Object]必填\"\n        }]\n      },\n      \"pinned\": \"left\",\n      \"cellRenderer\": \"gantGroupCellRenderer\"\n    }), 'partName')\n  }, {\n    \"fieldName\": \"quantity\",\n    \"title\": tr(\"用量\"),\n    \"width\": 80,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {},\n      \"componentType\": \"InputNumber\"\n    },\n    ...getNumberColumn({\n      \"fieldName\": \"quantity\",\n      \"title\": tr(\"用量\"),\n      \"width\": 80,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {},\n        \"componentType\": \"InputNumber\"\n      }\n    })\n  }, {\n    \"width\": 100,\n    \"fieldName\": \"totalQuantity\",\n    \"title\": tr(\"合计用量\"),\n    \"editConfig\": {\n      \"props\": {},\n      \"componentType\": \"InputNumber\",\n      \"editable\": true\n    },\n    \"isTitleChanged\": true,\n    ...getNumberColumn({\n      \"width\": 100,\n      \"fieldName\": \"totalQuantity\",\n      \"title\": tr(\"合计用量\"),\n      \"editConfig\": {\n        \"props\": {},\n        \"componentType\": \"InputNumber\",\n        \"editable\": true\n      },\n      \"isTitleChanged\": true\n    })\n  }, {\n    \"fieldName\": \"measurementUnit\",\n    \"title\": tr(\"计量单位\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"PART_BASIC_UNIT\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    ...getCodeListColumn({\n      \"fieldName\": \"measurementUnit\",\n      \"title\": tr(\"计量单位\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"PART_BASIC_UNIT\"\n        },\n        \"componentType\": \"CodeList\"\n      }\n    }, 'PART_BASIC_UNIT')\n  }, {\n    \"width\": 120,\n    \"fieldName\": \"partTypeName\",\n    \"title\": tr(\"零件类型名称\"),\n    \"editConfig\": {\n      \"props\": {},\n      \"componentType\": \"Input\",\n      \"editable\": false\n    }\n  }, {\n    \"width\": 100,\n    \"fieldName\": \"ecuTypeCode\",\n    \"title\": tr(\"控制类型\"),\n    \"editConfig\": {\n      \"props\": {},\n      \"componentType\": \"Input\",\n      \"editable\": false\n    }\n  }, {\n    \"fieldName\": \"devType\",\n    \"title\": tr(\"开发策略\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"DEVELOPMENT_STRATEGY\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    ...getCodeListColumn({\n      \"fieldName\": \"devType\",\n      \"title\": tr(\"开发策略\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"DEVELOPMENT_STRATEGY\"\n        },\n        \"componentType\": \"CodeList\"\n      }\n    }, 'DEVELOPMENT_STRATEGY')\n  }, {\n    \"fieldName\": \"suggestSourcing\",\n    \"title\": tr(\"建议来源\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"SUGGEST_SOURCE\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    ...getCodeListColumn({\n      \"fieldName\": \"suggestSourcing\",\n      \"title\": tr(\"建议来源\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"SUGGEST_SOURCE\"\n        },\n        \"componentType\": \"CodeList\"\n      }\n    }, 'SUGGEST_SOURCE')\n  }, {\n    \"fieldName\": \"column_878996\",\n    \"width\": 100,\n    \"title\": tr(\"装配位置\"),\n    \"isTitleChanged\": true,\n    \"editConfig\": {\n      \"editable\": false\n    },\n    \"children\": [{\n      \"fieldName\": \"vppsCode\",\n      \"title\": tr(\"结构编码\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": (record, params) => {\n          const paramsObj = {\n            valueProp: 'structureCode',\n            labelProp: [\"structureCode\", \"zhDesc\"],\n            childrenProp: 'null',\n            dataSource: productStructure,\n            labelInValue: true,\n            labelRender: data => {\n              const labelProp = [\"structureCode\", \"zhDesc\"];\n              return labelProp.map(item => data[item]).join(' ');\n            }\n          };\n          if (typeof onDropdownVisibleChange_grid_vppsCode !== 'undefined') {\n            paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_vppsCode;\n          }\n          ;\n          return paramsObj;\n        },\n        \"componentType\": \"Select\"\n      },\n      \"valueFormatter\": params => {\n        const productStructure = get(params, 'context.productStructure', []);\n        const dataSource = flattenTree(productStructure) || [];\n        const fieldName = get(params, 'colDef.field');\n        const value = get(params.data, fieldName, '');\n        const obj = dataSource.find(item => get(item, 'structureCode', '') == value);\n        if (!isEmpty(obj)) {\n          return get(obj, 'structureCode', value);\n        }\n        return value;\n      }\n    }, {\n      \"fieldName\": \"vsgCode\",\n      \"title\": tr(\"结构简码\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": false,\n        \"componentType\": \"Input\"\n      }\n    }, {\n      \"fieldName\": \"fpcCode\",\n      \"title\": tr(\"位置码\"),\n      \"width\": 90,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": (record, params) => {\n          const paramsObj = {\n            valueProp: 'positionCode',\n            labelProp: [\"positionCode\", \"partDescZh\"],\n            childrenProp: 'null',\n            dataSource: partDesc,\n            labelInValue: true,\n            labelRender: data => {\n              const labelProp = [\"positionCode\", \"partDescZh\"];\n              return labelProp.map(item => data[item]).join(' ');\n            }\n          };\n          if (typeof onDropdownVisibleChange_grid_fpcCode !== 'undefined') {\n            paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_fpcCode;\n          }\n          ;\n          return paramsObj;\n        },\n        \"componentType\": \"Select\"\n      },\n      \"valueFormatter\": params => {\n        const partDesc = get(params, 'context.partDesc', []);\n        const dataSource = flattenTree(partDesc) || [];\n        const fieldName = get(params, 'colDef.field');\n        const value = get(params.data, fieldName, '');\n        const obj = dataSource.find(item => get(item, 'positionCode', '') == value);\n        if (!isEmpty(obj)) {\n          return get(obj, 'positionCode', value);\n        }\n        return value;\n      }\n    }, {\n      \"fieldName\": \"zhDesc\",\n      \"title\": tr(\"中⽂描述\"),\n      \"width\": 200,\n      \"editConfig\": {\n        \"editable\": false,\n        \"props\": {},\n        \"componentType\": \"Input\"\n      }\n    }, {\n      \"width\": 200,\n      \"fieldName\": \"enDesc\",\n      \"title\": tr(\"英⽂描述\"),\n      \"editConfig\": {\n        \"props\": {},\n        \"componentType\": \"Input\",\n        \"editable\": false\n      }\n    }]\n  }, {\n    \"fieldName\": \"usageValue\",\n    \"title\": tr(\"使用规则\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"componentType\": \"Input\"\n    }\n  }, {\n    \"fieldName\": \"usageDesc\",\n    \"title\": tr(\"规则描述\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {},\n      \"componentType\": \"Input\"\n    },\n    \"isTitleChanged\": true\n  }, {\n    \"fieldName\": \"compositesNum\",\n    \"title\": tr(\"合件分组编码\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'partGroupCode',\n          labelProp: [\"partGroupCode\", \"partGroupName\"],\n          childrenProp: 'null',\n          dataSource: partGroup,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"partGroupCode\", \"partGroupName\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_compositesNum !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_compositesNum;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\"\n    },\n    \"valueFormatter\": params => {\n      const partGroup = get(params, 'context.partGroup', []);\n      const dataSource = flattenTree(partGroup) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, fieldName, '');\n      const obj = dataSource.find(item => get(item, 'partGroupCode', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'partGroupCode', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"weightTag\",\n    \"title\": tr(\"重量标记\"),\n    \"width\": 100,\n    ...getCheckboxColumn({\n      \"fieldName\": \"weightTag\",\n      \"title\": tr(\"重量标记\"),\n      \"width\": 100\n    }, true)\n  }, {\n    \"fieldName\": \"costTag\",\n    \"title\": tr(\"成本标记\"),\n    \"width\": 100,\n    ...getCheckboxColumn({\n      \"fieldName\": \"costTag\",\n      \"title\": tr(\"成本标记\"),\n      \"width\": 100\n    }, true)\n  }, {\n    \"fieldName\": \"supportGroup\",\n    \"title\": tr(\"配套组\"),\n    \"width\": 90,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'code',\n          labelProp: [\"code\"],\n          childrenProp: 'null',\n          dataSource: supportGroup,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"code\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_supportGroup !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_supportGroup;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\"\n    },\n    \"valueFormatter\": params => {\n      const supportGroup = get(params, 'context.supportGroup', []);\n      const dataSource = flattenTree(supportGroup) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, fieldName, '');\n      const obj = dataSource.find(item => get(item, 'code', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'code', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"replaceGroup\",\n    \"title\": tr(\"替代组\"),\n    \"width\": 90,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'code',\n          labelProp: [\"code\"],\n          childrenProp: 'null',\n          dataSource: replaceGroup,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"code\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_replaceGroup !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_replaceGroup;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\"\n    },\n    \"valueFormatter\": params => {\n      const replaceGroup = get(params, 'context.replaceGroup', []);\n      const dataSource = flattenTree(replaceGroup) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, fieldName, '');\n      const obj = dataSource.find(item => get(item, 'code', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'code', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"assemblyDesc\",\n    \"title\": tr(\"使用备注\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"componentType\": \"Input\"\n    }\n  }, {\n    \"width\": 100,\n    \"fieldName\": \"changeCode\",\n    \"title\": tr(\"变更单号\"),\n    \"editConfig\": {\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'changeCode',\n          labelProp: [\"changeCode\"],\n          dataSource: ChgChange_idList,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"changeCode\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_changeCode !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_changeCode;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\",\n      \"editable\": false\n    },\n    \"valueFormatter\": params => {\n      const ChgChange_idList = get(params, 'context.ChgChange_idList', []);\n      const dataSource = flattenTree(ChgChange_idList) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, 'changeCode', '');\n      const obj = dataSource.find(item => get(item, 'changeCode', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'changeCode', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"effectiveFrom\",\n    \"title\": tr(\"生效日期起\"),\n    \"width\": 110,\n    \"editConfig\": {\n      \"editable\": false,\n      \"props\": {},\n      \"componentType\": \"DatePicker\"\n    },\n    ...getDateColumn({\n      \"fieldName\": \"effectiveFrom\",\n      \"title\": tr(\"生效日期起\"),\n      \"width\": 110,\n      \"editConfig\": {\n        \"editable\": false,\n        \"props\": {},\n        \"componentType\": \"DatePicker\"\n      }\n    })\n  }, {\n    \"fieldName\": \"effectiveTo\",\n    \"title\": tr(\"生效日期止\"),\n    \"width\": 110,\n    \"editConfig\": {\n      \"editable\": false,\n      \"props\": {},\n      \"componentType\": \"DatePicker\"\n    },\n    ...getDateColumn({\n      \"fieldName\": \"effectiveTo\",\n      \"title\": tr(\"生效日期止\"),\n      \"width\": 110,\n      \"editConfig\": {\n        \"editable\": false,\n        \"props\": {},\n        \"componentType\": \"DatePicker\"\n      }\n    })\n  }];\n  return columns;\n};",
                    "names": [
                        "createGridSchema"
                    ],
                    "source": "const createGridSchema = deps => {\n  const {\n    Material,\n    productStructure,\n    partDesc,\n    partGroup,\n    ChgChange_idList\n  } = deps;\n  const columns = [{\n    \"fieldName\": \"lineNum\",\n    \"title\": tr(\"BOM行标识\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {},\n      \"componentType\": \"Input\"\n    },\n    \"pinned\": \"left\"\n  }, {\n    \"fieldName\": \"bomStatus\",\n    \"title\": tr(\"BOM状态\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"BOM_DEV_STATUS\",\n        \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n      },\n      \"componentType\": \"CodeList\"\n    },\n    \"isTitleChanged\": true,\n    \"pinned\": \"left\",\n    ...getCodeListColumn({\n      \"fieldName\": \"bomStatus\",\n      \"title\": tr(\"BOM状态\"),\n      \"width\": 120,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"BOM_DEV_STATUS\",\n          \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n        },\n        \"componentType\": \"CodeList\"\n      },\n      \"isTitleChanged\": true,\n      \"pinned\": \"left\"\n    }, 'BOM_DEV_STATUS', {\n      \"tag\": true,\n      \"colorTypes\": {\n        \"primary\": [\"INITIAL_CREATE\"],\n        \"green\": [\"EARLY_CONTROL\", \"ENGINEERING_CONTROL\"],\n        \"orange\": [\"PRODUCTION_PERMISSION\", \"PRODUCTION_PREPARE\"]\n      }\n    })\n  }, {\n    \"fieldName\": \"activeStatus\",\n    \"title\": tr(\"生效状态\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"ACTIVE_STATUS\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    \"isTitleChanged\": true,\n    \"pinned\": \"left\",\n    ...getCodeListColumn({\n      \"fieldName\": \"activeStatus\",\n      \"title\": tr(\"生效状态\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"ACTIVE_STATUS\"\n        },\n        \"componentType\": \"CodeList\"\n      },\n      \"isTitleChanged\": true,\n      \"pinned\": \"left\"\n    }, 'ACTIVE_STATUS', {\n      \"colorTypes\": {\n        \"primary\": [\"DRAFT\"],\n        \"green\": [\"CURRENT\", \"CONTROL\"],\n        \"red\": [\"HISTORY\", \"CANCEL\"]\n      }\n    })\n  }, {\n    \"fieldName\": \"operationType\",\n    \"title\": tr(\"操作\"),\n    \"width\": 70,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"OPERATION_TYPE\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    \"pinned\": \"left\",\n    ...getCodeListColumn({\n      \"fieldName\": \"operationType\",\n      \"title\": tr(\"操作\"),\n      \"width\": 70,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"OPERATION_TYPE\"\n        },\n        \"componentType\": \"CodeList\"\n      },\n      \"pinned\": \"left\"\n    }, 'OPERATION_TYPE')\n  }, {\n    \"width\": 70,\n    \"title\": tr(\"层级\"),\n    \"isTitleChanged\": true,\n    \"fieldName\": \"level\",\n    \"pinned\": \"left\",\n    \"editConfig\": {\n      \"editable\": false\n    },\n    \"render\": (text, data, index, params) => {\n      if (!data.path) return data.levelPath;\n      const level = params.node.level || 0;\n      return level;\n    }\n  }, {\n    \"fieldName\": \"partCode\",\n    \"title\": tr(\"零件号\"),\n    \"width\": 250,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'materialNum',\n          labelProp: [\"materialNum\", \"materialName\"],\n          dataSource: Material,\n          labelInValue: true,\n          labelRender: data => {\n            const labelProp = [\"materialNum\", \"materialName\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_partCodeObj_materialNum !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_partCodeObj_materialNum;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\",\n      \"rules\": [{\n        \"required\": true,\n        \"message\": \"[object Object]必填\"\n      }]\n    },\n    \"valueFormatter\": params => {\n      const Material = get(params, 'context.Material', []);\n      const dataSource = flattenTree(Material) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, 'partCode', '');\n      const obj = dataSource.find(item => get(item, 'materialNum', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'materialNum', value);\n      }\n      return value;\n    },\n    \"pinned\": \"left\",\n    ...getCombonationColumn({\n      \"fieldName\": \"partCode\",\n      \"title\": tr(\"零件号\"),\n      \"width\": 250,\n      \"pinned\": \"left\"\n    }, 10, getLevelColumn({\n      \"fieldName\": \"partCode\",\n      \"title\": tr(\"零件号\"),\n      \"width\": 250,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": (record, params) => {\n          const paramsObj = {\n            valueProp: 'materialNum',\n            labelProp: [\"materialNum\", \"materialName\"],\n            dataSource: Material,\n            labelInValue: true,\n            labelRender: data => {\n              const labelProp = [\"materialNum\", \"materialName\"];\n              return labelProp.map(item => data[item]).join(' ');\n            }\n          };\n          if (typeof onDropdownVisibleChange_grid_partCodeObj_materialNum !== 'undefined') {\n            paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_partCodeObj_materialNum;\n          }\n          ;\n          return paramsObj;\n        },\n        \"componentType\": \"Select\",\n        \"rules\": [{\n          \"required\": true,\n          \"message\": \"[object Object]必填\"\n        }]\n      },\n      \"pinned\": \"left\",\n      \"cellRenderer\": \"gantGroupCellRenderer\"\n    }), 'partName')\n  }, {\n    \"fieldName\": \"quantity\",\n    \"title\": tr(\"用量\"),\n    \"width\": 80,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {},\n      \"componentType\": \"InputNumber\"\n    },\n    ...getNumberColumn({\n      \"fieldName\": \"quantity\",\n      \"title\": tr(\"用量\"),\n      \"width\": 80,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {},\n        \"componentType\": \"InputNumber\"\n      }\n    })\n  }, {\n    \"width\": 100,\n    \"fieldName\": \"totalQuantity\",\n    \"title\": tr(\"合计用量\"),\n    \"editConfig\": {\n      \"props\": {},\n      \"componentType\": \"InputNumber\",\n      \"editable\": true\n    },\n    \"isTitleChanged\": true,\n    ...getNumberColumn({\n      \"width\": 100,\n      \"fieldName\": \"totalQuantity\",\n      \"title\": tr(\"合计用量\"),\n      \"editConfig\": {\n        \"props\": {},\n        \"componentType\": \"InputNumber\",\n        \"editable\": true\n      },\n      \"isTitleChanged\": true\n    })\n  }, {\n    \"fieldName\": \"measurementUnit\",\n    \"title\": tr(\"计量单位\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"PART_BASIC_UNIT\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    ...getCodeListColumn({\n      \"fieldName\": \"measurementUnit\",\n      \"title\": tr(\"计量单位\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"PART_BASIC_UNIT\"\n        },\n        \"componentType\": \"CodeList\"\n      }\n    }, 'PART_BASIC_UNIT')\n  }, {\n    \"width\": 120,\n    \"fieldName\": \"partTypeName\",\n    \"title\": tr(\"零件类型名称\"),\n    \"editConfig\": {\n      \"props\": {},\n      \"componentType\": \"Input\",\n      \"editable\": false\n    }\n  }, {\n    \"width\": 100,\n    \"fieldName\": \"ecuTypeCode\",\n    \"title\": tr(\"控制类型\"),\n    \"editConfig\": {\n      \"props\": {},\n      \"componentType\": \"Input\",\n      \"editable\": false\n    }\n  }, {\n    \"fieldName\": \"devType\",\n    \"title\": tr(\"开发策略\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"DEVELOPMENT_STRATEGY\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    ...getCodeListColumn({\n      \"fieldName\": \"devType\",\n      \"title\": tr(\"开发策略\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"DEVELOPMENT_STRATEGY\"\n        },\n        \"componentType\": \"CodeList\"\n      }\n    }, 'DEVELOPMENT_STRATEGY')\n  }, {\n    \"fieldName\": \"suggestSourcing\",\n    \"title\": tr(\"建议来源\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {\n        \"type\": \"SUGGEST_SOURCE\"\n      },\n      \"componentType\": \"CodeList\"\n    },\n    ...getCodeListColumn({\n      \"fieldName\": \"suggestSourcing\",\n      \"title\": tr(\"建议来源\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": {\n          \"type\": \"SUGGEST_SOURCE\"\n        },\n        \"componentType\": \"CodeList\"\n      }\n    }, 'SUGGEST_SOURCE')\n  }, {\n    \"fieldName\": \"column_878996\",\n    \"width\": 100,\n    \"title\": tr(\"装配位置\"),\n    \"isTitleChanged\": true,\n    \"editConfig\": {\n      \"editable\": false\n    },\n    \"children\": [{\n      \"fieldName\": \"vppsCode\",\n      \"title\": tr(\"结构编码\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": (record, params) => {\n          const paramsObj = {\n            valueProp: 'structureCode',\n            labelProp: [\"structureCode\", \"zhDesc\"],\n            childrenProp: 'null',\n            dataSource: productStructure,\n            labelInValue: true,\n            labelRender: data => {\n              const labelProp = [\"structureCode\", \"zhDesc\"];\n              return labelProp.map(item => data[item]).join(' ');\n            }\n          };\n          if (typeof onDropdownVisibleChange_grid_vppsCode !== 'undefined') {\n            paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_vppsCode;\n          }\n          ;\n          return paramsObj;\n        },\n        \"componentType\": \"Select\"\n      },\n      \"valueFormatter\": params => {\n        const productStructure = get(params, 'context.productStructure', []);\n        const dataSource = flattenTree(productStructure) || [];\n        const fieldName = get(params, 'colDef.field');\n        const value = get(params.data, fieldName, '');\n        const obj = dataSource.find(item => get(item, 'structureCode', '') == value);\n        if (!isEmpty(obj)) {\n          return get(obj, 'structureCode', value);\n        }\n        return value;\n      }\n    }, {\n      \"fieldName\": \"vsgCode\",\n      \"title\": tr(\"结构简码\"),\n      \"width\": 100,\n      \"editConfig\": {\n        \"editable\": false,\n        \"componentType\": \"Input\"\n      }\n    }, {\n      \"fieldName\": \"fpcCode\",\n      \"title\": tr(\"位置码\"),\n      \"width\": 90,\n      \"editConfig\": {\n        \"editable\": true,\n        \"props\": (record, params) => {\n          const paramsObj = {\n            valueProp: 'positionCode',\n            labelProp: [\"positionCode\", \"partDescZh\"],\n            childrenProp: 'null',\n            dataSource: partDesc,\n            labelInValue: true,\n            labelRender: data => {\n              const labelProp = [\"positionCode\", \"partDescZh\"];\n              return labelProp.map(item => data[item]).join(' ');\n            }\n          };\n          if (typeof onDropdownVisibleChange_grid_fpcCode !== 'undefined') {\n            paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_fpcCode;\n          }\n          ;\n          return paramsObj;\n        },\n        \"componentType\": \"Select\"\n      },\n      \"valueFormatter\": params => {\n        const partDesc = get(params, 'context.partDesc', []);\n        const dataSource = flattenTree(partDesc) || [];\n        const fieldName = get(params, 'colDef.field');\n        const value = get(params.data, fieldName, '');\n        const obj = dataSource.find(item => get(item, 'positionCode', '') == value);\n        if (!isEmpty(obj)) {\n          return get(obj, 'positionCode', value);\n        }\n        return value;\n      }\n    }, {\n      \"fieldName\": \"zhDesc\",\n      \"title\": tr(\"中⽂描述\"),\n      \"width\": 200,\n      \"editConfig\": {\n        \"editable\": false,\n        \"props\": {},\n        \"componentType\": \"Input\"\n      }\n    }, {\n      \"width\": 200,\n      \"fieldName\": \"enDesc\",\n      \"title\": tr(\"英⽂描述\"),\n      \"editConfig\": {\n        \"props\": {},\n        \"componentType\": \"Input\",\n        \"editable\": false\n      }\n    }]\n  }, {\n    \"fieldName\": \"usageValue\",\n    \"title\": tr(\"使用规则\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"componentType\": \"Input\"\n    }\n  }, {\n    \"fieldName\": \"usageDesc\",\n    \"title\": tr(\"规则描述\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": {},\n      \"componentType\": \"Input\"\n    },\n    \"isTitleChanged\": true\n  }, {\n    \"fieldName\": \"compositesNum\",\n    \"title\": tr(\"合件分组编码\"),\n    \"width\": 120,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'partGroupCode',\n          labelProp: [\"partGroupCode\", \"partGroupName\"],\n          childrenProp: 'null',\n          dataSource: partGroup,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"partGroupCode\", \"partGroupName\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_compositesNum !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_compositesNum;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\"\n    },\n    \"valueFormatter\": params => {\n      const partGroup = get(params, 'context.partGroup', []);\n      const dataSource = flattenTree(partGroup) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, fieldName, '');\n      const obj = dataSource.find(item => get(item, 'partGroupCode', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'partGroupCode', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"weightTag\",\n    \"title\": tr(\"重量标记\"),\n    \"width\": 100,\n    ...getCheckboxColumn({\n      \"fieldName\": \"weightTag\",\n      \"title\": tr(\"重量标记\"),\n      \"width\": 100\n    }, true)\n  }, {\n    \"fieldName\": \"costTag\",\n    \"title\": tr(\"成本标记\"),\n    \"width\": 100,\n    ...getCheckboxColumn({\n      \"fieldName\": \"costTag\",\n      \"title\": tr(\"成本标记\"),\n      \"width\": 100\n    }, true)\n  }, {\n    \"fieldName\": \"supportGroup\",\n    \"title\": tr(\"配套组\"),\n    \"width\": 90,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'code',\n          labelProp: [\"code\"],\n          childrenProp: 'null',\n          dataSource: supportGroup,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"code\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_supportGroup !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_supportGroup;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\"\n    },\n    \"valueFormatter\": params => {\n      const supportGroup = get(params, 'context.supportGroup', []);\n      const dataSource = flattenTree(supportGroup) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, fieldName, '');\n      const obj = dataSource.find(item => get(item, 'code', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'code', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"replaceGroup\",\n    \"title\": tr(\"替代组\"),\n    \"width\": 90,\n    \"editConfig\": {\n      \"editable\": true,\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'code',\n          labelProp: [\"code\"],\n          childrenProp: 'null',\n          dataSource: replaceGroup,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"code\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_replaceGroup !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_replaceGroup;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\"\n    },\n    \"valueFormatter\": params => {\n      const replaceGroup = get(params, 'context.replaceGroup', []);\n      const dataSource = flattenTree(replaceGroup) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, fieldName, '');\n      const obj = dataSource.find(item => get(item, 'code', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'code', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"assemblyDesc\",\n    \"title\": tr(\"使用备注\"),\n    \"width\": 100,\n    \"editConfig\": {\n      \"editable\": true,\n      \"componentType\": \"Input\"\n    }\n  }, {\n    \"width\": 100,\n    \"fieldName\": \"changeCode\",\n    \"title\": tr(\"变更单号\"),\n    \"editConfig\": {\n      \"props\": (record, params) => {\n        const paramsObj = {\n          valueProp: 'changeCode',\n          labelProp: [\"changeCode\"],\n          dataSource: ChgChange_idList,\n          labelInValue: false,\n          labelRender: data => {\n            const labelProp = [\"changeCode\"];\n            return labelProp.map(item => data[item]).join(' ');\n          }\n        };\n        if (typeof onDropdownVisibleChange_grid_changeCode !== 'undefined') {\n          paramsObj['onDropdownVisibleChange'] = onDropdownVisibleChange_grid_changeCode;\n        }\n        ;\n        return paramsObj;\n      },\n      \"componentType\": \"Select\",\n      \"editable\": false\n    },\n    \"valueFormatter\": params => {\n      const ChgChange_idList = get(params, 'context.ChgChange_idList', []);\n      const dataSource = flattenTree(ChgChange_idList) || [];\n      const fieldName = get(params, 'colDef.field');\n      const value = get(params.data, 'changeCode', '');\n      const obj = dataSource.find(item => get(item, 'changeCode', '') == value);\n      if (!isEmpty(obj)) {\n        return get(obj, 'changeCode', value);\n      }\n      return value;\n    }\n  }, {\n    \"fieldName\": \"effectiveFrom\",\n    \"title\": tr(\"生效日期起\"),\n    \"width\": 110,\n    \"editConfig\": {\n      \"editable\": false,\n      \"props\": {},\n      \"componentType\": \"DatePicker\"\n    },\n    ...getDateColumn({\n      \"fieldName\": \"effectiveFrom\",\n      \"title\": tr(\"生效日期起\"),\n      \"width\": 110,\n      \"editConfig\": {\n        \"editable\": false,\n        \"props\": {},\n        \"componentType\": \"DatePicker\"\n      }\n    })\n  }, {\n    \"fieldName\": \"effectiveTo\",\n    \"title\": tr(\"生效日期止\"),\n    \"width\": 110,\n    \"editConfig\": {\n      \"editable\": false,\n      \"props\": {},\n      \"componentType\": \"DatePicker\"\n    },\n    ...getDateColumn({\n      \"fieldName\": \"effectiveTo\",\n      \"title\": tr(\"生效日期止\"),\n      \"width\": 110,\n      \"editConfig\": {\n        \"editable\": false,\n        \"props\": {},\n        \"componentType\": \"DatePicker\"\n      }\n    })\n  }];\n  return columns;\n};",
                    "id": "node_18033288798_Grid_columns_factory",
                    "references": [
                        "node_18033288798.Grid.columnsFactory"
                    ],
                    "metaInfos": {
                        "nodeId": "node_18033288798",
                        "componentName": "Grid"
                    },
                    "private": false,
                    "category": "schema",
                    "targetFile": "schema.tsx",
                    "exported": true,
                    "dependencies": [
                        {
                            "package": "procomponents",
                            "importName": "getCodeListColumn"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "get"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "isEmpty"
                        },
                        {
                            "package": "procomponents",
                            "importName": "flattenTree"
                        },
                        {
                            "package": "procomponents",
                            "importName": "getLevelColumn"
                        },
                        {
                            "package": "../../lowcode-common/utils",
                            "importName": "getCombonationColumn"
                        },
                        {
                            "package": "procomponents",
                            "importName": "getNumberColumn"
                        },
                        {
                            "package": "procomponents",
                            "importName": "getCheckboxColumn"
                        },
                        {
                            "package": "procomponents",
                            "importName": "getDateColumn"
                        }
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const gridSchema = useMemo(() => {\n  return createGridSchema({\n    Material,\n    productStructure,\n    partDesc,\n    partGroup,\n    ChgChange_idList\n  });\n}, [Material, productStructure, partDesc, partGroup, ChgChange_idList]);",
                    "names": [
                        "gridSchema"
                    ],
                    "source": "const gridSchema = useMemo(() => {\n  return createGridSchema({\n    Material,\n    productStructure,\n    partDesc,\n    partGroup,\n    ChgChange_idList\n  });\n}, [Material, productStructure, partDesc, partGroup, ChgChange_idList]);",
                    "hookType": "string",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "id": "node_18033288798_Grid_columns",
                    "references": [
                        "node_18033288798.Grid.columns"
                    ],
                    "metaInfos": {
                        "nodeId": "node_18033288798",
                        "componentName": "Grid"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_18033288798_Grid_columns_factory",
                        "node_18033288798_Material_materialNumList_dataSource",
                        "node_27920561129_productStructure_dataSource",
                        "node_74296928224_partDesc_dataSource",
                        "node_93136318553_partGroup_dataSource",
                        "node_18033288798_ChgChange_idList_dataSource"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": [
                        "\n\nconst context = useMemo(() => {\n  return {\n    Material,\n    ChgChange_idList,\n    productStructure,\n    partDesc,\n    partGroup,\n    supportGroup,\n    replaceGroup\n  };\n}, [Material, ChgChange_idList, productStructure, partDesc, partGroup, supportGroup, replaceGroup]);"
                    ],
                    "names": [
                        "context"
                    ],
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "source": "const context = useMemo(() => { \n      return {Material, ChgChange_idList, productStructure,partDesc,partGroup,supportGroup,replaceGroup}\n    },[Material, ChgChange_idList, productStructure,partDesc,partGroup,supportGroup,replaceGroup])",
                    "id": "node_18033288798_Grid_context",
                    "references": [
                        "node_18033288798.Grid.context"
                    ],
                    "private": true,
                    "metaInfos": {
                        "gridId": "node_18033288798",
                        "contexts": [
                            "Material_materialNumList, ChgChange_idList, productStructure,partDesc,partGroup,supportGroup,replaceGroup"
                        ]
                    },
                    "internalRefs": [
                        "node_18033288798_Material_materialNumList_dataSource",
                        "node_18033288798_ChgChange_idList_dataSource",
                        "node_27920561129_productStructure_dataSource",
                        "node_74296928224_partDesc_dataSource",
                        "node_93136318553_partGroup_dataSource",
                        "node_47322837369_supportGroup_dataSource",
                        "node_65291855642_replaceGroup_dataSource"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const createDrawerFormSchema1 = deps => {\n  const {\n    dataSource,\n    Material,\n    ChgChange_idList\n  } = deps;\n  const schema = {\n    \"parentId\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"父节点\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"id\",\n        \"labelProp\": [],\n        \"dataSource\": dataSource\n      }\n    },\n    \"lineNum\": {\n      \"componentType\": \"Input\",\n      \"options\": {\n        \"rules\": []\n      },\n      \"title\": tr(\"BOM行标识\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"partCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"零件号\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"materialNum\",\n        \"labelProp\": [\"materialNum\", \"materialName\"],\n        \"foreignKey\": \"Material\",\n        \"labelRender\": data => {\n          const labelProp = [\"materialNum\", \"materialName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"dataSource\": Material,\n        \"labelInValue\": true\n      }\n    },\n    \"partName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"quantity\": {\n      \"componentType\": \"InputNumber\",\n      \"title\": tr(\"用量\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"totalQuantity\": {\n      \"componentType\": \"InputNumber\",\n      \"required\": false,\n      \"title\": tr(\"合计用量\"),\n      \"hidden\": false,\n      \"props\": {}\n    },\n    \"devType\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"开发策略\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"DEVELOPMENT_STRATEGY\",\n        \"mode\": \"selector\",\n        \"allowClear\": true\n      }\n    },\n    \"suggestSourcing\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"建议来源\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"SUGGEST_SOURCE\",\n        \"mode\": \"selector\",\n        \"allowClear\": true\n      }\n    },\n    \"vppsCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"结构编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"structureCode\",\n        \"labelProp\": [\"structureCode\", \"zhDesc\"],\n        \"dataSource\": [{\n          \"structureCode\": \"10.01.01\",\n          \"structureShortCode\": \"E10\",\n          \"zhDesc\": \"发动机\"\n        }, {\n          \"structureCode\": \"10.01.02\",\n          \"structureShortCode\": \"E20\",\n          \"zhDesc\": \"电子牵引功能\"\n        }, {\n          \"structureCode\": \"10.01.03\",\n          \"structureShortCode\": \"E30\",\n          \"zhDesc\": \"燃料电池模块\"\n        }, {\n          \"structureCode\": \"10.01.04\",\n          \"structureShortCode\": \"\",\n          \"zhDesc\": \"其它功能\"\n        }, {\n          \"structureCode\": \"10.02.01\",\n          \"structureShortCode\": \"T10\",\n          \"zhDesc\": \"自动变速器\"\n        }, {\n          \"structureCode\": \"10.02.02\",\n          \"structureShortCode\": \"T20\",\n          \"zhDesc\": \"机械变速器\"\n        }, {\n          \"structureCode\": \"10.02.03\",\n          \"structureShortCode\": \"T30\",\n          \"zhDesc\": \"电控机械自动变速器\"\n        }, {\n          \"structureCode\": \"10.02.04\",\n          \"structureShortCode\": \"T40\",\n          \"zhDesc\": \"分动器\"\n        }, {\n          \"structureCode\": \"10.02.05\",\n          \"structureShortCode\": \"T50\",\n          \"zhDesc\": \"双离合自动变速器\"\n        }, {\n          \"structureCode\": \"10.02.06\",\n          \"structureShortCode\": \"T60\",\n          \"zhDesc\": \"混合动力双离合自动变速器\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"structureCode\", \"zhDesc\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"labelInValue\": true,\n        \"childrenProp\": \"null\"\n      }\n    },\n    \"vsgCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"结构简码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"fpcCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"位置码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"valueProp\": \"positionCode\",\n        \"labelProp\": [\"positionCode\", \"partDescZh\"],\n        \"dataSource\": [{\n          \"positionCode\": \"A029\",\n          \"partDescZh\": \"发动机总成-1.6L SSS\",\n          \"partDescEn\": \"Engine assembly-1.6L SSS\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A030\",\n          \"partDescZh\": \"发动机总成-1.6L SSS\",\n          \"partDescEn\": \"Engine assembly-1.6L SSS\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A031\",\n          \"partDescZh\": \"发动机总成-1.6L SSS\",\n          \"partDescEn\": \"Engine assembly-1.6L SSS\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01A\",\n          \"partDescZh\": \"发动机总成-2.0L TCI\",\n          \"partDescEn\": \"ENGINE ASM 2.0L TCI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01B\",\n          \"partDescZh\": \"发动机总成-1.8L TGDI\",\n          \"partDescEn\": \"ENGINE ASM 1.8L TGDI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01C\",\n          \"partDescZh\": \"发动机总成-2.0L TGDI\",\n          \"partDescEn\": \"ENGINE ASM 2.0L TGDI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01D\",\n          \"partDescZh\": \"发动机总成-1.4L TGDI\",\n          \"partDescEn\": \"ENGINE ASM 1.4L TGDI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01E\",\n          \"partDescZh\": \"发动机总成-1.6L MPI\",\n          \"partDescEn\": \"ENGINE ASM 1.6L MPI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01F\",\n          \"partDescZh\": \"发动机总成-1.5L MPI\",\n          \"partDescEn\": \"ENGINE ASM 1.5L MPI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01G\",\n          \"partDescZh\": \"发动机总成-1.2L TCI\",\n          \"partDescEn\": \"ENGINE ASM 1.2L TCI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"positionCode\", \"partDescZh\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"labelInValue\": true,\n        \"childrenProp\": \"null\"\n      },\n      \"dependencies\": [\"vppsCode\"],\n      \"onDependenciesChange\": ([vppsCode], schema, form) => {\n        set(schema, 'props.disabled', !vppsCode);\n        return schema;\n      }\n    },\n    \"zhDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"中⽂描述\"),\n      \"required\": false,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"enDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"英⽂描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"usageValue\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"usageDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"compositesNum\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"合件分组编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"partGroupCode\",\n        \"labelProp\": [\"partGroupCode\", \"partGroupName\"],\n        \"dataSource\": [{\n          \"partGroupCode\": \"M01\",\n          \"partGroupName\": \"前保险杠总成\",\n          \"partGroupNameEn\": \"Front bumper assembly\"\n        }, {\n          \"partGroupCode\": \"M02\",\n          \"partGroupName\": \"仪表板总成\",\n          \"partGroupNameEn\": \"Instrument panel assembly\"\n        }, {\n          \"partGroupCode\": \"M03\",\n          \"partGroupName\": \"上垫(用于400壳架)8LD.834.1039\",\n          \"partGroupNameEn\": \"上垫(用于400壳架)8LD.834.1039\"\n        }, {\n          \"partGroupCode\": \"T01\",\n          \"partGroupName\": \"木制材料01\",\n          \"partGroupNameEn\": \"Wooden Material 01\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"partGroupCode\", \"partGroupName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"childrenProp\": \"null\"\n      }\n    },\n    \"weightTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"重量标记\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"costTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"成本标记\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"supportGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"配套组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"dataSource\": [{\n          \"code\": \"A1\"\n        }, {\n          \"code\": \"A2\"\n        }, {\n          \"code\": \"B1\"\n        }, {\n          \"code\": \"B2\"\n        }, {\n          \"code\": \"C1\"\n        }, {\n          \"code\": \"C2\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        }\n      }\n    },\n    \"replaceGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"替代组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"dataSource\": [{\n          \"code\": \"A\"\n        }, {\n          \"code\": \"ABC\"\n        }, {\n          \"code\": \"AC\"\n        }, {\n          \"code\": \"B\"\n        }, {\n          \"code\": \"C\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"childrenProp\": \"null\"\n      }\n    },\n    \"assemblyDesc\": {\n      \"componentType\": \"TextArea\",\n      \"title\": tr(\"使用备注\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"bomProductCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"产品编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"bomStatus\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"BOM行状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"BOM_DEV_STATUS\",\n        \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n      }\n    },\n    \"activeStatus\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"生效状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"ACTIVE_STATUS\"\n      }\n    },\n    \"operationType\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"操作类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"OPERATION_TYPE\"\n      }\n    },\n    \"bomType\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"BOM类型\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"DEVELOPMENT_TYPE\"\n      }\n    },\n    \"partTypeName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件类型名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"ecuTypeCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"控制类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"measurementUnit\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"计量单位\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"PART_BASIC_UNIT\"\n      }\n    },\n    \"effectiveFrom\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期起\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"effectiveTo\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期止\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"changeCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"变更单号\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"changeCode\",\n        \"labelProp\": [\"changeCode\"],\n        \"foreignKey\": \"ChgChange\",\n        \"labelRender\": data => {\n          const labelProp = [\"changeCode\"];\n          const aa = labelProp.map(item => data[item]).join(' ');\n          console.log('aa', data, aa);\n          return aa;\n        },\n        \"dataSource\": ChgChange_idList\n      }\n    }\n  };\n  const defaultData = {\n    \"parentId\": dataSource[0]?.id,\n    \"weightTag\": false,\n    \"costTag\": true,\n    \"bomProductCode\": dataSource[0]?.partCode,\n    \"bomStatus\": \"ENGINEERING_CONTROL\",\n    \"activeStatus\": [\"DRAFT\"],\n    \"operationType\": [\"ADD\"],\n    \"bomType\": \"EBOM\"\n  };\n  return [schema, defaultData];\n};",
                    "names": [
                        "createDrawerFormSchema1"
                    ],
                    "source": "const createDrawerFormSchema1 = deps => {\n  const {\n    dataSource,\n    Material,\n    ChgChange_idList\n  } = deps;\n  const schema = {\n    \"parentId\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"父节点\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"id\",\n        \"labelProp\": [],\n        \"dataSource\": dataSource\n      }\n    },\n    \"lineNum\": {\n      \"componentType\": \"Input\",\n      \"options\": {\n        \"rules\": []\n      },\n      \"title\": tr(\"BOM行标识\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"partCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"零件号\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"materialNum\",\n        \"labelProp\": [\"materialNum\", \"materialName\"],\n        \"foreignKey\": \"Material\",\n        \"labelRender\": data => {\n          const labelProp = [\"materialNum\", \"materialName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"dataSource\": Material,\n        \"labelInValue\": true\n      }\n    },\n    \"partName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"quantity\": {\n      \"componentType\": \"InputNumber\",\n      \"title\": tr(\"用量\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"totalQuantity\": {\n      \"componentType\": \"InputNumber\",\n      \"required\": false,\n      \"title\": tr(\"合计用量\"),\n      \"hidden\": false,\n      \"props\": {}\n    },\n    \"devType\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"开发策略\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"DEVELOPMENT_STRATEGY\",\n        \"mode\": \"selector\",\n        \"allowClear\": true\n      }\n    },\n    \"suggestSourcing\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"建议来源\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"SUGGEST_SOURCE\",\n        \"mode\": \"selector\",\n        \"allowClear\": true\n      }\n    },\n    \"vppsCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"结构编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"structureCode\",\n        \"labelProp\": [\"structureCode\", \"zhDesc\"],\n        \"dataSource\": [{\n          \"structureCode\": \"10.01.01\",\n          \"structureShortCode\": \"E10\",\n          \"zhDesc\": \"发动机\"\n        }, {\n          \"structureCode\": \"10.01.02\",\n          \"structureShortCode\": \"E20\",\n          \"zhDesc\": \"电子牵引功能\"\n        }, {\n          \"structureCode\": \"10.01.03\",\n          \"structureShortCode\": \"E30\",\n          \"zhDesc\": \"燃料电池模块\"\n        }, {\n          \"structureCode\": \"10.01.04\",\n          \"structureShortCode\": \"\",\n          \"zhDesc\": \"其它功能\"\n        }, {\n          \"structureCode\": \"10.02.01\",\n          \"structureShortCode\": \"T10\",\n          \"zhDesc\": \"自动变速器\"\n        }, {\n          \"structureCode\": \"10.02.02\",\n          \"structureShortCode\": \"T20\",\n          \"zhDesc\": \"机械变速器\"\n        }, {\n          \"structureCode\": \"10.02.03\",\n          \"structureShortCode\": \"T30\",\n          \"zhDesc\": \"电控机械自动变速器\"\n        }, {\n          \"structureCode\": \"10.02.04\",\n          \"structureShortCode\": \"T40\",\n          \"zhDesc\": \"分动器\"\n        }, {\n          \"structureCode\": \"10.02.05\",\n          \"structureShortCode\": \"T50\",\n          \"zhDesc\": \"双离合自动变速器\"\n        }, {\n          \"structureCode\": \"10.02.06\",\n          \"structureShortCode\": \"T60\",\n          \"zhDesc\": \"混合动力双离合自动变速器\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"structureCode\", \"zhDesc\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"labelInValue\": true,\n        \"childrenProp\": \"null\"\n      }\n    },\n    \"vsgCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"结构简码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"fpcCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"位置码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"valueProp\": \"positionCode\",\n        \"labelProp\": [\"positionCode\", \"partDescZh\"],\n        \"dataSource\": [{\n          \"positionCode\": \"A029\",\n          \"partDescZh\": \"发动机总成-1.6L SSS\",\n          \"partDescEn\": \"Engine assembly-1.6L SSS\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A030\",\n          \"partDescZh\": \"发动机总成-1.6L SSS\",\n          \"partDescEn\": \"Engine assembly-1.6L SSS\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A031\",\n          \"partDescZh\": \"发动机总成-1.6L SSS\",\n          \"partDescEn\": \"Engine assembly-1.6L SSS\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01A\",\n          \"partDescZh\": \"发动机总成-2.0L TCI\",\n          \"partDescEn\": \"ENGINE ASM 2.0L TCI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01B\",\n          \"partDescZh\": \"发动机总成-1.8L TGDI\",\n          \"partDescEn\": \"ENGINE ASM 1.8L TGDI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01C\",\n          \"partDescZh\": \"发动机总成-2.0L TGDI\",\n          \"partDescEn\": \"ENGINE ASM 2.0L TGDI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01D\",\n          \"partDescZh\": \"发动机总成-1.4L TGDI\",\n          \"partDescEn\": \"ENGINE ASM 1.4L TGDI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01E\",\n          \"partDescZh\": \"发动机总成-1.6L MPI\",\n          \"partDescEn\": \"ENGINE ASM 1.6L MPI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01F\",\n          \"partDescZh\": \"发动机总成-1.5L MPI\",\n          \"partDescEn\": \"ENGINE ASM 1.5L MPI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }, {\n          \"positionCode\": \"A01G\",\n          \"partDescZh\": \"发动机总成-1.2L TCI\",\n          \"partDescEn\": \"ENGINE ASM 1.2L TCI\",\n          \"structureShortCode\": \"E10\",\n          \"structureCode\": \"10.01.01\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"positionCode\", \"partDescZh\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"labelInValue\": true,\n        \"childrenProp\": \"null\"\n      },\n      \"dependencies\": [\"vppsCode\"],\n      \"onDependenciesChange\": ([vppsCode], schema, form) => {\n        set(schema, 'props.disabled', !vppsCode);\n        return schema;\n      }\n    },\n    \"zhDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"中⽂描述\"),\n      \"required\": false,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"enDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"英⽂描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": true\n      }\n    },\n    \"usageValue\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"usageDesc\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"使用规则描述\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"compositesNum\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"合件分组编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"partGroupCode\",\n        \"labelProp\": [\"partGroupCode\", \"partGroupName\"],\n        \"dataSource\": [{\n          \"partGroupCode\": \"M01\",\n          \"partGroupName\": \"前保险杠总成\",\n          \"partGroupNameEn\": \"Front bumper assembly\"\n        }, {\n          \"partGroupCode\": \"M02\",\n          \"partGroupName\": \"仪表板总成\",\n          \"partGroupNameEn\": \"Instrument panel assembly\"\n        }, {\n          \"partGroupCode\": \"M03\",\n          \"partGroupName\": \"上垫(用于400壳架)8LD.834.1039\",\n          \"partGroupNameEn\": \"上垫(用于400壳架)8LD.834.1039\"\n        }, {\n          \"partGroupCode\": \"T01\",\n          \"partGroupName\": \"木制材料01\",\n          \"partGroupNameEn\": \"Wooden Material 01\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"partGroupCode\", \"partGroupName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"childrenProp\": \"null\"\n      }\n    },\n    \"weightTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"重量标记\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"costTag\": {\n      \"componentType\": \"Radio\",\n      \"title\": tr(\"成本标记\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"useStorage\": false,\n        \"isBoolean\": true,\n        \"dataSource\": [{\n          \"value\": true,\n          \"label\": \"是\"\n        }, {\n          \"value\": false,\n          \"label\": \"否\"\n        }],\n        \"labelProp\": \"label\"\n      }\n    },\n    \"supportGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"配套组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"dataSource\": [{\n          \"code\": \"A1\"\n        }, {\n          \"code\": \"A2\"\n        }, {\n          \"code\": \"B1\"\n        }, {\n          \"code\": \"B2\"\n        }, {\n          \"code\": \"C1\"\n        }, {\n          \"code\": \"C2\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        }\n      }\n    },\n    \"replaceGroup\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"替代组\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"code\",\n        \"labelProp\": [\"code\"],\n        \"dataSource\": [{\n          \"code\": \"A\"\n        }, {\n          \"code\": \"ABC\"\n        }, {\n          \"code\": \"AC\"\n        }, {\n          \"code\": \"B\"\n        }, {\n          \"code\": \"C\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"code\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"childrenProp\": \"null\"\n      }\n    },\n    \"assemblyDesc\": {\n      \"componentType\": \"TextArea\",\n      \"title\": tr(\"使用备注\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"bomProductCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"产品编码\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"bomStatus\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"BOM行状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"BOM_DEV_STATUS\",\n        \"excludeCodes\": [\"INITIAL_CREATE\", \"EARLY_CONTROL\"]\n      }\n    },\n    \"activeStatus\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"生效状态\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"ACTIVE_STATUS\"\n      }\n    },\n    \"operationType\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"操作类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"OPERATION_TYPE\"\n      }\n    },\n    \"bomType\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"BOM类型\"),\n      \"required\": true,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"DEVELOPMENT_TYPE\"\n      }\n    },\n    \"partTypeName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件类型名称\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"ecuTypeCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"控制类型\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false\n      }\n    },\n    \"measurementUnit\": {\n      \"componentType\": \"CodeList\",\n      \"title\": tr(\"计量单位\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"type\": \"PART_BASIC_UNIT\"\n      }\n    },\n    \"effectiveFrom\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期起\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"effectiveTo\": {\n      \"componentType\": \"DatePicker\",\n      \"title\": tr(\"生效日期止\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"showTime\": false,\n        \"format\": \"YYYY-MM-DD\"\n      }\n    },\n    \"changeCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"变更单号\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hide\": true,\n      \"hidden\": false,\n      \"props\": {\n        \"disabled\": false,\n        \"valueProp\": \"changeCode\",\n        \"labelProp\": [\"changeCode\"],\n        \"foreignKey\": \"ChgChange\",\n        \"labelRender\": data => {\n          const labelProp = [\"changeCode\"];\n          const aa = labelProp.map(item => data[item]).join(' ');\n          console.log('aa', data, aa);\n          return aa;\n        },\n        \"dataSource\": ChgChange_idList\n      }\n    }\n  };\n  const defaultData = {\n    \"parentId\": dataSource[0]?.id,\n    \"weightTag\": false,\n    \"costTag\": true,\n    \"bomProductCode\": dataSource[0]?.partCode,\n    \"bomStatus\": \"ENGINEERING_CONTROL\",\n    \"activeStatus\": [\"DRAFT\"],\n    \"operationType\": [\"ADD\"],\n    \"bomType\": \"EBOM\"\n  };\n  return [schema, defaultData];\n};",
                    "id": "node_69525166987_DrawerForm_schema_factory",
                    "references": [
                        "node_69525166987.DrawerForm.schemaFactory"
                    ],
                    "metaInfos": {
                        "nodeId": "node_69525166987",
                        "componentName": "DrawerForm"
                    },
                    "private": false,
                    "category": "schema",
                    "targetFile": "schema.tsx",
                    "exported": true,
                    "dependencies": [
                        {
                            "package": "lodash-es",
                            "importName": "set"
                        },
                        {
                            "package": "lodash-es",
                            "importName": "merge"
                        }
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const [drawerFormSchema1, newDefaultData2] = useMemo(() => {\n  return createDrawerFormSchema1({\n    dataSource,\n    Material,\n    ChgChange_idList\n  });\n}, [dataSource, Material, ChgChange_idList]);",
                    "names": [
                        "drawerFormSchema1",
                        "newDefaultData2"
                    ],
                    "source": "const [drawerFormSchema1, newDefaultData2] = useMemo(() => {\n  return createDrawerFormSchema1({\n    dataSource,\n    Material,\n    ChgChange_idList\n  });\n}, [dataSource, Material, ChgChange_idList]);",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "id": "node_69525166987_DrawerForm_schema",
                    "references": [
                        "node_69525166987.DrawerForm.schema"
                    ],
                    "metaInfos": {
                        "nodeId": "node_69525166987",
                        "componentName": "DrawerForm"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_69525166987_DrawerForm_schema_factory",
                        "node_18033288798_useDataSource",
                        "node_18033288798_Material_materialNumList_dataSource",
                        "node_18033288798_ChgChange_idList_dataSource"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "\n    useEffect(()=>{\n      setDrawerFormDefaultData2(newDefaultData2);\n    },[JSON.stringify(newDefaultData2)]);\n  ",
                    "names": [],
                    "id": "node_69525166987_DrawerForm.defaultData.useEffect",
                    "source": "\n    useEffect(()=>{\n      setDrawerFormDefaultData2(newDefaultData2);\n    },[JSON.stringify(newDefaultData2)]);\n  ",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useEffect"
                        }
                    ],
                    "references": [
                        "node_69525166987.DrawerForm.defaultDataEffect"
                    ],
                    "metaInfos": {
                        "nodeId": "node_69525166987",
                        "componentName": "DrawerForm"
                    },
                    "private": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const createDrawerFormSchema2 = () => {\n  const schema = {\n    \"partCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"产品\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"isTitleChanged\": true,\n        \"valueProp\": \"nodeCode\",\n        \"labelProp\": [\"nodeCode\", \"nodeName\"],\n        \"dataSource\": [{\n          \"nodeCode\": \"A01S5\",\n          \"nodeName\": \"S50\",\n          \"id\": \"cea77630bbf84afaa2b8e3312a8c5210\"\n        }, {\n          \"nodeCode\": \"DA\",\n          \"nodeName\": \"DA\",\n          \"id\": \"7c3e40c8f1a94e92a28fa545b47b17a3\"\n        }, {\n          \"nodeCode\": \"FA\",\n          \"nodeName\": \"FA\",\n          \"id\": \"d75cd5df841740d8a6a14f194bfc4353\"\n        }, {\n          \"nodeCode\": \"S60\",\n          \"nodeName\": \"S60\",\n          \"id\": \"c404df4806a6479bb4212d6627c69b56\"\n        }, {\n          \"nodeCode\": \"B01E3\",\n          \"nodeName\": \"E30\",\n          \"id\": \"fd780418f76042f2ba9cb423b5d01609\"\n        }, {\n          \"nodeCode\": \"B01E4\",\n          \"nodeName\": \"E40\",\n          \"id\": \"1dd662a8f53f4908b27d3f5edcd3fd9c\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"nodeCode\", \"nodeName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"labelInValue\": true\n      }\n    },\n    \"bomProductCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"产品编码\"),\n      \"required\": false,\n      \"hidden\": false,\n      \"props\": {}\n    },\n    \"partName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件名称\"),\n      \"required\": false,\n      \"hidden\": false,\n      \"props\": {}\n    },\n    \"bomType\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"BOM类型\"),\n      \"required\": true,\n      \"hidden\": false,\n      \"props\": {}\n    }\n  };\n  const defaultData = {\n    \"bomType\": \"EBOM\"\n  };\n  return [schema, defaultData];\n};",
                    "names": [
                        "createDrawerFormSchema2"
                    ],
                    "source": "const createDrawerFormSchema2 = () => {\n  const schema = {\n    \"partCode\": {\n      \"componentType\": \"Select\",\n      \"title\": tr(\"产品\"),\n      \"required\": false,\n      \"type\": \"\",\n      \"hidden\": false,\n      \"props\": {\n        \"isTitleChanged\": true,\n        \"valueProp\": \"nodeCode\",\n        \"labelProp\": [\"nodeCode\", \"nodeName\"],\n        \"dataSource\": [{\n          \"nodeCode\": \"A01S5\",\n          \"nodeName\": \"S50\",\n          \"id\": \"cea77630bbf84afaa2b8e3312a8c5210\"\n        }, {\n          \"nodeCode\": \"DA\",\n          \"nodeName\": \"DA\",\n          \"id\": \"7c3e40c8f1a94e92a28fa545b47b17a3\"\n        }, {\n          \"nodeCode\": \"FA\",\n          \"nodeName\": \"FA\",\n          \"id\": \"d75cd5df841740d8a6a14f194bfc4353\"\n        }, {\n          \"nodeCode\": \"S60\",\n          \"nodeName\": \"S60\",\n          \"id\": \"c404df4806a6479bb4212d6627c69b56\"\n        }, {\n          \"nodeCode\": \"B01E3\",\n          \"nodeName\": \"E30\",\n          \"id\": \"fd780418f76042f2ba9cb423b5d01609\"\n        }, {\n          \"nodeCode\": \"B01E4\",\n          \"nodeName\": \"E40\",\n          \"id\": \"1dd662a8f53f4908b27d3f5edcd3fd9c\"\n        }],\n        \"labelRender\": data => {\n          const labelProp = [\"nodeCode\", \"nodeName\"];\n          return labelProp.map(item => data[item]).join(' ');\n        },\n        \"labelInValue\": true\n      }\n    },\n    \"bomProductCode\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"产品编码\"),\n      \"required\": false,\n      \"hidden\": false,\n      \"props\": {}\n    },\n    \"partName\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"零件名称\"),\n      \"required\": false,\n      \"hidden\": false,\n      \"props\": {}\n    },\n    \"bomType\": {\n      \"componentType\": \"Input\",\n      \"title\": tr(\"BOM类型\"),\n      \"required\": true,\n      \"hidden\": false,\n      \"props\": {}\n    }\n  };\n  const defaultData = {\n    \"bomType\": \"EBOM\"\n  };\n  return [schema, defaultData];\n};",
                    "id": "node_ocmj28lfyzg_DrawerForm_schema_factory",
                    "references": [
                        "node_ocmj28lfyzg.DrawerForm.schemaFactory"
                    ],
                    "metaInfos": {
                        "nodeId": "node_ocmj28lfyzg",
                        "componentName": "DrawerForm"
                    },
                    "private": false,
                    "category": "schema",
                    "targetFile": "schema.tsx",
                    "exported": true
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "const [drawerFormSchema2, newDefaultData3] = useMemo(() => {\n  return createDrawerFormSchema2();\n}, []);",
                    "names": [
                        "drawerFormSchema2",
                        "newDefaultData3"
                    ],
                    "source": "const [drawerFormSchema2, newDefaultData3] = useMemo(() => {\n  return createDrawerFormSchema2();\n}, []);",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useMemo"
                        }
                    ],
                    "id": "node_ocmj28lfyzg_DrawerForm_schema",
                    "references": [
                        "node_ocmj28lfyzg.DrawerForm.schema"
                    ],
                    "metaInfos": {
                        "nodeId": "node_ocmj28lfyzg",
                        "componentName": "DrawerForm"
                    },
                    "private": true,
                    "internalRefs": [
                        "node_ocmj28lfyzg_DrawerForm_schema_factory"
                    ]
                },
                {
                    "type": "JsVarDeclaration",
                    "value": "\n    useEffect(()=>{\n      setDrawerFormDefaultData1(newDefaultData3);\n    },[JSON.stringify(newDefaultData3)]);\n  ",
                    "names": [],
                    "id": "node_ocmj28lfyzg_DrawerForm.defaultData.useEffect",
                    "source": "\n    useEffect(()=>{\n      setDrawerFormDefaultData1(newDefaultData3);\n    },[JSON.stringify(newDefaultData3)]);\n  ",
                    "dependencies": [
                        {
                            "package": "react",
                            "importName": "useEffect"
                        }
                    ],
                    "references": [
                        "node_ocmj28lfyzg.DrawerForm.defaultDataEffect"
                    ],
                    "metaInfos": {
                        "nodeId": "node_ocmj28lfyzg",
                        "componentName": "DrawerForm"
                    },
                    "private": true
                }
            ],
            "css": "",
            "children": [
                {
                    "componentName": "PageSearchFormCard",
                    "id": "node_90614467708",
                    "props": {
                        "onSizeChange": {
                            "type": "JSExpression",
                            "value": "onSearchSizeChange"
                        }
                    },
                    "title": "查询表单容器1",
                    "hidden": false,
                    "isLocked": false,
                    "isAnchored": false,
                    "condition": true,
                    "conditionGroup": "",
                    "children": [
                        {
                            "id": "node_44218142240",
                            "hidden": false,
                            "title": "查询表单1",
                            "isLocked": false,
                            "isAnchored": false,
                            "condition": true,
                            "conditionGroup": "",
                            "componentName": "SearchForm",
                            "props": {
                                "dataId": "node_44218142240",
                                "suppressHistory": true,
                                "suppressFilterTags": {
                                    "type": "JSExpression",
                                    "value": "!isLoaded"
                                },
                                "mode": "advance",
                                "isOperator": true,
                                "onSearch": {
                                    "type": "JSExpression",
                                    "value": "onSearch"
                                },
                                "renderSearchTag": {
                                    "type": "JSExpression",
                                    "value": "renderSearchTag"
                                },
                                "suppressViewsConfig": false,
                                "searchTitle": {
                                    "type": "i18n",
                                    "zh-CN": "EBOM构建与维护"
                                },
                                "searchIcon": {
                                    "componentName": "MenuIcon",
                                    "id": "",
                                    "props": {
                                        "type": "gradient",
                                        "name": "EBOM",
                                        "size": 32
                                    },
                                    "title": "菜单图标",
                                    "hidden": false,
                                    "isLocked": false,
                                    "isAnchored": false,
                                    "condition": true,
                                    "conditionGroup": ""
                                },
                                "searchDesc": {
                                    "type": "i18n",
                                    "zh-CN": "工程BOM中所有BOM数据的更改（如新增、修改、删除、替换），必须通过严格的变更发布流程，每条发布的BOM数据都有自己的生效时间段，因此可以精确的查询出"
                                },
                                "schema": {
                                    "type": "JSExpression",
                                    "value": "searchFormSchema"
                                },
                                "defaultData": {
                                    "type": "JSExpression",
                                    "value": "searchFormDefaultData"
                                }
                            }
                        }
                    ]
                },
                {
                    "componentName": "PageGridCard",
                    "id": "node_50109289809",
                    "props": {
                        "fullscreen": true,
                        "onFullscreenChange": {
                            "type": "JSExpression",
                            "value": "onFullscreenChange"
                        },
                        "onHeaderSizeChange": {
                            "type": "JSExpression",
                            "value": "onHeaderSizeChange"
                        },
                        "extraLeft": {
                            "type": "JSSlot",
                            "value": [
                                {
                                    "componentName": "AddButton",
                                    "props": {
                                        "dataSource": {
                                            "type": "JSExpression",
                                            "value": "dataSource"
                                        },
                                        "setDataSource": {
                                            "type": "JSExpression",
                                            "value": "setDataSource"
                                        },
                                        "_onRemove": {
                                            "type": "JSExpression",
                                            "value": "_onRemove"
                                        },
                                        "onCreate1": {
                                            "type": "JSExpression",
                                            "value": "onCreate1"
                                        },
                                        "onCreate2": {
                                            "type": "JSExpression",
                                            "value": "onCreate2"
                                        }
                                    },
                                    "id": "extracted_AddButton"
                                }
                            ]
                        },
                        "extra": {
                            "type": "JSSlot",
                            "value": [
                                {
                                    "componentName": "Button.EditGroup",
                                    "id": "node_03676804537",
                                    "props": {
                                        "editable": {
                                            "type": "JSExpression",
                                            "value": "editable"
                                        },
                                        "saveLoading": {
                                            "type": "JSExpression",
                                            "value": "saveLoading"
                                        },
                                        "interEdit": {
                                            "type": "JSExpression",
                                            "value": "interEdit"
                                        },
                                        "cancelEdit": {
                                            "type": "JSExpression",
                                            "value": "cancelEdit"
                                        },
                                        "onSave": {
                                            "type": "JSExpression",
                                            "value": "onSave"
                                        },
                                        "disabled": {
                                            "type": "JSExpression",
                                            "isFixed": false,
                                            "variableName": "",
                                            "statementId": "",
                                            "value": "dataSource.length>0?false:true"
                                        },
                                        "extra": {
                                            "type": "JSSlot",
                                            "value": [
                                                {
                                                    "componentName": "Button",
                                                    "id": "node_ocmj2ff3la2r",
                                                    "props": {
                                                        "children": {
                                                            "type": "i18n",
                                                            "zh-CN": "批量维护"
                                                        },
                                                        "buttonType": "Common",
                                                        "events": [],
                                                        "disabled": true,
                                                        "compact": true
                                                    },
                                                    "title": "批量维护",
                                                    "hidden": false,
                                                    "isLocked": false,
                                                    "isAnchored": false,
                                                    "condition": true,
                                                    "conditionGroup": ""
                                                },
                                                {
                                                    "componentName": "Button",
                                                    "id": "node_ocmj2ff3la18",
                                                    "props": {
                                                        "children": {
                                                            "type": "i18n",
                                                            "zh-CN": "替换"
                                                        },
                                                        "buttonType": "Common",
                                                        "events": [],
                                                        "disabled": true,
                                                        "compact": true
                                                    },
                                                    "title": "替换",
                                                    "hidden": false,
                                                    "isLocked": false,
                                                    "isAnchored": false,
                                                    "condition": true,
                                                    "conditionGroup": ""
                                                }
                                            ],
                                            "id": "node_ocmj2ff3la1"
                                        }
                                    },
                                    "hidden": false,
                                    "title": "编辑按钮组1",
                                    "isLocked": false,
                                    "condition": true,
                                    "conditionGroup": "",
                                    "isAnchored": false
                                }
                            ],
                            "id": "node_59447828498"
                        }
                    },
                    "title": "表格容器1",
                    "hidden": false,
                    "isLocked": false,
                    "condition": true,
                    "conditionGroup": "",
                    "isAnchored": false,
                    "children": [
                        {
                            "id": "node_18033288798",
                            "docId": "docm3nux76n",
                            "hidden": false,
                            "title": "表格1",
                            "isLocked": false,
                            "isAnchored": false,
                            "condition": true,
                            "conditionGroup": "",
                            "componentName": "Grid",
                            "props": {
                                "rowkey": "id",
                                "columns": {
                                    "type": "JSExpression",
                                    "value": "gridSchema"
                                },
                                "treeData": true,
                                "groupDefaultExpanded": -1,
                                "rowBuffer": 10,
                                "suppressColumnVirtualisation": false,
                                "hideSelectedBox": true,
                                "isPagination": true,
                                "size": "default",
                                "height": {
                                    "type": "JSExpression",
                                    "value": "gridHeight"
                                },
                                "dataSource": {
                                    "type": "JSExpression",
                                    "value": "dataSource"
                                },
                                "rowSelection": {
                                    "type": "JSExpression",
                                    "value": "rowSelection"
                                },
                                "isServerSideGroup": {
                                    "type": "JSExpression",
                                    "value": "(data) => !data?.leaf"
                                },
                                "pagination": false,
                                "onReady": {
                                    "type": "JSExpression",
                                    "value": "onGridReady"
                                },
                                "editable": {
                                    "type": "JSExpression",
                                    "value": "editable"
                                },
                                "getDataPath": {
                                    "type": "JSExpression",
                                    "value": "getDataPath"
                                },
                                "context": {
                                    "type": "JSExpression",
                                    "value": "context"
                                },
                                "onCellEditChange": {
                                    "type": "JSExpression",
                                    "value": "onCellEditChange"
                                },
                                "isInlineEdit": true,
                                "serialNumber": {
                                    "headerName": {
                                        "type": "i18n",
                                        "zh-CN": "序号"
                                    }
                                }
                            }
                        }
                    ]
                },
                {
                    "id": "node_69525166987",
                    "hidden": true,
                    "drawerTitle": "",
                    "isLocked": false,
                    "condition": true,
                    "conditionGroup": "",
                    "title": "新增",
                    "isAnchored": false,
                    "componentName": "DrawerForm",
                    "props": {
                        "title": {
                            "type": "i18n",
                            "zh-CN": "新增"
                        },
                        "width": "middle",
                        "uiSchema": {
                            "ui:col": 12,
                            "ui:labelCol": {
                                "span": 24
                            },
                            "ui:labelAlign": "left"
                        },
                        "formRowProps": {
                            "gutter": [
                                10
                            ]
                        },
                        "isContinueCreate": true,
                        "placement": "right",
                        "okText": {
                            "type": "i18n",
                            "zh-CN": "保存"
                        },
                        "resetText": {
                            "type": "i18n",
                            "zh-CN": "重置"
                        },
                        "mask": true,
                        "closeValidateChange": true,
                        "form": {
                            "type": "JSExpression",
                            "value": "form2"
                        },
                        "open": {
                            "type": "JSExpression",
                            "value": "open2"
                        },
                        "onCancel": {
                            "type": "JSExpression",
                            "value": "onCancel2"
                        },
                        "onSubmit": {
                            "type": "JSExpression",
                            "value": "onSubmit2"
                        },
                        "confirmLoading": {
                            "type": "JSExpression",
                            "value": "confirmLoading2"
                        },
                        "registReset": {
                            "type": "JSExpression",
                            "value": "registReset2"
                        },
                        "data": {
                            "type": "JSExpression",
                            "value": "defaultData2"
                        },
                        "schemaFormProps": {
                            "onFormValueChange": {
                                "type": "JSExpression",
                                "value": "onFormValueChange1"
                            }
                        },
                        "schema": {
                            "type": "JSExpression",
                            "value": "drawerFormSchema1"
                        },
                        "defaultData": {
                            "type": "JSExpression",
                            "value": "defaultData2"
                        }
                    }
                },
                {
                    "id": "node_ocmj28lfyzg",
                    "hidden": true,
                    "drawerTitle": "",
                    "isLocked": false,
                    "condition": true,
                    "conditionGroup": "",
                    "isAnchored": false,
                    "title": "初始化产品BOM",
                    "componentName": "DrawerForm",
                    "props": {
                        "multiple": false,
                        "width": "small",
                        "uiSchema": {
                            "ui:col": 24,
                            "ui:labelCol": {
                                "flex": "120px"
                            }
                        },
                        "schemaFormProps": {
                            "formRowProps": {
                                "gutter": [
                                    10
                                ]
                            },
                            "onFormValueChange": {
                                "type": "JSExpression",
                                "value": "onFormValueChange2"
                            }
                        },
                        "isContinueCreate": true,
                        "title": {
                            "type": "i18n",
                            "zh-CN": "初始化产品BOM"
                        },
                        "okText": {
                            "type": "i18n",
                            "zh-CN": "保存"
                        },
                        "resetText": {
                            "type": "i18n",
                            "zh-CN": "重置"
                        },
                        "mask": true,
                        "closeValidateChange": true,
                        "form": {
                            "type": "JSExpression",
                            "value": "form1"
                        },
                        "open": {
                            "type": "JSExpression",
                            "value": "open1"
                        },
                        "onCancel": {
                            "type": "JSExpression",
                            "value": "onCancel1"
                        },
                        "onSubmit": {
                            "type": "JSExpression",
                            "value": "onSubmit1"
                        },
                        "confirmLoading": {
                            "type": "JSExpression",
                            "value": "confirmLoading1"
                        },
                        "registReset": {
                            "type": "JSExpression",
                            "value": "registReset1"
                        },
                        "data": {
                            "type": "JSExpression",
                            "value": "defaultData1"
                        },
                        "footer": {
                            "type": "JSExpression",
                            "value": "!formDrawerDisabled"
                        },
                        "schema": {
                            "type": "JSExpression",
                            "value": "drawerFormSchema2"
                        },
                        "defaultData": {
                            "type": "JSExpression",
                            "value": "defaultData1"
                        }
                    }
                }
            ]
        },
        {
            "componentName": "Block",
            "fileName": "testbom/engineerbom/AddButton",
            "children": [
                {
                    "componentName": "Button.GradientPrimaryAdd",
                    "id": "node_74786236282",
                    "props": {
                        "children": {
                            "type": "i18n",
                            "zh-CN": "新增"
                        },
                        "buttonType": "add",
                        "gridBtnKey": "isCreate",
                        "type": "primary",
                        "onClick": {
                            "type": "JSExpression",
                            "value": "onCreate1"
                        },
                        "disabled": {
                            "type": "JSExpression",
                            "isFixed": false,
                            "variableName": "",
                            "statementId": "",
                            "value": "dataSource.length>0?false:true"
                        }
                    },
                    "hidden": false,
                    "isLocked": false,
                    "condition": true,
                    "conditionGroup": "",
                    "isAnchored": false,
                    "title": "新增1"
                },
                {
                    "componentName": "Button",
                    "id": "node_68150988732",
                    "props": {
                        "children": {
                            "type": "i18n",
                            "zh-CN": "删除"
                        },
                        "buttonType": "remove",
                        "gridBtnKey": "isRemove",
                        "type": "primary",
                        "onClick": {
                            "type": "JSExpression",
                            "value": "_onRemove"
                        },
                        "disabled": {
                            "type": "JSExpression",
                            "isFixed": false,
                            "variableName": "",
                            "statementId": "",
                            "value": "dataSource.length>0?false:true"
                        }
                    },
                    "hidden": false,
                    "title": "删除",
                    "isLocked": false,
                    "condition": true,
                    "conditionGroup": "",
                    "isAnchored": false
                },
                {
                    "componentName": "Button",
                    "id": "node_ocmj28lfyzf",
                    "props": {
                        "children": {
                            "type": "i18n",
                            "zh-CN": "初始化产品BOM"
                        },
                        "buttonType": "Common",
                        "events": [],
                        "disabled": {
                            "type": "JSExpression",
                            "isFixed": false,
                            "variableName": "",
                            "statementId": "",
                            "value": "dataSource.length>0"
                        },
                        "onClick": {
                            "type": "JSExpression",
                            "value": "onCreate2"
                        }
                    },
                    "hidden": false,
                    "isLocked": false,
                    "isAnchored": false,
                    "condition": true,
                    "conditionGroup": "",
                    "title": "初始化产品BOM1"
                },
                {
                    "componentName": "Button",
                    "id": "node_ocmj2ff3la3i",
                    "props": {
                        "children": {
                            "type": "i18n",
                            "zh-CN": "关联变更"
                        },
                        "buttonType": "Common",
                        "events": [],
                        "disabled": true
                    },
                    "title": "关联变更",
                    "hidden": false,
                    "isLocked": false,
                    "isAnchored": false,
                    "condition": true,
                    "conditionGroup": ""
                },
                {
                    "componentName": "Button",
                    "id": "node_ocmj2ff3la47",
                    "props": {
                        "children": {
                            "type": "i18n",
                            "zh-CN": "适用的变型产品"
                        },
                        "buttonType": "Common",
                        "events": [],
                        "disabled": true
                    },
                    "title": "适用的变型产品",
                    "hidden": false,
                    "isLocked": false,
                    "isAnchored": false,
                    "condition": true,
                    "conditionGroup": ""
                }
            ],
            "statements": [
                {
                    "type": "JsVarDeclaration",
                    "value": "const { dataSource, setDataSource, _onRemove, onCreate1, onCreate2 } = props;",
                    "names": [
                        "dataSource",
                        "setDataSource",
                        "_onRemove",
                        "onCreate1",
                        "onCreate2"
                    ],
                    "id": "__slot_extraction_props__",
                    "private": true
                }
            ],
            "props": {},
            "meta": {
                "__slotExtraction": true,
                "__parentContainer": "testbom/engineerbom",
                "__sharedProps": {
                    "dataSource": "node_18033288798_useDataSource",
                    "setDataSource": "node_18033288798_useDataSource",
                    "_onRemove": "node_18033288798_onGridRemoveFn",
                    "onCreate1": "node_74786236282_onGridCreateFn",
                    "onCreate2": "node_ocmj28lfyzf_onGridCreateFn"
                }
            }
        }
    ],
    "i18n": {},
    "config": {
        "microServiceMap": {
            "mstdata": [
                null
            ]
        }
    },
    "utils": [
        {
            "name": "getCombonationColumn",
            "export": true,
            "type": "function",
            "content": {
                "value": "(column: any, gap: number, ...items: (Record<string, any> | string)[]) => {\n              if (items.length === 0) {\n                return column;\n              }\n              items = items.filter(Boolean);\n              const first = items.find(item => !isString(item) && !!item.cellRenderer) as Record<string, any>;\n              const others = items.filter(item => item !== first);\n              const render = (text: any, data: any, index: number, params: any) => (\n                <div style={{ display: 'flex', gap }}>\n                  {first && <span>{get(data, first.fieldName)}</span>}\n                  {others.map((item, i) => {\n                    if (typeof item === 'string') {\n                      return <span key={i}>{get(data, item)}</span>;\n                    }\n                    if (item && typeof item.render === 'function') {\n                      return <span key={i}>{item.render(data[item.fieldName], data, index, params)}</span>;\n                    }\n                    if (item && typeof item.valueGetter === 'function') {\n                      return <span key={i}>{item.valueGetter(params)}</span>;\n                    }\n                    if (item && typeof item.valueFormatter === 'function') {\n                      return <span key={i}>{item.valueFormatter({ value: data[item.fieldName], ...params })}</span>;\n                    }\n                    return null;\n                  })}\n                </div>\n              );\n              if (!first || isString(first)) {\n                return {\n                  ...column,\n                  render,\n                };\n              }\n\n              return {\n                ...first,\n                render,\n              };\n            }\n            "
            },
            "dependencies": "import React from 'react'; import { set, get, isString } from 'lodash-es';"
        },
        {
            "name": "useRequestStore",
            "export": true,
            "type": "function",
            "content": {
                "value": "\n              create<RequestType>((set, get) => ({\n                dataSource: [],\n                setDataSource: dataSource => set({ dataSource }),\n              }))\n            "
            },
            "dependencies": "import { create } from 'zustand';"
        },
        {
            "name": "filterTreeByParams",
            "export": true,
            "type": "function",
            "content": {
                "value": "\n              (list, paramsList, level = 0, childrenKey = 'children') => { // 此方法为省市区联动数据过滤方法\n                const filteredList = [];\n                const expectedValue = paramsList[level];\n\n                // 如果当前层级没有对应的过滤值，返回空\n                if (!expectedValue) {\n                  return list;\n                }\n\n                for (const item of list) {\n                  const matchesSelf = item['code'] === expectedValue;\n                  const hasChildren = item[childrenKey] && item[childrenKey].length > 0;\n                  const hasNextLevel = paramsList[level + 1] !== undefined;\n\n                  if (matchesSelf) {\n                    if (hasNextLevel && hasChildren) {\n                      // 还有下一层级的过滤条件，继续递归\n                      const result = filterTreeByParams(item[childrenKey], paramsList, level + 1, childrenKey);\n                      if (result.length > 0) {\n                        return result;\n                      }\n                    } else if (!hasNextLevel && hasChildren) {\n                      // 当前是最后一层过滤条件，返回其 children\n                      return item[childrenKey];\n                    }\n                  } else if (hasChildren) {\n                    // 不匹配自身，递归处理 children（保持当前层级）\n                    const filteredChildren = filterTreeByParams(item[childrenKey], paramsList, level, childrenKey);\n                    if (filteredChildren.length > 0) {\n                      filteredList.push(...filteredChildren);\n                    }\n                  }\n                }\n                return filteredList;\n              };\n            "
            },
            "dependencies": "import { set, get } from 'lodash-es';"
        }
    ]
}
