diff --git a/pages/ai-consult/chat.vue b/pages/ai-consult/chat.vue index d8d1181..3942999 100644 --- a/pages/ai-consult/chat.vue +++ b/pages/ai-consult/chat.vue @@ -4,8 +4,8 @@ {{ formatMessageTime(item.createTime) }} - {{ displayContent(item) }} - + + {{ displayContent(item) }} AI diff --git a/pages/ai-consult/entry.vue b/pages/ai-consult/entry.vue index a3a468c..13974e0 100644 --- a/pages/ai-consult/entry.vue +++ b/pages/ai-consult/entry.vue @@ -1,14 +1,100 @@ - + + + +const { account, openid } = storeToRefs(useAccountStore()); +const corpId = ref(''); +const teamId = ref(''); +const assistantId = ref(''); +const qrid = ref(''); +const customers = ref([]); +const enableHis = ref(false); +const loaded = ref(false); + +function getEntryUrl() { + return `/pages/ai-consult/entry?corpId=${corpId.value}&teamId=${teamId.value}&assistantId=${assistantId.value}&qrid=${qrid.value}`; +} + +function toLogin() { + uni.redirectTo({ url: `/pages/login/login?redirectUrl=${encodeURIComponent(getEntryUrl())}` }); +} + +function toCreateArchive() { + uni.redirectTo({ url: `/pages/archive/edit-archive?corpId=${corpId.value}&teamId=${teamId.value}&redirectUrl=${encodeURIComponent(getEntryUrl())}` }); +} + +async function load() { + const miniAppId = openid.value || uni.getStorageSync('openid'); + const res = await api('getMiniAppCustomers', { corpId: corpId.value, miniAppId }, false); + loaded.value = true; + if (!res?.success) return uni.showToast({ title: res?.message || '查询档案失败', icon: 'none' }); + customers.value = res.data || []; + enableHis.value = res.enableHis === true; + if (!customers.value.length) toCreateArchive(); +} + +async function open(customer) { + const res = await api('openAiConsultSession', { corpId: corpId.value, teamId: teamId.value, assistantId: assistantId.value, qrid: qrid.value, customerId: customer?._id || '', miniAppId: openid.value || uni.getStorageSync('openid') }); + if (!res?.success) return uni.showToast({ title: res?.message || '创建失败', icon: 'none' }); + uni.redirectTo({ url: `/pages/ai-consult/chat?corpId=${corpId.value}&sessionId=${res.data.session._id}` }); +} + +onLoad((opts) => { + corpId.value = opts.corpId || ''; + teamId.value = opts.teamId || ''; + assistantId.value = opts.assistantId || ''; + qrid.value = opts.qrid || ''; + if (!account.value?.mobile) return toLogin(); + load(); +}); + + +