Browse Source

云盘: 添加上传日志页面

lwx_v27
han2015 3 weeks ago
parent
commit
696fb78fb0
  1. 24
      src/api/doc/type.ts
  2. 64
      src/views/doc/logpanel.vue
  3. 15
      src/views/doc/manage.vue
  4. 2
      src/views/doc/showtext.vue
  5. 2
      src/views/doc/uploadlog.vue

24
src/api/doc/type.ts

@ -103,9 +103,9 @@ export function doFileUpload(params:FormData,_url:string): AxiosPromise<matterIn
/**
*
*/
export function logUploadError(params:{content:string},_url:string): AxiosPromise<matterInfo> {
export function logUploadError(params:{content:string}): AxiosPromise<matterInfo> {
return request({
url: _url,
url: '/hxpan/api/matter/uploadlog',
method: 'post',
data: params,
headers: {
@ -113,3 +113,23 @@ export function logUploadError(params:{content:string},_url:string): AxiosPromis
}
});
}
export interface ErrUploadLog{
ID:number;
CreatedAt :string;
content:string;
}
/**
*
*/
export function getUploadErrList( uid:string): AxiosPromise<ErrUploadLog[]> {
return request({
url: '/hxpan/api/matter/logs',
method: 'post',
headers: {
'Identifier':uid,
'Content-Type': 'multipart/form-data'
},
});
}

64
src/views/doc/logpanel.vue

@ -4,11 +4,73 @@
@ 备注: 文档管理组件
-->
<script lang="ts" setup>
import { getUploadErrList,ErrUploadLog} from "@/api/doc/type"
const tableList=ref<ErrUploadLog[]>([])
const curLogContent=ref<string>("")
const moduleDrawer =ref(false)
const props = withDefaults(defineProps<{
uid:string, //uuid,base64,Identifierbase64
}>(),{})
function loadLogList(){
moduleDrawer.value=false
getUploadErrList(props.uid).then(resp=>{
tableList.value=resp.data
})
}
function showLogDetail(row: any, column: any, event: Event){
curLogContent.value=row.content
moduleDrawer.value=true
}
defineExpose({loadLogList})
</script>
<template>
<div class="app_container">
<el-row><span style="margin: 12px 0px;font-weight: bold;font-size: 20px;"> 上传日志 </span> </el-row>
<el-table :data="tableList"
stripe
row-key="uuid"
@row-click="showLogDetail"
>
<el-table-column property="ID" label="序号">
</el-table-column>
<el-table-column property="CreatedAt" label="创建时间">
<template #default="scope">
<span>{{ scope.row.CreatedAt.slice(0,16) }}</span>
</template>
</el-table-column>
<el-table-column property="content" label="日志">
<template #default="scope">
<span v-if="scope.row.content.length>100">{{ scope.row.content.slice(0,100) }}</span>
<span v-else>{{ scope.row.content }}</span>
</template>
</el-table-column>
</el-table>
</div>
<el-table></el-table>
<el-drawer
v-model="moduleDrawer"
title="上传错误记录:"
direction="rtl"
size="30%"
:style="{padding:'17px',backgroundColor:'#f3f3f3'}">
<div v-html="curLogContent"></div>
</el-drawer>
</template>
<style lang="scss" scoped>
.app_container {
padding: 10px 30px 0px 30px;
height: 100%;
width: 100%;
}
</style>

15
src/views/doc/manage.vue

@ -27,6 +27,7 @@ import spacePermission from './spacePermission.vue';
import SvgIcon from "@/components/SvgIcon/index.vue";
import {doDelSpace,doAccessManage,doCreateAiagent} from "@/api/doc/space"
import Space from "./space.vue";
import Logpanel from "./logpanel.vue";
//TODO: add file icons done!
//TODO: click on table-item 1preview on file .....................
@ -76,7 +77,9 @@ const modRecycling=ref(false)
//
const percentage=ref(0)
const onprogress=ref(false)
const tabName = ref('logs')
const tabName = ref('main')
const logTableRef = ref() //
const Departs = computed(() => {
return `${'p0'+userStore.userInfoCont.userId},${userStore.userInfoCont.company},${userStore.userInfoCont.department},${userStore.userInfoCont.organization}`
@ -312,16 +315,12 @@ function showRecycling(){
//
function showlogs(){
modRecycling.value=true
currentNode.value={} //
if(!PRIVATESPACE.value) { //
PRIVATESPACE.value=true
}
getRecyclingList(uid,{}).then((resp)=>{
paginInfo.value={total:1,page:0}
matterList.value=resp.data
})
logTableRef.value.loadLogList()
}
//
@ -963,7 +962,7 @@ const handleSelectionChange = (val:matterInfo[]) => {
</div>
</template>
</el-tree>
<div class="area_header" @click="tabName='logs'">
<div class="area_header" @click="tabName='logs';showlogs()">
<el-icon :size="20"><Bell /></el-icon><span class="area_name" > </span>
</div>
<div class="area_header" @click="showRecycling">
@ -1109,7 +1108,7 @@ const handleSelectionChange = (val:matterInfo[]) => {
</div>
</el-tab-pane>
<el-tab-pane name="logs">
Comming soon....
<Logpanel ref="logTableRef" :uid="uid" />
</el-tab-pane>
</el-tabs>

2
src/views/doc/showtext.vue

@ -1,7 +1,7 @@
<!--
@ 作者: han2015
@ 时间: 2025-05-12 15:39:13
@ 备注: aibot组件
@ 备注: aibot会话分享页面
-->
<script lang="ts" setup>
import { getShareChat} from "@/api/doc/space"

2
src/views/doc/uploadlog.vue

@ -30,7 +30,7 @@ const onClosePopup=(done: (cancel?: boolean) => void) => {
async function handleUploadErrors(result:string){
await logUploadError({content:result},'/hxpan/api/matter/uploadlog').then(data=>{
await logUploadError({content:result}).then(data=>{
logState.value=true;
ElMessage({
message: '保存成功!',

Loading…
Cancel
Save