no message

This commit is contained in:
kuaifan 2021-07-10 19:50:59 +08:00
parent 81a7a2fd74
commit 69e14fed9c
22 changed files with 304 additions and 42 deletions

View File

@ -6,6 +6,7 @@ APP_URL=http://localhost
APP_PORT=2222
APP_PORT_SSL=2223
APP_PORT_ONLYOFFICE=2224
LOG_CHANNEL=stack
LOG_LEVEL=debug

View File

@ -6,6 +6,7 @@ APP_URL=http://localhost
APP_PORT=2222
APP_PORT_SSL=2223
APP_PORT_ONLYOFFICE=2224
LOG_CHANNEL=stack
LOG_LEVEL=debug

View File

@ -8,8 +8,10 @@ use App\Models\FileContent;
use App\Models\FileUser;
use App\Models\User;
use App\Module\Base;
use App\Module\Ihttp;
use Arr;
use Request;
use Response;
/**
* @apiDefine file
@ -129,6 +131,9 @@ class FileController extends AbstractController
'mind',
'sheet',
'flow',
'word',
'excel',
'ppt',
])) {
return Base::retError('类型错误');
}
@ -254,30 +259,32 @@ class FileController extends AbstractController
}
/**
* 文件内容
* 获取文件内容
*
* @apiParam {Number} id 文件ID
*/
public function content()
{
$user = User::auth();
//
$id = intval(Request::input('id'));
//
$file = File::allowFind($id);
//
$content = FileContent::whereFid($file->id)->orderByDesc('id')->first();
if (empty($content)) {
$content = FileContent::createInstance([
'fid' => $file->id,
'content' => '{}',
'userid' => $user->userid,
]);
$content->save();
switch ($file->type) {
case "word":
return Response::download(resource_path('assets/statics/empty/empty.docx'));
case "excel":
return Response::download(resource_path('assets/statics/empty/empty.xlsx'));
case "ppt":
return Response::download(resource_path('assets/statics/empty/empty.pptx'));
default:
$content = FileContent::whereFid($file->id)->orderByDesc('id')->first();
return Base::retSuccess('success', [
'content' => FileContent::formatContent($file->type, $content ? $content->content : [])
]);
}
//
$content->content = $content->formatContent($file->type, $content->content);
return Base::retSuccess('success', $content);
}
/**
@ -296,6 +303,10 @@ class FileController extends AbstractController
//
$file = File::allowFind($id);
//
if (in_array($file->type, ['word', 'excel', 'ppt'])) {
return Base::retError($file->type . ' 不支持此方式保存');
}
//
$text = '';
if ($file->type == 'document') {
$data = Base::json2array($content);
@ -333,6 +344,44 @@ class FileController extends AbstractController
return Base::retSuccess('保存成功', $content);
}
/**
* 保存文件内容office
*
* @apiParam {Number} id 文件ID
*/
public function content__office()
{
$user = User::auth();
//
$id = intval(Request::input('id'));
$status = intval(Request::input('status'));
$key = Request::input('key');
$url = Request::input('url');
//
$file = File::allowFind($id);
//
if ($status === 2) {
$parse = parse_url($url);
$url = 'http://10.22.22.6' . $parse['query'] . '?' . $parse['query'];
$path = public_path('uploads/office/' . $file->id . '/' . $key);
Base::makeDir(dirname($path));
$res = Ihttp::download($url, $path);
if (Base::isSuccess($res)) {
FileContent::createInstance([
'fid' => $file->id,
'content' => [
'from' => $url,
'url' => 'uploads/office/' . $file->id . '/' . $key
],
'text' => '',
'size' => filesize($path),
'userid' => $user->userid,
])->save();
}
}
return ['error' => 0];
}
/**
* 获取共享信息
*

View File

@ -35,5 +35,8 @@ class VerifyCsrfToken extends Middleware
// 保存文件内容
'api/file/content/save/',
// 保存文件内容office
'api/file/content/office/',
];
}

View File

@ -79,6 +79,21 @@ services:
ipv4_address: 10.22.22.5
restart: unless-stopped
office:
container_name: "dooteak-office-${DOCKER_ID}"
image: "onlyoffice/documentserver"
ports:
- "${APP_PORT_ONLYOFFICE}:80"
volumes:
- ./docker/office/data:/var/www/onlyoffice/Data
- ./docker/office/logs:/var/log/onlyoffice
environment:
TZ: "Asia/Shanghai"
networks:
extnetwork:
ipv4_address: 10.22.22.6
restart: unless-stopped
networks:
extnetwork:
name: "dooteak-networks-${DOCKER_ID}"

2
docker/office/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
data
logs

View File

@ -0,0 +1,129 @@
<template>
<div class="component-only-office">
<div :id="this.id" class="placeholder"></div>
</div>
</template>
<style lang="scss" scoped>
.component-only-office {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
.placeholder {
flex: 1;
width: 100%;
height: 100%;
}
}
</style>
<script>
import {mapState} from "vuex";
export default {
props: {
id: {
type: String,
default: () => {
return "office_" + Math.round(Math.random() * 10000);
}
},
value: {
type: [Object, Array],
default: function () {
return {}
}
},
},
data() {
return {
serverUrl: 'http://10.22.22.3/',
fileName: null,
fileType: null,
fileUrl: null,
docEditor: null,
}
},
mounted() {
//
},
computed: {
...mapState(['userToken', 'userInfo']),
},
watch: {
value: {
handler(val) {
this.fileUrl = this.serverUrl + 'api/file/content/?id=' + val.id + '&token=' + this.userToken;
this.fileType = this.getType(val.type);
this.fileName = val.name;
},
immediate: true,
deep: true,
},
fileUrl: {
handler(url) {
if (!url) {
return;
}
$A.loadScript("http://127.0.0.1:2224/web-apps/apps/api/documents/api.js", () => {
this.loadFile()
})
},
immediate: true,
}
},
methods: {
getType(type) {
switch (type) {
case 'word':
return 'docx';
case 'excel':
return 'xlsx';
case 'ppt':
return 'pptx'
}
return '';
},
loadFile() {
if (!this.fileUrl) {
return;
}
if (this.docEditor !== null) {
this.docEditor.destroyEditor();
this.docEditor = null;
}
//
const config = {
"document": {
"fileType": this.fileType,
"title": this.fileName + '.' + this.fileType,
"url": this.fileUrl,
},
"editorConfig": {
"mode": "edit",
"lang": "zh-CN",
"user": {
"id": this.userInfo.userid,
"name": this.userInfo.nickname
},
"callbackUrl": this.serverUrl + 'api/file/content/office?id=' + this.value.id + '&token=' + this.userToken,
}
};
this.docEditor = new DocsAPI.DocEditor(this.id, config);
}
}
}
</script>

View File

@ -12,7 +12,7 @@
</div>
<span slot="reference">[{{$L('未保存')}}*]</span>
</EPopover>
{{file.name}}
{{formatName(file.name, file.type)}}
</div>
<div class="header-user">
<ul>
@ -57,8 +57,9 @@
<Flow v-else-if="file.type=='flow'" ref="myFlow" v-model="contentDetail" @saveData="handleClick('saveBefore')"/>
<Minder v-else-if="file.type=='mind'" ref="myMind" v-model="contentDetail" @saveData="handleClick('saveBefore')"/>
<LuckySheet v-else-if="file.type=='sheet'" ref="mySheet" v-model="contentDetail"/>
<div v-if="loadContent > 0" class="content-load"><Loading/></div>
<OnlyOffice v-else-if="['word', 'excel', 'ppt'].includes(file.type)" v-model="contentDetail"/>
</div>
<div v-if="loadContent > 0" class="content-load"><Loading/></div>
</div>
</template>
@ -72,10 +73,11 @@ const MDEditor = () => import('../../../components/MDEditor/index');
const TEditor = () => import('../../../components/TEditor');
const LuckySheet = () => import('../../../components/LuckySheet');
const Flow = () => import('../../../components/flow');
const OnlyOffice = () => import('../../../components/OnlyOffice');
export default {
name: "FileContent",
components: {TEditor, MDEditor, LuckySheet, Flow},
components: {TEditor, MDEditor, LuckySheet, Flow, OnlyOffice},
props: {
file: {
type: Object,
@ -168,6 +170,11 @@ export default {
this.contentDetail = this.fileContent[this.fileId];
return;
}
if (['word', 'excel', 'ppt'].includes(this.file.type)) {
this.contentDetail = $A.cloneJSON(this.file);
this.updateBak();
return;
}
this.loadIng++;
this.loadContent++;
this.$store.dispatch("call", {
@ -255,7 +262,18 @@ export default {
unsaveSave() {
this.handleClick('save');
this.unsaveTip = false;
}
},
formatName(name, type) {
if (type == 'word') {
name += ".docx";
} else if (type == 'excel') {
name += ".xlsx";
} else if (type == 'ppt') {
name += ".pptx";
}
return name;
},
}
}
</script>

View File

@ -17,7 +17,7 @@
@command="addFile">
<i class="taskfont">&#xe6f2;</i>
<EDropdownMenu slot="dropdown" class="page-file-dropdown-menu">
<EDropdownItem v-for="(type, key) in types" :key="key" :command="type.value">
<EDropdownItem v-for="(type, key) in types" :key="key" :divided="!!type.divided" :command="type.value">
<div :class="['file-item ' + type.value]">{{$L('新建' + type.name)}}</div>
</EDropdownItem>
</EDropdownMenu>
@ -98,7 +98,7 @@
@on-enter="onEnter(item)"/>
<div v-if="item._load" class="file-load"><Loading/></div>
</div>
<div v-else class="file-name" :title="item.name">{{item.name}}</div>
<div v-else class="file-name" :title="item.name">{{formatName(item.name, item.type)}}</div>
</li>
</ul>
</div>
@ -159,10 +159,13 @@ export default {
types: [
{value: 'folder', name: "目录"},
{value: 'document', name: "文本"},
{value: 'document', name: "文本", divided: true},
{value: 'mind', name: "脑图"},
{value: 'sheet', name: "表格"},
{value: 'flow', name: "流程图"},
{value: 'word', name: " Word 文档", label: "Word", divided: true},
{value: 'excel', name: " Excel 工作表", label: "Excel"},
{value: 'ppt', name: " PPT 演示文稿", label: "PPT"},
],
tableHeight: 500,
@ -304,7 +307,7 @@ export default {
}, array),
]);
} else {
//
//
array.push(h('QuickEdit', {
props: {
value: row.name,
@ -328,7 +331,7 @@ export default {
}
}
}, [
h('AutoTip', row.name)
h('AutoTip', this.formatName(row.name, row.type))
]));
//
const iconArray = [];
@ -384,7 +387,7 @@ export default {
render: (h, {row}) => {
let type = this.types.find(({value}) => value == row.type);
if (type) {
return h('AutoTip', type.name);
return h('AutoTip', type.label || type.name);
} else {
return h('div', '-')
}
@ -417,6 +420,17 @@ export default {
]
},
formatName(name, type) {
if (type == 'word') {
name += ".docx";
} else if (type == 'excel') {
name += ".xlsx";
} else if (type == 'ppt') {
name += ".pptx";
}
return name;
},
getFileList() {
this.loadIng++;
this.$store.dispatch("getFiles", this.pid).then(() => {

View File

@ -171,20 +171,20 @@
.luckysheet {
border: 0;
}
}
.content-load {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1000;
.common-loading {
margin: 0;
}
.content-load {
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 42px;
left: 0;
right: 0;
bottom: 0;
z-index: 1000;
.common-loading {
margin: 0;
}
}
}

View File

@ -270,6 +270,15 @@
&.flow:before {
background-image: url("../images/file/flow.svg");
}
&.word:before {
background-image: url("../images/file/word.svg");
}
&.excel:before {
background-image: url("../images/file/excel.svg");
}
&.ppt:before {
background-image: url("../images/file/ppt.svg");
}
}
.taskfont {
color: #aaaaaa;
@ -395,6 +404,15 @@
&.flow .file-icon {
background-image: url("../images/file/flow.svg");
}
&.word .file-icon {
background-image: url("../images/file/word.svg");
}
&.excel .file-icon {
background-image: url("../images/file/excel.svg");
}
&.ppt .file-icon {
background-image: url("../images/file/ppt.svg");
}
&:hover {
background-color: #f4f5f7;
.file-menu {
@ -436,5 +454,14 @@
&.flow:before {
background-image: url("../images/file/flow.svg");
}
&.word:before {
background-image: url("../images/file/word.svg");
}
&.excel:before {
background-image: url("../images/file/excel.svg");
}
&.ppt:before {
background-image: url("../images/file/ppt.svg");
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028321516" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10195" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#447AF9" p-id="10196"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="10197"></path><path d="M486.4 780.8h-170.666667c-4.266667 0-8.533333-4.266667-8.533333-8.533333s4.266667-8.533333 8.533333-8.533334h170.666667c4.266667 0 8.533333 4.266667 8.533333 8.533334s-4.266667 8.533333-8.533333 8.533333zM571.733333 695.466667h-256c-4.266667 0-8.533333-4.266667-8.533333-8.533334s4.266667-8.533333 8.533333-8.533333h256c4.266667 0 8.533333 4.266667 8.533334 8.533333s-4.266667 8.533333-8.533334 8.533334zM571.733333 610.133333h-256c-4.266667 0-8.533333-4.266667-8.533333-8.533333s4.266667-8.533333 8.533333-8.533333h256c4.266667 0 8.533333 4.266667 8.533334 8.533333s-4.266667 8.533333-8.533334 8.533333zM571.733333 524.8h-256c-4.266667 0-8.533333-4.266667-8.533333-8.533333s4.266667-8.533333 8.533333-8.533334h256c4.266667 0 8.533333 4.266667 8.533334 8.533334s-4.266667 8.533333-8.533334 8.533333z" fill="#FFFFFF" p-id="10198"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028321516" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10195" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#447AF9" p-id="10196"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="10197"></path><path d="M486.4 780.8h-170.666667c-4.266667 0-8.533333-4.266667-8.533333-8.533333s4.266667-8.533333 8.533333-8.533334h170.666667c4.266667 0 8.533333 4.266667 8.533333 8.533334s-4.266667 8.533333-8.533333 8.533333zM571.733333 695.466667h-256c-4.266667 0-8.533333-4.266667-8.533333-8.533334s4.266667-8.533333 8.533333-8.533333h256c4.266667 0 8.533333 4.266667 8.533334 8.533333s-4.266667 8.533333-8.533334 8.533334zM571.733333 610.133333h-256c-4.266667 0-8.533333-4.266667-8.533333-8.533333s4.266667-8.533333 8.533333-8.533333h256c4.266667 0 8.533333 4.266667 8.533334 8.533333s-4.266667 8.533333-8.533334 8.533333zM571.733333 524.8h-256c-4.266667 0-8.533333-4.266667-8.533333-8.533333s4.266667-8.533333 8.533333-8.533334h256c4.266667 0 8.533333 4.266667 8.533334 8.533334s-4.266667 8.533333-8.533334 8.533333z" fill="#FFFFFF" p-id="10198"></path></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg t="1625905714964" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5142"><path d="M208.50324948 98.14070655a39.70462592 39.70462592 0 0 0-28.9701507 12.41577865C171.94621747 118.83367123 167.11812845 129.18015316 167.11812845 139.52663591v744.94672818a39.70462592 39.70462592 0 0 0 12.41577864 28.97015071 40.85728849 40.85728849 0 0 0 28.97015071 12.41577865h606.99255288a39.70462592 39.70462592 0 0 0 28.97014989-12.41577865 40.85809681 40.85809681 0 0 0 12.41577946-28.97015071V332.661512L622.36254291 98.14070655z" fill="#00B632" p-id="5143"></path><path d="M856.88254003 332.66070368H663.74847227a42.43108545 42.43108545 0 0 1-41.38592936-41.38592935V98.14070655z" fill="#7FDA98" p-id="5144"></path><path d="M470.5979835 562.96619147L347.70913646 395.26361736h84.93973992l80.40136879 120.04282628L597.13826555 395.26361736h82.2319775L553.70711404 562.96619147l131.93558998 178.4253654H599.85450603l-88.63487023-127.20352768L422.81106469 742.21197275H338.69434864z" fill="#FFFFFF" p-id="5145"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028302681" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9763" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#434343" p-id="9764"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="9765"></path><path d="M469.333333 682.666667h102.4c4.266667 0 8.533333-4.266667 8.533334-8.533334v-42.666666c0-4.266667-4.266667-8.533333-8.533334-8.533334H469.333333c-4.266667 0-8.533333 4.266667-8.533333 8.533334v8.533333H405.333333l-38.4-38.4v-38.4c12.8-4.266667 21.333333-17.066667 21.333334-29.866667 0-17.066667-12.8-34.133333-34.133334-34.133333s-34.133333 12.8-34.133333 34.133333c0 12.8 8.533333 25.6 21.333333 29.866667v38.4l-38.4 38.4c-4.266667 4.266667-4.266667 12.8 0 17.066667l38.4 38.4v51.2c0 4.266667 4.266667 8.533333 8.533334 8.533333h102.4v8.533333c0 4.266667 4.266667 8.533333 8.533333 8.533334h102.4c4.266667 0 8.533333-4.266667 8.533333-8.533334v-42.666666c0-4.266667-4.266667-8.533333-8.533333-8.533334H469.333333c-4.266667 0-8.533333 4.266667-8.533333 8.533334v8.533333H366.933333v-42.666667l38.4-38.4h55.466667v8.533334c0 21.333333 4.266667 25.6 8.533333 25.6z m12.8 55.466666h81.066667v21.333334h-81.066667v-21.333334z m-123.733333-59.733333l-25.6-25.6 25.6-25.6 25.6 21.333333-25.6 29.866667z m123.733333-38.4h81.066667v21.333333h-81.066667V640z" fill="#FFFFFF" p-id="9766"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028302681" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9763" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#434343" p-id="9764"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="9765"></path><path d="M469.333333 682.666667h102.4c4.266667 0 8.533333-4.266667 8.533334-8.533334v-42.666666c0-4.266667-4.266667-8.533333-8.533334-8.533334H469.333333c-4.266667 0-8.533333 4.266667-8.533333 8.533334v8.533333H405.333333l-38.4-38.4v-38.4c12.8-4.266667 21.333333-17.066667 21.333334-29.866667 0-17.066667-12.8-34.133333-34.133334-34.133333s-34.133333 12.8-34.133333 34.133333c0 12.8 8.533333 25.6 21.333333 29.866667v38.4l-38.4 38.4c-4.266667 4.266667-4.266667 12.8 0 17.066667l38.4 38.4v51.2c0 4.266667 4.266667 8.533333 8.533334 8.533333h102.4v8.533333c0 4.266667 4.266667 8.533333 8.533333 8.533334h102.4c4.266667 0 8.533333-4.266667 8.533333-8.533334v-42.666666c0-4.266667-4.266667-8.533333-8.533333-8.533334H469.333333c-4.266667 0-8.533333 4.266667-8.533333 8.533334v8.533333H366.933333v-42.666667l38.4-38.4h55.466667v8.533334c0 21.333333 4.266667 25.6 8.533333 25.6z m12.8 55.466666h81.066667v21.333334h-81.066667v-21.333334z m-123.733333-59.733333l-25.6-25.6 25.6-25.6 25.6 21.333333-25.6 29.866667z m123.733333-38.4h81.066667v21.333333h-81.066667V640z" fill="#FFFFFF" p-id="9766"></path></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625032843298" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4865" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024"><defs><style type="text/css"></style></defs><path d="M520.533333 230.4l34.133334 72.533333c12.8 29.866667 42.666667 46.933333 76.8 46.933334h174.933333c21.333333 0 38.4 4.266667 55.466667 12.8V294.4c0-34.133333-29.866667-64-64-64h-277.333334z" fill="#F9B552" p-id="4866"></path><path d="M844.8 349.866667h-209.066667c-34.133333 0-64-17.066667-76.8-46.933334L512 213.333333c-12.8-29.866667-42.666667-46.933333-76.8-46.933333h-256c-46.933333 0-85.333333 38.4-85.333333 85.333333v529.066667c0 46.933333 38.4 85.333333 85.333333 85.333333h661.333333c46.933333 0 85.333333-38.4 85.333334-85.333333v-341.333333c4.266667-51.2-34.133333-89.6-81.066667-89.6z" fill="#FFCF5C" p-id="4867"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625032843298" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4865" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M520.533333 230.4l34.133334 72.533333c12.8 29.866667 42.666667 46.933333 76.8 46.933334h174.933333c21.333333 0 38.4 4.266667 55.466667 12.8V294.4c0-34.133333-29.866667-64-64-64h-277.333334z" fill="#F9B552" p-id="4866"></path><path d="M844.8 349.866667h-209.066667c-34.133333 0-64-17.066667-76.8-46.933334L512 213.333333c-12.8-29.866667-42.666667-46.933333-76.8-46.933333h-256c-46.933333 0-85.333333 38.4-85.333333 85.333333v529.066667c0 46.933333 38.4 85.333333 85.333333 85.333333h661.333333c46.933333 0 85.333333-38.4 85.333334-85.333333v-341.333333c4.266667-51.2-34.133333-89.6-81.066667-89.6z" fill="#FFCF5C" p-id="4867"></path></svg>

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 990 B

View File

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028315575" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10051" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#925DF1" p-id="10052"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="10053"></path><path d="M541.866667 610.133333c-17.066667 0-29.866667 12.8-34.133334 29.866667h-29.866666c0-12.8-8.533333-21.333333-12.8-29.866667l17.066666-29.866666c17.066667-4.266667 29.866667-17.066667 29.866667-38.4s-17.066667-38.4-38.4-38.4-38.4 17.066667-38.4 38.4c0 17.066667 8.533333 29.866667 21.333333 34.133333l-12.8 21.333333c-4.266667 0-8.533333-4.266667-12.8-4.266666-12.8 0-21.333333 4.266667-29.866666 12.8l-29.866667-38.4c4.266667-8.533333 8.533333-12.8 8.533333-21.333334 0-21.333333-17.066667-38.4-38.4-38.4s-38.4 17.066667-38.4 38.4 17.066667 38.4 38.4 38.4c4.266667 0 8.533333 0 12.8-4.266666l34.133334 42.666666c0 8.533333-4.266667 12.8-4.266667 21.333334s4.266667 17.066667 8.533333 25.6l-34.133333 29.866666c-4.266667-4.266667-8.533333-4.266667-17.066667-4.266666-21.333333 0-38.4 17.066667-38.4 38.4s17.066667 38.4 38.4 38.4 38.4-17.066667 38.4-38.4c0-8.533333-4.266667-12.8-4.266666-21.333334l34.133333-29.866666c8.533333 4.266667 12.8 4.266667 21.333333 4.266666 4.266667 0 8.533333 0 12.8-4.266666l17.066667 25.6c-8.533333 8.533333-12.8 17.066667-12.8 29.866666 0 21.333333 17.066667 38.4 38.4 38.4s38.4-17.066667 38.4-38.4-17.066667-38.4-38.4-38.4h-4.266667l-21.333333-29.866666c4.266667-4.266667 8.533333-12.8 12.8-17.066667h29.866667c4.266667 17.066667 17.066667 25.6 34.133333 25.6 21.333333 0 38.4-17.066667 38.4-38.4s-12.8-29.866667-34.133333-29.866667z m-68.266667-85.333333c8.533333 0 17.066667 8.533333 17.066667 17.066667s-8.533333 17.066667-17.066667 17.066666-17.066667-8.533333-17.066667-17.066666 8.533333-17.066667 17.066667-17.066667z m-149.333333 17.066667c0-8.533333 8.533333-17.066667 17.066666-17.066667s17.066667 8.533333 17.066667 17.066667-4.266667 17.066667-17.066667 17.066666-17.066667-4.266667-17.066666-17.066666z m179.2 200.533333c0 8.533333-8.533333 17.066667-17.066667 17.066667s-17.066667-8.533333-17.066667-17.066667 8.533333-17.066667 17.066667-17.066667 17.066667 8.533333 17.066667 17.066667z m-162.133334 8.533333c-8.533333 0-17.066667-8.533333-17.066666-17.066666s8.533333-17.066667 17.066666-17.066667 17.066667 8.533333 17.066667 17.066667-4.266667 17.066667-17.066667 17.066666z m64-106.666666c0-12.8 12.8-25.6 25.6-25.6s25.6 12.8 25.6 25.6-12.8 25.6-25.6 25.6-25.6-12.8-25.6-25.6z m136.533334 21.333333c-8.533333 0-17.066667-8.533333-17.066667-17.066667s8.533333-17.066667 17.066667-17.066666 17.066667 8.533333 17.066666 17.066666-4.266667 17.066667-17.066666 17.066667z" fill="#FFFFFF" p-id="10054"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028315575" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10051" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#925DF1" p-id="10052"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="10053"></path><path d="M541.866667 610.133333c-17.066667 0-29.866667 12.8-34.133334 29.866667h-29.866666c0-12.8-8.533333-21.333333-12.8-29.866667l17.066666-29.866666c17.066667-4.266667 29.866667-17.066667 29.866667-38.4s-17.066667-38.4-38.4-38.4-38.4 17.066667-38.4 38.4c0 17.066667 8.533333 29.866667 21.333333 34.133333l-12.8 21.333333c-4.266667 0-8.533333-4.266667-12.8-4.266666-12.8 0-21.333333 4.266667-29.866666 12.8l-29.866667-38.4c4.266667-8.533333 8.533333-12.8 8.533333-21.333334 0-21.333333-17.066667-38.4-38.4-38.4s-38.4 17.066667-38.4 38.4 17.066667 38.4 38.4 38.4c4.266667 0 8.533333 0 12.8-4.266666l34.133334 42.666666c0 8.533333-4.266667 12.8-4.266667 21.333334s4.266667 17.066667 8.533333 25.6l-34.133333 29.866666c-4.266667-4.266667-8.533333-4.266667-17.066667-4.266666-21.333333 0-38.4 17.066667-38.4 38.4s17.066667 38.4 38.4 38.4 38.4-17.066667 38.4-38.4c0-8.533333-4.266667-12.8-4.266666-21.333334l34.133333-29.866666c8.533333 4.266667 12.8 4.266667 21.333333 4.266666 4.266667 0 8.533333 0 12.8-4.266666l17.066667 25.6c-8.533333 8.533333-12.8 17.066667-12.8 29.866666 0 21.333333 17.066667 38.4 38.4 38.4s38.4-17.066667 38.4-38.4-17.066667-38.4-38.4-38.4h-4.266667l-21.333333-29.866666c4.266667-4.266667 8.533333-12.8 12.8-17.066667h29.866667c4.266667 17.066667 17.066667 25.6 34.133333 25.6 21.333333 0 38.4-17.066667 38.4-38.4s-12.8-29.866667-34.133333-29.866667z m-68.266667-85.333333c8.533333 0 17.066667 8.533333 17.066667 17.066667s-8.533333 17.066667-17.066667 17.066666-17.066667-8.533333-17.066667-17.066666 8.533333-17.066667 17.066667-17.066667z m-149.333333 17.066667c0-8.533333 8.533333-17.066667 17.066666-17.066667s17.066667 8.533333 17.066667 17.066667-4.266667 17.066667-17.066667 17.066666-17.066667-4.266667-17.066666-17.066666z m179.2 200.533333c0 8.533333-8.533333 17.066667-17.066667 17.066667s-17.066667-8.533333-17.066667-17.066667 8.533333-17.066667 17.066667-17.066667 17.066667 8.533333 17.066667 17.066667z m-162.133334 8.533333c-8.533333 0-17.066667-8.533333-17.066666-17.066666s8.533333-17.066667 17.066666-17.066667 17.066667 8.533333 17.066667 17.066667-4.266667 17.066667-17.066667 17.066666z m64-106.666666c0-12.8 12.8-25.6 25.6-25.6s25.6 12.8 25.6 25.6-12.8 25.6-25.6 25.6-25.6-12.8-25.6-25.6z m136.533334 21.333333c-8.533333 0-17.066667-8.533333-17.066667-17.066667s8.533333-17.066667 17.066667-17.066666 17.066667 8.533333 17.066666 17.066666-4.266667 17.066667-17.066666 17.066667z" fill="#FFFFFF" p-id="10054"></path></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625904723976" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5142" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M208.50324948 98.14070655a39.70462592 39.70462592 0 0 0-28.9701507 12.41577865C171.94621747 118.83367123 167.11812845 129.18015316 167.11812845 139.52663591v744.94672818a39.70462592 39.70462592 0 0 0 12.41577864 28.97015071 40.85728849 40.85728849 0 0 0 28.97015071 12.41577865h606.99255288a39.70462592 39.70462592 0 0 0 28.97014989-12.41577865 40.85809681 40.85809681 0 0 0 12.41577946-28.97015071V332.661512L622.36254291 98.14070655z" fill="#EB734C" p-id="5143"></path><path d="M856.88254003 332.66070368H663.74847227a42.43108545 42.43108545 0 0 1-41.38592936-41.38592935V98.14070655z" fill="#FCB7A0" p-id="5144"></path><path d="M374.04696685 390.75215998h158.92196856c91.27294918 0 136.90901921 38.65704486 136.90901919 116.5070495 0 78.38753699-46.17360239 117.58049677-137.98004153 117.58049678H432.56844906v149.25851564h-58.52229052V390.75215998z m58.52229052 49.93147741v134.22459147h95.56754742c28.99278365 0 49.93147739-5.36885465 63.35442113-16.10737066 12.88541218-10.73770849 19.86524647-27.91852724 19.86524649-51.54245704s-6.97983429-40.80393942-20.40196971-50.46820064q-20.13360768-16.10656316-62.81688959-16.10737146H432.56925737z" fill="#FFFFFF" p-id="5145"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028309807" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9907" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#009F4E" p-id="9908"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="9909"></path><path d="M550.4 503.466667h-213.333333c-17.066667 0-34.133333 12.8-34.133334 34.133333v213.333333c0 17.066667 12.8 34.133333 34.133334 34.133334h213.333333c17.066667 0 34.133333-12.8 34.133333-34.133334v-213.333333c-4.266667-21.333333-17.066667-34.133333-34.133333-34.133333z m-140.8 170.666666v-64h64v64H409.6z m64 21.333334v64H409.6v-64h64z m-149.333333-85.333334h64v64H324.266667v-64z m170.666666 0h64v64h-64v-64z m-157.866666-85.333333h213.333333c4.266667 0 8.533333 4.266667 8.533333 8.533333v51.2H324.266667v-51.2c0-4.266667 8.533333-8.533333 12.8-8.533333z m-12.8 226.133333v-51.2h64v64H337.066667c-4.266667-4.266667-12.8-8.533333-12.8-12.8z m226.133333 8.533334h-51.2v-64h64v51.2c-4.266667 8.533333-8.533333 12.8-12.8 12.8z" fill="#FFFFFF" p-id="9910"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625028309807" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9907" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M256 85.333333c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V337.066667L601.6 85.333333H256z" fill="#009F4E" p-id="9908"></path><path d="M686.933333 337.066667H853.333333L601.6 85.333333v166.4c0 46.933333 38.4 85.333333 85.333333 85.333334z" fill="#FFFFFF" opacity=".4" p-id="9909"></path><path d="M550.4 503.466667h-213.333333c-17.066667 0-34.133333 12.8-34.133334 34.133333v213.333333c0 17.066667 12.8 34.133333 34.133334 34.133334h213.333333c17.066667 0 34.133333-12.8 34.133333-34.133334v-213.333333c-4.266667-21.333333-17.066667-34.133333-34.133333-34.133333z m-140.8 170.666666v-64h64v64H409.6z m64 21.333334v64H409.6v-64h64z m-149.333333-85.333334h64v64H324.266667v-64z m170.666666 0h64v64h-64v-64z m-157.866666-85.333333h213.333333c4.266667 0 8.533333 4.266667 8.533333 8.533333v51.2H324.266667v-51.2c0-4.266667 8.533333-8.533333 12.8-8.533333z m-12.8 226.133333v-51.2h64v64H337.066667c-4.266667-4.266667-12.8-8.533333-12.8-12.8z m226.133333 8.533334h-51.2v-64h64v51.2c-4.266667 8.533333-8.533333 12.8-12.8 12.8z" fill="#FFFFFF" p-id="9910"></path></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625904736194" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5418" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M208.50324948 98.14070655a39.70462592 39.70462592 0 0 0-28.9701507 12.41577865C171.94621747 118.83367123 167.11812845 129.18015316 167.11812845 139.52663591v744.94672818a39.70462592 39.70462592 0 0 0 12.41577864 28.97015071 40.85728849 40.85728849 0 0 0 28.97015071 12.41577865h606.99255288a39.70462592 39.70462592 0 0 0 28.97014989-12.41577865 40.85809681 40.85809681 0 0 0 12.41577946-28.97015071V332.661512L622.36254291 98.14070655z" fill="#2F97FE" p-id="5419"></path><path d="M856.88254003 332.66070368H663.74847227a42.43108545 42.43108545 0 0 1-41.38592936-41.38592935V98.14070655z" fill="#97C6FF" p-id="5420"></path><path d="M293.81888752 435.20970121h71.63564876l58.5837236 217.26723794L482.05050089 435.20970121h59.71456156l58.01870757 217.26723794 58.58129785-217.26400465h71.63564875l-98.97703599 294.03409547h-60.32484266l-58.57887287-214.95463713-59.14712138 214.95463713h-60.27715101z m0 0" fill="#FFFFFF" p-id="5421"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB