+
+
+
+ 数智开物
+ OPC公共服务平台
+ 紫东数智OPC社区 × 数智开物OPC公共服务平台,超级个体从这里启航
-
-
- 3500㎡
-
-
- 社区建筑面积
-
-
-
-
- 3500㎡
-
-
- 社区建筑面积
-
-
-
-
- 3500㎡
-
-
- 社区建筑面积
+
+
+
+
+ {{ item.value }}
+ {{ item.unit }}
+
+
+
{{ item.label }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
{{ policy.desc }}
+
+ {{ policy.amount }}
+ {{ policy.unit }}
+
+
+ {{ policy.subAmount }}
+ {{ policy.subUnit }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
+@import url('./less/index.less');
+
diff --git a/f/web-kboss/src/views/Ncmatch/less/OpcJoinDialog.less b/f/web-kboss/src/views/Ncmatch/less/OpcJoinDialog.less
index 4d2f71c..6ed2937 100644
--- a/f/web-kboss/src/views/Ncmatch/less/OpcJoinDialog.less
+++ b/f/web-kboss/src/views/Ncmatch/less/OpcJoinDialog.less
@@ -1,24 +1,27 @@
+// ==================== Dialog Shell ====================
::v-deep .opc-application-dialog {
margin: 0 auto !important;
width: 100% !important;
max-width: 900px;
- // max-height: 85vh;
border-radius: 16px !important;
- background: #ffffff;
- border: 1px solid #dbeafe;
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
- overflow: hidden;
- display: flex;
+ background: transparent !important;
+ border: none !important;
+ box-shadow: none !important;
+ display: flex !important;
flex-direction: column;
-
+ max-height: 85vh !important;
+ top: 100px;
.el-dialog__header {
display: none;
}
.el-dialog__body {
- flex: 1;
+ flex: 1 1 auto;
padding: 0;
- overflow: hidden;
+ overflow: hidden !important;
+ display: flex;
+ flex-direction: column;
+ background: transparent !important;
min-height: 0;
}
}
@@ -27,24 +30,29 @@
background: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
- overflow: hidden;
}
+// ==================== Layout Container ====================
.dialog-layout {
display: flex;
flex-direction: column;
+ width: 100%;
height: 100%;
- background: #ffffff;
+ max-height: 85vh;
overflow: hidden;
+ background: #ffffff;
+ border-radius: 16px;
+ border: 1px solid #dbeafe;
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
+// ==================== Header ====================
.dialog-header {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px 32px;
- background: #ffffff;
border-bottom: 1px solid #f0f0f0;
.header-info {
@@ -82,12 +90,16 @@
}
}
+// ==================== Body (scrollable) ====================
.dialog-body {
- flex: 1;
+ flex: 1 1 auto;
overflow-y: auto;
+ overflow-x: hidden;
padding: 24px 32px;
+ min-height: 0;
}
+// ==================== Footer ====================
.dialog-footer {
flex-shrink: 0;
display: flex;
@@ -117,11 +129,25 @@
border-radius: 8px;
font-size: 14px;
height: 40px;
+ padding: 0 20px;
+ border-color: #e5e7eb;
+ color: #6b7280;
+ background: #ffffff;
+
+ &:hover {
+ border-color: #d1d5db;
+ color: #374151;
+ }
}
}
+// ==================== Form Section ====================
.form-section {
- margin-bottom: 32px;
+ margin-bottom: 28px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
.section-title {
display: flex;
@@ -143,36 +169,137 @@
display: flex;
align-items: center;
justify-content: center;
+ flex-shrink: 0;
}
}
}
-.grid-2 {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 16px;
+// ==================== Field Row(核心:一行就是一个 .field-row) ====================
+// 关键设计:每个"一行"就是一个独立 .field-row 容器
+// - 单列:.field-row(里面 1 个 .field-item 独占整行)
+// - 两列:.field-row.grid-2(里面 2 个 .field-item 自动等分两列)
+// - 三列:.field-row.grid-3(里面 3 个 .field-item 自动等分三列)
+// 这样无论每行是 1、2、3 个字段,列宽都严格对齐
+.field-row {
+ display: block;
+ margin-bottom: 16px;
- .col-span-2 {
- grid-column: 1 / -1;
+ &:last-child {
+ margin-bottom: 0;
}
}
-.grid-3 {
+.field-row.grid-2 {
display: grid;
- grid-template-columns: repeat(3, 1fr);
+ grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
-.full-width {
- width: 100%;
+.field-row.grid-3 {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: 16px;
+}
+
+// ==================== Field Item ====================
+.field-item {
+ display: block;
+ min-width: 0;
+}
+
+.field-label {
+ display: block;
+ font-size: 14px;
+ font-weight: 500;
+ color: #374151;
+ margin-bottom: 6px;
+ line-height: 1.4;
+
+ .required {
+ color: #ef4444;
+ margin-left: 2px;
+ }
}
.field-tip {
margin: 4px 0 0;
font-size: 12px;
color: #9ca3af;
+ line-height: 1.4;
}
+.field-error {
+ margin: 4px 0 0;
+ font-size: 12px;
+ color: #ef4444;
+ line-height: 1.4;
+}
+
+.full-width {
+ width: 100%;
+}
+
+// ==================== Element UI Input Overrides ====================
+::v-deep .el-input__inner,
+::v-deep .el-textarea__inner {
+ border-radius: 8px;
+ border-color: #e5e7eb;
+ background: #f9fafb;
+ font-size: 14px;
+ color: #111827;
+ width: 100%;
+ box-sizing: border-box;
+ transition: border-color 0.15s, box-shadow 0.15s;
+
+ &::placeholder {
+ color: #9ca3af;
+ }
+
+ &:focus {
+ border-color: #2563eb;
+ background: #ffffff;
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
+ outline: none;
+ }
+}
+
+::v-deep .el-input {
+ width: 100% !important;
+ display: block !important;
+
+ .el-input__inner {
+ height: 40px;
+ }
+}
+
+::v-deep .el-textarea {
+ width: 100% !important;
+ display: block !important;
+}
+
+::v-deep .el-textarea__inner {
+ resize: none;
+ padding: 10px 14px;
+ line-height: 1.5;
+}
+
+::v-deep .el-date-editor.el-input {
+ width: 100%;
+ .el-input__inner {
+ padding-right: 30px;
+ }
+}
+
+::v-deep .el-input-number {
+ width: 100% !important;
+ .el-input__inner {
+ text-align: left;
+ padding-left: 14px;
+ padding-right: 60px;
+ }
+}
+
+// ==================== Checkbox Group ====================
.checkbox-group {
display: flex;
flex-wrap: wrap;
@@ -180,7 +307,7 @@
}
.checkbox-label {
- display: flex;
+ display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
@@ -209,6 +336,7 @@
}
}
+// ==================== File Upload ====================
.file-upload-area {
display: flex;
flex-direction: column;
@@ -274,75 +402,13 @@
}
}
-::v-deep .opc-form {
- .el-form-item {
- margin-bottom: 0;
- }
-
- .el-form-item__label {
- padding-bottom: 6px;
- font-size: 14px;
- font-weight: 500;
- color: #374151;
- line-height: 1.4;
- }
-
- .el-form-item__error {
- position: static;
- padding-top: 4px;
- font-size: 12px;
- }
-
- .el-input__inner,
- .el-textarea__inner {
- border-radius: 8px;
- border-color: #e5e7eb;
- background: #f9fafb;
- font-size: 14px;
- color: #111827;
-
- &::placeholder {
- color: #9ca3af;
- }
-
- &:focus {
- border-color: #2563eb;
- background: #ffffff;
- box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
- }
- }
-
- .el-input {
- .el-input__inner {
- height: 40px;
- }
- }
-
- .el-textarea__inner {
- resize: none;
- }
-
- .el-checkbox__input.is-checked .el-checkbox__inner {
- background-color: #2563eb;
- border-color: #2563eb;
- }
-
- .el-checkbox__label {
- color: #374151;
- font-size: 14px;
- }
-}
-
+// ==================== Responsive ====================
@media (max-width: 768px) {
- .grid-2,
- .grid-3 {
+ .field-row.grid-2,
+ .field-row.grid-3 {
grid-template-columns: 1fr;
}
- .col-span-2 {
- grid-column: 1;
- }
-
.dialog-header {
padding: 16px 20px;
}
@@ -353,10 +419,15 @@
.dialog-footer {
padding: 12px 16px;
+ gap: 8px;
}
::v-deep .opc-application-dialog {
margin: 16px auto !important;
- max-height: calc(100vh - 32px);
+ max-height: calc(100vh - 32px) !important;
+
+ .el-dialog__body {
+ max-height: calc(100vh - 32px) !important;
+ }
}
}
diff --git a/f/web-kboss/src/views/Ncmatch/less/SocietyNewsBrief.less b/f/web-kboss/src/views/Ncmatch/less/SocietyNewsBrief.less
index eb9fca8..67745db 100644
--- a/f/web-kboss/src/views/Ncmatch/less/SocietyNewsBrief.less
+++ b/f/web-kboss/src/views/Ncmatch/less/SocietyNewsBrief.less
@@ -454,8 +454,8 @@
}
.detail-content {
- font-size: 14px;
- line-height: 1.9;
+ font-size: 13px;
+ line-height: 1.85;
color: #374151;
p {
diff --git a/f/web-kboss/src/views/Ncmatch/less/index.less b/f/web-kboss/src/views/Ncmatch/less/index.less
new file mode 100644
index 0000000..d769feb
--- /dev/null
+++ b/f/web-kboss/src/views/Ncmatch/less/index.less
@@ -0,0 +1,1193 @@
+// ==================== Font ====================
+@font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
+
+// ==================== Page Wrapper ====================
+.page-wrapper {
+ position: relative;
+ width: 100%;
+ min-height: 100vh;
+ overflow: hidden;
+ font-family: @font-family;
+ background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 40%, #ecfeff 100%);
+}
+
+// ==================== 网格背景点 ====================
+.bg-grid {
+ position: fixed;
+ inset: 0;
+ pointer-events: none;
+ z-index: 0;
+ background-image: radial-gradient(rgba(59, 130, 246, 0.12) 1px, transparent 1px);
+ background-size: 32px 32px;
+}
+
+// ==================== 浮动光球 ====================
+.orb {
+ position: fixed;
+ border-radius: 50%;
+ pointer-events: none;
+ z-index: 0;
+ filter: blur(80px);
+ animation: orb-float 25s ease-in-out infinite;
+}
+
+.orb-1 {
+ width: 500px;
+ height: 500px;
+ top: -100px;
+ right: -100px;
+ background: radial-gradient(circle, #3b82f6 0%, transparent 70%);
+ opacity: 0.5;
+ animation-delay: 0s;
+}
+
+.orb-2 {
+ width: 600px;
+ height: 600px;
+ bottom: -150px;
+ left: -150px;
+ background: radial-gradient(circle, #1d4ed8 0%, transparent 70%);
+ opacity: 0.4;
+ animation-delay: -8s;
+}
+
+.orb-3 {
+ width: 400px;
+ height: 400px;
+ top: 50%;
+ left: 10%;
+ background: radial-gradient(circle, #06b6d4 0%, transparent 70%);
+ opacity: 0.35;
+ animation-delay: -16s;
+}
+
+.orb-4 {
+ width: 300px;
+ height: 300px;
+ top: 30%;
+ right: 5%;
+ background: radial-gradient(circle, #3b82f6 0%, transparent 70%);
+ opacity: 0.3;
+ animation-delay: -5s;
+}
+
+@keyframes orb-float {
+ 0%, 100% { transform: translate(0, 0) scale(1); }
+ 33% { transform: translate(25px, -25px) scale(1.03); }
+ 66% { transform: translate(-15px, 15px) scale(0.97); }
+}
+
+// ==================== Container ====================
+.container {
+ position: relative;
+ z-index: 1;
+ width: 100%;
+}
+
+// ==================== Slogan ====================
+.slogan {
+ width: 100%;
+ padding: 176px 0;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ .title {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ text-align: center;
+ padding-bottom: 72px;
+ font-weight: 900;
+
+ .gradient-text {
+ font-size: 72px;
+ // font-weight: 800;
+ background: linear-gradient(135deg, #1e40af 0%, #2563eb 40%, #3b82f6 70%, #0ea5e9 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ }
+
+ .clip-text {
+ font-size: 72px;
+ // font-weight: 800;
+ margin-bottom: 32px;
+ background: linear-gradient(to right, rgb(147, 51, 234), rgb(37, 99, 235), rgb(6, 182, 212));
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ }
+
+ .desp {
+ font-size: 20px;
+ color: rgb(75, 85, 99);
+ }
+ }
+}
+
+// ==================== Metrics Display ====================
+.metrics-display {
+ display: flex;
+ justify-content: center;
+ gap: 24px;
+ flex-wrap: wrap;
+ width: 100%;
+ max-width: 960px;
+ padding: 0 24px;
+}
+
+// ==================== 指标卡片 ====================
+.metric-card {
+ flex: 1;
+ // min-width: 180px;
+ // max-width: 220px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 28px 20px;
+ text-align: center;
+ border-radius: 16px;
+
+
+ .card-num {
+ font-size: 40px;
+ font-weight: 700;
+ color: #1e293b;
+ // line-height: 1;
+
+ }
+
+ .card-unit {
+ font-size: 40px;
+ font-weight: 600;
+ // color: #2563eb;
+ background: linear-gradient(135deg, #7c3aed 0%, #2563eb 50%, #06b6d4 100%);
+ background-color: #000;
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+
+ // margin-top: 4px;
+ // line-height: 1;
+ }
+
+ .card-label {
+ font-size: 14px;
+ color: #6b7280;
+ margin-top: 8px;
+ line-height: 1.4;
+ }
+}
+
+// ==================== 玻璃卡片(政策卡) ====================
+.glass-card {
+ border-radius: 16px;
+ background: rgba(255, 255, 255, 0.95);
+ backdrop-filter: blur(24px) saturate(1.2);
+ -webkit-backdrop-filter: blur(24px) saturate(1.2);
+ border: 1px solid rgba(59, 130, 246, 0.2);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 4px 24px rgba(59, 130, 246, 0.08);
+ transition: all 0.3s ease;
+
+ &:hover {
+ border-color: rgba(59, 130, 246, 0.4);
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 12px 48px rgba(59, 130, 246, 0.15);
+ transform: translateY(-4px);
+ }
+}
+
+// ==================== 优惠政策 ====================
+.policies {
+ width: 100%;
+ padding: 80px 0;
+
+ .policies-inner {
+ max-width: 1400px;
+ margin: 0 auto;
+ padding: 0 32px;
+ }
+
+ .policies-header {
+ text-align: center;
+ margin-bottom: 56px;
+
+ .policies-title {
+ font-size: 36px;
+ font-weight: 700;
+ color: #1e293b;
+ margin-bottom: 16px;
+ }
+
+ .policies-subtitle {
+ font-size: 18px;
+ color: #6b7280;
+ margin: 0 auto;
+ line-height: 1.6;
+ }
+ }
+}
+
+// ==================== 政策卡片网格 ====================
+.policy-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 24px;
+}
+
+.policy-card {
+ border-radius: 16px;
+ padding: 28px;
+ // cursor: default;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+
+ .policy-card-header {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ margin-bottom: 16px;
+
+ .policy-icon {
+ flex-shrink: 0;
+ width: 40px;
+ height: 40px;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ .icon-svg {
+ width: 20px;
+ height: 20px;
+ color: #fff;
+ }
+ }
+
+ .policy-name {
+ font-size: 16px;
+ font-weight: 700;
+ color: #1e293b;
+ line-height: 1.3;
+ }
+ }
+
+ .policy-desc {
+ font-size: 14px;
+ color: #6b7280;
+ line-height: 1.7;
+ margin-bottom: 16px;
+ }
+
+ .policy-amount {
+ display: flex;
+ align-items: baseline;
+ gap: 4px;
+
+ .amount-num {
+ font-size: 20px;
+ font-weight: 800;
+ line-height: 1;
+ }
+
+ .amount-unit {
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 1;
+ }
+ }
+
+ .policy-sub-amount {
+ display: flex;
+ align-items: baseline;
+ gap: 4px;
+ margin-top: 6px;
+
+ .amount-num.sub {
+ font-size: 22px;
+ font-weight: 800;
+ line-height: 1;
+ }
+
+ .amount-unit.sub {
+ font-size: 12px;
+ font-weight: 600;
+ line-height: 1;
+ opacity: 0.8;
+ }
+ }
+}
+
+// ==================== 政策脚注 ====================
+.policy-footer {
+ margin-top: 48px;
+ text-align: center;
+
+ .footer-note {
+ font-size: 14px;
+ color: #9ca3af;
+ line-height: 1.8;
+ }
+}
+
+// ==================== Responsive ====================
+@media (max-width: 1024px) {
+ .policy-grid {
+ grid-template-columns: repeat(2, 1fr);
+ }
+
+ .core-advantages-grid {
+ grid-template-columns: repeat(2, 1fr) !important;
+ }
+
+ .service-content-grid {
+ grid-template-columns: repeat(2, 1fr) !important;
+ }
+}
+
+@media (max-width: 768px) {
+ .slogan {
+ padding: 120px 0 80px;
+
+ .title {
+ padding-bottom: 48px;
+
+ .gradient-text,
+ .clip-text {
+ font-size: 48px;
+ }
+
+ .desp {
+ font-size: 16px;
+ padding: 0 16px;
+ }
+ }
+ }
+
+ .metrics-display {
+ gap: 12px;
+ }
+
+ .policy-grid {
+ grid-template-columns: 1fr;
+ }
+
+ .policies .policies-header .policies-title {
+ font-size: 28px;
+ }
+}
+
+// ==================== 紫东数智OPC社区介绍 ====================
+.community-intro {
+ position: relative;
+ padding: 80px 0;
+ overflow: hidden;
+
+ .community-intro-container {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 0 48px;
+ position: relative;
+ z-index: 1;
+
+ @media (max-width: 768px) {
+ padding: 0 24px;
+ }
+ }
+
+ // 背景装饰
+ .community-intro-bg {
+ position: absolute;
+ inset: 0;
+ pointer-events: none;
+
+ .community-intro-bg-orb {
+ position: absolute;
+ border-radius: 50%;
+ filter: blur(100px);
+
+ &--blue {
+ top: 0;
+ left: 25%;
+ width: 400px;
+ height: 400px;
+ background: rgba(219, 234, 254, 0.2);
+ }
+
+ &--violet {
+ bottom: 25%;
+ right: 25%;
+ width: 320px;
+ height: 320px;
+ background: rgba(238, 233, 254, 0.15);
+ }
+ }
+ }
+
+ // 页面标题
+ .community-intro-header {
+ text-align: center;
+ margin-bottom: 48px;
+
+ .community-intro-title {
+ font-size: 36px;
+ font-weight: 800;
+ color: #111827;
+ margin-bottom: 16px;
+
+ @media (max-width: 768px) {
+ font-size: 28px;
+ }
+ }
+
+ .community-intro-subtitle {
+ font-size: 18px;
+ color: #6b7280;
+ max-width: 800px;
+ margin: 0 auto;
+ line-height: 1.7;
+
+ @media (max-width: 768px) {
+ font-size: 16px;
+ }
+ }
+ }
+
+ // 社区简介
+ .community-intro-brief {
+ padding: 32px;
+ margin-bottom: 48px;
+
+ .community-intro-brief-inner {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+
+ @media (max-width: 768px) {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+ }
+
+ .community-intro-logos {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ flex-shrink: 0;
+ }
+
+ .community-intro-logo-wrapper {
+ width: 160px;
+ height: 56px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .community-intro-logo {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+ }
+
+ .community-intro-brief-content {
+ flex: 1;
+ min-width: 0;
+ }
+
+ .community-intro-brief-title {
+ font-size: 18px;
+ font-weight: 700;
+ color: #111827;
+ margin-bottom: 8px;
+ }
+
+ .community-intro-brief-text {
+ font-size: 16px;
+ color: #4b5563;
+ line-height: 1.7;
+ }
+
+ .community-intro-brief-highlight {
+ color: #111827;
+ font-weight: 700;
+ }
+ }
+
+ // 核心优势
+ .core-advantages {
+ margin-bottom: 64px;
+
+ .core-advantages-header {
+ text-align: center;
+ margin-bottom: 32px;
+
+ .core-advantages-title {
+ font-size: 24px;
+ font-weight: 700;
+ color: #111827;
+ margin-bottom: 8px;
+ }
+
+ .core-advantages-subtitle {
+ font-size: 16px;
+ color: #6b7280;
+ }
+ }
+
+ .core-advantages-grid {
+ display: grid;
+ grid-template-columns: repeat(5, 1fr);
+ gap: 24px;
+
+ @media (max-width: 1200px) {
+ grid-template-columns: repeat(3, 1fr);
+ }
+
+ @media (max-width: 768px) {
+ grid-template-columns: 1fr !important;
+ }
+ }
+ }
+
+ // 核心优势卡片
+ .core-advantage-card {
+ padding: 24px;
+ cursor: default;
+
+ &:hover {
+ border-color: rgba(59, 130, 246, 0.3);
+
+ .core-advantage-image {
+ transform: scale(1.05);
+ }
+
+ .core-advantage-icon {
+ transform: scale(1.1);
+ }
+ }
+
+ .core-advantage-image-wrapper {
+ border-radius: 12px;
+ overflow: hidden;
+ margin-bottom: 16px;
+ background-color: rgba(59, 130, 246, 0.05);
+ }
+
+ .core-advantage-image {
+ width: 100%;
+ height: 128px;
+ object-fit: cover;
+ transition: transform 0.5s ease;
+ }
+
+ .core-advantage-content {
+ .core-advantage-icon-title {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ margin-bottom: 16px;
+ }
+
+ .core-advantage-icon {
+ flex-shrink: 0;
+ width: 40px;
+ height: 40px;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: transform 0.3s ease;
+
+ &--blue {
+ background-color: #eff6ff;
+ border: 1px solid #bfdbfe;
+
+ .core-advantage-icon-svg {
+ color: #60a5fa;
+ }
+ }
+
+ &--cyan {
+ background-color: #ecfeff;
+ border: 1px solid #a5f3fc;
+
+ .core-advantage-icon-svg {
+ color: #22d3ee;
+ }
+ }
+
+ &--violet {
+ background-color: #f5f3ff;
+ border: 1px solid #ddd6fe;
+
+ .core-advantage-icon-svg {
+ color: #a78bfa;
+ }
+ }
+
+ &--amber {
+ background-color: #fffbeb;
+ border: 1px solid #fde68a;
+
+ .core-advantage-icon-svg {
+ color: #fbbf24;
+ }
+ }
+
+ &--rose {
+ background-color: #fff1f2;
+ border: 1px solid #fecdd3;
+
+ .core-advantage-icon-svg {
+ color: #fb7185;
+ }
+ }
+ }
+
+ .core-advantage-icon-svg {
+ width: 20px;
+ height: 20px;
+ }
+
+ .core-advantage-name {
+ font-size: 16px;
+ font-weight: 700;
+ color: #111827;
+ line-height: 1.3;
+ }
+
+ .core-advantage-desc {
+ font-size: 14px;
+ color: #6b7280;
+ line-height: 1.7;
+ }
+ }
+ }
+
+ // 服务内容
+ .service-content {
+ margin-bottom: 64px;
+
+ .service-content-header {
+ text-align: center;
+ margin-bottom: 32px;
+
+ .service-content-title {
+ font-size: 24px;
+ font-weight: 700;
+ color: #111827;
+ margin-bottom: 8px;
+ }
+
+ .service-content-subtitle {
+ font-size: 16px;
+ color: #6b7280;
+ }
+ }
+
+ .service-content-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 24px;
+
+ @media (max-width: 1024px) {
+ grid-template-columns: repeat(2, 1fr);
+ }
+
+ @media (max-width: 768px) {
+ grid-template-columns: 1fr !important;
+ }
+ }
+ }
+
+ // 服务卡片
+ .service-card {
+ padding: 24px;
+ cursor: default;
+
+ &:hover {
+ border-color: rgba(59, 130, 246, 0.3);
+
+ .service-card-icon {
+ transform: scale(1.1);
+ }
+ }
+
+ .service-card-header {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ margin-bottom: 16px;
+ }
+
+ .service-card-icon {
+ flex-shrink: 0;
+ width: 40px;
+ height: 40px;
+ border-radius: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: transform 0.3s ease;
+
+ &--blue {
+ background-color: #eff6ff;
+ border: 1px solid #bfdbfe;
+
+ .service-card-icon-svg {
+ color: #60a5fa;
+ }
+ }
+
+ &--emerald {
+ background-color: #ecfdf5;
+ border: 1px solid #a7f3d0;
+
+ .service-card-icon-svg {
+ color: #34d399;
+ }
+ }
+
+ &--violet {
+ background-color: #f5f3ff;
+ border: 1px solid #ddd6fe;
+
+ .service-card-icon-svg {
+ color: #a78bfa;
+ }
+ }
+ }
+
+ .service-card-icon-svg {
+ width: 20px;
+ height: 20px;
+ }
+
+ .service-card-title {
+ font-size: 18px;
+ font-weight: 700;
+ color: #111827;
+ }
+
+ .service-card-list {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+
+ .service-card-list-item {
+ display: flex;
+ align-items: flex-start;
+ gap: 8px;
+ margin-bottom: 10px;
+ font-size: 14px;
+ color: #4b5563;
+ line-height: 1.6;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ .service-card-list-dot {
+ flex-shrink: 0;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ margin-top: 8px;
+
+ &--blue {
+ background-color: #60a5fa;
+ }
+
+ &--emerald {
+ background-color: #34d399;
+ }
+
+ &--violet {
+ background-color: #a78bfa;
+ }
+ }
+ }
+
+ // 招募信息
+ .recruitment-banner {
+ .recruitment-banner-inner {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 24px;
+ padding: 32px;
+ border-radius: 16px;
+ background: linear-gradient(135deg, rgba(59, 130, 246, 0.05), rgba(139, 92, 246, 0.05));
+
+ @media (max-width: 768px) {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+ }
+
+ .recruitment-banner-content {
+ flex: 1;
+ min-width: 0;
+ }
+
+ .recruitment-banner-title {
+ font-size: 20px;
+ font-weight: 700;
+ color: #111827;
+ margin-bottom: 12px;
+ }
+
+ .recruitment-banner-text {
+ font-size: 16px;
+ color: #4b5563;
+ line-height: 1.7;
+ margin-bottom: 16px;
+ }
+
+ .recruitment-banner-highlight {
+ color: #111827;
+ font-weight: 700;
+ }
+
+ .recruitment-banner-tags {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ flex-wrap: wrap;
+ }
+
+ .recruitment-tag {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ padding: 8px 12px;
+ background: #fff;
+ border-radius: 8px;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+
+ &--blue {
+ border: 1px solid #dbeafe;
+ }
+
+ &--emerald {
+ border: 1px solid #d1fae5;
+ }
+
+ &--violet {
+ border: 1px solid #ede9fe;
+ }
+ }
+
+ .recruitment-tag-icon {
+ width: 14px;
+ height: 14px;
+
+ .recruitment-tag--blue & {
+ color: #60a5fa;
+ }
+
+ .recruitment-tag--emerald & {
+ color: #34d399;
+ }
+
+ .recruitment-tag--violet & {
+ color: #a78bfa;
+ }
+ }
+
+ .recruitment-tag-text {
+ font-size: 12px;
+ font-weight: 500;
+ color: #374151;
+ }
+
+ .recruitment-banner-actions {
+ flex-shrink: 0;
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ }
+
+ .recruitment-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ padding: 12px 24px;
+ font-size: 16px;
+ font-weight: 600;
+ border-radius: 12px;
+ border: none;
+ cursor: pointer;
+ transition: all 0.3s ease;
+
+ &--blue {
+ background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
+ color: #fff;
+ box-shadow: 0 4px 14px rgba(59, 130, 246, 0.25);
+
+ &:hover {
+ box-shadow: 0 6px 20px rgba(59, 130, 246, 0.35);
+ transform: translateY(-2px);
+ }
+ }
+
+ &--violet {
+ background: linear-gradient(135deg, #8b5cf6 0%, #a855f7 100%);
+ color: #fff;
+ box-shadow: 0 4px 14px rgba(139, 92, 246, 0.3);
+
+ &:hover {
+ box-shadow: 0 6px 20px rgba(139, 92, 246, 0.4);
+ transform: translateY(-2px);
+ }
+ }
+ }
+
+ .recruitment-btn-arrow {
+ width: 16px;
+ height: 16px;
+ }
+ }
+}
+
+// ==================== 入驻要求弹窗 ====================
+// 弹窗过渡动画
+.modal-fade-enter-active,
+.modal-fade-leave-active {
+ transition: opacity 0.3s ease;
+}
+
+.modal-fade-enter,
+.modal-fade-leave-to {
+ opacity: 0;
+}
+
+.entry-requirements-overlay {
+ position: fixed;
+ inset: 0;
+ z-index: 9999;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: rgba(0, 0, 0, 0.4);
+ backdrop-filter: blur(6px);
+}
+
+.entry-requirements-modal {
+ width: 100%;
+ max-width: 672px;
+ margin: 0 16px;
+ background: #fff;
+ border-radius: 24px;
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
+ overflow: hidden;
+ animation: modalFadeIn 0.3s ease;
+ max-height: 90vh;
+ display: flex;
+ flex-direction: column;
+
+ @keyframes modalFadeIn {
+ from {
+ opacity: 0;
+ transform: scale(0.95);
+ }
+ to {
+ opacity: 1;
+ transform: scale(1);
+ }
+ }
+
+ // 头部
+ .entry-requirements-header {
+ padding: 2px 32px 0px;
+ border-bottom: 1px solid #f3f4f6;
+ flex-shrink: 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .entry-requirements-header-inner {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+
+ .entry-requirements-title {
+ font-size: 20px;
+ font-weight: 700;
+ color: #111827;
+ }
+
+ .entry-requirements-close {
+ width: 32px;
+ height: 32px;
+ border-radius: 8px;
+ background: #f3f4f6;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: background-color 0.2s ease;
+
+ &:hover {
+ background: #e5e7eb;
+ }
+
+ .entry-requirements-close-icon {
+ width: 16px;
+ height: 16px;
+ color: #6b7280;
+ }
+ }
+ }
+
+ // 内容区域
+ .entry-requirements-body {
+ padding: 0px 32px;
+ overflow-y: auto;
+ padding-bottom: 10px;
+ flex: 1;
+ }
+
+ // 区块标题
+ .entry-requirements-section-title {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ font-size: 16px;
+ font-weight: 700;
+ color: #111827;
+ margin-bottom: 16px;
+ }
+
+ .entry-requirements-section-indicator {
+ width: 4px;
+ height: 20px;
+ border-radius: 4px;
+
+ &--blue {
+ background-color: #3b82f6;
+ }
+
+ &--emerald {
+ background-color: #10b981;
+ }
+ }
+
+ // 入驻条件列表
+ .entry-requirements-list {
+ margin-bottom: 32px;
+ }
+
+ .entry-requirements-item {
+ display: flex;
+ align-items: flex-start;
+ gap: 12px;
+ padding: 12px;
+ border-radius: 12px;
+ background: #eff6ff;
+ border: 1px solid #dbeafe;
+ margin-bottom: 12px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+
+ .entry-requirements-item-num {
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background: #dbeafe;
+ color: #2563eb;
+ font-size: 12px;
+ font-weight: 700;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ margin-top: 2px;
+ }
+
+ .entry-requirements-item-text {
+ font-size: 14px;
+ color: #374151;
+ line-height: 1.6;
+ }
+ }
+
+ // 提交信息网格
+ .entry-requirements-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 12px;
+ margin-bottom: 24px;
+
+ @media (max-width: 640px) {
+ grid-template-columns: 1fr;
+ }
+ }
+
+ .entry-requirements-grid-item {
+ padding: 12px;
+ border-radius: 12px;
+ background: #f9fafb;
+ border: 1px solid #f3f4f6;
+
+ .entry-requirements-grid-label {
+ font-size: 12px;
+ color: #6b7280;
+ margin-bottom: 4px;
+ }
+
+ .entry-requirements-grid-value {
+ font-size: 14px;
+ color: #374151;
+ }
+ }
+
+ // 联系方式
+ .entry-requirements-contact {
+ padding: 16px;
+ border-radius: 12px;
+ background: #fffbeb;
+ border: 1px solid #fef3c7;
+
+ .entry-requirements-contact-header {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ margin-bottom: 8px;
+
+ .entry-requirements-contact-icon {
+ width: 16px;
+ height: 16px;
+ color: #d97706;
+ }
+
+ .entry-requirements-contact-title {
+ font-size: 14px;
+ font-weight: 600;
+ color: #92400e;
+ }
+ }
+
+ .entry-requirements-contact-info {
+ font-size: 14px;
+ color: #b45309;
+ line-height: 1.6;
+
+ p {
+ margin: 0;
+
+ &:not(:last-child) {
+ margin-bottom: 4px;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/f/web-kboss/src/views/Ncmatch/opcOverview.vue b/f/web-kboss/src/views/Ncmatch/opcOverview.vue
index 5e3dce9..f9dcc4a 100644
--- a/f/web-kboss/src/views/Ncmatch/opcOverview.vue
+++ b/f/web-kboss/src/views/Ncmatch/opcOverview.vue
@@ -18,7 +18,7 @@