在这里插入图片描述
在这里插入图片描述

一、核心思想

"绿茶话术"表面千变万化,底层只有三种成分:夸奖、示弱、甩锅。任意排列组合,再加一个模糊边界词,就是一句茶言茶语。本应用把 8 种常见变体固化成结构模板,每条模板对应一段可交互的公式卡片,点击展开完整拆解。代码层面只有一个数据模型 + 一个展开状态,却撑起整个识别系统。

二、数据模型:公式 = 结构化记录

interface FormulaItem {
  id: number;
  name: string;        // 公式名
  formula: string;     // 结构模板
  principle: string;   // 核心原理
  example: string;     // 典型例句
  breakdown: string;   // 逐句拆解
  response: string;    // 应对策略
}

8 条公式数据:

id 公式名 结构模板
1 夸赞示弱式 赞美你 + 示弱拒绝 + 免责甩锅
2 以退为进式 抢先道歉 + 自我贬低 + 反扣帽子
3 挑拨离间式 关心你 + 暗示隐患 + 制造矛盾
4 贬低抬升式 踩第三方 + 捧你 + 绑定自己
5 暧昧拉近式 亲密称呼 + 撒娇语气 + 模糊语义
6 模糊边界式 行为越界 + 抢先定性 + 堵你质疑
7 卖惨博怜式 自我贬低 + 对比处境 + 索取情绪
8 绿茶三连 我不是那意思 + 你误会了 + 都怪我不该说

三、一句话拆解示例(第 8 条"绿茶三连")

{
  id: 8,
  name: '绿茶三连',
  formula: '我不是那意思 + 你误会了 + 都怪我不该说',
  principle: '万能推卸三段式:先否认意图,再归咎理解,最后自我定罪,让话题无法继续,责任永远不在她。',
  example: '我不是那个意思,是你误会了……都怪我不该说这些。',
  breakdown: '①"我不是那个意思"——否认主观意图,事实不重要;②"你误会了"——把错误归给理解方;③"都怪我不该说"——自我惩罚收尾,反手扣你一个"揪着不放"的帽子。',
  response: '那你说说,你到底是哪个意思?说清楚了我就不误会。'
}

四、UI 实现:公式列表 + 展开互斥

与语录分析表同款交互:@State expandedId 控制互斥展开,同一卡片再点一次收起。

@State expandedId: number = -1;

toggleExpand(id: number): void {
  this.expandedId = (this.expandedId === id) ? -1 : id;
}

卡片头常显"公式名 + 结构模板",展开后追加四段分析(原理 / 例句 / 拆解 / 应对):

@Builder
formulaCard(item: FormulaItem) {
  Column() {
    // 卡片头:编号 + 公式名 + 展开箭头
    Row({ space: 10 }) {
      Text(item.id.toString().padStart(2, '0'))
        .fontSize(12).fontColor(Color.White)
        .backgroundColor('#B45309')
        .borderRadius(8)
        .padding({ left: 8, right: 8, top: 2, bottom: 2 })
      Text(item.name)
        .fontSize(15).fontWeight(FontWeight.Bold).fontColor('#111827')
        .layoutWeight(1)
      Text(this.expandedId === item.id ? '▲' : '▼')
        .fontSize(12).fontColor('#9CA3AF')
    }
    .width('100%').alignItems(VerticalAlign.Center)

    // 结构模板(常显)
    Text('公式:' + item.formula)
      .fontSize(13).fontColor('#B45309').fontWeight(FontWeight.Medium)
      .width('100%').margin({ top: 8 })
      .textAlign(TextAlign.Start)

    // 展开区:核心原理 + 典型例句 + 逐句拆解 + 应对策略
    if (this.expandedId === item.id) {
      Column({ space: 8 }) {
        this.infoRow('💡 核心原理', item.principle, '#B45309')
        this.infoRow('💬 典型例句', '「' + item.example + '」', '#111827')
        this.infoRow('🔍 逐句拆解', item.breakdown, '#6B7280')
        this.infoRow('🛡️ 应对策略', item.response, '#10B981')
      }
      .width('100%')
      .margin({ top: 10 })
      .padding({ top: 10 })
      .border({ width: { top: 1 }, color: '#EEF1F6' })
    }
  }
  .width('100%').padding(14)
  .backgroundColor(Color.White)
  .borderRadius(14)
  .onClick(() => { this.toggleExpand(item.id); })
}

顶部用琥珀色提示条固定"万能公式总览",让用户先建立整体认知再逐条学习:

Column({ space: 4 }) {
  Text('🧪 万能公式:绿茶话术 = 夸奖 + 示弱 + 甩锅')
    .fontSize(14).fontWeight(FontWeight.Bold).fontColor('#B45309')
  Text('三种成分任意排列组合,再加一个模糊边界词,就是一句茶言茶语')
    .fontSize(12).fontColor('#92400E')
}
.width('100%').padding(12)
.backgroundColor('#FEF3C7').borderRadius(12)
.margin({ left: 14, right: 14, top: 8 })

五、列表渲染

List({ space: 10 }) {
  ForEach(this.formulas, (item: FormulaItem) => {
    ListItem() { this.formulaCard(item) }
  }, (item: FormulaItem) => item.id.toString())
}
.layoutWeight(1).width('100%')
.padding({ left: 14, right: 14, top: 12, bottom: 12 })
.scrollBar(BarState.Off)

六、识别心法:三看三问

  1. 看成分:一句话里有没有"夸奖 + 示弱 + 甩锅"三件套的任意组合?
  2. 看责任:她的话把责任归给谁?全是别人的错、或是"都怪我"式假认错?
  3. 看动作:话术再美,行为是否越界?行动比台词诚实。

技术要点小结:interface 定义记录、@State 驱动互斥展开、@Builder 封装卡片、List + ForEach 渲染——这套模板可直接复用到任何"识别类 / 拆解类 / 话术库"应用。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