Commit 3e843e4d authored by 沈翠玲's avatar 沈翠玲

页面样式优化

parent 806fa99e
...@@ -15,6 +15,9 @@ ...@@ -15,6 +15,9 @@
<!-- 表格主体 --> <!-- 表格主体 -->
<div> <div>
<slot name="table_top"></slot> <slot name="table_top"></slot>
<!-- <div class="flex rounded w-full h-11 items-center pl-2 btn-grp">
</div> -->
<vxe-grid ref="xGrid" v-bind="gridOptions" :data="processTableData" :loading="loading"> <vxe-grid ref="xGrid" v-bind="gridOptions" :data="processTableData" :loading="loading">
<template #toolbar_buttons> <template #toolbar_buttons>
<slot name="left_buttons"></slot> <slot name="left_buttons"></slot>
...@@ -215,4 +218,8 @@ ...@@ -215,4 +218,8 @@
handleCurrentChange, handleCurrentChange,
}); });
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.btn-grp {
box-shadow: 0 0 5px 0 rgba(0, 0, 0, .25);
}
</style>
...@@ -7,7 +7,7 @@ export const HOME_URL = '/home/index'; ...@@ -7,7 +7,7 @@ export const HOME_URL = '/home/index';
export const LOGIN_URL = '/login'; export const LOGIN_URL = '/login';
// 默认主题颜色 // 默认主题颜色
export const DEFAULT_PRIMARY = '#009688'; export const DEFAULT_PRIMARY = '#1989fa';
// 路由白名单地址(本地存在的路由 staticRouter.ts 中) // 路由白名单地址(本地存在的路由 staticRouter.ts 中)
export const ROUTER_WHITE_LIST = ['/500', '/403', '/404']; export const ROUTER_WHITE_LIST = ['/500', '/403', '/404'];
......
...@@ -77,7 +77,8 @@ ...@@ -77,7 +77,8 @@
.logo-text { .logo-text {
font-size: 24px; font-size: 24px;
font-weight: bold; font-weight: bold;
color: var(--el-aside-logo-text-color); letter-spacing: 5px;
color: #ffffff;
white-space: nowrap; white-space: nowrap;
} }
} }
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
object-fit: contain; object-fit: contain;
} }
.logo-text { .logo-text {
margin-left: 6px; font-size: 24px;
font-size: 21.5px;
font-weight: bold; font-weight: bold;
color: var(--el-aside-logo-text-color); letter-spacing: 5px;
color: #ffffff;
white-space: nowrap; white-space: nowrap;
} }
} }
......
<template> <template>
<el-dropdown trigger="click"> <el-dropdown trigger="click">
<div class="avatar"> <div class="avatar">
<img src="@/assets/images/avatar.gif" alt="avatar" /> <img src="@/assets/images/logo.jpg" alt="avatar" />
</div> </div>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
...@@ -64,9 +64,20 @@ ...@@ -64,9 +64,20 @@
.avatar { .avatar {
width: 40px; width: 40px;
height: 40px; height: 40px;
overflow: hidden;
cursor: pointer; cursor: pointer;
border-radius: 50%; position: relative;
&::before {
width: 0;
height: 0;
position: absolute;
content: '';
display: block;
right: -10px;
bottom: 10px;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid #5a5e66;
}
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
box-sizing: border-box; box-sizing: border-box;
padding: 10px 12px; padding: 10px 12px;
overflow-x: hidden; overflow-x: hidden;
background-color: var(--el-bg-color-page); background-color: #f5f7fa;
} }
...@@ -2,34 +2,41 @@ ...@@ -2,34 +2,41 @@
<Maximize v-show="maximize" /> <Maximize v-show="maximize" />
<Tabs v-show="tabs" /> <Tabs v-show="tabs" />
<el-main> <el-main>
<router-view v-slot="{ Component, route }"> <el-watermark id="watermark" :font="font" :content="watermark ? username : ''">
<transition appear name="fade-transform" mode="out-in"> <router-view v-slot="{ Component, route }">
<keep-alive :include="keepAliveName"> <transition appear name="fade-transform" mode="out-in">
<component <keep-alive :include="keepAliveName">
:is="createComponentWrapper(Component, route)" <component
v-if="isRouterShow" :is="createComponentWrapper(Component, route)"
:key="route.fullPath" v-if="isRouterShow"
/> :key="route.fullPath"
</keep-alive> />
</transition> </keep-alive>
</router-view> </transition>
</router-view>
</el-watermark>
</el-main> </el-main>
</template> </template>
<script setup> <script setup>
import { ref, onBeforeUnmount, provide, watch, h } from 'vue'; import { ref, onBeforeUnmount, provide, watch, h, computed, reactive } from 'vue';
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { useDebounceFn } from '@vueuse/core'; import { useDebounceFn } from '@vueuse/core';
import { useGlobalStore } from '@/stores/modules/global'; import { useGlobalStore } from '@/stores/modules/global';
import { useKeepAliveStore } from '@/stores/modules/keepAlive'; import { useKeepAliveStore } from '@/stores/modules/keepAlive';
import { useUserStore } from '@/stores/modules/user';
import Maximize from './components/Maximize.vue'; import Maximize from './components/Maximize.vue';
import Tabs from '@/layouts/components/Tabs/index.vue'; import Tabs from '@/layouts/components/Tabs/index.vue';
const globalStore = useGlobalStore(); const globalStore = useGlobalStore();
const { maximize, isCollapse, layout, tabs } = storeToRefs(globalStore); const { maximize, isCollapse, layout, tabs } = storeToRefs(globalStore);
const userStore = useUserStore();
const keepAliveStore = useKeepAliveStore(); const keepAliveStore = useKeepAliveStore();
const { keepAliveName } = storeToRefs(keepAliveStore); const { keepAliveName } = storeToRefs(keepAliveStore);
const isDark = computed(() => globalStore.isDark);
const watermark = computed(() => globalStore.watermark);
const username = computed(() => userStore.userInfo?.username);
// 注入刷新页面方法 // 注入刷新页面方法
const isRouterShow = ref(true); const isRouterShow = ref(true);
...@@ -48,7 +55,14 @@ ...@@ -48,7 +55,14 @@
} }
return h(wrapper); return h(wrapper);
} }
const font = reactive({ color: 'rgba(153, 153, 153, 0.1)', fontSize: 24 });
watch(
isDark,
() => (font.color = isDark.value ? 'rgba(153, 153, 153, 0.1)' : 'rgba(153, 153, 153, 0.1)'),
{
immediate: true,
}
);
// 监听当前页面是否最大化,动态添加 class // 监听当前页面是否最大化,动态添加 class
watch( watch(
() => maximize.value, () => maximize.value,
......
...@@ -42,6 +42,12 @@ ...@@ -42,6 +42,12 @@
color: var(--el-menu-hover-text-color) !important; color: var(--el-menu-hover-text-color) !important;
background-color: transparent !important; background-color: transparent !important;
} }
.el-sub-menu .el-menu {
background-color: #1f2d3d!important;
}
.el-sub-menu .el-sub-menu__title:hover {
background-color: #263445!important;
}
.el-menu--collapse { .el-menu--collapse {
.is-active { .is-active {
.el-sub-menu__title { .el-sub-menu__title {
...@@ -57,14 +63,14 @@ ...@@ -57,14 +63,14 @@
&.is-active { &.is-active {
color: var(--el-menu-active-color) !important; color: var(--el-menu-active-color) !important;
background-color: var(--el-menu-active-bg-color) !important; background-color: var(--el-menu-active-bg-color) !important;
&::before { // &::before {
position: absolute; // position: absolute;
top: 0; // top: 0;
bottom: 0; // bottom: 0;
width: 4px; // width: 4px;
content: ''; // content: '';
background-color: var(--el-color-primary); // background-color: var(--el-color-primary);
} // }
} }
} }
.vertical, .vertical,
......
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
box-sizing: border-box; box-sizing: border-box;
height: 40px; height: 40px;
padding: 0 10px; padding: 0 10px;
border-bottom: 1px solid #d8dce5;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
margin: 0; margin: 0;
.el-tabs__nav-wrap { .el-tabs__nav-wrap {
position: absolute; position: absolute;
...@@ -37,11 +39,17 @@ ...@@ -37,11 +39,17 @@
display: flex; display: flex;
border: none; border: none;
.el-tabs__item { .el-tabs__item {
height: 26px;
line-height: 26px;
display: flex; display: flex;
font-size: 12px !important;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
color: #afafaf; color: #495060;
border: none; border: 1px solid #d8dce5;
margin-left: 5px;
margin-top: 4px;
padding: 0 8px !important;
.tabs-icon { .tabs-icon {
margin: 1.5px 4px 0 0; margin: 1.5px 4px 0 0;
font-size: 15px; font-size: 15px;
...@@ -50,14 +58,18 @@ ...@@ -50,14 +58,18 @@
margin-top: 1px; margin-top: 1px;
} }
&.is-active { &.is-active {
color: var(--el-color-primary); background-color: #42b983;
color: #fff;
border-color: #42b983;
&::before { &::before {
position: absolute; content: "";
bottom: 0; background: #fff;
width: 100%; display: inline-block;
height: 0; width: 8px;
content: ''; height: 8px;
border-bottom: 2px solid var(--el-color-primary) !important; border-radius: 50%;
position: relative;
margin-right: 2px;
} }
} }
} }
......
...@@ -10,9 +10,6 @@ ...@@ -10,9 +10,6 @@
:closable="item.close" :closable="item.close"
> >
<template #label> <template #label>
<el-icon v-if="item.icon && tabsIcon" class="tabs-icon">
<component :is="item.icon" />
</el-icon>
{{ item.title }} {{ item.title }}
</template> </template>
</el-tab-pane> </el-tab-pane>
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<el-icon><Notification /></el-icon> <el-icon><Notification /></el-icon>
布局样式 布局样式
</el-divider> </el-divider>
<!--
<div class="layout-box"> <div class="layout-box">
<el-tooltip effect="dark" content="纵向" placement="top" :show-after="200"> <el-tooltip effect="dark" content="纵向" placement="top" :show-after="200">
<div <div
...@@ -48,21 +49,8 @@ ...@@ -48,21 +49,8 @@
</el-icon> </el-icon>
</div> </div>
</el-tooltip> </el-tooltip>
<!-- <el-tooltip effect="dark" content="分栏" placement="top" :show-after="200"> </div> -->
<div <!-- <div class="theme-item">
:class="['layout-item layout-columns', { 'is-active': layout == 'columns' }]"
@click="setLayout('columns')"
>
<div class="layout-dark"></div>
<div class="layout-light"></div>
<div class="layout-content"></div>
<el-icon v-if="layout == 'columns'">
<CircleCheckFilled />
</el-icon>
</div>
</el-tooltip> -->
</div>
<div class="theme-item">
<span> <span>
侧边栏反转色 侧边栏反转色
<el-tooltip effect="dark" content="侧边栏颜色变为深色模式" placement="top"> <el-tooltip effect="dark" content="侧边栏颜色变为深色模式" placement="top">
...@@ -70,7 +58,7 @@ ...@@ -70,7 +58,7 @@
</el-tooltip> </el-tooltip>
</span> </span>
<el-switch v-model="asideInverted" @change="setAsideTheme" /> <el-switch v-model="asideInverted" @change="setAsideTheme" />
</div> </div> -->
<div class="theme-item mb50"> <div class="theme-item mb50">
<span> <span>
头部反转色 头部反转色
......
<template> <template>
<!-- 水印 --> <!-- 水印 -->
<el-watermark id="watermark" :font="font" :content="watermark ? username : ''"> <div class="layoutcom">
<component :is="LayoutComponents[layout]" /> <component :is="LayoutComponents[layout]" />
<ThemeDrawer /> <ThemeDrawer />
</el-watermark> </div>
</template> </template>
<script setup> <script setup>
...@@ -14,9 +14,6 @@ ...@@ -14,9 +14,6 @@
import LayoutClassic from './LayoutClassic/index.vue'; import LayoutClassic from './LayoutClassic/index.vue';
import LayoutTransverse from './LayoutTransverse/index.vue'; import LayoutTransverse from './LayoutTransverse/index.vue';
import LayoutColumns from './LayoutColumns/index.vue'; import LayoutColumns from './LayoutColumns/index.vue';
import { useUserStore } from '@/stores/modules/user';
const userStore = useUserStore();
const username = computed(() => userStore.userInfo?.username);
const LayoutComponents = { const LayoutComponents = {
vertical: LayoutVertical, vertical: LayoutVertical,
classic: LayoutClassic, classic: LayoutClassic,
......
...@@ -70,7 +70,6 @@ export function setupVxeTabele(app) { ...@@ -70,7 +70,6 @@ export function setupVxeTabele(app) {
minHeight: 400, minHeight: 400,
maxHeight: 900, maxHeight: 900,
border: true, border: true,
stripe: true,
round: true, round: true,
size: 'small', size: 'small',
resizableConfig: { resizableConfig: {
......
...@@ -325,4 +325,7 @@ td { ...@@ -325,4 +325,7 @@ td {
} }
.vxe-table--tooltip-wrapper { .vxe-table--tooltip-wrapper {
z-index: 99999999 !important; z-index: 99999999 !important;
}
.vxe-table--header-wrapper {
background: #fff !important;
} }
\ No newline at end of file
...@@ -6,12 +6,15 @@ ...@@ -6,12 +6,15 @@
html, html,
body, body,
#app, #app,
#watermark { .layoutcom {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
#watermark {
height: auto;
}
.vxe-modal--container { .vxe-modal--container {
max-height: 100vh; max-height: 100vh;
} }
......
export const menuTheme = { export const menuTheme = {
light: { light: {
'--el-menu-bg-color': '#ffffff', '--el-menu-bg-color': '#304156',
'--el-menu-hover-bg-color': '#cccccc', '--el-menu-hover-bg-color': '#001528',
'--el-menu-active-bg-color': 'var(--el-color-primary-light-9)', '--el-menu-active-bg-color': '',
'--el-menu-text-color': '#333333', '--el-menu-text-color': 'rgb(191, 203, 217)',
'--el-menu-active-color': 'var(--el-color-primary)', '--el-menu-active-color': 'rgb(64, 158, 255)',
'--el-menu-hover-text-color': '#333333', '--el-menu-hover-text-color': 'rgb(191, 203, 217)',
'--el-menu-horizontal-sub-item-height': '50px', '--el-menu-horizontal-sub-item-height': '50px',
}, },
inverted: { inverted: {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-button <el-button
type="primary" type="primary"
@click="changeStatus" @click="changeStatus"
:disabled="!selectdList || selectdList.length > 1" :disabled="!selectdList || !selectdList.length"
>审批 >审批
</el-button> </el-button>
<!-- <el-button type="primary">下载 </el-button> <!-- <el-button type="primary">下载 </el-button>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-button <el-button
type="primary" type="primary"
@click="changeStatus" @click="changeStatus"
:disabled="!selectdList || selectdList.length > 1" :disabled="!selectdList || !selectdList.length"
>审批 >审批
</el-button> </el-button>
<!-- <el-button type="primary">下载 </el-button> <!-- <el-button type="primary">下载 </el-button>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-button <el-button
type="primary" type="primary"
@click="changeStatus" @click="changeStatus"
:disabled="!selectdList || selectdList.length > 1" :disabled="!selectdList || !selectdList.length"
>审批 >审批
</el-button> </el-button>
<!-- <el-button type="primary">下载 </el-button> <!-- <el-button type="primary">下载 </el-button>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-button <el-button
type="primary" type="primary"
@click="changeStatus" @click="changeStatus"
:disabled="!selectdList || selectdList.length > 1" :disabled="!selectdList || !selectdList.length"
>审批 >审批
</el-button> </el-button>
<!-- <el-button type="primary">下载 </el-button> <!-- <el-button type="primary">下载 </el-button>
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</div> </div>
</template> </template>
<script setup name="systemLog" lang="jsx"> <script setup name="repaymentApprove" lang="jsx">
import { computed } from 'vue'; import { computed } from 'vue';
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
import { getRepayRecordPage, repayRecordFlowStatusByIds } from '@/api/property'; import { getRepayRecordPage, repayRecordFlowStatusByIds } from '@/api/property';
......
...@@ -280,6 +280,9 @@ ...@@ -280,6 +280,9 @@
id: currentInfo.value.id, id: currentInfo.value.id,
}; };
} }
if (currentType.value === '直接还款') {
param['loan'] = currentDetail.value;
}
if (currentType.value === '分期还款') { if (currentType.value === '分期还款') {
param['borrower'] = currentDetail.value.borrower; param['borrower'] = currentDetail.value.borrower;
param['loanPlatform'] = currentDetail.value.loans[0].loanPlatform.name; param['loanPlatform'] = currentDetail.value.loans[0].loanPlatform.name;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment