perf: office文件预览
This commit is contained in:
parent
28abad0276
commit
27158e1ee7
@ -96,9 +96,10 @@ class FileController extends AbstractController
|
|||||||
{
|
{
|
||||||
$id = Request::input('id');
|
$id = Request::input('id');
|
||||||
//
|
//
|
||||||
|
$permission = 0;
|
||||||
if (Base::isNumber($id)) {
|
if (Base::isNumber($id)) {
|
||||||
User::auth();
|
User::auth();
|
||||||
$file = File::permissionFind(intval($id));
|
$file = File::permissionFind(intval($id), 0, $permission);
|
||||||
} elseif ($id) {
|
} elseif ($id) {
|
||||||
$fileLink = FileLink::whereCode($id)->first();
|
$fileLink = FileLink::whereCode($id)->first();
|
||||||
$file = $fileLink?->file;
|
$file = $fileLink?->file;
|
||||||
@ -108,7 +109,10 @@ class FileController extends AbstractController
|
|||||||
} else {
|
} else {
|
||||||
return Base::retError('参数错误');
|
return Base::retError('参数错误');
|
||||||
}
|
}
|
||||||
return Base::retSuccess('success', $file);
|
//
|
||||||
|
$array = $file->toArray();
|
||||||
|
$array['permission'] = $permission;
|
||||||
|
return Base::retSuccess('success', $array);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -164,7 +164,7 @@ export default {
|
|||||||
"callbackUrl": 'http://nginx/api/file/content/office?id=' + fileKey + '&token=' + this.userToken,
|
"callbackUrl": 'http://nginx/api/file/content/office?id=' + fileKey + '&token=' + this.userToken,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (this.isPreview) {
|
if (this.readOnly) {
|
||||||
config.editorConfig.mode = "view";
|
config.editorConfig.mode = "view";
|
||||||
config.editorConfig.callbackUrl = null;
|
config.editorConfig.callbackUrl = null;
|
||||||
if (!config.editorConfig.user.id) {
|
if (!config.editorConfig.user.id) {
|
||||||
|
@ -280,11 +280,11 @@
|
|||||||
|
|
||||||
<!--查看/修改文件-->
|
<!--查看/修改文件-->
|
||||||
<DrawerOverlay
|
<DrawerOverlay
|
||||||
v-model="editShow"
|
v-model="fileShow"
|
||||||
class="page-file-drawer"
|
class="page-file-drawer"
|
||||||
:mask-closable="false">
|
:mask-closable="false">
|
||||||
<FileContent v-if="editInfo.permission > 0" v-model="editShow" :file="editInfo"/>
|
<FilePreview v-if="fileInfo.permission === 0" :file="fileInfo"/>
|
||||||
<FilePreview v-else-if="editInfo.permission > -1" :file="editInfo"/>
|
<FileContent v-else v-model="fileShow" :file="fileInfo"/>
|
||||||
</DrawerOverlay>
|
</DrawerOverlay>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -384,8 +384,8 @@ export default {
|
|||||||
linkData: {},
|
linkData: {},
|
||||||
linkLoad: 0,
|
linkLoad: 0,
|
||||||
|
|
||||||
editShow: false,
|
fileShow: false,
|
||||||
editInfo: {permission: -1},
|
fileInfo: {permission: -1},
|
||||||
|
|
||||||
uploadDir: false,
|
uploadDir: false,
|
||||||
uploadIng: 0,
|
uploadIng: 0,
|
||||||
@ -499,9 +499,9 @@ export default {
|
|||||||
this.$store.state.method.setStorage("fileTableMode", val)
|
this.$store.state.method.setStorage("fileTableMode", val)
|
||||||
},
|
},
|
||||||
|
|
||||||
editShow(val) {
|
fileShow(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
this.$store.dispatch("websocketPath", "file/content/" + this.editInfo.id);
|
this.$store.dispatch("websocketPath", "file/content/" + this.fileInfo.id);
|
||||||
} else {
|
} else {
|
||||||
this.$store.dispatch("websocketPath", "file");
|
this.$store.dispatch("websocketPath", "file");
|
||||||
this.getFileList();
|
this.getFileList();
|
||||||
@ -754,8 +754,8 @@ export default {
|
|||||||
if (this.$Electron) {
|
if (this.$Electron) {
|
||||||
this.openSingle(item);
|
this.openSingle(item);
|
||||||
} else {
|
} else {
|
||||||
this.editInfo = item;
|
this.fileInfo = item;
|
||||||
this.editShow = true;
|
this.fileShow = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1,19 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="electron-file">
|
<div class="single-file">
|
||||||
<PageTitle :title="fileInfo.name"/>
|
<PageTitle :title="fileInfo.name"/>
|
||||||
<Loading v-if="loadIng > 0"/>
|
<Loading v-if="loadIng > 0"/>
|
||||||
<template v-else>
|
<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"/>
|
<FileContent v-else v-model="fileShow" :file="fileInfo"/>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.electron-file {
|
.single-file {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.file-content {
|
.file-content,
|
||||||
|
.file-preview {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user