Compare commits
No commits in common. "a38b804c4b97b3ed735b4fc5e93b5618110378a6" and "77ae2ee705d4b236284cc1ec9c7d56a29e080fa5" have entirely different histories.
a38b804c4b
...
77ae2ee705
13
src/App.vue
13
src/App.vue
@ -17,7 +17,6 @@
|
||||
import { useLockscreenStore } from '@/store/modules/lockscreen';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { PageEnum } from '@/enums/pageEnum';
|
||||
import { useProjectSetting } from '@/hooks/setting/useProjectSetting';
|
||||
import Watermark from '@/utils/wartermark';
|
||||
|
||||
const route = useRoute();
|
||||
@ -27,7 +26,7 @@
|
||||
const lockTime = computed(() => useLockscreen.lockTime);
|
||||
|
||||
const zIndex = ref(3000);
|
||||
const { getIsWaterMark } = useProjectSetting();
|
||||
|
||||
const LoginName = PageEnum.BASE_LOGIN_NAME;
|
||||
|
||||
let timer;
|
||||
@ -49,14 +48,10 @@
|
||||
}
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
if (getIsWaterMark.value) {
|
||||
const waterText = import.meta.env.VITE_GLOB_APP_TITLE;
|
||||
Watermark.set(waterText);
|
||||
} else {
|
||||
Watermark.del();
|
||||
}
|
||||
const waterText = import.meta.env.VITE_GLOB_APP_TITLE;
|
||||
Watermark.set(waterText)
|
||||
});
|
||||
onUnmounted(() => {
|
||||
// document.removeEventListener('mousedown', timekeeping);
|
||||
|
||||
BIN
src/assets/images/account-logo.png
Normal file
BIN
src/assets/images/account-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@ -168,8 +168,7 @@
|
||||
if (!meta?.hidden && reg.test(title) && !children?.length) {
|
||||
ret.push({
|
||||
name: parent?.title ? `${parent.title} > ${title}` : title,
|
||||
// path: parent?.path ? replacePath(parent.path) : replacePath(path),
|
||||
path: path?path:parent?.path,
|
||||
path: parent?.path ? replacePath(parent.path) : replacePath(path),
|
||||
icon,
|
||||
key,
|
||||
});
|
||||
|
||||
@ -41,7 +41,6 @@
|
||||
:title="title"
|
||||
confirmButText="确认上传"
|
||||
:uploadApi="uploadApi"
|
||||
:name="name"
|
||||
:circled="circled"
|
||||
@uploadSuccess="handleSuccess"
|
||||
/>
|
||||
@ -63,7 +62,6 @@
|
||||
uploadApi: {
|
||||
type: Function as PropType<(params) => Promise<any>>,
|
||||
},
|
||||
name: { type: String, default: 'name' },
|
||||
});
|
||||
|
||||
const getWidth = cssUnit(props.width);
|
||||
|
||||
@ -179,7 +179,6 @@
|
||||
uploadApi: {
|
||||
type: Function as PropType<(params) => Promise<any>>,
|
||||
},
|
||||
name: { type: String, default: 'name' },
|
||||
};
|
||||
|
||||
export default defineComponent({
|
||||
@ -252,14 +251,13 @@
|
||||
return ElMessage.error('请先上传图片');
|
||||
}
|
||||
const uploadApi = props.uploadApi;
|
||||
const name = props.name
|
||||
if (uploadApi && isFunction(uploadApi)) {
|
||||
const file = base64ToFile(previewSource.value,filename);
|
||||
try {
|
||||
setSubLoading(true);
|
||||
const formData = new FormData()
|
||||
formData.append('file',file)
|
||||
formData.append('name',name)
|
||||
formData.append('name',filename)
|
||||
const result = await uploadApi(formData);
|
||||
emit('uploadSuccess', result);
|
||||
closeModal();
|
||||
|
||||
@ -18,8 +18,6 @@ export function useProjectSetting() {
|
||||
|
||||
const getCrumbsSetting = computed(() => projectStore.crumbsSetting);
|
||||
|
||||
const getIsWaterMark = computed(() => projectStore.isWaterMark);
|
||||
|
||||
const getPermissionMode = computed(() => projectStore.permissionMode);
|
||||
|
||||
const getShowFooter = computed(() => projectStore.showFooter);
|
||||
@ -48,7 +46,6 @@ export function useProjectSetting() {
|
||||
getPageAnimateType,
|
||||
getMenuWidth,
|
||||
getMenuMinWidth,
|
||||
getIsWaterMark,
|
||||
getIsProjectSetting,
|
||||
};
|
||||
}
|
||||
|
||||
@ -246,12 +246,6 @@
|
||||
<el-switch v-model="settingStore.multiTabsSetting.show" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="drawer-setting-item">
|
||||
<div class="drawer-setting-item-title"> 水印</div>
|
||||
<div class="drawer-setting-item-action">
|
||||
<el-switch v-model="settingStore.isWaterMark" @change="handleWaterChange" />
|
||||
</div>
|
||||
</div>
|
||||
<!--1.15废弃,没啥用,占用操作空间-->
|
||||
<!-- <div class="drawer-setting-item">-->
|
||||
<!-- <div class="drawer-setting-item-title"> 显示页脚 </div>-->
|
||||
@ -300,7 +294,7 @@
|
||||
import { animates as animateOptions } from '@/settings/animateSetting';
|
||||
import { useDesignSetting } from '@/hooks/setting/useDesignSetting';
|
||||
import colorTool from '@/utils/color';
|
||||
import Watermark from '@/utils/wartermark';
|
||||
|
||||
defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
@ -354,15 +348,6 @@
|
||||
settingStore.menuSetting.mixMenu = false;
|
||||
}
|
||||
|
||||
function handleWaterChange(val) {
|
||||
if (val) {
|
||||
const waterText = import.meta.env.VITE_GLOB_APP_TITLE;
|
||||
Watermark.set(waterText);
|
||||
} else {
|
||||
Watermark.del();
|
||||
}
|
||||
}
|
||||
|
||||
//主题色切换
|
||||
function themeColorChange(color) {
|
||||
document.documentElement.style.setProperty('--el-color-primary', color);
|
||||
|
||||
@ -58,7 +58,5 @@ const setting = {
|
||||
pageAnimateType: 'fade',
|
||||
//显示项目配置
|
||||
isProjectSetting: true,
|
||||
//显示水印
|
||||
isWaterMark: true,
|
||||
};
|
||||
export default setting;
|
||||
|
||||
@ -22,7 +22,6 @@ const {
|
||||
isPageAnimate,
|
||||
pageAnimateType,
|
||||
isProjectSetting,
|
||||
isWaterMark,
|
||||
} = projectSetting;
|
||||
|
||||
interface ProjectSettingState {
|
||||
@ -38,7 +37,6 @@ interface ProjectSettingState {
|
||||
isPageAnimate: boolean; //是否开启路由动画
|
||||
pageAnimateType: string; //路由动画类型
|
||||
isProjectSetting: boolean; //显示项目配置
|
||||
isWaterMark: boolean; //显示水印
|
||||
}
|
||||
|
||||
export const useProjectSettingStore = defineStore({
|
||||
@ -56,7 +54,6 @@ export const useProjectSettingStore = defineStore({
|
||||
isPageAnimate,
|
||||
pageAnimateType,
|
||||
isProjectSetting,
|
||||
isWaterMark,
|
||||
}),
|
||||
getters: {
|
||||
getNavMode(): string {
|
||||
@ -95,9 +92,6 @@ export const useProjectSettingStore = defineStore({
|
||||
getIsProjectSetting(): boolean {
|
||||
return this.isProjectSetting;
|
||||
},
|
||||
getIsWaterMark(): boolean {
|
||||
return this.isWaterMark;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
setNavTheme(value: string): void {
|
||||
|
||||
@ -173,7 +173,3 @@ body .n-modal {
|
||||
.el-drawer__header {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.el-tooltip__trigger:focus,
|
||||
.el-tooltip__trigger:focus-visible {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@ -4,8 +4,8 @@ const setWatermark = (str: string) => {
|
||||
if (document.getElementById(id) !== null)
|
||||
document.body.removeChild(<HTMLElement>document.getElementById(id));
|
||||
const can = document.createElement('canvas');
|
||||
can.width = 250;
|
||||
can.height = 180;
|
||||
can.width = 200;
|
||||
can.height = 130;
|
||||
const cans = <CanvasRenderingContext2D>can.getContext('2d');
|
||||
cans.rotate((-20 * Math.PI) / 180);
|
||||
cans.font = '18px Vedana';
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<el-form style="display: flex" ref="formRef" :model="formData" label-width="80px">
|
||||
<div style="width: 880px; flex: none" :style="{ height: fwbHeight + 'px' }">
|
||||
<el-form-item label-width="0px" prop="content">
|
||||
<Editor ref="editorRef" :height="fwbHeight" name="ad" />
|
||||
<Editor ref="editorRef" :height="fwbHeight" name="content" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="flex: 1; margin-left: 10px">
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<el-form style="display: flex" ref="formRef" :model="formData" label-width="80px">
|
||||
<div style="width: 880px; flex: none" :style="{ height: fwbHeight + 'px' }">
|
||||
<el-form-item label-width="0px" prop="content">
|
||||
<Editor ref="editorRef" :height="fwbHeight" name="article" />
|
||||
<Editor ref="editorRef" :height="fwbHeight" name="content" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="flex: 1; margin-left: 10px">
|
||||
|
||||
@ -26,19 +26,19 @@ export const columns = [
|
||||
label: '推荐ID',
|
||||
prop: 'typeId',
|
||||
},
|
||||
// {
|
||||
// label: '推荐图片',
|
||||
// prop: 'image',
|
||||
// render(record) {
|
||||
// return h(ElAvatar, {
|
||||
// size: 48,
|
||||
// src: record.row.image,
|
||||
// shape: 'square',
|
||||
// fit: 'fill',
|
||||
// });
|
||||
// },
|
||||
// width: 120,
|
||||
// },
|
||||
{
|
||||
label: '推荐图片',
|
||||
prop: 'image',
|
||||
render(record) {
|
||||
return h(ElAvatar, {
|
||||
size: 48,
|
||||
src: record.row.image,
|
||||
shape: 'square',
|
||||
fit: 'fill',
|
||||
});
|
||||
},
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
label: '推荐标题',
|
||||
prop: 'typeTitle',
|
||||
|
||||
@ -166,8 +166,4 @@
|
||||
:deep(.proCard.tabsCard .el-card__body) {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
:deep(.el-badge__content.is-fixed) {
|
||||
top: 6px;
|
||||
right: calc(-10px + var(--el-badge-size) / 2);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
prop="content"
|
||||
:rules="{ required: true, message: '请输入通知内容', trigger: 'blur' }"
|
||||
>
|
||||
<Editor ref="editorRef" :height="fwbHeight" class="flex-1" name="notice" />
|
||||
<Editor ref="editorRef" :height="fwbHeight" class="flex-1" name="data" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<el-descriptions-item label="接收人类型:">{{
|
||||
getReviceType(formData.receiveType)
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时:">{{ formData.consumeTime }}ms</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时:">{{ formData.consumeTime }}s</el-descriptions-item>
|
||||
<el-descriptions-item label="业务类型:">{{
|
||||
formData.bizType ? (formData.bizType == 1 ? '订单' : '其他') : ''
|
||||
}}</el-descriptions-item>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
formData.fileType
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="文件大小:">{{ formData.fileSize }}B</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时:">{{ formData.consumeTime }}ms</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时:">{{ formData.consumeTime }}s</el-descriptions-item>
|
||||
<el-descriptions-item label="业务类型:">{{
|
||||
formData.bizType ? (formData.bizType == 1 ? '订单' : '其他') : ''
|
||||
}}</el-descriptions-item>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-descriptions-item label="接收人类型:">{{
|
||||
getReviceType(formData.receiveType)
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时:">{{ formData.consumeTime }}ms</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时:">{{ formData.consumeTime }}s</el-descriptions-item>
|
||||
<el-descriptions-item label="业务类型:">{{
|
||||
formData.bizType ? (formData.bizType == 1 ? '订单' : '其他') : ''
|
||||
}}</el-descriptions-item>
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
<el-descriptions-item label="执行时间">
|
||||
{{ formData.createTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="执行耗时"> {{ formData.consumeTime }}ms </el-descriptions-item>
|
||||
<el-descriptions-item label="执行耗时"> {{ formData.consumeTime }}s </el-descriptions-item>
|
||||
<el-descriptions-item label="执行异常信息" :span="3">
|
||||
{{ formData.exceptionInfo }}
|
||||
</el-descriptions-item>
|
||||
|
||||
@ -15,7 +15,7 @@ export const columns = [
|
||||
prop: 'username',
|
||||
},
|
||||
{
|
||||
label: '请求IP',
|
||||
label: '请求ip',
|
||||
prop: 'ip',
|
||||
},
|
||||
{
|
||||
|
||||
@ -16,10 +16,10 @@
|
||||
<el-descriptions-item label="操作系统">
|
||||
{{ formData.os }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="浏览器">
|
||||
<el-descriptions-item label="操作浏览器">
|
||||
{{ formData.browser }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时"> {{ formData.consumeTime }}ms </el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时"> {{ formData.consumeTime }}s </el-descriptions-item>
|
||||
<el-descriptions-item label="请求地区">
|
||||
{{ formData.location }}
|
||||
</el-descriptions-item>
|
||||
|
||||
@ -19,7 +19,7 @@ export const columns = [
|
||||
prop: 'createUser',
|
||||
},
|
||||
{
|
||||
label: '请求IP',
|
||||
label: '请求ip',
|
||||
prop: 'ip',
|
||||
},
|
||||
{
|
||||
|
||||
@ -13,31 +13,19 @@
|
||||
<el-descriptions-item label="操作用户" label-class-name="des-width">
|
||||
{{ formData.createUser }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="请求IP">
|
||||
<el-descriptions-item label="IP地址">
|
||||
{{ formData.ip }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="操作系统">
|
||||
{{ formData.os }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="浏览器">
|
||||
<el-descriptions-item label="操作浏览器">
|
||||
{{ formData.browser }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="操作类型">
|
||||
{{ formData.typeText }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="操作来源">
|
||||
{{ formData.sourceText }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时"> {{ formData.consumeTime }}s </el-descriptions-item>
|
||||
<el-descriptions-item label="请求方式">
|
||||
{{ formData.requestMethod }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="请求URL">
|
||||
{{ formData.url }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="请求耗时"> {{ formData.consumeTime }}ms </el-descriptions-item>
|
||||
<el-descriptions-item label="请求地区">
|
||||
{{ formData.location }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="请求状态">
|
||||
<el-tag :type="formData.status ? 'danger' : 'success'">{{
|
||||
formData.status ? '异常' : '正常'
|
||||
|
||||
@ -35,7 +35,7 @@ export const columns = [
|
||||
{
|
||||
label: '统一社会信用代码',
|
||||
prop: 'license',
|
||||
width: 200,
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
label: '租户限额',
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
ref="cropperCircled"
|
||||
:src="formData.avatar"
|
||||
:uploadApi="upload"
|
||||
name="user"
|
||||
title="头像上传"
|
||||
@uploadSuccess="uploadSuccess"
|
||||
>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user