Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54eba0520a | ||
|
|
d3b56f9555 | ||
|
|
1e103627f8 | ||
|
|
8b9ebd6ddc | ||
|
|
5abd6d27d6 | ||
|
|
bb7a8c55b2 | ||
|
|
a0f01dd697 | ||
|
|
58a027296a | ||
|
|
010a80be81 | ||
|
|
6c03793daf | ||
|
|
33ecccdcb0 | ||
|
|
d429bae98a | ||
|
|
0b9f2e7333 | ||
|
|
db46766d48 | ||
|
|
27d2592d06 | ||
|
|
c81c9b79dd | ||
|
|
5f4aab8d04 | ||
|
|
15971bffd9 | ||
|
|
bf84da7783 | ||
|
|
0911760e27 | ||
|
|
66026f211c | ||
|
|
7abe158dbb | ||
|
|
aed2535ab2 | ||
|
|
5f723e5573 | ||
|
|
8cd21e7b98 | ||
|
|
e8e2e09e62 | ||
|
|
4be35ced80 | ||
|
|
0e5c7d14d0 | ||
|
|
cf268520e1 | ||
|
|
cd64ded6ae | ||
|
|
ec6ba7ee35 | ||
|
|
72339f332d | ||
|
|
b25f2dde3a | ||
|
|
38e3957da2 | ||
|
|
ed959e6e6d | ||
|
|
f0b29d9abb | ||
|
|
c94a96d14e | ||
|
|
851310a901 | ||
|
|
b740e0cd39 | ||
|
|
9e791345f2 | ||
|
|
73f5bde68f | ||
|
|
78bf7fbebc | ||
|
|
6024ea27e9 | ||
|
|
f90c8be2a9 | ||
|
|
a1a27073e4 |
@@ -1,2 +1,5 @@
|
||||
# 开发环境 — 请求走 vite proxy
|
||||
VITE_API_BASE_URL=/api
|
||||
|
||||
# 见识星球接口 — 开发环境走 vite proxy 中转解决跨域
|
||||
VITE_JIANSHI_BASE_URL=/jianshi-api
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
# 生产环境 — 同域路径代理,不需要完整域名
|
||||
VITE_API_BASE_URL=/api
|
||||
|
||||
# 见识星球接口 — 生产环境直接请求真实域名
|
||||
VITE_JIANSHI_BASE_URL=https://www.jianshixingqiu.com/proxy-api
|
||||
|
||||
@@ -17,7 +17,7 @@ inclusion: always
|
||||
|
||||
- 颜色用尽量用variables.scss里的统一颜色变量,特别是背景,按钮,文字的颜色
|
||||
- 除了Home.vue首页外,其他页面我上传了截图要写页面或组件的,需要参考图片里文字和布局结构,在保证美观前提上自由发挥(如果我粘贴了图片内容里的完整样式过来,那就要参考我给的样式结合图片里的结构和样式代码保证还原度)
|
||||
- 全局用1rem=100px的格式并注意对某些特殊元素组件的line-height行高影响,纵布局如非必要不用flex-direction: column布局
|
||||
- 全局用1rem=100px的格式并注意对某些特殊元素组件的line-height行高影响,纵布局能用div自动排列加上下margin的就用div排列,不要用display:flex加flex-direction: column布局,除非是像这个盒子里有个子元素需要固定在底部这样需要明确高度的情况就用flex-direction: column,否则没有高度要求内部子元素只需要正常从上到下排列纵布局只用div
|
||||
- 如果是建一个组件,这个组件看我说是用在views里哪个页面的,比如用在Profile.vue里的组件,组件名字最前面要加Profile,而且整个组件的命名不能过度简化,要容易看懂组件的用途;如果检测到某种名字开头的组件数量比如Profile开头的超过15个,就在components里新建个类似profile这样的页面名字的文件夹,把这类命名的组件都移到文件夹里并查找更新组件所有被引用地方的文件地址
|
||||
|
||||
## 注意事项
|
||||
|
||||
@@ -13,6 +13,7 @@ declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
AgentApplyProgress: typeof import('./src/components/AgentApplyProgress.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']
|
||||
AgentJobPreviewPanel: typeof import('./src/components/AgentJobPreviewPanel.vue')['default']
|
||||
AgentMatchJobAdd: typeof import('./src/components/AgentMatchJobAdd.vue')['default']
|
||||
@@ -25,22 +26,20 @@ declare module 'vue' {
|
||||
AiChat: typeof import('./src/components/AiChat.vue')['default']
|
||||
AiThinkingIndicator: typeof import('./src/components/tools/AiThinkingIndicator.vue')['default']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCarousel: typeof import('element-plus/es')['ElCarousel']
|
||||
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
|
||||
ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
FullscreenLoading: typeof import('./src/components/FullscreenLoading.vue')['default']
|
||||
HelloWorld: typeof import('./src/components/HelloWorld.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']
|
||||
JobDislikeDialog: typeof import('./src/components/JobDislikeDialog.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']
|
||||
MemberAccessDialog: typeof import('./src/components/MemberAccessDialog.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']
|
||||
ProfilePageContent: typeof import('./src/components/ProfilePageContent.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']
|
||||
SettingsInviteDialog: typeof import('./src/components/SettingsInviteDialog.vue')['default']
|
||||
SideNav: typeof import('./src/components/SideNav.vue')['default']
|
||||
StepProgressOverlay: typeof import('./src/components/StepProgressOverlay.vue')['default']
|
||||
}
|
||||
export interface GlobalDirectives {
|
||||
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
|
||||
|
||||
@@ -7,6 +7,16 @@
|
||||
<title>Offer派 - 大学生AI求职平台 | 智能岗位匹配·一键自动网申·AI简历优化</title>
|
||||
<meta name="description" content="Offer派是专为大学生打造的AI求职平台,提供智能岗位匹配、一键自动网申、岗位定制简历、内推人脉直通等功能,让校招求职效率提升80%。" />
|
||||
<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>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"vuex": "^4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/chrome": "^0.2.2",
|
||||
"@types/markdown-it": "^14.1.2",
|
||||
"@types/node": "^24.10.1",
|
||||
"@vitejs/plugin-vue": "^6.0.2",
|
||||
|
||||
@@ -36,6 +36,9 @@ importers:
|
||||
specifier: ^4.1.0
|
||||
version: 4.1.0(vue@3.5.29(typescript@5.9.3))
|
||||
devDependencies:
|
||||
'@types/chrome':
|
||||
specifier: ^0.2.2
|
||||
version: 0.2.2
|
||||
'@types/markdown-it':
|
||||
specifier: ^14.1.2
|
||||
version: 14.1.2
|
||||
@@ -490,9 +493,21 @@ packages:
|
||||
'@sxzz/popperjs-es@2.11.8':
|
||||
resolution: {integrity: sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==}
|
||||
|
||||
'@types/chrome@0.2.2':
|
||||
resolution: {integrity: sha512-8rSMZ4cvo2xmaSyQg0sN5yRL7oiDkntLoiHxUhfwQnv1mvnkrdoZ25SlNrKWmYKaeP50WvrfWj1pmc02+U9KKw==}
|
||||
|
||||
'@types/estree@1.0.8':
|
||||
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':
|
||||
resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
|
||||
|
||||
@@ -1365,8 +1380,21 @@ snapshots:
|
||||
|
||||
'@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/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/lodash-es@4.17.12':
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
google-site-verification: google18c40aea647ea1cd.html
|
||||
@@ -23,7 +23,7 @@ export interface AgentConfig {
|
||||
autoOptimizeResume?: number
|
||||
/** 自动匹配分析 0=关闭 1=开启 */
|
||||
autoMatchAnalysis?: number
|
||||
/** 是否愿意接受部门调剂 */
|
||||
/** 是否开启深度人岗匹配分析,可选值:是/否(null或空字符串视为关闭) */
|
||||
acceptDeptTransfer?: string
|
||||
/** 是否接受地点调剂 */
|
||||
acceptLocationTransfer?: string
|
||||
@@ -71,8 +71,8 @@ export interface AgentJobMatchDetail {
|
||||
|
||||
/** 推荐岗位项 */
|
||||
export interface AgentRecommendJob {
|
||||
/** 岗位 ID */
|
||||
id: number
|
||||
/** 岗位 ID(字符串,避免大整数精度丢失) */
|
||||
id: string | number
|
||||
/** 岗位名称 */
|
||||
title: string
|
||||
/** 薪资描述 */
|
||||
@@ -103,6 +103,10 @@ export interface AgentRecommendJob {
|
||||
matchScore: number
|
||||
/** 匹配度详情 */
|
||||
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) {
|
||||
return aiService.post('/job-agent/optimize-resume', params, {
|
||||
headers: {
|
||||
Token: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIwMzUyNTM4OTg5MTk4NzA0NjUsInV1SWQiOiI2MmQ5MDE2NTcyNzY0ZmNjODNjZTIyYjRjODA5ZmU5MiJ9.eE-Q5rio5J5kxkS-XPYdmk-1Tgvg6kj6NGoKWMFNU14',
|
||||
},
|
||||
|
||||
}).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)
|
||||
}
|
||||
|
||||
@@ -54,6 +54,19 @@ export async function smsLogin(mobileNumber: string, code: string, inviteCode?:
|
||||
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
|
||||
|
||||
@@ -21,8 +21,8 @@ export interface IndustryItem {
|
||||
* GET /public/industries/tree
|
||||
* 返回一级二级嵌套的行业分类
|
||||
*/
|
||||
export function fetchIndustryTree() {
|
||||
return request.get<any, ApiResult<IndustryItem[]>>('/public/industries/tree')
|
||||
export function fetchIndustryTree(params?: { includeEmpty?: boolean }) {
|
||||
return request.get<any, ApiResult<IndustryItem[]>>('/public/industries/tree', { params })
|
||||
}
|
||||
|
||||
// ==================== 岗位分类相关 ====================
|
||||
@@ -55,8 +55,8 @@ export interface JobCategoryItem {
|
||||
* GET /public/job-categories/tree
|
||||
* 返回一级二级三级嵌套的岗位分类
|
||||
*/
|
||||
export function fetchJobCategoryTree() {
|
||||
return request.get<any, ApiResult<JobCategoryItem[]>>('/public/job-categories/tree')
|
||||
export function fetchJobCategoryTree(params?: { includeEmpty?: boolean }) {
|
||||
return request.get<any, ApiResult<JobCategoryItem[]>>('/public/job-categories/tree', { params })
|
||||
}
|
||||
|
||||
// ==================== 地区分类相关 ====================
|
||||
|
||||
@@ -3,6 +3,16 @@ import aiService from '@/utils/aiRequest'
|
||||
import type { ApiResult } from '@/api/auth'
|
||||
import type { AiResult } from '@/utils/aiRequest'
|
||||
|
||||
// ==================== 岗位总数 ====================
|
||||
|
||||
/**
|
||||
* 获取全网实时岗位总数
|
||||
* GET /job/count
|
||||
*/
|
||||
export function fetchJobCount() {
|
||||
return request.get<any, ApiResult<number>>('/job/count')
|
||||
}
|
||||
|
||||
// ==================== 匹配详情 ====================
|
||||
|
||||
/** 匹配度详情 */
|
||||
@@ -29,6 +39,8 @@ export interface JobListItem {
|
||||
companyShortName: string
|
||||
/** 公司类型(如"上市企业") */
|
||||
companyType: string
|
||||
/** 公司标签列表(如 ["新能源汽车", "乘用车制造", "10000人以上"]) */
|
||||
companyTags: string[]
|
||||
/** 地区名称 */
|
||||
regionName: string
|
||||
/** 岗位分类名称 */
|
||||
@@ -45,6 +57,10 @@ export interface JobListItem {
|
||||
matchScore: number
|
||||
/** 匹配度详情 */
|
||||
matchDetail: MatchDetail
|
||||
/** 招聘分类:0=社招 1=校招 2=实习 */
|
||||
recruitCategory?: number
|
||||
/** 学历要求 0=不限 1=大专 2=本科 3=硕士 4=博士 */
|
||||
education?: number
|
||||
}
|
||||
|
||||
// ==================== 分页结构 ====================
|
||||
@@ -85,7 +101,8 @@ export interface JobListParams {
|
||||
recruitCategory?: number
|
||||
/** 排除岗位ID列表(用于推荐时排除已推荐过的) */
|
||||
excludeJobIds?: number[]
|
||||
|
||||
/** 公司类型列表(上市企业、独角兽、国企等,可多选) */
|
||||
companyTypes?: string[]
|
||||
}
|
||||
|
||||
// ==================== 求职意向 ====================
|
||||
@@ -102,6 +119,10 @@ export interface JobIntention {
|
||||
employmentType?: number | null
|
||||
/** 招聘分类:0=社招,1=校招,2=实习,3=其他 */
|
||||
recruitCategory?: number | null
|
||||
/** AI 推荐的岗位分类 ID 列表 */
|
||||
aiCategoryIds?: string[]
|
||||
/** AI 推荐的行业 ID 列表 */
|
||||
aiIndustryIds?: string[]
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -425,6 +446,16 @@ export interface SkillGapResume {
|
||||
targetPosition: string
|
||||
}
|
||||
|
||||
/** 技能差距分析 — 差距项 */
|
||||
export interface SkillGapItem {
|
||||
/** 关键词 */
|
||||
keyword: string
|
||||
/** 差距标题 */
|
||||
title: string
|
||||
/** 差距描述 */
|
||||
description: string
|
||||
}
|
||||
|
||||
/** 技能差距分析返回数据 */
|
||||
export interface SkillGapData {
|
||||
/** 匹配度分数 */
|
||||
@@ -433,8 +464,10 @@ export interface SkillGapData {
|
||||
job: SkillGapJob
|
||||
/** 简历信息 */
|
||||
resume: SkillGapResume
|
||||
/** 缺少的技能列表 */
|
||||
missingSkills: string[]
|
||||
/** 缺少的技能列表(兼容旧版) */
|
||||
missingSkills?: string[]
|
||||
/** 差距分析列表(新版) */
|
||||
gaps?: SkillGapItem[]
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -461,6 +494,9 @@ export function fetchSkillGap(jobId: string) {
|
||||
/** 定制简历接口返回的简历数据 */
|
||||
export interface CustomizeResumeData {
|
||||
/** 简历基本信息 */
|
||||
id?: string
|
||||
resumeId?: string
|
||||
resumeName?: string
|
||||
resume: {
|
||||
avatarUrl?: string
|
||||
name?: string
|
||||
|
||||
@@ -36,6 +36,8 @@ export interface MemberProduct {
|
||||
export interface MemberStatus {
|
||||
/** 是否是会员 */
|
||||
isMember: boolean
|
||||
/** 会员类型 1=正式 2=试用 */
|
||||
memberType?: number
|
||||
/** 到期时间(毫秒时间戳) */
|
||||
expireTime?: number
|
||||
/** 首次开通时间(毫秒时间戳) */
|
||||
@@ -115,3 +117,27 @@ export function fetchOrderDetail(orderId: string) {
|
||||
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')
|
||||
}
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 分页查询导师列表请求参数
|
||||
*/
|
||||
export interface MentorListParams {
|
||||
/** 页码,>= 1 */
|
||||
page: number
|
||||
/** 每页条数,1~100 */
|
||||
pageSize: number
|
||||
/** 搜索关键词,可选 */
|
||||
keyword?: string
|
||||
/** 行业ids,可选 */
|
||||
industryIds?: number[]
|
||||
/** 导师ids,可选 */
|
||||
mentorIds?: number[]
|
||||
/** 身份类型:0企业在职 1生涯规划师 2心理咨询师 3教职工 4在校学生,可选 */
|
||||
identityType?: number | null
|
||||
/** 标签ids,可选 */
|
||||
labelIds?: number[]
|
||||
/** 约聊方式:0语音电话 1线下约见,可选 */
|
||||
chatType?: number
|
||||
/** 价格最大值,可选 */
|
||||
maxChatPrice?: number
|
||||
/** 价格最小值,可选 */
|
||||
minChatPrice?: number
|
||||
/** 公司名,可选 */
|
||||
agencyName?: string
|
||||
/** 机构类型,可选 */
|
||||
type?: string | null
|
||||
/** 排序:0默认 1金牌导师优先 2好评优先 3价格升序 4价格降序 */
|
||||
sort: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师列表项数据
|
||||
*/
|
||||
export interface MentorItem {
|
||||
/** 导师id(字符串,避免大数精度丢失) */
|
||||
id: string
|
||||
/** 用户id */
|
||||
userId: number
|
||||
/** 平台名 */
|
||||
platformName: string
|
||||
/** 头像 */
|
||||
picture: string
|
||||
/** 话题标题字符串 */
|
||||
titleStr: string
|
||||
/** 话题列表 */
|
||||
titles: string[]
|
||||
/** 标签字符串 */
|
||||
labelStr: string
|
||||
/** 标签列表 */
|
||||
labels: string[]
|
||||
/** 最低价格 */
|
||||
price: number
|
||||
/** 机构名 */
|
||||
agencyName: string
|
||||
/** 岗位 */
|
||||
position: string
|
||||
/** 机构logo */
|
||||
agencyLogo: string
|
||||
/** 排序 */
|
||||
sort: number
|
||||
/** 认证类型 */
|
||||
type: string
|
||||
/** 身份类型 */
|
||||
identityType: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询导师列表响应
|
||||
*/
|
||||
export interface MentorPageResult {
|
||||
records: MentorItem[]
|
||||
total: number
|
||||
size: number
|
||||
current: number
|
||||
pages: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询导师列表
|
||||
* POST /public/mentor/page(offerpai 后端)
|
||||
*/
|
||||
export function fetchMentorList(params: MentorListParams): Promise<MentorPageResult> {
|
||||
return request.post('/public/mentor/page', params)
|
||||
}
|
||||
|
||||
// ==================== 导师详情接口 ====================
|
||||
|
||||
/**
|
||||
* 导师详情 — 在职人士认证信息
|
||||
*/
|
||||
export interface MentorWorking {
|
||||
companyName: string
|
||||
type: number
|
||||
companyLogo: string
|
||||
industryId: number
|
||||
position: string
|
||||
currentPositionTerm: number
|
||||
term: number
|
||||
images: string[]
|
||||
link: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师详情 — 认证信息
|
||||
*/
|
||||
export interface MentorVerification {
|
||||
career?: { agencyName: string; position: string; type: number; term: number; agencyLogo: string; images: string[] }
|
||||
psychology?: { agencyName: string; position: string; type: number; agencyLogo: string; term: number; images: string[] }
|
||||
staff?: { schoolName: string; type: number; schoolLogo: string; position: string; term: number; images: string[] }
|
||||
student?: { schoolName: string; type: number; schoolLogo: string; major: string; startTime: string; endTime: string; degree: number; images: string[] }
|
||||
working?: MentorWorking
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师详情 — 基本信息
|
||||
*/
|
||||
export interface MentorInfo {
|
||||
platformName: string
|
||||
realName: string
|
||||
nickName: string
|
||||
picture: string
|
||||
identityType: number
|
||||
country?: string
|
||||
province?: string
|
||||
everCompany?: string
|
||||
city?: string
|
||||
phone: string
|
||||
mail?: string
|
||||
introduce?: string
|
||||
introduceImages?: string[]
|
||||
wechat?: string
|
||||
cooperationCount?: number
|
||||
starLevel?: number
|
||||
remark?: string
|
||||
sort?: number
|
||||
status: number
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师详情 — 支持服务项
|
||||
*/
|
||||
export interface MentorSupport {
|
||||
type: number
|
||||
introduce?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师详情 — 标签关系
|
||||
*/
|
||||
export interface MentorLabelRelation {
|
||||
labelId: string
|
||||
labelName: string
|
||||
alias?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师详情完整数据
|
||||
*/
|
||||
export interface MentorFullInfo {
|
||||
id: number
|
||||
mentorInfo: MentorInfo
|
||||
verification?: MentorVerification
|
||||
supports?: MentorSupport[]
|
||||
labelRelations?: MentorLabelRelation[]
|
||||
}
|
||||
|
||||
/**
|
||||
* 导师话题项
|
||||
*/
|
||||
export interface MentorTalk {
|
||||
id: number
|
||||
teacherUserId: number
|
||||
title: string
|
||||
content: string
|
||||
chatType: string
|
||||
seePrice: number
|
||||
seeSalePrice: number
|
||||
chatPrice: number
|
||||
chatSalePrice: number
|
||||
tags: string
|
||||
status: string
|
||||
talkTimes: number
|
||||
jobBusinessType: string
|
||||
caseImages?: string[]
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导师详情信息
|
||||
* GET /public/mentor/info?mentorId=xxx(offerpai 后端)
|
||||
*/
|
||||
export function fetchMentorFullInfo(mentorId: string): Promise<MentorFullInfo> {
|
||||
return request.get('/public/mentor/info', { params: { mentorId } })
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导师话题列表
|
||||
* GET /public/mentor/talk?teacherId=xxx(offerpai 后端)
|
||||
*/
|
||||
export function fetchMentorTalks(teacherId: string): Promise<MentorTalk[]> {
|
||||
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',
|
||||
})
|
||||
}
|
||||
@@ -32,9 +32,12 @@ export interface ResumeListItem {
|
||||
/**
|
||||
* 获取简历列表
|
||||
* GET /resume/list
|
||||
* @param pageSize 每页条数,默认 50
|
||||
*/
|
||||
export function fetchResumeList() {
|
||||
return request.get<any, ApiResult<ResumeListItem[]>>('/resume/list')
|
||||
export function fetchResumeList(pageSize = 50) {
|
||||
return request.get<any, ApiResult<ResumeListItem[]>>('/resume/list', {
|
||||
params: { pageSize },
|
||||
})
|
||||
}
|
||||
|
||||
// ==================== 描述段落(通用) ====================
|
||||
@@ -715,3 +718,31 @@ export function resolveDiagnosisIssue(issueId: string) {
|
||||
}],
|
||||
}).then(res => res.data)
|
||||
}
|
||||
|
||||
// ==================== 修改简历名称和目标岗位(新 Java 后端接口) ====================
|
||||
|
||||
/** 修改简历名称/目标岗位 请求参数 */
|
||||
export interface UpdateResumeInfoParams {
|
||||
/** 简历 ID(必需,字符串避免大整数精度丢失) */
|
||||
resumeId: string
|
||||
/** 简历名称(可选,<= 100 字符) */
|
||||
resumeName?: string
|
||||
/** 目标岗位(可选,<= 100 字符) */
|
||||
targetPosition?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改简历名称和目标岗位
|
||||
* POST /resume/updateInfo
|
||||
*/
|
||||
export function updateResumeInfo(data: UpdateResumeInfoParams) {
|
||||
return request.post<any, ApiResult>('/resume/updateInfo', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据当前用户个人资料创建一份新简历
|
||||
* POST /user/profile/createResume
|
||||
*/
|
||||
export function createResumeFromProfile() {
|
||||
return request.post<any, ApiResult>('/user/profile/createResume')
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 1008 KiB |
|
After Width: | Height: | Size: 211 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 462 KiB |
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 168 KiB |
|
Before Width: | Height: | Size: 221 KiB |
|
Before Width: | Height: | Size: 485 KiB |
|
Before Width: | Height: | Size: 232 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 390 KiB |
|
Before Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 408 KiB |
|
Before Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 247 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
@@ -3,10 +3,67 @@ html{
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
// 全局滚动条美化(必须在 body 包裹外,才能作用到 body/html 自身的滚动条)
|
||||
::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #D4D4D4;
|
||||
border-radius: 4px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
::-webkit-scrollbar-button {
|
||||
display: none;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
::-webkit-scrollbar-corner {
|
||||
background: transparent;
|
||||
}
|
||||
html, body {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #D4D4D4 transparent;
|
||||
}
|
||||
|
||||
// body 滚动条在缩放模式下会被 transform scale 放大变丑,强制隐藏
|
||||
body {
|
||||
&::-webkit-scrollbar {
|
||||
width: 0 !important;
|
||||
display: none !important;
|
||||
}
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
// 用 body:not(#_) 包裹,提升选择器权重到 id 级别,确保工具类优先级最高
|
||||
// :not(#_) 永远为 true,不影响匹配,只提升权重
|
||||
body:not(#_) {
|
||||
|
||||
// 统一细滚动条工具类(4px 宽、圆角、无按钮)
|
||||
.scrollbar-thin {
|
||||
&::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #D4D4D4;
|
||||
border-radius: 4px;
|
||||
}
|
||||
&::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
&::-webkit-scrollbar-button {
|
||||
display: none;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #D4D4D4 transparent;
|
||||
}
|
||||
|
||||
//组件定制样式
|
||||
.box-shadow-head{
|
||||
box-shadow: 0px 6px 16px rgba(0, 0, 0, 0.08), 0px 3px 6px -4px rgba(0, 0, 0, 0.12), 0px -3px 6px -4px rgba(0, 0, 0, 0.12);
|
||||
@@ -304,7 +361,9 @@ body:not(#_) {
|
||||
.aliite-e{
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.aliite-st{
|
||||
align-items: stretch;
|
||||
}
|
||||
//英文字母或数字一行溢出超出,打断
|
||||
.word-bra{
|
||||
word-break: break-all;
|
||||
@@ -391,6 +450,12 @@ body:not(#_) {
|
||||
.flex-warp{
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.flex1{
|
||||
flex: 1;
|
||||
}
|
||||
.flex2{
|
||||
flex: 2;
|
||||
}
|
||||
|
||||
//字体粗细
|
||||
.fw600{
|
||||
@@ -466,6 +531,11 @@ body:not(#_) {
|
||||
.color-2{
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.color-2F7DEA{
|
||||
color: #2F7DEA;
|
||||
}
|
||||
|
||||
.color-3{
|
||||
color: #333;
|
||||
}
|
||||
@@ -518,9 +588,34 @@ body:not(#_) {
|
||||
.color-9B9EAB{
|
||||
color:#9B9EAB;
|
||||
}
|
||||
.color-D31414{
|
||||
color: #D31414;
|
||||
}
|
||||
|
||||
.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*/
|
||||
@@ -536,7 +631,12 @@ body:not(#_) {
|
||||
.border-red1{
|
||||
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-ra1{border-radius: 0.01rem;}
|
||||
@@ -560,6 +660,9 @@ body:not(#_) {
|
||||
.border-ra19{border-radius: 0.19rem;}
|
||||
.border-ra20{border-radius: 0.2rem;}
|
||||
|
||||
.border-ra50p{
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.bor-ra50p{
|
||||
border-radius: 50%;
|
||||
@@ -613,6 +716,11 @@ body:not(#_) {
|
||||
background: $bg-white;
|
||||
}
|
||||
|
||||
.bg-linear-1{
|
||||
background: linear-gradient(to right, #52CAD1, #9FD051)
|
||||
}
|
||||
|
||||
|
||||
/*文字超出隐藏*/
|
||||
.text-over-h{
|
||||
white-space: nowrap; /* 保持文本在一行内显示 */
|
||||
@@ -728,6 +836,9 @@ body:not(#_) {
|
||||
.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;}
|
||||
.mb100 {margin-bottom: 1rem;}
|
||||
.mb-20{
|
||||
margin-bottom: -0.2rem;
|
||||
}
|
||||
|
||||
/* margin-top-bottom */
|
||||
.mtb0 {margin-top: 0rem;margin-bottom: 0rem;}
|
||||
@@ -795,6 +906,9 @@ body:not(#_) {
|
||||
.max-w1200{
|
||||
max-width: 12rem;
|
||||
}
|
||||
.max-w602{
|
||||
max-width: 6.02rem;
|
||||
}
|
||||
.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;}
|
||||
.w100{width: 1rem;}
|
||||
@@ -815,12 +929,16 @@ body:not(#_) {
|
||||
.w192{width: 1.92rem;}
|
||||
.w200{width: 2rem;}
|
||||
.w244{width: 2.44rem;}
|
||||
.w263{width: 2.63rem;}
|
||||
.w444{width: 4.44rem;}
|
||||
.w706{width: 7.06rem;}
|
||||
.w1200{width:12rem}
|
||||
|
||||
/*height*/
|
||||
.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;}
|
||||
.h100{height: 1rem;}
|
||||
.h452{height: 4.52rem;}
|
||||
|
||||
//行高
|
||||
.lh0{line-height: 0rem;}
|
||||
|
||||
@@ -1,317 +1,240 @@
|
||||
@use '../variables' as *;
|
||||
|
||||
// 申请进度消息组件
|
||||
// 投递进度卡片组件(新版4步骤)
|
||||
.agent-apply-progress {
|
||||
background: $bg-middle;
|
||||
border-radius: 0.12rem;
|
||||
padding: 0.2rem;
|
||||
|
||||
// 顶部标题栏
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
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;
|
||||
background: $bg-white;
|
||||
border: 1px solid #F0F0F0;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.16rem 0.2rem;
|
||||
|
||||
// 已完成状态
|
||||
&--completed {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
&__job-title {
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
// 步骤列表
|
||||
&__steps {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.14rem;
|
||||
}
|
||||
|
||||
&__step {
|
||||
// 顶部区域:岗位信息 + 步骤条
|
||||
&__top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 0.1rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
// 勾选框
|
||||
&__step-check {
|
||||
width: 0.18rem;
|
||||
height: 0.18rem;
|
||||
border: 1.5px solid $text-light;
|
||||
border-radius: 0.03rem;
|
||||
// 岗位信息
|
||||
&__job-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
margin-top: 0.01rem;
|
||||
|
||||
svg {
|
||||
width: 0.12rem;
|
||||
height: 0.12rem;
|
||||
gap: 0.28rem;
|
||||
}
|
||||
|
||||
// 已完成态
|
||||
&--done {
|
||||
border-color: $text-dark;
|
||||
background: $text-dark;
|
||||
color: $bg-white;
|
||||
}
|
||||
}
|
||||
|
||||
&__step-label {
|
||||
font-size: 0.14rem;
|
||||
&__job-title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
color: $text-dark;
|
||||
line-height: 0.2rem;
|
||||
line-height: 0.27rem;
|
||||
}
|
||||
|
||||
// 步骤展开内容
|
||||
&__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 {
|
||||
&__company {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
&__file-icon {
|
||||
width: 0.18rem;
|
||||
height: 0.18rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
&__company-logo {
|
||||
width: 0.24rem;
|
||||
height: 0.24rem;
|
||||
border-radius: 0.04rem;
|
||||
object-fit: cover;
|
||||
|
||||
&__resume-name {
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__confirm-btn {
|
||||
height: 0.28rem;
|
||||
padding: 0 0.16rem;
|
||||
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步:投递操作区域
|
||||
&__apply-area {
|
||||
background: $bg-white;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.14rem 0.16rem;
|
||||
}
|
||||
|
||||
&__apply-desc {
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.8;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__apply-actions {
|
||||
&--placeholder {
|
||||
background: $bg-main;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
gap: 0.1rem;
|
||||
margin-top: 0.14rem;
|
||||
}
|
||||
|
||||
&__skip-btn {
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
|
||||
&:hover {
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&--disabled {
|
||||
color: $text-light;
|
||||
cursor: not-allowed;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
&__applied-btn {
|
||||
height: 0.28rem;
|
||||
padding: 0 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;
|
||||
}
|
||||
}
|
||||
|
||||
&__goto-btn {
|
||||
height: 0.28rem;
|
||||
padding: 0 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 右侧面板:简历生成进度
|
||||
.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%;
|
||||
background: $text-dark;
|
||||
border-radius: 0.02rem;
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.1rem;
|
||||
}
|
||||
|
||||
&__hint {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.06rem;
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
&__hint-icon {
|
||||
svg {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__company-name {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 330;
|
||||
color: $text-dark;
|
||||
line-height: 0.27rem;
|
||||
}
|
||||
|
||||
// 步骤条
|
||||
&__steps {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
}
|
||||
|
||||
// 步骤项
|
||||
&__step-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
// 步骤图标
|
||||
&__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;
|
||||
}
|
||||
|
||||
&--active {
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&--pending {
|
||||
color: $text-middle;
|
||||
}
|
||||
}
|
||||
|
||||
// 步骤状态文字
|
||||
&__step-status {
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
|
||||
&--done {
|
||||
color: #9FD051;
|
||||
}
|
||||
|
||||
&--active {
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
&--pending {
|
||||
color: $text-middle;
|
||||
}
|
||||
}
|
||||
|
||||
// 步骤连接线
|
||||
&__step-line {
|
||||
width: 0.40rem;
|
||||
height: 0.02rem;
|
||||
background: #E5E7EB;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
// 底部区域:提示 + 按钮
|
||||
&__bottom {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
margin-top: 0.16rem;
|
||||
}
|
||||
|
||||
// 提示文字
|
||||
&__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;
|
||||
align-items: center;
|
||||
gap: 0.16rem;
|
||||
}
|
||||
|
||||
// 按钮基础样式
|
||||
&__btn {
|
||||
height: 0.27rem;
|
||||
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-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;
|
||||
padding: 0.24rem;
|
||||
font-size: 0.14rem;
|
||||
|
||||
// 标题
|
||||
&__header {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 700;
|
||||
font-size: 0.22rem;
|
||||
font-weight: 620;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.06rem;
|
||||
margin-bottom: 0.04rem;
|
||||
line-height: 0.29rem;
|
||||
}
|
||||
|
||||
// 推荐说明文字
|
||||
&__summary {
|
||||
font-size: 0.13rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
color: $text-middle;
|
||||
margin-bottom: 0.18rem;
|
||||
line-height: 1.5;
|
||||
margin-bottom: 0.16rem;
|
||||
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;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: $bg-white;
|
||||
border-radius: 0.1rem;
|
||||
flex-wrap: wrap;
|
||||
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;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border-color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
// 左侧信息区域(可点击)
|
||||
&__info {
|
||||
// 左侧区域(匹配度 + 岗位信息)
|
||||
&__left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.14rem;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.16rem;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
// 匹配度环形容器
|
||||
&__score {
|
||||
width: 0.62rem;
|
||||
height: 0.62rem;
|
||||
position: relative;
|
||||
width: 0.48rem;
|
||||
height: 0.48rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -68,98 +100,148 @@
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 0.11rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 630;
|
||||
color: #9FD051;
|
||||
line-height: 0.22rem;
|
||||
}
|
||||
|
||||
// 岗位详情
|
||||
// 岗位详情区域
|
||||
&__detail {
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
gap: 0.24rem;
|
||||
}
|
||||
|
||||
// 岗位标题行(岗位名 + 公司名)
|
||||
// 岗位标题行(岗位名 + 公司)
|
||||
&__title-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
margin-bottom: 0.04rem;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.32rem;
|
||||
}
|
||||
|
||||
// 岗位名称
|
||||
&__title {
|
||||
font-size: 0.15rem;
|
||||
font-weight: 600;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
color: $text-dark;
|
||||
line-height: 1.4;
|
||||
line-height: 0.27rem;
|
||||
}
|
||||
|
||||
// 公司名前的圆点
|
||||
&__company-dot {
|
||||
font-size: 0.08rem;
|
||||
color: $text-light;
|
||||
// 公司信息容器
|
||||
&__company {
|
||||
display: flex;
|
||||
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 {
|
||||
font-size: 0.13rem;
|
||||
color: $text-middle;
|
||||
&__company-name {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 330;
|
||||
color: $text-dark;
|
||||
line-height: 0.27rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
// 标签行
|
||||
&__tags {
|
||||
display: flex;
|
||||
gap: 0.06rem;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.12rem;
|
||||
}
|
||||
|
||||
// 单个标签
|
||||
&__tag {
|
||||
font-size: 0.11rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
color: $text-middle;
|
||||
background: $bg-main;
|
||||
padding: 0.02rem 0.08rem;
|
||||
border-radius: 0.03rem;
|
||||
line-height: 0.19rem;
|
||||
display: flex;
|
||||
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 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.14rem;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.08rem;
|
||||
flex-shrink: 0;
|
||||
margin-left: 0.16rem;
|
||||
}
|
||||
|
||||
// 不再推荐按钮
|
||||
&__dismiss-btn {
|
||||
font-size: 0.12rem;
|
||||
color: $text-light;
|
||||
height: 0.35rem;
|
||||
padding: 0 0.12rem;
|
||||
background: transparent;
|
||||
border: none;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 620;
|
||||
color: $accent;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
transition: color 0.2s ease;
|
||||
transition: opacity 0.2s ease;
|
||||
border-radius: 0.08rem;
|
||||
|
||||
&:hover {
|
||||
color: $text-middle;
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
// 加入投递按钮
|
||||
&__add-btn {
|
||||
height: 0.32rem;
|
||||
padding: 0 0.16rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
height: 0.35rem;
|
||||
padding: 0 0.12rem;
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
border: none;
|
||||
border-radius: 0.16rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 500;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 620;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
transition: all 0.2s ease;
|
||||
line-height: 0.32rem;
|
||||
|
||||
svg {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.85;
|
||||
@@ -172,37 +254,55 @@
|
||||
|
||||
// 已加入状态
|
||||
&--added {
|
||||
background: $bg-main;
|
||||
color: $text-middle;
|
||||
border: 1px solid $border-color;
|
||||
background: transparent;
|
||||
color: $accent;
|
||||
border: 1px solid $accent;
|
||||
}
|
||||
}
|
||||
|
||||
// 空状态
|
||||
&__empty {
|
||||
text-align: center;
|
||||
color: $text-light;
|
||||
padding: 0.4rem 0;
|
||||
font-size: 0.14rem;
|
||||
}
|
||||
|
||||
// 底部按钮区域
|
||||
&__footer {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.16rem;
|
||||
margin-top: 0.2rem;
|
||||
gap: 0.32rem;
|
||||
margin-top: 0.24rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
// 换一批按钮
|
||||
&__refresh-btn {
|
||||
height: 0.4rem;
|
||||
padding: 0 0.4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.04rem;
|
||||
height: 0.43rem;
|
||||
padding: 0 0.16rem;
|
||||
min-width: 2.8rem;
|
||||
background: $bg-white;
|
||||
color: $text-dark;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.2rem;
|
||||
color: $accent;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.22rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 500;
|
||||
font-weight: 620;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
line-height: 0.4rem;
|
||||
|
||||
svg {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border-color: $accent;
|
||||
color: $accent;
|
||||
background: #EDF9FA;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
@@ -213,17 +313,27 @@
|
||||
|
||||
// 全部添加按钮
|
||||
&__add-all-btn {
|
||||
height: 0.4rem;
|
||||
padding: 0 0.4rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.04rem;
|
||||
height: 0.43rem;
|
||||
padding: 0 0.16rem;
|
||||
min-width: 2.8rem;
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
border: none;
|
||||
border-radius: 0.2rem;
|
||||
border-radius: 0.22rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 500;
|
||||
font-weight: 620;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
line-height: 0.4rem;
|
||||
|
||||
svg {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.85;
|
||||
|
||||
@@ -1,187 +1,113 @@
|
||||
@use '../variables' as *;
|
||||
|
||||
/* Agent岗位预览面板样式 */
|
||||
.agent-job-preview-panel {
|
||||
/* Agent岗位预览抽屉 — 从浏览器右侧弹出 */
|
||||
|
||||
/* 遮罩层 */
|
||||
.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;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
background: $bg-white;
|
||||
border-radius: 0.2rem;
|
||||
overflow: hidden;
|
||||
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.16rem 0.2rem;
|
||||
border-bottom: 1px solid $border-color;
|
||||
padding: 0.2rem 0.24rem;
|
||||
height: 0.64rem;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 返回按钮 */
|
||||
&__back {
|
||||
&__header-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.06rem;
|
||||
gap: 0.16rem;
|
||||
}
|
||||
|
||||
/* 关闭按钮 */
|
||||
&__close {
|
||||
width: 0.24rem;
|
||||
height: 0.24rem;
|
||||
cursor: pointer;
|
||||
font-size: 0.15rem;
|
||||
font-weight: 500;
|
||||
color: $text-dark;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&__back-icon {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
}
|
||||
|
||||
/* 添加按钮 */
|
||||
&__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;
|
||||
&__close-icon {
|
||||
width: 0.24rem;
|
||||
height: 0.24rem;
|
||||
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;
|
||||
color: $danger;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
/* 标题文字 */
|
||||
&__title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
color: $text-dark;
|
||||
line-height: 0.24rem;
|
||||
}
|
||||
|
||||
/* 内容区域(可滚动) */
|
||||
&__body {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
padding: 0.2rem;
|
||||
padding: 0.24rem;
|
||||
}
|
||||
|
||||
/* 岗位卡片 */
|
||||
&__card {
|
||||
background: $bg-main;
|
||||
border-radius: 0.12rem;
|
||||
padding: 0.2rem;
|
||||
margin-bottom: 0.16rem;
|
||||
}
|
||||
|
||||
&__card-top {
|
||||
/* 岗位标题区域 */
|
||||
&__job-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
gap: 0.24rem;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
&__card-left {
|
||||
&__job-info {
|
||||
flex: 1;
|
||||
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 {
|
||||
font-size: 0.17rem;
|
||||
font-weight: 600;
|
||||
font-size: 0.24rem;
|
||||
font-weight: 620;
|
||||
color: $text-dark;
|
||||
margin: 0.06rem 0 0.1rem;
|
||||
line-height: 0.32rem;
|
||||
margin: 0 0 0.08rem;
|
||||
}
|
||||
|
||||
/* 元信息 */
|
||||
&__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;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
&__meta-icon {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
flex-shrink: 0;
|
||||
line-height: 0.16rem;
|
||||
font-weight: 330;
|
||||
}
|
||||
|
||||
/* 匹配度环 */
|
||||
&__match {
|
||||
position: relative;
|
||||
width: 0.6rem;
|
||||
height: 0.6rem;
|
||||
width: 0.62rem;
|
||||
height: 0.62rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -195,28 +121,141 @@
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
font-size: 0.13rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 630;
|
||||
color: #9FD051;
|
||||
}
|
||||
|
||||
/* 内容段落 */
|
||||
&__section {
|
||||
margin-bottom: 0.2rem;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
&__section-title {
|
||||
font-size: 0.14rem;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
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 {
|
||||
font-size: 0.13rem;
|
||||
font-size: 0.14rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.8;
|
||||
line-height: 0.19rem;
|
||||
font-weight: 330;
|
||||
white-space: pre-wrap;
|
||||
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 *;
|
||||
|
||||
// ==================== Agent设置面板样式(精简版) ====================
|
||||
// ==================== Agent设置面板样式(重新设计) ====================
|
||||
.agent-setting-panel {
|
||||
height: 100%;
|
||||
background: $bg-middle;
|
||||
border-radius: 0.12rem;
|
||||
position: relative;
|
||||
width: 3.60rem;
|
||||
height: var(--app-height, 100vh);
|
||||
background: #FFFFFF;
|
||||
font-size: 0.14rem;
|
||||
overflow-y: auto;
|
||||
|
||||
// 隐藏滚动条
|
||||
scrollbar-width: none;
|
||||
-ms-overflow-style: none;
|
||||
&::-webkit-scrollbar { display: none; }
|
||||
|
||||
// 内容区域
|
||||
&__body {
|
||||
padding: 0.28rem 0.24rem;
|
||||
// 头部标题区
|
||||
&__header {
|
||||
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 {
|
||||
margin-bottom: 0.28rem;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
padding: 0 0.24rem;
|
||||
margin-bottom: 0.08rem;
|
||||
}
|
||||
|
||||
// 区块头部(标题 + 编辑按钮)
|
||||
// 区块头部
|
||||
&__section-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.1rem;
|
||||
margin-bottom: 0.12rem;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.08rem;
|
||||
}
|
||||
|
||||
// 区块标题
|
||||
&__section-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
font-weight: 620;
|
||||
line-height: 0.21rem;
|
||||
color: #1A1A1A;
|
||||
}
|
||||
|
||||
// 编辑按钮
|
||||
&__edit-btn {
|
||||
font-size: 0.13rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 450;
|
||||
color: $accent;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
|
||||
svg {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
// 个人资料信息
|
||||
&__profile-info {
|
||||
padding-left: 0.02rem;
|
||||
}
|
||||
|
||||
&__profile-name {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.04rem;
|
||||
}
|
||||
|
||||
&__profile-sub {
|
||||
font-size: 0.13rem;
|
||||
// 个人信息文字
|
||||
&__info-text {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.19rem;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
// 求职目标标签
|
||||
&__goal-tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.08rem;
|
||||
// 求职偏好内容
|
||||
&__goal-content {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
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 {
|
||||
font-size: 0.13rem;
|
||||
font-size: 0.14rem;
|
||||
color: $text-light;
|
||||
}
|
||||
|
||||
// 简历选择下拉
|
||||
&__resume-select {
|
||||
width: 100%;
|
||||
margin-top: 0.06rem;
|
||||
|
||||
.el-input__wrapper {
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
}
|
||||
|
||||
// 投递偏好项
|
||||
&__pref-item {
|
||||
// 简历下拉
|
||||
&__resume-dropdown {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
align-items: center;
|
||||
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;
|
||||
}
|
||||
|
||||
& + & {
|
||||
border-top: none;
|
||||
&__resume-name {
|
||||
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 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.1rem;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
&__resume-options {
|
||||
margin-top: 0.04rem;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #F0F0F0;
|
||||
border-radius: 0.08rem;
|
||||
box-shadow: 0 0.02rem 0.08rem rgba(0, 0, 0, 0.06);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
// 勾选图标
|
||||
&__pref-check {
|
||||
width: 0.2rem;
|
||||
height: 0.2rem;
|
||||
flex-shrink: 0;
|
||||
color: $text-light;
|
||||
margin-top: 0.02rem;
|
||||
&__resume-option {
|
||||
padding: 0.08rem 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
color: $text-dark;
|
||||
cursor: pointer;
|
||||
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
&:hover {
|
||||
background: #F6FCFC;
|
||||
}
|
||||
|
||||
&--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;
|
||||
flex-direction: column;
|
||||
gap: 0.03rem;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
&__pref-label {
|
||||
&__switch-label {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 500;
|
||||
color: $text-dark;
|
||||
font-weight: 450;
|
||||
line-height: 0.19rem;
|
||||
color: #1A1A1A;
|
||||
}
|
||||
|
||||
&__pref-desc {
|
||||
&__switch-desc {
|
||||
font-size: 0.12rem;
|
||||
color: $text-light;
|
||||
line-height: 1.4;
|
||||
font-weight: 330;
|
||||
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 {
|
||||
display: flex;
|
||||
gap: 0.1rem;
|
||||
margin-top: 0.08rem;
|
||||
gap: 0.16rem;
|
||||
margin-top: 0.12rem;
|
||||
}
|
||||
|
||||
&__browser-btn {
|
||||
padding: 0.08rem 0.2rem;
|
||||
background: $bg-white;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.2rem;
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
padding: 0.12rem 0.16rem;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #F0F0F0;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 450;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
transition: border-color 0.2s;
|
||||
|
||||
svg {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
border-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%);
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 2000;
|
||||
z-index: 2500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
@@ -1,84 +1,119 @@
|
||||
// 颜色变量已移至全局 variables.scss
|
||||
@use '../variables' as *;
|
||||
|
||||
.ai-chat {
|
||||
width: var(--chat-width, 4.0rem);
|
||||
max-width: 4.0rem;
|
||||
min-width: 1.5rem;
|
||||
font-size: 0.14rem;
|
||||
width: var(--chat-width, 3.6rem);
|
||||
height: var(--app-height, 100vh);
|
||||
background: #f3f4f6;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
background: $bg-white;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
border-left: 1px solid #e5e7eb;
|
||||
|
||||
&__banner {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: #0F172B;
|
||||
color: #fff;
|
||||
padding: 0.12rem 0.14rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
border-radius: 0.2rem;
|
||||
margin: 0.15rem;
|
||||
height: 0.41rem;
|
||||
}
|
||||
|
||||
&__banner-arrow {
|
||||
font-size: 0.16rem;
|
||||
padding-bottom: 0.05rem;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// ==================== 顶部头部区域 ====================
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.1rem;
|
||||
justify-content: space-between;
|
||||
padding: 0.16rem;
|
||||
border-bottom: 1px solid #e5e7eb;
|
||||
height: 0.80rem;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&__header-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
}
|
||||
|
||||
&__avatar {
|
||||
width: 0.4rem;
|
||||
height: 0.4rem;
|
||||
width: 0.44rem;
|
||||
height: 0.44rem;
|
||||
border-radius: 50%;
|
||||
background: #e5e7eb;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.2rem;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
&__info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
&__name {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
color: #1a1a2e;
|
||||
font-size: 0.15rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.22rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__desc {
|
||||
font-size: 0.12rem;
|
||||
color: #6b7280;
|
||||
margin-top: 0.02rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.18rem;
|
||||
color: #99A1AF;
|
||||
}
|
||||
|
||||
// 在线状态标签
|
||||
&__online-tag {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.04rem 0.08rem;
|
||||
gap: 0.04rem;
|
||||
background: #52CAD1;
|
||||
border-radius: 0.12rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
color: $bg-white;
|
||||
}
|
||||
|
||||
&__online-dot {
|
||||
width: 0.06rem;
|
||||
height: 0.06rem;
|
||||
background: $bg-white;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
// ==================== 聊天消息区域 ====================
|
||||
&__messages {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
padding: 0.16rem;
|
||||
padding: 0 0.16rem;
|
||||
padding-bottom: 0.16rem;
|
||||
}
|
||||
|
||||
// 欢迎气泡
|
||||
&__welcome-bubble {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.16rem;
|
||||
gap: 0.08rem;
|
||||
background: #F4FBFB;
|
||||
border: 1px solid #AEE6EA;
|
||||
border-radius: 0.12rem;
|
||||
margin-bottom: 0.17rem;
|
||||
}
|
||||
|
||||
&__welcome-title {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.16rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__welcome-text {
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.18rem;
|
||||
color: #99A1AF;
|
||||
}
|
||||
|
||||
// ==================== 消息气泡 ====================
|
||||
&__msg {
|
||||
margin-bottom: 0.12rem;
|
||||
margin-bottom: 0.17rem;
|
||||
display: flex;
|
||||
|
||||
&--ai {
|
||||
@@ -91,13 +126,14 @@
|
||||
}
|
||||
|
||||
&__msg-bubble {
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.12rem 0.14rem;
|
||||
font-size: 0.13rem;
|
||||
line-height: 1.6;
|
||||
max-width: 85%;
|
||||
max-width: 2.8rem;
|
||||
padding: 0.08rem 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.24rem;
|
||||
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.04);
|
||||
|
||||
// ===== Markdown 渲染样式 =====
|
||||
// Markdown 渲染样式
|
||||
p {
|
||||
margin: 0 0 0.08rem;
|
||||
&:last-child { margin-bottom: 0; }
|
||||
@@ -174,123 +210,183 @@
|
||||
background: #f8fafc;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
tr:nth-child(even) {
|
||||
background: #fafbfc;
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px solid #e5e7eb;
|
||||
margin: 0.1rem 0;
|
||||
}
|
||||
}
|
||||
|
||||
&__msg--ai &__msg-bubble {
|
||||
background: #fff;
|
||||
border: 1px solid #e5e7eb;
|
||||
color: #374151;
|
||||
}
|
||||
|
||||
// 用户消息气泡 — 品牌色背景,右上圆角小
|
||||
&__msg--user &__msg-bubble {
|
||||
background: #fff;
|
||||
color: #1a1a2e;
|
||||
background: #52CAD1;
|
||||
color: $bg-white;
|
||||
border-radius: 0.12rem 0.04rem 0.12rem 0.12rem;
|
||||
}
|
||||
|
||||
&__msg-title {
|
||||
font-weight: 600;
|
||||
font-size: 0.14rem;
|
||||
margin-bottom: 0.06rem;
|
||||
color: #1a1a2e;
|
||||
// AI 消息气泡 — 白色背景绿色边框,左上圆角小
|
||||
&__msg--ai &__msg-bubble {
|
||||
background: $bg-white;
|
||||
color: $text-dark;
|
||||
border: 1px solid #AEE6EA;
|
||||
box-shadow: 0px 2px 4px rgba(82, 202, 209, 0.1);
|
||||
border-radius: 0.04rem 0.12rem 0.12rem 0.12rem;
|
||||
}
|
||||
|
||||
&__msg-text {
|
||||
color: #6b7280;
|
||||
font-size: 0.12rem;
|
||||
// ==================== 三点等待动效 ====================
|
||||
&__typing-indicator {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.14rem 0.12rem;
|
||||
gap: 0.06rem;
|
||||
background: $bg-white;
|
||||
border: 1px solid #AEE6EA;
|
||||
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.04);
|
||||
border-radius: 0.04rem 0.12rem 0.12rem 0.12rem;
|
||||
}
|
||||
|
||||
&__quick-questions {
|
||||
&__typing-dot {
|
||||
width: 0.06rem;
|
||||
height: 0.06rem;
|
||||
border-radius: 50%;
|
||||
background: #AEE6EA;
|
||||
animation: typingBounce 1.4s infinite ease-in-out both;
|
||||
|
||||
&:nth-child(1) {
|
||||
animation-delay: 0s;
|
||||
}
|
||||
&:nth-child(2) {
|
||||
animation-delay: 0.2s;
|
||||
background: rgba(174, 230, 234, 0.6);
|
||||
}
|
||||
&:nth-child(3) {
|
||||
animation-delay: 0.4s;
|
||||
background: rgba(174, 230, 234, 0.4);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes typingBounce {
|
||||
0%, 80%, 100% {
|
||||
transform: scale(1);
|
||||
opacity: 0.6;
|
||||
}
|
||||
40% {
|
||||
transform: scale(1.3);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 话题推荐模块 ====================
|
||||
&__topics {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.08rem;
|
||||
margin-top: 0.12rem;
|
||||
align-items: flex-start;
|
||||
padding: 0.16rem 0.16rem 0.16rem 0.16rem;
|
||||
gap: 0.12rem;
|
||||
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 20.63%);
|
||||
border: 1px solid #AEE6EA;
|
||||
border-radius: 0.12rem;
|
||||
margin: 0 0.16rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
|
||||
&__quick-item {
|
||||
background: #fff;
|
||||
border: 1px solid #e5e7eb;
|
||||
&__topics-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
&__topics-icon {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
}
|
||||
|
||||
&__topics-title {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.19rem;
|
||||
color: #52CAD1;
|
||||
}
|
||||
|
||||
&__topic-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.08rem 0.12rem;
|
||||
background: $bg-white;
|
||||
border: 1px solid #F0F0F0;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.1rem 0.14rem;
|
||||
color: $text-middle;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
max-width: 80%;
|
||||
|
||||
&:hover {
|
||||
background: #f9fafb;
|
||||
color: #374151;
|
||||
background: $accent;
|
||||
color: #fff;
|
||||
|
||||
}
|
||||
|
||||
/* AI 提问靠左 */
|
||||
&--ai {
|
||||
align-self: flex-start;
|
||||
}
|
||||
// 第一个按钮用品牌色
|
||||
&--primary {
|
||||
background: #52CAD1;
|
||||
border-color: #52CAD1;
|
||||
color: $bg-white;
|
||||
|
||||
/* 用户提问靠右 */
|
||||
&--user {
|
||||
align-self: flex-end;
|
||||
background: #f0f3f6;
|
||||
border-color: #e0e3e6;
|
||||
&:hover {
|
||||
background: #47b8bf;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 底部输入框 ====================
|
||||
&__input-area {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0.08rem 0.12rem;
|
||||
gap: 0.08rem;
|
||||
padding: 0.12rem 0.16rem;
|
||||
border-top: 1px solid #e5e7eb;
|
||||
background: #fff;
|
||||
margin: 0 0.16rem;
|
||||
margin-bottom: 0.16rem;
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
border: 1px solid #AEE6EA;
|
||||
border-radius: 0.08rem;
|
||||
backdrop-filter: blur(12px);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
&__input {
|
||||
flex: 1;
|
||||
background: #f3f4f6;
|
||||
border: 1px solid #e5e7eb;
|
||||
border-radius: 0.06rem;
|
||||
padding: 0.1rem 0.12rem;
|
||||
color: #1a1a2e;
|
||||
font-size: 0.12rem;
|
||||
border: none;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 400;
|
||||
line-height: 0.15rem;
|
||||
color: $text-dark;
|
||||
|
||||
&::placeholder {
|
||||
color: #9ca3af;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-color: #9ca3af;
|
||||
color: #99A1AF;
|
||||
}
|
||||
}
|
||||
|
||||
&__send-btn {
|
||||
width: 0.36rem;
|
||||
height: 0.36rem;
|
||||
border-radius: 50%;
|
||||
background: #1a1a2e;
|
||||
border: none;
|
||||
color: #fff;
|
||||
font-size: 0.16rem;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 0.32rem;
|
||||
height: 0.32rem;
|
||||
background: #52CAD1;
|
||||
border-radius: 0.08rem;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
flex-shrink: 0;
|
||||
transition: background 0.2s;
|
||||
|
||||
&:hover {
|
||||
background: #2e3142;
|
||||
background: #47b8bf;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,145 +1,125 @@
|
||||
@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 {
|
||||
.el-dialog__header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 0;
|
||||
}
|
||||
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;
|
||||
|
||||
// 头部
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
padding: 0.2rem 0.24rem 0.16rem;
|
||||
}
|
||||
|
||||
&__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;
|
||||
}
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.24rem;
|
||||
color: #1A1A1A;
|
||||
}
|
||||
|
||||
&__close-btn {
|
||||
width: 0.24rem;
|
||||
height: 0.24rem;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
||||
// 表单区块
|
||||
&__section {
|
||||
padding: 0.12rem 0.24rem;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
&__label {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
|
||||
&__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;
|
||||
}
|
||||
font-weight: 330;
|
||||
line-height: 0.19rem;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
// 招聘类型按钮组
|
||||
&__type-group {
|
||||
display: flex;
|
||||
gap: 0.12rem;
|
||||
gap: 0.10rem;
|
||||
}
|
||||
|
||||
&__type-btn {
|
||||
flex: 1;
|
||||
padding: 0.1rem 0;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.2rem;
|
||||
background: $bg-white;
|
||||
color: $text-dark;
|
||||
font-size: 0.13rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.08rem 0.16rem;
|
||||
width: 0.96rem;
|
||||
height: 0.35rem;
|
||||
background: #F3F4F6;
|
||||
border: none;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
color: #1A1A1A;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: $text-light;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $btn-dark;
|
||||
border-color: $btn-dark;
|
||||
color: $bg-white;
|
||||
font-weight: 500;
|
||||
background: $accent;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
&__footer {
|
||||
padding: 0.3rem 0.24rem 0.24rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
// 保存按钮
|
||||
&__save-btn {
|
||||
width: 100%;
|
||||
padding: 0.12rem 0;
|
||||
padding: 0.12rem 0.16rem;
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
border: none;
|
||||
border-radius: 0.24rem;
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 450;
|
||||
line-height: 0.19rem;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
transition: opacity 0.2s;
|
||||
|
||||
&:hover {
|
||||
background: $accent-hover;
|
||||
opacity: 0.85;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,91 @@
|
||||
@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 {
|
||||
margin-bottom: 0;
|
||||
|
||||
|
||||
&__title {
|
||||
font-size: 0.24rem;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
margin: 0 !important;
|
||||
@@ -15,8 +96,6 @@
|
||||
&__subtitle {
|
||||
font-size: 0.13rem;
|
||||
color: $text-light;
|
||||
margin: 0.02rem 0 0 0 !important;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&__tabs {
|
||||
@@ -24,7 +103,6 @@
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
margin: 0.1rem 0 0.16rem 0;
|
||||
background: $bg-white;
|
||||
border-radius: 0.22rem;
|
||||
padding: 0.04rem;
|
||||
@@ -51,13 +129,16 @@
|
||||
|
||||
&__tab {
|
||||
font-size: 0.13rem;
|
||||
color: $text-light;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
padding: 0.06rem 0.16rem;
|
||||
border-radius: 0.18rem;
|
||||
padding: 0.06rem 0.20rem;
|
||||
border-radius: 0.08rem;
|
||||
transition: all 0.25s ease;
|
||||
user-select: none;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.06rem;
|
||||
|
||||
&:hover {
|
||||
color: $text-dark;
|
||||
@@ -76,4 +157,20 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 计数圆形徽章 */
|
||||
&__tab-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 0.20rem;
|
||||
height: 0.20rem;
|
||||
padding: 0 0.05rem;
|
||||
border-radius: 0.1rem;
|
||||
background: #F3F4F6;
|
||||
font-size: 0.11rem;
|
||||
font-weight: 500;
|
||||
color: $text-middle;
|
||||
line-height: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,15 +156,13 @@
|
||||
&__card-index {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
font-size: 0.14rem;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
&__card-index-dot {
|
||||
width: 0.08rem;
|
||||
height: 0.08rem;
|
||||
width: 0.0rem;
|
||||
height: 0.0rem;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
@@ -174,7 +172,7 @@
|
||||
border: none;
|
||||
padding: 0.03rem;
|
||||
cursor: pointer;
|
||||
color: $text-light;
|
||||
color: $accent;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 0.04rem;
|
||||
|
||||
@@ -12,13 +12,15 @@
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 简历HTML内容区
|
||||
// 简历HTML内容区(默认预览模式用小padding,导出模式用大padding)
|
||||
.resume-html {
|
||||
padding: 50px 60px;
|
||||
padding: 10px;
|
||||
font-family: 'SimSun', 'Songti SC', serif;
|
||||
color: $text-dark;
|
||||
line-height: 1.6;
|
||||
|
||||
// 导出模式:恢复完整内边距,去除差异样式 → 见底部统一 &--export 块
|
||||
|
||||
// 姓名
|
||||
&__name {
|
||||
font-size: 28px;
|
||||
@@ -150,9 +152,30 @@
|
||||
|
||||
// ==================== 差异对比高亮样式 ====================
|
||||
&__diff-highlight {
|
||||
background-color: #D4EDDA;
|
||||
color: #155724;
|
||||
border-radius: 2px;
|
||||
padding: 0 1px;
|
||||
font-weight: 700;
|
||||
color: #52CAD1;
|
||||
text-decoration: underline;
|
||||
text-decoration-color: #52CAD1;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
|
||||
// 含有差异文字的经历块/个人概述背景色(仅预览模式)
|
||||
&__diff-block {
|
||||
background-color: #EDF9FA;
|
||||
}
|
||||
|
||||
// 导出模式下去除差异相关样式
|
||||
&--export {
|
||||
padding: 50px 60px;
|
||||
|
||||
.resume-html__diff-highlight {
|
||||
font-weight: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.resume-html__diff-block {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
background: #F7F7F7;
|
||||
border-radius: 0.12rem;
|
||||
padding: 0.1rem;
|
||||
padding: 0.16rem;
|
||||
box-sizing: border-box;
|
||||
|
||||
// 表单内容区
|
||||
@@ -305,7 +305,7 @@
|
||||
|
||||
// AI润色结果区域
|
||||
&__ai-result {
|
||||
margin-top: 0.16rem;
|
||||
margin-top: 0.04rem;
|
||||
}
|
||||
|
||||
&__ai-result-label {
|
||||
@@ -317,7 +317,7 @@
|
||||
|
||||
&__ai-result-card {
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -438,13 +438,13 @@
|
||||
}
|
||||
|
||||
&__save-btn {
|
||||
padding: 0.06rem 0.2rem;
|
||||
padding: 0.06rem 0.24rem;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 600;
|
||||
color: $bg-white;
|
||||
background: $btn-dark;
|
||||
border: none;
|
||||
border-radius: 0.2rem;
|
||||
border-radius: 0.08rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
|
||||
@@ -454,13 +454,13 @@
|
||||
}
|
||||
|
||||
&__cancel-btn {
|
||||
padding: 0.06rem 0.2rem;
|
||||
padding: 0.06rem 0.24rem;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 600;
|
||||
color: $accent;
|
||||
background: transparent;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.2rem;
|
||||
border-radius: 0.08rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
padding: 0.2rem 0.24rem 0;
|
||||
padding-bottom: 0.2rem ;
|
||||
background: $bg-white;
|
||||
border-radius: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
@@ -16,9 +16,7 @@
|
||||
&__tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.24rem;
|
||||
padding-bottom: 0.14rem;
|
||||
border-bottom: 1px solid $border-color;
|
||||
flex-shrink: 0;
|
||||
margin-bottom:0.14rem
|
||||
}
|
||||
@@ -27,7 +25,7 @@
|
||||
font-size: 0.14rem;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
padding-bottom: 0.06rem;
|
||||
padding: 0.16rem 0.2rem;
|
||||
border-bottom: 2px solid transparent;
|
||||
transition: all 0.2s;
|
||||
white-space: nowrap;
|
||||
@@ -37,9 +35,9 @@
|
||||
}
|
||||
|
||||
&--active {
|
||||
color: $text-dark;
|
||||
color: $accent;
|
||||
font-weight: 600;
|
||||
border-bottom-color: $text-dark;
|
||||
border-bottom-color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +45,7 @@
|
||||
&__body {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
padding-bottom: 0.2rem;
|
||||
padding: 0 0.24rem 0.2rem 0.24rem;
|
||||
|
||||
// 隐藏滚动条
|
||||
&::-webkit-scrollbar {
|
||||
@@ -64,7 +62,7 @@
|
||||
border-radius: 0.08rem;
|
||||
|
||||
&:hover .profile-page-content__card-header{
|
||||
background: #F7F7F7;
|
||||
background: #F0FAFA;
|
||||
.profile-page-content__edit-btn-inline{
|
||||
opacity: 1;
|
||||
pointer-events: auto;
|
||||
@@ -86,7 +84,7 @@
|
||||
}
|
||||
|
||||
&__card-title {
|
||||
font-size: 0.16rem;
|
||||
font-size: 0.20rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
@@ -224,15 +222,15 @@
|
||||
&__portfolio-link {
|
||||
font-size: 0.13rem;
|
||||
line-height: 1.6;
|
||||
color: $accent;
|
||||
color: $text-middle;
|
||||
word-break: break-all;
|
||||
text-decoration: none;
|
||||
text-decoration: underline;
|
||||
transition: color 0.2s;
|
||||
display: inline-block;
|
||||
vertical-align: text-bottom;
|
||||
|
||||
&:hover {
|
||||
color: $accent-hover;
|
||||
text-decoration: underline;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,17 +251,15 @@
|
||||
|
||||
&__tag {
|
||||
font-size: 0.12rem;
|
||||
color: $text-dark;
|
||||
background: $bg-main;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.16rem;
|
||||
padding: 0.05rem 0.16rem;
|
||||
color: $accent;
|
||||
background: #fff;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.04rem;
|
||||
padding: 0.05rem 0.08rem;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: $accent;
|
||||
color: $accent;
|
||||
background: $theme-color;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,7 +297,7 @@
|
||||
}
|
||||
|
||||
&__card-hover:hover {
|
||||
background: #F7F7F7;
|
||||
background: #F0FAFA;
|
||||
}
|
||||
|
||||
// 标题行hover显示添加按钮(5大经历)
|
||||
@@ -319,7 +315,7 @@
|
||||
border-radius: 0.08rem;
|
||||
|
||||
&:hover {
|
||||
background: #F7F7F7;
|
||||
background: #F0FAFA;
|
||||
}
|
||||
|
||||
&:not(:last-child) {
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
right: 0;
|
||||
width: 8rem;
|
||||
height: var(--app-height, 100vh);
|
||||
background: $bg-main;
|
||||
background: #fff;
|
||||
z-index: 2001;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
// ---- 模块标题 ----
|
||||
&__module-title {
|
||||
font-size: 0.16rem;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
margin: 0.24rem 0 0.12rem 0;
|
||||
@@ -98,6 +98,9 @@
|
||||
// ---- 单条经历记录 ----
|
||||
&__record {
|
||||
margin-bottom: 0.2rem;
|
||||
background: $bg-main;
|
||||
padding: 0.16rem;
|
||||
border-radius: 0.12rem;
|
||||
}
|
||||
|
||||
&__record-label {
|
||||
@@ -109,14 +112,35 @@
|
||||
|
||||
// ---- 卡片容器 ----
|
||||
&__card {
|
||||
background: $bg-white;
|
||||
background: #fff;
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.16rem;
|
||||
border: 1px solid $border-color;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
||||
&--ai {
|
||||
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;
|
||||
color: $accent;
|
||||
margin: 0 0 0.08rem 0;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
&__ai-text {
|
||||
@@ -175,17 +201,19 @@
|
||||
font-size: 0.12rem;
|
||||
font-weight: 500;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.14rem;
|
||||
padding: 0.04rem 0.12rem;
|
||||
border-radius: 0.04rem;
|
||||
padding: 0.04rem 0.06rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
|
||||
&--replace {
|
||||
color: $accent;
|
||||
background: $bg-white;
|
||||
color: #fff;
|
||||
background: $accent;
|
||||
|
||||
&:hover {
|
||||
background: rgba($accent, 0.08);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
.settings-dialog {
|
||||
position: relative;
|
||||
width: 8.6rem;
|
||||
width: 6.4rem;
|
||||
height: 6.2rem;
|
||||
background: $bg-white;
|
||||
border-radius: 0.12rem;
|
||||
@@ -60,35 +60,24 @@
|
||||
&__nav-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
padding: 0.12rem 0.2rem;
|
||||
padding: 0.1rem 0.16rem;
|
||||
margin: 0.02rem 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
color: $text-dark;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
border-left: 0.03rem solid transparent;
|
||||
border-radius: 0.08rem;
|
||||
font-weight: 500;
|
||||
|
||||
&:hover {
|
||||
background: $bg-white;
|
||||
color: $accent;
|
||||
background: #E2E4E9;
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $bg-white;
|
||||
color: $accent;
|
||||
border-left-color: $accent;
|
||||
font-weight: 600;
|
||||
background: #E2E4E9;
|
||||
}
|
||||
}
|
||||
|
||||
&__nav-icon {
|
||||
font-size: 0.16rem;
|
||||
flex-shrink: 0;
|
||||
width: 0.18rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
// 底部操作
|
||||
&__bottom-actions {
|
||||
margin-top: auto;
|
||||
@@ -139,7 +128,10 @@
|
||||
|
||||
// ===== 账号与安全 =====
|
||||
&__section {
|
||||
margin-bottom: 0.28rem;
|
||||
margin-bottom: 0.16rem;
|
||||
padding: 0.16rem 0.24rem;
|
||||
background: #F9FAFB;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
&__section-label {
|
||||
@@ -156,7 +148,12 @@
|
||||
}
|
||||
|
||||
&__danger-section {
|
||||
margin-top: 0.32rem;
|
||||
padding: 0.16rem 0.24rem;
|
||||
background: #F9FAFB;
|
||||
border-radius: 0.08rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__danger-title {
|
||||
@@ -179,161 +176,238 @@
|
||||
}
|
||||
|
||||
&__danger-btn {
|
||||
background: $bg-main;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.06rem;
|
||||
border: none;
|
||||
background: none;
|
||||
padding: 0.07rem 0.16rem;
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
color: $danger;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: $danger;
|
||||
color: $danger;
|
||||
}
|
||||
}
|
||||
|
||||
// ===== 会员 =====
|
||||
&__member-card {
|
||||
background: $bg-white;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.2rem 0.24rem;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
&__member-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.1rem;
|
||||
}
|
||||
|
||||
&__member-title-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.1rem;
|
||||
}
|
||||
|
||||
&__member-name {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__member-badge {
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
font-size: 0.11rem;
|
||||
padding: 0.02rem 0.08rem;
|
||||
border-radius: 0.1rem;
|
||||
|
||||
&--inactive {
|
||||
background: #ccc;
|
||||
color: $bg-white;
|
||||
}
|
||||
}
|
||||
|
||||
&__member-terms {
|
||||
font-size: 0.12rem;
|
||||
color: $accent;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
|
||||
&:hover {
|
||||
color: $accent-hover;
|
||||
}
|
||||
}
|
||||
|
||||
&__member-info-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__member-price {
|
||||
font-size: 0.13rem;
|
||||
color: #555;
|
||||
// ===== 会员卡片(新版) =====
|
||||
&__mcard {
|
||||
padding: 0.16rem 0.24rem;
|
||||
border-radius: 0.12rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.06rem;
|
||||
gap: 0.32rem;
|
||||
|
||||
span {
|
||||
margin-left: 0;
|
||||
color: $text-light;
|
||||
&--formal {
|
||||
background: linear-gradient(90deg, #52CAD1 0%, #52D1A7 100%);
|
||||
}
|
||||
|
||||
&--trial {
|
||||
background: linear-gradient(90deg, #F59E0B 0%, #F5B70B 100%);
|
||||
}
|
||||
|
||||
&--free {
|
||||
background: #F3F4F6;
|
||||
}
|
||||
}
|
||||
|
||||
&__member-expire-line {
|
||||
font-size: 0.13rem;
|
||||
color: #555;
|
||||
&__mcard-top {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__member-remain-line {
|
||||
font-size: 0.13rem;
|
||||
color: $accent;
|
||||
font-weight: 600;
|
||||
&__mcard-title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
color: #FFFFFF;
|
||||
line-height: 0.24rem;
|
||||
|
||||
&--free {
|
||||
color: #6A7282;
|
||||
}
|
||||
}
|
||||
|
||||
&__member-manage-btn {
|
||||
background: $bg-main;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.06rem;
|
||||
padding: 0.07rem 0.16rem;
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
&__mcard-remain {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
&__mcard-remain-label {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
color: #FFFFFF;
|
||||
line-height: 0.19rem;
|
||||
}
|
||||
|
||||
&__mcard-remain-days {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
color: #FFFFFF;
|
||||
line-height: 0.24rem;
|
||||
}
|
||||
|
||||
&__mcard-bottom {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__mcard-expire {
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
color: #FFFFFF;
|
||||
line-height: 0.16rem;
|
||||
|
||||
&--free {
|
||||
color: #6A7282;
|
||||
}
|
||||
}
|
||||
|
||||
&__mcard-actions {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
&__mcard-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.04rem 0.12rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
border-radius: 0.12rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
white-space: nowrap;
|
||||
border: none;
|
||||
transition: opacity 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: $accent;
|
||||
color: $accent;
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
&--outline {
|
||||
background: transparent;
|
||||
border: 1px solid #FFFFFF;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
&--solid-formal {
|
||||
background: #FFFFFF;
|
||||
color: #52CAD1;
|
||||
}
|
||||
|
||||
&--solid-trial {
|
||||
background: #FFFFFF;
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
&--solid-accent {
|
||||
background: #52CAD1;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
&__member-issue {
|
||||
text-align: center;
|
||||
padding: 0.2rem 0;
|
||||
// ===== 问题反馈 =====
|
||||
&__feedback-wrap {
|
||||
background: #F9FAFB;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.16rem 0.24rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.24rem;
|
||||
}
|
||||
|
||||
&__member-issue-title {
|
||||
font-size: 0.15rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.1rem;
|
||||
&__feedback-section {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.12rem;
|
||||
}
|
||||
|
||||
&__member-issue-desc {
|
||||
font-size: 0.12rem;
|
||||
color: #666;
|
||||
line-height: 1.8;
|
||||
margin-bottom: 0.16rem;
|
||||
max-width: 5.0rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
&__feedback-label {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 620;
|
||||
color: #1A1A1A;
|
||||
line-height: 0.19rem;
|
||||
}
|
||||
|
||||
&__member-issue-actions {
|
||||
&__feedback-options {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
&__feedback-option {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.16rem;
|
||||
}
|
||||
|
||||
&__member-issue-btn {
|
||||
background: $bg-white;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.06rem;
|
||||
padding: 0.08rem 0.24rem;
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
align-items: center;
|
||||
padding: 0.08rem 0.12rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
text-align: center;
|
||||
color: $accent;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.08rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
flex: 1 1 30%;
|
||||
min-width: 0;
|
||||
|
||||
&:hover {
|
||||
background: rgba(82, 202, 209, 0.08);
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $accent;
|
||||
color: #FFFFFF;
|
||||
border-color: $accent;
|
||||
color: $accent;
|
||||
|
||||
&:hover {
|
||||
background: $accent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__feedback-textarea {
|
||||
width: 100%;
|
||||
min-height: 0.64rem;
|
||||
padding: 0.08rem 0.12rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
color: #1A1A1A;
|
||||
background: #FFFFFF;
|
||||
border: none;
|
||||
border-radius: 0.08rem;
|
||||
resize: vertical;
|
||||
outline: none;
|
||||
box-sizing: border-box;
|
||||
|
||||
&::placeholder {
|
||||
color: #99A1AF;
|
||||
}
|
||||
}
|
||||
|
||||
&__feedback-submit {
|
||||
margin-top: 0.44rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
display: block;
|
||||
padding: 0.08rem 0.24rem;
|
||||
background: $accent;
|
||||
color: #FFFFFF;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
border-radius: 0.08rem;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.85;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -468,6 +542,9 @@
|
||||
font-size: 0.13rem;
|
||||
color: #555;
|
||||
line-height: 1.8;
|
||||
padding: 0.16rem 0.24rem;
|
||||
background: #F9FAFB;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
&__privacy-section {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@use '../variables' as *;
|
||||
|
||||
// ==================== 邀请注册送会员弹窗(重设计版) ====================
|
||||
// ==================== 邀请注册送会员弹窗 ====================
|
||||
.settings-invite-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
@@ -16,213 +16,219 @@
|
||||
}
|
||||
|
||||
.settings-invite-dialog {
|
||||
position: relative;
|
||||
width: 4.2rem;
|
||||
height: 5.0rem;
|
||||
background: $bg-white;
|
||||
border-radius: 0.26rem;
|
||||
box-shadow: 0 0.2rem 0.44rem rgba(0, 0, 0, 0.14);
|
||||
overflow: hidden;
|
||||
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;
|
||||
|
||||
// 顶部渐变区域
|
||||
// 顶部:标题行 + 关闭按钮
|
||||
&__header {
|
||||
width: 100%;
|
||||
height: 1.04rem;
|
||||
background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%);
|
||||
border-radius: 0.26rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// 皇冠图标
|
||||
&__crown {
|
||||
font-size: 0.32rem;
|
||||
line-height: 0.39rem;
|
||||
color: $bg-white;
|
||||
font-weight: 700;
|
||||
&__header-text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.24rem;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__subtitle {
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.16rem;
|
||||
color: $text-middle;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
// 关闭按钮
|
||||
&__close {
|
||||
position: absolute;
|
||||
top: 0.24rem;
|
||||
right: 0.27rem;
|
||||
font-size: 0.22rem;
|
||||
line-height: 0.27rem;
|
||||
color: #8EA0B8;
|
||||
width: 0.24rem;
|
||||
height: 0.24rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.14rem;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s;
|
||||
z-index: 1;
|
||||
flex-shrink: 0;
|
||||
|
||||
&:hover {
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
// 内容区域
|
||||
&__body {
|
||||
flex: 1;
|
||||
padding: 0.22rem 0.28rem 0.2rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
// 标题
|
||||
&__title {
|
||||
font-size: 0.21rem;
|
||||
font-weight: 700;
|
||||
color: #132034;
|
||||
text-align: center;
|
||||
margin: 0 0 0.05rem 0;
|
||||
line-height: 0.25rem;
|
||||
}
|
||||
|
||||
// 副标题
|
||||
&__subtitle {
|
||||
font-size: 0.13rem;
|
||||
font-weight: 400;
|
||||
color: #64748B;
|
||||
text-align: center;
|
||||
margin: 0 0 0.2rem 0;
|
||||
line-height: 0.16rem;
|
||||
}
|
||||
|
||||
// 邀请链接区域
|
||||
&__link-box {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 3.64rem;
|
||||
height: 0.44rem;
|
||||
background: #F3FFFD;
|
||||
border-radius: 0.22rem;
|
||||
padding: 0 0.06rem 0 0.16rem;
|
||||
margin: 0 auto 0.2rem;
|
||||
box-sizing: border-box;
|
||||
justify-content: space-between;
|
||||
padding: 0.12rem 0.16rem;
|
||||
width: 100%;
|
||||
background: #F4FBFB;
|
||||
border: 1px solid #AEE6EA;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
&__link-text {
|
||||
flex: 1;
|
||||
font-size: 0.11rem;
|
||||
line-height: 0.13rem;
|
||||
color: #334155;
|
||||
white-space: nowrap;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.19rem;
|
||||
color: $text-dark;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
// 复制链接按钮
|
||||
&__copy-btn {
|
||||
width: 1.0rem;
|
||||
height: 0.32rem;
|
||||
border: none;
|
||||
border-radius: 0.16rem;
|
||||
background: #0F172A;
|
||||
color: $bg-white;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.16rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 450;
|
||||
line-height: 0.19rem;
|
||||
color: $accent;
|
||||
cursor: pointer;
|
||||
flex-shrink: 0;
|
||||
margin-left: 0.08rem;
|
||||
transition: opacity 0.2s;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
// 邀请步骤区域
|
||||
&__steps {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.16rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__steps-title {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 450;
|
||||
line-height: 0.19rem;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
&__steps-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.16rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// 步骤卡片
|
||||
&__step-item {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.12rem 0.16rem;
|
||||
gap: 0.10rem;
|
||||
width: 100%;
|
||||
background: $bg-white;
|
||||
border: 1px solid #F0F0F0;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
// 步骤数字圆圈
|
||||
&__step-num {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 0.20rem;
|
||||
min-width: 0.20rem;
|
||||
height: 0.20rem;
|
||||
background: $bg-main;
|
||||
border-radius: 0.10rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.20rem;
|
||||
text-align: center;
|
||||
color: $text-middle;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
// 步骤文字
|
||||
&__step-text {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.19rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
// 底部:统计 + 按钮
|
||||
&__footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// 统计信息
|
||||
&__stat {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.02rem;
|
||||
}
|
||||
|
||||
&__stat-line {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
line-height: 0.19rem;
|
||||
color: $text-middle;
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
color: $accent;
|
||||
font-weight: 450;
|
||||
}
|
||||
}
|
||||
|
||||
// 成为正式会员按钮
|
||||
&__member-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.08rem 0.12rem;
|
||||
gap: 0.04rem;
|
||||
background: $accent;
|
||||
border-radius: 0.08rem;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s;
|
||||
|
||||
span {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.19rem;
|
||||
text-align: center;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.85;
|
||||
}
|
||||
}
|
||||
|
||||
// 步骤卡片
|
||||
&__step {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 3.64rem;
|
||||
height: 0.46rem;
|
||||
background: #F3FFFD;
|
||||
border-radius: 0.14rem;
|
||||
padding: 0 0.14rem;
|
||||
margin: 0 auto 0.12rem;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 步骤数字圆圈
|
||||
&__step-circle {
|
||||
width: 0.26rem;
|
||||
height: 0.26rem;
|
||||
border-radius: 50%;
|
||||
background: $bg-white;
|
||||
border: 1px solid #BFEFE8;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 700;
|
||||
color: #12C7BE;
|
||||
line-height: 0.15rem;
|
||||
flex-shrink: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 步骤文字
|
||||
&__step-text {
|
||||
margin-left: 0.14rem;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 500;
|
||||
color: #334155;
|
||||
line-height: 0.16rem;
|
||||
}
|
||||
|
||||
// 底部统计 + 按钮
|
||||
&__footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: auto;
|
||||
padding-top: 0.06rem;
|
||||
}
|
||||
|
||||
// 统计项
|
||||
&__stat {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 0.2rem;
|
||||
}
|
||||
|
||||
&__stat-label {
|
||||
font-size: 0.13rem;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
line-height: 0.16rem;
|
||||
}
|
||||
|
||||
&__stat-value {
|
||||
font-size: 0.13rem;
|
||||
font-weight: 500;
|
||||
color: #64748B;
|
||||
line-height: 0.16rem;
|
||||
}
|
||||
|
||||
// 成为正式会员按钮
|
||||
&__member-btn {
|
||||
margin-left: auto;
|
||||
width: 1.1rem;
|
||||
height: 0.29rem;
|
||||
background: #F3FFFD;
|
||||
border: 1px solid #BFEFE8;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 400;
|
||||
color: #000000;
|
||||
line-height: 0.16rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
text-align: center;
|
||||
|
||||
&:hover {
|
||||
background: #e8faf8;
|
||||
border-color: $accent;
|
||||
}
|
||||
&__member-btn-arrow {
|
||||
font-size: 0.16rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
.side-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 2rem;
|
||||
width: 2.2rem;
|
||||
height: var(--app-height, 100vh);
|
||||
background: $bg-white;
|
||||
color: #fff;
|
||||
@@ -53,9 +53,10 @@
|
||||
}
|
||||
|
||||
&__item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
gap: 0.04rem;
|
||||
padding: 0.1rem 0.12rem;
|
||||
border-radius: 0.08rem;
|
||||
color: #9598ab;
|
||||
@@ -65,13 +66,17 @@
|
||||
font-size: 0.14rem;
|
||||
|
||||
&:hover {
|
||||
background: $btn-dark;
|
||||
color: #fff;
|
||||
background: #EDF9FA;
|
||||
color: $accent;
|
||||
|
||||
svg{
|
||||
color: $btn-dark;
|
||||
}
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $btn-dark;
|
||||
color: #fff;
|
||||
background: #EDF9FA;
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,10 +84,12 @@
|
||||
width: 0.2rem;
|
||||
height: 0.2rem;
|
||||
object-fit: contain;
|
||||
font-size: 0.16rem;
|
||||
|
||||
}
|
||||
|
||||
&__item-label {
|
||||
flex: 1;
|
||||
|
||||
}
|
||||
|
||||
&__badge {
|
||||
@@ -94,6 +101,46 @@
|
||||
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;
|
||||
}
|
||||
|
||||
// 公测群二维码弹出层(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 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -136,11 +183,21 @@
|
||||
|
||||
.side-nav__dialog-close {
|
||||
cursor: pointer;
|
||||
color: $text-light;
|
||||
font-size: 0.16rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 0.24rem;
|
||||
height: 0.24rem;
|
||||
border-radius: 4px;
|
||||
transition: background 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: $text-dark;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
svg {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,75 +209,116 @@
|
||||
|
||||
// ==================== 消息通知弹窗(左右分栏) ====================
|
||||
.side-nav__message-dialog {
|
||||
background: $bg-white;
|
||||
border-radius: 0.12rem;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.24rem 0.32rem;
|
||||
gap: 0.24rem;
|
||||
width: 8rem;
|
||||
height: 6rem;
|
||||
max-width: 90vw;
|
||||
max-height: 90vh;
|
||||
box-shadow: 0 0.04rem 0.2rem rgba(0, 0, 0, 0.15);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 12.08%);
|
||||
border: 1px solid #F0F0F0;
|
||||
box-shadow: 0 0 0.16rem rgba(0, 0, 0, 0.05);
|
||||
border-radius: 0.12rem;
|
||||
}
|
||||
|
||||
.side-nav__message-dialog-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0.16rem 0.2rem;
|
||||
border-bottom: 1px solid $border-color;
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
width: 100%;
|
||||
flex-shrink: 0;
|
||||
|
||||
span:first-child {
|
||||
font-weight: 620;
|
||||
font-size: 0.18rem;
|
||||
line-height: 0.24rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__message-dialog-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: flex-start;
|
||||
gap: 0.16rem;
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
background: $bg-white;
|
||||
}
|
||||
|
||||
// 左侧消息列表
|
||||
.side-nav__message-list {
|
||||
width: 2.1rem;
|
||||
border-right: 1px solid $border-color;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.04rem;
|
||||
width: 2.24rem;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.side-nav__message-list-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.12rem 0.10rem;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
padding: 0.16rem 0.12rem;
|
||||
border-radius: 0.08rem;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid $border-color;
|
||||
transition: background 0.2s;
|
||||
|
||||
&:hover {
|
||||
background: $bg-main;
|
||||
background: #F6F6F6;
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $theme-color;
|
||||
background: #EDF9FA;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__message-list-title {
|
||||
flex: 1;
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
// 列表项内部行布局
|
||||
.side-nav__message-list-item-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.side-nav__message-list-item-left {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
.side-nav__message-unread-dot {
|
||||
width: 0.08rem;
|
||||
height: 0.08rem;
|
||||
border-radius: 50%;
|
||||
background: $danger;
|
||||
margin-left: 0.06rem;
|
||||
background: $accent;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.side-nav__message-list-title {
|
||||
font-weight: 620;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.19rem;
|
||||
color: $text-dark;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.side-nav__message-list-date {
|
||||
font-weight: 330;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.16rem;
|
||||
color: $text-light;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@@ -235,21 +333,45 @@
|
||||
// 右侧消息详情
|
||||
.side-nav__message-detail {
|
||||
flex: 1;
|
||||
padding: 0.2rem;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
padding: 0.16rem 0.24rem;
|
||||
}
|
||||
|
||||
.side-nav__message-detail-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.side-nav__message-detail-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
font-weight: 630;
|
||||
font-size: 0.22rem;
|
||||
line-height: 0.29rem;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.16rem;
|
||||
}
|
||||
|
||||
.side-nav__message-detail-time {
|
||||
font-weight: 330;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.16rem;
|
||||
color: $text-middle;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.side-nav__message-detail-divider {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
background: #F0F0F0;
|
||||
margin: 0.16rem 0;
|
||||
}
|
||||
|
||||
.side-nav__message-detail-content {
|
||||
font-weight: 330;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.24rem;
|
||||
color: $text-dark;
|
||||
line-height: 1.7;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
}
|
||||
@@ -374,3 +496,299 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 邀请会员卡片 ====================
|
||||
.side-nav__referral-card {
|
||||
width: 100%;
|
||||
background: linear-gradient(128.17deg, #52CAD1 0%, #82D79B 100%);
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.16rem;
|
||||
box-sizing: border-box;
|
||||
margin-top: 0.12rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 630;
|
||||
color: #FFFFFF;
|
||||
line-height: 0.21rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-subtitle {
|
||||
font-size: 0.10rem;
|
||||
font-weight: 330;
|
||||
color: #EAFBFC;
|
||||
line-height: 0.13rem;
|
||||
margin-top: 0.04rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-panel {
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0.02rem 0.06rem rgba(26, 26, 26, 0.05);
|
||||
border-radius: 0.06rem;
|
||||
padding: 0.10rem 0.08rem;
|
||||
margin-top: 0.10rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.side-nav__referral-label {
|
||||
font-size: 0.10rem;
|
||||
font-weight: 330;
|
||||
color: #6B7280;
|
||||
line-height: 0.13rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-value {
|
||||
font-size: 0.10rem;
|
||||
font-weight: 620;
|
||||
color: #52CAD1;
|
||||
line-height: 0.13rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-track {
|
||||
width: 100%;
|
||||
height: 0.02rem;
|
||||
background: #D7F1F3;
|
||||
border-radius: 9999px;
|
||||
margin-top: 0.06rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.side-nav__referral-fill {
|
||||
height: 100%;
|
||||
background: #52CAD1;
|
||||
border-radius: 9999px;
|
||||
}
|
||||
|
||||
.side-nav__referral-divider {
|
||||
width: 100%;
|
||||
border-top: 0.01rem solid #8C8C8C;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
|
||||
.side-nav__referral-tip {
|
||||
font-size: 0.10rem;
|
||||
font-weight: 330;
|
||||
color: #1A1A1A;
|
||||
line-height: 0.13rem;
|
||||
margin-top: 0.08rem;
|
||||
|
||||
strong {
|
||||
font-weight: 630;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__referral-action {
|
||||
font-size: 0.11rem;
|
||||
font-weight: 620;
|
||||
color: #52CAD1;
|
||||
line-height: 0.15rem;
|
||||
text-align: center;
|
||||
margin-top: 0.08rem;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 用户信息模块 ====================
|
||||
.side-nav__user-info {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.12rem 0.16rem;
|
||||
box-sizing: border-box;
|
||||
margin-top: 0.12rem;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&--active {
|
||||
background: #F3F4F6;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__user-left {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
.side-nav__user-phone {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 330;
|
||||
color: #1A1A1A;
|
||||
line-height: 0.19rem;
|
||||
}
|
||||
|
||||
.side-nav__user-member-tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.02rem 0.04rem;
|
||||
border-radius: 0.04rem;
|
||||
font-size: 0.10rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.13rem;
|
||||
width: fit-content;
|
||||
|
||||
// 正式会员:主题色字 + 浅绿底
|
||||
&--formal {
|
||||
color: #52CAD1;
|
||||
background: #EDF9FA;
|
||||
}
|
||||
|
||||
// 试用会员:橙色字 + 浅橙底
|
||||
&--trial {
|
||||
color: #F59E0B;
|
||||
background: #FFFBF5;
|
||||
}
|
||||
|
||||
// 免费用户:中灰字 + 灰底
|
||||
&--free {
|
||||
color: #6A7282;
|
||||
background: #F3F4F6;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__user-bell {
|
||||
width: 0.20rem;
|
||||
height: 0.20rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
opacity: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
// 铃铛右上角未读红点
|
||||
.side-nav__user-bell-dot {
|
||||
position: absolute;
|
||||
top: -0.005rem;
|
||||
right: 0.01rem;
|
||||
width: 0.08rem;
|
||||
height: 0.08rem;
|
||||
background: #EF4444;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
// ==================== 账户弹窗 ====================
|
||||
.side-nav__user-info-wrapper {
|
||||
position: relative;
|
||||
margin-top: 0.12rem;
|
||||
}
|
||||
|
||||
.side-nav__account-popup {
|
||||
position: absolute;
|
||||
bottom: calc(100% + 0.08rem);
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #F0F0F0;
|
||||
box-shadow: 0px 0.02rem 0.08rem rgba(0, 0, 0, 0.04);
|
||||
border-radius: 0.08rem;
|
||||
overflow: hidden;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.side-nav__account-popup-header {
|
||||
padding: 0.16rem;
|
||||
background: linear-gradient(180deg, #EDF9FA 0%, #FFFFFF 38.18%);
|
||||
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 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.side-nav__account-popup-header-left {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
.side-nav__account-popup-member-type {
|
||||
font-size: 0.14rem;
|
||||
font-weight: 450;
|
||||
line-height: 0.19rem;
|
||||
|
||||
// 正式会员 — 主题色
|
||||
&--formal {
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
// 试用会员 — 橙色
|
||||
&--trial {
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
// 免费用户 — 中灰色
|
||||
&--free {
|
||||
color: $text-middle;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__account-popup-expire {
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
color: $text-light;
|
||||
line-height: 0.16rem;
|
||||
}
|
||||
|
||||
.side-nav__account-popup-detail {
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
color: $text-light;
|
||||
line-height: 0.16rem;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
.side-nav__account-popup-item {
|
||||
padding: 0.12rem 0.16rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 330;
|
||||
color: #000000;
|
||||
line-height: 0.16rem;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background: $bg-main;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
// 页面样式
|
||||
@use './pages/home.scss';
|
||||
@use './pages/home-mobile.scss';
|
||||
@use './pages/agent.scss';
|
||||
@use './pages/jobs.scss';
|
||||
@use './pages/resume.scss';
|
||||
@@ -9,6 +10,8 @@
|
||||
@use './pages/job-detail.scss';
|
||||
@use './pages/profile.scss';
|
||||
@use './pages/login.scss';
|
||||
@use './pages/mentor.scss';
|
||||
@use './pages/mentor-detail.scss';
|
||||
|
||||
// 组件样式
|
||||
@use './components/hello-world.scss';
|
||||
@@ -39,6 +42,9 @@
|
||||
@use './components/resume-upload-dialog.scss';
|
||||
@use './components/agreement-preview-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';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
// 主内容区域
|
||||
&__content {
|
||||
margin-left: 2rem;
|
||||
margin-left: 2.2rem;
|
||||
flex: 1;
|
||||
padding: 0.4rem 0.6rem;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,646 @@
|
||||
@use '../variables' as *;
|
||||
|
||||
/* ==================== 移动端首页样式 ==================== */
|
||||
.home-mobile {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
background: #FFFFFF;
|
||||
font-size: 0.14rem;
|
||||
padding-bottom: 0.94rem; /* 底部固定按钮的高度 */
|
||||
overflow-x: hidden;
|
||||
|
||||
/* 背景装饰色块 */
|
||||
&__orb {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
|
||||
&--top {
|
||||
width: 5.40rem;
|
||||
height: 3.00rem;
|
||||
left: -0.80rem;
|
||||
top: -1.20rem;
|
||||
background: rgba(183, 237, 233, 0.58);
|
||||
opacity: 0.5;
|
||||
filter: blur(0.35rem);
|
||||
}
|
||||
|
||||
&--hero {
|
||||
width: 3.00rem;
|
||||
height: 2.20rem;
|
||||
left: 0.64rem;
|
||||
top: 2.10rem;
|
||||
background: #EAF8F7;
|
||||
opacity: 0.55;
|
||||
filter: blur(0.275rem);
|
||||
}
|
||||
}
|
||||
|
||||
/* 顶部 Logo */
|
||||
&__header {
|
||||
position: relative;
|
||||
padding: 0.16rem 0.20rem;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__logo {
|
||||
width: 0.95rem;
|
||||
height: 0.23rem;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
/* Hero 区域 */
|
||||
&__hero {
|
||||
position: relative;
|
||||
padding: 0.30rem 0.24rem 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__eyebrow {
|
||||
font-weight: 700;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #42A8B3;
|
||||
margin-bottom: 0.10rem;
|
||||
}
|
||||
|
||||
&__headline {
|
||||
font-weight: 700;
|
||||
font-size: 0.38rem;
|
||||
line-height: 0.46rem;
|
||||
color: #12383A;
|
||||
margin-bottom: 0.32rem;
|
||||
}
|
||||
|
||||
&__subtitle {
|
||||
font-weight: 400;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.17rem;
|
||||
color: #687074;
|
||||
}
|
||||
|
||||
/* 指令卡片 */
|
||||
&__command-card {
|
||||
position: relative;
|
||||
width: 3.42rem;
|
||||
margin: 0.40rem auto 0;
|
||||
padding: 0.29rem 0.24rem 0.28rem;
|
||||
background: #12383A;
|
||||
box-shadow: 0px 0.16rem 0.28rem rgba(79, 194, 201, 0.16);
|
||||
border-radius: 0.18rem;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__command-title {
|
||||
font-weight: 700;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.19rem;
|
||||
color: #FFFFFF;
|
||||
margin-bottom: 0.11rem;
|
||||
}
|
||||
|
||||
&__command-sub {
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #B7EDE9;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
&__progress {
|
||||
margin-bottom: 0.18rem;
|
||||
}
|
||||
|
||||
&__progress-rail {
|
||||
width: 100%;
|
||||
height: 0.08rem;
|
||||
background: #0F2F32;
|
||||
border-radius: 0.05rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__progress-fill {
|
||||
width: 74%;
|
||||
height: 0.08rem;
|
||||
background: #4FC2C9;
|
||||
border-radius: 0.05rem;
|
||||
}
|
||||
|
||||
&__command-chips {
|
||||
font-weight: 700;
|
||||
font-size: 0.11rem;
|
||||
line-height: 0.13rem;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
/* 数据统计卡片 */
|
||||
&__stats-card {
|
||||
position: relative;
|
||||
width: 3.42rem;
|
||||
margin: 0.23rem auto 0;
|
||||
padding: 0.30rem 0.20rem;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0.12rem 0.22rem rgba(17, 17, 17, 0.07);
|
||||
border-radius: 0.18rem;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__stat {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&__stat-num {
|
||||
display: block;
|
||||
font-weight: 700;
|
||||
font-size: 0.28rem;
|
||||
line-height: 0.34rem;
|
||||
color: #2A8186;
|
||||
margin-bottom: 0.04rem;
|
||||
}
|
||||
|
||||
&__stat-label {
|
||||
font-weight: 400;
|
||||
font-size: 0.11rem;
|
||||
line-height: 0.13rem;
|
||||
color: #8D9399;
|
||||
}
|
||||
|
||||
/* 功能介绍区 */
|
||||
&__functions {
|
||||
position: relative;
|
||||
padding: 0.60rem 0.24rem 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__section-title {
|
||||
font-weight: 700;
|
||||
font-size: 0.24rem;
|
||||
line-height: 0.29rem;
|
||||
color: #111111;
|
||||
margin-bottom: 0.09rem;
|
||||
}
|
||||
|
||||
&__section-sub {
|
||||
font-weight: 400;
|
||||
font-size: 0.13rem;
|
||||
line-height: 0.16rem;
|
||||
color: #687074;
|
||||
margin-bottom: 0.26rem;
|
||||
}
|
||||
|
||||
&__feature-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.20rem;
|
||||
}
|
||||
|
||||
&__feature-card {
|
||||
width: 100%;
|
||||
padding: 0.22rem 0.20rem;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0.10rem 0.18rem rgba(17, 17, 17, 0.06);
|
||||
border-radius: 0.18rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.18rem;
|
||||
}
|
||||
|
||||
&__feature-icon {
|
||||
width: 0.42rem;
|
||||
height: 0.42rem;
|
||||
border-radius: 0.12rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
|
||||
span {
|
||||
font-size: 0.20rem;
|
||||
}
|
||||
}
|
||||
|
||||
&__feature-text {
|
||||
h3 {
|
||||
font-weight: 700;
|
||||
font-size: 0.17rem;
|
||||
line-height: 0.21rem;
|
||||
color: #111111;
|
||||
margin-bottom: 0.06rem;
|
||||
}
|
||||
|
||||
p {
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #687074;
|
||||
}
|
||||
}
|
||||
|
||||
/* 每天都有新机会 */
|
||||
&__jobs-section {
|
||||
position: relative;
|
||||
margin-top: 0.50rem;
|
||||
padding: 0.40rem 0.24rem;
|
||||
background: #DDF4F2;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__job-chips {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.16rem;
|
||||
}
|
||||
|
||||
&__job-chip {
|
||||
padding: 0.14rem 0.20rem;
|
||||
border-radius: 0.14rem;
|
||||
|
||||
&--dark {
|
||||
width: 100%;
|
||||
background: #12383A;
|
||||
|
||||
.home-mobile__job-chip-company {
|
||||
font-weight: 700;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #4FC2C9;
|
||||
}
|
||||
|
||||
.home-mobile__job-chip-role {
|
||||
font-weight: 400;
|
||||
font-size: 0.13rem;
|
||||
line-height: 0.16rem;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
&--light {
|
||||
flex: 1;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0.08rem 0.16rem rgba(17, 17, 17, 0.06);
|
||||
|
||||
.home-mobile__job-chip-company {
|
||||
font-weight: 700;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #42A8B3;
|
||||
}
|
||||
|
||||
.home-mobile__job-chip-role {
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #111111;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__job-chip-company,
|
||||
&__job-chip-role {
|
||||
display: block;
|
||||
}
|
||||
|
||||
&__job-chip-company {
|
||||
margin-bottom: 0.04rem;
|
||||
}
|
||||
|
||||
&__job-chip-row {
|
||||
display: flex;
|
||||
gap: 0.16rem;
|
||||
}
|
||||
|
||||
/* 万千毕业生的信赖之选 */
|
||||
&__proof {
|
||||
position: relative;
|
||||
padding: 0.50rem 0.24rem 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__quote-card {
|
||||
width: 100%;
|
||||
padding: 0.30rem 0.24rem;
|
||||
background: #12383A;
|
||||
border-radius: 0.18rem;
|
||||
margin-top: 0.20rem;
|
||||
}
|
||||
|
||||
&__quote-text {
|
||||
font-weight: 700;
|
||||
font-size: 0.15rem;
|
||||
line-height: 0.18rem;
|
||||
color: #FFFFFF;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
&__quote-author {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.14rem;
|
||||
}
|
||||
|
||||
&__quote-avatar {
|
||||
width: 0.38rem;
|
||||
height: 0.38rem;
|
||||
//background: #D9E3EA;
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__quote-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.04rem;
|
||||
}
|
||||
|
||||
&__quote-name {
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #B7EDE9;
|
||||
}
|
||||
|
||||
&__quote-school {
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #B7EDE9;
|
||||
}
|
||||
|
||||
/* 常见问题 */
|
||||
&__faq {
|
||||
position: relative;
|
||||
padding: 0.50rem 0.24rem 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__faq-list {
|
||||
margin-top: 0.20rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.14rem;
|
||||
}
|
||||
|
||||
&__faq-item {
|
||||
width: 100%;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 0.08rem 0.16rem rgba(17, 17, 17, 0.06);
|
||||
border-radius: 0.14rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__faq-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0.18rem 0.20rem;
|
||||
cursor: pointer;
|
||||
|
||||
span:first-child {
|
||||
font-weight: 700;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.17rem;
|
||||
color: #111111;
|
||||
}
|
||||
}
|
||||
|
||||
&__faq-icon {
|
||||
font-weight: 700;
|
||||
font-size: 0.18rem;
|
||||
line-height: 0.22rem;
|
||||
color: #111111;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__faq-answer {
|
||||
padding: 0 0.20rem 0.18rem;
|
||||
|
||||
p {
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.18rem;
|
||||
color: #687074;
|
||||
}
|
||||
}
|
||||
|
||||
/* 底部 CTA */
|
||||
&__bottom-cta {
|
||||
position: relative;
|
||||
margin-top: 0.50rem;
|
||||
padding: 0.40rem 0.24rem;
|
||||
background: #12383A;
|
||||
z-index: 1;
|
||||
|
||||
h2 {
|
||||
font-weight: 700;
|
||||
font-size: 0.26rem;
|
||||
line-height: 0.31rem;
|
||||
color: #FFFFFF;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
|
||||
p {
|
||||
font-weight: 400;
|
||||
font-size: 0.13rem;
|
||||
line-height: 0.16rem;
|
||||
color: #9AA0A6;
|
||||
margin-bottom: 0.32rem;
|
||||
}
|
||||
}
|
||||
|
||||
&__bottom-footer {
|
||||
font-weight: 700;
|
||||
font-size: 0.13rem;
|
||||
line-height: 0.16rem;
|
||||
color: #4FC2C9;
|
||||
}
|
||||
|
||||
/* 固定底部按钮 */
|
||||
&__fixed-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 0.12rem 0.24rem;
|
||||
padding-bottom: calc(0.12rem + env(safe-area-inset-bottom, 0px));
|
||||
background: #FFFFFF;
|
||||
z-index: 100;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&__pc-hint {
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.15rem;
|
||||
color: #2A8186;
|
||||
margin-bottom: 0.06rem;
|
||||
}
|
||||
|
||||
&__cta-btn {
|
||||
width: calc(100% - 0.48rem);
|
||||
max-width: 3.42rem;
|
||||
height: 0.54rem;
|
||||
background: #4FC2C9;
|
||||
box-shadow: 0px 0.10rem 0.24rem rgba(0, 0, 0, 0.18);
|
||||
border-radius: 0.27rem;
|
||||
border: none;
|
||||
font-weight: 700;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.19rem;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
|
||||
&:active {
|
||||
opacity: 0.85;
|
||||
}
|
||||
}
|
||||
|
||||
/* 弹窗遮罩 */
|
||||
&__overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 200;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* 弹窗内容 */
|
||||
&__dialog {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
background: #FFFFFF;
|
||||
border-radius: 0.24rem;
|
||||
padding: 0.16rem 0.20rem 0.2rem 0.2rem;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
margin: 0 0.16rem 0.24rem 0.16rem;
|
||||
}
|
||||
|
||||
&__dialog-handle {
|
||||
width: 0.60rem;
|
||||
height: 0.04rem;
|
||||
background: #DDF4F2;
|
||||
border-radius: 0.02rem;
|
||||
margin: 0 auto 0.20rem;
|
||||
}
|
||||
|
||||
&__dialog-close {
|
||||
position: absolute;
|
||||
top: 0.16rem;
|
||||
right: 0.20rem;
|
||||
font-size: 0.24rem;
|
||||
color: #42A8B3;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
&__dialog h3 {
|
||||
font-weight: 700;
|
||||
font-size: 0.22rem;
|
||||
line-height: 0.28rem;
|
||||
color: #111111;
|
||||
margin-bottom: 0.14rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&__dialog-desc {
|
||||
font-weight: 400;
|
||||
font-size: 0.13rem;
|
||||
line-height: 0.20rem;
|
||||
color: #687074;
|
||||
margin-bottom: 0.20rem;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&__dialog-url {
|
||||
width: 100%;
|
||||
padding: 0.14rem 0.16rem;
|
||||
background: #EAF8F7;
|
||||
border-radius: 0.12rem;
|
||||
font-weight: 400;
|
||||
font-size: 0.14rem;
|
||||
color: #111111;
|
||||
text-align: left;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
&__dialog-qr-title {
|
||||
font-weight: 700;
|
||||
font-size: 0.14rem;
|
||||
color: #111111;
|
||||
text-align: left;
|
||||
margin-bottom: 0.14rem;
|
||||
}
|
||||
|
||||
&__dialog-qr {
|
||||
width: 2.00rem;
|
||||
height: 2.00rem;
|
||||
margin: 0 auto 0.12rem;
|
||||
border-radius: 0.08rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: #EAF8F7;
|
||||
-webkit-touch-callout: default;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
&__dialog-qr-img {
|
||||
width: 1.60rem;
|
||||
height: 1.60rem;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
&__dialog-qr-hint {
|
||||
font-size: 0.11rem;
|
||||
color: #8D9399;
|
||||
margin-bottom: 0.14rem;
|
||||
}
|
||||
|
||||
&__dialog-btn {
|
||||
width: 100%;
|
||||
height: 0.50rem;
|
||||
background: #4FC2C9;
|
||||
border-radius: 0.25rem;
|
||||
border: none;
|
||||
font-weight: 700;
|
||||
font-size: 0.16rem;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
|
||||
&:active {
|
||||
opacity: 0.85;
|
||||
}
|
||||
}
|
||||
|
||||
/* 保存成功提示 toast */
|
||||
&__toast {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
color: #FFFFFF;
|
||||
font-size: 0.14rem;
|
||||
padding: 0.12rem 0.24rem;
|
||||
border-radius: 0.08rem;
|
||||
z-index: 300;
|
||||
pointer-events: none;
|
||||
animation: toastFadeIn 0.2s ease;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes toastFadeIn {
|
||||
from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); }
|
||||
to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
|
||||
}
|
||||
@@ -142,18 +142,21 @@
|
||||
|
||||
// 主标题
|
||||
&__title {
|
||||
font-size: 0.54rem;
|
||||
font-size: 0.48rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.71rem;
|
||||
letter-spacing: -0.03rem;
|
||||
line-height: 0.61rem;
|
||||
letter-spacing: 0.03rem;
|
||||
color: #111;
|
||||
margin: 0;
|
||||
>span{
|
||||
width: 1.51rem;
|
||||
}
|
||||
}
|
||||
|
||||
// 副标题描述
|
||||
&__desc {
|
||||
font-size: 0.2rem;
|
||||
line-height: 0.325rem;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.2rem;
|
||||
color: #9ca3af;
|
||||
margin-top: 0.1rem;
|
||||
}
|
||||
@@ -162,12 +165,11 @@
|
||||
&__cta {
|
||||
margin-top: 0.69rem;
|
||||
width: 1.84rem;
|
||||
height: 0.56rem;
|
||||
//line-height: 0.24rem;
|
||||
height: 0.52rem;
|
||||
border-radius: 0.16rem;
|
||||
background: linear-gradient(90deg, rgba(82, 202, 209, 1) 0%, rgba(83, 217, 200, 1) 100%);
|
||||
background: $accent;
|
||||
color: #fff;
|
||||
font-size: 0.18rem;
|
||||
font-size: 0.15rem;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
@@ -178,8 +180,9 @@
|
||||
// 右侧卡片区
|
||||
&__right {
|
||||
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;
|
||||
background: #FCFEFE;
|
||||
}
|
||||
|
||||
&__right-top{
|
||||
@@ -365,25 +368,25 @@
|
||||
.stat-card {
|
||||
background: #fff;
|
||||
border-radius: 0.16rem;
|
||||
width: 2.03rem;
|
||||
height: 1.87rem;
|
||||
width: 1.9rem;
|
||||
height: 1.9rem;
|
||||
text-align: center;
|
||||
padding-top:0.38rem;
|
||||
box-shadow: 0 0.06rem 0.2rem rgba(0, 0, 0, 0.05);
|
||||
|
||||
// 大数字
|
||||
&__num {
|
||||
font-size: 0.48rem;
|
||||
font-size: 0.38rem;
|
||||
font-weight: 900;
|
||||
color: #52CAD1;
|
||||
color: #2A8186;
|
||||
line-height: 0.63rem;
|
||||
}
|
||||
|
||||
// 描述文字
|
||||
&__label {
|
||||
font-size: 0.16rem;
|
||||
font-size: 0.13rem;
|
||||
line-height: 0.22rem;
|
||||
color: #9ca3af;
|
||||
color: #8D9399;
|
||||
margin-top: 0.12rem;
|
||||
letter-spacing: 0.0035rem;
|
||||
}
|
||||
@@ -391,7 +394,7 @@
|
||||
|
||||
// ==================== 岗位展示区 ====================
|
||||
.home-jobs-showcase {
|
||||
padding: 1rem 0;
|
||||
padding: 0.85rem 0 0.7rem 0;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
@@ -441,20 +444,20 @@
|
||||
|
||||
// 副标题
|
||||
&__sub {
|
||||
font-size: 0.2rem;
|
||||
font-size: 0.15rem;
|
||||
line-height: 0.28rem;
|
||||
color: #999;
|
||||
margin-top: 0.2rem;
|
||||
margin-top: 0.19rem;
|
||||
}
|
||||
|
||||
// 玻璃态展示盒子
|
||||
&__box {
|
||||
margin-top: 0.6rem;
|
||||
margin-top: 0.87rem;
|
||||
background: 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);
|
||||
backdrop-filter: blur(100px);
|
||||
border-radius: 0.4rem;
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.64rem 0;
|
||||
}
|
||||
|
||||
@@ -472,7 +475,7 @@
|
||||
|
||||
.ticker-track {
|
||||
display: flex;
|
||||
gap: 0.16rem;
|
||||
gap: 0.30rem;
|
||||
width: max-content;
|
||||
animation: ticker-scroll 20s linear infinite;
|
||||
}
|
||||
@@ -483,16 +486,16 @@
|
||||
.showcase-stat {
|
||||
text-align: center;
|
||||
&__num {
|
||||
font-size: 0.48rem;
|
||||
font-size: 0.40rem;
|
||||
line-height: 0.6rem;
|
||||
font-weight: 900;
|
||||
color: #1d1d1d;
|
||||
.accent { color: $accent; }
|
||||
color: #2A8186;
|
||||
.accent { color: #2A8186; }
|
||||
}
|
||||
&__label {
|
||||
font-size: 0.18rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.28rem;
|
||||
color: #64748b;
|
||||
color: #8D9399;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
}
|
||||
@@ -500,7 +503,7 @@
|
||||
// 单个岗位滚动卡片
|
||||
.job-ticker {
|
||||
flex-shrink: 0;
|
||||
background: rgba(30, 30, 46, 0.9);
|
||||
background: #12383A;
|
||||
backdrop-filter: blur(36px);
|
||||
border-radius: 0.12rem;
|
||||
padding: 0.2rem 0.24rem;
|
||||
@@ -545,16 +548,17 @@
|
||||
min-width: 0;
|
||||
|
||||
h2 {
|
||||
font-size: 0.48rem;
|
||||
font-size: 0.34rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.63rem;
|
||||
line-height: 0.43rem;
|
||||
letter-spacing: 0.02rem;
|
||||
color: #111;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 0.2rem;
|
||||
line-height: 0.325rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.2rem;
|
||||
color: #999;
|
||||
margin-top: 0.16rem;
|
||||
}
|
||||
@@ -566,12 +570,13 @@
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
padding: 0.15rem 0.4rem;
|
||||
border-radius: 0.16rem;
|
||||
background: #111111;
|
||||
padding: 0 0.22rem;
|
||||
border-radius: 0.12rem;
|
||||
background: $accent;
|
||||
color: #fff;
|
||||
font-size: 0.16rem;
|
||||
line-height: 0.28rem;
|
||||
font-size: 0.12rem;
|
||||
height: 0.42rem;
|
||||
line-height: 0.42rem;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
@@ -582,7 +587,8 @@
|
||||
}
|
||||
svg {
|
||||
flex-shrink: 0;
|
||||
color: $btn-dark;
|
||||
color: #fff;
|
||||
font-size: 0.12rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1069,7 +1075,7 @@
|
||||
margin-bottom: 0.8rem;
|
||||
|
||||
h2 {
|
||||
font-size: 0.48rem;
|
||||
font-size: 0.38rem;
|
||||
line-height: 0.48rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.012rem;
|
||||
@@ -1077,12 +1083,12 @@
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 0.16rem;
|
||||
font-size: 0.15rem;
|
||||
line-height: 0.24rem;
|
||||
color: #9ca3af;
|
||||
letter-spacing: 0.0rem;
|
||||
text-transform: uppercase;
|
||||
margin-top: 0.24rem;
|
||||
margin-top: 0.14rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1612,10 +1618,18 @@
|
||||
margin: 0.6rem auto 0;
|
||||
text-align: center;
|
||||
padding-top: 0.4rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.2rem;
|
||||
|
||||
|
||||
p {
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.16rem;
|
||||
color: #9ca3af;
|
||||
}
|
||||
a{
|
||||
font-size: 0.12rem;
|
||||
text-decoration: none;
|
||||
color: #9ca3af;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
// ==================== 岗位详情页 ====================
|
||||
.job-detail {
|
||||
&__content {
|
||||
margin-left: 2rem;
|
||||
margin-right: var(--chat-width, 4.0rem);
|
||||
margin-left: 2.2rem;
|
||||
margin-right: var(--chat-width, 3.6rem);
|
||||
flex: 1;
|
||||
padding: 0.12rem 0.12rem 0.12rem 0.12rem;
|
||||
height: var(--app-height, 100vh);
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
@@ -14,155 +13,169 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 0.14rem;
|
||||
}
|
||||
|
||||
// 手动包裹的两层 div,需要撑满剩余高度并允许内部滚动
|
||||
> .bg-white {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
> .bg-main {
|
||||
// ---- 主内容卡片 ----
|
||||
&__main-card {
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
margin: 0.16rem 0.24rem;
|
||||
background: $bg-white;
|
||||
border: 1px solid #F0F0F0;
|
||||
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.04);
|
||||
border-radius: 0.08rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 返回按钮 ----
|
||||
&__back-row {
|
||||
padding: 0.24rem 0.32rem 0;
|
||||
}
|
||||
|
||||
// ---- 页面标题 ----
|
||||
&__header {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&__page-title {
|
||||
font-size: 0.24rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
&__page-subtitle {
|
||||
font-size: 0.13rem;
|
||||
color: $text-light;
|
||||
margin: 0.02rem 0 0 0;
|
||||
}
|
||||
|
||||
// ---- Tab 切换 ----
|
||||
&__tabs {
|
||||
display: inline-flex;
|
||||
&__back-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
margin: 0.1rem 0 0.16rem 0;
|
||||
background: $bg-white;
|
||||
border-radius: 0.22rem;
|
||||
padding: 0.04rem;
|
||||
}
|
||||
|
||||
&__tab {
|
||||
font-size: 0.13rem;
|
||||
color: $text-light;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
padding: 0.06rem 0.22rem;
|
||||
border-radius: 0.18rem;
|
||||
transition: all 0.25s ease;
|
||||
user-select: none;
|
||||
font-weight: 500;
|
||||
color: $text-middle;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.19rem;
|
||||
padding: 0;
|
||||
|
||||
&:hover {
|
||||
color: $text-dark;
|
||||
background: $theme-color;
|
||||
}
|
||||
}
|
||||
|
||||
&__back-icon {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
}
|
||||
|
||||
// ---- 内容区域(可滚动) ----
|
||||
&__body {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
padding: 0.24rem 0.32rem 0.4rem;
|
||||
}
|
||||
|
||||
// ---- 岗位头部信息区域 ----
|
||||
&__header-section {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.24rem;
|
||||
}
|
||||
|
||||
// ---- 左侧基本信息 ----
|
||||
&__basic-info {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__title-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
margin-bottom: 0.08rem;
|
||||
}
|
||||
|
||||
&__job-title {
|
||||
font-size: 0.24rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.32rem;
|
||||
color: $text-dark;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__fav-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 0.2rem;
|
||||
height: 0.2rem;
|
||||
flex-shrink: 0;
|
||||
color: #8C8C8C;
|
||||
transition: color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: $danger;
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
color: $danger;
|
||||
|
||||
.job-detail__fav-icon path {
|
||||
fill: currentColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__fav-icon {
|
||||
width: 0.18rem;
|
||||
height: 0.18rem;
|
||||
}
|
||||
|
||||
&__meta-row {
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.16rem;
|
||||
color: $text-middle;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
|
||||
&__meta-dot {
|
||||
margin: 0 0.06rem;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
// ---- 操作按钮 ----
|
||||
&__action-btns {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.16rem;
|
||||
}
|
||||
|
||||
&__nova-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.08rem 0.16rem;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.08rem;
|
||||
background: $bg-white;
|
||||
color: $accent;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 600;
|
||||
box-shadow: 0 0.02rem 0.08rem rgba(79, 194, 201, 0.3);
|
||||
|
||||
&:hover {
|
||||
background: $accent-hover;
|
||||
color: $bg-white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 顶部操作栏 ----
|
||||
&__toolbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.14rem;
|
||||
}
|
||||
|
||||
&__close-btn {
|
||||
width: 0.32rem;
|
||||
height: 0.32rem;
|
||||
border-radius: 50%;
|
||||
border: 1px solid $border-color;
|
||||
background: $bg-white;
|
||||
color: $text-dark;
|
||||
line-height: 0.19rem;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
background: $theme-color;
|
||||
border-color: $accent;
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
&__close-icon {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
}
|
||||
|
||||
&__toolbar-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.1rem;
|
||||
}
|
||||
|
||||
&__tool-btn {
|
||||
width: 0.32rem;
|
||||
height: 0.32rem;
|
||||
border-radius: 50%;
|
||||
border: 1px solid $border-color;
|
||||
background: $bg-white;
|
||||
color: $text-light;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: $accent;
|
||||
border-color: $accent;
|
||||
background: $theme-color;
|
||||
}
|
||||
}
|
||||
|
||||
&__tool-icon {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
}
|
||||
|
||||
&__apply-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 0.88rem;
|
||||
height: 0.37rem;
|
||||
line-height: 0.37rem;
|
||||
background: $accent;
|
||||
border: 1px solid $accent;
|
||||
border-radius: 0.08rem;
|
||||
color: $bg-white;
|
||||
border: none;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0.07rem 0.22rem;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 500;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
|
||||
@@ -171,225 +184,95 @@
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 内容区域 ----
|
||||
&__body {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.14rem;
|
||||
padding-bottom: 0.4rem;
|
||||
padding-right: 0.05rem;
|
||||
}
|
||||
|
||||
// ---- 导航 Tab ----
|
||||
&__nav-tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.2rem;
|
||||
margin-bottom: 0.04rem;
|
||||
}
|
||||
|
||||
&__nav-tab {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
color: $text-light;
|
||||
cursor: pointer;
|
||||
padding-bottom: 0.06rem;
|
||||
border-bottom: 2px solid transparent;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&--active {
|
||||
color: $text-dark;
|
||||
border-bottom-color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
&__nav-tab-right {
|
||||
margin-left: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.16rem;
|
||||
padding-right: 0.05rem;
|
||||
}
|
||||
|
||||
&__link-btn {
|
||||
font-size: 0.12rem;
|
||||
color: $text-light;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 卡片 ----
|
||||
&__card {
|
||||
background: $bg-white;
|
||||
border-radius: 0.12rem;
|
||||
padding: 0.22rem 0.24rem;
|
||||
}
|
||||
|
||||
&__card-top {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
gap: 0.3rem;
|
||||
}
|
||||
|
||||
&__card-left {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// ---- 公司 & 职位头部 ----
|
||||
&__company-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.1rem;
|
||||
margin-bottom: 0.1rem;
|
||||
}
|
||||
|
||||
&__company-icon {
|
||||
width: 0.36rem;
|
||||
height: 0.36rem;
|
||||
// ---- 右侧匹配度卡片 ----
|
||||
&__match-card {
|
||||
flex-shrink: 0;
|
||||
width: 2.06rem;
|
||||
border-radius: 0.08rem;
|
||||
background: $theme-color;
|
||||
padding: 0.16rem 0.24rem;
|
||||
border: 1px solid #9FD051;
|
||||
background: #FBFDF7;
|
||||
}
|
||||
|
||||
// 高匹配度
|
||||
&__match-card--high {
|
||||
background: #FBFDF7;
|
||||
border-color: #9FD051;
|
||||
}
|
||||
|
||||
// 中匹配度
|
||||
&__match-card--medium {
|
||||
background: #FFFBF5;
|
||||
border-color: #F59E0B;
|
||||
}
|
||||
|
||||
// 低匹配度
|
||||
&__match-card--low {
|
||||
background: #FFF6F5;
|
||||
border-color: #FE6D52;
|
||||
}
|
||||
|
||||
&__match-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px solid $border-color;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__company-svg {
|
||||
width: 0.2rem;
|
||||
height: 0.2rem;
|
||||
color: $accent;
|
||||
}
|
||||
|
||||
&__company-name {
|
||||
font-size: 0.15rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__job-title {
|
||||
font-size: 0.2rem;
|
||||
font-weight: 700;
|
||||
color: $text-dark;
|
||||
margin: 0 0 0.1rem 0;
|
||||
}
|
||||
|
||||
&__job-meta {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.2rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__meta-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.05rem;
|
||||
font-size: 0.12rem;
|
||||
color: $text-light;
|
||||
}
|
||||
|
||||
&__meta-icon {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
color: $text-light;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
// ---- 匹配度 ----
|
||||
&__match-area {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__match-ring {
|
||||
position: relative;
|
||||
width: 0.72rem;
|
||||
height: 0.72rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&__ring-svg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
align-items: baseline;
|
||||
gap: 0.08rem;
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
&__match-score {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 700;
|
||||
color: $accent-hover;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
font-size: 0.3rem;
|
||||
font-weight: 630;
|
||||
line-height: 0.4rem;
|
||||
color: #9FD051;
|
||||
}
|
||||
|
||||
&__match-label {
|
||||
font-size: 0.1rem;
|
||||
color: $text-light;
|
||||
margin-top: 0.04rem;
|
||||
font-size: 0.13rem;
|
||||
font-weight: 620;
|
||||
line-height: 0.17rem;
|
||||
color: #9FD051;
|
||||
}
|
||||
|
||||
&__match-details {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
margin-top: 0.12rem;
|
||||
// 高匹配度文字色
|
||||
&__match-card--high &__match-score,
|
||||
&__match-card--high &__match-label {
|
||||
color: #9FD051;
|
||||
}
|
||||
|
||||
&__match-item {
|
||||
// 中匹配度文字色
|
||||
&__match-card--medium &__match-score,
|
||||
&__match-card--medium &__match-label {
|
||||
color: #F59E0B;
|
||||
}
|
||||
|
||||
// 低匹配度文字色
|
||||
&__match-card--low &__match-score,
|
||||
&__match-card--low &__match-label {
|
||||
color: #FE6D52;
|
||||
}
|
||||
|
||||
&__match-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 0.03rem;
|
||||
gap: 0.12rem;
|
||||
}
|
||||
|
||||
&__match-mini-ring {
|
||||
position: relative;
|
||||
width: 0.4rem;
|
||||
height: 0.4rem;
|
||||
&__match-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__mini-ring-svg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
&__match-row-label {
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.16rem;
|
||||
color: #6B7280;
|
||||
}
|
||||
|
||||
&__mini-score {
|
||||
font-size: 0.1rem;
|
||||
font-weight: 600;
|
||||
&__match-row-score {
|
||||
font-size: 0.12rem;
|
||||
line-height: 0.16rem;
|
||||
color: $text-dark;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&__match-item-label {
|
||||
font-size: 0.09rem;
|
||||
color: $text-light;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
// ---- 优化简历提示条 ----
|
||||
@@ -397,93 +280,70 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background: linear-gradient(90deg, #94EF9E , #53D9C8 );
|
||||
color: $bg-white;
|
||||
border-radius: 0.1rem;
|
||||
padding: 0.14rem 0.2rem;
|
||||
font-size: 0.13rem;
|
||||
background: linear-gradient(270deg, rgba(159, 208, 81, 0.1) 0%, rgba(82, 202, 209, 0.1) 62.02%);
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.12rem 0.24rem;
|
||||
margin-bottom: 0.32rem;
|
||||
}
|
||||
|
||||
&__optimize-text {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.21rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__optimize-btn {
|
||||
background: $bg-white;
|
||||
color: $text-dark;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0.08rem 0.16rem;
|
||||
background: #52CAD1;
|
||||
border: none;
|
||||
border-radius: 0.06rem;
|
||||
padding: 0.07rem 0.18rem;
|
||||
font-size: 0.12rem;
|
||||
font-weight: 500;
|
||||
border-radius: 0.08rem;
|
||||
color: $bg-white;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.19rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
white-space: nowrap;
|
||||
transition: background 0.2s;
|
||||
|
||||
&:hover {
|
||||
background: $theme-color;
|
||||
color: $accent-hover;
|
||||
background: $btn-dark-hover;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 描述文本 ----
|
||||
&__desc-text {
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
line-height: 1.8;
|
||||
margin: 0 0 0.12rem 0;
|
||||
// ---- 内容区块 ----
|
||||
&__section {
|
||||
margin-bottom: 0.32rem;
|
||||
}
|
||||
|
||||
// ---- 标签 ----
|
||||
&__tag-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
&__tag {
|
||||
font-size: 0.12rem;
|
||||
color: $text-dark;
|
||||
background: $bg-main;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.04rem;
|
||||
padding: 0.04rem 0.14rem;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: $accent;
|
||||
color: $accent;
|
||||
background: $theme-color;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 区块标题 ----
|
||||
&__section-title {
|
||||
font-size: 0.17rem;
|
||||
font-weight: 700;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.24rem;
|
||||
color: $text-dark;
|
||||
margin: 0 0 0.14rem 0;
|
||||
margin: 0 0 0.16rem 0;
|
||||
}
|
||||
|
||||
&__section-header {
|
||||
&__section-list {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.14rem;
|
||||
|
||||
.job-detail__section-title {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
flex-direction: column;
|
||||
gap: 0.12rem;
|
||||
}
|
||||
|
||||
&__skill-hint {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
font-size: 0.11rem;
|
||||
color: $text-light;
|
||||
&__section-item {
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.19rem;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
&__hint-icon {
|
||||
width: 0.12rem;
|
||||
height: 0.12rem;
|
||||
flex-shrink: 0;
|
||||
&__bonus-item {
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.19rem;
|
||||
color: $text-dark;
|
||||
margin-top: 0.12rem;
|
||||
}
|
||||
|
||||
// ---- 技能标签 ----
|
||||
@@ -491,161 +351,86 @@
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.08rem;
|
||||
margin-bottom: 0.16rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
|
||||
&__skill-tag {
|
||||
display: inline-flex;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
justify-content: center;
|
||||
padding: 0.04rem 0.06rem;
|
||||
font-size: 0.12rem;
|
||||
color: $text-dark;
|
||||
background: $bg-main;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0.05rem 0.14rem;
|
||||
transition: all 0.2s;
|
||||
line-height: 0.18rem;
|
||||
color: $text-middle;
|
||||
background: #F3F4F6;
|
||||
border-radius: 0.04rem;
|
||||
|
||||
&--matched {
|
||||
background: $theme-color;
|
||||
border-color: $accent;
|
||||
color: $accent-hover;
|
||||
}
|
||||
}
|
||||
|
||||
&__skill-close {
|
||||
width: 0.1rem;
|
||||
height: 0.1rem;
|
||||
color: $accent;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
// ---- 列表 ----
|
||||
&__list {
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
line-height: 2;
|
||||
margin: 0;
|
||||
padding-left: 0.2rem;
|
||||
|
||||
li {
|
||||
padding-left: 0.04rem;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 公司信息 ----
|
||||
&__company-info {
|
||||
display: flex;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
|
||||
&__company-info-left {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__company-header {
|
||||
// ---- 公司概况 ----
|
||||
&__company-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.1rem;
|
||||
gap: 0.12rem;
|
||||
margin-bottom: 0.12rem;
|
||||
}
|
||||
|
||||
&__company-logo {
|
||||
width: 0.36rem;
|
||||
height: 0.36rem;
|
||||
border-radius: 50%;
|
||||
background: $bg-main;
|
||||
width: 0.48rem;
|
||||
height: 0.48rem;
|
||||
border-radius: 0.08rem;
|
||||
background: #EDF9FA;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 1px solid $border-color;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__company-info-name {
|
||||
font-size: 0.16rem;
|
||||
&__company-logo-img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
&__company-svg {
|
||||
width: 0.32rem;
|
||||
height: 0.32rem;
|
||||
color: #52CAD1;
|
||||
}
|
||||
|
||||
&__company-name-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.06rem;
|
||||
}
|
||||
|
||||
&__company-name {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
line-height: 0.24rem;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
&__company-sub {
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.19rem;
|
||||
color: $text-middle;
|
||||
}
|
||||
|
||||
&__company-desc {
|
||||
font-size: 0.12rem;
|
||||
color: $text-dark;
|
||||
line-height: 1.8;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__company-info-right {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.08rem;
|
||||
max-width: 45%;
|
||||
}
|
||||
|
||||
&__company-meta-item {
|
||||
font-size: 0.12rem;
|
||||
color: $text-dark;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
&__meta-label {
|
||||
color: $text-light;
|
||||
}
|
||||
|
||||
&__company-link {
|
||||
color: $accent;
|
||||
text-decoration: none;
|
||||
transition: color 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: $accent-hover;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 融资 ----
|
||||
&__funding-label {
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
}
|
||||
|
||||
// ---- 最新动态 ----
|
||||
&__news-list {
|
||||
display: flex;
|
||||
gap: 0.14rem;
|
||||
}
|
||||
|
||||
&__news-item {
|
||||
flex: 1;
|
||||
background: $bg-main;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.14rem 0.16rem;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: $accent;
|
||||
background: $theme-color;
|
||||
}
|
||||
}
|
||||
|
||||
&__news-title {
|
||||
font-size: 0.13rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin: 0 0 0.06rem 0;
|
||||
}
|
||||
|
||||
&__news-desc {
|
||||
font-size: 0.11rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.24rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- 骨架屏区域 ----
|
||||
.job-detail__skeleton {
|
||||
padding: 0.32rem;
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
|
||||
img{
|
||||
width: 1.6rem;
|
||||
@@ -230,12 +230,12 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.24rem;
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
}
|
||||
|
||||
/* 标题 */
|
||||
.login-view__heading {
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.05rem;
|
||||
@@ -243,15 +243,16 @@
|
||||
|
||||
.login-view__title {
|
||||
font-weight: 700;
|
||||
font-size: 0.18rem;
|
||||
font-size: 0.24rem;
|
||||
line-height: 0.22rem;
|
||||
color: #18181A;
|
||||
}
|
||||
|
||||
.login-view__subtitle {
|
||||
font-weight: 400;
|
||||
font-size: 0.10rem;
|
||||
line-height: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
margin-top: 0.08rem;
|
||||
margin-bottom: 0.08rem;
|
||||
color: #616367;
|
||||
|
||||
>span:nth-child(2){
|
||||
@@ -264,12 +265,12 @@
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 3.41rem;
|
||||
height: 0.40rem;
|
||||
width: 4rem;
|
||||
height: 0.56rem;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #C8C9CD;
|
||||
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 {
|
||||
margin-left: 0.06rem;
|
||||
font-weight: 500;
|
||||
font-size: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.15rem;
|
||||
color: #202124;
|
||||
white-space: nowrap;
|
||||
@@ -330,7 +331,7 @@
|
||||
border: none;
|
||||
background: transparent;
|
||||
font-weight: 400;
|
||||
font-size: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.15rem;
|
||||
color: #202124;
|
||||
outline: none;
|
||||
@@ -342,14 +343,14 @@
|
||||
|
||||
/* ==================== 发送验证码按钮(步骤一) ==================== */
|
||||
.login-view__send-btn {
|
||||
width: 3.41rem;
|
||||
height: 0.40rem;
|
||||
width: 4rem;
|
||||
height: 0.43rem;
|
||||
background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%);
|
||||
box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15);
|
||||
border-radius: 0.08rem;
|
||||
border-radius: 0.12rem;
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
font-size: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.15rem;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
@@ -391,8 +392,8 @@
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 0.42rem;
|
||||
height: 0.46rem;
|
||||
width: 0.56rem;
|
||||
height: 0.56rem;
|
||||
background: #FAFBFC;
|
||||
border: 1px solid #E2E8F0;
|
||||
border-radius: 0.12rem;
|
||||
@@ -401,12 +402,12 @@
|
||||
|
||||
.login-view__otp-box--active {
|
||||
background: #F3FFFD;
|
||||
border: 2px solid #12C7BE;
|
||||
border: 1px solid $accent;
|
||||
}
|
||||
|
||||
.login-view__otp-box--filled {
|
||||
background: #F3FFFD;
|
||||
border: 2px solid #12C7BE;
|
||||
border: 2px solid $accent;
|
||||
}
|
||||
|
||||
.login-view__otp-digit {
|
||||
@@ -421,7 +422,7 @@
|
||||
display: inline-block;
|
||||
width: 2px;
|
||||
height: 0.28rem;
|
||||
background: #12C7BE;
|
||||
background: $accent;
|
||||
border-radius: 1px;
|
||||
animation: login-otp-blink 1s ease-in-out infinite;
|
||||
}
|
||||
@@ -444,14 +445,14 @@
|
||||
}
|
||||
|
||||
.login-view__sms-status--error {
|
||||
color: #E85635;
|
||||
color: #EF4444;
|
||||
}
|
||||
|
||||
/* ==================== 状态按钮(步骤二) ==================== */
|
||||
.login-view__status-btn {
|
||||
width: 100%;
|
||||
height: 0.4rem;
|
||||
background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%);
|
||||
height: 0.43rem;
|
||||
background: linear-gradient(90deg, $btn-dark 0%, $btn-dark-hover 100%);
|
||||
border-radius: 0.12rem;
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
@@ -494,7 +495,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.06rem;
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
}
|
||||
|
||||
.login-view__checkbox {
|
||||
@@ -547,7 +548,7 @@
|
||||
|
||||
/* ==================== 简历上传阶段 — 右侧面板 ==================== */
|
||||
.login-view__form-wrap--resume {
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
}
|
||||
|
||||
/* 上传区域 */
|
||||
@@ -565,7 +566,7 @@
|
||||
transition: border-color 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: #12C7BE;
|
||||
border-color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -592,15 +593,16 @@
|
||||
|
||||
.login-view__upload-btn {
|
||||
height: 0.4rem;
|
||||
line-height: 0.4rem;
|
||||
background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%);
|
||||
line-height: 0.43rem;
|
||||
background: linear-gradient(90deg, $btn-dark 0%, $btn-dark-hover 100%);
|
||||
border: none;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.16rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 600;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s;
|
||||
margin-bottom: -0.1rem;
|
||||
|
||||
&:hover {
|
||||
opacity: 0.9;
|
||||
@@ -610,7 +612,7 @@
|
||||
/* 解析中状态 — 新版步骤面板 */
|
||||
.login-view__parse-panel {
|
||||
box-sizing: border-box;
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
padding: 0.24rem;
|
||||
background: #F6FFFF;
|
||||
border: 1px solid #D6F1EF;
|
||||
@@ -767,13 +769,13 @@
|
||||
|
||||
/* 解析中按钮(禁用样式) */
|
||||
.login-view__parse-btn {
|
||||
width: 3.41rem;
|
||||
height: 0.40rem;
|
||||
width: 4rem;
|
||||
height: 0.43rem;
|
||||
background: #A6EAE7;
|
||||
border-radius: 0.08rem;
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
font-size: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.15rem;
|
||||
color: #FFFFFF;
|
||||
cursor: not-allowed;
|
||||
@@ -782,7 +784,7 @@
|
||||
/* ==================== 状态4:上传成功面板 ==================== */
|
||||
.login-view__success-panel {
|
||||
box-sizing: border-box;
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
padding: 0.28rem 0.24rem;
|
||||
background: #F6FFFB;
|
||||
border: 1px solid #BCEED7;
|
||||
@@ -863,13 +865,13 @@
|
||||
|
||||
/* 进入后台按钮 */
|
||||
.login-view__success-btn {
|
||||
width: 3.41rem;
|
||||
height: 0.40rem;
|
||||
width: 4rem;
|
||||
height: 0.43rem;
|
||||
background: #4FC2C9;
|
||||
border-radius: 0.08rem;
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
font-size: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.15rem;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
@@ -883,7 +885,7 @@
|
||||
/* ==================== 状态3:上传失败面板 ==================== */
|
||||
.login-view__failed-panel {
|
||||
box-sizing: border-box;
|
||||
width: 3.41rem;
|
||||
width: 4rem;
|
||||
padding: 0.28rem 0.24rem;
|
||||
background: #FFFBFA;
|
||||
border: 1px solid #FADBD5;
|
||||
@@ -964,14 +966,14 @@
|
||||
|
||||
/* 重新上传按钮 */
|
||||
.login-view__failed-btn {
|
||||
width: 3.41rem;
|
||||
height: 0.40rem;
|
||||
width: 4rem;
|
||||
height: 0.43rem;
|
||||
background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%);
|
||||
box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15);
|
||||
border-radius: 0.08rem;
|
||||
border: none;
|
||||
font-weight: 600;
|
||||
font-size: 0.12rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.15rem;
|
||||
color: #FFFFFF;
|
||||
cursor: pointer;
|
||||
@@ -990,4 +992,5 @@
|
||||
color: #999;
|
||||
padding-top: 0.3rem;
|
||||
border-top: 1px solid #E7F2F3;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,298 @@
|
||||
@use '../variables' as *;
|
||||
|
||||
// ==================== 导师详情页样式 ====================
|
||||
|
||||
.mentor-detail {
|
||||
font-size: 0.14rem;
|
||||
width: 100%;
|
||||
height: var(--app-height, 100vh);
|
||||
background: $bg-main;
|
||||
overflow: hidden;
|
||||
|
||||
// 主体区域
|
||||
&__body {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
margin-left: 2.2rem;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
// 左侧主内容区
|
||||
&__main {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// 右侧广告区域
|
||||
&__aside {
|
||||
width: 3.6rem;
|
||||
flex-shrink: 0;
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
// 页面标题
|
||||
&__page-title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
flex-shrink: 0;
|
||||
padding: 0.16rem 0.24rem;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
// 返回按钮
|
||||
&__back {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.04rem;
|
||||
font-size: 0.13rem;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
margin: 0.16rem 0.24rem;
|
||||
flex-shrink: 0;
|
||||
|
||||
&:hover {
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
&__back-icon {
|
||||
width: 0.14rem;
|
||||
height: 0.14rem;
|
||||
}
|
||||
|
||||
// 滚动容器
|
||||
&__scroll {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
padding-bottom: 0.24rem;
|
||||
margin:0 0.24rem 0.16rem 0.24rem;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: $border-color;
|
||||
border-radius: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
// 通用卡片
|
||||
&__card {
|
||||
background: $bg-white;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0.4rem 0.32rem;
|
||||
margin-bottom: 0.16rem;
|
||||
}
|
||||
|
||||
// ==================== 导师信息卡片 ====================
|
||||
|
||||
&__info-card {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: space-between;
|
||||
gap: 0.2rem;
|
||||
}
|
||||
|
||||
&__info-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.16rem;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// 头像
|
||||
&__avatar-wrap {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__avatar {
|
||||
width: 1.04rem;
|
||||
height: 1.04rem;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
&__avatar-placeholder {
|
||||
width: 0.6rem;
|
||||
height: 0.6rem;
|
||||
border-radius: 50%;
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.2rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
// 导师文字信息
|
||||
&__info-text {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__name {
|
||||
font-size: 0.24rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.04rem;
|
||||
}
|
||||
|
||||
&__meta {
|
||||
font-size: 0.18rem;
|
||||
color: $text-middle;
|
||||
margin-bottom: 0.04rem;
|
||||
display: inline-block;
|
||||
font-weight: 400;
|
||||
margin-left: 0.1rem;
|
||||
}
|
||||
|
||||
&__location {
|
||||
font-size: 0.14rem;
|
||||
color: $text-middle;
|
||||
margin-bottom: 0.08rem;
|
||||
|
||||
>span{
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
&__services {
|
||||
font-size: 0.14rem;
|
||||
color: $text-middle;
|
||||
>span{
|
||||
color: $text-dark;
|
||||
}
|
||||
}
|
||||
|
||||
// 右侧咨询区域容器
|
||||
&__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 {
|
||||
width: 0.92rem;
|
||||
text-align: center;
|
||||
height: 0.32rem;
|
||||
line-height: 0.30rem;
|
||||
background: #fff;
|
||||
border: 0.01rem solid $accent;
|
||||
color: $accent;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.12rem;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
flex-shrink: 0;
|
||||
transition: background 0.15s;
|
||||
|
||||
&:hover {
|
||||
background: $btn-dark;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
// ==================== 区域标题 ====================
|
||||
|
||||
&__section-title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
color: $accent;
|
||||
margin-bottom: 0.14rem;
|
||||
}
|
||||
|
||||
// ==================== 话题列表 ====================
|
||||
|
||||
&__talk-item {
|
||||
margin-bottom: 0.16rem;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&__talk-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.06rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
&__talk-content {
|
||||
font-size: 0.14rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.7;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
// ==================== 个人介绍 ====================
|
||||
|
||||
&__introduce {
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.7;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
// ==================== 加载状态 ====================
|
||||
|
||||
&__loading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.08rem;
|
||||
padding: 0.3rem;
|
||||
color: $text-middle;
|
||||
font-size: 0.13rem;
|
||||
}
|
||||
|
||||
&__loading-spinner {
|
||||
width: 0.18rem;
|
||||
height: 0.18rem;
|
||||
border: 2px solid $border-color;
|
||||
border-top-color: $accent;
|
||||
border-radius: 50%;
|
||||
animation: mentorDetailSpin 0.7s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes mentorDetailSpin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,441 @@
|
||||
@use '../variables' as *;
|
||||
|
||||
// ==================== Mentor 导师页面样式 ====================
|
||||
|
||||
.mentor-page {
|
||||
font-size: 0.14rem;
|
||||
width: 100%;
|
||||
height: var(--app-height, 100vh);
|
||||
background: $bg-main;
|
||||
overflow: hidden;
|
||||
|
||||
// 主体区域(SideNav 固定宽 2rem,主内容左移让出空间)
|
||||
&__body {
|
||||
flex: 1;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
margin-left: 2.2rem;
|
||||
}
|
||||
|
||||
// 左侧主内容区
|
||||
&__main {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// 顶部标题 + 搜索框
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 0.16rem;
|
||||
flex-shrink: 0;
|
||||
background: #fff;
|
||||
padding: 0.16rem 0.24rem;
|
||||
}
|
||||
|
||||
&__title-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.08rem;
|
||||
}
|
||||
|
||||
&__title-icon {
|
||||
color: $accent;
|
||||
font-size: 0.18rem;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
&__subtitle {
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
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 {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 3rem;
|
||||
background: $bg-white;
|
||||
border: 1px solid $border-color;
|
||||
border-radius: 0.08rem;
|
||||
padding: 0 0.12rem;
|
||||
height: 0.32rem;
|
||||
|
||||
&:focus-within {
|
||||
border-color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
&__search-icon {
|
||||
width: 0.16rem;
|
||||
height: 0.16rem;
|
||||
color: $text-light;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: $accent;
|
||||
}
|
||||
}
|
||||
|
||||
&__search-input {
|
||||
flex: 1;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-size: 0.13rem;
|
||||
color: $text-dark;
|
||||
background: transparent;
|
||||
padding: 0 0.08rem;
|
||||
line-height: 1;
|
||||
|
||||
&::placeholder {
|
||||
color: $text-light;
|
||||
}
|
||||
}
|
||||
|
||||
&__search-clear {
|
||||
font-size: 0.12rem;
|
||||
color: $text-light;
|
||||
cursor: pointer;
|
||||
padding: 0.02rem 0.04rem;
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
line-height: 1;
|
||||
|
||||
&:hover {
|
||||
color: $text-middle;
|
||||
background: $bg-main;
|
||||
}
|
||||
}
|
||||
|
||||
// 行业 Tab 筛选栏
|
||||
&__tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.00rem;
|
||||
flex-wrap: wrap;
|
||||
margin: 0 0.24rem;
|
||||
margin-bottom: 0.16rem;
|
||||
flex-shrink: 0;
|
||||
background: #fff;
|
||||
padding: 0.06rem;
|
||||
border-radius: 0.08rem;
|
||||
|
||||
}
|
||||
|
||||
&__tab {
|
||||
height: 0.35rem;
|
||||
text-align: center;
|
||||
padding: 0 0.16rem;
|
||||
line-height: 0.35rem;
|
||||
border-radius: 0.08rem;
|
||||
min-width: 0.8rem;
|
||||
font-size: 0.13rem;
|
||||
color: $text-middle;
|
||||
cursor: pointer;
|
||||
background: $bg-white;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid transparent;
|
||||
transition: all 0.15s;
|
||||
white-space: nowrap;
|
||||
|
||||
&:not(&--active):hover {
|
||||
color: $accent;
|
||||
border: 1px solid $accent;
|
||||
}
|
||||
|
||||
&--active {
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
border: 1px solid $accent;
|
||||
|
||||
&:hover {
|
||||
color: $bg-white;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 导师列表滚动容器
|
||||
&__list {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
padding-bottom: 0.24rem;
|
||||
margin: 0 0.17rem 0 0.24rem;
|
||||
padding-right: 0.04rem;
|
||||
&::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: $border-color;
|
||||
border-radius: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
// 导师卡片
|
||||
&__card {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: $bg-white;
|
||||
border-radius: 0.12rem;
|
||||
padding: 0.18rem 0.2rem;
|
||||
margin-bottom: 0.12rem;
|
||||
gap: 0.2rem;
|
||||
transition: box-shadow 0.15s;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
}
|
||||
|
||||
// 卡片左侧 — 限制最大宽度让右侧话题纵向对齐
|
||||
&__card-left {
|
||||
flex: 1 1 0;
|
||||
max-width: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.14rem;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// 头像
|
||||
&__avatar-wrap {
|
||||
flex-shrink: 0;
|
||||
width: 0.56rem;
|
||||
}
|
||||
|
||||
&__avatar {
|
||||
width: 0.5rem;
|
||||
height: 0.5rem;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
&__avatar-placeholder {
|
||||
width: 0.5rem;
|
||||
height: 0.5rem;
|
||||
border-radius: 50%;
|
||||
background: $accent;
|
||||
color: $bg-white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
// 导师信息文字区
|
||||
&__card-info {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__card-name {
|
||||
font-size: 0.15rem;
|
||||
font-weight: 600;
|
||||
color: $text-dark;
|
||||
margin-bottom: 0.04rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
&__card-meta {
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
margin-bottom: 0.06rem;
|
||||
}
|
||||
|
||||
&__card-sep {
|
||||
margin: 0 0.04rem;
|
||||
color: $border-color;
|
||||
}
|
||||
|
||||
&__card-labels {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.06rem;
|
||||
}
|
||||
|
||||
&__card-label {
|
||||
font-size: 0.11rem;
|
||||
color: $accent;
|
||||
background: rgba(18, 199, 190, 0.1);
|
||||
border-radius: 0.1rem;
|
||||
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 让话题区自适应剩余空间,窄屏不会撑出滚动条
|
||||
&__card-right {
|
||||
flex: 1 1 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.12rem;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// 话题列表 — 占据右侧剩余空间,自动截断
|
||||
&__card-topics {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
// 单条话题,跟随容器宽度自动截断,不设死宽度
|
||||
&__card-topic {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
font-size: 0.12rem;
|
||||
color: $text-middle;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
// 查看详情按钮
|
||||
&__detail-btn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 0.06rem;
|
||||
align-items: center;
|
||||
height: 0.32rem;
|
||||
line-height: 0.32rem;
|
||||
width: 0.92rem;
|
||||
text-align: center;
|
||||
background: $bg-white;
|
||||
border: 0.01rem solid $btn-dark;
|
||||
color: $btn-dark;
|
||||
border-radius: 0.08rem;
|
||||
font-size: 0.12rem;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
transition: background 0.15s;
|
||||
|
||||
&:hover {
|
||||
background: $btn-dark;
|
||||
color: $bg-white;
|
||||
}
|
||||
}
|
||||
|
||||
// 加载中提示
|
||||
&__loading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.08rem;
|
||||
padding: 0.2rem;
|
||||
color: $text-middle;
|
||||
font-size: 0.13rem;
|
||||
}
|
||||
|
||||
&__loading-spinner {
|
||||
width: 0.18rem;
|
||||
height: 0.18rem;
|
||||
border: 2px solid $border-color;
|
||||
border-top-color: $accent;
|
||||
border-radius: 50%;
|
||||
animation: mentorSpin 0.7s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes mentorSpin {
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
// 没有更多
|
||||
&__no-more {
|
||||
text-align: center;
|
||||
font-size: 0.12rem;
|
||||
color: $text-light;
|
||||
padding: 0.16rem;
|
||||
}
|
||||
|
||||
// 空列表
|
||||
&__empty {
|
||||
text-align: center;
|
||||
font-size: 0.13rem;
|
||||
color: $text-light;
|
||||
padding: 0.4rem;
|
||||
}
|
||||
|
||||
// 右侧广告区域(固定 4rem)
|
||||
&__aside {
|
||||
width: 3.6rem;
|
||||
flex-shrink: 0;
|
||||
height: 100%;
|
||||
background: $bg-white;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,9 @@
|
||||
// ==================== 个人资料页 ====================
|
||||
.profile-page {
|
||||
&__content {
|
||||
margin-left: 2rem;
|
||||
margin-left: 2.2rem;
|
||||
flex: 1;
|
||||
padding: 0.12rem 0.36rem;
|
||||
padding-bottom: 0.12rem;
|
||||
height: var(--app-height, 100vh);
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
@@ -17,7 +17,8 @@
|
||||
|
||||
// 页面标题区
|
||||
&__header {
|
||||
margin-bottom: 0.16rem;
|
||||
padding: 0.16rem 0.24rem;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
&__title {
|
||||
@@ -51,6 +52,7 @@
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
margin: 0.16rem 0.24rem;
|
||||
}
|
||||
|
||||
// 右侧边栏
|
||||
|
||||