menuData.ts 4.2 KB
export const maxWord = 5000;
export const minWord = 200;

export type writePromptParam = {
  writingPurposeName: string;
  writingStyleName: string;
  writingLanguageName: string;
  prompt: string;
  writingTypeName: string;
  isImgName: string;
  writingCount: string;
  fileData: string;
};

export interface WritePanelProps {
  htmlCode: string;
  setHtmlCode: React.Dispatch<React.SetStateAction<string>>;
  loading: boolean;
  setLoading: React.Dispatch<React.SetStateAction<boolean>>;
  setWidth: React.Dispatch<React.SetStateAction<string>>;
  setHtmlheader: React.Dispatch<React.SetStateAction<string>>;
}

export const rewriteItemsMap: Record<string, string> = {
  全文润色: "请重新写,全文润色",
  全文缩写: "请重新写,全文缩写",
  全文扩写: "请重新写,全文扩写",
  语气更专业: "请重新写,语气更专业",
  语气更口语化: "请重新写,语气更口语化",
  语气更易读: "请重新写,语气更易读",
  语气更含蓄: "请重新写,语气更含蓄",
  语气更学术化: "请重新写,语气更学术化",
  语气更有文采: "请重新写,语气更有文采",
  语气更有网感: "请重新写,语气更有网感",
};

export const mergedData = [
  {
    title: "写作用途",
    required: true,
    type: "select",
    default: "公司官网",
    options: [
      { name: "公司官网", value: "100%" },
      { name: "小红书", value: "400px" },
      { name: "微信公众号", value: "300px" },
      { name: "今日头条", value: "500px" },
    ],
  },
  {
    title: "图片模式",
    type: "select",
    required: false,
    default: "免费配图",
    options: [
      { name: "免费配图", value: "free" },
      { name: "收费配图", value: "paid" },
    ],
  },
  {
    title: "写作风格",
    type: "select",
    required: false,
    default: "专业",
    options: [
      { name: "专业", value: "professional" },
      { name: "活泼", value: "lively" },
      { name: "严谨", value: "strict" },
    ],
  },
  {
    title: "写作语言",
    type: "select",
    required: false,
    default: "中文",
    options: [
      { name: "中文", value: "Chinese" },
      { name: "英文", value: "English" },
      { name: "法文", value: "French" },
      { name: "德文", value: "German" },
    ],
  },
  {
    title: "写作类型",
    type: "select",
    required: false,
    default: "产品推广文案",
    options: [
      { name: "产品推广文案", value: "promotion" },
      { name: "品牌宣传文案", value: "propagandize" },
      { name: "产品说明书", value: "instructionBook" },
      { name: "产品介绍", value: "introduce" },
    ],
  },
  {
    title: "是否图文",
    type: "select",
    required: false,
    default: "是",
    options: [
      { name: "是", value: "true" },
      { name: "否", value: "false" },
    ],
  },
];

export function getNavgParam(writeMessage: string) {
  const param: writePromptParam = {
    writingPurposeName: mergedData[0].default,
    writingStyleName: mergedData[2].default,
    writingLanguageName: mergedData[3].default,
    prompt: writeMessage,
    writingTypeName: mergedData[4].default,
    isImgName: mergedData[5].default,
    writingCount: "200",
    fileData: "",
  };
  return param;
}

// 20250408新增写作风格选项映射
export const getWritingStyleOptions = (purpose: string) => {
  switch (purpose) {
    case "公司官网":
      return [
        { name: "专业", value: "professional" },
        { name: "活泼", value: "lively" },
        { name: "严谨", value: "strict" },
      ];
    case "小红书":
      return [
        { name: "俏皮", value: "playful" },
        { name: "幽默", value: "humorous" },
      ];
    case "微信公众号":
      return [
        { name: "夸张", value: "exaggerated" },
        { name: "可爱", value: "cute" },
      ];
    case "今日头条":
      return [
        { name: "丰满", value: "full" },
        { name: "可爱", value: "cute" },
        { name: "健康", value: "healthy" },
      ];
    default:
      return [
        { name: "专业", value: "professional" },
        { name: "活泼", value: "lively" },
        { name: "严谨", value: "strict" },
      ];
  }
};