导出
This commit is contained in:
+55
-29
@@ -1,10 +1,10 @@
|
|||||||
package io.v.nutz.zhgh.activity.controller.school;
|
package io.v.nutz.zhgh.activity.controller.school;
|
||||||
|
|
||||||
import cn.afterturn.easypoi.entity.ImageEntity;
|
|
||||||
import cn.wizzer.framework.base.Result;
|
import cn.wizzer.framework.base.Result;
|
||||||
import com.deepoove.poi.XWPFTemplate;
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
import com.deepoove.poi.config.Configure;
|
import com.deepoove.poi.config.Configure;
|
||||||
import com.deepoove.poi.data.PictureRenderData;
|
import com.deepoove.poi.data.PictureRenderData;
|
||||||
|
import com.deepoove.poi.data.PictureType;
|
||||||
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
||||||
import io.v.nutz.base.annontation.ViReturn;
|
import io.v.nutz.base.annontation.ViReturn;
|
||||||
import io.v.nutz.base.dao.CndPlus;
|
import io.v.nutz.base.dao.CndPlus;
|
||||||
@@ -18,16 +18,14 @@ import io.v.nutz.sys.models.Sys_file;
|
|||||||
import io.v.nutz.sys.models.Sys_unit;
|
import io.v.nutz.sys.models.Sys_unit;
|
||||||
import io.v.nutz.sys.models.Sys_user;
|
import io.v.nutz.sys.models.Sys_user;
|
||||||
import io.v.nutz.sys.services.SysUserService;
|
import io.v.nutz.sys.services.SysUserService;
|
||||||
import io.v.nutz.web.commons.base.Globals;
|
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import io.v.nutz.zhgh.activity.models.*;
|
import io.v.nutz.zhgh.activity.models.*;
|
||||||
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
|
import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService;
|
||||||
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
|
import io.v.nutz.zhgh.activity.services.ActivitySchoolService;
|
||||||
import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
|
import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.ddr.poi.html.HtmlRenderPolicy;
|
|
||||||
import org.nutz.aop.interceptor.async.Async;
|
|
||||||
import org.nutz.boot.starter.ftp.FtpService;
|
import org.nutz.boot.starter.ftp.FtpService;
|
||||||
import org.nutz.dao.Chain;
|
import org.nutz.dao.Chain;
|
||||||
import org.nutz.dao.Cnd;
|
import org.nutz.dao.Cnd;
|
||||||
@@ -46,15 +44,14 @@ import org.nutz.mvc.annotation.At;
|
|||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.awt.image.BufferedImage;
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Aaron
|
* @author: Aaron
|
||||||
@@ -62,6 +59,7 @@ import java.util.stream.Collectors;
|
|||||||
* @description: 活动报名
|
* @description: 活动报名
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@IocBean
|
@IocBean
|
||||||
@Ok("json:full")
|
@Ok("json:full")
|
||||||
@At("/platform/activity/apply")
|
@At("/platform/activity/apply")
|
||||||
@@ -70,23 +68,16 @@ public class ActivityApplyController {
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ActivitySchoolService activitySchoolService;
|
private ActivitySchoolService activitySchoolService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected SysUserService sysUserService;
|
protected SysUserService sysUserService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ActivitySchoolApplyService activitySchoolApplyService;
|
private ActivitySchoolApplyService activitySchoolApplyService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ActivitySchoolTeamService activitySchoolTeamService;
|
private ActivitySchoolTeamService activitySchoolTeamService;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private SimpleService simpleService;
|
private SimpleService simpleService;
|
||||||
|
|
||||||
@Inject("ActivitySchoolEvent")
|
@Inject("ActivitySchoolEvent")
|
||||||
private ViService<ActivitySchoolEvent> activitySchoolEventViService;
|
private ViService<ActivitySchoolEvent> activitySchoolEventViService;
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private OfficeTemplateUtil officeTemplateUtil;
|
private OfficeTemplateUtil officeTemplateUtil;
|
||||||
@Inject
|
@Inject
|
||||||
@@ -888,6 +879,12 @@ public class ActivityApplyController {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载签名告知书
|
||||||
|
* @param activityId
|
||||||
|
* @param response
|
||||||
|
*/
|
||||||
@At
|
@At
|
||||||
@Ok(("void"))
|
@Ok(("void"))
|
||||||
@RequiresPermissions("activity.apply")
|
@RequiresPermissions("activity.apply")
|
||||||
@@ -896,26 +893,44 @@ public class ActivityApplyController {
|
|||||||
ActivitySchool school = simpleService.dao().fetch(ActivitySchool.class, activityId);
|
ActivitySchool school = simpleService.dao().fetch(ActivitySchool.class, activityId);
|
||||||
List<ActivitySchoolApply> schoolApplyList = simpleService.dao().query(ActivitySchoolApply.class,
|
List<ActivitySchoolApply> schoolApplyList = simpleService.dao().query(ActivitySchoolApply.class,
|
||||||
Cnd.where("activityId", "=", activityId)
|
Cnd.where("activityId", "=", activityId)
|
||||||
.and("status", "=", 2)
|
.and("status", "=", 2).and("unionId", "=", Vi.getUnionId())
|
||||||
.and("applyUserSign", "is not", null));
|
.and("applyUserSign", "is not", null));
|
||||||
|
|
||||||
List<NutMap> signList = new ArrayList<>();
|
|
||||||
for (int i = 0; i < schoolApplyList.size(); i++) {
|
|
||||||
ActivitySchoolApply apply = schoolApplyList.get(i);
|
|
||||||
ByteArrayOutputStream signOs = new ByteArrayOutputStream();
|
|
||||||
ftpService.download(apply.getApplyUserSign(), signOs);
|
|
||||||
ByteArrayInputStream bais = new ByteArrayInputStream(signOs.toByteArray());
|
|
||||||
BufferedImage bufferImg = ImageIO.read(bais);
|
|
||||||
|
|
||||||
/*byte[] bytes = Base64.getDecoder().decode(bufferImg.toByteArray());
|
List<NutMap> signList = schoolApplyList.stream().map(v -> {
|
||||||
signList.add(NutMap.NEW().addv("sign", new PictureRenderData(70, 30, ".png", bytes)));*/
|
try {
|
||||||
|
PictureRenderData image = getImage(v.getApplyUserSign());
|
||||||
|
return NutMap.NEW().setv("image", image);
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("下载签名失败", e);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
}).filter(Objects::nonNull).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
|
|
||||||
Configure config = Configure.newBuilder().bind("signList", policy).build();
|
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
// 平均分组签字
|
||||||
|
int totalSize = signList.size();
|
||||||
|
// 计算每个子列表的大小
|
||||||
|
int chunkSize = (int) Math.ceil(totalSize / 4.0);
|
||||||
|
|
||||||
|
List<List<NutMap>> collect = IntStream.range(0, 4)
|
||||||
|
.mapToObj(i -> {
|
||||||
|
int start = i * chunkSize;
|
||||||
|
int end = Math.min((i + 1) * chunkSize, totalSize);
|
||||||
|
return start < totalSize ? new ArrayList<>(signList.subList(start, end)) : List.of(NutMap.NEW());
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
for (int i = 0; i < collect.size(); i++) {
|
||||||
|
map.put("signList" + i, collect.get(i));
|
||||||
|
}
|
||||||
|
HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
|
||||||
|
Configure config = Configure.newBuilder().bind("signList0", policy).bind("signList1", policy)
|
||||||
|
.bind("signList2", policy).bind("signList3", policy).build();
|
||||||
|
// HtmlRenderPolicy policy = new HtmlRenderPolicy();
|
||||||
|
// Configure config = Configure.newBuilder().bind("signList", policy).build();
|
||||||
map.put("activityName", school.getName());
|
map.put("activityName", school.getName());
|
||||||
map.put("signList", signList);
|
map.put("dateTime", cn.hutool.core.date.DateUtil.format(new Date(), "yyyy年MM月dd日"));
|
||||||
response.addHeader("Content-Type", "application/octet-stream");
|
response.addHeader("Content-Type", "application/octet-stream");
|
||||||
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String((school.getName() + "自愿参赛责任及风险告知书").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1) + "\".docx");
|
response.addHeader("Content-Disposition", "attachment; filename=\"" + new String((school.getName() + "自愿参赛责任及风险告知书").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1) + "\".docx");
|
||||||
ServletOutputStream outputStream = response.getOutputStream();
|
ServletOutputStream outputStream = response.getOutputStream();
|
||||||
@@ -923,8 +938,19 @@ public class ActivityApplyController {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private PictureRenderData getImage(String base64) throws IOException {
|
||||||
|
if (base64.startsWith("data:")) {
|
||||||
|
String s = base64.split(",")[1];
|
||||||
|
byte[] bytes = Base64.getDecoder().decode(s);
|
||||||
|
return new PictureRenderData(70, 30, ".png", bytes);
|
||||||
|
} else {
|
||||||
|
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||||
|
ftpService.download(base64, os);
|
||||||
|
os.close();
|
||||||
|
return new PictureRenderData(70, 30, PictureType.PNG, os.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -235,12 +235,19 @@ layout("/layouts/platform.html"){
|
|||||||
.format('YYYY/MM/DD HH:mm')}} 至
|
.format('YYYY/MM/DD HH:mm')}} 至
|
||||||
{{moment(item.applyEndTime).format('YYYY/MM/DD HH:mm')}}
|
{{moment(item.applyEndTime).format('YYYY/MM/DD HH:mm')}}
|
||||||
</div>
|
</div>
|
||||||
<div class="text item" v-if="item.isSign">
|
<div class="text item" v-if="item.isSign" style="display: flex;justify-content: space-around;">
|
||||||
<div style="display: flex;justify-content: flex-end">
|
<div>
|
||||||
|
<el-button @click.stop="doExport"
|
||||||
|
size="mini"
|
||||||
|
type="primary">
|
||||||
|
下载风险告知书(签名)
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<el-button @click.stop="openPromiseBook(item)"
|
<el-button @click.stop="openPromiseBook(item)"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary">
|
type="primary">
|
||||||
上传风险告知书
|
上传风险告知书(盖章)
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<!-- <span style="color: gray">活动时间:</span>
|
<!-- <span style="color: gray">活动时间:</span>
|
||||||
@@ -762,7 +769,7 @@ layout("/layouts/platform.html"){
|
|||||||
type="primary"
|
type="primary"
|
||||||
size="small"
|
size="small"
|
||||||
@click="doExport"
|
@click="doExport"
|
||||||
>下载风险告知书
|
>下载风险告知书(签名)
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</vi-title2>
|
</vi-title2>
|
||||||
|
|||||||
@@ -55,8 +55,7 @@ layout("/layouts/platform.html"){
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="changeLevel"
|
@change="changeLevel"
|
||||||
>
|
>
|
||||||
<el-option v-for="item in activityTypeList" :key="item.code"
|
<el-option v-for="item in activityTypeList" :key="item.code" :label="item.name" :value="item.code"></el-option>
|
||||||
:label="item.name" :value="item.code"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,18 +68,13 @@ layout("/layouts/platform.html"){
|
|||||||
placeholder="请选择活动"
|
placeholder="请选择活动"
|
||||||
@change="getData()"
|
@change="getData()"
|
||||||
>
|
>
|
||||||
<el-option v-for="item in activities" :label="item.name"
|
<el-option v-for="item in activities" :label="item.name" :value="item.id"></el-option>
|
||||||
:value="item.id"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search-item">
|
<div class="search-item">
|
||||||
<div class="search-item-label" v-if="pageForm.activityLevel!=='40003'">
|
<div class="search-item-label" v-if="pageForm.activityLevel!=='40003'">基层工会</div>
|
||||||
基层工会
|
<div class="search-item-label" v-if="pageForm.activityLevel==='40003'">协会名称</div>
|
||||||
</div>
|
|
||||||
<div class="search-item-label" v-if="pageForm.activityLevel==='40003'">
|
|
||||||
协会名称
|
|
||||||
</div>
|
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-select
|
<el-select
|
||||||
style="width: 100%; font-weight: bold"
|
style="width: 100%; font-weight: bold"
|
||||||
@@ -91,8 +85,7 @@ layout("/layouts/platform.html"){
|
|||||||
@change="changeVVV"
|
@change="changeVVV"
|
||||||
@clear="changeVVV"
|
@clear="changeVVV"
|
||||||
>
|
>
|
||||||
<el-option v-for="item in unions" :key="item.id"
|
<el-option v-for="item in unions" :key="item.id" :label="item.unionname" :value="item.id"></el-option>
|
||||||
:label="item.unionname" :value="item.id"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -102,10 +95,8 @@ layout("/layouts/platform.html"){
|
|||||||
<div class="search-item-label">报名状态</div>
|
<div class="search-item-label">报名状态</div>
|
||||||
<div class="search-item-option">
|
<div class="search-item-option">
|
||||||
<el-radio-group v-model="pageForm.applyed">
|
<el-radio-group v-model="pageForm.applyed">
|
||||||
<el-radio style="background-color: white" label="1" border>未报名
|
<el-radio style="background-color: white" label="1" border>未报名</el-radio>
|
||||||
</el-radio>
|
<el-radio style="background-color: white" label="2" border>已报名</el-radio>
|
||||||
<el-radio style="background-color: white" label="2" border>已报名
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -129,48 +120,41 @@ layout("/layouts/platform.html"){
|
|||||||
<el-card shadow="never" class="mt10 d" style="padding: 20px">
|
<el-card shadow="never" class="mt10 d" style="padding: 20px">
|
||||||
<el-row :gutter="20" class="el-row-title" style="margin-left: 0; margin-right: 0">
|
<el-row :gutter="20" class="el-row-title" style="margin-left: 0; margin-right: 0">
|
||||||
<el-col :span="2">序号</el-col>
|
<el-col :span="2">序号</el-col>
|
||||||
<el-col :span="4">年度</el-col>
|
<el-col :span="2">年度</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<span v-if="pageForm.activityLevel!=='40003'">基层工会名称</span>
|
<span v-if="pageForm.activityLevel!=='40003'">基层工会名称</span>
|
||||||
<span v-if="pageForm.activityLevel==='40003'">协会名称</span>
|
<span v-if="pageForm.activityLevel==='40003'">协会名称</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">活动名称</el-col>
|
<el-col :span="6">活动名称</el-col>
|
||||||
<el-col :span="4">人数</el-col>
|
<el-col :span="4">人数</el-col>
|
||||||
<el-col :span="2">
|
<el-col :span="4">
|
||||||
<!-- <el-button style="position: absolute;right: 0px" plain size="small" icon="el-icon-printer"
|
<!-- <el-button style="position: absolute;right: 0px" plain size="small" icon="el-icon-printer"
|
||||||
type="primary" @click="doExport">导 出
|
type="primary" @click="doExport">导 出
|
||||||
</el-button>-->
|
</el-button>-->
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table :data="[]" size="mini" v-if="noneData||tabLoading"
|
<el-table :data="[]" size="mini" v-if="noneData||tabLoading" v-loading="tabLoading"></el-table>
|
||||||
v-loading="tabLoading"></el-table>
|
|
||||||
|
|
||||||
<el-card v-else class="box-card mb10" v-for="app,tabIdx in apply" shadow="hover"
|
<el-card v-else class="box-card mb10" v-for="app,tabIdx in apply" shadow="hover" v-loading="tabLoading">
|
||||||
v-loading="tabLoading">
|
|
||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="2">{{tabIdx + 1}}</el-col>
|
<el-col :span="2">{{tabIdx + 1}}</el-col>
|
||||||
<el-col :span="2">{{pageForm.year}}</el-col>
|
<el-col :span="2">{{pageForm.year}}</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">{{isDisPlayCode?'('+app.unioncode+')':null}}{{app.unionname}}</el-col>
|
||||||
{{isDisPlayCode?'('+app.unioncode+')':null}}{{app.unionname}}
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">{{pageForm.activityName || '暂无'}}</el-col>
|
<el-col :span="6">{{pageForm.activityName || '暂无'}}</el-col>
|
||||||
<el-col :span="4">{{app.num |money}} 人({{(app.promiseBookFiles&&app.promiseBookFiles.length>0)?'已上传承诺书':'未上传'}})</el-col>
|
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-button @click="openPromiseBook(app)"
|
{{app.num |money}} 人({{(app.promiseBookFiles&&app.promiseBookFiles.length>0)?'已上传风险告知书':'未上传'}})
|
||||||
style="float: right; padding: 3px 5px"
|
</el-col>
|
||||||
type="text">查看承诺书
|
<el-col :span="4">
|
||||||
</el-button>
|
<el-button @click="openPromiseBook(app)" style="float: right; padding: 3px 5px" type="text">查看风险告知书</el-button>
|
||||||
<el-button style="float: right; padding: 3px 5px"
|
<el-button style="float: right; padding: 3px 5px" @click="$set(app,'show',!app.show)" type="text">
|
||||||
@click="$set(app,'show',!app.show)" type="text">
|
|
||||||
{{app.show?'折叠':'展开'}}
|
{{app.show?'折叠':'展开'}}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<transition name="el-fade-in-linear">
|
<transition name="el-fade-in-linear">
|
||||||
<div v-show="app.show" class="text item transition-box"
|
<div v-show="app.show" class="text item transition-box" style="padding: 20px 20px">
|
||||||
style="padding: 20px 20px">
|
|
||||||
<el-timeline v-if="pageForm.applyType===1||pageForm.applyType===3">
|
<el-timeline v-if="pageForm.applyType===1||pageForm.applyType===3">
|
||||||
<!-- <el-timeline-item timestamp="领队信息" placement="top" v-if="app.leader.username!=null">
|
<!-- <el-timeline-item timestamp="领队信息" placement="top" v-if="app.leader.username!=null">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
@@ -244,8 +228,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-timeline-item>-->
|
</el-timeline-item>-->
|
||||||
|
|
||||||
<el-timeline-item timestamp="运动员信息" placement="top">
|
<el-timeline-item timestamp="运动员信息" placement="top">
|
||||||
<el-table border stripe :data="app.apply2" size="mini"
|
<el-table border stripe :data="app.apply2" size="mini" :key="tableKey">
|
||||||
:key="tableKey">
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
type="index"
|
type="index"
|
||||||
label="序号"
|
label="序号"
|
||||||
@@ -268,8 +251,7 @@ layout("/layouts/platform.html"){
|
|||||||
<span v-if="row.team">{{ row.team }}</span>
|
<span v-if="row.team">{{ row.team }}</span>
|
||||||
<span v-if="!row.team">暂无</span>
|
<span v-if="!row.team">暂无</span>
|
||||||
</template>
|
</template>
|
||||||
<template scope="{row:{projectType}}"
|
<template scope="{row:{projectType}}" v-else-if="column.prop=='projectType'">
|
||||||
v-else-if="column.prop=='projectType'">
|
|
||||||
{{projectType==1?'单项':'团体'}}
|
{{projectType==1?'单项':'团体'}}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -279,23 +261,12 @@ layout("/layouts/platform.html"){
|
|||||||
<span v-else class="text-danger">否</span>
|
<span v-else class="text-danger">否</span>
|
||||||
</template>-->
|
</template>-->
|
||||||
|
|
||||||
<template scope="{row}"
|
<template scope="{row}" v-else-if="column.prop=='identity'">
|
||||||
v-else-if="column.prop=='identity'">
|
<el-tag v-if="row.identity.includes(1)" effect="light">运动员</el-tag>
|
||||||
<el-tag v-if="row.identity.includes(1)"
|
<el-tag v-if="row.identity.includes(2)" type="success" effect="light">教练</el-tag>
|
||||||
effect="light">运动员
|
<el-tag v-if="row.identity.includes(3)" type="warning" effect="light">领队</el-tag>
|
||||||
</el-tag>
|
<el-tag v-if="row.identity.includes(4)" type="warning" effect="light">处级领导</el-tag>
|
||||||
<el-tag v-if="row.identity.includes(2)"
|
<el-tag v-if="row.identity.includes(5)" type="warning" effect="light">替补</el-tag>
|
||||||
type="success" effect="light">教练
|
|
||||||
</el-tag>
|
|
||||||
<el-tag v-if="row.identity.includes(3)"
|
|
||||||
type="warning" effect="light">领队
|
|
||||||
</el-tag>
|
|
||||||
<el-tag v-if="row.identity.includes(4)"
|
|
||||||
type="warning" effect="light">处级领导
|
|
||||||
</el-tag>
|
|
||||||
<el-tag v-if="row.identity.includes(5)"
|
|
||||||
type="warning" effect="light">替补
|
|
||||||
</el-tag>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -303,141 +274,93 @@ layout("/layouts/platform.html"){
|
|||||||
</el-timeline>
|
</el-timeline>
|
||||||
|
|
||||||
<el-timeline v-else-if="pageForm.applyType===2">
|
<el-timeline v-else-if="pageForm.applyType===2">
|
||||||
<el-timeline-item timestamp="领队信息" placement="top"
|
<el-timeline-item timestamp="领队信息" placement="top" v-if="app.leader.username!=null">
|
||||||
v-if="app.leader.username!=null">
|
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-form label-suffix=":" label-position="right"
|
<el-form label-suffix=":" label-position="right" label-width="80px" style="margin-top: 30px">
|
||||||
label-width="80px" style="margin-top: 30px">
|
|
||||||
<el-row gutter="20">
|
<el-row gutter="20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="姓名">{{
|
<el-form-item label="姓名">{{ app.leader.username | str }}</el-form-item>
|
||||||
app.leader.username | str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="性别">{{ app.leader.sex |
|
<el-form-item label="性别">{{ app.leader.sex | str }}</el-form-item>
|
||||||
str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="工号">{{
|
<el-form-item label="工号">{{ app.leader.loginname | str }}</el-form-item>
|
||||||
app.leader.loginname | str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="电话">{{ app.leader.mobile
|
<el-form-item label="电话">{{ app.leader.mobile | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="单位">{{
|
<el-form-item label="单位">{{ app.leader.unitname | str }}</el-form-item>
|
||||||
app.leader.unitname | str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
<el-timeline-item timestamp="教练信息" placement="top"
|
<el-timeline-item timestamp="教练信息" placement="top" v-if="app.coach.username!=null">
|
||||||
v-if="app.coach.username!=null">
|
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-form label-suffix=":" label-position="right"
|
<el-form label-suffix=":" label-position="right" label-width="80px" style="margin-top: 30px">
|
||||||
label-width="80px" style="margin-top: 30px">
|
|
||||||
<el-row gutter="20">
|
<el-row gutter="20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="姓名">{{ app.coach.username
|
<el-form-item label="姓名">{{ app.coach.username | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="性别">{{ app.coach.sex |
|
<el-form-item label="性别">{{ app.coach.sex | str }}</el-form-item>
|
||||||
str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="工号">{{
|
<el-form-item label="工号">{{ app.coach.loginname | str }}</el-form-item>
|
||||||
app.coach.loginname | str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="电话">{{ app.coach.mobile |
|
<el-form-item label="电话">{{ app.coach.mobile | str }}</el-form-item>
|
||||||
str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="单位">{{ app.coach.unitname
|
<el-form-item label="单位">{{ app.coach.unitname | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
<el-timeline-item timestamp="团长信息" placement="top"
|
<el-timeline-item timestamp="团长信息" placement="top" v-if="app.head.username!=null">
|
||||||
v-if="app.head.username!=null">
|
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-form label-suffix=":" label-position="right"
|
<el-form label-suffix=":" label-position="right" label-width="80px" style="margin-top: 30px">
|
||||||
label-width="80px" style="margin-top: 30px">
|
|
||||||
<el-row gutter="20">
|
<el-row gutter="20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="姓名">{{ app.head.username
|
<el-form-item label="姓名">{{ app.head.username | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="性别">{{ app.head.sex | str
|
<el-form-item label="性别">{{ app.head.sex | str }}</el-form-item>
|
||||||
}}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="工号">{{ app.head.loginname
|
<el-form-item label="工号">{{ app.head.loginname | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="电话">{{ app.head.mobile |
|
<el-form-item label="电话">{{ app.head.mobile | str }}</el-form-item>
|
||||||
str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="单位">{{ app.head.unitname
|
<el-form-item label="单位">{{ app.head.unitname | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
<el-timeline-item timestamp="工作人员信息" placement="top"
|
<el-timeline-item timestamp="工作人员信息" placement="top" v-if="app.staff.username!=null">
|
||||||
v-if="app.staff.username!=null">
|
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-form label-suffix=":" label-position="right"
|
<el-form label-suffix=":" label-position="right" label-width="80px" style="margin-top: 30px">
|
||||||
label-width="80px" style="margin-top: 30px">
|
|
||||||
<el-row gutter="20">
|
<el-row gutter="20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="姓名">{{ app.staff.username
|
<el-form-item label="姓名">{{ app.staff.username | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="性别">{{ app.staff.sex |
|
<el-form-item label="性别">{{ app.staff.sex | str }}</el-form-item>
|
||||||
str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="工号">{{
|
<el-form-item label="工号">{{ app.staff.loginname | str }}</el-form-item>
|
||||||
app.staff.loginname | str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="电话">{{ app.staff.mobile |
|
<el-form-item label="电话">{{ app.staff.mobile | str }}</el-form-item>
|
||||||
str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-form-item label="单位">{{ app.staff.unitname
|
<el-form-item label="单位">{{ app.staff.unitname | str }}</el-form-item>
|
||||||
| str }}
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -491,8 +414,7 @@ layout("/layouts/platform.html"){
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table border stripe :data="app.apply2" size="mini"
|
<el-table border stripe :data="app.apply2" size="mini" :key="tableKey">
|
||||||
:key="tableKey">
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
type="index"
|
type="index"
|
||||||
label="序号"
|
label="序号"
|
||||||
@@ -523,28 +445,16 @@ layout("/layouts/platform.html"){
|
|||||||
<span v-else class="text-danger">否</span>
|
<span v-else class="text-danger">否</span>
|
||||||
</template>-->
|
</template>-->
|
||||||
|
|
||||||
<template scope="{row:{projectType}}"
|
<template scope="{row:{projectType}}" v-else-if="column.prop=='projectType'">
|
||||||
v-else-if="column.prop=='projectType'">
|
|
||||||
{{projectType==1?'单项':'团体'}}
|
{{projectType==1?'单项':'团体'}}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template scope="{row}"
|
<template scope="{row}" v-else-if="column.prop=='identity'">
|
||||||
v-else-if="column.prop=='identity'">
|
<el-tag v-if="row.identity.includes(1)" effect="light">运动员</el-tag>
|
||||||
<el-tag v-if="row.identity.includes(1)"
|
<el-tag v-if="row.identity.includes(2)" type="success" effect="light">教练</el-tag>
|
||||||
effect="light">运动员
|
<el-tag v-if="row.identity.includes(3)" type="warning" effect="light">领队</el-tag>
|
||||||
</el-tag>
|
<el-tag v-if="row.identity.includes(4)" type="warning" effect="light">处级领导</el-tag>
|
||||||
<el-tag v-if="row.identity.includes(2)"
|
<el-tag v-if="row.identity.includes(5)" type="warning" effect="light">替补</el-tag>
|
||||||
type="success" effect="light">教练
|
|
||||||
</el-tag>
|
|
||||||
<el-tag v-if="row.identity.includes(3)"
|
|
||||||
type="warning" effect="light">领队
|
|
||||||
</el-tag>
|
|
||||||
<el-tag v-if="row.identity.includes(4)"
|
|
||||||
type="warning" effect="light">处级领导
|
|
||||||
</el-tag>
|
|
||||||
<el-tag v-if="row.identity.includes(5)"
|
|
||||||
type="warning" effect="light">替补
|
|
||||||
</el-tag>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -587,9 +497,7 @@ layout("/layouts/platform.html"){
|
|||||||
name="file"
|
name="file"
|
||||||
ref="upload"
|
ref="upload"
|
||||||
>
|
>
|
||||||
<el-button icon="el-icon-upload" size="medium" style="width: 200px" type="">
|
<el-button icon="el-icon-upload" size="medium" style="width: 200px" type="">选择文件</el-button>
|
||||||
选择文件
|
|
||||||
</el-button>
|
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-timeline-item>
|
</el-timeline-item>
|
||||||
@@ -601,18 +509,9 @@ layout("/layouts/platform.html"){
|
|||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog :append-to-body="false" :close-on-click-modal="false" :visible.sync="promiseBookDialogVisible" title="参赛风险告知书" width="30%">
|
||||||
:append-to-body="false"
|
<file-upload :files="promiseBookFileList" view v-if="promiseBookFileList&&promiseBookFileList.length>0"></file-upload>
|
||||||
:close-on-click-modal="false"
|
<span v-if="promiseBookFileList&&promiseBookFileList.length===0">暂无风险告知书</span>
|
||||||
:visible.sync="promiseBookDialogVisible"
|
|
||||||
title="参赛承诺书"
|
|
||||||
width="30%"
|
|
||||||
>
|
|
||||||
<file-upload :files="promiseBookFileList" view v-if="promiseBookFileList&&promiseBookFileList.length>0">
|
|
||||||
</file-upload>
|
|
||||||
<span v-if="promiseBookFileList&&promiseBookFileList.length===0">
|
|
||||||
暂无承诺书
|
|
||||||
</span>
|
|
||||||
<span class="dialog-footer" slot="footer">
|
<span class="dialog-footer" slot="footer">
|
||||||
<el-button @click="promiseBookDialogVisible = false" type="primary">关 闭</el-button>
|
<el-button @click="promiseBookDialogVisible = false" type="primary">关 闭</el-button>
|
||||||
</span>
|
</span>
|
||||||
@@ -669,7 +568,7 @@ layout("/layouts/platform.html"){
|
|||||||
fileVisible: false,
|
fileVisible: false,
|
||||||
|
|
||||||
promiseBookFileList: [],
|
promiseBookFileList: [],
|
||||||
promiseBookDialogVisible: false,
|
promiseBookDialogVisible: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
Reference in New Issue
Block a user