Commit a3834140 authored by nick zheng's avatar nick zheng

chore(知识库管理): 类型定义&&命名更换

parent ac54e893
...@@ -10,7 +10,7 @@ export function createDatabaseColumn(handleDatabaseTableAction: (actionType: str ...@@ -10,7 +10,7 @@ export function createDatabaseColumn(handleDatabaseTableAction: (actionType: str
key: 'databaseName', key: 'databaseName',
align: 'left', align: 'left',
ellipsis: { ellipsis: {
tooltip: true, tooltip: { width: 'trigger' },
}, },
width: 210, width: 210,
fixed: 'left', fixed: 'left',
...@@ -23,7 +23,7 @@ export function createDatabaseColumn(handleDatabaseTableAction: (actionType: str ...@@ -23,7 +23,7 @@ export function createDatabaseColumn(handleDatabaseTableAction: (actionType: str
key: 'databaseDesc', key: 'databaseDesc',
align: 'left', align: 'left',
ellipsis: { ellipsis: {
tooltip: true, tooltip: { width: 'trigger' },
}, },
width: 380, width: 380,
render(row: DatabaseItemInterface) { render(row: DatabaseItemInterface) {
......
...@@ -5,18 +5,16 @@ import { useI18n } from 'vue-i18n' ...@@ -5,18 +5,16 @@ import { useI18n } from 'vue-i18n'
import CustomModal from '@/components/custom-modal/custom-modal.vue' import CustomModal from '@/components/custom-modal/custom-modal.vue'
import DatabaseDirectIcon from '@/assets/svgs/database-direct.svg' import DatabaseDirectIcon from '@/assets/svgs/database-direct.svg'
import { fetchTestConnectionDataBase } from '@/apis/database' import { fetchTestConnectionDataBase } from '@/apis/database'
import { DatabaseItemInterface } from '../type.d' import { DatabaseFormInterface } from '../type.d'
interface Props { interface Props {
btnLoading: boolean btnLoading: boolean
} }
type CreateDatabaseFormInterface = Omit<DatabaseItemInterface, 'id' | 'modifiedTime'>
defineProps<Props>() defineProps<Props>()
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'confirm', databaseFormData: CreateDatabaseFormInterface): void (e: 'confirm', databaseFormData: DatabaseFormInterface): void
}>() }>()
const { t } = useI18n() const { t } = useI18n()
...@@ -26,7 +24,7 @@ const showModal = defineModel<boolean>('showModal', { required: true }) ...@@ -26,7 +24,7 @@ const showModal = defineModel<boolean>('showModal', { required: true })
const databaseFormRef = ref<FormInst | null>(null) const databaseFormRef = ref<FormInst | null>(null)
const scrollbarRef = useTemplateRef<ScrollbarInst | null>('scrollbarRef') const scrollbarRef = useTemplateRef<ScrollbarInst | null>('scrollbarRef')
let databaseFormData = reactive<CreateDatabaseFormInterface>(databaseFormDataFactory()) let databaseFormData = reactive<DatabaseFormInterface>(databaseFormDataFactory())
const databaseFormRules = shallowReadonly<FormRules>({ const databaseFormRules = shallowReadonly<FormRules>({
title: [ title: [
...@@ -123,7 +121,7 @@ watchEffect(() => { ...@@ -123,7 +121,7 @@ watchEffect(() => {
} }
}) })
function databaseFormDataFactory(): CreateDatabaseFormInterface { function databaseFormDataFactory(): DatabaseFormInterface {
return { return {
title: '', title: '',
desc: '', desc: '',
......
...@@ -3,18 +3,20 @@ import { FormInst, FormItemRule, FormRules, ScrollbarInst } from 'naive-ui' ...@@ -3,18 +3,20 @@ import { FormInst, FormItemRule, FormRules, ScrollbarInst } from 'naive-ui'
import { nextTick, reactive, ref, shallowReadonly, useTemplateRef, watch, watchEffect } from 'vue' import { nextTick, reactive, ref, shallowReadonly, useTemplateRef, watch, watchEffect } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import CustomModal from '@/components/custom-modal/custom-modal.vue' import CustomModal from '@/components/custom-modal/custom-modal.vue'
import { DatabaseItemInterface } from '../type.d' import { DatabaseFormInterface } from '../type.d'
import { fetchTestConnectionDataBase } from '@/apis/database' import { fetchTestConnectionDataBase } from '@/apis/database'
type DatabaseEditFormInterface = DatabaseFormInterface & { id: number }
interface Props { interface Props {
databaseDetail: DatabaseItemInterface databaseDetail: DatabaseEditFormInterface
btnLoading: boolean btnLoading: boolean
} }
const props = defineProps<Props>() const props = defineProps<Props>()
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'confirm', databaseFormData: DatabaseItemInterface): void (e: 'confirm', databaseFormData: DatabaseEditFormInterface): void
}>() }>()
const { t } = useI18n() const { t } = useI18n()
...@@ -24,7 +26,7 @@ const showModal = defineModel<boolean>('showModal', { required: true }) ...@@ -24,7 +26,7 @@ const showModal = defineModel<boolean>('showModal', { required: true })
const databaseFormRef = ref<FormInst | null>(null) const databaseFormRef = ref<FormInst | null>(null)
const scrollbarRef = useTemplateRef<ScrollbarInst | null>('scrollbarRef') const scrollbarRef = useTemplateRef<ScrollbarInst | null>('scrollbarRef')
let databaseFormData = reactive<DatabaseItemInterface>(databaseFormDataFactory()) let databaseFormData = reactive<DatabaseEditFormInterface>(databaseFormDataFactory())
const databaseFormRules = shallowReadonly<FormRules>({ const databaseFormRules = shallowReadonly<FormRules>({
title: [ title: [
...@@ -70,7 +72,7 @@ watch( ...@@ -70,7 +72,7 @@ watch(
}, },
) )
function databaseFormDataFactory(): DatabaseItemInterface { function databaseFormDataFactory(): DatabaseEditFormInterface {
return { return {
id: 0, id: 0,
title: '', title: '',
...@@ -81,7 +83,6 @@ function databaseFormDataFactory(): DatabaseItemInterface { ...@@ -81,7 +83,6 @@ function databaseFormDataFactory(): DatabaseItemInterface {
dbName: '', dbName: '',
dbUsername: '', dbUsername: '',
dbPassword: '', dbPassword: '',
modifiedTime: new Date(),
} }
} }
......
...@@ -7,10 +7,12 @@ import useTableScrollY from '@/composables/useTableScrollY' ...@@ -7,10 +7,12 @@ import useTableScrollY from '@/composables/useTableScrollY'
import { usePagination } from '@/composables/usePagination.ts' import { usePagination } from '@/composables/usePagination.ts'
import CustomPagination from '@/components/custom-pagination/custom-pagination.vue' import CustomPagination from '@/components/custom-pagination/custom-pagination.vue'
import { createDatabaseColumn } from './columns.tsx' import { createDatabaseColumn } from './columns.tsx'
import { DatabaseItemInterface } from './type.d' import { DatabaseFormInterface, DatabaseItemInterface } from './type.d'
import EditDatabaseModal from './components/edit-database-modal.vue' import EditDatabaseModal from './components/edit-database-modal.vue'
import { fetchDeleteDataBaseById, fetchGetDataBaseList, handleUpdateDataBase } from '@/apis/database.ts' import { fetchDeleteDataBaseById, fetchGetDataBaseList, handleUpdateDataBase } from '@/apis/database.ts'
type DatabaseEditFormInterface = DatabaseFormInterface & { id: number }
const { t } = useI18n() const { t } = useI18n()
const databaseListTableRef = useTemplateRef<DataTableInst>('databaseListTableRef') const databaseListTableRef = useTemplateRef<DataTableInst>('databaseListTableRef')
...@@ -26,7 +28,7 @@ const databaseListLoading = ref(false) ...@@ -26,7 +28,7 @@ const databaseListLoading = ref(false)
const showEditDatabaseModal = ref(false) const showEditDatabaseModal = ref(false)
const updateDatabaseBtnLoading = ref(false) const updateDatabaseBtnLoading = ref(false)
const currentEditDatabaseInfo = ref<DatabaseItemInterface>({ const currentEditDatabaseInfo = ref<DatabaseEditFormInterface>({
id: 0, id: 0,
title: '', title: '',
desc: '', desc: '',
...@@ -36,7 +38,6 @@ const currentEditDatabaseInfo = ref<DatabaseItemInterface>({ ...@@ -36,7 +38,6 @@ const currentEditDatabaseInfo = ref<DatabaseItemInterface>({
dbName: '', dbName: '',
dbUsername: '', dbUsername: '',
dbPassword: '', dbPassword: '',
modifiedTime: new Date(),
}) })
const databaseColumns = createDatabaseColumn(handleDatabaseTableAction) const databaseColumns = createDatabaseColumn(handleDatabaseTableAction)
...@@ -81,39 +82,39 @@ async function handleSearchDatabaseList() { ...@@ -81,39 +82,39 @@ async function handleSearchDatabaseList() {
databaseListTableRef.value?.scrollTo({ top: 0, behavior: 'smooth' }) databaseListTableRef.value?.scrollTo({ top: 0, behavior: 'smooth' })
} }
function handleDatabaseTableAction(actionType: string, databaseId: number) { function handleDatabaseTableAction(actionType: string, dbId: number) {
switch (actionType) { switch (actionType) {
case 'view': case 'view':
handleToDatabaseDetail(databaseId) handleToDatabaseDetail(dbId)
break break
case 'edit': case 'edit':
handleShowEditDatabaseModal(databaseId) handleShowEditDatabaseModal(dbId)
break break
case 'delete': case 'delete':
handleDeleteDatabaseById(databaseId) handleDeleteDatabaseById(dbId)
break break
} }
} }
function handleToDatabaseDetail(_databaseId: number) { function handleToDatabaseDetail(_dbId: number) {
// TODO // TODO
} }
function handleShowEditDatabaseModal(databaseId: number) { function handleShowEditDatabaseModal(dbId: number) {
showEditDatabaseModal.value = true showEditDatabaseModal.value = true
databaseList.value.forEach((item) => { databaseList.value.forEach((item) => {
if (item.id === databaseId) { if (item.id === dbId) {
currentEditDatabaseInfo.value = item currentEditDatabaseInfo.value = item
} }
}) })
} }
function handleDeleteDatabaseById(databaseId: number) { function handleDeleteDatabaseById(dbId: number) {
window.$message window.$message
.ctWarning('', t('personal_space_module.knowledge_module.delete_knowledge_dialog_content')) .ctWarning('', t('personal_space_module.knowledge_module.delete_knowledge_dialog_content'))
.then(async () => { .then(async () => {
const res = await fetchDeleteDataBaseById(databaseId) const res = await fetchDeleteDataBaseById(dbId)
if (res.code === 0) { if (res.code === 0) {
if (databaseList.value.length <= 1 && paginationData.pageNo === paginationData.totalPages) { if (databaseList.value.length <= 1 && paginationData.pageNo === paginationData.totalPages) {
...@@ -125,7 +126,7 @@ function handleDeleteDatabaseById(databaseId: number) { ...@@ -125,7 +126,7 @@ function handleDeleteDatabaseById(databaseId: number) {
}) })
} }
async function handleUpdateDatabase(databaseData: DatabaseItemInterface) { async function handleUpdateDatabase(databaseData: DatabaseEditFormInterface) {
updateDatabaseBtnLoading.value = true updateDatabaseBtnLoading.value = true
const res = await handleUpdateDataBase(databaseData).finally(() => { const res = await handleUpdateDataBase(databaseData).finally(() => {
......
export interface DatabaseTableInfoItem {
table_NAME: string
table_COMMENT: string
table_ROWS: number
table_COLUMN: number
}
export interface DatabaseItemInterface { export interface DatabaseItemInterface {
id: number id: number
title: string title: string
...@@ -9,4 +16,7 @@ export interface DatabaseItemInterface { ...@@ -9,4 +16,7 @@ export interface DatabaseItemInterface {
dbUsername: string dbUsername: string
dbPassword: string dbPassword: string
modifiedTime: Date modifiedTime: Date
tableInfos: DatabaseTableInfoItem[]
} }
export type DatabaseFormInterface = Omit<DatabaseItemInterface, 'id' | 'modifiedTime' | 'tableInfos'>
...@@ -9,7 +9,7 @@ import CreateKnowledgeModal, { ...@@ -9,7 +9,7 @@ import CreateKnowledgeModal, {
import CreateDatabaseModal from './personal-database/components/create-database-modal.vue' import CreateDatabaseModal from './personal-database/components/create-database-modal.vue'
import { fetchCreateKnowledge } from '@/apis/knowledge' import { fetchCreateKnowledge } from '@/apis/knowledge'
import { fetchCreateDataBase } from '@/apis/database' import { fetchCreateDataBase } from '@/apis/database'
import { DatabaseItemInterface } from './personal-database/type' import { DatabaseFormInterface } from './personal-database/type'
const { t } = useI18n() const { t } = useI18n()
...@@ -106,7 +106,7 @@ async function handleCreateKnowledgeNextStep(createKnowledgeData: KnowledgeFormD ...@@ -106,7 +106,7 @@ async function handleCreateKnowledgeNextStep(createKnowledgeData: KnowledgeFormD
} }
} }
async function handleCreateDatabase(databaseData: Omit<DatabaseItemInterface, 'id' | 'modifiedTime'>) { async function handleCreateDatabase(databaseData: DatabaseFormInterface) {
createDatabaseBtnLoading.value = true createDatabaseBtnLoading.value = true
const res = await fetchCreateDataBase(databaseData).finally(() => { const res = await fetchCreateDataBase(databaseData).finally(() => {
......
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