diff --git a/frontend/packages/flow-design/src/components/editor/context/index.ts b/frontend/packages/flow-design/src/components/editor/context/index.ts index d709eeb6..b0637c0b 100644 --- a/frontend/packages/flow-design/src/components/editor/context/index.ts +++ b/frontend/packages/flow-design/src/components/editor/context/index.ts @@ -1,3 +1,2 @@ export { NodeRenderContext } from './node-render-context'; -export { IsSidebarContext } from './sidebar-context'; -export { NodeDisplayManager } from './node-display-manager'; +export { IsSidebarContext } from './sidebar-context'; \ No newline at end of file diff --git a/frontend/packages/flow-design/src/components/editor/context/node-display-manager.ts b/frontend/packages/flow-design/src/components/editor/context/node-display-manager.ts deleted file mode 100644 index 3bb70cf6..00000000 --- a/frontend/packages/flow-design/src/components/editor/context/node-display-manager.ts +++ /dev/null @@ -1,67 +0,0 @@ -import {FlowNode} from "@/pages/design-panel/types"; -import {StrategyRenderFactory} from "@/components/editor/node-components/strategy"; - -export class NodeDisplayManager { - - private readonly nodes: FlowNode[]; - private readonly currentId: string; - - public static readonly STRATEGY_KEY = 'strategyType'; - - public constructor(currentId: string, nodes: FlowNode[]) { - this.currentId = currentId; - this.nodes = nodes; - } - - public showAction() { - const node = this.getNode(this.currentId); - if (node) { - if (node.actions && node.actions.length > 0) { - return true; - } - } - return false; - } - - - public showPromission() { - const node = this.getNode(this.currentId); - if (node) { - if (node.strategies && node.strategies.length > 0) { - for (const strategy of node.strategies) { - if (strategy[NodeDisplayManager.STRATEGY_KEY] === 'FormFieldPermissionStrategy') { - return true; - } - } - } - } - return false; - } - - private getNode(id: string) { - for (const node of this.nodes) { - if (node.id === id) { - return node; - } - } - return null; - } - - private getNodeStrategyKeys(){ - const node = this.getNode(this.currentId); - if(node){ - const strategies = node.strategies || []; - let strategyKeys:string[] = []; - for (const strategy of strategies) { - const strategyKey = strategy[NodeDisplayManager.STRATEGY_KEY]; - strategyKeys.push(strategyKey); - } - return strategyKeys; - } - return []; - } - - public getStrategyRenderManager(){ - return new StrategyRenderFactory(this.getNodeStrategyKeys()); - } -} diff --git a/frontend/packages/flow-design/src/components/editor/hooks/index.ts b/frontend/packages/flow-design/src/components/editor/hooks/index.ts index 9ae72665..12573ed7 100644 --- a/frontend/packages/flow-design/src/components/editor/hooks/index.ts +++ b/frontend/packages/flow-design/src/components/editor/hooks/index.ts @@ -1,3 +1,2 @@ export {useEditorProps} from './use-editor-props'; -export {useIsSidebar} from './use-is-sidebar'; -export {useNodeDisplayManager} from "./use-node-display-manager"; +export {useIsSidebar} from './use-is-sidebar'; \ No newline at end of file diff --git a/frontend/packages/flow-design/src/components/editor/node-components/promission/index.ts b/frontend/packages/flow-design/src/components/editor/node-components/promission/index.ts index 73c24ea2..90434d7c 100644 --- a/frontend/packages/flow-design/src/components/editor/node-components/promission/index.ts +++ b/frontend/packages/flow-design/src/components/editor/node-components/promission/index.ts @@ -14,14 +14,18 @@ export class PromissionManager { this.formList =[form,...(form.subForms||[])]; } - public getDatasource(code: string) { - const list = this.data.filter(item => item.formCode === code) || []; - return list.map(item => { - return { - ...item, - fieldName:this.getFieldName(item.formCode,item.fieldCode) + private getFormFields(code:string){ + for (const form of this.formList){ + if (code === form.code){ + return form.fields; } - }); + } + return []; + } + + + public getDatasource(code: string) { + return this.convertFieldsToColumns(code) } private getFieldName(formCode:string,fieldCode:string){ @@ -38,6 +42,30 @@ export class PromissionManager { return null; } + private convertFieldsToColumns(code:string){ + const currentColumns = this.data.filter(item => item.formCode === code) || []; + + return this.getFormFields(code).map(field => { + return { + id: field.id, + fieldName: field.name, + fieldCode: field.code, + formCode: code, + type: 'WRITE', + } + }).map(field => { + const currentColumnType = currentColumns.find(column => column.fieldCode === field.fieldCode); + if(currentColumnType){ + return { + ...field, + type:currentColumnType.type + } + }else { + return field; + } + }); + } + public initFormPromission() { if (this.data && this.data.length > 0) { return; diff --git a/frontend/packages/flow-design/src/pages/design-panel/presenters/index.ts b/frontend/packages/flow-design/src/pages/design-panel/presenters/index.ts index 2dfe5435..88f38d4b 100644 --- a/frontend/packages/flow-design/src/pages/design-panel/presenters/index.ts +++ b/frontend/packages/flow-design/src/pages/design-panel/presenters/index.ts @@ -37,7 +37,6 @@ export class Presenter { nodes.push(...prevWorkflow.nodes); } } - console.log('update nodes:',nodes); return { ...prevWorkflow, ...currentWorkflow,