.project-cases-modal { width: 758px; height: 720px; border-radius: 8px; position: relative; background-color: #f2f3f5; overflow: hidden; box-sizing: border-box; padding: 20px; background-image: url("@/assets/images/Common/modal_bg.png"); background-size: 100% 100%; .close-icon { position: absolute; right: 20px; top: 20px; width: 16px; height: 16px; background-image: url("@/assets/images/Common/close.png"); background-size: 100% 100%; z-index: 10; cursor: pointer; } .project-cases-modal-category-tag { display: inline-block; border: 1px solid #4080ff; background-color: #ffffff; height: 22px; border-radius: 3px; padding: 0 10px; box-sizing: border-box; color: #4080ff; font-size: 12px; font-weight: 500; line-height: 20px; margin-bottom: 10px; } .project-cases-modal-title { width: 100%; height: 30px; line-height: 30px; text-align: left; color: #1d2129; font-size: 20px; font-weight: 600; } .project-cases-modal-list { width: 100%; max-height: 640px; overflow-y: auto; display: flex; flex-direction: column; justify-content: flex-start; align-items: center; margin-top: 20px; .project-cases-modal-item { width: 100%; margin-bottom: 20px; border-radius: 8px; box-sizing: border-box; padding: 16px; background-color: #fff; .project-cases-modal-item-title { width: 100%; text-align: left; line-height: 30px; width: 100%; height: 30px; color: #0275f2; font-size: 20px; font-weight: 600; position: relative; display: inline-block; width: fit-content; &::after { content: ""; position: absolute; left: 0; bottom: 3px; width: 100%; height: 5px; opacity: 0.1; border-radius: 5px; background-color: #0275f2; } } .project-cases-modal-item-text { width: 100%; margin-top: 5px; text-align: left; color: #1d2129; font-size: 14px; line-height: 22px; font-weight: 400; } /* 单元分类区域样式 */ .unit-category-section { margin-bottom: 20px; .unit-category-subtitle { font-size: 14px; color: #86909c; margin-bottom: 12px; font-weight: 400; } } .project-cases-modal-horizontal-list { width: 100%; margin-top: 10px; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: flex-start; gap: 15px; .high-count-list-item { width: 210px; height: 82px; background-color: #f7f8fa; border-radius: 8px; padding: 16px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; border: 1px solid #e5e6eb; cursor: pointer; flex-shrink: 0; > span { font-size: 12px; line-height: 20px; font-weight: 600; box-sizing: border-box; padding: 0 8px; border-radius: 2px; margin-bottom: 5px; } .high { color: #2c7aff; background-color: #e8f3ff; border: 1px solid #2c7aff; } .medium { color: #722ed1; background-color: #f5e8ff; border: 1px solid #722ed1; } .low { color: #00b42a; background-color: #e8ffea; border: 1px solid #00b42a; } > p { width: 100%; height: 24px; text-align: left; line-height: 24px; font-size: 16px; font-weight: 600; color: #1d2129; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } .class-list-item { width: 220px; height: 60px; background-color: #f7f8fa; margin-right: 20px; border-radius: 8px; padding: 10px; box-sizing: border-box; border: 1px solid #e5e6eb; cursor: pointer; flex-shrink: 0; .class-list-item-title { height: 36px; width: 100%; display: flex; justify-content: flex-start; align-items: center; > i { width: 36px; height: 36px; background-image: url("https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuWifMbjj7jH.png"); background-size: 100% 100%; } > span { font-size: 14px; font-weight: 400; color: #1d2129; margin-left: 10px; } } } } .project-cases-modal-attachment-list { width: 100%; margin-top: 10px; overflow-y: auto; display: flex; flex-direction: row; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; gap: 20px; .attachment-list-item { min-width: 300px; max-width: 100%; width: auto; height: 80px; border: 1px solid #e5e6eb; cursor: pointer; flex-shrink: 0; background-color: #f7f8fa; border-radius: 8px; padding: 10px 40px 10px 10px; box-sizing: border-box; display: flex; justify-content: flex-start; align-items: center; position: relative; &::after { content: ""; position: absolute; top: 50%; transform: translateY(-50%); right: 20px; width: 20px; height: 20px; background-image: url("@/assets/images/ProjectLibraryPage/eyes_icon.png"); background-size: 100% 100%; } .attachment-icon { width: 56px; height: 56px; margin-right: 12px; flex-shrink: 0; } .file-icon { margin-right: 12px; flex-shrink: 0; } .attachment-info { flex: 1; min-width: 0; height: 48px; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; margin-right: 10px; > p { width: 100%; line-height: 28px; text-align: left; font-size: 16px; font-weight: 600; color: #09090b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } > span { line-height: 20px; text-align: left; font-size: 14px; font-weight: 400; color: #788089; } } } } /* Markdown内容样式 */ .project-cases-modal-markdown-content { width: 100%; margin-top: 10px; color: #1d2129; font-size: 14px; line-height: 1.6; text-align: left; h1, h2, h3, h4, h5, h6 { color: #1d2129; margin-top: 16px; margin-bottom: 8px; font-weight: 600; } h1 { font-size: 24px; } h2 { font-size: 20px; } h3 { font-size: 18px; } h4 { font-size: 16px; } h5 { font-size: 14px; } h6 { font-size: 14px; } p { margin: 8px 0; line-height: 1.6; text-align: left; } ul, ol { margin: 8px 0; padding-left: 24px; } li { margin: 4px 0; line-height: 1.6; text-align: left; } ul li { list-style-type: disc; } ol li { list-style-type: decimal; } strong { font-weight: 600; color: #1d2129; } em { font-style: italic; } code { background-color: #f7f8fa; padding: 2px 6px; border-radius: 3px; font-family: 'Consolas', 'Monaco', monospace; font-size: 13px; } pre { background-color: #f7f8fa; border: 1px solid #e5e6eb; border-radius: 4px; padding: 12px; overflow-x: auto; margin: 12px 0; } pre code { background: none; padding: 0; } blockquote { border-left: 4px solid #0275f2; padding-left: 16px; margin: 12px 0; color: #4e5969; } hr { border: none; border-top: 1px solid #e5e6eb; margin: 16px 0; } table { width: 100%; border-collapse: collapse; margin: 12px 0; } th, td { border: 1px solid #e5e6eb; padding: 8px 12px; text-align: left; } th { background-color: #f7f8fa; font-weight: 600; } a { color: #0275f2; text-decoration: none; &:hover { text-decoration: underline; } } } } } /* 项目图片展示样式 */ .project-cases-modal-images { display: grid; gap: 20px; margin-top: 20px; padding: 20px; background-color: #f7f8fa; border-radius: 8px; /* 默认两列布局 */ grid-template-columns: repeat(2, 1fr); /* 单张图片时全宽显示 */ &:has(.project-cases-modal-image-wrapper:only-child) { grid-template-columns: 1fr; .project-cases-modal-image-wrapper { max-width: 600px; margin: 0 auto; } } /* 三张图片时三列布局 */ &:has(.project-cases-modal-image-wrapper:nth-child(3)):not(:has(.project-cases-modal-image-wrapper:nth-child(4))) { grid-template-columns: repeat(3, 1fr); } /* 四张及以上图片时两列布局 */ &:has(.project-cases-modal-image-wrapper:nth-child(4)) { grid-template-columns: repeat(2, 1fr); } .project-cases-modal-image-wrapper { position: relative; width: 100%; height: 100%; .project-cases-modal-image-title { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); color: #ffffff; padding: 20px 12px 12px; font-size: 13px; font-weight: 500; letter-spacing: 0.5px; transition: all 0.3s ease; z-index: 1; text-align: center; } &:hover .project-cases-modal-image-title { background: linear-gradient(to top, rgba(64, 128, 255, 0.9), transparent); padding-bottom: 16px; } } .project-cases-modal-image { width: 100%; height: 280px; object-fit: cover; object-position: center; border-radius: 8px; border: 1px solid #e5e6eb; background-color: #ffffff; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; cursor: pointer; overflow: hidden; &:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); border-color: #4080ff; } /* 对于PNG图片保持contain以避免裁剪 */ &[src$=".png"] { object-fit: contain; padding: 10px; } } } }