修复模板选择bug

This commit is contained in:
2026-03-19 15:48:06 +08:00
parent db585c5a32
commit 9ddcdf71b9
7 changed files with 95 additions and 21 deletions
@@ -39,11 +39,30 @@
<el-icon v-else class="logo-uploader-icon"><Plus /></el-icon>
</el-upload>
</el-form-item>
<el-form-item label="站点图标" prop="ico">
<el-upload
class="logo-uploader"
:show-file-list="false"
:auto-upload="false"
:on-change="handleIconChange"
>
<img
v-if="ico"
:src="API_BASE_URL + ico.replace(/^\//, '/')"
class="logo-image"
/>
<el-icon v-else class="logo-uploader-icon"><Plus /></el-icon>
</el-upload>
<div class="form-tip">请上传ico格式文件</div>
</el-form-item>
<el-form-item label="企业名称" prop="companyname">
<el-input v-model="companyname" placeholder="请输入企业名称" />
</el-form-item>
<el-form-item label="站点SEO描述" prop="description">
<el-input v-model="description" placeholder="请输入站点SEO描述" />
<el-form-item label="企业介绍" prop="companyintroduction">
<el-input v-model="companyintroduction" type="textarea" rows="5" placeholder="请输入企业介绍" />
</el-form-item>
<el-form-item label="站点简介" prop="description">
<el-input v-model="description" placeholder="请输入站点简介" />
</el-form-item>
<el-form-item label="版权信息" prop="copyright">
<el-input v-model="copyright" placeholder="如:© 2026 公司名称" />
@@ -76,17 +95,21 @@ const normalFormRef = ref<FormInstance>();
const sitename = ref("");
const companyname = ref("");
const companyintroduction = ref("");
const logo = ref("");
const logow = ref("");
const description = ref("");
const copyright = ref("");
const icp = ref("");
const ico = ref("");
const formData = {
sitename,
companyname,
companyintroduction,
logo,
logow,
ico,
description,
copyright,
icp,
@@ -102,8 +125,10 @@ const initNormalInfos = async () => {
if (res.code === 200 && res.data) {
const data = res.data;
sitename.value = data.sitename || "";
companyintroduction.value = data.companyintroduction || "";
logo.value = data.logo || "";
logow.value = data.logow || "";
ico.value = data.ico || "";
description.value = data.description || "";
copyright.value = data.copyright || "";
icp.value = data.icp || "";
@@ -154,8 +179,10 @@ const handleSaveNormalInfos = async () => {
const data = {
tid: authStore.user.tid,
sitename: sitename.value,
companyintroduction: companyintroduction.value,
logo: logo.value,
logow: logow.value,
ico: ico.value,
description: description.value,
companyname: companyname.value,
copyright: copyright.value,
@@ -171,21 +198,39 @@ const handleSaveNormalInfos = async () => {
});
};
const handleIconChange = (file: UploadFile) => {
const uploadFormData = new FormData();
uploadFormData.append("file", file.raw);
uploadFormData.append("cate", "site");
uploadFile(uploadFormData).then((uploadRes) => {
if ((uploadRes.code === 200 || uploadRes.code === 201) && uploadRes.data?.url) {
ico.value = uploadRes.data.url.replace(/\\/g, "/");
} else {
ElMessage.error(uploadRes.msg || "上传失败");
}
});
};
const resetnormalForm = () => {
sitename.value = "";
companyname.value = "";
companyintroduction.value = "";
logo.value = "";
logow.value = "";
ico.value = "";
description.value = "";
copyright.value = "";
copyright.value = "";
icp.value = "";
};
defineExpose({
sitename,
companyname,
companyintroduction,
logo,
logow,
ico,
description,
copyright,
icp,
@@ -198,10 +243,17 @@ onMounted(() => {
</script>
<style lang="less" scoped>
.darkbg{
.darkbg {
background-color: #efefef;
}
.form-tip{
margin-left: 20px;
color: #999;
font-size: 12px;
margin-top: 5px;
}
.logo-uploader {
:deep(.el-upload) {
border: 1px dashed #d9d9d9;