图文发布管理模板

1.controller层

package com.eastcom.party.controller;

import java.util.HashMap;
import java.util.Map;

import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.eastcom.common.controller.BaseController;
import com.eastcom.party.domain.PartyBuilDO;
import com.eastcom.party.domain.PartyBuilParamDO;
import com.eastcom.party.service.PartyBuilService;
import com.eastcom.common.utils.R;

/**
 * 党日活动
 *
 * @author xiazf
 * @email xiazf@eastcom.com
 * @date 2020-03-18 13:38:10
 */
 
@Controller
@RequestMapping("/party/partyBuil")
public class PartyBuilController extends BaseController {

    @Autowired
    private PartyBuilService partyBuilService;
    
    @GetMapping("/view")
    @RequiresPermissions("party:partyBuil:view")
    public ModelAndView view(Integer id) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("userDO", getUser());
        map.put("partyBuilDO", partyBuilService.query(id, getUser()));
        return new ModelAndView("party/partyBuil", map);
    }
    
    @GetMapping("/view-list")
    @RequiresPermissions("party:partyBuil:view-list")
    public ModelAndView viewList() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("userDO", getUser());
        return new ModelAndView("party/partyBuilList", map);
    }
    
    @ResponseBody
    @GetMapping()
    @RequiresPermissions("party:partyBuil:queryList")
    public R queryList(PartyBuilParamDO queryParamDO) {
        return R.success(partyBuilService.queryList(queryParamDO, getUser()));
    }
    
    @ResponseBody
    @GetMapping("/{id}")
    @RequiresPermissions("party:partyBuil:query")
    public R query(@PathVariable Integer id) {
        return R.success(partyBuilService.query(id, getUser()));
    }
    
    @ResponseBody
    @PostMapping()
    @RequiresPermissions("party:partyBuil:insert")
    public R insert(@Validated PartyBuilDO partyBuilDO, BindingResult result) {
        validate(result);
        return R.success(partyBuilService.insert(partyBuilDO, getUser()));
    }
    
    @ResponseBody
    @PutMapping("/{id}")
    @RequiresPermissions("party:partyBuil:update")
    public R update(@Validated PartyBuilDO partyBuilDO, BindingResult result) {
        validate(result);
        return R.success(partyBuilService.update(partyBuilDO, getUser()));
    }
    
    @ResponseBody
    @DeleteMapping("/{id}")
    @RequiresPermissions("party:partyBuil:delete")
    public R delete(PartyBuilDO partyBuilDO) {
        return R.success(partyBuilService.delete(partyBuilDO, getUser()));
    }
    
}


所关联的是BaseController是在工具类包中

package com.eastcom.common.controller;

import java.util.List;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;

import com.eastcom.common.domain.PagingList;
import com.eastcom.common.domain.UserDO;
import com.eastcom.common.exception.ExceptionBuilder;
import com.eastcom.common.spring.BeanConverter;
import com.eastcom.common.utils.ShiroUtils;
import com.eastcom.common.utils.UtilJWT;

@Controller
public class BaseController {

    public String session_user_flag = "user";

    @Autowired
    private BeanConverter beanConverter;

    /**
     * 获取Shiro中的登录用户,用于后台管理系统的用户获取
     *
     * @return
     */
    public UserDO getUser() {
        UserDO userDO = ShiroUtils.getUser();
        userDO.setPassword("");
        return userDO;
    }

    /**
     * 获取请求中的Token,生成UserDO对象
     *
     * @param request
     * @return
     */
    public UserDO getUser(HttpServletRequest request) {
        return UtilJWT.unsign(request.getHeader("token"), UserDO.class);
    }

    public Long getUserId() {
        return getUser().getUserId();
    }

    public String getUsername() {
        return getUser().getUsername();
    }

    protected void validate(BindingResult result) {
        if (result.hasErrors()) {
            throw ExceptionBuilder.service(result);
        }
    }

    public String getWXOpenid(HttpServletRequest request) {
        return request.getHeader("openid");
    }

