| | |
| | | state = { |
| | | flowType: 'approval', |
| | | execCondition: false, |
| | | seniorCondition: false, |
| | | approvalMethod: 'orsign', |
| | | readOnly: false, |
| | | options: [] |
| | |
| | | readOnly = true |
| | | } else if (node.mknode === 'end') { |
| | | |
| | | } else if (node.mknode === 'throughEdge') { |
| | | options = ['senior'] |
| | | } else if (node.mknode === 'endEdge') { |
| | | options = ['approvalMethod', 'execCondition'] |
| | | } else if (node.mknode === 'startEdge') { |
| | |
| | | } else if (node.shape !== 'edge') { // node |
| | | options = ['sign'] |
| | | } else { |
| | | options = ['flowType', 'approvalMethod', 'approver', 'members', 'copys', 'execCondition'] |
| | | options = ['flowType', 'approvalMethod', 'approver', 'members', 'copys', 'execCondition', 'senior'] |
| | | } |
| | | |
| | | this.setState({ |
| | | flowType: data.flowType || 'approval', |
| | | execCondition: options.includes('execCondition') && data.execCondition === 'open', |
| | | execCondition: options.includes('execCondition') ? data.execCondition === 'open' : false, |
| | | seniorCondition: options.includes('senior') ? data.seniorCondition === 'open' : false, |
| | | approvalMethod: data.approvalMethod || 'orsign', |
| | | options, |
| | | readOnly |
| | |
| | | } |
| | | |
| | | handleConfirm = () => { |
| | | const { node } = this.props |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | this.props.form.validateFieldsAndScroll((err, values) => { |
| | | if (!err) { |
| | | |
| | | if (values.approvalMethod === 'countersign' && values.members.length > 5) { |
| | | notification.warning({ |
| | | top: 92, |
| | |
| | | duration: 10 |
| | | }) |
| | | return |
| | | } else if (node.mknode === 'throughEdge' && values.seniorCondition === false) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '开始与结束直连的分支必须设置特殊审批人!', |
| | | duration: 10 |
| | | }) |
| | | return |
| | | } |
| | | |
| | | if (values.seniorCondition === true) { |
| | | values.seniorCondition = 'open' |
| | | } else if (values.seniorCondition === false) { |
| | | values.seniorCondition = 'close' |
| | | } |
| | | |
| | | if (values.execCondition === true) { |
| | |
| | | render() { |
| | | const { orgs } = this.props |
| | | const { getFieldDecorator } = this.props.form |
| | | const { flowType, execCondition, approvalMethod, readOnly, options } = this.state |
| | | const { flowType, execCondition, seniorCondition, approvalMethod, readOnly, options } = this.state |
| | | const formItemLayout = { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | {options.includes('senior') && flowType !== 'reject' && approvalMethod !== 'countersign' ? <Col span={24}> |
| | | <p className="mk-split">高级设置<span style={{fontSize: '12px', color: 'rgba(0, 0, 0, 0.45)'}}>(启用特殊审批人时,符合审批人列表时,优先使用此分支。)</span></p> |
| | | </Col> : null} |
| | | {options.includes('senior') && flowType !== 'reject' && approvalMethod !== 'countersign' ? <Col span={12}> |
| | | <Form.Item label="特殊人员"> |
| | | {getFieldDecorator('seniorCondition', { |
| | | valuePropName: 'checked', |
| | | initialValue: seniorCondition |
| | | })( |
| | | <Switch checkedChildren="启用" unCheckedChildren="禁用" onChange={(val) => this.setState({seniorCondition: val})} /> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | {options.includes('senior') && flowType !== 'reject' && approvalMethod !== 'countersign' && seniorCondition ? <Col span={12}> |
| | | <Form.Item label="审批人"> |
| | | {getFieldDecorator('seniorbers', { |
| | | initialValue: data.seniorbers || [], |
| | | rules: [ |
| | | { required: true, message: '请添加审批人!' } |
| | | ] |
| | | })( |
| | | <MemberForm orgs={orgs} title="审批人"/> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | {options.includes('senior') && flowType !== 'reject' && approvalMethod !== 'countersign' && seniorCondition ? <Col span={12}> |
| | | <Form.Item label={ |
| | | <Tooltip placement="topLeft" title="用于业务处理时的标记值@works_flow_sign@。"> |
| | | <QuestionCircleOutlined className="mk-form-tip" /> |
| | | 分支标记 |
| | | </Tooltip> |
| | | }> |
| | | {getFieldDecorator('seniorSign', { |
| | | initialValue: data.seniorSign || '', |
| | | rules: [ |
| | | { required: true, message: '请添加分支标记!' }, |
| | | { pattern: /^[0-9a-zA-Z_]+$/, message: '只可输入英文、数字以及_。' } |
| | | ] |
| | | })( |
| | | <Input autoComplete="off" onPressEnter={() => this.props.handleSubmit()}/> |
| | | )} |
| | | </Form.Item> |
| | | </Col> : null} |
| | | </Row> |
| | | </Form> |
| | | ) |