117 lines
4.5 KiB
HTML
117 lines
4.5 KiB
HTML
<!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="/static/assert/index.css">
|
|
<title>后台管理-{{title}}</title>
|
|
<meta name="description" content="{{description}}"/>
|
|
<meta name="keywords" content="{{keywords}}"/>
|
|
<meta name="generator" content="FileCodeBox"/>
|
|
<meta name="template" content="Lan"/>
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<el-row v-if="login" :gutter="10">
|
|
<el-col :xs="0" :sm="4" :md="4" :lg="4" :xl="4">
|
|
|
|
</el-col>
|
|
<el-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
|
|
<el-card>
|
|
<el-empty v-if="files.length===0" description="暂时还没有文件"></el-empty>
|
|
<el-card v-for="file in files" :key="file.code">
|
|
<el-row>
|
|
<el-col :span="20">
|
|
<div style="cursor: pointer;text-align: left">
|
|
<div>取件码:${ file.code }</div>
|
|
<div>文件名:${ file.name }</div>
|
|
<div>次 数:${ file.count }</div>
|
|
<div>到 期:${ file.exp_time.slice(0,19) }</div>
|
|
<div v-if="file.name==='分享文本'">
|
|
<span>内 容:${ file.text }</span>
|
|
</div>
|
|
<div v-else>
|
|
<span>链 接:</span>
|
|
<a :href="file.text" target="_blank"
|
|
style="color: #1E9FFF;text-underline: none"
|
|
type="primary">点击下载</a>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-button type="danger" @click="deleteFile(file.code)">删除</el-button>
|
|
</el-col>
|
|
</el-row>
|
|
</el-card>
|
|
</el-card>
|
|
</el-col>
|
|
<el-col :xs="0" :sm="4" :md="4" :lg="4" :xl="4"> </el-col>
|
|
</el-row>
|
|
<div v-else style="width: 250px;text-align: center;margin: 40vh auto">
|
|
<el-input v-model="pwd" placeholder="请输入登录密码">
|
|
<el-button slot="append" type="primary" @click="loginAdmin">登录</el-button>
|
|
</el-input>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
<script src="/static/assert/vue.min.js"></script>
|
|
<script src="/static/assert/index.js"></script>
|
|
<script src="/static/assert/axios.min.js"></script>
|
|
<script>
|
|
new Vue({
|
|
el: '#app',
|
|
delimiters: ['${', '}'],
|
|
data: function () {
|
|
return {
|
|
login: false,
|
|
pwd: '',
|
|
files: [],
|
|
config: {
|
|
error_count: 0,
|
|
file_size: 0,
|
|
admin_pwd: 'admin'
|
|
}
|
|
};
|
|
},
|
|
mounted: function () {
|
|
const pwd = localStorage.getItem('pwd');
|
|
if (pwd) {
|
|
login = true;
|
|
this.pwd = pwd;
|
|
this.loginAdmin();
|
|
}
|
|
},
|
|
methods: {
|
|
loginAdmin: function () {
|
|
axios.post('', {}, {'headers': {'pwd': this.pwd}}).then(res => {
|
|
if (res.data.code === 200) {
|
|
this.files = res.data.data;
|
|
this.login = true;
|
|
localStorage.setItem('pwd', this.pwd);
|
|
} else {
|
|
localStorage.clear()
|
|
this.$message({
|
|
message: res.data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
})
|
|
},
|
|
deleteFile: function (code) {
|
|
axios.delete('?code=' + code, {'headers': {'pwd': this.pwd}}).then(res => {
|
|
if (res.data.code === 200) {
|
|
this.files = this.files.filter(item => item.code !== code)
|
|
this.$message({
|
|
message: res.data.msg,
|
|
type: 'success'
|
|
});
|
|
}
|
|
})
|
|
},
|
|
}
|
|
})
|
|
</script>
|
|
</html> |