From 0598a2de6dbde6326ef22b01dfcd8f6dc7beecb6 Mon Sep 17 00:00:00 2001 From: zicla Date: Tue, 27 Nov 2018 20:57:55 +0800 Subject: [PATCH] Finish the preview things. --- src/assets/css/bootstrap/bootstrap.less | 2 +- src/assets/css/global/color.less | 1 - src/assets/css/global/variables.less | 87 +++++++++++++++++- src/assets/css/inspinia/style.less | 2 +- src/assets/css/inspinia/variables.less | 76 --------------- src/backyard/image/cache/List.vue | 2 +- src/backyard/matter/widget/MatterPanel.vue | 18 +++- src/backyard/user/Detail.vue | 6 +- src/common/model/base/Pager.js | 2 +- src/common/model/image/cache/ImageCache.js | 13 +-- src/common/model/matter/Matter.js | 14 ++- src/common/plugin/previewer/Previewer.js | 8 ++ .../plugin/previewer/PreviewerLayout.vue | 61 +++++++++--- .../plugin/previewer/panels/AudioPanel.vue | 57 ++++++++++++ .../plugin/previewer/panels/TextPanel.vue | 5 +- .../plugin/previewer/panels/VideoPanel.vue | 57 ++++++++++++ src/common/widget/NbSwitcher.vue | 2 +- static/img/file/archive.png | Bin 2191 -> 0 bytes static/img/file/audio.png | Bin 4650 -> 0 bytes static/img/file/audio.svg | 2 +- static/img/file/doc.png | Bin 5784 -> 0 bytes static/img/file/file.png | Bin 3136 -> 0 bytes static/img/file/folder.png | Bin 2653 -> 0 bytes static/img/file/image.png | Bin 3856 -> 0 bytes static/img/file/pdf.png | Bin 4344 -> 0 bytes static/img/file/ppt.png | Bin 4354 -> 0 bytes static/img/file/text.png | Bin 2694 -> 0 bytes static/img/file/video.png | Bin 4219 -> 0 bytes static/img/file/xls.png | Bin 4978 -> 0 bytes 29 files changed, 299 insertions(+), 116 deletions(-) delete mode 100644 src/assets/css/inspinia/variables.less create mode 100644 src/common/plugin/previewer/panels/AudioPanel.vue create mode 100644 src/common/plugin/previewer/panels/VideoPanel.vue delete mode 100644 static/img/file/archive.png delete mode 100644 static/img/file/audio.png delete mode 100644 static/img/file/doc.png delete mode 100644 static/img/file/file.png delete mode 100644 static/img/file/folder.png delete mode 100644 static/img/file/image.png delete mode 100644 static/img/file/pdf.png delete mode 100644 static/img/file/ppt.png delete mode 100644 static/img/file/text.png delete mode 100644 static/img/file/video.png delete mode 100644 static/img/file/xls.png diff --git a/src/assets/css/bootstrap/bootstrap.less b/src/assets/css/bootstrap/bootstrap.less index 9ca3a63..1d1850a 100644 --- a/src/assets/css/bootstrap/bootstrap.less +++ b/src/assets/css/bootstrap/bootstrap.less @@ -4,7 +4,7 @@ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ // Core variables and mixins -@import "../inspinia/variables.less"; +@import "../global/variables.less"; diff --git a/src/assets/css/global/color.less b/src/assets/css/global/color.less index 3a784ab..6fa3b6b 100644 --- a/src/assets/css/global/color.less +++ b/src/assets/css/global/color.less @@ -1,4 +1,3 @@ -@import "../inspinia/variables.less"; @import "./variables.less"; .bg-primary { diff --git a/src/assets/css/global/variables.less b/src/assets/css/global/variables.less index b0fe940..86b7670 100644 --- a/src/assets/css/global/variables.less +++ b/src/assets/css/global/variables.less @@ -1,4 +1,89 @@ -@import "../inspinia/variables.less"; +@import "../bootstrap/variables.less"; +//Bootstrap Theme. +//@brand-primary: darken(#428bca, 6.5%); // #337ab7 +//@brand-success: #5cb85c; +//@brand-info: #5bc0de; +//@brand-warning: #f0ad4e; +//@brand-danger: #d9534f; +//@brand-gray: #c2c2c2; + +//Angulr Theme. +//@brand-primary: #7266ba; +//@brand-info: #23b7e5; +//@brand-success: #27c24c; +//@brand-warning: #fad733; +//@brand-danger: #f05050; +//@brand-light: #edf1f2; +//@brand-dark: #3a3f51; +//@brand-black: #1c2b36; +//@brand-gray: #c2c2c2; +//@brand-laxative: #B3EE3A; + +//Inspina Theme. +//@brand-primary: #1ab394; +//@brand-success: #1c84c6; +//@brand-info: #23c6c8; +//@brand-warning: #f8ac59; +//@brand-danger: #ED5565; +//@brand-gray: #c2c2c2; +//@brand-laxative: #B3EE3A; + + +//zhengxianqian Theme. +//@brand-primary: #23B7E5; +@brand-primary: #006699; +@brand-success: #1ab394; +@brand-info: #5EC1C5; +@brand-warning: #FEC62E; +@brand-danger: #FE8768; +@brand-gray: #c2c2c2; +@brand-laxative: #B3EE3A; + + +@navy: @brand-primary; // Primary color +@dark-gray: @brand-gray; // Default color +@blue: @brand-success; // Success color +@lazur: @brand-info; // Info color +@yellow: @brand-warning; // Warrning color +@red: @brand-danger; // Danger color +@green: @brand-laxative; // Danger color + +@gray-base: #000; +@gray-darker: lighten(@gray-base, 13.5%); // #222 +@gray-dark: lighten(@gray-base, 20%); // #333 +@gray: lighten(@gray-base, 33.5%); // #555 +@gray-light: lighten(@gray-base, 46.7%); // #777 +@gray-lighter: lighten(@gray-base, 93.5%); // #eee + +// Various colors +@text-color: #676a6c; // Body text +@gray: #f3f3f4; // Background wrapper color +@light-gray: #D1DADE; // Default label, badget +@label-badget-color: #5E5E5E; +@light-blue: #f3f6fb; + +// Spiner color and margin +@spin-color: @navy; +@spin-margin: 0 auto; + +// IBOX colors ( default panel colors) +@border-color: #e7eaec; // IBox border +@ibox-title-bg: #ffffff; // IBox Background header +@ibox-content-bg: #ffffff; // IBox Background content + +//Sidebar width +@sidebar-width: 170px; + +// Boxed layout width +@boxed-width: 1200px; + +//Border radius for buttons +@btn-border-radius: 3px; + +//Navigation +@nav-bg: #2F4050; +@nav-text-color: #a7b1c2; + @top-navigation-height: 45px; diff --git a/src/assets/css/inspinia/style.less b/src/assets/css/inspinia/style.less index 1272ab6..9520119 100644 --- a/src/assets/css/inspinia/style.less +++ b/src/assets/css/inspinia/style.less @@ -5,7 +5,7 @@ * */ // Variables, Mixins -@import "variables.less"; +@import "../global/variables.less"; @import "mixins.less"; // INSPINIA Theme Elements @import "typography.less"; diff --git a/src/assets/css/inspinia/variables.less b/src/assets/css/inspinia/variables.less deleted file mode 100644 index 6253091..0000000 --- a/src/assets/css/inspinia/variables.less +++ /dev/null @@ -1,76 +0,0 @@ -@import "../bootstrap/variables.less"; -//Bootstrap Theme. -//@brand-primary: darken(#428bca, 6.5%); // #337ab7 -//@brand-success: #5cb85c; -//@brand-info: #5bc0de; -//@brand-warning: #f0ad4e; -//@brand-danger: #d9534f; -//@brand-gray: #c2c2c2; - -//Angulr Theme. -//@brand-primary: #7266ba; -//@brand-info: #23b7e5; -//@brand-success: #27c24c; -//@brand-warning: #fad733; -//@brand-danger: #f05050; -//@brand-light: #edf1f2; -//@brand-dark: #3a3f51; -//@brand-black: #1c2b36; -//@brand-gray: #c2c2c2; -//@brand-laxative: #B3EE3A; - -//Inspina Theme. -//@brand-primary: #1ab394; -//@brand-success: #1c84c6; -//@brand-info: #23c6c8; -//@brand-warning: #f8ac59; -//@brand-danger: #ED5565; -//@brand-gray: #c2c2c2; -//@brand-laxative: #B3EE3A; - - - - -@navy: @brand-primary; // Primary color -@dark-gray: @brand-gray; // Default color -@blue: @brand-success; // Success color -@lazur: @brand-info; // Info color -@yellow: @brand-warning; // Warrning color -@red: @brand-danger; // Danger color -@green: @brand-laxative; // Danger color - -@gray-base: #000; -@gray-darker: lighten(@gray-base, 13.5%); // #222 -@gray-dark: lighten(@gray-base, 20%); // #333 -@gray: lighten(@gray-base, 33.5%); // #555 -@gray-light: lighten(@gray-base, 46.7%); // #777 -@gray-lighter: lighten(@gray-base, 93.5%); // #eee - -// Various colors -@text-color: #676a6c; // Body text -@gray: #f3f3f4; // Background wrapper color -@light-gray: #D1DADE; // Default label, badget -@label-badget-color: #5E5E5E; -@light-blue: #f3f6fb; - -// Spiner color and margin -@spin-color: @navy; -@spin-margin: 0 auto; - -// IBOX colors ( default panel colors) -@border-color: #e7eaec; // IBox border -@ibox-title-bg: #ffffff; // IBox Background header -@ibox-content-bg: #ffffff; // IBox Background content - -//Sidebar width -@sidebar-width: 170px; - -// Boxed layout width -@boxed-width: 1200px; - -//Border radius for buttons -@btn-border-radius: 3px; - -//Navigation -@nav-bg: #2F4050; -@nav-text-color: #a7b1c2; diff --git a/src/backyard/image/cache/List.vue b/src/backyard/image/cache/List.vue index b2c9def..281e6db 100644 --- a/src/backyard/image/cache/List.vue +++ b/src/backyard/image/cache/List.vue @@ -57,7 +57,7 @@ data() { return { - pager: new Pager(ImageCache), + pager: new Pager(ImageCache, Pager.MAX_PAGE_SIZE), user: this.$store.state.user, selectedImageCaches: [] } diff --git a/src/backyard/matter/widget/MatterPanel.vue b/src/backyard/matter/widget/MatterPanel.vue index 3df3664..10b0bcd 100644 --- a/src/backyard/matter/widget/MatterPanel.vue +++ b/src/backyard/matter/widget/MatterPanel.vue @@ -198,12 +198,28 @@ this.$previewer.previewText(that.matter.name, that.matter.getPreviewUrl(), that.matter.size) + } else if (that.matter.isAudio()) { + + this.$previewer.previewAudio(that.matter.name, that.matter.getPreviewUrl(), that.matter.size) + + } else if (that.matter.isVideo()) { + + this.$previewer.previewVideo(that.matter.name, that.matter.getPreviewUrl(), that.matter.size) + } else { - this.download() + this.preview() } } }, + preview() { + if (this.director.isEditing()) { + console.error('导演正忙着,不予执行') + return + } + + window.open(this.matter.getPreviewUrl()) + }, download() { if (this.director.isEditing()) { console.error('导演正忙着,不予执行') diff --git a/src/backyard/user/Detail.vue b/src/backyard/user/Detail.vue index 8c5db99..b5965b9 100644 --- a/src/backyard/user/Detail.vue +++ b/src/backyard/user/Detail.vue @@ -29,7 +29,7 @@
- 角色:{{currentUser.getRoleName()}} + 角色:{{UserRoleMap[currentUser.role].name}}
@@ -47,7 +47,7 @@
- 性别:{{currentUser.getGenderName()}} + 性别:{{UserGenderMap[currentUser.gender].name}}
@@ -71,7 +71,7 @@
- 状态:{{currentUser.getStatusName()}} + 状态:{{UserStatusMap[currentUser.status].name}}
diff --git a/src/common/model/base/Pager.js b/src/common/model/base/Pager.js index 5876e6e..7b8fd3f 100644 --- a/src/common/model/base/Pager.js +++ b/src/common/model/base/Pager.js @@ -7,7 +7,7 @@ import {FilterType} from "./FilterType"; export default class Pager extends Base { - static MAX_PAGE_SIZE = 500 + static MAX_PAGE_SIZE = 100 constructor(Clazz, pageSize = 10, page = 0) { super() diff --git a/src/common/model/image/cache/ImageCache.js b/src/common/model/image/cache/ImageCache.js index cd5b457..31a8ba0 100644 --- a/src/common/model/image/cache/ImageCache.js +++ b/src/common/model/image/cache/ImageCache.js @@ -14,7 +14,7 @@ export default class ImageCache extends BaseEntity { this.userUuid = null; this.matterUuid = null; - this.uri = null; + this.mode = null; this.md5 = null; this.size = 0; this.path = 0; @@ -49,17 +49,12 @@ export default class ImageCache extends BaseEntity { } getMatterName() { - let quotePosition = this.uri.indexOf("?") - let path = this.uri.substr(0, quotePosition) - return path.substr(path.lastIndexOf("/") + 1) + + return this.path.substr(this.path.lastIndexOf("/") + 1) } getName() { - let quotePosition = this.uri.indexOf("?") - let query = this.uri.substr(quotePosition + 1) - let path = this.uri.substr(0, quotePosition) - let imageName = path.substr(path.lastIndexOf("/") + 1) - return imageName + "?" + query + return this.getMatterName() + "?" + this.mode } getResizeUrl(){ diff --git a/src/common/model/matter/Matter.js b/src/common/model/matter/Matter.js index 1084937..14eeac4 100644 --- a/src/common/model/matter/Matter.js +++ b/src/common/model/matter/Matter.js @@ -106,6 +106,16 @@ export default class Matter extends BaseEntity { return startWith(mimeType, 'application/vnd.ms-excel') || startWith(mimeType, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); } + isAudio() { + let mimeType = getMimeType(this.name) + return startWith(mimeType, 'audio'); + } + + isVideo() { + let mimeType = getMimeType(this.name) + return startWith(mimeType, 'video'); + } + getIcon() { if (this.dir) { @@ -121,9 +131,9 @@ export default class Matter extends BaseEntity { return "/static/img/file/ppt.svg" } else if (this.isXls()) { return "/static/img/file/xls.svg" - } else if (startWith(mimeType, 'audio')) { + } else if (this.isAudio()) { return "/static/img/file/audio.svg" - } else if (startWith(mimeType, 'video')) { + } else if (this.isVideo()) { return "/static/img/file/video.svg" } else if (this.isText()) { return "/static/img/file/text.svg" diff --git a/src/common/plugin/previewer/Previewer.js b/src/common/plugin/previewer/Previewer.js index 5d6b379..f8a30bb 100644 --- a/src/common/plugin/previewer/Previewer.js +++ b/src/common/plugin/previewer/Previewer.js @@ -38,4 +38,12 @@ export default class Previewer { this.$vm.previewOffice(name, url, size); } + previewAudio(name, url, size) { + this.$vm.previewAudio(name, url, size); + } + + previewVideo(name, url, size) { + this.$vm.previewVideo(name, url, size); + } + } diff --git a/src/common/plugin/previewer/PreviewerLayout.vue b/src/common/plugin/previewer/PreviewerLayout.vue index d4cf9b6..3d24ce4 100644 --- a/src/common/plugin/previewer/PreviewerLayout.vue +++ b/src/common/plugin/previewer/PreviewerLayout.vue @@ -6,14 +6,17 @@ import PdfPanel from "./panels/PdfPanel" import TextPanel from "./panels/TextPanel" import OfficePanel from "./panels/OfficePanel" + import AudioPanel from "./panels/AudioPanel" + import VideoPanel from "./panels/VideoPanel" import {humanFileSize} from "../../filter/str"; let CLASS_NAME = " previewer-mode" - //这个组件主要用于提供dom元素。 export default { data() { - return {} + return { + + } }, computed: {}, props: {}, @@ -31,11 +34,20 @@ document.body.className = bodyClassName.substr(0, position) + bodyClassName.substr(position + bodyClassName.length) } }, + preview(name, url, size, vNode) { let that = this; that.bodyAddClass() + //需要给vue一点点时间去挂载这个vNode + setTimeout(function () { + if (vNode.componentInstance && vNode.componentInstance.show) { + vNode.componentInstance.show() + } + }, 100) + + that.$msgbox({ title: name + "(" + humanFileSize(size) + ")", message: vNode, @@ -46,12 +58,16 @@ beforeClose: (action, instance, done) => { that.bodyRemoveClass() + + //如果有定义close函数,那么去调用。主要是音频和视频需要停止 + if (vNode.componentInstance && vNode.componentInstance.close) { + vNode.componentInstance.close() + } + done(); } }).then(action => { - console.log("then method ") }).catch((e) => { - console.log("catch method ") //关闭了对话框 that.bodyRemoveClass() }); @@ -59,10 +75,7 @@ previewPdf(name, url, size) { let that = this - - const h = this.$createElement; - - let vNode = h(PdfPanel, { + let vNode = this.$createElement(PdfPanel, { props: { name: name, url: url @@ -74,10 +87,7 @@ previewText(name, url, size) { let that = this - - const h = this.$createElement; - - let vNode = h(TextPanel, { + let vNode = this.$createElement(TextPanel, { props: { name: name, url: url @@ -89,12 +99,33 @@ previewOffice(name, url, size) { let that = this + let vNode = this.$createElement(OfficePanel, { + props: { + name: name, + url: url + } + }); - const h = this.$createElement; + this.preview(name, url, size, vNode) + }, + previewAudio(name, url, size) { - console.log("这里"); + let that = this - let vNode = h(OfficePanel, { + let vNode = this.$createElement(AudioPanel, { + props: { + name: name, + url: url + } + }); + + this.preview(name, url, size, vNode) + }, + previewVideo(name, url, size) { + + let that = this + + let vNode = this.$createElement(VideoPanel, { props: { name: name, url: url diff --git a/src/common/plugin/previewer/panels/AudioPanel.vue b/src/common/plugin/previewer/panels/AudioPanel.vue new file mode 100644 index 0000000..78acb38 --- /dev/null +++ b/src/common/plugin/previewer/panels/AudioPanel.vue @@ -0,0 +1,57 @@ + + + + + + + diff --git a/src/common/plugin/previewer/panels/TextPanel.vue b/src/common/plugin/previewer/panels/TextPanel.vue index e47239f..9d9abde 100644 --- a/src/common/plugin/previewer/panels/TextPanel.vue +++ b/src/common/plugin/previewer/panels/TextPanel.vue @@ -23,9 +23,10 @@ } }, watch: {}, - methods: {}, - mounted() { + methods: { + }, + mounted() { } } diff --git a/src/common/plugin/previewer/panels/VideoPanel.vue b/src/common/plugin/previewer/panels/VideoPanel.vue new file mode 100644 index 0000000..042c456 --- /dev/null +++ b/src/common/plugin/previewer/panels/VideoPanel.vue @@ -0,0 +1,57 @@ + + + + + + + diff --git a/src/common/widget/NbSwitcher.vue b/src/common/widget/NbSwitcher.vue index 09e7640..a849768 100644 --- a/src/common/widget/NbSwitcher.vue +++ b/src/common/widget/NbSwitcher.vue @@ -79,7 +79,7 @@ \ No newline at end of file + \ No newline at end of file diff --git a/static/img/file/doc.png b/static/img/file/doc.png deleted file mode 100644 index b16b6e35c7bf5e66c82b9a3f01c8a29ace12fe18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5784 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 diff --git a/static/img/file/folder.png b/static/img/file/folder.png deleted file mode 100644 index 4d63877b0162cc046b2f1c65f600bd85c153f753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2653 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 Vez#lZg@ORah0`|FD%7wE{T~cJ+9d!0 diff --git a/static/img/file/pdf.png b/static/img/file/pdf.png deleted file mode 100644 index afbdd844655a0f386ad1feda613e156af2b880ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4344 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 F{vSqcz^VWM diff --git a/static/img/file/ppt.png b/static/img/file/ppt.png deleted file mode 100644 index e3b312ca590bd9737ea959f81d7111c1e40ff93e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4354 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 eP&{(_=RQm7_vr4 z5Q#%>Mj9bE|0~ln1Cfe&W{LgPB`#LczdT@|ah5yJo#+#NPM>p~y+sKqEBCJqYpEX^ zr$ukV2zD%I^2u6E!NF!eEt;Ffztzxwd^g`K_=-Mu(3)u8_z3^Fy# zy+(WR8`IpGu18i%y^&*iF@b%Gc2|92Fnbc$^&u%|OhY(icZI!UQj=gUEEvbs)4>Kq zmih-XPey!qJ4Klui|kRv?c%A;J&X{!qd?w;2TztUxWMP6C9)&P+b0>Lh7lChpHoeJ zm>klRG2HI(C^^32T~z#eDl)T~_FjX`VHe2Z#@PbRk6#6!<#y}mR@`A*so1l^00&SSHsAgD$E-5`&H)?~O1lODWK9ju-^2EIj z$pWCmltioED^zm*31c}-iBEYR+nGS}eRBd1vbtmewB60vulTLjEXT2J(!>y=H-{`;P07 z(sB3K_UTH#4OxQtcbcdHX5Bbo1^rXaeBR^wEPc8Mw9w#&h zCSdf3(JL2!#pa5&&pjk-*97qMU%_-SlEXBgn>Q)3;D7{{>?HF$O3Nzd5nJ@?T7n(J z3^T>`S>KHpY2x-)!Ov2?d(6}0^|k8b&14Q#E0%4##+3E=mWN8s-ca_5SLEdieWn1=TGt6X59Gi`r4Q3 z@VUW)lO9IPp=EK*!@HvPxs{7BQ&n zihtqGiI`O3#D)TRTz<_n5my5*OSx4lzE-l->-sjA=MX36DKql2mRQ3d?5HTis9~P{ z0q>Ep_C~dO&}*^nY4Qfa*FzOHXcY;7`QI%JZ3!TvO4XE)0%@|lFR4p|wA0-@4;utT z{zY0yLO|-3HXVjY6xPZfJcvXMy6=w6!C0bIf{>S-r|hFw4;E(xT&Y6rlOm|}K9cmVC)22@==gBqzp3v9bQXtiO-o}X=&rKIz&StNp&XjPLeqa3Bv2(6*NsIr> zb#_k{Xfe8@COlZa!|dmQC2^W410;z;g@${occqAj1@NKuC?IAtDQ1+ezi0aW9t^e4 zV1aOKL!*m2>U!~E+2cr*@A18IZfHxiq@V8_m{Q+MW<3=_)zy`MnuDOe$)PtZ!jz!A zP4{6+_s`*~!6Z+da5}Ojg&+ac5;Rh`!zxk@cZR?!hK`cFAOxh4 zo$7N40fihoI4Fbse@F>Gsn+fT{^4GP&d>FA1Id1RjuG{pIj6(Dv>IjU+l70b(Ne97 zN@8z3Y-%;|ym6X$xR=xBjX6HyUYH&xRe0twyrL-fR)I}~1|F3>l$I8KTQ+$}rh%>? z6dP_*cXK-egVa8B50rw^^izk4z(_L9QvSF9AgIx=Gpnp&azMTT8zy(>ESZ2!0zKpVtn?!1cPcC1a}uFjb}Ikq(nX8TpvQnNS zp%JJpRR8znrtBOzOa7n9ooK+ zNOYK(jD0uO_$4vD#-jOS0uesU;|rA60UM-C5MfxX)(uLuuI7OJHpsz3ilEb$*vb5& zj;_arn_$KLLs!*fI;LsSuhnwx7!P@rNBSwV6zlg6L}7YxkChJT>uWWt-#&r!#43XZNR!y$Dmr!T)e`+}m$b6EXjGHnl-T!WV_?>4-|vvEG5+h1zXl zy`_Ta3IVi_aD1R%B;tht!zM}(9=N$wk4OP^olHT9e>ymMiX&iX@n^Lf3Jm51J~@i; P{Ssko?Le$P;7$D>SFo4N diff --git a/static/img/file/video.png b/static/img/file/video.png deleted file mode 100644 index 3606ca284bb106b26d5c4a4eefe30ce09359afde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4219 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 UHo+;p4D?G|Ll;}3elPUD06Q=(jsO4v