    public String getDDUserid(HttpServletRequest request) {
        return request.getHeader("userid");
    }

    public <T, S> T convert(S source, Class<T> clz) {
        return beanConverter.convert(source, clz);
    }

    public <T, S> List<T> convert(List<S> source, Class<T> clz) {
        return beanConverter.convert(source, clz);
    }

    public <T, S> Set<T> convert(Set<S> source, Class<T> clz) {
        return beanConverter.convert(source, clz);
    }

    public <T> PagingList convert(PagingList source, Class<T> clz) {
        source.setRows(beanConverter.convert(source.getRows(), clz));
        return source;
    }

}

 

2.注入的service层是

package com.eastcom.party.service;

import com.eastcom.common.domain.PagingList;
import com.eastcom.common.domain.QueryParamDO;
import com.eastcom.common.domain.UserDO;
import com.eastcom.party.domain.PartyBuilDO;

/**
 * 党日活动/志愿服务/重点部署/联村会议
 *     
 * @author xiazf
 * @email xiazf@eastcom.com
 * @date 2020-03-18 13:38:10
 */
public interface PartyBuilService {
    
    public PagingList queryList(QueryParamDO queryParamDO, UserDO userDO);
    
    public PartyBuilDO query(Integer id, UserDO userDO);
    
    public PartyBuilDO insert(PartyBuilDO partyBuilDO, UserDO userDO);
    
    public PartyBuilDO update(PartyBuilDO partyBuilDO, UserDO userDO);
    
    public PartyBuilDO delete(PartyBuilDO partyBuilDO, UserDO userDO);
    
}


这层有查询参数的实体类QueryParamDO也有具体的实体类PartyBuilDO还有user的实体类UserDO

3.impl层

package com.eastcom.party.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.eastcom.party.dao.PartyBuilDao;
import com.eastcom.party.domain.PartyBuilDO;
import com.eastcom.party.service.PartyBuilService;
import com.eastcom.common.domain.PagingList;
import com.eastcom.common.domain.QueryParamDO;
import com.eastcom.common.domain.UserDO;
import com.eastcom.common.exception.ExceptionBuilder;

@Service
public class PartyBuilServiceImpl implements PartyBuilService {

    @Autowired
    private PartyBuilDao partyBuilDao;

    @Override
    public PagingList queryList(QueryParamDO queryParamDO, UserDO userDO) {
        int total = partyBuilDao.queryListCount(queryParamDO, userDO);
        List<PartyBuilDO> rows = partyBuilDao.queryList(queryParamDO, userDO);
        return PagingList.create(total, rows);
    }

    @Override
    public PartyBuilDO query(Integer id, UserDO userDO) {
        return partyBuilDao.query(id, userDO);
    }

    @Override
    public PartyBuilDO insert(PartyBuilDO partyBuilDO, UserDO userDO) {
        partyBuilDao.insert(partyBuilDO, userDO);
        return partyBuilDO;
    }

    @Override
    public PartyBuilDO update(PartyBuilDO partyBuilDO, UserDO userDO) {
        PartyBuilDO partyBuilDB = partyBuilDao.query(partyBuilDO.getId(), userDO);
        if (partyBuilDB == null) {
            throw ExceptionBuilder.service("无效的数据");
        }
        partyBuilDao.update(partyBuilDO, userDO);
        return partyBuilDO;
    }

    @Override
    public PartyBuilDO delete(PartyBuilDO partyBuilDO, UserDO userDO) {
        PartyBuilDO partyBuilDB = partyBuilDao.query(partyBuilDO.getId(), userDO);
        if (partyBuilDB == null) {
            throw ExceptionBuilder.service("无效的数据");
        }
        partyBuilDao.delete(partyBuilDO, userDO);
        return partyBuilDO;
    }}


这层注入的是dao层PartyBuilDao

4.dao层

package com.eastcom.party.dao;

