Merge branch 'main' of https://dd3skj.picp.vip/zhaoxinyu/v4
This commit is contained in:
+78
@@ -5,7 +5,11 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
@@ -13,21 +17,32 @@ import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.TeacherCongressDelegatePush;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_union;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -45,6 +60,9 @@ public class TeacherCongressDelegatePushZgAuditController {
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
|
||||
@Inject
|
||||
private FlowCommonService flowCommonService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/democratic/teachercongress/delegate/push/zcAudit.html")
|
||||
@SaCheckPermission("tc.delegate.push.zcAudit")
|
||||
@@ -182,4 +200,64 @@ public class TeacherCongressDelegatePushZgAuditController {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("审查通过")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("tc.delegate.push.zcAudit")
|
||||
@SLog(tag = "代表管理-代表资格审查", msg = "审查通过")
|
||||
public Result submit(@Param("data") String param, @Valid String id) {
|
||||
|
||||
TeacherCongressDelegatePush delegatePush = baseService.dao().fetch(TeacherCongressDelegatePush.class, id);
|
||||
View_user user = baseService.dao().fetch(View_user.class, Cnd.where("id", "=", delegatePush.getUserId()));
|
||||
|
||||
if (delegatePush.getIsJdh()) {
|
||||
Teacher_congress_delegate delegate = new Teacher_congress_delegate();
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
|
||||
delegate.setUserId(user.getId());
|
||||
delegate.setLoginName(user.getLoginname());
|
||||
delegate.setUserName(user.getUsername());
|
||||
delegate.setSex(user.getSex());
|
||||
delegate.setAge(delegatePush.getAge());
|
||||
delegate.setMobile(user.getMobile());
|
||||
delegate.setUnitId(user.getUnitId());
|
||||
delegate.setUnitName(user.getUnitName());
|
||||
delegate.setUnionId(user.getUnionId());
|
||||
delegate.setUnionName(user.getUnionName());
|
||||
|
||||
delegate.setSessionId(delegatePush.getSessionId());
|
||||
|
||||
Teacher_congress_delegation_union delegation_union = baseService.dao().fetch(Teacher_congress_delegation_union.class,
|
||||
Cnd.where(Teacher_congress_delegation_union::getUnionId, "=", user.getUnionId())
|
||||
.and(Teacher_congress_delegation_union::getSessionId, "=", delegatePush.getSessionId()));
|
||||
|
||||
if (ObjectUtil.isNotEmpty(delegation_union)) {
|
||||
delegate.setDelegationId(delegation_union.getId());
|
||||
userRole.setTcDelegationId(delegation_union.getId());
|
||||
} else {
|
||||
return Result.error(user.getUnionName() + "没有设置到代表团,请先在代表团管理里设置。");
|
||||
}
|
||||
if ("正式代表".equals(delegatePush.getRepresentativeType())) {
|
||||
Sys_role sys_role = baseService.dao().fetch(Sys_role.class, Cnd.where(Sys_role::getCode, "=", RoleConstant.TEACHER_CONGRESS_DELEGATE_FORMAL.name()));
|
||||
delegate.setRoleId(sys_role.getId());
|
||||
userRole.setRoleId(sys_role.getId());
|
||||
}
|
||||
if ("列席代表".equals(delegatePush.getRepresentativeType())) {
|
||||
Sys_role sys_role = baseService.dao().fetch(Sys_role.class, Cnd.where(Sys_role::getCode, "=", RoleConstant.TEACHER_CONGRESS_DELEGATE_ATTENDANCE.name()));
|
||||
delegate.setRoleId(sys_role.getId());
|
||||
delegate.setRoleId(sys_role.getId());
|
||||
userRole.setRoleId(sys_role.getId());
|
||||
}
|
||||
userRole.setUserId(user.getId());
|
||||
userRole.setTcSessionId(delegatePush.getSessionId());
|
||||
baseService.dao().insert(delegate);
|
||||
baseService.dao().insert(userRole);
|
||||
|
||||
}
|
||||
Dict args = Json.fromJson(Dict.class, param);
|
||||
flowCommonService.executeTask(args);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
-16
@@ -1,45 +1,29 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.commons.base.Globals;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 会员入会申请分工会审核
|
||||
|
||||
+9
-9
@@ -14,7 +14,7 @@ layout("/layouts/platform.html"){
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="分工会">
|
||||
<el-select v-model="pageForm.unionId" filterable clearable style="width: 100%">
|
||||
<el-select v-model="pageForm.unionId" filterable clearable style="width: 100%">
|
||||
<el-option v-for="i in unionOptions" :label="i.name" :key="i.id" :value="i.id"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
@@ -33,7 +33,7 @@ layout("/layouts/platform.html"){
|
||||
<el-radio-button :label="true">已审核</el-radio-button>
|
||||
<el-radio-button :label="false">未审核</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-button type="primary" size="small" @click="exportExcel" class="ml5">导出</el-button>
|
||||
<el-button type="primary" size="small" @click="exportExcel" class="ml5">导出</el-button>
|
||||
|
||||
</table-tool>
|
||||
<el-table
|
||||
@@ -42,16 +42,16 @@ layout("/layouts/platform.html"){
|
||||
row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
>
|
||||
<el-table-column type="selection" width="55" reserve-selection></el-table-column>
|
||||
<!-- <el-table-column type="selection" width="55" reserve-selection></el-table-column>-->
|
||||
<el-table-column type="index" width="55" label="序号" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName" width="100"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" width="50"></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionName" show-overflow-tooltip></el-table-column>
|
||||
<!-- <el-table-column label="民族" prop="nation"></el-table-column><!–
|
||||
<el-table-column label="政治面貌" prop="political"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="学历" prop="education"></el-table-column>-->
|
||||
<!-- <el-table-column label="民族" prop="nation"></el-table-column><!–
|
||||
<el-table-column label="政治面貌" prop="political"
|
||||
show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="学历" prop="education"></el-table-column>-->
|
||||
<el-table-column label="职称" prop="professionalTitle"></el-table-column>
|
||||
<el-table-column label="职级" prop="professionalLevel"></el-table-column>
|
||||
<el-table-column label="是否高级职称" prop="seniorTeacher">
|
||||
@@ -175,11 +175,11 @@ layout("/layouts/platform.html"){
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
this.$axios.post("/platform/teacherCongress/delegate/push/zcAudit/submit", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: submitType
|
||||
})
|
||||
}), id: row.id
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
|
||||
@@ -393,6 +393,7 @@ layout("/layouts/platform.html"){
|
||||
campus,
|
||||
userState,
|
||||
personType,
|
||||
preparedBy,
|
||||
idCard,
|
||||
mobile,
|
||||
email,
|
||||
@@ -414,6 +415,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, "campus", campus)
|
||||
this.$set(this.formData, "userState", userState)
|
||||
this.$set(this.formData, "personType", personType)
|
||||
this.$set(this.formData, "preparedBy", preparedBy)
|
||||
this.$set(this.formData, "unitName", unit ? unit.name : unitName)
|
||||
this.$set(this.formData, "unitId", unit ? unit.id : unitId)
|
||||
this.$set(this.formData, "unionName", union ? union.name : unionName)
|
||||
|
||||
@@ -31,7 +31,7 @@ const INFO = {
|
||||
|
||||
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
|
||||
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
|
||||
<el-descriptions-item label="进校时间">{{ viewData.schoolTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
|
||||
|
||||
<template v-if="viewData.userState == '退休'">
|
||||
<el-descriptions-item label="退休日期">{{ viewData.retireDate ?
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ const MEMBER_ALL_CHANGE_INFO = {
|
||||
|
||||
<el-descriptions-item label="在职状态">{{ viewData.userState }}</el-descriptions-item>
|
||||
<el-descriptions-item label="教职工类别">{{ viewData.personType }}</el-descriptions-item>
|
||||
<el-descriptions-item label="进校时间">{{ viewData.schoolTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="编制类别">{{ viewData.preparedBy }}</el-descriptions-item>
|
||||
|
||||
<template v-if="viewData.userState == '退休'">
|
||||
<el-descriptions-item label="退休日期">{{ viewData.retireDate ? $moment(viewData.retireDate).format("YYYY-MM-DD") : '暂无' }}</el-descriptions-item>
|
||||
|
||||
+6
-6
@@ -139,18 +139,18 @@ const MEMBER_CHANGE = {
|
||||
:disabled="allowFields('userState')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="编制类别">
|
||||
<el-form-item prop="preparedBy">
|
||||
<dict-select v-model="formData.preparedBy" code="USER_PREPARED_BY_TYPE"
|
||||
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="教职工类别">
|
||||
<el-form-item prop="personType">
|
||||
<dict-select v-model="formData.personType" code="USER_PERSON_TYPE"
|
||||
:disabled="allowFields('personType')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="编制类别">
|
||||
<el-form-item prop="preparedBy">
|
||||
<dict-select v-model="formData.preparedBy" code="USER_PREPARED_BY_TYPE"
|
||||
:disabled="allowFields('preparedBy')" style="width: 100%"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<template v-if="formData.userState == '退休'">
|
||||
<el-descriptions-item label="退休日期">
|
||||
|
||||
@@ -567,7 +567,7 @@ const optionSelect = {
|
||||
},
|
||||
style: /*language=CSS*/ `
|
||||
/* 全局变量 */
|
||||
:root {
|
||||
/deep/ :root {
|
||||
--primary-color: #409EFF;
|
||||
--primary-light: #ecf5ff;
|
||||
--text-primary: #303133;
|
||||
@@ -580,7 +580,7 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 主容器样式 */
|
||||
.welfare-select-container {
|
||||
/deep/ .welfare-select-container {
|
||||
background: linear-gradient(135deg, #f5f7fa 0%, #ffffff 100%);
|
||||
padding: 16px;
|
||||
border-radius: 8px;
|
||||
@@ -589,7 +589,7 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 截止时间提醒 */
|
||||
.welfare-deadline {
|
||||
/deep/ .welfare-deadline {
|
||||
background: linear-gradient(135deg, #fff7f7 0%, #fff 100%);
|
||||
border-left: 3px solid var(--danger-color);
|
||||
padding: 12px 16px;
|
||||
@@ -614,23 +614,23 @@ const optionSelect = {
|
||||
}
|
||||
}
|
||||
|
||||
.welfare-deadline i {
|
||||
/deep/ .welfare-deadline i {
|
||||
margin-right: 8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* 选择提示 */
|
||||
.welfare-notice {
|
||||
/deep/ .welfare-notice {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.welfare-notice .el-alert {
|
||||
/deep/ .welfare-notice .el-alert {
|
||||
border-radius: 6px;
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
/* 内容区域 */
|
||||
.welfare-content {
|
||||
/deep/ .welfare-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
@@ -638,7 +638,7 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 项目信息卡片 */
|
||||
.welfare-info-card {
|
||||
/deep/ .welfare-info-card {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
|
||||
@@ -647,14 +647,14 @@ const optionSelect = {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.project-cover {
|
||||
/deep/ .project-cover {
|
||||
height: 140px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
margin: -10px -20px 16px;
|
||||
}
|
||||
|
||||
.project-cover::after {
|
||||
/deep/ .project-cover::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@@ -664,13 +664,13 @@ const optionSelect = {
|
||||
background: linear-gradient(to top, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
|
||||
}
|
||||
|
||||
.project-cover .el-image {
|
||||
/deep/ .project-cover .el-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.welfare-info-header {
|
||||
/deep/ .welfare-info-header {
|
||||
padding: 14px 16px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
font-size: 16px;
|
||||
@@ -681,41 +681,41 @@ const optionSelect = {
|
||||
background: linear-gradient(135deg, #f8f9fb 0%, #fff 100%);
|
||||
}
|
||||
|
||||
.welfare-info-header i {
|
||||
/deep/ .welfare-info-header i {
|
||||
margin-right: 8px;
|
||||
color: var(--primary-color);
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
/deep/ .info-item {
|
||||
display: flex;
|
||||
padding: 12px 16px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.info-item:hover {
|
||||
/deep/ .info-item:hover {
|
||||
background: var(--primary-light);
|
||||
}
|
||||
|
||||
.info-item:last-child {
|
||||
/deep/ .info-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.info-label {
|
||||
/deep/ .info-label {
|
||||
width: 100px;
|
||||
color: var(--text-secondary);
|
||||
font-weight: 500;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.info-value {
|
||||
/deep/ .info-value {
|
||||
flex: 1;
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* 福利选项卡片 */
|
||||
.welfare-options-card {
|
||||
/deep/ .welfare-options-card {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
|
||||
@@ -723,7 +723,7 @@ const optionSelect = {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.options-count {
|
||||
/deep/ .options-count {
|
||||
font-size: 14px;
|
||||
color: var(--text-light);
|
||||
font-weight: normal;
|
||||
@@ -732,7 +732,7 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 选项网格 */
|
||||
.welfare-options-grid {
|
||||
/deep/ .welfare-options-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
|
||||
gap: 16px;
|
||||
@@ -740,7 +740,7 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 选项卡片 */
|
||||
.welfare-option {
|
||||
/deep/ .welfare-option {
|
||||
position: relative;
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
@@ -755,17 +755,17 @@ const optionSelect = {
|
||||
animation: fadeIn 0.6s ease-out forwards;
|
||||
}
|
||||
|
||||
.welfare-option:hover {
|
||||
/deep/ .welfare-option:hover {
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.welfare-option.selected {
|
||||
/deep/ .welfare-option.selected {
|
||||
border-color: var(--primary-color);
|
||||
box-shadow: 0 4px 16px rgba(64, 158, 255, 0.15);
|
||||
}
|
||||
|
||||
.welfare-option.selected::before {
|
||||
/deep/ .welfare-option.selected::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
@@ -777,7 +777,7 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 选项标签 */
|
||||
.option-tag {
|
||||
/deep/ .option-tag {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 8px;
|
||||
@@ -790,14 +790,14 @@ const optionSelect = {
|
||||
}
|
||||
|
||||
/* 选项图片 */
|
||||
.option-image {
|
||||
/deep/ .option-image {
|
||||
width: 100%;
|
||||
height: 160px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.option-image::after {
|
||||
/deep/ .option-image::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@@ -807,18 +807,18 @@ const optionSelect = {
|
||||
background: linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent);
|
||||
}
|
||||
|
||||
.option-image .el-image {
|
||||
/deep/ .option-image .el-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.welfare-option:hover .option-image .el-image {
|
||||
/deep/ .welfare-option:hover .option-image .el-image {
|
||||
transform: scale(1.06);
|
||||
}
|
||||
|
||||
/* 选项内容 */
|
||||
.option-content {
|
||||
/deep/ .option-content {
|
||||
padding: 12px 16px;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
@@ -827,7 +827,7 @@ const optionSelect = {
|
||||
background: linear-gradient(135deg, #fff 0%, #f8f9fb 100%);
|
||||
}
|
||||
|
||||
.option-title {
|
||||
/deep/ .option-title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
@@ -841,7 +841,7 @@ const optionSelect = {
|
||||
padding-right: 24px;
|
||||
}
|
||||
|
||||
.option-detail-btn {
|
||||
/deep/ .option-detail-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
color: var(--primary-color);
|
||||
@@ -854,41 +854,41 @@ const optionSelect = {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.option-detail-btn i {
|
||||
/deep/ .option-detail-btn i {
|
||||
margin-right: 4px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.option-detail-btn:hover {
|
||||
/deep/ .option-detail-btn:hover {
|
||||
background: #dceeff;
|
||||
transform: translateX(4px);
|
||||
}
|
||||
|
||||
/* 选择控件 */
|
||||
.option-radio {
|
||||
/deep/ .option-radio {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
right: 12px;
|
||||
}
|
||||
|
||||
.option-stepper {
|
||||
/deep/ .option-stepper {
|
||||
position: absolute;
|
||||
bottom: 12px;
|
||||
right: 12px;
|
||||
}
|
||||
|
||||
.option-stepper .el-input-number {
|
||||
/deep/ .option-stepper .el-input-number {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
/* 底部按钮 */
|
||||
.welfare-footer {
|
||||
/deep/ .welfare-footer {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 16px 0;
|
||||
}
|
||||
|
||||
.welfare-footer .el-button {
|
||||
/deep/ .welfare-footer .el-button {
|
||||
min-width: 140px;
|
||||
height: 40px;
|
||||
font-size: 15px;
|
||||
@@ -897,21 +897,21 @@ const optionSelect = {
|
||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
.welfare-footer .el-button:hover {
|
||||
/deep/ .welfare-footer .el-button:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(64, 158, 255, 0.25);
|
||||
}
|
||||
|
||||
/* 确认弹窗样式 */
|
||||
.welfare-confirm-dialog {
|
||||
/deep/ .welfare-confirm-dialog {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.confirm-content {
|
||||
/deep/ .confirm-content {
|
||||
padding: 16px 0;
|
||||
}
|
||||
|
||||
.confirm-section-title {
|
||||
/deep/ .confirm-section-title {
|
||||
font-size: 15px;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 12px;
|
||||
@@ -920,7 +920,7 @@ const optionSelect = {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.confirm-section-title::before {
|
||||
/deep/ .confirm-section-title::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
@@ -932,11 +932,11 @@ const optionSelect = {
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.confirm-mobile-section {
|
||||
/deep/ .confirm-mobile-section {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.selected-items {
|
||||
/deep/ .selected-items {
|
||||
background: #f8f9fb;
|
||||
border-radius: 8px;
|
||||
padding: 16px;
|
||||
@@ -945,7 +945,7 @@ const optionSelect = {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.selected-item {
|
||||
/deep/ .selected-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -957,23 +957,23 @@ const optionSelect = {
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
|
||||
}
|
||||
|
||||
.selected-item:last-child {
|
||||
/deep/ .selected-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.selected-item:hover {
|
||||
/deep/ .selected-item:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.selected-item-left {
|
||||
/deep/ .selected-item-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.selected-item-image {
|
||||
/deep/ .selected-item-image {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 8px;
|
||||
@@ -984,13 +984,13 @@ const optionSelect = {
|
||||
border: 1px solid rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.selected-item-image .el-image {
|
||||
/deep/ .selected-item-image .el-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.image-slot {
|
||||
/deep/ .image-slot {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -1000,13 +1000,13 @@ const optionSelect = {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.selected-item-info {
|
||||
/deep/ .selected-item-info {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.selected-item-name {
|
||||
/deep/ .selected-item-name {
|
||||
color: var(--text-primary);
|
||||
font-weight: 500;
|
||||
font-size: 15px;
|
||||
@@ -1017,25 +1017,25 @@ const optionSelect = {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.selected-item-quantity {
|
||||
/deep/ .selected-item-quantity {
|
||||
color: var(--text-secondary);
|
||||
font-size: 13px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.selected-item-quantity i {
|
||||
/deep/ .selected-item-quantity i {
|
||||
margin-right: 4px;
|
||||
font-size: 14px;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.selected-item-right {
|
||||
/deep/ .selected-item-right {
|
||||
flex-shrink: 0;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.selected-item-right .el-tag {
|
||||
/deep/ .selected-item-right .el-tag {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
padding: 0 10px;
|
||||
@@ -1044,7 +1044,7 @@ const optionSelect = {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.confirm-total {
|
||||
/deep/ .confirm-total {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@@ -1054,19 +1054,19 @@ const optionSelect = {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.total-label {
|
||||
/deep/ .total-label {
|
||||
color: var(--text-secondary);
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.total-value {
|
||||
/deep/ .total-value {
|
||||
color: var(--primary-color);
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.confirm-warning {
|
||||
/deep/ .confirm-warning {
|
||||
margin-top: 16px;
|
||||
padding: 10px 14px;
|
||||
background: #fff7e6;
|
||||
@@ -1077,17 +1077,17 @@ const optionSelect = {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.confirm-warning.warning {
|
||||
/deep/ .confirm-warning.warning {
|
||||
background: #fef0f0;
|
||||
color: var(--danger-color);
|
||||
}
|
||||
|
||||
.confirm-warning i {
|
||||
/deep/ .confirm-warning i {
|
||||
margin-right: 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.deadline-info {
|
||||
/deep/ .deadline-info {
|
||||
margin-top: 12px;
|
||||
padding: 10px 14px;
|
||||
background: var(--primary-light);
|
||||
@@ -1098,22 +1098,23 @@ const optionSelect = {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/deep/
|
||||
.deadline-info i {
|
||||
margin-right: 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* 详情弹窗 */
|
||||
.welfare-detail-dialog {
|
||||
/deep/ .welfare-detail-dialog {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.welfare-detail-popup {
|
||||
/deep/ .welfare-detail-popup {
|
||||
padding: 16px;
|
||||
min-height: 200px;
|
||||
}
|
||||
|
||||
.welfare-detail-title {
|
||||
/deep/ .welfare-detail-title {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
@@ -1123,14 +1124,14 @@ const optionSelect = {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.welfare-detail-content {
|
||||
/deep/ .welfare-detail-content {
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* 加载状态 */
|
||||
.welfare-loading {
|
||||
/deep/ .welfare-loading {
|
||||
min-height: 300px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -1149,7 +1150,7 @@ const optionSelect = {
|
||||
}
|
||||
}
|
||||
|
||||
.welfare-select-container > * {
|
||||
/deep/ .welfare-select-container > * {
|
||||
animation: fadeIn 0.5s ease-out forwards;
|
||||
}
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user