perf: office文件预览

This commit is contained in:
kuaifan 2021-12-30 10:58:51 +08:00
parent 28abad0276
commit 27158e1ee7
4 changed files with 21 additions and 16 deletions

View File

@ -96,9 +96,10 @@ class FileController extends AbstractController
{
$id = Request::input('id');
//
$permission = 0;
if (Base::isNumber($id)) {
User::auth();
$file = File::permissionFind(intval($id));
$file = File::permissionFind(intval($id), 0, $permission);
} elseif ($id) {
$fileLink = FileLink::whereCode($id)->first();
$file = $fileLink?->file;
@ -108,7 +109,10 @@ class FileController extends AbstractController
} else {
return Base::retError('参数错误');
}
return Base::retSuccess('success', $file);
//
$array = $file->toArray();
$array['permission'] = $permission;
return Base::retSuccess('success', $array);
}
/**

View File

@ -164,7 +164,7 @@ export default {
"callbackUrl": 'http://nginx/api/file/content/office?id=' + fileKey + '&token=' + this.userToken,
}
};
if (this.isPreview) {
if (this.readOnly) {
config.editorConfig.mode = "view";
config.editorConfig.callbackUrl = null;
if (!config.editorConfig.user.id) {

View File

@ -280,11 +280,11 @@
<!--查看/修改文件-->
<DrawerOverlay
v-model="editShow"
v-model="fileShow"
class="page-file-drawer"
:mask-closable="false">
<FileContent v-if="editInfo.permission > 0" v-model="editShow" :file="editInfo"/>
<FilePreview v-else-if="editInfo.permission > -1" :file="editInfo"/>
<FilePreview v-if="fileInfo.permission === 0" :file="fileInfo"/>
<FileContent v-else v-model="fileShow" :file="fileInfo"/>
</DrawerOverlay>
</div>
@ -384,8 +384,8 @@ export default {
linkData: {},
linkLoad: 0,
editShow: false,
editInfo: {permission: -1},
fileShow: false,
fileInfo: {permission: -1},
uploadDir: false,
uploadIng: 0,
@ -499,9 +499,9 @@ export default {
this.$store.state.method.setStorage("fileTableMode", val)
},
editShow(val) {
fileShow(val) {
if (val) {
this.$store.dispatch("websocketPath", "file/content/" + this.editInfo.id);
this.$store.dispatch("websocketPath", "file/content/" + this.fileInfo.id);
} else {
this.$store.dispatch("websocketPath", "file");
this.getFileList();
@ -754,8 +754,8 @@ export default {
if (this.$Electron) {
this.openSingle(item);
} else {
this.editInfo = item;
this.editShow = true;
this.fileInfo = item;
this.fileShow = true;
}
}
},

View File

@ -1,19 +1,20 @@
<template>
<div class="electron-file">
<div class="single-file">
<PageTitle :title="fileInfo.name"/>
<Loading v-if="loadIng > 0"/>
<template v-else>
<FilePreview v-if="code" :code="code" :file="fileInfo"/>
<FilePreview v-if="code || fileInfo.permission === 0" :code="code" :file="fileInfo"/>
<FileContent v-else v-model="fileShow" :file="fileInfo"/>
</template>
</div>
</template>
<style lang="scss" scoped>
.electron-file {
.single-file {
display: flex;
align-items: center;
.file-content {
.file-content,
.file-preview {
border-radius: 0;
}
}