211 lines
5.4 KiB
Python
211 lines
5.4 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
"""
|
|||
|
|
收益明细样式修复脚本
|
|||
|
|
功能:清理冲突的旧样式,注入新的重构样式
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
import re
|
|||
|
|
import sys
|
|||
|
|
|
|||
|
|
def fix_earnings_styles():
|
|||
|
|
wxss_path = 'miniprogram/pages/referral/referral.wxss'
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
# 读取原文件
|
|||
|
|
with open(wxss_path, 'r', encoding='utf-8') as f:
|
|||
|
|
content = f.read()
|
|||
|
|
|
|||
|
|
print("📖 读取原wxss文件...")
|
|||
|
|
|
|||
|
|
# 备份原文件
|
|||
|
|
backup_path = wxss_path + '.before-fix-' + __import__('datetime').datetime.now().strftime('%Y%m%d%H%M%S')
|
|||
|
|
with open(backup_path, 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(content)
|
|||
|
|
print(f"✅ 备份文件: {backup_path}")
|
|||
|
|
|
|||
|
|
# 删除旧的冲突样式(旧版收益明细)
|
|||
|
|
patterns_to_remove = [
|
|||
|
|
# 旧的 detail-item(使用 justify-content: space-between)
|
|||
|
|
r'\.detail-item\s*\{\s*display:\s*flex;\s*align-items:\s*center;\s*justify-content:\s*space-between;[^}]+\}',
|
|||
|
|
# 旧的 detail-left
|
|||
|
|
r'\.detail-left\s*\{[^}]+\}',
|
|||
|
|
# 旧的 detail-icon
|
|||
|
|
r'\.detail-icon\s*\{[^}]+\}',
|
|||
|
|
# 旧的 detail-info
|
|||
|
|
r'\.detail-info\s*\{[^}]+\}',
|
|||
|
|
# 旧的 detail-type
|
|||
|
|
r'\.detail-type\s*\{[^}]+\}',
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
cleaned_content = content
|
|||
|
|
for pattern in patterns_to_remove:
|
|||
|
|
matches = re.findall(pattern, cleaned_content, re.DOTALL)
|
|||
|
|
if matches:
|
|||
|
|
print(f"🗑️ 删除旧样式: {pattern[:50]}... ({len(matches)}处)")
|
|||
|
|
cleaned_content = re.sub(pattern, '', cleaned_content, flags=re.DOTALL)
|
|||
|
|
|
|||
|
|
# 删除重复的 loading 和 detail 样式(编码错误的部分)
|
|||
|
|
# 查找并删除包含特殊字符的样式块
|
|||
|
|
cleaned_content = re.sub(
|
|||
|
|
r'/\s*\*\s*=\s*=\s*=\s*=\s*=.*?=\s*=\s*=\s*=\s*=\s*\*\s*/.*?(?=/\*|$)',
|
|||
|
|
'',
|
|||
|
|
cleaned_content,
|
|||
|
|
flags=re.DOTALL
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
# 新的收益明细样式
|
|||
|
|
new_styles = '''
|
|||
|
|
/* ===================================
|
|||
|
|
收益明细卡片样式 - 重构版 2026-02-04
|
|||
|
|
=================================== */
|
|||
|
|
|
|||
|
|
/* 列表项容器 */
|
|||
|
|
.earnings-detail-card .detail-item {
|
|||
|
|
display: flex !important;
|
|||
|
|
align-items: center !important;
|
|||
|
|
gap: 24rpx !important;
|
|||
|
|
padding: 24rpx 40rpx !important;
|
|||
|
|
background: transparent !important;
|
|||
|
|
border-bottom: 2rpx solid rgba(255,255,255,0.03) !important;
|
|||
|
|
transition: background 0.3s !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.earnings-detail-card .detail-item:last-child {
|
|||
|
|
border-bottom: none !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.earnings-detail-card .detail-item:active {
|
|||
|
|
background: rgba(255, 255, 255, 0.05) !important;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 头像容器 */
|
|||
|
|
.earnings-detail-card .detail-avatar-wrap {
|
|||
|
|
width: 88rpx;
|
|||
|
|
height: 88rpx;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.earnings-detail-card .detail-avatar {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
border: 2rpx solid rgba(56, 189, 172, 0.2);
|
|||
|
|
display: block;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.earnings-detail-card .detail-avatar-text {
|
|||
|
|
width: 100%;
|
|||
|
|
height: 100%;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
background: linear-gradient(135deg, #38bdac 0%, #2da396 100%);
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: center;
|
|||
|
|
font-size: 36rpx;
|
|||
|
|
font-weight: 700;
|
|||
|
|
color: #ffffff;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 详细信息容器 */
|
|||
|
|
.earnings-detail-card .detail-content {
|
|||
|
|
flex: 1;
|
|||
|
|
min-width: 0;
|
|||
|
|
display: flex;
|
|||
|
|
flex-direction: column;
|
|||
|
|
gap: 8rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 顶部行 */
|
|||
|
|
.earnings-detail-card .detail-top {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
justify-content: space-between;
|
|||
|
|
gap: 16rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 买家昵称 */
|
|||
|
|
.earnings-detail-card .detail-buyer {
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: #ffffff;
|
|||
|
|
flex: 1;
|
|||
|
|
min-width: 0;
|
|||
|
|
overflow: hidden;
|
|||
|
|
text-overflow: ellipsis;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 佣金金额 */
|
|||
|
|
.earnings-detail-card .detail-amount {
|
|||
|
|
font-size: 32rpx;
|
|||
|
|
font-weight: 700;
|
|||
|
|
color: #38bdac;
|
|||
|
|
flex-shrink: 0;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 商品信息 */
|
|||
|
|
.earnings-detail-card .detail-product {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: baseline;
|
|||
|
|
gap: 4rpx;
|
|||
|
|
font-size: 24rpx;
|
|||
|
|
color: rgba(255, 255, 255, 0.6);
|
|||
|
|
min-width: 0;
|
|||
|
|
overflow: hidden;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 书名 */
|
|||
|
|
.earnings-detail-card .detail-book {
|
|||
|
|
color: rgba(255, 255, 255, 0.7);
|
|||
|
|
font-weight: 500;
|
|||
|
|
max-width: 50%;
|
|||
|
|
overflow: hidden;
|
|||
|
|
text-overflow: ellipsis;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
flex-shrink: 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 章节 */
|
|||
|
|
.earnings-detail-card .detail-chapter {
|
|||
|
|
color: rgba(255, 255, 255, 0.5);
|
|||
|
|
flex: 1;
|
|||
|
|
min-width: 0;
|
|||
|
|
overflow: hidden;
|
|||
|
|
text-overflow: ellipsis;
|
|||
|
|
white-space: nowrap;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 时间 */
|
|||
|
|
.earnings-detail-card .detail-time {
|
|||
|
|
font-size: 22rpx;
|
|||
|
|
color: rgba(255, 255, 255, 0.4);
|
|||
|
|
}
|
|||
|
|
'''
|
|||
|
|
|
|||
|
|
# 在文件末尾添加新样式
|
|||
|
|
final_content = cleaned_content.rstrip() + '\n' + new_styles + '\n'
|
|||
|
|
|
|||
|
|
# 写入文件
|
|||
|
|
with open(wxss_path, 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(final_content)
|
|||
|
|
|
|||
|
|
print("✅ 样式修复完成!")
|
|||
|
|
print(f"📝 原文件大小: {len(content)} 字符")
|
|||
|
|
print(f"📝 清理后大小: {len(cleaned_content)} 字符")
|
|||
|
|
print(f"📝 最终大小: {len(final_content)} 字符")
|
|||
|
|
print("\n🎉 收益明细样式已重构!")
|
|||
|
|
|
|||
|
|
return True
|
|||
|
|
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"❌ 错误: {str(e)}")
|
|||
|
|
import traceback
|
|||
|
|
traceback.print_exc()
|
|||
|
|
return False
|
|||
|
|
|
|||
|
|
if __name__ == '__main__':
|
|||
|
|
success = fix_earnings_styles()
|
|||
|
|
sys.exit(0 if success else 1)
|