feat: establish teaching feedback mini program

Connect student profiles, defaults, and feedback records to the Rust API. Configure the WeChat AppID, custom tab bar, and local development workflow for version 0.1.0.
This commit is contained in:
2026-07-15 15:36:51 +08:00
commit 0a07538dce
37 changed files with 2550 additions and 0 deletions

145
app.wxss Normal file
View File

@@ -0,0 +1,145 @@
page {
min-height: 100%;
box-sizing: border-box;
background: #f4f8fe;
color: #17233a;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
view,
text,
input,
button {
box-sizing: border-box;
}
button::after {
border: 0;
}
.page-shell {
min-height: 100vh;
padding: 40rpx 32rpx 164rpx;
}
.eyebrow {
color: #2b67e8;
font-size: 28rpx;
font-weight: 700;
line-height: 1.4;
}
.page-heading {
display: flex;
align-items: center;
gap: 14rpx;
margin-top: 12rpx;
}
.heading-icon {
color: #2b67e8;
font-size: 46rpx;
font-weight: 500;
line-height: 1;
}
.page-title {
color: #111b32;
font-size: 52rpx;
font-weight: 800;
line-height: 1.2;
}
.page-subtitle {
margin-top: 18rpx;
color: #718096;
font-size: 30rpx;
line-height: 1.55;
}
.surface {
overflow: hidden;
border: 2rpx solid #d7e5f4;
border-radius: 16rpx;
background: #ffffff;
box-shadow: 0 8rpx 22rpx rgba(45, 78, 120, 0.08);
}
.primary-button,
.secondary-button,
.icon-button {
display: flex;
align-items: center;
justify-content: center;
min-height: 76rpx;
border-radius: 12rpx;
font-size: 30rpx;
font-weight: 700;
line-height: 1;
}
.primary-button {
border: 2rpx solid #2b67e8;
background: #2b67e8;
color: #ffffff;
}
.secondary-button,
.icon-button {
border: 2rpx solid #c9dced;
background: #ffffff;
color: #2b67e8;
}
.button-icon {
margin-right: 10rpx;
font-size: 34rpx;
font-weight: 500;
}
.helper-text {
color: #7b8796;
font-size: 26rpx;
line-height: 1.55;
}
.field-label {
color: #2b67e8;
font-size: 28rpx;
font-weight: 700;
}
.field-value {
margin-top: 18rpx;
color: #17233a;
font-size: 32rpx;
font-weight: 700;
}
.status-banner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20rpx;
margin-top: 24rpx;
padding: 20rpx 22rpx;
border: 2rpx solid #efc7c7;
border-radius: 12rpx;
background: #fff7f7;
color: #a83d3d;
font-size: 25rpx;
line-height: 1.45;
}
.status-action {
flex: none;
color: #2b67e8;
font-weight: 700;
}
.loading-state {
padding: 70rpx 32rpx;
color: #718096;
font-size: 28rpx;
text-align: center;
}