索要资源相关的前端以及管理员
Change-Id: I53afd377ff81e25d48951f7656a1cef3c9b3840c
diff --git a/src/components/RequestBoard.css b/src/components/RequestBoard.css
new file mode 100644
index 0000000..0fbe1a9
--- /dev/null
+++ b/src/components/RequestBoard.css
@@ -0,0 +1,443 @@
+/* 容器和布局 */
+.request-container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 20px;
+}
+
+.request-header {
+ margin-bottom: 30px;
+ border-bottom: 1px solid #f0f0f0;
+ padding-bottom: 20px;
+}
+
+.request-search {
+ background-color: #fff8f0;
+ border-radius: 10px;
+ padding: 20px;
+ margin-bottom: 30px;
+ box-shadow: 0 4px 12px rgba(255, 102, 0, 0.1);
+}
+
+.request-money-total {
+ background-color: #fff1e6;
+ border-radius: 8px;
+ padding: 10px 15px;
+ display: inline-block;
+ font-size: 16px;
+}
+
+/* 卡片样式 */
+.request-card {
+ background-color: white;
+ border-radius: 12px;
+ padding: 20px;
+ margin-bottom: 20px;
+ box-shadow: 0 4px 15px rgba(255, 102, 0, 0.08);
+ transition: all 0.3s ease;
+ border: 1px solid #ffe8d6;
+}
+
+.request-card:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 10px 25px rgba(255, 102, 0, 0.15);
+}
+
+.request-card-title {
+ font-size: 18px;
+ font-weight: 700;
+ color: #d15700;
+ margin-bottom: 8px;
+}
+
+.request-card-money {
+ font-size: 20px;
+ font-weight: 800;
+ color: #ff5722;
+ letter-spacing: 0.5px;
+}
+
+.request-card-content {
+ color: #555;
+ line-height: 1.6;
+ margin: 15px 0;
+ padding: 15px;
+ background-color: #f9f9f9;
+ border-radius: 8px;
+ border-left: 4px solid #ffaa33;
+}
+
+.request-card-meta {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 15px;
+ margin: 15px 0;
+ padding: 10px 0;
+ border-top: 1px dashed #ffe0b3;
+ border-bottom: 1px dashed #ffe0b3;
+ font-size: 14px;
+}
+
+.request-meta-item {
+ display: flex;
+ align-items: center;
+ gap: 5px;
+}
+
+.request-meta-label {
+ font-weight: 600;
+ color: #ff8d00;
+}
+
+.request-card-image-container {
+ margin: 15px 0;
+}
+
+.request-card-image {
+ max-width: 300px;
+ border-radius: 8px;
+ border: 1px solid #ffd8b3;
+ box-shadow: 0 4px 8px rgba(255, 140, 0, 0.15);
+}
+
+/* 用户信息 - 重点修改 */
+.request-user-info-container {
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
+ padding: 10px;
+ background-color: #fffaf0;
+ border-radius: 10px;
+ box-shadow: 0 2px 8px rgba(255, 140, 0, 0.1);
+ min-width: 140px;
+}
+
+.request-user-divider {
+ height: 1px;
+ width: 100%;
+ background-color: #ffd8b3;
+ margin: 4px 0;
+}
+
+.request-user-info {
+ padding: 5px;
+}
+
+.request-user-details {
+ min-width: 60px;
+ overflow: hidden;
+}
+
+/* 按钮样式 */
+.request-button {
+ padding: 10px 16px;
+ border: none;
+ border-radius: 8px;
+ font-weight: 600;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 14px;
+}
+
+.request-button:hover {
+ transform: translateY(-2px);
+}
+
+.request-button-back {
+ background-color: #f5f5f5;
+ color: #666;
+}
+
+.request-button-back:hover {
+ background-color: #e0e0e0;
+}
+
+.request-button-create {
+ background: linear-gradient(135deg, #ffa500, #ff7043);
+ color: white;
+ box-shadow: 0 4px 10px rgba(255, 140, 0, 0.3);
+}
+
+.request-button-create:hover {
+ background: linear-gradient(135deg, #ff8c00, #ff5722);
+ box-shadow: 0 6px 14px rgba(255, 140, 0, 0.4);
+}
+
+.request-button-search {
+ background: linear-gradient(135deg, #4db6ac, #26a69a);
+ color: white;
+ box-shadow: 0 4px 10px rgba(77, 182, 172, 0.3);
+}
+
+.request-button-search:hover {
+ background: linear-gradient(135deg, #26a69a, #00897b);
+}
+
+.request-button-submit {
+ background: linear-gradient(135deg, #ffa726, #fb8c00);
+ color: white;
+ padding: 12px 30px;
+ font-size: 16px;
+ box-shadow: 0 4px 12px rgba(255, 140, 0, 0.4);
+}
+
+.request-button-submit:hover {
+ background: linear-gradient(135deg, #fb8c00, #f57c00);
+}
+
+.request-button-takeover {
+ background: linear-gradient(135deg, #42a5f5, #1e88e5);
+ color: white;
+ box-shadow: 0 4px 10px rgba(66, 165, 245, 0.3);
+ width: 100%;
+ font-size: 13px;
+ padding: 8px 12px;
+}
+
+.request-button-takeover:hover {
+ background: linear-gradient(135deg, #1e88e5, #1565c0);
+}
+
+.request-button-delete {
+ background: linear-gradient(135deg, #ef5350, #e53935);
+ color: white;
+ box-shadow: 0 4px 10px rgba(239, 83, 80, 0.3);
+ font-size: 13px;
+ padding: 8px 12px;
+}
+
+.request-button-delete:hover {
+ background: linear-gradient(135deg, #e53935, #c62828);
+}
+
+/* 标签页 */
+.request-tab {
+ padding: 8px 16px;
+ border-radius: 20px;
+ background-color: #f1f1f1;
+ border: 1px solid #e0e0e0;
+ font-weight: 600;
+ color: #666;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ font-size: 13px;
+}
+
+.request-tab-active {
+ background: linear-gradient(135deg, #ffb74d, #ff9800);
+ color: white;
+ border-color: #ff9800;
+ box-shadow: 0 4px 8px rgba(255, 152, 0, 0.2);
+}
+
+/* 表单元素 */
+.request-form {
+ background-color: #fffaf5;
+ border-radius: 12px;
+ padding: 25px;
+ box-shadow: 0 5px 15px rgba(255, 140, 0, 0.1);
+ margin-top: 20px;
+}
+
+.request-label {
+ display: block;
+ margin-bottom: 8px;
+ font-weight: 600;
+ color: #ff8d00;
+ font-size: 14px;
+}
+
+.request-input {
+ width: 100%;
+ padding: 10px 12px;
+ border: 1px solid #ffd8b3;
+ border-radius: 8px;
+ font-size: 14px;
+ transition: all 0.3s ease;
+ background-color: #fffdfa;
+}
+
+.request-input:focus {
+ outline: none;
+ border-color: #ffaa33;
+ box-shadow: 0 0 0 3px rgba(255, 170, 51, 0.2);
+}
+
+.request-textarea {
+ width: 100%;
+ padding: 12px 15px;
+ border: 1px solid #ffd8b3;
+ border-radius: 8px;
+ min-height: 120px;
+ resize: vertical;
+ font-size: 14px;
+ background-color: #fffdfa;
+}
+
+.request-textarea:focus {
+ outline: none;
+ border-color: #ffaa33;
+ box-shadow: 0 0 0 3px rgba(255, 170, 51, 0.2);
+}
+
+.request-file {
+ width: 100%;
+ padding: 10px;
+ background: #f9f9f9;
+ border-radius: 8px;
+ font-size: 13px;
+}
+
+/* 空状态 */
+.request-empty {
+ text-align: center;
+ padding: 50px 20px;
+ background-color: white;
+ border-radius: 12px;
+ box-shadow: 0 4px 15px rgba(255, 102, 0, 0.08);
+}
+
+.request-empty-icon {
+ font-size: 48px;
+ color: #ffc107;
+ margin-bottom: 20px;
+}
+
+.request-empty-text {
+ font-size: 18px;
+ color: #ff8d00;
+ font-weight: 500;
+}
+
+/* 响应式调整 */
+@media (max-width: 768px) {
+ .request-container {
+ padding: 15px;
+ }
+
+ .request-card {
+ padding: 15px;
+ }
+
+ .request-header {
+ margin-bottom: 20px;
+ }
+
+ .request-card-title {
+ font-size: 16px;
+ }
+
+ .request-card-money {
+ font-size: 18px;
+ }
+
+ .request-user-info-container {
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 10px;
+ min-width: 100%;
+ margin-top: 10px;
+ }
+
+ .request-user-info {
+ flex: 1;
+ min-width: 130px;
+ }
+
+ .request-user-divider {
+ display: none;
+ }
+
+ .request-card-actions {
+ flex-direction: column;
+ gap: 10px;
+ }
+
+ .request-button {
+ padding: 8px 12px;
+ font-size: 12px;
+ }
+
+ .request-button-takeover,
+ .request-button-delete {
+ font-size: 12px;
+ }
+
+ /* 在您的CSS文件中添加以下样式 */
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
+
+ body {
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
+ background-color: #fffaf5;
+ }
+
+ /* 全局动画效果 */
+ .transition {
+ transition: all 0.3s ease;
+ }
+
+ /* 卡片阴影效果 */
+ .shadow-lg {
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
+ }
+
+ .shadow-md {
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
+ }
+
+ /* 圆角 */
+ .rounded-xl {
+ border-radius: 1rem;
+ }
+
+ .rounded-lg {
+ border-radius: 0.75rem;
+ }
+
+ /* 渐变背景 */
+ .bg-gradient-to-r {
+ background-size: 200% auto;
+ transition: background-position 0.5s ease;
+ }
+
+ .bg-gradient-to-r:hover {
+ background-position: right center;
+ }
+
+ /* 表单输入框动画 */
+ input:focus,
+ textarea:focus {
+ transform: translateY(-1px);
+ }
+
+ /* 卡片悬停效果 */
+ .bg-white:hover {
+ transform: translateY(-3px);
+ }
+
+ /* 响应式调整 */
+ @media (max-width: 768px) {
+ .text-xl {
+ font-size: 1.25rem;
+ }
+
+ .text-2xl {
+ font-size: 1.5rem;
+ }
+
+ .p-6 {
+ padding: 1.25rem;
+ }
+
+ .p-12 {
+ padding: 2rem;
+ }
+
+ .grid-cols-2 {
+ grid-template-columns: 1fr;
+ }
+ }
+}
\ No newline at end of file