【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

接口作用

扩展决策平台中“系统管理”菜单下的tab项,默认的包括常规、打印、邮箱、缓存、数据连接。

接口内容

JavaScript
FS.Plugin.SystemItems = [];

示例实现

关键调用
FS.Plugin.SystemItems.push({
    ui : {},
    pop : function(idx, tabPane) {}
});
memory.config.js
var currentTabPane;
var settingsUI = function () {
    var items = [
        [
            {el: {type: 'llabel', value: FR.i18nText('Plugin-Memory_Alarm_Interrupt_Value')}},
            {el: {type: 'number', widgetName: 'interruptValue'}}
        ],
        [
            {el: {type: 'llabel', value: FR.i18nText('Plugin-Memory_Alarm_Interrupt_Percent')}},
            {el: {type: 'number', widgetName: 'interruptPercent', minValue: 0, maxValue: 100}}
        ],
        [
            {el: {type: 'llabel', value: FR.i18nText('Plugin-Memory_Alarm_Interval')}},
            {el: {type: 'number', widgetName: 'interval', minValue: 0}}
        ],
        [
            {el: {type: 'llabel', value: FR.i18nText('Plugin-Memory_Alarm_Message')}},
            {el: {type: 'text', widgetName: 'message', 'watermark': 'Error Message:${usable}, ${percent}!'}}
        ],
        [
            {el: {type: 'llabel', value: FR.i18nText('Plugin-Memory_Alarm_Mode')}},
            {
                el: {
                    type: 'combo', widgetName: 'mode', allowBlank: false, directEdit: false,
                    items: [
                        {text: FR.i18nText('Plugin-Memory_Alarm_Mode_Production'), value: 1},
                        {text: FR.i18nText('Plugin-Memory_Alarm_Mode_Debug'), value: 0}
                    ]
                }
            }
        ]
    ];
    var rowSize = [21, 21, 21, 21, 21];
    var height = 260;
    var basicTablelayout = {
        widgetName: 'memory_alarm',
        type: 'tablelayout',
        items: items,
        columnSize: [220, 420],
        rowSize: rowSize,
        vgap: 20
    };
    return {
        title: FR.i18nText('Plugin-Memory_Alarm'),
        content: {
            widgetName: 'memory_alarm_content',
            type: 'confirm',
            firstBtnMargin: 0,
            text4OK: FR.i18nText("FS-Frame-Simple_Save"),
            text4Cancel: null,
            width: 650,
            height: height,
            btnsAlignment: 'left',
            closeAfterAction: false,
            doSize: true,
            onOK: function () {
                save();
            },
            contentWidget: basicTablelayout
        }
    };
};
var save = function () {
    var iv = currentTabPane.getWidgetByName('interruptValue').getValue();
    var ip = currentTabPane.getWidgetByName('interruptPercent').getValue();
    var interval = currentTabPane.getWidgetByName('interval').getValue();
    var message = currentTabPane.getWidgetByName('message').getValue();
    var mode = currentTabPane.getWidgetByName('mode').getValue();
    FR.ajax({
        url: FR.servletURL + '?op=memory_alarm&cmd=update',
        data: {
            'interruptValue': iv,
            'interruptPercent': ip,
            'interval': interval,
            'message': message,
            'mode': mode
        },
        complete: function (res, status) {
            if (status === 'success') {
                var info = FR.jsonDecode(res.responseText);
                if (info.status === 'success') {
                    FR.Msg.toast(FR.i18nText('Plugin-Memory_Alarm_Update_Success'));
                } else {
                    FR.Msg.toast(FR.i18nText('Plugin-Memory_Alarm_Update_Failure'));
                }
            }
        }
    });
};
FS.Plugin.SystemItems.push({

    ui: settingsUI,

    pop: function (idx, tabPane) {
        currentTabPane = tabPane;
        FR.ajax({
            url: FR.servletURL + '?op=memory_alarm&cmd=populate',
            complete: function (res, status) {
                var r = FR.jsonDecode(res.responseText);
                tabPane.getWidgetByName("interruptValue").setValue(r.interruptValue);
                tabPane.getWidgetByName("interruptPercent").setValue(r.interruptPercent);
                tabPane.getWidgetByName("interval").setValue(r.interval);
                tabPane.getWidgetByName("message").setValue(r.message);
                tabPane.getWidgetByName("mode").setValue(r.mode);
            }
        });
    }
});

注册方式

在FSPlate的子类方法

String[] getPlateJavaScriptFiles4WebClient();

中返回这个JavaScript文件的路径即可。

效果图

  • No labels

1 Comment

  1. Anonymous

    测试一下这个评论出来看得到不!!