This commit is contained in:
2025-05-09 17:59:44 +08:00
parent 25b958046d
commit 976c68199d
3 changed files with 21 additions and 24 deletions

View File

@@ -37,19 +37,19 @@
<div class="form-group">
<label>选择要导入的模板文件</label>
<div id="img-container">
<template x-if="config.logo">
<template x-if="uploadFile">
<div class="img-thumb img-item">
<img class="thumb-icon" :src="config.logo" />
<a href="javascript:;" class="img-remove" x-on:click="config.logo='';tempfile=null">x</a>
<img class="thumb-icon" src="/admin/images/zip.png" />
<a href="javascript:;" class="img-remove" x-on:click="uploadFile='';tempfile=null">x</a>
</div>
</template>
<template x-if="!config.logo">
<template x-if="!uploadFile">
<div class="img-up-add img-item">
<span class="img-add-icon" x-on:click="addIcon()">+</span>
<span class="img-add-icon" x-on:click="addFile()">+</span>
</div>
</template>
<input type="hidden" x-model="config.logo">
<input type="file" name="files" id="img-file-input" x-model="tempfile" x-on:change="handleThemeUpload($event.target.files[0],function(url){ config.logo=url; })">
<input type="hidden" x-model="uploadFile">
<input type="file" name="files" id="img-file-input" x-model="tempfile" x-on:change="handleThemeUpload($event.target.files[0])">
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -14,6 +14,7 @@
isSubmitting: false,
themeName: "",
fileName: "",
uploadFile:"",
loadFiles() {
axios.get('/themes/' + themeName +'/files')
@@ -29,9 +30,20 @@
});
return this;
},
isZipFile(filename) {
if (typeof filename !== 'string') return false;
return /\.zip$/i.test(filename);
},
handleThemeUpload(file) {
if (!this.isZipFile(file.name)) {
window.pushError("请上传zip文件");
return;
}
this.uploadFile = file;
},
save() {
const formData = new FormData();
formData.append('file', file);
formData.append('file', this.uploadFile);
axios.post('/themes/upload', formData, {
headers: {
@@ -42,22 +54,7 @@
location.href = "/admin/theme";
})
},
editFile() {
if (this.isSubmitting) {
return;
}
this.isSubmitting = true;
axios.put('/themes/' + themeName + '/files/' + fileName, { content: this.file.content })
.then(data => {
console.log('data:', data);
location.href = "/admin/theme/detail?themeName=" + themeName + "&fileName=" + fileName + "";
})
.finally(() => {
this.isSubmitting = false;
});
},
addIcon() {
addFile() {
const fileinput = document.getElementById('img-file-input');
if (fileinput) {
fileinput.click();