Browse Source

fix:1. 文生图增加模型显示;2. 知识库增加精选问题;3. markdown增加唯一id;4. 图片回显增大; 5. 修改充值文案;

dxj
李朋徽 1 year ago
parent
commit
aa40c97a04
  1. 18
      .env.test
  2. 1
      package.json
  3. 12
      src/components/AppMessage/index.vue
  4. 5
      src/components/AppModelSelect/index.vue
  5. 2
      src/components/AppRecharge/index.vue
  6. 16
      src/views/repository/index.vue
  7. 27
      src/views/textToImage/index.vue

18
.env.test

@ -0,0 +1,18 @@
# 正式环境
# 公共地址
VITE_GLOB_BASE_URL = "http://223.99.228.207:19872"
# 本地MQTT地址
VITE_GLOB_MQTT_HOST = "223.99.228.240"
VITE_GLOB_MQTT_PORT = 28083
VITE_GLOB_MQTT_PROTOCOL = "ws"
# 本地MQTT用户名
VITE_GLOB_MQTT_USERNAME = "serverAdmin"
# 本地MQTT密码
VITE_GLOB_MQTT_PASSWORD = "EnpfgI9yuSwi"
# 接口授权标识
VITE_GLOB_APP_AUTHORIZATION = "ZmFsY29uOmZhbGNvbl9zZWNyZXQ="

1
package.json

@ -9,6 +9,7 @@
},
"scripts": {
"dev": "vite --host --mode development",
"dev:test": "vite --host --mode test",
"dev:prod": "vite --host --mode production",
"dev:zxh": "vite --host --mode zxh",
"dev:lsp": "vite --host --mode lsp",

12
src/components/AppMessage/index.vue

@ -122,7 +122,7 @@ onMounted(async () => {
<div v-if="item.messageType === MessageTypeEnum.USER" class="user">
<div class="content">
<MdPreview
:editor-id="`preview-only-ai${index}`"
:editor-id="`preview-only-user${index}${Date.now()}`"
:model-value="item.content"
/>
</div>
@ -138,8 +138,8 @@ onMounted(async () => {
<Image
v-if="!item.content.includes(MqttContentErrorEnum.SENSITIVE_WORD)"
class="mb-2"
:width="200"
:height="200"
:width="400"
:height="400"
:src="item.content"
fallback="data:image/png;base64,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"
></Image>
@ -149,7 +149,7 @@ onMounted(async () => {
</div>
<MdPreview
v-else
:editor-id="`preview-only-ai${index}`"
:editor-id="`preview-only-ai${index}${Date.now()}`"
:model-value="item.content"
/>
</div>
@ -211,8 +211,8 @@ onMounted(async () => {
border-radius: 10px;
:deep(.md-editor-preview-wrapper) {
img {
width: 100px;
height: 100px;
width: 400px;
height: 400px;
display: block;
}
}

5
src/components/AppModelSelect/index.vue

@ -8,10 +8,12 @@ import { SvgIcon } from '@/components/SvgIcon'
interface Props {
activeIndex: number
options: ModelSelect[]
disabled: boolean
}
const props = withDefaults(defineProps<Props>(), {
activeIndex: 0,
options: () => [],
disabled: false,
})
const emit = defineEmits(['change', 'update:activeIndex'])
@ -28,7 +30,7 @@ function handelChange(index: number, item: ModelSelect) {
</script>
<template>
<Dropdown :trigger="['click']">
<Dropdown :disabled="disabled" :trigger="['click']">
<div class="app-model-select flex justify-between items-center" @click.prevent>
<SvgIcon class="icon icon-robot" name="robot" />
{{ options[optionActive].label }}
@ -58,6 +60,7 @@ function handelChange(index: number, item: ModelSelect) {
position: absolute;
top: 0px;
left: calc(50% - 100px);
z-index: 10;
.icon {
width: 24px;
height: 24px;

2
src/components/AppRecharge/index.vue

@ -198,7 +198,7 @@ function separator(num: number | string) {
</div>
<div class="equities">
<div class="left">
AI绘图
AI绘图DALL-E 3
</div>
<div class="right">
{{ item.pictureNum }}

16
src/views/repository/index.vue

@ -62,6 +62,20 @@ const leadData = ref({
],
image: DefaultImage,
})
const topPickList = ref([
{
id: '1',
label: '什么是标识解析?',
},
{
id: '2',
label: '如何使用标识进行产品全生命周期优化?',
},
{
id: '3',
label: '如何使用标识对供应链进行优化?',
},
])
const conversationDefaultShow = ref(false)
const appMessageShow = ref(true)
@ -411,7 +425,9 @@ onUnmounted(() => {
<!-- 默认导语 -->
<AppConversationDefault
v-if="conversationDefaultShow"
:is-pick="true"
:lead-data="leadData"
:top-pick-list="topPickList"
height="calc(100% - 148px)"
@handle-pick="handlePick"
>

27
src/views/textToImage/index.vue

@ -12,6 +12,8 @@ import type { SubMenuItem } from '@/components/AppSubMenuList/index.d'
import { AppTextarea } from '@/components/AppTextarea'
import { AppMessage } from '@/components/AppMessage'
import { AppModelSelect } from '@/components/AppModelSelect'
import type { ModelSelect } from '@/components/AppModelSelect/index.d'
import type { MessageItem } from '@/components/AppMessage/index.d'
import type { TopPickItem } from '@/components/AppTopPicks/index.d'
import { useMessageStore } from '@/store/moules/messageStore/index'
@ -60,6 +62,14 @@ const topPickList = ref([
},
])
const modelOptions: ModelSelect[] = [
{
label: 'DALL-E 3',
value: ModelTypeEnum.DALL_E3,
},
]
const modelIndex = ref(0)
const conversationDefaultShow = ref(false)
const appMessageShow = ref(true)
const spinning = ref(true)
@ -150,7 +160,7 @@ async function handleSend(value: string) {
try {
spinning.value = true
messageStore.setMessageClear()
await addMessage({ type: MenuTypeEnum.TEXT_TO_IMAGE, title: '新的对话', sort: subMenuList.value.length + 1, modelType: ModelTypeEnum.DALL_E3 })
await addMessage({ type: MenuTypeEnum.TEXT_TO_IMAGE, title: '新的对话', sort: subMenuList.value.length + 1, modelType: modelOptions[modelIndex.value].value })
await nextTick()
await getConversationList()
subMenuActiveIndex.value = subMenuList.value.length - 1
@ -304,6 +314,13 @@ function handlePick(_index: number, item: TopPickItem) {
handleSend(item.label)
}
/**
* @description: gpt模型切换
*/
function handleModel(index: number) {
modelIndex.value = index
}
//
function handleSubMenuInputAffirm(index: number, item: SubMenuItem, inputValue: string) {
updateMessage({ ...item, title: inputValue }).then(() => {
@ -366,6 +383,14 @@ onUnmounted(() => {
</template>
<template #content>
<Spin :spinning="spinning" wrapper-class-name="app-content-spin">
<AppModelSelect
v-if="conversationDefaultShow"
:active-index="modelIndex"
:options="modelOptions"
@change="handleModel"
>
</AppModelSelect>
<!-- 默认导语 -->
<AppConversationDefault
v-if="conversationDefaultShow"

Loading…
Cancel
Save