feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复
== 已部署上线 (9项) == - 代办事项真实数据源集成 (企微审批API 8bug修复链) - H5/坐席端 Logo样式统一+绿色背景 - 视频引导页修复 (localStorage key v2) - 坐席端 v9 Vue版本修复 (ElMessage._context) - 截图按钮 v10 修复 (getDisplayMedia user gesture) - 扫码样式恢复+H5扫码登录跳转修复 - H5截图快捷键提示 == 代码完成待部署 (3项) == - 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查) - 会议室预定-小鱼易联终端 (40文件, 40/40测试通过) - IT资产升级审批推送 (asset_service.py) == 需求文档 (2项) == - 坐席端AI辅助消息框-PRD (4项新功能确认) - 坐席端布局优化建议 v2.0 (7天计划) == 新增文档 == - 日报-2026-07-11.md - 知识迭代Bug修复报告-20260711.md - 会议室预定-部署指南.md - CHANGELOG.md 更新 == 测试 == - test_todo_integration.py: 40/40 - test_meetingroom.py: 40/40 - test_bugfix_ki_suggestions.py: 21/21
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env python3
|
||||
"""生成超时提醒通知图片"""
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
import os
|
||||
|
||||
# 图片尺寸(企微图片消息建议尺寸)
|
||||
WIDTH = 600
|
||||
HEIGHT = 300
|
||||
|
||||
# 创建图片
|
||||
img = Image.new('RGB', (WIDTH, HEIGHT))
|
||||
draw = ImageDraw.Draw(img)
|
||||
|
||||
# 绘制渐变背景(从蓝色到青色)
|
||||
for y in range(HEIGHT):
|
||||
# 计算渐变比例
|
||||
ratio = y / HEIGHT
|
||||
# 蓝色 (0, 120, 215) -> 青色 (0, 180, 160)
|
||||
r = int(0 + (0 - 0) * ratio)
|
||||
g = int(120 + (180 - 120) * ratio)
|
||||
b = int(215 + (160 - 215) * ratio)
|
||||
draw.line([(0, y), (WIDTH, y)], fill=(r, g, b))
|
||||
|
||||
# 绘制标题
|
||||
try:
|
||||
# 尝试使用系统字体
|
||||
title_font = ImageFont.truetype("msyh.ttc", 36) # 微软雅黑
|
||||
subtitle_font = ImageFont.truetype("msyh.ttc", 22)
|
||||
button_font = ImageFont.truetype("msyh.ttc", 28)
|
||||
except:
|
||||
# 回退到默认字体
|
||||
title_font = ImageFont.load_default()
|
||||
subtitle_font = ImageFont.load_default()
|
||||
button_font = ImageFont.load_default()
|
||||
|
||||
# 标题
|
||||
draw.text((30, 30), "🔔 您的IT咨询即将关闭", fill=(255, 255, 255), font=title_font)
|
||||
|
||||
# 副标题
|
||||
draw.text((30, 90), "请尽快回复坐席,否则咨询将自动结束", fill=(220, 220, 220), font=subtitle_font)
|
||||
|
||||
# 绘制3D水晶按钮
|
||||
btn_x, btn_y = 30, 160
|
||||
btn_w, btn_h = 540, 70
|
||||
|
||||
# 按钮阴影
|
||||
draw.rounded_rectangle([btn_x+4, btn_y+4, btn_x+btn_w+4, btn_y+btn_h+4], radius=15, fill=(180, 180, 180))
|
||||
|
||||
# 按钮主体(渐变效果用多层矩形模拟)
|
||||
for i in range(btn_h):
|
||||
ratio = i / btn_h
|
||||
# 浅蓝色 -> 深蓝色
|
||||
r = int(30 + (0 - 30) * ratio)
|
||||
g = int(160 + (100 - 160) * ratio)
|
||||
b = int(255 + (200 - 255) * ratio)
|
||||
draw.rectangle([btn_x, btn_y+i, btn_x+btn_w, btn_y+i+1], fill=(r, g, b))
|
||||
|
||||
# 按钮高光效果
|
||||
draw.rounded_rectangle([btn_x, btn_y, btn_x+btn_w, btn_y+btn_h//3], radius=15, fill=(255, 255, 255, 80))
|
||||
|
||||
# 按钮文字
|
||||
draw.text((btn_x + btn_w//2 - 70, btn_y + 20), "立即回复 →", fill=(255, 255, 255), font=button_font)
|
||||
|
||||
# 底部提示
|
||||
draw.text((30, 250), "点击上方按钮进入智能IT服务台", fill=(180, 180, 180), font=subtitle_font)
|
||||
|
||||
# 保存图片
|
||||
output_path = "/tmp/reminder_notification.png"
|
||||
img.save(output_path)
|
||||
print(f"✅ 图片已生成: {output_path}")
|
||||
print(f" 尺寸: {WIDTH}x{HEIGHT}")
|
||||
Reference in New Issue
Block a user