This commit is contained in:
sjk
2026-01-06 19:36:42 +08:00
parent 15b579d64a
commit 19942144fb
261 changed files with 24034 additions and 5477 deletions

View File

@@ -0,0 +1,56 @@
.bind-content {
padding: 40px 24px;
display: flex;
flex-direction: column;
align-items: center;
}
.xhs-logo {
width: 56px;
height: 56px;
margin-bottom: 24px;
}
.xhs-logo svg {
width: 100%;
height: 100%;
}
.page-title {
font-size: 22px;
font-weight: 600;
color: #333;
margin-bottom: 8px;
}
.page-subtitle {
font-size: 14px;
color: #999;
margin-bottom: 40px;
}
.bind-form {
width: 100%;
}
.bind-form .input-row {
margin-bottom: 0;
}
.red-btn {
width: 100%;
padding: 14px;
font-size: 17px;
font-weight: 500;
color: #fff;
background: #FF2442;
border: none;
border-radius: 8px;
cursor: pointer;
margin-top: 40px;
transition: opacity 0.2s;
}
.red-btn:active {
opacity: 0.8;
}

View File

@@ -0,0 +1,280 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
background-color: #fff;
-webkit-font-smoothing: antialiased;
font-size: 14px;
color: #333;
}
.container {
max-width: 375px;
margin: 0 auto;
background-color: #fff;
min-height: 100vh;
position: relative;
overflow-x: hidden;
}
.status-bar {
height: 44px;
padding: 0 16px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 15px;
font-weight: 600;
}
.status-bar .time {
font-weight: 600;
}
.status-bar .icons {
display: flex;
align-items: center;
gap: 4px;
}
.nav-bar {
height: 44px;
padding: 0 12px;
display: flex;
align-items: center;
justify-content: space-between;
}
.nav-bar .back-btn {
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.nav-bar .back-btn svg {
width: 10px;
height: 18px;
stroke: #000;
stroke-width: 2;
fill: none;
}
.nav-bar .nav-icons {
display: flex;
align-items: center;
gap: 8px;
}
.nav-bar .nav-icon {
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
}
.green-btn {
background: #07C160;
color: #fff;
border: none;
border-radius: 8px;
padding: 14px 24px;
font-size: 17px;
font-weight: 500;
cursor: pointer;
width: 100%;
transition: opacity 0.2s;
text-align: center;
}
.green-btn:active {
opacity: 0.8;
}
.input-row {
display: flex;
align-items: center;
padding: 16px 0;
border-bottom: 1px solid #E5E5E5;
}
.input-row .label {
width: 56px;
font-size: 15px;
color: #333;
flex-shrink: 0;
}
.input-row .prefix {
font-size: 16px;
color: #333;
margin-right: 8px;
}
.input-row input {
flex: 1;
border: none;
font-size: 16px;
outline: none;
background: transparent;
}
.input-row input::placeholder {
color: #C0C0C0;
}
.input-row .get-code {
font-size: 14px;
color: #333;
padding: 6px 12px;
border: 1px solid #E5E5E5;
border-radius: 4px;
background: #fff;
cursor: pointer;
white-space: nowrap;
}
.toast-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
pointer-events: none;
}
.toast {
background: rgba(76, 76, 76, 0.9);
border-radius: 12px;
padding: 24px 32px;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
min-width: 136px;
}
.toast-icon {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
}
.toast-icon svg {
width: 36px;
height: 36px;
stroke: #fff;
stroke-width: 2;
fill: none;
}
.toast-icon.info svg {
width: 32px;
height: 32px;
}
.toast-text {
color: #fff;
font-size: 14px;
text-align: center;
line-height: 1.4;
}
.toast-loading {
width: 36px;
height: 36px;
border: 3px solid rgba(255, 255, 255, 0.3);
border-top-color: #fff;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: none;
align-items: flex-end;
justify-content: center;
z-index: 1000;
}
.modal-overlay.active {
display: flex;
}
.modal {
background: #fff;
border-radius: 12px 12px 0 0;
width: 100%;
max-width: 375px;
padding: 24px 16px;
padding-bottom: 34px;
}
.modal-title {
font-size: 17px;
font-weight: 600;
color: #333;
text-align: center;
margin-bottom: 12px;
}
.modal-message {
font-size: 14px;
color: #666;
text-align: center;
margin-bottom: 24px;
line-height: 1.5;
}
.modal-btn {
width: 100%;
padding: 14px;
font-size: 17px;
border: none;
background: transparent;
cursor: pointer;
border-top: 1px solid #E5E5E5;
}
.modal-btn.danger {
color: #FA5151;
}
.modal-btn.cancel {
color: #333;
}
.bottom-indicator {
position: absolute;
bottom: 8px;
left: 50%;
transform: translateX(-50%);
width: 134px;
height: 5px;
background: #000;
border-radius: 3px;
}

View File

@@ -0,0 +1,109 @@
.content {
padding: 0 16px;
padding-bottom: 100px;
}
.image-gallery {
display: flex;
gap: 8px;
overflow-x: auto;
padding: 8px 0 16px;
-webkit-overflow-scrolling: touch;
}
.image-gallery::-webkit-scrollbar {
display: none;
}
.image-item {
position: relative;
width: 80px;
height: 80px;
border-radius: 8px;
overflow: hidden;
flex-shrink: 0;
}
.image-item img {
width: 100%;
height: 100%;
object-fit: cover;
}
.image-item .delete-btn {
position: absolute;
top: 4px;
right: 4px;
cursor: pointer;
z-index: 1;
}
.image-item.add-btn {
background: #F5F5F5;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.image-item.add-btn img {
width: 24px;
height: 24px;
}
.article-section {
padding-top: 8px;
}
.article-title {
font-size: 17px;
font-weight: 600;
color: #333;
margin-bottom: 16px;
line-height: 1.4;
}
.article-content {
font-size: 15px;
color: #333;
line-height: 1.8;
}
.article-content p {
margin-bottom: 12px;
}
.article-content .section-title {
margin-top: 16px;
font-weight: 500;
}
.bottom-actions {
position: fixed;
bottom: 34px;
left: 50%;
transform: translateX(-50%);
width: 100%;
max-width: 375px;
padding: 0 16px;
display: flex;
gap: 12px;
background: #fff;
padding-top: 12px;
}
.btn-outline {
flex: 1;
padding: 14px;
font-size: 17px;
font-weight: 500;
color: #333;
background: #fff;
border: 1px solid #E5E5E5;
border-radius: 8px;
cursor: pointer;
}
.bottom-actions .green-btn {
flex: 1;
}

View File

@@ -0,0 +1,74 @@
.login-content {
padding: 60px 24px;
display: flex;
flex-direction: column;
align-items: center;
}
.app-title {
font-size: 28px;
font-weight: 600;
color: #333;
margin-bottom: 8px;
}
.app-subtitle {
font-size: 14px;
color: #999;
margin-bottom: 40px;
}
.logo-placeholder {
width: 140px;
height: 140px;
background: #E5E5E5;
border-radius: 8px;
margin-bottom: 80px;
}
.login-buttons {
width: 100%;
display: flex;
flex-direction: column;
gap: 16px;
}
.wechat-btn {
width: 100%;
padding: 14px;
font-size: 17px;
font-weight: 500;
color: #fff;
background: #07C160;
border: none;
border-radius: 8px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.wechat-btn:active {
opacity: 0.8;
}
.phone-btn {
width: 100%;
padding: 14px;
font-size: 17px;
font-weight: 500;
color: #333;
background: #fff;
border: 1px solid #E5E5E5;
border-radius: 8px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.phone-btn:active {
background: #F5F5F5;
}

View File

@@ -0,0 +1,19 @@
.login-form {
padding: 20px 24px;
}
.page-title {
font-size: 22px;
font-weight: 600;
color: #333;
text-align: center;
margin-bottom: 40px;
}
.login-form .input-row {
margin-bottom: 0;
}
.login-form .green-btn {
margin-top: 40px;
}

View File

@@ -0,0 +1,117 @@
.profile-content {
padding: 16px;
padding-top: 24px;
}
.user-info {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 24px;
}
.user-info .avatar {
width: 48px;
height: 48px;
border-radius: 50%;
background: #F5F5F5;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.user-info .avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.user-info .user-name {
font-size: 18px;
font-weight: 600;
color: #333;
}
.user-info .user-company {
font-size: 13px;
color: #999;
margin-top: 4px;
}
.account-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 0;
border-bottom: 1px solid #F0F0F0;
cursor: pointer;
margin-bottom: 24px;
}
.row-label {
font-size: 16px;
color: #333;
}
.row-right {
display: flex;
align-items: center;
gap: 8px;
}
.row-value {
font-size: 15px;
color: #999;
}
.section-title {
font-size: 14px;
color: #999;
margin-bottom: 16px;
}
.empty-records {
display: flex;
align-items: center;
justify-content: center;
height: 300px;
color: #999;
font-size: 15px;
}
.records-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
.record-card {
border-radius: 8px;
overflow: hidden;
}
.record-image {
width: 100%;
aspect-ratio: 1;
background: #F5F5F5;
}
.record-image img {
width: 100%;
height: 100%;
object-fit: cover;
}
.record-title {
font-size: 13px;
color: #333;
line-height: 1.4;
margin-top: 8px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
}

View File

@@ -0,0 +1,115 @@
.page-title {
font-size: 17px;
font-weight: 500;
color: #333;
text-align: center;
padding: 24px 0 20px;
}
.product-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12px;
padding: 0 16px;
}
.product-card {
background: #fff;
border-radius: 8px;
border: 1px solid #E5E5E5;
padding: 12px;
padding-bottom: 16px;
position: relative;
cursor: pointer;
transition: all 0.2s;
}
.product-card.selected {
border-color: #07C160;
border-width: 2px;
}
.product-card .checkbox {
position: absolute;
top: 12px;
right: 12px;
width: 20px;
height: 20px;
}
.product-card .checkbox img {
width: 20px;
height: 20px;
position: absolute;
top: 0;
left: 0;
}
.product-card .checkbox .checked {
display: none;
}
.product-card.selected .checkbox .unchecked {
display: none;
}
.product-card.selected .checkbox .checked {
display: block;
}
.product-image {
width: 100%;
aspect-ratio: 1;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 12px;
}
.product-image img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.product-name {
font-size: 14px;
color: #333;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.user-avatar {
position: fixed;
right: 16px;
bottom: 100px;
width: 44px;
height: 44px;
border-radius: 50%;
overflow: hidden;
cursor: pointer;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
background: #fff;
}
.user-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.bottom-section {
position: fixed;
bottom: 34px;
left: 50%;
transform: translateX(-50%);
width: 100%;
max-width: 375px;
padding: 0 16px;
}
.bottom-section .green-btn {
border-radius: 8px;
}