优化前端ui主题皮肤

This commit is contained in:
HZY
2024-10-16 16:21:05 +08:00
parent 89b755bbdc
commit 7085f15170
24 changed files with 359 additions and 293 deletions

View File

@@ -1,11 +1,11 @@
import {defineComponent, computed} from "vue";
import {ConfigProvider, Spin} from "ant-design-vue";
import { defineComponent, computed } from "vue";
import { ConfigProvider, Spin } from "ant-design-vue";
import AppStore from "@/core/store/AppStore.js";
import zhCN from "ant-design-vue/es/locale/zh_CN";
import enUS from "ant-design-vue/es/locale/en_US";
import dayjs from "dayjs";
import "dayjs/locale/zh-cn";
import ThemeStore, {TokenTheme} from "@/core/store/layouts/ThemeStore.js";
import ThemeStore from "@/core/store/layouts/ThemeStore.js";
import HeaderStore from "@/core/store/layouts/HeaderStore.js";
import CoreStore from "@/core/store/layouts/CoreStore";
@@ -20,12 +20,12 @@ export default defineComponent({
let colorItemBgSelectedObject = computed(() => {
return JSON.stringify(themeStore.state.menuTheme) == "{}" ? {} : {
colorItemBgSelected: themeStore.state.tokenTheme!.colorPrimary ?? new TokenTheme().colorPrimary
colorItemBgSelected: themeStore.state.tokenTheme!.colorPrimary
}
})
let layoutColorBgHeader = computed(() => {
return headerStore.state.useColorPrimary ? {colorBgHeader: themeStore.state.tokenTheme?.colorPrimary} : {colorBgHeader: 'transparent'}
return headerStore.state.useColorPrimary ? { colorBgHeader: themeStore.state.tokenTheme?.colorPrimary } : { colorBgHeader: 'transparent' }
})
// 计算国际化
@@ -42,9 +42,7 @@ export default defineComponent({
<ConfigProvider
locale={locale.value}
theme={{
token: {
...themeStore.state.tokenTheme,
},
token: themeStore.state.tokenTheme,
components: {
Menu: {
...themeStore.state.menuTheme,
@@ -58,7 +56,7 @@ export default defineComponent({
}}>
{/* <div class="bg" style={{ backgroundImage: 'url(' + themeStore.bgImageList[themeStore.state.backgroundImageIndex] + ')' }}> */}
<Spin spinning={loading.value}>
<div style={{"min-height": "200px"}}>
<div style={{ "min-height": "200px" }}>
<router-view></router-view>
</div>
</Spin>

View File

@@ -74,26 +74,29 @@ function handlePaths() {
<template>
<div v-if="props.show">
<a-card :bordered="false" :bodyStyle="{ padding: 0 }">
<div :class="{ 'pl-16 pr-16 pt-16 pb-16': !classPadding }" :style="{ background: themeStore.state.isDark ? '#141414' : '#fff', color: themeStore.state.isDark ? '#fff' : '' }">
<slot name="nav">
<a-breadcrumb>
<a-breadcrumb-item v-for="item in navs">
<AppIcon :name="item.icon" v-if="item.icon" />
<span>{{ translate(`menu.${item.id}`, item.name) }}</span>
</a-breadcrumb-item>
</a-breadcrumb>
</slot>
<!-- <div class="mt-16">
<div class="pt-16 pl-16 pr-16">
<a-card :bordered="false" :bodyStyle="{ padding: 0 }">
<div :class="{ 'pl-16 pr-16 pt-16 pb-16': !classPadding }">
<slot name="nav">
<a-breadcrumb>
<a-breadcrumb-item v-for="item in navs">
<AppIcon :name="item.icon" v-if="item.icon" />
<span>{{ translate(`menu.${item.id}`, item.name) }}</span>
</a-breadcrumb-item>
</a-breadcrumb>
</slot>
<!-- <div class="mt-16">
<span style="font-weight: bold; font-size: 20px; color: rgba(0, 0, 0, 0.85)">{{ router.currentRoute.value.meta.title }}</span>
</div> -->
<slot name="describe">
<div class="mt-8" v-if="props.describe">
<span>{{ props.describe }}</span>
</div>
</slot>
</div>
</a-card>
<slot name="describe">
<div class="mt-8" v-if="props.describe">
<span>{{ props.describe }}</span>
</div>
</slot>
</div>
</a-card>
</div>
<div :class="{ 'p-16': !bodyClassPadding }" :style="{ ...(props.bodyStyle ?? {}) }">
<slot></slot>
</div>
@@ -102,4 +105,3 @@ function handlePaths() {
<slot></slot>
</div>
</template>
../router/index1

View File

@@ -60,8 +60,8 @@ function jumpPro() {
<div class="hzy-header-btn" @click="menuStore.onChangeCollapse(!menuStore.state.isCollapse)">
<!-- <a-tooltip>
<template #title>菜单收展</template>
<AppIcon :name="menuStore.state.isCollapse ? 'MenuUnfoldOutlined' : 'MenuFoldOutlined'" :size="iconSize" />
</a-tooltip> -->
<AppIcon :name="menuStore.state.isCollapse ? 'MenuUnfoldOutlined' : 'MenuFoldOutlined'" :size="iconSize" />
</a-tooltip> -->
<AppIcon :name="menuStore.state.isCollapse ? 'MenuUnfoldOutlined' : 'MenuFoldOutlined'" :size="iconSize" />
</div>
<div style="flex: 1 1 0%; height: 100%; display: flex" v-if="menuStore.state.menuMode == EMenuMode.top">
@@ -69,7 +69,9 @@ function jumpPro() {
</div>
<div style="flex: 1 1 0%" v-else></div>
<!-- Pro -->
<div class="hzy-header-btn text-danger" @click="jumpPro()" style="font-weight: bold" v-if="!coreStore.state.isMobile">Pro By React</div>
<div class="hzy-header-btn text-danger" @click="jumpPro()" style="font-weight: bold"
v-if="!coreStore.state.isMobile">
Pro By React</div>
<!-- HzyAdmin 文档 -->
<a-tooltip>
<template #title>HzyAdmin 文档</template>
@@ -96,12 +98,12 @@ function jumpPro() {
</div>
</a-tooltip>
<!-- 暗黑 -->
<!-- 白昼 / 黑夜 -->
<a-tooltip>
<template #title>暗黑</template>
<template #title>白昼 / 黑夜</template>
<div class="hzy-header-btn" @click="themeStore.changeTheme(!themeStore.state.isDark)">
<AppIcon name="Sunny" :size="iconSize" v-if="themeStore.state.isDark" />
<AppIcon name="MoonNight" :size="iconSize" v-else />
<AppIcon name="MoonNight" :size="iconSize + 5" style="color:white" v-if="themeStore.state.isDark" />
<AppIcon name="Sunny" :size="iconSize + 5" v-else />
</div>
</a-tooltip>
@@ -121,7 +123,9 @@ function jumpPro() {
<template #overlay>
<a-menu>
<a-menu-item @click="logOut">
<a href="javascript:;"> <AppIcon name="LogoutOutlined" />&nbsp;&nbsp;退出登录 </a>
<a href="javascript:;">
<AppIcon name="LogoutOutlined" />&nbsp;&nbsp;退出登录
</a>
</a-menu-item>
</a-menu>
</template>
@@ -139,6 +143,7 @@ function jumpPro() {
<style lang="less">
.hzy-layout {
//覆盖样式
.ant-layout-header {
position: relative;

View File

@@ -87,15 +87,15 @@ let left = computed(() => {
.hzy-ground-glass {
// 透明样式
position: absolute;
left: 0;
right: 0;
top: 0;
//background-image: radial-gradient(transparent 1px, #ffffff 1px);
background-size: 4px 4px;
backdrop-filter: saturate(50%) blur(1px);
-webkit-backdrop-filter: saturate(50%) blur(1px);
box-shadow: 0 4px 4px #00152914;
// position: absolute;
// left: 0;
// right: 0;
// top: 0;
// background-image: radial-gradient(transparent 1px, #ffffff 1px);
// background-size: 4px 4px;
// backdrop-filter: saturate(50%) blur(1px);
// -webkit-backdrop-filter: saturate(50%) blur(1px);
// box-shadow: 0 4px 4px #00152914;
}
}
}

View File

@@ -4,33 +4,88 @@ import MenuStore from "@/core/store/layouts/MenuStore";
import HeaderStore from "@/core/store/layouts/HeaderStore";
import SettingsStore from "@/core/store/layouts/SettingsStore";
import ThemeStore from "@/core/store/layouts/ThemeStore";
import AppIcon from "@/core/components/AppIcon.vue";
const layoutStore = LayoutStore();
const menuStore = MenuStore();
const headerStore = HeaderStore();
const settingsStore = SettingsStore();
const themeStore = ThemeStore();
// 取色器 防抖渲染
function debounce(func: Function, wait: number) {
let timeout: NodeJS.Timeout;
return (...args: any[]) => {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
const changeColorPrimary = debounce((color:any) => {
themeStore.changeColorPrimary(color);
}, 1000);
</script>
<template>
<a-drawer class="hzy-settings" placement="right" width="350px" :closable="false" v-model:open="settingsStore.state.show">
<a-drawer class="hzy-settings" placement="right" width="350px" :closable="false"
v-model:open="settingsStore.state.show">
<a-divider>白昼 / 黑夜</a-divider>
<div class="mt-24 text-center" style="
display:flex;
justify-content: center;
align-items: center;
flex-wrap: nowrap;">
<div @click="themeStore.changeTheme(!themeStore.state.isDark)"
style="width: 80px; height: 80px; text-align: center; cursor: pointer;">
<AppIcon name="MoonNight" :size="16" style="color:white" v-if="themeStore.state.isDark" />
<AppIcon name="Sunny" :size="16" v-else />
</div>
</div>
<a-divider>品牌色</a-divider>
<div class="hzy-skin-list mb-5 text-center">
<template v-for="(item, index) in themeStore.colorPrimaryList" :key="index">
<div class="hzy-skin-item" :style="{ backgroundColor: item }" @click="themeStore.changeColorPrimary(item)"></div>
<div class="hzy-skin-item" :style="{ backgroundColor: item.colorPrimary }"
@click="themeStore.changeColorPrimary(item)"></div>
</template>
</div>
<a-button block @click="headerStore.changeUseColorPrimary()">{{ headerStore.state.useColorPrimary ? "头部不使用品牌色" : "头部使用品牌色" }}</a-button>
<a-button block @click="headerStore.changeUseColorPrimary()">
{{ headerStore.state.useColorPrimary ? "头部不使用品牌色" : "头部使用品牌色" }}
</a-button>
<a-divider>基础文本 / 基础背景颜色</a-divider>
<div class="mt-24 text-center">
<div class="hzy-skin-list mb-5 text-center">
<a-space>
<a-button type="link">基础背景色</a-button>
<a-input v-model:value="themeStore.state.tokenTheme!.colorBgBase" />
<a-input type="color" :value="themeStore.state.tokenTheme!.colorBgBase"
@change="e => changeColorPrimary({ colorBgBase: e.target.value })" style="width:80px" />
</a-space>
<a-space class="mt-5">
<a-button type="link">基础文本色</a-button>
<a-input v-model:value="themeStore.state.tokenTheme!.colorTextBase" />
<a-input type="color" :value="themeStore.state.tokenTheme!.colorTextBase"
@change="e => changeColorPrimary({ colorTextBase: e.target.value })" style="width:80px" />
</a-space>
</div>
</div>
<a-divider>菜单颜色</a-divider>
<div class="mt-16 text-center">
<div class="mt-24 text-center">
<div class="hzy-skin-list mb-5 text-center">
<template v-for="(item, index) in themeStore.menuThemeList" :key="index">
<div class="hzy-skin-item" style="border: 1px solid #67c23a" :style="{ backgroundColor: item.colorItemBg }" @click="themeStore.changeMenuTheme(index)"></div>
<div class="hzy-skin-item" style="border: 1px solid #67c23a" :style="{ backgroundColor: item.colorItemBg }"
@click="themeStore.changeMenuTheme(index)"></div>
</template>
</div>
</div>
<a-divider v-if="!layoutStore.state.isMobile">菜单栏模式</a-divider>
<div class="mt-16 text-center" v-if="!layoutStore.state.isMobile">
<div class="mt-24 text-center" v-if="!layoutStore.state.isMobile">
<a-radio-group name="radioGroup" defaultValue="1" v-model:value="menuStore.state.menuMode">
<a-radio value="1">默认</a-radio>
<a-radio value="2">顶部</a-radio>
@@ -47,6 +102,7 @@ const themeStore = ThemeStore();
display: flex;
flex-wrap: wrap;
justify-content: center;
.hzy-skin-item {
width: 40px;
height: 40px;

View File

@@ -26,4 +26,8 @@ const _style = computed(() => {
<LayoutOneLevelMenu v-if="menuStore.state.menuMode == EMenuMode.left" />
<LayoutMenuPcVue />
</div>
<!-- <template v-else>
<LayoutOneLevelMenu v-if="menuStore.state.menuMode == EMenuMode.left" />
<LayoutMenuPcVue />
</template> -->
</template>

View File

@@ -74,7 +74,8 @@ onMounted(() => {
<template #title>
{{ translate(`menu.${item.id}`, item.name) }}
</template>
<li :key="methods.getJumpUrl(item)" :class="{ active: methods.getJumpUrl(item) == state.selectedKey }" @click="methods.onMenuSelected(methods.getJumpUrl(item))">
<li :key="methods.getJumpUrl(item)" :class="{ active: methods.getJumpUrl(item) == state.selectedKey }"
@click="methods.onMenuSelected(methods.getJumpUrl(item))">
<AppIcon :name="item.icon" :size="22" />
<div class="mt-8">
{{ translate(`menu.${item.id}`, item.name) }}
@@ -86,12 +87,9 @@ onMounted(() => {
</div>
<!-- 顶部模式 -->
<ul class="hzy-one-nav" v-if="menuStore.state.menuMode == EMenuMode.top">
<li
v-for="item in appStore.state.oneLevels"
:key="methods.getJumpUrl(item)"
<li v-for="item in appStore.state.oneLevels" :key="methods.getJumpUrl(item)"
:class="{ active: methods.getJumpUrl(item) == state.selectedKey }"
@click="methods.onMenuSelected(methods.getJumpUrl(item))"
>
@click="methods.onMenuSelected(methods.getJumpUrl(item))">
<div class="menu-item">
<AppIcon :name="item.icon" :size="16" v-if="item.icon" />
<div class="ml-5">{{ translate(`menu.${item.id}`, item.name) }}</div>
@@ -105,7 +103,7 @@ onMounted(() => {
background-color: #000000;
z-index: 7;
box-shadow: 8px 0px 2px 0 rgba(0, 0, 0, 0.1);
width: v-bind("menuStore.state.leftModeWidth+'px'");
width: v-bind("menuStore.state.leftModeWidth + 'px'");
ul {
margin: 0;
@@ -122,7 +120,8 @@ onMounted(() => {
}
.active {
background: v-bind("themeStore.state.tokenTheme?.colorPrimary");
// background: v-bind("themeStore.state.tokenTheme?.colorBgLayout");
color: v-bind('themeStore.state.tokenTheme?.colorPrimary') !important;
//
transition: background-color 0.1s;
-moz-transition: background-color 0.1s;
@@ -133,12 +132,13 @@ onMounted(() => {
}
li:hover {
background: v-bind("themeStore.state.tokenTheme?.colorPrimary");
// background: v-bind("themeStore.state.tokenTheme?.colorBgLayout");
color: v-bind('themeStore.state.tokenTheme?.colorPrimary') !important;
}
}
* {
color: #e5e7eb !important;
// color: #e5e7eb !important;
}
}
@@ -175,19 +175,21 @@ onMounted(() => {
.active {
.menu-item {
background: v-bind("themeStore.state.tokenTheme?.colorPrimary");
// background: v-bind("themeStore.state.tokenTheme?.colorBgLayout");
color: v-bind('themeStore.state.tokenTheme?.colorPrimary') !important;
* {
color: #e5e7eb !important;
// color: #e5e7eb !important;
}
}
}
.menu-item:hover {
background: v-bind("themeStore.state.tokenTheme?.colorPrimary");
// background: v-bind("themeStore.state.tokenTheme?.colorBgLayout");
color: v-bind('themeStore.state.tokenTheme?.colorPrimary') !important;
* {
color: #e5e7eb !important;
// color: #e5e7eb !important;
}
}
}

View File

@@ -1,8 +1,9 @@
import {defineStore} from "pinia";
import {computed, reactive, onMounted, Ref} from "vue";
import {theme as antdTheme} from "ant-design-vue";
import { defineStore } from "pinia";
import { computed, reactive, onMounted, Ref } from "vue";
import { theme as antdTheme } from "ant-design-vue";
import AppConsts from "@/utils/AppConsts.js";
import {FullToken, UseComponentStyleResult} from "ant-design-vue/es/theme/internal";
import { AliasToken } from "ant-design-vue/es/theme/internal";
import { MappingAlgorithm } from "ant-design-vue/es/config-provider/context";
// import Img0 from "@/assets/images/login-1.jpg";
// import Img1 from "@/assets/images/bg-1.jpg";
// import Img2 from "@/assets/images/bg-2.jpg";
@@ -27,7 +28,7 @@ interface IState {
/**
* 全局 主题
*/
tokenTheme?: TokenTheme;
tokenTheme?: AliasToken;
/**
* 菜单主题
*/
@@ -38,19 +39,6 @@ interface IState {
backgroundImageIndex: number;
}
export class TokenTheme {
colorPrimary: string = "#2f54eb";
//
// colorBgLayout: "red",
// paddingXXS: 16,
// paddingXS: 16,
// paddingSM: 16,
// padding: 16,
// paddingMD: 16,
// paddingLG: 16,
// paddingXL: 16,
}
/**
* 菜单主题接口
*/
@@ -74,8 +62,9 @@ interface IMenuTheme {
}
export default defineStore("ThemeStore", () => {
var tokenTheme = new TokenTheme();
var tokenTheme = {} as AliasToken;
// 菜单主题集合
const menuThemeList: IMenuTheme[] = [
// 白色
{},
@@ -112,7 +101,86 @@ export default defineStore("ThemeStore", () => {
];
// 品牌色集合
const colorPrimaryList: string[] = ["#2f54eb", "#1677FF", "#5A54F9", "#9E339F", "#ED4192", "#E0282E", "#F4801A", "#F2BD27", "#00B96B", "#393D49", "#009688", "#63BA79"];
const colorPrimaryList: AliasToken[] = [
{
colorPrimary: "#2f54eb",
colorLink: "#2f54eb",
colorLinkHover: "#2f54eb",
colorLinkActive: "#2f54eb"
} as AliasToken,
{
colorPrimary: "#1677FF",
colorLink: "#1677FF",
colorLinkHover: "#1677FF",
colorLinkActive: "#1677FF",
} as AliasToken,
{
colorPrimary: "#5A54F9",
colorLink: "#5A54F9",
colorLinkHover: "#5A54F9",
colorLinkActive: "#5A54F9",
} as AliasToken,
{
colorPrimary: "#9E339F",
colorLink: "#9E339F",
colorLinkHover: "#9E339F",
colorLinkActive: "#9E339F",
} as AliasToken,
{
colorPrimary: "#ED4192",
colorLink: "#ED4192",
colorLinkHover: "#ED4192",
colorLinkActive: "#ED4192",
} as AliasToken,
{
colorPrimary: "#E0282E",
colorLink: "#E0282E",
colorLinkHover: "#E0282E",
colorLinkActive: "#E0282E",
} as AliasToken,
{
colorPrimary: "#F4801A",
colorLink: "#F4801A",
colorLinkHover: "#F4801A",
colorLinkActive: "#F4801A",
} as AliasToken,
{
colorPrimary: "#f0e04b",
colorLink: "#f0e04b",
colorLinkHover: "#f0e04b",
colorLinkActive: "#f0e04b",
} as AliasToken,
{
colorPrimary: "#F2BD27",
colorLink: "#F2BD27",
colorLinkHover: "#F2BD27",
colorLinkActive: "#F2BD27",
} as AliasToken,
{
colorPrimary: "#00B96B",
colorLink: "#00B96B",
colorLinkHover: "#00B96B",
colorLinkActive: "#00B96B",
} as AliasToken,
{
colorPrimary: "#393D49",
colorLink: "#393D49",
colorLinkHover: "#393D49",
colorLinkActive: "#393D49",
} as AliasToken,
{
colorPrimary: "#009688",
colorLink: "#009688",
colorLinkHover: "#009688",
colorLinkActive: "#009688",
} as AliasToken,
{
colorPrimary: "#63BA79",
colorLink: "#63BA79",
colorLinkHover: "#63BA79",
colorLinkActive: "#63BA79",
} as AliasToken
];
// /**
// * 背景图片
@@ -148,19 +216,23 @@ export default defineStore("ThemeStore", () => {
state.isDark = isDark;
let colorPrimary = ThemeCacheUtil.getColorPrimary();
if (colorPrimary) {
state.tokenTheme!.colorPrimary = colorPrimary;
state.tokenTheme! = colorPrimary;
}
});
// 主题 类型 MappingAlgorithm
//
const getAlgorithm = (themes: ThemeName[] = []) =>
themes.map((theme) => {
if (theme === "dark") {
return antdTheme.darkAlgorithm;
}
if (theme === "compact") {
return antdTheme.compactAlgorithm;
return antdTheme.compactAlgorithm
}
return antdTheme.defaultAlgorithm;
});
@@ -172,6 +244,11 @@ export default defineStore("ThemeStore", () => {
*/
function changeTheme(isDark: boolean) {
state.isDark = isDark;
// 重置背景色,前景色
changeColorPrimary({
colorBgBase: "",
colorTextBase: ""
} as AliasToken);
ThemeCacheUtil.setIsDark(isDark);
}
@@ -187,9 +264,9 @@ export default defineStore("ThemeStore", () => {
/**
* 改变主色 品牌色
*/
function changeColorPrimary(color: string) {
state.tokenTheme!.colorPrimary = color;
ThemeCacheUtil.setColorPrimary(color);
function changeColorPrimary(color: AliasToken) {
state.tokenTheme! = { ...state.tokenTheme!, ...color };
ThemeCacheUtil.setColorPrimary(state.tokenTheme);
}
return {
@@ -246,16 +323,24 @@ class ThemeCacheUtil {
/**
* 保存品牌色
*/
static setColorPrimary(color: string) {
localStorage.setItem(`${AppConsts.appPrefix}_color_primary`, color);
static setColorPrimary(color: AliasToken) {
localStorage.setItem(`${AppConsts.appPrefix}_color_primary`, JSON.stringify(color));
}
/**
* 读取品牌色
* @returns
*/
static getColorPrimary() {
static getColorPrimary(): AliasToken | null {
var result = localStorage.getItem(`${AppConsts.appPrefix}_color_primary`);
return result;
if (!result) {
return null;
}
try {
return JSON.parse(result) as AliasToken;
} catch (error) {
return null;
}
}
}

View File

@@ -271,7 +271,7 @@ function jumpDetails(row: any) {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined" />
</template>
@@ -311,10 +311,10 @@ function jumpDetails(row: any) {
<a href="javascript:void(0)" @click="jumpDetails(record)">详情</a>
</template>
<a-divider type="vertical" />
<a href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a>
<a-button type="link" href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a-button>
<a-divider type="vertical" />
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消" v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -208,7 +208,7 @@ function openTableEditor() {
<!-- 批量删除 -->
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined" />
</template>
@@ -246,7 +246,7 @@ function openTableEditor() {
<a href="javascript:;" @click="() => refInfo?.open(record)">配置</a>
<a-divider type="vertical" />
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -249,7 +249,7 @@ function change() {
<a-table-column title="操作" data-index="id">
<template #default="{ record }">
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -216,7 +216,7 @@ function openForm(id: string) {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined"/>
</template>
@@ -250,7 +250,7 @@ function openForm(id: string) {
<a @click="openForm(record.id)">编辑</a>
<a-divider type="vertical"/>
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -162,7 +162,7 @@ async function deleteList(id?: string) {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined" />
</template>
@@ -204,12 +204,12 @@ async function deleteList(id?: string) {
<!-- 操作 -->
<a-table-column title="操作" data-index="id" v-if="power.update || power.delete || power.insert">
<template #default="{ record }">
<a href="javascript:void(0)" @click="refInfo?.open(null, record.id)" v-if="power.insert">新建</a>
<a-button type="link" @click="refInfo?.open(null, record.id)" v-if="power.insert">新建</a-button>
<a-divider type="vertical" />
<a href="javascript:;" @click="() => refInfo?.open(record.id, record.parentId)" v-if="power.update">编辑</a>
<a-button type="link" @click="() => refInfo?.open(record.id, record.parentId)" v-if="power.update">编辑</a-button>
<a-divider type="vertical" />
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消" v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -220,7 +220,7 @@ function exportExcel() {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined"/>
</template>
@@ -247,11 +247,11 @@ function exportExcel() {
<!-- 操作 -->
<a-table-column v-bind="item" v-if="power.update || power.delete">
<template #default="{ record }">
<a href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a>
<a-button type="link" href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a-button>
<a-divider type="vertical"/>
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消"
v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -192,7 +192,7 @@ function openGlobalNameJson() {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined"/>
</template>
@@ -247,15 +247,15 @@ function openGlobalNameJson() {
<!-- 操作 -->
<a-table-column title="操作" data-index="id" v-if="power.update || power.delete || power.insert">
<template #default="{ record }">
<a href="javascript:void(0)" @click="refInfo?.open(null, record.id)" v-if="power.insert">新建</a>
<a-button type="link" @click="refInfo?.open(null, record.id)" v-if="power.insert">新建</a-button>
<a-divider type="vertical"/>
<a href="javascript:;" @click="() => refInfo?.open(record.id, record.parentId)" v-if="power.update">编辑</a>
<a-button type="link" @click="() => refInfo?.open(record.id, record.parentId)" v-if="power.update">编辑</a-button>
<a-divider type="vertical"/>
<a href="javascript:;" @click="() => copyMenu(record.id)" v-if="power.update">复制</a>
<a-button type="link" @click="() => copyMenu(record.id)" v-if="power.update">复制</a-button>
<a-divider type="vertical"/>
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消"
v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -186,7 +186,7 @@ async function deleteList(id?: string) {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined" />
</template>
@@ -207,9 +207,9 @@ async function deleteList(id?: string) {
</template>
<!-- table-col -->
<template #table-col>
<a-table-column title="接口地址" data-index="api" :width="250" :ellipsis="true" fixed="left" />
<a-table-column title="操作系统" data-index="os" :width="100" />
<a-table-column title="浏览器" data-index="browser" :width="100" />
<a-table-column title="接口地址" data-index="api" :width="200" :ellipsis="true" fixed="left" />
<a-table-column title="操作系统" data-index="os" :width="150" />
<a-table-column title="浏览器" data-index="browser" :width="110" />
<a-table-column title="ip地址" data-index="ip" :width="120" />
<a-table-column title="接口描述" :width="200">
<template #default="{ record }">
@@ -227,14 +227,14 @@ async function deleteList(id?: string) {
</a-table-column>
<a-table-column title="操作人姓名" data-index="userName" :width="100" />
<a-table-column title="操作人账号" data-index="loginName" :width="100" />
<a-table-column title="创建时间" data-index="creationTime" :width="150" />
<a-table-column title="创建时间" data-index="creationTime" :width="160" />
<!-- 操作 -->
<a-table-column title="操作" data-index="id" :width="100">
<a-table-column title="操作" data-index="id" :width="160">
<template #default="{ record }">
<a href="javascript:;" @click="() => refInfo?.open(record.id)">详情</a>
<a-button type="link" @click="() => refInfo?.open(record.id)">详情</a-button>
<a-divider type="vertical" />
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消" v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -162,7 +162,7 @@ async function deleteList(id?: string) {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined" />
</template>
@@ -208,12 +208,12 @@ async function deleteList(id?: string) {
<!-- 操作 -->
<a-table-column title="操作" data-index="id" v-if="power.update || power.delete || power.insert">
<template #default="{ record }">
<a href="javascript:void(0)" @click="refInfo?.open(null, record.id)" v-if="power.insert">新建</a>
<a-button type="link" @click="refInfo?.open(null, record.id)" v-if="power.insert">新建</a-button>
<a-divider type="vertical" />
<a href="javascript:;" @click="() => refInfo?.open(record.id, record.parentId)" v-if="power.update">编辑</a>
<a-button type="link" @click="() => refInfo?.open(record.id, record.parentId)" v-if="power.update">编辑</a-button>
<a-divider type="vertical" />
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消" v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -228,7 +228,7 @@ function exportExcel() {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined"/>
</template>
@@ -263,11 +263,11 @@ function exportExcel() {
<!-- 操作 -->
<a-table-column v-bind="item" v-if="power.update || power.delete">
<template #default="{ record }">
<a href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a>
<a-button type="link" href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a-button>
<a-divider type="vertical"/>
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消"
v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

View File

@@ -248,7 +248,7 @@ function exportExcel() {
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined"/>
</template>
@@ -294,11 +294,11 @@ function exportExcel() {
<!-- 操作 -->
<a-table-column v-bind="item">
<template #default="{ record }">
<a href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a>
<a-button type="link" href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a-button>
<a-divider type="vertical"/>
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消"
v-if="power.delete">
<a class="text-danger">删除</a>
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
<a-divider type="vertical"/>
<a href="javascript:;" @click="() => refFunctionAuthority?.open(record.id)">功能权限</a>

View File

@@ -262,25 +262,18 @@ findBackMethods.initRows();
<template>
<PageContainer :show="!$props.isFindBack">
<TableCurd
ref="refTableCurd"
v-model:config="state"
@change="
(changeTable) => {
state.page = changeTable.pagination.current ?? 1;
state.size = changeTable.pagination.pageSize ?? state.size;
state.search.sort = changeTable.sorter instanceof Array ? [...changeTable.sorter] : [changeTable.sorter];
findList();
}
"
@show-size-change="
({ current, size }) => {
state.page = current == 0 ? 1 : current;
state.size = size;
findList();
}
"
>
<TableCurd ref="refTableCurd" v-model:config="state" @change="(changeTable) => {
state.page = changeTable.pagination.current ?? 1;
state.size = changeTable.pagination.pageSize ?? state.size;
state.search.sort = changeTable.sorter instanceof Array ? [...changeTable.sorter] : [changeTable.sorter];
findList();
}
" @show-size-change="({ current, size }) => {
state.page = current == 0 ? 1 : current;
state.size = size;
findList();
}
">
<!-- search -->
<template #search>
<a-form ref="refSearchForm" :model="state.search.vm" v-if="power.search">
@@ -297,43 +290,30 @@ findBackMethods.initRows();
</a-col>
<a-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<a-form-item class="mb-0" name="organizationId" label="所属组织">
<a-tree-select
v-model:value="state.search.vm.organizationId"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="所属组织"
allow-clear
tree-default-expand-all
show-search
tree-node-filter-prop="name"
:tree-data="organizationTree"
<a-tree-select v-model:value="state.search.vm.organizationId"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" placeholder="所属组织" allow-clear
tree-default-expand-all show-search tree-node-filter-prop="name" :tree-data="organizationTree"
:field-names="{
children: 'children',
label: 'name',
value: 'id',
}"
class="w100"
></a-tree-select>
}" class="w100"></a-tree-select>
</a-form-item>
</a-col>
<!--button-->
<a-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" class="text-right">
<a-space :size="8">
<a-button
@click="
state.page = 1;
refSearchForm?.resetFields();
findList();
"
>
<a-button @click="
state.page = 1;
refSearchForm?.resetFields();
findList();
">
重置
</a-button>
<a-button
type="primary"
@click="
state.page = 1;
findList();
"
>
<a-button type="primary" @click="
state.page = 1;
findList();
">
查询
</a-button>
</a-space>
@@ -344,8 +324,12 @@ findBackMethods.initRows();
<!-- toolbar-left -->
<template #toolbar-left>
<a-button @click="state.search.state = !state.search.state" v-if="power.search">
<div v-if="state.search.state"><AppIcon name="UpOutlined" />&nbsp;&nbsp;收起</div>
<div v-else><AppIcon name="DownOutlined" />&nbsp;&nbsp;展开</div>
<div v-if="state.search.state">
<AppIcon name="UpOutlined" />&nbsp;&nbsp;收起
</div>
<div v-else>
<AppIcon name="DownOutlined" />&nbsp;&nbsp;展开
</div>
</a-button>
<a-button type="primary" @click="() => refInfo?.open()" v-if="power.insert">
<template #icon>
@@ -354,7 +338,7 @@ findBackMethods.initRows();
新建
</a-button>
<a-popconfirm title="您确定要删除?" @confirm="deleteList()" okText="确定" cancelText="取消" v-if="power.delete">
<a-button type="primary" danger>
<a-button danger>
<template #icon>
<AppIcon name="DeleteOutlined" />
</template>
@@ -391,10 +375,11 @@ findBackMethods.initRows();
<!-- 操作 -->
<a-table-column v-bind="item" v-if="power.update || power.delete">
<template #default="{ record }">
<a href="javascript:;" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a>
<a-button type="link" @click="() => refInfo?.open(record.id)" v-if="power.update">编辑</a-button>
<a-divider type="vertical" />
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消" v-if="power.delete">
<a class="text-danger">删除</a>
<a-popconfirm title="您确定要删除?" @confirm="deleteList(record.id)" okText="确定" cancelText="取消"
v-if="power.delete">
<a-button type="link" danger>删除</a-button>
</a-popconfirm>
</template>
</a-table-column>

File diff suppressed because one or more lines are too long

View File

@@ -9,9 +9,30 @@
</component>
<component name="ChangeListManager">
<list default="true" id="2860f50d-3889-4593-b97d-a875a552fade" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/../admin-client/src/App.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/App.tsx" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/components/PageContainer.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/components/PageContainer.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutHeader.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutHeader.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutMode1.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutMode1.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutSettings.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutSettings.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutSider.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/LayoutSider.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/menus/LayoutMenuOneLevel.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/components/layouts/menus/LayoutMenuOneLevel.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/core/store/layouts/ThemeStore.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/core/store/layouts/ThemeStore.ts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/base/member/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/base/member/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/development_tool/low_code/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/development_tool/low_code/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/development_tool/low_code/components/Columns.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/development_tool/low_code/components/Columns.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/example/list/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/example/list/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_dictionary/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_dictionary/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_function/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_function/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_menu/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_menu/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_operation_log/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_operation_log/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_organization/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_organization/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_post/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_post/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_role/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_role/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/src/views/system/sys_user/Index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/../admin-client/src/views/system/sys_user/Index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../admin-client/vite.config.ts.timestamp-1710149415062-83b284a445003.mjs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.HZY.Admin/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.HZY.Admin/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HZY.Api.Admin/Controllers/AdminControllerBase.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HZY.Api.Admin/Controllers/AdminControllerBase.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/HZY.Api.Admin/Models/ApplicationConst.cs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/HZY.Api.Admin/HZY.Api.Admin.xml" beforeDir="false" afterPath="$PROJECT_DIR$/HZY.Api.Admin/HZY.Api.Admin.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../doc/hzy_admin_sqlserver_20230227.sql" beforeDir="false" afterPath="$PROJECT_DIR$/../doc/hzy_admin_sqlserver_20230227.sql" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -32,17 +53,8 @@
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/cce50c897b474f2086c294b066a3a1a722800/fa/b2ff7ad3/DefaultEntity.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/bf9021a960b74107a7e141aa06bc9d8a0a53c929178c2fb95b1597be8af8dc/ExceptionDispatchInfo.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/f0e62cf3fcafec12baaa8b324345dde874d42ef7eb3911f7d53153ee3f57cb3e/Controller.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../../HZY.Framework/HZY.Framework.Repository.EntityFramework/Attributes/EntityDescriptionAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../../HZY.Framework/HZY.Framework.Repository.EntityFramework/IRepository.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Api.Admin/ApiAdminStartup.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Api.Admin/ApiAdminStartup.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Api.Admin/Controllers/DevelopmentTools/CodeGenerationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Api.Admin/Controllers/Systems/PersonalCenterController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Api.Admin/GlobalUsings.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Api.Admin/wwwroot/code_generation/template/tempController.cshtml" root0="FORCE_HIGHLIGHTING" root1="FORCE_HIGHLIGHTING" root2="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Core/ApplicationServices/ApplicationService.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Shared.Admin/ApplicationServices/ApplicationControllerBase.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Shared.Admin/ApplicationServices/ApplicationService.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Users/haozhiying/gitee/HzyAdmin/admin-server/HZY.Shared/AppStartupBaseCore.cs" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="MetaFilesCheckinStateConfiguration" checkMetaFiles="true" />
<component name="ProjectColorInfo">{
@@ -124,7 +136,9 @@
<workItem from="1728655661359" duration="1827000" />
<workItem from="1728713368546" duration="62000" />
<workItem from="1728744396430" duration="23200000" />
<workItem from="1728898440919" duration="65000" />
<workItem from="1728898440919" duration="96000" />
<workItem from="1728969108855" duration="1050000" />
<workItem from="1728970167165" duration="8142000" />
</task>
<task id="LOCAL-00001" summary="优化,修复,升级版本">
<option name="closed" value="true" />
@@ -214,7 +228,15 @@
<option name="project" value="LOCAL" />
<updated>1728815109377</updated>
</task>
<option name="localTasksCounter" value="12" />
<task id="LOCAL-00012" summary="优化路由模版的定义">
<option name="closed" value="true" />
<created>1728898525376</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1728898525376</updated>
</task>
<option name="localTasksCounter" value="13" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -245,6 +267,7 @@
<MESSAGE value="update xml" />
<MESSAGE value="升级框架插件 版本到 8.0.8" />
<MESSAGE value="优化控制器层的父类" />
<option name="LAST_COMMIT_MESSAGE" value="优化控制器层的父类" />
<MESSAGE value="优化路由模版的定义" />
<option name="LAST_COMMIT_MESSAGE" value="优化路由模版的定义" />
</component>
</project>

View File

@@ -1771,16 +1771,6 @@
<param name="file"></param>
<returns></returns>
</member>
<member name="T:HZY.Api.Admin.Models.ApplicationConst">
<summary>
程序常量
</summary>
</member>
<member name="F:HZY.Api.Admin.Models.ApplicationConst.RouteTemplate">
<summary>
路由模版
</summary>
</member>
<member name="T:HZY.Api.Admin.Models.Configs.AppConfiguration">
<summary>
程序配置信息映射类 appsettings.json

View File

@@ -1183,7 +1183,7 @@ CREATE TABLE [dbo].[quartz_job_task] (
[JobPoint] varchar(255) COLLATE Chinese_PRC_CI_AS NULL,
[RequsetMode] int NULL,
[Remark] varchar(255) COLLATE Chinese_PRC_CI_AS NULL,
[State] int NULL,
[State] bit NULL,
[ExecuteTime] datetime2(7) NULL,
[Type] int NULL
)