Browse Source

Merge branch '20250428首页' into uat

zxfqwert 6 tháng trước cách đây
mục cha
commit
812c27c128

+ 3 - 2
suishenbang-admin/src/main/resources/application-uat.yml

@@ -10,6 +10,7 @@ ruoyi:
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
   profile: /home/admin/project/file
+#  profile: D:/ruoyi/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   cloudPath: http://127.0.0.1:8000/
@@ -51,7 +52,7 @@ qiyeweixin:
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为80
-  port: 10000
+  port: 10002
   servlet:
     # 应用的访问路径
     context-path: /oneportal
@@ -61,7 +62,7 @@ server:
     # tomcat最大线程数,默认为200
     max-threads: 800
     # Tomcat启动初始化的线程数,默认值25
-    min-spare-threads: 30
+    min-spare-threads: 50
     basedir: /tmp/tomcat
 
 # 日志配置

+ 2 - 1
suishenbang-api/src/main/resources/application-uat.yml

@@ -8,6 +8,7 @@ ruoyi:
   copyrightYear: 2020
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
   profile: /home/admin/project/file
+#  profile: D:/ruoyi/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   #是否开启swagger
@@ -30,7 +31,7 @@ libang:
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为80
-  port: 10001
+  port: 10003
   servlet:
     # 应用的访问路径
     context-path: /wxportal-api

+ 2 - 4
suishenbang-system/src/main/java/com/dgtly/system/service/impl/AlertConfigurationServiceImpl.java

@@ -106,8 +106,6 @@ public class AlertConfigurationServiceImpl implements IAlertConfigurationService
                                     (start2.after(start1) && start2.before(end1)) ||
                                     (end2.after(start1) && end2.before(end1))) {
                                return 1;
-                            } else {
-                               return 0;
                             }
                         }
                 }else{
@@ -118,14 +116,14 @@ public class AlertConfigurationServiceImpl implements IAlertConfigurationService
                                 (start2.after(start1) && start2.before(end1)) ||
                                 (end2.after(start1) && end2.before(end1))) {
                             return 1;
-                        } else {
-                            return 0;
                         }
                     }
+
             }
         }else{
                     return 0;
         }
+
         return 0;
     }
 

+ 8 - 0
suishenbang-wxportal/suishenbang-wxportal-api/src/main/java/com/dgtly/wxportal/controller/WxPortalController.java

@@ -1,5 +1,6 @@
 package com.dgtly.wxportal.controller;
 
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -396,4 +397,11 @@ public class WxPortalController extends ApiBaseController {
         List<HelpCenter> list = helpCenterService.selectHelpCenterList(helpCenter);
         return AjaxResult.success().putKV("helpList",list);
     }
+
+
+    @PostMapping("/getHomeIconInfo")
+    public AjaxResult getHoemIconCongif() throws IOException {
+        Map<String,Object> iconInfo= wxMagnetService.selectHomeIconInfoById();
+        return  AjaxResult.success(iconInfo);
+    }
 }

+ 10 - 0
suishenbang-wxportal/suishenbang-wxportal-common/pom.xml

@@ -27,6 +27,16 @@
             <artifactId>itextpdf</artifactId>
             <version>5.5.13</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jdbc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.12.3</version> <!-- 请根据需要更换版本号 -->
+        </dependency>
+
         <dependency>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>

+ 17 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/domain/HomeIconConfig.java

@@ -0,0 +1,17 @@
+package com.dgtly.wxportal.domain;
+import com.dgtly.common.core.domain.BaseEntity;
+import lombok.Data;
+import java.util.List;
+@Data
+public class HomeIconConfig extends BaseEntity
+{
+    private  Long id;
+    private  String portal_background;
+    private  String small_icon_extra;
+    private  String activity_icon_starttime;
+    private  String activity_icon_endtime;
+    private  String bottom_prompt_text;
+    private  String prompt_text_color;
+    private  String  activity_icon_extra;
+
+}

+ 6 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/IWxMagnetService.java

@@ -4,7 +4,9 @@ import com.dgtly.common.core.domain.Ztree;
 import com.dgtly.system.domain.SysMenu;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
+import com.dgtly.wxportal.domain.HomeIconConfig;
 import com.dgtly.wxportal.domain.WxMagnet;
+import com.fasterxml.jackson.core.JsonProcessingException;
 
 import java.awt.*;
 import java.util.List;
@@ -111,4 +113,8 @@ public interface IWxMagnetService
     List<WxMagnet> selectMagnetByUserId(String userId, String cw, String salesLevel);
 
     List<WxMagnet> selectWxMagnetRoleByUserId(Long userId,String magnetName);
+
+    void updateHomeIcon(HomeIconConfig homeIconConfig);
+
+    Map<String, Object> selectHomeIconInfoById() throws JsonProcessingException;
 }

+ 74 - 2
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/impl/WxMagnetServiceImpl.java

@@ -1,20 +1,26 @@
 package com.dgtly.wxportal.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.dgtly.common.constant.UserConstants;
-import com.dgtly.common.core.controller.ApiBaseController;
 import com.dgtly.common.core.domain.Ztree;
 import com.dgtly.common.utils.StringUtils;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
 import com.dgtly.system.mapper.SysRoleMenuMapper;
 import com.dgtly.system.service.ISysConfigService;
+import com.dgtly.wxportal.domain.HomeIconConfig;
 import com.dgtly.wxportal.domain.RoleMagnet;
 import com.dgtly.wxportal.domain.WxMagnet;
 import com.dgtly.wxportal.mapper.WxMagnetMapper;
 import com.dgtly.wxportal.service.IWxMagnetService;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -28,7 +34,8 @@ import java.util.*;
 public class WxMagnetServiceImpl implements IWxMagnetService
 {
     public static final String PREMISSION_STRING = "perms[\"{0}\"]";
-
+    @Autowired
+    JdbcTemplate jdbcTemplate;
     @Autowired
     private WxMagnetMapper wxMagnetMapper;
 
@@ -242,6 +249,7 @@ public class WxMagnetServiceImpl implements IWxMagnetService
     }
 
 
+
     public static String KL(String inStr) {
         char[] a = inStr.toCharArray();
         for (int i = 0; i < a.length; i++) {
@@ -280,4 +288,68 @@ public class WxMagnetServiceImpl implements IWxMagnetService
         return ztrees;
     }
 
+
+    public static boolean isValidJson(String jsonStr) {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            JsonNode node = mapper.readTree(jsonStr);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+
+
+    }
+    /*保存首页图标配置*/
+    @Override
+    public void updateHomeIcon(HomeIconConfig homeIconConfig) {
+       //校验json字符串是否正确
+       if(StringUtils.isNotBlank(homeIconConfig.getSmall_icon_extra())){
+           if(!isValidJson(homeIconConfig.getSmall_icon_extra())){
+              throw new RuntimeException("小图标json数据格式错误!");
+           }
+       }
+        if(StringUtils.isNotBlank(homeIconConfig.getActivity_icon_extra())){
+            if(!isValidJson(homeIconConfig.getActivity_icon_extra())){
+                throw new RuntimeException("活动图标json数据格式错误!");
+            }
+        }
+        if(homeIconConfig.getId()==null) {
+            String insertSql = "INSERT INTO system_home_config (portal_background,small_icon_extra,activity_icon_extra,activity_icon_starttime,activity_icon_endtime,bottom_prompt_text,prompt_text_color,create_by,create_time) VALUES (?,?,?,?,?,?,?,?,now());";
+            Object[] args = new Object[]{homeIconConfig.getPortal_background(), homeIconConfig.getSmall_icon_extra(), homeIconConfig.getActivity_icon_extra(), homeIconConfig.getActivity_icon_starttime(), homeIconConfig.getActivity_icon_endtime(), homeIconConfig.getBottom_prompt_text(), homeIconConfig.getPrompt_text_color(),homeIconConfig.getCreateBy()};
+            jdbcTemplate.update(insertSql, args);
+        }else {
+            String updateSql = "update  system_home_config  set portal_background=?,small_icon_extra=?,activity_icon_extra=?,activity_icon_starttime=?,activity_icon_endtime=?,bottom_prompt_text=?,prompt_text_color=?,update_by=?,update_time=now() where id=?;";
+            Object[] args = new Object[]{homeIconConfig.getPortal_background(), homeIconConfig.getSmall_icon_extra(), homeIconConfig.getActivity_icon_extra(), homeIconConfig.getActivity_icon_starttime(), homeIconConfig.getActivity_icon_endtime(), homeIconConfig.getBottom_prompt_text(), homeIconConfig.getPrompt_text_color(), homeIconConfig.getUpdateBy(), homeIconConfig.getId()};
+            jdbcTemplate.update(updateSql, args);
+        }
+    }
+
+    @Override
+    public Map<String, Object> selectHomeIconInfoById() throws JsonProcessingException {
+        List<Map<String,Object>> iconInfos=jdbcTemplate.queryForList("select * from system_home_config ");
+        Map<String,Object> iconInfo= iconInfos.size()!=0?iconInfos.get(0):null;
+        if(iconInfo!=null) {
+            String smallIconString = iconInfo.get("small_icon_extra")!=null?iconInfo.get("small_icon_extra").toString():"";
+            String activityIconString = iconInfo.get("activity_icon_extra")!=null?iconInfo.get("activity_icon_extra").toString():"";
+            if (StringUtils.isNotBlank(smallIconString)) {
+                Map mapType = JSON.parseObject(smallIconString, Map.class);
+                iconInfo.put("smallIconObject", mapType);
+                iconInfo.remove("small_icon_extra");
+            }
+            if (StringUtils.isNotBlank(activityIconString)) {
+
+                ObjectMapper mapper = new ObjectMapper();
+
+                    String[] array = mapper.readValue(activityIconString, String[].class);
+
+                iconInfo.put("activityIconObject", array);
+                iconInfo.remove("activity_icon_extra");
+            }
+            return iconInfo;
+        }
+        return null;
+    }
+
+
 }

+ 39 - 0
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/java/com/dgtly/wxportal/controller/WxMagnetController.java

@@ -1,5 +1,7 @@
 package com.dgtly.wxportal.controller;
 
+import com.dgtly.common.annotation.ApiNoCheckSign;
+import com.dgtly.common.annotation.ApiPassToken;
 import com.dgtly.common.annotation.Log;
 import com.dgtly.common.constant.UserConstants;
 import com.dgtly.common.core.controller.BaseController;
@@ -11,6 +13,7 @@ import com.dgtly.common.exception.BusinessException;
 import com.dgtly.framework.util.ShiroUtils;
 import com.dgtly.system.domain.SysRole;
 import com.dgtly.system.domain.SysUser;
+import com.dgtly.wxportal.domain.HomeIconConfig;
 import com.dgtly.wxportal.domain.WxMagnet;
 import com.dgtly.wxportal.service.IWxMagnetService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -20,7 +23,9 @@ import org.springframework.ui.ModelMap;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -74,6 +79,16 @@ public class WxMagnetController extends BaseController
         return prefix + "/add";
     }
 
+    /**
+     * 新增主题
+     */
+    @GetMapping("/themeAdd")
+    public String themeAdd()
+    {
+
+        return prefix + "/themeAdd";
+    }
+
     /**
      * 新增保存磁贴
      */
@@ -166,6 +181,30 @@ public class WxMagnetController extends BaseController
         return getDataTable(magnetList);
     }
 
+    /**
+     * 配置首页新增图标配置
+     */
+
+    @Log(title = "首页图标配置", businessType = BusinessType.UPDATE)
+    @PostMapping("/editHome")
+    @ResponseBody
+    public AjaxResult editHomeSave(HomeIconConfig homeIconConfig)
+    {
+
+        SysUser user = ShiroUtils.getSysUser();
+        homeIconConfig.setCreateBy(user.getUserName());
+        homeIconConfig.setUpdateBy(user.getUserName());
+        wxMagnetService.updateHomeIcon(homeIconConfig);
+       return  AjaxResult.success("保存成功!");
+    }
+
+    @PostMapping("/getHomeIconInfo")
+    @ResponseBody
+    public AjaxResult getHoemIconCongif() throws IOException {
+        Map<String,Object> iconInfo= wxMagnetService.selectHomeIconInfoById();
+        return  AjaxResult.success(iconInfo);
+    }
+
 
     /**
      * 加载角色磁贴列表树

+ 345 - 0
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/resources/templates/wxportal/magnet/themeAdd.html

@@ -0,0 +1,345 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('主题配置')" />
+    <th:block th:include="include :: datetimepicker-css" />
+    <th:block th:include="include :: bootstrap-select-css" />
+    <th:block th:include="include :: cropbox-css"/>
+    <style>
+        .file-wraps{
+            width: 80px;
+            height: 80px;
+            flex-direction: row;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            background-color: #ffffff;
+            border: 1px solid #f5f5f5;
+            position: relative;
+        }
+        .file-wraps input{
+            position: absolute;
+            top: 0;
+            bottom: 0;
+            left: 0;
+            right: 0;
+            opacity: 0;
+        }
+        .file-wraps-small-icon{
+            width: 50px;
+            height: 50px;
+            flex-direction: row;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            background-color: #ffffff;
+            border: 1px solid #f5f5f5;
+            position: relative;
+        }
+        .file-wraps-small-icon input{
+            position: absolute;
+            top: 0;
+            bottom: 0;
+            left: 0;
+            right: 0;
+            opacity: 0;
+        }
+        .smallIconBox{
+            flex-direction: row;
+            display: flex;
+            align-items: center;
+            position: relative;
+        }
+        .smallIconItem{
+            width: 80px;
+            height: 80px;
+            flex-direction: column;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+        }
+        .activityIconBox{
+            flex-direction: row;
+            display: flex;
+            align-items: center;
+            position: relative;
+        }
+        .activityIconItem{
+            width: 50px;
+            height: 50px;
+            flex-direction: column;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            position: relative;
+        }
+    </style>
+</head>
+<body class="white-bg">
+<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+    <form class="form-horizontal m" id="form-configuration-add">
+        <div class="form-group" id="bgImageItem">
+            <label class="col-sm-3 control-label">门户背景:</label>
+            <div class="col-sm-8">
+                <div class="file-wraps">
+                    <div id="bgImageDiv" style="width: 80px;height: 80px;display: none;"></div>
+                    <i id="bgImageIcon" class="fa fa-plus" style="font-size: 40px"></i>
+                    <input type="file" class="uploadImage" id="bgImage" name="bgImage" accept="image/*"/>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">小图标设置:</label>
+            <div class="col-sm-8">
+                <div class="smallIconBox">
+                    <div class="smallIconItem" th:each="dict : ${@dict.getType('home_icon_type')}">
+                        <div class="file-wraps-small-icon">
+                            <div th:id="${dict.dictValue}" style="width: 50px;height: 50px;display: none;"></div>
+                            <i th:id="${dict.dictValue}+'Icon'" class="fa fa-plus" style="font-size: 30px"></i>
+                            <input type="file" class="uploadImage" th:id="${dict.dictCode}" th:name="${dict.dictValue}" accept="image/*"/>
+                        </div>
+                        <span th:text="${dict.dictLabel}" style="margin-top: 10px;"></span>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">活动图标设置:</label>
+            <div class="col-sm-8">
+                <div class="activityIconBox">
+                    <!--<div class="activityIconItem">-->
+                        <!--<img src="" style="width: 50px;height: 50px;">-->
+                        <!--<i class="fa"></i>-->
+                    <!--</div>-->
+                    <div id="activityImageDiv" style="width: 50px;height: 50px;display: none;"></div>
+                    <div class="file-wraps-small-icon">
+                        <i id="activityImageIcon" class="fa fa-plus" style="font-size: 30px"></i>
+                        <input type="file" class="uploadImage" id="activityImage" name="activityImage" accept="image/*"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">活动图标开始时间:</label>
+            <div class="col-sm-8">
+                <input id="alertStartTime" name="alertStartTime" class="form-control" type="datetime-local">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">活动图标结束时间:</label>
+            <div class="col-sm-8">
+                <input id="alertEndTime" name="alertEndTime" class="form-control" type="datetime-local">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">提示文字:</label>
+            <div class="col-sm-8">
+                <input id="alertTitle" name="alertTitle" class="form-control" type="text">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="col-sm-3 control-label">提示文字颜色:</label>
+            <div class="col-sm-8">
+                <input id="alertTitleColor" name="alertTitleColor" class="form-control" type="text">
+            </div>
+        </div>
+    </form>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: datetimepicker-js" />
+<th:block th:include="include :: bootstrap-select-js" />
+<th:block th:include="include :: cropbox-js"/>
+<script type="text/javascript">
+    var prefix = ctx + "system/configuration"
+    // var prefixEdit = "http://localhost:10002/oneportal/wxportal/magnet"
+    var prefixEdit = "https://suishenbangtest.nipponpaint.com.cn/oneportal/wxportal/magnet";
+
+    var bgImageUrl = '';
+    var smallImageUrlArray = {};
+    var activityImageUrlArray = [];
+    var options = {
+        thumbBox: '.thumbBox',
+        spinner: '.spinner',
+        imgSrc: ctx + 'img/profile.jpg'
+    }
+
+    $(document).ready(function () {
+        getThemeInfo();
+    })
+
+    $('.uploadImage').on('change', function (res) {
+        var reader = new FileReader();
+        reader.onload = function (e) {
+            options.imgSrc = e.target.result;
+            //根据MIME判断上传的文件是不是图片类型
+            if ((options.imgSrc).indexOf("image/") == -1) {
+                $.modal.alertWarning("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");
+            }
+        }
+        reader.readAsDataURL(this.files[0]);
+        upBg(this.files[0],res.currentTarget.name);
+    })
+
+    $("#alertStartTime").on('change',function () {
+        if ($(this).val() != -1){
+            var startTimeChange1 = $('#alertStartTime').val().replace('T',' ');
+            var endTimeChange1 = $('#alertEndTime').val().replace('T',' ');
+            if (new Date(startTimeChange1).getTime() - new Date(endTimeChange1).getTime() >= 0){
+                $.modal.alertWarning("弹框结束时间不能小于开始时间");
+            }
+        }
+    })
+
+    $("#alertEndTime").on('change',function () {
+        if ($(this).val() != -1){
+            var startTimeChange2 = $('#alertStartTime').val().replace('T',' ');
+            var endTimeChange2 = $('#alertEndTime').val().replace('T',' ');
+            if (new Date(startTimeChange2).getTime() - new Date(endTimeChange2).getTime() >= 0){
+                $.modal.alertWarning("弹框结束时间不能小于开始时间");
+            }
+        }
+    })
+
+    $("#form-configuration-add").validate({
+        focusCleanup: true,
+        // rules:{
+        //     alertStartTime:{
+        //         required:true
+        //     },
+        //     alertEndTime:{
+        //         required:true
+        //     }
+        // },
+    });
+
+    function upBg(imgFile,imgType) {
+        var formdata = new FormData();
+        formdata.append("file", imgFile);
+        $.ajax({
+            url: ctx + "common/upload",
+            data: formdata,
+            type: "post",
+            processData: false,
+            contentType: false,
+            success: function (result) {
+                if (result.code == 0) {
+                    if (imgType == 'bgImage'){
+                        bgImageUrl = result.data.url;
+                        $("#bgImageDiv").html("<img src='" + result.data.url + "' style='width;100%;height:100%;'>");
+                        document.getElementById("bgImageDiv").style.display = 'block';
+                        document.getElementById("bgImageIcon").style.display = 'none';
+                    } else if (imgType == 'activityImage'){
+                        activityImageUrlArray.push(result.data.url);
+                        console.log('activityImageUrlArray',activityImageUrlArray);
+                        $("#activityImageDiv").html("<img src='" + result.data.url + "' style='width;100%;height:100%;'>");
+                        document.getElementById("activityImageDiv").style.display = 'block';
+                    } else {
+                        smallImageUrlArray[imgType] = result.data.url;
+                        $("#"+imgType).html("<img src='" + result.data.url + "' style='width;100%;height:100%;'>");
+                        document.getElementById(imgType).style.display = 'block';
+                        document.getElementById(imgType+'Icon').style.display = 'none';
+                    }
+                } else {
+                    $.modal.alertWarning(result.msg);
+                }
+            }
+        })
+    }
+
+    function getThemeInfo() {
+        var config = {
+            url: prefixEdit + '/getHomeIconInfo',
+            type: "post",
+            dataType: "json",
+            data: {},
+            beforeSend: function () {
+                $.modal.loading("正在处理中,请稍后...");
+            },
+            success: function(result) {
+                $.modal.closeLoading();
+                console.log('result',result);
+                if (result.data.portal_background != ''){
+                    bgImageUrl = result.data.portal_background;
+                    $("#bgImageDiv").html("<img src='" + result.data.portal_background + "' style='width;100%;height:100%;'>");
+                    document.getElementById("bgImageDiv").style.display = 'block';
+                    document.getElementById("bgImageIcon").style.display = 'none';
+                }
+                if (Object.keys(result.data.smallIconObject).length > 0){
+                    var keyArray = Object.keys(result.data.smallIconObject);
+                    keyArray.forEach(item => {
+                        smallImageUrlArray[item] = result.data.smallIconObject[item];
+                        $("#"+item).html("<img src='" + result.data.smallIconObject[item] + "' style='width;100%;height:100%;'>");
+                        document.getElementById(item).style.display = 'block';
+                        document.getElementById(item+'Icon').style.display = 'none';
+                    })
+                }
+                if (result.data.activityIconObject.length > 0){
+                    activityImageUrlArray = result.data.activityIconObject;
+                    $("#activityImageDiv").html("<img src='" + result.data.activityIconObject[0] + "' style='width;100%;height:100%;'>");
+                    document.getElementById("activityImageDiv").style.display = 'block';
+                }
+                if (result.data.bottom_prompt_text != null){
+                    document.getElementById("alertTitle").value = result.data.bottom_prompt_text;
+                }
+                if (result.data.prompt_text_color != null){
+                    document.getElementById("alertTitleColor").value = result.data.prompt_text_color;
+                }
+                if (result.data.activity_icon_starttime != null){
+                    document.getElementById("alertStartTime").value = result.data.activity_icon_starttime;
+                }
+                if (result.data.activity_icon_endtime != null){
+                    document.getElementById("alertEndTime").value = result.data.activity_icon_endtime;
+                }
+            }
+        };
+        $.ajax(config)
+    }
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            var alertTitle = $('#alertTitle').val();
+            var alertTitleColor = $('#alertTitleColor').val();
+            var startTime = $('#alertStartTime').val().replace('T',' ');
+            var endTime = $('#alertEndTime').val().replace('T',' ');
+            if (new Date(startTime).getTime() - new Date(endTime).getTime() >= 0){
+                $.modal.alertWarning("弹框结束时间不能小于开始时间");
+            }else {
+                var objSubmit = {
+                    id:'1',
+                    portal_background:bgImageUrl,
+                    small_icon_extra:JSON.stringify(smallImageUrlArray),
+                    activity_icon_extra:JSON.stringify(activityImageUrlArray)
+                }
+                if (alertTitle != ''){
+                    objSubmit.bottom_prompt_text = alertTitle
+                }
+                if (alertTitleColor != ''){
+                    objSubmit.prompt_text_color = alertTitleColor
+                }
+                if (startTime != ''){
+                    objSubmit.activity_icon_starttime = startTime
+                }
+                if (endTime != ''){
+                    objSubmit.activity_icon_endtime = endTime
+                }
+                console.log('objSubmit', objSubmit);
+                var configSubmit = {
+                    url: prefixEdit + "/editHome",
+                    type: "post",
+                    dataType: "json",
+                    data: objSubmit,
+                    beforeSend: function () {
+                        $.modal.loading("正在处理中,请稍后...");
+                    },
+                    success:function (result) {
+                        $.modal.closeLoading();
+                        $.operate.successCallback(result);
+                    }
+                }
+                $.ajax(configSubmit)
+            }
+        }
+    }
+</script>
+</body>
+</html>

+ 7 - 3
suishenbang-wxportal/suishenbang-wxportal-manager/src/main/resources/templates/wxportal/magnet/wxMagnet.html

@@ -55,6 +55,9 @@
 			<a class="btn btn-success" onclick="addNew()" shiro:hasPermission="wxportal:magnet:add">
 				<i class="fa fa-plus"></i> 新增
 			</a>
+			<a class="btn btn-success" onclick="setTheme()" shiro:hasPermission="wxportal:magnet:themeAdd">
+				主题设置
+			</a>
 			<!--<a class="btn btn-primary" onclick="$.operate.editFull()" shiro:hasPermission="wxportal:magnet:edit">-->
 			<!--<i class="fa fa-edit"></i> 修改-->
 			<!--</a>-->
@@ -183,14 +186,15 @@
 
 	function addNew(){
 		$.modal.openFull("添加" + $.table._option.modalName, $.operate.addUrl(0));
-
 	}
 
 	function editMagnet(id){
-
 		$.modal.openFull("修改" + $.table._option.modalName, $.operate.editUrl(id));
-
 	}
+
+    function setTheme(){
+        $.modal.openFull("主题设置", prefix + '/themeAdd');
+    }
 </script>
 </body>
 </html>