commit
This commit is contained in:
@@ -30,7 +30,7 @@ public class CspProcessor extends AbstractProcessor {
|
|||||||
"style-src * 'unsafe-inline' data:; " +
|
"style-src * 'unsafe-inline' data:; " +
|
||||||
"img-src 'self' data: https:; " +
|
"img-src 'self' data: https:; " +
|
||||||
"font-src * data: https:; " +
|
"font-src * data: https:; " +
|
||||||
"connect-src 'self' https:; " +
|
"connect-src 'self' https: webpack:; " +
|
||||||
"frame-ancestors 'self'; " +
|
"frame-ancestors 'self'; " +
|
||||||
"object-src 'self';";
|
"object-src 'self';";
|
||||||
|
|
||||||
|
|||||||
+205
-201
@@ -37,6 +37,7 @@ import org.nutz.dao.Cnd;
|
|||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
import org.nutz.dao.Sqls;
|
||||||
import org.nutz.dao.sql.Sql;
|
import org.nutz.dao.sql.Sql;
|
||||||
|
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
@@ -65,232 +66,235 @@ import java.util.*;
|
|||||||
@At("/platform/activityDeclare/mine")
|
@At("/platform/activityDeclare/mine")
|
||||||
public class ActivityDeclareMineController {
|
public class ActivityDeclareMineController {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
private Dao dao;
|
||||||
@Inject
|
@Inject
|
||||||
private FlowEngine flowEngine;
|
private FlowEngine flowEngine;
|
||||||
@Inject
|
@Inject
|
||||||
private SysOfficeTemplateUtil sysOfficeTemplateUtil;
|
private SysOfficeTemplateUtil sysOfficeTemplateUtil;
|
||||||
@Inject
|
@Inject
|
||||||
private ActivityDeclareService activityDeclareService;
|
private ActivityDeclareService activityDeclareService;
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@SaCheckPermission("activityDeclare.mine")
|
@SaCheckPermission("activityDeclare.mine")
|
||||||
@Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html")
|
@Ok("beetl:/platform/zhgh/activity/declarereimbursement/declare/mine/index.html")
|
||||||
public void index() {
|
public void index() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("活动申报,我的申请列表")
|
@ApiOperation("活动申报,我的申请列表")
|
||||||
@SaCheckPermission("activityDeclare.mine")
|
@SaCheckPermission("activityDeclare.mine")
|
||||||
public Result pageData(CommonPageParam pageParam) {
|
public Result pageData(CommonPageParam pageParam) {
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
info.id,
|
info.id,
|
||||||
info.userName,
|
info.userName,
|
||||||
info.mobile,
|
info.mobile,
|
||||||
info.loginName,
|
info.loginName,
|
||||||
info.applyTime,
|
info.applyTime,
|
||||||
info.activityName,
|
info.activityName,
|
||||||
info.activityAddress,
|
info.activityAddress,
|
||||||
info.planStartTime,
|
info.planStartTime,
|
||||||
info.planEndTime,
|
info.planEndTime,
|
||||||
info.declareUnitName,
|
info.declareUnitName,
|
||||||
info.activityType,
|
info.activityType,
|
||||||
info.activityContent,
|
info.activityContent,
|
||||||
info.activityNumber,
|
info.activityNumber,
|
||||||
ins.id AS instanceId,
|
ins.id AS instanceId,
|
||||||
ins.businessNo,
|
ins.businessNo,
|
||||||
ins.state instanceState,
|
ins.state instanceState,
|
||||||
ins.variable instanceVariable,
|
ins.variable instanceVariable,
|
||||||
ins.processDefineId instanceProcessDefineId,
|
ins.processDefineId instanceProcessDefineId,
|
||||||
t.id taskId,
|
t.id taskId,
|
||||||
t.taskName AS taskKey,
|
t.taskName AS taskKey,
|
||||||
t.displayName taskName,
|
t.displayName taskName,
|
||||||
t.taskType,
|
t.taskType,
|
||||||
t.performType taskPerformType,
|
t.performType taskPerformType,
|
||||||
t.taskState,
|
t.taskState,
|
||||||
t.finishTime,
|
t.finishTime,
|
||||||
t.taskParentId,
|
t.taskParentId,
|
||||||
t.variable taskVariable,
|
t.variable taskVariable,
|
||||||
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
|
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
|
||||||
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId
|
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId
|
||||||
FROM
|
FROM
|
||||||
activity_declare_info info
|
activity_declare_info info
|
||||||
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
|
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
|
||||||
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
|
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
|
||||||
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
|
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
|
||||||
$condition
|
$condition
|
||||||
""");
|
""");
|
||||||
Cnd cnd = Cnd.NEW();
|
Cnd cnd = Cnd.NEW();
|
||||||
pageParam.buildSearch(cnd, "info.");
|
pageParam.buildSearch(cnd, "info.");
|
||||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) {
|
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) {
|
||||||
if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
|
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||||
cnd.and("info.unionId", "=", SecurityUtil.getUnionId());
|
if (AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_WENTI_SPORTS.name())) {
|
||||||
} else {
|
group.or("info.unionId", "=", SecurityUtil.getUnionId());
|
||||||
cnd.and("info.userId", "=", SecurityUtil.getUserId());
|
}
|
||||||
}
|
if (AuthUtil.hasRole(RoleConstant.CLUB_PRESIDENT.name(), RoleConstant.CLUB_OPERATOR.name())) {
|
||||||
}
|
group.or("info.userId", "=", SecurityUtil.getUserId());
|
||||||
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
|
}
|
||||||
cnd.desc("info.applyTime");
|
cnd.and(group);
|
||||||
} else {
|
}
|
||||||
cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy()));
|
if (StrUtil.isAllBlank(pageParam.getPageOrderName(), pageParam.getPageOrderBy())) {
|
||||||
}
|
cnd.desc("info.applyTime");
|
||||||
sql.setCondition(cnd);
|
} else {
|
||||||
Pagination<NutMap> pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql);
|
cnd.orderBy("info." + pageParam.getPageOrderName(), PageUtil.getOrder(pageParam.getPageOrderBy()));
|
||||||
return Result.success().addData(pagination);
|
}
|
||||||
}
|
sql.setCondition(cnd);
|
||||||
|
Pagination<NutMap> pagination = activityDeclareService.listPageMap(pageParam.getPageNumber(), pageParam.getPageSize(), sql);
|
||||||
|
return Result.success().addData(pagination);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("活动申报,查看活动申报")
|
@ApiOperation("活动申报,查看活动申报")
|
||||||
@SaCheckPermission("activityDeclare")
|
@SaCheckPermission("activityDeclare")
|
||||||
public Result findOne(@Valid String id) {
|
public Result findOne(@Valid String id) {
|
||||||
ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id);
|
ActivityDeclareInfo info = dao.fetch(ActivityDeclareInfo.class, id);
|
||||||
return Result.success().addData(info);
|
return Result.success().addData(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@ApiOperation("删除活动申报")
|
@ApiOperation("删除活动申报")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
@SaCheckPermission("activityDeclare.mine")
|
@SaCheckPermission("activityDeclare.mine")
|
||||||
@SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}")
|
@SLog(tag = "活动申报", msg = "删除活动申报id: ${args[0]}")
|
||||||
public Result onDelete(@Valid String id) {
|
public Result onDelete(@Valid String id) {
|
||||||
dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id));
|
dao.clear(ActivityDeclareInfo.class, Cnd.where("id", "=", id));
|
||||||
// 删除流程相关
|
// 删除流程相关
|
||||||
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
|
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
|
||||||
|
|
||||||
// 如果有报销的流程,也一并删除
|
// 如果有报销的流程,也一并删除
|
||||||
ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id));
|
ActivityReimbursementInfo reimbursementInfo = dao.fetch(ActivityReimbursementInfo.class, Cnd.where("declareId", "=", id));
|
||||||
if (Lang.isNotEmpty(reimbursementInfo)) {
|
if (Lang.isNotEmpty(reimbursementInfo)) {
|
||||||
dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId()));
|
dao.clear(ActivityReimbursementInfo.class, Cnd.where("id", "=", reimbursementInfo.getId()));
|
||||||
// 删除流程相关
|
// 删除流程相关
|
||||||
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId());
|
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(reimbursementInfo.getId());
|
||||||
}
|
}
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@At
|
@At
|
||||||
@Ok("void")
|
@Ok("void")
|
||||||
@SaCheckPermission("activityDeclare.mine")
|
@SaCheckPermission("activityDeclare.mine")
|
||||||
@SLog(tag = "活动申报", msg = "导出活动申报表")
|
@SLog(tag = "活动申报", msg = "导出活动申报表")
|
||||||
public void doExportDeclare(@Valid String id, HttpServletResponse response) {
|
public void doExportDeclare(@Valid String id, HttpServletResponse response) {
|
||||||
HashMap<String, Object> docData = new HashMap<>();
|
HashMap<String, Object> docData = new HashMap<>();
|
||||||
|
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
info.*,
|
info.*,
|
||||||
ins.id AS instanceId
|
ins.id AS instanceId
|
||||||
FROM
|
FROM
|
||||||
`activity_declare_info` info
|
`activity_declare_info` info
|
||||||
LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id
|
LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id
|
||||||
WHERE
|
WHERE
|
||||||
ins.state = 20 AND info.id = @id
|
ins.state = 20 AND info.id = @id
|
||||||
""").setParam("id", id);
|
""").setParam("id", id);
|
||||||
sql.setCallback(Sqls.callback.map());
|
sql.setCallback(Sqls.callback.map());
|
||||||
dao.execute(sql);
|
dao.execute(sql);
|
||||||
NutMap info = (NutMap) sql.getResult();
|
NutMap info = (NutMap) sql.getResult();
|
||||||
|
|
||||||
String activityContent = info.getString("activityContent");
|
String activityContent = info.getString("activityContent");
|
||||||
info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent));
|
info.put("activityContent", sysOfficeTemplateUtil.convertRichTextToDocText(activityContent));
|
||||||
|
|
||||||
docData.put("schoolName", Globals.AppName);
|
docData.put("schoolName", Globals.AppName);
|
||||||
docData.put("info", info);
|
docData.put("info", info);
|
||||||
|
|
||||||
List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
|
List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
|
||||||
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null);
|
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null);
|
||||||
for (ProcessTask doneTask : doneTaskList) {
|
for (ProcessTask doneTask : doneTaskList) {
|
||||||
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
|
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
|
||||||
doneTaskVos.add(taskVO);
|
doneTaskVos.add(taskVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分工会审核
|
// 分工会审核
|
||||||
doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName()))
|
doneTaskVos.stream().filter(task -> "分工会审核".equals(task.getDisplayName()))
|
||||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||||
.ifPresent(v -> {
|
.ifPresent(v -> {
|
||||||
Dict taskFormData = v.getTaskFormData();
|
Dict taskFormData = v.getTaskFormData();
|
||||||
HashMap<String, Object> approval = new HashMap<>();
|
HashMap<String, Object> approval = new HashMap<>();
|
||||||
|
|
||||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||||
}
|
}
|
||||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||||
docData.put("fgh", approval);
|
docData.put("fgh", approval);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 协会负责人审核
|
// 协会负责人审核
|
||||||
doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName()))
|
doneTaskVos.stream().filter(task -> "协会负责人审核".equals(task.getDisplayName()))
|
||||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||||
.ifPresent(v -> {
|
.ifPresent(v -> {
|
||||||
Dict taskFormData = v.getTaskFormData();
|
Dict taskFormData = v.getTaskFormData();
|
||||||
HashMap<String, Object> approval = new HashMap<>();
|
HashMap<String, Object> approval = new HashMap<>();
|
||||||
|
|
||||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||||
}
|
}
|
||||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||||
docData.put("xh", approval);
|
docData.put("xh", approval);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 校工会负责人审核
|
// 校工会负责人审核
|
||||||
doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName()))
|
doneTaskVos.stream().filter(task -> "校工会负责人审核".equals(task.getDisplayName()))
|
||||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||||
.ifPresent(v -> {
|
.ifPresent(v -> {
|
||||||
Dict taskFormData = v.getTaskFormData();
|
Dict taskFormData = v.getTaskFormData();
|
||||||
HashMap<String, Object> approval = new HashMap<>();
|
HashMap<String, Object> approval = new HashMap<>();
|
||||||
|
|
||||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||||
}
|
}
|
||||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||||
docData.put("xfzr", approval);
|
docData.put("xfzr", approval);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 校工会主席审核
|
// 校工会主席审核
|
||||||
doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName()))
|
doneTaskVos.stream().filter(task -> "校工会主席审核".equals(task.getDisplayName()))
|
||||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||||
.ifPresent(v -> {
|
.ifPresent(v -> {
|
||||||
Dict taskFormData = v.getTaskFormData();
|
Dict taskFormData = v.getTaskFormData();
|
||||||
HashMap<String, Object> approval = new HashMap<>();
|
HashMap<String, Object> approval = new HashMap<>();
|
||||||
|
|
||||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||||
}
|
}
|
||||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||||
docData.put("xzx", approval);
|
docData.put("xzx", approval);
|
||||||
});
|
});
|
||||||
|
|
||||||
String budgetsStr = info.getString("budgets");
|
String budgetsStr = info.getString("budgets");
|
||||||
List<ActivityBudgetVO> list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class);
|
List<ActivityBudgetVO> list = JSONUtil.parseArray(budgetsStr).toList(ActivityBudgetVO.class);
|
||||||
for (int i = 0; i < list.size(); i++) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
list.get(i).setRanking(i + 1);
|
list.get(i).setRanking(i + 1);
|
||||||
}
|
}
|
||||||
docData.put("budgets", list);
|
docData.put("budgets", list);
|
||||||
|
|
||||||
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
|
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
|
||||||
Configure config = Configure.builder()
|
Configure config = Configure.builder()
|
||||||
.bind("budgets", policy)
|
.bind("budgets", policy)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
String fileName = Globals.AppName + "【" + info.getString("activityName") + "】申报表.docx";
|
String fileName = Globals.AppName + "【" + info.getString("activityName") + "】申报表.docx";
|
||||||
|
|
||||||
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
|
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
|
||||||
XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream);
|
XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("activity_declare"), config).render(docData).writeAndClose(byteArrayOutputStream);
|
||||||
CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response);
|
CommonDownloadUtil.download(fileName, byteArrayOutputStream.toByteArray(), response);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage());
|
log.error("活动申报表导出失败,id:{},错误信息:{}", id, e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,15 +67,15 @@ layout("/layouts/v4/baseLayout.html"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
.apps-header {
|
.apps-header {
|
||||||
padding: 0 0 20px 0;
|
padding: 0 0 10px 0;
|
||||||
border-bottom: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-search-container {
|
.apps-search-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
/*margin-bottom: 20px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-search {
|
.apps-search {
|
||||||
@@ -103,13 +103,16 @@ layout("/layouts/v4/baseLayout.html"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
.apps-filter {
|
.apps-filter {
|
||||||
margin-top: 20px;
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-filter-title {
|
.apps-filter-title {
|
||||||
color: #666;
|
color: #666;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-filter-tags {
|
.apps-filter-tags {
|
||||||
@@ -356,20 +359,20 @@ layout("/layouts/v4/baseLayout.html"){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 字母过滤 -->
|
<!-- 字母过滤 -->
|
||||||
<!-- <div class="apps-filter">-->
|
<div class="apps-filter">
|
||||||
<!-- <div class="apps-filter-title">首字母:</div>-->
|
<div class="apps-filter-title">首字母:</div>
|
||||||
<!-- <div class="apps-filter-tags alphabet-filter">-->
|
<div class="apps-filter-tags alphabet-filter">
|
||||||
<!-- <div :class="['filter-tag', activeAlphabet === '' ? 'active' : '']" @click="changeAlphabet('')">全部</div>-->
|
<div :class="['filter-tag', activeAlphabet === '' ? 'active' : '']" @click="changeAlphabet('')">全部</div>
|
||||||
<!-- <div-->
|
<div
|
||||||
<!-- v-for="letter in alphabets"-->
|
v-for="letter in alphabets"
|
||||||
<!-- :key="letter"-->
|
:key="letter"
|
||||||
<!-- :class="['alphabet-item', activeAlphabet === letter ? 'active' : '']"-->
|
:class="['alphabet-item', activeAlphabet === letter ? 'active' : '']"
|
||||||
<!-- @click="changeAlphabet(letter)"-->
|
@click="changeAlphabet(letter)"
|
||||||
<!-- >-->
|
>
|
||||||
<!-- {{ letter }}-->
|
{{ letter }}
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 应用网格 -->
|
<!-- 应用网格 -->
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
<script src="https://vxeui.com/umd/xe-utils@3.5.30/dist/xe-utils.umd.min.js"></script>
|
<script src="https://vxeui.com/umd/xe-utils@3.5.30/dist/xe-utils.umd.min.js"></script>
|
||||||
<script src="https://vxeui.com/umd/vxe-pc-ui@3.1.25/lib/index.umd.min.js"></script>
|
<script src="https://vxeui.com/umd/vxe-pc-ui@3.1.25/lib/index.umd.min.js"></script>
|
||||||
<script src="https://vxeui.com/umd/vxe-table@3.9.0/lib/index.umd.min.js"></script>
|
<script src="https://vxeui.com/umd/vxe-table@3.9.0/lib/index.umd.min.js"></script>
|
||||||
l
|
|
||||||
<!-- 引入 form-create 和 designer -->
|
<!-- 引入 form-create 和 designer -->
|
||||||
<script src="${base!}/assets/platform/plugins/form-create/form-create.min.js"></script>
|
<script src="${base!}/assets/platform/plugins/form-create/form-create.min.js"></script>
|
||||||
<script src="${base!}/assets/platform/plugins/form-create/index.umd.js"></script>
|
<script src="${base!}/assets/platform/plugins/form-create/index.umd.js"></script>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<script src="${base!}/assets/platform/plugins/swiper/swiper-bundle.js"></script>
|
<script src="${base!}/assets/platform/plugins/swiper/swiper-bundle.js"></script>
|
||||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/swiper/swiper-bundle.min.css"></link>
|
<link rel="stylesheet" href="${base!}/assets/platform/plugins/swiper/swiper-bundle.min.css"></link>
|
||||||
|
|
||||||
<!-- <script src="${base!}/assets/platform/plugins/snaker/SnakerflowDesigner.umd.min.js"></script>-->
|
<!--<script src="${base!}/assets/platform/plugins/snaker/SnakerflowDesigner.umd.js"></script>-->
|
||||||
|
|
||||||
<script src="${base!}/components/plugins/sysDict/DictData.js"></script>
|
<script src="${base!}/components/plugins/sysDict/DictData.js"></script>
|
||||||
<script src="${base!}/assets/platform/js/util/commonUtil.js"></script>
|
<script src="${base!}/assets/platform/js/util/commonUtil.js"></script>
|
||||||
@@ -351,6 +351,16 @@
|
|||||||
Vue.prototype.$auth = commonUtil.authService()
|
Vue.prototype.$auth = commonUtil.authService()
|
||||||
Vue.prototype.$axios = commonUtil.axiosService()
|
Vue.prototype.$axios = commonUtil.axiosService()
|
||||||
Vue.prototype.$downLoad = commonUtil.downLoadService
|
Vue.prototype.$downLoad = commonUtil.downLoadService
|
||||||
|
|
||||||
|
Vue.prototype.$processStatusMap = {
|
||||||
|
10: {text: "进行中", class: "doing"},
|
||||||
|
20: {text: "已完成", class: "finished"},
|
||||||
|
30: {text: "已撤回", class: "withdraw"},
|
||||||
|
40: {text: "强行终止", class: "interrupt"},
|
||||||
|
45: {text: "已拒绝", class: "reject"},
|
||||||
|
50: {text: "挂起", class: "pending"},
|
||||||
|
99: {text: "已废弃", class: "abandon"}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!--vue全局组件-->
|
<!--vue全局组件-->
|
||||||
@@ -676,7 +686,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div style="height: 45px"></div>
|
<div style="height: 64px"></div>
|
||||||
|
|
||||||
<main class="v4-content">
|
<main class="v4-content">
|
||||||
<!-- 页面内容区域 -->
|
<!-- 页面内容区域 -->
|
||||||
|
|||||||
@@ -63,15 +63,15 @@ layout("/layouts/v4/baseLayout.html"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
.apps-header {
|
.apps-header {
|
||||||
padding: 0 0 20px 0;
|
padding: 0 0 10px 0;
|
||||||
border-bottom: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-search-container {
|
.apps-search-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20px;
|
/*margin-bottom: 20px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-search {
|
.apps-search {
|
||||||
@@ -99,13 +99,16 @@ layout("/layouts/v4/baseLayout.html"){
|
|||||||
}
|
}
|
||||||
|
|
||||||
.apps-filter {
|
.apps-filter {
|
||||||
margin-top: 20px;
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-filter-title {
|
.apps-filter-title {
|
||||||
color: #666;
|
color: #666;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apps-filter-tags {
|
.apps-filter-tags {
|
||||||
@@ -351,22 +354,22 @@ layout("/layouts/v4/baseLayout.html"){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 字母过滤 -->
|
<!-- 字母过滤 -->
|
||||||
<!-- <div class="apps-filter">-->
|
<div class="apps-filter">
|
||||||
<!-- <div class="apps-filter-title">首字母:</div>-->
|
<div class="apps-filter-title">首字母:</div>
|
||||||
<!-- <div class="apps-filter-tags alphabet-filter">-->
|
<div class="apps-filter-tags alphabet-filter">
|
||||||
<!-- <div :class="['filter-tag', activeAlphabet === '' ? 'active' : '']" @click="changeAlphabet('')">-->
|
<div :class="['filter-tag', activeAlphabet === '' ? 'active' : '']" @click="changeAlphabet('')">
|
||||||
<!-- 全部-->
|
全部
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- <div-->
|
<div
|
||||||
<!-- v-for="letter in alphabets"-->
|
v-for="letter in alphabets"
|
||||||
<!-- :key="letter"-->
|
:key="letter"
|
||||||
<!-- :class="['alphabet-item', activeAlphabet === letter ? 'active' : '']"-->
|
:class="['alphabet-item', activeAlphabet === letter ? 'active' : '']"
|
||||||
<!-- @click="changeAlphabet(letter)"-->
|
@click="changeAlphabet(letter)"
|
||||||
<!-- >-->
|
>
|
||||||
<!-- {{ letter }}-->
|
{{ letter }}
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 应用网格 -->
|
<!-- 应用网格 -->
|
||||||
|
|||||||
@@ -59,6 +59,10 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
|
<van-notice-bar
|
||||||
|
left-icon="volume-o"
|
||||||
|
text="请选择完文件后,一次性上传。"
|
||||||
|
></van-notice-bar>
|
||||||
<h1>文件上传</h1>
|
<h1>文件上传</h1>
|
||||||
<van-uploader
|
<van-uploader
|
||||||
v-model="fileList"
|
v-model="fileList"
|
||||||
|
|||||||
+12
@@ -1,6 +1,13 @@
|
|||||||
<!--#
|
<!--#
|
||||||
layout("/layouts/platform.html"){
|
layout("/layouts/platform.html"){
|
||||||
#-->
|
#-->
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.write-dialog .el-dialog__body {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<guava ref="guava">
|
<guava ref="guava">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
@@ -219,8 +226,13 @@ layout("/layouts/platform.html"){
|
|||||||
<div style="max-height: 75vh;overflow-y: auto">
|
<div style="max-height: 75vh;overflow-y: auto">
|
||||||
<formal-write ref="formalWriteRef" :is_read="isRead" :user_id="userId"
|
<formal-write ref="formalWriteRef" :is_read="isRead" :user_id="userId"
|
||||||
:session_id="pageForm.sessionId"
|
:session_id="pageForm.sessionId"
|
||||||
|
:dialog="true"
|
||||||
@refresh="writeDialog=false;doSearch()"></formal-write>
|
@refresh="writeDialog=false;doSearch()"></formal-write>
|
||||||
</div>
|
</div>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="$refs.formalWriteRef.onSave()">保存草稿</el-button>
|
||||||
|
<el-button type="primary" @click="$refs.formalWriteRef.onSubmit()">提交信息</el-button>
|
||||||
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+147
-137
@@ -1,6 +1,6 @@
|
|||||||
const write = {
|
const write = {
|
||||||
template: /*language=HTML*/ `
|
template: /*language=HTML*/ `
|
||||||
<div class="container-x1">
|
<div class="container-x1" style="padding: 0">
|
||||||
|
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<header class="header-x">
|
<header class="header-x">
|
||||||
@@ -59,140 +59,132 @@ const write = {
|
|||||||
>
|
>
|
||||||
<div class="form-section">
|
<div class="form-section">
|
||||||
<h3 class="section-title">基本信息</h3>
|
<h3 class="section-title">基本信息</h3>
|
||||||
<div class="form-grid">
|
<div class="form-grid custom-grid">
|
||||||
<el-row :gutter="20">
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="姓名" prop="userName">
|
||||||
<el-form-item label="姓名" prop="userName">
|
<el-input v-model="formData.userName" readonly></el-input>
|
||||||
<el-input v-model="formData.userName" readonly></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="工号" prop="loginName">
|
||||||
<el-form-item label="工号" prop="loginName">
|
<el-input v-model="formData.loginName" readonly></el-input>
|
||||||
<el-input v-model="formData.loginName" readonly></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="性别" prop="sex">
|
||||||
<el-form-item label="性别" prop="sex">
|
<el-radio-group v-model="formData.sex" size="small">
|
||||||
<el-radio-group v-model="formData.sex" size="small">
|
<el-radio border label="男">男</el-radio>
|
||||||
<el-radio border label="男">男</el-radio>
|
<el-radio border label="女">女</el-radio>
|
||||||
<el-radio border label="女">女</el-radio>
|
</el-radio-group>
|
||||||
</el-radio-group>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="出生年月" prop="birthday">
|
||||||
<el-form-item label="出生年月" prop="birthday">
|
<el-date-picker
|
||||||
<el-date-picker
|
v-model="formData.birthday"
|
||||||
v-model="formData.birthday"
|
type="date"
|
||||||
type="date"
|
placeholder="选择日期"
|
||||||
placeholder="选择日期"
|
value-format="yyyy-MM-dd"
|
||||||
value-format="yyyy-MM-dd"
|
style="width: 100%"
|
||||||
style="width: 100%"
|
></el-date-picker>
|
||||||
></el-date-picker>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="民族" prop="nation">
|
||||||
<el-form-item label="民族" prop="nation">
|
<dict-select v-model="formData.nation" style="width: 100%"
|
||||||
<dict-select v-model="formData.nation" style="width: 100%"
|
placeholder="请选择民族"
|
||||||
placeholder="请选择民族"
|
code="USER_NATION"></dict-select>
|
||||||
code="USER_NATION"></dict-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="政治面貌" prop="political">
|
||||||
<el-form-item label="政治面貌" prop="political">
|
<el-input maxlength="100" placeholder="政治面貌"
|
||||||
<el-input maxlength="100" placeholder="政治面貌"
|
v-model="formData.political"></el-input>
|
||||||
v-model="formData.political"></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="所属工会">
|
||||||
<el-form-item label="所属工会">
|
<el-input
|
||||||
<el-input
|
v-model="formData.unionName"
|
||||||
v-model="formData.unionName"
|
readonly
|
||||||
readonly
|
placeholder="请输入所属工会"
|
||||||
placeholder="请输入所属工会"
|
clearable
|
||||||
clearable
|
></el-input>
|
||||||
></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="所属单位">
|
||||||
<el-form-item label="所属单位">
|
<el-input
|
||||||
<el-input
|
v-model="formData.unitName"
|
||||||
v-model="formData.unitName"
|
readonly
|
||||||
readonly
|
placeholder="请输入所属单位"
|
||||||
placeholder="请输入所属单位"
|
clearable
|
||||||
clearable
|
></el-input>
|
||||||
></el-input>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="职称" prop="professionalTitle">
|
||||||
<el-form-item label="职称" prop="professionalTitle">
|
<dict-select v-model="formData.professionalTitle" style="width: 100%"
|
||||||
<dict-select v-model="formData.professionalTitle" style="width: 100%"
|
placeholder="请选择职称"
|
||||||
placeholder="请选择职称"
|
code="technical_title_level"></dict-select>
|
||||||
code="technical_title_level"></dict-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="是否聘用制" prop="employ">
|
||||||
<el-form-item label="是否聘用制" prop="employ">
|
<el-radio-group v-model="formData.employ" size="small">
|
||||||
<el-radio-group v-model="formData.employ" size="small">
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-radio border :label="true">是</el-radio>
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-radio border :label="false">否</el-radio>
|
</el-radio-group>
|
||||||
</el-radio-group>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</el-col>
|
<div class="grid-item">
|
||||||
<el-col :span="12">
|
<el-form-item label="是否高级职称" prop="seniorTeacher">
|
||||||
<el-form-item label="是否高级职称" prop="seniorTeacher">
|
<el-radio-group v-model="formData.seniorTeacher" size="small">
|
||||||
<el-radio-group v-model="formData.seniorTeacher" size="small">
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-radio border :label="true">是</el-radio>
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-radio border :label="false">否</el-radio>
|
</el-radio-group>
|
||||||
</el-radio-group>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
|
<div class="grid-item">
|
||||||
</el-col>
|
<el-form-item label="是否中级职称及以下" prop="intermediateBelow">
|
||||||
<el-col :span="12">
|
<el-radio-group v-model="formData.intermediateBelow" size="small">
|
||||||
<el-form-item label="是否中级职称及以下" prop="intermediateBelow">
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-radio-group v-model="formData.intermediateBelow" size="small">
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-radio border :label="true">是</el-radio>
|
</el-radio-group>
|
||||||
<el-radio border :label="false">否</el-radio>
|
</el-form-item>
|
||||||
</el-radio-group>
|
</div>
|
||||||
</el-form-item>
|
<div class="grid-item">
|
||||||
</el-col>
|
<el-form-item label="是否干部" prop="cadre">
|
||||||
<el-col :span="12">
|
<el-radio-group v-model="formData.cadre" size="small">
|
||||||
<el-form-item label="是否干部" prop="cadre">
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-radio-group v-model="formData.cadre" size="small">
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-radio border :label="true">是</el-radio>
|
</el-radio-group>
|
||||||
<el-radio border :label="false">否</el-radio>
|
</el-form-item>
|
||||||
</el-radio-group>
|
</div>
|
||||||
</el-form-item>
|
<div class="grid-item">
|
||||||
</el-col>
|
<el-form-item label="是否工人" prop="worker">
|
||||||
<el-col :span="12">
|
<el-radio-group v-model="formData.worker" size="small">
|
||||||
<el-form-item label="是否工人" prop="worker">
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-radio-group v-model="formData.worker" size="small">
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-radio border :label="true">是</el-radio>
|
</el-radio-group>
|
||||||
<el-radio border :label="false">否</el-radio>
|
</el-form-item>
|
||||||
</el-radio-group>
|
</div>
|
||||||
</el-form-item>
|
<div class="grid-item">
|
||||||
</el-col>
|
<el-form-item label="校级领导" prop="schoolLeader">
|
||||||
|
<el-radio-group v-model="formData.schoolLeader" size="small">
|
||||||
<el-col :span="12">
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-form-item label="校级领导" prop="schoolLeader">
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-radio-group v-model="formData.schoolLeader" size="small">
|
</el-radio-group>
|
||||||
<el-radio border :label="true">是</el-radio>
|
</el-form-item>
|
||||||
<el-radio border :label="false">否</el-radio>
|
</div>
|
||||||
</el-radio-group>
|
<div class="grid-item">
|
||||||
</el-form-item>
|
<el-form-item label="中层领导" prop="middleLevelLeader">
|
||||||
</el-col>
|
<el-radio-group v-model="formData.middleLevelLeader" size="small">
|
||||||
|
<el-radio border :label="true">是</el-radio>
|
||||||
<el-col :span="12">
|
<el-radio border :label="false">否</el-radio>
|
||||||
<el-form-item label="中层领导" prop="middleLevelLeader">
|
</el-radio-group>
|
||||||
<el-radio-group v-model="formData.middleLevelLeader" size="small">
|
</el-form-item>
|
||||||
<el-radio border :label="true">是</el-radio>
|
</div>
|
||||||
<el-radio border :label="false">否</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-grid">
|
<div class="form-grid">
|
||||||
|
|
||||||
@@ -206,7 +198,7 @@ const write = {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="formData && ['53ff0c2a-ba93-45e9-a9fd-db51cdab3080','97b0846b-22c6-4d34-9002-a6b67d592944'].includes(formData.taskKey)"
|
<div v-if="!dialog && formData && ['53ff0c2a-ba93-45e9-a9fd-db51cdab3080','97b0846b-22c6-4d34-9002-a6b67d592944'].includes(formData.taskKey)"
|
||||||
class="form-actions">
|
class="form-actions">
|
||||||
<el-button @click="onSave">保存草稿</el-button>
|
<el-button @click="onSave">保存草稿</el-button>
|
||||||
<el-button type="primary" @click="onSubmit">提交信息</el-button>
|
<el-button type="primary" @click="onSubmit">提交信息</el-button>
|
||||||
@@ -270,7 +262,12 @@ const write = {
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
}
|
},
|
||||||
|
dialog: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: null
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -628,6 +625,19 @@ const write = {
|
|||||||
::v-deep .hidden {
|
::v-deep .hidden {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::v-deep .custom-grid {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 16px;
|
||||||
|
margin: 0 -8px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .grid-item {
|
||||||
|
flex: 1 1 calc(50% - 16px);
|
||||||
|
min-width: 200px; /* 防止在窄屏过度压缩 */
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
`
|
`
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -142,8 +142,13 @@ layout("/layouts/platform.html"){
|
|||||||
<div style="max-height: 75vh;overflow-y: auto">
|
<div style="max-height: 75vh;overflow-y: auto">
|
||||||
<formal-write ref="formalWriteRef" :is_read="isRead" :user_id="userId"
|
<formal-write ref="formalWriteRef" :is_read="isRead" :user_id="userId"
|
||||||
:session_id="pageForm.sessionId"
|
:session_id="pageForm.sessionId"
|
||||||
|
:dialog="true"
|
||||||
@refresh="writeDialog=false;doSearch()"></formal-write>
|
@refresh="writeDialog=false;doSearch()"></formal-write>
|
||||||
</div>
|
</div>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="$refs.formalWriteRef.onSave()">保存草稿</el-button>
|
||||||
|
<el-button type="primary" @click="$refs.formalWriteRef.onSubmit()">提交信息</el-button>
|
||||||
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user