import React, { useState, useEffect } from 'react'; import { FlowchartFormWrapper, MODELS, useXFlowApp } from '@antv/xflow'; import { Position, Size, ColorPicker, InputNumberFiled, InputFiled, SelectField } from '../fields'; import { PREFIX } from '../constants'; import { connect } from 'dva'; import { UnityAction } from '@/utils/utils'; import { Button } from 'antd'; import { IProps } from '@/components/Flow/index'; export interface IConfig { label?: string; x?: number; y?: number; width?: number; height?: number; count?: number; fontSize?: number; fontFill?: string; fill?: string; stroke?: string; flow_id?: string; flow_node_id?: string; process_code?: string; node_type_psr?: number | string; node_psr_classify?: number | string; } const defaultConfig: IConfig = { node_type_psr: 0, }; const Component = (props: any) => { const { config, plugin = {}, auditList } = props; const { updateNode } = plugin; const [nodeConfig, setNodeConfig] = useState({ ...defaultConfig, ...config, }); const app = useXFlowApp(); const [meta, setMeta] = useState(null); const onNodeConfigChange = (key: string, value: number | string | object) => { if (key) { setNodeConfig({ ...nodeConfig, [key]: value, }); updateNode({ [key]: value, }); } else if (value instanceof Object) { setNodeConfig({ ...nodeConfig, ...value, }); updateNode({ ...value, }); } }; const onSave = () => { UnityAction.emit('NODE_SAVE', nodeConfig); }; useEffect(() => { setNodeConfig({ ...config, }); }, [config]); useEffect(() => { MODELS.GRAPH_META.useValue(app.modelService).then((meta: IProps['meta']) => { setMeta(meta); }); }, []); return (
内容
{ onNodeConfigChange('label', value); }} />
数据
{ let audit = auditList.find(item => item.list.id == value); onNodeConfigChange(null, { flow_node_id: audit.list.FlowNodes[0]?.id, flow_id: value, process_code: audit.list.process_code, }); }} options={auditList.map(item => { const list = item.list; return { label: list.name || list.id, value: list.id, }; })} /> { onNodeConfigChange('node_type_psr', value); }} options={[ { label: '默认', value: 0 }, { label: '投标版', value: 1 }, { label: '签字版', value: 2 }, { label: '投标测算', value: 3 }, { label: '合同测算', value: 4 }, { label: '采购合同', value: 5 }, { label: '方案总审', value: 6 }, { label: '清单权限', value: 7 }, //发起人和审批人可见 ]} /> { onNodeConfigChange('node_psr_classify', value); }} options={[ { label: '其他', value: 0 }, { label: '清单审核', value: 1 }, { label: '合同审核', value: 2 }, { label: 'PSR审核', value: 3 }, ]} />
{meta?.editMode != 2 && ( <>
样式
{ onNodeConfigChange(key, value); }} /> { onNodeConfigChange(key, value); }} /> { onNodeConfigChange('fill', value); }} /> { onNodeConfigChange('stroke', value); }} /> { onNodeConfigChange('count', value); }} />
{ onNodeConfigChange('fontSize', value); }} /> { onNodeConfigChange('fontFill', value); }} />
)}
); }; function RecthServe(props: any) { return ( {(config, plugin) => } ); } export default connect(({ xflow }) => ({ auditList: xflow.auditList }))(RecthServe);