import com.eastcom.party.domain.PartyBuilDO;
import java.util.List;
import com.eastcom.common.domain.QueryParamDO;
import com.eastcom.common.domain.UserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * zhiyuanfuwu
 * @author xiazf
 * @email xiazf@eastcom.com
 * @date 2020-03-18 13:38:10
 */
@Mapper
public interface PartyBuilDao {

    public PartyBuilDO query(@Param("id") Integer id, @Param("userDO") UserDO userDO);
    
    public int queryListCount(@Param("queryParamDO") QueryParamDO queryParamDO, @Param("userDO") UserDO userDO);
    
    public List<PartyBuilDO> queryList(@Param("queryParamDO") QueryParamDO queryParamDO, @Param("userDO") UserDO userDO);
    
    public int insert(@Param("partyBuilDO") PartyBuilDO partyBuilDO, @Param("userDO") UserDO userDO);
    
    public int update(@Param("partyBuilDO") PartyBuilDO partyBuilDO, @Param("userDO") UserDO userDO);
    
    public int delete(@Param("partyBuilDO") PartyBuilDO partyBuilDO, @Param("userDO") UserDO userDO);
    
    public int deleteBatch(List<PartyBuilDO> list, @Param("userDO") UserDO userDO);
}


5.因为在页面中有条件筛选所以添加两个实体类PartyBuilParamDO和PartyBuilParamFilterDO

package com.eastcom.party.domain;

import com.eastcom.common.domain.QueryParamDO;

/**
 * 党日活动
 *
 * @author xiazf
 * @email xiazf@eastcom.com
 * @date 2020-03-18 13:38:10
 */
 public class PartyBuilParamDO extends QueryParamDO {

    private PartyBuilParamFilterDO filter;

    public PartyBuilParamFilterDO getFilter() {
        return filter;
    }

    public void setFilter(PartyBuilParamFilterDO filter) {
        this.filter = filter;
    }

}

package com.eastcom.party.domain;

/**
 * 党日活动
 *
 * @author xiazf
 * @email xiazf@eastcom.com
 * @date 2020-03-18 13:38:10
 */
public class PartyBuilParamFilterDO {

    private String title;

    private String address;

    private String gridName;

    private String longitude;

    private Integer latitude;

    private String content;

    private String createTimeStart;

    private String createTimeClose;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getGridName() {
        return gridName;
    }

