From 2def4b35468fde3e09e76d3b30df4a77251edbeb Mon Sep 17 00:00:00 2001 From: "@zuopngfei" Date: Tue, 20 May 2025 16:09:33 +0800 Subject: [PATCH] 2323 --- src/api/login.ts | 82 +-------------------------- src/api/news.ts | 116 +++++++++++--------------------------- src/layout/home/menu.vue | 2 +- src/views/login/index.vue | 17 ++++-- src/views/news/addNew.vue | 70 +++++++++++++++++------ src/views/news/index.vue | 38 ++++++++++++- 6 files changed, 134 insertions(+), 191 deletions(-) diff --git a/src/api/login.ts b/src/api/login.ts index 3b05b41..a03f772 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -4,88 +4,8 @@ import request from '@/utils/request' // 登录 export const userLogin = (data: any) => { return request({ - url: `api/customer/login`, + url: `admin/login`, method: 'post', data }) } -// 注册 -export const userRegister = (data: any) => { - return request({ - url: `api/customer/register`, - method: 'post', - data - }) -} - -// 发送邮箱验证码 -export const sendEmail = (data: any) => { - return request({ - url: `api/customer/send_activation_email`, - method: 'post', - data - }) -} - -// 获取用户信息 -export const getUserInfo = () => { - return request({ - url: `api/customer/info`, - method: 'get' - }) -} - -// 激活账号 - -export const verifyCode = (code: any) => { - return request({ - url: `api/customer/verify_activation_email/${code}`, - method: 'get' - }) -} - -// 扫码登录 - -export const getRr = (data) => { - return request({ - url: `api/customer/qr`, - method: 'post', - data - }) -} - -// 轮询登录结果 - -export const getRrLogin = (data) => { - return request({ - url: `api/customer/qr_login`, - method: 'post', - data - }) -} - - -export const getUserSearch = (data) => { - return request({ - url: `api/customer/search`, - method: 'post', - data - }) -} - -export const setUserRecharge = (data) => { - return request({ - url: `api/customer/recharge`, - method: 'post', - data - }) -} - -// 充值记录 -export const rechargeList = (data) => { - return request({ - url: `api/customer/recharge/list`, - method: 'get', - params: data - }) -} \ No newline at end of file diff --git a/src/api/news.ts b/src/api/news.ts index 3b05b41..44e5ce2 100644 --- a/src/api/news.ts +++ b/src/api/news.ts @@ -1,91 +1,39 @@ import request from '@/utils/request' -// 登录 -export const userLogin = (data: any) => { + +export const news = (data: any) => { return request({ - url: `api/customer/login`, - method: 'post', - data - }) -} -// 注册 -export const userRegister = (data: any) => { - return request({ - url: `api/customer/register`, - method: 'post', - data - }) -} - -// 发送邮箱验证码 -export const sendEmail = (data: any) => { - return request({ - url: `api/customer/send_activation_email`, - method: 'post', - data - }) -} - -// 获取用户信息 -export const getUserInfo = () => { - return request({ - url: `api/customer/info`, - method: 'get' - }) -} - -// 激活账号 - -export const verifyCode = (code: any) => { - return request({ - url: `api/customer/verify_activation_email/${code}`, - method: 'get' - }) -} - -// 扫码登录 - -export const getRr = (data) => { - return request({ - url: `api/customer/qr`, - method: 'post', - data - }) -} - -// 轮询登录结果 - -export const getRrLogin = (data) => { - return request({ - url: `api/customer/qr_login`, - method: 'post', - data - }) -} - - -export const getUserSearch = (data) => { - return request({ - url: `api/customer/search`, - method: 'post', - data - }) -} - -export const setUserRecharge = (data) => { - return request({ - url: `api/customer/recharge`, - method: 'post', - data - }) -} - -// 充值记录 -export const rechargeList = (data) => { - return request({ - url: `api/customer/recharge/list`, + url: `admin/articles`, method: 'get', params: data }) -} \ No newline at end of file +} + +// 添加文章 +export const addNews = (data: any) => { + return request({ + url: `admin/article/create`, + method: 'post', + data + }) +} + +// 编辑文章 +export const editNews = (data: any, id: string) => { + return request({ + url: `admin/article/${id}`, + method: 'put', + data + }) +} + +// 删除文章 +export const deleteNews = (data: any) => { + return request({ + url: `admin/article/delete`, + method: 'post', + data + }) +} + diff --git a/src/layout/home/menu.vue b/src/layout/home/menu.vue index a43b65c..c29f388 100644 --- a/src/layout/home/menu.vue +++ b/src/layout/home/menu.vue @@ -10,7 +10,7 @@ - 健康文章 + 患教文章 diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 7475031..10c4991 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -46,7 +46,7 @@ import { ref, reactive } from 'vue' import { useRouter } from 'vue-router' import { ElMessage } from 'element-plus' - + import { userLogin } from '@/api/login' const router = useRouter() const loginFormRef = ref(null) const loading = ref(false) @@ -75,13 +75,18 @@ // TODO: 这里添加实际的登录API调用 // const res = await login(loginForm) - localStorage.setItem('TOKEN', '123456') - // 模拟登录成功 - setTimeout(() => { - ElMessage.success('登录成功') + userLogin(loginForm).then(res => { + console.log(res) + localStorage.setItem('TOKEN', res.data.token) router.push('/') loading.value = false - }, 1000) + }) + // 模拟登录成功 + // setTimeout(() => { + // ElMessage.success('登录成功') + // router.push('/') + // loading.value = false + // }, 1000) } catch (error) { ElMessage.error('登录失败,请检查用户名和密码') diff --git a/src/views/news/addNew.vue b/src/views/news/addNew.vue index a032bf4..d234c5f 100644 --- a/src/views/news/addNew.vue +++ b/src/views/news/addNew.vue @@ -7,12 +7,13 @@ -
- +
+
+ +
+
- - @@ -20,7 +21,7 @@
字数: {{ characterCount }}
- 保存 + 保存 预览
@@ -50,11 +51,10 @@ import '@wangeditor/editor/dist/css/style.css' // 引入 css import { Loading } from '@element-plus/icons-vue' import { onBeforeUnmount, onUnmounted , ref, reactive, shallowRef, onMounted, computed, getCurrentInstance, nextTick } from 'vue' import { Editor, Toolbar } from '@wangeditor/editor-for-vue' - -// import { title, inspiration, configList, writeOutline, models, generateArticle, analysisStyle, saveStyle, saveArticle, editArticle, customerTool } from '@/api/AICreation' +import { addNews, editNews } from '@/api/news' import { useRoute, useRouter } from 'vue-router' - +import { DomEditor } from '@wangeditor/editor' const route = useRoute() @@ -73,8 +73,15 @@ const mode = ref('default') const valueText = ref('') // 添加字数统计 -const characterCount = ref(0) -const toolbarConfig = {} +const characterCount = ref(0) +const toolbarConfig = { + excludeKeys: [ + 'group-image', + 'group-video', + ] +} + + const editorConfig = { placeholder: '请输入内容...', MENU_CONF: {}, // Initialize MENU_CONF as an empty object @@ -142,13 +149,29 @@ editorConfig.MENU_CONF['uploadVideo'] = { } -const handleSaveArticle = (type) => { - console.log(type) +const handleSaveArticle = () => { - router.back() + if(route.query.id){ + editNews({ + title: newTitle.value, + content: valueHtml.value + }, route.query.id).then(res => { + ElNotification.success('编辑成功') + router.back() + }) + } else { + addNews({ + title: newTitle.value, + content: valueHtml.value + }).then(res => { + ElNotification.success('添加成功') + router.back() + }) + } + + } - // 组件销毁时,也及时销毁编辑器 onBeforeUnmount(() => { const editor = editorRef.value @@ -156,8 +179,10 @@ onBeforeUnmount(() => { editor.destroy() }) + const handleCreated = (editor) => { editorRef.value = editor // 记录 editor 实例,重要! + if (route.query.id) { editor.setHtml(sessionStorage.getItem('works')) // valueHtml.value = sessionStorage.getItem('works') @@ -169,6 +194,11 @@ const handleCreated = (editor) => { // 计算字数 characterCount.value = valueText.value.length }) + +// const toolbar = DomEditor.getToolbar(editor) + +// const curToolbarConfig = toolbar.getConfig() +// console.log(curToolbarConfig.toolbarKeys) // 当前菜单排序和分组 } @@ -179,7 +209,9 @@ const handleCreated = (editor) => { const newTitle = ref('') - +const handlePreviewArticle = () => { + dialogPreview.value = true +} @@ -228,7 +260,10 @@ app.appContext.app.directive('auto-resize', vAutoResize) :deep(.el-radio__label) { white-space: normal; } - + .editor-box-content{ + padding: 0 16px; + height: calc(100% - 130px); + } .title-input { width: 100%; height: 50px; @@ -252,7 +287,6 @@ app.appContext.app.directive('auto-resize', vAutoResize) .editor { - height: calc(100% - 300px); } .editor-btn-box { diff --git a/src/views/news/index.vue b/src/views/news/index.vue index c6e47f4..0db6986 100644 --- a/src/views/news/index.vue +++ b/src/views/news/index.vue @@ -11,6 +11,16 @@ + + +