<template>
  <!--    -->
  <div>
    <a-row class="grid-demo">
      <a-col :span="24">
        <div>24 - 100%</div>
      </a-col>
    </a-row>

    <a-row class="grid-demo">
      <a-col :span="4">
        <a-space direction="vertical">
          <a-space class="w-240px">1</a-space>
          <a-space>2</a-space>

        </a-space>
      </a-col>
      <a-col :span="20">
        <div>
          <div id="coze-chat-container"></div>
        </div>
      </a-col>
    </a-row>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import { getChatAgent } from '@/api/all/agent';

// 存储认证令牌
const authToken = ref('pat_tuIM7jubM1hLXaIWzbWg1U15lBe66AlYwu9BkXMQXInh8VdPszRFTwlTPmdziHwg');

// 模拟从API获取token
const fetchToken = async () => {
  // 实际开发中应替换为真实的 API 请求
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('pat_' + Math.random().toString(36).substring(2, 15));
    }, 500);
  });
};

// 刷新token
const refreshToken = async () => {
  authToken.value = await fetchToken();
};

// 动态加载脚本函数
const loadScript = (src) =>
  new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.src = src;
    script.onload = resolve;
    script.onerror = reject;
    document.head.appendChild(script);
  });

const query = reactive({
  id: 1,
});

let cozeWebSDKConfig = reactive({
  config: {},
  auth: {},
  userInfo: {},
  ui: {},
});
let cozeWebSDK = null;
const initChat = async () => {
  const { code, data } = await getChatAgent(query.id);
  if (code != 200) {
    return false;
  }
  await loadScript('https://lf-cdn.coze.cn/obj/unpkg/flow-platform/chat-app-sdk/1.2.0-beta.10/libs/cn/index.js');
  let config = data;
  config.ui.chatBot.el = document.getElementById('coze-chat-container');
  config.ui.width = '900px';
  config.auth.onRefreshToken = function () {
    return 'pat_tuIM7jubM1hLXaIWzbWg1U15lBe66AlYwu9BkXMQXInh8VdPszRFTwlTPmdziHwg';
  };
  cozeWebSDK = cozeWebSDK = new CozeWebSDK.WebChatClient(config);
  showChatPage();
};

const showChatPage = () => {
  // 显示聊天页面
  console.log(cozeWebSDK, 'chatClient');
  cozeWebSDK.showChatBot();
};

onMounted(() => {
  initChat();
});
</script>

<style scoped>
.app-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
  font-family: Arial, sans-serif;
}

.refresh-btn {
  margin-top: 20px;
  padding: 10px 20px;
  background: #2ecc71;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.3s;
}

.refresh-btn:hover {
  background: #27ae60;
}
</style>
