添加表单

This commit is contained in:
wans 2021-03-31 11:37:02 +08:00
parent 55e4193e97
commit d87757a164
14 changed files with 2845 additions and 0 deletions

View File

@ -0,0 +1,135 @@
package com.tenlion.twoduty.controller.api.dutylistform;
import com.tenlion.twoduty.pojo.dtos.dutylistform.HeartTalkDTO;
import com.tenlion.twoduty.pojo.dtos.dutylistform.PartyCleanMeetingDTO;
import com.tenlion.twoduty.pojo.vos.dutylistform.PartyCleanMeetingVO;
import com.tenlion.twoduty.service.dutylistform.IDutyListFormService;
import ink.wgink.annotation.CheckRequestBodyAnnotation;
import ink.wgink.common.base.DefaultBaseController;
import ink.wgink.interfaces.consts.ISystemConstant;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.ErrorResult;
import ink.wgink.pojo.result.SuccessResult;
import ink.wgink.pojo.result.SuccessResultList;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 责任清单表单接口
* @author xwangs
* @create 2021-03-29 15:31
* @description
*/
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "责任清单表单接口")
@RestController
@RequestMapping(ISystemConstant.API_PREFIX + "/dutylistform")
public class DutyListFormController extends DefaultBaseController {
@Autowired
private IDutyListFormService dutyListFormService;
@ApiOperation(value = "党风廉政大会分页列表", notes = "党风廉政大会分页列表接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("listpagepartycleanmeeting")
public SuccessResultList<List<PartyCleanMeetingDTO>> listPagePartyCleanMeeting(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return dutyListFormService.listPagePartyCleanMeeting(page);
}
@ApiOperation(value = "党风廉政大会详情", notes = "党风廉政大会详情接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("getpartycleanmeeting/{id}")
public PartyCleanMeetingDTO getPartyCleanMeeting(@PathVariable("id") String reportId) {
Map<String, Object> params = requestParams();
params.put("reportId",reportId);
return dutyListFormService.getPartyCleanMeeting(params);
}
@ApiOperation(value = "新增党风廉政大会", notes = "新增党风廉政大会接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("savepartycleanmeeting")
public SuccessResult savePartyCleanMeeting(@RequestBody PartyCleanMeetingVO partyCleanMeetingVO) throws Exception{
dutyListFormService.savePartyCleanMeeting(partyCleanMeetingVO);
return new SuccessResult();
}
@ApiOperation(value = "党风廉政大会修改", notes = "党风廉政大会修改接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PutMapping("updatepartycleanmeeting/{id}")
public SuccessResult updatePartyCleanMeeting(@PathVariable("id") String id, @RequestBody PartyCleanMeetingVO partyCleanMeetingVO) {
partyCleanMeetingVO.setReportId(id);
dutyListFormService.updatePartyCleanMeeting(partyCleanMeetingVO);
return new SuccessResult();
}
@ApiOperation(value = "党风廉政大会删除", notes = "党风廉政大会删除接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@DeleteMapping("removepartycleanmeeting/{ids}")
public SuccessResult removePartyCleanMeeting(@PathVariable("ids") String ids) {
dutyListFormService.removePartyCleanMeeting(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
@ApiOperation(value = "谈心谈话分页列表", notes = "谈心谈话分页列表接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"),
@ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"),
@ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "startTime", value = "谈话时间开始", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "endTime", value = "谈话时间结束", paramType = "query", dataType = "String")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("listpagehearttalk")
public SuccessResultList<List<HeartTalkDTO>> listPageHeartTalk(ListPage page) {
Map<String, Object> params = requestParams();
page.setParams(params);
return dutyListFormService.listPageHeartTalk(page);
}
@ApiOperation(value = "谈心谈话详情", notes = "谈心谈话详情接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("gethearttalk/{id}")
public HeartTalkDTO getHeartTalk(@PathVariable("id") String reportId) {
Map<String, Object> params = requestParams();
params.put("reportId",reportId);
return dutyListFormService.getHeartTalk(params);
}
@ApiOperation(value = "新增谈心谈话", notes = "新增谈心谈话接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PostMapping("savehearttalk")
public SuccessResult saveHeartTalk(@RequestBody HeartTalkDTO heartTalkDTO) throws Exception{
dutyListFormService.saveHeartTalk(heartTalkDTO);
return new SuccessResult();
}
@ApiOperation(value = "谈心谈话修改", notes = "谈心谈话修改接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@PutMapping("updatehearttalk/{id}")
public SuccessResult updateHeartTalk(@PathVariable("id") String id, @RequestBody HeartTalkDTO heartTalkDTO) {
heartTalkDTO.setReportId(id);
dutyListFormService.updateHeartTalk(heartTalkDTO);
return new SuccessResult();
}
@ApiOperation(value = "谈心谈话删除", notes = "谈心谈话删除接口")
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@DeleteMapping("removehearttalk/{ids}")
public SuccessResult removeHeartTalk(@PathVariable("ids") String ids) {
dutyListFormService.removeHeartTalk(Arrays.asList(ids.split("\\_")));
return new SuccessResult();
}
}

View File

@ -0,0 +1,85 @@
package com.tenlion.twoduty.dao.dutylistform;
import com.tenlion.twoduty.pojo.dtos.dutylistform.HeartTalkDTO;
import com.tenlion.twoduty.pojo.dtos.dutylistform.PartyCleanMeetingDTO;
import ink.wgink.pojo.result.SuccessResultData;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-03-29 15:35
* @description
*/
@Repository
public interface IDutyListFormDao {
/**
* 党风廉政大会列表
* @param params
* @return
*/
List<PartyCleanMeetingDTO> listPartyCleanMeeting(Map<String, Object> params);
/**
* 党风廉政大会详情
* @param params
* @return
*/
PartyCleanMeetingDTO getPartyCleanMeeting(Map<String, Object> params);
/**
* 党风廉政大会新增
* @param params
* @return
*/
void savePartyCleanMeeting(Map<String, Object> params);
/**
* 党风廉政大会修改
* @param params
* @return
*/
void updatePartyCleanMeeting(Map<String, Object> params);
/**
* 党风廉政大会删除
* @param params
* @return
*/
void removePartyCleanMeeting(Map<String, Object> params);
/**
* 谈心谈话列表
* @param params
* @return
*/
List<HeartTalkDTO> listHeartTalk(Map<String, Object> params);
/**
* 谈心谈话详情
* @param params
* @return
*/
HeartTalkDTO getHeartTalk(Map<String, Object> params);
/**
* 谈心谈话新增
* @param params
*/
void saveHeartTalk(Map<String, Object> params);
/**
* 谈心谈话修改
* @param params
*/
void updateHeartTalk(Map<String, Object> params);
/**
* 谈心谈话删除
* @param params
*/
void removeHeartTalk(Map<String, Object> params);
}

View File

@ -0,0 +1,173 @@
package com.tenlion.twoduty.pojo.dtos.dutylistform;
import io.swagger.annotations.ApiModelProperty;
/**
* 谈心谈话DTO
* @author xwangs
* @create 2021-03-29 15:58
* @description
*/
public class HeartTalkDTO {
@ApiModelProperty(name = "reportId", value = "主键Id")
private String reportId;
@ApiModelProperty(name = "dutyIndexLibId", value = "责任清单ID")
private String dutyIndexLibId;
@ApiModelProperty(name = "orgName", value = "单位名称")
private String orgName;
@ApiModelProperty(name = "talkObj", value = "谈心谈话对象")
private String talkObj;
@ApiModelProperty(name = "politicalStatus", value = "政治面貌")
private String politicalStatus;
@ApiModelProperty(name = "orgJob", value = "单位职务")
private String orgJob;
@ApiModelProperty(name = "talkReason", value = "谈心谈话原因")
private String talkReason;
@ApiModelProperty(name = "talkPerson", value = "谈话人")
private String talkPerson;
@ApiModelProperty(name = "talkPersonOrgJob", value = "谈话人单位职务")
private String talkPersonOrgJob;
@ApiModelProperty(name = "noteTaker", value = "记录人")
private String noteTaker;
@ApiModelProperty(name = "talkDateTime", value = "谈话时间")
private String talkDateTime;
@ApiModelProperty(name = "talkPlace", value = "谈话地点")
private String talkPlace;
@ApiModelProperty(name = "talkContent", value = "谈心谈话内容")
private String talkContent;
@ApiModelProperty(name = "talkObjOpinion", value = "谈心谈话对象意见")
private String talkObjOpinion;
@ApiModelProperty(name = "talkObjSign", value = "谈心谈话对象签字")
private String talkObjSign;
@ApiModelProperty(name = "signDataTime", value = "签字日期")
private String signDataTime;
public String getReportId() {
return reportId == null ? "" : reportId;
}
public void setReportId(String reportId) {
this.reportId = reportId;
}
public String getDutyIndexLibId() {
return dutyIndexLibId == null ? "" : dutyIndexLibId;
}
public void setDutyIndexLibId(String dutyIndexLibId) {
this.dutyIndexLibId = dutyIndexLibId;
}
public String getOrgName() {
return orgName == null ? "" : orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
public String getTalkObj() {
return talkObj == null ? "" : talkObj;
}
public void setTalkObj(String talkObj) {
this.talkObj = talkObj;
}
public String getPoliticalStatus() {
return politicalStatus == null ? "" : politicalStatus;
}
public void setPoliticalStatus(String politicalStatus) {
this.politicalStatus = politicalStatus;
}
public String getOrgJob() {
return orgJob == null ? "" : orgJob;
}
public void setOrgJob(String orgJob) {
this.orgJob = orgJob;
}
public String getTalkReason() {
return talkReason == null ? "" : talkReason;
}
public void setTalkReason(String talkReason) {
this.talkReason = talkReason;
}
public String getTalkPerson() {
return talkPerson == null ? "" : talkPerson;
}
public void setTalkPerson(String talkPerson) {
this.talkPerson = talkPerson;
}
public String getTalkPersonOrgJob() {
return talkPersonOrgJob == null ? "" : talkPersonOrgJob;
}
public void setTalkPersonOrgJob(String talkPersonOrgJob) {
this.talkPersonOrgJob = talkPersonOrgJob;
}
public String getNoteTaker() {
return noteTaker == null ? "" : noteTaker;
}
public void setNoteTaker(String noteTaker) {
this.noteTaker = noteTaker;
}
public String getTalkDateTime() {
return talkDateTime == null ? "" : talkDateTime;
}
public void setTalkDateTime(String talkDateTime) {
this.talkDateTime = talkDateTime;
}
public String getTalkPlace() {
return talkPlace == null ? "" : talkPlace;
}
public void setTalkPlace(String talkPlace) {
this.talkPlace = talkPlace;
}
public String getTalkContent() {
return talkContent == null ? "" : talkContent;
}
public void setTalkContent(String talkContent) {
this.talkContent = talkContent;
}
public String getTalkObjOpinion() {
return talkObjOpinion == null ? "" : talkObjOpinion;
}
public void setTalkObjOpinion(String talkObjOpinion) {
this.talkObjOpinion = talkObjOpinion;
}
public String getTalkObjSign() {
return talkObjSign == null ? "" : talkObjSign;
}
public void setTalkObjSign(String talkObjSign) {
this.talkObjSign = talkObjSign;
}
public String getSignDataTime() {
return signDataTime == null ? "" : signDataTime;
}
public void setSignDataTime(String signDataTime) {
this.signDataTime = signDataTime;
}
}

View File

@ -0,0 +1,163 @@
package com.tenlion.twoduty.pojo.dtos.dutylistform;
import io.swagger.annotations.ApiModelProperty;
/**
* 党风廉政建设大会DTO
* @author xwangs
* @create 2021-03-29 15:58
* @description
*/
public class PartyCleanMeetingDTO {
@ApiModelProperty(name = "reportId", value = "主键Id")
private String reportId;
@ApiModelProperty(name = "dutyIndexLibId", value = "责任清单ID")
private String dutyIndexLibId;
@ApiModelProperty(name = "title", value = "标题")
private String title;
@ApiModelProperty(name = "meetingTime", value = "会议时间")
private String meetingTime;
@ApiModelProperty(name = "meetingPlace", value = "会议地点")
private String meetingPlace;
@ApiModelProperty(name = "meetingHost", value = "会议主持人")
private String meetingHost;
@ApiModelProperty(name = "noteTaker", value = "记录人")
private String noteTaker;
@ApiModelProperty(name = "joinPerson", value = "参会人员")
private String joinPerson;
@ApiModelProperty(name = "joinPersonCount", value = "参会人数")
private String joinPersonCount;
@ApiModelProperty(name = "meetingContent", value = "会议纪要内容")
private String meetingContent;
@ApiModelProperty(name = "meetingArrange", value = "会议安排")
private String meetingArrange;
@ApiModelProperty(name = "meetingAgenda", value = "会议议程")
private String meetingAgenda;
@ApiModelProperty(name = "hostContent", value = "主持词")
private String hostContent;
@ApiModelProperty(name = "partySecretaryTalk", value = "党委书记讲话内容")
private String partySecretaryTalk;
@ApiModelProperty(name = "remarks", value = "备注")
private String remarks;
public String getReportId() {
return reportId == null ? "" : reportId;
}
public void setReportId(String reportId) {
this.reportId = reportId;
}
public String getDutyIndexLibId() {
return dutyIndexLibId == null ? "" : dutyIndexLibId;
}
public void setDutyIndexLibId(String dutyIndexLibId) {
this.dutyIndexLibId = dutyIndexLibId;
}
public String getTitle() {
return title == null ? "" : title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMeetingTime() {
return meetingTime == null ? "" : meetingTime;
}
public void setMeetingTime(String meetingTime) {
this.meetingTime = meetingTime;
}
public String getMeetingPlace() {
return meetingPlace == null ? "" : meetingPlace;
}
public void setMeetingPlace(String meetingPlace) {
this.meetingPlace = meetingPlace;
}
public String getMeetingHost() {
return meetingHost == null ? "" : meetingHost;
}
public void setMeetingHost(String meetingHost) {
this.meetingHost = meetingHost;
}
public String getNoteTaker() {
return noteTaker == null ? "" : noteTaker;
}
public void setNoteTaker(String noteTaker) {
this.noteTaker = noteTaker;
}
public String getJoinPerson() {
return joinPerson == null ? "" : joinPerson;
}
public void setJoinPerson(String joinPerson) {
this.joinPerson = joinPerson;
}
public String getJoinPersonCount() {
return joinPersonCount == null ? "" : joinPersonCount;
}
public void setJoinPersonCount(String joinPersonCount) {
this.joinPersonCount = joinPersonCount;
}
public String getMeetingContent() {
return meetingContent == null ? "" : meetingContent;
}
public void setMeetingContent(String meetingContent) {
this.meetingContent = meetingContent;
}
public String getMeetingArrange() {
return meetingArrange == null ? "" : meetingArrange;
}
public void setMeetingArrange(String meetingArrange) {
this.meetingArrange = meetingArrange;
}
public String getMeetingAgenda() {
return meetingAgenda == null ? "" : meetingAgenda;
}
public void setMeetingAgenda(String meetingAgenda) {
this.meetingAgenda = meetingAgenda;
}
public String getHostContent() {
return hostContent == null ? "" : hostContent;
}
public void setHostContent(String hostContent) {
this.hostContent = hostContent;
}
public String getPartySecretaryTalk() {
return partySecretaryTalk == null ? "" : partySecretaryTalk;
}
public void setPartySecretaryTalk(String partySecretaryTalk) {
this.partySecretaryTalk = partySecretaryTalk;
}
public String getRemarks() {
return remarks == null ? "" : remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
}

View File

@ -0,0 +1,13 @@
package com.tenlion.twoduty.pojo.vos.dutylistform;
import com.tenlion.twoduty.pojo.dtos.dutylistform.PartyCleanMeetingDTO;
/**
* 党风廉政建设大会VO
* @author xwangs
* @create 2021-03-29 16:26
* @description
*/
public class PartyCleanMeetingVO extends PartyCleanMeetingDTO {
}

View File

@ -0,0 +1,83 @@
package com.tenlion.twoduty.service.dutylistform;
import com.tenlion.twoduty.pojo.dtos.dutylistform.HeartTalkDTO;
import com.tenlion.twoduty.pojo.dtos.dutylistform.PartyCleanMeetingDTO;
import com.tenlion.twoduty.pojo.vos.dutylistform.PartyCleanMeetingVO;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultData;
import ink.wgink.pojo.result.SuccessResultList;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-03-29 15:33
* @description
*/
public interface IDutyListFormService {
/**
* 党风廉政大会分页列表
* @param page
* @return
*/
SuccessResultList<List<PartyCleanMeetingDTO>> listPagePartyCleanMeeting(ListPage page);
/**
* 党风廉政大会详情
* @param params
* @return
*/
PartyCleanMeetingDTO getPartyCleanMeeting(Map<String, Object> params);
/**
* 新增党风廉政大会
* @param partyCleanMeetingVO
*/
void savePartyCleanMeeting(PartyCleanMeetingVO partyCleanMeetingVO) throws Exception;
/**
* 修改党风廉政大会
* @param partyCleanMeetingVO
*/
void updatePartyCleanMeeting(PartyCleanMeetingVO partyCleanMeetingVO);
/**
* 删除党风廉政大会
* @param idsList
*/
void removePartyCleanMeeting(List<String> idsList);
/**
* 谈心谈话分页列表
* @param page
* @return
*/
SuccessResultList<List<HeartTalkDTO>> listPageHeartTalk(ListPage page);
/**
* 谈心谈话详情
* @param params
* @return
*/
HeartTalkDTO getHeartTalk(Map<String, Object> params);
/**
* 谈心谈话新增
* @param heartTalkDTO
*/
void saveHeartTalk(HeartTalkDTO heartTalkDTO);
/**
* 谈心谈话修改
* @param heartTalkDTO
*/
void updateHeartTalk(HeartTalkDTO heartTalkDTO);
/**
* 谈心谈话删除
* @param asList
*/
void removeHeartTalk(List<String> asList);
}

View File

@ -0,0 +1,103 @@
package com.tenlion.twoduty.service.dutylistform.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.tenlion.twoduty.dao.dutylistform.IDutyListFormDao;
import com.tenlion.twoduty.pojo.dtos.dutylistform.HeartTalkDTO;
import com.tenlion.twoduty.pojo.dtos.dutylistform.PartyCleanMeetingDTO;
import com.tenlion.twoduty.pojo.vos.dutylistform.PartyCleanMeetingVO;
import com.tenlion.twoduty.service.dutylistform.IDutyListFormService;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil;
import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author xwangs
* @create 2021-03-29 15:34
* @description
*/
@Service
public class DutyListFormServiceImpl extends DefaultBaseService implements IDutyListFormService {
@Autowired
private IDutyListFormDao dutyListFormDao;
@Override
public SuccessResultList<List<PartyCleanMeetingDTO>> listPagePartyCleanMeeting(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<PartyCleanMeetingDTO> dtoList = dutyListFormDao.listPartyCleanMeeting(page.getParams());
PageInfo<PartyCleanMeetingDTO> pageInfo = new PageInfo<>(dtoList);
return new SuccessResultList<>(dtoList,pageInfo.getPageNum(),pageInfo.getTotal());
}
@Override
public PartyCleanMeetingDTO getPartyCleanMeeting(Map<String, Object> params) {
return dutyListFormDao.getPartyCleanMeeting(params);
}
@Override
public void savePartyCleanMeeting(PartyCleanMeetingVO partyCleanMeetingVO) {
Map<String,Object> params = HashMapUtil.beanToMap(partyCleanMeetingVO);
String id = UUIDUtil.getUUID();
params.put("reportId",id);
setSaveInfo(params);
dutyListFormDao.savePartyCleanMeeting(params);
}
@Override
public void updatePartyCleanMeeting(PartyCleanMeetingVO partyCleanMeetingVO) {
Map<String,Object> params = HashMapUtil.beanToMap(partyCleanMeetingVO);
setUpdateInfo(params);
dutyListFormDao.updatePartyCleanMeeting(params);
}
@Override
public void removePartyCleanMeeting(List<String> idsList) {
Map<String, Object> params = getHashMap(2);
params.put("ids", idsList);
dutyListFormDao.removePartyCleanMeeting(params);
}
@Override
public SuccessResultList<List<HeartTalkDTO>> listPageHeartTalk(ListPage page) {
PageHelper.startPage(page.getPage(), page.getRows());
List<HeartTalkDTO> dtoList = dutyListFormDao.listHeartTalk(page.getParams());
PageInfo<HeartTalkDTO> pageInfo = new PageInfo<>(dtoList);
return new SuccessResultList<>(dtoList,pageInfo.getPageNum(),pageInfo.getTotal());
}
@Override
public HeartTalkDTO getHeartTalk(Map<String, Object> params) {
return dutyListFormDao.getHeartTalk(params);
}
@Override
public void saveHeartTalk(HeartTalkDTO heartTalkDTO) {
Map<String,Object> params = HashMapUtil.beanToMap(heartTalkDTO);
String id = UUIDUtil.getUUID();
params.put("reportId",id);
setSaveInfo(params);
dutyListFormDao.saveHeartTalk(params);
}
@Override
public void updateHeartTalk(HeartTalkDTO heartTalkDTO) {
Map<String,Object> params = HashMapUtil.beanToMap(heartTalkDTO);
setUpdateInfo(params);
dutyListFormDao.updateHeartTalk(params);
}
@Override
public void removeHeartTalk(List<String> asList) {
Map<String, Object> params = getHashMap(2);
params.put("ids", asList);
dutyListFormDao.removeHeartTalk(params);
}
}

View File

@ -0,0 +1,252 @@
<?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.tenlion.twoduty.dao.dutylistform.IDutyListFormDao">
<!--=========党风廉政大会============-->
<resultMap id="partyCleanMeetingDTO" type="com.tenlion.twoduty.pojo.dtos.dutylistform.PartyCleanMeetingDTO">
<result column="report_id" property="reportId"/>
<result column="duty_index_lib_id" property="dutyIndexLibId"/>
<result column="title" property="title"/>
<result column="meeting_time" property="meetingTime"/>
<result column="meeting_place" property="meetingPlace"/>
<result column="meeting_host" property="meetingHost"/>
<result column="note_taker" property="noteTaker"/>
<result column="join_person" property="joinPerson"/>
<result column="join_person_count" property="joinPersonCount"/>
<result column="meeting_content" property="meetingContent"/>
<result column="meeting_arrange" property="meetingArrange"/>
<result column="meeting_agenda" property="meetingAgenda"/>
<result column="host_content" property="hostContent"/>
<result column="party_secretary_talk" property="partySecretaryTalk"/>
<result column="remarks" property="remarks"/>
</resultMap>
<select id="listPartyCleanMeeting" parameterType="map" resultMap="partyCleanMeetingDTO">
SELECT t1.* FROM t_party_clean_meeting t1
WHERE
t1.is_delete = '0'
<if test="dutyIndexLibId != null and dutyIndexLibId != ''">
AND t1.duty_index_lib_id = #{dutyIndexLibId}
</if>
<if test="keywords != null and keywords != ''">
AND (
t1.title LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="startTime != null and startTime != ''">
AND LEFT(t1.meeting_time, 10) <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND LEFT(t1.meeting_time, 10) <![CDATA[ <= ]]> #{endTime}
</if>
</select>
<select id="getPartyCleanMeeting" parameterType="map" resultMap="partyCleanMeetingDTO">
SELECT t1.* FROM t_party_clean_meeting t1
WHERE
t1.is_delete = '0'
AND t1.report_id = #{reportId}
</select>
<insert id="savePartyCleanMeeting" parameterType="map">
INSERT INTO t_party_clean_meeting (
report_id,duty_index_lib_id,title,meeting_time,meeting_place,meeting_host,note_taker,
join_person,join_person_count,meeting_content,meeting_arrange,meeting_agenda,host_content,
party_secretary_talk,remarks,creator,gmt_create,modifier,gmt_modified,is_delete
) VALUES (
#{reportId},#{dutyIndexLibId},#{title},#{meetingTime},#{meetingPlace},#{meetingHost},#{noteTaker},
#{joinPerson},#{joinPersonCount},#{meetingContent},#{meetingArrange},#{meetingAgenda},#{hostContent},
#{partySecretaryTalk},#{remarks},#{creator},#{gmtCreate},#{modifier},#{gmtModified},#{isDelete}
)
</insert>
<update id="updatePartyCleanMeeting" parameterType="map">
UPDATE t_party_clean_meeting SET
<if test="dutyIndexLibId != null and dutyIndexLibId != ''">
duty_index_lib_id = #{dutyIndexLibId},
</if>
<if test="title != null and title != ''">
title = #{title},
</if>
<if test="meetingTime != null and meetingTime != ''">
meeting_time = #{meetingTime},
</if>
<if test="meetingPlace != null and meetingPlace != ''">
meeting_place = #{meetingPlace},
</if>
<if test="meetingHost != null and meetingHost != ''">
meeting_host = #{meetingHost},
</if>
<if test="noteTaker != null and noteTaker != ''">
note_taker = #{noteTaker},
</if>
<if test="joinPerson != null and joinPerson != ''">
join_person = #{joinPerson},
</if>
<if test="joinPersonCount != null and joinPersonCount != ''">
join_person_count = #{joinPersonCount},
</if>
<if test="meetingContent != null and meetingContent != ''">
meeting_content = #{meetingContent},
</if>
<if test="meetingArrange != null and meetingArrange != ''">
meeting_arrange = #{meetingArrange},
</if>
<if test="meetingAgenda != null and meetingAgenda != ''">
meeting_agenda = #{meetingAgenda},
</if>
<if test="hostContent != null and hostContent != ''">
host_content = #{hostContent},
</if>
<if test="partySecretaryTalk != null and partySecretaryTalk != ''">
party_secretary_talk = #{partySecretaryTalk},
</if>
<if test="remarks != null and remarks != ''">
remarks = #{remarks},
</if>
<if test="gmtModified != null and gmtModified != ''">
gmt_modified = #{gmtModified},
</if>
<if test="modifier != null and modifier != ''">
modifier = #{modifier}
</if>
WHERE report_id = #{reportId}
</update>
<update id="removePartyCleanMeeting" parameterType="map">
UPDATE t_party_clean_meeting SET
is_delete = 1
WHERE
report_id IN
<foreach collection="ids" index="index" open="(" separator="," close=")">
#{ids[${index}]}
</foreach>
</update>
<!--=========谈心谈话============-->
<resultMap id="heartTalkDTO" type="com.tenlion.twoduty.pojo.dtos.dutylistform.HeartTalkDTO">
<result column="report_id" property="reportId"/>
<result column="duty_index_lib_id" property="dutyIndexLibId"/>
<result column="org_name" property="orgName"/>
<result column="talk_obj" property="talkObj"/>
<result column="political_status" property="politicalStatus"/>
<result column="org_job" property="orgJob"/>
<result column="talk_reason" property="talkReason"/>
<result column="talk_person" property="talkPerson"/>
<result column="talk_person_org_job" property="talkPersonOrgJob"/>
<result column="note_taker" property="noteTaker"/>
<result column="talk_date_time" property="talkDateTime"/>
<result column="talk_place" property="talkPlace"/>
<result column="talk_content" property="talkContent"/>
<result column="talk_obj_opinion" property="talkObjOpinion"/>
<result column="talk_obj_sign" property="talkObjSign"/>
<result column="sign_data_time" property="signDataTime"/>
</resultMap>
<select id="listHeartTalk" parameterType="map" resultMap="heartTalkDTO">
SELECT t1.* FROM t_heart_talk t1
WHERE
t1.is_delete = '0'
<if test="dutyIndexLibId != null and dutyIndexLibId != ''">
AND t1.duty_index_lib_id = #{dutyIndexLibId}
</if>
<if test="keywords != null and keywords != ''">
AND (
t1.org_name LIKE CONCAT('%', #{keywords}, '%')
OR
t1.talk_obj LIKE CONCAT('%', #{keywords}, '%')
)
</if>
<if test="startTime != null and startTime != ''">
AND LEFT(t1.talk_date_time, 10) <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND LEFT(t1.talk_date_time, 10) <![CDATA[ <= ]]> #{endTime}
</if>
</select>
<select id="getHeartTalk" parameterType="map" resultMap="heartTalkDTO">
SELECT t1.* FROM t_heart_talk t1
WHERE
t1.is_delete = '0'
AND t1.report_id = #{reportId}
</select>
<insert id="saveHeartTalk" parameterType="map">
INSERT INTO t_heart_talk (
report_id,duty_index_lib_id,org_name,talk_obj,political_status,org_job,talk_reason,
talk_person,talk_person_org_job,note_taker,talk_date_time,talk_place,talk_content,
talk_obj_opinion,talk_obj_sign,sign_data_time,creator,gmt_create,modifier,gmt_modified,is_delete
) VALUES (
#{reportId},#{dutyIndexLibId},#{orgName},#{talkObj},#{politicalStatus},#{orgJob},#{talkReason},
#{talkPerson},#{talkPersonOrgJob},#{noteTaker},#{talkDateTime},#{talkPlace},#{talkContent},
#{talkObjOpinion},#{talkObjSign},#{signDataTime},#{creator},#{gmtCreate},#{modifier},#{gmtModified},#{isDelete}
)
</insert>
<update id="updateHeartTalk" parameterType="map">
UPDATE t_heart_talk SET
<if test="dutyIndexLibId != null and dutyIndexLibId != ''">
duty_index_lib_id = #{dutyIndexLibId},
</if>
<if test="orgName != null and orgName != ''">
org_name = #{orgName},
</if>
<if test="talkObj != null and talkObj != ''">
talk_obj = #{talkObj},
</if>
<if test="politicalStatus != null and politicalStatus != ''">
political_status = #{politicalStatus},
</if>
<if test="orgJob != null and orgJob != ''">
org_job = #{orgJob},
</if>
<if test="talkReason != null and talkReason != ''">
talk_reason = #{talkReason},
</if>
<if test="talkPerson != null and talkPerson != ''">
talk_person = #{talkPerson},
</if>
<if test="talkPersonOrgJob != null and talkPersonOrgJob != ''">
talk_person_org_job = #{talkPersonOrgJob},
</if>
<if test="noteTaker != null and noteTaker != ''">
note_taker = #{noteTaker},
</if>
<if test="talkDateTime != null and talkDateTime != ''">
talk_date_time = #{talkDateTime},
</if>
<if test="talkPlace != null and talkPlace != ''">
talk_place = #{talkPlace},
</if>
<if test="talkContent != null and talkContent != ''">
talk_content = #{talkContent},
</if>
<if test="talkObjOpinion != null and talkObjOpinion != ''">
talk_obj_opinion = #{talkObjOpinion},
</if>
<if test="talkObjSign != null and talkObjSign != ''">
talk_obj_sign = #{talkObjSign},
</if>
<if test="signDataTime != null and signDataTime != ''">
sign_data_time = #{signDataTime},
</if>
<if test="gmtModified != null and gmtModified != ''">
gmt_modified = #{gmtModified},
</if>
<if test="modifier != null and modifier != ''">
modifier = #{modifier}
</if>
WHERE report_id = #{reportId}
</update>
<update id="removeHeartTalk" parameterType="map">
UPDATE t_heart_talk SET
is_delete = 1
WHERE
report_id IN
<foreach collection="ids" index="index" open="(" separator="," close=")">
#{ids[${index}]}
</foreach>
</update>
</mapper>

View File

@ -0,0 +1,357 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
<a class="close" href="javascript:void(0);">返回列表</a><span lay-separator="">/</span>
<a href="javascript:void(0);"><cite>编辑谈心谈话</cite></a>
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">单位名称<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="orgName" name="orgName" class="layui-input" value="" autocomplete="off" placeholder="请填写单位名称" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label"><span style="font-size: 12px">谈心谈话对象</span><span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkObj" name="talkObj" class="layui-input" value="" autocomplete="off" placeholder="请填写谈心谈话对象" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">政治面貌<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="politicalStatus" name="politicalStatus" class="layui-input" value="" autocomplete="off" placeholder="请填写政治面貌" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">单位职务<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="orgJob" name="orgJob" class="layui-input" value="" autocomplete="off" placeholder="请填写单位职务" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">谈心谈话原因<span style="color: red">*</span></label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="talkReason" name="talkReason" value="" placeholder="谈心谈话原因"></textarea>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">谈话人<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkPerson" name="talkPerson" class="layui-input" value="" autocomplete="off" placeholder="请填写谈话人" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">单位职务<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkPersonOrgJob" name="talkPersonOrgJob" class="layui-input" value="" autocomplete="off" placeholder="请填写单位职务" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">谈话时间<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkDateTime" name="talkDateTime" class="layui-input" value=""
style="cursor: pointer" placeholder="请选择谈话时间" readonly="readonly" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">谈话地点<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkPlace" name="talkPlace" class="layui-input" value="" autocomplete="off" placeholder="请填写谈话地点" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">记录人<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="noteTaker" name="noteTaker" class="layui-input" value="" autocomplete="off" placeholder="请填写记录人" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">谈心谈话内容<span style="color: red">*</span></label>
<div class="layui-input-block">
<textarea class="layui-textarea" rows="8" id="talkContent" name="talkContent" value="" placeholder="谈心谈话内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">谈心谈话对象意见<span style="color: red">*</span></label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="talkObjOpinion" name="talkObjOpinion" value="" placeholder="谈心谈话对象意见"></textarea>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">签字</label>
<div class="layui-input-block">
<input type="hidden" id="talkObjSign" name="talkObjSign">
<div class="layui-btn-container" id="talkObjSignFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="talkObjSignFileDownload" type="text/html">
{{# var fileName = 'talkObjSign'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="talkObjSignRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
{{# if(d[fileName].length < 1) { }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="附加图片" data-name="talkObjSign" lay-filter="talkObjSignUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
{{# } }}
</script>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">签字时间<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="signDataTime" name="signDataTime" class="layui-input" value=""
style="cursor: pointer" placeholder="请选择签字时间" readonly="readonly" lay-verify="required">
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交新增</button>
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var viewerObj = {};
var id = top.restAjax.params(window.location.href).id;
// 初始化内容
function initData() {
laydate.render({
elem: '#talkDateTime',
type: 'datetime',
trigger: 'click'
})
laydate.render({
elem: '#signDataTime',
type: 'datetime',
trigger: 'click'
})
getFormData();
}
initData();
function getFormData(){
var loadLayerIndexl;
top.restAjax.get(top.restAjax.path('api/dutylistform/gethearttalk/{id}', [id]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
initTalkObjSignUploadFile();
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
// 初始化附加图片图片上传
function initTalkObjSignUploadFile() {
var files = $('#talkObjSign').val();
initFileList('talkObjSign', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
viewerObj[fileName] = viewer;
});
form.on('button(talkObjSignUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
}
}
});
});
form.on('button(talkObjSignRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/dutylistform/updatehearttalk/{id}', [id]), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function(index) {
top.dialog.close(index);
window.location.reload();
},
btn2: function() {
closeBox();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
});
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,358 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" autocomplete="off" placeholder="输入关键字">
</div>
<div class="layui-inline">
<input type="text" id="startTime" class="layui-input search-item" style="cursor: pointer" placeholder="谈话时间始" readonly>
</div>
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" style="cursor: pointer" placeholder="谈话时间止" readonly>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<!-- 表头按钮组 -->
<script type="text/html" id="headerToolBar">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-sm" lay-event="saveEvent">
<i class="fa fa-lg fa-plus"></i> 新增
</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="updateEvent">
<i class="fa fa-lg fa-edit"></i> 编辑
</button>
<button type="button" class="layui-btn layui-btn-danger layui-btn-sm" lay-event="removeEvent">
<i class="fa fa-lg fa-trash"></i> 删除
</button>
</div>
</script>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
</div>
</div>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'table', 'laydate', 'common'], function() {
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var admin = layui.admin;
var laydate = layui.laydate;
var common = layui.common;
var resizeTimeout = null;
var dutyIndexLibId = top.restAjax.params(window.location.href).dutyIndexLibId;
if(typeof (dutyIndexLibId) === 'undefined'){
dutyIndexLibId = '';
}
var tableUrl = 'api/dutylistform/listpagehearttalk?dutyIndexLibId=' + dutyIndexLibId;
function initData() {
// 查询条件日期初始化
laydate.render({
elem: '#startTime',
format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#endTime',
format: 'yyyy-MM-dd'
});
initTable()
}
initData();
// 初始化表格
function initTable() {
table.render({
elem: '#dataTable',
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
toolbar: '#headerToolBar',
request: {
pageName: 'page',
limitName: 'rows'
},
cols: [
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'orgName', width: 150, title: '单位名称', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
return '-';
}
return rowData;
}
},
{field: 'talkObj', width: 150, title: '谈心谈话对象', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
return '-';
}
return rowData;
}
},
{field: 'politicalStatus', width: 150, title: '政治面貌', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'orgJob', width: 180, title: '单位职务', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkReason', width: 180, title: '谈心谈话原因', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkPerson', width: 180, title: '谈话人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkPersonOrgJob', width: 180, title: '谈话人单位职务', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'noteTaker', width: 180, title: '记录人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkDateTime', width: 180, title: '谈话时间', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkPlace', width: 180, title: '谈话地点', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkContent', width: 180, title: '谈心谈话内容', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkObjOpinion', width: 200, title: '谈心谈话对象意见', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'talkObjSign', width: 200, title: '谈心谈话对象签字', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'signDataTime', width: 200, title: '签字日期', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
]
],
page: true,
parseData: function(data) {
return {
'code': 0,
'msg': '',
'count': data.total,
'data': data.rows
};
}
});
}
// 重载表格
function reloadTable(currentPage) {
table.reload('dataTable', {
url: top.restAjax.path(tableUrl, []),
where: {
keywords: $('#keywords').val(),
startTime: $('#startTime').val(),
endTime: $('#endTime').val()
},
page: {
curr: currentPage
},
height: $win.height() - 90,
});
}
// 事件 - 增删改
table.on('toolbar(dataTable)', function(obj) {
var layEvent = obj.event;
var checkStatus = table.checkStatus('dataTable');
var checkDatas = checkStatus.data;
if(layEvent === 'saveEvent') {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/hearttalk/save-heart-talk.html?dutyIndexLibId={dutyIndexLibId}',
[dutyIndexLibId]),
end: function() {
reloadTable();
}
});
} else if(layEvent === 'updateEvent') {
if(checkDatas.length === 0) {
top.dialog.msg(top.dataMessage.table.selectEdit);
} else if(checkDatas.length > 1) {
top.dialog.msg(top.dataMessage.table.selectOneEdit);
} else {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/hearttalk/edit-heart-talk.html?id={id}',
[checkDatas[0].reportId]),
end: function() {
reloadTable();
}
});
}
} else if(layEvent === 'removeEvent') {
if(checkDatas.length === 0) {
top.dialog.msg(top.dataMessage.table.selectDelete);
} else {
var ids = '';
for(var i = 0, item; item = checkDatas[i++];) {
if(i > 1) {
ids += '_';
}
ids += item['reportId'];
}
removeData(ids);
}
}
});
// 删除
function removeData(ids) {
top.dialog.msg(top.dataMessage.delete, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function (index) {
top.dialog.close(index);
var layIndex;
top.restAjax.delete(top.restAjax.path('api/dutylistform/removehearttalk/{ids}', [ids]), {}, null, function (code, data) {
top.dialog.msg(top.dataMessage.deleteSuccess, {time: 1000});
reloadTable();
}, function (code, data) {
top.dialog.msg(data.msg);
}, function () {
layIndex = top.dialog.msg(top.dataMessage.deleting, {icon: 16, time: 0, shade: 0.3});
}, function () {
top.dialog.close(layIndex);
});
}
});
}
// 事件 - 页面变化
$win.on('resize', function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function() {
reloadTable();
}, 500);
});
// 事件 - 搜索
$(document).on('click', '#search', function() {
reloadTable(1);
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,342 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
<a class="close" href="javascript:void(0);">返回列表</a><span lay-separator="">/</span>
<a href="javascript:void(0);"><cite>新增谈心谈话</cite></a>
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">单位名称<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="orgName" name="orgName" class="layui-input" value="" autocomplete="off" placeholder="请填写单位名称" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label"><span style="font-size: 12px">谈心谈话对象</span><span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkObj" name="talkObj" class="layui-input" value="" autocomplete="off" placeholder="请填写谈心谈话对象" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">政治面貌<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="politicalStatus" name="politicalStatus" class="layui-input" value="" autocomplete="off" placeholder="请填写政治面貌" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">单位职务<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="orgJob" name="orgJob" class="layui-input" value="" autocomplete="off" placeholder="请填写单位职务" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">谈心谈话原因<span style="color: red">*</span></label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="talkReason" name="talkReason" value="" placeholder="谈心谈话原因"></textarea>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">谈话人<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkPerson" name="talkPerson" class="layui-input" value="" autocomplete="off" placeholder="请填写谈话人" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">单位职务<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkPersonOrgJob" name="talkPersonOrgJob" class="layui-input" value="" autocomplete="off" placeholder="请填写单位职务" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">谈话时间<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkDateTime" name="talkDateTime" class="layui-input" value=""
style="cursor: pointer" placeholder="请选择谈话时间" readonly="readonly" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">谈话地点<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="talkPlace" name="talkPlace" class="layui-input" value="" autocomplete="off" placeholder="请填写谈话地点" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">记录人<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="noteTaker" name="noteTaker" class="layui-input" value="" autocomplete="off" placeholder="请填写记录人" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">谈心谈话内容<span style="color: red">*</span></label>
<div class="layui-input-block">
<textarea class="layui-textarea" rows="8" id="talkContent" name="talkContent" value="" placeholder="谈心谈话内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">谈心谈话对象意见<span style="color: red">*</span></label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="talkObjOpinion" name="talkObjOpinion" value="" placeholder="谈心谈话对象意见"></textarea>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">签字</label>
<div class="layui-input-block">
<input type="hidden" id="talkObjSign" name="talkObjSign">
<div class="layui-btn-container" id="talkObjSignFileBox" style="border: 1px solid #e6e6e6;"></div>
<script id="talkObjSignFileDownload" type="text/html">
{{# var fileName = 'talkObjSign'; }}
{{# if(d[fileName].length > 0) { }}
{{# var files = d[fileName];}}
{{# for(var i = 0, item = files[i]; item = files[i++];) { }}
<div class="upload-image-box">
<span class="upload-image-span">
<img src="route/file/download/false/{{item.fileId}}" align="加载失败">
</span>
<a class="layui-btn layui-btn-xs layui-btn-danger text-danger remove-image" href="javascript:void(0);" lay-form-button data-id="{{item.fileId}}" data-name="{{fileName}}" lay-filter="talkObjSignRemoveFile">
<i class="fa fa-trash-o"></i>
</a>
</div>
{{# } }}
{{# } }}
{{# if(d[fileName].length < 1) { }}
<div class="upload-image-box" style="width: auto; height: auto; padding: 5px;">
<a href="javascript:void(0);" lay-form-button data-explain="附加图片" data-name="talkObjSign" lay-filter="talkObjSignUploadFile">
<i class="fa fa-plus-square-o" style="font-size: 70px;"></i>
</a>
</div>
{{# } }}
</script>
</div>
</div>
</div>
<div class="layui-col-md3">
<div class="layui-form-item">
<label class="layui-form-label">签字时间<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="signDataTime" name="signDataTime" class="layui-input" value=""
style="cursor: pointer" placeholder="请选择签字时间" readonly="readonly" lay-verify="required">
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn submit-btn" lay-submit lay-filter="submitForm">提交新增</button>
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var viewerObj = {};
var indexLibParentId = top.restAjax.params(window.location.href).indexLibParentId;
if(typeof (indexLibParentId) == 'undefined' || indexLibParentId == ''){
$('.submit-btn').remove()
}
// 初始化内容
function initData() {
laydate.render({
elem: '#talkDateTime',
type: 'datetime',
trigger: 'click'
})
laydate.render({
elem: '#signDataTime',
type: 'datetime',
trigger: 'click'
})
initTalkObjSignUploadFile()
}
initData();
// 初始化附加图片图片上传
function initTalkObjSignUploadFile() {
var files = $('#talkObjSign').val();
initFileList('talkObjSign', files, function(fileName) {
var viewer = new Viewer(document.getElementById(fileName +'FileBox'), {navbar: false});
viewerObj[fileName] = viewer;
});
form.on('button(talkObjSignUploadFile)', function(obj) {
var name = this.dataset.name;
var explain = this.dataset.explain;
top.dialog.file({
type: 'image',
title: '上传'+ explain,
width: '400px',
height: '420px',
maxFileCount: '1',
onClose: function() {
var uploadFileArray = top.dialog.dialogData.uploadFileArray;
if(typeof(uploadFileArray) != 'undefined' && uploadFileArray.length > 0) {
var files = $('#'+ name).val();
for(var j = 0, file = uploadFileArray[j]; file = uploadFileArray[j++];) {
if(files.length > 0) {
files += ',';
}
files += file.data;
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
}
}
});
});
form.on('button(talkObjSignRemoveFile)', function(obj) {
var name = this.dataset.name;
var id = this.dataset.id;
var files = $('#'+ name).val().replace(id, '');
files = files.replace(/\,+/g, ',');
if(files.charAt(0) == ',') {
files = files.substring(1);
}
if(files.charAt(files.length - 1) == ',') {
files = files.substring(0, files.length - 1);
}
initFileList(name, files, function(fileName) {
viewerObj[fileName].update();
});
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if(!ids) {
refreshDownloadTemplet(fileName, []);
if(callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function(code, data) {
refreshDownloadTemplet(fileName, data);
if(callback) {
callback(fileName, data);
}
}, function(code, data) {
top.dialog.msg(data.msg);
});
}
function refreshDownloadTemplet(fileName, file) {
var dataRander = {};
dataRander[fileName] = file;
laytpl(document.getElementById(fileName +'FileDownload').innerHTML).render(dataRander, function(html) {
document.getElementById(fileName +'FileBox').innerHTML = html;
});
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
formData.field['indexLibParentId'] = indexLibParentId;
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.post(top.restAjax.path('api/dutylistform/savehearttalk', []), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function(index) {
top.dialog.close(index);
window.location.reload();
},
btn2: function() {
closeBox();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
});
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,228 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
<a class="close" href="javascript:void(0);">返回列表</a><span lay-separator="">/</span>
<a href="javascript:void(0);"><cite>编辑党风廉政建设大会</cite></a>
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item">
<label class="layui-form-label">标题<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="title" name="title" class="layui-input" value="" autocomplete="off" placeholder="请填写标题" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">会议时间<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="meetingTime" name="meetingTime" class="layui-input" value=""
style="cursor: pointer" placeholder="请选择会议时间" readonly="readonly" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">会议地点<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="meetingPlace" name="meetingPlace" class="layui-input" value="" autocomplete="off" placeholder="请填写会议地点" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">主持人<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="meetingHost" name="meetingHost" class="layui-input" value="" autocomplete="off" placeholder="请填写会议主持人" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">记录人</label>
<div class="layui-input-block">
<input type="text" id="noteTaker" name="noteTaker" class="layui-input" value="" autocomplete="off" placeholder="请填写会议记录人">
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item" style="display: inline-block">
<label class="layui-form-label">共计参会</label>
<div class="layui-input-block">
<input type="number" min="0" id="joinPersonCount" name="joinPersonCount" class="layui-input" value="" autocomplete="off" placeholder="参会共计人数" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item">
<label class="layui-form-label">参会人员</label>
<div class="layui-input-block">
<input type="text" id="joinPerson" name="joinPerson" class="layui-input" value="" autocomplete="off" placeholder="请填写参会人员">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">党委会纪要</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="meetingContent" name="meetingContent" value="" placeholder="党委会纪要内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">会议安排</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="meetingArrange" name="meetingArrange" value="" placeholder="会议安排内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">会议议程</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="meetingAgenda" name="meetingAgenda" value="" placeholder="会议议程内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">主持词</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="hostContent" name="hostContent" value="" placeholder="主持词内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">党委书记讲话内容</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="partySecretaryTalk" name="partySecretaryTalk" value="" placeholder="党委书记讲话内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="remarks" name="remarks" value="" placeholder="备注"></textarea>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交新增</button>
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var id = top.restAjax.params(window.location.href).id;
// 初始化内容
function initData() {
laydate.render({
elem: '#meetingTime',
type: 'datetime',
trigger: 'click'
})
getFormData();
}
initData();
function getFormData(){
var loadLayerIndexl;
top.restAjax.get(top.restAjax.path('api/dutylistform/getpartycleanmeeting/{id}', [id]), {}, null, function(code, data) {
var dataFormData = {};
for(var i in data) {
dataFormData[i] = data[i] +'';
}
form.val('dataForm', dataFormData);
form.render(null, 'dataForm');
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/dutylistform/updatepartycleanmeeting/{id}', [id]), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function(index) {
top.dialog.close(index);
window.location.reload();
},
btn2: function() {
closeBox();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
});
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,340 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" autocomplete="off" placeholder="输入关键字">
</div>
<div class="layui-inline">
<input type="text" id="startTime" class="layui-input search-item" style="cursor: pointer" placeholder="开始时间" readonly>
</div>
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" style="cursor: pointer" placeholder="结束时间" readonly>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<!-- 表头按钮组 -->
<script type="text/html" id="headerToolBar">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-sm" lay-event="saveEvent">
<i class="fa fa-lg fa-plus"></i> 新增
</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="updateEvent">
<i class="fa fa-lg fa-edit"></i> 编辑
</button>
<button type="button" class="layui-btn layui-btn-danger layui-btn-sm" lay-event="removeEvent">
<i class="fa fa-lg fa-trash"></i> 删除
</button>
</div>
</script>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
</div>
</div>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'table', 'laydate', 'common'], function() {
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var admin = layui.admin;
var laydate = layui.laydate;
var common = layui.common;
var resizeTimeout = null;
var dutyIndexLibId = top.restAjax.params(window.location.href).dutyIndexLibId;
if(typeof (dutyIndexLibId) === 'undefined'){
dutyIndexLibId = '';
}
var tableUrl = 'api/dutylistform/listpagepartycleanmeeting?dutyIndexLibId=' + dutyIndexLibId;
function initData() {
// 查询条件日期初始化
laydate.render({
elem: '#startTime',
format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#endTime',
format: 'yyyy-MM-dd'
});
initTable()
}
initData();
// 初始化表格
function initTable() {
table.render({
elem: '#dataTable',
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
toolbar: '#headerToolBar',
request: {
pageName: 'page',
limitName: 'rows'
},
cols: [
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'title', width: 250, title: '标题', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
return '-';
}
return rowData;
}
},
{field: 'meetingTime', width: 150, title: '会议时间', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
return '-';
}
return rowData;
}
},
{field: 'meetingPlace', width: 150, title: '会议地点', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'meetingHost', width: 180, title: '会议主持人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'noteTaker', width: 180, title: '记录人', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'joinPersonCount', width: 180, title: '参会人数', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData + '人';
}
},
{field: 'joinPerson', width: 180, title: '参会人员', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'meetingContent', width: 180, title: '会议纪要', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'meetingArrange', width: 180, title: '会议安排', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'meetingAgenda', width: 180, title: '会议议程', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'hostContent', width: 180, title: '主持词', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'partySecretaryTalk', width: 200, title: '党委书记讲话内容', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
]
],
page: true,
parseData: function(data) {
return {
'code': 0,
'msg': '',
'count': data.total,
'data': data.rows
};
}
});
}
// 重载表格
function reloadTable(currentPage) {
table.reload('dataTable', {
url: top.restAjax.path(tableUrl, []),
where: {
keywords: $('#keywords').val(),
startTime: $('#startTime').val(),
endTime: $('#endTime').val()
},
page: {
curr: currentPage
},
height: $win.height() - 90,
});
}
// 事件 - 增删改
table.on('toolbar(dataTable)', function(obj) {
var layEvent = obj.event;
var checkStatus = table.checkStatus('dataTable');
var checkDatas = checkStatus.data;
if(layEvent === 'saveEvent') {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/partycleanmeeting/save-party-clean-meeting.html?dutyIndexLibId={dutyIndexLibId}',
[dutyIndexLibId]),
end: function() {
reloadTable();
}
});
} else if(layEvent === 'updateEvent') {
if(checkDatas.length === 0) {
top.dialog.msg(top.dataMessage.table.selectEdit);
} else if(checkDatas.length > 1) {
top.dialog.msg(top.dataMessage.table.selectOneEdit);
} else {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/partycleanmeeting/edit-party-clean-meeting.html?id={id}',
[checkDatas[0].reportId]),
end: function() {
reloadTable();
}
});
}
} else if(layEvent === 'removeEvent') {
if(checkDatas.length === 0) {
top.dialog.msg(top.dataMessage.table.selectDelete);
} else {
var ids = '';
for(var i = 0, item; item = checkDatas[i++];) {
if(i > 1) {
ids += '_';
}
ids += item['reportId'];
}
removeData(ids);
}
}
});
// 删除
function removeData(ids) {
top.dialog.msg(top.dataMessage.delete, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function (index) {
top.dialog.close(index);
var layIndex;
top.restAjax.delete(top.restAjax.path('api/dutylistform/removepartycleanmeeting/{ids}', [ids]), {}, null, function (code, data) {
top.dialog.msg(top.dataMessage.deleteSuccess, {time: 1000});
reloadTable();
}, function (code, data) {
top.dialog.msg(data.msg);
}, function () {
layIndex = top.dialog.msg(top.dataMessage.deleting, {icon: 16, time: 0, shade: 0.3});
}, function () {
top.dialog.close(layIndex);
});
}
});
}
// 事件 - 页面变化
$win.on('resize', function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function() {
reloadTable();
}, 500);
});
// 事件 - 搜索
$(document).on('click', '#search', function() {
reloadTable(1);
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,213 @@
<!doctype html>
<html lang="en">
<head>
<base href="/twoduty/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-card">
<div class="layui-card-header">
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
<a class="close" href="javascript:void(0);">返回列表</a><span lay-separator="">/</span>
<a href="javascript:void(0);"><cite>新增党风廉政建设大会</cite></a>
</span>
</div>
<div class="layui-card-body" style="padding: 15px;">
<form class="layui-form layui-form-pane" lay-filter="dataForm">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-form-item">
<label class="layui-form-label">标题<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="title" name="title" class="layui-input" value="" autocomplete="off" placeholder="请填写标题" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">会议时间<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="meetingTime" name="meetingTime" class="layui-input" value=""
style="cursor: pointer" placeholder="请选择会议时间" readonly="readonly" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-form-item">
<label class="layui-form-label">会议地点<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="meetingPlace" name="meetingPlace" class="layui-input" value="" autocomplete="off" placeholder="请填写会议地点" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">主持人<span style="color: red">*</span></label>
<div class="layui-input-block">
<input type="text" id="meetingHost" name="meetingHost" class="layui-input" value="" autocomplete="off" placeholder="请填写会议主持人" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item">
<label class="layui-form-label">记录人</label>
<div class="layui-input-block">
<input type="text" id="noteTaker" name="noteTaker" class="layui-input" value="" autocomplete="off" placeholder="请填写会议记录人">
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-form-item" style="display: inline-block">
<label class="layui-form-label">共计参会</label>
<div class="layui-input-block">
<input type="number" min="0" id="joinPersonCount" name="joinPersonCount" class="layui-input" value="" autocomplete="off" placeholder="参会共计人数" lay-verify="required">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item">
<label class="layui-form-label">参会人员</label>
<div class="layui-input-block">
<input type="text" id="joinPerson" name="joinPerson" class="layui-input" value="" autocomplete="off" placeholder="请填写参会人员">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">党委会纪要</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="meetingContent" name="meetingContent" value="" placeholder="党委会纪要内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">会议安排</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="meetingArrange" name="meetingArrange" value="" placeholder="会议安排内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">会议议程</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="meetingAgenda" name="meetingAgenda" value="" placeholder="会议议程内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">主持词</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="hostContent" name="hostContent" value="" placeholder="主持词内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">党委书记讲话内容</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="partySecretaryTalk" name="partySecretaryTalk" value="" placeholder="党委书记讲话内容"></textarea>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea class="layui-textarea" id="remarks" name="remarks" value="" placeholder="备注"></textarea>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn submit-btn" lay-submit lay-filter="submitForm">提交新增</button>
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var indexLibParentId = top.restAjax.params(window.location.href).indexLibParentId;
if(typeof (indexLibParentId) == 'undefined' || indexLibParentId == ''){
$('.submit-btn').remove()
}
// 初始化内容
function initData() {
laydate.render({
elem: '#meetingTime',
type: 'datetime',
trigger: 'click'
})
}
initData();
// 提交表单
form.on('submit(submitForm)', function(formData) {
formData.field['indexLibParentId'] = indexLibParentId;
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.post(top.restAjax.path('api/dutylistform/savepartycleanmeeting', []), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function(index) {
top.dialog.close(index);
window.location.reload();
},
btn2: function() {
closeBox();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
});
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}
$('.close').on('click', function() {
closeBox();
});
// 校验
form.verify({
});
});
</script>
</body>
</html>