    public void setGridName(String gridName) {
        this.gridName = gridName;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public Integer getLatitude() {
        return latitude;
    }

    public void setLatitude(Integer latitude) {
        this.latitude = latitude;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getCreateTimeStart() {
        return createTimeStart;
    }

    public void setCreateTimeStart(String createTimeStart) {
        this.createTimeStart = createTimeStart;
    }

    public String getCreateTimeClose() {
        return createTimeClose;
    }

    public void setCreateTimeClose(String createTimeClose) {
        this.createTimeClose = createTimeClose;
    }

}

和他自己的实体类

package com.eastcom.party.domain;

import java.io.Serializable;
import java.util.Date;

import javax.validation.constraints.NotBlank;

import com.eastcom.common.validator.group.GroupOne;
import com.eastcom.common.validator.group.GroupTwo;
import com.eastcom.common.validator.group.Insert;
import com.eastcom.common.validator.group.Update;

 

/**
 * 党日活动/志愿服务/重点部署/联村会议
 *
 * @author lyh
 * @email liangyanhui@eastcom.com
 * @date 2020-03-19 14:24:10
 */
public class PartyBuilDO implements Serializable {
    private static final long serialVersionUID = 1L;
    
    //
    private Integer id;
    //活动名称
    @NotBlank(message = "活动名称不能为空", groups = {Insert.class, Update.class, GroupOne.class, GroupTwo.class})
    private String title;
    //网格id
    private Long gridId;
    //网格名称
    @NotBlank(message = "网格名称不能为空", groups = {Insert.class, Update.class, GroupOne.class, GroupTwo.class})
    private String gridName;
    //上报地址
    @NotBlank(message = "上报地址不能为空", groups = {Insert.class, Update.class, GroupOne.class, GroupTwo.class})
    private String address;
    //经度
    @NotBlank(message = "经度不能为空", groups = {Insert.class, Update.class, GroupOne.class, GroupTwo.class})
    private String longitude;
    //纬度
    @NotBlank(message = "纬度不能为空", groups = {Insert.class, Update.class, GroupOne.class, GroupTwo.class})
    private String latitude;
    //报送内容
    @NotBlank(message = "报送内容不能为空", groups = {Insert.class, Update.class, GroupOne.class, GroupTwo.class})
    private String content;
    //类别-1党日活动/2志愿服务/3重点部署/4联村会议
    private Integer type;
    //创建时间
    private Date createTime;
    //创建者
    private Integer createUserId;
    //创建钉钉Id
    private Long createDdId;
    //更新时间
    private Date updateTime;
    //更新者
    private Integer updateUserId;
    //更新钉钉Id
    private Long updateDdId;
    //重点部署对应的任务Id
    private Integer taskId;
    private Integer partyId;
    private String person;
    

    public Integer getPartyId() {
        return partyId;
    }
    public void setPartyId(Integer partyId) {
        this.partyId = partyId;
    }
    public String getPerson() {
        return person;
    }
    public void setPerson(String person) {
        this.person = person;
    }
    /**
     * 设置:
     */
    public void setId(Integer id) {
        this.id = id;
    }
    /**
     * 获取:
     */
    public Integer getId() {
        return id;
    }
    /**
     * 设置:活动名称
     */
    public void setTitle(String title) {
        this.title = title;
    }
    /**
     * 获取:活动名称
     */
    public String getTitle() {
        return title;
    }
    /**
     * 设置:网格id
     */
    public void setGridId(Long gridId) {
        this.gridId = gridId;
    }
    /**
     * 获取:网格id
     */
    public Long getGridId() {
        return gridId;
    }
    /**
     * 设置:网格名称
     */
    public void setGridName(String gridName) {
        this.gridName = gridName;
    }
    /**
     * 获取:网格名称
     */
    public String getGridName() {
        return gridName;
    }
    /**
     * 设置:上报地址
     */
    public void setAddress(String address) {
        this.address = address;
    }
    /**
     * 获取:上报地址
     */
    public String getAddress() {
        return address;
    }
    /**
     * 设置:经度
     */
    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }
    /**
     * 获取:经度
     */
    public String getLongitude() {
        return longitude;
    }
    /**
     * 设置:纬度
     */
    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }
    /**
     * 获取:纬度
     */
    public String getLatitude() {
        return latitude;
    }
    /**
     * 设置:报送内容
     */
    public void setContent(String content) {
        this.content = content;
    }
    /**
     * 获取:报送内容
     */
    public String getContent() {
        return content;
    }
    /**
     * 设置:类别-1党日活动/2志愿服务/3重点部署/4联村会议
     */
    public void setType(Integer type) {
        this.type = type;
    }
    /**
     * 获取:类别-1党日活动/2志愿服务/3重点部署/4联村会议
     */
    public Integer getType() {
        return type;
    }
    /**
     * 设置:创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    /**
     * 获取:创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }
    /**
     * 设置:创建者
     */
    public void setCreateUserId(Integer createUserId) {
        this.createUserId = createUserId;
    }
    /**
     * 获取:创建者
     */
    public Integer getCreateUserId() {
        return createUserId;
    }
    /**
     * 设置:创建钉钉Id
     */
    public void setCreateDdId(Long createDdId) {
        this.createDdId = createDdId;
    }
    /**
     * 获取:创建钉钉Id
     */
    public Long getCreateDdId() {
        return createDdId;
    }
    /**
     * 设置:更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    /**
     * 获取:更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    /**
     * 设置:更新者
     */
    public void setUpdateUserId(Integer updateUserId) {
        this.updateUserId = updateUserId;
    }
    /**
     * 获取:更新者
     */
    public Integer getUpdateUserId() {
        return updateUserId;
    }
    /**
     * 设置:更新钉钉Id
     */
    public void setUpdateDdId(Long updateDdId) {
        this.updateDdId = updateDdId;
    }
    /**
     * 获取:更新钉钉Id
     */
    public Long getUpdateDdId() {
        return updateDdId;
    }
    /**
     * 设置:重点部署对应的任务Id
     */
    public void setTaskId(Integer taskId) {
        this.taskId = taskId;
    }
    /**
     * 获取:重点部署对应的任务Id
     */
    public Integer getTaskId() {
        return taskId;
    }
}

 

