×
¥
查看详情
🔥 会员专享 文生文 设计

动态插画定制生成器

👁️ 219 次查看
📅 Oct 30, 2025
💡 核心价值: 本工具专为动态生成高度定制化插画而设计,通过智能解析用户输入的主题风格与内容要素,自动生成符合品牌调性、教学场景或界面设计需求的视觉作品。支持多维度参数调节,能有效解决传统插画设计周期长、风格不统一、定制成本高等痛点,实现从概念到成品的无缝衔接,适用于市场营销物料制作、在线教育内容开发及数字产品界面优化等场景。

🎯 可自定义参数(3个)

主题描述
插画核心主题描述,如:春天公园野餐场景
风格偏好
插画艺术风格,如:扁平化、手绘风
色彩倾向
主色调倾向,如:温暖明亮、冷色调

🎨 效果示例

插画设计方案

方案一:都市清凉·广场野餐(扁平化粗线条)

  • 构图特点:横向叙事构图,视角落在城市广场一角。前景以巨大扁平化野餐垫为主(黄金分割线偏左 0.38 处),两位人物半跪/坐姿举杯互动形成主视觉焦点。中景右侧为冰块飞溅的饮品杯,溅射形状沿对角线向上延展并与气泡群形成视觉动线。背景简化城市轮廓与树影,保留大面积留白以增强清凉感。右上角预留LOGO与口号区(不含文字,仅留空/矩形占位)。
  • 色彩分析
    • 主色:柑橙 #FF8A00(40%)—饮品、果片主形体
    • 辅色:薄荷青 #2ED9C3(30%)—野餐垫、服饰与植被
    • 辅色:通透冰蓝 #7FD9FF(20%)—背景天空与水感层
    • 点缀:柠檬黄 #FFE066(6%)—小果片与高光
    • 点缀:葡萄柚粉 #FF5D7A(4%)—果肉边缘与细节
    • 线条:深青黑 #0F3B49—粗线勾边(3–6px),提升对比
  • 元素清单
    • 人物(2–3人):举杯、微笑互动,服饰简单块面
    • 飲品杯(1大、1小):透明杯壁内含冰块、气泡、果片
    • 冰块飞溅与水花贴片:多层半透明形状(clipPath)
    • 气泡群:大小变化、疏密渐变(由前景至背景)
    • 城市剪影与树影:低对比块面,避免细节拥挤
    • 野餐道具:篮子、餐巾、薄荷叶装饰(简化)
    • LOGO/口号预留区:右上角 28% 宽 × 18% 高的空白区
  • 适用场景
    • 横版海报(1200×800):完整叙事与品牌露出空间
    • 竖版封面(750×1334):裁切保留人物与饮品杯上半区
    • 方形卡片(1080×1080):聚焦人物与气泡环形动线

方案二:气泡快闪·街头互动(几何动感扁平)

  • 构图特点:纵向中心构图偏上集中,街头快闪摊位与地面几何纹理形成放射式引导线。人物在中心上方轻微抬手举杯,杯口向外的冰蓝圆锥形“气泡扩散区”构成视觉爆点。顶部居中留出品牌区(不含文字,占位为空),底部大留白增强呼吸感。
  • 色彩分析
    • 主色:通透冰蓝 #7FD9FF(45%)—背景、气泡扩散场
    • 辅色:柑橙 #FF8A00(25%)—饮品主体与装饰
    • 辅色:薄荷青 #2ED9C3(20%)—摊位、地面几何块
    • 点缀:白色 #F7FBFF(6%)—高光与留白
    • 线条:深青黑 #0F3B49—粗线(4–7px)稳固结构
    • 额外点缀:海盐灰 #DCEAF2(4%)—阴影与层次过渡
  • 元素清单
    • 快闪摊位:简化棚顶、台面与旗帜形几何
    • 人物(2人):相向举杯,姿态简洁
    • 气泡扩散锥:多层半透明圆形叠加
    • 冰块与果片:以橙色/粉色提升暖冷对比
    • 地面几何:扇形/条带形引导线
    • LOGO/口号预留区:上方中心 24% 宽 × 14% 高空白
  • 适用场景
    • 竖版社媒封面(750×1334):放射动线在竖幅中更具冲击力
    • 横版海报(1200×800):摊位左右延展以适配更宽视野
    • 方形卡片(1080×1080):裁切保留中心人物与扩散锥

方案三:留白几何·果片飞溅(极简商务扁平)

  • 构图特点:大面积留白为主体,中央设置圆形“清凉核心区”作为场景容器;人物与饮品杯位于圆内下方三分线,果片与薄荷叶沿圆周轨迹旋转分布。左下角保留品牌区空白,画面以简约几何分割与轻颗粒实现质感。
  • 色彩分析
    • 主色:薄荷青 #2ED9C3(35%)—核心圆与部分果叶
    • 辅色:柑橙 #FF8A00(30%)—饮品与大果片
    • 辅色:通透冰蓝 #7FD9FF(20%)—背景渐层与水感
    • 点缀:白色 #F7FBFF(10%)—留白与高光
    • 点缀:葡萄柚粉 #FF5D7A(5%)—果肉细节,提升活力
    • 线条:深青黑 #0F3B49—粗线(3–5px)统一边界
  • 元素清单
    • 圆形核心容器:承载主要场景与动画
    • 人物(1–2人):面向镜头举杯,姿态简洁
    • 果片轨道:橙片、柠檬片、薄荷叶沿环形运动
    • 冰块/水花:内发光边缘提升通透感
    • LOGO/口号预留区:左下角 26% 宽 × 16% 高空白
  • 适用场景
    • 方形卡片(1080×1080):圆形中心适合社媒缩略图展示
    • 竖版封面(750×1334):上下留白增强高级感
    • 横版海报(1200×800):圆心偏左或偏右以平衡品牌区

技术实现建议

  • 推荐文件格式:SVG(主交付,支持动态与无损缩放);PNG(静态备份与兼容)
  • 适配尺寸:
    • 横版海报:1200×800(安全内容区:左右各留 60px 边距)
    • 竖版封面:750×1334(安全内容区:上下各留 80px,顶部预留品牌区)
    • 方形卡片:1080×1080(安全内容区:边缘各留 50px)
  • 动效实现(SVG/CSS/Canvas):
    • 气泡上升与大小渐变:transform + opacity,缓出(ease-out),2.5–4s 循环,随机延迟
    • 冰块飞溅与回落:路径位移动画( 或 JS),轻微旋转(-8°~8°),800–1200ms
    • 果片环绕:沿圆形路径匀速或缓入缓出,时长 6–10s,少量缩放以模拟远近
    • 水花/透明层闪烁:低频 opacity 变化(0.85–1),避免过度吸睛
    • 轻颗粒噪点:SVG filter(feTurbulence + feColorMatrix)或叠加半透明PNG噪点层,强度控制在 6–10%
  • 结构与命名建议:
    • 分层分组:g.characters, g.drink, g.iceSplash, g.bubbles, g.fruits, g.city, g.noise, g.brandSlot
    • 品牌区为独立占位组 g.brandSlot(仅空白/框线,交付时可隐藏或删除,插画中不嵌入文字)
    • 粗线条统一 stroke:#0F3B49;stroke-width 根据尺寸动态调整(小屏 3–4px,大屏 5–7px)
  • 加载性能与兼容性注意事项:
    • 优先使用 CSS transform(translate/scale/rotate)与 opacity 动画,避免频繁路径重绘
    • 控制同时运动元素数量(建议 ≤ 35 个),对气泡采用批量复用符号
    • 为移动端禁用复杂滤镜时提供无滤镜降级方案
    • 导出时剔除未用的符号与定义,开启 gzip 压缩(SVG 体积可显著下降)
  • 适配与裁切策略:
    • 关键主体(人物举杯与饮品杯)置于安全区中心 40% 范围内,防止不同比例裁切丢失信息
    • 动线(气泡、飞溅)可跨越安全区增强张力,但不应覆盖品牌预留区
    • 文案层建议作为独立矢量/位图图层管理,替换时不改动插画底层结构

如需微调:可按需调整人物数量与姿态(1–3人)、冰块大小与数量、气泡密度与速度、品牌占位区位置与尺寸、粗线条厚度与噪点强度,以适配不同渠道的视觉节奏与品牌气质。

插画设计方案

方案一:教学信息图·三联几何线稿

  • 构图特点:
    • 左至右三联画等宽布局,细线分隔,整体视觉动线按蒸发→凝结→降水推进;三幅之间以半透明流线箭头衔接,强化水循环闭环。
    • 每幅上方预留标题带(等高圆角矩形,顶对齐,宽度覆盖各自画幅,内部不放文字);下方预留注释区(浅灰条带+虚线边框占位)。
    • 关键元素的黄金分割落点:左幅太阳置于画面上方1/3、左1/3;中幅主云团位于上方黄金点;右幅主山体置于右1/3,河流回流箭头指向左下方,形成回到左幅的视觉闭环。
  • 色彩分析:
    • 主色1(湖蓝 #2AA9E0,45%):海面、河流主体、连接箭头底色。
    • 主色2(青绿 #1FC7A4,30%):山体前景、植被符号、回流箭头。
    • 点缀色(日光淡黄 #F7E27A,5%):太阳主圆与微弱放射线。
    • 背景与线条(浅灰背景 #F3F5F7,15%;深线色 #1E5A7B,5%):画面底色与线稿轮廓;辅助阴影用冷灰 #90A4AE。
    • 比例建议:冷色系占比约75%,点缀黄控制在5%以内以保证教学冷静感与对比度。
  • 元素清单:
    • 蒸发(左幅):海面(水平几何带),上升水汽(成组圆点/短竖线按贝塞尔路径缓缓上升),太阳(同心圆+短射线),向右的导向箭头。
    • 凝结(中幅):多层云团(叠加圆弧几何),正在聚合的水汽粒子(向云团汇聚的点列),微风弧线。
    • 降水(右幅):山脉(三角几何+青绿前景)、云底雨滴(等距竖向路径,落至山脚形成河网),河流回流箭头(向左下弯曲)。
    • 占位区:每幅上方标题条、下方注释条(仅形状不含文本);三联之间的细分隔线。
    • 图标化符号:水滴、风线、箭头、波纹、等高线纹理(低不透明度)。
  • 适用场景:
    • 黑板投影:三联并排16:9适配,增大线宽,减少细纹理以保证远距离可读性。
    • 课件封面:保留三联,但整体缩放居中,左上角(画外)留空给标题区域(由课件软件添加文字)。
    • 练习讲义:A4竖版将三联上下栈叠(蒸发→凝结→降水),保留占位条;提供浅灰底或无底两版,便于黑白打印。

方案二:半环路径信息流·模块卡片

  • 构图特点:
    • 三个等尺寸“过程卡片”水平排列,卡片间用上弧形半环路径连接,箭头沿弧线流动,强调循环逻辑。
    • 每张卡片顶部内嵌标题占位条;底部为注释占位区;卡片外留足白边,整体更像教学信息图组件。
    • 视觉动线由左上弧线→中→右→下方回流弧线→左,形成完整回路。
  • 色彩分析:
    • 主色1(湖蓝 #2AA9E0,40%):弧形路径、海河水体、卡片描边。
    • 主色2(青绿 #22C7A7,35%):山体、植被、回流箭头与图标。
    • 辅助蓝绿渐变(湖蓝→青绿):用于路径高光与强调节点(不超过10%)。
    • 点缀色(日光淡黄 #F7E27A,8%):太阳与关键节点小圆点。
    • 背景(浅灰 #F3F5F7,7%):维持清爽留白。
  • 元素清单:
    • 卡片1(蒸发):海面+上升粒子;太阳微弱呼吸光圈;卡片顶部标题占位条。
    • 卡片2(凝结):云团与向心粒子;中部云核加浅内阴影。
    • 卡片3(降水):雨滴阵列+山体+汇流;底缘流向指示。
    • 半环路径:上行与下行两条带箭头路径,路径节点小圆点标识阶段过渡。
    • 占位区:每卡顶部/底部条带(无文字)。
  • 适用场景:
    • 黑板投影:半环路径加粗并提高对比度,卡片阴影弱化避免投影晕染。
    • 课件封面:卡片居中,路径作为装饰环将标题区域(外部添加文字)围合。
    • 练习讲义:将三卡片改为窄边框,路径线型改虚线,保留清晰黑白层次。

方案三:等距地形叙事·场景三段式

  • 构图特点:
    • 单一连续等距地形带从左至右展开:左端海面与太阳、中部抬升的地形与云层、右端山体与河网,视觉自然分成三段,段落上方各自有标题占位框,下方有注释占位框。
    • 地形带下侧隐藏一条“回流带箭头”,在右端汇入并沿地形底部流回左端海面,构成隐性闭环。
    • 几何块面+线稿边,层级清晰,具故事性与沉浸感,适合封面与展示页。
  • 色彩分析:
    • 主色1(湖蓝 #2AA9E0,35%):海面、河网、回流带。
    • 主色2(青绿 #1FBFA8,28%):前景山地、坡面。
    • 中性色与体积:冷灰蓝 #8DB3C7、冷灰 #90A4AE(22%):云层体积、山体次级面。
    • 点缀(日光淡黄 #F7E27A,5%):太阳、少量反光。
    • 背景(浅灰 #F3F5F7,10%):留白与图形呼吸。
  • 元素清单:
    • 左段:海面网格波纹、上升粒子、太阳与极细放射线。
    • 中段:云层三层体积块、凝结聚拢粒子、微风箭弧。
    • 右段:多峰山体、雨帘、河网与回流箭头(沿等高线蜿蜒)。
    • 占位区:每段上/下圆角矩形框(无文本)、分隔以浅色虚线或细色带暗示三段边界。
    • 装饰:等高线、岩层条带、浅投影。
  • 适用场景:
    • 黑板投影:整体缩放以填满宽屏;增加河网与回流箭头的发光描边便于远距辨识。
    • 课件封面:中央等距地形作为主视觉,标题与副标题在外部排版;适合品牌化应用。
    • 练习讲义:输出单色线稿版(主线色 #1E5A7B),面色以20–30%网点替代,保障黑白打印层次。

技术实现建议

  • 推荐文件格式:
    • 主交付:SVG(矢量+CSS/SMIL 动效);
    • 静态备份:PNG(2x 与 3x 像素密度);
    • 打印:PDF(矢量,嵌入轮廓)与CMYK参考。
  • 适配尺寸:
    • PC端(内容页):1200×800(16:10)与1920×1080(16:9);
    • 移动端:750×1334(竖屏,将三联上下栈叠);
    • 黑板投影:3840×2160(16:9,线宽提升至3–4px 等效);
    • 课件封面:1920×1080 或 A4竖版(210×297mm,出血3mm);
    • 练习讲义:A4竖版,300dpi,线宽≥0.8pt,提供彩色与黑白两版。
  • 优化提示:
    • 动效设计(SVG建议,所有版本均不嵌入文字,仅图形与占位框):
      • 蒸发:上升粒子组沿路径 translateY 与 opacity 交替(2.8–3.2s 循环,0.2s 随机延迟)。
      • 凝结:云团轻微呼吸 scale(0.98–1.02),粒子朝云核位移(3.5s 循环)。
      • 降水:雨滴 dashoffset 或沿直线路径下落(1.6s 循环,着地处涟漪 scale-out 0.4s)。
      • 回流箭头:stroke-dasharray/dashoffset 形成“流动高光”(2.2s 循环)。
      • 太阳:微弱脉冲发光滤镜(feGaussianBlur 结合不透明度0.1–0.2)。
      • 循环节奏:总时长8s,三个阶段错位启动,保证连贯。
      • 可交互:hover 高亮当前阶段卡片;点击暂停/播放;支持 prefers-reduced-motion 关闭动画。
    • 结构与命名:
      • 分层:g.panel-evap / g.panel-cond / g.panel-precip;g.paths-flow;g.ui-placeholders(标题/注释占位框)。
      • 组件复用:symbol/defs 复用水滴、箭头、云团元件;使用 生成实例降低体积。
    • 版式导出要点:
      • 黑板投影:提高对比(深线色 #1E5A7B 与底色对比≥4.5:1);减少纹理密度;面色不超过3层叠加。
      • 课件封面:主视觉保留,标题与文字在课件工具中排版;SVG中仅保留标题/注释占位框。
      • 练习讲义:提供“线稿单色”样式表,所有填色转为20–60%网点或灰阶;删除发光与模糊滤镜。
    • 性能与兼容性:
      • 压缩:SVGO(移除无用属性/小数精度至3);
      • 移动端:避免过多滤镜与大型模糊;元素数量控制在1,200个以内;
      • 兼容:为不支持SMIL的环境提供 CSS keyframes 或 Canvas 备选;
      • 可访问:图形可添加 与 <desc> 元数据用于无障碍说明(交付版可留空或由平台自动注入),插画本体不嵌入可见文字。</li> </ul> </li> <li>可调参数(便于二次修改): <ul> <li>线宽:1.5–4px(随输出尺寸自适应);</li> <li>粒子密度:每幅30–80个;</li> <li>颜色变量:--primary-blue:#2AA9E0;--primary-teal:#1FC7A4;--accent-yellow:#F7E27A;--bg:#F3F5F7;</li> <li>占位区高度:标题占位 8–10% 画幅高,注释占位 10–14%。</li> </ul> </li> </ul> </li> </ul> <p>如需,我可基于以上三套方案任选其一,输出对应的可编辑SVG原稿与三种版式(黑板投影/课件封面/练习讲义)的成套适配文件,并支持局部微调(如箭头形态、云层体积、色彩饱和度与线宽)。</p> </div> </div> </div> <div class="prompt-examples-v4-tab-content " id="example-2"> <div class="prompt-examples-v4-output"> <button class="prompt-examples-v4-popup-btn" onclick="showExamplePopup(2, 'App引导画', this)" title="在弹窗中查看完整内容"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/> </svg> </button> <div class="html-content-display prompt-examples-v4-output-text"> <h2 id="插画设计方案">插画设计方案</h2> <h3 id="方案一圆角卡片三联轻拟物扁平融合">方案一:圆角卡片三联(轻拟物扁平融合)</h3> <ul> <li><strong>构图特点</strong>:三屏横向联动的卡片栈式布局。左屏“设定目标”:主角与大型日历卡片互动,日期格与目标标记形成黄金分割偏左的视觉焦点;中屏“记录进度”:圆角进度条作为主视觉,人物在进度条前方轻微前倾形成动线延续;右屏“达成奖励”:奖杯置于右下黄金分割点,柠檬黄点缀形成收尾高潮。整体采用圆角网格(卡片R=24、控件R=12、图标R=8),留白充足,柔和投影引导层次。</li> <li><strong>色彩分析</strong>: <ul> <li>主色:紫灰 #6F6B8F(50%)/ 靛蓝 #3442A5(25%)</li> <li>辅色:浅紫灰 #A1A4C2(15%)/ 背景浅色 #F5F6FA(用于浅主题)</li> <li>点缀色:柠檬黄 #FFD84D(10%,仅用于目标标记、进度高亮、奖杯光晕)</li> <li>深色主题映射:深靛蓝背景 #0F1224、面板 #171A2C、投影用色偏靛蓝透明度 20–30%</li> </ul> </li> <li><strong>元素清单</strong>: <ul> <li>人物:中性化几何人物(圆润线条、无明显性征),服饰采用紫灰/靛蓝双拼</li> <li>日历:6×5日期网格、目标标记为圆角贴片与小徽记(无文字)</li> <li>进度条:圆角条与圆点节点、轻拟物高光与柔和投影</li> <li>奖杯:圆润杯身+底座,柠檬黄主色,淡紫灰高光,微型粒子光晕</li> <li>场景辅助:圆角卡片、漂浮几何气泡、柔和阴影层</li> </ul> </li> <li><strong>适用场景</strong>:移动端引导页轮播、官网首页视觉横幅、App Store 截屏序列;支持深浅主题切换,卡片式信息层适合多语言本地化(图形不嵌文本)。</li> </ul> <h3 id="方案二环形时间轴叙事轻拟物圆环动线">方案二:环形时间轴叙事(轻拟物圆环动线)</h3> <ul> <li><strong>构图特点</strong>:以闭合圆环为时间轴,三段节点分别承载“目标—进度—奖励”。左上为目标节点嵌入日历贴片,中下为进度节点以弧形进度条填充,右上为奖杯节点;人物位于环心,手势指向当前节点形成视觉动线。圆环外沿加入柔和分层阴影与高光,提升轻拟物质感。</li> <li><strong>色彩分析</strong>: <ul> <li>主色:靛蓝 #2F3D8C(40%)/ 紫灰 #6B6F8E(30%)</li> <li>辅色:浅靛蓝 #4C5BD4(15%)/ 环心浅面 #E9EBF5(浅主题)</li> <li>点缀色:柠檬黄 #FFC933(15%,分布于当前节点光环、奖杯高光、进度终点)</li> <li>深色主题映射:背景 #0D1020、环体渐变(#1E2759→#2F3D8C),投影以内阴影方式表现层次</li> </ul> </li> <li><strong>元素清单</strong>: <ul> <li>圆环时间轴:三节点图标底座(圆角胶囊形)、活动高光与内发光</li> <li>日历节点:缩略网格、目标徽记点亮</li> <li>进度节点:环形进度条逐步填充到当前段</li> <li>奖杯节点:杯身微倾,周围粒子与光圈</li> <li>人物:中性化剪影,双臂圆润线条,指向当前目标</li> </ul> </li> <li><strong>适用场景</strong>:入门引导页、成就系统说明、数据面板空状态插画;环形叙事结构适配圆屏或居中布局页面,易做动效循环。</li> </ul> <h3 id="方案三等距轻拟物桌面故事化三分屏">方案三:等距轻拟物桌面(故事化三分屏)</h3> <ul> <li><strong>构图特点</strong>:等距视角,将三屏元素融入一体化桌面场景。左侧靠近视角的日历翻页,中间是手机/平板的圆角进度界面,右侧展示奖杯与奖励徽章台。桌面与器物采用轻拟物阴影与高光,人物以半身等距站立于中景,视线与手势贯穿三处焦点形成对角线动线。</li> <li><strong>色彩分析</strong>: <ul> <li>主色:紫灰 #7A7D9E(35%)/ 靛蓝 #3A4BC3(30%)</li> <li>辅色:桌面浅灰 #DDE0EA(20%)/ 背景浅色 #F7F8FC</li> <li>点缀色:柠檬黄 #F7D046(15%,用于翻页角高光、进度终点光点、奖杯主体)</li> <li>深色主题映射:背景 #121528、桌面 #1A1F33、器物边缘高光用浅靛蓝 #5C6AD8</li> </ul> </li> <li><strong>元素清单</strong>: <ul> <li>日历翻页:圆角纸张层叠、翻角高光、日期格简化几何</li> <li>设备屏:圆角屏幕、进度条/进度点、柔和内阴影</li> <li>奖杯台:奖杯、圆形徽章、粒子与微光</li> <li>人物:中性化等距造型、柔和投影</li> <li>场景饰物:圆角便签、笔筒、几何摆件(无文字)</li> </ul> </li> <li><strong>适用场景</strong>:产品介绍页横幅、演示文稿首屏、课程封面插图;等距风格具备“物台”质感,适合强调工具与完成度。</li> </ul> <h2 id="技术实现建议">技术实现建议</h2> <ul> <li>推荐文件格式:SVG(主交付,矢量、可主题化)、PNG(栅格备份,含透明背景)</li> <li>适配尺寸: <ul> <li>PC端:1× 1200×800、2× 2400×1600、3× 3600×2400</li> <li>移动端:1× 750×1334、2× 1500×2668、3× 2250×4002</li> </ul> </li> <li>主题适配与圆角网格: <ul> <li>圆角层级:卡片 R=24、组件 R=12、图标 R=8、设备外框 R=40</li> <li>基线网格:8pt 间距系(8/16/24/32),元素对齐黄金分割与三分法交点</li> <li>颜色变量:--brand-purpleGray、--brand-indigo、--accent-lemon;通过CSS变量或SVG内联样式切换浅/深主题</li> </ul> </li> <li>动效建议(SVG/Lottie/Canvas均可): <ul> <li>目标(日历):翻页 300ms、缓出;目标徽记脉冲 800ms、循环淡入淡出</li> <li>进度:条形填充 1.2s、缓入缓出;节点光点 600ms 跳动;环形进度采用 stroke-dashoffset 动态</li> <li>奖励:奖杯上升 500ms、轻微弹性;粒子(10–16个)外扩 700ms、带 100ms 随机延迟</li> <li>投影与高光:使用 SVG filter feDropShadow(偏移小、模糊适中)与渐变高光;深色主题减少阴影透明度增加内发光</li> </ul> </li> <li>性能与兼容性优化: <ul> <li>将重复图标以 <symbol> + <use> 复用;控制路径节点数,合并小形状</li> <li>限制滤镜层数(≤2层阴影);移动端优先 Lottie 或 CSS 动画,Canvas 做粒子效果</li> <li>为PNG备份导出透明背景,采用WebP压缩(质量70–80)用于网页</li> <li>保持无嵌入文本(遵守规范),在产品界面以系统字体叠加说明即可</li> </ul> </li> <li>导出与质检: <ul> <li>出口检查边缘对齐与描边一致(2px 或 3px 等比缩放)</li> <li>1×/2×/3×均以同一矢量源导出,保证投影半径与描边等比缩放</li> <li>深浅主题分别生成资源包(light/dark),统一文件命名并提供色板标注</li> </ul> </li> </ul> <p>如需我将以上三套方案中的任意一个细化为可直接交付的SVG源稿(含分层与主题切换变量),请告知选择的方案与希望强调的运动细节或圆角/配色微调参数。</p> </div> </div> </div> </div> </div> </section> <div id="examplePopupModal" class="prompt-examples-v4-modal"> <div class="prompt-examples-v4-modal-content"> <div class="prompt-examples-v4-modal-header"> <h3 id="popupTitle">示例详情</h3> <button class="prompt-examples-v4-modal-close" onclick="closeExamplePopup()"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <line x1="18" y1="6" x2="6" y2="18"></line> <line x1="6" y1="6" x2="18" y2="18"></line> </svg> </button> </div> <div class="prompt-examples-v4-modal-body"> <div id="popupContent" class="prompt-examples-v4-popup-content"></div> </div> </div> </div> <script> // 弹窗功能JavaScript function showExamplePopup(exampleIndex, title, buttonElement) { const modal = document.getElementById('examplePopupModal'); const popupTitle = document.getElementById('popupTitle'); const popupContent = document.getElementById('popupContent'); // 设置弹窗标题 popupTitle.textContent = title; // 获取对应示例的内容 const tabContent = document.getElementById('example-' + exampleIndex); const outputText = tabContent.querySelector('.prompt-examples-v4-output-text'); if (outputText) { // 克隆内容到弹窗中 popupContent.innerHTML = outputText.innerHTML; } else { popupContent.innerHTML = '<p>暂无内容</p>'; } // 显示弹窗 modal.classList.add('show'); document.body.style.overflow = 'hidden'; // 防止背景滚动 } function closeExamplePopup() { const modal = document.getElementById('examplePopupModal'); modal.classList.remove('show'); document.body.style.overflow = ''; // 恢复背景滚动 } // 点击背景关闭弹窗 document.addEventListener('DOMContentLoaded', function() { const modal = document.getElementById('examplePopupModal'); if (modal) { modal.addEventListener('click', function(e) { if (e.target === modal) { closeExamplePopup(); } }); } // ESC键关闭弹窗 document.addEventListener('keydown', function(e) { if (e.key === 'Escape') { closeExamplePopup(); } }); }); </script> <script> document.addEventListener('DOMContentLoaded', function() { // Tab切换功能 const tabs = document.querySelectorAll('.prompt-examples-v4-tab'); const contents = document.querySelectorAll('.prompt-examples-v4-tab-content'); tabs.forEach(tab => { tab.addEventListener('click', function() { const targetId = this.getAttribute('data-tab'); // 移除所有active状态 tabs.forEach(t => t.classList.remove('active')); contents.forEach(c => c.classList.remove('active')); // 添加当前active状态 this.classList.add('active'); const targetContent = document.getElementById(targetId); if (targetContent) { targetContent.classList.add('active'); } }); }); }); </script> </div> <section class="usage-section"> <h2 class="section-title">📖 如何使用</h2> <div class="usage-tabs"> <button class="usage-tab active" onclick="switchUsageTab('chat')">Chat 用户</button> <button class="usage-tab" onclick="switchUsageTab('developer')">开发者</button> </div> <!-- Chat用户 --> <div class="usage-content active" id="chat-content"> <div class="usage-card"> <div class="usage-card-title"> <span>⚡</span> 30秒出活:复制 → 粘贴 → 搞定 </div> <div class="usage-card-desc"> 与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡! </div> <a href="javascript:void(0)" class="usage-card-action disabled" id="usageCopyBtn"> <span>加载中...</span> <span></span> </a> </div> <div class="usage-card"> <div class="usage-card-title"> <span>💬</span> 不会填参数?让 AI 反过来问你 </div> <div class="usage-card-desc"> 不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。 </div> <a href="https://tools.explinks.com/prompt-interactive?slug=dynamic_custom_illustration" class="usage-card-action"> <span>转为对话模式</span> <span>→</span> </a> </div> <div class="usage-card"> <div class="usage-card-title"> <span>🚀</span> 告别复制粘贴,Chat 里直接调用 </div> <div class="usage-card-desc"> 无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。 </div> <span class="usage-card-action" style="background:linear-gradient(135deg,#94a3b8,#64748b);box-shadow:0 4px 12px rgba(100,116,139,0.3);cursor:default;pointer-events:none;"> <span>即将推出</span> </span> </div> </div> <!-- 开发者 --> <div class="usage-content" id="developer-content"> <div class="usage-card"> <div class="usage-card-title"> <span>🔌</span> 接口一调,提示词自己会进化 </div> <div class="usage-card-desc"> 手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。 </div> <a href="https://tools.explinks.com/prompt-api?slug=dynamic_custom_illustration" class="usage-card-action"> <span>发布 API</span> <span>→</span> </a> </div> <div class="usage-card"> <div class="usage-card-title"> <span>🤖</span> 一键变成你的专属 Agent 应用 </div> <div class="usage-card-desc"> 不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。 </div> <a href="javascript:void(0)" class="usage-card-action disabled"> <span>创建 Agent</span> <span>→</span> </a> </div> </div> </section> <script> // 切换使用指南标签页 function switchUsageTab(tab) { document.querySelectorAll('.usage-tab').forEach(t => t.classList.remove('active')); document.querySelectorAll('.usage-content').forEach(c => c.classList.remove('active')); if (event) { event.target.classList.add('active'); } else { // 提供一个备用方式找到对应的tab let tabs = document.querySelectorAll('.usage-tab'); for(let i = 0; i < tabs.length; i++) { if(tabs[i].getAttribute('onclick').includes(tab)) { tabs[i].classList.add('active'); break; } } } const contentArea = document.getElementById(tab + '-content'); if (contentArea) { contentArea.classList.add('active'); } } // 优雅的 Toast 提示组件 function customToast(message, isError = false) { // 如果页面已经有相同提示,先移除 const existingToast = document.getElementById('custom-toast-message'); if (existingToast) { existingToast.remove(); } const toast = document.createElement('div'); toast.id = 'custom-toast-message'; toast.textContent = message; // 极简拟物化样式 Object.assign(toast.style, { position: 'fixed', top: '40px', left: '50%', transform: 'translateX(-50%) translateY(-20px)', background: isError ? '#fee2e2' : '#ffffff', color: isError ? '#ef4444' : '#10b981', padding: '12px 24px', borderRadius: '12px', boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)', border: isError ? '1px solid #fecaca' : '1px solid #d1fae5', fontSize: '14px', fontWeight: '600', zIndex: '9999', opacity: '0', transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)', display: 'flex', alignItems: 'center', gap: '8px' }); // 成功状态添加一个小勾,失败添加一个叉 const icon = document.createElement('span'); icon.textContent = isError ? '❌' : '✓'; toast.prepend(icon); document.body.appendChild(toast); // 触发动画 requestAnimationFrame(() => { toast.style.opacity = '1'; toast.style.transform = 'translateX(-50%) translateY(0)'; }); // 3秒后自动消失然后解除 DOM setTimeout(() => { toast.style.opacity = '0'; toast.style.transform = 'translateX(-50%) translateY(-20px)'; setTimeout(() => toast.remove(), 300); }, 3000); } // 复制提示词功能(调用已经有的方法) function copyPromptContent() { const contentArea = document.getElementById('leftPromptContentArea'); if (contentArea && contentArea.textContent) { const textToCopy = contentArea.textContent; if (typeof copyTextToClipboard === 'function') { copyTextToClipboard(textToCopy, () => { if (typeof showToast === 'function') showToast('复制成功'); else customToast('提示词已复制到剪贴板'); }); } else if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(textToCopy).then(() => { customToast('提示词已复制到剪贴板'); }).catch(() => { fallbackCopyTextToClipboard(textToCopy); }); } else { fallbackCopyTextToClipboard(textToCopy); } } else { customToast('获取提示词内容失败,请先获取内容或联系管理员!', true); } } // 针对非安全环境(http)的旧版浏览器复制降级方案 function fallbackCopyTextToClipboard(text) { var textArea = document.createElement("textarea"); textArea.value = text; // 防止页面滚动和闪烁 textArea.style.top = "0"; textArea.style.left = "0"; textArea.style.position = "fixed"; textArea.style.opacity = "0"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); if (successful) { if (typeof showToast === 'function') showToast('复制成功'); else customToast('提示词已复制到剪贴板'); } else { customToast('复制失败,请手动选中并复制', true); } } catch (err) { customToast('复制失败,浏览器不支持', true); } document.body.removeChild(textArea); } // 动态更新"复制提示词"按钮状态 function updateUsageCopyBtnState() { const btn = document.getElementById('usageCopyBtn'); if (!btn) return; // 检查是否登录 var token = (function() { var m = document.cookie.match(/(?:^|; )Admin-Token=([^;]+)/); return m ? decodeURIComponent(m[1]) : null; })(); if (!token) { // 未登录 btn.classList.remove('disabled'); btn.innerHTML = '<span>登录后完整查看与复制</span><span>→</span>'; btn.onclick = function(e) { e.preventDefault(); if (typeof openLoginDialog === 'function') { openLoginDialog(); } else { window.location.href = '/login'; } }; return; } // 已登录,检查是否为会员 if (typeof window.fetchVipStatus === 'function') { window.fetchVipStatus().then(function(result) { btn.classList.remove('disabled'); if (result && result.isVip) { // VIP 会员 btn.innerHTML = '<span>复制提示词</span><span>→</span>'; btn.onclick = function(e) { e.preventDefault(); copyPromptContent(); }; } else { // 非终身会员 btn.innerHTML = '<span>终身会员免费复制</span><span>→</span>'; btn.onclick = function(e) { e.preventDefault(); window.open('/user/vip', '_blank'); }; } }).catch(function() { btn.innerHTML = '<span>状态异常,请刷新</span><span></span>'; }); } else { // 兜底:获取不到方法时,默认要求开通会员 btn.classList.remove('disabled'); btn.innerHTML = '<span>终身会员免费复制</span><span>→</span>'; btn.onclick = function(e) { e.preventDefault(); window.open('/user/vip', '_blank'); }; } } document.addEventListener('DOMContentLoaded', updateUsageCopyBtnState); // 监听登录成功消息重新渲染 window.addEventListener('message', function(event) { if (event.data === 'loginSuccess') { setTimeout(updateUsageCopyBtnState, 300); } }); </script> <div class="features-summary-section"> <h2 class="section-title">✅ 特性总结</h2> <div class="features-summary-list"> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">智能解析主题与风格,一键生成三套备选插画方案,快速对比选优,显著缩短上新周期。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">预设品牌色与元素库,自动保持风格统一,适配海报、落地页与社媒多场景视觉输出。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">自动生成配色比例与构图说明,非设计背景也能按图执行,保证画面专业与可读性。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">支持人物、场景、道具灵活组合,轻松搭建有叙事性的教学与故事画面,提升转化与理解。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">一键生成多尺寸适配建议,覆盖网页端与移动端常用尺寸,减少反复改图与沟通成本。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">参数化微调人物数量、背景复杂度与氛围强度,即时预览方向,快速锁定理想风格。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">输出可商用的高清无水印素材,矢量位图皆可编辑,放大不糊,满足品牌长期使用。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">内置质量与合规守护,自动规避敏感元素与版权风险,让每次发布更安心更省心。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">提供页面加载与动效建议,保证插画轻量易用,兼顾美观与体验,不拖慢转化路径。</span> </div> <div class="feature-summary-item"> <span class="feature-summary-bullet"></span> <span class="feature-summary-text">流程化交付,从草图到定稿全链路可追溯,团队协作更顺滑,减少返工风险。</span> </div> </div> </div> <div class="problem-section"> <h2 class="section-title">🎯 解决的问题</h2> <div class="scenario-card"> <div class="scenario-text"> <div class="html-content-display solved-problems-text"> <p>让市场营销、在线教育与数字产品团队在几分钟内生成可直接用于投放与上线的定制插画。通过输入主题、风格偏好与色彩倾向,快速获得三套风格统一、构图清晰的备选方案与应用建议;支持细节微调和多尺寸适配,确保品牌一致性与商用品质,显著缩短创作周期、降低外包成本、提升内容转化表现,推动用户从试用到付费。</p> </div> </div> </div> </div> <style> .problem-section { margin-bottom: 32px; } .problem-section .scenario-card { background-color: #f8f9fa; border-radius: 12px; padding: 24px; } .problem-section .scenario-text { color: #333; line-height: 1.6; } .problem-section .scenario-text .solved-problems-text { background-color: transparent !important; border: none !important; padding: 0 !important; margin: 0 !important; font-size: 15px; } </style> <!-- 版本历史 --> <div class="version-history-section"> <h2 class="section-title">🕒 版本历史</h2> <div class="coming-soon-wrapper"> <div class="coming-soon-content"> <div class="version-timeline"> <div class="version-item current"> <div class="version-badge">当前版本</div> <div class="version-header"> <span class="version-number">v2.1</span> <span class="version-date">2024-01-15</span> </div> <div class="version-title">优化输出结构,增强情节连贯性</div> <ul class="version-changes"> <li>✨ 新增章节节奏控制参数</li> <li>🔧 优化人物关系描述逻辑</li> <li>📝 改进主题深化引导语</li> <li>🎯 增强情节转折点设计</li> </ul> </div> <div class="version-item "> <div class="version-header"> <span class="version-number">v2.0</span> <span class="version-date">2023-12-20</span> </div> <div class="version-title">重构提示词架构,提升生成质量</div> <ul class="version-changes"> <li>🚀 全新的提示词结构设计</li> <li>📊 增加输出格式化选项</li> <li>💡 优化角色塑造引导</li> </ul> </div> <div class="version-item "> <div class="version-header"> <span class="version-number">v1.5</span> <span class="version-date">2023-11-10</span> </div> <div class="version-title">修复已知问题,提升稳定性</div> <ul class="version-changes"> <li>🐛 修复长文本处理bug</li> <li>⚡ 提升响应速度</li> </ul> </div> <div class="version-item "> <div class="version-header"> <span class="version-number">v1.0</span> <span class="version-date">2023-10-01</span> </div> <div class="version-title">首次发布</div> <ul class="version-changes"> <li>🎉 初始版本上线</li> </ul> </div> </div> </div> <div class="coming-soon-overlay"> <div class="coming-soon-badge">COMING SOON</div> <div class="coming-soon-text">版本历史追踪,即将启航</div> <div class="coming-soon-subtext">记录每一次提示词的进化与升级,敬请期待。</div> </div> </div> </div> <!-- 用户评价 --> <div class="reviews-section"> <div style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px;"> <h2 class="section-title" style="margin-bottom: 0;">💬 用户评价</h2> <!-- 暂时隐藏评价按钮,因为模块正在开发中 --> <!-- <button class="feedback-btn" onclick="openFeedbackModal()"> <span>✍️</span> <span>写评价 / 反馈</span> </button> --> </div> <div class="coming-soon-wrapper"> <div class="coming-soon-content"> <div class="reviews-stats"> <div class="rating-summary"> <div class="rating-score">4.8</div> <div class="rating-stars">⭐⭐⭐⭐⭐</div> <div class="rating-count">基于 28 条评价</div> </div> <div class="rating-bars"> <div class="rating-bar-item"> <span class="rating-label">5星</span> <div class="rating-bar"> <div class="rating-bar-fill" style="width: 85%"></div> </div> <span class="rating-percent">85%</span> </div> <div class="rating-bar-item"> <span class="rating-label">4星</span> <div class="rating-bar"> <div class="rating-bar-fill" style="width: 12%"></div> </div> <span class="rating-percent">12%</span> </div> <div class="rating-bar-item"> <span class="rating-label">3星</span> <div class="rating-bar"> <div class="rating-bar-fill" style="width: 3%"></div> </div> <span class="rating-percent">3%</span> </div> </div> </div> <div class="reviews-list"> <div class="review-item"> <div class="review-header"> <div class="review-avatar">👤</div> <div class="review-info"> <div class="review-author">电商运营 - 张先生</div> <div class="review-meta"> <span class="review-stars">⭐⭐⭐⭐⭐</span> <span class="review-date">2025-01-15</span> </div> </div> </div> <div class="review-content"> 双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。 </div> <div class="review-tags"> <span class="review-tag">效果好</span> <span class="review-tag">节省时间</span> </div> </div> <div class="review-item"> <div class="review-header"> <div class="review-avatar">👤</div> <div class="review-info"> <div class="review-author">品牌设计师 - 李女士</div> <div class="review-meta"> <span class="review-stars">⭐⭐⭐⭐⭐</span> <span class="review-date">2025-01-10</span> </div> </div> </div> <div class="review-content"> 作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。 </div> <div class="review-tags"> <span class="review-tag">创意好</span> <span class="review-tag">专业</span> </div> </div> </div> <div class="reviews-footer"> <button class="load-more-reviews" onclick="alert('加载更多评论功能开发中...')"> 查看更多评价 </button> </div> </div> <div class="coming-soon-overlay"> <div class="coming-soon-badge">COMING SOON</div> <div class="coming-soon-text">用户评价与反馈系统,即将上线</div> <div class="coming-soon-subtext">倾听真实反馈,在这里留下您的使用心得,敬请期待。</div> </div> </div> </div> <!-- 反馈弹窗 --> <div class="feedback-modal" id="feedbackModal" onclick="closeFeedbackModal(event)"> <div class="feedback-modal-content" onclick="event.stopPropagation()"> <button class="feedback-close" onclick="closeFeedbackModal()">×</button> <div class="feedback-header"> <div class="feedback-icon">💬</div> <h2 class="feedback-title">提交反馈</h2> <p class="feedback-subtitle">您的反馈对我们非常重要</p> <div class="feedback-tip"> <span class="feedback-tip-icon">💡</span> <span class="feedback-tip-text">您的真实感受,是提示词通往完美的最后一块拼图。</span> </div> </div> <form class="feedback-form" onsubmit="handleFeedbackSubmit(event)"> <!-- 星级评分 --> <div class="feedback-rating-group"> <label class="feedback-label">整体评价 <span style="color: #ef4444;">*</span></label> <div class="feedback-rating-stars" id="ratingStars"> <span class="rating-star active" data-rating="1" onclick="setRating(1)">★</span> <span class="rating-star active" data-rating="2" onclick="setRating(2)">★</span> <span class="rating-star active" data-rating="3" onclick="setRating(3)">★</span> <span class="rating-star active" data-rating="4" onclick="setRating(4)">★</span> <span class="rating-star active" data-rating="5" onclick="setRating(5)">★</span> </div> <input type="hidden" name="rating" id="ratingValue" value="5" required> <div class="rating-text" id="ratingText">非常满意</div> </div> <div class="feedback-type-group"> <label class="feedback-label">反馈类型</label> <div class="feedback-type-options"> <label class="feedback-type-option"> <input type="radio" name="feedbackType" value="bug"> <span class="feedback-type-label">🪲 Bug反馈</span> </label> <label class="feedback-type-option"> <input type="radio" name="feedbackType" value="feature"> <span class="feedback-type-label">💡 功能建议</span> </label> <label class="feedback-type-option"> <input type="radio" name="feedbackType" value="content"> <span class="feedback-type-label">📝 内容问题</span> </label> <label class="feedback-type-option"> <input type="radio" name="feedbackType" value="review" checked> <span class="feedback-type-label">⭐ 使用评价</span> </label> </div> </div> <div class="feedback-input-group"> <label class="feedback-label">反馈内容 <span style="color: #ef4444;">*</span></label> <textarea class="feedback-textarea" id="feedbackContent" name="feedbackContent" placeholder="请详细描述您遇到的问题或建议..." maxlength="500" required oninput="updateFeedbackCharCount()" ></textarea> <div class="feedback-char-count"><span id="feedbackCharCount">0</span> / 500</div> </div> <button type="submit" class="feedback-submit-btn">提交反馈</button> </form> </div> </div> <script> // 打开反馈弹窗 function openFeedbackModal() { var modal = document.getElementById('feedbackModal'); if(modal) { modal.classList.add('show'); document.body.style.overflow = 'hidden'; } } // 设置星级评分 function setRating(rating) { var stars = document.querySelectorAll('.rating-star'); var ratingTexts = ['很不满意', '不满意', '一般', '满意', '非常满意']; // 更新星星显示 for(var i = 0; i < stars.length; i++) { if (i < rating) { stars[i].classList.add('active'); } else { stars[i].classList.remove('active'); } } // 更新隐藏字段和文字 var ratingValueInput = document.getElementById('ratingValue'); var ratingTextDiv = document.getElementById('ratingText'); if(ratingValueInput) ratingValueInput.value = rating; if(ratingTextDiv) ratingTextDiv.textContent = ratingTexts[rating - 1]; } // 关闭反馈弹窗 function closeFeedbackModal(event) { if (!event || event.target.id === 'feedbackModal' || event.target.classList.contains('feedback-close')) { var modal = document.getElementById('feedbackModal'); if(modal) { modal.classList.remove('show'); } document.body.style.overflow = ''; // 重置表单 var form = document.querySelector('.feedback-form'); if(form) form.reset(); var charCount = document.getElementById('feedbackCharCount'); if(charCount) charCount.textContent = '0'; // 重置星级为5星 setRating(5); } } // 更新字符计数 function updateFeedbackCharCount() { var contentElem = document.getElementById('feedbackContent'); var countElem = document.getElementById('feedbackCharCount'); if(contentElem && countElem) { countElem.textContent = contentElem.value.length; } } // 处理反馈提交 function handleFeedbackSubmit(event) { event.preventDefault(); var form = event.target; var formData = new FormData(form); var feedbackData = { type: formData.get('feedbackType'), rating: formData.get('rating'), content: formData.get('feedbackContent') }; console.log('Feedback submitted:', feedbackData); alert('感谢您的反馈!您的评价已经提交。'); closeFeedbackModal({target: {id: 'feedbackModal'}}); } </script> </div> <div class="prompt-detail-v5-right"> <div class="prompt-info-right right-panel"> <div id="action-panel"> <div class="action-card" style="text-align: center; color: #94a3b8; padding: 40px 20px;"> 加载中... </div> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { renderActionPanel(); }); // 监听登录成功消息重新渲染(强制刷新 Promise 缓存) window.addEventListener('message', function(event) { if (event.data === 'loginSuccess') { setTimeout(function() { window._vipStatusPromise = null; // 清除旧的 Promise 缓存 renderActionPanel(); }, 300); } }); function renderActionPanel() { var panel = document.getElementById('action-panel'); // 检查是否登录 var token = (function() { var m = document.cookie.match(/(?:^|; )Admin-Token=([^;]+)/); return m ? decodeURIComponent(m[1]) : null; })(); if (!token) { // 未登录 renderNonVipPanel(); return; } // 已登录,复用全局 fetchVipStatus(与 Header 共享同一请求,不会重复调用接口) if (typeof window.fetchVipStatus === 'function') { window.fetchVipStatus().then(function(result) { if (result && result.isVip) { renderVipPanel(); } else { renderNonVipPanel(); } }); } else { // 兜底:如果 header 还没加载完 renderNonVipPanel(); } } // 提示词定制化工具数据 var toolsBaseUrl = "https://tools.explinks.com"; var slug = "dynamic_custom_illustration"; var panelTools = [ { id: 'formatter', icon: '📝', name: '参数填写器', desc: '可视化填写变量参数', color: 'purple', href: slug ? (toolsBaseUrl + '/prompt-formatter?slug=' + slug) : 'javascript:void(0)' }, { id: 'interactive', icon: '💬', name: 'Web Chat 适配器', desc: '转为交互式对话脚本', color: 'green', href: slug ? (toolsBaseUrl + '/prompt-interactive?slug=' + slug) : 'javascript:void(0)' }, { id: 'translate', icon: '🌐', name: '本地化翻译器', desc: '一键翻译为多语言版本', color: 'blue', href: slug ? (toolsBaseUrl + '/prompt-translate?slug=' + slug) : 'javascript:void(0)' }, { id: 'optimizer', icon: '🎯', name: '个性化调校', desc: '根据场景微调提示词', color: 'orange', href: slug ? (toolsBaseUrl + '/prompt-optimizer?slug=' + slug) : 'javascript:void(0)' }, { id: 'api', icon: '⚡', name: 'API 动态调校', desc: '接口调用 + 批量评价优化', color: 'cyan', href: slug ? (toolsBaseUrl + '/prompt-api?slug=' + slug) : 'javascript:void(0)' }, // { id: 'agent', icon: '🤖', name: '生成个人工作助手', desc: '发布为独立 Agent 应用', color: 'pink', href: 'javascript:window.showToast("功能开发中")', badge: '即将推出' }, // { id: 'batch', icon: '📊', name: '批量数据生成器', desc: 'Form表单或Excel上传,批量生成结果', color: 'amber', href: 'javascript:window.showToast("功能开发中")', badge: '即将推出' } ]; function renderToolsHtml() { return panelTools.map(function(tool) { var badgeHtml = tool.badge ? '<span class="panel-tool-badge">' + tool.badge + '</span>' : ''; return '<a class="panel-tool-item" href="' + tool.href + '">' + '<div class="panel-tool-icon ' + tool.color + '">' + tool.icon + '</div>' + '<div class="panel-tool-info">' + '<div class="panel-tool-name">' + tool.name + '</div>' + '<div class="panel-tool-desc">' + tool.desc + '</div>' + '</div>' + '<span class="panel-tool-arrow">›</span>' + badgeHtml + '</a>'; }).join(''); } function renderVipPanel() { var panel = document.getElementById('action-panel'); panel.innerHTML = '' + '<!-- 核心:复制提示词 -->' + '<button class="copy-core-btn" id="rightCopyBtn" onclick="handleRightCopyClick()">' + '<span class="copy-icon">📋</span>' + '<span>复制提示词</span>' + '</button>' + '<div class="copy-sub-info">' + '<span class="free-badge">会员</span>' + '<span>无限次复制 · 已解锁全部工具</span>' + '</div>' + '<!-- 会员状态 -->' + '<div class="panel-member-active">' + '<span class="panel-member-active-icon">✨</span>' + '<div class="panel-member-active-info">' + '<div class="panel-member-active-title">终身会员</div>' + '<div class="panel-member-active-desc">已解锁全部功能</div>' + '</div>' + '</div>' + '<!-- 工具箱 -->' + '<div class="panel-tools-section">' + '<div class="panel-tools-title">🛠 提示词定制化工具</div>' + '<div class="panel-tools-subtitle">7 种 AI 工具,把同一条提示词变成你的专属版本</div>' + '<div class="panel-tools-grid">' + renderToolsHtml() + '</div>' + '</div>'; } function renderNonVipPanel() { var panel = document.getElementById('action-panel'); var currentPrice = 188; // 检查是否登录以决定点击按钮行为 var token = (function() { var m = document.cookie.match(/(?:^|; )Admin-Token=([^;]+)/); return m ? decodeURIComponent(m[1]) : null; })(); var copyBtnAction = token ? "window.open('/user/vip', '_blank')" : "handleUnloggedCopyClick()"; var copyBtnText = token ? "终身会员免费复制" : "登录后完整查看与复制"; panel.innerHTML = '' + '<!-- 核心:复制提示词 -->' + '<button class="copy-core-btn" id="rightCopyBtn" onclick="' + copyBtnAction + '">' + '<span>' + copyBtnText + '</span>' + '</button>' + '<!-- 会员提示 -->' + '<div class="panel-member-hint">' + '<p class="panel-member-hint-text">' + '开通会员解锁 <strong>无限复制</strong> + 全部工具<br>' + '<span style="font-size:12px; color:#64748b;">¥' + currentPrice + ' 终身 · 7天无理由退款</span>' + '</p>' + '<a href="/user/vip" target="_blank" class="panel-member-link">' + '了解会员权益 <span>→</span>' + '</a>' + '</div>' + '<!-- 工具箱 -->' + '<div class="panel-tools-section">' + '<div class="panel-tools-title">🛠 提示词定制化工具</div>' + '<div class="panel-tools-subtitle">7 种 AI 工具,把同一条提示词变成你的专属版本</div>' + '<div class="panel-tools-grid">' + renderToolsHtml() + '</div>' + '</div>'; } function handleUnloggedCopyClick() { if (typeof openLoginDialog === 'function') { openLoginDialog(function() { if (typeof loadLeftPromptContent === 'function') { loadLeftPromptContent(); } if (typeof loadPromptContent === 'function') { loadPromptContent(); } }); } else { window.location.href = '/user/login'; } } function handleRightCopyClick() { const contentArea = document.getElementById('leftPromptContentArea'); if (!contentArea || !contentArea.textContent.trim()) { if (typeof window.showToast === 'function') { window.showToast('提示词内容未加载完全,或无权限复制'); } else { alert('提示词内容未加载完全,或无权限复制'); } return; } const content = contentArea.textContent; const btn = document.getElementById('rightCopyBtn'); const onSuccess = () => { if (btn) { btn.classList.add('copied'); btn.innerHTML = '<span class="copy-icon">✅</span><span>已复制到剪贴板</span>'; setTimeout(() => { btn.classList.remove('copied'); btn.innerHTML = '<span class="copy-icon">📋</span><span>复制提示词</span>'; }, 2000); } }; const showSuccessMsg = () => { if (typeof window.showToast === 'function') window.showToast('提示词已复制到剪贴板'); onSuccess(); }; const showFailMsg = () => { if (typeof window.showToast === 'function') window.showToast('复制失败,请手动选中并复制', true); else alert('复制失败,请手动选中并复制'); }; if (typeof copyTextToClipboard === 'function') { copyTextToClipboard(content, () => { showSuccessMsg(); }); } else if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(content).then(() => { showSuccessMsg(); }).catch(() => { if (typeof fallbackCopyTextToClipboard === 'function') { fallbackCopyTextToClipboard(content); showSuccessMsg(); } else { showFailMsg(); } }); } else if (typeof fallbackCopyTextToClipboard === 'function') { fallbackCopyTextToClipboard(content); showSuccessMsg(); } else { // 最底层的兜底容错,专治各种不服环境(包括本地IP非HTTPS等环境导致的 navigator.clipboard 失效) try { var textArea = document.createElement("textarea"); textArea.value = content; // 防止页面滚动 textArea.style.top = "0"; textArea.style.left = "0"; textArea.style.position = "fixed"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); var successful = document.execCommand('copy'); document.body.removeChild(textArea); if (successful) { showSuccessMsg(); } else { showFailMsg(); } } catch (err) { showFailMsg(); } } } </script> </div> </div> </div> <!-- 相关推荐模块 --> <script src="https://static.explinks.com/prompt/static/js/home/zone-section.js?v=1774351870414"></script> <div id="footer"> <div class="footer-container"> <div class="footer-content"> <div class="footer-section"> <h5 class="footer-section-title"> 热门提示词</h5> <ul class="footer-section-links"> <li> <a href="https://prompts.explinks.com/quick_keyword_generator" target="_blank">快速关键词生成助手</a> </li> <li> <a href="https://prompts.explinks.com/content_strategy_guide" target="_blank">内容营销策略制定</a> </li> <li> <a href="https://prompts.explinks.com/rapid_test_scenario" target="_blank">快速测试场景生成器</a> </li> <li> <a href="https://prompts.explinks.com/novel_writing_guide" target="_blank">小说创作策略指南</a> </li> <li> <a href="https://prompts.explinks.com/seo_keyword_generator" target="_blank">SEO优化关键词生成助手</a> </li> <li> <a href="https://prompts.explinks.com/article_title_generator" target="_blank">文章标题生成器</a> </li> </ul> </div> <div class="footer-section"> <h5 class="footer-section-title"> 热门角色</h5> <ul class="footer-section-links"> <li> <a href="https://prompts.explinks.com/category/content_creator" target="_blank">内容创作者</a> </li> <li> <a href="https://prompts.explinks.com/category/developer" target="_blank">开发者</a> </li> <li> <a href="https://prompts.explinks.com/category/product_manager" target="_blank">产品经理</a> </li> <li> <a href="https://prompts.explinks.com/category/business_consultant" target="_blank">商业顾问</a> </li> <li> <a href="https://prompts.explinks.com/category/marketing_personnel" target="_blank">市场营销</a> </li> <li> <a href="https://prompts.explinks.com/category/business_owner" target="_blank">企业管理者</a> </li> <li> <a href="https://prompts.explinks.com/category/seo_expert" target="_blank">SEO专家</a> </li> <li> <a href="https://prompts.explinks.com/category/data_analyst" target="_blank">数据分析师</a> </li> </ul> </div> <div class="footer-section"> <h5 class="footer-section-title"> 热门业务</h5> <ul class="footer-section-links"> <li> <a href="https://prompts.explinks.com/category/developer?biz_cat_slug=code" target="_blank">代码</a> </li> <li> <a href="https://prompts.explinks.com/category/content_creator?biz_cat_slug=content_creation" target="_blank">内容创作</a> </li> <li> <a href="https://prompts.explinks.com/category/human_resources_personnel?biz_cat_slug=human_resources" target="_blank">人力资源</a> </li> <li> <a href="https://prompts.explinks.com/category/data_analyst?biz_cat_slug=data_analysis" target="_blank">数据分析</a> </li> <li> <a href="https://prompts.explinks.com/category/writer?biz_cat_slug=creative_writing" target="_blank">创意写作</a> </li> <li> <a href="https://prompts.explinks.com/category/illustrator?biz_cat_slug=art" target="_blank">艺术插画</a> </li> </ul> </div> <div class="footer-section"> <h5 class="footer-section-title"> 大模型API</h5> <ul class="footer-section-links"> <li> <a href="https://www.explinks.com/api/ai_deepseek_brand" target="_blank">DeepSeek</a> </li> <li> <a href="https://www.explinks.com/api/ai_openai_brand" target="_blank">OpenAI</a> </li> <li> <a href="https://www.explinks.com/api/ai_anthropic_brand" target="_blank">Claude</a> </li> <li> <a href="https://www.explinks.com/api/ai_gemini_brand" target="_blank">Gemini</a> </li> <li> <a href="https://www.explinks.com/api/ai_grok_brand" target="_blank">Grok</a> </li> <li> <a href="https://www.explinks.com/api/ai_tongyi_brand" target="_blank">Qwen</a> </li> </ul> </div> <div class="footer-section"> <h5 class="footer-section-title"> 使用我们的提示词工具</h5> <ul class="footer-section-links"> <li> <a target="_blank">提示词API化工具(敬请期待)</a> </li> <li> <a href="https://tools.explinks.com/prompt-generator" target="_blank">提示词应用工具</a> </li> <li> <a href="https://console.explinks.com/myHome/prompts" target="_blank">我的提示词库</a> </li> <li> <a href="https://prompts.explinks.com/packs/partners" target="_blank">加入分销计划,零成本获得收益</a> </li> </ul> </div> </div> <div class="footer-bottom"> <div class="footer-brand"> <div class="footer-brand-logo"> <a href="https://www.explinks.com/" target="_blank"> <figure class="footer-logo-wrapper"> <img decoding="async" src="https://cdn.explinks.com/wp-content/uploads/2023/12/image-e1703756327221.png" alt="幂简集成ICON" class="footer-logo-img"/> </figure> </a> </div> </div> <div class="footer-bottom-left"> <div class="footer-copyright"> <p>Copyright © 2024 All Rights Reserved <a href="https://www.explinks.com/company/about" target="_blank">北京蜜堂有信科技有限公司</a></p> </div> <div class="footer-address"> <p>公司地址: 北京市朝阳区光华路和乔大厦C座1508</p> </div> </div> <div class="footer-bottom-right"> <div class="footer-license-info"> <div class="footer-license-item"> <p>增值电信业务经营许可证:京B2-20191889</p> </div> <div class="footer-license-icon"> <img decoding="async" src="https://cdn.explinks.com/wp-content/uploads/2023/12/police.png" alt="icon" class="footer-police-icon"/> </div> <div class="footer-license-item"> <p><a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">京ICP备18034931号-7</a></p> </div> </div> <div class="footer-feedback"> <p>意见反馈:010-53324933,mtyy@miitang.com</p> </div> </div> </div> </div> </div> <div class="sidebar-components-container"> <div class="sidebar"> <button class="sidebar-button" title="反馈问题" id="feedbackButton"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"/> <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/> <line x1="12" y1="17" x2="12" y2="17"/> </svg> </button> <button class="sidebar-button up-button" title="返回顶部"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 19V5"/> <path d="M5 12l7-7 7 7"/> </svg> </button> </div> <div class="toast" id="comingSoonToast"> <div class="toast-content"> <span>敬请期待...</span> <button class="toast-close">×</button> </div> </div> <div class="modal" id="feedbackModal"> <div class="modal-content"> <div class="modal-header"> <h3 class="modal-title">反馈问题</h3> <button class="modal-close">×</button> </div> <form id="feedbackForm"> <div class="form-group"> <label class="form-label" for="description">描述 <span class="required">*</span></label> <textarea class="form-control" id="description" maxlength="200" required placeholder="请在此描述您要反馈的问题(200字以内)"></textarea> </div> <div class="form-group"> <label class="form-label">截图</label> <div class="image-upload" id="imageUpload"> <input type="file" id="imageInput" multiple accept="image/*" style="display: none;"> <p>点击或拖拽图片到此处上传(最多5张)</p> </div> <div class="image-preview" id="imagePreview"></div> </div> <div class="form-group"> <label class="form-label" for="contact">联系方式</label> <input type="text" class="form-control" id="contact" placeholder="QQ/邮箱/任选其一"> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" id="cancelButton">取消</button> <button type="submit" class="btn btn-primary">确定</button> </div> </form> </div> </div> <script> document.addEventListener('DOMContentLoaded', () => { const upButton = document.querySelector('.up-button'); const toast = document.getElementById('comingSoonToast'); const toastClose = document.querySelector('.toast-close'); const feedbackButton = document.getElementById('feedbackButton'); const feedbackModal = document.getElementById('feedbackModal'); const modalClose = feedbackModal.querySelector('.modal-close'); const cancelButton = document.getElementById('cancelButton'); const feedbackForm = document.getElementById('feedbackForm'); const imageUpload = document.getElementById('imageUpload'); const imageInput = document.getElementById('imageInput'); const imagePreview = document.getElementById('imagePreview'); let toastTimeout; // 返回顶部按钮逻辑 window.addEventListener('scroll', () => { if (window.scrollY > 300) { upButton.classList.add('show'); } else { upButton.classList.remove('show'); } }); upButton.addEventListener('click', () => { window.scrollTo({ top: 0, behavior: 'smooth' }); }); // 显示提示框函数 function showToast() { clearTimeout(toastTimeout); toast.classList.add('show'); toastTimeout = setTimeout(() => { toast.classList.remove('show'); }, 3000); } // 关闭提示框 toastClose.addEventListener('click', () => { toast.classList.remove('show'); clearTimeout(toastTimeout); }); // // 为三个按钮添加点击事件 // const comingSoonButtons = [ // document.querySelector('button[title="AI助理"]'), // document.querySelector('button[title="最近浏览"]'), // document.querySelector('button[title="对比列表"]') // ]; // // comingSoonButtons.forEach(button => { // button.addEventListener('click', showToast); // }); // 反馈模态框相关逻辑 function openModal() { feedbackModal.classList.add('show'); document.body.style.overflow = 'hidden'; } function closeModal() { feedbackModal.classList.remove('show'); document.body.style.overflow = ''; feedbackForm.reset(); imagePreview.innerHTML = ''; } feedbackButton.addEventListener('click', openModal); modalClose.addEventListener('click', closeModal); cancelButton.addEventListener('click', closeModal); // 点击模态框外部关闭 feedbackModal.addEventListener('click', (e) => { if (e.target === feedbackModal) { closeModal(); } }); // 图片上传相关逻辑 imageUpload.addEventListener('click', () => { imageInput.click(); }); imageInput.addEventListener('change', handleImageUpload); function handleImageUpload() { const files = Array.from(imageInput.files); const existingImages = imagePreview.querySelectorAll('.image-container'); const totalImages = existingImages.length + files.length; if (totalImages > 5) { alert('最多只能上传5张图片'); return; } files.forEach(file => { if (!file.type.startsWith('image/')) { return; } const reader = new FileReader(); reader.onload = (e) => { const container = document.createElement('div'); container.className = 'image-container'; const img = document.createElement('img'); img.src = e.target.result; container.appendChild(img); const deleteBtn = document.createElement('button'); deleteBtn.className = 'image-delete'; deleteBtn.innerHTML = '×'; deleteBtn.title = '删除图片'; deleteBtn.onclick = function () { if (confirm('确定要删除这张图片吗?')) { container.remove(); } }; container.appendChild(deleteBtn); imagePreview.appendChild(container); }; reader.readAsDataURL(file); }); } // 拖拽上传 imageUpload.addEventListener('dragover', (e) => { e.preventDefault(); imageUpload.style.borderColor = '#4a90e2'; }); imageUpload.addEventListener('dragleave', () => { imageUpload.style.borderColor = '#ddd'; }); imageUpload.addEventListener('drop', (e) => { e.preventDefault(); imageUpload.style.borderColor = '#ddd'; const files = Array.from(e.dataTransfer.files); if (files.length > 5) { alert('最多只能上传5张图片'); return; } imageInput.files = e.dataTransfer.files; handleImageUpload(); }); // 表单提交 feedbackForm.addEventListener('submit', async (e) => { e.preventDefault(); const description = document.getElementById('description').value.trim(); const contact = document.getElementById('contact').value.trim(); // if (!description || !contact) { if (!description) { alert('请填写反馈内容!'); return; } // 收集图片数据 const images = []; const imageElements = imagePreview.querySelectorAll('img'); imageElements.forEach(img => { images.push(img.src); }); // 准备要提交的数据 const formData = { description, contact, images }; try { // 从 cookie 中获取用户 Token const tokenMatch = document.cookie.match(/(?:^|; )Admin-Token=([^;]+)/); const token = tokenMatch ? decodeURIComponent(tokenMatch[1]) : ''; const headers = { 'Content-Type': 'application/json' }; if (token) { headers['Authorization'] = 'Bearer ' + token; } const response = await fetch('https://api.explinks.com/feedback/submit', { method: 'POST', headers: headers, body: JSON.stringify(formData) }); if (response.ok) { alert('反馈提交成功!'); closeModal(); } else { throw new Error('提交失败'); } } catch (error) { alert('提交失败,请稍后重试!'); console.error('提交表单时出错:', error); } }); }); </script> </div> <script src="https://static.explinks.com/prompt/static/js/statistics/index.js?v=1774351870414"></script> <script src="https://static.explinks.com/hub/static/script/baidu-analytics.js?v=1774351870414"></script> <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script> <script>LA.init({id: "3NS00J5GfuD7Tvg6", ck: "3NS00J5GfuD7Tvg6"})</script> <script> (function(){ var h = window.location.hostname; var d = ''; try { var p = h.split('.'); if (p.length >= 2) { d = '.' + p.slice(-2).join('.'); } } catch (e) {} var isIp = /^\d{1,3}(?:\.\d{1,3}){3}$/.test(h); var domainAttr = (!isIp && h !== 'localhost' && d) ? ('; domain=' + d) : ''; function getCookie(name){ var cs = document.cookie ? document.cookie.split('; ') : []; for (var i=0;i<cs.length;i++){ var parts = cs[i].split('='); var key = parts.shift(); var value = parts.join('='); if (key === name){ return decodeURIComponent(value || ''); } } return null; } function delCookie(name){ document.cookie = name + '=; path=/; Max-Age=0; SameSite=Lax' + domainAttr; } window.clearPromotionCookie = function(){ delCookie('promotion-code'); delCookie('promotion-code-set'); }; var setTs = getCookie('promotion-code-set'); var setNum = Number(setTs); if (getCookie('promotion-code') && setTs) { var ttl = 7200; document.cookie = 'promotion-code-set=' + encodeURIComponent(setTs) + '; path=/; Max-Age=' + ttl + '; SameSite=Lax' + domainAttr; } if (setTs && String(setNum) === setTs) { fetch('https://prompts-api.explinks.com/api/user/should-clear-promotion-code', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ setTimeMillis: setTs, referer: document.referrer || '' }) }) .then(function(r){ return r ? r.json() : null; }) .then(function(res){ if (res && (res.success === true || res.code === 200) && (res.data === true || res.data === 'true')) { window.clearPromotionCookie(); } }) .catch(function(){}); } var u = new URL(window.location.href); var v = (u.searchParams.get('ref') || u.searchParams.get('REF') || '').split('?')[0].trim(); if (v) { (function(){ var api = 'https://prompts-api.explinks.com/api/user/validate-promotion-code'; var payload = { promotionCode: v, referer: document.referrer || '' }; fetch(api, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) }) .then(function(r){ return r ? r.json() : null; }) .then(function(res){ if (res && (res.success === true || res.code === 200) && (res.data === true || res.data === 'true')) { var ttl = 7200; var setTime = Date.now(); document.cookie = 'promotion-code=' + encodeURIComponent(v) + '; path=/; Max-Age=' + ttl + '; SameSite=Lax' + domainAttr; document.cookie = 'promotion-code-set=' + encodeURIComponent(String(setTime)) + '; path=/; Max-Age=' + ttl + '; SameSite=Lax' + domainAttr; } }) .catch(function(){}); })(); } })(); </script> <script src="https://static.explinks.com/prompt/static/js/statistics/view-count.js?v=1774351870414"></script> <script> // 页面加载完成后自动记录浏览量 ViewCountStatistics.autoRecordViewCount('dynamic_custom_illustration'); </script> <script src="https://static.explinks.com/prompt/static/js/prompt-detail-v5/countdown.js?v=1774351870414"></script> <!-- Highlight.js JavaScript --> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script> <script> // 初始化代码高亮 document.addEventListener('DOMContentLoaded', function () { hljs.highlightAll(); }); </script> </body> </html>