Skip to content

Commit

Permalink
feat: code to implement some of the functions
Browse files Browse the repository at this point in the history
  • Loading branch information
ayangweb committed Mar 14, 2023
1 parent 7093452 commit 6dc881f
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 29 deletions.
21 changes: 16 additions & 5 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
useThemeStore,
useUuidStore,
useRecordStore,
useRoleStore,
useFixedStore
} from '@/stores'
Expand All @@ -14,6 +15,7 @@ initSQL()
const { themeClass } = storeToRefs(useThemeStore())
const { uuid } = storeToRefs(useUuidStore())
const { recordList } = storeToRefs(useRecordStore())
const { currentRole } = storeToRefs(useRoleStore())
const { isFix } = storeToRefs(useFixedStore())
const windowFocused = ref(true)
Expand Down Expand Up @@ -54,14 +56,23 @@ onMounted(async () => {
</ul>

<div class="flex cursor-default flex-col gap-2 pt-2">
<div class="text-5 flex w-full justify-end gap-4">
<Refresh />
<div class="flex justify-between">
<div class="flex-1 text-right">
正在与 <span class="mark">{{ currentRole?.name }}</span> 对话
</div>

<Delete />
<!-- TODO: 没有必要全部拆分,后期功能完善将不必要的拆分直接挪到这边 -->
<div class="text-5 flex flex-1 justify-end gap-4">
<Increase />

<History />
<ReAnswer />

<Settings />
<Delete />

<History />

<Settings />
</div>
</div>

<Input />
Expand Down
15 changes: 10 additions & 5 deletions src/assets/css/global.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,27 +15,27 @@ body {
}

.bordered {
border: 1px solid var(--color-neutral-3);
border: 1px solid var(--color-border);
}

.bordered-transparent {
border: 1px solid transparent;
}

.bordered-top {
border-top: 1px solid var(--color-neutral-3);
border-top: 1px solid var(--color-border);
}

.bordered-right {
border-right: 1px solid var(--color-neutral-3);
border-right: 1px solid var(--color-border);
}

.bordered-bottom {
border-bottom: 1px solid var(--color-neutral-3);
border-bottom: 1px solid var(--color-border);
}

.bordered-left {
border-left: 1px solid var(--color-neutral-3);
border-left: 1px solid var(--color-border);
}

.frosted {
Expand All @@ -62,3 +62,8 @@ body {
.arco-icon {
cursor: pointer;
}

.mark {
color: rgba(var(--primary-6));
background-color: transparent;
}
9 changes: 6 additions & 3 deletions src/components/Delete/index.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
<script setup lang="ts">
import { IconDelete } from '@arco-design/web-vue/es/icon'
import { useRecordStore } from '@/stores'
const recordStore = useRecordStore()
const { deleteRecord } = recordStore
const { currentRecord } = storeToRefs(recordStore)
</script>

<template>
<a-tooltip content="清空对话">
<IconDelete />
<IconDelete @click="deleteRecord(currentRecord?.id)" />
</a-tooltip>
</template>

<style scoped lang="scss"></style>
12 changes: 12 additions & 0 deletions src/components/Increase/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<script setup lang="ts">
import { IconPlusCircle } from '@arco-design/web-vue/es/icon'
import { useRecordStore } from '@/stores'
const { createNewRecord } = useRecordStore()
</script>

<template>
<a-tooltip content="新建对话">
<IconPlusCircle @click="createNewRecord" />
</a-tooltip>
</template>
5 changes: 5 additions & 0 deletions src/components/Input/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,14 @@ const textAreaValue = ref('')
transition: all 0.3s;
border-radius: 32px;
&:hover {
border-color: var(--color-neutral-4);
}
&.arco-textarea-focus {
height: 96px;
border-color: rgb(var(--arcoblue-6));
border-radius: 0;
}
}
Expand Down
25 changes: 25 additions & 0 deletions src/components/ReAnswer/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<script setup lang="ts">
import { IconRefresh } from '@arco-design/web-vue/es/icon'
import { useRecordStore } from '@/stores'
const recordStore = useRecordStore()
const { updateRecord } = recordStore
const { currentRecord } = storeToRefs(recordStore)
const handleClick = () => {
if (!currentRecord.value) return
const newRecord = { ...currentRecord.value }
newRecord.data?.pop()
currentRecord.value = newRecord
updateRecord(newRecord)
}
</script>

<template>
<a-tooltip content="重新回答">
<IconRefresh @click="handleClick" />
</a-tooltip>
</template>
13 changes: 0 additions & 13 deletions src/components/Refresh/index.vue

This file was deleted.

2 changes: 1 addition & 1 deletion src/constants/shared.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ export enum THEME {
}

export enum DEFAULT_ROLE {
name = '默认角色',
name = 'AI 程序员',
description = '请以 markdown 的形式返回答案!'
}
15 changes: 13 additions & 2 deletions src/stores/record.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ export const useRecordStore = defineStore('recordStore', () => {

const recordList = ref<TablePayload[]>([])

const createNewRecord = () => {
currentRecord.value = undefined
}

const getRecord = async () => {
recordList.value = await selectSQL('history')

if (currentRecord.value) {
// 检查聊天内容是否还存在于数据库
// 检查聊天记录是否还存在于数据库
const findRecord = recordList.value.find(
(record) => record.id === currentRecord.value?.id
)
Expand Down Expand Up @@ -41,5 +45,12 @@ export const useRecordStore = defineStore('recordStore', () => {

onMounted(getRecord)

return { currentRecord, recordList, addRecord, updateRecord, deleteRecord }
return {
currentRecord,
recordList,
createNewRecord,
addRecord,
updateRecord,
deleteRecord
}
})

0 comments on commit 6dc881f

Please sign in to comment.