然后是mapper层因为只有查询和修改所以我没写插入的sql

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.eastcom.party.dao.PartyBuilDao">

    <select id="query" resultType="com.eastcom.party.domain.PartyBuilDO">
        select
            *        
        from
            v_pjdj_party_building
        where
            id = #{id}
    </select>
    
    <select id="queryListCount" resultType="int">
        select
            count(*)
        from
            v_pjdj_party_building a , v_pjdj_user_villages b
        where  a.type = 1 and a.grid_id = b.district and b.user_id = #{userDO.userId}
            <include refid="where_queryList" />  
        <!-- </where> -->
    </select>

    <select id="queryList" resultType="com.eastcom.party.domain.PartyBuilDO">
        select
            *        
        from
            v_pjdj_party_building a , v_pjdj_user_villages b
        where   a.type = 1 and a.grid_id = b.district and b.user_id = #{userDO.userId}
        <!-- <where>  -->
             <include refid="where_queryList" />  
        <!-- </where> -->
        <choose>
            <when test="queryParamDO.sortName != null and queryParamDO.sortName.trim() != ''">
                order by ${queryParamDO.sortName} ${queryParamDO.sortOrder}
            </when>
            <otherwise>
                order by id desc
            </otherwise>
        </choose>
        <if test="queryParamDO.limit != 0">
            limit #{queryParamDO.offset}, #{queryParamDO.limit}    
        </if>
    </select>
    
    <sql id="where_queryList">
        <if test="queryParamDO.search != null and queryParamDO.search.trim() != ''">
            and
            (
                title like concat('%', #{queryParamDO.search}, '%')
            )
        </if>
        <if test="queryParamDO.filter != null">
            <if test="queryParamDO.filter.title != null and queryParamDO.filter.title != ''">
                and title like concat('%', #{queryParamDO.filter.title}, '%')
            </if>
            <if test="queryParamDO.filter.address != null and queryParamDO.filter.address != ''">
                and address like concat('%', #{queryParamDO.filter.address}, '%')
            </if>
            <if test="queryParamDO.filter.gridName != null and queryParamDO.filter.gridName != ''">
                and grid_name like concat('%', #{queryParamDO.filter.gridName}, '%')
            </if>
            <if test="queryParamDO.filter.longitude != null and queryParamDO.filter.longitude != ''">
                and longitude like concat('%', #{queryParamDO.filter.longitude}, '%')
            </if>
            <if test="queryParamDO.filter.latitude != null and queryParamDO.filter.latitude != ''">
                and latitude like concat('%', #{queryParamDO.filter.latitude}, '%')
            </if>
            <if test="queryParamDO.filter.content != null and queryParamDO.filter.content != ''">
                and content like concat('%', #{queryParamDO.filter.content}, '%')
            </if>
            <if test="queryParamDO.filter.createTimeStart != null and queryParamDO.filter.createTimeStart != ''">
                and create_time &gt;= #{queryParamDO.filter.createTimeStart}
            </if>
            <if test="queryParamDO.filter.createTimeClose != null and queryParamDO.filter.createTimeClose != ''">
                and create_time &lt;= #{queryParamDO.filter.createTimeClose}
            </if>
        </if>        
    </sql>
    
    <update id="update" parameterType="com.eastcom.party.domain.PartyBuilDO">
        update pjdj_party_building
        <set>
            `title` = #{partyBuilDO.title},         
            `address` = #{partyBuilDO.address},         
            `content` = #{partyBuilDO.content}             
        </set>
        where id = #{partyBuilDO.id}
    </update>
    
    <delete id="delete">
        delete from pjdj_party_building where id = #{partyBuilDO.id}
    </delete>
    
    <delete id="deleteBatch">
        delete from pjdj_party_building where id in
        <foreach item="item" collection="list" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </delete>      

</mapper>

js层

partyBuil.js

$(function() {

    Article.init({
        url : '../../party/partyBuil'
    });

});

 

partyBuilList.js

$(function() {

    PartyBuil.init();
    

    $('#btn_insert').on('click', function() {
        PartyBuil.doInsert();
    });

    $('#btn_update').on('click', function() {
        PartyBuil.doUpdate();
    });

    $('#btn_delete').on('click', function() {
        Pervice.doDelete();
    });

});

PartyBuil = {
    init : function() {
    

        SP.table.bootstrap('#table', {
            url : '../../party/partyBuil',
            queryParams : function(params) {
                return this.getAdvancedSearchParams({
                    search : this.searchText,
                    offset : params.offset,
                    limit : params.limit,
                    sortName : this.sortName,
                    sortOrder : this.sortOrder
                });
            },
            toolbar : "#toolbar",
            search : true,
            formatSearch : function() {
                return '活动名称';
            },
            advancedSearch : true,
            showRefresh : true,
            showColumns : true,
            showToggle : true,
            showExport : true,
            exportTitle : '党日活动',
            sortName : 'id',
            sortOrder : 'desc',
            columns : [ {
                radio : true
            }, {
                field : 'title',
                title : '活动名称',
                sortable : true,
                searchable : true
            },
            /*{
                field : 'gridId',
                title : '网格Id',
                sortable : true,
                searchable : true
            },*/
            {
                field : 'gridName',
                title : '网格名称',
                sortable : true,
                searchable : true
            },{
                field : 'address',
                title : '详细地址',
                sortable : true,
                searchable : true
            },{
                field : 'longitude',
                title : '经度',
                sortable : true,
                searchable : true
            },{
                field : 'latitude',
                title : '纬度',
                sortable : true,
                searchable : true
            },{
                field : 'content',
                title : '内容',
                sortable : true,
                searchable : true
            },/*{
                field : 'createUserId',
                title : '创建人',
                sortable : true,
                searchable : true
            },*/ {
                field : 'createTime',
                title : '创建时间',
                sortable : true,
                searchable : true,
                searchOptions : {
                    type : 'date-interval'
                }
            }, {
                title : '操作',
                searchable : false,
                exportable : false,
                align : 'center',
                formatter : function(value, row, index) {
                    var p = SP.fn.sprintf('<a href="javascript:void(0);" title="编辑" data-options="upload" class="%s">图片</a> ', AppData.permission.s_update ? '' : 'hidden');
                    var u = SP.fn.sprintf('<a href="javascript:void(0);" title="编辑" data-options="update" class="%s">编辑</a> ', AppData.permission.s_update ? '' : 'hidden');
                    var d = SP.fn.sprintf('<a href="javascript:void(0);" title="删除" data-options="delete" class="%s">删除</a> ', AppData.permission.s_delete ? '' : 'hidden')
                    return p + u + d;
                },
                events : {
                    'click [data-options="upload"]:not(.disabled)' : function(e, value, row, index) {
                        PartyBuil.doUpload(row);
                    },
                    'click [data-options="update"]:not(.disabled)' : function(e, value, row, index) {
                        PartyBuil.doUpdate(row);
                    },
                    'click [data-options="delete"]:not(.disabled)' : function(e, value, row, index) {
                        PartyBuil.doDelete(row);
                    }
                }
            } ],
            onDblClickCell : function(field, value, row, $element) {}
        });
    },

    doInsert : function() {

        SP.form.resetValid('#partyBuil');

        SP.modal.show('#modal', {
            title : '新增党日活动',
            yes : function(obj) {
                if (SP.form.isValid('#partyBuil')) {
                    SP.http.ajaxPost({
                        url : '../../party/partyBuil',
                        data : SP.form.getValue('#partyBuil'),
                        success : function(data) {
                            SP.modal.alert(data.msg, function() {
                                if (data.code == 0) {
                                    SP.table.bootstrap.method('#table', 'refresh');
                                    SP.modal.hide('#modal');
                                }
                            }, data.code == 0);
                        }
                    });
                }
            }
        });
    },

    doUpload : function(row) {

        row = row || SP.table.bootstrap.method('#table', 'getSelections')[0];

        if (!row) {
            SP.modal.alert('请选择一条需要上传的数据!');
            return;
        }

        SP.modal.fileinput({
            id : 'image_uploader',
            sid : 200600,
            tid : 210,
            pid : row.id,
            showPreview : false,
            dataPreview : true,
            title : '党日活动图片管理',
            remarks : '建议图片宽度:500px,长度:200px;'
        });

    },

    doUpdate : function(row) {

        row = row || SP.table.bootstrap.method('#table', 'getSelections')[0];

        if (!row) {
            SP.modal.alert('请选择一条需要编辑的数据!');
            return;
        }

        SP.form.resetValid('#partyBuil');

        SP.form.setValue('#partyBuil', row);

        SP.modal.show('#modal', {
            title : '编辑党日活动',
            yes : function(obj) {
                if (SP.form.isValid('#partyBuil')) {
                    SP.http.ajaxPut({
                        url : '../../party/partyBuil/' + row.id,
                        data : SP.form.getValue('#partyBuil'),
                        success : function(data) {
                            SP.modal.alert(data.msg, function() {
                                if (data.code == 0) {
                                    SP.table.bootstrap.method('#table', 'refresh');
                                    SP.modal.hide('#modal');
                                }
                            }, data.code == 0);
                        }
                    });
                }
            }
        });
    },

    doDelete : function(row) {

        row = row || SP.table.bootstrap.method('#table', 'getSelections')[0];

        if (!row) {
            SP.modal.alert('请选择一条需要删除的数据!');
            return;
        }

        SP.modal.confirm('是否删除选中的数据?', function() {
            SP.http.ajaxDelete({
                url : '../../party/partyBuil/' + row.id,
                success : function(data) {
                    SP.modal.alert(data.msg, function() {
                        if (data.code == 0) {
                            SP.table.bootstrap.method('#table', 'refresh');
                        }
                    }, data.code == 0);
                }
            });
        });
    }
}

html层

partyBuil.html

<!DOCTYPE html>
<html>
<th:block th:replace="article/articleTemplate::container(_, _, _, _, ~{::footer})">

    <th:block th:fragment="footer">

        <th:block shiro:hasPermission="party:partyBuil:insert">
            <script type="text/javascript">
                AppData.permission.s_insert = true;
            </script>
        </th:block>
        <th:block shiro:hasPermission="party:partyBuil:update">
            <script type="text/javascript">
                AppData.permission.s_update = true;
            </script>
        </th:block>
        <th:block shiro:hasPermission="party:partyBuil:delete">
            <script type="text/javascript">
                AppData.permission.s_delete = true;
            </script>
        </th:block>
        <th:block shiro:hasPermission="party:partyBuil:release">
            <script type="text/javascript">
                AppData.permission.s_release = true;
            </script>
        </th:block>
        <th:block shiro:hasPermission="party:partyBuil:recover">
            <script type="text/javascript">
                AppData.permission.s_recover = true;
            </script>
        </th:block>

        <script type="text/javascript" th:src="@{/js/appjs/party/partyBuil.js}"></script>

        <script type="text/javascript" th:utext="${#BootstrapValidator.create('article', 'com.eastcom.article.domain.ArticleDO')}"></script>

    </th:block>

</th:block>
</html>


partyBuilList.html

<!DOCTYPE html>
<html>
<head th:replace="includeV2::header(~{::title}, ~{::link})">
<title th:text="党活动"></title>
<th:block th:fragment="link">
    <link th:href="@{/js/plugins/bootstrap-fileinput/css/fileinput.min.css}" rel="stylesheet">
</th:block>
</head>
<body>

    <div class="wrapper wrapper-content animated fadeInDown">
    
        <div id="toolbar">
            <!-- <button id="btn_insert" shiro:hasPermission="party:partyBuil:insert" class="btn btn-primary">
                <i class="fa fa-plus"></i> 添加
            </button> -->
            <!-- <button id="btn_update" shiro:hasPermission="party:partyBuil:update" class="btn btn-info">
                <i class="fa fa-edit"></i> 编辑
            </button> -->
            <!-- <button id="btn_delete" shiro:hasPermission="party:partyBuil:delete" class="btn btn-danger">
                <i class="fa fa-remove"></i> 删除
            </button> -->
                    </div>
        
        <table id="table" class="table"></table>
        
    </div>

    <div id="modal" class="modal inmodal" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content animated bounceInRight">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">
                        <span aria-hidden="true">&times;</span>
                        <span class="sr-only">关闭</span>
                    </button>
                    <i data-options="icon"></i>
                    <h4 data-options="title" class="modal-title"></h4>
                    <small data-options="subtitle" class="font-bold"></small>
                </div>
                <div class="modal-body">
                    <form id="partyBuil" class="form-horizontal">
                        <div class="form-group hidden">
                            <label class="col-sm-2 control-label"> </label>
                            <div class="col-sm-10">
                                <input name="id" type="text" class="form-control" placeholder="" />
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label"> 活动名称 </label>
                            <div class="col-sm-10">
                                <input name="title" type="text" class="form-control" placeholder="名称" />
                            </div>
                        </div>
                        <!-- <div class="form-group">
                            <label class="col-sm-2 control-label"> 网格名称 </label>
                            <div class="col-sm-10">
                                <input name="gridName" type="text" class="form-control" placeholder="网格名称" />
                            </div>
                        </div> -->
                        <div class="form-group">
                            <label class="col-sm-2 control-label"> 详细地址 </label>
                            <div class="col-sm-10">
                                <input name="address" type="text" class="form-control" placeholder="地址" />
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-2 control-label"> 活动内容 </label>
                            <div class="col-sm-10">
                                <textarea rows="4" name="content" class="form-control" placeholder="内容"></textarea>
                            </div>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-primary" data-options="yes">确定</button>
                    <button type="button" class="btn btn-white" data-dismiss="modal">关闭</button>
                </div>
            </div>
            
        </div>
        
    </div>

    <th:block th:replace="includeV2::footer(~{::script})">

        <th:block th:fragment="script">
            <script th:inline="javascript">
                 var AppData = {};
                 AppData.user = [[${userDO}]];
                AppData.permission = {
                    s_insert : false,
                    s_update : false,
                    s_delete : false
                };
            </script>

            <th:block shiro:hasPermission="party:partyBuil:insert">
                <script type="text/javascript">
                    AppData.permission.s_insert = true;
                </script>
            </th:block>
            <th:block shiro:hasPermission="party:partyBuil:update">
                <script type="text/javascript">
                    AppData.permission.s_update = true;
                </script>
            </th:block>
            <th:block shiro:hasPermission="party:partyBuil:delete">
                <script type="text/javascript">
                    AppData.permission.s_delete = true;
                </script>
            </th:block>

            <script type="text/javascript" th:src="@{/js/plugins/bootstrap-fileinput/js/fileinput.min.js}"></script>
            <script type="text/javascript" th:src="@{/js/plugins/bootstrap-fileinput/js/locales/zh.js}"></script>
            <script type="text/javascript" th:src="@{/js/appjs/party/partyBuilList.js}"></script>
            <script type="text/javascript" th:utext="${#BootstrapValidator.create('partyBuil', 'com.eastcom.party.domain.PartyBuilDO')}"></script>
        </th:block>

    </th:block>

</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值