Merge branch 'main' of https://dd3skj.picp.vip/zhaoxinyu/v4
# Conflicts: # src/main/resources/views/platform/zhghh5/sys/home/todo.js
This commit is contained in:
+5
-5
@@ -42,7 +42,7 @@ import java.util.List;
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@Api(tags = "慈善捐款明细")
|
||||
@Api(tags = "慈善捐助明细")
|
||||
@At("/platform/contribution/detailed")
|
||||
public class ContributionDetailedController {
|
||||
|
||||
@@ -86,9 +86,9 @@ public class ContributionDetailedController {
|
||||
|
||||
List<ExcelExportEntity> entityList = new ArrayList<>();
|
||||
entityList.add(new ExcelExportEntity("序号", "index", 10));
|
||||
entityList.add(new ExcelExportEntity("捐款项目", "contributionName", 20));
|
||||
entityList.add(new ExcelExportEntity("捐款人工号", "loginName", 20));
|
||||
entityList.add(new ExcelExportEntity("捐款人姓名", "userName", 20));
|
||||
entityList.add(new ExcelExportEntity("捐助项目", "contributionName", 20));
|
||||
entityList.add(new ExcelExportEntity("捐助人工号", "loginName", 20));
|
||||
entityList.add(new ExcelExportEntity("捐助人姓名", "userName", 20));
|
||||
entityList.add(new ExcelExportEntity("联系方式", "mobile", 20));
|
||||
entityList.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||
entityList.add(new ExcelExportEntity("所属单位", "unitName", 20));
|
||||
@@ -99,6 +99,6 @@ public class ContributionDetailedController {
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entityList, listMap);
|
||||
CommonDownloadUtil.download("捐款明细.xlsx", workbook, response);
|
||||
CommonDownloadUtil.download("捐助明细.xlsx", workbook, response);
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -36,7 +36,7 @@ import java.util.List;
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@Api(tags = "慈善捐款项目")
|
||||
@Api(tags = "慈善捐助项目")
|
||||
@At("/platform/contribution/list")
|
||||
public class ContributionProjectController {
|
||||
|
||||
@@ -76,9 +76,9 @@ public class ContributionProjectController {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("新增/修改慈善捐款项目")
|
||||
@ApiOperation("新增/修改慈善捐助项目")
|
||||
@SaCheckPermission("contribution.list")
|
||||
@SLog(type = "contribution", tag = "新增/修改慈善捐款项目", msg = "新增/修改慈善捐款项目")
|
||||
@SLog(type = "contribution", tag = "新增/修改慈善捐助项目", msg = "新增/修改慈善捐助项目")
|
||||
public Object onSubmit(ContributionProject project) {
|
||||
if(StrUtil.isBlank(project.getId())) {
|
||||
project.setContributionCreationDate(DateUtil.now());
|
||||
@@ -88,16 +88,16 @@ public class ContributionProjectController {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除慈善捐款项目")
|
||||
@ApiOperation("删除慈善捐助项目")
|
||||
@SaCheckPermission("contribution.list")
|
||||
@SLog(type = "contribution", tag = "删除慈善捐款项目", msg = "删除慈善捐款项目")
|
||||
@SLog(type = "contribution", tag = "删除慈善捐助项目", msg = "删除慈善捐助项目")
|
||||
public Object onDelete(String id) {
|
||||
typeService.dao().delete(ContributionProject.class, id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询慈善捐款项目")
|
||||
@ApiOperation("查询慈善捐助项目")
|
||||
@SaCheckPermission("contribution.list")
|
||||
public Result queryContributionList() {
|
||||
List<ContributionProject> list = typeService.dao().query(
|
||||
|
||||
+3
-3
@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@Api(tags = "慈善捐款分工会统计")
|
||||
@Api(tags = "慈善捐助分工会统计")
|
||||
@At("/platform/contribution/statistics")
|
||||
public class ContributionStatisticsController {
|
||||
|
||||
@@ -66,13 +66,13 @@ public class ContributionStatisticsController {
|
||||
.stream()
|
||||
.toList();
|
||||
|
||||
//这个项目每个分工会有多少个人捐款
|
||||
//这个项目每个分工会有多少个人捐助
|
||||
List<ContributionApply> list = userList.stream()
|
||||
.filter(n -> n.getUnionId().equals(union.getId()) && n.getContributionId().equals(contributionId))
|
||||
.toList();
|
||||
map.setv("contributionUserNum", list.size());
|
||||
|
||||
//捐款多少笔
|
||||
//捐助多少笔
|
||||
long conCount = applyList.stream()
|
||||
.filter(n -> n.getUnionId().equals(union.getId()) && n.getContributionId().equals(contributionId))
|
||||
.count();
|
||||
|
||||
+32
-7
@@ -6,6 +6,8 @@ import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffbenefit.contribution.model.ContributionApply;
|
||||
import com.budwk.app.zhgh.staffbenefit.contribution.model.ContributionProject;
|
||||
import com.budwk.app.zhgh.staffbenefit.contribution.model.ContributionType;
|
||||
import com.budwk.app.zhgh.staffbenefit.contribution.service.ContributionTypeService;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -13,9 +15,13 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
@@ -31,7 +37,7 @@ import java.util.List;
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@Api(tags = "慈善捐款专题")
|
||||
@Api(tags = "慈善捐助专题")
|
||||
@At("/platform/contribution/type")
|
||||
public class ContributionTypeController {
|
||||
|
||||
@@ -63,28 +69,47 @@ public class ContributionTypeController {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("新增/修改慈善捐款专题")
|
||||
@ApiOperation("新增/修改慈善捐助专题")
|
||||
@SaCheckPermission("contribution.type")
|
||||
@SLog(type = "contribution", tag = "新增/修改慈善捐款专题", msg = "新增/修改慈善捐款专题")
|
||||
@SLog(type = "contribution", tag = "新增/修改慈善捐助专题", msg = "新增/修改慈善捐助专题")
|
||||
public Object onSubmit(ContributionType type) {
|
||||
typeService.insertOrUpdate(type);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除慈善捐款专题")
|
||||
@ApiOperation("删除慈善捐助专题")
|
||||
@SaCheckPermission("contribution.type")
|
||||
@SLog(type = "contribution", tag = "删除慈善捐款专题", msg = "删除慈善捐款专题")
|
||||
@SLog(type = "contribution", tag = "删除慈善捐助专题", msg = "删除慈善捐助专题")
|
||||
public Object onDelete(String id) {
|
||||
typeService.delete(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询慈善捐款专题")
|
||||
@SaCheckPermission("contribution.type")
|
||||
@ApiOperation("查询慈善捐助专题")
|
||||
@SaCheckPermission("contribution")
|
||||
public Result queryContributionType() {
|
||||
List<ContributionType> list = typeService.query(Cnd.NEW().desc(ContributionType::getTypeCode));
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个慈善捐助专题")
|
||||
@SaCheckPermission("contribution")
|
||||
public Result fetchOne(String id) {
|
||||
ContributionType type = typeService.fetch(id);
|
||||
List<ContributionProject> list = dao.query(ContributionProject.class, Cnd.where(ContributionProject::getContributionTypeCode, "=", type.getTypeCode()).and(ContributionProject::getIsContributionEnable, "=", true));
|
||||
|
||||
List<String> projects = list.stream().map(ContributionProject::getId).toList();
|
||||
|
||||
List<ContributionApply> applyList = dao.query(ContributionApply.class, Cnd.where(ContributionApply::getContributionId, "in", projects));
|
||||
double sum = applyList.stream().mapToDouble(ContributionApply::getMoney).sum();
|
||||
|
||||
NutMap nutMap = Lang.obj2nutmap(type);
|
||||
nutMap.put("projectCount", list.size());
|
||||
nutMap.put("totalMoney", sum);
|
||||
nutMap.put("peopleCount", applyList.size());
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -19,7 +19,7 @@ import java.util.List;
|
||||
* @Description TODO
|
||||
*/
|
||||
@Data
|
||||
@Comment("慈善捐款明细")
|
||||
@Comment("慈善捐助明细")
|
||||
@Accessors(chain = true)
|
||||
@Table("contribution_apply")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -82,7 +82,7 @@ public class ContributionApply extends BaseModel {
|
||||
private String mobile;
|
||||
|
||||
@Column
|
||||
@Comment("捐款金额")
|
||||
@Comment("捐助金额")
|
||||
@ColDefine(type = ColType.DOUBLE)
|
||||
private double money;
|
||||
|
||||
@@ -92,12 +92,12 @@ public class ContributionApply extends BaseModel {
|
||||
private String payMode;
|
||||
|
||||
@Column
|
||||
@Comment("捐款时间")
|
||||
@Comment("捐助时间")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String contributionTime;
|
||||
|
||||
@Column
|
||||
@Comment("捐款图片")
|
||||
@Comment("捐助图片")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> contributionFiles;
|
||||
}
|
||||
|
||||
+7
-7
@@ -18,7 +18,7 @@ import java.util.List;
|
||||
* @Description TODO
|
||||
*/
|
||||
@Data
|
||||
@Comment("慈善捐款")
|
||||
@Comment("慈善捐助")
|
||||
@Accessors(chain = true)
|
||||
@Table("contribution_project")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -41,7 +41,7 @@ public class ContributionProject extends BaseModel {
|
||||
private String contributionIntroduce;
|
||||
|
||||
@Column
|
||||
@Comment("所属捐款专题")
|
||||
@Comment("所属捐助专题")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
private String contributionTypeCode;
|
||||
|
||||
@@ -61,22 +61,22 @@ public class ContributionProject extends BaseModel {
|
||||
private Boolean isContributionEnable;
|
||||
|
||||
@Column
|
||||
@Comment("捐款模式")
|
||||
@Comment("捐助模式")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
private String contributionMode;
|
||||
private Integer contributionMode;
|
||||
|
||||
@Column
|
||||
@Comment("捐款链接")
|
||||
@Comment("捐助链接")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String contributionUrl;
|
||||
|
||||
@Column
|
||||
@Comment("捐款开启时间")
|
||||
@Comment("捐助开启时间")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 40)
|
||||
private String contributionStartTime;
|
||||
|
||||
@Column
|
||||
@Comment("捐款结束时间")
|
||||
@Comment("捐助结束时间")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 40)
|
||||
private String contributionEndTime;
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ import java.util.List;
|
||||
* @Description TODO
|
||||
*/
|
||||
@Data
|
||||
@Comment("慈善捐款专题")
|
||||
@Comment("慈善捐助专题")
|
||||
@Accessors(chain = true)
|
||||
@Table("contribution_type")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ import org.nutz.dao.sql.Sql;
|
||||
public interface ContributionApplyService extends BaseService<ContributionApply> {
|
||||
|
||||
/**
|
||||
* 生成查询捐款明细的sql
|
||||
* 生成查询捐助明细的sql
|
||||
* @return
|
||||
*/
|
||||
Sql generateSql(String unionId, String unitId, String payMode, String contributionName);
|
||||
|
||||
+4
-4
@@ -74,9 +74,9 @@ public class PsychologyDoctorController {
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("新增/修改心理咨询师")
|
||||
@ApiOperation("新增/修改咨询师")
|
||||
@SaCheckPermission("psychology.doctorManage")
|
||||
@SLog(tag = "心理咨询系统-心理咨询师", msg = "新增/修改心理咨询师")
|
||||
@SLog(tag = "心理咨询系统-咨询师", msg = "新增/修改咨询师")
|
||||
public Object onSubmit(PsychologyDoctor doctor) {
|
||||
Sys_role role = sysRoleService.getByCode(RoleConstant.PSYCHOLOGY_DOCTOR);
|
||||
if(StrUtil.isBlank(doctor.getId())) {
|
||||
@@ -102,9 +102,9 @@ public class PsychologyDoctorController {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除心理咨询师")
|
||||
@ApiOperation("删除咨询师")
|
||||
@SaCheckPermission("psychology.doctorManage")
|
||||
@SLog(tag = "心理咨询系统-心理咨询师", msg = "删除心理咨询师")
|
||||
@SLog(tag = "心理咨询系统-咨询师", msg = "删除咨询师")
|
||||
public Object onDelete(String id) {
|
||||
doctorService.delete(id);
|
||||
return Result.success();
|
||||
|
||||
@@ -414,7 +414,7 @@ const signForm = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .el-tabs__header {
|
||||
/deep/ .el-tabs__header {
|
||||
margin: 0 0 15px !important;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -107,7 +107,7 @@ const info = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .el-button--text {
|
||||
/deep/ .el-button--text {
|
||||
padding: 0;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -213,10 +213,10 @@ const userInfo = {
|
||||
this.unitList = await this.$businessTool.listUnit(this.registerForm.unionId)
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .adjustDialog .el-radio__label {
|
||||
/deep/ .adjustDialog .el-radio__label {
|
||||
display: none;
|
||||
}
|
||||
::v-deep .adjustDialog .el-dialog__body {
|
||||
/deep/ .adjustDialog .el-dialog__body {
|
||||
max-height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@@ -291,43 +291,43 @@ const courseList = {
|
||||
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .glow-box {
|
||||
/deep/ .glow-box {
|
||||
min-height: calc(100vh - 56px - 40px - 50px - 80px);
|
||||
max-height: calc(100vh - 56px - 40px - 50px - 80px);
|
||||
overflow-y: auto;
|
||||
background: #F0F2F5;
|
||||
}
|
||||
::v-deep img {
|
||||
/deep/ img {
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
}
|
||||
::v-deep .title {
|
||||
/deep/ .title {
|
||||
background: white;
|
||||
height: 20px;
|
||||
}
|
||||
::v-deep .query-row {
|
||||
/deep/ .query-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 6px 0;
|
||||
}
|
||||
::v-deep .query-row:not(:last-child) {
|
||||
/deep/ .query-row:not(:last-child) {
|
||||
border-bottom: 1px dashed rgb(230, 230, 230);
|
||||
}
|
||||
::v-deep .query-row > .query-title {
|
||||
/deep/ .query-row > .query-title {
|
||||
width: 100px;
|
||||
max-width: 100px;
|
||||
min-width: 100px;
|
||||
overflow: hidden;
|
||||
}
|
||||
::v-deep .query-row > .query-content {
|
||||
/deep/ .query-row > .query-content {
|
||||
min-width: 200px;
|
||||
overflow: hidden;
|
||||
}
|
||||
::v-deep .query-row > .query-content > .el-tag {
|
||||
/deep/ .query-row > .query-content > .el-tag {
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
::v-deep @media screen and (max-width: 992px) {
|
||||
/deep/ @media screen and (max-width: 992px) {
|
||||
.query-row:nth-child(4) .query-content .el-col:not(:last-child) {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
@@ -350,12 +350,12 @@ const contentForm = {
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
|
||||
::v-deep .edu_content_dialog .el-dialog__body {
|
||||
/deep/ .edu_content_dialog .el-dialog__body {
|
||||
height: calc(100vh - 155px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
::v-deep .section-header {
|
||||
/deep/ .section-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -363,7 +363,7 @@ const contentForm = {
|
||||
padding: 20px 20px 0;
|
||||
}
|
||||
|
||||
::v-deep .video-item {
|
||||
/deep/ .video-item {
|
||||
background: #f8f9fa;
|
||||
border: 1px solid #e9ecef;
|
||||
border-radius: 8px;
|
||||
@@ -372,19 +372,19 @@ const contentForm = {
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
::v-deep .video-item:hover {
|
||||
/deep/ .video-item:hover {
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
::v-deep .chapter-card {
|
||||
/deep/ .chapter-card {
|
||||
border: 1px solid #e4e7ed;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 20px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
::v-deep .chapter-header {
|
||||
/deep/ .chapter-header {
|
||||
background: #f5f7fa;
|
||||
padding: 15px 20px;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
@@ -393,11 +393,11 @@ const contentForm = {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .chapter-content {
|
||||
/deep/ .chapter-content {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
::v-deep .stats-card {
|
||||
/deep/ .stats-card {
|
||||
color: white;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
@@ -405,14 +405,14 @@ const contentForm = {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
::v-deep .course-cover {
|
||||
/deep/ .course-cover {
|
||||
width: 100px;
|
||||
height: 60px;
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::v-deep .duration-display {
|
||||
/deep/ .duration-display {
|
||||
color: #909399;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@@ -414,13 +414,13 @@ const subjectForm = {
|
||||
/* background: rgb(248, 249, 250);*/
|
||||
/*}*/
|
||||
|
||||
::v-deep .questionnaire-editor {
|
||||
/deep/ .questionnaire-editor {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
::v-deep .editor-header {
|
||||
/deep/ .editor-header {
|
||||
background: white;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
@@ -428,7 +428,7 @@ const subjectForm = {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
::v-deep .subject-item {
|
||||
/deep/ .subject-item {
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
padding: 25px;
|
||||
@@ -438,18 +438,18 @@ const subjectForm = {
|
||||
border: 1px dashed #d9d9d9;
|
||||
}
|
||||
|
||||
::v-deep .subject-item:hover {
|
||||
/deep/ .subject-item:hover {
|
||||
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);
|
||||
/*transform: translateY(-1px);*/
|
||||
}
|
||||
|
||||
::v-deep .subject-header {
|
||||
/deep/ .subject-header {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding-bottom: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
::v-deep .subject-toolbar {
|
||||
/deep/ .subject-toolbar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -458,7 +458,7 @@ const subjectForm = {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
::v-deep .toolbar {
|
||||
/deep/ .toolbar {
|
||||
background: white;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
@@ -466,12 +466,12 @@ const subjectForm = {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
::v-deep .toolbar-btn {
|
||||
/deep/ .toolbar-btn {
|
||||
margin: 5px 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
::v-deep .option-item {
|
||||
/deep/ .option-item {
|
||||
background: #f8f9fa;
|
||||
border-radius: 4px;
|
||||
padding: 10px;
|
||||
@@ -480,33 +480,33 @@ const subjectForm = {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .option-drag-handle {
|
||||
/deep/ .option-drag-handle {
|
||||
cursor: move;
|
||||
margin-right: 10px;
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
::v-deep .option-content {
|
||||
/deep/ .option-content {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
::v-deep .option-tools {
|
||||
/deep/ .option-tools {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
::v-deep .preview-dialog {
|
||||
/deep/ .preview-dialog {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
::v-deep .date-visible {
|
||||
/deep/ .date-visible {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
::v-deep .subject-meta {
|
||||
/deep/ .subject-meta {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 15px;
|
||||
@@ -516,7 +516,7 @@ const subjectForm = {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::v-deep .image-preview {
|
||||
/deep/ .image-preview {
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
margin-top: 10px;
|
||||
@@ -524,24 +524,24 @@ const subjectForm = {
|
||||
border: 1px solid #dcdfe6;
|
||||
}
|
||||
|
||||
::v-deep .drag-handler {
|
||||
/deep/ .drag-handler {
|
||||
cursor: move;
|
||||
color: #909399;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
::v-deep .meta-info {
|
||||
/deep/ .meta-info {
|
||||
color: #909399;
|
||||
font-size: 12px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
::v-deep .subject-type-icon {
|
||||
/deep/ .subject-type-icon {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .option-img-box {
|
||||
/deep/ .option-img-box {
|
||||
position: relative;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
@@ -549,16 +549,16 @@ const subjectForm = {
|
||||
flex-shrink: 0
|
||||
}
|
||||
|
||||
::v-deep .option-img-box:hover .el-icon-remove {
|
||||
/deep/ .option-img-box:hover .el-icon-remove {
|
||||
display: block;
|
||||
}
|
||||
|
||||
::v-deep .option-img-box img {
|
||||
/deep/ .option-img-box img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
::v-deep .option-img-box .el-icon-remove {
|
||||
/deep/ .option-img-box .el-icon-remove {
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
right: -7px;
|
||||
@@ -566,7 +566,7 @@ const subjectForm = {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::v-deep .option-img-box .el-icon-remove:hover {
|
||||
/deep/ .option-img-box .el-icon-remove:hover {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
|
||||
@@ -314,7 +314,7 @@ E.先进性"
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .txt-import-dialog .el-dialog__body {
|
||||
/deep/ .txt-import-dialog .el-dialog__body {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ E.先进性"
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-panel-header {
|
||||
/deep/ .txt-import-panel-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -337,7 +337,7 @@ E.先进性"
|
||||
height: 32px; /* 统一高度 */
|
||||
}
|
||||
|
||||
::v-deep .txt-import-left-panel {
|
||||
/deep/ .txt-import-left-panel {
|
||||
width: 50%;
|
||||
padding: 20px;
|
||||
border-right: 1px solid #ebeef5;
|
||||
@@ -345,7 +345,7 @@ E.先进性"
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-right-panel {
|
||||
/deep/ .txt-import-right-panel {
|
||||
width: 50%;
|
||||
padding: 20px;
|
||||
background-color: #fff; /* 改为白色背景 */
|
||||
@@ -354,22 +354,22 @@ E.先进性"
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-title {
|
||||
/deep/ .txt-import-title {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #303133;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-format-tip {
|
||||
/deep/ .txt-import-format-tip {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-format-tooltip {
|
||||
/deep/ .txt-import-format-tooltip {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-input-area {
|
||||
/deep/ .txt-import-input-area {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
margin-bottom: 15px;
|
||||
@@ -379,7 +379,7 @@ E.先进性"
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-textarea {
|
||||
/deep/ .txt-import-textarea {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 15px;
|
||||
@@ -394,25 +394,25 @@ E.先进性"
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-textarea:focus {
|
||||
/deep/ .txt-import-textarea:focus {
|
||||
box-shadow: 0 0 0 2px rgba(24,103,176,0.2);
|
||||
}
|
||||
|
||||
::v-deep .txt-import-action-buttons {
|
||||
/deep/ .txt-import-action-buttons {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-top: 10px;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-stats {
|
||||
/deep/ .txt-import-stats {
|
||||
color: #1867b0;
|
||||
font-size: 13px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-result-display {
|
||||
/deep/ .txt-import-result-display {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
background-color: #f9fafc; /* 只在结果显示区域使用浅灰色背景 */
|
||||
@@ -421,7 +421,7 @@ E.先进性"
|
||||
border: 1px solid #ebeef5;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-no-questions {
|
||||
/deep/ .txt-import-no-questions {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -431,7 +431,7 @@ E.先进性"
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-question-item {
|
||||
/deep/ .txt-import-question-item {
|
||||
background-color: #fff;
|
||||
margin-bottom: 15px;
|
||||
padding: 15px;
|
||||
@@ -441,12 +441,12 @@ E.先进性"
|
||||
border-left: 3px solid #67c23a;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-question-item:hover {
|
||||
/deep/ .txt-import-question-item:hover {
|
||||
box-shadow: 0 4px 12px 0 rgba(0,0,0,0.1);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
::v-deep .txt-import-question-title {
|
||||
/deep/ .txt-import-question-title {
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 12px;
|
||||
@@ -454,7 +454,7 @@ E.先进性"
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-question-number {
|
||||
/deep/ .txt-import-question-number {
|
||||
display: inline-block;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
@@ -467,11 +467,11 @@ E.先进性"
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-options {
|
||||
/deep/ .txt-import-options {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-option-item {
|
||||
/deep/ .txt-import-option-item {
|
||||
margin-bottom: 8px;
|
||||
padding: 8px 12px;
|
||||
background-color: #f5f7fa;
|
||||
@@ -483,27 +483,27 @@ E.先进性"
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-option-item:hover {
|
||||
/deep/ .txt-import-option-item:hover {
|
||||
background-color: #ebeef5;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-option-item.txt-import-correct {
|
||||
/deep/ .txt-import-option-item.txt-import-correct {
|
||||
background-color: #f0f9eb;
|
||||
color: #67c23a;
|
||||
border-left: 3px solid #67c23a;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-option-text {
|
||||
/deep/ .txt-import-option-text {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-correct-mark {
|
||||
/deep/ .txt-import-correct-mark {
|
||||
color: #67c23a;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-question-meta {
|
||||
/deep/ .txt-import-question-meta {
|
||||
margin-top: 12px;
|
||||
padding-top: 12px;
|
||||
border-top: 1px dashed #ebeef5;
|
||||
@@ -511,12 +511,12 @@ E.先进性"
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-dialog-footer {
|
||||
/deep/ .txt-import-dialog-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
::v-deep .txt-import-no-options {
|
||||
/deep/ .txt-import-no-options {
|
||||
padding: 10px;
|
||||
color: #f56c6c;
|
||||
font-style: italic;
|
||||
|
||||
@@ -391,13 +391,13 @@ const subjectForm = {
|
||||
/* background: rgb(248, 249, 250);*/
|
||||
/*}*/
|
||||
|
||||
::v-deep .questionnaire-editor {
|
||||
/deep/ .questionnaire-editor {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
::v-deep .editor-header {
|
||||
/deep/ .editor-header {
|
||||
background: white;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
@@ -405,7 +405,7 @@ const subjectForm = {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
::v-deep .subject-item {
|
||||
/deep/ .subject-item {
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
padding: 25px;
|
||||
@@ -415,18 +415,18 @@ const subjectForm = {
|
||||
border: 1px dashed #d9d9d9;
|
||||
}
|
||||
|
||||
::v-deep .subject-item:hover {
|
||||
/deep/ .subject-item:hover {
|
||||
box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);
|
||||
/*transform: translateY(-1px);*/
|
||||
}
|
||||
|
||||
::v-deep .subject-header {
|
||||
/deep/ .subject-header {
|
||||
border-bottom: 1px solid #eee;
|
||||
padding-bottom: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
::v-deep .subject-toolbar {
|
||||
/deep/ .subject-toolbar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -435,7 +435,7 @@ const subjectForm = {
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
::v-deep .toolbar {
|
||||
/deep/ .toolbar {
|
||||
background: white;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
@@ -443,12 +443,12 @@ const subjectForm = {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
::v-deep .toolbar-btn {
|
||||
/deep/ .toolbar-btn {
|
||||
margin: 5px 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
::v-deep .option-item {
|
||||
/deep/ .option-item {
|
||||
background: #f8f9fa;
|
||||
border-radius: 4px;
|
||||
padding: 10px;
|
||||
@@ -457,33 +457,33 @@ const subjectForm = {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .option-drag-handle {
|
||||
/deep/ .option-drag-handle {
|
||||
cursor: move;
|
||||
margin-right: 10px;
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
::v-deep .option-content {
|
||||
/deep/ .option-content {
|
||||
flex-grow: 1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
::v-deep .option-tools {
|
||||
/deep/ .option-tools {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
::v-deep .preview-dialog {
|
||||
/deep/ .preview-dialog {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
::v-deep .date-visible {
|
||||
/deep/ .date-visible {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
::v-deep .subject-meta {
|
||||
/deep/ .subject-meta {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 15px;
|
||||
@@ -493,7 +493,7 @@ const subjectForm = {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
::v-deep .image-preview {
|
||||
/deep/ .image-preview {
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
margin-top: 10px;
|
||||
@@ -501,24 +501,24 @@ const subjectForm = {
|
||||
border: 1px solid #dcdfe6;
|
||||
}
|
||||
|
||||
::v-deep .drag-handler {
|
||||
/deep/ .drag-handler {
|
||||
cursor: move;
|
||||
color: #909399;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
::v-deep .meta-info {
|
||||
/deep/ .meta-info {
|
||||
color: #909399;
|
||||
font-size: 12px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
::v-deep .subject-type-icon {
|
||||
/deep/ .subject-type-icon {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .option-img-box {
|
||||
/deep/ .option-img-box {
|
||||
position: relative;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
@@ -526,16 +526,16 @@ const subjectForm = {
|
||||
flex-shrink: 0
|
||||
}
|
||||
|
||||
::v-deep .option-img-box:hover .el-icon-remove {
|
||||
/deep/ .option-img-box:hover .el-icon-remove {
|
||||
display: block;
|
||||
}
|
||||
|
||||
::v-deep .option-img-box img {
|
||||
/deep/ .option-img-box img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
::v-deep .option-img-box .el-icon-remove {
|
||||
/deep/ .option-img-box .el-icon-remove {
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
right: -7px;
|
||||
@@ -543,7 +543,7 @@ const subjectForm = {
|
||||
display: none;
|
||||
}
|
||||
|
||||
::v-deep .option-img-box .el-icon-remove:hover {
|
||||
/deep/ .option-img-box .el-icon-remove:hover {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
|
||||
@@ -249,17 +249,17 @@ const apply = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .div-Calendar {
|
||||
/deep/ .div-Calendar {
|
||||
box-sizing: border-box;
|
||||
height: 100%;
|
||||
}
|
||||
::v-deep .div-Calendar p {
|
||||
/deep/ .div-Calendar p {
|
||||
margin: 0;
|
||||
}
|
||||
::v-deep .el-calendar-day:has(.not-allow-day) {
|
||||
/deep/ .el-calendar-day:has(.not-allow-day) {
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
::v-deep .el-dialog__body {
|
||||
/deep/ .el-dialog__body {
|
||||
padding-top: 0;
|
||||
}
|
||||
`
|
||||
|
||||
+12
-12
@@ -42,8 +42,8 @@ layout("/layouts/platform.html"){
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unitList"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="捐款方式:">
|
||||
<el-select placeholder="请选择捐款方式" v-model="pageForm.payMode" style="width: 100%;"
|
||||
<search-item label="捐助方式:">
|
||||
<el-select placeholder="请选择捐助方式" v-model="pageForm.payMode" style="width: 100%;"
|
||||
clearable @change="doSearch"
|
||||
filterable>
|
||||
<el-option label="微信" value="WeChat"></el-option>
|
||||
@@ -54,7 +54,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<table-tool label="捐款列表">
|
||||
<table-tool label="捐助列表">
|
||||
<el-button type="primary" size="small" @click="onExport">
|
||||
<i class="el-icon-download"></i>
|
||||
导出
|
||||
@@ -90,10 +90,10 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<template #view>
|
||||
<el-descriptions :column="2" border class="table_fixed">
|
||||
<el-descriptions-item label="捐款项目">
|
||||
<el-descriptions-item label="捐助项目">
|
||||
{{ viewData.contributionName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款人工号">
|
||||
<el-descriptions-item label="捐助人工号">
|
||||
{{ viewData.loginName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">
|
||||
@@ -111,13 +111,13 @@ layout("/layouts/platform.html"){
|
||||
<el-descriptions-item label="善款金额">
|
||||
{{ viewData.money || 0}}元
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款方式">
|
||||
<el-descriptions-item label="捐助方式">
|
||||
{{ viewData.payMode === 'WeChat' ? '微信' : '支付宝' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款时间" :span="2">
|
||||
<el-descriptions-item label="捐助时间" :span="2">
|
||||
{{ viewData.contributionTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款凭证" :span="2">
|
||||
<el-descriptions-item label="捐助凭证" :span="2">
|
||||
<file-preview v-if="viewData.contributionFiles" complete_result :files="viewData.contributionFiles"></file-preview>
|
||||
<span v-else>暂无</span>
|
||||
</el-descriptions-item>
|
||||
@@ -136,15 +136,15 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
tableColumns: [
|
||||
{prop: 'contributionName', label: '捐款项目'},
|
||||
{prop: 'loginName', label: '捐款人工号'},
|
||||
{prop: 'contributionName', label: '捐助项目'},
|
||||
{prop: 'loginName', label: '捐助人工号'},
|
||||
{prop: 'userName', label: '姓名'},
|
||||
{prop: 'mobile', label: '联系方式'},
|
||||
{prop: 'unionName', label: '所属工会'},
|
||||
{prop: 'unitName', label: '所属单位'},
|
||||
{prop: 'money', label: '善款金额'},
|
||||
{prop: 'payMode', label: '捐款方式'},
|
||||
{prop: 'contributionTime', label: '捐款时间'},
|
||||
{prop: 'payMode', label: '捐助方式'},
|
||||
{prop: 'contributionTime', label: '捐助时间'},
|
||||
],
|
||||
contributionOptions: [],
|
||||
unionList: [],
|
||||
|
||||
@@ -6,8 +6,8 @@ const basicForm = {
|
||||
<el-input type="text" v-model="formData.contributionName" maxlength="50"
|
||||
placeholder="请填写项目名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属捐款专题" prop="contributionTypeCode">
|
||||
<el-select placeholder="所属捐款专题" v-model="formData.contributionTypeCode"
|
||||
<el-form-item label="所属捐助专题" prop="contributionTypeCode">
|
||||
<el-select placeholder="所属捐助专题" v-model="formData.contributionTypeCode"
|
||||
style="width: 100%;"
|
||||
clearable
|
||||
filterable>
|
||||
@@ -16,7 +16,7 @@ const basicForm = {
|
||||
:value="item.typeCode"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="捐款时间" prop="contributionTime">
|
||||
<el-form-item label="捐助时间" prop="contributionTime">
|
||||
<el-date-picker
|
||||
style="width: 100%;"
|
||||
v-model="formData.contributionTime"
|
||||
@@ -27,16 +27,16 @@ const basicForm = {
|
||||
end-placeholder="请选择结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="捐款模式" prop="contributionMode">
|
||||
<el-form-item label="捐助模式" prop="contributionMode">
|
||||
<el-radio-group v-model="formData.contributionMode">
|
||||
<el-radio-button :label="1">水滴筹</el-radio-button>
|
||||
<el-radio-button :label="2">一日捐</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="捐款链接" prop="contributionUrl"
|
||||
<el-form-item label="捐助链接" prop="contributionUrl"
|
||||
v-if="formData.contributionMode === 1">
|
||||
<el-input type="text" v-model="formData.contributionUrl" maxlength="50"
|
||||
placeholder="请填写捐款链接"></el-input>
|
||||
placeholder="请填写捐助链接"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否开启" prop="isContributionEnable">
|
||||
<el-switch v-model="formData.isContributionEnable" active-color="#13ce66"
|
||||
|
||||
@@ -5,16 +5,16 @@ const info = {
|
||||
<el-descriptions-item label="项目名称">
|
||||
{{ viewData.contributionName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属捐款专题">
|
||||
<el-descriptions-item label="所属捐助专题">
|
||||
{{ viewData.typeName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款时间">
|
||||
<el-descriptions-item label="捐助时间">
|
||||
{{ viewData.contributionStartTime + ' 至 ' + viewData.contributionEndTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款模式">
|
||||
<el-descriptions-item label="捐助模式">
|
||||
{{ viewData.contributionMode === 1 ? '水滴筹' : '一日捐' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="捐款链接" :span="2">
|
||||
<el-descriptions-item label="捐助链接" :span="2">
|
||||
{{ viewData.contributionUrl || '暂无' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="项目介绍" :span="2">
|
||||
|
||||
+4
-4
@@ -38,7 +38,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt20">
|
||||
<table-tool label="捐款列表"></table-tool>
|
||||
<table-tool label="捐助列表"></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" :size="tableSize"
|
||||
row-key="id" show-summary :summary-method="getSummaries"
|
||||
max-height="600">
|
||||
@@ -73,9 +73,9 @@ layout("/layouts/platform.html"){
|
||||
tableColumns: [
|
||||
{prop: 'unionCode', label: '工会编码'},
|
||||
{prop: 'name', label: '工会名称'},
|
||||
{prop: 'contributionUserNum', label: '捐款人数'},
|
||||
{prop: 'contributionNum', label: '捐款多少笔'},
|
||||
{prop: 'money', label: '捐款总额(元)'},
|
||||
{prop: 'contributionUserNum', label: '捐助人数'},
|
||||
{prop: 'contributionNum', label: '捐助多少笔'},
|
||||
{prop: 'money', label: '捐助总额(元)'},
|
||||
],
|
||||
contributionOptions: [],
|
||||
unionList: [],
|
||||
|
||||
@@ -77,7 +77,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'appointmentUserName', label: '姓名'},
|
||||
{prop: 'appointmentLoginName', label: '工号'},
|
||||
{prop: 'appointmentUnitName', label: '单位'},
|
||||
{prop: 'doctorUserName', label: '心理咨询师'},
|
||||
{prop: 'doctorUserName', label: '咨询师'},
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
@@ -18,7 +18,7 @@ const basicForm = {
|
||||
<el-form-item>
|
||||
<div class="text-primary">
|
||||
<i class="el-icon-warning"></i>
|
||||
提示:不会发布您的个人隐私信息,您咨询的内容只有心理咨询师可查看并回复。
|
||||
提示:不会发布您的个人隐私信息,您咨询的内容只有咨询师可查看并回复。
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -56,17 +56,17 @@ const info = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .el-timeline-item {
|
||||
/deep/ .el-timeline-item {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
::v-deep .el-timeline-item__wrapper {
|
||||
/deep/ .el-timeline-item__wrapper {
|
||||
padding-left: 28px;
|
||||
top: -3px;
|
||||
}
|
||||
::v-deep .el-timeline-item__tail {
|
||||
/deep/ .el-timeline-item__tail {
|
||||
left: 4px;
|
||||
}
|
||||
::v-deep .user-face{
|
||||
/deep/ .user-face{
|
||||
display: flex;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -77,7 +77,7 @@ layout("/layouts/platform.html"){
|
||||
{prop: 'appointmentUserName', label: '姓名'},
|
||||
{prop: 'appointmentLoginName', label: '工号'},
|
||||
{prop: 'appointmentUnitName', label: '单位'},
|
||||
{prop: 'doctorUserName', label: '心理咨询师'},
|
||||
{prop: 'doctorUserName', label: '咨询师'},
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ const basicForm = {
|
||||
<el-form-item>
|
||||
<div class="text-primary">
|
||||
<i class="el-icon-warning"></i>
|
||||
提示:不会发布您的个人隐私信息,您咨询的内容只有心理咨询师可查看并回复。
|
||||
提示:不会发布您的个人隐私信息,您咨询的内容只有咨询师可查看并回复。
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -56,17 +56,17 @@ const info = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .el-timeline-item {
|
||||
/deep/ .el-timeline-item {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
::v-deep .el-timeline-item__wrapper {
|
||||
/deep/ .el-timeline-item__wrapper {
|
||||
padding-left: 28px;
|
||||
top: -3px;
|
||||
}
|
||||
::v-deep .el-timeline-item__tail {
|
||||
/deep/ .el-timeline-item__tail {
|
||||
left: 4px;
|
||||
}
|
||||
::v-deep .user-face{
|
||||
/deep/ .user-face{
|
||||
display: flex;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -328,13 +328,13 @@ const applyForm = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .companionList_empty_text {
|
||||
/deep/ .companionList_empty_text {
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
font-size: 14px;
|
||||
color: grey;
|
||||
}
|
||||
::v-deep .button {
|
||||
/deep/ .button {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
|
||||
+4
-4
@@ -72,7 +72,7 @@ const meetingInfo = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .table-class{
|
||||
/deep/ .table-class{
|
||||
width: 100%;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
@@ -81,15 +81,15 @@ const meetingInfo = {
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
::v-deep .table-class th {
|
||||
/deep/ .table-class th {
|
||||
background-color: #f2f2f2;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class tr {
|
||||
/deep/ .table-class tr {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class td {
|
||||
/deep/ .table-class td {
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -335,7 +335,7 @@ layout("/layouts/platform_h5.html"){
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::v-deep .container .title {
|
||||
/deep/ .container .title {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
background: #ffffff;
|
||||
@@ -368,7 +368,7 @@ layout("/layouts/platform_h5.html"){
|
||||
top: 0;
|
||||
}
|
||||
|
||||
::v-deep .timer {
|
||||
/deep/ .timer {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
background: #fff;
|
||||
|
||||
@@ -201,7 +201,7 @@ layout("/layouts/platform_h5.html"){
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::v-deep .container .title {
|
||||
/deep/ .container .title {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
margin: 0 !important;
|
||||
@@ -237,7 +237,7 @@ layout("/layouts/platform_h5.html"){
|
||||
top: 0;
|
||||
}
|
||||
|
||||
::v-deep .score-form {
|
||||
/deep/ .score-form {
|
||||
background: #ffffff;
|
||||
display: flex;
|
||||
margin-bottom: 10px;
|
||||
@@ -245,7 +245,7 @@ layout("/layouts/platform_h5.html"){
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
::v-deep .score-form-total {
|
||||
/deep/ .score-form-total {
|
||||
flex: 1;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
@@ -254,12 +254,12 @@ layout("/layouts/platform_h5.html"){
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
::v-deep .score-text-news {
|
||||
/deep/ .score-text-news {
|
||||
flex: 1;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
::v-deep .score-font-style {
|
||||
/deep/ .score-font-style {
|
||||
font-size: 32px;
|
||||
color: #ff6a00;
|
||||
word-break: keep-all;
|
||||
@@ -268,7 +268,7 @@ layout("/layouts/platform_h5.html"){
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
::v-deep .score-underline {
|
||||
/deep/ .score-underline {
|
||||
background: url(//image.wjx.cn/images/newimg/score-form/score-underline@2x.png) no-repeat center;
|
||||
background-size: 47px 16px;
|
||||
display: inline-block;
|
||||
@@ -308,12 +308,12 @@ layout("/layouts/platform_h5.html"){
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
::v-deep .history-list {
|
||||
/deep/ .history-list {
|
||||
background: #f1f1f1;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
::v-deep .history-item {
|
||||
/deep/ .history-item {
|
||||
background: #ffffff;
|
||||
border-radius: 12px;
|
||||
padding: 16px;
|
||||
@@ -324,26 +324,26 @@ layout("/layouts/platform_h5.html"){
|
||||
transition: transform 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
::v-deep .history-header {
|
||||
/deep/ .history-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
::v-deep .history-header span {
|
||||
/deep/ .history-header span {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
::v-deep .history-header .tag {
|
||||
/deep/ .history-header .tag {
|
||||
margin-left: 8px;
|
||||
color: #fff;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
|
||||
::v-deep .history-info {
|
||||
/deep/ .history-info {
|
||||
font-size: 14px;
|
||||
color: #555;
|
||||
margin-bottom: 4px;
|
||||
|
||||
@@ -284,7 +284,7 @@ const apply = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .top-calendar {
|
||||
/deep/ .top-calendar {
|
||||
height: 70px;
|
||||
max-height: 70px;
|
||||
position: sticky;
|
||||
@@ -296,13 +296,13 @@ const apply = {
|
||||
align-items: center;
|
||||
background-color: #0e78c5;
|
||||
}
|
||||
::v-deep .calendar-left {
|
||||
/deep/ .calendar-left {
|
||||
/*width: calc(100% - 20px);*/
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
height: 90%;
|
||||
}
|
||||
::v-deep .calendar-left-day {
|
||||
/deep/ .calendar-left-day {
|
||||
min-width: 65px;
|
||||
height: 100%;
|
||||
margin: 0 5px;
|
||||
@@ -313,24 +313,24 @@ const apply = {
|
||||
color: #FFF;
|
||||
border-radius: 10px;
|
||||
}
|
||||
::v-deep .left-day-active {
|
||||
/deep/ .left-day-active {
|
||||
background-color: #0000cc;
|
||||
}
|
||||
::v-deep .left-day-disabled {
|
||||
/deep/ .left-day-disabled {
|
||||
background-color: lightgrey;
|
||||
}
|
||||
::v-deep .container {
|
||||
/deep/ .container {
|
||||
background-color: white;
|
||||
margin: 10px 0;
|
||||
padding: 10px 0;
|
||||
overflow-y: auto;
|
||||
height: calc(100vh - 46px - 70px - 56px - 30px);
|
||||
}
|
||||
::v-deep .container-times {
|
||||
/deep/ .container-times {
|
||||
width: 58%;
|
||||
text-align: center;
|
||||
}
|
||||
::v-deep .container-state {
|
||||
/deep/ .container-state {
|
||||
width: 80px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
@@ -339,10 +339,10 @@ const apply = {
|
||||
border-radius: 2px;
|
||||
color: #929292;
|
||||
}
|
||||
::v-deep table {
|
||||
/deep/ table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
::v-deep .calendar-right {
|
||||
/deep/ .calendar-right {
|
||||
width: 30px;
|
||||
max-width: 30px;
|
||||
text-align: center;
|
||||
@@ -354,7 +354,7 @@ const apply = {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
::v-deep .calendar-popup {
|
||||
/deep/ .calendar-popup {
|
||||
top: 46px;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -99,7 +99,7 @@ const siteInfo = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .table-class{
|
||||
/deep/ .table-class{
|
||||
width: 100%;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
@@ -108,15 +108,15 @@ const siteInfo = {
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
::v-deep .table-class th {
|
||||
/deep/ .table-class th {
|
||||
background-color: #f2f2f2;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class tr {
|
||||
/deep/ .table-class tr {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class td {
|
||||
/deep/ .table-class td {
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -25,6 +25,7 @@ const condolenceInfo = {
|
||||
{{ viewData.remark || '暂无' }}
|
||||
</van-cell>
|
||||
<van-cell class="direction-column-cell" title="附件">
|
||||
<file-preview :files="viewData.files" complete_result></file-preview>
|
||||
</van-cell>
|
||||
<van-cell class="direction-column-cell" title="签字">
|
||||
<van-image :src="viewData.signature" v-if="viewData.signature" class="signature-image"></van-image>
|
||||
|
||||
@@ -48,7 +48,7 @@ const doctorInfo = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .table-class{
|
||||
/deep/ .table-class{
|
||||
width: 100%;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
@@ -57,18 +57,18 @@ const doctorInfo = {
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
::v-deep .table-class th {
|
||||
/deep/ .table-class th {
|
||||
background-color: #f2f2f2;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class tr {
|
||||
/deep/ .table-class tr {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class td {
|
||||
/deep/ .table-class td {
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .empty-text {
|
||||
/deep/ .empty-text {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
|
||||
@@ -4,7 +4,7 @@ const applyForm = {
|
||||
<van-action-sheet :close-on-click-overlay="false" title="咨询信息" v-model="visible">
|
||||
<van-notice-bar
|
||||
left-icon="volume-o"
|
||||
text="温馨提示:不会发布您的个人隐私信息,您咨询的内容只有心理咨询师可查看并回复。"
|
||||
text="温馨提示:不会发布您的个人隐私信息,您咨询的内容只有咨询师可查看并回复。"
|
||||
></van-notice-bar>
|
||||
<van-form ref="formRef" class="form-container">
|
||||
<van-cell-group title="基本信息" class="form-section">
|
||||
|
||||
@@ -58,15 +58,15 @@ const info = {
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .empty-text {
|
||||
/deep/ .empty-text {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
}
|
||||
::v-deep .user-face{
|
||||
/deep/ .user-face{
|
||||
display: flex;
|
||||
}
|
||||
::v-deep .van-step__title {
|
||||
/deep/ .van-step__title {
|
||||
font-size: 13px;
|
||||
}
|
||||
`
|
||||
|
||||
+5
-5
@@ -48,7 +48,7 @@ const doctorInfo = {
|
||||
},
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .table-class{
|
||||
/deep/ .table-class{
|
||||
width: 100%;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
@@ -57,18 +57,18 @@ const doctorInfo = {
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
::v-deep .table-class th {
|
||||
/deep/ .table-class th {
|
||||
background-color: #f2f2f2;
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class tr {
|
||||
/deep/ .table-class tr {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .table-class td {
|
||||
/deep/ .table-class td {
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
::v-deep .empty-text {
|
||||
/deep/ .empty-text {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ const applyForm = {
|
||||
<van-action-sheet :close-on-click-overlay="false" title="咨询信息" v-model="visible">
|
||||
<van-notice-bar
|
||||
left-icon="volume-o"
|
||||
text="温馨提示:不会发布您的个人隐私信息,您咨询的内容只有心理咨询师可查看并回复。"
|
||||
text="温馨提示:不会发布您的个人隐私信息,您咨询的内容只有咨询师可查看并回复。"
|
||||
></van-notice-bar>
|
||||
<van-form ref="formRef" class="form-container">
|
||||
<van-cell-group title="基本信息" class="form-section">
|
||||
|
||||
@@ -58,15 +58,15 @@ const info = {
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
::v-deep .empty-text {
|
||||
/deep/ .empty-text {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
padding: 10px 0;
|
||||
}
|
||||
::v-deep .user-face{
|
||||
/deep/ .user-face{
|
||||
display: flex;
|
||||
}
|
||||
::v-deep .van-step__title {
|
||||
/deep/ .van-step__title {
|
||||
font-size: 13px;
|
||||
}
|
||||
`
|
||||
|
||||
@@ -446,7 +446,7 @@ const apps = {
|
||||
}
|
||||
|
||||
/* 菜单弹框样式 */
|
||||
::v-deep .menu-popup {
|
||||
/deep/ .menu-popup {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -454,7 +454,7 @@ const apps = {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
::v-deep .popup-header {
|
||||
/deep/ .popup-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -463,26 +463,26 @@ const apps = {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
::v-deep .popup-title {
|
||||
/deep/ .popup-title {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #323233;
|
||||
}
|
||||
|
||||
::v-deep .close-icon {
|
||||
/deep/ .close-icon {
|
||||
font-size: 18px;
|
||||
color: #969799;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::v-deep .menu-grid {
|
||||
/deep/ .menu-grid {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
::v-deep .grid-item {
|
||||
/deep/ .grid-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
@@ -493,12 +493,12 @@ const apps = {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
::v-deep .grid-item:active {
|
||||
/deep/ .grid-item:active {
|
||||
transform: scale(0.95);
|
||||
background: #f2f3f5;
|
||||
}
|
||||
|
||||
::v-deep .grid-icon {
|
||||
/deep/ .grid-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 12px;
|
||||
@@ -510,7 +510,7 @@ const apps = {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::v-deep .grid-name {
|
||||
/deep/ .grid-name {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #323233;
|
||||
@@ -524,25 +524,25 @@ const apps = {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
::v-deep .grid-desc {
|
||||
/deep/ .grid-desc {
|
||||
font-size: 12px;
|
||||
color: #969799;
|
||||
text-align: center;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
::v-deep .menu-name {
|
||||
/deep/ .menu-name {
|
||||
font-size: 16px;
|
||||
color: #323233;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
::v-deep .menu-desc {
|
||||
/deep/ .menu-desc {
|
||||
font-size: 12px;
|
||||
color: #969799;
|
||||
}
|
||||
|
||||
::v-deep .menu-arrow {
|
||||
/deep/ .menu-arrow {
|
||||
font-size: 16px;
|
||||
color: #c8c9cc;
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ const home = {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.act-list ::v-deep .act-item-wrapper-tag{
|
||||
.act-list /deep/ .act-item-wrapper-tag{
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 10px;
|
||||
|
||||
@@ -0,0 +1,359 @@
|
||||
const todo = {
|
||||
template: /*language=HTML*/ `
|
||||
<div class="task-center">
|
||||
<van-nav-bar title="待办中心" placeholder fixed></van-nav-bar>
|
||||
<!-- 标签页 -->
|
||||
<van-sticky offset-top="46px">
|
||||
<van-tabs v-model="activeTab" @change="handleTabChange" animated swipeable>
|
||||
<van-tab title="待办" name="todo"></van-tab>
|
||||
<van-tab title="已办" name="done"></van-tab>
|
||||
<van-tab title="我发起的" name="started"></van-tab>
|
||||
</van-tabs>
|
||||
<!-- 搜索筛选区域 -->
|
||||
<div class="filter-section">
|
||||
<div>
|
||||
<div class="search-form">
|
||||
<van-search v-model="pageForm.searchKeyword" placeholder="请输入搜索关键词"></van-search>
|
||||
</div>
|
||||
|
||||
<!-- <van-field-->
|
||||
<!-- readonly-->
|
||||
<!-- clickable-->
|
||||
<!-- :value="categoryLabel"-->
|
||||
<!-- placeholder="选择流程分类"-->
|
||||
<!-- class="category-select"-->
|
||||
<!-- @click="showCategoryPicker = true"-->
|
||||
<!-- ></van-field>-->
|
||||
</div>
|
||||
|
||||
<van-popup v-model="showCategoryPicker" round position="bottom">
|
||||
<van-picker
|
||||
show-toolbar
|
||||
:columns="categoryOptions"
|
||||
value-key="name"
|
||||
@confirm="onCategoryConfirm"
|
||||
@cancel="showCategoryPicker = false"
|
||||
></van-picker>
|
||||
</van-popup>
|
||||
</div>
|
||||
</van-sticky>
|
||||
|
||||
<!-- 任务列表区域 -->
|
||||
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
|
||||
<van-list
|
||||
v-model="loading"
|
||||
:finished="finished"
|
||||
finished-text="没有更多了"
|
||||
@load="getTasks"
|
||||
>
|
||||
<div v-if="tasks.length > 0" class="task-list">
|
||||
<div
|
||||
v-for="task in tasks"
|
||||
:key="task.taskId"
|
||||
class="task-item"
|
||||
>
|
||||
<div class="task-content">
|
||||
<div class="task-title">{{task.variable?.instanceName || '无标题流程'}}</div>
|
||||
|
||||
<div class="task-info">
|
||||
<span class="task-info-label">任务节点:</span>
|
||||
<span class="task-info-value">{{task.taskName}}</span>
|
||||
</div>
|
||||
|
||||
<div class="task-info">
|
||||
<span class="task-info-label">流程分类:</span>
|
||||
<span class="task-info-value">
|
||||
{{categoryOptions.find(item => item.id === task.category)?.name || '未知分类'}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="task-info">
|
||||
<span class="task-info-label">申请人:</span>
|
||||
<span class="task-info-value">{{task.variable?.initiatorName || '未知'}}</span>
|
||||
</div>
|
||||
|
||||
<div class="task-info" v-if="activeTab === 'started'">
|
||||
<span class="task-info-label">状态:</span>
|
||||
<span class="task-info-value">
|
||||
{{processStatusMap[task.state]?.text || '未知状态'}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="task-footer">
|
||||
<van-button
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="openView(task)"
|
||||
>查看
|
||||
</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="empty-section">
|
||||
<van-empty :description="getEmptyText()"></van-empty>
|
||||
</div>
|
||||
</van-list>
|
||||
</van-pull-refresh>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
return {
|
||||
// 统计数据
|
||||
todoCount: 0,
|
||||
doneCount: 0,
|
||||
startedCount: 0,
|
||||
|
||||
// 查询表单
|
||||
pageForm: {
|
||||
pageNumber: 1,
|
||||
pageSize: 10,
|
||||
totalCount: 0,
|
||||
searchKeyword: "",
|
||||
category: ""
|
||||
},
|
||||
|
||||
// 流程类型选项
|
||||
categoryOptions: [],
|
||||
showCategoryPicker: false,
|
||||
categoryLabel: "",
|
||||
|
||||
// 任务列表
|
||||
tasks: [],
|
||||
loading: false,
|
||||
finished: false,
|
||||
refreshing: false,
|
||||
|
||||
// 标签页
|
||||
activeTab: "todo",
|
||||
|
||||
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"}
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initData();
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 初始化数据
|
||||
async initData() {
|
||||
await Promise.all([this.getStatistics(), this.listCategory()]);
|
||||
// 初始加载任务
|
||||
// this.getTasks();
|
||||
},
|
||||
|
||||
// 获取统计数据
|
||||
async getStatistics() {
|
||||
try {
|
||||
const {code, data, msg} = await this.$axios.post("/flow/todoCenter/statistics");
|
||||
if (code === 0) {
|
||||
const {todoCount, doneCount, startedCount} = data
|
||||
this.todoCount = todoCount;
|
||||
this.doneCount = doneCount;
|
||||
this.startedCount = startedCount;
|
||||
}
|
||||
} catch (error) {
|
||||
this.$toast("获取统计数据失败");
|
||||
console.error("获取统计数据失败:", error);
|
||||
}
|
||||
},
|
||||
|
||||
// 获取流程类型
|
||||
async listCategory() {
|
||||
try {
|
||||
// 这里使用模拟数据,实际项目中替换为API调用
|
||||
const res = await axios.post("/flow/category/list");
|
||||
if (res.data.code === 0) {
|
||||
this.categoryOptions = res.data.data;
|
||||
}
|
||||
} catch (error) {
|
||||
this.$toast("获取流程分类失败");
|
||||
console.error("获取流程分类失败:", error);
|
||||
}
|
||||
},
|
||||
|
||||
// 获取任务列表
|
||||
async getTasks() {
|
||||
if (this.refreshing) {
|
||||
this.tasks = [];
|
||||
this.refreshing = false;
|
||||
}
|
||||
|
||||
this.loading = true;
|
||||
|
||||
try {
|
||||
const {code,data,msg} = await this.$axios.post("/flow/todoCenter/" + this.activeTab, this.pageForm);
|
||||
if (code === 0) {
|
||||
this.tasks = this.tasks.concat(data.list || []);
|
||||
this.pageForm.totalCount = data.totalCount;
|
||||
this.loading = false;
|
||||
|
||||
// 数据全部加载完成
|
||||
if (this.tasks.length >= this.pageForm.totalCount) {
|
||||
this.finished = true;
|
||||
} else {
|
||||
this.pageForm.pageNumber++;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
this.$toast("获取任务列表失败");
|
||||
console.error("获取任务列表失败:", error);
|
||||
this.loading = false;
|
||||
this.refreshing = false;
|
||||
}
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onRefresh() {
|
||||
this.pageForm.pageNumber = 1;
|
||||
this.finished = false;
|
||||
this.getTasks();
|
||||
},
|
||||
|
||||
// 处理标签页变化
|
||||
handleTabChange(name) {
|
||||
this.activeTab = name;
|
||||
this.pageForm.pageNumber = 1;
|
||||
this.tasks = [];
|
||||
this.finished = false;
|
||||
this.getTasks();
|
||||
this.getStatistics();
|
||||
},
|
||||
|
||||
// 搜索
|
||||
search() {
|
||||
this.pageForm.pageNumber = 1;
|
||||
this.tasks = [];
|
||||
this.finished = false;
|
||||
this.getTasks();
|
||||
this.getStatistics();
|
||||
},
|
||||
|
||||
// 重置搜索
|
||||
reset() {
|
||||
this.pageForm.searchKeyword = "";
|
||||
this.pageForm.category = "";
|
||||
this.categoryLabel = "";
|
||||
this.search();
|
||||
},
|
||||
|
||||
// 分类选择确认
|
||||
onCategoryConfirm(value) {
|
||||
this.pageForm.category = value.id;
|
||||
this.categoryLabel = value.name;
|
||||
this.showCategoryPicker = false;
|
||||
},
|
||||
|
||||
// 处理任务
|
||||
openView(task) {
|
||||
const {taskId, taskKey, instanceId, businessNo, formKey} = task;
|
||||
|
||||
if (!formKey) {
|
||||
this.$toast("当前流程没有配置地址");
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
// 获取空状态文本
|
||||
getEmptyText() {
|
||||
switch (this.activeTab) {
|
||||
case "todo":
|
||||
return "您当前没有需要办理的任务,辛苦了";
|
||||
case "done":
|
||||
return "您当前没有已办理的任务记录";
|
||||
case "started":
|
||||
return "您当前没有发起的流程";
|
||||
default:
|
||||
return "暂无数据";
|
||||
}
|
||||
}
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
.task-center {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/deep/ .filter-section {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.search-form {
|
||||
display: flex;
|
||||
background: #fff;
|
||||
padding: 12px 16px;
|
||||
border-radius: 8px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.search-form .van-search{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.search-input {
|
||||
flex: 1;
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.task-list {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
/deep/ .task-item {
|
||||
margin-bottom: 12px;
|
||||
overflow: hidden;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
/deep/ .task-content {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
/deep/ .task-title {
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
margin-bottom: 8px;
|
||||
color: #323233;
|
||||
}
|
||||
|
||||
/deep/ .task-info {
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
color: #969799;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
/deep/ .task-info-label {
|
||||
width: 70px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/deep/ .task-info-value {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/deep/ .task-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
/deep/ .empty-section {
|
||||
padding: 40px 0;
|
||||
text-align: center;
|
||||
color: #969799;
|
||||
}
|
||||
|
||||
.category-select {
|
||||
margin: 0 12px 12px 0;
|
||||
}
|
||||
`
|
||||
}
|
||||
Reference in New Issue
Block a user