Files
websopy-taro/src/developer/project/[id]/members.scss
赵忠林 ffab0ec25c feat(developer): 完成小程序开发者中心和企业控制台改造
- 设计并实现了开发者中心与企业控制台两大模块
- 按用户角色区分开发者和企业客户,支持多项目类型及成员管理
- 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面
- 实现应用版本发布、消息通知中心、权限审批与开发者申请流程
- 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能
- 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块
- 优化后端API,支持已登录和未注册用户不同加入应用流程
- 前端按钮统一采用微信手机号授权,完善用户授权体验
- 修复多个页面的JSX语法错误及依赖导入问题,替换部分组件库
- 增加详细的类型定义文件,提升项目类型安全
- 新增超过55个页面及60个API接口,扩展应用功能和服务体系
- 完成全面的样式设计,实现一致的视觉风格和交互体验
2026-04-13 02:26:46 +08:00

308 lines
4.8 KiB
SCSS

.members-page {
min-height: 100vh;
background: #f5f5f5;
padding: 24rpx;
padding-bottom: 120rpx;
&__header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24rpx;
}
&__title {
font-size: 36rpx;
font-weight: 600;
color: #333;
}
&__invite-btn {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #fff;
border: none;
border-radius: 32rpx;
font-size: 26rpx;
padding: 0 28rpx;
height: 60rpx;
line-height: 60rpx;
&::after {
border: none;
}
}
// 统计卡片
&__stats {
display: flex;
background: #fff;
border-radius: 16rpx;
padding: 32rpx;
margin-bottom: 24rpx;
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
}
&__stat {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
&-num {
font-size: 40rpx;
font-weight: 700;
color: #333;
margin-bottom: 8rpx;
}
&-label {
font-size: 24rpx;
color: #999;
}
}
// 列表
&__list {
display: flex;
flex-direction: column;
gap: 24rpx;
}
&__empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 120rpx 0;
text {
font-size: 30rpx;
color: #999;
}
&-hint {
margin-top: 16rpx;
font-size: 26rpx !important;
color: #ccc !important;
}
}
&__loading {
display: flex;
justify-content: center;
padding: 32rpx 0;
text {
font-size: 26rpx;
color: #999;
}
}
}
// 成员卡片
.member-card {
display: flex;
align-items: flex-start;
background: #fff;
border-radius: 16rpx;
padding: 32rpx;
box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05);
&__avatar {
width: 96rpx;
height: 96rpx;
border-radius: 50%;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
margin-right: 24rpx;
flex-shrink: 0;
overflow: hidden;
&-img {
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
}
&-text {
font-size: 36rpx;
font-weight: 600;
color: #fff;
}
}
&__info {
flex: 1;
min-width: 0;
}
&__name-row {
display: flex;
align-items: center;
gap: 16rpx;
margin-bottom: 8rpx;
}
&__name {
font-size: 32rpx;
font-weight: 600;
color: #333;
}
&__role {
font-size: 22rpx;
padding: 4rpx 12rpx;
border-radius: 8rpx;
background: #f5f5f5;
}
&__desc {
font-size: 26rpx;
color: #666;
margin-bottom: 8rpx;
}
&__time {
font-size: 24rpx;
color: #999;
}
&__actions {
display: flex;
flex-direction: column;
gap: 16rpx;
margin-left: 24rpx;
}
&__action {
font-size: 26rpx;
color: #667eea;
white-space: nowrap;
&--danger {
color: #ff4d4f;
}
}
}
// 邀请弹窗
.members-page__modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1000;
display: flex;
align-items: flex-end;
justify-content: center;
&-mask {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
}
&-content {
position: relative;
width: 100%;
background: #fff;
border-radius: 32rpx 32rpx 0 0;
padding: 48rpx 32rpx;
padding-bottom: calc(48rpx + env(safe-area-inset-bottom));
}
&-title {
display: block;
font-size: 36rpx;
font-weight: 600;
color: #333;
text-align: center;
margin-bottom: 48rpx;
}
}
.members-page__form {
&-item {
margin-bottom: 32rpx;
}
&-label {
display: block;
font-size: 28rpx;
color: #333;
margin-bottom: 16rpx;
}
&-input {
width: 100%;
height: 88rpx;
background: #f5f5f5;
border-radius: 12rpx;
padding: 0 24rpx;
font-size: 30rpx;
}
&-radio {
display: flex;
gap: 24rpx;
&-item {
flex: 1;
height: 72rpx;
line-height: 72rpx;
text-align: center;
background: #f5f5f5;
border-radius: 12rpx;
font-size: 28rpx;
color: #666;
&.active {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #fff;
}
}
}
&-hint {
display: block;
font-size: 24rpx;
color: #999;
margin-top: 12rpx;
}
}
.members-page__modal-actions {
display: flex;
gap: 24rpx;
margin-top: 48rpx;
}
.members-page__modal-btn {
flex: 1;
height: 88rpx;
line-height: 88rpx;
border-radius: 44rpx;
font-size: 32rpx;
&--cancel {
background: #f5f5f5;
color: #666;
}
&--confirm {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #fff;
&::after {
border: none;
}
}
}