From 44bda3e67fd1adc3d5fea1b5378b90cc02fc003f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=B1=BC=E5=BC=80=E5=8F=91?= Date: Mon, 1 Jun 2026 16:04:58 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E8=84=9A=E6=9C=AC=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E7=BE=8E=E5=8C=96=20=E2=80=94=20=E5=B7=A6?= =?UTF-8?q?=E5=AF=B9=E9=BD=90=E3=80=81=E5=8A=A0=E7=B2=97=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E3=80=81=E9=80=89=E4=B8=AD=E6=80=81=E5=B7=A6=E4=BE=A7=E7=AB=96?= =?UTF-8?q?=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/bk/装修合理选项——流量型可多用.txt | 23 +- scripts/insert_cover_backgrounds_bk.sql | 47 ++++ scripts/seed_bikeng_categories.sql | 202 ++++++++++++++++++ .../pages/VideoCreation/ScriptCreation.css | 85 +++++--- 4 files changed, 318 insertions(+), 39 deletions(-) create mode 100644 scripts/insert_cover_backgrounds_bk.sql create mode 100644 scripts/seed_bikeng_categories.sql diff --git a/python-api/app/ai/prompts/system/bk/装修合理选项——流量型可多用.txt b/python-api/app/ai/prompts/system/bk/装修合理选项——流量型可多用.txt index c555447..18894cb 100644 --- a/python-api/app/ai/prompts/system/bk/装修合理选项——流量型可多用.txt +++ b/python-api/app/ai/prompts/system/bk/装修合理选项——流量型可多用.txt @@ -6,15 +6,15 @@ 1. 固定开头:第一行必须是【装修避坑】 2. 固定结尾:最后一行必须是【关注我,装修不踩坑】 -3. 中间内容:从下面给出的29组装修避坑对比中,**每次随机抽取10组** +3. 中间内容:从下面给出的34组装修避坑对比中,**每次随机抽取10组** 4. 格式要求:每组单独成行,格式严格为"不要X,要Y",必须拆分两行 5. 随机要求:10组的顺序必须完全随机打乱,每次生成的组合不能重复 6. 禁止添加任何额外内容(包括标题、序号、解释、空行等) -以下是全部29组避坑对比库: +以下是全部34组避坑对比库: 不要双开门冰箱,要十字开门冰箱 不要直吸式马桶,要虹吸式马桶 -不要路由器,要全屋wifi +不要路由器,要全屋WiFi 不要贵妃椅沙发,要直排沙发 不要集成灶,要分体灶 不要榻榻米,要普通床 @@ -41,6 +41,11 @@ 不要双包套,要单包套 不要阳角条,要海棠角 不要悬浮电视柜,要落地电视柜 +不要高光衣柜门,要肤感衣柜门 +不要推拉门,要打通阳台 +不要猫眼,要一体门 +不要洗烘一体,要洗烘套装 +不要罗马杠,要窗帘盒 【语言要求】 全程口语化大白话,通俗易懂、接地气,条理清晰、干货满满,不生硬说教,适配口播传播节奏。 【内置完整素材库标题】 @@ -49,7 +54,7 @@ 不要直吸式马桶 要虹吸式马桶 不要路由器 -要全屋wifi +要全屋WiFi 不要贵妃椅沙发 要直排沙发 不要集成灶 @@ -102,6 +107,16 @@ 要海棠角 不要悬浮电视柜 要落地电视柜 +不要高光衣柜门 +要肤感衣柜门 +不要推拉门 +要打通阳台 +不要猫眼 +要一体门 +不要洗烘一体 +要洗烘套装 +不要罗马杠 +要窗帘盒 【分镜固定结构规则】 开篇的分镜为:一段人物出镜 中间内容全部用空镜,空镜(内置完整素材库标题)与文案内容需匹配 diff --git a/scripts/insert_cover_backgrounds_bk.sql b/scripts/insert_cover_backgrounds_bk.sql new file mode 100644 index 0000000..3c8e96a --- /dev/null +++ b/scripts/insert_cover_backgrounds_bk.sql @@ -0,0 +1,47 @@ +-- 封面背景图批量导入 SQL +-- script_code: bk(装修避坑) +-- 生成时间: 2026-06-01 +-- 共 41 张 + +INSERT INTO mjk_cover_backgrounds (script_code, title, url, sort_order, status, created_at, updated_at) VALUES + ('bk', '04e1bd3b19', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/04e1bd3b19.png', 1, 'active', NOW(), NOW()) +, ('bk', '1c7d6b9ce9', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/1c7d6b9ce9.png', 2, 'active', NOW(), NOW()) +, ('bk', '2508cc7679', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/2508cc7679.png', 3, 'active', NOW(), NOW()) +, ('bk', '280bc39306', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/280bc39306.png', 4, 'active', NOW(), NOW()) +, ('bk', '2bb52b3f65', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/2bb52b3f65.png', 5, 'active', NOW(), NOW()) +, ('bk', '2c08dbd929', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/2c08dbd929.png', 6, 'active', NOW(), NOW()) +, ('bk', '3079192f62', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/3079192f62.png', 7, 'active', NOW(), NOW()) +, ('bk', '3409a04e66', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/3409a04e66.png', 8, 'active', NOW(), NOW()) +, ('bk', '3cd57f9008', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/3cd57f9008.png', 9, 'active', NOW(), NOW()) +, ('bk', '4a7555e3f0', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/4a7555e3f0.png', 10, 'active', NOW(), NOW()) +, ('bk', '4c3965959a', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/4c3965959a.png', 11, 'active', NOW(), NOW()) +, ('bk', '4cecdd5f83', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/4cecdd5f83.png', 12, 'active', NOW(), NOW()) +, ('bk', '54b164fef1', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/54b164fef1.png', 13, 'active', NOW(), NOW()) +, ('bk', '5fd98a1da7', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/5fd98a1da7.png', 14, 'active', NOW(), NOW()) +, ('bk', '645f2970bf', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/645f2970bf.png', 15, 'active', NOW(), NOW()) +, ('bk', '70cb74ee0e', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/70cb74ee0e.png', 16, 'active', NOW(), NOW()) +, ('bk', '76955a5f76', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/76955a5f76.png', 17, 'active', NOW(), NOW()) +, ('bk', '8395b3784a', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/8395b3784a.png', 18, 'active', NOW(), NOW()) +, ('bk', '85c6ed85e1', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/85c6ed85e1.png', 19, 'active', NOW(), NOW()) +, ('bk', '95ff4cf029', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/95ff4cf029.png', 20, 'active', NOW(), NOW()) +, ('bk', '979dfb0215', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/979dfb0215.png', 21, 'active', NOW(), NOW()) +, ('bk', 'a12d375624', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/a12d375624.png', 22, 'active', NOW(), NOW()) +, ('bk', 'a1411511aa', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/a1411511aa.png', 23, 'active', NOW(), NOW()) +, ('bk', 'a16a0b348c', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/a16a0b348c.png', 24, 'active', NOW(), NOW()) +, ('bk', 'ae4ed9a335', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/ae4ed9a335.png', 25, 'active', NOW(), NOW()) +, ('bk', 'c07f6556fd', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/c07f6556fd.png', 26, 'active', NOW(), NOW()) +, ('bk', 'c1460b5f5a', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/c1460b5f5a.png', 27, 'active', NOW(), NOW()) +, ('bk', 'cd8b455000', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/cd8b455000.png', 28, 'active', NOW(), NOW()) +, ('bk', 'd16d93b73d', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/d16d93b73d.png', 29, 'active', NOW(), NOW()) +, ('bk', 'd18088bb3f', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/d18088bb3f.png', 30, 'active', NOW(), NOW()) +, ('bk', 'd540fc6c4b', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/d540fc6c4b.png', 31, 'active', NOW(), NOW()) +, ('bk', 'dbf4c4ff92', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/dbf4c4ff92.png', 32, 'active', NOW(), NOW()) +, ('bk', 'dce3d6fb91', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/dce3d6fb91.png', 33, 'active', NOW(), NOW()) +, ('bk', 'ec8c953ccb', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/ec8c953ccb.png', 34, 'active', NOW(), NOW()) +, ('bk', 'ef9575b715', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/ef9575b715.png', 35, 'active', NOW(), NOW()) +, ('bk', 'f3023c5554', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/f3023c5554.png', 36, 'active', NOW(), NOW()) +, ('bk', 'f4679775ce', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/f4679775ce.png', 37, 'active', NOW(), NOW()) +, ('bk', 'f9192aa4a9', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/f9192aa4a9.png', 38, 'active', NOW(), NOW()) +, ('bk', 'f98d79311e', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/f98d79311e.png', 39, 'active', NOW(), NOW()) +, ('bk', 'fadcca7a06', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/fadcca7a06.png', 40, 'active', NOW(), NOW()) +, ('bk', 'fb04e41a2c', 'https://img.liche.cn/meijiaka-zy/cover_templete/bk/fb04e41a2c.png', 41, 'active', NOW(), NOW()); diff --git a/scripts/seed_bikeng_categories.sql b/scripts/seed_bikeng_categories.sql new file mode 100644 index 0000000..7f74e29 --- /dev/null +++ b/scripts/seed_bikeng_categories.sql @@ -0,0 +1,202 @@ +-- 装修避坑通用素材分类体系 +-- 共 86 个三级分类(68 个不要X要Y + 18 个买对不买贵) + +DO $$ +DECLARE + l1_id bigint; + l2_buyao_id bigint; + l2_maidui_id bigint; +BEGIN + + -- 一级:装修避坑通用 + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-tongyong', '装修避坑通用', NULL, 1, 90, 'active', NOW(), NOW()) + RETURNING id INTO l1_id; + + -- 二级:不要X要Y + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao', '不要X要Y', l1_id, 2, 1, 'active', NOW(), NOW()) + RETURNING id INTO l2_buyao_id; + + -- 二级:买对不买贵 + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui', '买对不买贵', l1_id, 2, 2, 'active', NOW(), NOW()) + RETURNING id INTO l2_maidui_id; + + -- 三级:不要X要Y(68个) + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要一体式卫生间', '不要一体式卫生间', l2_buyao_id, 3, 1, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要双包套', '不要双包套', l2_buyao_id, 3, 2, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要双开门冰箱', '不要双开门冰箱', l2_buyao_id, 3, 3, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要反弹器', '不要反弹器', l2_buyao_id, 3, 4, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要回型吊顶', '不要回型吊顶', l2_buyao_id, 3, 5, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要复杂吊灯', '不要复杂吊灯', l2_buyao_id, 3, 6, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要复杂背景墙', '不要复杂背景墙', l2_buyao_id, 3, 7, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要小双槽', '不要小双槽', l2_buyao_id, 3, 8, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要开放式收纳柜', '不要开放式收纳柜', l2_buyao_id, 3, 9, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要悬浮电视柜', '不要悬浮电视柜', l2_buyao_id, 3, 10, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要悬空马桶', '不要悬空马桶', l2_buyao_id, 3, 11, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要拼色窗帘', '不要拼色窗帘', l2_buyao_id, 3, 12, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要推拉门', '不要推拉门', l2_buyao_id, 3, 13, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要插座外露', '不要插座外露', l2_buyao_id, 3, 14, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要无主灯', '不要无主灯', l2_buyao_id, 3, 15, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要普通门锁', '不要普通门锁', l2_buyao_id, 3, 16, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要榻榻米', '不要榻榻米', l2_buyao_id, 3, 17, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要正五孔插座', '不要正五孔插座', l2_buyao_id, 3, 18, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要洗烘一体', '不要洗烘一体', l2_buyao_id, 3, 19, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要深色地砖', '不要深色地砖', l2_buyao_id, 3, 20, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要猫眼', '不要猫眼', l2_buyao_id, 3, 21, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要瓷砖上墙', '不要瓷砖上墙', l2_buyao_id, 3, 22, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要直吸马桶', '不要直吸马桶', l2_buyao_id, 3, 23, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要直排下水', '不要直排下水', l2_buyao_id, 3, 24, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要筒灯', '不要筒灯', l2_buyao_id, 3, 25, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要罗马杠', '不要罗马杠', l2_buyao_id, 3, 26, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要贵妃椅沙发', '不要贵妃椅沙发', l2_buyao_id, 3, 27, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要路由器', '不要路由器', l2_buyao_id, 3, 28, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要过门石', '不要过门石', l2_buyao_id, 3, 29, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要造型柜门', '不要造型柜门', l2_buyao_id, 3, 30, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要阳角条', '不要阳角条', l2_buyao_id, 3, 31, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要隐形衣架', '不要隐形衣架', l2_buyao_id, 3, 32, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要集成灶', '不要集成灶', l2_buyao_id, 3, 33, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-不要高光衣柜门', '不要高光衣柜门', l2_buyao_id, 3, 34, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要一体门', '要一体门', l2_buyao_id, 3, 35, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要乳胶漆', '要乳胶漆', l2_buyao_id, 3, 36, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要免拉手', '要免拉手', l2_buyao_id, 3, 37, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要全屋wifi', '要全屋WiFi', l2_buyao_id, 3, 38, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要全屋通铺', '要全屋通铺', l2_buyao_id, 3, 39, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要分体灶', '要分体灶', l2_buyao_id, 3, 40, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要十字开门冰箱', '要十字开门冰箱', l2_buyao_id, 3, 41, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要单包套', '要单包套', l2_buyao_id, 3, 42, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要双眼皮', '要双眼皮', l2_buyao_id, 3, 43, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要双眼皮吊顶', '要双眼皮吊顶', l2_buyao_id, 3, 44, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要吸顶灯', '要吸顶灯', l2_buyao_id, 3, 45, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要墙排下水', '要墙排下水', l2_buyao_id, 3, 46, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要大单槽', '要大单槽', l2_buyao_id, 3, 47, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要封闭式收纳柜', '要封闭式收纳柜', l2_buyao_id, 3, 48, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要射灯', '要射灯', l2_buyao_id, 3, 49, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要干湿分离卫生间', '要干湿分离卫生间', l2_buyao_id, 3, 50, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要平板柜门', '要平板柜门', l2_buyao_id, 3, 51, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要打通阳台', '要打通阳台', l2_buyao_id, 3, 52, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要斜五孔插座', '要斜五孔插座', l2_buyao_id, 3, 53, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要普通床', '要普通床', l2_buyao_id, 3, 54, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要普通衣架', '要普通衣架', l2_buyao_id, 3, 55, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要智能门锁', '要智能门锁', l2_buyao_id, 3, 56, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要洗烘套装', '要洗烘套装', l2_buyao_id, 3, 57, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要浅色地砖', '要浅色地砖', l2_buyao_id, 3, 58, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要海棠角', '要海棠角', l2_buyao_id, 3, 59, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要直排沙发', '要直排沙发', l2_buyao_id, 3, 60, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要窗帘盒', '要窗帘盒', l2_buyao_id, 3, 61, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要简约背景墙', '要简约背景墙', l2_buyao_id, 3, 62, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要纯色窗帘', '要纯色窗帘', l2_buyao_id, 3, 63, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要肤感衣柜门', '要肤感衣柜门', l2_buyao_id, 3, 64, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要落地电视柜', '要落地电视柜', l2_buyao_id, 3, 65, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要落地马桶', '要落地马桶', l2_buyao_id, 3, 66, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要虹吸马桶', '要虹吸马桶', l2_buyao_id, 3, 67, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-buyao-要隐藏式插座', '要隐藏式插座', l2_buyao_id, 3, 68, 'active', NOW(), NOW()); + + -- 三级:买对不买贵(18个) + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-乳胶漆不要买贵的', '乳胶漆不要买贵的', l2_maidui_id, 3, 1, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-全屋角阀要买贵的', '全屋角阀要买贵的', l2_maidui_id, 3, 2, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-前置过滤器不要买贵的', '前置过滤器不要买贵的', l2_maidui_id, 3, 3, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-床不要买贵的', '床不要买贵的', l2_maidui_id, 3, 4, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-床垫要买贵的', '床垫要买贵的', l2_maidui_id, 3, 5, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-开关插座要买贵的', '开关插座要买贵的', l2_maidui_id, 3, 6, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-投影仪要买贵的', '投影仪要买贵的', l2_maidui_id, 3, 7, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-木地板要买贵的', '木地板要买贵的', l2_maidui_id, 3, 8, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-木门不要买贵的', '木门不要买贵的', l2_maidui_id, 3, 9, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-水槽不要买贵的', '水槽不要买贵的', l2_maidui_id, 3, 10, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-水龙头要买贵的', '水龙头要买贵的', l2_maidui_id, 3, 11, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-滑轨要买贵的', '滑轨要买贵的', l2_maidui_id, 3, 12, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-灯具不要买贵的', '灯具不要买贵的', l2_maidui_id, 3, 13, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-瓷砖不要买贵的', '瓷砖不要买贵的', l2_maidui_id, 3, 14, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-电视机不要买贵的', '电视机不要买贵的', l2_maidui_id, 3, 15, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-窗帘不要买贵的', '窗帘不要买贵的', l2_maidui_id, 3, 16, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-腻子粉要买贵的', '腻子粉要买贵的', l2_maidui_id, 3, 17, 'active', NOW(), NOW()); + INSERT INTO mjk_broll_categories (slug, name, parent_id, level, sort_order, status, created_at, updated_at) + VALUES ('bikeng-maidui-门锁要买贵的', '门锁要买贵的', l2_maidui_id, 3, 18, 'active', NOW(), NOW()); + +END $$; diff --git a/tauri-app/src/pages/VideoCreation/ScriptCreation.css b/tauri-app/src/pages/VideoCreation/ScriptCreation.css index a211bed..0499420 100644 --- a/tauri-app/src/pages/VideoCreation/ScriptCreation.css +++ b/tauri-app/src/pages/VideoCreation/ScriptCreation.css @@ -15,72 +15,87 @@ .topic-groups { display: grid; grid-template-columns: repeat(3, 1fr); - gap: var(--spacing-md); + gap: 10px; flex: 1; align-content: start; } .topic-groups .option-card { min-width: 0; - padding: var(--spacing-sm) var(--spacing-xs); + padding: 10px 8px; font-size: var(--font-base); display: flex; flex-direction: column; - align-items: center; + align-items: flex-start; justify-content: center; - gap: var(--spacing-2xs); - min-height: 40px; - border-radius: var(--radius-lg); - border: 1px solid var(--border-color); - background: linear-gradient(145deg, #ffffff 0%, #f8faf9 100%); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); - transition: all 0.25s ease; + gap: 3px; + min-height: 38px; + border-radius: 10px; + border: 1px solid #e8e8e8; + background: #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); + transition: all 0.2s ease; position: relative; overflow: hidden; + cursor: pointer; } .topic-groups .option-card-label { - font-size: var(--font-sm); - font-weight: 500; - color: var(--text-primary); + font-size: 13px; + font-weight: 600; + color: #1a1a1a; line-height: 1.3; - text-align: center; + text-align: left; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .topic-groups .option-card-desc { font-size: 10px; - color: var(--text-tertiary); + color: #999; line-height: 1.3; - text-align: center; + text-align: left; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } -.topic-groups .option-card::before { +/* 选中态:左侧绿色竖条 + 浅绿背景 */ +.topic-groups .option-card.selected { + border-color: #22c55e; + background: #f0fdf4; + box-shadow: 0 2px 8px rgba(34, 197, 94, 0.1); +} + +.topic-groups .option-card.selected::after { content: ''; position: absolute; - inset: 0; - background: linear-gradient(135deg, rgba(34, 197, 94, 0) 0%, rgba(34, 197, 94, 0.03) 100%); - opacity: 0; - transition: opacity 0.3s ease; + left: 0; + top: 8px; + bottom: 8px; + width: 3px; + background: #22c55e; + border-radius: 0 3px 3px 0; } +.topic-groups .option-card.selected .option-card-label { + color: #15803d; +} + +.topic-groups .option-card.selected .option-card-desc { + color: #4ade80; +} + +/* 悬停态 */ .topic-groups .option-card:hover { - border-color: rgba(34, 197, 94, 0.4); - box-shadow: 0 4px 12px rgba(34, 197, 94, 0.08); + border-color: #22c55e; + box-shadow: 0 2px 10px rgba(34, 197, 94, 0.1); transform: translateY(-1px); } -.topic-groups .option-card:hover::before { - opacity: 1; -} - -.topic-groups .option-card.selected { - border-color: rgba(34, 197, 94, 0.5); - background: linear-gradient(145deg, #f0fdf4 0%, #dcfce7 100%); - box-shadow: 0 2px 8px rgba(34, 197, 94, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.6); - color: var(--primary); - font-weight: 600; -} - /* 时长滑块容器 */ .duration-slider-container { display: flex;