commit
This commit is contained in:
@@ -53,6 +53,7 @@ public interface SourceData {
|
||||
put("XBM", new String[]{"sex"});// 性别码
|
||||
put("MZMC", new String[]{"nation"});// 民族码
|
||||
put("SJ", new String[]{"mobile"}); // 手机号
|
||||
put("SFZJH", new String[]{"idcard"}); // 身份证件号
|
||||
put("ZZMMM", new String[]{"political"}); // 政治面貌码
|
||||
put("DQZTM", new String[]{"userState", "personalStatus"}); // 在职状态码
|
||||
put("RYFLMC", new String[]{"personType"}); // 人员类型码
|
||||
|
||||
@@ -189,7 +189,7 @@ public class SourceUserServiceImpl extends ViServiceImpl<UserSource> implements
|
||||
//不更新会员和福利会员字段
|
||||
source.setMember(null);
|
||||
source.setWelfareMember(null);
|
||||
Sys_user user = userMap.get(source.getLoginname().toLowerCase());
|
||||
Sys_user user = userMap.get(source.getLoginname());
|
||||
|
||||
if (user != null && userIds.contains(user.getId())) {
|
||||
continue;
|
||||
|
||||
@@ -52,6 +52,8 @@ import java.math.RoundingMode;
|
||||
import java.util.Base64;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
@@ -66,16 +68,14 @@ public class ReimbursementCon {
|
||||
|
||||
@Inject
|
||||
private Vi vi;
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private ActivityBxService activityBxService;
|
||||
|
||||
@Inject
|
||||
private SysSignatureService sysSignatureService;
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
@Inject
|
||||
private FtpService ftpService;
|
||||
|
||||
@@ -194,14 +194,6 @@ public class ReimbursementCon {
|
||||
}
|
||||
|
||||
activityBxService.update(activityBx);
|
||||
|
||||
if (Lang.isNotEmpty(activityBx.getGoods())) {
|
||||
baseService.dao().clear(Goods.class, Cnd.where("reid", "=", activityBx.getActivity_id()));
|
||||
activityBx.getGoods().forEach(v -> {
|
||||
v.setReid(activityBx.getActivity_id());
|
||||
});
|
||||
baseService.dao().insert(activityBx.getGoods());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -227,7 +219,32 @@ public class ReimbursementCon {
|
||||
@ViReturn
|
||||
public void doExport(String id, HttpServletResponse response) throws Exception {
|
||||
NutMap one = activityBxService.queryOne(id);
|
||||
if (StrUtil.isNotBlank(one.getString("activity_content"))) {
|
||||
ActivityBx fetch = dao.fetch(ActivityBx.class, id);
|
||||
|
||||
List<ActivityBx.Budget> budgets = fetch.getBudgets();
|
||||
|
||||
Map<String, List<ActivityBx.Budget>> map = budgets.stream().collect(Collectors.groupingBy(ActivityBx.Budget::getCategory));
|
||||
|
||||
map.forEach((k, v) -> {
|
||||
NutMap result = NutMap.NEW();
|
||||
result.put("unitName", fetch.getFundsUnitName());
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
String fileName = Globals.schoolName + "【" + one.getString("activity_name") + "】报销凭证";
|
||||
|
||||
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
|
||||
Configure config = Configure.newBuilder().bind("goods", policy).build();
|
||||
|
||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/funds3.docx");
|
||||
response.addHeader("Content-Type", "application/octet-stream");
|
||||
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx");
|
||||
XWPFTemplate.compile(inputStream, config).render(one, response.getOutputStream());
|
||||
inputStream.close();
|
||||
|
||||
/* if (StrUtil.isNotBlank(one.getString("activity_content"))) {
|
||||
one.setv("activity_content", Html2Text.getContent(one.getString("activity_content")));
|
||||
}
|
||||
one.setv("money_big", Convert.digitToChinese(one.getDouble("activity_money")));
|
||||
@@ -272,29 +289,29 @@ public class ReimbursementCon {
|
||||
one.setv("nine", (hundredths % 10) + 1);
|
||||
|
||||
|
||||
/*基层工会主席签字*/
|
||||
*//*基层工会主席签字*//*
|
||||
if (one.get("reimbursement_union_audit") != null) {
|
||||
Audit reimbursementUnionChairman = one.getAs("reimbursement_union_audit", Audit.class);
|
||||
one.setv("dc_sign", getImage(reimbursementUnionChairman.getAuditSign()));
|
||||
}
|
||||
|
||||
/*协会负责人*/
|
||||
*//*协会负责人*//*
|
||||
if (one.get("reimbursement_club_audit") != null) {
|
||||
Audit reimbursementClubChairman = one.getAs("reimbursement_club_audit", Audit.class);
|
||||
one.setv("ap_sign", getImage(reimbursementClubChairman.getAuditSign()));
|
||||
}
|
||||
|
||||
/*校工会主席签字*/
|
||||
*//*校工会主席签字*//*
|
||||
if (one.get("reimbursement_school_chairman") != null) {
|
||||
Audit reimbursementSchoolChairman = one.getAs("reimbursement_school_chairman", Audit.class);
|
||||
one.setv("ucc_sign", getImage(reimbursementSchoolChairman.getAuditSign()));
|
||||
}
|
||||
|
||||
/*会计*/
|
||||
*//*会计*//*
|
||||
if (one.get("user_signature") != null) {
|
||||
Sys_signature sysSignature = sysSignatureService.dao().fetch(Sys_signature.class, Cnd.where("id", "=", one.getString("user_signature")));
|
||||
one.setv("a_sign", getImage(sysSignature.getData()));
|
||||
}
|
||||
}*/
|
||||
|
||||
/*
|
||||
// 基层工会活动
|
||||
@@ -313,17 +330,6 @@ public class ReimbursementCon {
|
||||
inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/association.docx");
|
||||
}
|
||||
*/
|
||||
|
||||
String fileName = Globals.schoolName + "【" + one.getString("activity_name") + "】报销凭证";
|
||||
|
||||
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
|
||||
Configure config = Configure.newBuilder().bind("goods", policy).build();
|
||||
|
||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/funds3.docx");
|
||||
response.addHeader("Content-Type", "application/octet-stream");
|
||||
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1") + "\".docx");
|
||||
XWPFTemplate.compile(inputStream, config).render(one, response.getOutputStream());
|
||||
inputStream.close();
|
||||
}
|
||||
|
||||
private PictureRenderData getImage(String base64) throws IOException {
|
||||
|
||||
@@ -142,7 +142,6 @@ public class UnionCon {
|
||||
aid.setUnion_chairman_idea(nutMap.getString("idea"));
|
||||
aid.setActivity_money(nutMap.getDouble("activity_money"));
|
||||
List<Goods> goods = nutMap.getAsList("goods", Goods.class);
|
||||
aid.setGoods(goods);
|
||||
|
||||
if (Strings.isNotBlank(nutMap.getString("sign"))) {
|
||||
aid.setUnion_chairman(sysSignatureService.insert(new Sys_signature(nutMap.getString("sign"))).getId());
|
||||
|
||||
+40
-26
@@ -66,31 +66,22 @@ public class ActivityReimbursementApplyController {
|
||||
@ViReturn
|
||||
@RequiresPermissions("sys.jf.reimbursement.apply")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Object doSave(@Param("activityBx") ActivityBx activityBx, @Param(value = "sign", required = false) String sign) {
|
||||
if (Strings.isNotBlank(sign)) {
|
||||
activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId());
|
||||
}
|
||||
public Object doSave(@Param("activityBx") ActivityBx activityBx) {
|
||||
this.setEntityValue(activityBx);
|
||||
activityBx.setReimbursement_state_id(999);
|
||||
activityBxService.insertOrUpdate(activityBx);
|
||||
return null;
|
||||
}
|
||||
|
||||
private void setEntityValue(ActivityBx activityBx) {
|
||||
int count = activityBxService.count(Cnd.where("id", "=", activityBx.getId()));
|
||||
// int count = activityBxService.count(Cnd.where("id", "=", activityBx.getId()));
|
||||
|
||||
activityBx.setReimbursement_state_id(999);
|
||||
ActivityTissue tissue = dao.fetch(ActivityTissue.class, activityBx.getActivity_id());
|
||||
// ActivityTissue tissue = dao.fetch(ActivityTissue.class, activityBx.getActivity_id());
|
||||
activityBx.setApply_time(DateUtil.now());
|
||||
activityBx.setReimbursement_apply_time(DateUtil.now());
|
||||
activityBx.setUser_id(ShiroUtil.getUserId());
|
||||
activityBx.setYear(DateUtil.year(DateUtil.parseDate(tissue.getApplyTime())));
|
||||
activityBx.setActivity_name(tissue.getName());
|
||||
activityBx.setYear(DateUtil.thisYear());
|
||||
activityBx.setUser_name(ShiroUtil.getPlatformUsername());
|
||||
activityBx.setActivity_type(tissue.getType());
|
||||
activityBx.setProjectTypeCode(tissue.getProjectTypeCode());
|
||||
activityBx.setMobile(tissue.getMobile());
|
||||
activityBx.setProjectCode(tissue.getActivityCode());
|
||||
activityBx.setActivity_content(tissue.getActivityContent());
|
||||
|
||||
List<ActivityBx.Budget> budgets = activityBx.getBudgets();
|
||||
double sum = budgets.stream().mapToDouble(ActivityBx.Budget::getActualPrice).sum();
|
||||
@@ -99,25 +90,40 @@ public class ActivityReimbursementApplyController {
|
||||
activityBx.setReimbursement_apply_time(DateUtil.today());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(activityBx.getId()) && count > 0) {
|
||||
activityBx.setFiles(null);
|
||||
activityBx.setActivity_content(null);
|
||||
}
|
||||
// if (StrUtil.isNotBlank(activityBx.getId()) && count > 0) {
|
||||
// activityBx.setFiles(null);
|
||||
// activityBx.setActivity_content(null);
|
||||
// }
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("sys.jf.reimbursement.apply")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public Object doEdit(@Param("activityBx") ActivityBx activityBx, @Param(value = "sign", required = false) String sign) {
|
||||
if (Strings.isNotBlank(sign)) {
|
||||
activityBx.setUser_signature(sysSignatureService.insert(new Sys_signature(sign)).getId());
|
||||
}
|
||||
public Object doEdit(@Param("activityBx") ActivityBx activityBx) {
|
||||
this.setEntityValue(activityBx);
|
||||
|
||||
boolean isUnionAdmin = ShiroUtil.hasAnyRoles("H04");
|
||||
boolean isClubAdmin = ShiroUtil.hasAnyRoles("club01");
|
||||
|
||||
switch (activityBx.getActivity_type()) {
|
||||
case 40001 -> activityBx.setReimbursement_state_id(1020);
|
||||
case 40002 -> activityBx.setReimbursement_state_id(1010);
|
||||
case 40003 -> activityBx.setReimbursement_state_id(1000);
|
||||
case 40002 -> {
|
||||
// 如果是基层工会管理员申请,则直接进入校工会审核
|
||||
if (isUnionAdmin) {
|
||||
activityBx.setReimbursement_state_id(1020);
|
||||
} else {
|
||||
activityBx.setReimbursement_state_id(1010);
|
||||
}
|
||||
}
|
||||
case 40003 -> {
|
||||
// 如果是协会会长申请,则直接进入校工会审核
|
||||
if (isClubAdmin) {
|
||||
activityBx.setReimbursement_state_id(1020);
|
||||
} else {
|
||||
activityBx.setReimbursement_state_id(1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
activityBxService.insertOrUpdate(activityBx);
|
||||
NutMap map = new NutMap();
|
||||
@@ -129,10 +135,18 @@ public class ActivityReimbursementApplyController {
|
||||
ReimbursementToHandler.CREATE_SCHOOL_DIRECTOR_TASK.exec(activityBx.getId(), map);
|
||||
} else if (activityBx.getActivity_type() == 40002) {
|
||||
//分工会
|
||||
ReimbursementToHandler.CREATE_UNION_TASK.exec(activityBx.getId(), map);
|
||||
if (isUnionAdmin) {
|
||||
ReimbursementToHandler.CREATE_SCHOOL_DIRECTOR_TASK.exec(activityBx.getId(), map);
|
||||
} else {
|
||||
ReimbursementToHandler.CREATE_UNION_TASK.exec(activityBx.getId(), map);
|
||||
}
|
||||
} else if (activityBx.getActivity_type() == 40003) {
|
||||
//协会
|
||||
ReimbursementToHandler.CREATE_CLUB_TASK.exec(activityBx.getId(), map);
|
||||
if (isClubAdmin) {
|
||||
ReimbursementToHandler.CREATE_SCHOOL_DIRECTOR_TASK.exec(activityBx.getId(), map);
|
||||
} else {
|
||||
ReimbursementToHandler.CREATE_CLUB_TASK.exec(activityBx.getId(), map);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
+16
-4
@@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.v.nutz.sys.services.SysLocalProcessService;
|
||||
import io.v.nutz.zhgh.activity.models.ActivityTissuePerson;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
@@ -63,12 +64,12 @@ public class ActivityReimbursementMineController {
|
||||
|
||||
@Inject
|
||||
private Vi vi;
|
||||
|
||||
@Inject
|
||||
private ActivityBxService activityBxService;
|
||||
|
||||
@Inject
|
||||
private FtpService ftpService;
|
||||
@Inject
|
||||
private ActivityBxService activityBxService;
|
||||
@Inject
|
||||
private SysLocalProcessService sysLocalProcessService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/jf/reimbursement/mine.html")
|
||||
@@ -228,6 +229,17 @@ public class ActivityReimbursementMineController {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@RequiresPermissions("sys.jf.reimbursement.mine")
|
||||
public Object doBack(String id) {
|
||||
activityBxService.update(Chain.make("reimbursement_apply_time", null).add("reimbursement_state_id",999),
|
||||
Cnd.where("id", "=", id));
|
||||
sysLocalProcessService.deleteProcessInstance("activity_reimbursement@" + id);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
|
||||
+4
-4
@@ -80,21 +80,21 @@ public class ActivityReimbursementSchoolChairmanController {
|
||||
@RequiresPermissions("sys.jf.reimbursement.schoolChairman")
|
||||
@SLog(type = "文体活动", tag = "活动报销", msg = "校工会主席审核", param = true, result = true)
|
||||
public Object doAuditing(@Param("id") String id,@Param("audit") Audit audit){
|
||||
audit.setAuditor(ShiroUtil.getPrincipalProperty("id").toString());
|
||||
audit.setAuditor(ShiroUtil.getUserId());
|
||||
audit.setUsername(ShiroUtil.getPrincipalProperty("username").toString());
|
||||
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
|
||||
audit.setAuditTime(new Date());
|
||||
activityBxService.dao().insert(audit);
|
||||
|
||||
Chain chain = Chain.make("reimbursement_school_chairman_id", audit.getId());
|
||||
chain.add("reimbursement_state_id", audit.getAuditPass() ? 1060 : 1045);
|
||||
chain.add("reimbursement_state_id", audit.getAuditPass() ? 1050 : 1045);
|
||||
activityBxService.update(chain,Cnd.where("id","=",id));
|
||||
|
||||
ReimbursementToHandler.COMPLETE_SCHOOL_CHAIRMAN_TASK.exec(id, NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "校工会主席通过" : "校工会主席拒绝"));
|
||||
if (audit.getAuditPass()) {
|
||||
ReimbursementToHandler.COMPLETE_PROCESS.exec(id,null);
|
||||
ReimbursementToHandler.CREATE_SCHOOL_FINANCE_TASK.exec(id, null);
|
||||
} else {
|
||||
ReimbursementToHandler.REFUSE_UNION_TASK.exec(id,NutMap.NEW().addv("nodeName","校工会主席拒绝"));
|
||||
ReimbursementToHandler.REFUSE_UNION_TASK.exec(id, NutMap.NEW().addv("nodeName","校工会主席拒绝"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
+4
-4
@@ -76,9 +76,9 @@ public class ActivityReimbursementSchoolDirectorController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("sys.jf.reimbursement.schoolDirector")
|
||||
@SLog(type = "文体活动", tag = "活动报销", msg = "校工会负责人审核", param = true, result = true)
|
||||
@SLog(type = "文体活动", tag = "活动报销", msg = "校工会办公室主管审核", param = true, result = true)
|
||||
public Object doAuditing(@Param("id") String id,@Param("audit") Audit audit){
|
||||
audit.setAuditor(ShiroUtil.getPrincipalProperty("id").toString());
|
||||
audit.setAuditor(ShiroUtil.getUserId());
|
||||
audit.setUsername(ShiroUtil.getPrincipalProperty("username").toString());
|
||||
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
|
||||
audit.setAuditTime(new Date());
|
||||
@@ -89,11 +89,11 @@ public class ActivityReimbursementSchoolDirectorController {
|
||||
chain.add("reimbursement_state_id", audit.getAuditPass() ? 1040 : 1025);
|
||||
activityBxService.update(chain,Cnd.where("id","=",id));
|
||||
|
||||
ReimbursementToHandler.COMPLETE_SCHOOL_DIRECTOR_TASK.exec(id, NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "校工会负责人通过" : "校工会负责人拒绝"));
|
||||
ReimbursementToHandler.COMPLETE_SCHOOL_DIRECTOR_TASK.exec(id, NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "校办主管通过" : "校办主管拒绝"));
|
||||
if (audit.getAuditPass()) {
|
||||
ReimbursementToHandler.CREATE_SCHOOL_CHAIRMAN_TASK.exec(id,null);
|
||||
} else {
|
||||
ReimbursementToHandler.REFUSE_UNION_TASK.exec(id,NutMap.NEW().addv("nodeName","校工会负责人拒绝"));
|
||||
ReimbursementToHandler.REFUSE_UNION_TASK.exec(id,NutMap.NEW().addv("nodeName","校办主管拒绝"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package io.v.nutz.zhgh.jf.controller.reimbursement;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.model.Audit;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.web.commons.slog.annotation.SLog;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.jf.handle.reimbursement.ReimbursementToHandler;
|
||||
import io.v.nutz.zhgh.jf.service.ActivityBxService;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:ActivityReimbursementSchoolFinanceController
|
||||
* @Date 2025/6/6 10:13
|
||||
* @注释 报销,校工会财务
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/jf/reimbursement/schoolFinance")
|
||||
public class ActivityReimbursementSchoolFinanceController {
|
||||
|
||||
@Inject
|
||||
private ActivityBxService activityBxService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/jf/reimbursement/schoolFinance.html")
|
||||
@RequiresPermissions("sys.jf.reimbursement.schoolFinance")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("sys.jf.reimbursement.schoolFinance")
|
||||
public Object pageData(PageForm pageForm,
|
||||
@Param(value = "year", required = false) Integer year,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "unitId", required = false) String unitId,
|
||||
@Param(value = "clubId",required = false) String clubId,
|
||||
@Param(value = "activityName", required = false) String activityName,
|
||||
@Param(value = "isAudit", required = false) String isAudit) {
|
||||
Sql sql = activityBxService.activityReimbursementSql();
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("act.`year`","=",year);
|
||||
if (StrUtil.isNotBlank(activityName)) {
|
||||
cnd.and(Cnd.likeEX("act.activity_name", activityName));
|
||||
}
|
||||
|
||||
//1已审核;2未审核;0全部
|
||||
cnd.and("act.reimbursement_state_id", "1".equals(isAudit) ? ">" : "2".equals(isAudit) ? "=" : ">=", 1050);
|
||||
|
||||
cnd.andEX("u.unionid","=",unionId);
|
||||
cnd.andEX("u.unitId","=",unitId);
|
||||
cnd.andEX("act.clubId","=",clubId);
|
||||
sql.setCondition(cnd);
|
||||
return activityBxService.listPageMap(pageForm.getPageNumber(),pageForm.getPageSize(),sql);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("sys.jf.reimbursement.schoolFinance")
|
||||
@SLog(type = "文体活动", tag = "活动报销", msg = "校工会财务审核", param = true, result = true)
|
||||
public Object doAuditing(@Param("id") String id,@Param("audit") Audit audit){
|
||||
audit.setAuditor(ShiroUtil.getUserId());
|
||||
audit.setUsername(ShiroUtil.getPrincipalProperty("username").toString());
|
||||
audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString());
|
||||
audit.setAuditTime(new Date());
|
||||
activityBxService.dao().insert(audit);
|
||||
|
||||
Chain chain = Chain.make("reimbursement_finance_audit_id", audit.getId());
|
||||
chain.add("reimbursement_state_id", audit.getAuditPass() ? 1060 : 1055);
|
||||
activityBxService.update(chain,Cnd.where("id","=",id));
|
||||
|
||||
ReimbursementToHandler.COMPLETE_SCHOOL_FINANCE_TASK.exec(id, NutMap.NEW().addv("nodeName",audit.getAuditPass() ? "校工会财务通过" : "校工会财务拒绝"));
|
||||
if (audit.getAuditPass()) {
|
||||
ReimbursementToHandler.COMPLETE_PROCESS.exec(id, null);
|
||||
} else {
|
||||
ReimbursementToHandler.REFUSE_UNION_TASK.exec(id, NutMap.NEW().addv("nodeName","校工会财务拒绝"));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,6 +14,9 @@ import io.v.nutz.zhgh.zgfw.service.impl.CondolenceServiceImpl;
|
||||
import lombok.Getter;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
@@ -39,7 +42,7 @@ public enum ReimbursementToHandler {
|
||||
User user = dao.fetch(User.class, Cnd.where("id", "=", userId));
|
||||
|
||||
localProcessService.startProcess(
|
||||
"【活动报销】" + user.getUnionname() + "(" + user.getUsername() + ")",
|
||||
"【报销】" + user.getUnionname() + "(" + user.getUsername() + ")",
|
||||
"activity_reimbursement@" + reimbursementId,
|
||||
"",
|
||||
userId,
|
||||
@@ -187,19 +190,20 @@ public enum ReimbursementToHandler {
|
||||
},
|
||||
|
||||
/**
|
||||
* 创建校工会负责人任务
|
||||
* 创建校工会办公室主管任务
|
||||
*/
|
||||
CREATE_SCHOOL_DIRECTOR_TASK() {
|
||||
@Override
|
||||
public void exec(String reimbursementId, NutMap extra) {
|
||||
List<Sys_user_role> userRoles = dao.query(Sys_user_role.class, Cnd.where("roleId", "=", Roles.SchoolUnionActivityReimburseAdmin));
|
||||
// ff0e310a1d954054824c0ed85f1904b7 校工会办公室主管(原宣传与文体工作办公室负责人)code是xcywt
|
||||
List<Sys_user_role> userRoles = dao.query(Sys_user_role.class, Cnd.where("roleId", "=", "ff0e310a1d954054824c0ed85f1904b7"));
|
||||
List<String> list = userRoles.stream().map(Sys_user_role::getUserId).toList();
|
||||
List<Sys_user> userList = dao.query(Sys_user.class, Cnd.where("id", "in", list));
|
||||
List<String> userLoginNameList = userList.stream().map(Sys_user::getLoginname).toList();
|
||||
localProcessService.createTask(
|
||||
"activity_reimbursement@" + reimbursementId,
|
||||
"activity_reimbursement_school_director_audit",
|
||||
"校工会负责人审核",
|
||||
"校办主管审核",
|
||||
ShiroUtil.getUserId(),
|
||||
userLoginNameList,
|
||||
"/platform/jf/reimbursement/schoolDirector",
|
||||
@@ -208,7 +212,7 @@ public enum ReimbursementToHandler {
|
||||
"/platform/jf/reimbursement/schoolDirector"
|
||||
);
|
||||
|
||||
localProcessService.updateProcessNodeName("activity_reimbursement@" + reimbursementId, "校工会负责人审核");
|
||||
localProcessService.updateProcessNodeName("activity_reimbursement@" + reimbursementId, "校办主管审核");
|
||||
}
|
||||
},
|
||||
|
||||
@@ -273,6 +277,52 @@ public enum ReimbursementToHandler {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 创建校工会财务任务
|
||||
*/
|
||||
CREATE_SCHOOL_FINANCE_TASK() {
|
||||
@Override
|
||||
public void exec(String reimbursementId, NutMap extra) {
|
||||
//查询校工会财务
|
||||
List<String> schoolUnionFinance = Vi.getSchoolUnionAccountant();
|
||||
if (Lang.isEmpty(schoolUnionFinance)) {
|
||||
throw new RuntimeException("未设置校财务");
|
||||
}
|
||||
localProcessService.createTask(
|
||||
"activity_reimbursement@" + reimbursementId,
|
||||
"activity_reimbursement_school_finance_audit",
|
||||
"校工会财务审核",
|
||||
ShiroUtil.getUserId(),
|
||||
schoolUnionFinance,
|
||||
"/platform/jf/reimbursement/schoolFinance",
|
||||
"/platform/jf/reimbursement/schoolFinance",
|
||||
"/platform/jf/reimbursement/schoolFinance",
|
||||
"/platform/jf/reimbursement/schoolFinance"
|
||||
);
|
||||
|
||||
localProcessService.updateProcessNodeName("activity_reimbursement@" + reimbursementId, "校工会财务审核");
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 校工会财务完成
|
||||
*/
|
||||
COMPLETE_SCHOOL_FINANCE_TASK() {
|
||||
@Override
|
||||
public void exec(String reimbursementId, NutMap extra) {
|
||||
String nodeName = extra.getString("nodeName");
|
||||
localProcessService.completeTask(
|
||||
"activity_reimbursement_school_finance_audit",
|
||||
"activity_reimbursement@" + reimbursementId,
|
||||
ShiroUtil.getUserId(),
|
||||
nodeName
|
||||
);
|
||||
|
||||
localProcessService.updateProcessNodeName("activity_reimbursement@" + reimbursementId, nodeName);
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 流程结束
|
||||
*/
|
||||
|
||||
@@ -39,6 +39,7 @@ public class ActivityBx {
|
||||
@Comment("申报(承办)单位")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||
private String fundsUnitName;
|
||||
|
||||
@Column
|
||||
@Comment("协会id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@@ -55,8 +56,8 @@ public class ActivityBx {
|
||||
private String user_id;
|
||||
|
||||
@Column
|
||||
@Comment("用户签字id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("用户签字")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String user_signature;
|
||||
|
||||
@Column
|
||||
@@ -100,7 +101,7 @@ public class ActivityBx {
|
||||
|
||||
@Column
|
||||
@Comment("活动名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||
private String activity_name;
|
||||
|
||||
@Column
|
||||
@@ -364,14 +365,6 @@ public class ActivityBx {
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<Sys_file> files;
|
||||
|
||||
@Column
|
||||
@Comment("附件数量")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String files_num;
|
||||
|
||||
@Many(field = "reid")
|
||||
private List<Goods> goods;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("发票")
|
||||
@@ -389,22 +382,6 @@ public class ActivityBx {
|
||||
private List<Sys_file> otherFiles;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("新闻稿件说明")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String newsRemark;
|
||||
|
||||
@Column
|
||||
@Comment("图片附件")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<Sys_file> picFiles;
|
||||
|
||||
@Column
|
||||
@Comment("新闻附件")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<Sys_file> newsFiles;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("活动经费预算")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
@@ -415,15 +392,17 @@ public class ActivityBx {
|
||||
*/
|
||||
@Data
|
||||
public static class Budget{
|
||||
// 名称
|
||||
// 科目
|
||||
private String category;
|
||||
// 具体内容
|
||||
private String name;
|
||||
// 预算费用
|
||||
private Double budgetPrice;
|
||||
// 实际费用
|
||||
// 类别
|
||||
private String type;
|
||||
// 金额
|
||||
private Double actualPrice;
|
||||
// 收款人id
|
||||
private String payeeId;
|
||||
// 收款人姓名
|
||||
// 收款对象(个人/单位)
|
||||
private String username;
|
||||
// 收款人工号
|
||||
private String loginName;
|
||||
|
||||
@@ -65,10 +65,6 @@ public class ActivityBxServiceImpl extends ViServiceImpl<ActivityBx> implements
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void doAdd(ActivityBx activityBx) {
|
||||
insert(activityBx);
|
||||
activityBx.getGoods().forEach(v -> {
|
||||
v.setReid(activityBx.getId());
|
||||
});
|
||||
this.dao().insert(activityBx.getGoods());
|
||||
// insertWith(activityBx, "goods");
|
||||
}
|
||||
|
||||
@@ -172,6 +168,11 @@ public class ActivityBxServiceImpl extends ViServiceImpl<ActivityBx> implements
|
||||
Audit audit = dao().fetch(Audit.class, Cnd.where("id", "=", record.getString("reimbursement_school_chairman_id")));
|
||||
record.setv("reimbursement_school_chairman",audit);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(record.getString("reimbursement_finance_audit_id"))){
|
||||
Audit audit = dao().fetch(Audit.class, Cnd.where("id", "=", record.getString("reimbursement_finance_audit_id")));
|
||||
record.setv("reimbursement_school_finance",audit);
|
||||
}
|
||||
return record;
|
||||
}
|
||||
|
||||
|
||||
+82
-4
@@ -6,16 +6,24 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import com.aspose.words.Document;
|
||||
import com.aspose.words.SaveFormat;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import com.deepoove.poi.data.PictureRenderData;
|
||||
import com.deepoove.poi.data.PictureType;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.dao.CndPlus;
|
||||
import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.utils.ViTool;
|
||||
import io.v.nutz.sys.models.Sys_user;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationBaseManagement;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationLot;
|
||||
import io.v.nutz.zhgh.therapyRecuperation.model.TheRapyRecuperationTravelAgency;
|
||||
@@ -27,6 +35,7 @@ import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.apache.shiro.authz.annotation.RequiresRoles;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.boot.starter.ftp.FtpService;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
@@ -36,12 +45,14 @@ import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.*;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationHandler;
|
||||
import java.lang.reflect.Proxy;
|
||||
@@ -61,11 +72,12 @@ import java.util.stream.Collectors;
|
||||
@Ok("json:full")
|
||||
public class TheRapyRecuperationBaseManagerController {
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@Inject
|
||||
private FtpService ftpService;
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
@Inject
|
||||
private TheRapyRecuperationBaseManagerService theRapyRecuperationBaseManagerService;
|
||||
|
||||
@@ -229,7 +241,7 @@ public class TheRapyRecuperationBaseManagerController {
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object listAllBase(String startYear, String endYear, String year) {
|
||||
Sql sql = Sqls.create("select * from `the_rapy_recuperation_base_management` tb left join `the_rapy_recuperation_lot` lot on lot.id=tb.lotId $condition");
|
||||
Sql sql = Sqls.create("select tb.* from `the_rapy_recuperation_base_management` tb left join `the_rapy_recuperation_lot` lot on lot.id=tb.lotId $condition");
|
||||
CndPlus cnd = new CndPlus();
|
||||
|
||||
cnd.andEX("tb.`year`", ">=", startYear);
|
||||
@@ -255,6 +267,20 @@ public class TheRapyRecuperationBaseManagerController {
|
||||
}
|
||||
|
||||
|
||||
@At("/getTimeArray")
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object getTimeArray(@Param("id") String id) {
|
||||
if (StrUtil.isBlank(id)) {
|
||||
return Result.error("参数错误");
|
||||
}
|
||||
TheRapyRecuperationBaseManagement management = dao.fetch(TheRapyRecuperationBaseManagement.class, id);
|
||||
return Map.of("minDate", DateUtil.formatDate(management.getActivityStartTime()),
|
||||
"maxDate", DateUtil.formatDate(management.getActivityEndTime()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 目的地导入模版
|
||||
*
|
||||
@@ -358,4 +384,56 @@ public class TheRapyRecuperationBaseManagerController {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At("/showBaseApplyPdf")
|
||||
@Ok("void")
|
||||
@RequiresAuthentication
|
||||
public void showBaseApplyPdf(String idCard, String specificTime, String baseName,
|
||||
String sign, HttpServletResponse response){
|
||||
NutMap map = NutMap.NEW();
|
||||
map.put("idCard", ObjectUtil.defaultIfBlank(idCard, "--预览展示--"));
|
||||
map.put("specificTime", ObjectUtil.defaultIfBlank(specificTime, "--预览展示--"));
|
||||
map.put("baseName", ObjectUtil.defaultIfBlank(baseName, "--预览展示--"));
|
||||
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
||||
map.put("username", user.getUsername());
|
||||
map.put("unitName", user.getUnit().getName());
|
||||
map.put("appDate", DateUtil.formatChineseDate(new Date(), false, false));
|
||||
if (StrUtil.isNotBlank(sign)) {
|
||||
try {
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||
ftpService.download(sign, os);
|
||||
os.close();
|
||||
PictureRenderData data = new PictureRenderData(70, 30, PictureType.PNG, os.toByteArray());
|
||||
map.put("sign", data);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
response.addHeader("Content-Type", "application/octet-stream");
|
||||
response.addHeader("Content-Disposition", "inline; filename=\"" + new String("定点自由行申请表".getBytes("UTF-8"), "ISO-8859-1") + "\".docx");
|
||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/therapyrecuperation/base_apply.docx");
|
||||
|
||||
//将模版写成docx
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||
XWPFTemplate.compile(inputStream).render(map, os);
|
||||
|
||||
InputStream resultInputStream = new ByteArrayInputStream(os.toByteArray());
|
||||
|
||||
Document doc = new Document(resultInputStream);
|
||||
doc.save(response.getOutputStream(), SaveFormat.PDF);
|
||||
|
||||
/*File localPdfPath = File.createTempFile("file_convert", ".pdf");
|
||||
File file = new File(targetPath);
|
||||
FileOutputStream os = new FileOutputStream(file);
|
||||
XWPFTemplate.compile(inputStream).render(map, );*/
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+159
-6
@@ -9,8 +9,14 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.base.Result;
|
||||
import com.aspose.words.Document;
|
||||
import com.aspose.words.SaveFormat;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import com.deepoove.poi.data.PictureRenderData;
|
||||
import com.deepoove.poi.data.PictureType;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
@@ -24,6 +30,7 @@ import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.boot.starter.ftp.FtpService;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
@@ -43,14 +50,10 @@ import org.nutz.mvc.upload.UploadAdaptor;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.*;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
@@ -62,6 +65,8 @@ import java.util.zip.ZipOutputStream;
|
||||
public class TheRapyRecuperationUserQueryController {
|
||||
|
||||
|
||||
@Inject
|
||||
private FtpService ftpService;
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
@@ -357,6 +362,14 @@ public class TheRapyRecuperationUserQueryController {
|
||||
date_format( lineu.playStartTime, '%Y-%m-%d' ) playStartTime,
|
||||
lineu.lineId,
|
||||
( SELECT COUNT( 1 ) FROM the_rapy_recuperation_enroll_companion WHERE trreId = enroll.id) familyCount,
|
||||
(
|
||||
SELECT
|
||||
GROUP_CONCAT(ec.userName, '-', ec.sex, '-', ec.age, '(', ec.idcard, '、', ec.mobile, ')')
|
||||
FROM
|
||||
the_rapy_recuperation_enroll_companion ec
|
||||
WHERE
|
||||
ec.trreId = enroll.id
|
||||
) AS companionInfo,
|
||||
u.schoolTime
|
||||
FROM
|
||||
`the_rapy_recuperation_enroll` enroll
|
||||
@@ -451,6 +464,9 @@ public class TheRapyRecuperationUserQueryController {
|
||||
lineEntities.add(new ExcelExportEntity("线路名称", "lineName", 20));
|
||||
lineEntities.add(new ExcelExportEntity("旅行社", "travelAgencyName", 20));
|
||||
lineEntities.add(new ExcelExportEntity("随行人数", "familyCount", 20));
|
||||
ExcelExportEntity lineEntity = new ExcelExportEntity("随行人信息", "companionInfo", 50);
|
||||
lineEntity.setWrap(true);
|
||||
lineEntities.add(lineEntity);
|
||||
|
||||
//自由组团表头
|
||||
ArrayList<ExcelExportEntity> travelEntities = new ArrayList<>(commonEntities);
|
||||
@@ -501,4 +517,141 @@ public class TheRapyRecuperationUserQueryController {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@RequiresAuthentication
|
||||
public void doExportBaseApply(@Param(value = "id", required = false) String id,
|
||||
@Param(value = "searchKeyword", required = false) String searchKeyword,
|
||||
@Param(value = "startYear", required = false) Integer startYear,
|
||||
@Param(value = "endYear", required = false) Integer endYear,
|
||||
@Param(value = "unionId", required = false) String unionId,
|
||||
@Param(value = "unitId", required = false) String unitId,
|
||||
@Param(value = "lotId", required = false) String lotId,
|
||||
@Param(value = "takePartInBaseManagementId", required = false) String takePartInBaseManagementId,
|
||||
HttpServletResponse response){
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
enroll.*,
|
||||
base.baseName
|
||||
FROM
|
||||
the_rapy_recuperation_enroll enroll
|
||||
LEFT JOIN the_rapy_recuperation_base_management base ON base.id = enroll.takePartInBaseManagementId
|
||||
$condition
|
||||
""");
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (StrUtil.isNotBlank(id)) {
|
||||
cnd.and("enroll.id", "=", id);
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = baseService.listMap(sql);
|
||||
|
||||
NutMap nutMap = list.stream().findFirst().orElse(NutMap.NEW());
|
||||
NutMap map = buildBaseApplyFormMap(nutMap);
|
||||
|
||||
try {
|
||||
response.setContentType("application/pdf");
|
||||
response.setHeader("Content-Disposition", "attachment; filename=\"" + new String((map.getString("username") + "定点自由行申请表").getBytes("UTF-8"), StandardCharsets.ISO_8859_1) + "\".pdf");
|
||||
|
||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/therapyrecuperation/base_apply.docx");
|
||||
// 生成 DOCX 内容到字节数组输出流
|
||||
ByteArrayOutputStream docxOut = new ByteArrayOutputStream();
|
||||
XWPFTemplate.compile(inputStream).render(map, docxOut);
|
||||
inputStream.close();
|
||||
|
||||
// 将 DOCX 转换为 PDF
|
||||
Document doc = new com.aspose.words.Document(new ByteArrayInputStream(docxOut.toByteArray()));
|
||||
ByteArrayOutputStream pdfOut = new ByteArrayOutputStream();
|
||||
doc.save(pdfOut, SaveFormat.PDF);
|
||||
|
||||
// 将 PDF 写入响应输出流
|
||||
response.getOutputStream().write(pdfOut.toByteArray());
|
||||
response.getOutputStream().flush();
|
||||
response.getOutputStream().close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
cnd.and("enroll.isNormal", "=", true);
|
||||
cnd.and("enroll.stateId", "=", TheRapyRecuperationState.PASS);
|
||||
if (StrUtil.isNotBlank(searchKeyword)) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("enroll.userName", searchKeyword);
|
||||
seg.orLike("enroll.loginName", searchKeyword);
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.andEX("enroll.lotId", "=", lotId);
|
||||
cnd.andEX("YEAR(enroll.signingUptime)", ">=", startYear);
|
||||
cnd.andEX("YEAR(enroll.signingUptime)", "<=", endYear);
|
||||
cnd.and("enroll.takePartInBaseManagementId", "is not", null);
|
||||
cnd.andEX("enroll.takePartInBaseManagementId", "=", takePartInBaseManagementId);
|
||||
cnd.andEX("enroll.selfUnionId", "=", unionId);
|
||||
cnd.andEX("enroll.selfUnitId", "=", unitId);
|
||||
sql.setCondition(cnd);
|
||||
|
||||
List<NutMap> enrollList = baseService.listMap(sql);
|
||||
|
||||
try {
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("疗休养报名人员名单.zip", StandardCharsets.UTF_8).replaceAll("\\+", "%20"));
|
||||
|
||||
try (ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream())) {
|
||||
for (NutMap enroll : enrollList) {
|
||||
NutMap map = buildBaseApplyFormMap(enroll);
|
||||
|
||||
String fileName = map.getString("username") + "定点自由行申请表.pdf";
|
||||
ZipEntry zipEntry = new ZipEntry(fileName);
|
||||
zipOutputStream.putNextEntry(zipEntry);
|
||||
|
||||
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("docTemplate/therapyrecuperation/base_apply.docx");
|
||||
|
||||
ByteArrayOutputStream docxOut = new ByteArrayOutputStream();
|
||||
XWPFTemplate.compile(inputStream).render(map, docxOut);
|
||||
inputStream.close();
|
||||
|
||||
Document doc = new Document(new ByteArrayInputStream(docxOut.toByteArray()));
|
||||
ByteArrayOutputStream pdfOut = new ByteArrayOutputStream();
|
||||
doc.save(pdfOut, SaveFormat.PDF);
|
||||
|
||||
zipOutputStream.write(pdfOut.toByteArray());
|
||||
zipOutputStream.closeEntry();
|
||||
}
|
||||
zipOutputStream.finish(); // 完成 ZIP 压缩包的写入
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// Handle exception appropriately
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private NutMap buildBaseApplyFormMap(NutMap enroll){
|
||||
NutMap map = NutMap.NEW();
|
||||
map.put("idCard", enroll.getString("idCard"));
|
||||
map.put("specificTime", enroll.getString("specificTime"));
|
||||
map.put("baseName", enroll.getString("baseName"));
|
||||
map.put("username", enroll.getString("userName"));
|
||||
map.put("unitName", enroll.getString("unitName"));
|
||||
map.put("appDate", DateUtil.formatChineseDate(enroll.getTime("signingUptime"), false, false));
|
||||
String sign = enroll.getString("sign");
|
||||
if (StrUtil.isNotBlank(sign)) {
|
||||
try {
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||
ftpService.download(sign, os);
|
||||
os.close();
|
||||
PictureRenderData data = new PictureRenderData(70, 30, PictureType.PNG, os.toByteArray());
|
||||
map.put("sign", data);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -202,5 +202,15 @@ public class TheRapyRecuperationEnroll extends BaseModel {
|
||||
@Comment("家属数量")
|
||||
private Integer familyNumber;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@Comment("签字")
|
||||
private String sign;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@Comment("出行时间")
|
||||
private String specificTime;
|
||||
|
||||
private String firstLetter;
|
||||
}
|
||||
|
||||
+7
-6
@@ -147,20 +147,20 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
|
||||
taSql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), taSql);
|
||||
} else if (TheRapyRecuperationType.provinceInHotel.getValue() == trrt) {
|
||||
cnd.andEX("b.year", "=", year != null ? year : DateUtil.thisYear());
|
||||
Integer queryYear = year != null ? year : DateUtil.thisYear();
|
||||
cnd.andEX("b.year", "=", queryYear);
|
||||
cnd.and("b.isDisabled", "=", false);
|
||||
Sql taSql = Sqls.create("""
|
||||
select
|
||||
b.*,
|
||||
cast(b.files ->> '$[0].id' as char) as fileId,
|
||||
l.lotName,
|
||||
t.travelAgencyName
|
||||
(select count(1) from the_rapy_recuperation_enroll where takePartInBaseManagementId=b.id and isNormal = true and stateId not in (2715,2725,2735) and YEAR(signingUptime)=@year) as signUpUserNum
|
||||
from
|
||||
the_rapy_recuperation_base_management b
|
||||
left join the_rapy_recuperation_lot l on l.id = b.lotId
|
||||
left join the_rapy_recuperation_travel_agency t on t.id = b.travelAgencyId
|
||||
$condition
|
||||
""");
|
||||
""").setParam("year", queryYear);
|
||||
cnd.asc("sortNumber");
|
||||
taSql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), taSql);
|
||||
@@ -1409,14 +1409,15 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl<TheRapyR
|
||||
l.lotName,
|
||||
ta.regionalNature,
|
||||
t.travelAgencyName,
|
||||
ta.changeEndTime
|
||||
ta.changeEndTime,
|
||||
(select count(1) from the_rapy_recuperation_enroll where takePartInBaseManagementId=ta.id and isNormal = true and stateId not in (2715,2725,2735) and YEAR(signingUptime)=@year) as signUpUserNum
|
||||
FROM
|
||||
the_rapy_recuperation_enroll e
|
||||
LEFT JOIN the_rapy_recuperation_base_management ta ON ta.id = e.takePartInBaseManagementId
|
||||
LEFT JOIN the_rapy_recuperation_lot l on l.id = ta.lotId
|
||||
LEFT JOIN the_rapy_recuperation_travel_agency t on t.id = ta.travelAgencyId
|
||||
$condition
|
||||
""");
|
||||
""").setParam("year", year);
|
||||
cnd.and("e.takePartInBaseManagementId", "is not", null);
|
||||
cnd.and("e.isNormal", "=", true);
|
||||
cnd.andEX("ta.year", "=", year);
|
||||
|
||||
Binary file not shown.
@@ -197,10 +197,10 @@
|
||||
border-right: 3px solid rgb(240, 240, 240);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
/*::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
height: 6px
|
||||
}
|
||||
}*/
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: #f1f1f1
|
||||
|
||||
@@ -45,17 +45,17 @@ const initTableMixins = {
|
||||
}
|
||||
|
||||
if (!file.size) {
|
||||
this.notifyWarning('您选择的是空文件!')
|
||||
this.$message.warning('您选择的是空文件!')
|
||||
removeFile()
|
||||
}
|
||||
|
||||
if (type && type.length && !type.includes(file.name.split('.').pop().toLowerCase())) {
|
||||
this.notifyWarning(`文件只能是 ${type.map(v => v.toUpperCase()).join('/')} 格式!`)
|
||||
this.$message.warning(`文件只能是 ${type.map(v => v.toUpperCase()).join('/')} 格式!`)
|
||||
removeFile()
|
||||
}
|
||||
|
||||
if (size && !file.size < size) {
|
||||
this.notifyWarning(`文件大小不能超过 ${size / 1024 / 1024}MB!`)
|
||||
this.$message.warning(`文件大小不能超过 ${size / 1024 / 1024}MB!`)
|
||||
removeFile()
|
||||
}
|
||||
|
||||
@@ -163,4 +163,4 @@ const initTableMixins = {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ module.exports = {
|
||||
if (resp.code === 0) {
|
||||
this.applyPageData()
|
||||
this.$emit('flush')
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -202,7 +202,7 @@ module.exports = {
|
||||
if (resp.code === 0) {
|
||||
this.applyPageData()
|
||||
this.$emit('flush')
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -2,353 +2,88 @@
|
||||
<div class="activity-bx-info">
|
||||
<el-tabs tab-position="top" v-model="activeName" v-loading="loading">
|
||||
<el-tab-pane label="申请信息" name="1">
|
||||
<!-- <border-table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>申请人</th>
|
||||
<td>{{ viewData.user_name }}( {{ viewData.mobile }})</td>
|
||||
<th>申请时间</th>
|
||||
<td>{{ viewData.apply_time }}</td>
|
||||
<th>申请类型</th>
|
||||
<td>{{ viewData.apply_type == 1 ? "经费申请" : "报销申请" }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>活动时间</th>
|
||||
<td>
|
||||
<span v-if="viewData.startTime">{{ viewData.startTime }}——{{ viewData.endTime }}</span>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
<th>活动计划时间</th>
|
||||
<td>{{ viewData.startPlannedDate }}——{{ viewData.endPlannedDate }}</td>
|
||||
<th>项目编号</th>
|
||||
<td>{{ viewData.projectCode }}</td>
|
||||
</tr>
|
||||
<el-divider content-position="left" style="margin-top: 0 !important;"><span style="color: #3ea1ec;">基础信息</span></el-divider>
|
||||
<border-table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>项目名称</th>
|
||||
<td>{{ viewData.activity_name }}</td>
|
||||
<th>项目类型</th>
|
||||
<td>{{ viewData.apply_time }}</td>
|
||||
<th>申请{{ viewData.activity_type == '40003' ? "协会" : "单位" }}</th>
|
||||
<td>{{ viewData.fundsUnitName }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>活动经费类型</th>
|
||||
<td>{{ viewData.projectJfName }}</td>
|
||||
<th>申请(承办)单位/协会</th>
|
||||
<td>{{ viewData.fundsUnitName }}</td>
|
||||
<th>活动人数</th>
|
||||
<td>{{ viewData.activity_number || "暂无" }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>申请人姓名</th>
|
||||
<td>{{ viewData.user_name }}( {{ viewData.mobile }})</td>
|
||||
<th>联系方式</th>
|
||||
<td>{{ viewData.mobile }}</td>
|
||||
<th>申请时间</th>
|
||||
<td>{{ viewData.apply_time }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>签字</th>
|
||||
<td colspan="5">
|
||||
<el-image v-if="viewData.user_signature"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.user_signature)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</border-table>
|
||||
|
||||
<tr>
|
||||
<th>预算费用</th>
|
||||
<td>{{ viewData.funds_money || "暂无" }}</td>
|
||||
<th>实际费用</th>
|
||||
<td>{{ viewData.activity_money || "暂无" }}</td>
|
||||
<th>活动地点</th>
|
||||
<td>{{ viewData.address }}</td>
|
||||
</tr>
|
||||
|
||||
<!– <tr>
|
||||
<th>收款人</th>
|
||||
<td>{{ viewData.payee_username || "暂无" }}({{ viewData.payee_loginname }})</td>
|
||||
<th>支行名称</th>
|
||||
<td>{{ viewData.activity_card_name || "暂无" }}</td>
|
||||
<th>报销卡号</th>
|
||||
<td>{{ viewData.activity_card_number || "暂无" }}</td>
|
||||
</tr>–>
|
||||
|
||||
<tr>
|
||||
<th>{{ viewData.apply_type == 1 ? '活动方案及简介' : '活动内容' }}</th>
|
||||
<td colspan="5">
|
||||
<div v-html="viewData.activity_content"></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>附件</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.files&&viewData.files.length" :files="viewData.files"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>签字</th>
|
||||
<td colspan="5">
|
||||
<el-image v-if="viewData.us_s"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.us_s)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</border-table>-->
|
||||
<tissue-info class="tissue-info" ref="info"></tissue-info>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="费用及报销信息" name="2">
|
||||
<el-divider content-position="left" style="margin-top: 0 !important;"><span style="color: #3ea1ec;">活动预算费用</span>
|
||||
</el-divider>
|
||||
<el-divider content-position="left" style="margin-top: 0 !important;"><span style="color: #3ea1ec;">报销信息条例</span></el-divider>
|
||||
<el-table :data="viewData.budgets" border size="mini" style="width: 100%">
|
||||
<el-table-column sortable type="index" width="100" label="序号"
|
||||
align="center" header-align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="费用项目名称" align="center"
|
||||
header-align="center">
|
||||
<!-- <template slot-scope="{row}">
|
||||
<el-input maxlength="50" placeholder="费用项目名称" readonly v-model="row.name"
|
||||
type="text"></el-input>
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
<el-table-column prop="budgetPrice" label="预算费用" align="center"
|
||||
header-align="center">
|
||||
<!-- <template slot-scope="{row}">
|
||||
<el-input-number placeholder="预算费用" disabled
|
||||
:precision="2" v-model="row.budgetPrice"></el-input-number>
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
<template v-if="viewData.reimbursement_state_id">
|
||||
<el-table-column prop="actualPrice" label="实际费用" align="center"
|
||||
header-align="center">
|
||||
<!-- <template slot-scope="{row}">
|
||||
<el-input-number disabled placeholder="实际费用" :precision="2" v-model="row.actualprice"></el-input-number>
|
||||
</template>-->
|
||||
</el-table-column>
|
||||
<el-table-column prop="payeeId" label="收款人" align="center"
|
||||
header-align="center">
|
||||
<template slot-scope="{row}">
|
||||
<span>{{ row.username }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="bankName" label="支行名称" align="center"
|
||||
header-align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="bankCardNum" label="报销卡号" align="center"
|
||||
header-align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注" align="center"
|
||||
header-align="center">
|
||||
</el-table-column>
|
||||
</template>
|
||||
<el-table-column type="index" width="80" label="序号"></el-table-column>
|
||||
<el-table-column prop="category" label="科目"></el-table-column>
|
||||
<el-table-column prop="name" label="具体内容"></el-table-column>
|
||||
<el-table-column prop="type" label="类别"></el-table-column>
|
||||
<el-table-column prop="actualPrice" label="金额"></el-table-column>
|
||||
<el-table-column prop="username" label="收款对象(个人/单位)"></el-table-column>
|
||||
<el-table-column prop="bankName" label="支行名称"></el-table-column>
|
||||
<el-table-column prop="bankCardNum" label="报销卡号"></el-table-column>
|
||||
<el-table-column prop="remark" label="备注"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div v-if="viewData.reimbursement_state_id != null && viewData.reimbursement_state_id !== ''">
|
||||
<el-divider content-position="left" class="dia"><span
|
||||
style="color: #3ea1ec;margin-top: 20px">其他报销附件</span></el-divider>
|
||||
<border-table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>发票:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.billFiles&&viewData.billFiles.length"
|
||||
:files="viewData.billFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>活动报道照片/总结/链接:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.photoFiles&&viewData.photoFiles.length"
|
||||
:files="viewData.photoFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>奖品/纪念品/服装/道具等活动人员名单:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.otherFiles&&viewData.otherFiles.length"
|
||||
:files="viewData.otherFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</border-table>
|
||||
|
||||
<!-- <el-divider content-position="left" class="dia"><span style="color: #3ea1ec;margin-top: 20px">新闻信息</span></el-divider>
|
||||
<border-table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>新闻稿件说明:</th>
|
||||
<td colspan="5">
|
||||
{{ viewData.newsRemark }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>新闻图片:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.picFiles&&viewData.picFiles.length" :files="viewData.picFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>新闻附件:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.newsFiles&&viewData.newsFiles.length" :files="viewData.newsFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</border-table>-->
|
||||
</div>
|
||||
<el-divider content-position="left" class="dia"><span style="color: #3ea1ec;margin-top: 20px">其他报销附件</span></el-divider>
|
||||
<border-table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>发票:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.billFiles&&viewData.billFiles.length"
|
||||
:files="viewData.billFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>活动报道照片/总结/链接:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.photoFiles&&viewData.photoFiles.length"
|
||||
:files="viewData.photoFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>奖品/纪念品/服装/道具等活动人员名单:</th>
|
||||
<td colspan="5">
|
||||
<file-upload v-if="viewData.otherFiles&&viewData.otherFiles.length"
|
||||
:files="viewData.otherFiles"
|
||||
:view="true"></file-upload>
|
||||
<span v-else>暂无</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</border-table>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="基层工会审核信息(申请)" name="3" v-if="viewData.division_chairman_name">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员:">
|
||||
{{ viewData.dc_username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间:">
|
||||
{{ viewData.division_chairman_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核意见:">
|
||||
<div class="textarea-div">{{
|
||||
viewData.division_chairman_idea ? viewData.division_chairman_idea : "暂无"
|
||||
}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="签  字:">
|
||||
<el-image v-if="viewData.dc_s"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.dc_s)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会负责人审核信息(申请)" name="4" v-if="viewData.accounting_name">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<!--<el-form-item label="核批信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>-->
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员:">
|
||||
{{ viewData.a_username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间:">
|
||||
{{ viewData.accounting_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核意见:">
|
||||
<div class="textarea-div">{{ viewData.accounting_idea ? viewData.accounting_idea : "暂无" }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="签  字:">
|
||||
<el-image v-if="viewData.a_s"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.a_s)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会副主席审核信息" name="5" v-if="viewData.confirm_trade_name">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<!-- <el-form-item label="核批信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>-->
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员:">
|
||||
{{ viewData.ct_username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间:">
|
||||
{{ viewData.confirm_trade_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核意见:">
|
||||
<div class="textarea-div">{{ viewData.confirm_trade_idea ? viewData.confirm_trade_idea : "暂无"
|
||||
}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="签  字:">
|
||||
<el-image v-if="viewData.ct_s"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.ct_s)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会主席审核信息(申请)" name="6" v-if="viewData.union_chairman_name">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员:">
|
||||
{{ viewData.ucc_username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间:">
|
||||
{{ viewData.union_chairman_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核意见:">
|
||||
<div class="textarea-div">{{ viewData.union_chairman_idea ? viewData.union_chairman_idea : "暂无"
|
||||
}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="签  字:">
|
||||
<el-image v-if="viewData.ucc_s"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.ucc_s)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会出纳审核信息(申请)" name="6" v-if="viewData.union_cashier_name">
|
||||
<el-form label-width="130px" style="padding: 20px 0">
|
||||
|
||||
<!-- <el-form-item label="核批信息 " label-width="135px" class="view-header">
|
||||
</el-form-item>-->
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核人员:">
|
||||
{{ viewData.uc_username }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="审核时间:">
|
||||
{{ viewData.union_cashier_time }}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="审核意见:">
|
||||
<div class="textarea-div">{{ viewData.union_cashier_idea ? viewData.union_cashier_idea : "暂无"
|
||||
}}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="签  字:">
|
||||
<el-image v-if="viewData.uc_s"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="CREATE_PREVIEW_URL(viewData.uc_s)"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="协会负责人审核信息(报销)" name="7"
|
||||
<el-tab-pane label="协会会长审核信息" name="7"
|
||||
v-if="viewData.reimbursement_club_audit">
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="审核人员">
|
||||
@@ -371,7 +106,7 @@
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="基层工会主席审核信息(报销)" name="8"
|
||||
<el-tab-pane label="基层工会审核信息" name="8"
|
||||
v-if="viewData.reimbursement_union_audit">
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="审核人员">
|
||||
@@ -394,7 +129,7 @@
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会负责人审核信息(报销)" name="9"
|
||||
<el-tab-pane label="校工会办公室主管审核信息" name="9"
|
||||
v-if="viewData.reimbursement_school_director">
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="审核人员">
|
||||
@@ -417,7 +152,7 @@
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="校工会主席审核信息(报销)" name="10"
|
||||
<el-tab-pane label="校工会主席审核信息" name="10"
|
||||
v-if="viewData.reimbursement_school_chairman">
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="审核人员">
|
||||
@@ -427,9 +162,7 @@
|
||||
{{ viewData.reimbursement_school_chairman.auditTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2" label="审核意见">
|
||||
{{
|
||||
viewData.reimbursement_school_chairman.auditOpinion ? viewData.reimbursement_school_chairman.auditOpinion : "暂无"
|
||||
}}
|
||||
{{viewData.reimbursement_school_chairman.auditOpinion ? viewData.reimbursement_school_chairman.auditOpinion : "暂无" }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2" label="签字">
|
||||
<el-image v-if="viewData.reimbursement_school_chairman.auditSign"
|
||||
@@ -441,6 +174,28 @@
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="校财务审核信息" name="11"
|
||||
v-if="viewData.reimbursement_school_finance">
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="审核人员">
|
||||
{{ viewData.reimbursement_school_finance.username }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="审核时间">
|
||||
{{ viewData.reimbursement_school_finance.auditTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2" label="审核意见">
|
||||
{{viewData.reimbursement_school_finance.auditOpinion ? viewData.reimbursement_school_finance.auditOpinion : "暂无" }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2" label="签字">
|
||||
<el-image v-if="viewData.reimbursement_school_finance.auditSign"
|
||||
style="width: 300px; height: 100px"
|
||||
:src="viewData.reimbursement_school_finance.auditSign"
|
||||
fit="contain"></el-image>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane v-if="handle" :label="label" name="999">
|
||||
<slot name="handle"></slot>
|
||||
</el-tab-pane>
|
||||
@@ -477,7 +232,7 @@ module.exports = {
|
||||
},
|
||||
components: {
|
||||
"file-upload": httpVueLoader("/components/plugins/FileUpload.vue"),
|
||||
"tissue-info": httpVueLoader("/components/activity/school/tissueInfo.vue")
|
||||
// "tissue-info": httpVueLoader("/components/activity/school/tissueInfo.vue")
|
||||
},
|
||||
methods: {
|
||||
hasPane(name) {
|
||||
@@ -507,9 +262,9 @@ module.exports = {
|
||||
if (data.newsFiles && data.newsFiles.length > 0) this.viewData.newsFiles = JSON.parse(data.newsFiles)
|
||||
if (data.budgets && data.budgets.length > 0) this.viewData.budgets = JSON.parse(data.budgets)
|
||||
// this.viewData.goods = data.Goods
|
||||
this.$nextTick(() => {
|
||||
this.$refs.info.getInfo(data.activity_id)
|
||||
})
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.info.getInfo(data.activity_id)
|
||||
// })
|
||||
} else {
|
||||
this.viewData = {}
|
||||
this.$message({
|
||||
|
||||
@@ -472,7 +472,7 @@ module.exports = {
|
||||
success: (data) => {
|
||||
this.importLoading = false
|
||||
if (data.code === 0) {
|
||||
this.notifySuccess("核对成功!")
|
||||
this.$message.success("核对成功!")
|
||||
this.errorInfoData = data.data
|
||||
this.formData.existsLoginNameRedisKey = data.data.existsLoginNameRedisKey
|
||||
} else {
|
||||
@@ -485,7 +485,7 @@ module.exports = {
|
||||
this.errorInfoData = data.data
|
||||
},
|
||||
error: (data) => {
|
||||
this.notifyWarning("导入失败")
|
||||
this.$message.warning("导入失败")
|
||||
this.importLoading = false
|
||||
}
|
||||
});
|
||||
|
||||
@@ -562,7 +562,7 @@ module.exports = {
|
||||
this.tableData = resp.data.list
|
||||
this.pageForm.totalCount = resp.data.totalCount
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async doSetActivityUser() {
|
||||
@@ -600,7 +600,7 @@ module.exports = {
|
||||
// this.userScopeDialog = false
|
||||
await this.getActivityGroup()
|
||||
this.doSearch()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.formData = {
|
||||
setGroupType: null,
|
||||
setGroupId: null,
|
||||
|
||||
@@ -98,7 +98,7 @@ module.exports = {
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.table.clearSelection();
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -523,7 +523,7 @@ module.exports = {
|
||||
this.tableData = resp.data.list
|
||||
this.pageForm.totalCount = resp.data.totalCount
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async doSetActivityUser() {
|
||||
@@ -561,7 +561,7 @@ module.exports = {
|
||||
// this.userScopeDialog = false
|
||||
await this.getActivityGroup()
|
||||
this.doSearch()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.formData = {
|
||||
setGroupType: null,
|
||||
setGroupId: null,
|
||||
|
||||
@@ -215,9 +215,9 @@ layout("/mobile/platform.html"){
|
||||
<div class="container">
|
||||
<div class="header">
|
||||
<div class="title">
|
||||
<van-tag size="large" color="#1867b0" style="color: white;position: relative; top: -2px">
|
||||
<!--<van-tag size="large" color="#1867b0" style="color: white;position: relative; top: -2px">
|
||||
{{baseData.lotName}}
|
||||
</van-tag>
|
||||
</van-tag>-->
|
||||
{{baseData.baseName}}
|
||||
</div>
|
||||
<div style="margin-top: 10px">
|
||||
@@ -279,6 +279,10 @@ layout("/mobile/platform.html"){
|
||||
<!--报名弹出框-->
|
||||
<van-popup v-model:show="joinPopup" position="right" class="joinPopup">
|
||||
<van-nav-bar @click-left="joinPopup = false" fixed left-arrow placeholder title="疗休养报名"></van-nav-bar>
|
||||
<van-notice-bar
|
||||
background="#ecf9ff" color="red" left-icon="volume-o"
|
||||
text="温馨提示:报名定点疗休养需签署【定点自由行申请表】,填写基础信息和签字后会同步在申请表中,点击查看按钮可展示申请表"
|
||||
></van-notice-bar>
|
||||
<div class="join_content">
|
||||
|
||||
<van-form @submit="joinSubmit">
|
||||
@@ -292,17 +296,31 @@ layout("/mobile/platform.html"){
|
||||
<div class="van-card-body">
|
||||
<van-field label="姓名" readonly v-model="formData.userName"></van-field>
|
||||
<van-field label="工号" readonly v-model="formData.loginName"></van-field>
|
||||
<van-field label="身份证件" name="idCard" :rules="[{ required: true }]"
|
||||
<van-field label="身份证件" name="idCard" required :rules="[{ required: true }]"
|
||||
placeholder="请填写身份证号、护照、台胞证等" v-model="formData.idCard"></van-field>
|
||||
<van-field label="手机号" name="mobile" :rules="[{ required: true }]"
|
||||
<van-field label="手机号" name="mobile" required :rules="[{ required: true }]"
|
||||
placeholder="请填写手机号" v-model="formData.mobile"></van-field>
|
||||
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
||||
<van-field label="报名酒店" readonly v-model="formData.baseName"></van-field>
|
||||
<van-field label="出行时间" readonly @click="timeVisible = true"
|
||||
:rules="[{ required: true }]" placeholder="请选择出行时间" required
|
||||
is-link v-model="formData.specificTime" name="specificTime"></van-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="van-doc-card" style="margin-bottom: 16px">
|
||||
<div></div>
|
||||
<div class="van-card-header">
|
||||
签字
|
||||
</div>
|
||||
<div class="van-card-body">
|
||||
<mobile-sign :is_value_base64="false" v-model="formData.sign" prefix="RAPY"
|
||||
ref="signature"></mobile-sign>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--床位信息-->
|
||||
<div class="van-doc-card" style="margin-bottom: 16px">
|
||||
<!--<div class="van-doc-card" style="margin-bottom: 16px">
|
||||
<div></div>
|
||||
<div class="van-card-header">
|
||||
房间信息
|
||||
@@ -319,10 +337,10 @@ layout("/mobile/platform.html"){
|
||||
<div>
|
||||
<span style="color: red;margin-left: 14px;font-size: 14px">包房需自费;不包房两位老师一间且随机分配</span>
|
||||
</div>
|
||||
<!--<van-field @click="self = true; roomVisible = true" readonly is-link label="房间" name="bedType"
|
||||
<!–<van-field @click="self = true; roomVisible = true" readonly is-link label="房间" name="bedType"
|
||||
placeholder="请选择房间" v-model="formData.bedInfo.bedType"
|
||||
:rules="[{ required: true }]"></van-field>-->
|
||||
<!--<van-field v-if="formData.bedInfo.bedType == '标准间'" @click="self = true; bedVisible = true"
|
||||
:rules="[{ required: true }]"></van-field>–>
|
||||
<!–<van-field v-if="formData.bedInfo.bedType == '标准间'" @click="self = true; bedVisible = true"
|
||||
readonly is-link label="床位"
|
||||
name="bedNum" placeholder="请选择床位" v-model="formData.bedInfo.bedNum"
|
||||
:rules="[{ required: true }]"></van-field>
|
||||
@@ -338,11 +356,11 @@ layout("/mobile/platform.html"){
|
||||
<van-field v-if="formData.bedInfo.bedType == '标准间' && formData.bedInfo.isSleepTogether == true"
|
||||
label="意向拼房人" name="otherSleepUser" placeholder="多个拼房人请用,隔开"
|
||||
v-model="formData.bedInfo.otherSleepUser"
|
||||
:rules="[{ required: true }]"></van-field>-->
|
||||
:rules="[{ required: true }]"></van-field>–>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--随行人信息-->
|
||||
<!–随行人信息–>
|
||||
<div v-if="index != 2" class="van-doc-card" style="margin-bottom: 16px">
|
||||
<div></div>
|
||||
<div class="van-card-header"
|
||||
@@ -363,7 +381,7 @@ layout("/mobile/platform.html"){
|
||||
<van-tab v-for="item, index in formData.companionList" :title="'随行人' + (index + 1)">
|
||||
<van-field label="姓名" name="userName" placeholder="请填写姓名" v-model="item.userName"
|
||||
:rules="[{ required: true }]"></van-field>
|
||||
<!--<van-field label="工号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>-->
|
||||
<!–<van-field label="工号" name="loginName" placeholder="若没有工号,请忽略此项" v-model="item.loginName"></van-field>–>
|
||||
<van-field label="年龄" name="age" placeholder="请填写年龄" v-model="item.age"
|
||||
type="digit" :rules="[{ required: true }]"></van-field>
|
||||
<van-field :rules="[{ required: true, message: '请选择性别' }]" label="性别" name="validator">
|
||||
@@ -385,7 +403,7 @@ layout("/mobile/platform.html"){
|
||||
placeholder="随行人与本人关系" v-model="item.relation"
|
||||
:rules="[{ required: true }]"></van-field>
|
||||
|
||||
<!--<van-field @click="self = false; roomVisible = true" readonly is-link label="房间"
|
||||
<!–<van-field @click="self = false; roomVisible = true" readonly is-link label="房间"
|
||||
name="bedType" placeholder="请选择房间"
|
||||
v-model="item.bedInfo.bedType"></van-field>
|
||||
<div style="font-size: 8px; color:orangered; padding-left: 16px; padding-bottom: 4px">
|
||||
@@ -405,7 +423,7 @@ layout("/mobile/platform.html"){
|
||||
</van-field>
|
||||
<van-field v-if="item.bedInfo.bedType == '标准间' && item.bedInfo.isSleepTogether == true"
|
||||
label="意向拼房人" name="otherSleepUser" placeholder="多个拼房人请用,隔开"
|
||||
v-model="item.bedInfo.otherSleepUser"></van-field>-->
|
||||
v-model="item.bedInfo.otherSleepUser"></van-field>–>
|
||||
</van-tab>
|
||||
</van-tabs>
|
||||
</div>
|
||||
@@ -420,13 +438,15 @@ layout("/mobile/platform.html"){
|
||||
<van-field label="家属数量" name="familyNumber" placeholder="请填写家属数量" v-model="formData.familyNumber"
|
||||
type="digit" :rules="[{ required: true }]"></van-field>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
</div>-->
|
||||
<div class="submitButton">
|
||||
<van-button class="join join_submit">提交报名</van-button>
|
||||
</div>
|
||||
|
||||
</van-form>
|
||||
<div class="submitButton" style="margin-top: -10px">
|
||||
<van-button class="join join_submit" @click="showApplyForm">查看定点自由行申请表</van-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -462,6 +482,22 @@ layout("/mobile/platform.html"){
|
||||
</van-picker>
|
||||
</van-popup>
|
||||
|
||||
|
||||
<van-calendar title="出行日期选择" v-model="timeVisible" :show-confirm="false"
|
||||
:min-date="minDate" :max-date="maxDate"
|
||||
ref="cal" @confirm="calConfirm" :style="{ height: '660px' }"></van-calendar>
|
||||
|
||||
|
||||
<van-popup v-model="applyFormShow" closeable position="right"
|
||||
:style="{ height: '100%',width: '100%' }" get-container="body">
|
||||
<van-sticky>
|
||||
<van-nav-bar @click-left="applyFormShow = false" fixed left-arrow placeholder title="定点自由行申请表"></van-nav-bar>
|
||||
</van-sticky>
|
||||
|
||||
<div id="basePdf" style="height: 80vh"></div>
|
||||
|
||||
</van-popup>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
function getQueryString(name) {
|
||||
@@ -478,6 +514,8 @@ layout("/mobile/platform.html"){
|
||||
return {
|
||||
isPdf: false,
|
||||
active: 0,
|
||||
minDate: new Date(2010, 0, 1),
|
||||
maxDate: new Date(2010, 0, 31),
|
||||
roomColumns: ['包房', '默认房间'],
|
||||
bedColumns: ['1', '2'],
|
||||
companionColumns: ['配偶', '子女', '亲属', '其他'],
|
||||
@@ -499,6 +537,8 @@ layout("/mobile/platform.html"){
|
||||
takePartInUnionId: '',
|
||||
companionList: [],
|
||||
bedInfo: {},
|
||||
specificTime: '',
|
||||
sign: ''
|
||||
},
|
||||
self: true,
|
||||
btnFlag: false,
|
||||
@@ -507,9 +547,34 @@ layout("/mobile/platform.html"){
|
||||
fromUrlByMy: '',
|
||||
enrollId: '',
|
||||
configData: {},
|
||||
|
||||
// 出行日期相关
|
||||
timeVisible: false,
|
||||
|
||||
// 定点疗休养申请表相关
|
||||
applyFormShow: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 展示申请表
|
||||
async showApplyForm(){
|
||||
const url = '/platform/theRapyRecuperation/baseManagement/showBaseApplyPdf?baseName='
|
||||
+ (this.formData.baseName ? this.formData.baseName : '') + '&specificTime=' + (this.formData.specificTime ? this.formData.specificTime : '')
|
||||
+ '&sign=' + (this.formData.sign ? this.configData.sign : '') + '&idCard=' + (this.formData.idCard ? this.formData.idCard : '')
|
||||
|
||||
this.applyFormShow = true
|
||||
this.$nextTick(() => {
|
||||
pdfh5 = new Pdfh5('#basePdf', {
|
||||
pdfurl: url,
|
||||
});
|
||||
})
|
||||
},
|
||||
// 出行日期相关
|
||||
calConfirm(date) {
|
||||
console.log(date)
|
||||
this.$set(this.formData, "specificTime", moment(date).format('YYYY年MM月DD日'))
|
||||
this.timeVisible = false
|
||||
},
|
||||
getAgeAndSex(item){
|
||||
try {
|
||||
const value = item.idCard
|
||||
@@ -555,54 +620,45 @@ layout("/mobile/platform.html"){
|
||||
}
|
||||
})
|
||||
|
||||
if (cloneData.companionList) {
|
||||
for (let i = 0; i < cloneData.companionList.length; i++) {
|
||||
const companion = cloneData.companionList[i];
|
||||
// 检查每个字段是否为空
|
||||
if (!companion.userName || !companion.idCard || !companion.mobile || !companion.relation) {
|
||||
this.$toast('请填写完整随行人信息')
|
||||
return
|
||||
}
|
||||
|
||||
// 填了身份证,校验是否正确
|
||||
if (companion.idCard) {
|
||||
if (!this.validateIdCard(companion.idCard)) {
|
||||
this.$toast('随行人'+ (i+1) +'的身份证不正确')
|
||||
return
|
||||
} else {
|
||||
// 判断companion.age,是不是在3到70岁之间,不是就提示
|
||||
if (companion.age < 3 || companion.age > 70) {
|
||||
this.$toast('随行人'+ (i+1) +'的年龄超出限制,请天添加其他联系人')
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!this.formData.sign) {
|
||||
this.$toast.fail('请签字')
|
||||
return
|
||||
}
|
||||
const toast = vant.Toast.loading({
|
||||
duration: 0,
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
message: '努力提交中',
|
||||
})
|
||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doSignUpForBaseManagement', {
|
||||
enroll: JSON.stringify(cloneData),
|
||||
})
|
||||
setTimeout(() => {
|
||||
if (resp.code === 0) {
|
||||
toast.message = '提交成功'
|
||||
toast.type = 'success'
|
||||
} else {
|
||||
toast.message = resp.msg
|
||||
toast.type = 'fail'
|
||||
}
|
||||
|
||||
|
||||
vant.Dialog.confirm({
|
||||
title: '温馨提示',
|
||||
message: '请确认您已阅览【定点自由行申请表】,是否确认提交报名?',
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
}).then(async () => {
|
||||
const toast = vant.Toast.loading({
|
||||
duration: 0,
|
||||
forbidClick: true,
|
||||
overlay: true,
|
||||
message: '努力提交中',
|
||||
})
|
||||
const resp = await $.post('/platform/theRapyRecuperation/line/enroll/doSignUpForBaseManagement', {
|
||||
enroll: JSON.stringify(cloneData),
|
||||
})
|
||||
setTimeout(() => {
|
||||
toast.clear()
|
||||
if (resp.code === 0) {
|
||||
toast.message = '提交成功'
|
||||
toast.type = 'success'
|
||||
} else {
|
||||
toast.message = resp.msg
|
||||
toast.type = 'fail'
|
||||
}
|
||||
setTimeout(() => {
|
||||
toast.clear()
|
||||
}, 500)
|
||||
if (resp.code === 0) {
|
||||
location.href = '/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index
|
||||
}
|
||||
}, 500)
|
||||
if (resp.code === 0) {
|
||||
location.href = '/platform/mobile/theRapyRecuperation/myRecuperation?index=' + this.index
|
||||
}
|
||||
}, 1000)
|
||||
}).catch(() => {
|
||||
// on cancel
|
||||
})
|
||||
},
|
||||
addCompanion() {
|
||||
this.formData.companionList.push({userName: '', loginName: '', sex: '', relation: '', bedInfo: {}})
|
||||
@@ -637,7 +693,10 @@ layout("/mobile/platform.html"){
|
||||
companionList: [],
|
||||
bedInfo: {},
|
||||
}
|
||||
this.$set(this.formData.bedInfo, 'bedType', '大床房')
|
||||
// this.$set(this.formData.bedInfo, 'bedType', '大床房')
|
||||
}
|
||||
if(this.index == 3) {
|
||||
await this.getTimeArray()
|
||||
}
|
||||
this.joinPopup = true
|
||||
},
|
||||
@@ -645,6 +704,7 @@ layout("/mobile/platform.html"){
|
||||
const res = await $.get('/platform/theRapyRecuperation/baseManagement/selectBaseAllInfo', {
|
||||
id: this.id
|
||||
})
|
||||
debugger
|
||||
if (res.code === 0) {
|
||||
this.baseData = res.data
|
||||
this.formData.baseName = this.baseData.baseName
|
||||
@@ -690,6 +750,13 @@ layout("/mobile/platform.html"){
|
||||
const resp = await $.get('/platform/theRapyRecuperation/TheRapyConfig/findOne')
|
||||
this.configData = resp.data
|
||||
},
|
||||
async getTimeArray(){
|
||||
const res = await $.post('/platform/theRapyRecuperation/baseManagement/getTimeArray', {
|
||||
id: this.id
|
||||
})
|
||||
this.minDate = new Date(res.data.minDate)
|
||||
this.maxDate = new Date(res.data.maxDate)
|
||||
},
|
||||
calculateAgeFromIdCard(idCard) {
|
||||
// 检查身份证号码是否合法
|
||||
if (!idCard) {
|
||||
@@ -805,7 +872,6 @@ layout("/mobile/platform.html"){
|
||||
try {
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString(this.baseData.content, 'text/html');
|
||||
console.log(this.baseData)
|
||||
const link = doc.querySelector('a');
|
||||
const href = link.getAttribute('href');
|
||||
this.$nextTick(() => {
|
||||
|
||||
@@ -296,12 +296,12 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
|
||||
<div v-if="pageForm.theRapyRecuperationType == '3'" class="content-right">
|
||||
<div class="cr-title">
|
||||
<div class="cr-title" style="white-space: normal">
|
||||
<span>{{o.baseName}}</span>
|
||||
<div>
|
||||
<!--<div>
|
||||
<van-tag color="#1867b0">{{o.regionalNature}}</van-tag>
|
||||
<van-tag color="#1867b0">{{o.lotName}}</van-tag>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
<div class="desc_info">
|
||||
<div class="concat">
|
||||
@@ -311,7 +311,7 @@ layout("/mobile/platform.html"){
|
||||
<span>联系方式:</span>{{o.baseContactNumber}}
|
||||
</div>
|
||||
<div class="mobile">
|
||||
<span>旅 行 社:</span>{{o.travelAgencyName}}
|
||||
<span>已报人数:</span>{{o.signUpUserNum}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -336,12 +336,12 @@ layout("/mobile/platform.html"){
|
||||
</div>
|
||||
|
||||
<div v-if="pageForm.theRapyRecuperationType == '3'" class="content-right">
|
||||
<div class="cr-title">
|
||||
<div class="cr-title" style="white-space: normal">
|
||||
<span>{{o.baseName}}</span>
|
||||
<div>
|
||||
<!--<div>
|
||||
<van-tag color="#1867b0">{{o.regionalNature}}</van-tag>
|
||||
<van-tag color="#1867b0">{{o.lotName}}</van-tag>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
<div class="desc_info">
|
||||
<div class="concat">
|
||||
@@ -351,7 +351,7 @@ layout("/mobile/platform.html"){
|
||||
<span>联系方式:</span>{{o.baseContactNumber}}
|
||||
</div>
|
||||
<div class="mobile">
|
||||
<span>旅 行 社:</span>{{o.travelAgencyName}}
|
||||
<span>已报人数:</span>{{o.signUpUserNum}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -271,7 +271,7 @@ layout("/layouts/platform.html"){
|
||||
this.treeLoading = false
|
||||
this.treeData = resp.data
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
if (flush && resp.code === 0) {
|
||||
this.checkData = resp.data[0]
|
||||
@@ -299,7 +299,7 @@ layout("/layouts/platform.html"){
|
||||
this.doSearch();
|
||||
this.loadTree(true)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -314,7 +314,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.doSearch();
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -337,11 +337,11 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.loadTree(true)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -462,7 +462,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.groupList = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -472,7 +472,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.exerciseTypeList = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -482,7 +482,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.distanceList = resp.data;
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -492,7 +492,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.exerciseTypeList2 = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
doAdd() {
|
||||
@@ -557,7 +557,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -585,10 +585,10 @@ layout("/layouts/platform.html"){
|
||||
this.formData = data
|
||||
const resp = await $.post(loc() + "/doEdit", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
doEdit() {
|
||||
@@ -655,7 +655,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -700,7 +700,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ layout("/layouts/platform.html"){
|
||||
this.setDialogVisible = false
|
||||
await this.getActivityGroup()
|
||||
this.doSearch()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.formData = {
|
||||
setGroupType: null,
|
||||
setGroupId: null,
|
||||
|
||||
@@ -467,7 +467,7 @@ layout("/layouts/platform.html"){
|
||||
this.loadTree(false)
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -483,7 +483,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -497,7 +497,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
doAdd() {
|
||||
@@ -511,7 +511,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -614,7 +614,7 @@ layout("/layouts/platform.html"){
|
||||
this.userPageForm.totalCount = 0;
|
||||
}
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -236,7 +236,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageForm.id = id
|
||||
const resp = await $.post(loc() + '/doDelete', this.pageForm)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1442,7 +1442,7 @@ layout("/layouts/platform.html"){
|
||||
await this.getUnionCoachLeaderHead()
|
||||
this.dialogLeaderCoach = false;
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -1512,7 +1512,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.delete_info.applyPageData()
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -1680,7 +1680,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
this.$refs.guava.edit()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1728,7 +1728,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.leaderOptions = v
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
this.leaderOptions = []
|
||||
}
|
||||
} else {
|
||||
@@ -1847,7 +1847,7 @@ layout("/layouts/platform.html"){
|
||||
return v.unionName
|
||||
})
|
||||
if (unionNameAppliedData && unionNameAppliedData.length > 2) {
|
||||
this.notifyWarning('最多只能两个工会联合组队!')
|
||||
this.$message.warning('最多只能两个工会联合组队!')
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1947,7 +1947,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -1972,7 +1972,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2293,7 +2293,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
} else {
|
||||
this.$notify.error({title: '错误', message: '存在未填写的的必填项'});
|
||||
@@ -2315,7 +2315,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.activityList = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
pageData() {
|
||||
@@ -2342,7 +2342,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.unitOptions = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -95,7 +95,7 @@ layout("/layouts/platform.html"){
|
||||
this.tableData = resp.data
|
||||
this.tableKey = new Date().getTime()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -284,7 +284,7 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -353,7 +353,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -327,7 +327,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
} else {
|
||||
this.$notify.error({title: '错误', message: '存在未填写的的必填项'});
|
||||
@@ -341,7 +341,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -669,7 +669,7 @@ layout("/layouts/platform.html"){
|
||||
methods: {
|
||||
doImport() {
|
||||
if (!this.importData.fileList.length) {
|
||||
this.notifyWarning("请选择文件!")
|
||||
this.$message.warning("请选择文件!")
|
||||
return
|
||||
}
|
||||
const data = new FormData();
|
||||
@@ -686,16 +686,16 @@ layout("/layouts/platform.html"){
|
||||
contentType: false,
|
||||
success: (data) => {
|
||||
if (!data.code) {
|
||||
this.notifySuccess(data.msg);
|
||||
this.$message.success(data.msg);
|
||||
this.getData();
|
||||
this.importVisible = false
|
||||
} else {
|
||||
this.notifyWarning(data.msg)
|
||||
this.$message.warning(data.msg)
|
||||
}
|
||||
this.importLoading = false
|
||||
},
|
||||
error: (data) => {
|
||||
this.notifyWarning(data.msg)
|
||||
this.$message.warning(data.msg)
|
||||
this.importLoading = false
|
||||
}
|
||||
});
|
||||
@@ -705,7 +705,7 @@ layout("/layouts/platform.html"){
|
||||
fileList: []
|
||||
}
|
||||
if (!this.pageForm.id) {
|
||||
this.notifyWarning("请先选择活动名称")
|
||||
this.$message.warning("请先选择活动名称")
|
||||
return
|
||||
}
|
||||
this.importVisible = true;
|
||||
@@ -769,7 +769,7 @@ layout("/layouts/platform.html"){
|
||||
this.tabLoading = false
|
||||
}
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async changeActivit() {
|
||||
@@ -914,7 +914,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
this.tableKey = new Date().getTime()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
this.noneData = true
|
||||
}
|
||||
},
|
||||
|
||||
@@ -265,9 +265,9 @@ layout("/layouts/platform.html"){
|
||||
}).then(async () => {
|
||||
const resp = await $.get(loc() + "/sendRemind", {phone: row.telephone, unionname: row.unionname})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -289,9 +289,9 @@ layout("/layouts/platform.html"){
|
||||
|
||||
loading.close()
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -538,7 +538,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs["form"].validate(async (valid) => {
|
||||
if (valid) {
|
||||
if (this.userList.some(v => v.id === this.formData.userid)) {
|
||||
this.notifyWarning("您添加的运动员已经是远动员!")
|
||||
this.$message.warning("您添加的运动员已经是远动员!")
|
||||
return
|
||||
}
|
||||
await $.post(loc() + "/doAdd", {
|
||||
@@ -554,7 +554,7 @@ layout("/layouts/platform.html"){
|
||||
this.userDetailsChange()
|
||||
this.dialogVisible = false
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -595,7 +595,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
rankingChange() {
|
||||
@@ -865,4 +865,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -134,7 +134,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
},
|
||||
@@ -148,4 +148,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -183,10 +183,10 @@ layout("/layouts/platform.html"){
|
||||
if (confirm !== 'confirm') return
|
||||
const resp = await $.post('/platform/activity/site/reserve/doDelete', {id, op: 1})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -290,7 +290,7 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + '/doHandle', {data: JSON.stringify(this.formData)})
|
||||
if (resp.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.findAll()
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
@@ -323,10 +323,10 @@ layout("/layouts/platform.html"){
|
||||
if (confirm === 'confirm') {
|
||||
const resp = await $.post(loc() + '/delete/' + id)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.findAll()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
@@ -363,7 +363,7 @@ layout("/layouts/platform.html"){
|
||||
this.userData = clone(data.tissuePersonList)
|
||||
this.formData = data
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
this.$refs.guava.edit()
|
||||
},
|
||||
@@ -411,7 +411,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
} else {
|
||||
this.$notify.error({title: '错误', message: '存在未填写的的必填项'});
|
||||
@@ -427,7 +427,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -296,7 +296,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
} else {
|
||||
this.$notify.error({title: '错误', message: '存在未填写的的必填项'});
|
||||
@@ -310,7 +310,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -1071,7 +1071,7 @@
|
||||
}
|
||||
|
||||
} else {
|
||||
this.notifyWarning(msg)
|
||||
this.$message.warning(msg)
|
||||
}
|
||||
},
|
||||
initMap() {
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -369,7 +369,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -386,7 +386,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -278,4 +278,4 @@
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -324,7 +324,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -342,7 +342,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
if (resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -353,9 +353,9 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/doDelete", {id})
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -377,9 +377,9 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.deleteRowIds = []
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -144,10 +144,10 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" === a) {
|
||||
const resp = await $.get(loc() + "/doDelete", {id: row.id})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -303,10 +303,10 @@ layout("/layouts/platform.html"){
|
||||
this.formData = data
|
||||
const resp = await $.post(loc() + "/doEdit", {contribution: JSON.stringify(this.formData)})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async operation() {
|
||||
@@ -329,7 +329,7 @@ layout("/layouts/platform.html"){
|
||||
this.DialogVisible = false;
|
||||
this.pageData();
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -344,10 +344,10 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" === a) {
|
||||
const resp = await $.get(loc() + "/doDelete", {id: id})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
self.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,11 +209,11 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
loading.close()
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.DialogVisible = false;
|
||||
this.pageData();
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -231,7 +231,7 @@ layout("/layouts/platform.html"){
|
||||
self.notifySuccess(resp.msg)
|
||||
self.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,7 +431,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -445,7 +445,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs['form'].resetFields()
|
||||
}
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
doAdd() {
|
||||
@@ -459,7 +459,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -541,4 +541,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -223,12 +223,12 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + '/deleteUser', {sourceTime: JSON.stringify(this.sourceTime)})
|
||||
this.deleteLoading = false
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess((resp.msg))
|
||||
this.$message.success((resp.msg))
|
||||
this.pageData()
|
||||
this.getLatelyUpdateTimes()
|
||||
this.dialogVisible = false
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -237,7 +237,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.latelyDeleteTimes = resp.data
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
openDeleteUser() {
|
||||
@@ -268,7 +268,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.table.clearSelection();
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -288,7 +288,7 @@ layout("/layouts/platform.html"){
|
||||
await this.getLatelyUpdateTimes()
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -304,7 +304,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,10 +386,10 @@ layout("/layouts/platform.html"){
|
||||
}).then(async () => {
|
||||
const resp = await $.post(loc() + '/clearHistory')
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -473,7 +473,7 @@ layout("/layouts/platform.html"){
|
||||
this.dialogVisible = false
|
||||
this.reset()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -680,7 +680,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.files = JSON.stringify(this.formData.files)
|
||||
const resp = await $.post('/platform/evaluate/apply/saveForm', this.formData)
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
@@ -887,7 +887,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.files = JSON.stringify(this.formData.files)
|
||||
const resp = await $.post('/platform/evaluate/apply/doSubmit', this.formData)
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
|
||||
@@ -268,7 +268,7 @@ layout("/layouts/platform.html"){
|
||||
id
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -280,7 +280,7 @@ layout("/layouts/platform.html"){
|
||||
id
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -296,7 +296,7 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post(loc() + '/doDelete', {id: row.id})
|
||||
this.notifySuccess("删除成功")
|
||||
this.$message.success("删除成功")
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
|
||||
@@ -242,7 +242,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
async doAdjust() {
|
||||
if (!this.afterAdjustCourse) {
|
||||
this.notifyWarning('请选择要调整的' + this.trainType + '!')
|
||||
this.$message.warning('请选择要调整的' + this.trainType + '!')
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -192,7 +192,7 @@ layout("/layouts/platform.html"){
|
||||
async handleUser(userId) {
|
||||
const resp = await $.post(loc() + '/doHandleUser', {userId})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
},
|
||||
|
||||
@@ -459,7 +459,7 @@ layout("/layouts/platform.html"){
|
||||
if ((this.activityName === 0 && a) || (this.activityName === 1 && b) || (this.activityName === 2 && c) || (this.activityName === 3 && d)) {
|
||||
this.activityName++
|
||||
} else {
|
||||
this.notifyWarning("请填写完整")
|
||||
this.$message.warning("请填写完整")
|
||||
}
|
||||
},
|
||||
async doSubmit() {
|
||||
@@ -503,7 +503,7 @@ layout("/layouts/platform.html"){
|
||||
flag: true
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
sublime.jumpPagePjax("/platform/fourOne/activity/applyList")
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
@@ -511,7 +511,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
|
||||
} else {
|
||||
this.notifyWarning("请填写完整再提交")
|
||||
this.$message.warning("请填写完整再提交")
|
||||
}
|
||||
|
||||
|
||||
@@ -526,7 +526,7 @@ layout("/layouts/platform.html"){
|
||||
flag: false
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
sublime.jumpPagePjax("/platform/fourOne/activity/applyList")
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
@@ -621,4 +621,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -262,7 +262,7 @@ layout("/layouts/platform.html"){
|
||||
id: this.id
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -295,7 +295,7 @@ layout("/layouts/platform.html"){
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post(loc() + "/doDelete", {id: data.id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
@@ -311,7 +311,7 @@ layout("/layouts/platform.html"){
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post(loc() + "/doSubmit", {id: data.id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
@@ -328,4 +328,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -187,7 +187,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
async doReview() {
|
||||
if (this.formData.assessGrade === "") {
|
||||
this.notifyWarning("请选择评审等级")
|
||||
this.$message.warning("请选择评审等级")
|
||||
return
|
||||
}
|
||||
const confirm = await this.$confirm('确定要提交吗?', '提示', {
|
||||
@@ -198,7 +198,7 @@ layout("/layouts/platform.html"){
|
||||
if (confirm === "confirm") {
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -218,4 +218,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -190,7 +190,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -210,4 +210,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -178,7 +178,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -196,4 +196,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -178,7 +178,7 @@ layout("/layouts/platform.html"){
|
||||
this.formData.pass = flag
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
} else {
|
||||
@@ -197,4 +197,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -563,7 +563,7 @@ layout("/layouts/platform.html"){
|
||||
if (confirm) {
|
||||
const resp = await $.post(loc() + '/doDelete', {id: id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyError(resp.msg)
|
||||
|
||||
@@ -340,9 +340,9 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.table.clearSelection()
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -345,9 +345,9 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.table.clearSelection()
|
||||
this.doSearch()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,10 +242,10 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/doEditHealthCheckupData", this.editHealthCheckupData)
|
||||
this.exportHealthCheckupDialog = false
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
this.loading = false
|
||||
}
|
||||
@@ -315,4 +315,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -386,9 +386,9 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/doDelete", {id})
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -431,7 +431,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.guava.index()
|
||||
this.deleteRowIds = []
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -475,7 +475,7 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + '/doDelete', {id: row.id})
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.getHonorNum()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -276,4 +276,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -216,7 +216,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.getHonorNum()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
@@ -279,4 +279,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -215,7 +215,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.getHonorNum()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/doReview", this.formData)
|
||||
if (resp.code===0){
|
||||
this.pageData()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyError(resp.msg)
|
||||
@@ -232,4 +232,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -161,23 +161,23 @@ layout("/layouts/platform.html"){
|
||||
|
||||
doFilter() {
|
||||
if (this.startYear == null) {
|
||||
this.notifyWarning('请输入开始年份')
|
||||
this.$message.warning('请输入开始年份')
|
||||
return
|
||||
}
|
||||
if (this.endYear == null) {
|
||||
this.notifyWarning('请输入结束年份')
|
||||
this.$message.warning('请输入结束年份')
|
||||
return
|
||||
}
|
||||
if (parseInt(this.startYear) > parseInt(moment().format('YYYY'))) {
|
||||
this.notifyWarning('开始年份不能大于当前年份')
|
||||
this.$message.warning('开始年份不能大于当前年份')
|
||||
return
|
||||
}
|
||||
if (parseInt(this.endYear) > parseInt(moment().format('YYYY'))) {
|
||||
this.notifyWarning('结束年份不能大于当前年份')
|
||||
this.$message.warning('结束年份不能大于当前年份')
|
||||
return
|
||||
}
|
||||
if (parseInt(this.startYear) > parseInt(this.endYear)) {
|
||||
this.notifyWarning('开始年份不能大于结束年份')
|
||||
this.$message.warning('开始年份不能大于结束年份')
|
||||
return
|
||||
}
|
||||
|
||||
@@ -215,4 +215,4 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -285,11 +285,11 @@ layout("/layouts/platform.html"){
|
||||
if (!valid) return
|
||||
const resp = await $.post(loc() + '/doEditTeacher', this.formData)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.editDialogVisible = false
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -135,16 +135,16 @@
|
||||
this.importLoading = false
|
||||
if (res.code === 0) {
|
||||
this.pageData();
|
||||
this.notifySuccess("导入成功")
|
||||
this.$message.success("导入成功")
|
||||
this.errorInfoData = res.data
|
||||
this.$emit('refresh',null)
|
||||
} else {
|
||||
this.notifyWarning("导入失败")
|
||||
this.$message.warning("导入失败")
|
||||
this.errorInfoData = res.data
|
||||
}
|
||||
},
|
||||
error: (data) => {
|
||||
this.notifyWarning("导入失败")
|
||||
this.$message.warning("导入失败")
|
||||
this.importLoading = false
|
||||
}
|
||||
});
|
||||
|
||||
@@ -184,7 +184,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
window.location.href = '/platform/jdh/db/preselection'
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -340,7 +340,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.dialogVisible = false
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async pageData() {
|
||||
|
||||
@@ -328,7 +328,7 @@ layout("/layouts/platform.html"){
|
||||
}, 100)
|
||||
})
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
initPage() {
|
||||
|
||||
@@ -203,9 +203,9 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -218,4 +218,4 @@ layout("/layouts/platform.html"){
|
||||
</script>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
#-->
|
||||
|
||||
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.pageData()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.addDialogVisible = false
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -570,7 +570,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.dbTableData = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async dbDoSearch() {
|
||||
@@ -595,7 +595,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.dbtList = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async doAdd() {
|
||||
@@ -607,7 +607,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.addDialogVisible = false
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -621,10 +621,10 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/doDelete", {id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.undertakeUnitTree()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -640,10 +640,10 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/fghdoDelete", {id: id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
await this.adminPageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -660,10 +660,10 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/dwdoDelete", {id: id})
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
await this.unitPageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -686,10 +686,10 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/userDoDelete", data)
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.getTzList()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -788,12 +788,12 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/fghdoAdd", data)
|
||||
this.fghSubLoading = false
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.fghDialogVisible = false
|
||||
this.pageData()
|
||||
await this.adminPageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
//添加单位
|
||||
@@ -804,12 +804,12 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/dwdoAdd", data)
|
||||
this.dwSubLoading = false
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.dwDialogVisible = false
|
||||
this.pageData()
|
||||
await this.unitPageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
async undertakeUnitTree() {
|
||||
@@ -823,7 +823,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.adminTableData = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
//该代表团下的组成单位
|
||||
@@ -832,7 +832,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.unitTableData = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
//获取团长副团长
|
||||
@@ -841,7 +841,7 @@ layout("/layouts/platform.html"){
|
||||
if (resp.code === 0) {
|
||||
this.TzTableData = resp.data
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
//添加团长或者副团长
|
||||
@@ -858,9 +858,9 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + "/doAddTz", this.userFormData)
|
||||
if (resp.code === 0) {
|
||||
this.getTzList()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
this.userList = []
|
||||
this.userFormData.userid = ''
|
||||
|
||||
@@ -575,7 +575,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -624,9 +624,9 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
this.cyDialogVisible = false
|
||||
this.cyPageData();
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
this.cyPageData()
|
||||
this.cyFormData.userid = ''
|
||||
@@ -661,7 +661,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData();
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -676,11 +676,11 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/doDelete", {id: id})
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.loadTree(true)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -695,12 +695,12 @@ layout("/layouts/platform.html"){
|
||||
if ("confirm" == a) {
|
||||
const resp = await $.post(loc() + "/doDeleteCy", row)
|
||||
if(resp.code===0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
this.cyPageData()
|
||||
this.loadTree(true)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -442,7 +442,7 @@ layout("/layouts/platform.html"){
|
||||
if(resp.code===0){
|
||||
location.reload();
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
// 添加成功 跳转到申请记录页面
|
||||
//window.location.href = '/platform/jf/activity_bx/reimbursement'
|
||||
@@ -468,7 +468,7 @@ layout("/layouts/platform.html"){
|
||||
this.pageData()
|
||||
this.$refs.guava.index()
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -244,9 +244,9 @@
|
||||
this.subLoading2 = false
|
||||
this.pageData1()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -237,9 +237,9 @@
|
||||
this.subLoading2 = false
|
||||
this.pageData1()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
}else{
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -446,11 +446,11 @@
|
||||
async doSubmit(){
|
||||
const resp = await $.post('/platform/jf/activity_bx/reimbursement/doEdit',{activityBx:JSON.stringify(this.modifyFilesData)})
|
||||
if (resp.code === 0){
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.fileDialog = false
|
||||
this.pageData()
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
toHrefActivity(row){
|
||||
|
||||
@@ -296,9 +296,9 @@
|
||||
this.subLoading2 = false
|
||||
this.pageData1()
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -364,9 +364,9 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.get("/platform/jf/st/fp/reset")
|
||||
if (resp.code === 0) {
|
||||
this.flag = false;
|
||||
this.notifySuccess("操作成功")
|
||||
this.$message.success("操作成功")
|
||||
} else {
|
||||
this.notifyWarning("操作失败")
|
||||
this.$message.warning("操作失败")
|
||||
}
|
||||
this.doSearch()
|
||||
}).catch(() => {
|
||||
@@ -399,9 +399,9 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.get("/platform/jf/st/fp/issue")
|
||||
if (resp.code === 0) {
|
||||
this.flag = true;
|
||||
this.notifySuccess("操作成功")
|
||||
this.$message.success("操作成功")
|
||||
} else {
|
||||
this.notifyWarning("操作失败")
|
||||
this.$message.warning("操作失败")
|
||||
}
|
||||
this.doSearch()
|
||||
}).catch(() => {
|
||||
|
||||
@@ -42,7 +42,7 @@ layout("/layouts/platform.html"){
|
||||
:file-list="files"
|
||||
:limit="1"
|
||||
:on-error="handleError"
|
||||
:on-exceed="()=>{this.notifyWarning('只能上传一个文件')}"
|
||||
:on-exceed="()=>{this.$message.warning('只能上传一个文件')}"
|
||||
:on-remove="(f,fl)=>{fileList = fl;excelTableData=[];}"
|
||||
:on-success="handleSuccess"
|
||||
accept=".xls,.xlsx"
|
||||
@@ -126,7 +126,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
async importData(){
|
||||
if (!this.excelTableData.length) {
|
||||
this.notifyWarning('无数据')
|
||||
this.$message.warning('无数据')
|
||||
return
|
||||
}
|
||||
const confirm = await this.$confirm('您确定导入吗?', '提示', {
|
||||
@@ -145,11 +145,11 @@ layout("/layouts/platform.html"){
|
||||
const resp = await $.post(loc() + '/doImport', {data: JSON.stringify(this.excelTableData)})
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.excelTableData = []
|
||||
this.files = []
|
||||
} else {
|
||||
this.notifyWarning(resp.msg)
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@@ -32,248 +32,268 @@ layout("/layouts/platform.html"){
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
|
||||
<div slot="header" class="clearfix">
|
||||
<span style="color: #409EFF;font-size: 18px"><h3>活动报销</h3></span>
|
||||
<div slot="header" style="display: flex;justify-content: space-between">
|
||||
<div>
|
||||
<span style="color: #409EFF;font-size: 18px"><h3>活动报销</h3></span>
|
||||
</div>
|
||||
<div style="margin: 10px 0">
|
||||
<el-button v-if="editId" @click="window.location.href = '/platform/jf/reimbursement/mine'">返 回</el-button>
|
||||
<el-button type="primary" @click="doSave()">保 存</el-button>
|
||||
<el-button type="primary" @click="doEdit()">提 交</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px">
|
||||
<div style="max-height: calc(100vh - 243px);overflow-y: auto">
|
||||
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" style="width: calc(100% - 20px)">
|
||||
<vi-title title="基础信息"></vi-title>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_name" label="项目名称">
|
||||
<el-input v-model="formData.activity_name" type="text" placeholder="请输入项目名称" maxlength="200" show-word-limit></el-input>
|
||||
<!--<el-autocomplete style="width: 100%"
|
||||
v-model="formData.activity_name"
|
||||
placeholder="请输入内容"
|
||||
@select="handleSelect"
|
||||
@input="activityChange"
|
||||
></el-autocomplete>-->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_id" label="项目名称">
|
||||
<el-autocomplete style="width: 100%"
|
||||
v-model="formData.activity_name"
|
||||
placeholder="请输入内容"
|
||||
@select="handleSelect"
|
||||
@input="activityChange"
|
||||
></el-autocomplete>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_type" label="项目类型">
|
||||
<el-select v-model="formData.activity_type" placeholder="请选择项目" style="width: 100%"
|
||||
@change="getProjectCodeChange">
|
||||
<el-option
|
||||
v-for="item in activityType"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!--<el-col :span="12" v-if="formData.activity_id != null && formData.activity_id !== ''">
|
||||
<el-button @click="openView" type="primary">查看活动详细信息</el-button>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="user_name" label="申请人姓名">
|
||||
<el-input disabled v-model="formData.user_name" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="apply_time" label="申请时间">
|
||||
<el-input disabled v-model="formData.apply_time" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="mobile" label="联系方式">
|
||||
<el-input v-model="formData.mobile" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<!--<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_id" label="活动名称">
|
||||
<el-select v-model="formData.activity_id"
|
||||
style="width: 100%;"
|
||||
|
||||
filterable placeholder="请选择活动">
|
||||
<el-option
|
||||
v-for="item in activityOptions"
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_type" label="项目类型">
|
||||
<el-select v-model="formData.activity_type" placeholder="请选择项目"
|
||||
@change="changeApplyUnit" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in activityType"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
:value="item.code">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!--<el-col :span="12" v-if="formData.activity_id != null && formData.activity_id !== ''">
|
||||
<el-button @click="openView" type="primary">查看活动详细信息</el-button>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="user_name" label="申请人姓名">
|
||||
<el-input disabled v-model="formData.user_name" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<template v-if="formData.activity_type == '40003'">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="clubId" label="申请协会">
|
||||
<el-select v-model="formData.clubId" placeholder="请选择项目"
|
||||
@change="setClub" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in fundsUnitNameOption"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="fundsUnitName" label="申请单位">
|
||||
<el-input readonly v-model="formData.fundsUnitName" type="text" placeholder="请选择项目类型,自动填充"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</template>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="mobile" label="联系方式">
|
||||
<el-input v-model="formData.mobile" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="apply_time" label="申请时间">
|
||||
<el-input disabled v-model="formData.apply_time" type="text"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<!--<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="activity_id" label="活动名称">
|
||||
<el-select v-model="formData.activity_id"
|
||||
style="width: 100%;"
|
||||
|
||||
filterable placeholder="请选择活动">
|
||||
<el-option
|
||||
v-for="item in activityOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>-->
|
||||
|
||||
<el-row :gutter="20">
|
||||
<vi-title title="活动费用预算及报销信息表"></vi-title>
|
||||
<el-form-item label-width="40px" prop="budgets">
|
||||
<span style="color: red">如有收款人请填写收款人、支行名称及报销卡号;如无收款人,请在备注栏中说明报销情况</span>
|
||||
<el-table :data="formData.budgets" border max-height="500" size="mini" style="width: 100%">
|
||||
<el-table-column label="序号" sortable fixed type="index" width="60"></el-table-column>
|
||||
<el-table-column label="科目" fixed prop="category" width="200">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.category'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-select v-model="row.category" filterable allow-create
|
||||
default-first-option placeholder="请选择科目">
|
||||
<el-option
|
||||
v-for="item in categoryOptions"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
||||
<!--<el-input v-model="row.category" style="width: 100%" maxlength="50"
|
||||
placeholder="选择科目"></el-input>-->
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="具体内容" fixed prop="name" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.name'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.name" style="width: 100%" maxlength="500" show-word-limit
|
||||
type="text" placeholder="请填写具体内容"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="类别" prop="type" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.type'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-radio-group v-model="row.type">
|
||||
<el-radio label="个人"></el-radio>
|
||||
<el-radio label="单位"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="金额" prop="actualPrice" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.actualPrice'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="请填写金额" v-model="row.actualPrice"
|
||||
:precision="2" style="width: 100%"
|
||||
:min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收款对象(个人/单位)" prop="username" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.username'">
|
||||
<el-input v-model="row.username" maxlength="50"
|
||||
@input="getCardNumberByPayeeId(row)"
|
||||
placeholder="请输入收款对象"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支行名称" prop="bankName" width="300">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.bankName'">
|
||||
<el-input v-model="row.bankName" maxlength="80"
|
||||
placeholder="请输入支行名称"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="报销卡号" prop="bankCardNum" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0" :prop="'budgets.'+$index+'.bankCardNum'">
|
||||
<el-input type="number" v-model="row.bankCardNum"
|
||||
maxlength="50"
|
||||
placeholder="请输入报销卡号"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" width="400">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.remark'">
|
||||
<el-input v-model="row.remark" maxlength="200"
|
||||
placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" label="操作" width="100">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="formData.budgets.push({})" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button :disabled="formData.budgets.length==1"
|
||||
@click="formData.budgets.splice(scope.$index,1)"
|
||||
size="mini"
|
||||
icon="el-icon-delete"
|
||||
type="danger"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>-->
|
||||
<el-row :gutter="20" v-if="formData.activity_id != null && formData.activity_id !== ''">
|
||||
</el-row>
|
||||
|
||||
<vi-title title="其他报销附件"></vi-title>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12" class="mb25">
|
||||
<el-form-item prop="billFiles" label="发票">
|
||||
<file-upload :files.sync="formData.billFiles"
|
||||
:max="100"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" class="mb25">
|
||||
<el-form-item prop="photoFiles" label="活动报道照片/总结/链接">
|
||||
<file-upload :files.sync="formData.photoFiles"
|
||||
:max="100"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="otherFiles" label="奖品/纪念品/服装/道具等活动人员名单">
|
||||
<file-upload :files.sync="formData.otherFiles"
|
||||
:max="100"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<vi-title title="签字"></vi-title>
|
||||
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20" v-if="formData.activity_id != null && formData.activity_id !== ''">
|
||||
<vi-title title="活动费用预算及报销信息表"></vi-title>
|
||||
<el-form-item label-width="40px">
|
||||
<span style="color: red">如有收款人请填写收款人、支行名称及报销卡号;如无收款人,请在备注栏中说明报销情况</span>
|
||||
<el-table :data="formData.budgets" border max-height="500" size="mini" style="width: 100%">
|
||||
<el-table-column label="序号" sortable fixed type="index" width="60"></el-table-column>
|
||||
<el-table-column label="费用项目名称" fixed prop="name" width="200">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.name'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input v-model="row.name" style="width: 100%" maxlength="50"
|
||||
placeholder="请输入费用项目名称"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预算费用" prop="budgetPrice" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.budgetPrice'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="预算费用" v-model="row.budgetPrice"
|
||||
:precision="2" style="width: 100%"
|
||||
:min="1"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际费用" prop="actualPrice" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.actualPrice'"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<el-input-number placeholder="请填写实际费用" v-model="row.actualPrice"
|
||||
:precision="2" style="width: 100%"
|
||||
:min="0"></el-input-number>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="收款人" prop="username" width="200">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.username'">
|
||||
<el-input v-model="row.username" maxlength="50"
|
||||
@input="getCardNumberByPayeeId(row)"
|
||||
placeholder="请输入收款人"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支行名称" prop="bankName" width="300">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.bankName'">
|
||||
<el-input v-model="row.bankName" maxlength="80"
|
||||
placeholder="请输入支行名称"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="报销卡号" prop="bankCardNum" width="250">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0" :prop="'budgets.'+$index+'.bankCardNum'">
|
||||
<el-input type="number" v-model="row.bankCardNum"
|
||||
maxlength="50"
|
||||
placeholder="请输入报销卡号"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" prop="remark" width="400">
|
||||
<template scope="{row,$index}">
|
||||
<el-form-item label-width="0"
|
||||
:prop="'budgets.'+$index+'.remark'">
|
||||
<el-input v-model="row.remark" maxlength="200"
|
||||
placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" label="操作" width="100">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="formData.budgets.push({})" type="primary" size="mini">添加</el-button>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-button :disabled="formData.budgets.length==1"
|
||||
@click="formData.budgets.splice(scope.$index,1)"
|
||||
size="mini"
|
||||
icon="el-icon-delete"
|
||||
type="danger"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-form-item label="签字" prop="user_signature">
|
||||
<sign :is_value_base64="false" :qz.sync="formData.user_signature"
|
||||
prefix="reimbursement" ref="sign"></sign>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
|
||||
<vi-title title="其他报销附件"></vi-title>
|
||||
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12" class="mb25">
|
||||
<el-form-item prop="billFiles" label="发票">
|
||||
<file-upload :files.sync="formData.billFiles"
|
||||
:max="100"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" class="mb25">
|
||||
<el-form-item prop="photoFiles" label="活动报道照片/总结/链接">
|
||||
<file-upload :files.sync="formData.photoFiles"
|
||||
:max="100"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="otherFiles" label="奖品/纪念品/服装/道具等活动人员名单">
|
||||
<file-upload :files.sync="formData.otherFiles"
|
||||
:max="100"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']"
|
||||
card></file-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!--<el-divider content-position="left" class="dia"><span style="color: #3ea1ec;">新闻稿件</span>
|
||||
</el-divider>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="newsRemark" label="新闻稿件说明">
|
||||
<el-input v-model="formData.newsRemark" type="textarea" rows="4"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :lg="24" :sm="24">
|
||||
<el-form-item label="图片上传" prop="picFiles">
|
||||
<file-upload :files.sync="formData.picFiles" card :max="10"
|
||||
:type="['jpg', 'png', 'jpeg']">
|
||||
<template #el-upload__tip>
|
||||
</template>
|
||||
</file-upload>
|
||||
<div class="el-upload__tip">请上传jpg、png、jpeg格式的图片,最多不超过10张</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :lg="24" :sm="24">
|
||||
<el-form-item label="附件上传" prop="newsFiles">
|
||||
<file-upload :files.sync="formData.newsFiles" card :max="10"
|
||||
:type="['doc','docx','xls','xlsx','pdf','ppt','mp4', 'jpg', 'png', 'jpeg']">
|
||||
<template #el-upload__tip>
|
||||
</template>
|
||||
</file-upload>
|
||||
<div class="el-upload__tip">可上传照片、视频、文档等资料,视频只能上传MP4格式</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>-->
|
||||
|
||||
<vi-title title="签字"></vi-title>
|
||||
|
||||
<el-form-item label="签字" prop="sign">
|
||||
<sign prefix="medicalAid" :qz.sync="formData.sign"></sign>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div style="float: right;margin: 20px 0">
|
||||
<el-button v-if="editId" @click="window.location.href = '/platform/jf/reimbursement/mine'">返 回</el-button>
|
||||
<el-button type="primary" @click="doSave()">保 存</el-button>
|
||||
<el-button type="primary" @click="doEdit()">提 交</el-button>
|
||||
</div>
|
||||
@@ -315,25 +335,16 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
<script>
|
||||
/*function validateArrayItems(arr) {
|
||||
/!*return arr.every(item => {
|
||||
for (const key in item) {
|
||||
if (!key=='remark' && (item[key] === null || item[key] === '')) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
});*!/
|
||||
}*/
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
editId: '',
|
||||
user: {},
|
||||
fundsUnitNameOption: [],
|
||||
selectLoading: false,
|
||||
userList: [],
|
||||
delNotesList: [],
|
||||
tabLoading: false,
|
||||
tableData: [],
|
||||
projectType: [],
|
||||
@@ -346,10 +357,13 @@ layout("/layouts/platform.html"){
|
||||
year: new Date().getFullYear() + ""
|
||||
},
|
||||
formRules: {
|
||||
id: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
activity_number: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
// billFiles: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
// photoFiles: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
activity_name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
activity_type: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
fundsUnitName: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
user_name: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
clubId: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
mobile: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
user_signature: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||||
},
|
||||
activity: [],
|
||||
activeNames: [],
|
||||
@@ -357,18 +371,35 @@ layout("/layouts/platform.html"){
|
||||
dialogVisible: false,
|
||||
|
||||
activityDialogVisible: false,
|
||||
|
||||
categoryOptions: [
|
||||
{code: '办公费', name: '办公费'},
|
||||
{code: '邮寄费', name: '邮寄费'},
|
||||
{code: '交通费', name: '交通费'},
|
||||
{code: '材料费', name: '材料费'},
|
||||
]
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'search': httpVueLoader('/components/activityBx/ActivityBxSearch.vue'),
|
||||
'file-upload': httpVueLoader('/components/plugins/FileUpload.vue'),
|
||||
'activity-bx-info': httpVueLoader('/components/activityBx/ActivityBxInfo.vue?v=' + new Date().getTime()),
|
||||
'sign': httpVueLoader('/components/sign/sign.vue?v=2.0.1'),
|
||||
'tissue-info': httpVueLoader('/components/activity/school/tissueInfo.vue'),
|
||||
},
|
||||
methods: {
|
||||
handleSelect(){
|
||||
|
||||
},
|
||||
setClub(val){
|
||||
const club = this.fundsUnitNameOption.find(v => v.id === val)
|
||||
this.$set(this.formData, "fundsUnitName", club ? club.name : null)
|
||||
},
|
||||
changeApplyUnit(val){
|
||||
console.log(val)
|
||||
if (val === '40001') {
|
||||
this.$set(this.formData, "fundsUnitName", '校工会')
|
||||
} else if (val === '40002') {
|
||||
this.$set(this.formData, "fundsUnitName", this.user.union.unionname)
|
||||
}
|
||||
},
|
||||
openView() {
|
||||
this.activityDialogVisible = true
|
||||
@@ -417,10 +448,6 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
this.$set(this.formData, "activity_money", num)
|
||||
},
|
||||
delNotesItem(scope) {
|
||||
this.delNotesList.push(scope.row.id)
|
||||
this.formData.goods.splice(scope.$index, 1)
|
||||
},
|
||||
async activityChange(id) {
|
||||
const {code, data} = await $.get('/platform/jf/reimbursement/apply/findOne', {id: id})
|
||||
if (code === 0) {
|
||||
@@ -428,32 +455,21 @@ layout("/layouts/platform.html"){
|
||||
this.formData.billFiles = []
|
||||
this.formData.photoFiles = []
|
||||
this.formData.otherFiles = []
|
||||
this.formData.picFiles = []
|
||||
this.formData.newsFiles = []
|
||||
this.formData.files = []
|
||||
this.formData.goods = []
|
||||
this.formData = data
|
||||
// this.formData.goods = data.Goods
|
||||
if (data.files && data.files.length > 0) this.formData.files = JSON.parse(data.files)
|
||||
if (data.billFiles && data.billFiles.length > 0) this.formData.billFiles = JSON.parse(data.billFiles)
|
||||
if (data.photoFiles && data.photoFiles.length > 0) this.formData.photoFiles = JSON.parse(data.photoFiles)
|
||||
if (data.otherFiles && data.otherFiles.length > 0) this.formData.otherFiles = JSON.parse(data.otherFiles)
|
||||
if (data.picFiles && data.picFiles.length > 0) this.formData.picFiles = JSON.parse(data.picFiles)
|
||||
if (data.newsFiles && data.newsFiles.length > 0) this.formData.newsFiles = JSON.parse(data.newsFiles)
|
||||
if (data.budgets && data.budgets.length > 0) {
|
||||
this.formData.budgets = JSON.parse(data.budgets)
|
||||
this.formData.budgets.forEach(v => {
|
||||
this.remoteMethod(v.loginName)
|
||||
})
|
||||
} else {
|
||||
this.formData.budgets = [{}]
|
||||
}
|
||||
// if (data.budgets && data.budgets.length > 0) {
|
||||
// debugger
|
||||
// this.formData.budgets = JSON.parse(data.budgets)
|
||||
// } else {
|
||||
// this.formData.budgets = [{}]
|
||||
// }
|
||||
}
|
||||
},
|
||||
doSave() {
|
||||
if (!this.formData.activity_id) {
|
||||
this.$message.warning("请选择活动后才能保存")
|
||||
}
|
||||
// 确定要保存吗?保存后可在【我的报销】页面选中设置按钮的【编辑】按钮进行修改或提交
|
||||
this.$confirm('确定要保存吗?保存后可在【我的报销】页面选中设置按钮的【编辑】按钮进行修改或提交', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
@@ -468,15 +484,12 @@ layout("/layouts/platform.html"){
|
||||
});
|
||||
const resp = await $.post("/platform/jf/reimbursement/apply/doSave", {
|
||||
activityBx: JSON.stringify(this.formData),
|
||||
// sign: this.formData.sign,
|
||||
})
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.pageData()
|
||||
this.$message.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
window.location.href = '/platform/jf/reimbursement/mine'
|
||||
})
|
||||
window.location.href = '/platform/jf/reimbursement/mine'
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
@@ -506,14 +519,11 @@ layout("/layouts/platform.html"){
|
||||
});
|
||||
const resp = await $.post("/platform/jf/reimbursement/apply/doEdit", {
|
||||
activityBx: JSON.stringify(this.formData),
|
||||
sign: this.formData.sign,
|
||||
})
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg)
|
||||
setTimeout(() => {
|
||||
window.location.href = '/platform/jf/reimbursement/mine'
|
||||
}, 500)
|
||||
window.location.href = '/platform/jf/reimbursement/mine'
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
@@ -522,9 +532,18 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
async init() {
|
||||
this.delNotesList = []
|
||||
this.projectType = await getActivityTwoLevelType("50000")
|
||||
// this.projectType = await getActivityTwoLevelType("50000")
|
||||
this.activityType = await getActivityTwoLevelType("40000")
|
||||
this.user = JSON.parse(window.sessionStorage.getItem('user'))
|
||||
this.formData = {
|
||||
apply_type: 2,
|
||||
budgets: [{}],
|
||||
files: [],
|
||||
activity_money: null,
|
||||
user_name: this.user.username,
|
||||
mobile: this.user.mobile,
|
||||
apply_time: moment().format('YYYY-MM-DD'),
|
||||
}
|
||||
},
|
||||
async getActivityReimbursementByUser() {
|
||||
const {code, data} = await $.get('/platform/jf/reimbursement/apply/getActivityReimbursementByUser');
|
||||
@@ -545,8 +564,9 @@ layout("/layouts/platform.html"){
|
||||
this.init()
|
||||
await this.getActivityReimbursementByUser()
|
||||
const id = GetQueryString('id')
|
||||
if (id != null && id !== '') {
|
||||
//this.formData.id = id
|
||||
this.editId = id
|
||||
if (id) {
|
||||
this.formData.id = id
|
||||
await this.activityChange(id);
|
||||
}
|
||||
await this.getUserClub();
|
||||
|
||||
@@ -144,7 +144,7 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="auditSign" label="签  字">
|
||||
<sign prefix="medicalAid" :qz.sync="formData.auditSign"></sign>
|
||||
<sign prefix="medicalAid" :qz.sync="formData.auditSign" :is_value_base64="false"></sign>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
@@ -182,7 +182,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'bxr_loginname', label: '申请人工号', sortable: true},
|
||||
{prop: 'clubName', label: '所属协会', sortable: true},
|
||||
{prop: 'activity_type', label: '活动主体类型', sortable: true},
|
||||
{prop: 'absName', label: '活动项目类型', sortable: true},
|
||||
// {prop: 'absName', label: '活动项目类型', sortable: true},
|
||||
{prop: 'reimbursement_apply_time', label: '申请时间', sortable: true},
|
||||
{prop: 'reimbursement_state_id', label: '申请状态', sortable: true},
|
||||
],
|
||||
|
||||
@@ -31,13 +31,12 @@ layout("/layouts/platform.html"){
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
@@ -134,26 +133,30 @@ layout("/layouts/platform.html"){
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="[999,1005,1015,1025,1045].includes(row.reimbursement_state_id)"
|
||||
:command="{type:'edit',data:row}">
|
||||
编辑
|
||||
重新编辑
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="[1000,1010].includes(row.reimbursement_state_id)"
|
||||
:command="{type:'back',data:row}">
|
||||
撤回
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="${@shiro.hasRole('sysadmin')}"
|
||||
:command="{type:'delete',data:row}">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
v-if="[1020].includes(row.reimbursement_state_id)&&${!@shiro.hasRole('sysadmin')}"
|
||||
v-if="[999].includes(row.reimbursement_state_id)&&${!@shiro.hasRole('sysadmin')}"
|
||||
:command="{type:'delete',data:row}">
|
||||
删除
|
||||
</el-dropdown-item>
|
||||
<!--<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:1}">
|
||||
导出申请方案表
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:2}">
|
||||
<!--<el-dropdown-item :command="{type:'exportWwj',data:row,apply_type:2}">
|
||||
导出活动报销凭证
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item :command="{type:'exportJoinUser',data:row}">
|
||||
导出活动参与人员
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-item>-->
|
||||
<el-dropdown-item :command="{type:'exportFiles',data:row,exportType:'billFiles'}">
|
||||
导出发票
|
||||
</el-dropdown-item>
|
||||
@@ -216,6 +219,8 @@ layout("/layouts/platform.html"){
|
||||
this.exportAllFiles(data,exportType);
|
||||
} else if (type === 'exportJoinUser'){
|
||||
this.exportJoinUser(data);
|
||||
} else if (type === 'back'){
|
||||
this.doBack(data.id);
|
||||
}
|
||||
},
|
||||
exportJoinUser(row){
|
||||
@@ -228,6 +233,22 @@ layout("/layouts/platform.html"){
|
||||
location.href = '/platform/jf/reimbursement/apply?id=' + data.id
|
||||
// window.open('/platform/jf/reimbursement/apply?id=' + data.id)
|
||||
},
|
||||
async doBack(id){
|
||||
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
if (confirm === 'confirm') {
|
||||
const resp = await $.post('/platform/jf/reimbursement/mine/doBack', {id: id})
|
||||
if (resp.code === 0) {
|
||||
this.pageData();
|
||||
this.$message.success(resp.msg)
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
async doDelete(data){
|
||||
const confirm = await this.$confirm('您确定要删除吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
|
||||
@@ -31,13 +31,12 @@ layout("/layouts/platform.html"){
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
@@ -140,7 +139,7 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
|
||||
<template #edit>
|
||||
<activity-bx-info ref="schoolChairmanAudit" :handle="true" label="校工会主席审核(报销)" :panes="[7]">
|
||||
<activity-bx-info ref="schoolChairmanAudit" :handle="true" label="校工会主席审核" :panes="[7]">
|
||||
<template #handle>
|
||||
<el-form :model="formData" ref="auditForm" :rules="formRules" label-position="right"
|
||||
style="padding: 20px 0"
|
||||
@@ -166,7 +165,7 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="auditSign" label="签  字">
|
||||
<sign prefix="medicalAid" :qz.sync="formData.auditSign"></sign>
|
||||
<sign prefix="medicalAid" :qz.sync="formData.auditSign" :is_value_base64="false"></sign>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
@@ -208,7 +207,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'clubName', label: '所属协会', sortable: true},
|
||||
{prop: 'activity_type', label: '活动主体类型', sortable: true},
|
||||
{prop: 'absName', label: '活动项目类型', sortable: true},
|
||||
// {prop: 'absName', label: '活动项目类型', sortable: true},
|
||||
{prop: 'reimbursement_apply_time', label: '申请时间', sortable: true},
|
||||
{prop: 'reimbursement_state_id', label: '申请状态', sortable: true},
|
||||
],
|
||||
@@ -264,8 +263,10 @@ layout("/layouts/platform.html"){
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
} else {
|
||||
this.$message.warning(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -31,13 +31,12 @@ layout("/layouts/platform.html"){
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-item">
|
||||
<div class="search-item" v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}">
|
||||
<div class="search-item-label">所属工会:</div>
|
||||
<div class="search-item-option">
|
||||
<el-select placeholder="所属工会" v-model="pageForm.unionId" style="width: 100%;"
|
||||
clearable="true"
|
||||
@change="flushUnits" @clear="flushUnits"
|
||||
v-if="${@shiro.hasRole('sysadmin')||@shiro.hasRole('A06')||@shiro.hasRole('H03')}"
|
||||
filterable="true">
|
||||
<el-option v-for="item in unions" :label="item.unionname" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
@@ -166,7 +165,7 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="auditSign" label="签  字">
|
||||
<sign prefix="medicalAid" :qz.sync="formData.auditSign"></sign>
|
||||
<sign prefix="medicalAid" :qz.sync="formData.auditSign" :is_value_base64="false"></sign>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
@@ -208,7 +207,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'unitname', label: '所属单位', sortable: true},
|
||||
{prop: 'clubName', label: '所属协会', sortable: true},
|
||||
{prop: 'activity_type', label: '活动主体类型', sortable: true},
|
||||
{prop: 'absName', label: '活动项目类型', sortable: true},
|
||||
// {prop: 'absName', label: '活动项目类型', sortable: true},
|
||||
{prop: 'reimbursement_apply_time', label: '申请时间', sortable: true},
|
||||
{prop: 'reimbursement_state_id', label: '申请状态', sortable: true},
|
||||
],
|
||||
@@ -264,7 +263,7 @@ layout("/layouts/platform.html"){
|
||||
loading.close()
|
||||
if (resp.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.notifySuccess(resp.msg)
|
||||
this.$message.success(resp.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user