Files
filecodebox/templates/upload.html
T
lan-air 19806f04c1 Init
2022-12-09 19:06:47 +08:00

121 lines
4.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<title>寄件箱-口令传送箱</title>
<style>
.el-upload-dragger {
}
</style>
</head>
<body>
<div id="app" style="text-align: center;height: 100vh">
<el-row style="width:400px;margin: auto">
<el-col :span="24" style="margin: 1rem 0">
<el-card>
<el-upload
drag
action=""
multiple
:on-success="successUpload"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖、粘贴到此处,或<em>点击上传</em>24h后删除</div>
<div class="el-upload__tip" slot="tip">
<a href="/">
<el-button>去取件</el-button>
</a>
<el-button @click="drawer=true">文件箱</el-button>
</div>
</el-upload>
</el-card>
</el-col>
</el-row>
<el-drawer
title="文件库"
:visible.sync="drawer"
direction="btt"
size="50%">
<el-card>
<el-empty v-if="files.length===0" description="请上传文件"></el-empty>
<el-card style="margin-top: 0.2rem" v-for="file in files" :key="file.code">
<el-row>
<el-col :span="24" style="line-height: 45px">
${ file.name }
</el-col>
<el-col :span="24">
取件码:<h1 style="margin: 0;display: inline">${ file.code }</h1>
</el-col>
</el-row>
</el-card>
</el-card>
</el-drawer>
</div>
</body>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue@2/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="//unpkg.com/axios/dist/axios.min.js"></script>
<script>
new Vue({
el: '#app',
delimiters: ['${', '}'],
data: function () {
return {
files: [],
drawer: false
};
},
mounted: function () {
const that = this
document.addEventListener('paste', function () {
const items = event.clipboardData && event.clipboardData.items;
if (items && items.length) {
for (let i = 0; i < items.length; i++) {
if (items[i].kind === 'string') {
if (items[i].type.match(/^text\/plain/)) {
const FileData = new FormData();
that.$message('剪切板文字正在上传,请稍等');
items[i].getAsString(function (str) {
FileData.append('text', str);
axios.post('', FileData)
.then(function (response) {
that.$message({'message': response.data.msg, 'type': 'success'});
that.files.push(response.data.data)
})
.catch(function (error) {
that.$message({'message': error.data.msg, 'type': 'error'});
});
});
}
} else {
const file = items[i].getAsFile();
that.$message('剪切板文件正在上传,请稍等');
const FileData = new FormData();
FileData.append('file', file || '');
axios.post('', FileData).then(async res => {
that.files.push(res.data.data);
that.$message({'message': res.data.msg, 'type': 'success'});
})
}
}
}
});
},
methods: {
successUpload(response, file, fileList) {
this.files.push(response.data[0])
},
}
})
</script>
</html>