Browse Source

feat: 增加文档跳转连接 删除

master
wangqi 2 months ago
parent
commit
ce17027a42
  1. 2
      index.html
  2. BIN
      public/favicon.ico
  3. 8
      src/api/module/eam/device/document.ts
  4. BIN
      src/assets/image/dashboard/common/icon_logo_pg.png
  5. 4
      src/assets/image/dashboard/common/icon_logo_pg.svg
  6. 5
      src/assets/image/dashboard/common/icon_logo_pg_dark.svg
  7. 20
      src/pages/fileDoc/index.vue
  8. 2
      src/pages/fileDoc/utils.ts
  9. 2
      src/pages/index.html
  10. 29
      src/pages/layout.vue
  11. 19
      src/router/index.ts

2
index.html

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>设备管理平台</title> <title>文档管理平台</title>
<style> <style>
body { body {
margin: 0; margin: 0;

BIN
public/favicon.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

8
src/api/module/eam/device/document.ts

@ -40,6 +40,14 @@ export function deleteFolder(params: { id: number }) {
}) })
} }
export function deleteFolderAndFile(id: number) {
return documentServer({
url: '/folder/delete',
method: 'delete',
params: { id },
})
}
export function createdFile(data: Omit<DocFileVO, 'id'>) { export function createdFile(data: Omit<DocFileVO, 'id'>) {
return documentServer({ return documentServer({
url: '/folder/add-file', url: '/folder/add-file',

BIN
src/assets/image/dashboard/common/icon_logo_pg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

4
src/assets/image/dashboard/common/icon_logo_pg.svg

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path>
</svg>

After

Width:  |  Height:  |  Size: 258 B

5
src/assets/image/dashboard/common/icon_logo_pg_dark.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
fill="#fff"
d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"></path>
</svg>

After

Width:  |  Height:  |  Size: 274 B

20
src/pages/fileDoc/index.vue

@ -100,6 +100,7 @@ import {
updateFile, updateFile,
deleteFolder, deleteFolder,
deleteFile, deleteFile,
deleteFolderAndFile,
getMarkdown, getMarkdown,
updateMarkdown, updateMarkdown,
type ContentType, type ContentType,
@ -153,16 +154,17 @@ async function loadData(id: number = 0) {
async function onDelete(item: any) { async function onDelete(item: any) {
try { try {
let res: any
await message.delConfirm() await message.delConfirm()
switch (item.type) { // switch (item.type) {
case floeType.folder: // case floeType.folder:
res = await deleteFolder(item.id) // res = await deleteFolder(item.id)
break // break
case floeType.file: // case floeType.file:
res = await deleteFile(item.id) // res = await deleteFile(item.id)
break // break
} // }
const res = await deleteFolderAndFile(item.id)
if (isResError(res)) return if (isResError(res)) return
message.success('删除成功') message.success('删除成功')
loadData(currentFolderId.value) loadData(currentFolderId.value)

2
src/pages/fileDoc/utils.ts

@ -10,7 +10,7 @@ export const breadcrumbList = ref([{ name: '全部文件', id: 0 }])
export const fileDropdownMenu = [ export const fileDropdownMenu = [
{ command: 'open', label: '打开', icon: '' }, { command: 'open', label: '打开', icon: '' },
{ command: 'rename', label: '重命名', icon: '' }, { command: 'rename', label: '重命名', icon: '' },
// { command: 'delete', label: '删除', icon: '' }, { command: 'delete', label: '删除', icon: '' },
] ]
export const operationDropdownMenu = [ export const operationDropdownMenu = [
{ command: 'newFolder', label: '新建文件夹', icon: Folder }, { command: 'newFolder', label: '新建文件夹', icon: Folder },

2
src/pages/index.html

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>设备管理平台</title> <title>文档管理平台</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

29
src/pages/layout.vue

@ -2,11 +2,12 @@
<div class="root"> <div class="root">
<div class="menu-box"> <div class="menu-box">
<div class="logo"> <div class="logo">
<img :src="logoIcon" alt="" class="logo-icon" /> <img :src="iconLogo" alt="" class="logo-icon" />
<span class="logo-label">设备管理平台</span> <span class="logo-label">文档管理平台</span>
</div> </div>
<el-scrollbar> <el-scrollbar>
<el-menu :default-active="activeMenu" class="menu" @select="menuClick"> <el-menu :default-active="activeMenu" router class="menu" @select="menuClick">
<template v-for="(menu, idx) in menuData" :key="idx"> <template v-for="(menu, idx) in menuData" :key="idx">
<el-menu-item <el-menu-item
:index="menu.path" :index="menu.path"
@ -73,7 +74,7 @@
v-model="themeSwitch" v-model="themeSwitch"
:active-action-icon="Moon" :active-action-icon="Moon"
:inactive-action-icon="Sunny" :inactive-action-icon="Sunny"
style="--el-switch-on-color: #2C2C2C; --el-switch-off-color: #F2F2F2 " style="--el-switch-on-color: #2c2c2c; --el-switch-off-color: #f2f2f2"
@change="toggle" @change="toggle"
/> />
<!-- <el-dropdown <!-- <el-dropdown
@ -108,7 +109,9 @@ import Icon from '@/components/dashboard/Icon/src/Icon.vue'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs' import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import { cloneDeep, debounce } from 'lodash' import { cloneDeep, debounce } from 'lodash'
import { RouterView, useRouter, useRoute } from 'vue-router' import { RouterView, useRouter, useRoute } from 'vue-router'
import logoIcon from '@/assets/image/dashboard/common/icon_logo_pg.png' import logoDarkIcon from '@/assets/image/dashboard/common/icon_logo_pg_dark.svg'
import logoIcon from '@/assets/image/dashboard/common/icon_logo_pg.svg'
import { usePermissionStore } from '@/stores/permission' import { usePermissionStore } from '@/stores/permission'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { useUserStore } from '@/stores/user' import { useUserStore } from '@/stores/user'
@ -128,11 +131,19 @@ provide(INIT_OPTIONS_KEY, {
devicePixelRatio: 2, devicePixelRatio: 2,
}) })
const Sunny = useIcon({icon: 'line-md:moon-filled-to-sunny-filled-loop-transition', color: '#2C2C2C'}) const Sunny = useIcon({
const Moon = useIcon({icon: 'line-md:sunny-filled-loop-to-moon-filled-transition', color: '#2C2C2C'}) icon: 'line-md:moon-filled-to-sunny-filled-loop-transition',
color: '#2C2C2C',
})
const Moon = useIcon({
icon: 'line-md:sunny-filled-loop-to-moon-filled-transition',
color: '#2C2C2C',
})
const themeSwitch = ref(theme.value === 'dark') const themeSwitch = ref(theme.value === 'dark')
const iconLogo = computed(() => (theme.value === 'dark' ? logoDarkIcon : logoIcon))
const route = useRoute() const route = useRoute()
const breadcrumbItems = computed(() => { const breadcrumbItems = computed(() => {
@ -216,6 +227,10 @@ const menuSwitch = () => {
} }
} }
const menuClick = (index: string) => { const menuClick = (index: string) => {
if (index === '/OnlineDocument') {
window.open('http://192.168.1.3:5181/', '_blank')
return
}
activeIndex.value = index activeIndex.value = index
push(activeIndex.value) push(activeIndex.value)
} }

19
src/router/index.ts

@ -24,7 +24,7 @@ export const defaultRoute = [
canTo: true, canTo: true,
hidden: false, hidden: false,
noTagsView: false, noTagsView: false,
icon: 'ep:user', icon: 'mage:file-2',
title: '文件', title: '文件',
}, },
children: [ children: [
@ -33,12 +33,22 @@ export const defaultRoute = [
component: () => import('@/pages/fileDoc/index.vue'), component: () => import('@/pages/fileDoc/index.vue'),
name: 'FileDocument', name: 'FileDocument',
meta: { meta: {
icon: 'ep:user', icon: 'mage:file-2',
title: '文档管理', title: '文档管理',
}, },
}, },
], ],
}, },
{
path: '/OnlineDocument',
name: '/OnlineDocument',
component: () => import('@/pages/fileDoc/index.vue'),
meta: {
hidden: false,
icon: 'mage:file-records',
title: '在线文档',
},
},
] ]
const router = createRouter({ const router = createRouter({
@ -57,6 +67,11 @@ router.beforeEach(async (to, from, next) => {
// } // }
// return // return
// } // }
if (to.path === '/OnlineDocument') {
next('/file/document')
return
}
if (to.path === '/') { if (to.path === '/') {
next('/file/document') next('/file/document')
return return

Loading…
Cancel
Save