Commit bd9261f5 by java-lixy

导出、转为文档、发消息

parent de120831
...@@ -84,7 +84,16 @@ public class ExportExcel { ...@@ -84,7 +84,16 @@ public class ExportExcel {
public ExportExcel(String title, Class<?> cls){ public ExportExcel(String title, Class<?> cls){
this(title, cls, 1); this(title, cls, 1);
} }
/**
* 构造函数
* @param title 表格标题,传“空值”,表示无标题
* @param cls 实体对象,通过annotation.ExportField获取标题
*/
public ExportExcel(String title, Class<?> cls, boolean isAdmin){
this(title, cls, isAdmin,1);
}
/** /**
* 构造函数 * 构造函数
* @param title 表格标题,传“空值”,表示无标题 * @param title 表格标题,传“空值”,表示无标题
...@@ -93,7 +102,7 @@ public class ExportExcel { ...@@ -93,7 +102,7 @@ public class ExportExcel {
* @param groups 导入分组 * @param groups 导入分组
*/ */
public ExportExcel(String title, Class<?> cls, int type, int... groups){ public ExportExcel(String title, Class<?> cls, int type, int... groups){
// Get annotation field // Get annotation field
Field[] fs = cls.getDeclaredFields(); Field[] fs = cls.getDeclaredFields();
for (Field f : fs){ for (Field f : fs){
ExcelField ef = f.getAnnotation(ExcelField.class); ExcelField ef = f.getAnnotation(ExcelField.class);
...@@ -163,7 +172,92 @@ public class ExportExcel { ...@@ -163,7 +172,92 @@ public class ExportExcel {
} }
initialize(title, headerList); initialize(title, headerList);
} }
/**
* 构造函数
* @param title 表格标题,传“空值”,表示无标题
* @param cls 实体对象,通过annotation.ExportField获取标题
* @param type 导出类型(1:导出数据;2:导出模板)
* @param groups 导入分组
*/
public ExportExcel(String title, Class<?> cls, boolean isAdmin, int type, int... groups){
// Get annotation field
Field[] fs = cls.getDeclaredFields();
for (Field f : fs){
ExcelField ef = f.getAnnotation(ExcelField.class);
if (ef != null && (ef.type()==0 || ef.type()==type)){
if (groups!=null && groups.length>0){
boolean inGroup = false;
for (int g : groups){
if (inGroup){
break;
}
for (int efg : ef.groups()){
if (g == efg){
inGroup = true;
annotationList.add(new Object[]{ef, f});
break;
}
}
}
}else{
annotationList.add(new Object[]{ef, f});
}
}
}
// Get annotation method
Method[] ms = cls.getDeclaredMethods();
for (Method m : ms){
ExcelField ef = m.getAnnotation(ExcelField.class);
if (ef != null && (ef.type()==0 || ef.type()==type)){
if (groups!=null && groups.length>0){
boolean inGroup = false;
for (int g : groups){
if (inGroup){
break;
}
for (int efg : ef.groups()){
if (g == efg){
inGroup = true;
annotationList.add(new Object[]{ef, m});
break;
}
}
}
}else{
if (isAdmin){
annotationList.add(new Object[]{ef, m});
}else {
if (!m.getName().equals("getTransferName")){
annotationList.add(new Object[]{ef, m});
}
}
}
}
}
// Field sorting
Collections.sort(annotationList, new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
return new Integer(((ExcelField)o1[0]).sort()).compareTo(
new Integer(((ExcelField)o2[0]).sort()));
};
});
// Initialize
List<String> headerList = Lists.newArrayList();
for (Object[] os : annotationList){
String t = ((ExcelField)os[0]).title();
// 如果是导出,则去掉注释
if (type==1){
String[] ss = StringUtils.split(t, "**", 2);
if (ss.length==2){
t = ss[0];
}
}
headerList.add(t);
}
initialize(title, headerList);
}
/** /**
* 构造函数 * 构造函数
* @param title 表格标题,传“空值”,表示无标题 * @param title 表格标题,传“空值”,表示无标题
...@@ -172,7 +266,7 @@ public class ExportExcel { ...@@ -172,7 +266,7 @@ public class ExportExcel {
public ExportExcel(String title, String[] headers) { public ExportExcel(String title, String[] headers) {
initialize(title, Lists.newArrayList(headers)); initialize(title, Lists.newArrayList(headers));
} }
/** /**
* 构造函数 * 构造函数
* @param title 表格标题,传“空值”,表示无标题 * @param title 表格标题,传“空值”,表示无标题
...@@ -181,7 +275,7 @@ public class ExportExcel { ...@@ -181,7 +275,7 @@ public class ExportExcel {
public ExportExcel(String title, List<String> headerList) { public ExportExcel(String title, List<String> headerList) {
initialize(title, headerList); initialize(title, headerList);
} }
/** /**
* 初始化函数 * 初始化函数
* @param title 表格标题,传“空值”,表示无标题 * @param title 表格标题,传“空值”,表示无标题
......
...@@ -120,7 +120,7 @@ public interface ReportDao extends CrudDao<ReportEntity> { ...@@ -120,7 +120,7 @@ public interface ReportDao extends CrudDao<ReportEntity> {
* 查询管理员ID * 查询管理员ID
* @return * @return
*/ */
public String findAdmin(Office office); public List<String> findAdmin(Office office);
/** /**
* 举报状态数据 * 举报状态数据
......
...@@ -309,6 +309,7 @@ public class ReportEntity extends DataEntity<ReportEntity> { ...@@ -309,6 +309,7 @@ public class ReportEntity extends DataEntity<ReportEntity> {
this.types = types; this.types = types;
} }
@ExcelField(title="移交给", align=2, sort=42)
public String getTransferName() { public String getTransferName() {
return transferName; return transferName;
} }
......
...@@ -6,6 +6,7 @@ import com.ejweb.core.service.CrudService; ...@@ -6,6 +6,7 @@ import com.ejweb.core.service.CrudService;
import com.ejweb.core.utils.IdGen; import com.ejweb.core.utils.IdGen;
import com.ejweb.core.utils.SpringContextHolder; import com.ejweb.core.utils.SpringContextHolder;
import com.ejweb.core.utils.StringUtils; import com.ejweb.core.utils.StringUtils;
import com.ejweb.core.utils.excel.annotation.ExcelField;
import com.ejweb.modules.report.dao.ReportDao; import com.ejweb.modules.report.dao.ReportDao;
import com.ejweb.modules.report.entity.ReportAttachmentEntity; import com.ejweb.modules.report.entity.ReportAttachmentEntity;
import com.ejweb.modules.report.entity.ReportEntity; import com.ejweb.modules.report.entity.ReportEntity;
...@@ -17,12 +18,18 @@ import com.ejweb.modules.sys.entity.Role; ...@@ -17,12 +18,18 @@ import com.ejweb.modules.sys.entity.Role;
import com.ejweb.modules.sys.entity.User; import com.ejweb.modules.sys.entity.User;
import com.ejweb.modules.sys.utils.UserUtils; import com.ejweb.modules.sys.utils.UserUtils;
import com.ejweb.modules.workbench.entity.ReportNotice; import com.ejweb.modules.workbench.entity.ReportNotice;
import org.apache.ibatis.javassist.bytecode.AnnotationsAttribute;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.File; import java.io.File;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
...@@ -80,7 +87,9 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -80,7 +87,9 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
reportEntity.setReportTime(reportTime); reportEntity.setReportTime(reportTime);
reportEntity.setReportStatus("0"); reportEntity.setReportStatus("0");
reportEntity.setExchangeBeforeUser(reportEntity.getCreateBy().getId()); reportEntity.setExchangeBeforeUser(reportEntity.getCreateBy().getId());
reportEntity.setExchangeAfterUser(reportEntity.getCreateBy().getId()); if (!this.checkRole(user)) {
reportEntity.setExchangeAfterUser(reportEntity.getCreateBy().getId());
}
dao.addReport(reportEntity); dao.addReport(reportEntity);
if (StringUtils.isNotBlank(reportEntity.getReportAttachment())) { if (StringUtils.isNotBlank(reportEntity.getReportAttachment())) {
...@@ -116,14 +125,13 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -116,14 +125,13 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
* @param reportEntity * @param reportEntity
*/ */
@Transactional(readOnly = false) @Transactional(readOnly = false)
public void saveTrack(ReportEntity reportEntity) { public void saveTrack(ReportEntity reportEntity,String transferUser) {
//保存举报补充信息 //保存举报补充信息
reportEntity.preUpdate(); reportEntity.preUpdate();
User user = UserUtils.getUser(); User user = UserUtils.getUser();
if (StringUtils.isNotBlank(reportEntity.getExchangeAfterUser())){ if (StringUtils.isNotBlank(transferUser)){
reportEntity.setExchangeType("1"); reportEntity.setExchangeType("1");
}else { reportEntity.setExchangeAfterUser(transferUser);
reportEntity.setExchangeAfterUser(user.getId());
} }
dao.addTrack(reportEntity); dao.addTrack(reportEntity);
...@@ -240,7 +248,7 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -240,7 +248,7 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
* @return * @return
*/ */
@Transactional(readOnly = false) @Transactional(readOnly = false)
public int addNotice(ReportEntity reportEntity,String flag){ public int addNotice(ReportEntity reportEntity,String flag,String ifDone){
User user = UserUtils.getUser(); User user = UserUtils.getUser();
Date date = new Date(); Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
...@@ -259,10 +267,16 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -259,10 +267,16 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
reportNotice.setSendToId(reportEntity.getExchangeAfterUser()); reportNotice.setSendToId(reportEntity.getExchangeAfterUser());
reportNotice.setStatus("0"); reportNotice.setStatus("0");
if (flag.equals("answer")){ if (flag.equals("answer")){
reportNotice.setSendToId(reportDao.findAdmin(new Office())); //当前只有杨杨是系统管理员,处理后消息发给杨杨,以后如果新增了系统管理员需修改
//findAdmin()方法获取所有系统管理员
reportNotice.setSendToId("8434980248282724540228");
reportNotice.setTitle("“"+reportEntity.getSupplementTitle()+"”已由"+user.getName()+"于"+dateStr+"处理完成"); reportNotice.setTitle("“"+reportEntity.getSupplementTitle()+"”已由"+user.getName()+"于"+dateStr+"处理完成");
}if (flag.equals("meanWhile")){ }if (flag.equals("meanWhile")){
reportNotice.setTitle("“"+reportEntity.getSupplementTitle()+"”已由"+user.getName()+"于"+dateStr+"处理完成"); reportNotice.setTitle("“"+reportEntity.getSupplementTitle()+"”已由"+user.getName()+"于"+dateStr+"处理完成");
//没点完成,title为请处理
if (reportEntity.getDealResult().equals("3") && StringUtils.isBlank(ifDone)){
reportNotice.setTitle("请处理-“"+reportEntity.getSupplementTitle()+"”");
}
} }
reportDao.updateReportNotice(reportNotice); reportDao.updateReportNotice(reportNotice);
return 1; return 1;
...@@ -284,6 +298,10 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -284,6 +298,10 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
}else if (flag.equals("meanWhile")){ }else if (flag.equals("meanWhile")){
reportNotice.setSendToId(reportEntity.getExchangeAfterUser()); reportNotice.setSendToId(reportEntity.getExchangeAfterUser());
reportNotice.setTitle("“"+reportEntity.getSupplementTitle()+"”已由"+user.getName()+"于"+dateStr+"处理完成"); reportNotice.setTitle("“"+reportEntity.getSupplementTitle()+"”已由"+user.getName()+"于"+dateStr+"处理完成");
//没点完成,title为请处理
if (reportEntity.getDealResult().equals("3") && StringUtils.isBlank(ifDone)){
reportNotice.setTitle("请处理-“"+reportEntity.getSupplementTitle()+"”");
}
}else{ }else{
//管理员转交或移交,消息标题为“请处理xxx” //管理员转交或移交,消息标题为“请处理xxx”
String title = reportEntity.getSupplementTitle(); String title = reportEntity.getSupplementTitle();
...@@ -412,6 +430,16 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -412,6 +430,16 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
report.setSupplementArea(supplementArea); report.setSupplementArea(supplementArea);
report.setSupplementInformant(report.getSupplementInformant() == null?"--":report.getSupplementInformant()); report.setSupplementInformant(report.getSupplementInformant() == null?"--":report.getSupplementInformant());
report.setDealPersonName(report.getDealPersonName() == null?"--":report.getDealPersonName()); report.setDealPersonName(report.getDealPersonName() == null?"--":report.getDealPersonName());
User user = UserUtils.getUser();
if (this.checkRole(user)){
if (StringUtils.isBlank(report.getTransferName()) || StringUtils.isBlank(report.getExchangeType())){
report.setTransferName("--");
}else if (StringUtils.isNotBlank(report.getTransferName()) && StringUtils.isNotBlank(report.getExchangeType())){
report.setTransferName(report.getTransferName());
}
}else{
report.setTransferName("");
}
} }
return reportList; return reportList;
} }
...@@ -443,7 +471,7 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> { ...@@ -443,7 +471,7 @@ public class ReportService extends CrudService<ReportDao, ReportEntity> {
reportEntity.setUpdateBy(user); reportEntity.setUpdateBy(user);
reportEntity.setUpdateDate(new Date()); reportEntity.setUpdateDate(new Date());
reportDao.updateExchangeUser(reportEntity); reportDao.updateExchangeUser(reportEntity);
this.addNotice(reportEntity,"deliver"); this.addNotice(reportEntity,"deliver",null);
this.addRecord(reportEntity,"2"); this.addRecord(reportEntity,"2");
} }
} }
......
...@@ -268,6 +268,7 @@ public class ReportController extends BaseController { ...@@ -268,6 +268,7 @@ public class ReportController extends BaseController {
@RequestMapping(value = "addTrack") @RequestMapping(value = "addTrack")
public String addTrack(ReportEntity reportEntity,HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) { public String addTrack(ReportEntity reportEntity,HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
String ifDone = request.getParameter("ifDone"); // 是否完成 String ifDone = request.getParameter("ifDone"); // 是否完成
String transferUser = request.getParameter("exchangeAfterUser"); //选择移交人员
if (!beanValidator(model, reportEntity)) { if (!beanValidator(model, reportEntity)) {
return form(reportEntity, model); return form(reportEntity, model);
} }
...@@ -286,18 +287,20 @@ public class ReportController extends BaseController { ...@@ -286,18 +287,20 @@ public class ReportController extends BaseController {
String exchangeAfterUser = reportService.findExchangeUser(reportEntity.getId()); String exchangeAfterUser = reportService.findExchangeUser(reportEntity.getId());
reportEntity.setExchangeAfterUser(exchangeAfterUser); reportEntity.setExchangeAfterUser(exchangeAfterUser);
} }
reportService.saveTrack(reportEntity); reportService.saveTrack(reportEntity,transferUser);
String exchangeAfterUser = request.getParameter("exchangeAfterUser");
if (StringUtils.isNotBlank(exchangeAfterUser) && StringUtils.isBlank(reportEntity.getDealResult())){ if (StringUtils.isNotBlank(transferUser) && StringUtils.isBlank(reportEntity.getDealResult())){
//管理员移交给他人处理 //管理员移交给他人处理
reportService.addNotice(reportEntity,"transfer"); reportService.addNotice(reportEntity,"transfer",ifDone);
reportService.addRecord(reportEntity,"1"); reportService.addRecord(reportEntity,"1");
}else if (StringUtils.isNotBlank(reportEntity.getDealResult()) && StringUtils.isBlank(exchangeAfterUser)){ }else if (StringUtils.isNotBlank(reportEntity.getDealResult()) && StringUtils.isBlank(transferUser)){
//自行处理 //自行处理
reportService.addNotice(reportEntity,"answer"); if (!(reportEntity.getDealResult().equals("3") && StringUtils.isBlank(ifDone))) {
}else if (StringUtils.isNotBlank(exchangeAfterUser) && StringUtils.isNotBlank(reportEntity.getDealResult())){ reportService.addNotice(reportEntity, "answer", ifDone);
}
}else if (StringUtils.isNotBlank(transferUser) && StringUtils.isNotBlank(reportEntity.getDealResult())){
//管理员进行处理,同时移交给他人 //管理员进行处理,同时移交给他人
reportService.addNotice(reportEntity,"meanWhile"); reportService.addNotice(reportEntity,"meanWhile",ifDone);
} }
addMessage(redirectAttributes, "补充举报"+ reportEntity.getSupplementTitle() + "'成功"); addMessage(redirectAttributes, "补充举报"+ reportEntity.getSupplementTitle() + "'成功");
return "redirect:" + adminPath + "/report/list/?repage&flag=0"; return "redirect:" + adminPath + "/report/list/?repage&flag=0";
...@@ -388,7 +391,8 @@ public class ReportController extends BaseController { ...@@ -388,7 +391,8 @@ public class ReportController extends BaseController {
public String export(ReportEntity reportEntity,String flag, HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes) { public String export(ReportEntity reportEntity,String flag, HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes) {
//判断登录人的角色 //判断登录人的角色
User user = UserUtils.getUser(); User user = UserUtils.getUser();
if (!reportService.checkRole(user)){ boolean isAdmin = reportService.checkRole(user);
if (!isAdmin){
reportEntity.setExchangeAfterUser(user.getId()); reportEntity.setExchangeAfterUser(user.getId());
} }
//判断标签状态 flag为空,跳转到核查中举报列表 flag为0,跳转到未处理举报列表 flag为1,跳转到举报列表 //判断标签状态 flag为空,跳转到核查中举报列表 flag为0,跳转到未处理举报列表 flag为1,跳转到举报列表
...@@ -406,7 +410,7 @@ public class ReportController extends BaseController { ...@@ -406,7 +410,7 @@ public class ReportController extends BaseController {
try { try {
String fileName = "举报列表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; String fileName = "举报列表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
List<ReportEntity> reportList = reportService.getReportList(reportEntity); List<ReportEntity> reportList = reportService.getReportList(reportEntity);
new ExportExcel("举报列表", ReportEntity.class).setDataList(reportList).write(request,response, fileName).dispose(); new ExportExcel("举报列表", ReportEntity.class, isAdmin).setDataList(reportList).write(request,response, fileName).dispose();
return null; return null;
} catch (Exception e) { } catch (Exception e) {
addMessage(redirectAttributes, "导出用户失败!失败信息:" + e.getMessage()); addMessage(redirectAttributes, "导出用户失败!失败信息:" + e.getMessage());
......
...@@ -132,7 +132,7 @@ public class ReportToWordController { ...@@ -132,7 +132,7 @@ public class ReportToWordController {
} }
} }
if (list.size() > 1) { if (list.size() > 1) {
mergeCellsVertically(basicInfoTable, 0, 5, 5 + list.size() - 1); mergeCellsVertically(basicInfoTable, 0, 6, 6 + list.size() - 1);
} }
this.setCellWidth(basicInfoTable); this.setCellWidth(basicInfoTable);
...@@ -318,11 +318,11 @@ public class ReportToWordController { ...@@ -318,11 +318,11 @@ public class ReportToWordController {
for (int i = 0; i < list1.size(); i++) { for (int i = 0; i < list1.size(); i++) {
XWPFTableRow reportAttachment = supplementInfoTable.createRow(); XWPFTableRow reportAttachment = supplementInfoTable.createRow();
reportAttachment.getCell(0).setText("附件:"); reportAttachment.getCell(0).setText("附件:");
reportAttachment.getCell(1).setText(list1.get(i).getAttachmentPath()); reportAttachment.createCell().setText(list1.get(i).getAttachmentPath());
} }
} }
if (list1.size() > 1) { if (list1.size() > 1) {
mergeCellsVertically(supplementInfoTable, 0, 6, 6 + list1.size() - 1); mergeCellsVertically(supplementInfoTable, 0, 4, 4 + list1.size() - 1);
} }
this.setCellWidth(supplementInfoTable); this.setCellWidth(supplementInfoTable);
supplementInfoTable.setCellMargins(0, 100, 0, 100); supplementInfoTable.setCellMargins(0, 100, 0, 100);
......
...@@ -383,8 +383,7 @@ ...@@ -383,8 +383,7 @@
LEFT JOIN ct_bbtc_sys_role sr ON sr.id = sur.role_id LEFT JOIN ct_bbtc_sys_role sr ON sr.id = sur.role_id
WHERE WHERE
sr.name = '系统管理员' sr.name = '系统管理员'
<if test="dbName == 'oracle'"> AND rownum &lt;= 1</if> AND SU.DEL_FLAG = '0'
<if test="dbName == 'mysql'"> limit 1</if>
</select> </select>
<insert id="addRecord"> <insert id="addRecord">
......
...@@ -184,7 +184,10 @@ ...@@ -184,7 +184,10 @@
<td><c:if test="${report.dealPersonName eq null}">--</c:if> <td><c:if test="${report.dealPersonName eq null}">--</c:if>
<c:if test="${report.dealPersonName ne null}">${report.dealPersonName}</c:if> <c:if test="${report.dealPersonName ne null}">${report.dealPersonName}</c:if>
</td> </td>
<td>${report.transferName}</td> <td>
<c:if test="${report.transferName eq null || report.exchangeType eq null}">--</c:if>
<c:if test="${report.transferName ne null && report.exchangeType ne null}">${report.transferName}</c:if>
</td>
<td> <td>
<a href="${ctx}/report/view?id=${report.id}">查看</a> <a href="${ctx}/report/view?id=${report.id}">查看</a>
</td> </td>
......
...@@ -193,8 +193,8 @@ ...@@ -193,8 +193,8 @@
</td> </td>
<c:if test="${isAdmin eq true}"> <c:if test="${isAdmin eq true}">
<td> <td>
<c:if test="${report.transferName eq null}">--</c:if> <c:if test="${report.transferName eq null || report.exchangeType eq null}">--</c:if>
<c:if test="${report.transferName ne null}">${report.transferName}</c:if> <c:if test="${report.transferName ne null && report.exchangeType ne null}">${report.transferName}</c:if>
</td> </td>
</c:if> </c:if>
<td> <td>
......
...@@ -59,17 +59,14 @@ ...@@ -59,17 +59,14 @@
var checkedNumber = "${report.supplementType}"; var checkedNumber = "${report.supplementType}";
if (checkedNumber != null && checkedNumber.length != 0) { if (checkedNumber != null && checkedNumber.length != 0) {
var number = checkedNumber.split(","); var number = checkedNumber.split(",");
console.log(number);
var ck = document.getElementsByName("supplementType"); var ck = document.getElementsByName("supplementType");
console.log(ck);
for (var i = 0; i < number.length; i++) { for (var i = 0; i < number.length; i++) {
ck[number[i] - 1].checked = true; ck[number[i] - 1].checked = true;
} }
} }
$("#reportDetail input[type='text']").each(function(){ // $("#reportDetail input[type='text']").each(function(){
// alert($(this).val()); // $(this).attr("disabled",true);
$(this).attr("disabled",true); // });
});
<%--var source = "${report.reportSource}";--%> <%--var source = "${report.reportSource}";--%>
<%--$(":radio[name='reportSource'][value='" + source + "']").prop("checked", "checked");--%> <%--$(":radio[name='reportSource'][value='" + source + "']").prop("checked", "checked");--%>
var supplementType = $("#supplementType").find("option:selected").text(); var supplementType = $("#supplementType").find("option:selected").text();
...@@ -77,112 +74,197 @@ ...@@ -77,112 +74,197 @@
if(supplementType == "请选择"){ if(supplementType == "请选择"){
supplementType = "${report.reportProject}"; supplementType = "${report.reportProject}";
} }
var path = "mailto:?subject=举报核查-"+supplementType+"-"+supplementInformant+"违规操作";
path += "&body=Dear,%0D%0A附件是举报核查-"+supplementType+"-"+supplementInformant+"违规操作,请核实是否属实。%0D%0A谢谢!";
//path += "%0D%0A%0D%0A%0D%0A%0D%0A${userName}";
path += "%0D%0A%0D%0A举报内容%0D%0A";
path += "被举报项目:${report.reportProject}%0D%0A";
path += "标题:${report.supplementTitle}%0D%0A";
path += "被举报人:${report.supplementInformant}%0D%0A";
path += "举报时间:${report.reportTime}%0D%0A";
path += "所在城市:${report.reportCity}%0D%0A";
var reportContent = $("#reportContent").val();
path += "内容:"+reportContent+"%0D%0A";
path += "附件:%0D%0A";
$("#attachment1").find("[class='attachmentClass']").each(function(){
var url = $(this).text();
path += url;
});
path += "%0D%0A举报人信息%0D%0A";
path += "姓名:${report.reportPersonName}%0D%0A";
path += "手机号:${report.reportPersonTel}%0D%0A";
path += "Email:${report.reportPersonEmail}%0D%0A";
var reportSource = "${report.reportSource}";
if (reportSource == "web"){
reportSource = "官网";
}else if (reportSource == "oa"){
reportSource = "融创OA系统";
}else if (reportSource == "supplier"){
reportSource = "供应商系统";
}else if (reportSource == "wechat"){
reportSource = "微信公众号";
}else if (reportSource == "sunacE"){
reportSource = "融E";
}else if (reportSource == "offline"){
reportSource = "线下扫码";
}else if (reportSource == "tel"){
reportSource = "电话";
}else if (reportSource == "email"){
reportSource = "邮件";
}else if (reportSource == "visit"){
reportSource = "来访";
}
path += "举报途径:"+reportSource+"%0D%0A";
var reportStatus = "${report.reportStatus}";
if (reportStatus != "0"){
path += "举报信息补充%0D%0A";
var supplementTypeStr = "${supplementTypeStr}";
path += "业务类型:"+supplementTypeStr+"%0D%0A";
var supplementArea = "${report.supplementArea}";
if (supplementArea == "North China"){
supplementArea = "华北区域公司";
}else if (supplementArea == "BeiJing"){
supplementArea = "北京区域公司";
}else if (supplementArea == "ShangHai"){
supplementArea = "上海区域公司";
}else if (supplementArea == "SouthWest"){
supplementArea = "西南区域公司";
}else if (supplementArea == "SouthEast"){
supplementArea = "东南区域公司";
}else if (supplementArea == "Central China"){
supplementArea = "华中区域公司";
}else if (supplementArea == "GuangShen"){
supplementArea = "广深区域公司";
}else if (supplementArea == "Hainan"){
supplementArea = "海南区域公司";
}else if (supplementArea == "Group"){
supplementArea = "集团本部";
}
path += "被举报区域:"+ supplementArea +"%0D%0A";
var supplementContent = $("#supplementContent").val();
path += "内容:"+supplementContent+"%0D%0A";
path += "附件:%0D%0A";
$("#attachment2").find("[class='attachmentClass']").each(function(){
var url = $(this).text();
path += url;
});
}
$("#sendE").attr("href",path);
}); });
/**
* 获取浏览器类型以及版本号
* 支持国产浏览器:猎豹浏览器、搜狗浏览器、傲游浏览器、360极速浏览器、360安全浏览器、
* QQ浏览器、百度浏览器等.
* 支持国外浏览器:IE,Firefox,Chrome,safari,Opera等.
* 使用方法:
* 获取浏览器版本:Browser.client.version
* 获取浏览器名称(外壳):Browser.client.name
* @author:xuzengqiang
* @since :2015-1-27 10:26:11
**/
var Browser=Browser || (function(window){
var document = window.document,
navigator = window.navigator,
agent = navigator.userAgent.toLowerCase(),
//IE8+支持.返回浏览器渲染当前文档所用的模式
//IE6,IE7:undefined.IE8:8(兼容模式返回7).IE9:9(兼容模式返回7||8)
//IE10:10(兼容模式7||8||9)
IEMode = document.documentMode,
//chorme
chrome = window.chrome || false ,
System = {
//user-agent
agent : agent,
//是否为IE
isIE : /msie/.test(agent),
//Gecko内核
isGecko: agent.indexOf( "gecko" )> 0 && agent.indexOf( "like gecko" )< 0 ,
//webkit内核
isWebkit: agent.indexOf( "webkit" )> 0 ,
//是否为标准模式
isStrict: document.compatMode === "CSS1Compat" ,
//是否支持subtitle
supportSubTitle:function(){
return "track" in document.createElement( "track" );
},
//是否支持scoped
supportScope:function(){
return "scoped" in document.createElement( "style" );
},
//获取IE的版本号
ieVersion:function(){
try {
return agent.match(/msie ([\d.]+)/)[ 1 ] || 0 ;
} catch (e) {
console.log( "error" );
return IEMode;
}
},
//Opera版本号
operaVersion:function(){
try {
if (window.opera) {
return agent.match(/opera.([\d.]+)/)[ 1 ];
} else if (agent.indexOf( "opr" ) > 0 ) {
return agent.match(/opr\/([\d.]+)/)[ 1 ];
}
} catch (e) {
console.log( "error" );
return 0 ;
}
},
//描述:version过滤.如31.0.252.152 只保留31.0
versionFilter:function(){
if (arguments.length === 1 && typeof arguments[ 0 ] === "string" ) {
var version = arguments[ 0 ];
start = version.indexOf( "." );
if (start> 0 ){
end = version.indexOf( "." ,start+ 1 );
if (end !== - 1 ) {
return version.substr( 0 ,end);
}
}
return version;
} else if (arguments.length === 1 ) {
return arguments[ 0 ];
}
return 0 ;
}
};
try {
//浏览器类型(IE、Opera、Chrome、Safari、Firefox)
System.type = System.isIE? "IE" :
window.opera || (agent.indexOf( "opr" ) > 0 )? "Opera" :
(agent.indexOf( "chrome" )> 0 )? "Chrome" :
//safari也提供了专门的判定方式
window.openDatabase? "Safari" :
(agent.indexOf( "firefox" )> 0 )? "Firefox" :
'unknow' ;
//版本号
System.version = (System.type === "IE" )?System.ieVersion():
(System.type === "Firefox" )?agent.match(/firefox\/([\d.]+)/)[ 1 ]:
(System.type === "Chrome" )?agent.match(/chrome\/([\d.]+)/)[ 1 ]:
(System.type === "Opera" )?System.operaVersion():
(System.type === "Safari" )?agent.match(/version\/([\d.]+)/)[ 1 ]:
"0" ;
//浏览器外壳
System.shell=function(){
//遨游浏览器
if (agent.indexOf( "maxthon" ) > 0 ) {
System.version = agent.match(/maxthon\/([\d.]+)/)[ 1 ] || System.version ;
return "傲游浏览器" ;
}
//QQ浏览器
if (agent.indexOf( "qqbrowser" ) > 0 ) {
System.version = agent.match(/qqbrowser\/([\d.]+)/)[ 1 ] || System.version ;
return "QQ浏览器" ;
}
//搜狗浏览器
if ( agent.indexOf( "se 2.x" )> 0 ) {
return '搜狗浏览器' ;
}
//Chrome:也可以使用window.chrome && window.chrome.webstore判断
if (chrome && System.type !== "Opera" ) {
var external = window.external,
clientInfo = window.clientInformation,
//客户端语言:zh-cn,zh.360下面会返回undefined
clientLanguage = clientInfo.languages;
//猎豹浏览器:或者agent.indexOf("lbbrowser")>0
if ( external && 'LiebaoGetVersion' in external) {
return '猎豹浏览器' ;
}
//百度浏览器
if (agent.indexOf( "bidubrowser" )> 0 ) {
System.version = agent.match(/bidubrowser\/([\d.]+)/)[ 1 ] ||
agent.match(/chrome\/([\d.]+)/)[ 1 ];
return "百度浏览器" ;
}
//360极速浏览器和360安全浏览器
if ( System.supportSubTitle() && typeof clientLanguage === "undefined" ) {
//object.key()返回一个数组.包含可枚举属性和方法名称
var storeKeyLen = Object.keys(chrome.webstore).length,
v8Locale = "v8Locale" in window;
return storeKeyLen > 1 ? '360极速浏览器' : '360安全浏览器' ;
}
return "Chrome" ;
}
return System.type;
};
//浏览器名称(如果是壳浏览器,则返回壳名称)
System.name = System.shell();
//对版本号进行过滤过处理
System.version = System.versionFilter(System.version);
} catch (e) {
console.log( "error" );
}
return {
client:System
};
})(window);
var userBrowser = Browser.client.name;
console.log(userBrowser);
//发邮件 //发邮件
function ceshi(){ function send(){
var supplementType = $("#supplementType").find("option:selected").text(); var supplementType = $("#supplementType").find("option:selected").text();
var supplementInformant = "${report.supplementInformant}"; var supplementInformant = "${report.supplementInformant}";
if(supplementType == "请选择"){ if(supplementType == "请选择"){
supplementType = "${report.reportProject}"; supplementType = "${report.reportProject}";
} }
var path = "mailto:?subject=举报核查-"+supplementType+"-"+supplementInformant+"违规操作"; var path1 = "mailto:?subject=举报核查-"+supplementType+"-"+supplementInformant+"违规操作";
path += "&body=Dear,%0D%0A附件是举报核查-"+supplementType+"-"+supplementInformant+"违规操作,请核实是否属实。%0D%0A谢谢!"; path1 += "&body=Dear,%0D%0A附件是举报核查-"+supplementType+"-"+supplementInformant+"违规操作,请核实是否属实。%0D%0A谢谢!";
//path += "%0D%0A%0D%0A%0D%0A%0D%0A${userName}"; path1 += "%0D%0A%0D%0A举报内容%0D%0A";
path += "%0D%0A%0D%0A举报内容%0D%0A"; path1 += "被举报项目:${report.reportProject}%0D%0A";
path += "被举报项目:${report.reportProject}%0D%0A"; path1 += "标题:${report.supplementTitle}%0D%0A";
path += "标题:${report.supplementTitle}%0D%0A"; path1 += "被举报人:${report.supplementInformant}%0D%0A";
path += "被举报人:${report.supplementInformant}%0D%0A"; path1 += "举报时间:${report.reportTime}%0D%0A";
path += "举报时间:${report.reportTime}%0D%0A"; path1 += "所在城市:${report.reportCity}%0D%0A";
path += "所在城市:${report.reportCity}%0D%0A";
var reportContent = $("#reportContent").val(); var reportContent = $("#reportContent").val();
path += "内容:"+reportContent+"%0D%0A"; path1 += "内容:";
path += "附件:%0D%0A"; var path2 = "%0D%0A附件:%0D%0A";
$("#attachment1").find("[class='attachmentClass']").each(function(){ $("#attachment1").find("[class='attachmentClass']").each(function(){
var url = $(this).text(); var url = $(this).text();
path += url; path2 += url;
}); });
path += "%0D%0A举报人信息%0D%0A"; path2 += "%0D%0A举报人信息%0D%0A";
path += "姓名:${report.reportPersonName}%0D%0A"; path2 += "姓名:${report.reportPersonName}%0D%0A";
path += "手机号:${report.reportPersonTel}%0D%0A"; path2 += "手机号:${report.reportPersonTel}%0D%0A";
path += "Email:${report.reportPersonEmail}%0D%0A"; path2 += "Email:${report.reportPersonEmail}%0D%0A";
var reportSource = "${report.reportSource}"; var reportSource = "${report.reportSource}";
if (reportSource == "web"){ if (reportSource == "web"){
reportSource = "官网"; reportSource = "官网";
...@@ -203,12 +285,12 @@ ...@@ -203,12 +285,12 @@
}else if (reportSource == "visit"){ }else if (reportSource == "visit"){
reportSource = "来访"; reportSource = "来访";
} }
path += "举报途径:"+reportSource+"%0D%0A"; path2 += "举报途径:"+reportSource+"%0D%0A";
var reportStatus = "${report.reportStatus}"; var reportStatus = "${report.reportStatus}";
if (reportStatus != "0"){ if (reportStatus != "0"){
path += "举报信息补充%0D%0A"; path2 += "举报信息补充%0D%0A";
var supplementTypeStr = "${supplementTypeStr}"; var supplementTypeStr = "${supplementTypeStr}";
path += "业务类型:"+supplementTypeStr+"%0D%0A"; path2 += "业务类型:"+supplementTypeStr+"%0D%0A";
var supplementArea = "${report.supplementArea}"; var supplementArea = "${report.supplementArea}";
if (supplementArea == "North China"){ if (supplementArea == "North China"){
supplementArea = "华北区域公司"; supplementArea = "华北区域公司";
...@@ -229,27 +311,51 @@ ...@@ -229,27 +311,51 @@
}else if (supplementArea == "Group"){ }else if (supplementArea == "Group"){
supplementArea = "集团本部"; supplementArea = "集团本部";
} }
path += "被举报区域:"+ supplementArea +"%0D%0A"; path2 += "被举报区域:"+ supplementArea +"%0D%0A";
var supplementContent = $("#supplementContent").val(); var supplementContent = $("#supplementContent").val();
path += "内容:"+supplementContent+"%0D%0A"; path2 += "内容:";
path += "附件:%0D%0A"; var path3 = "%0D%0A附件:%0D%0A";
$("#attachment2").find("[class='attachmentClass']").each(function(){ $("#attachment2").find("[class='attachmentClass']").each(function(){
var url = $(this).text(); var url = $(this).text();
path += url; path3 += url;
}); });
} }
var path = path1+reportContent+path2+supplementContent+path3;
console.log(path); console.log(path);
var pathLength = "";
if (userBrowser == "Chrome" || userBrowser == "QQ浏览器"
|| userBrowser == "猎豹浏览器" || userBrowser == "搜狗浏览器"
|| userBrowser == "Opera") {
pathLength = path.replace(/[^\x00-\xff]/g, "*********").length;
if (pathLength > 2000) {
path = path1 + path2 + path3;
pathLength = path.replace(/[^\x00-\xff]/g, "*********").length;
alert("填写信息过长,请手动补充缺少的举报内容。推荐使用IE浏览器");
console.log(path);
}
}else if (userBrowser == "IE") {
pathLength = path.replace(/[^\x00-\xff]/g, "*").length;
if (pathLength > 1000) {
path = path1 + reportContent + path2 + path3;
pathLength = path.replace(/[^\x00-\xff]/g, "*").length;
alert("填写信息过长,请手动补充缺少的举报内容");
if (pathLength > 1000){
path = path1 + path2 + path3;
}
}
}
// }else if (userBrowser == "Opera"){
// pathLength = path.replace(/[^\x00-\xff]/g, "*********").length
//// if (pathLength > 1000){
//// alert("内容过长,请补充缺少内容");
//// path = path1+path2+path3;
//// }
// }
console.log(pathLength);
window.location.href = path; window.location.href = path;
} }
// 处理结果的隐藏和显示
// function doSome() {
// var dealResult = $("#dealResult option:selected").text();
// if(dealResult == "举报受理") {
// $("#dhide").attr("style","display:block");
// }else {
// $("#dhide").attr("style","display:none");
// }
// }
</script> </script>
<style type="text/css"> <style type="text/css">
.title{ .title{
...@@ -280,11 +386,6 @@ ...@@ -280,11 +386,6 @@
z-index:1002; z-index:1002;
overflow: auto; overflow: auto;
} }
/*#isTrue {*/
/*padding-left:180px;*/
/*height:45px;*/
/*line-height:45px;*/
/*}*/
#chooseContent{ #chooseContent{
margin: 20px 20px 20px 20px; margin: 20px 20px 20px 20px;
...@@ -377,15 +478,6 @@ ...@@ -377,15 +478,6 @@
<div class="controls"> <div class="controls">
<form:radiobuttons path="reportSource" items="${fns:getDictList('report_source')}" itemLabel="label" itemValue="value" <form:radiobuttons path="reportSource" items="${fns:getDictList('report_source')}" itemLabel="label" itemValue="value"
htmlEscape="false" disabled="true" style="margin-right: -23px\9;"/> htmlEscape="false" disabled="true" style="margin-right: -23px\9;"/>
<%--<input type="radio" id="reportSource" name="reportSource" value="web" disabled="true" style="margin-right: -23px\9;">官网--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="oa" disabled="true" style="margin-right: -23px\9;">融创OA系统--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="supplier" disabled="true" style="margin-right: -23px\9;">供应商系统--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="wechat" disabled="true" style="margin-right: -23px\9;">微信公众号--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="sunacE" disabled="true" style="margin-right: -23px\9;">融E--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="offline" disabled="true" style="margin-right: -23px\9;">线下扫码--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="tel" disabled="true" style="margin-right: -23px\9;">电话--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="email" disabled="true" style="margin-right: -23px\9;">邮件--%>
<%--<input type="radio" id="reportSource" name="reportSource" value="visit" disabled="true" style="margin-right: -23px\9;">来访--%>
</div> </div>
</div> </div>
</div> </div>
...@@ -413,7 +505,7 @@ ...@@ -413,7 +505,7 @@
<div class="controls"> <div class="controls">
<form:textarea id="supplementContent" htmlEscape="true" path="supplementContent" rows="6" <form:textarea id="supplementContent" htmlEscape="true" path="supplementContent" rows="6"
style="width:90%" style="width:90%"
maxlength="500" class="input-xxlarge" placeholder="最多输入3000个字符"/> maxlength="3000" class="input-xxlarge" placeholder="最多输入3000个字符"/>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
...@@ -430,60 +522,6 @@ ...@@ -430,60 +522,6 @@
selectMultiple="true" maxWidth="100" maxHeight="100"/> selectMultiple="true" maxWidth="100" maxHeight="100"/>
</div> </div>
</div> </div>
<%--<span class="title">信息分类</span>--%>
<%--<div class="control-group">--%>
<%--<c:if test="${report.dealResult ne '3'}">--%>
<%--<label class="control-label">处理结论:</label>--%>
<%--<div class="controls">--%>
<%--&lt;%&ndash; <form:select path="dealResult" class="input-small required" onchange="doSome()">&ndash;%&gt;--%>
<%--<form:select path="dealResult" class="input-small required">--%>
<%--<form:option value=" ">请选择</form:option>--%>
<%--<form:options items="${fns:getDictList('deal_result')}" itemLabel="label" itemValue="value" htmlEscape="false"/>--%>
<%--</form:select>--%>
<%--</div>--%>
<%--</c:if>--%>
<%--<c:if test="${report.dealResult eq '3'}">--%>
<%--<div class="control-group">--%>
<%--<label class="control-label">处理结论:</label>--%>
<%--<div class="controls">--%>
<%--&lt;%&ndash; <form:select path="dealResult" class="input-small required" onchange="doSome()">&ndash;%&gt;--%>
<%--<form:select path="dealResult" class="input-small required">--%>
<%--<form:option value=" ">请选择</form:option>--%>
<%--<form:option value="dealed">已处理</form:option>--%>
<%--<form:option value="dealing">受理中</form:option>--%>
<%--</form:select>--%>
<%--</div>--%>
<%--&lt;%&ndash;<div id="isTrue" class="isTrue">&ndash;%&gt;--%>
<%--&lt;%&ndash;<input path="true" type="radio" value=""/>属实&ndash;%&gt;--%>
<%--&lt;%&ndash;<input path="notTrue" type="radio" value=""/>不属实&ndash;%&gt;--%>
<%--&lt;%&ndash;</div>&ndash;%&gt;--%>
<%--</div>--%>
<%--</c:if>--%>
<%--&lt;%&ndash; <div id="dhide" style="display:none">&ndash;%&gt;--%>
<%--<span class="title">处理结果</span>--%>
<%--<div class="control-group">--%>
<%--<label class="control-label">处理人:</label>--%>
<%--<div class="controls">--%>
<%--<form:input path="dealPersonName" value="${currentUser}" disabled="true" htmlEscape="false" maxlength="200" class="input-xlarge required"/>--%>
<%--<span class="help-inline"><font color="red">*</font> </span>--%>
<%--</div>--%>
<%--</div>--%>
<%--<div class="control-group">--%>
<%--<label class="control-label">处理成果文件:</label>--%>
<%--<div id="attachment3" class="controls">--%>
<%--<c:if test="${dealAttachmentList ne null}">--%>
<%--<c:forEach items="${dealAttachmentList}" var="dealAttachment" varStatus="vs">--%>
<%--&nbsp;&nbsp;<a href="${dealAttachment.attachmentPath}" class="attachmentClass" target="_blank">${dealAttachment.attachmentName}</a><br>--%>
<%--</c:forEach>--%>
<%--</c:if>--%>
<%--<form:hidden id="dealFile" path="dealAttachment" htmlEscape="false"--%>
<%--maxlength="255" class="input-xlarge"/>--%>
<%--<sys:ckfinder input="dealFile" type="files" uploadPath="/file"--%>
<%--selectMultiple="true" maxWidth="100" maxHeight="100"/>--%>
<%--<label id="checkFile" class="error" style="display: none;">必填信息</label>--%>
<%--</div>--%>
<%--</div>--%>
<%--</div>--%>
<span class="title">处理结果</span> <span class="title">处理结果</span>
<div class="control-group"> <div class="control-group">
<label class="control-label">处理人:</label> <label class="control-label">处理人:</label>
...@@ -525,15 +563,15 @@ ...@@ -525,15 +563,15 @@
<label class="control-label">移交:</label> <label class="control-label">移交:</label>
<div class="controls"> <div class="controls">
<input type="text" id="userId" name="exchangeAfterUser" value="" style="display:none;"/> <input type="text" id="userId" name="exchangeAfterUser" value="" style="display:none;"/>
<input id="chooseUser" type="text" <c:if test="${report.exchangeAfterUser eq null}">value="选择移交人员" </c:if> <input id="chooseUser" type="text" <c:if test="${report.exchangeType eq null}">value="选择移交人员" </c:if>
<c:if test="${report.exchangeAfterUser ne null}">value="${report.transferName}" </c:if> <c:if test="${report.exchangeAfterUser ne null && report.exchangeType ne null}">value="${report.transferName}" </c:if>
<c:if test="${isAdmin eq false}">disabled="true"</c:if> htmlEscape="false" maxlength="200" class="input-xlarge"/> <c:if test="${isAdmin eq false}">disabled="true" style="color:#888"</c:if> htmlEscape="false" maxlength="200" class="input-xlarge"/>
</div> </div>
</div> </div>
<div class="form-actions"> <div class="form-actions">
<input id="btnSubmit" class="btn btn-primary" type="submit" value="提交"/>&nbsp; <input id="btnSubmit" class="btn btn-primary" type="submit" value="提交"/>&nbsp;
<%--<input id="btnMail" class="btn btn-primary" type="button" value="发邮件" onclick="ceshi()"/>--%> <input id="btnMail" class="btn btn-primary" type="button" value="发邮件" onclick="send()"/>
<a href="#" id="sendE" class="btn btn-primary">发邮件</a> <%--<a href="#" id="sendE" class="btn btn-primary">发邮件</a>--%>
</div> </div>
</form:form> </form:form>
<div id="fade" class="black_overlay"></div> <div id="fade" class="black_overlay"></div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment