36 Commits
Author SHA1 Message Date
xuxin d556170969 1.1岗位列表等新版本 2026-08-11 11:54:35 +08:00
xuxin 1e103627f8 加一个超级管理员登陆页面 2026-08-05 14:32:33 +08:00
xuxin 8b9ebd6ddc 删掉之前测试时用过的一个无效旧token 2026-07-29 15:18:24 +08:00
xuxin 5abd6d27d6 联系二维码图片存oss图片链接缓存oss里的 2026-07-27 14:31:02 +08:00
xuxin bb7a8c55b2 4个mvp补丁 2026-07-24 18:15:31 +08:00
xuxin a0f01dd697 插件上传谷歌商店验证文件 2026-07-22 10:01:10 +08:00
xuxin 58a027296a 隐私协议单独加个页面 2026-07-21 11:29:26 +08:00
xuxin 010a80be81 隐私协议单独加个页面 2026-07-21 11:20:01 +08:00
xuxin 6c03793daf 去掉offer派插件test和www不同环境域名的通信隔离 2026-07-17 20:19:59 +08:00
xuxin 33ecccdcb0 bug处理加文字样式微调 2026-07-17 20:00:24 +08:00
xuxin d429bae98a 备案号 2026-07-17 16:49:46 +08:00
xuxin 0b9f2e7333 备案号 2026-07-17 16:48:39 +08:00
xuxin db46766d48 个人资料教育经历学历类型保存bug,和岗位为列表页查询条件添加公司类型分类 2026-07-17 16:28:50 +08:00
xuxin 27d2592d06 bug修改 2026-07-17 15:12:41 +08:00
xuxin c81c9b79dd 没有个人资料时检测跳转登陆页,登陆页改造,添加新的业务配置文件来控制功能开关 2026-07-17 12:01:34 +08:00
xuxin 5f4aab8d04 bug处理 2026-07-16 18:36:40 +08:00
xuxin 15971bffd9 友盟跟踪记录 2026-07-16 16:30:07 +08:00
xuxin bf84da7783 bug处理,插件版本同步 2026-07-15 16:36:20 +08:00
xuxin 0911760e27 3个需求处理和插件通信组件引入(和插件共用的一个ts) 2026-07-15 09:49:21 +08:00
xuxin 66026f211c bug处理 2026-07-14 11:44:09 +08:00
xuxin 7abe158dbb bug处理 2026-07-13 23:01:49 +08:00
xuxin aed2535ab2 登陆和首页微调 2026-07-13 20:56:06 +08:00
xuxin 5f723e5573 ai助手投递偏好设置修复 2026-07-10 16:57:43 +08:00
xuxin 8cd21e7b98 ai助手投递偏好设置修复 2026-07-10 16:29:31 +08:00
xuxin e8e2e09e62 样式小bug修改-01 2026-07-10 11:38:56 +08:00
xuxin 4be35ced80 ai助手本地不缓存没有完成的投递记录 2026-07-10 10:37:35 +08:00
xuxin 0e5c7d14d0 AI投递助手样式优化 2026-07-10 10:01:07 +08:00
xuxin cf268520e1 AI投递助手 2026-07-10 02:08:41 +08:00
xuxin cd64ded6ae AI润色用新加载特效 2026-07-09 16:26:29 +08:00
xuxin ec6ba7ee35 简历详情样式微调 2026-07-09 16:04:25 +08:00
xuxin 72339f332d 简历详情样式微调 2026-07-09 15:27:31 +08:00
xuxin b25f2dde3a 左侧菜单微调 2026-07-09 11:45:36 +08:00
xuxin 38e3957da2 导师搜索标签 2026-07-09 10:47:14 +08:00
xuxin ed959e6e6d 一键修复样式微调 2026-07-08 23:20:22 +08:00
xuxin f0b29d9abb 导师列表导师详情右侧广告,去投递弹窗等 2026-07-08 22:48:58 +08:00
xuxin c94a96d14e 个人资料,简历 2026-07-08 18:58:27 +08:00
145 changed files with 13745 additions and 4175 deletions
+5 -3
View File
@@ -13,6 +13,7 @@ declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
AgentApplyProgress: typeof import('./src/components/AgentApplyProgress.vue')['default'] AgentApplyProgress: typeof import('./src/components/AgentApplyProgress.vue')['default']
AgentApplyProgressPanel: typeof import('./src/components/AgentApplyProgressPanel.vue')['default'] AgentApplyProgressPanel: typeof import('./src/components/AgentApplyProgressPanel.vue')['default']
AgentBrowserInstallGuide: typeof import('./src/components/AgentBrowserInstallGuide.vue')['default']
AgentChatJobList: typeof import('./src/components/AgentChatJobList.vue')['default'] AgentChatJobList: typeof import('./src/components/AgentChatJobList.vue')['default']
AgentJobPreviewPanel: typeof import('./src/components/AgentJobPreviewPanel.vue')['default'] AgentJobPreviewPanel: typeof import('./src/components/AgentJobPreviewPanel.vue')['default']
AgentMatchJobAdd: typeof import('./src/components/AgentMatchJobAdd.vue')['default'] AgentMatchJobAdd: typeof import('./src/components/AgentMatchJobAdd.vue')['default']
@@ -30,17 +31,15 @@ declare module 'vue' {
ElDialog: typeof import('element-plus/es')['ElDialog'] ElDialog: typeof import('element-plus/es')['ElDialog']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElOption: typeof import('element-plus/es')['ElOption']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSkeleton: typeof import('element-plus/es')['ElSkeleton'] ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem'] ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
FullscreenLoading: typeof import('./src/components/FullscreenLoading.vue')['default'] FullscreenLoading: typeof import('./src/components/FullscreenLoading.vue')['default']
HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] HelloWorld: typeof import('./src/components/HelloWorld.vue')['default']
IndustrySelector: typeof import('./src/components/tools/IndustrySelector.vue')['default'] IndustrySelector: typeof import('./src/components/tools/IndustrySelector.vue')['default']
JobApplyMethodDialog: typeof import('./src/components/JobApplyMethodDialog.vue')['default']
JobCategorySelector: typeof import('./src/components/tools/JobCategorySelector.vue')['default'] JobCategorySelector: typeof import('./src/components/tools/JobCategorySelector.vue')['default']
JobDislikeDialog: typeof import('./src/components/JobDislikeDialog.vue')['default'] JobDislikeDialog: typeof import('./src/components/JobDislikeDialog.vue')['default']
JobFeedbackDialog: typeof import('./src/components/JobFeedbackDialog.vue')['default'] JobFeedbackDialog: typeof import('./src/components/JobFeedbackDialog.vue')['default']
@@ -52,6 +51,8 @@ declare module 'vue' {
LoginDialog: typeof import('./src/components/LoginDialog.vue')['default'] LoginDialog: typeof import('./src/components/LoginDialog.vue')['default']
MemberAccessDialog: typeof import('./src/components/MemberAccessDialog.vue')['default'] MemberAccessDialog: typeof import('./src/components/MemberAccessDialog.vue')['default']
MemberDialog: typeof import('./src/components/MemberDialog.vue')['default'] MemberDialog: typeof import('./src/components/MemberDialog.vue')['default']
MentorAsidePanel: typeof import('./src/components/MentorAsidePanel.vue')['default']
MentorQrCodeDialog: typeof import('./src/components/MentorQrCodeDialog.vue')['default']
ProfileEditDrawer: typeof import('./src/components/ProfileEditDrawer.vue')['default'] ProfileEditDrawer: typeof import('./src/components/ProfileEditDrawer.vue')['default']
ProfilePageContent: typeof import('./src/components/ProfilePageContent.vue')['default'] ProfilePageContent: typeof import('./src/components/ProfilePageContent.vue')['default']
ProfileWelcomeDialog: typeof import('./src/components/ProfileWelcomeDialog.vue')['default'] ProfileWelcomeDialog: typeof import('./src/components/ProfileWelcomeDialog.vue')['default']
@@ -69,6 +70,7 @@ declare module 'vue' {
SettingsDialog: typeof import('./src/components/SettingsDialog.vue')['default'] SettingsDialog: typeof import('./src/components/SettingsDialog.vue')['default']
SettingsInviteDialog: typeof import('./src/components/SettingsInviteDialog.vue')['default'] SettingsInviteDialog: typeof import('./src/components/SettingsInviteDialog.vue')['default']
SideNav: typeof import('./src/components/SideNav.vue')['default'] SideNav: typeof import('./src/components/SideNav.vue')['default']
StepProgressOverlay: typeof import('./src/components/StepProgressOverlay.vue')['default']
} }
export interface GlobalDirectives { export interface GlobalDirectives {
vLoading: typeof import('element-plus/es')['ElLoadingDirective'] vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+10
View File
@@ -7,6 +7,16 @@
<title>Offer派 - 大学生AI求职平台 | 智能岗位匹配·一键自动网申·AI简历优化</title> <title>Offer派 - 大学生AI求职平台 | 智能岗位匹配·一键自动网申·AI简历优化</title>
<meta name="description" content="Offer派是专为大学生打造的AI求职平台,提供智能岗位匹配、一键自动网申、岗位定制简历、内推人脉直通等功能,让校招求职效率提升80%。" /> <meta name="description" content="Offer派是专为大学生打造的AI求职平台,提供智能岗位匹配、一键自动网申、岗位定制简历、内推人脉直通等功能,让校招求职效率提升80%。" />
<meta name="keywords" content="大学生求职,校招,AI求职,智能匹配,自动网申,简历优化,内推,Offer派" /> <meta name="keywords" content="大学生求职,校招,AI求职,智能匹配,自动网申,简历优化,内推,Offer派" />
<!-- 友盟统计 -->
<script>
var _czc = _czc || [];
(function () {
var um = document.createElement("script");
um.src = "https://v1.cnzz.com/z.js?id=1281490571&async=1";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(um, s);
})();
</script>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
+1
View File
@@ -20,6 +20,7 @@
"vuex": "^4.1.0" "vuex": "^4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@types/chrome": "^0.2.2",
"@types/markdown-it": "^14.1.2", "@types/markdown-it": "^14.1.2",
"@types/node": "^24.10.1", "@types/node": "^24.10.1",
"@vitejs/plugin-vue": "^6.0.2", "@vitejs/plugin-vue": "^6.0.2",
+28
View File
@@ -36,6 +36,9 @@ importers:
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0(vue@3.5.29(typescript@5.9.3)) version: 4.1.0(vue@3.5.29(typescript@5.9.3))
devDependencies: devDependencies:
'@types/chrome':
specifier: ^0.2.2
version: 0.2.2
'@types/markdown-it': '@types/markdown-it':
specifier: ^14.1.2 specifier: ^14.1.2
version: 14.1.2 version: 14.1.2
@@ -490,9 +493,21 @@ packages:
'@sxzz/popperjs-es@2.11.8': '@sxzz/popperjs-es@2.11.8':
resolution: {integrity: sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==} resolution: {integrity: sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==}
'@types/chrome@0.2.2':
resolution: {integrity: sha512-8rSMZ4cvo2xmaSyQg0sN5yRL7oiDkntLoiHxUhfwQnv1mvnkrdoZ25SlNrKWmYKaeP50WvrfWj1pmc02+U9KKw==}
'@types/estree@1.0.8': '@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/filesystem@0.0.36':
resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==}
'@types/filewriter@0.0.33':
resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==}
'@types/har-format@1.2.16':
resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==}
'@types/linkify-it@5.0.0': '@types/linkify-it@5.0.0':
resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
@@ -1365,8 +1380,21 @@ snapshots:
'@sxzz/popperjs-es@2.11.8': {} '@sxzz/popperjs-es@2.11.8': {}
'@types/chrome@0.2.2':
dependencies:
'@types/filesystem': 0.0.36
'@types/har-format': 1.2.16
'@types/estree@1.0.8': {} '@types/estree@1.0.8': {}
'@types/filesystem@0.0.36':
dependencies:
'@types/filewriter': 0.0.33
'@types/filewriter@0.0.33': {}
'@types/har-format@1.2.16': {}
'@types/linkify-it@5.0.0': {} '@types/linkify-it@5.0.0': {}
'@types/lodash-es@4.17.12': '@types/lodash-es@4.17.12':
+1
View File
@@ -0,0 +1 @@
google-site-verification: google18c40aea647ea1cd.html
+29 -6
View File
@@ -23,7 +23,7 @@ export interface AgentConfig {
autoOptimizeResume?: number autoOptimizeResume?: number
/** 自动匹配分析 0=关闭 1=开启 */ /** 自动匹配分析 0=关闭 1=开启 */
autoMatchAnalysis?: number autoMatchAnalysis?: number
/** 是否愿意接受部门调剂 */ /** 是否开启深度人岗匹配分析,可选值:是/否(null或空字符串视为关闭) */
acceptDeptTransfer?: string acceptDeptTransfer?: string
/** 是否接受地点调剂 */ /** 是否接受地点调剂 */
acceptLocationTransfer?: string acceptLocationTransfer?: string
@@ -71,8 +71,8 @@ export interface AgentJobMatchDetail {
/** 推荐岗位项 */ /** 推荐岗位项 */
export interface AgentRecommendJob { export interface AgentRecommendJob {
/** 岗位 ID */ /** 岗位 ID(字符串,避免大整数精度丢失) */
id: number id: string | number
/** 岗位名称 */ /** 岗位名称 */
title: string title: string
/** 薪资描述 */ /** 薪资描述 */
@@ -103,6 +103,10 @@ export interface AgentRecommendJob {
matchScore: number matchScore: number
/** 匹配度详情 */ /** 匹配度详情 */
matchDetail: AgentJobMatchDetail matchDetail: AgentJobMatchDetail
/** 学历要求 0=不限 1=大专 2=本科 3=硕士 4=博士 */
education?: number
/** 招聘分类 0=社招 1=校招 2=实习 3=其他 */
recruitCategory?: number
} }
/** 求职助手岗位推荐返回数据 */ /** 求职助手岗位推荐返回数据 */
@@ -297,8 +301,27 @@ export interface OptimizeResumeParams {
*/ */
export function optimizeAgentResume(params: OptimizeResumeParams) { export function optimizeAgentResume(params: OptimizeResumeParams) {
return aiService.post('/job-agent/optimize-resume', params, { return aiService.post('/job-agent/optimize-resume', params, {
headers: {
Token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIwMzUyNTM4OTg5MTk4NzA0NjUsInV1SWQiOiI2MmQ5MDE2NTcyNzY0ZmNjODNjZTIyYjRjODA5ZmU5MiJ9.eE-Q5rio5J5kxkS-XPYdmk-1Tgvg6kj6NGoKWMFNU14',
},
}).then(res => res.data) }).then(res => res.data)
} }
// ==================== 岗位匹配度评分(Python 后端) ====================
/** 匹配度评分请求参数 */
export interface MatchScoreParams {
/** 定制简历 ID(字符串,避免大整数精度丢失) */
customizeResumeId?: string
/** 普通简历 ID(关闭优化时使用) */
resumeId?: string
/** 岗位 ID(字符串,避免大整数精度丢失) */
jobId: string
}
/**
* 岗位匹配度评分
* POST /job-agent/match-score
* @returns data 为匹配度分数(0-100
*/
export function fetchMatchScore(params: MatchScoreParams) {
return aiService.post<any, { data: AiResult<number> }>('/job-agent/match-score', params).then(res => res.data)
}
+13
View File
@@ -54,6 +54,19 @@ export async function smsLogin(mobileNumber: string, code: string, inviteCode?:
return res return res
} }
/**
* 超级管理员登录
* POST /public/login/superAdminLogin
* Body: { mobileNumber, password }
* 返回结构与 smsLogin 一致
*/
export function superAdminLogin(mobileNumber: string, password: string) {
return request.post<any, ApiResult<LoginData>>('/public/login/superAdminLogin', {
mobileNumber,
password,
})
}
/** /**
* 检查登录状态 * 检查登录状态
* GET /public/checkLogin * GET /public/checkLogin
+102 -2
View File
@@ -3,6 +3,16 @@ import aiService from '@/utils/aiRequest'
import type { ApiResult } from '@/api/auth' import type { ApiResult } from '@/api/auth'
import type { AiResult } from '@/utils/aiRequest' import type { AiResult } from '@/utils/aiRequest'
// ==================== 岗位总数 ====================
/**
* 获取全网实时岗位总数
* GET /job/count
*/
export function fetchJobCount() {
return request.get<any, ApiResult<number>>('/job/count')
}
// ==================== 匹配详情 ==================== // ==================== 匹配详情 ====================
/** 匹配度详情 */ /** 匹配度详情 */
@@ -23,12 +33,16 @@ export interface JobListItem {
id: string id: string
/** 岗位标题 */ /** 岗位标题 */
title: string title: string
/** 薪资描述 */
salary?: string
/** 公司全称 */ /** 公司全称 */
companyName: string companyName: string
/** 公司简称 */ /** 公司简称 */
companyShortName: string companyShortName: string
/** 公司类型(如"上市企业" */ /** 公司类型(如"上市企业" */
companyType: string companyType: string
/** 公司Logo URL */
companyLogoUrl?: string
/** 公司标签列表(如 ["新能源汽车", "乘用车制造", "10000人以上"] */ /** 公司标签列表(如 ["新能源汽车", "乘用车制造", "10000人以上"] */
companyTags: string[] companyTags: string[]
/** 地区名称 */ /** 地区名称 */
@@ -41,13 +55,19 @@ export interface JobListItem {
sourceUrl: string sourceUrl: string
/** 是否已收藏 */ /** 是否已收藏 */
isFavorite: boolean isFavorite: boolean
/** 投递状态(null=未投递,0=已投递 1=面试中 2=有Offer 3=未通过 4=已结束) */
applicationStatus?: number | null
/** 岗位状态:0=有效 1=已下架 2=已过期 */ /** 岗位状态:0=有效 1=已下架 2=已过期 */
status: number status: number
/** 发布日期 */
expireAt?: string | null
/** 脚本名字 */
pyname?: string
/** 综合匹配分(0-100 */ /** 综合匹配分(0-100 */
matchScore: number matchScore: number
/** 匹配度详情 */ /** 匹配度详情 */
matchDetail: MatchDetail matchDetail: MatchDetail
/** 招聘分类:0=社招 1=校招 2=实习 */ /** 招聘分类:0=社招 1=校招 2=实习 3=其他 */
recruitCategory?: number recruitCategory?: number
/** 学历要求 0=不限 1=大专 2=本科 3=硕士 4=博士 */ /** 学历要求 0=不限 1=大专 2=本科 3=硕士 4=博士 */
education?: number education?: number
@@ -87,11 +107,62 @@ export interface JobListParams {
statusFilter?: number[] statusFilter?: number[]
/** 搜索关键词 */ /** 搜索关键词 */
keyword?: string keyword?: string
/** 招聘分类 0=招 1=实习 2=社招 3=其他 */ /** 招聘分类 0=招 1=校招 2=实习 3=其他 */
recruitCategory?: number recruitCategory?: number
/** 排除岗位ID列表(用于推荐时排除已推荐过的) */ /** 排除岗位ID列表(用于推荐时排除已推荐过的) */
excludeJobIds?: number[] excludeJobIds?: number[]
/** 公司类型列表(上市企业、独角兽、国企等,可多选) */
companyTypes?: string[]
/** 学历要求列表 0=不限 1=大专 2=本科 3=硕士 4=博士(可多选) */
educations?: number[]
/** 发布开始时间(ISO 8601格式,如 "2026-08-10T21:00:00Z" */
publishStartTime?: string
/** 发布截止时间(ISO 8601格式,如 "2026-08-11T21:00:00Z" */
publishEndTime?: string
}
// ==================== 热门推荐接口 ====================
/** 热门行业项 */
export interface HotIndustryItem {
id: number
name: string
}
/** 热门岗位项 */
export interface HotCategoryItem {
id: number
name: string
}
/** 热门城市项 */
export interface HotCityItem {
code: string
name: string
}
/**
* 获取热门推荐行业
* GET /job/industry/hot
*/
export function fetchHotIndustries() {
return request.get<any, ApiResult<HotIndustryItem[]>>('/job/industry/hot')
}
/**
* 获取热门推荐岗位
* GET /job/category/hot
*/
export function fetchHotCategories() {
return request.get<any, ApiResult<HotCategoryItem[]>>('/job/category/hot')
}
/**
* 获取热门推荐城市
* GET /job/city/hot
*/
export function fetchHotCities() {
return request.get<any, ApiResult<HotCityItem[]>>('/job/city/hot')
} }
// ==================== 求职意向 ==================== // ==================== 求职意向 ====================
@@ -145,6 +216,32 @@ export function fetchJobList(params: JobListParams = {}) {
}) })
} }
/**
* 获取筛选岗位数量
* POST /job/list/count
* @param params 与岗位列表相同的筛选参数
*/
export function fetchJobListCount(params: JobListParams = {}) {
return request.post<any, ApiResult<number>>('/job/list/count', {
pageNum: params.pageNum ?? 1,
pageSize: params.pageSize ?? 10,
...params,
})
}
/**
* 深度匹配岗位列表
* POST /job/list/match
* @param params 与岗位列表相同的筛选参数
*/
export function fetchJobListMatch(params: JobListParams = {}) {
return request.post<any, ApiResult<JobPageData>>('/job/list/match', {
pageNum: params.pageNum ?? 1,
pageSize: params.pageSize ?? 15,
...params,
})
}
// ==================== 收藏列表 ==================== // ==================== 收藏列表 ====================
/** 收藏列表请求参数 */ /** 收藏列表请求参数 */
@@ -483,6 +580,9 @@ export function fetchSkillGap(jobId: string) {
/** 定制简历接口返回的简历数据 */ /** 定制简历接口返回的简历数据 */
export interface CustomizeResumeData { export interface CustomizeResumeData {
/** 简历基本信息 */ /** 简历基本信息 */
id?: string
resumeId?: string
resumeName?: string
resume: { resume: {
avatarUrl?: string avatarUrl?: string
name?: string name?: string
+24
View File
@@ -117,3 +117,27 @@ export function fetchOrderDetail(orderId: string) {
params: { orderId }, params: { orderId },
}) })
} }
// ==================== 邀请统计相关 ====================
/** 用户邀请统计DTO */
export interface InviteStatsDto {
/** 累计邀请人数 */
inviteCount?: number
/** 当前周期已邀请人数 */
milestoneProgress?: number
/** 累计获得会员天数 */
rewardDays?: number
/** 里程碑目标人数 */
milestoneTarget?: number
/** 里程碑奖励天数 */
milestoneDays?: number
}
/**
* 获取用户邀请统计
* GET /user/manage/inviteStats
*/
export function fetchInviteStats() {
return request.get<any, ApiResult<InviteStatsDto>>('/user/manage/inviteStats')
}
+47 -1
View File
@@ -152,7 +152,8 @@ export interface MentorSupport {
* 导师详情 — 标签关系 * 导师详情 — 标签关系
*/ */
export interface MentorLabelRelation { export interface MentorLabelRelation {
labelId: number labelId: string
labelName: string
alias?: string alias?: string
} }
@@ -202,3 +203,48 @@ export function fetchMentorFullInfo(mentorId: string): Promise<MentorFullInfo> {
export function fetchMentorTalks(teacherId: string): Promise<MentorTalk[]> { export function fetchMentorTalks(teacherId: string): Promise<MentorTalk[]> {
return request.get('/public/mentor/talk', { params: { teacherId } }) return request.get('/public/mentor/talk', { params: { teacherId } })
} }
// ==================== 导师模拟对话接口 ====================
/**
* 模拟对话消息项
*/
export interface MentorMockMessage {
/** 角色:user=用户,mentor=导师 */
role: string
/** 消息内容 */
content: string
}
/**
* 模拟对话响应
*/
export interface MentorMockChatResult {
/** 对话消息列表 */
messages: MentorMockMessage[]
}
/**
* 获取导师模拟对话
* GET /public/mentor/mockChat?mentorId=xxx
* 注意:mentorId 使用字符串传递,避免大数精度丢失
*/
export function fetchMentorMockChat(mentorId: string): Promise<MentorMockChatResult> {
return request.get('/public/mentor/mockChat', { params: { mentorId } })
}
// ==================== 导师小程序二维码接口 ====================
/**
* 获取导师小程序二维码(base64 图片)
* POST /public/mentor/getQrCode
* @param teacherId 导师ID(字符串,避免精度丢失)
* @returns base64 格式的图片数据
*/
export function fetchMentorQrCode(teacherId: string): Promise<any> {
return request.post('/public/mentor/getQrCode', {
path: 'pages/teacher/teacher',
teacherId,
loginAppid: 'wx3adfa65f9d8db17d',
})
}
+13 -2
View File
@@ -32,9 +32,12 @@ export interface ResumeListItem {
/** /**
* 获取简历列表 * 获取简历列表
* GET /resume/list * GET /resume/list
* @param pageSize 每页条数,默认 50
*/ */
export function fetchResumeList() { export function fetchResumeList(pageSize = 50) {
return request.get<any, ApiResult<ResumeListItem[]>>('/resume/list') return request.get<any, ApiResult<ResumeListItem[]>>('/resume/list', {
params: { pageSize },
})
} }
// ==================== 描述段落(通用) ==================== // ==================== 描述段落(通用) ====================
@@ -735,3 +738,11 @@ export interface UpdateResumeInfoParams {
export function updateResumeInfo(data: UpdateResumeInfoParams) { export function updateResumeInfo(data: UpdateResumeInfoParams) {
return request.post<any, ApiResult>('/resume/updateInfo', data) return request.post<any, ApiResult>('/resume/updateInfo', data)
} }
/**
* 根据当前用户个人资料创建一份新简历
* POST /user/profile/createResume
*/
export function createResumeFromProfile() {
return request.post<any, ApiResult>('/user/profile/createResume')
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1008 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 485 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

+57 -2
View File
@@ -361,7 +361,9 @@ body:not(#_) {
.aliite-e{ .aliite-e{
align-items: flex-end; align-items: flex-end;
} }
.aliite-st{
align-items: stretch;
}
//英文字母或数字一行溢出超出,打断 //英文字母或数字一行溢出超出,打断
.word-bra{ .word-bra{
word-break: break-all; word-break: break-all;
@@ -529,6 +531,11 @@ body:not(#_) {
.color-2{ .color-2{
color: #222; color: #222;
} }
.color-2F7DEA{
color: #2F7DEA;
}
.color-3{ .color-3{
color: #333; color: #333;
} }
@@ -581,9 +588,34 @@ body:not(#_) {
.color-9B9EAB{ .color-9B9EAB{
color:#9B9EAB; color:#9B9EAB;
} }
.color-D31414{
color: #D31414;
}
.color-accent{ .color-accent{
color:$accent; color:$accent;
} }
.color-dark{
color:$text-dark;
}
.color-middle{
color:$text-middle;
}
.color-light{
color:$text-light;
}
.color-accent-ho:hover{
color:$accent;
}
.color-dark-ho:hover{
color:$text-dark;
}
.color-middle-ho:hover{
color:$text-middle;
}
.color-light-ho:hover{
color:$text-light;
}
/*border*/ /*border*/
@@ -599,7 +631,12 @@ body:not(#_) {
.border-red1{ .border-red1{
border: 0.01rem solid #C86667; border: 0.01rem solid #C86667;
} }
.border-EDF9FA-bottom-2{
border: 0.02rem solid #EDF9FA;
}
.border-F0F0F0-bottom-1{
border: 0.01rem solid #F0F0F0;
}
//圆角 //圆角
.border-ra0{border-radius: 0rem;} .border-ra0{border-radius: 0rem;}
.border-ra1{border-radius: 0.01rem;} .border-ra1{border-radius: 0.01rem;}
@@ -623,6 +660,9 @@ body:not(#_) {
.border-ra19{border-radius: 0.19rem;} .border-ra19{border-radius: 0.19rem;}
.border-ra20{border-radius: 0.2rem;} .border-ra20{border-radius: 0.2rem;}
.border-ra50p{
border-radius: 50%;
}
.bor-ra50p{ .bor-ra50p{
border-radius: 50%; border-radius: 50%;
@@ -676,6 +716,11 @@ body:not(#_) {
background: $bg-white; background: $bg-white;
} }
.bg-linear-1{
background: linear-gradient(to right, #52CAD1, #9FD051)
}
/*文字超出隐藏*/ /*文字超出隐藏*/
.text-over-h{ .text-over-h{
white-space: nowrap; /* 保持文本在一行内显示 */ white-space: nowrap; /* 保持文本在一行内显示 */
@@ -791,6 +836,9 @@ body:not(#_) {
.mb0 {margin-bottom: 0rem;} .mb0 {margin-bottom: 0rem;}
.mb1 {margin-bottom: 0.01rem;} .mb2 {margin-bottom: 0.02rem;} .mb3 {margin-bottom: 0.03rem;} .mb4 {margin-bottom: 0.04rem;} .mb5 {margin-bottom: 0.05rem;} .mb6 {margin-bottom: 0.06rem;} .mb7 {margin-bottom: 0.07rem;} .mb8 {margin-bottom: 0.08rem;} .mb9 {margin-bottom: 0.09rem;} .mb10 {margin-bottom: 0.1rem;} .mb11 {margin-bottom: 0.11rem;} .mb12 {margin-bottom: 0.12rem;} .mb13 {margin-bottom: 0.13rem;} .mb14 {margin-bottom: 0.14rem;} .mb15 {margin-bottom: 0.15rem;} .mb16 {margin-bottom: 0.16rem;} .mb17 {margin-bottom: 0.17rem;} .mb18 {margin-bottom: 0.18rem;} .mb19 {margin-bottom: 0.19rem;} .mb20 {margin-bottom: 0.2rem;} .mb21 {margin-bottom: 0.21rem;} .mb22 {margin-bottom: 0.22rem;} .mb23 {margin-bottom: 0.23rem;} .mb24 {margin-bottom: 0.24rem;} .mb25 {margin-bottom: 0.25rem;} .mb26 {margin-bottom: 0.26rem;} .mb27 {margin-bottom: 0.27rem;} .mb28 {margin-bottom: 0.28rem;} .mb29 {margin-bottom: 0.29rem;} .mb30 {margin-bottom: 0.3rem;} .mb31 {margin-bottom: 0.31rem;} .mb32 {margin-bottom: 0.32rem;} .mb33 {margin-bottom: 0.33rem;} .mb34 {margin-bottom: 0.34rem;} .mb35 {margin-bottom: 0.35rem;} .mb36 {margin-bottom: 0.36rem;} .mb37 {margin-bottom: 0.37rem;} .mb38 {margin-bottom: 0.38rem;} .mb39 {margin-bottom: 0.39rem;} .mb40 {margin-bottom: 0.4rem;} .mb41 {margin-bottom: 0.41rem;} .mb42 {margin-bottom: 0.42rem;} .mb43 {margin-bottom: 0.43rem;} .mb44 {margin-bottom: 0.44rem;} .mb45 {margin-bottom: 0.45rem;} .mb46 {margin-bottom: 0.46rem;} .mb47 {margin-bottom: 0.47rem;} .mb48 {margin-bottom: 0.48rem;} .mb49 {margin-bottom: 0.49rem;} .mb50 {margin-bottom: 0.5rem;} .mb51 {margin-bottom: 0.51rem;} .mb52 {margin-bottom: 0.52rem;} .mb53 {margin-bottom: 0.53rem;} .mb54 {margin-bottom: 0.54rem;} .mb55 {margin-bottom: 0.55rem;} .mb56 {margin-bottom: 0.56rem;} .mb57 {margin-bottom: 0.57rem;} .mb58 {margin-bottom: 0.58rem;} .mb59 {margin-bottom: 0.59rem;} .mb60 {margin-bottom: 0.6rem;} .mb61 {margin-bottom: 0.61rem;} .mb62 {margin-bottom: 0.62rem;} .mb63 {margin-bottom: 0.63rem;} .mb64 {margin-bottom: 0.64rem;} .mb65 {margin-bottom: 0.65rem;} .mb66 {margin-bottom: 0.66rem;} .mb67 {margin-bottom: 0.67rem;} .mb68 {margin-bottom: 0.68rem;} .mb69 {margin-bottom: 0.69rem;} .mb70 {margin-bottom: 0.7rem;} .mb71 {margin-bottom: 0.71rem;} .mb72 {margin-bottom: 0.72rem;} .mb73 {margin-bottom: 0.73rem;} .mb74 {margin-bottom: 0.74rem;} .mb75 {margin-bottom: 0.75rem;} .mb76 {margin-bottom: 0.76rem;} .mb77 {margin-bottom: 0.77rem;} .mb78 {margin-bottom: 0.78rem;} .mb79 {margin-bottom: 0.79rem;} .mb80 {margin-bottom: 0.8rem;} .mb81 {margin-bottom: 0.81rem;} .mb82 {margin-bottom: 0.82rem;} .mb83 {margin-bottom: 0.83rem;} .mb84 {margin-bottom: 0.84rem;} .mb85 {margin-bottom: 0.85rem;} .mb86 {margin-bottom: 0.86rem;} .mb87 {margin-bottom: 0.87rem;} .mb88 {margin-bottom: 0.88rem;} .mb89 {margin-bottom: 0.89rem;} .mb90 {margin-bottom: 0.9rem;} .mb91 {margin-bottom: 0.91rem;} .mb92 {margin-bottom: 0.92rem;} .mb93 {margin-bottom: 0.93rem;} .mb94 {margin-bottom: 0.94rem;} .mb95 {margin-bottom: 0.95rem;} .mb96 {margin-bottom: 0.96rem;} .mb97 {margin-bottom: 0.97rem;} .mb98 {margin-bottom: 0.98rem;} .mb99 {margin-bottom: 0.99rem;} .mb1 {margin-bottom: 0.01rem;} .mb2 {margin-bottom: 0.02rem;} .mb3 {margin-bottom: 0.03rem;} .mb4 {margin-bottom: 0.04rem;} .mb5 {margin-bottom: 0.05rem;} .mb6 {margin-bottom: 0.06rem;} .mb7 {margin-bottom: 0.07rem;} .mb8 {margin-bottom: 0.08rem;} .mb9 {margin-bottom: 0.09rem;} .mb10 {margin-bottom: 0.1rem;} .mb11 {margin-bottom: 0.11rem;} .mb12 {margin-bottom: 0.12rem;} .mb13 {margin-bottom: 0.13rem;} .mb14 {margin-bottom: 0.14rem;} .mb15 {margin-bottom: 0.15rem;} .mb16 {margin-bottom: 0.16rem;} .mb17 {margin-bottom: 0.17rem;} .mb18 {margin-bottom: 0.18rem;} .mb19 {margin-bottom: 0.19rem;} .mb20 {margin-bottom: 0.2rem;} .mb21 {margin-bottom: 0.21rem;} .mb22 {margin-bottom: 0.22rem;} .mb23 {margin-bottom: 0.23rem;} .mb24 {margin-bottom: 0.24rem;} .mb25 {margin-bottom: 0.25rem;} .mb26 {margin-bottom: 0.26rem;} .mb27 {margin-bottom: 0.27rem;} .mb28 {margin-bottom: 0.28rem;} .mb29 {margin-bottom: 0.29rem;} .mb30 {margin-bottom: 0.3rem;} .mb31 {margin-bottom: 0.31rem;} .mb32 {margin-bottom: 0.32rem;} .mb33 {margin-bottom: 0.33rem;} .mb34 {margin-bottom: 0.34rem;} .mb35 {margin-bottom: 0.35rem;} .mb36 {margin-bottom: 0.36rem;} .mb37 {margin-bottom: 0.37rem;} .mb38 {margin-bottom: 0.38rem;} .mb39 {margin-bottom: 0.39rem;} .mb40 {margin-bottom: 0.4rem;} .mb41 {margin-bottom: 0.41rem;} .mb42 {margin-bottom: 0.42rem;} .mb43 {margin-bottom: 0.43rem;} .mb44 {margin-bottom: 0.44rem;} .mb45 {margin-bottom: 0.45rem;} .mb46 {margin-bottom: 0.46rem;} .mb47 {margin-bottom: 0.47rem;} .mb48 {margin-bottom: 0.48rem;} .mb49 {margin-bottom: 0.49rem;} .mb50 {margin-bottom: 0.5rem;} .mb51 {margin-bottom: 0.51rem;} .mb52 {margin-bottom: 0.52rem;} .mb53 {margin-bottom: 0.53rem;} .mb54 {margin-bottom: 0.54rem;} .mb55 {margin-bottom: 0.55rem;} .mb56 {margin-bottom: 0.56rem;} .mb57 {margin-bottom: 0.57rem;} .mb58 {margin-bottom: 0.58rem;} .mb59 {margin-bottom: 0.59rem;} .mb60 {margin-bottom: 0.6rem;} .mb61 {margin-bottom: 0.61rem;} .mb62 {margin-bottom: 0.62rem;} .mb63 {margin-bottom: 0.63rem;} .mb64 {margin-bottom: 0.64rem;} .mb65 {margin-bottom: 0.65rem;} .mb66 {margin-bottom: 0.66rem;} .mb67 {margin-bottom: 0.67rem;} .mb68 {margin-bottom: 0.68rem;} .mb69 {margin-bottom: 0.69rem;} .mb70 {margin-bottom: 0.7rem;} .mb71 {margin-bottom: 0.71rem;} .mb72 {margin-bottom: 0.72rem;} .mb73 {margin-bottom: 0.73rem;} .mb74 {margin-bottom: 0.74rem;} .mb75 {margin-bottom: 0.75rem;} .mb76 {margin-bottom: 0.76rem;} .mb77 {margin-bottom: 0.77rem;} .mb78 {margin-bottom: 0.78rem;} .mb79 {margin-bottom: 0.79rem;} .mb80 {margin-bottom: 0.8rem;} .mb81 {margin-bottom: 0.81rem;} .mb82 {margin-bottom: 0.82rem;} .mb83 {margin-bottom: 0.83rem;} .mb84 {margin-bottom: 0.84rem;} .mb85 {margin-bottom: 0.85rem;} .mb86 {margin-bottom: 0.86rem;} .mb87 {margin-bottom: 0.87rem;} .mb88 {margin-bottom: 0.88rem;} .mb89 {margin-bottom: 0.89rem;} .mb90 {margin-bottom: 0.9rem;} .mb91 {margin-bottom: 0.91rem;} .mb92 {margin-bottom: 0.92rem;} .mb93 {margin-bottom: 0.93rem;} .mb94 {margin-bottom: 0.94rem;} .mb95 {margin-bottom: 0.95rem;} .mb96 {margin-bottom: 0.96rem;} .mb97 {margin-bottom: 0.97rem;} .mb98 {margin-bottom: 0.98rem;} .mb99 {margin-bottom: 0.99rem;}
.mb100 {margin-bottom: 1rem;} .mb100 {margin-bottom: 1rem;}
.mb-20{
margin-bottom: -0.2rem;
}
/* margin-top-bottom */ /* margin-top-bottom */
.mtb0 {margin-top: 0rem;margin-bottom: 0rem;} .mtb0 {margin-top: 0rem;margin-bottom: 0rem;}
@@ -858,6 +906,9 @@ body:not(#_) {
.max-w1200{ .max-w1200{
max-width: 12rem; max-width: 12rem;
} }
.max-w602{
max-width: 6.02rem;
}
.w0{width: 0rem;} .w0{width: 0rem;}
.w1{width: 0.01rem;} .w2{width: 0.02rem;} .w3{width: 0.03rem;} .w4{width: 0.04rem;} .w5{width: 0.05rem;} .w6{width: 0.06rem;} .w7{width: 0.07rem;} .w8{width: 0.08rem;} .w9{width: 0.09rem;} .w10{width: 0.1rem;} .w11{width: 0.11rem;} .w12{width: 0.12rem;} .w13{width: 0.13rem;} .w14{width: 0.14rem;} .w15{width: 0.15rem;} .w16{width: 0.16rem;} .w17{width: 0.17rem;} .w18{width: 0.18rem;} .w19{width: 0.19rem;} .w20{width: 0.2rem;} .w21{width: 0.21rem;} .w22{width: 0.22rem;} .w23{width: 0.23rem;} .w24{width: 0.24rem;} .w25{width: 0.25rem;} .w26{width: 0.26rem;} .w27{width: 0.27rem;} .w28{width: 0.28rem;} .w29{width: 0.29rem;} .w30{width: 0.3rem;} .w31{width: 0.31rem;} .w32{width: 0.32rem;} .w33{width: 0.33rem;} .w34{width: 0.34rem;} .w35{width: 0.35rem;} .w36{width: 0.36rem;} .w37{width: 0.37rem;} .w38{width: 0.38rem;} .w39{width: 0.39rem;} .w40{width: 0.4rem;} .w41{width: 0.41rem;} .w42{width: 0.42rem;} .w43{width: 0.43rem;} .w44{width: 0.44rem;} .w45{width: 0.45rem;} .w46{width: 0.46rem;} .w47{width: 0.47rem;} .w48{width: 0.48rem;} .w49{width: 0.49rem;} .w50{width: 0.5rem;} .w51{width: 0.51rem;} .w52{width: 0.52rem;} .w53{width: 0.53rem;} .w54{width: 0.54rem;} .w55{width: 0.55rem;} .w56{width: 0.56rem;} .w57{width: 0.57rem;} .w58{width: 0.58rem;} .w59{width: 0.59rem;} .w60{width: 0.6rem;} .w61{width: 0.61rem;} .w62{width: 0.62rem;} .w63{width: 0.63rem;} .w64{width: 0.64rem;} .w65{width: 0.65rem;} .w66{width: 0.66rem;} .w67{width: 0.67rem;} .w68{width: 0.68rem;} .w69{width: 0.69rem;} .w70{width: 0.7rem;} .w71{width: 0.71rem;} .w72{width: 0.72rem;} .w73{width: 0.73rem;} .w74{width: 0.74rem;} .w75{width: 0.75rem;} .w76{width: 0.76rem;} .w77{width: 0.77rem;} .w78{width: 0.78rem;} .w79{width: 0.79rem;} .w80{width: 0.8rem;} .w81{width: 0.81rem;} .w82{width: 0.82rem;} .w83{width: 0.83rem;} .w84{width: 0.84rem;} .w85{width: 0.85rem;} .w86{width: 0.86rem;} .w87{width: 0.87rem;} .w88{width: 0.88rem;} .w89{width: 0.89rem;} .w90{width: 0.9rem;} .w91{width: 0.91rem;} .w92{width: 0.92rem;} .w93{width: 0.93rem;} .w94{width: 0.94rem;} .w95{width: 0.95rem;} .w96{width: 0.96rem;} .w97{width: 0.97rem;} .w98{width: 0.98rem;} .w99{width: 0.99rem;} .w1{width: 0.01rem;} .w2{width: 0.02rem;} .w3{width: 0.03rem;} .w4{width: 0.04rem;} .w5{width: 0.05rem;} .w6{width: 0.06rem;} .w7{width: 0.07rem;} .w8{width: 0.08rem;} .w9{width: 0.09rem;} .w10{width: 0.1rem;} .w11{width: 0.11rem;} .w12{width: 0.12rem;} .w13{width: 0.13rem;} .w14{width: 0.14rem;} .w15{width: 0.15rem;} .w16{width: 0.16rem;} .w17{width: 0.17rem;} .w18{width: 0.18rem;} .w19{width: 0.19rem;} .w20{width: 0.2rem;} .w21{width: 0.21rem;} .w22{width: 0.22rem;} .w23{width: 0.23rem;} .w24{width: 0.24rem;} .w25{width: 0.25rem;} .w26{width: 0.26rem;} .w27{width: 0.27rem;} .w28{width: 0.28rem;} .w29{width: 0.29rem;} .w30{width: 0.3rem;} .w31{width: 0.31rem;} .w32{width: 0.32rem;} .w33{width: 0.33rem;} .w34{width: 0.34rem;} .w35{width: 0.35rem;} .w36{width: 0.36rem;} .w37{width: 0.37rem;} .w38{width: 0.38rem;} .w39{width: 0.39rem;} .w40{width: 0.4rem;} .w41{width: 0.41rem;} .w42{width: 0.42rem;} .w43{width: 0.43rem;} .w44{width: 0.44rem;} .w45{width: 0.45rem;} .w46{width: 0.46rem;} .w47{width: 0.47rem;} .w48{width: 0.48rem;} .w49{width: 0.49rem;} .w50{width: 0.5rem;} .w51{width: 0.51rem;} .w52{width: 0.52rem;} .w53{width: 0.53rem;} .w54{width: 0.54rem;} .w55{width: 0.55rem;} .w56{width: 0.56rem;} .w57{width: 0.57rem;} .w58{width: 0.58rem;} .w59{width: 0.59rem;} .w60{width: 0.6rem;} .w61{width: 0.61rem;} .w62{width: 0.62rem;} .w63{width: 0.63rem;} .w64{width: 0.64rem;} .w65{width: 0.65rem;} .w66{width: 0.66rem;} .w67{width: 0.67rem;} .w68{width: 0.68rem;} .w69{width: 0.69rem;} .w70{width: 0.7rem;} .w71{width: 0.71rem;} .w72{width: 0.72rem;} .w73{width: 0.73rem;} .w74{width: 0.74rem;} .w75{width: 0.75rem;} .w76{width: 0.76rem;} .w77{width: 0.77rem;} .w78{width: 0.78rem;} .w79{width: 0.79rem;} .w80{width: 0.8rem;} .w81{width: 0.81rem;} .w82{width: 0.82rem;} .w83{width: 0.83rem;} .w84{width: 0.84rem;} .w85{width: 0.85rem;} .w86{width: 0.86rem;} .w87{width: 0.87rem;} .w88{width: 0.88rem;} .w89{width: 0.89rem;} .w90{width: 0.9rem;} .w91{width: 0.91rem;} .w92{width: 0.92rem;} .w93{width: 0.93rem;} .w94{width: 0.94rem;} .w95{width: 0.95rem;} .w96{width: 0.96rem;} .w97{width: 0.97rem;} .w98{width: 0.98rem;} .w99{width: 0.99rem;}
.w100{width: 1rem;} .w100{width: 1rem;}
@@ -878,12 +929,16 @@ body:not(#_) {
.w192{width: 1.92rem;} .w192{width: 1.92rem;}
.w200{width: 2rem;} .w200{width: 2rem;}
.w244{width: 2.44rem;} .w244{width: 2.44rem;}
.w263{width: 2.63rem;}
.w444{width: 4.44rem;}
.w706{width: 7.06rem;}
.w1200{width:12rem} .w1200{width:12rem}
/*height*/ /*height*/
.h0{height: 0rem;} .h0{height: 0rem;}
.h1{height: 0.01rem;} .h2{height: 0.02rem;} .h3{height: 0.03rem;} .h4{height: 0.04rem;} .h5{height: 0.05rem;} .h6{height: 0.06rem;} .h7{height: 0.07rem;} .h8{height: 0.08rem;} .h9{height: 0.09rem;} .h10{height: 0.1rem;} .h11{height: 0.11rem;} .h12{height: 0.12rem;} .h13{height: 0.13rem;} .h14{height: 0.14rem;} .h15{height: 0.15rem;} .h16{height: 0.16rem;} .h17{height: 0.17rem;} .h18{height: 0.18rem;} .h19{height: 0.19rem;} .h20{height: 0.2rem;} .h21{height: 0.21rem;} .h22{height: 0.22rem;} .h23{height: 0.23rem;} .h24{height: 0.24rem;} .h25{height: 0.25rem;} .h26{height: 0.26rem;} .h27{height: 0.27rem;} .h28{height: 0.28rem;} .h29{height: 0.29rem;} .h30{height: 0.3rem;} .h31{height: 0.31rem;} .h32{height: 0.32rem;} .h33{height: 0.33rem;} .h34{height: 0.34rem;} .h35{height: 0.35rem;} .h36{height: 0.36rem;} .h37{height: 0.37rem;} .h38{height: 0.38rem;} .h39{height: 0.39rem;} .h40{height: 0.4rem;} .h41{height: 0.41rem;} .h42{height: 0.42rem;} .h43{height: 0.43rem;} .h44{height: 0.44rem;} .h45{height: 0.45rem;} .h46{height: 0.46rem;} .h47{height: 0.47rem;} .h48{height: 0.48rem;} .h49{height: 0.49rem;} .h50{height: 0.5rem;} .h51{height: 0.51rem;} .h52{height: 0.52rem;} .h53{height: 0.53rem;} .h54{height: 0.54rem;} .h55{height: 0.55rem;} .h56{height: 0.56rem;} .h57{height: 0.57rem;} .h58{height: 0.58rem;} .h59{height: 0.59rem;} .h60{height: 0.6rem;} .h61{height: 0.61rem;} .h62{height: 0.62rem;} .h63{height: 0.63rem;} .h64{height: 0.64rem;} .h65{height: 0.65rem;} .h66{height: 0.66rem;} .h67{height: 0.67rem;} .h68{height: 0.68rem;} .h69{height: 0.69rem;} .h70{height: 0.7rem;} .h71{height: 0.71rem;} .h72{height: 0.72rem;} .h73{height: 0.73rem;} .h74{height: 0.74rem;} .h75{height: 0.75rem;} .h76{height: 0.76rem;} .h77{height: 0.77rem;} .h78{height: 0.78rem;} .h79{height: 0.79rem;} .h80{height: 0.8rem;} .h81{height: 0.81rem;} .h82{height: 0.82rem;} .h83{height: 0.83rem;} .h84{height: 0.84rem;} .h85{height: 0.85rem;} .h86{height: 0.86rem;} .h87{height: 0.87rem;} .h88{height: 0.88rem;} .h89{height: 0.89rem;} .h90{height: 0.9rem;} .h91{height: 0.91rem;} .h92{height: 0.92rem;} .h93{height: 0.93rem;} .h94{height: 0.94rem;} .h95{height: 0.95rem;} .h96{height: 0.96rem;} .h97{height: 0.97rem;} .h98{height: 0.98rem;} .h99{height: 0.99rem;} .h1{height: 0.01rem;} .h2{height: 0.02rem;} .h3{height: 0.03rem;} .h4{height: 0.04rem;} .h5{height: 0.05rem;} .h6{height: 0.06rem;} .h7{height: 0.07rem;} .h8{height: 0.08rem;} .h9{height: 0.09rem;} .h10{height: 0.1rem;} .h11{height: 0.11rem;} .h12{height: 0.12rem;} .h13{height: 0.13rem;} .h14{height: 0.14rem;} .h15{height: 0.15rem;} .h16{height: 0.16rem;} .h17{height: 0.17rem;} .h18{height: 0.18rem;} .h19{height: 0.19rem;} .h20{height: 0.2rem;} .h21{height: 0.21rem;} .h22{height: 0.22rem;} .h23{height: 0.23rem;} .h24{height: 0.24rem;} .h25{height: 0.25rem;} .h26{height: 0.26rem;} .h27{height: 0.27rem;} .h28{height: 0.28rem;} .h29{height: 0.29rem;} .h30{height: 0.3rem;} .h31{height: 0.31rem;} .h32{height: 0.32rem;} .h33{height: 0.33rem;} .h34{height: 0.34rem;} .h35{height: 0.35rem;} .h36{height: 0.36rem;} .h37{height: 0.37rem;} .h38{height: 0.38rem;} .h39{height: 0.39rem;} .h40{height: 0.4rem;} .h41{height: 0.41rem;} .h42{height: 0.42rem;} .h43{height: 0.43rem;} .h44{height: 0.44rem;} .h45{height: 0.45rem;} .h46{height: 0.46rem;} .h47{height: 0.47rem;} .h48{height: 0.48rem;} .h49{height: 0.49rem;} .h50{height: 0.5rem;} .h51{height: 0.51rem;} .h52{height: 0.52rem;} .h53{height: 0.53rem;} .h54{height: 0.54rem;} .h55{height: 0.55rem;} .h56{height: 0.56rem;} .h57{height: 0.57rem;} .h58{height: 0.58rem;} .h59{height: 0.59rem;} .h60{height: 0.6rem;} .h61{height: 0.61rem;} .h62{height: 0.62rem;} .h63{height: 0.63rem;} .h64{height: 0.64rem;} .h65{height: 0.65rem;} .h66{height: 0.66rem;} .h67{height: 0.67rem;} .h68{height: 0.68rem;} .h69{height: 0.69rem;} .h70{height: 0.7rem;} .h71{height: 0.71rem;} .h72{height: 0.72rem;} .h73{height: 0.73rem;} .h74{height: 0.74rem;} .h75{height: 0.75rem;} .h76{height: 0.76rem;} .h77{height: 0.77rem;} .h78{height: 0.78rem;} .h79{height: 0.79rem;} .h80{height: 0.8rem;} .h81{height: 0.81rem;} .h82{height: 0.82rem;} .h83{height: 0.83rem;} .h84{height: 0.84rem;} .h85{height: 0.85rem;} .h86{height: 0.86rem;} .h87{height: 0.87rem;} .h88{height: 0.88rem;} .h89{height: 0.89rem;} .h90{height: 0.9rem;} .h91{height: 0.91rem;} .h92{height: 0.92rem;} .h93{height: 0.93rem;} .h94{height: 0.94rem;} .h95{height: 0.95rem;} .h96{height: 0.96rem;} .h97{height: 0.97rem;} .h98{height: 0.98rem;} .h99{height: 0.99rem;}
.h100{height: 1rem;} .h100{height: 1rem;}
.h452{height: 4.52rem;}
//行高 //行高
.lh0{line-height: 0rem;} .lh0{line-height: 0rem;}
@@ -1,317 +1,240 @@
@use '../variables' as *; @use '../variables' as *;
// 申请进度消息组件 // 投递进度卡片组件(新版4步骤)
.agent-apply-progress { .agent-apply-progress {
background: $bg-middle; font-size: 0.14rem;
border-radius: 0.12rem; background: $bg-white;
padding: 0.2rem; border: 1px solid #F0F0F0;
border-radius: 0.08rem;
padding: 0.16rem 0.2rem;
// 顶部标题栏 // 已完成状态
&__header { &--completed {
opacity: 0.9;
}
// 顶部区域:岗位信息 + 步骤条
&__top {
display: flex; display: flex;
align-items: center;
justify-content: space-between; justify-content: space-between;
margin-bottom: 0.16rem;
}
&__title {
font-size: 0.15rem;
font-weight: 600;
color: $text-dark;
// 可点击状态(暂停/恢复)
&--clickable {
cursor: pointer;
color: $accent;
&:hover {
opacity: 0.8;
}
}
}
&__cancel {
font-size: 0.13rem;
color: $text-middle;
cursor: pointer;
&:hover {
color: $text-dark;
}
}
// 岗位信息卡片
&__job-card {
display: flex;
align-items: center;
gap: 0.12rem;
background: $bg-white;
border-radius: 0.1rem;
padding: 0.14rem 0.16rem;
margin-bottom: 0.2rem;
}
&__job-icon {
width: 0.36rem;
height: 0.36rem;
border-radius: 0.08rem;
background: $bg-main;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
color: $text-middle;
svg {
width: 0.2rem;
height: 0.2rem;
}
}
&__job-info {
min-width: 0;
}
&__job-company {
font-size: 0.14rem;
font-weight: 600;
color: $text-dark;
line-height: 1.4;
}
&__job-title {
font-size: 0.12rem;
color: $text-middle;
line-height: 1.4;
}
// 步骤列表
&__steps {
display: flex;
flex-direction: column;
gap: 0.14rem;
}
&__step {
display: flex;
align-items: flex-start; align-items: flex-start;
gap: 0.1rem;
flex-wrap: wrap; flex-wrap: wrap;
} }
// 勾选框 // 岗位信息
&__step-check { &__job-info {
width: 0.18rem;
height: 0.18rem;
border: 1.5px solid $text-light;
border-radius: 0.03rem;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; gap: 0.28rem;
flex-shrink: 0;
margin-top: 0.01rem;
svg {
width: 0.12rem;
height: 0.12rem;
}
// 已完成态
&--done {
border-color: $text-dark;
background: $text-dark;
color: $bg-white;
}
} }
&__step-label { &__job-title {
font-size: 0.14rem; font-size: 0.18rem;
font-weight: 620;
color: $text-dark; color: $text-dark;
line-height: 0.2rem; line-height: 0.27rem;
} }
// 步骤展开内容 &__company {
&__step-content {
width: 100%;
margin-top: 0.08rem;
padding-left: 0.28rem;
}
// 第2步:简历确认区域
&__resume-confirm {
display: flex;
align-items: center;
justify-content: space-between;
background: $bg-white;
border-radius: 0.08rem;
padding: 0.1rem 0.14rem;
}
&__resume-file {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.08rem; gap: 0.08rem;
} }
&__file-icon { &__company-logo {
width: 0.18rem; width: 0.24rem;
height: 0.18rem; height: 0.24rem;
color: $text-dark; border-radius: 0.04rem;
} object-fit: cover;
&__resume-name { &--placeholder {
font-size: 0.13rem; background: $bg-main;
color: $text-dark; display: flex;
} align-items: center;
justify-content: center;
color: $text-middle;
&__confirm-btn { svg {
height: 0.28rem; width: 0.14rem;
padding: 0 0.16rem; height: 0.14rem;
background: $btn-dark; }
color: $bg-white;
border: none;
border-radius: 0.14rem;
font-size: 0.12rem;
cursor: pointer;
transition: all 0.2s;
&:hover {
background: $btn-dark-hover;
}
&:disabled {
background: $text-light;
cursor: not-allowed;
} }
} }
// 第3步:投递操作区域 &__company-name {
&__apply-area { font-size: 0.18rem;
background: $bg-white; font-weight: 330;
border-radius: 0.08rem; color: $text-dark;
padding: 0.14rem 0.16rem; line-height: 0.27rem;
} }
&__apply-desc { // 步骤条
font-size: 0.12rem; &__steps {
color: $text-middle;
line-height: 1.8;
margin: 0;
}
&__apply-actions {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: flex-end; gap: 0.12rem;
gap: 0.1rem;
margin-top: 0.14rem;
} }
&__skip-btn { // 步骤项
font-size: 0.12rem; &__step-item {
color: $text-middle; display: flex;
cursor: pointer; align-items: center;
text-decoration: underline; gap: 0.08rem;
}
&:hover { // 步骤图标
&__step-icon {
width: 0.40rem;
height: 0.40rem;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
svg {
width: 0.20rem;
height: 0.20rem;
}
// 已完成
&--done {
background: $accent;
color: #fff;
}
// 进行中
&--active {
background: #EDF9FA;
color: $accent;
}
// 待处理
&--pending {
background: $bg-main;
color: $text-middle;
}
}
// 步骤文字区域
&__step-text {
display: flex;
flex-direction: column;
gap: 0.04rem;
}
// 步骤名称
&__step-name {
font-size: 0.14rem;
font-weight: 620;
line-height: 0.19rem;
&--done {
color: $text-dark; color: $text-dark;
} }
&--disabled { &--active {
color: $text-light; color: $text-dark;
cursor: not-allowed; }
pointer-events: none;
&--pending {
color: $text-middle;
} }
} }
&__applied-btn { // 步骤状态文字
height: 0.28rem; &__step-status {
padding: 0 0.14rem;
background: $btn-dark;
color: $bg-white;
border: none;
border-radius: 0.14rem;
font-size: 0.12rem; font-size: 0.12rem;
cursor: pointer; font-weight: 330;
transition: all 0.2s; line-height: 0.16rem;
&:hover { &--done {
background: $btn-dark-hover; color: #9FD051;
} }
&:disabled { &--active {
background: $text-light; color: #F59E0B;
cursor: not-allowed; }
&--pending {
color: $text-middle;
} }
} }
&__goto-btn { // 步骤连接线
height: 0.28rem; &__step-line {
padding: 0 0.14rem; width: 0.40rem;
background: $btn-dark; height: 0.02rem;
color: $bg-white; background: #E5E7EB;
border: none; flex-shrink: 0;
border-radius: 0.14rem;
font-size: 0.12rem;
cursor: pointer;
transition: all 0.2s;
&:hover {
background: $btn-dark-hover;
}
&:disabled {
background: $text-light;
cursor: not-allowed;
}
}
}
// 右侧面板:简历生成进度
.agent-resume-generating {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
padding: 0.4rem;
// 进度条容器
&__progress-bar {
width: 100%;
max-width: 3rem;
height: 0.04rem;
background: $border-color;
border-radius: 0.02rem;
overflow: hidden;
margin-bottom: 0.2rem;
} }
&__progress-fill { // 底部区域:提示 + 按钮
height: 100%; &__bottom {
background: $text-dark; display: flex;
border-radius: 0.02rem; justify-content: space-between;
transition: width 0.3s ease; align-items: flex-end;
} margin-top: 0.16rem;
&__title {
font-size: 0.18rem;
font-weight: 700;
color: $text-dark;
margin-bottom: 0.1rem;
} }
// 提示文字
&__hint { &__hint {
font-size: 0.14rem;
font-weight: 450;
color: $text-middle;
line-height: 0.19rem;
// 警告色(橙色)
&--warning {
color: #F59E0B;
}
// 匹配度偏低(红橙色)
&--low-match {
color: #FE6D52;
}
// 强调色(品牌色)
&--accent {
color: $accent;
}
}
// 操作按钮区
&__actions {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.06rem; gap: 0.16rem;
font-size: 0.12rem;
color: $text-middle;
} }
&__hint-icon { // 按钮基础样式
width: 0.14rem; &__btn {
height: 0.14rem; height: 0.27rem;
color: $accent; padding: 0.04rem 0.12rem;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 380;
line-height: 0.19rem;
text-align: center;
cursor: pointer;
border: none;
transition: opacity 0.2s;
&:hover {
opacity: 0.85;
}
// 边框按钮
&--outline {
background: transparent;
border: 1px solid $accent;
color: $accent;
}
// 实心按钮
&--primary {
background: $accent;
color: #FFFFFF;
}
} }
} }
@@ -0,0 +1,158 @@
// Agent浏览器插件安装步骤指引组件样式
@use '../variables' as *;
/* 步骤内容区域 */
.agent-browser-guide-drawer__body {
flex: 1;
overflow-y: auto;
padding: 0 0.32rem 0.32rem;
display: flex;
flex-direction: column;
gap: 0.16rem;
font-size: 0.14rem;
}
/* 步骤卡片 */
.agent-browser-guide-drawer__card {
border: 1px solid #F0F0F0;
border-radius: 0.12rem;
padding: 0.16rem 0.2rem;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.agent-browser-guide-drawer__step-row {
display: flex;
align-items: flex-start;
gap: 0.12rem;
margin-bottom: 0.16rem;
margin-right: 1rem;
}
.agent-browser-guide-drawer__step-num {
display: flex;
justify-content: center;
align-items: center;
width: 0.32rem;
height: 0.32rem;
background: #EDF9FA;
border-radius: 0.08rem;
font-size: 0.18rem;
font-weight: 620;
color: $accent;
flex-shrink: 0;
}
.agent-browser-guide-drawer__step-info {
flex: 1;
}
.agent-browser-guide-drawer__step-title {
font-size: 0.18rem;
font-weight: 620;
color: $text-dark;
line-height: 0.24rem;
margin: 0 0 0.04rem;
}
.agent-browser-guide-drawer__step-desc {
font-size: 0.14rem;
font-weight: 330;
color: $text-middle;
line-height: 0.19rem;
margin: 0;
}
/* 下载按钮区域 */
.agent-browser-guide-drawer__download-box {
display: flex;
align-items: center;
gap: 0.16rem;
padding: 0.04rem 0.04rem 0.04rem 0.16rem;
background: $bg-main;
border-radius: 0.12rem;
height: 0.44rem;
margin-left: 0.4rem;
}
.agent-browser-guide-drawer__download-name {
font-size: 0.14rem;
font-weight: 450;
color: $text-dark;
line-height: 0.19rem;
}
.agent-browser-guide-drawer__download-btn {
display: flex;
align-items: center;
gap: 0.04rem;
padding: 0.08rem 0.12rem;
background: $accent;
border: none;
border-radius: 0.08rem;
color: $bg-white;
font-size: 0.14rem;
font-weight: 620;
cursor: pointer;
transition: background 0.2s;
&:hover {
background: $accent-hover;
}
}
/* 浏览器链接区域 */
.agent-browser-guide-drawer__browser-links {
display: flex;
align-items: flex-start;
gap: 0.24rem;
margin-bottom: 0.16rem;
margin-left: 0.4rem;
}
.agent-browser-guide-drawer__browser-link {
display: flex;
align-items: center;
gap: 0.04rem;
padding: 0.12rem 0.16rem;
background: $bg-white;
border: 1px solid #F0F0F0;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 450;
color: $text-middle;
cursor: pointer;
transition: border-color 0.2s;
&:hover {
border-color: $accent;
}
svg {
flex-shrink: 0;
}
span {
white-space: nowrap;
}
}
.agent-browser-guide-drawer__copy-btn {
display: flex;
align-items: center;
gap: 0.04rem;
color: $accent;
font-size: 0.14rem;
font-weight: 450;
margin-left: 0.12rem;
}
/* 步骤示意图 */
.agent-browser-guide-drawer__step-img {
width: 100%;
max-width: 3.52rem;
border-radius: 0.08rem;
margin-top: 0.12rem;
margin-left: 0.4rem;
}
@@ -2,25 +2,50 @@
// ==================== Agent推荐岗位列表组件样式 ==================== // ==================== Agent推荐岗位列表组件样式 ====================
.agent-chat-job-list { .agent-chat-job-list {
background: $bg-middle; background: $bg-white;
border: 1px solid #F0F0F0;
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.04);
border-radius: 0.12rem; border-radius: 0.12rem;
padding: 0.24rem; padding: 0.24rem;
font-size: 0.14rem; font-size: 0.14rem;
// 标题 // 标题
&__header { &__header {
font-size: 0.18rem; font-size: 0.22rem;
font-weight: 700; font-weight: 620;
color: $text-dark; color: $text-dark;
margin-bottom: 0.06rem; margin-bottom: 0.04rem;
line-height: 0.29rem;
} }
// 推荐说明文字 // 推荐说明文字
&__summary { &__summary {
font-size: 0.13rem; font-size: 0.14rem;
font-weight: 330;
color: $text-middle; color: $text-middle;
margin-bottom: 0.18rem; margin-bottom: 0.16rem;
line-height: 1.5; line-height: 0.19rem;
}
// 可滚动岗位列表区域(默认显示约3.5个岗位高度)
&__scroll {
max-height: 3.64rem;
overflow-y: auto;
scrollbar-width: thin;
scrollbar-color: $border-color transparent;
&::-webkit-scrollbar {
width: 4px;
}
&::-webkit-scrollbar-thumb {
background: $border-color;
border-radius: 2px;
}
&::-webkit-scrollbar-track {
background: transparent;
}
} }
// 单个岗位项 // 单个岗位项
@@ -28,31 +53,38 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
background: $bg-white; flex-wrap: wrap;
border-radius: 0.1rem;
padding: 0.16rem 0.2rem; padding: 0.16rem 0.2rem;
margin-bottom: 0.1rem; border: 1px solid #F0F0F0;
border-radius: 0.08rem;
margin-bottom: 0.08rem;
cursor: pointer;
transition: border-color 0.2s ease;
&:last-of-type { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
&:hover {
border-color: $accent;
}
} }
// 左侧信息区域(可点击 // 左侧区域(匹配度 + 岗位信息
&__info { &__left {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.14rem; flex-wrap: wrap;
gap: 0.16rem;
flex: 1; flex: 1;
min-width: 0; min-width: 0;
cursor: pointer;
} }
// 匹配度环形容器 // 匹配度环形容器
&__score { &__score {
width: 0.62rem;
height: 0.62rem;
position: relative; position: relative;
width: 0.48rem;
height: 0.48rem;
flex-shrink: 0; flex-shrink: 0;
} }
@@ -68,98 +100,148 @@
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
font-size: 0.11rem; font-size: 0.14rem;
font-weight: 700; font-weight: 630;
color: $text-dark; color: #9FD051;
line-height: 0.22rem;
} }
// 岗位详情 // 岗位详情区域
&__detail { &__detail {
min-width: 0; min-width: 0;
flex: 1; flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 0.24rem;
} }
// 岗位标题行(岗位名 + 公司 // 岗位标题行(岗位名 + 公司)
&__title-row { &__title-row {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.08rem; flex-wrap: wrap;
margin-bottom: 0.04rem; gap: 0.32rem;
} }
// 岗位名称 // 岗位名称
&__title { &__title {
font-size: 0.15rem; font-size: 0.18rem;
font-weight: 600; font-weight: 620;
color: $text-dark; color: $text-dark;
line-height: 1.4; line-height: 0.27rem;
} }
// 公司名前的圆点 // 公司信息容器
&__company-dot { &__company {
font-size: 0.08rem; display: flex;
color: $text-light; align-items: center;
flex-wrap: wrap;
gap: 0.08rem;
}
// 公司 Logo
&__company-logo {
width: 0.24rem;
height: 0.24rem;
border-radius: 0.04rem;
object-fit: cover;
} }
// 公司名称 // 公司名称
&__company { &__company-name {
font-size: 0.13rem; font-size: 0.18rem;
color: $text-middle; font-weight: 330;
color: $text-dark;
line-height: 0.27rem;
white-space: nowrap; white-space: nowrap;
} }
// 标签行 // 标签行
&__tags { &__tags {
display: flex; display: flex;
gap: 0.06rem; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
gap: 0.12rem;
} }
// 单个标签 // 单个标签
&__tag { &__tag {
font-size: 0.11rem; font-size: 0.14rem;
font-weight: 330;
color: $text-middle; color: $text-middle;
background: $bg-main; line-height: 0.19rem;
padding: 0.02rem 0.08rem; display: flex;
border-radius: 0.03rem; align-items: center;
gap: 0.02rem;
svg {
width: 0.16rem;
height: 0.16rem;
color: $text-middle;
}
// 招聘分类标签(校招等)
&--category {
padding: 0.02rem 0.04rem;
background: #EDF9FA;
border-radius: 0.04rem;
font-size: 0.12rem;
color: $accent;
}
} }
// 右侧操作按钮区域 // 右侧操作按钮区域
&__actions { &__actions {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.14rem; flex-wrap: wrap;
gap: 0.08rem;
flex-shrink: 0; flex-shrink: 0;
margin-left: 0.16rem; margin-left: 0.16rem;
} }
// 不再推荐按钮 // 不再推荐按钮
&__dismiss-btn { &__dismiss-btn {
font-size: 0.12rem; height: 0.35rem;
color: $text-light; padding: 0 0.12rem;
background: transparent;
border: none;
font-size: 0.14rem;
font-weight: 620;
color: $accent;
cursor: pointer; cursor: pointer;
white-space: nowrap; white-space: nowrap;
transition: color 0.2s ease; transition: opacity 0.2s ease;
border-radius: 0.08rem;
&:hover { &:hover {
color: $text-middle; opacity: 0.7;
} }
} }
// 加入投递按钮 // 加入投递按钮
&__add-btn { &__add-btn {
height: 0.32rem; display: flex;
padding: 0 0.16rem; align-items: center;
gap: 0.04rem;
height: 0.35rem;
padding: 0 0.12rem;
background: $accent; background: $accent;
color: $bg-white; color: $bg-white;
border: none; border: none;
border-radius: 0.16rem; border-radius: 0.08rem;
font-size: 0.12rem; font-size: 0.14rem;
font-weight: 500; font-weight: 620;
cursor: pointer; cursor: pointer;
white-space: nowrap; white-space: nowrap;
transition: all 0.2s ease; transition: all 0.2s ease;
line-height: 0.32rem;
svg {
width: 0.16rem;
height: 0.16rem;
flex-shrink: 0;
}
&:hover { &:hover {
opacity: 0.85; opacity: 0.85;
@@ -172,37 +254,55 @@
// 已加入状态 // 已加入状态
&--added { &--added {
background: $bg-main; background: transparent;
color: $text-middle; color: $accent;
border: 1px solid $border-color; border: 1px solid $accent;
} }
} }
// 空状态
&__empty {
text-align: center;
color: $text-light;
padding: 0.4rem 0;
font-size: 0.14rem;
}
// 底部按钮区域 // 底部按钮区域
&__footer { &__footer {
display: flex; display: flex;
justify-content: center; justify-content: center;
gap: 0.16rem; gap: 0.32rem;
margin-top: 0.2rem; margin-top: 0.24rem;
flex-wrap: wrap;
} }
// 换一批按钮 // 换一批按钮
&__refresh-btn { &__refresh-btn {
height: 0.4rem; display: flex;
padding: 0 0.4rem; align-items: center;
justify-content: center;
gap: 0.04rem;
height: 0.43rem;
padding: 0 0.16rem;
min-width: 2.8rem;
background: $bg-white; background: $bg-white;
color: $text-dark; color: $accent;
border: 1px solid $border-color; border: 1px solid $accent;
border-radius: 0.2rem; border-radius: 0.22rem;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 500; font-weight: 620;
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: all 0.2s ease;
line-height: 0.4rem;
svg {
width: 0.16rem;
height: 0.16rem;
flex-shrink: 0;
}
&:hover { &:hover {
border-color: $accent; background: #EDF9FA;
color: $accent;
} }
&:disabled { &:disabled {
@@ -213,17 +313,27 @@
// 全部添加按钮 // 全部添加按钮
&__add-all-btn { &__add-all-btn {
height: 0.4rem; display: flex;
padding: 0 0.4rem; align-items: center;
justify-content: center;
gap: 0.04rem;
height: 0.43rem;
padding: 0 0.16rem;
min-width: 2.8rem;
background: $accent; background: $accent;
color: $bg-white; color: $bg-white;
border: none; border: none;
border-radius: 0.2rem; border-radius: 0.22rem;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 500; font-weight: 620;
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: all 0.2s ease;
line-height: 0.4rem;
svg {
width: 0.16rem;
height: 0.16rem;
flex-shrink: 0;
}
&:hover { &:hover {
opacity: 0.85; opacity: 0.85;
@@ -1,187 +1,113 @@
@use '../variables' as *; @use '../variables' as *;
/* Agent岗位预览面板样式 */ /* Agent岗位预览抽屉 — 从浏览器右侧弹出 */
.agent-job-preview-panel {
/* 遮罩层 */
.agent-job-drawer-mask {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: var(--app-height, 100vh);
background: rgba(0, 0, 0, 0.3);
z-index: 2000;
display: flex;
justify-content: flex-end;
}
/* 抽屉主体 */
.agent-job-drawer {
width: 6.4rem;
height: var(--app-height, 100vh);
background: $bg-white;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; font-size: 0.14rem;
background: $bg-white; box-shadow: -4px 0 20px rgba(0, 0, 0, 0.08);
border-radius: 0.2rem;
overflow: hidden;
/* 顶部标题栏 */ /* 顶部标题栏 */
&__header { &__header {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 0.16rem 0.2rem; padding: 0.2rem 0.24rem;
border-bottom: 1px solid $border-color; height: 0.64rem;
box-sizing: border-box;
} }
/* 返回按钮 */ &__header-left {
&__back {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.06rem; gap: 0.16rem;
}
/* 关闭按钮 */
&__close {
width: 0.24rem;
height: 0.24rem;
cursor: pointer; cursor: pointer;
font-size: 0.15rem; display: flex;
font-weight: 500; align-items: center;
color: $text-dark; justify-content: center;
} }
&__back-icon { &__close-icon {
width: 0.16rem; width: 0.24rem;
height: 0.16rem; height: 0.24rem;
}
/* 添加按钮 */
&__add-btn {
padding: 0.06rem 0.16rem;
background: $btn-dark;
color: $bg-white;
border: none;
border-radius: 0.06rem;
font-size: 0.13rem;
cursor: pointer;
transition: background 0.2s;
&:hover {
background: $btn-dark-hover;
}
&:disabled {
opacity: 0.6;
cursor: not-allowed;
}
}
/* 移出按钮 */
&__remove-btn {
padding: 0.06rem 0.16rem;
background: $bg-white;
color: $text-middle; color: $text-middle;
border: 1px solid $border-color; }
border-radius: 0.06rem;
font-size: 0.13rem;
cursor: pointer;
transition: background 0.2s, color 0.2s;
&:hover { /* 标题文字 */
background: $bg-main; &__title {
color: $danger; font-size: 0.18rem;
} font-weight: 620;
color: $text-dark;
&:disabled { line-height: 0.24rem;
opacity: 0.6;
cursor: not-allowed;
}
} }
/* 内容区域(可滚动) */ /* 内容区域(可滚动) */
&__body { &__body {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
padding: 0.2rem; padding: 0.24rem;
} }
/* 岗位卡片 */ /* 岗位标题区域 */
&__card { &__job-header {
background: $bg-main;
border-radius: 0.12rem;
padding: 0.2rem;
margin-bottom: 0.16rem;
}
&__card-top {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
gap: 0.24rem;
margin-bottom: 0.24rem;
} }
&__card-left { &__job-info {
flex: 1; flex: 1;
min-width: 0; min-width: 0;
} }
/* 公司行 */
&__company-row {
display: flex;
align-items: center;
gap: 0.08rem;
margin-bottom: 0.08rem;
}
&__company-icon {
width: 0.28rem;
height: 0.28rem;
border-radius: 0.06rem;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
background: $bg-middle;
flex-shrink: 0;
img {
width: 100%;
height: 100%;
object-fit: cover;
}
svg {
width: 0.18rem;
height: 0.18rem;
color: $text-middle;
}
}
&__company-name {
font-size: 0.14rem;
font-weight: 500;
color: $text-dark;
}
&__time {
font-size: 0.12rem;
color: $text-light;
margin-left: 0.06rem;
}
/* 岗位标题 */ /* 岗位标题 */
&__job-title { &__job-title {
font-size: 0.17rem; font-size: 0.24rem;
font-weight: 600; font-weight: 620;
color: $text-dark; color: $text-dark;
margin: 0.06rem 0 0.1rem; line-height: 0.32rem;
margin: 0 0 0.08rem;
} }
/* 元信息 */ /* 元信息 */
&__meta { &__meta {
display: flex;
align-items: center;
gap: 0.16rem;
flex-wrap: wrap;
}
&__meta-item {
display: flex;
align-items: center;
gap: 0.04rem;
font-size: 0.12rem; font-size: 0.12rem;
color: $text-middle; color: $text-middle;
} line-height: 0.16rem;
font-weight: 330;
&__meta-icon {
width: 0.14rem;
height: 0.14rem;
flex-shrink: 0;
} }
/* 匹配度环 */ /* 匹配度环 */
&__match { &__match {
position: relative; position: relative;
width: 0.6rem; width: 0.62rem;
height: 0.6rem; height: 0.62rem;
flex-shrink: 0; flex-shrink: 0;
} }
@@ -195,28 +121,141 @@
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
font-size: 0.13rem; font-size: 0.14rem;
font-weight: 600; font-weight: 630;
color: $text-dark; color: #9FD051;
} }
/* 内容段落 */ /* 内容段落 */
&__section { &__section {
margin-bottom: 0.2rem; margin-bottom: 0.24rem;
} }
&__section-title { &__section-title {
font-size: 0.14rem; font-size: 0.18rem;
font-weight: 600; font-weight: 600;
color: $text-dark; color: $text-dark;
margin-bottom: 0.1rem; line-height: 0.24rem;
margin-bottom: 0.16rem;
/* 加分项标题样式 */
&--bonus {
font-size: 0.14rem;
font-weight: 330;
color: $text-dark;
line-height: 0.19rem;
}
} }
&__section-content { &__section-content {
font-size: 0.13rem; font-size: 0.14rem;
color: $text-middle; color: $text-middle;
line-height: 1.8; line-height: 0.19rem;
font-weight: 330;
white-space: pre-wrap; white-space: pre-wrap;
word-break: break-word; word-break: break-word;
} }
/* 技能标签 */
&__tags {
display: flex;
flex-wrap: wrap;
gap: 0.08rem;
margin-bottom: 0.12rem;
}
&__tag {
display: flex;
justify-content: center;
align-items: center;
padding: 0.04rem 0.06rem;
background: $bg-main;
border-radius: 0.04rem;
font-size: 0.12rem;
color: $text-middle;
line-height: 0.18rem;
font-weight: 330;
}
/* 公司概况 */
&__company {
display: flex;
flex-direction: column;
gap: 0.12rem;
}
&__company-row {
display: flex;
align-items: flex-start;
gap: 0.12rem;
}
&__company-logo {
width: 0.48rem;
height: 0.48rem;
border-radius: 0.08rem;
overflow: hidden;
flex-shrink: 0;
background: #EDF9FA;
display: flex;
align-items: center;
justify-content: center;
img {
width: 100%;
height: 100%;
object-fit: cover;
}
svg {
width: 0.32rem;
height: 0.32rem;
}
}
&__company-info {
display: flex;
flex-direction: column;
gap: 0.06rem;
}
&__company-name {
font-size: 0.18rem;
font-weight: 620;
color: $text-dark;
line-height: 0.24rem;
}
&__company-detail {
font-size: 0.14rem;
font-weight: 400;
color: $text-middle;
line-height: 0.19rem;
}
&__company-desc {
font-size: 0.14rem;
font-weight: 330;
color: $text-middle;
line-height: 0.24rem;
}
}
/* 抽屉动画 */
.agent-job-drawer-enter-active,
.agent-job-drawer-leave-active {
transition: opacity 0.3s ease;
.agent-job-drawer {
transition: transform 0.3s ease;
}
}
.agent-job-drawer-enter-from,
.agent-job-drawer-leave-to {
opacity: 0;
.agent-job-drawer {
transform: translateX(100%);
}
} }
@@ -1,185 +1,632 @@
@use '../variables' as *; @use '../variables' as *;
// ==================== Agent设置面板样式(精简版 ==================== // ==================== Agent设置面板样式(重新设计 ====================
.agent-setting-panel { .agent-setting-panel {
height: 100%; position: relative;
background: $bg-middle; width: 3.60rem;
border-radius: 0.12rem; height: var(--app-height, 100vh);
background: #FFFFFF;
font-size: 0.14rem; font-size: 0.14rem;
overflow-y: auto; overflow-y: auto;
// 隐藏滚动条
scrollbar-width: none; scrollbar-width: none;
-ms-overflow-style: none; -ms-overflow-style: none;
&::-webkit-scrollbar { display: none; } &::-webkit-scrollbar { display: none; }
// 内容区域 // 头部标题区
&__body { &__header {
padding: 0.28rem 0.24rem; padding: 0.24rem 0.24rem 0;
} }
// 每个设置区块 &__title {
font-size: 0.20rem;
font-weight: 630;
line-height: 0.27rem;
color: #1A1A1A;
}
&__subtitle {
margin-top: 0.04rem;
font-size: 0.14rem;
font-weight: 330;
line-height: 0.19rem;
color: #6B7280;
}
// 分隔线
&__divider {
width: 3.12rem;
height: 1px;
margin: 0.24rem auto;
background: #F0F0F0;
}
// 通用区块
&__section { &__section {
margin-bottom: 0.28rem; padding: 0 0.24rem;
margin-bottom: 0.08rem;
&:last-child {
margin-bottom: 0;
}
} }
// 区块头部(标题 + 编辑按钮) // 区块头部
&__section-header { &__section-header {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.1rem; justify-content: space-between;
margin-bottom: 0.12rem; margin-bottom: 0.08rem;
} }
// 区块标题 // 区块标题
&__section-title { &__section-title {
font-size: 0.16rem; font-size: 0.16rem;
font-weight: 700; font-weight: 620;
color: $text-dark; line-height: 0.21rem;
color: #1A1A1A;
} }
// 编辑按钮 // 编辑按钮
&__edit-btn { &__edit-btn {
font-size: 0.13rem; display: flex;
align-items: center;
gap: 0.04rem;
font-size: 0.14rem;
font-weight: 450;
color: $accent; color: $accent;
cursor: pointer; cursor: pointer;
white-space: nowrap;
svg {
width: 0.14rem;
height: 0.14rem;
}
&:hover { &:hover {
opacity: 0.7; opacity: 0.7;
} }
} }
// 个人资料信息 // 个人信息文字
&__profile-info { &__info-text {
padding-left: 0.02rem; font-size: 0.14rem;
} font-weight: 330;
line-height: 0.19rem;
&__profile-name {
font-size: 0.18rem;
font-weight: 600;
color: $text-dark;
margin-bottom: 0.04rem;
}
&__profile-sub {
font-size: 0.13rem;
color: $text-middle; color: $text-middle;
} }
// 求职目标标签 // 求职偏好内容
&__goal-tags { &__goal-content {
display: flex; font-size: 0.14rem;
flex-wrap: wrap; font-weight: 330;
gap: 0.08rem; line-height: 0.24rem;
color: $text-middle;
p {
margin: 0;
}
} }
&__goal-tag { // 空状态
padding: 0.06rem 0.14rem;
border: 1px solid $accent;
border-radius: 0.16rem;
font-size: 0.13rem;
color: $accent;
background: transparent;
}
// 空状态文字
&__empty-text { &__empty-text {
font-size: 0.13rem; font-size: 0.14rem;
color: $text-light; color: $text-light;
} }
// 简历选择下拉 // 简历下拉
&__resume-select { &__resume-dropdown {
width: 100%;
margin-top: 0.06rem;
.el-input__wrapper {
border-radius: 0.08rem;
}
}
// 投递偏好项
&__pref-item {
display: flex; display: flex;
align-items: flex-start; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 0.12rem 0; padding: 0.08rem 0.12rem;
margin-top: 0.08rem;
background: #F3F4F6;
border-radius: 0.08rem;
cursor: pointer;
}
& + & { &__resume-name {
border-top: none; font-size: 0.14rem;
font-weight: 450;
color: $text-middle;
}
&__resume-arrow {
width: 0.14rem;
height: 0.14rem;
transition: transform 0.2s;
&--open {
transform: rotate(180deg);
} }
} }
&__pref-left { &__resume-options {
display: flex; margin-top: 0.04rem;
align-items: flex-start; background: #FFFFFF;
gap: 0.1rem; border: 1px solid #F0F0F0;
flex: 1; border-radius: 0.08rem;
min-width: 0; box-shadow: 0 0.02rem 0.08rem rgba(0, 0, 0, 0.06);
overflow: hidden;
} }
// 勾选图标 &__resume-option {
&__pref-check { padding: 0.08rem 0.12rem;
width: 0.2rem; font-size: 0.14rem;
height: 0.2rem; color: $text-dark;
flex-shrink: 0; cursor: pointer;
color: $text-light;
margin-top: 0.02rem;
svg { &:hover {
width: 100%; background: #F6FCFC;
height: 100%;
} }
&--active { &--active {
color: $text-dark; color: $accent;
background: #F6FCFC;
} }
} }
// 偏好文字 // 开关项
&__pref-text { &__switch-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.16rem 0;
}
&__switch-text {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0.03rem; gap: 0.04rem;
} }
&__pref-label { &__switch-label {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 500; font-weight: 450;
color: $text-dark; line-height: 0.19rem;
color: #1A1A1A;
} }
&__pref-desc { &__switch-desc {
font-size: 0.12rem; font-size: 0.12rem;
color: $text-light; font-weight: 330;
line-height: 1.4; line-height: 0.16rem;
color: $text-middle;
} }
// 浏览器按钮 // 自定义开关
&__toggle {
position: relative;
width: 0.42rem;
height: 0.24rem;
background: #F3F4F6;
border-radius: 0.12rem;
cursor: pointer;
transition: background 0.2s;
flex-shrink: 0;
&--on {
background: $accent;
.agent-setting-panel__toggle-dot {
left: 0.20rem;
}
}
}
&__toggle-dot {
position: absolute;
width: 0.18rem;
height: 0.18rem;
left: 0.04rem;
top: 0.03rem;
background: #FFFFFF;
border-radius: 50%;
transition: left 0.2s;
}
// 浏览器插件按钮
&__browser-btns { &__browser-btns {
display: flex; display: flex;
gap: 0.1rem; gap: 0.16rem;
margin-top: 0.08rem; margin-top: 0.12rem;
} }
&__browser-btn { &__browser-btn {
padding: 0.08rem 0.2rem; box-sizing: border-box;
background: $bg-white; display: flex;
border: 1px solid $border-color; align-items: center;
border-radius: 0.2rem; gap: 0.04rem;
font-size: 0.13rem; padding: 0.12rem 0.16rem;
color: $text-dark; background: #FFFFFF;
border: 1px solid #F0F0F0;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 450;
color: $text-middle;
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: border-color 0.2s;
svg {
width: 0.16rem;
height: 0.16rem;
}
&:hover { &:hover {
border-color: $accent; border-color: $accent;
color: $accent; }
&--active {
border-color: $accent;
}
}
// ==================== 编辑弹窗 ====================
&__edit-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.3);
z-index: 2000;
display: flex;
align-items: flex-start;
justify-content: flex-end;
padding-top: 1.20rem;
padding-right: 0.30rem;
}
&__edit-dialog {
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 0.24rem 0.32rem;
gap: 0.24rem;
width: 4.80rem;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 20.63%);
border: 1px solid #F0F0F0;
box-shadow: 0 0 0.16rem rgba(0, 0, 0, 0.05);
border-radius: 0.12rem;
font-size: 0.14rem;
}
&__edit-dialog-header {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
&__edit-dialog-title {
font-size: 0.18rem;
font-weight: 620;
line-height: 0.24rem;
color: #1A1A1A;
}
&__edit-dialog-close {
width: 0.24rem;
height: 0.24rem;
cursor: pointer;
&:hover {
opacity: 0.6;
}
}
&__edit-dialog-body {
width: 100%;
display: flex;
flex-direction: column;
gap: 0.16rem;
}
&__edit-row {
display: flex;
gap: 0.08rem;
}
&__edit-field {
display: flex;
flex-direction: column;
gap: 0.08rem;
flex: 1;
&--full {
width: 100%;
}
}
&__edit-label {
font-size: 0.14rem;
font-weight: 330;
line-height: 0.19rem;
color: $text-middle;
}
&__edit-input {
box-sizing: border-box;
width: 100%;
padding: 0.08rem 0.16rem;
background: #FFFFFF;
border: 1px solid #AEE6EA;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 330;
line-height: 0.19rem;
color: #1A1A1A;
outline: none;
transition: border-color 0.2s;
&:focus {
border-color: $accent;
}
&::placeholder {
color: $text-light;
}
}
&__edit-city {
width: 100%;
}
&__edit-dialog-save {
width: 100%;
padding: 0.12rem 0.16rem;
background: $accent;
border: none;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 450;
line-height: 0.19rem;
color: #FFFFFF;
cursor: pointer;
transition: opacity 0.2s;
&:hover {
opacity: 0.85;
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
} }
} }
} }
// ==================== 浏览器插件安装教程抽屉 ====================
/* 遮罩层 */
.agent-browser-guide-mask {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: var(--app-height, 100vh);
background: rgba(0, 0, 0, 0.3);
z-index: 2000;
display: flex;
justify-content: flex-end;
}
/* 抽屉主体 */
.agent-browser-guide-drawer {
width: 9.6rem;
max-width: 9.6rem;
height: var(--app-height, 100vh);
background: $bg-white;
display: flex;
flex-direction: column;
font-size: 0.14rem;
box-shadow: -4px 0 20px rgba(0, 0, 0, 0.08);
/* 顶部标题栏 */
&__header {
display: flex;
align-items: center;
padding: 0.2rem 0.24rem;
height: 0.64rem;
box-sizing: border-box;
}
&__header-left {
display: flex;
align-items: center;
gap: 0.16rem;
}
&__close {
width: 0.24rem;
height: 0.24rem;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
&__close-icon {
width: 0.24rem;
height: 0.24rem;
color: $text-middle;
}
&__title {
font-size: 0.18rem;
font-weight: 620;
color: $text-dark;
line-height: 0.24rem;
}
/* 内容区域 */
&__body {
flex: 1;
overflow-y: auto;
padding: 0 0.32rem 0.32rem;
display: flex;
flex-direction: column;
gap: 0.16rem;
font-size: 0.14rem;
}
/* 步骤卡片 */
&__card {
border: 1px solid #F0F0F0;
border-radius: 0.12rem;
padding: 0.16rem 0.2rem;
display: flex;
flex-wrap: wrap;
}
&__step-row {
display: flex;
align-items: flex-start;
gap: 0.12rem;
margin-bottom: 0.16rem;
margin-right: 1rem;
}
&__step-num {
display: flex;
justify-content: center;
align-items: center;
width: 0.32rem;
height: 0.32rem;
background: #EDF9FA;
border-radius: 0.08rem;
font-size: 0.18rem;
font-weight: 620;
color: $accent;
flex-shrink: 0;
}
&__step-info {
flex: 1;
}
&__step-title {
font-size: 0.18rem;
font-weight: 620;
color: $text-dark;
line-height: 0.24rem;
margin: 0 0 0.04rem;
}
&__step-desc {
font-size: 0.14rem;
font-weight: 330;
color: $text-middle;
line-height: 0.19rem;
margin: 0;
}
/* 下载按钮区域 */
&__download-box {
display: flex;
align-items: center;
gap: 0.16rem;
padding: 0.04rem 0.04rem 0.04rem 0.16rem;
background: $bg-main;
border-radius: 0.12rem;
height: 0.44rem;
margin-left: 0.4rem;
}
&__download-name {
font-size: 0.14rem;
font-weight: 450;
color: $text-dark;
line-height: 0.19rem;
}
&__download-btn {
display: flex;
align-items: center;
gap: 0.04rem;
padding: 0.08rem 0.12rem;
background: $accent;
border: none;
border-radius: 0.08rem;
color: $bg-white;
font-size: 0.14rem;
font-weight: 620;
cursor: pointer;
transition: background 0.2s;
&:hover {
background: $accent-hover;
}
}
/* 浏览器链接区域 */
&__browser-links {
display: flex;
align-items: flex-start;
gap: 0.24rem;
margin-bottom: 0.16rem;
margin-left: 0.4rem;
}
&__browser-link {
display: flex;
align-items: center;
gap: 0.04rem;
padding: 0.12rem 0.16rem;
background: $bg-white;
border: 1px solid #F0F0F0;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 450;
color: $text-middle;
cursor: pointer;
transition: border-color 0.2s;
&:hover {
border-color: $accent;
}
svg {
flex-shrink: 0;
}
span {
white-space: nowrap;
}
}
&__copy-btn {
display: flex;
align-items: center;
gap: 0.04rem;
color: $accent;
font-size: 0.14rem;
font-weight: 450;
margin-left: 0.12rem;
}
/* 步骤示意图 */
&__step-img {
width: 100%;
max-width: 3.52rem;
border-radius: 0.08rem;
margin-top: 0.12rem;
margin-left: 0.4rem;
}
}
/* 抽屉动画 */
.agent-browser-guide-drawer-enter-active,
.agent-browser-guide-drawer-leave-active {
transition: opacity 0.3s ease;
.agent-browser-guide-drawer {
transition: transform 0.3s ease;
}
}
.agent-browser-guide-drawer-enter-from,
.agent-browser-guide-drawer-leave-to {
opacity: 0;
.agent-browser-guide-drawer {
transform: translateX(100%);
}
}
@@ -0,0 +1,220 @@
@use '../variables' as *;
/* 投递任务抽屉 — 从浏览器右侧弹出 */
/* 遮罩层 */
.agent-task-drawer-mask {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: var(--app-height, 100vh);
background: rgba(0, 0, 0, 0.3);
z-index: 2000;
display: flex;
justify-content: flex-end;
}
/* 抽屉主体 */
.agent-task-drawer {
width: 6.4rem;
height: var(--app-height, 100vh);
background: $bg-white;
display: flex;
flex-direction: column;
font-size: 0.14rem;
box-shadow: -4px 0 20px rgba(0, 0, 0, 0.08);
/* 顶部标题栏 */
&__header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.2rem 0.24rem;
height: 0.64rem;
box-sizing: border-box;
}
&__header-left {
display: flex;
align-items: center;
gap: 0.16rem;
}
/* 关闭按钮 */
&__close {
width: 0.24rem;
height: 0.24rem;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
&__close-icon {
width: 0.24rem;
height: 0.24rem;
color: $text-middle;
}
/* 标题文字 */
&__title {
font-size: 0.18rem;
font-weight: 620;
color: $text-dark;
line-height: 0.24rem;
}
/* Tab 切换按钮区域 */
&__tabs {
display: flex;
align-items: flex-start;
gap: 0.16rem;
padding: 0 0.24rem 0.2rem;
}
&__tab {
display: flex;
align-items: center;
padding: 0.08rem 0.12rem;
gap: 0.04rem;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 450;
line-height: 0.19rem;
cursor: pointer;
border: 1px solid #F0F0F0;
background: $bg-white;
color: $text-middle;
transition: all 0.2s;
&--active {
background: $accent;
color: $bg-white;
border-color: $accent;
}
}
/* 列表内容区域 */
&__body {
flex: 1;
overflow-y: auto;
padding: 0 0.24rem 0.2rem;
display: flex;
flex-direction: column;
gap: 0.16rem;
}
/* 空状态 */
&__empty {
text-align: center;
color: $text-light;
font-size: 0.14rem;
padding: 0.4rem 0;
}
/* 岗位卡片 */
&__card {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.16rem 0.2rem;
background: $bg-white;
border: 1px solid #F0F0F0;
border-radius: 0.08rem;
box-sizing: border-box;
}
&__card-info {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 0.12rem;
}
/* 岗位标题 */
&__card-title {
font-size: 0.18rem;
font-weight: 620;
color: $text-dark;
line-height: 0.27rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* 公司信息行 */
&__card-company {
display: flex;
align-items: center;
gap: 0.08rem;
font-size: 0.18rem;
font-weight: 330;
color: $text-dark;
line-height: 0.27rem;
}
&__card-logo {
width: 0.24rem;
height: 0.24rem;
border-radius: 0.04rem;
object-fit: cover;
flex-shrink: 0;
}
&__card-logo-placeholder {
width: 0.24rem;
height: 0.24rem;
color: $text-light;
flex-shrink: 0;
}
/* 移出任务按钮 */
&__remove-btn {
display: flex;
align-items: center;
padding: 0.08rem 0.12rem;
gap: 0.04rem;
border: 1px solid $accent;
border-radius: 0.08rem;
background: $bg-white;
font-size: 0.14rem;
font-weight: 450;
color: $accent;
line-height: 0.19rem;
cursor: pointer;
white-space: nowrap;
transition: all 0.2s;
flex-shrink: 0;
&:hover {
background: $accent;
color: $bg-white;
}
&:disabled {
opacity: 0.5;
cursor: not-allowed;
}
}
}
/* 抽屉动画 */
.agent-task-drawer-enter-active,
.agent-task-drawer-leave-active {
transition: opacity 0.3s ease;
.agent-task-drawer {
transition: transform 0.3s ease;
}
}
.agent-task-drawer-enter-from,
.agent-task-drawer-leave-to {
opacity: 0;
.agent-task-drawer {
transform: translateX(100%);
}
}
+3 -3
View File
@@ -42,7 +42,7 @@
&__name { &__name {
font-size: 0.15rem; font-size: 0.15rem;
font-weight: 520; font-weight: 620;
line-height: 0.22rem; line-height: 0.22rem;
color: $text-dark; color: $text-dark;
} }
@@ -99,7 +99,7 @@
&__welcome-title { &__welcome-title {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 520; font-weight: 620;
line-height: 0.16rem; line-height: 0.16rem;
color: $text-dark; color: $text-dark;
} }
@@ -299,7 +299,7 @@
&__topics-title { &__topics-title {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 520; font-weight: 620;
line-height: 0.19rem; line-height: 0.19rem;
color: #52CAD1; color: #52CAD1;
} }
@@ -56,15 +56,11 @@
// ==================== 下拉面板 ==================== // ==================== 下拉面板 ====================
&__panel { &__panel {
position: absolute;
top: calc(100% + 0.06rem);
left: 0;
width: 3.6rem; width: 3.6rem;
background: $bg-white; background: $bg-white;
border: 1px solid $border-color; border: 1px solid $border-color;
border-radius: 0.1rem; border-radius: 0.1rem;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
z-index: 100;
padding: 0.1rem; padding: 0.1rem;
// 只显示一栏时缩窄面板 // 只显示一栏时缩窄面板
@@ -57,15 +57,11 @@
// ==================== 下拉面板 ==================== // ==================== 下拉面板 ====================
&__panel { &__panel {
position: absolute;
top: calc(100% + 0.06rem);
left: 0;
width: 4.8rem; width: 4.8rem;
background: $bg-white; background: $bg-white;
border: 1px solid $border-color; border: 1px solid $border-color;
border-radius: 0.1rem; border-radius: 0.1rem;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
z-index: 100;
padding: 0.1rem; padding: 0.1rem;
// 只显示一栏时缩窄面板 // 只显示一栏时缩窄面板
+81 -101
View File
@@ -1,145 +1,125 @@
@use '../variables' as *; @use '../variables' as *;
// ==================== 求职偏好弹窗样式(重新设计) ====================
// 遮罩层 — 右上角定位
.job-goal-dialog__overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.3);
z-index: 2000;
display: flex;
align-items: flex-start;
justify-content: flex-end;
padding-top: 1.20rem;
padding-right: 0.30rem;
}
.job-goal-dialog { .job-goal-dialog {
.el-dialog__header { box-sizing: border-box;
display: none; display: flex;
} flex-direction: column;
align-items: flex-start;
.el-dialog__body { padding: 0.24rem 0.32rem;
padding: 0; gap: 0.24rem;
} width: 4.80rem;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 20.63%);
border: 1px solid #F0F0F0;
box-shadow: 0 0 0.16rem rgba(0, 0, 0, 0.05);
border-radius: 0.12rem;
font-size: 0.14rem;
// 头部
&__header { &__header {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.12rem; justify-content: space-between;
padding: 0.2rem 0.24rem 0.16rem; width: 100%;
}
&__close-btn {
background: none;
border: none;
cursor: pointer;
color: $text-dark;
font-size: 0.16rem;
display: flex;
align-items: center;
justify-content: center;
padding: 0.04rem;
border-radius: 0.04rem;
transition: background 0.2s;
&:hover {
background: $bg-main;
}
} }
&__title { &__title {
font-size: 0.16rem; font-size: 0.18rem;
font-weight: 700; font-weight: 620;
color: $text-dark; line-height: 0.24rem;
color: #1A1A1A;
} }
&__close-btn {
width: 0.24rem;
height: 0.24rem;
cursor: pointer;
&:hover {
opacity: 0.6;
}
}
// 表单区块
&__section { &__section {
padding: 0.12rem 0.24rem; width: 100%;
display: flex;
flex-direction: column;
gap: 0.08rem;
} }
&__label { &__label {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 600; font-weight: 330;
color: $text-dark; line-height: 0.19rem;
margin-bottom: 0.12rem; color: $text-middle;
}
&__tags {
display: flex;
flex-wrap: wrap;
gap: 0.08rem;
margin-bottom: 0.1rem;
}
&__tag {
display: inline-flex;
align-items: center;
gap: 0.06rem;
background: $bg-main;
border: 1px solid $border-color;
border-radius: 0.16rem;
padding: 0.05rem 0.12rem;
font-size: 0.13rem;
color: $text-dark;
}
&__tag-close {
cursor: pointer;
font-size: 0.12rem;
color: $text-light;
transition: color 0.2s;
&:hover {
color: $danger;
}
}
&__select {
width: 100%;
.el-select__wrapper {
background: $bg-main;
border-radius: 0.08rem;
box-shadow: none;
border: 1px solid $border-color;
}
} }
// 招聘类型按钮组
&__type-group { &__type-group {
display: flex; display: flex;
gap: 0.12rem; gap: 0.10rem;
} }
&__type-btn { &__type-btn {
flex: 1; display: flex;
padding: 0.1rem 0; align-items: center;
border: 1px solid $border-color; justify-content: center;
border-radius: 0.2rem; padding: 0.08rem 0.16rem;
background: $bg-white; width: 0.96rem;
color: $text-dark; height: 0.35rem;
font-size: 0.13rem; background: #F3F4F6;
border: none;
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 330;
color: #1A1A1A;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
&:hover { &:hover {
border-color: $text-light; opacity: 0.8;
} }
&--active { &--active {
background: $btn-dark; background: $accent;
border-color: $btn-dark; color: #FFFFFF;
color: $bg-white;
font-weight: 500;
} }
} }
&__footer { // 保存按钮
padding: 0.3rem 0.24rem 0.24rem;
display: flex;
justify-content: center;
}
&__save-btn { &__save-btn {
width: 100%; width: 100%;
padding: 0.12rem 0; padding: 0.12rem 0.16rem;
background: $accent; background: $accent;
color: $bg-white;
border: none; border: none;
border-radius: 0.24rem; border-radius: 0.08rem;
font-size: 0.16rem; font-size: 0.14rem;
font-weight: 600; font-weight: 450;
line-height: 0.19rem;
color: #FFFFFF;
cursor: pointer; cursor: pointer;
transition: background 0.2s; transition: opacity 0.2s;
&:hover { &:hover {
background: $accent-hover; opacity: 0.85;
} }
} }
} }
@@ -1,5 +1,86 @@
@use '../variables' as *; @use '../variables' as *;
/* ==================== 岗位统计卡片 ==================== */
.job-stats-cards {
display: flex;
align-items: center;
gap: 0.16rem;
margin-left: auto;
filter: drop-shadow(0px 2px 10px rgba(0, 221, 179, 0.16));
/* 全网实时岗位卡片 */
&__count-card {
position: relative;
height: 0.43rem;
background: #0A171C;
border: 1px solid #1C4C55;
border-radius: 0.05rem;
}
/* 状态指示圆点 */
&__dot {
//position: absolute;
width: 0.08rem;
height: 0.08rem;
background: #2FE9F4;
border-radius: 50%;
box-shadow: 0px 0px 4px rgba(47, 233, 244, 0.75);
}
/* 岗位数字 */
&__count-num {
font-family: 'MiSans';
font-weight: 630;
font-size: 0.16rem;
line-height: 0.21rem;
color: #F4FFFF;
}
/* 岗位标签文字 */
&__count-label {
font-family: 'MiSans';
font-weight: 330;
font-size: 0.10rem;
line-height: 0.13rem;
color: #8AA8AF;
}
/* 可投率卡片 */
&__match-card {
position: relative;
width: 0.52rem;
height: 0.42rem;
background: #08161B;
border: 1px solid #20626D;
border-radius: 0.05rem;
}
/* 可投率数字 */
&__match-num {
position: absolute;
left: 0.08rem;
top: 0.04rem;
font-family: 'MiSans';
font-weight: 630;
font-size: 0.16rem;
line-height: 0.21rem;
color: #2FE9F4;
}
/* 可投率标签文字 */
&__match-label {
position: absolute;
left: 0.08rem;
top: 0.245rem;
font-family: 'MiSans';
font-weight: 620;
font-size: 0.10rem;
line-height: 0.13rem;
color: #8FB7BE;
}
}
.job-page-header { .job-page-header {
@@ -524,7 +524,7 @@
&__gap-item-title { &__gap-item-title {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 520; font-weight: 620;
color: $text-dark; color: $text-dark;
line-height: 0.19rem; line-height: 0.19rem;
margin-bottom: 0.04rem; margin-bottom: 0.04rem;
@@ -1398,9 +1398,9 @@
} }
} }
// 立即去投递按钮 // 下载专属简历按钮
&__submit-btn { &__submit-btn {
flex: 1; width: 100%;
height: 0.48rem; height: 0.48rem;
background: $btn-dark; background: $btn-dark;
color: $bg-white; color: $bg-white;
@@ -1415,6 +1415,20 @@
background: $btn-dark-hover; background: $btn-dark-hover;
} }
} }
// 下载专属简历按钮包裹含下拉菜单定位
&__submit-wrap {
position: relative;
flex: 1;
.job-resume-custom-dialog__top-download-menu {
top: auto;
bottom: 100%;
margin-top: 0;
margin-bottom: 0.06rem;
width: 100%;
}
}
} }
// 右侧滑入动画 // 右侧滑入动画
+377 -264
View File
@@ -1,4 +1,4 @@
// 会员弹窗样式新版 // 会员弹窗样式 新版黑金左右布局
@use '../variables' as *; @use '../variables' as *;
// 遮罩层 // 遮罩层
@@ -10,82 +10,163 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 0.14rem;
// 扫码支付弹窗的遮罩层级更高
&--qrcode {
z-index: 2400;
}
} }
// 弹窗主体 // 弹窗主体 左右布局
.member-dialog { .member-dialog {
box-sizing: border-box; box-sizing: border-box;
position: relative;
display: flex; display: flex;
flex-direction: column; width: 6.49rem;
align-items: flex-start; height: 4rem;
padding: 0.24rem 0.32rem; border-radius: 0.16rem;
gap: 0.24rem; box-shadow: 0 0.025rem 0.05rem rgba(60, 38, 13, 0.22);
width: 4.8rem; border: 0.00625rem solid #D9B873;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 20.63%);
border: 1px solid #F0F0F0;
box-shadow: 0 0 0.16rem rgba(0, 0, 0, 0.05);
border-radius: 0.12rem;
font-size: 0.14rem; font-size: 0.14rem;
// 扫码支付弹窗变体 // ==================== 左侧黑金权益栏 ====================
&--qrcode { &__left {
position: relative;
width: 2rem;
height: 100%;
background: linear-gradient(180deg, #0F001E 0%, #1A0B09 18.09%, #452206 66.19%, #2C1500 100%);
padding: 0.24rem 0.20rem;
box-sizing: border-box;
overflow: hidden;
flex-shrink: 0;
border-radius: 0.16rem 0 0 0.16rem;
}
// 装饰线条背景
&__left-deco {
position: absolute;
width: 4.47rem;
height: 2.39rem;
left: -0.52rem;
top: -0.75rem;
background: radial-gradient(ellipse at center, rgba(255, 230, 175, 0.08) 0%, transparent 70%);
pointer-events: none;
}
&__left-title {
position: relative;
font-weight: 600;
font-size: 0.16rem;
line-height: 0.21rem;
color: #FFE9A6;
margin: 0 0 0.06rem;
}
&__left-subtitle {
position: relative;
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: #F4E5CC;
margin: 0 0 0.2rem;
}
// ==================== 左栏权益卡片 ====================
&__benefits {
position: relative;
display: flex;
flex-direction: column;
gap: 0.16rem;
}
&__benefit-card {
box-sizing: border-box;
width: 1.56rem;
height: 0.6rem;
border: 0.00625rem solid #9C6D2D;
border-radius: 0.08rem;
display: flex;
align-items: center; align-items: center;
padding: 0 0.12rem;
gap: 0.12rem;
}
&__benefit-icon {
width: 0.32rem;
height: 0.32rem;
background: #4C3517;
border: 0.00625rem solid #D5A64A;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
svg {
width: 0.16rem;
height: 0.16rem;
}
}
&__benefit-info {
display: flex;
flex-direction: column;
gap: 0.04rem;
}
&__benefit-name {
font-weight: 450;
font-size: 0.14rem;
line-height: 0.19rem;
color: #FFE6AF;
}
&__benefit-desc {
font-weight: 330;
font-size: 0.1rem;
line-height: 0.13rem;
color: #F4E5CC;
}
// ==================== 左右分割金边 ====================
&__divider {
width: 0.01rem;
height: 100%;
background: #D6B15B;
flex-shrink: 0;
}
// ==================== 右侧内容区 ====================
&__right {
flex: 1;
background: linear-gradient(179.38deg, #FCEDD8 0.54%, #FEFBF5 19.09%);
display: flex;
flex-direction: column;
padding: 0.2rem 0.24rem;
box-sizing: border-box;
position: relative;
border-radius: 0 0.16rem 0.16rem 0;
} }
// ==================== 顶部标题行 ==================== // ==================== 顶部标题行 ====================
&__header { &__header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: center;
width: 100%; margin-bottom: 0.2rem;
} }
&__header-left { &__title {
display: flex; font-weight: 600;
flex-direction: column; font-size: 0.18rem;
gap: 0.04rem; line-height: 0.24rem;
color: #1F160F;
margin: 0;
} }
&__header-right { &__header-actions {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.16rem; gap: 0.16rem;
} }
&__title { // 联系客服
font-weight: 520;
font-size: 0.18rem;
line-height: 0.24rem;
color: $text-dark;
margin: 0;
}
&__subtitle {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: $text-middle;
margin: 0;
}
&__contact {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: $text-light;
cursor: pointer;
&:hover {
color: $text-middle;
}
}
// 联系客服外层包装用于定位二维码弹出框
&__contact-wrap { &__contact-wrap {
position: relative; position: relative;
display: inline-flex; display: inline-flex;
@@ -96,7 +177,18 @@
} }
} }
// 联系客服二维码弹出框 &__contact {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: #2F343B;
cursor: pointer;
&:hover {
color: #1F160F;
}
}
&__contact-qr { &__contact-qr {
display: none; display: none;
position: absolute; position: absolute;
@@ -122,7 +214,6 @@
} }
} }
// 二维码弹出框底部箭头
&__contact-qr-arrow { &__contact-qr-arrow {
position: absolute; position: absolute;
bottom: -0.07rem; bottom: -0.07rem;
@@ -133,7 +224,6 @@
border-left: 0.08rem solid transparent; border-left: 0.08rem solid transparent;
border-right: 0.08rem solid transparent; border-right: 0.08rem solid transparent;
border-top: 0.08rem solid $bg-white; border-top: 0.08rem solid $bg-white;
filter: drop-shadow(0 0.02rem 0.02rem rgba(0, 0, 0, 0.05));
} }
&__close { &__close {
@@ -143,355 +233,378 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 0.14rem; font-size: 0.14rem;
color: $text-middle; color: #2F343B;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
color: $text-dark; color: #1F160F;
} }
} }
// ==================== 套餐选择区域 ==================== // ==================== 套餐选择区域 ====================
&__plans { &__plans {
display: flex; display: flex;
gap: 0.13rem; gap: 0.2rem;
width: 100%; margin-bottom: 0.2rem;
} }
&__plan-card { &__plan-card {
box-sizing: border-box; box-sizing: border-box;
width: 1.2rem;
height: 1.4rem;
background: #FFFDF8;
border: 1px solid #E7C991;
border-radius: 0.08rem;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 0.12rem 0.16rem; gap: 0.08rem;
gap: 0.04rem;
width: 1.3rem;
height: 1.01rem;
background: $bg-white;
border: 1px solid #F0F0F0;
border-radius: 0.08rem;
cursor: pointer; cursor: pointer;
transition: border-color 0.2s;
position: relative; position: relative;
transition: border-color 0.2s, box-shadow 0.2s;
&:hover { &:hover {
border-color: $accent; border-color: #B77D24;
} }
// 选中 粗边框 // 选中态
&--active { &--active {
border: 3px solid $accent; background: linear-gradient(180deg, #FFF4D8 0%, #FDF9F1 100%);
border: 2px solid #B77D24;
box-shadow: 0 0.04rem 0.08rem rgba(183, 125, 36, 0.2);
} }
} }
&__plan-recommend { // 推荐角标
&__plan-badge {
position: absolute; position: absolute;
top: -0.1rem; top: -0.12rem;
left: 10%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
white-space: nowrap; white-space: nowrap;
background: $accent; background: #C28A2F;
color: $bg-white; border: 0.00625rem solid #F0D091;
font-size: 0.1rem; border-radius: 0.075rem;
padding: 0.02rem 0.08rem; padding: 0.04rem 0.12rem;
border-radius: 0.08rem; font-weight: 600;
font-weight: 520; font-size: 0.12rem;
line-height: 0.16rem;
color: #FFFFFF;
} }
&__plan-name { &__plan-name {
font-weight: 450; font-weight: 600;
font-size: 0.14rem; font-size: 0.14rem;
line-height: 0.19rem; line-height: 0.19rem;
text-align: center; text-align: center;
color: $text-dark; color: #1F160F;
} }
&__plan-price { &__plan-price {
display: flex; display: flex;
align-items: flex-end; align-items: baseline;
justify-content: center; justify-content: center;
gap: 0.04rem;
padding: 0.04rem 0;
} }
&__plan-price-symbol { &__plan-price-symbol {
font-weight: 450; font-weight: 600;
font-size: 0.14rem; font-size: 0.14rem;
line-height: 0.19rem; color: #1F160F;
color: $text-dark;
} }
&__plan-price-num { &__plan-price-num {
font-weight: 630; font-weight: 600;
font-size: 0.24rem; font-size: 0.28rem;
line-height: 0.18rem; line-height: 0.37rem;
color: $text-dark; color: #1F160F;
} }
&__plan-original-price { &__plan-original {
font-weight: 330; font-weight: 330;
font-size: 0.12rem; font-size: 0.12rem;
line-height: 0.16rem; line-height: 0.16rem;
text-decoration: line-through; text-decoration: line-through;
color: $text-light; color: #7A7D82;
margin-left: 0.04rem;
} }
&__plan-daily { &__plan-tag {
font-weight: 330; font-weight: 330;
font-size: 0.12rem; font-size: 0.12rem;
line-height: 0.16rem; line-height: 0.16rem;
text-align: center; text-align: center;
color: $accent; color: #3B2A1E;
} }
// ==================== 会员权益区域 ==================== // ==================== 支付方式选择步骤一 ====================
&__benefits { &__step-pay {
width: 100%;
}
&__benefits-title {
font-weight: 450;
font-size: 0.14rem;
line-height: 0.19rem;
color: $text-dark;
margin: 0 0 0.16rem;
}
&__benefits-cards {
display: flex;
gap: 0.13rem;
width: 100%;
}
&__benefit-card {
box-sizing: border-box;
flex: 1; flex: 1;
display: flex;
align-items: center;
padding: 0.12rem 0.16rem;
gap: 0.1rem;
background: $bg-white;
border: 1px solid #AEE6EA;
border-radius: 0.08rem;
} }
&__benefit-icon { &__payment-section {
width: 0.4rem; margin-bottom: 0.16rem;
height: 0.4rem;
display: flex;
align-items: center;
justify-content: center;
background: #EDF9FA;
border-radius: 50%;
flex-shrink: 0;
svg {
width: 0.24rem;
height: 0.24rem;
}
}
&__benefit-info {
display: flex;
flex-direction: column;
gap: 0.04rem;
}
&__benefit-name {
font-weight: 450;
font-size: 0.14rem;
line-height: 0.19rem;
color: $accent;
}
&__benefit-desc {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: $text-middle;
}
// ==================== 支付方式选择 ====================
&__payment {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
} }
&__payment-label { &__payment-label {
font-weight: 450; font-weight: 450;
font-size: 0.14rem; font-size: 0.14rem;
line-height: 0.19rem; line-height: 0.19rem;
color: $text-dark; color: #1F160F;
display: block;
margin-bottom: 0.08rem;
} }
&__payment-methods { &__payment-methods {
display: flex; display: flex;
align-items: center;
gap: 0.24rem; gap: 0.24rem;
} }
&__payment-item { &__payment-item {
box-sizing: border-box;
width: 1.88rem;
height: 0.58rem;
background: #FFFDF8;
border: 1px solid #E7C991;
border-radius: 0.08rem;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0.04rem 0.08rem; padding: 0 0.2rem;
gap: 0.06rem; gap: 0.12rem;
border-radius: 0.04rem;
cursor: pointer; cursor: pointer;
transition: background 0.2s; position: relative;
transition: border-color 0.2s;
svg { svg {
width: 0.16rem; width: 0.32rem;
height: 0.16rem; height: 0.32rem;
flex-shrink: 0; flex-shrink: 0;
} }
// 微信选中态 // 选中态
&--wechat-active { &--active {
background: #EBFEF4; border-color: #B77D24;
}
// 支付宝选中态
&--alipay-active {
background: #EBF3FF;
} }
} }
&__payment-text { &__payment-text {
font-weight: 520; font-weight: 600;
font-size: 0.12rem; font-size: 0.13rem;
line-height: 0.18rem; line-height: 0.17rem;
color: #1F160F;
}
&--wechat { // 选中圆圈
color: #07C160; &__payment-radio {
} box-sizing: border-box;
width: 0.14rem;
height: 0.14rem;
background: #FFFDF8;
border: 1px solid #E7C991;
border-radius: 50%;
margin-left: auto;
display: flex;
align-items: center;
justify-content: center;
&--alipay { .member-dialog__payment-item--active & {
color: #1677FF; border-color: #C28A2F;
} }
} }
// ==================== 购买按钮 ==================== &__payment-radio-inner {
width: 0.08rem;
height: 0.08rem;
background: #C28A2F;
border-radius: 50%;
}
// ==================== 底部栏步骤一/步骤二共用 ====================
&__bottom-bar {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 0.66rem;
background: #FCF4E8;
border-top: 1px solid #E9D4B1;
border-radius: 0 0 0.16rem 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 0.24rem;
box-sizing: border-box;
&--qrcode {
height: 1.7rem;
padding: 0.2rem 0.24rem;
gap: 0.24rem;
justify-content: flex-start;
}
}
&__footer-price {
display: flex;
align-items: baseline;
gap: 0.04rem;
}
&__footer-price-label {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: #1F160F;
margin-right: 0.08rem;
}
&__footer-price-symbol {
font-weight: 600;
font-size: 0.14rem;
color: #1F160F;
}
&__footer-price-num {
font-weight: 600;
font-size: 0.24rem;
line-height: 0.32rem;
color: #1F160F;
}
// 购买会员按钮
&__buy-btn { &__buy-btn {
width: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: 0.08rem 0.12rem; padding: 0.08rem 0.24rem;
height: 0.35rem; height: 0.33rem;
background: #AEE6EA; background: #C88E35;
border: 1px solid #F0D091;
box-shadow: 0 0.02rem 0.05rem rgba(154, 104, 32, 0.18);
border-radius: 0.08rem; border-radius: 0.08rem;
border: none; font-weight: 600;
font-weight: 450; font-size: 0.13rem;
font-size: 0.14rem; line-height: 0.15rem;
line-height: 0.19rem; color: #FFFFFF;
color: $bg-white; cursor: pointer;
cursor: default; border: 1px solid #F0D091;
opacity: 0.4; transition: opacity 0.2s;
transition: background 0.2s, opacity 0.2s;
// 选择了支付方式后变为主题色不透明可点击 &:hover {
&--active { opacity: 0.9;
background: $accent; }
opacity: 1;
cursor: pointer;
&:hover { &:disabled {
background: $accent-hover; opacity: 0.5;
} cursor: default;
} }
} }
// ==================== 扫码支付弹窗内容 ==================== // ==================== 扫码支付区域底部栏内 ====================
&__qrcode-content {
&__qrcode-box {
width: 1.2rem;
height: 1.2rem;
border: 2px solid #B77D24;
border-radius: 0.0rem;
display: flex;
align-items: center;
justify-content: center;
background: #FFFFFF;
flex-shrink: 0;
}
&__qrcode-iframe {
border: none;
border-radius: 0.04rem;
}
.qrcode-zhifubao{
transform: scale(0.52);
width: 2.2rem !important;
height: 2.2rem !important;
padding-top: 0.1rem;
padding-left: 0.1rem;
box-sizing: border-box;
}
.qrcode-wechat{
transform: scale(0.66);
width: 1.6rem !important;
height: 1.6rem !important;
box-sizing: border-box;
}
&__qrcode-info {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; gap: 0.12rem;
gap: 0.16rem;
width: 100%;
}
&__qrcode-image {
width: 2.1rem;
height: 2.1rem;
display: flex;
align-items: center;
justify-content: center;
}
&__payment-iframe {
width: 100%;
height: 100%;
border: none;
border-radius: 0.08rem;
}
&__wechat-qr-iframe {
width: 2.2rem;
height: 2.2rem;
border: none;
border-radius: 0.08rem;
} }
&__qrcode-price-row { &__qrcode-price-row {
display: flex; display: flex;
align-items: flex-end; align-items: center;
gap: 0.08rem; gap: 0.04rem;
} }
&__qrcode-price { &__qrcode-price-symbol {
font-weight: 630; font-weight: 600;
font-size: 0.18rem;
color: #1F160F;
}
&__qrcode-price-num {
font-size: 0.32rem; font-size: 0.32rem;
line-height: 0.25rem; font-weight: 600;
color: $text-dark; line-height: 0.37rem;
color: #1F160F;
} }
&__qrcode-tip { &__qrcode-tip {
font-weight: 330; font-weight: 330;
font-size: 0.14rem; font-size: 0.14rem;
line-height: 0.1rem; line-height: 0.19rem;
color: $text-dark; color: #1F160F;
margin-left: 0.08rem;
vertical-align: middle;
} }
&__qrcode-agreement { &__qrcode-agreement {
font-weight: 330; font-weight: 330;
font-size: 0.14rem; font-size: 0.12rem;
line-height: 0.19rem; line-height: 0.16rem;
color: $text-light; color: #3B2A1E;
margin: 0; margin: 0;
a { a {
color: $text-light; color: #A86718;
text-decoration: none; text-decoration: none;
&:hover { &:hover {
color: $accent; color: #A86718;
} }
} }
} }
// 已支付成功按钮 // 已支付成功按钮
&__paid-btn { &__paid-btn {
width: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: 0.08rem 0.12rem; padding: 0.08rem 0.24rem;
height: 0.35rem; height: 0.33rem;
background: $accent; width: fit-content;
background: #C88E35;
border: 1px solid #F0D091;
box-shadow: 0 0.02rem 0.05rem rgba(154, 104, 32, 0.18);
border-radius: 0.08rem; border-radius: 0.08rem;
border: none; font-weight: 600;
font-weight: 450; font-size: 0.13rem;
font-size: 0.14rem; line-height: 0.15rem;
line-height: 0.19rem; color: #FFFFFF;
color: $bg-white;
cursor: pointer; cursor: pointer;
transition: background 0.2s; transition: opacity 0.2s;
&:hover { &:hover {
background: $accent-hover; opacity: 0.9;
} }
} }
} }
@@ -0,0 +1,485 @@
@use '../variables' as *;
// ==================== 导师页右侧广告面板样式 ====================
.mentor-aside-panel {
font-size: 0.14rem;
width: 100%;
height: 100%;
position: relative;
background: $bg-white;
display: flex;
flex-direction: column;
// 顶部渐变区域
&__header {
padding: 0.24rem;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 100%);
}
&__title {
font-weight: 630;
font-size: 0.20rem;
line-height: 0.27rem;
color: $text-dark;
}
&__subtitle {
font-weight: 330;
font-size: 0.14rem;
line-height: 0.19rem;
color: $text-middle;
margin-top: 0.04rem;
}
// 统计数字区域
&__stats {
display: flex;
align-items: center;
margin: 0 0.24rem;
height: 1rem;
background: linear-gradient(270deg, rgba(82, 202, 209, 0.05) 0%, rgba(159, 208, 81, 0.05) 100%);
border-radius: 0.12rem;
position: relative;
// 渐变边框从上到下 #9FD051 #52CAD1
&::before {
content: '';
position: absolute;
inset: 0;
border-radius: 0.12rem;
padding: 0.012rem;
background: linear-gradient(180deg, #9FD051 0%, #52CAD1 100%);
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
}
}
&__stat-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 0.08rem;
padding: 0.20rem 0;
}
&__stat-num {
font-weight: 620;
font-size: 0.24rem;
line-height: 0.32rem;
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
&__stat-label {
font-weight: 450;
font-size: 0.14rem;
line-height: 0.19rem;
color: $text-dark;
}
&__stat-divider {
width: 0;
height: 0.98rem;
border-left: 1px solid $border-color;
}
// 小节标题共用
&__section-title {
display: flex;
align-items: center;
gap: 0.08rem;
}
&__section-icon {
font-size: 0.16rem;
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
&__section-text {
font-weight: 620;
font-size: 0.16rem;
line-height: 0.21rem;
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
// 为什么选择我们的导师
&__reasons {
margin: 0.24rem 0.24rem 0;
}
&__reason-list {
margin-top: 0.24rem;
}
&__reason-item {
display: flex;
align-items: center;
gap: 0.08rem;
margin-bottom: 0.20rem;
&:last-child {
margin-bottom: 0;
}
}
&__reason-icon {
width: 0.42rem;
height: 0.42rem;
background: #EDF9FA;
border-radius: 0.08rem;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
svg {
width: 0.24rem;
height: 0.24rem;
}
}
&__reason-info {
display: flex;
flex-direction: column;
gap: 0.04rem;
}
&__reason-title {
font-weight: 620;
font-size: 0.14rem;
line-height: 0.19rem;
color: $text-dark;
}
&__reason-desc {
font-weight: 330;
font-size: 0.14rem;
line-height: 0.19rem;
color: $text-middle;
}
// 热门导师方向
&__directions {
margin: 0.24rem 0.24rem 0;
}
&__direction-list {
margin-top: 0.24rem;
}
&__direction-card {
box-sizing: border-box;
padding: 0.12rem 0.16rem;
background: $bg-white;
border: 1px solid $border-color;
border-radius: 0.12rem;
margin-bottom: 0.20rem;
&:last-child {
margin-bottom: 0;
}
}
&__direction-name {
font-weight: 620;
font-size: 0.14rem;
line-height: 0.19rem;
color: $text-dark;
margin-bottom: 0.08rem;
}
&__direction-tags {
display: flex;
align-items: center;
gap: 0.08rem;
}
&__direction-tag {
display: inline-flex;
justify-content: center;
align-items: center;
padding: 0.04rem 0.08rem;
background: #EDF9FA;
border-radius: 0.04rem;
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: $accent;
}
// 底部按钮区域
&__footer {
margin-top: auto;
padding: 0.24rem;
text-align: center;
}
&__cta-btn {
width: 100%;
height: 0.40rem;
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
border-radius: 0.12rem;
border: none;
font-weight: 620;
font-size: 0.14rem;
line-height: 0.19rem;
color: $bg-white;
cursor: pointer;
transition: opacity 0.15s;
&:hover {
opacity: 0.9;
}
}
&__footer-tip {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: $text-middle;
margin-top: 0.08rem;
}
// ==================== 模式二模拟对话样式 ====================
&__chat {
flex: 1;
overflow-y: auto;
padding: 0.16rem 0.24rem;
&::-webkit-scrollbar {
width: 4px;
}
&::-webkit-scrollbar-thumb {
background: $border-color;
border-radius: 2px;
}
}
// 对话加载中
&__chat-loading {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.12rem;
padding: 0.4rem 0;
color: $text-middle;
font-size: 0.13rem;
}
&__chat-spinner {
width: 0.24rem;
height: 0.24rem;
border: 2px solid $border-color;
border-top-color: $accent;
border-radius: 50%;
animation: mentorChatSpin 0.7s linear infinite;
}
@keyframes mentorChatSpin {
to { transform: rotate(360deg); }
}
// 对话气泡
&__chat-bubble {
display: flex;
margin-bottom: 0.16rem;
&:last-child {
margin-bottom: 0;
}
// 用户消息 右对齐品牌色背景
&--user {
justify-content: flex-end;
.mentor-aside-panel__chat-text {
background: $accent;
color: #FFFFFF;
border-radius: 0.12rem 0.04rem 0.12rem 0.12rem;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
}
// 导师消息 左对齐白色背景
&--mentor {
justify-content: flex-start;
.mentor-aside-panel__chat-text {
background: #FFFFFF;
color: $text-dark;
border-radius: 0.04rem 0.12rem 0.12rem 0.12rem;
box-shadow: 0 2px 4px rgba(82, 202, 209, 0.1);
}
}
}
&__chat-text {
display: inline-block;
max-width: 2.38rem;
padding: 0.08rem 0.12rem;
font-weight: 330;
font-size: 0.14rem;
line-height: 0.24rem;
word-break: break-word;
}
}
// ==================== 二维码弹窗样式 ====================
/* 遮罩层 */
.mentor-qr-overlay {
position: fixed;
inset: 0;
z-index: 9999;
background: rgba(0, 0, 0, 0.4);
display: flex;
align-items: center;
justify-content: center;
}
/* 弹窗卡片 */
.mentor-qr-card {
font-size: 0.14rem;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 0.24rem 0.32rem;
gap: 0.24rem;
width: 4.80rem;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 20.63%);
border: 1px solid #F0F0F0;
box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.05);
border-radius: 0.12rem;
// 头部标题 + 关闭按钮
&__header {
display: flex;
justify-content: space-between;
align-items: flex-start;
width: 100%;
}
&__title-wrap {
display: flex;
flex-direction: column;
gap: 0.04rem;
}
&__title {
font-weight: 620;
font-size: 0.18rem;
line-height: 0.24rem;
color: #1A1A1A;
}
&__desc {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: #6A7282;
}
&__close {
width: 0.24rem;
height: 0.24rem;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
&:hover {
opacity: 0.7;
}
svg {
width: 0.24rem;
height: 0.24rem;
}
}
// 二维码展示区域
&__qr-area {
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 0.16rem 0;
width: 100%;
min-height: 2.72rem;
background: #F4FBFB;
border: 1px solid #AEE6EA;
border-radius: 0.08rem;
}
&__qr-img {
width: 2.40rem;
height: 2.40rem;
object-fit: contain;
}
&__placeholder {
font-size: 0.14rem;
color: #6A7282;
}
&__loading {
display: flex;
align-items: center;
justify-content: center;
width: 2.40rem;
height: 2.40rem;
}
&__spinner {
width: 0.32rem;
height: 0.32rem;
border: 3px solid #AEE6EA;
border-top-color: #52CAD1;
border-radius: 50%;
animation: mentorQrSpin 0.7s linear infinite;
}
@keyframes mentorQrSpin {
to { transform: rotate(360deg); }
}
// 底部提示
&__footer {
width: 100%;
}
&__footer-text {
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
padding: 0.12rem 0.16rem;
width: 100%;
background: #FFFFFF;
border: 1px solid #F0F0F0;
border-radius: 0.08rem;
font-weight: 330;
font-size: 0.14rem;
line-height: 0.19rem;
color: #6A7282;
}
}
@@ -9,7 +9,7 @@
line-height: 1.5; line-height: 1.5;
background: #F7F7F7; background: #F7F7F7;
border-radius: 0.12rem; border-radius: 0.12rem;
padding: 0.1rem; padding: 0.16rem;
box-sizing: border-box; box-sizing: border-box;
// 表单内容区 // 表单内容区
@@ -305,7 +305,7 @@
// AI润色结果区域 // AI润色结果区域
&__ai-result { &__ai-result {
margin-top: 0.16rem; margin-top: 0.04rem;
} }
&__ai-result-label { &__ai-result-label {
@@ -317,7 +317,7 @@
&__ai-result-card { &__ai-result-card {
padding: 0.1rem 0.12rem; padding: 0.1rem 0.12rem;
background: linear-gradient(to bottom,#F5FFFD,#ffffff); background: linear-gradient(to bottom, #EDF9FA 0, #fff 0.5rem);
border-radius: 0.06rem; border-radius: 0.06rem;
} }
@@ -438,13 +438,13 @@
} }
&__save-btn { &__save-btn {
padding: 0.06rem 0.2rem; padding: 0.06rem 0.24rem;
font-size: 0.13rem; font-size: 0.13rem;
font-weight: 600; font-weight: 600;
color: $bg-white; color: $bg-white;
background: $btn-dark; background: $btn-dark;
border: none; border: none;
border-radius: 0.2rem; border-radius: 0.08rem;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
@@ -454,13 +454,13 @@
} }
&__cancel-btn { &__cancel-btn {
padding: 0.06rem 0.2rem; padding: 0.06rem 0.24rem;
font-size: 0.13rem; font-size: 0.13rem;
font-weight: 600; font-weight: 600;
color: $accent; color: $accent;
background: transparent; background: transparent;
border: 1px solid $accent; border: 1px solid $accent;
border-radius: 0.2rem; border-radius: 0.08rem;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
@@ -6,7 +6,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0; gap: 0;
padding: 0.2rem 0.24rem 0; padding-bottom: 0.2rem ;
background: $bg-white; background: $bg-white;
border-radius: 0.12rem; border-radius: 0.12rem;
font-size: 0.14rem; font-size: 0.14rem;
@@ -16,18 +16,16 @@
&__tabs { &__tabs {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.24rem;
padding-bottom: 0.14rem; padding-bottom: 0.14rem;
border-bottom: 1px solid $border-color;
flex-shrink: 0; flex-shrink: 0;
margin-bottom:0.14rem margin-bottom:0.14rem
} }
&__tab-item { &__tab-item {
font-size: 0.18rem; font-size: 0.14rem;
color: $text-middle; color: $text-middle;
cursor: pointer; cursor: pointer;
padding-bottom: 0.06rem; padding: 0.16rem 0.2rem;
border-bottom: 2px solid transparent; border-bottom: 2px solid transparent;
transition: all 0.2s; transition: all 0.2s;
white-space: nowrap; white-space: nowrap;
@@ -37,9 +35,9 @@
} }
&--active { &--active {
color: $text-dark; color: $accent;
font-weight: 600; font-weight: 600;
border-bottom-color: $text-dark; border-bottom-color: $accent;
} }
} }
@@ -47,7 +45,7 @@
&__body { &__body {
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
padding-bottom: 0.2rem; padding: 0 0.24rem 0.2rem 0.24rem;
// 隐藏滚动条 // 隐藏滚动条
&::-webkit-scrollbar { &::-webkit-scrollbar {
@@ -64,7 +62,7 @@
border-radius: 0.08rem; border-radius: 0.08rem;
&:hover .profile-page-content__card-header{ &:hover .profile-page-content__card-header{
background: #F7F7F7; background: #F0FAFA;
.profile-page-content__edit-btn-inline{ .profile-page-content__edit-btn-inline{
opacity: 1; opacity: 1;
pointer-events: auto; pointer-events: auto;
@@ -253,17 +251,15 @@
&__tag { &__tag {
font-size: 0.12rem; font-size: 0.12rem;
color: $text-dark; color: $accent;
background: $bg-main; background: #fff;
border: 1px solid $border-color; border: 1px solid $accent;
border-radius: 0.16rem; border-radius: 0.04rem;
padding: 0.05rem 0.16rem; padding: 0.05rem 0.08rem;
transition: all 0.2s; transition: all 0.2s;
&:hover { &:hover {
border-color: $accent;
color: $accent;
background: $theme-color;
} }
} }
@@ -301,7 +297,7 @@
} }
&__card-hover:hover { &__card-hover:hover {
background: #F7F7F7; background: #F0FAFA;
} }
// 标题行hover显示添加按钮5大经历 // 标题行hover显示添加按钮5大经历
@@ -319,7 +315,7 @@
border-radius: 0.08rem; border-radius: 0.08rem;
&:hover { &:hover {
background: #F7F7F7; background: #F0FAFA;
} }
&:not(:last-child) { &:not(:last-child) {
@@ -55,15 +55,11 @@
// ==================== 下拉面板 ==================== // ==================== 下拉面板 ====================
&__panel { &__panel {
position: absolute;
top: calc(100% + 0.06rem);
left: 0;
width: 4.2rem; width: 4.2rem;
background: $bg-white; background: $bg-white;
border: 1px solid $border-color; border: 1px solid $border-color;
border-radius: 0.1rem; border-radius: 0.1rem;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
z-index: 100;
padding: 0.1rem; padding: 0.1rem;
// level=2 时只有两栏面板收窄 // level=2 时只有两栏面板收窄
@@ -27,7 +27,7 @@
right: 0; right: 0;
width: 8rem; width: 8rem;
height: var(--app-height, 100vh); height: var(--app-height, 100vh);
background: $bg-main; background: #fff;
z-index: 2001; z-index: 2001;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -85,7 +85,7 @@
// ---- 模块标题 ---- // ---- 模块标题 ----
&__module-title { &__module-title {
font-size: 0.16rem; font-size: 0.18rem;
font-weight: 700; font-weight: 700;
color: $text-dark; color: $text-dark;
margin: 0.24rem 0 0.12rem 0; margin: 0.24rem 0 0.12rem 0;
@@ -98,6 +98,9 @@
// ---- 单条经历记录 ---- // ---- 单条经历记录 ----
&__record { &__record {
margin-bottom: 0.2rem; margin-bottom: 0.2rem;
background: $bg-main;
padding: 0.16rem;
border-radius: 0.12rem;
} }
&__record-label { &__record-label {
@@ -109,14 +112,35 @@
// ---- 卡片容器 ---- // ---- 卡片容器 ----
&__card { &__card {
background: $bg-white; background: #fff;
border-radius: 0.1rem; border-radius: 0.1rem;
padding: 0.16rem; padding: 0.16rem;
border: 1px solid $border-color; position: relative;
overflow: hidden;
&--ai { &--ai {
border: 1px solid rgba($accent, 0.3); border: 1px solid rgba($accent, 0.3);
background: rgba($accent, 0.03);
/* 顶部渐变背景层,不遮挡内容 */
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 0.1rem;
background: linear-gradient(to bottom, #EDF9FA 0, #fff 0.5rem);
z-index: 0;
}
}
/* 让卡片内所有内容在渐变之上 */
> * {
position: relative;
z-index: 1;
} }
} }
@@ -152,6 +176,8 @@
font-weight: 600; font-weight: 600;
color: $accent; color: $accent;
margin: 0 0 0.08rem 0; margin: 0 0 0.08rem 0;
display: flex;
align-items: flex-start;
} }
&__ai-text { &__ai-text {
@@ -175,17 +201,19 @@
font-size: 0.12rem; font-size: 0.12rem;
font-weight: 500; font-weight: 500;
border: 1px solid $accent; border: 1px solid $accent;
border-radius: 0.14rem; border-radius: 0.04rem;
padding: 0.04rem 0.12rem; padding: 0.04rem 0.06rem;
cursor: pointer; cursor: pointer;
transition: all 0.2s; transition: all 0.2s;
display: flex;
align-items: center;
gap: 0.04rem;
&--replace { &--replace {
color: $accent; color: #fff;
background: $bg-white; background: $accent;
&:hover { &:hover {
background: rgba($accent, 0.08);
} }
} }
@@ -218,7 +218,7 @@
&__mcard-title { &__mcard-title {
font-size: 0.18rem; font-size: 0.18rem;
font-weight: 520; font-weight: 620;
color: #FFFFFF; color: #FFFFFF;
line-height: 0.24rem; line-height: 0.24rem;
@@ -242,7 +242,7 @@
&__mcard-remain-days { &__mcard-remain-days {
font-size: 0.18rem; font-size: 0.18rem;
font-weight: 520; font-weight: 620;
color: #FFFFFF; color: #FFFFFF;
line-height: 0.24rem; line-height: 0.24rem;
} }
@@ -328,7 +328,7 @@
&__feedback-label { &__feedback-label {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 520; font-weight: 620;
color: #1A1A1A; color: #1A1A1A;
line-height: 0.19rem; line-height: 0.19rem;
} }
@@ -44,7 +44,7 @@
&__title { &__title {
font-size: 0.18rem; font-size: 0.18rem;
font-weight: 520; font-weight: 620;
line-height: 0.24rem; line-height: 0.24rem;
color: $text-dark; color: $text-dark;
margin: 0; margin: 0;
@@ -217,7 +217,7 @@
span { span {
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 520; font-weight: 620;
line-height: 0.19rem; line-height: 0.19rem;
text-align: center; text-align: center;
color: #FFFFFF; color: #FFFFFF;
+262 -51
View File
@@ -3,7 +3,7 @@
.side-nav { .side-nav {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 2rem; width: 2.2rem;
height: var(--app-height, 100vh); height: var(--app-height, 100vh);
background: $bg-white; background: $bg-white;
color: #fff; color: #fff;
@@ -12,6 +12,14 @@
position: fixed; position: fixed;
left: 0; left: 0;
top: 0; top: 0;
z-index: 100;
// 窄版模式window.innerWidth < 1440
&--narrow {
width: 0.8rem;
padding: 0.16rem 0.10rem;
align-items: center;
}
&__header { &__header {
display: flex; display: flex;
@@ -21,6 +29,12 @@
margin-bottom: 0.2rem; margin-bottom: 0.2rem;
} }
// 窄版header居中
&--narrow &__header {
justify-content: center;
padding: 0.1rem 0;
}
&__avatar { &__avatar {
width: 0.36rem; width: 0.36rem;
height: 0.36rem; height: 0.36rem;
@@ -43,6 +57,12 @@
width: 1.32rem; width: 1.32rem;
height: 0.34rem; height: 0.34rem;
display: block; display: block;
// 窄版logo
&--narrow {
width: 0.46rem;
height: auto;
}
} }
&__menu { &__menu {
@@ -52,7 +72,13 @@
flex: 1; flex: 1;
} }
// 窄版菜单宽度撑满
&--narrow &__menu {
width: 100%;
}
&__item { &__item {
position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.04rem; gap: 0.04rem;
@@ -79,16 +105,43 @@
} }
} }
// 窄版导航项纵向居中排列
&--narrow &__item {
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.04rem;
padding: 0.1rem 0.06rem;
}
&__item-icon { &__item-icon {
width: 0.2rem; width: 0.2rem;
height: 0.2rem; height: 0.2rem;
object-fit: contain; object-fit: contain;
font-size: 0.16rem; font-size: 0.16rem;
// 内部SVG/img统一撑满容器
svg, img {
width: 100%;
height: 100%;
display: block;
}
}
// 窄版图标放大防止scale缩放后图标过小
&--narrow &__item-icon {
width: 0.24rem;
height: 0.24rem;
} }
&__item-label { &__item-label {
flex: 1;
}
// 窄版label字号缩小
&--narrow &__item-label {
font-size: 0.11rem;
white-space: nowrap;
} }
&__badge { &__badge {
@@ -100,12 +153,107 @@
font-weight: 600; font-weight: 600;
} }
/* 索引0菜单项的"全网"小标签 */
&__tag-quanwang {
display: flex;
align-items: center;
justify-content: center;
padding: 0.02rem 0.04rem;
min-width: 0.28rem;
height: 0.17rem;
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
border-radius: 0.04rem;
font-family: 'MiSans';
font-style: normal;
font-weight: 620;
font-size: 0.10rem;
line-height: 0.13rem;
text-align: center;
color: #FFFFFF;
flex: none;
// 窄版角标样式右上角定位
&--corner {
position: absolute;
top: -0.07rem;
right: -0.05rem;
min-width: auto;
padding: 0.02rem 0.04rem;
height: 0.17rem;
font-size: 0.10rem;
line-height: 0.12rem;
border-radius: 0.03rem;
}
}
// 公测群二维码弹出层hover索引5时显示
&__qrcode-popup {
position: absolute;
top: calc(100% + 0.08rem);
left: 0;
padding: 0.08rem;
background: #fff;
border-radius: 0.08rem;
box-shadow: 0 0.02rem 0.12rem rgba(0, 0, 0, 0.08);
z-index: 100;
}
&__qrcode-img {
display: block;
width: auto;
height: auto;
max-width: 1.6rem;
border-radius: 0.04rem;
}
&__footer { &__footer {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0.04rem; gap: 0.04rem;
padding-top: 0.12rem; padding-top: 0.12rem;
} }
// 窄版footer居中
&--narrow &__footer {
align-items: center;
width: 100%;
}
}
// ==================== 窄版邀请图片卡片 ====================
.side-nav__referral-card-narrow {
display: flex;
justify-content: center;
margin-top: 0.12rem;
}
.side-nav__referral-card-narrow-img {
width: 0.56rem;
height: 0.85rem;
display: block;
border-radius: 0.06rem;
}
// ==================== 窄版用户信息 ====================
.side-nav__user-info-narrow {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.06rem;
cursor: pointer;
padding: 0.08rem 0;
border-radius: 0.08rem;
&:hover {
}
}
.side-nav__user-avatar-narrow {
width: 0.26rem;
height: 0.26rem;
border-radius: 50%;
display: block;
} }
.side-nav__dialog-overlay { .side-nav__dialog-overlay {
@@ -192,7 +340,7 @@
flex-shrink: 0; flex-shrink: 0;
span:first-child { span:first-child {
font-weight: 520; font-weight: 620;
font-size: 0.18rem; font-size: 0.18rem;
line-height: 0.24rem; line-height: 0.24rem;
color: $text-dark; color: $text-dark;
@@ -264,7 +412,7 @@
} }
.side-nav__message-list-title { .side-nav__message-list-title {
font-weight: 520; font-weight: 620;
font-size: 0.14rem; font-size: 0.14rem;
line-height: 0.19rem; line-height: 0.19rem;
color: $text-dark; color: $text-dark;
@@ -458,84 +606,120 @@
// ==================== 邀请会员卡片 ==================== // ==================== 邀请会员卡片 ====================
.side-nav__referral-card { .side-nav__referral-card {
position: relative;
width: 100%; width: 100%;
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%); height: 2.21rem;
background: linear-gradient(90deg, #DFF5F6 0%, #FBFDF7 100%);
box-shadow: 0px 0px 0.08rem rgba(0, 0, 0, 0.06);
border-radius: 0.08rem; border-radius: 0.08rem;
padding: 0.16rem;
box-sizing: border-box; box-sizing: border-box;
margin-top: 0.12rem; margin-top: 0.12rem;
overflow: hidden;
}
// 顶部区域标题在左上礼物图片定位在右下角
.side-nav__referral-top {
position: relative;
padding: 0.2rem 0.16rem 0.4rem;
}
.side-nav__referral-top-text {
position: relative;
z-index: 1;
} }
.side-nav__referral-title { .side-nav__referral-title {
font-size: 0.16rem; font-size: 0.18rem;
font-weight: 630; font-weight: 630;
color: #FFFFFF; color: #1A1A1A;
line-height: 0.21rem; line-height: 0.24rem;
&--accent {
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
} }
.side-nav__referral-subtitle { .side-nav__referral-subtitle {
font-size: 0.10rem; font-size: 0.14rem;
font-weight: 330; font-weight: 330;
color: #EAFBFC; color: #6A7282;
line-height: 0.13rem; line-height: 0.19rem;
margin-top: 0.04rem; margin-top: 0.08rem;
} }
// 礼物图片absolute定位在顶部区域的右下角底部被毛玻璃面板遮住
.side-nav__referral-gift {
position: absolute;
right: 0.10rem;
bottom: 0.02rem;
width: 0.68rem;
height: 0.68rem;
mix-blend-mode: darken;
}
// 白色毛玻璃面板覆盖在礼物底部之上
.side-nav__referral-panel { .side-nav__referral-panel {
background: #FFFFFF; position: absolute;
box-shadow: 0px 0.02rem 0.06rem rgba(26, 26, 26, 0.05); left: 0;
border-radius: 0.06rem; bottom: 0;
padding: 0.10rem 0.08rem; width: 100%;
margin-top: 0.10rem; height: 1.38rem;
background: rgba(255, 255, 255, 0.4);
border: 1px solid #FFFFFF;
border-bottom: none;
backdrop-filter: blur(3px);
border-radius: 0.08rem 0.08rem 0 0;
box-sizing: border-box;
padding: 0.16rem;
} }
.side-nav__referral-row { .side-nav__referral-row {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; gap: 0.08rem;
} }
.side-nav__referral-label { .side-nav__referral-label {
font-size: 0.10rem; font-size: 0.14rem;
font-weight: 330; font-weight: 330;
color: #6B7280; color: #6A7282;
line-height: 0.13rem; line-height: 0.19rem;
} }
.side-nav__referral-value { .side-nav__referral-value {
font-size: 0.10rem; font-size: 0.14rem;
font-weight: 520; font-weight: 450;
color: #52CAD1; line-height: 0.19rem;
line-height: 0.13rem; background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
} }
.side-nav__referral-track { .side-nav__referral-track {
width: 100%; width: 100%;
height: 0.02rem; height: 0.06rem;
background: #D7F1F3; background: #EDF9FA;
border-radius: 9999px; border-radius: 0.06rem;
margin-top: 0.06rem; margin-top: 0.1rem;
overflow: hidden; overflow: hidden;
} }
.side-nav__referral-fill { .side-nav__referral-fill {
height: 100%; height: 100%;
background: #52CAD1; background: #52CAD1;
border-radius: 9999px; border-radius: 0.06rem;
}
.side-nav__referral-divider {
width: 100%;
border-top: 0.01rem solid #8C8C8C;
margin-top: 0.08rem;
} }
.side-nav__referral-tip { .side-nav__referral-tip {
font-size: 0.10rem; font-size: 0.12rem;
font-weight: 330; font-weight: 330;
color: #1A1A1A; color: #6A7282;
line-height: 0.13rem; line-height: 0.16rem;
margin-top: 0.08rem; margin-top: 0.06rem;
strong { strong {
font-weight: 630; font-weight: 630;
@@ -543,16 +727,22 @@
} }
.side-nav__referral-action { .side-nav__referral-action {
font-size: 0.11rem; display: flex;
font-weight: 520; align-items: center;
color: #52CAD1; justify-content: center;
line-height: 0.15rem; width: 100%;
text-align: center; height: 0.40rem;
margin-top: 0.08rem; background: linear-gradient(90deg, #36C1C9 16.99%, #AFE9D0 100%);
box-shadow: inset 0px 0px 0.06rem rgba(255, 255, 255, 0.5);
border-radius: 0.08rem;
font-size: 0.14rem;
font-weight: 600;
color: #FFFFFF;
margin-top: 0.12rem;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
opacity: 0.8; opacity: 0.9;
} }
} }
@@ -562,11 +752,18 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
width: 100%; width: 100%;
background: #F3F4F6; background: #fff;
border-radius: 0.08rem; border-radius: 0.08rem;
padding: 0.12rem 0.16rem; padding: 0.12rem 0.16rem;
box-sizing: border-box; box-sizing: border-box;
margin-top: 0.12rem; margin-top: 0.12rem;
cursor: pointer;
&:hover,
&:active,
&--active {
background: #F3F4F6;
}
} }
.side-nav__user-left { .side-nav__user-left {
@@ -589,7 +786,7 @@
padding: 0.02rem 0.04rem; padding: 0.02rem 0.04rem;
border-radius: 0.04rem; border-radius: 0.04rem;
font-size: 0.10rem; font-size: 0.10rem;
font-weight: 520; font-weight: 620;
line-height: 0.13rem; line-height: 0.13rem;
width: fit-content; width: fit-content;
@@ -653,18 +850,32 @@
bottom: calc(100% + 0.08rem); bottom: calc(100% + 0.08rem);
left: 0; left: 0;
width: 100%; width: 100%;
min-width: 1.65rem;
background: #FFFFFF; background: #FFFFFF;
border: 1px solid #F0F0F0; border: 1px solid #F0F0F0;
box-shadow: 0px 0.02rem 0.08rem rgba(0, 0, 0, 0.04); box-shadow: 0px 0.02rem 0.08rem rgba(0, 0, 0, 0.04);
border-radius: 0.08rem; border-radius: 0.08rem;
overflow: hidden; overflow: hidden;
z-index: 100; z-index: 1000;
} }
.side-nav__account-popup-header { .side-nav__account-popup-header {
padding: 0.16rem; padding: 0.16rem;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 38.18%); background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 38.18%);
border-radius: 0.08rem 0.08rem 0 0; border-radius: 0.08rem 0.08rem 0 0;
/* 正式会员背景 */
&--formal {
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 38.18%);
}
/* 试用会员背景 */
&--trial {
background: linear-gradient(180deg, #FEF5E7 0%, #FFFFFF 38.18%);
}
/* 免费用户背景 */
&--free {
background: linear-gradient(180deg, #F1F2F4 0%, #FFFFFF 38.18%);
}
} }
.side-nav__account-popup-header-row { .side-nav__account-popup-header-row {
@@ -0,0 +1,241 @@
@use '../variables' as *;
/* 步骤进度加载遮罩组件 */
.step-progress-overlay {
font-size: 0.14rem;
position: fixed;
inset: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
}
/* 半透明遮罩 */
.step-progress-overlay__mask {
position: absolute;
inset: 0;
background: $overlay-bg;
}
/* 内容面板 */
.step-progress-overlay__panel {
position: relative;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: flex-start;
padding: 0.24rem 0.32rem;
gap: 0.24rem;
width: 4.80rem;
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 20.63%);
border: 1px solid #F0F0F0;
box-shadow: 0 0 0.16rem rgba(0, 0, 0, 0.05);
border-radius: 0.12rem;
}
/* 顶部标题行 */
.step-progress-overlay__header {
display: flex;
justify-content: space-between;
align-items: flex-start;
width: 100%;
}
.step-progress-overlay__titles {
display: flex;
flex-direction: column;
gap: 0.04rem;
}
.step-progress-overlay__title {
font-weight: 620;
font-size: 0.18rem;
line-height: 0.24rem;
color: $text-dark;
margin: 0;
}
.step-progress-overlay__subtitle {
font-weight: 330;
font-size: 0.12rem;
line-height: 0.16rem;
color: $text-middle;
margin: 0;
}
/* 关闭按钮 */
.step-progress-overlay__close {
display: flex;
align-items: center;
justify-content: center;
width: 0.24rem;
height: 0.24rem;
border: none;
background: transparent;
cursor: pointer;
flex-shrink: 0;
border-radius: 0.04rem;
transition: background 0.2s;
&:hover {
background: #F0F0F0;
}
}
/* 进度面板(带边框的内框) */
.step-progress-overlay__progress-box {
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
padding: 0.16rem;
gap: 0.1rem;
width: 100%;
border: 1px solid #AEE6EA;
border-radius: 0.08rem;
}
/* 进度条头部 */
.step-progress-overlay__progress-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.08rem;
}
.step-progress-overlay__progress-label {
font-weight: 450;
font-size: 0.14rem;
line-height: 0.19rem;
color: #616367;
}
.step-progress-overlay__progress-percent {
font-weight: 450;
font-size: 0.14rem;
line-height: 0.19rem;
color: $accent;
}
/* 进度轨道 */
.step-progress-overlay__progress-rail {
width: 100%;
height: 0.06rem;
background: #EDF9FA;
border-radius: 0.03rem;
overflow: hidden;
margin-bottom: 0.20rem;
}
.step-progress-overlay__progress-fill {
height: 100%;
background: $accent;
border-radius: 0.03rem;
transition: width 0.3s ease;
}
/* 步骤列表 */
.step-progress-overlay__steps {
display: flex;
flex-direction: column;
}
.step-progress-overlay__step-item {
display: flex;
align-items: flex-start;
position: relative;
}
.step-progress-overlay__step-left {
display: flex;
flex-direction: column;
align-items: center;
margin-right: 0.08rem;
flex-shrink: 0;
}
/* 步骤圆点 — 通用 */
.step-progress-overlay__dot {
width: 0.16rem;
height: 0.16rem;
border-radius: 50%;
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
}
/* 完成状态:品牌色实心 + 对勾 */
.step-progress-overlay__dot--done {
background: $accent;
}
/* 进行中:浅色光晕 + 呼吸内圆 */
.step-progress-overlay__dot--active {
background: #EDF9FA;
}
.step-progress-overlay__dot-pulse {
width: 0.08rem;
height: 0.08rem;
background: $accent;
border-radius: 50%;
animation: step-overlay-breathe 1.2s ease-in-out infinite;
}
@keyframes step-overlay-breathe {
0%, 100% { transform: scale(0.7); opacity: 0.7; }
50% { transform: scale(1.2); opacity: 1; }
}
/* 等待状态:浅色圆 */
.step-progress-overlay__dot--pending {
background: #EDF9FA;
}
/* 连接线 */
.step-progress-overlay__connector {
width: 0.02rem;
height: 0.22rem;
background: #EDF9FA;
border-radius: 0.01rem;
}
/* 步骤文字 */
.step-progress-overlay__step-text {
flex: 1;
font-weight: 380;
font-size: 0.12rem;
line-height: 0.16rem;
color: #18181A;
}
.step-progress-overlay__step-text--pending {
font-weight: 330;
color: #616367;
}
/* 步骤状态文字 */
.step-progress-overlay__step-state {
font-size: 0.12rem;
line-height: 0.16rem;
flex-shrink: 0;
margin-left: 0.10rem;
text-align: right;
}
.step-progress-overlay__step-state--done {
font-weight: 450;
color: $accent;
}
.step-progress-overlay__step-state--active {
font-weight: 450;
color: $accent;
}
.step-progress-overlay__step-state--pending {
font-weight: 330;
color: #939599;
}
+3
View File
@@ -42,6 +42,9 @@
@use './components/resume-upload-dialog.scss'; @use './components/resume-upload-dialog.scss';
@use './components/agreement-preview-dialog.scss'; @use './components/agreement-preview-dialog.scss';
@use './components/member-access-dialog.scss'; @use './components/member-access-dialog.scss';
@use './components/step-progress-overlay.scss';
@use './components/mentor-aside-panel.scss';
@use './components/agent-browser-install-guide.scss';
// 全局样式优先级最高 // 全局样式优先级最高
@use './auto.scss'; @use './auto.scss';
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -7,7 +7,7 @@
// 主内容区域 // 主内容区域
&__content { &__content {
margin-left: 2rem; margin-left: 2.2rem;
flex: 1; flex: 1;
padding: 0.4rem 0.6rem; padding: 0.4rem 0.6rem;
} }
+1 -1
View File
@@ -344,7 +344,7 @@
&__quote-avatar { &__quote-avatar {
width: 0.38rem; width: 0.38rem;
height: 0.38rem; height: 0.38rem;
background: #D9E3EA; //background: #D9E3EA;
border-radius: 50%; border-radius: 50%;
flex-shrink: 0; flex-shrink: 0;
} }
+56 -42
View File
@@ -142,18 +142,21 @@
// 主标题 // 主标题
&__title { &__title {
font-size: 0.54rem; font-size: 0.48rem;
font-weight: 600; font-weight: 600;
line-height: 0.71rem; line-height: 0.61rem;
letter-spacing: -0.03rem; letter-spacing: 0.03rem;
color: #111; color: #111;
margin: 0; margin: 0;
>span{
width: 1.51rem;
}
} }
// 副标题描述 // 副标题描述
&__desc { &__desc {
font-size: 0.2rem; font-size: 0.16rem;
line-height: 0.325rem; line-height: 0.2rem;
color: #9ca3af; color: #9ca3af;
margin-top: 0.1rem; margin-top: 0.1rem;
} }
@@ -162,12 +165,11 @@
&__cta { &__cta {
margin-top: 0.69rem; margin-top: 0.69rem;
width: 1.84rem; width: 1.84rem;
height: 0.56rem; height: 0.52rem;
//line-height: 0.24rem;
border-radius: 0.16rem; border-radius: 0.16rem;
background: linear-gradient(90deg, rgba(82, 202, 209, 1) 0%, rgba(83, 217, 200, 1) 100%); background: $accent;
color: #fff; color: #fff;
font-size: 0.18rem; font-size: 0.15rem;
font-weight: 600; font-weight: 600;
border: none; border: none;
cursor: pointer; cursor: pointer;
@@ -178,8 +180,9 @@
// 右侧卡片区 // 右侧卡片区
&__right { &__right {
flex-shrink: 0; flex-shrink: 0;
box-shadow: 0px 0px 15.45px rgba(82, 202, 209, 0.1); //box-shadow: 0px 0px 15.45px rgba(82, 202, 209, 0.1);
border-radius: 0.16rem; border-radius: 0.16rem;
background: #FCFEFE;
} }
&__right-top{ &__right-top{
@@ -365,25 +368,25 @@
.stat-card { .stat-card {
background: #fff; background: #fff;
border-radius: 0.16rem; border-radius: 0.16rem;
width: 2.03rem; width: 1.9rem;
height: 1.87rem; height: 1.9rem;
text-align: center; text-align: center;
padding-top:0.38rem; padding-top:0.38rem;
box-shadow: 0 0.06rem 0.2rem rgba(0, 0, 0, 0.05); box-shadow: 0 0.06rem 0.2rem rgba(0, 0, 0, 0.05);
// 大数字 // 大数字
&__num { &__num {
font-size: 0.48rem; font-size: 0.38rem;
font-weight: 900; font-weight: 900;
color: #52CAD1; color: #2A8186;
line-height: 0.63rem; line-height: 0.63rem;
} }
// 描述文字 // 描述文字
&__label { &__label {
font-size: 0.16rem; font-size: 0.13rem;
line-height: 0.22rem; line-height: 0.22rem;
color: #9ca3af; color: #8D9399;
margin-top: 0.12rem; margin-top: 0.12rem;
letter-spacing: 0.0035rem; letter-spacing: 0.0035rem;
} }
@@ -391,7 +394,7 @@
// ==================== 岗位展示区 ==================== // ==================== 岗位展示区 ====================
.home-jobs-showcase { .home-jobs-showcase {
padding: 1rem 0; padding: 0.85rem 0 0.7rem 0;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
background: #fff; background: #fff;
@@ -441,20 +444,20 @@
// 副标题 // 副标题
&__sub { &__sub {
font-size: 0.2rem; font-size: 0.15rem;
line-height: 0.28rem; line-height: 0.28rem;
color: #999; color: #999;
margin-top: 0.2rem; margin-top: 0.19rem;
} }
// 玻璃态展示盒子 // 玻璃态展示盒子
&__box { &__box {
margin-top: 0.6rem; margin-top: 0.87rem;
background: rgba(255, 255, 255, 0.9); background: rgba(255, 255, 255, 0.9);
border: 1px solid rgba(255, 255, 255, 0.9); border: 1px solid rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 40px rgba(82, 202, 209, 0.12); box-shadow: 0 10px 40px rgba(82, 202, 209, 0.12);
backdrop-filter: blur(100px); backdrop-filter: blur(100px);
border-radius: 0.4rem; border-radius: 0.1rem;
padding: 0.64rem 0; padding: 0.64rem 0;
} }
@@ -472,7 +475,7 @@
.ticker-track { .ticker-track {
display: flex; display: flex;
gap: 0.16rem; gap: 0.30rem;
width: max-content; width: max-content;
animation: ticker-scroll 20s linear infinite; animation: ticker-scroll 20s linear infinite;
} }
@@ -483,16 +486,16 @@
.showcase-stat { .showcase-stat {
text-align: center; text-align: center;
&__num { &__num {
font-size: 0.48rem; font-size: 0.40rem;
line-height: 0.6rem; line-height: 0.6rem;
font-weight: 900; font-weight: 900;
color: #1d1d1d; color: #2A8186;
.accent { color: $accent; } .accent { color: #2A8186; }
} }
&__label { &__label {
font-size: 0.18rem; font-size: 0.14rem;
line-height: 0.28rem; line-height: 0.28rem;
color: #64748b; color: #8D9399;
margin-top: 0.08rem; margin-top: 0.08rem;
} }
} }
@@ -500,7 +503,7 @@
// 单个岗位滚动卡片 // 单个岗位滚动卡片
.job-ticker { .job-ticker {
flex-shrink: 0; flex-shrink: 0;
background: rgba(30, 30, 46, 0.9); background: #12383A;
backdrop-filter: blur(36px); backdrop-filter: blur(36px);
border-radius: 0.12rem; border-radius: 0.12rem;
padding: 0.2rem 0.24rem; padding: 0.2rem 0.24rem;
@@ -545,16 +548,17 @@
min-width: 0; min-width: 0;
h2 { h2 {
font-size: 0.48rem; font-size: 0.34rem;
font-weight: 600; font-weight: 600;
line-height: 0.63rem; line-height: 0.43rem;
letter-spacing: 0.02rem;
color: #111; color: #111;
margin: 0; margin: 0;
} }
p { p {
font-size: 0.2rem; font-size: 0.14rem;
line-height: 0.325rem; line-height: 0.2rem;
color: #999; color: #999;
margin-top: 0.16rem; margin-top: 0.16rem;
} }
@@ -566,12 +570,13 @@
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
gap: 0.12rem; gap: 0.12rem;
padding: 0.15rem 0.4rem; padding: 0 0.22rem;
border-radius: 0.16rem; border-radius: 0.12rem;
background: #111111; background: $accent;
color: #fff; color: #fff;
font-size: 0.16rem; font-size: 0.12rem;
line-height: 0.28rem; height: 0.42rem;
line-height: 0.42rem;
font-weight: 600; font-weight: 600;
border: none; border: none;
cursor: pointer; cursor: pointer;
@@ -582,7 +587,8 @@
} }
svg { svg {
flex-shrink: 0; flex-shrink: 0;
color: $btn-dark; color: #fff;
font-size: 0.12rem;
} }
} }
@@ -1069,7 +1075,7 @@
margin-bottom: 0.8rem; margin-bottom: 0.8rem;
h2 { h2 {
font-size: 0.48rem; font-size: 0.38rem;
line-height: 0.48rem; line-height: 0.48rem;
font-weight: 600; font-weight: 600;
letter-spacing: -0.012rem; letter-spacing: -0.012rem;
@@ -1077,12 +1083,12 @@
} }
p { p {
font-size: 0.16rem; font-size: 0.15rem;
line-height: 0.24rem; line-height: 0.24rem;
color: #9ca3af; color: #9ca3af;
letter-spacing: 0.0rem; letter-spacing: 0.0rem;
text-transform: uppercase; text-transform: uppercase;
margin-top: 0.24rem; margin-top: 0.14rem;
} }
} }
@@ -1612,10 +1618,18 @@
margin: 0.6rem auto 0; margin: 0.6rem auto 0;
text-align: center; text-align: center;
padding-top: 0.4rem; padding-top: 0.4rem;
display: flex;
justify-content: center;
gap: 0.2rem;
p { p {
font-size: 0.12rem; font-size: 0.12rem;
line-height: 0.16rem; color: #9ca3af;
}
a{
font-size: 0.12rem;
text-decoration: none;
color: #9ca3af; color: #9ca3af;
} }
} }
+5 -4
View File
@@ -3,7 +3,7 @@
// ==================== 岗位详情页 ==================== // ==================== 岗位详情页 ====================
.job-detail { .job-detail {
&__content { &__content {
margin-left: 2rem; margin-left: var(--nav-width, 2.2rem);
margin-right: var(--chat-width, 3.6rem); margin-right: var(--chat-width, 3.6rem);
flex: 1; flex: 1;
height: var(--app-height, 100vh); height: var(--app-height, 100vh);
@@ -167,14 +167,15 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 0.08rem 0.16rem; width: 0.88rem;
height: 0.37rem;
line-height: 0.37rem;
background: $accent; background: $accent;
border: 1px solid $accent; border: 1px solid $accent;
border-radius: 0.08rem; border-radius: 0.08rem;
color: $bg-white; color: $bg-white;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 600; font-weight: 600;
line-height: 0.19rem;
cursor: pointer; cursor: pointer;
transition: background 0.2s; transition: background 0.2s;
@@ -227,7 +228,7 @@
&__match-label { &__match-label {
font-size: 0.13rem; font-size: 0.13rem;
font-weight: 520; font-weight: 620;
line-height: 0.17rem; line-height: 0.17rem;
color: #9FD051; color: #9FD051;
} }
File diff suppressed because it is too large Load Diff
+44 -41
View File
@@ -177,7 +177,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.12rem; gap: 0.12rem;
width: 3.41rem; width: 4rem;
img{ img{
width: 1.6rem; width: 1.6rem;
@@ -230,12 +230,12 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0.24rem; gap: 0.24rem;
width: 3.41rem; width: 4rem;
} }
/* 标题 */ /* 标题 */
.login-view__heading { .login-view__heading {
width: 3.41rem; width: 4rem;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 0.05rem; gap: 0.05rem;
@@ -243,15 +243,16 @@
.login-view__title { .login-view__title {
font-weight: 700; font-weight: 700;
font-size: 0.18rem; font-size: 0.24rem;
line-height: 0.22rem; line-height: 0.22rem;
color: #18181A; color: #18181A;
} }
.login-view__subtitle { .login-view__subtitle {
font-weight: 400; font-weight: 400;
font-size: 0.10rem; font-size: 0.14rem;
line-height: 0.12rem; margin-top: 0.08rem;
margin-bottom: 0.08rem;
color: #616367; color: #616367;
>span:nth-child(2){ >span:nth-child(2){
@@ -264,12 +265,12 @@
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
align-items: center; align-items: center;
width: 3.41rem; width: 4rem;
height: 0.40rem; height: 0.56rem;
background: #FFFFFF; background: #FFFFFF;
border: 1px solid #C8C9CD; border: 1px solid #C8C9CD;
box-shadow: 0 0.08rem 0.20rem rgba(15, 83, 87, 0.05); box-shadow: 0 0.08rem 0.20rem rgba(15, 83, 87, 0.05);
border-radius: 0.08rem; border-radius: 0.12rem;
} }
/* 手机图标 */ /* 手机图标 */
@@ -292,7 +293,7 @@
.login-view__country-label { .login-view__country-label {
margin-left: 0.06rem; margin-left: 0.06rem;
font-weight: 500; font-weight: 500;
font-size: 0.12rem; font-size: 0.14rem;
line-height: 0.15rem; line-height: 0.15rem;
color: #202124; color: #202124;
white-space: nowrap; white-space: nowrap;
@@ -330,7 +331,7 @@
border: none; border: none;
background: transparent; background: transparent;
font-weight: 400; font-weight: 400;
font-size: 0.12rem; font-size: 0.14rem;
line-height: 0.15rem; line-height: 0.15rem;
color: #202124; color: #202124;
outline: none; outline: none;
@@ -342,14 +343,14 @@
/* ==================== 发送验证码按钮(步骤一) ==================== */ /* ==================== 发送验证码按钮(步骤一) ==================== */
.login-view__send-btn { .login-view__send-btn {
width: 3.41rem; width: 4rem;
height: 0.40rem; height: 0.43rem;
background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%); background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%);
box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15); box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15);
border-radius: 0.08rem; border-radius: 0.12rem;
border: none; border: none;
font-weight: 600; font-weight: 600;
font-size: 0.12rem; font-size: 0.14rem;
line-height: 0.15rem; line-height: 0.15rem;
color: #FFFFFF; color: #FFFFFF;
cursor: pointer; cursor: pointer;
@@ -391,8 +392,8 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
width: 0.42rem; width: 0.56rem;
height: 0.46rem; height: 0.56rem;
background: #FAFBFC; background: #FAFBFC;
border: 1px solid #E2E8F0; border: 1px solid #E2E8F0;
border-radius: 0.12rem; border-radius: 0.12rem;
@@ -401,12 +402,12 @@
.login-view__otp-box--active { .login-view__otp-box--active {
background: #F3FFFD; background: #F3FFFD;
border: 2px solid #12C7BE; border: 1px solid $accent;
} }
.login-view__otp-box--filled { .login-view__otp-box--filled {
background: #F3FFFD; background: #F3FFFD;
border: 2px solid #12C7BE; border: 2px solid $accent;
} }
.login-view__otp-digit { .login-view__otp-digit {
@@ -421,7 +422,7 @@
display: inline-block; display: inline-block;
width: 2px; width: 2px;
height: 0.28rem; height: 0.28rem;
background: #12C7BE; background: $accent;
border-radius: 1px; border-radius: 1px;
animation: login-otp-blink 1s ease-in-out infinite; animation: login-otp-blink 1s ease-in-out infinite;
} }
@@ -444,14 +445,14 @@
} }
.login-view__sms-status--error { .login-view__sms-status--error {
color: #E85635; color: #EF4444;
} }
/* ==================== 状态按钮(步骤二) ==================== */ /* ==================== 状态按钮(步骤二) ==================== */
.login-view__status-btn { .login-view__status-btn {
width: 100%; width: 100%;
height: 0.4rem; height: 0.43rem;
background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%); background: linear-gradient(90deg, $btn-dark 0%, $btn-dark-hover 100%);
border-radius: 0.12rem; border-radius: 0.12rem;
border: none; border: none;
font-weight: 600; font-weight: 600;
@@ -494,7 +495,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.06rem; gap: 0.06rem;
width: 3.41rem; width: 4rem;
} }
.login-view__checkbox { .login-view__checkbox {
@@ -547,7 +548,7 @@
/* ==================== 简历上传阶段 — 右侧面板 ==================== */ /* ==================== 简历上传阶段 — 右侧面板 ==================== */
.login-view__form-wrap--resume { .login-view__form-wrap--resume {
width: 3.41rem; width: 4rem;
} }
/* 上传区域 */ /* 上传区域 */
@@ -565,7 +566,7 @@
transition: border-color 0.2s; transition: border-color 0.2s;
&:hover { &:hover {
border-color: #12C7BE; border-color: $accent;
} }
} }
@@ -592,15 +593,16 @@
.login-view__upload-btn { .login-view__upload-btn {
height: 0.4rem; height: 0.4rem;
line-height: 0.4rem; line-height: 0.43rem;
background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%); background: linear-gradient(90deg, $btn-dark 0%, $btn-dark-hover 100%);
border: none; border: none;
border-radius: 0.08rem; border-radius: 0.08rem;
font-size: 0.16rem; font-size: 0.14rem;
font-weight: 600; font-weight: 600;
color: #FFFFFF; color: #FFFFFF;
cursor: pointer; cursor: pointer;
transition: opacity 0.2s; transition: opacity 0.2s;
margin-bottom: -0.1rem;
&:hover { &:hover {
opacity: 0.9; opacity: 0.9;
@@ -610,7 +612,7 @@
/* 解析中状态 — 新版步骤面板 */ /* 解析中状态 — 新版步骤面板 */
.login-view__parse-panel { .login-view__parse-panel {
box-sizing: border-box; box-sizing: border-box;
width: 3.41rem; width: 4rem;
padding: 0.24rem; padding: 0.24rem;
background: #F6FFFF; background: #F6FFFF;
border: 1px solid #D6F1EF; border: 1px solid #D6F1EF;
@@ -767,13 +769,13 @@
/* 解析中按钮(禁用样式) */ /* 解析中按钮(禁用样式) */
.login-view__parse-btn { .login-view__parse-btn {
width: 3.41rem; width: 4rem;
height: 0.40rem; height: 0.43rem;
background: #A6EAE7; background: #A6EAE7;
border-radius: 0.08rem; border-radius: 0.08rem;
border: none; border: none;
font-weight: 600; font-weight: 600;
font-size: 0.12rem; font-size: 0.14rem;
line-height: 0.15rem; line-height: 0.15rem;
color: #FFFFFF; color: #FFFFFF;
cursor: not-allowed; cursor: not-allowed;
@@ -782,7 +784,7 @@
/* ==================== 状态4:上传成功面板 ==================== */ /* ==================== 状态4:上传成功面板 ==================== */
.login-view__success-panel { .login-view__success-panel {
box-sizing: border-box; box-sizing: border-box;
width: 3.41rem; width: 4rem;
padding: 0.28rem 0.24rem; padding: 0.28rem 0.24rem;
background: #F6FFFB; background: #F6FFFB;
border: 1px solid #BCEED7; border: 1px solid #BCEED7;
@@ -863,13 +865,13 @@
/* 进入后台按钮 */ /* 进入后台按钮 */
.login-view__success-btn { .login-view__success-btn {
width: 3.41rem; width: 4rem;
height: 0.40rem; height: 0.43rem;
background: #4FC2C9; background: #4FC2C9;
border-radius: 0.08rem; border-radius: 0.08rem;
border: none; border: none;
font-weight: 600; font-weight: 600;
font-size: 0.12rem; font-size: 0.14rem;
line-height: 0.15rem; line-height: 0.15rem;
color: #FFFFFF; color: #FFFFFF;
cursor: pointer; cursor: pointer;
@@ -883,7 +885,7 @@
/* ==================== 状态3:上传失败面板 ==================== */ /* ==================== 状态3:上传失败面板 ==================== */
.login-view__failed-panel { .login-view__failed-panel {
box-sizing: border-box; box-sizing: border-box;
width: 3.41rem; width: 4rem;
padding: 0.28rem 0.24rem; padding: 0.28rem 0.24rem;
background: #FFFBFA; background: #FFFBFA;
border: 1px solid #FADBD5; border: 1px solid #FADBD5;
@@ -964,14 +966,14 @@
/* 重新上传按钮 */ /* 重新上传按钮 */
.login-view__failed-btn { .login-view__failed-btn {
width: 3.41rem; width: 4rem;
height: 0.40rem; height: 0.43rem;
background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%); background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%);
box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15); box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15);
border-radius: 0.08rem; border-radius: 0.08rem;
border: none; border: none;
font-weight: 600; font-weight: 600;
font-size: 0.12rem; font-size: 0.14rem;
line-height: 0.15rem; line-height: 0.15rem;
color: #FFFFFF; color: #FFFFFF;
cursor: pointer; cursor: pointer;
@@ -990,4 +992,5 @@
color: #999; color: #999;
padding-top: 0.3rem; padding-top: 0.3rem;
border-top: 1px solid #E7F2F3; border-top: 1px solid #E7F2F3;
text-decoration: none;
} }
+56 -5
View File
@@ -14,10 +14,27 @@
flex: 1; flex: 1;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
margin-left: 2rem; margin-left: var(--nav-width, 2.2rem);
padding: 0.24rem 0.4rem 0; display: flex;
}
// 左侧主内容区
&__main {
flex: 1;
height: 100%;
overflow: hidden;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-width: 0;
}
// 右侧广告区域
&__aside {
width: 3.6rem;
flex-shrink: 0;
height: 100%;
background: #fff;
overflow-y: auto;
} }
// 页面标题 // 页面标题
@@ -25,8 +42,9 @@
font-size: 0.18rem; font-size: 0.18rem;
font-weight: 600; font-weight: 600;
color: $text-dark; color: $text-dark;
margin-bottom: 0.12rem;
flex-shrink: 0; flex-shrink: 0;
padding: 0.16rem 0.24rem;
background: #fff;
} }
// 返回按钮 // 返回按钮
@@ -37,7 +55,7 @@
font-size: 0.13rem; font-size: 0.13rem;
color: $text-middle; color: $text-middle;
cursor: pointer; cursor: pointer;
margin-bottom: 0.16rem; margin: 0.16rem 0.24rem;
flex-shrink: 0; flex-shrink: 0;
&:hover { &:hover {
@@ -55,6 +73,7 @@
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
padding-bottom: 0.24rem; padding-bottom: 0.24rem;
margin:0 0.24rem 0.16rem 0.24rem;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 4px; width: 4px;
@@ -77,7 +96,7 @@
&__info-card { &__info-card {
display: flex; display: flex;
align-items: center; align-items: stretch;
justify-content: space-between; justify-content: space-between;
gap: 0.2rem; gap: 0.2rem;
} }
@@ -153,6 +172,38 @@
} }
} }
// 右侧咨询区域容器
&__consult-wrap {
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: space-between;
flex-shrink: 0;
}
// 咨询价格
&__price {
display: flex;
align-items: baseline;
gap: 0.04rem;
}
&__price-label {
font-size: 0.13rem;
color: $text-middle;
}
&__price-value {
font-size: 0.22rem;
font-weight: 700;
color: #f5a623;
}
&__price-suffix {
font-size: 0.13rem;
color: $text-middle;
}
// 立即咨询按钮 // 立即咨询按钮
&__consult-btn { &__consult-btn {
width: 0.92rem; width: 0.92rem;
+69 -7
View File
@@ -14,7 +14,7 @@
flex: 1; flex: 1;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
margin-left: 2rem; margin-left: var(--nav-width, 2.2rem);
} }
// 左侧主内容区 // 左侧主内容区
@@ -63,17 +63,55 @@
margin-top: 0.02rem; margin-top: 0.02rem;
} }
// 推荐搜索标签
&__quick-tags {
display: flex;
align-items: center;
gap: 0.08rem;
margin-right: 0.16rem;
flex-wrap: wrap;
}
&__quick-label {
font-size: 0.13rem;
color: $text-middle;
white-space: nowrap;
}
&__quick-tag {
font-size: 0.12rem;
color: $accent;
border: 0.012rem solid $accent;
border-radius: 0.04rem;
padding: 0.03rem 0.08rem;
cursor: pointer;
white-space: nowrap;
background: #fff;
transition: background 0.15s;
&:hover {
background: #EDF9FA;
}
// 小屏视口宽度 < 1440px只显示第一个标签
@media (max-width: 1439px) {
& ~ & {
display: none;
}
}
}
// 搜索框 // 搜索框
&__search-wrap { &__search-wrap {
position: relative; position: relative;
display: flex; display: flex;
align-items: center; align-items: center;
width: 2.8rem; width: 3rem;
background: $bg-white; background: $bg-white;
border: 1px solid $border-color; border: 1px solid $border-color;
border-radius: 0.2rem; border-radius: 0.08rem;
padding: 0 0.12rem; padding: 0 0.12rem;
height: 0.36rem; height: 0.32rem;
&:focus-within { &:focus-within {
border-color: $accent; border-color: $accent;
@@ -249,12 +287,13 @@
font-weight: 600; font-weight: 600;
color: $text-dark; color: $text-dark;
margin-bottom: 0.04rem; margin-bottom: 0.04rem;
white-space: nowrap;
} }
&__card-meta { &__card-meta {
font-size: 0.12rem; font-size: 0.12rem;
color: $text-middle; color: $text-middle;
margin-bottom: 0.08rem; margin-bottom: 0.06rem;
} }
&__card-sep { &__card-sep {
@@ -276,6 +315,30 @@
padding: 0.02rem 0.08rem; padding: 0.02rem 0.08rem;
} }
// 咨询价格
&__card-price {
display: flex;
align-items: baseline;
gap: 0.04rem;
margin-top: 0.06rem;
}
&__card-price-label {
font-size: 0.12rem;
color: $text-middle;
}
&__card-price-value {
font-size: 0.18rem;
font-weight: 700;
color: #f5a623;
}
&__card-price-suffix {
font-size: 0.12rem;
color: $text-middle;
}
// 卡片右侧 flex:1 让话题区自适应剩余空间窄屏不会撑出滚动条 // 卡片右侧 flex:1 让话题区自适应剩余空间窄屏不会撑出滚动条
&__card-right { &__card-right {
flex: 1 1 0; flex: 1 1 0;
@@ -369,11 +432,10 @@
// 右侧广告区域固定 4rem // 右侧广告区域固定 4rem
&__aside { &__aside {
width: 3rem; width: 3.6rem;
flex-shrink: 0; flex-shrink: 0;
height: 100%; height: 100%;
background: $bg-white; background: $bg-white;
border-left: 1px solid $border-color;
overflow-y: auto; overflow-y: auto;
} }
} }
+5 -3
View File
@@ -3,9 +3,9 @@
// ==================== 个人资料页 ==================== // ==================== 个人资料页 ====================
.profile-page { .profile-page {
&__content { &__content {
margin-left: 2rem; margin-left: var(--nav-width, 2.2rem);
flex: 1; flex: 1;
padding: 0.12rem 0.36rem; padding-bottom: 0.12rem;
height: var(--app-height, 100vh); height: var(--app-height, 100vh);
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
@@ -17,7 +17,8 @@
// 页面标题区 // 页面标题区
&__header { &__header {
margin-bottom: 0.16rem; padding: 0.16rem 0.24rem;
background: #fff;
} }
&__title { &__title {
@@ -51,6 +52,7 @@
flex: 1; flex: 1;
min-height: 0; min-height: 0;
overflow: hidden; overflow: hidden;
margin: 0.16rem 0.24rem;
} }
// 右侧边栏 // 右侧边栏
+85 -41
View File
@@ -3,12 +3,12 @@
// ==================== 简历详情页 ==================== // ==================== 简历详情页 ====================
.resume-detail { .resume-detail {
&__content { &__content {
margin-left: 2rem; margin-left: var(--nav-width, 2.2rem);
flex: 1; flex: 1;
padding-bottom: 0.24rem; padding-bottom: 0.24rem;
height: var(--app-height, 100vh); height: var(--app-height, 100vh);
box-sizing: border-box; box-sizing: border-box;
overflow-y: auto; overflow: hidden;
background: $bg-main; background: $bg-main;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -17,10 +17,11 @@
&__page-title { &__page-title {
margin: 0 0 0.16rem 0; padding: 0.19rem 0.24rem;
padding: 0 0.24rem; margin-bottom: 0.16rem;
background: #fff;
>h2{ >h2{
font-size: 0.24rem; font-size: 0.18rem;
font-weight: 700; font-weight: 700;
color: $text-dark; color: $text-dark;
} }
@@ -115,8 +116,7 @@
justify-content: space-between; justify-content: space-between;
background: $bg-white; background: $bg-white;
border-radius: 0.12rem; border-radius: 0.12rem;
padding: 0.18rem 0.24rem; padding: 0.28rem 0.32rem;
padding-top: 0.4rem;
margin-bottom: 0.16rem; margin-bottom: 0.16rem;
/* B/C/D 评级渐变背景 */ /* B/C/D 评级渐变背景 */
@@ -133,17 +133,12 @@
&__score-left { &__score-left {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.2rem; gap: 0.16rem;
} }
/* 星星+底座容器 */ /* 星星+底座容器 */
&__star-wrapper { &__star-wrapper {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
width: 0.7rem;
flex-shrink: 0;
} }
/* SVG 五角星 */ /* SVG 五角星 */
@@ -156,44 +151,40 @@
/* 底座长方形 */ /* 底座长方形 */
&__star-base { &__star-base {
position: relative;
z-index: 2;
margin-top: -0.08rem; margin-top: -0.08rem;
width: 0.52rem;
height: 0.22rem;
border: 1.5px solid #858585;
border-radius: 0.03rem;
background: #fff;
display: flex;
align-items: center;
justify-content: center; justify-content: center;
font-size: 0.14rem;
> span { > span {
font-size: 0.12rem; font-size: 0.14rem;
font-weight: 600; font-weight: 600;
} }
} }
/* 右侧操作按钮区 */ /* 右侧操作按钮区 */
&__score-actions { &__score-actions {
display: flex;
align-items: center;
gap: 0.16rem;
} }
/* 暂无等级提示文字 */ /* 暂无等级提示文字 */
&__score-hint { &__score-hint {
font-size: 0.13rem; font-size: 0.14rem;
color: $text-light; color: $text-middle;
font-weight: 600;
} }
&__score-links{
height: 0.14rem;
}
&__score-link { &__score-link {
font-size: 0.13rem; font-size: 0.12rem;
color: $text-light; color: $text-light;
background: none; background: none;
border: none; border: none;
cursor: pointer; cursor: pointer;
transition: color 0.2s; transition: color 0.2s;
margin-right: 0.16rem;
&:hover { &:hover {
color: $accent; color: $accent;
@@ -217,7 +208,7 @@
font-size: 0.30rem; font-size: 0.30rem;
font-weight: 700; font-weight: 700;
color: $text-dark; color: $text-dark;
line-height: 1.2; padding-bottom: 0.1rem;
} }
&__score-label { &__score-label {
@@ -231,8 +222,8 @@
margin-left: 0.16rem; margin-left: 0.16rem;
color: $bg-white; color: $bg-white;
border: none; border: none;
border-radius: 0.18rem; border-radius: 0.08rem;
width: 0.93rem; width: 1.03rem;
height: 0.36rem; height: 0.36rem;
line-height: 0.37rem; line-height: 0.37rem;
font-size: 0.13rem; font-size: 0.13rem;
@@ -240,7 +231,8 @@
cursor: pointer; cursor: pointer;
box-sizing: border-box; box-sizing: border-box;
//transition: background 0.2s; //transition: background 0.2s;
white-space: nowrap;
&:hover { &:hover {
background: $btn-dark-hover; background: $btn-dark-hover;
@@ -255,15 +247,67 @@
border-radius: 0.16rem; border-radius: 0.16rem;
background: #fff; background: #fff;
margin: 0 0.24rem; margin: 0 0.24rem;
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
overflow: hidden;
}
// ---- 固定顶部区域评分+Tab不滚动 ----
&__fixed-top {
flex-shrink: 0;
}
// ---- Tab 导航栏 ----
&__tabs {
display: flex;
align-items: center;
padding-bottom: 0.14rem;
flex-shrink: 0;
}
&__tab-item {
font-size: 0.14rem;
color: $text-middle;
cursor: pointer;
padding: 0.12rem 0.2rem;
border-bottom: 2px solid transparent;
transition: all 0.2s;
white-space: nowrap;
&:hover {
color: $text-dark;
}
&--active {
color: $accent;
font-weight: 600;
border-bottom-color: $accent;
}
}
// ---- 可滚动内容区域 ----
&__scroll-body {
flex: 1;
overflow-y: auto;
padding-bottom: 0.3rem;
// 隐藏滚动条
&::-webkit-scrollbar {
display: none;
}
-ms-overflow-style: none;
scrollbar-width: none;
} }
&__card { &__card {
background: $bg-white; background: $bg-white;
border-radius: 0.1rem; border-radius: 0.1rem;
margin: 0.4rem 0.18rem; margin: 0.24rem 0.18rem;
&:hover .resume-detail__section-header { &:hover .resume-detail__section-header {
background: #F7F7F7; background: #F0FAFA;
.resume-detail__edit-btn-inline { .resume-detail__edit-btn-inline {
opacity: 1; opacity: 1;
pointer-events: auto; pointer-events: auto;
@@ -275,7 +319,7 @@
&__card-hover { &__card-hover {
padding: 0.1rem 0.14rem; padding: 0.1rem 0.14rem;
&:hover { &:hover {
background: #F7F7F7; background: #F0FAFA;
} }
@@ -290,7 +334,7 @@
} }
&__user-name { &__user-name {
font-size: 0.2rem; font-size: 0.28rem;
font-weight: 700; font-weight: 700;
color: $text-dark; color: $text-dark;
margin: 0 0 0.04rem 0; margin: 0 0 0.04rem 0;
@@ -400,7 +444,7 @@
bottom: 0.02rem; bottom: 0.02rem;
width: 100%; width: 100%;
height: 0.06rem; height: 0.06rem;
background: #12C7BE; background: $accent;
border-radius: 0.02rem; border-radius: 0.02rem;
z-index: -1; z-index: -1;
} }
@@ -513,7 +557,7 @@
padding: 0.1rem 0.14rem; padding: 0.1rem 0.14rem;
border-radius: 0.09rem; border-radius: 0.09rem;
&:hover { &:hover {
background: #F7F7F7; background: #F0FAFA;
} }
@@ -682,7 +726,7 @@
background: $bg-white; background: $bg-white;
border: 1px solid $accent; border: 1px solid $accent;
border-radius: 0.04rem; border-radius: 0.04rem;
padding: 0.05rem 0.14rem; padding: 0.05rem 0.08rem;
transition: all 0.2s; transition: all 0.2s;
&:hover { &:hover {
+68 -13
View File
@@ -3,9 +3,8 @@
// ==================== 简历列表页 ==================== // ==================== 简历列表页 ====================
.resume-page { .resume-page {
&__content { &__content {
margin-left: 2rem; margin-left: var(--nav-width, 2.2rem);
flex: 1; flex: 1;
padding: 0.12rem 0.36rem;
height: var(--app-height, 100vh); height: var(--app-height, 100vh);
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
@@ -19,11 +18,12 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
margin-bottom: 0.2rem; background: #fff;
padding: 0.19rem 0.24rem;
} }
&__title { &__title {
font-size: 0.24rem; font-size: 0.18rem;
font-weight: 700; font-weight: 700;
color: $text-dark; color: $text-dark;
margin: 0; margin: 0;
@@ -36,8 +36,8 @@
background: $btn-dark; background: $btn-dark;
color: $bg-white; color: $bg-white;
border: none; border: none;
border-radius: 0.2rem; border-radius: 0.08rem;
padding: 0.08rem 0.2rem; padding: 0.08rem 0.14rem;
font-size: 0.13rem; font-size: 0.13rem;
font-weight: 500; font-weight: 500;
cursor: pointer; cursor: pointer;
@@ -48,20 +48,50 @@
} }
} }
// 从个人资料创建按钮描边样式
&__create-btn {
display: flex;
align-items: center;
gap: 0.06rem;
background: $bg-white;
color: $accent;
border: 1px solid $accent;
border-radius: 0.08rem;
padding: 0.08rem 0.14rem;
font-size: 0.13rem;
font-weight: 500;
cursor: pointer;
transition: all 0.2s;
&:hover {
background: rgba($accent, 0.06);
}
&:disabled {
opacity: 0.6;
cursor: not-allowed;
}
}
&__upload-icon { &__upload-icon {
width: 0.14rem; width: 0.14rem;
height: 0.14rem; height: 0.14rem;
} }
// 表格容器 // 表格容器超出时可滚动
&__table-wrap { &__table-wrap {
background: $bg-white; background: $bg-white;
border-radius: 0.12rem; border-radius: 0.12rem;
margin: 0.18rem 0.17rem;
overflow-y: auto;
flex: 0 1 auto;
min-height: 0;
} }
&__table { &__table {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;
table-layout: fixed;
} }
&__th { &__th {
@@ -72,9 +102,14 @@
color: $text-dark; color: $text-dark;
border-bottom: 1px solid $border-color; border-bottom: 1px solid $border-color;
white-space: nowrap; white-space: nowrap;
width: 15%;
position: sticky;
top: 0;
background: $bg-white;
z-index: 1;
&--action { &--action {
width: 2rem; width: 25%;
} }
} }
@@ -100,7 +135,20 @@
&--action { &--action {
position: relative; position: relative;
text-align: center; text-align: center;
opacity: 0;
transition: opacity 0.15s;
} }
&--ellipsis {
max-width: 3.6rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
&__row:hover &__td--action {
opacity: 1;
} }
// 简历名称单元格 // 简历名称单元格
@@ -125,14 +173,18 @@
&__name { &__name {
font-weight: 500; font-weight: 500;
max-width: 3.6rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
&__default-tag { &__default-tag {
font-size: 0.09rem; font-size: 0.09rem;
color: $accent; color: $accent;
background: #D9F5F0; background: #EDF9FA;
border-radius: 0.14rem; border-radius: 0.04rem;
padding: 0.01rem 0.06rem; padding: 0.014rem 0.08rem;
padding-bottom: 0.02rem; padding-bottom: 0.02rem;
white-space: nowrap; white-space: nowrap;
} }
@@ -164,6 +216,7 @@
align-items: center; align-items: center;
gap: 0.16rem; gap: 0.16rem;
justify-content: flex-end; justify-content: flex-end;
flex-wrap: wrap;
} }
// 行内操作按钮 // 行内操作按钮
@@ -171,15 +224,17 @@
background: none; background: none;
border: none; border: none;
font-size: 0.12rem; font-size: 0.12rem;
color: $text-dark; color: $text-middle;
cursor: pointer; cursor: pointer;
padding: 0.04rem 0.08rem; padding: 0.04rem 0.08rem;
border-radius: 0.04rem; border-radius: 0.04rem;
white-space: nowrap; white-space: nowrap;
transition: all 0.15s; transition: all 0.15s;
display: flex;
align-items: center;
&:hover { &:hover {
color: $accent; color: $text-dark;
} }
// 删除按钮红色 // 删除按钮红色
+9
View File
@@ -0,0 +1,9 @@
/**
*
*/
/** 是否开启"个人资料为空时强制跳转到登录页简历上传"机制 */
export const ENABLE_FORCE_RESUME_UPLOAD = true
/** 浏览器插件目标版本(用于判断用户是否需要更新插件) */
export const PLUGIN_TARGET_VERSION = '0.1.1'

Some files were not shown because too many files have changed in this diff Show More