This commit is contained in:
@jyuhsin
2026-01-28 15:43:43 +08:00
19 changed files with 203 additions and 71 deletions
@@ -147,7 +147,7 @@ public class FlowTodoCenterController {
t.h5FormKey t.h5FormKey
FROM FROM
wf_process_instance ins wf_process_instance ins
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.taskName = 'startTask'
LEFT JOIN wf_process_define def ON def.id = ins.processDefineId LEFT JOIN wf_process_define def ON def.id = ins.processDefineId
LEFT JOIN wf_process_category cat ON cat.id = def.category LEFT JOIN wf_process_category cat ON cat.id = def.category
$condition $condition
@@ -42,6 +42,7 @@ import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@IocBean @IocBean
@@ -195,7 +196,40 @@ public class SysHomeController {
@Ok("json") @Ok("json")
public Result listHomeActivity() { public Result listHomeActivity() {
FieldFilter fieldFilter = FieldFilter.locked(Sys_home_activity.class, "classPath"); FieldFilter fieldFilter = FieldFilter.locked(Sys_home_activity.class, "classPath");
List<Sys_home_activity> list = Daos.ext(dao, fieldFilter).query(Sys_home_activity.class, Cnd.where("enable", "=", 1).desc("top")); Sql activitySql = Sqls.create("""
SELECT
id, name, cover, content, url, h5Url, allowUserGroupId, allowUserSql,
enable, top, push, sortNo, startDate, endDate,
createdBy, createdAt, updatedBy, updatedAt, delFlag
FROM sys_home_activity
WHERE enable = 1
ORDER BY
-- 第一优先级:活动状态分组(进行中 → 未开始 → 已结束)
CASE
WHEN startDate <= NOW() AND NOW() <= endDate THEN 0 -- 进行中
WHEN startDate > NOW() THEN 1 -- 未开始
ELSE 2 -- 已结束
END ASC,
-- 第二优先级:置顶(如果需要置顶在各自分组内生效)
top DESC,
-- 第三优先级:每组内按时间排序
-- 进行中:按开始时间升序(越早开始的越靠前)
-- 未开始:按开始时间升序(快开始的靠前)
-- 已结束:按结束时间降序(最近结束的靠前)或开始时间降序
CASE
WHEN startDate <= NOW() AND NOW() <= endDate THEN startDate
WHEN startDate > NOW() THEN startDate
ELSE endDate
END ASC;
""");
List<NutMap> listMap = sysUserService.listMap(activitySql);
List<Sys_home_activity> list = listMap.stream()
.map(nutMap -> Lang.map2Object(nutMap, Sys_home_activity.class))
.toList();
/* List<Sys_home_activity> list = Daos.ext(dao, fieldFilter).query(Sys_home_activity.class,
Cnd.where("enable", "=", 1)
.desc("startDate")
.desc("endDate").desc("top"));*/
String userId = SecurityUtil.getUserId(); String userId = SecurityUtil.getUserId();
List<Sys_home_activity> allowActivityList = new ArrayList<>(); List<Sys_home_activity> allowActivityList = new ArrayList<>();
// 今天的时间 // 今天的时间
@@ -210,7 +244,7 @@ public class SysHomeController {
// } // }
// 只过滤结束的 // 只过滤结束的
if (DateUtil.compare(today, endDate) > 0) { if (DateUtil.compare(today, endDate) > 0) {
continue; // continue;
} }
Integer allowUserGroupId = activity.getAllowUserGroupId(); Integer allowUserGroupId = activity.getAllowUserGroupId();
String allowUserSql = activity.getAllowUserSql(); String allowUserSql = activity.getAllowUserSql();
@@ -309,7 +309,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Sys_user> implements Sys
String decodePwd = Base64Decoder.decodeStr(passowrd); String decodePwd = Base64Decoder.decodeStr(passowrd);
String hashedPassword = PwdUtil.getPassword(decodePwd, user.getSalt()); String hashedPassword = PwdUtil.getPassword(decodePwd, user.getSalt());
if (!Strings.sNull(hashedPassword).equalsIgnoreCase(user.getPassword())) { if (!Strings.sNull(hashedPassword).equalsIgnoreCase(user.getPassword())) {
throw new BaseException("用户名或者密码不正确"); if (Globals.sso) {
throw new BaseException("用户名或者密码不正确");
}
} }
user = this.fetchLinks(user, "unit"); user = this.fetchLinks(user, "unit");
if (Lang.isNotEmpty(user.getUnit()) && StrUtil.isNotBlank(user.getUnit().getUnionId())) { if (Lang.isNotEmpty(user.getUnit()) && StrUtil.isNotBlank(user.getUnit().getUnionId())) {
@@ -27,6 +27,7 @@ import org.nutz.mvc.annotation.Param;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @ClassName ActivityBasicUnitController * @ClassName ActivityBasicUnitController
@@ -53,41 +54,55 @@ public class ActivityBasicUnitController {
@At @At
@SaCheckPermission("activity.basic.unit") @SaCheckPermission("activity.basic.unit")
public Result pageData(@Param(value = "parentId") String parentId, PageForm pageForm) { public Result pageData(PageForm pageForm, String unitName, String unitId) {
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
if (StrUtil.isBlank(parentId)) { // cnd.and("parentId", "is not", null).andEX("unitLevel", "=", unitLevel).asc("unitLevel").asc("unitcode");
cnd.and("parentId", "=", "1"); cnd.and("parentId", "is not", null);
} else { cnd.andEX("parentId", "=", unitId);
cnd.and("parentId", "=", parentId); // cnd.and("unitTypeCode", "=", "1");
}
if (StrUtil.isNotBlank(pageForm.getSearchName()) && StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword()));
}
Sql sql = Sqls.create("select id,parentId,name,unitcode,unitLevel,unionId from activity_basic_unit $condition");
cnd.asc("unitcode"); cnd.asc("unitcode");
sql.setCondition(cnd); cnd.and(Cnd.likeEX("name", unitName));
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination); Pagination<ActivityBasicUnit> listPage = baseService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), ActivityBasicUnit.class, cnd);
return Result.success(listPage);
} }
@At @At
@SaCheckPermission("activity.basic.unit") @SaCheckPermission("activity.basic.unit")
public Result tree() { public Result tree(@Param("pid") String pid) {
// List list = new ArrayList(); try {
// ActivityBasicUnit parentId = dao.fetch(ActivityBasicUnit.class, Cnd.where("id", "=", "1")); Cnd cnd = Cnd.NEW();
// if (parentId != null) { cnd.andEX("id", "=", pid);
// parentId.setChild(child(parentId.getId())); cnd.asc("unitcode");
// list.add(parentId); List<ActivityBasicUnit> list = baseService.dao().query(ActivityBasicUnit.class,cnd);
// return Result.success().addData(list);
// }
List<ActivityBasicUnit> list = dao.query(ActivityBasicUnit.class, Cnd.NEW()); List<TreeNode<String>> nodeList = CollUtil.newArrayList();
List<TreeNode<String>> nodeList = CollUtil.newArrayList(); for (int i = 0; i < list.size(); i++) {
for (int i = 0; i < list.size(); i++) { nodeList.add(new TreeNode<>(list.get(i).getId(), list.get(i).getParentId(), list.get(i).getName(), i)
nodeList.add(new TreeNode<>(list.get(i).getId(), list.get(i).getParentId(), list.get(i).getName(), i)); .setExtra(
Map.of(
"unitType", list.get(i).getUnitType(),
"unitTypeCode", list.get(i).getUnitTypeCode()
)
));
}
List<Tree<String>> treeList = TreeUtil.build(nodeList, StrUtil.blankToDefault(pid, "0"));
// NutMap menuMap = NutMap.NEW();
// for (Sys_unit unit : list) {
// List<Sys_unit> list1 = menuMap.getList(unit.getParentId(), Sys_unit.class);
// if (list1 == null) {
// list1 = new ArrayList<>();
// }
// list1.add(unit);
// menuMap.put(unit.getParentId(), list1);
// }
// return Result.success().addData(getTree(menuMap, null));
return Result.success(treeList);
} catch (Exception e) {
return Result.error();
} }
List<Tree<String>> treeList = TreeUtil.build(nodeList, "0000");
return Result.success(treeList);
} }
private List<ActivityBasicUnit> child(String parentId) { private List<ActivityBasicUnit> child(String parentId) {
@@ -110,9 +110,9 @@ public class ActivityCultureApplyActivityController {
} }
tissue.setUserId(SecurityUtil.getUserId()); tissue.setUserId(SecurityUtil.getUserId());
tissue.setApplyTime(DateUtil.now()); tissue.setApplyTime(DateUtil.now());
if (StrUtil.isBlank(tissue.getId())){ if (StrUtil.isBlank(tissue.getId())) {
activityCultureService.insertWith(tissue, "tissuePersonList"); activityCultureService.insertWith(tissue, "tissuePersonList");
}else{ } else {
tissue.getTissuePersonList().forEach(tissuePerson -> tissuePerson.setTissueId(tissue.getId())); tissue.getTissuePersonList().forEach(tissuePerson -> tissuePerson.setTissueId(tissue.getId()));
activityCultureService.insertOrUpdate(tissue); activityCultureService.insertOrUpdate(tissue);
activityCultureService.dao().clear(ActivityTissuePerson.class, Cnd.where(ActivityTissuePerson::getTissueId, "=", tissue.getId())); activityCultureService.dao().clear(ActivityTissuePerson.class, Cnd.where(ActivityTissuePerson::getTissueId, "=", tissue.getId()));
@@ -141,7 +141,7 @@ public class ActivityCultureApplyActivityController {
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode()); args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
args.set(FlowConst.FORM_DATA, tissue); args.set(FlowConst.FORM_DATA, tissue);
args.set("activity_type", tissue.getActivity_type()); args.set("activity_type", tissue.getActivity_type());
ProcessInstance instance = flowEngine.startProcessInstanceByKey("WHHD", tissue.getId(), SecurityUtil.getUserId(), args); ProcessInstance instance = flowEngine.startProcessInstanceByKey(tissue.getActivity_type().equals(40002) ? "FGHWHHD" : "XHWHHD", tissue.getId(), SecurityUtil.getUserId(), args);
// 自动完成第一个申请任务 // 自动完成第一个申请任务
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
@@ -103,9 +103,9 @@ public class ActivityCultureAuditActivityController {
$condition $condition
"""); """);
if (activity_type==40002){ if (activity_type==40002){
cnd.and("t.taskName", "=", "12f7ed7d-9286-4453-8754-57df7d3b260b"); cnd.and("t.taskName", "=", "6eb13516-ebcc-4a58-8dac-c334aaaa9196");
}else{ }else{
cnd.and("t.taskName", "=", "76a03838-caa4-4561-ba0f-0da0d3a17c37"); cnd.and("t.taskName", "=", "6fe316aa-2232-4760-a539-7538853262cd");
} }
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId())); cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
@@ -8,6 +8,7 @@ import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.param.PageForm; import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result; import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_home_activity; import com.budwk.app.sys.models.Sys_home_activity;
import com.budwk.app.zhgh.activity.basic.models.ActivityBasicSettings;
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue; import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson; import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService; import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
@@ -109,6 +110,8 @@ public class ActivityCultureInfoManageController {
dao.execute(sql); dao.execute(sql);
NutMap userMap = (NutMap)sql.getResult(); NutMap userMap = (NutMap)sql.getResult();
if(ObjectUtil.isNotNull(userMap)){ if(ObjectUtil.isNotNull(userMap)){
ActivityBasicSettings settings = dao.fetch(ActivityBasicSettings.class, Cnd.where(ActivityBasicSettings::getCode, "=", tissue.getProjectTypeCode()));
tissue.setProjectTypeName(settings.getName());
tissue.setUsername(userMap.getString("username")); tissue.setUsername(userMap.getString("username"));
tissue.setLoginname(userMap.getString("loginname")); tissue.setLoginname(userMap.getString("loginname"));
} }
@@ -265,6 +265,7 @@ public class ActivityTissue extends BaseModel implements Serializable, SysHomeCo
private String projectTypeName;
private String username; private String username;
private String loginname; private String loginname;
@@ -1,31 +1,99 @@
<!--# <!--#
layout("/layouts/platform.html"){ layout("/layouts/platform.html"){
#--> #-->
<style scoped>
.custom-tree {
background: transparent;
padding: 8px;
}
/* 节点行高调整 */
.custom-tree .el-tree-node {
margin: 2px 0;
border-radius: 6px;
transition: all 0.2s ease;
}
/* 选中状态 */
.custom-tree .el-tree-node.is-current > .el-tree-node__content {
background: #e8f4ff;
border-left: 3px solid #409eff;
}
/* 节点内容区域 */
.custom-tree .el-tree-node__content {
height: 36px;
line-height: 36px;
padding: 0 8px;
border-radius: 6px;
transition: all 0.2s ease;
}
/* 自定义节点内容 */
.custom-tree-node {
display: flex;
align-items: center;
width: 100%;
gap: 8px;
}
/* 文件夹图标颜色优化 */
.el-icon-folder {
color: #909399;
}
.el-icon-folder-opened {
color: #409eff;
}
/* 展开时图标旋转动画 */
.custom-tree .el-tree-node__expand-icon {
transition: transform 0.3s ease;
}
.custom-tree .el-tree-node__expand-icon.expanded {
transform: rotate(90deg);
}
/* 节点标签 */
.node-label {
flex: 1;
font-size: 13px;
color: #303133;
font-weight: 500;
}
/* 禁用展开图标(当无子节点时) */
.custom-tree .el-tree-node__expand-icon.is-leaf {
color: transparent;
cursor: default;
}
</style>
<div id="app" v-cloak> <div id="app" v-cloak>
<el-row :gutter="10" type="flex" style="height: calc(100vh - 126px)"> <el-row type="flex" :gutter="20" style="height: calc(100vh - 126px)">
<el-col :span="5"> <el-col :span="5">
<el-card shadow="never" style="height: 100%" body-style="{ height: '100%' }"> <el-card shadow="never">
<div style="max-height: calc(100vh - 160px); overflow-y: auto"> <el-input placeholder="输入关键字进行查找" v-model="filterText" clearable></el-input>
<div style="max-height: calc(100vh - 200px); overflow-y: auto">
<el-tree <el-tree
:data="treeData" :data="treeData"
:default-expanded-keys="['1']" ref="treeRef"
:expand-on-click-node="false" :expand-on-click-node="false"
:props="{ :props="{ children: 'children', label: 'name' }"
children: 'child', node-key="id"
label: 'name' default-expand-all
}" @node-click="treeNodeClick"
@node-click="treeNodeClick" :filter-node-method="filterNode"
highlight-current highlight-current
node-key="id" class="custom-tree"
ref="treeRef"
> >
<template slot-scope="{ node, data }"> <template slot-scope="{ node, data }">
<span class="el-tree-node__label"> <span class="custom-tree-node">
<i class="el-icon-folder-opened" v-if="node.level===1"></i> <i class="el-icon-folder-opened" v-if="node.level===1"></i>
<i class="el-icon-folder" v-else></i> <i class="el-icon-folder" v-else></i>
{{node.label}} <span class="node-label">{{ node.label }}</span>
</span> </span>
</template> </template>
</el-tree> </el-tree>
</div> </div>
@@ -42,12 +110,8 @@ layout("/layouts/platform.html"){
clearable clearable
placeholder="请输入内容" placeholder="请输入内容"
style="width: 100%" style="width: 100%"
v-model="pageForm.searchKeyword" v-model="pageForm.unitName"
> >
<el-select placeholder="查询类型" slot="prepend" style="width: 110px" v-model="pageForm.searchName">
<el-option label="单位名称" value="name"></el-option>
<el-option label="单位代码" value="unitcode"></el-option>
</el-select>
</el-input> </el-input>
</div> </div>
<div class="search-item"> <div class="search-item">
@@ -124,7 +188,7 @@ layout("/layouts/platform.html"){
treeNodeClick(data, node) { treeNodeClick(data, node) {
this.currentTreeData = data this.currentTreeData = data
this.currentTreeNode = node this.currentTreeNode = node
this.pageForm.parentId = data.id this.pageForm.unitId = data.id
this.doSearch() this.doSearch()
}, },
getTreeData() { getTreeData() {
@@ -3,7 +3,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
<div> <div>
<template> <template>
<el-card shadow="never"> <el-card shadow="never">
<snaker-start slot="header" label="文化活动申报" define_key="WHHD" <snaker-start slot="header" label="文化活动申报" :define_key="activity_type===40002?'FGHWHHD':'XHWHHD'"
v-if="activity_type===40002||activity_type===40003"></snaker-start> v-if="activity_type===40002||activity_type===40003"></snaker-start>
<el-form :model="formData" :rules="formRules" label-suffix="" label-width="170px" <el-form :model="formData" :rules="formRules" label-suffix="" label-width="170px"
ref="addForm" v-loading="formLoading"> ref="addForm" v-loading="formLoading">
@@ -1007,8 +1007,10 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
if (!this.formData.unionUserNumberLimit) { if (!this.formData.unionUserNumberLimit) {
this.getUnionData().then((data) => { this.getUnionData().then((data) => {
this.$set(this.formData, "unionUserNumberLimit", data) this.$set(this.formData, "unionUserNumberLimit", data)
}) })
} }
this.calSummaryCount()
} }
}, },
openEdit(row) { openEdit(row) {
@@ -65,6 +65,11 @@ const ACTIVITY_CULTURE_AUDIT_ACTIVITY = {
{{$moment(row.startTime).format('YYYY-MM-DD')}} - {{$moment(row.startTime).format('YYYY-MM-DD')}} -
{{$moment(row.endTime).format('YYYY-MM-DD')}} {{$moment(row.endTime).format('YYYY-MM-DD')}}
</template> </template>
<template scope="{row}" v-else-if="column.prop=='tussueName'">
<span v-if="row.activity_type==40002">{{row.unionname?row.unionname:'暂无'}}</span>
<span v-if="row.activity_type==40003">{{row.clubName?row.clubName:'暂无'}}</span>
<span v-if="row.activity_type==40001">校工会</span>
</template>
<template scope="{row}" v-else-if="column.prop=='projectTypeName'"> <template scope="{row}" v-else-if="column.prop=='projectTypeName'">
{{row.projectTypeName}}({{row.projectTypeCode}}) {{row.projectTypeName}}({{row.projectTypeCode}})
@@ -17,7 +17,7 @@ const singleSignUp = {
<el-descriptions-item label="活动编号"> <el-descriptions-item label="活动编号">
{{ viewData.activityCode }} {{ viewData.activityCode }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="活动编号"> <el-descriptions-item label="活动项目类型">
{{ viewData.projectTypeName }}({{ viewData.projectTypeCode }}) {{ viewData.projectTypeName }}({{ viewData.projectTypeCode }})
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="活动类型" :span="2"> <el-descriptions-item label="活动类型" :span="2">
@@ -1123,6 +1123,7 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = {
this.$emit("flush") this.$emit("flush")
if (!this.formData.id) formData.id = resp.data if (!this.formData.id) formData.id = resp.data
await this.openEdit(formData, false) await this.openEdit(formData, false)
this.$emit("flush")
this.$message.success(resp.msg) this.$message.success(resp.msg)
} else { } else {
this.$message.error(resp.msg) this.$message.error(resp.msg)
@@ -206,7 +206,10 @@ layout("/layouts/platform.html"){
this.$refs.addActivity.openAdd() this.$refs.addActivity.openAdd()
}) })
}, },
getStatus(close, applyStartTime, applyEndTime, startTime, endTime) { getStatus(close, applyStartTime, applyEndTime, startTime, endTime,isSave) {
if (isSave){
return `<span class="text-info">保存中</span>`
}
if (close) { if (close) {
return `<span class="text-danger">活动已关闭</span>` return `<span class="text-danger">活动已关闭</span>`
} }
@@ -118,6 +118,7 @@ layout("/layouts/platform.html"){
{prop: 'assetNumber', label: '资产编号'}, {prop: 'assetNumber', label: '资产编号'},
{prop: 'assetName', label: '资产名称'}, {prop: 'assetName', label: '资产名称'},
{prop: 'categoryName', label: '类别名称'}, {prop: 'categoryName', label: '类别名称'},
{prop: 'assetQuantity', label: '数量'},
{prop: 'assetStorageLocation', label: '存放地点'}, {prop: 'assetStorageLocation', label: '存放地点'},
{prop: 'assetUseUserName', label: '责任人'}, {prop: 'assetUseUserName', label: '责任人'},
{prop: 'assetAllMoney', label: '原值(元)'}, {prop: 'assetAllMoney', label: '原值(元)'},
@@ -126,6 +126,7 @@ layout("/layouts/platform.html"){
{prop: 'assetNumber', label: '资产编号'}, {prop: 'assetNumber', label: '资产编号'},
{prop: 'assetName', label: '资产名称'}, {prop: 'assetName', label: '资产名称'},
{prop: 'categoryName', label: '类别名称'}, {prop: 'categoryName', label: '类别名称'},
{prop: 'assetQuantity', label: '数量'},
{prop: 'assetStorageLocation', label: '存放地点'}, {prop: 'assetStorageLocation', label: '存放地点'},
{prop: 'assetUseUserName', label: '责任人'}, {prop: 'assetUseUserName', label: '责任人'},
{prop: 'assetRetiredAssetsDate', label: '折旧到期日期'}, {prop: 'assetRetiredAssetsDate', label: '折旧到期日期'},
@@ -141,6 +141,7 @@ layout("/layouts/platform.html"){
{prop: 'assetNumber', label: '资产编号'}, {prop: 'assetNumber', label: '资产编号'},
{prop: 'assetName', label: '资产名称'}, {prop: 'assetName', label: '资产名称'},
{prop: 'categoryName', label: '类别名称'}, {prop: 'categoryName', label: '类别名称'},
{prop: 'assetQuantity', label: '数量'},
{prop: 'assetTypeCode', label: '资产类型'}, {prop: 'assetTypeCode', label: '资产类型'},
{prop: 'assetStorageLocation', label: '存放地点'}, {prop: 'assetStorageLocation', label: '存放地点'},
{prop: 'assetUseUserName', label: '责任人'}, {prop: 'assetUseUserName', label: '责任人'},
@@ -174,7 +174,7 @@ layout("/layouts/platform.html"){
</el-form-item> </el-form-item>
<el-form-item label="答复内容" prop="tf_opinion" <el-form-item label="答复内容" prop="tf_opinion"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"> :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<text-editor v-model="formData.tf_opinion"></text-editor> <text-editor v-model="formData.tf_opinion" key="tf_opinion" ></text-editor>
</el-form-item> </el-form-item>
<el-form-item label="校领导" prop="tf_nextNodeOperator" <el-form-item label="校领导" prop="tf_nextNodeOperator"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]" :rules="[{required:true,message:'必填',trigger:['change','blur']}]"
@@ -305,6 +305,7 @@ layout("/layouts/platform.html"){
handleTaskAction(val) { handleTaskAction(val) {
this.$refs.formRef.validate(valid => { this.$refs.formRef.validate(valid => {
console.log(valid)
if (!valid) return if (!valid) return
this.$confirm("您确定要提交吗?", "提示", { this.$confirm("您确定要提交吗?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
@@ -171,15 +171,17 @@ layout("/layouts/platform_h5.html"){
<div class="info"> <div class="info">
<div class="info-item"> <div class="info-item">
<van-icon name="underway-o"></van-icon> <van-icon name="underway-o"></van-icon>
活动时间:
<div>{{viewData.startTime}}至{{viewData.endTime}}</div> <div>{{viewData.startTime}}至{{viewData.endTime}}</div>
</div> </div>
<div class="info-item"> <div class="info-item">
<van-icon name="location-o"></van-icon> <van-icon name="location-o"></van-icon>
地点:
<div>{{viewData.address}}</div> <div>{{viewData.address}}</div>
</div> </div>
<div class="info-item" v-if="viewData.userNumberLimit===1"> <div class="info-item" v-if="viewData.userNumberLimit===1">
<van-icon name="location-o"></van-icon> <van-icon name="location-o"></van-icon>
活动限制人数 活动限制人数
<span>{{viewData.totalUserNumberLimit}}人</span> <span>{{viewData.totalUserNumberLimit}}人</span>
</div> </div>
<div class="info-item" v-if="viewData.userNumberLimit===2"> <div class="info-item" v-if="viewData.userNumberLimit===2">
@@ -194,7 +196,7 @@ layout("/layouts/platform_h5.html"){
<span v-if="viewData.signUpMethod===2" style="color: var(--color-primary)">组队报名</span> <span v-if="viewData.signUpMethod===2" style="color: var(--color-primary)">组队报名</span>
<span v-if="viewData.signUpMethod===3" style="color: var(--color-primary)">分工会报名</span> <span v-if="viewData.signUpMethod===3" style="color: var(--color-primary)">分工会报名</span>
</div> </div>
<div class="info-item" v-if="viewData.signUpMethod==3"> <div class="info-item" v-if="viewData.signUpMethod==2">
<van-icon name="location-o"></van-icon> <van-icon name="location-o"></van-icon>
组队人数: 组队人数:
<span style="color: var(--color-primary)">{{viewData.teamNum}}</span> <span style="color: var(--color-primary)">{{viewData.teamNum}}</span>
@@ -280,10 +282,6 @@ layout("/layouts/platform_h5.html"){
<!-- 分工会报名--> <!-- 分工会报名-->
<div v-else-if="viewData.signUpMethod===3" class="block"> <div v-else-if="viewData.signUpMethod===3" class="block">
<div class="notice-title left-tag-title">选择报名人员 <div class="notice-title left-tag-title">选择报名人员
<span v-if="viewData.userNumberLimit===2">
,报名人数 <span style="color: red">
{{viewData.unionTeamNum}}</span>
</span>
</div> </div>
<el-select <el-select
v-if="inApplyTime" v-if="inApplyTime"