du
2025-04-14 ec2ea01a6f76f17e6750631349679970ad362631
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<template>
  <div id="docmee-container" style="height:800px"></div>
</template>
 
<script>
import { CreatorType, DocmeeUI } from '@docmee/sdk-ui'
import { generateToken } from '@/api/ppt/docmee/index'; // 确保路径正确
//用户信息
import {useLocaleStore} from "@/store/modules/locale";
//用户信息
const localeStore = useLocaleStore();
const sysmessage = useMessage();
export default {
  name: 'PptIndex',
  async mounted() {
    const token = await generateToken();
 
    if (token) {
      const docmeeContainer = document.getElementById('docmee-container');
      if (docmeeContainer) {
        const docmeeUI = new DocmeeUI({
          token: token, // 使用获取到的token
          container: docmeeContainer, // 挂载 iframe 的容器
          page: 'dashboard', // 选择 'creator' 或 'dashboard'
          creatorVersion: "v2",
          lang: localeStore.getCurrentLocale.lang.indexOf('zh')> -1 ? 'zh':localeStore.getCurrentLocale.lang,
          // themeColor: '#001529', // 主题色
          background: "linear-gradient(-157deg,#e9f5fa, #d2e5fe)", // 自定义背景
          padding: '40px', // 内边距
          mode: "light",
          creatorData: {
            type: CreatorType.AI_GEN,
          },
          onMessage(message) {
            console.log(message);
            if (message.type === 'invalid-token') {
              console.log('token 认证错误');
              sysmessage.error("认证错误");
            }
            if (message.type === 'beforeGenerate') {
              const { subtype, fields } = message.data;
              if (subtype === 'outline') {
                console.log('即将生成ppt大纲', fields);
                return true; // 允许生成
              } else if (subtype === 'ppt') {
                console.log('即将生成ppt', fields);
                docmeeUI.sendMessage({
                  type: 'success',
                  content: '继续生成PPT',
                });
                return true; // 允许生成
              }
            }
            if (message.type === 'error') {
              console.log('失败', message.data);
              const { code } = message.data;
              if (code === 88) {
                sysmessage.error("您本时段内免费次数已用完,请稍候再试");
              }
            }
            if (message.type === 'beforeDownload') {
              return `PPT_${new Date().getTime()}.pptx`;
            }
          },
        });
      }
    } else {
      console.error('Failed to obtain token');
    }
  },
};
</script>
 
<style scoped>
v#docmee-container {
  margin: 0;
  padding: 0;
  overflow: hidden;
  height: 1000px;
  width: 100vw;
}
</style>