BsthSlideItem.js.txt 1.69 KB
/**
 * java8 javascript脚本引擎-nashorn 执行用的脚本,用了很多语言扩展,不能在游览器中运行
 */

// 对应 com.bsth.luban_springboot2.service.BsthSlideItem类
var BsthSlideItem = Java.type('com.bsth.luban_springboot2.service.WorkService.BsthSlideItem');
var ArrayList = Java.type('java.util.ArrayList');

/**
 * 计算页面中所有自定义轮播组件的url信息。
 * @param workPagesArray pages对象(对应后台work表的pages字段)
 * @return Array BsthSlideItem类型数组
 */
function calcuBsthSlideItems (workPagesArray) {
    var resultList = new ArrayList();
    // 只处理第一页
    var page = workPagesArray && workPagesArray.length > 0 && workPagesArray[0];
    if (page) {
        var pageElements = page.elements && page.elements.length > 0 && page.elements;
        if (pageElements) {
            for (var i = 0; i < pageElements.length; i++) {
                var element = pageElements[i];
                if ('bsth-slide' === element.name) {
                    var bsthSlideItem = new BsthSlideItem()
                    bsthSlideItem.setName(element.name);
                    bsthSlideItem.setUuid(element.uuid);
                    bsthSlideItem.setUrls(new ArrayList());
                    var items = element.pluginProps && element.pluginProps.items && element.pluginProps.items.length > 0 && element.pluginProps.items;
                    if (items) {
                        for (var j = 0; j < items.length; j++) {
                            bsthSlideItem.getUrls().add(items[j].url);
                        }
                    }
                    resultList.add(bsthSlideItem);
                }
            }
        }
    }
    return resultList;
}