javascript - Sebastien 的 jquery.flowchart 如何手动添加运算符连接器、重命名运算符连接器、保存

标签 javascript jquery ajax flowchart

我正在使用 Sebastien 的这个 jquery 插件

https://github.com/sdrdis/jquery.flowchart

它是一个开源 ui 插件,我可以用它来绘制我正在开发的系统的流程。问题是我想做一些调整,但我对 jquery 的了解不足以自己开发它。

这是我必须做的。

  1. 如何编辑操作连接器。
  2. 手动重命名连接器。
  3. 完成所有方法后。保存流程图。

这是我到目前为止所拥有的。

HTML

<div class="col-md-12">
    <div class="demo" id="example_8"></div>
    <button class="btn btn-primary" id="create_operator">Create A Start Operation</button>
    <button class="btn btn-danger" id="delete_selected_button">Delete Selected Operation</button>

    <div id="operator_properties">
        <label for="operator_title">Operator's title: </label><input type="text" id="operator_title">
        <label for="operator_input">Input: <input type="text" id="operator_input" /></label>
    </div>
</div>

jquery

$(document).ready(function () {
var data = {
    operators: {
        operator1: {
            top: 20,
            left: 20,
            properties: {
                title: 'Operator 1',
                inputs: {},
                outputs: {
                    output_1: {
                        label: 'Output 1',
                    }
                }
            }
        },
        operator2: {
            top: 80,
            left: 300,
            properties: {
                title: 'Operator 2',
                inputs: {
                    input_1: {
                        label: 'Input 1',
                    },
                    input_2: {
                        label: 'Input 2',
                    },
                },
                outputs: {}
            }
        },
    },
    links: {
        link_1: {
            fromOperator: 'operator1',
            fromConnector: 'output_1',
            toOperator: 'operator2',
            toConnector: 'input_2',
        },
    }
};

var $operatorProperties = $('#operator_properties');
var $linkProperties = $('#link_properties');
var $operatorTitle = $('#operator_title');
var $linkColor = $('#link_color');

// Apply the plugin on a standard, empty div...
var $flowchart = $('#example_8');
$flowchart.flowchart({
    data: data,
    onOperatorSelect: function (operatorId) {
        $operatorTitle.val($flowchart.flowchart('getOperatorTitle', operatorId));
        return true;
    },
    onOperatorUnselect: function () {
        $operatorProperties.hide();
        return true;
    }
});

$operatorTitle.keyup(function () {
    var selectedOperatorId = $flowchart.flowchart('getSelectedOperatorId');
    if (selectedOperatorId != null) {
        $flowchart.flowchart('setOperatorTitle', selectedOperatorId, $operatorTitle.val());
    }
});

var operatorI = 0;
$flowchart.siblings('#create_operator').click(function () {
    var operatorId = 'created_operator_' + operatorI;
    var operatorData = {
        top: 60,
        left: 500,
        properties: {
            title: 'Operator ' + (operatorI + 3),
            inputs: {
                input_1: {
                    label: 'Input 1',
                }
            },
            outputs: {
                output_1: {
                    label: 'Output 1',
                }
            }
        }
    };

    $operatorProperties.show();

    operatorI++;

    $flowchart.flowchart('createOperator', operatorId, operatorData);
});

$flowchart.siblings('#delete_selected_button').click(function () {
    $flowchart.flowchart('deleteSelected');
});


});

最佳答案

我的解决方案是:

function create(nname, inC, outC) {
                var inp = '';
                var outp = '';
                if (inC &lt; 0) {
                    inp = '"ins":{"label":"Input (:i)","multiple":true}';
                } else if (inC > 0) {
                    for (i = 0; i &lt; inC; i++) {
                        inp += '"input_' + i + '":{"label":"Input (:i)"}';
                        if ((inC - 1) > i)
                            inp += ',';
                    }
                }
                if (outC &lt; 0) {
                    outp = '"outs":{"label":"Output (:i)","multiple":true}';
                } else if (outC > 0) {
                    for (i = 0; i &lt; outC; i++) {
                        outp += '"output_' + i + '":{"label":"Output (:i)"}';
                        if ((outC - 1) > i)
                            outp += ',';
                    }
                }
                var operatorId = 'nname' + operatorI;
                var operatorData = '{"top":200,"left":200,"properties":{"title":"'+nname+'","inputs":{' + inp + '},"outputs":{' + outp + '}}}';

                operatorI++;

                $flowchart.flowchart('createOperator', operatorId, JSON.parse(operatorData));
            }

关于javascript - Sebastien 的 jquery.flowchart 如何手动添加运算符连接器、重命名运算符连接器、保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509286/

相关文章:

javascript - 使用 Rails 4,需要帮助制作更好的侧边栏导航菜单

javascript - Twitter 关注按钮 : Get the status (followed or not) of the button on load with javascript?

jquery - 我怎样才能给这张图片赋予倾斜阴影?

javascript - 使用 Javascript/Jquery/PHP 实现菜单栏

javascript - NodeJS 抛出非法指令 : 4 on Mac OS

javascript - 水平和垂直滚动 HTML 表格,同时左列固定,标题固定以进行垂直滚动

java - JQuery AJAX 无法获得成功回调函数

javascript - 如何根据表单输入添加动态复选框?

javascript - 在提交任何内容之前必须按 Enter(或按钮)两次

javascript - 如何同步 ajax 和非 ajax 代码路径