Commit 9a2b89f8 authored by CHENQIKUAI's avatar CHENQIKUAI

faq list

parent 3ae247d1
This diff is collapsed.
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
"dayjs": "^1.10.7", "dayjs": "^1.10.7",
"dexie": "^3.0.3", "dexie": "^3.0.3",
"enc-utils": "^3.0.0", "enc-utils": "^3.0.0",
"js-base64": "^3.7.2",
"prepend-http": "^4.0.0", "prepend-http": "^4.0.0",
"quasar": "^2.0.4", "quasar": "^2.0.4",
"secp256k1": "^4.0.2", "secp256k1": "^4.0.2",
......
<template> <template>
<div class="overflow-auto"> <div class="overflow-auto">
<div <Skeleton :loading="loading" :row="5" row-width="[100%]">
v-for="item in list" <div
:key="item" v-for="item in list"
class="text-center sentence" :key="item"
@click="$emit('useSentence', item)" class="text-center sentence"
>{{ item }}</div> @click="$emit('useSentence', item)"
>{{ item }}</div>
</Skeleton>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PropType, defineEmits } from "@vue/runtime-core"; import { PropType, defineEmits } from "@vue/runtime-core";
import { Skeleton } from "vant"
defineEmits(["useSentence"]) defineEmits(["useSentence"])
defineProps({ defineProps({
list: { list: {
type: Array as PropType<string[]>, type: Array as PropType<string[]>,
} },
loading: Boolean
}) })
</script> </script>
......
import baseAxios from '../index' import baseAxios from '../index'
import {toBase64} from "js-base64"
export function queryFaqList() { export function queryFaqList() {
return baseAxios<{ return baseAxios<{
...@@ -10,9 +11,12 @@ export function queryFaqList() { ...@@ -10,9 +11,12 @@ export function queryFaqList() {
}) })
} }
export function queryFaqAnswer(data: { question: string }) { export function queryFaqAnswer(data: { question: string }) {
const base64 = toBase64(data.question)
return baseAxios<string>({ return baseAxios<string>({
url: '/faq/query/answer', url: '/faq/query/answer',
method: 'get', method: 'get',
params: data, params: {
question: base64
},
}) })
} }
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
<ChatInputVue /> <ChatInputVue />
<CommonUseSentence <CommonUseSentence
class="transition-all h-0" class="transition-all h-0"
:class="{ 'h-20': showShortSentences }" :class="{ 'h-40': showShortSentences }"
:loading="sentensesLoading"
@useSentence="useSentence" @useSentence="useSentence"
:list="sentenceList" :list="sentenceList"
/> />
...@@ -31,7 +32,6 @@ ...@@ -31,7 +32,6 @@
import NavBar from "@/components/NavBar/index.vue"; import NavBar from "@/components/NavBar/index.vue";
import { defineComponent, onBeforeUnmount, onMounted, reactive, ref, watch, defineAsyncComponent } from "vue"; import { defineComponent, onBeforeUnmount, onMounted, reactive, ref, watch, defineAsyncComponent } from "vue";
import { connectionState } from "@/store/connectionStore"; import { connectionState } from "@/store/connectionStore";
import { privateKey, publicKey } from "@/store/appCallerStore";
import { getFromId } from "@/store/appCallerStore"; import { getFromId } from "@/store/appCallerStore";
import { messageStore } from "@/store/messagesStore"; import { messageStore } from "@/store/messagesStore";
import ChatMessageDB from "@/db/ChatMessageDB"; import ChatMessageDB from "@/db/ChatMessageDB";
...@@ -58,12 +58,13 @@ export default defineComponent({ ...@@ -58,12 +58,13 @@ export default defineComponent({
const showServiceRating = ref(false); const showServiceRating = ref(false);
const selected = ref(""); const selected = ref("");
const selectedChatOption = ref(NaN); const selectedChatOption = ref(NaN);
const showShortSentences = ref(true); const showShortSentences = ref(false);
const route = useRoute() const route = useRoute()
const target = route.query.targetId as string; const target = route.query.targetId as string;
const sentenceList = ref<any[]>([]) const sentenceList = ref<any[]>([])
const sentensesLoading = ref(false)
const optionList = [ const optionList = [
{ name: '常用问题', id: 1 }, { name: '常用问题', id: 1 },
...@@ -74,15 +75,23 @@ export default defineComponent({ ...@@ -74,15 +75,23 @@ export default defineComponent({
const handleSelect = (select: string) => (selected.value = select); const handleSelect = (select: string) => (selected.value = select);
const handleSelectChatOption = (select: number) => { const handleSelectChatOption = (select: number) => {
selectedChatOption.value = select selectedChatOption.value = select
if (select === 1) { };
watch(selectedChatOption, () => {
if (selectedChatOption.value === 1) {
setShowSentences(true)
sentensesLoading.value = true;
queryFaqList().then(ret => { queryFaqList().then(ret => {
if (ret.code === 200) { if (ret.code === 200) {
sentenceList.value = ret.data.question; sentenceList.value = ret.data.question;
} }
sentensesLoading.value = false;
}) })
setShowSentences(true) setShowSentences(true)
} else {
setShowSentences(false)
} }
}; })
const useSentence = (content: string) => { const useSentence = (content: string) => {
/* 问 */ /* 问 */
...@@ -143,7 +152,8 @@ export default defineComponent({ ...@@ -143,7 +152,8 @@ export default defineComponent({
handleSelectChatOption, handleSelectChatOption,
useSentence, useSentence,
sentenceList, sentenceList,
optionList optionList,
sentensesLoading
}; };
}, },
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment