diff --git a/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue b/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue index 558c81c9a..efb5989a7 100644 --- a/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue +++ b/yudao-ui-admin-vue3/src/components/Setting/src/Setting.vue @@ -1,29 +1,25 @@ <script setup lang="ts"> import { ElDrawer, ElDivider, ElMessage } from 'element-plus' import { ref, unref, computed, watch } from 'vue' +import { useCssVar, useClipboard } from '@vueuse/core' import { useI18n } from '@/hooks/web/useI18n' -import { ThemeSwitch } from '@/components/ThemeSwitch' -import { colorIsDark, lighten, hexToRGB } from '@/utils/color' -import { useCssVar } from '@vueuse/core' -import { useAppStore } from '@/store/modules/app' +import { useCache } from '@/hooks/web/useCache' +import { useDesign } from '@/hooks/web/useDesign' + import { trim, setCssVar } from '@/utils' +import { colorIsDark, lighten, hexToRGB } from '@/utils/color' +import { useAppStore } from '@/store/modules/app' +import { ThemeSwitch } from '@/components/ThemeSwitch' import ColorRadioPicker from './components/ColorRadioPicker.vue' import InterfaceDisplay from './components/InterfaceDisplay.vue' import LayoutRadioPicker from './components/LayoutRadioPicker.vue' -import { useCache } from '@/hooks/web/useCache' -import { useClipboard } from '@vueuse/core' -import { useDesign } from '@/hooks/web/useDesign' - -const { getPrefixCls } = useDesign() - -const prefixCls = getPrefixCls('setting') - -const appStore = useAppStore() const { t } = useI18n() +const appStore = useAppStore() +const { getPrefixCls } = useDesign() +const prefixCls = getPrefixCls('setting') const layout = computed(() => appStore.getLayout) - const drawer = ref(false) // 主题色相关 diff --git a/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue b/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue index 8e7d7799b..a8c46a148 100644 --- a/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue +++ b/yudao-ui-admin-vue3/src/components/Setting/src/components/InterfaceDisplay.vue @@ -1,18 +1,19 @@ <script setup lang="ts"> -import { ElSwitch, ElMessage } from 'element-plus' -import { useI18n } from '@/hooks/web/useI18n' -import { useAppStore } from '@/store/modules/app' import { computed, ref, watch } from 'vue' +import { ElSwitch, ElInput, ElMessage } from 'element-plus' import { setCssVar } from '@/utils' +import { useI18n } from '@/hooks/web/useI18n' import { useDesign } from '@/hooks/web/useDesign' - -const { getPrefixCls } = useDesign() - -const prefixCls = getPrefixCls('interface-display') - -const appStore = useAppStore() +import { useWatermark } from '@/hooks/web/useWatermark' +import { useAppStore } from '@/store/modules/app' const { t } = useI18n() +const { getPrefixCls } = useDesign() +const { setWatermark } = useWatermark() +const prefixCls = getPrefixCls('interface-display') +const appStore = useAppStore() + +const water = ref() // 面包屑 const breadcrumb = ref(appStore.getBreadcrumb) @@ -122,6 +123,11 @@ const fixedMenuChange = (show: boolean) => { appStore.setFixedMenu(show) } +// 设置水印 +const setWater = () => { + setWatermark(water.value) +} + const layout = computed(() => appStore.getLayout) watch( @@ -210,5 +216,10 @@ watch( <span class="text-14px">{{ t('setting.fixedMenu') }}</span> <ElSwitch v-model="fixedMenu" @change="fixedMenuChange" /> </div> + + <div class="flex justify-between items-center"> + <span class="text-14px">{{ t('watermark.watermark') }}</span> + <ElInput v-model="water" class="w-20 right-1" @change="setWater()" /> + </div> </div> </template> diff --git a/yudao-ui-admin-vue3/src/views/Home/Index.vue b/yudao-ui-admin-vue3/src/views/Home/Index.vue index b01478ab9..2d8311982 100644 --- a/yudao-ui-admin-vue3/src/views/Home/Index.vue +++ b/yudao-ui-admin-vue3/src/views/Home/Index.vue @@ -123,7 +123,7 @@ <el-col v-for="item in shortcut" :key="`team-${item.name}`" :span="8" class="mb-10px"> <div class="flex items-center"> <Icon :icon="item.icon" class="mr-10px" /> - <el-link type="default" :underline="false" :href="item.url"> + <el-link type="default" :underline="false" @click="setWatermark(item.name)"> {{ item.name }} </el-link> </div> @@ -168,6 +168,7 @@ import { ElRow, ElCol, ElSkeleton, ElCard, ElDivider, ElLink } from 'element-plu import { formatTime } from '@/utils' import { useI18n } from '@/hooks/web/useI18n' import { useCache } from '@/hooks/web/useCache' +import { useWatermark } from '@/hooks/web/useWatermark' import { Echart } from '@/components/Echart' import { CountTo } from '@/components/CountTo' import { Highlight } from '@/components/Highlight' @@ -176,6 +177,7 @@ import { pieOptions, barOptions } from './echarts-data' const { t } = useI18n() const { wsCache } = useCache() +const { setWatermark } = useWatermark() const loading = ref(true) const avatar = wsCache.get('user').user.avatar const username = wsCache.get('user').user.nickname