This commit is contained in:
2025-10-19 17:18:13 +08:00
parent c9e825ecb9
commit be764149e4
20 changed files with 131 additions and 185 deletions
@@ -33,6 +33,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;
@@ -100,6 +101,7 @@ public class HealthCheckupListController {
hcus.selectTime, hcus.selectTime,
hcus.campus, hcus.campus,
hcus.subjectId, hcus.subjectId,
hcus.bz,
ca.campusName ca.campusName
FROM FROM
health_checkup_user hcu health_checkup_user hcu
@@ -117,8 +119,11 @@ public class HealthCheckupListController {
cnd.andEX("hcu.unionId", "=", SecurityUtil.getUnionId()); cnd.andEX("hcu.unionId", "=", SecurityUtil.getUnionId());
} }
if (StrUtil.isNotBlank(pageForm.getSearchName()) && StrUtil.isNotBlank(pageForm.getSearchKeyword())) { if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
cnd.and(Cnd.likeEX(pageForm.getSearchName(), pageForm.getSearchKeyword())); SqlExpressionGroup group = new SqlExpressionGroup();
group.orLike("hcu.userName", pageForm.getSearchKeyword());
group.orLike("hcu.loginName", pageForm.getSearchKeyword());
cnd.and(group);
} }
cnd.groupBy("hcu.userId"); cnd.groupBy("hcu.userId");
if (StrUtil.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) { if (StrUtil.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())) {
@@ -34,6 +34,7 @@ import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Ok;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
@@ -348,7 +349,7 @@ public class HealthCheckupSingleController {
} }
} }
//如果有符合的就添加 //如果有符合的就添加
if (subjectMoneyId != null){ if (subjectMoneyId != null) {
HealthCheckupUserSelection selection = new HealthCheckupUserSelection(); HealthCheckupUserSelection selection = new HealthCheckupUserSelection();
selection.setProjectId(projectId); selection.setProjectId(projectId);
selection.setSelectUserId(v); selection.setSelectUserId(v);
@@ -363,4 +364,15 @@ public class HealthCheckupSingleController {
}); });
return Result.success(); return Result.success();
} }
@At
@ApiOperation("给未选的人发送提醒")
@Ok("json:full")
@SaCheckPermission("healthCheckup.statisticsSingle")
@SLog(type = "healthCheckup", tag = "体检管理", msg = "管理员给未选的人发送提醒")
public Result msgNotSelect(@Valid String projectId) {
List<NutMap> userList = healthCheckupSingleService.receivePageData(projectId, null, "1");
return Result.success("暂未开启消息!");
}
} }
@@ -170,6 +170,7 @@ public class TeacherCongressDelegatePushController {
sql.setParam("sessionId", sessionId); sql.setParam("sessionId", sessionId);
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("u.member", "=", 1); cnd.and("u.member", "=", 1);
cnd.and("u.username", "is not", null);
cnd.andEX("u.id", "not in", userIds); cnd.andEX("u.id", "not in", userIds);
cnd.and("tcd.userId", "is", null); cnd.and("tcd.userId", "is", null);
cnd.and("tcdp.id", "is", null); cnd.and("tcdp.id", "is", null);
@@ -249,6 +250,7 @@ public class TeacherCongressDelegatePushController {
// 自动完成第一个申请任务 // 自动完成第一个申请任务
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null); List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
for (ProcessTask task : doingTaskList) { for (ProcessTask task : doingTaskList) {
args.put(FlowConst.NEXT_NODE_OPERATOR, teacherCongressDelegatePush.getUserId());
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args); flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
} }
}); });
@@ -370,7 +372,7 @@ public class TeacherCongressDelegatePushController {
Teacher_congress_quota_allocation allocation = dao.fetch(Teacher_congress_quota_allocation.class, Teacher_congress_quota_allocation allocation = dao.fetch(Teacher_congress_quota_allocation.class,
Cnd.where(Teacher_congress_quota_allocation::getSessionId, "=", sessionId) Cnd.where(Teacher_congress_quota_allocation::getSessionId, "=", sessionId)
.and(Teacher_congress_quota_allocation::getUnionId, "=", SecurityUtil.getUnionId())); .and(Teacher_congress_quota_allocation::getUnionId, "=", SecurityUtil.getUnionId()));
if(allocation == null){ if (allocation == null) {
return Result.success(); return Result.success();
} }
@@ -414,23 +416,23 @@ public class TeacherCongressDelegatePushController {
// 女代表人数 // 女代表人数
int female = (int) writeList.stream().filter(v -> List.of("", "女性").contains(v.getString("sex"))).count(); int female = (int) writeList.stream().filter(v -> List.of("", "女性").contains(v.getString("sex"))).count();
// 高级职称专任教师人数 // 高级职称专任教师人数
int seniorTeacher = (int) writeList.stream().filter(v->v.getBoolean("seniorTeacher")).count(); int seniorTeacher = (int) writeList.stream().filter(v -> v.getBoolean("seniorTeacher")).count();
// 中级职称及以下 // 中级职称及以下
int intermediateBelow = (int) writeList.stream().filter(v->v.getBoolean("intermediateBelow")).count(); int intermediateBelow = (int) writeList.stream().filter(v -> v.getBoolean("intermediateBelow")).count();
// 干部 // 干部
int cadre = (int) writeList.stream().filter(v->v.getBoolean("cadre")).count(); int cadre = (int) writeList.stream().filter(v -> v.getBoolean("cadre")).count();
// 工人 // 工人
int worker = (int) writeList.stream().filter(v->v.getBoolean("worker")).count(); int worker = (int) writeList.stream().filter(v -> v.getBoolean("worker")).count();
// 专任教师人数 // 专任教师人数
int ordinaryTeacher = (int) writeList.stream().filter(v->v.getBoolean("ordinaryTeacher")).count(); int ordinaryTeacher = (int) writeList.stream().filter(v -> v.getBoolean("ordinaryTeacher")).count();
// 45岁以下代表 // 45岁以下代表
int under45 = (int) writeList.stream().filter(v -> Convert.toInt(v.getInt("age"), 0) <= 45).count(); int under45 = (int) writeList.stream().filter(v -> Convert.toInt(v.getInt("age"), 0) <= 45).count();
// 少数民族代表 // 少数民族代表
long ethnicMinority = writeList.stream().filter(v -> StrUtil.isNotBlank(v.getString("nation")) && !"汉族".equals(v.getString("nation"))).count(); long ethnicMinority = writeList.stream().filter(v -> StrUtil.isNotBlank(v.getString("nation")) && !"汉族".equals(v.getString("nation"))).count();
// 校领导数 // 校领导数
long schoolLeader = writeList.stream().filter(v->v.getBoolean("schoolLeader")).count(); long schoolLeader = writeList.stream().filter(v -> v.getBoolean("schoolLeader")).count();
// 中层领导数 // 中层领导数
long middleLevelLeader = writeList.stream().filter(v->v.getBoolean("middleLevelLeader")).count(); long middleLevelLeader = writeList.stream().filter(v -> v.getBoolean("middleLevelLeader")).count();
HashMap<String, Object> hashMap = new HashMap<>(); HashMap<String, Object> hashMap = new HashMap<>();
@@ -24,6 +24,7 @@ import com.budwk.app.sys.views.View_user;
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.TeacherCongressDelegatePush; import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.TeacherCongressDelegatePush;
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate; import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate;
import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_union; import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_union;
import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_unit;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
@@ -227,15 +228,15 @@ public class TeacherCongressDelegatePushZgAuditController {
delegate.setSessionId(delegatePush.getSessionId()); delegate.setSessionId(delegatePush.getSessionId());
Teacher_congress_delegation_union delegation_union = baseService.dao().fetch(Teacher_congress_delegation_union.class, Teacher_congress_delegation_unit delegation_unit = baseService.dao().fetch(Teacher_congress_delegation_unit.class,
Cnd.where(Teacher_congress_delegation_union::getUnionId, "=", user.getUnionId()) Cnd.where(Teacher_congress_delegation_unit::getUnitId, "=", user.getUnitId())
.and(Teacher_congress_delegation_union::getSessionId, "=", delegatePush.getSessionId())); .and(Teacher_congress_delegation_union::getSessionId, "=", delegatePush.getSessionId()));
if (ObjectUtil.isNotEmpty(delegation_union)) { if (ObjectUtil.isNotEmpty(delegation_unit)) {
delegate.setDelegationId(delegation_union.getId()); delegate.setDelegationId(delegation_unit.getId());
userRole.setTcDelegationId(delegation_union.getId()); userRole.setTcDelegationId(delegation_unit.getId());
} else { } else {
return Result.error(user.getUnionName() + "没有设置到代表团,请先在代表团管理里设置。"); return Result.error(user.getUnitName() + "没有设置到代表团,请先在代表团管理里设置。");
} }
if ("正式代表".equals(delegatePush.getRepresentativeType())) { if ("正式代表".equals(delegatePush.getRepresentativeType())) {
Sys_role sys_role = baseService.dao().fetch(Sys_role.class, Cnd.where(Sys_role::getCode, "=", RoleConstant.TEACHER_CONGRESS_DELEGATE_FORMAL.name())); Sys_role sys_role = baseService.dao().fetch(Sys_role.class, Cnd.where(Sys_role::getCode, "=", RoleConstant.TEACHER_CONGRESS_DELEGATE_FORMAL.name()));
@@ -181,11 +181,11 @@ public class ThirtyTeachController {
for (ThirtyTeachTemp temp : teachTempList) { for (ThirtyTeachTemp temp : teachTempList) {
if (StrUtil.isBlank(temp.getUserName())) { if (StrUtil.isBlank(temp.getUserName())) {
temp.setResult("获取不到该用户的姓名!"); /* temp.setResult("获取不到该用户的姓名!");
errorInfos.add(temp); errorInfos.add(temp);
break; break;*/
} else if (StrUtil.isBlank(temp.getLoginName())) { } else if (StrUtil.isBlank(temp.getLoginName())) {
temp.setResult("获取不到该用户的出生日期"); temp.setResult("获取不到该用户的工号");
errorInfos.add(temp); errorInfos.add(temp);
break; break;
}else if (StrUtil.isBlank(temp.getThirtyCertificateProcessingTime())) { }else if (StrUtil.isBlank(temp.getThirtyCertificateProcessingTime())) {
@@ -3,7 +3,7 @@ const ACTIVITY_CULTURE_INFO_ACTIVITY = {
<div> <div>
<div class="process-title"> <div class="process-title">
申请信息 申请信息
<el-link type="primary" @click="openChart">点击查看流程图</el-link> <el-link type="primary" @click="openChart" v-if="viewData.activity_type !== 40001">点击查看流程图</el-link>
</div> </div>
<el-descriptions :column="3" border class="margin-top" style="margin: 10px" title=""> <el-descriptions :column="3" border class="margin-top" style="margin: 10px" title="">
<el-descriptions-item label="活动名称" span="3"> <el-descriptions-item label="活动名称" span="3">
@@ -153,7 +153,7 @@ const singleSignUp = {
</div> </div>
<!-- 分工会报名--> <!-- 分工会报名-->
<div v-else-if="viewData.signUpMethod===3"> <div v-else-if="viewData.signUpMethod===3">
<div class="process-title">选择报名人员,报名人数 <span style="color: red">{{viewData.teamNum}}</span>人 <div class="process-title">选择报名人员
</div> </div>
<el-select <el-select
v-if="inApplyTime" v-if="inApplyTime"
@@ -470,6 +470,7 @@ const singleSignUp = {
if (val) { if (val) {
this.$axios.post("/platform/activity/culture/applyUser/queryTeammate", { this.$axios.post("/platform/activity/culture/applyUser/queryTeammate", {
keyword: val, keyword: val,
tissueId: this.id,
signUpMethod: this.viewData.signUpMethod signUpMethod: this.viewData.signUpMethod
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
@@ -512,7 +513,7 @@ const singleSignUp = {
const union = this.viewData.unionUserNumberLimit.find(v => v.id === this.$store.state.user.union.id) const union = this.viewData.unionUserNumberLimit.find(v => v.id === this.$store.state.user.union.id)
this.viewData.teamNum = union.limitNum this.viewData.teamNum = union.limitNum
this.listTeamUserUnion() this.listTeamUserUnion()
}else{ } else {
this.listTeamUser() this.listTeamUser()
} }
if (this.viewData.formConfig) { if (this.viewData.formConfig) {
@@ -29,8 +29,8 @@ const ACTIVITY_CULTURE_USER_STATISTICS = {
</el-select> </el-select>
</search-item> </search-item>
<search-item label="工会名称" v-if="activity_type===40002||activity_type===40001"> <search-item label="所属工会" v-if="activity_type===40002||activity_type===40001">
<el-select clearable filterable placeholder="请选择工会" <el-select clearable filterable placeholder="请选择所属工会"
style="width: 100%" style="width: 100%"
v-model="pageForm.unionId"> v-model="pageForm.unionId">
<el-option <el-option
@@ -13,7 +13,9 @@ const ARTICLE_INFO = {
<el-descriptions-item label="投稿人联系方式">{{ viewData.mobile }}</el-descriptions-item> <el-descriptions-item label="投稿人联系方式">{{ viewData.mobile }}</el-descriptions-item>
<el-descriptions-item label="稿件修改人联系方式">{{ viewData.mobile2 }}</el-descriptions-item> <el-descriptions-item label="稿件修改人联系方式">{{ viewData.mobile2 }}</el-descriptions-item>
<el-descriptions-item label="投稿标题" :span="2">{{ viewData.title }}</el-descriptions-item> <el-descriptions-item label="投稿标题" :span="2">{{ viewData.title }}</el-descriptions-item>
<el-descriptions-item label="投稿说明" :span="2">{{ viewData.excerpt }}</el-descriptions-item> <el-descriptions-item label="投稿说明" :span="2">
<span style="white-space: pre-line">{{ viewData.excerpt }}</span>
</el-descriptions-item>
<el-descriptions-item label="稿件" :span="2"> <el-descriptions-item label="稿件" :span="2">
<file-preview :files="viewData.files" complete_result></file-preview> <file-preview :files="viewData.files" complete_result></file-preview>
</el-descriptions-item> </el-descriptions-item>
@@ -145,7 +145,7 @@ layout("/layouts/platform.html"){
type: "warning" type: "warning"
}).then(() => { }).then(() => {
this.$axios.post('/platform/article/write/submitAgain', { this.$axios.post('/platform/article/write/submitAgain', {
info: JSON.stringify(this.formData), article: JSON.stringify(this.formData),
taskId: GetQueryString("taskId") taskId: GetQueryString("taskId")
}).then(res => { }).then(res => {
if (res.code === 0) { if (res.code === 0) {
@@ -28,15 +28,8 @@ layout("/layouts/platform.html"){
v-for="item in projectOptions"></el-option> v-for="item in projectOptions"></el-option>
</el-select> </el-select>
</search-item> </search-item>
<search-item label="职工信息"> <search-item label="姓名/工号">
<el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword" <el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
@keyup.enter.native="doSearch" style="width: 100%">
<el-select v-model="pageForm.searchName" slot="prepend"
style="width: 80px;">
<el-option label="姓名" value="hcu.username"></el-option>
<el-option label="工号" value="hcu.loginname"></el-option>
</el-select>
</el-input>
</search-item> </search-item>
<search-item label="所属工会" v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])"> <search-item label="所属工会" v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])">
<el-select placeholder="请选择所属工会" v-model="pageForm.unionId" <el-select placeholder="请选择所属工会" v-model="pageForm.unionId"
@@ -189,7 +182,6 @@ layout("/layouts/platform.html"){
return { return {
pageForm: { pageForm: {
year: moment().format('YYYY'), year: moment().format('YYYY'),
searchName: "hcu.username",
}, },
unions: [], unions: [],
units: [], units: [],
@@ -69,9 +69,9 @@ layout("/layouts/platform.html"){
<span class="ti-angle-down"></span> <span class="ti-angle-down"></span>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="{type:'view',data:row}"> <!-- <el-dropdown-item :command="{type:'view',data:row}">
查看 查看
</el-dropdown-item> </el-dropdown-item>-->
<el-dropdown-item :command="{type:'code',data:row}"> <el-dropdown-item :command="{type:'code',data:row}">
二维码 二维码
</el-dropdown-item> </el-dropdown-item>
@@ -463,6 +463,12 @@ layout("/layouts/platform.html"){
this.conditionStructureDialogVisible = true this.conditionStructureDialogVisible = true
if(row.matchCnd){ if(row.matchCnd){
this.conditionGroup = row.matchCnd this.conditionGroup = row.matchCnd
}else{
this.conditionGroup = {
logic: "AND",
conditions: [],
groups: []
}
} }
// this.$refs.conditionStructureDialog.onOpen(row.matchCnd ? row.matchCnd : null) // this.$refs.conditionStructureDialog.onOpen(row.matchCnd ? row.matchCnd : null)
}, },
@@ -37,15 +37,15 @@ layout("/layouts/platform.html"){
:value="item.id" :key="item.id"></el-option> :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</search-item> </search-item>
<search-item label="所属单位"> <!-- <search-item label="所属单位">
<el-select placeholder="请选择所属单位" v-model="pageForm.unitId" <el-select placeholder="请选择所属单位" v-model="pageForm.unitId"
style="width: 100%;" style="width: 100%;"
clearable clearable
filterable> filterable>
<el-option v-for="item in units" :label="item.name" <el-option v-for="item in units" :label="item.name"
:value="item.id" :key="item.id"></el-option> :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</search-item> </search-item>-->
</search> </search>
</el-card> </el-card>
@@ -80,6 +80,12 @@ layout("/layouts/platform.html"){
type="primary" type="primary"
v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])">一键选择去年数据 v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])">一键选择去年数据
</el-button> </el-button>
<el-button @click="msgNotSelect"
icon="el-icon-printer"
size="small"
type="primary"
v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN'])">给未选发送消息
</el-button>
</template> </template>
<el-button :disabled="!pageForm.projectId" <el-button :disabled="!pageForm.projectId"
@@ -259,6 +265,28 @@ layout("/layouts/platform.html"){
} }
}, },
methods: { methods: {
async msgNotSelect() {
const confirm = await this.$confirm('请确定未选择的教职工发送提醒短信?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm === "confirm") {
this.tableLoading = true
const resp = await $.get(loc() + '/msgNotSelect', {
projectId: this.pageForm.projectId
})
if (resp.code === 0) {
setTimeout(() => {
this.doSearch()
this.tableLoading = false
this.notifySuccess(resp.msg)
}, 2000)
} else {
this.notifyWarning(resp.msg)
}
}
},
async doSelectByAdmin() { async doSelectByAdmin() {
if (!this.noSelectOptionId || !this.campus) { if (!this.noSelectOptionId || !this.campus) {
this.notifyWarning('请选择套餐/院区') this.notifyWarning('请选择套餐/院区')
@@ -298,16 +326,15 @@ layout("/layouts/platform.html"){
type: 'warning' type: 'warning'
}) })
if (confirm === "confirm") { if (confirm === "confirm") {
this.loading = true this.tableLoading = true
const resp = await $.get(loc() + '/selectOptionByLastYear', { const resp = await $.get(loc() + '/selectOptionByLastYear', {
projectId: this.pageForm.projectId projectId: this.pageForm.projectId
}) })
this.tableLoading = false
if (resp.code === 0) { if (resp.code === 0) {
setTimeout(() => { this.doSearch()
this.doSearch()
this.loading = false this.notifySuccess(resp.msg)
this.notifySuccess(resp.msg)
}, 2000)
} else { } else {
this.notifyWarning(resp.msg) this.notifyWarning(resp.msg)
} }
@@ -6,7 +6,7 @@ const info = {
<el-descriptions-item label="年度">{{ viewData.year }}</el-descriptions-item> <el-descriptions-item label="年度">{{ viewData.year }}</el-descriptions-item>
<el-descriptions-item label="编号">{{ viewData.serialNumber }}</el-descriptions-item> <el-descriptions-item label="编号">{{ viewData.serialNumber }}</el-descriptions-item>
<el-descriptions-item label="线路名称">{{ viewData.lineName }}</el-descriptions-item> <el-descriptions-item label="线路名称">{{ viewData.lineName }}</el-descriptions-item>
<el-descriptions-item label="区域性质">{{ viewData.regionalNature }}</el-descriptions-item> <el-descriptions-item></el-descriptions-item>
<el-descriptions-item label="线路内容" :span="2"> <el-descriptions-item label="线路内容" :span="2">
<div v-html="viewData.content"></div> <div v-html="viewData.content"></div>
</el-descriptions-item> </el-descriptions-item>
@@ -17,7 +17,8 @@ const info = {
{{ viewData.travelAgency.travelAgencyName }} {{ viewData.travelAgency.travelAgencyName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="联系人">{{ viewData.travelAgency.contact }}</el-descriptions-item> <el-descriptions-item label="联系人">{{ viewData.travelAgency.contact }}</el-descriptions-item>
<el-descriptions-item label="电话">{{ viewData.travelAgency.contactMobileNumber }}</el-descriptions-item> <el-descriptions-item label="电话">{{ viewData.travelAgency.contactMobileNumber }}
</el-descriptions-item>
<el-descriptions-item label="邮箱">{{ viewData.travelAgency.email }}</el-descriptions-item> <el-descriptions-item label="邮箱">{{ viewData.travelAgency.email }}</el-descriptions-item>
<el-descriptions-item label="官网"> <el-descriptions-item label="官网">
<a :href="viewData.travelAgency.officialWebsite" class="text-primary" target="_blank"> <a :href="viewData.travelAgency.officialWebsite" class="text-primary" target="_blank">
@@ -35,17 +35,8 @@ layout("/layouts/platform.html"){
></el-option> ></el-option>
</el-select> </el-select>
</search-item> </search-item>
<search-item label="报名人"> <search-item label="姓名/工号">
<el-input @keyup.enter.native="doSearch" clearable <el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
placeholder="请输入内容"
v-model="pageForm.searchKeyword">
<el-select placeholder="查询类型" slot="prepend"
style="width: 100px;"
v-model="pageForm.searchName">
<el-option label="姓名" value="info.userName"></el-option>
<el-option label="工号" value="info.loginName"></el-option>
</el-select>
</el-input>
</search-item> </search-item>
<search-item label="所属工会"> <search-item label="所属工会">
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" clearable style="width: 100%" <el-select v-model="pageForm.unionId" placeholder="请选择所属工会" clearable style="width: 100%"
@@ -115,7 +106,7 @@ layout("/layouts/platform.html"){
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row type="flex" justify="end"> <el-row type="flex" justify="end">
<el-button @click="auditDialogVisible=false" size="small">取消</el-button> <el-button @click="$refs.guava.index()" size="small">取消</el-button>
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button> <el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
<el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button> <el-button @click="handleTaskAction(2)" size="small" type="danger">拒绝申请</el-button>
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button> <el-button @click="handleTaskAction(1)" size="small" type="primary">同意申请</el-button>
@@ -141,7 +132,6 @@ layout("/layouts/platform.html"){
pageDataUrl: "/platform/excellentRecuperation/schoolAudit/pageData", pageDataUrl: "/platform/excellentRecuperation/schoolAudit/pageData",
pageForm: { pageForm: {
year: moment().format('YYYY'), year: moment().format('YYYY'),
searchName: "info.userName",
approval: false approval: false
}, },
activityList: [], activityList: [],
@@ -166,7 +156,7 @@ layout("/layouts/platform.html"){
}) })
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
this.auditDialogVisible = false this.$refs.guava.index()
this.$message.success(res.msg) this.$message.success(res.msg)
this.doSearch() this.doSearch()
} }
@@ -35,17 +35,8 @@ layout("/layouts/platform.html"){
></el-option> ></el-option>
</el-select> </el-select>
</search-item> </search-item>
<search-item label="报名人"> <search-item label="姓名/工号">
<el-input @keyup.enter.native="doSearch" clearable <el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
placeholder="请输入内容"
v-model="pageForm.searchKeyword">
<el-select placeholder="查询类型" slot="prepend"
style="width: 100px;"
v-model="pageForm.searchName">
<el-option label="姓名" value="info.userName"></el-option>
<el-option label="工号" value="info.loginName"></el-option>
</el-select>
</el-input>
</search-item> </search-item>
<search-item label="所属工会"> <search-item label="所属工会">
<el-select v-model="pageForm.unionId" placeholder="请选择所属工会" clearable style="width: 100%" <el-select v-model="pageForm.unionId" placeholder="请选择所属工会" clearable style="width: 100%"
@@ -109,7 +100,6 @@ layout("/layouts/platform.html"){
pageDataUrl: "/platform/excellentRecuperation/summary/pageData", pageDataUrl: "/platform/excellentRecuperation/summary/pageData",
pageForm: { pageForm: {
year: moment().format('YYYY'), year: moment().format('YYYY'),
searchName: "info.userName",
}, },
activityList: [], activityList: [],
unionOptions: [], unionOptions: [],
@@ -21,8 +21,8 @@ layout("/layouts/platform.html"){
value-format="yyyy" value-format="yyyy"
></el-date-picker> ></el-date-picker>
</search-item> </search-item>
<search-item label="关键字"> <search-item label="旅行社">
<el-input placeholder="请输入旅行社名称或联系人查询" clearable v-model="pageForm.searchKeyword" <el-input placeholder="请输入旅行社查询" clearable v-model="pageForm.searchKeyword"
@keyup.enter.native="doSearch"></el-input> @keyup.enter.native="doSearch"></el-input>
</search-item> </search-item>
</search> </search>
@@ -7,7 +7,7 @@ layout("/layouts/platform.html"){
<template> <template>
<el-card shadow="never"> <el-card shadow="never">
<search @search="doSearch"> <search @search="doSearch">
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword" <el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"
style="width: 100%"> style="width: 100%">
</el-input> </el-input>
@@ -142,7 +142,7 @@ layout("/layouts/platform.html"){
<template #edit> <template #edit>
<file-import ref="viewImport" temp_url="/platform/thirtyTeach/manage/downloadImportTemp" <file-import ref="viewImport" temp_url="/platform/thirtyTeach/manage/downloadImportTemp"
post_url="/platform/thirtyTeach/manage/doImport" is_show_radio post_url="/platform/thirtyTeach/manage/doImport" is_show_radio
@flush="$refs.guava.index();pageData()" @flush="pageData()"
></file-import> ></file-import>
</template> </template>
</guava> </guava>
@@ -279,7 +279,7 @@ 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 v-if="viewData.userNumberLimit===2">
,报名人数 <span style="color: red"> ,报名人数 <span style="color: red">
{{viewData.unionTeamNum}}</span> {{viewData.unionTeamNum}}</span>
@@ -709,6 +709,7 @@ layout("/layouts/platform_h5.html"){
if (val) { if (val) {
this.$axios.post("/platform/activity/culture/applyUser/queryTeammate", { this.$axios.post("/platform/activity/culture/applyUser/queryTeammate", {
keyword: val, keyword: val,
tissueId: this.id,
signUpMethod: this.viewData.signUpMethod signUpMethod: this.viewData.signUpMethod
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
@@ -3,65 +3,7 @@ layout("/layouts/platform_h5.html"){
#--> #-->
<style> <style>
.list-card {
position: relative;
margin: 10px;
background-color: #fff;
border-radius: 6px;
box-shadow: 0 8px 12px #ebedf0;
width: auto;
}
.list-card > .content {
padding: 8px 5px;
display: flex;
max-height: 100px;
}
.content-right {
width: calc(100% - 150px);
max-width: calc(100% - 150px);
padding-left: 15px;
overflow: hidden;
text-overflow: ellipsis;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.cr-title {
line-height: 20px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-weight: bold;
}
.concat, .mobile, .union {
font-size: 13px;
line-height: 18px;
width: 100%;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.desc_info div {
font-size: 12px;
}
.tag {
position: absolute;
display: inline-block;
background-color: #1867b0;
color: #fff;
font-size: 14px;
top: 0px;
border-radius: 6px;
right: -3px;
padding: 0px 6px;
transform: rotate(16deg);
}
</style> </style>
@@ -84,48 +26,22 @@ layout("/layouts/platform_h5.html"){
</van-sticky> </van-sticky>
<table-list api="/platform/healthCheckup/h5/pageData" :page_form.sync="pageForm" ref="tableListRef" <table-list api="/platform/healthCheckup/h5/pageData" :page_form.sync="pageForm" ref="tableListRef"
@ready="doSearch"> @ready="doSearch" img="cover">
<template v-slot="{index,row}"> <template v-slot="{index,row}">
<div class="list-card"> <table-column label="开始时间">
<div class="content" @click="viewProjectDetail(row)"> {{$moment(row.choiceTimeStart).format('MM/DD HH:mm')}}
<van-image </table-column>
height="76" <table-column label="结束时间">
radius="8" {{$moment(row.choiceTimeEnd).format('MM/DD HH:mm')}}
:src="row.cover" </table-column>
width="100" </template>
fit="cover"> <template #actions="{index,row}">
<template #loading> <template v-if="$moment().isBefore($moment(row.choiceTimeEnd))">
<van-loading type="spinner" size="20" /> <div class="action-btn" @click="onView(row)">
</template> <i class="fa fa-edit"></i>
<template #error> <span>去报名</span>
<div style="font-size: 12px; color: #999;">暂无图片</div>
</template>
</van-image>
<div class="content-right">
<div v-if="row.selectCount <= 0" class="tag">未选择</div>
<div v-else class="tag" style="background-color: green">已选择</div>
<div class="cr-title">
<span>{{row.name}}</span>
</div>
<div class="desc_info">
<div class="concat">
<span>开始时间:</span>
{{row.choiceTimeStart}}
</div>
<div class="mobile">
<span>结束时间:</span>
{{row.choiceTimeEnd}}
</div>
</div>
</div>
</div> </div>
<div style="text-align: right; padding: 0 10px 10px 0;"> </template>
<div class="action-btn" @click="onView(row)">
<i class="fa fa-edit"></i>
<span>报名</span>
</div>
</div>
</div>
</template> </template>
</table-list> </table-list>