6 changed files with 131 additions and 112 deletions
-
22src/api/admin.ts
-
22src/api/blog.ts
-
61src/components/blogs/ceshi.vue
-
55src/stores/index.ts
-
20src/views/admin/blogmange/BlogFormView.vue
-
57src/views/admin/classticmanage/ClassticManageView.vue
@ -0,0 +1,22 @@ |
|||||
|
// 博客管理
|
||||
|
export interface blogInterface { |
||||
|
key: string, |
||||
|
blogtitle: string, |
||||
|
create_at: Date, |
||||
|
readnum: number, |
||||
|
readminite: number, |
||||
|
wordcount: number, |
||||
|
img: string, |
||||
|
blogcontent: string, |
||||
|
typename: string, |
||||
|
labelnames: string |
||||
|
} |
||||
|
|
||||
|
// 语录管理
|
||||
|
export interface classticInterface { |
||||
|
key:string, |
||||
|
id?:number, |
||||
|
header: string, |
||||
|
text: string, |
||||
|
descr: string |
||||
|
} |
@ -1,22 +0,0 @@ |
|||||
// 博客管理
|
|
||||
export interface blogInterface { |
|
||||
key: string, |
|
||||
blogtitle: string, |
|
||||
create_at: Date, |
|
||||
readnum: number, |
|
||||
readminite: number, |
|
||||
wordcount: number, |
|
||||
img: string, |
|
||||
blogcontent: string, |
|
||||
typename: string, |
|
||||
labelnames: string |
|
||||
} |
|
||||
|
|
||||
// 语录管理
|
|
||||
export interface classticInterface { |
|
||||
key:string, |
|
||||
id:number, |
|
||||
header: string, |
|
||||
text: string, |
|
||||
descr: string |
|
||||
} |
|
@ -1,13 +1,58 @@ |
|||||
<template> |
<template> |
||||
<v-md-editor v-model="text" height="400px"></v-md-editor> |
|
||||
|
<a-form |
||||
|
:model="formState" |
||||
|
name="basic" |
||||
|
:label-col="{ span: 8 }" |
||||
|
:wrapper-col="{ span: 16 }" |
||||
|
autocomplete="off" |
||||
|
@finish="onFinish" |
||||
|
@finishFailed="onFinishFailed" |
||||
|
> |
||||
|
<a-form-item |
||||
|
label="Username" |
||||
|
name="username" |
||||
|
:rules="[{ required: true, message: 'Please input your username!' }]" |
||||
|
> |
||||
|
<a-input v-model:value="formState.username" /> |
||||
|
</a-form-item> |
||||
|
|
||||
|
<a-form-item |
||||
|
label="Password" |
||||
|
name="password" |
||||
|
:rules="[{ required: true, message: 'Please input your password!' }]" |
||||
|
> |
||||
|
<a-input-password v-model:value="formState.password" /> |
||||
|
</a-form-item> |
||||
|
|
||||
|
<a-form-item name="remember" :wrapper-col="{ offset: 8, span: 16 }"> |
||||
|
<a-checkbox v-model:checked="formState.remember">Remember me</a-checkbox> |
||||
|
</a-form-item> |
||||
|
|
||||
|
<a-form-item :wrapper-col="{ offset: 8, span: 16 }"> |
||||
|
<a-button type="primary" html-type="submit">Submit</a-button> |
||||
|
</a-form-item> |
||||
|
</a-form> |
||||
</template> |
</template> |
||||
|
<script lang="ts" setup> |
||||
|
import { reactive } from 'vue'; |
||||
|
|
||||
|
interface FormState { |
||||
|
username: string; |
||||
|
password: string; |
||||
|
remember: boolean; |
||||
|
} |
||||
|
|
||||
<script> |
|
||||
export default { |
|
||||
data() { |
|
||||
return { |
|
||||
text: `<h1 align="center">Markdown Editor built on Vue</h1>`, |
|
||||
}; |
|
||||
}, |
|
||||
|
const formState = reactive<FormState>({ |
||||
|
username: '', |
||||
|
password: '', |
||||
|
remember: true, |
||||
|
}); |
||||
|
const onFinish = (values: any) => { |
||||
|
console.log('Success:', values); |
||||
|
}; |
||||
|
|
||||
|
const onFinishFailed = (errorInfo: any) => { |
||||
|
console.log('Failed:', errorInfo); |
||||
}; |
}; |
||||
</script> |
</script> |
||||
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue