|
|
@@ -5,7 +5,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import { usePageSettingStore } from '@/pinia/modules/pageSetting'
|
|
|
import 'vue-cropper/dist/index.css'
|
|
|
import { VueCropper } from 'vue-cropper'
|
|
|
-import defaultLogo from '@/assets/logo.png'
|
|
|
+import { resolvePageLogo } from '@/utils/resolvePageLogo'
|
|
|
|
|
|
defineOptions({
|
|
|
name: 'MaskPageSetting'
|
|
|
@@ -24,9 +24,10 @@ const rules = ref({
|
|
|
const handleGetPageSetting = async() => {
|
|
|
await pageSettingStore.initPageSetting()
|
|
|
form.value = {
|
|
|
- name: pageSettingStore.pageSetting.name || '非结构化数据透明加密平台',
|
|
|
+ name: pageSettingStore.pageSetting.name || '非结构化数据透明加密',
|
|
|
logo: pageSettingStore.pageSetting.logo || '',
|
|
|
}
|
|
|
+ option.value.img = resolvePageLogo(form.value.logo)
|
|
|
}
|
|
|
const changeSetting = async() => {
|
|
|
await formRef.value.validate()
|
|
|
@@ -37,29 +38,23 @@ const changeSetting = async() => {
|
|
|
const res = await setPageSetting(params)
|
|
|
if (res.code === 100000) {
|
|
|
ElMessage.success('修改成功')
|
|
|
+ // 保存成功后直接同步 store,布局/登录页立即生效
|
|
|
+ pageSettingStore.setPageSetting(params)
|
|
|
+ form.value = {
|
|
|
+ ...form.value,
|
|
|
+ ...params
|
|
|
+ }
|
|
|
+ option.value.img = resolvePageLogo(params.logo)
|
|
|
} else {
|
|
|
- ElMessage.error(res.msg)
|
|
|
+ ElMessage.error(res.message || res.msg || '修改失败')
|
|
|
}
|
|
|
- handleGetPageSetting()
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
handleGetPageSetting()
|
|
|
})
|
|
|
-function resolveLogo(path) {
|
|
|
- // 如果为空,返回默认logo
|
|
|
- if (!path) {
|
|
|
- return defaultLogo
|
|
|
- }
|
|
|
- // 如果是 base64,直接返回
|
|
|
- if (path.startsWith('data:image')) {
|
|
|
- return path
|
|
|
- }
|
|
|
- // 如果是相对路径/别名路径,解析成真实地址
|
|
|
- return new URL(path, import.meta.url).href
|
|
|
-}
|
|
|
const dialogImageVisible = ref(false)
|
|
|
const option = ref({
|
|
|
- img: resolveLogo(pageSettingStore.pageSetting.logo), // 裁剪图片的地址
|
|
|
+ img: resolvePageLogo(pageSettingStore.pageSetting.logo), // 裁剪图片的地址
|
|
|
outputSize: 1, // 裁剪生成图片的质量(可选0.1 - 1)
|
|
|
outputType: 'jpeg', // 裁剪生成图片的格式(jpeg || png || webp)
|
|
|
info: true, // 图片大小信息
|
|
|
@@ -219,9 +214,10 @@ const resetSetting = async() => {
|
|
|
await pageSettingStore.resetPageSetting()
|
|
|
|
|
|
form.value = {
|
|
|
- name: pageSettingStore.pageSetting.name || '非结构化数据透明加密平台',
|
|
|
+ name: pageSettingStore.pageSetting.name || '非结构化数据透明加密',
|
|
|
logo: pageSettingStore.pageSetting.logo || '',
|
|
|
}
|
|
|
+ option.value.img = resolvePageLogo(form.value.logo)
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
@@ -255,7 +251,7 @@ const resetSetting = async() => {
|
|
|
>
|
|
|
<div class="image-container">
|
|
|
<el-image
|
|
|
- :src="resolveLogo(form.logo)"
|
|
|
+ :src="resolvePageLogo(form.logo)"
|
|
|
class="image-position"
|
|
|
fit="cover"
|
|
|
/>
|