Pre Merge pull request !8 from xia520/hr
This commit is contained in:
commit
f1ea6f6362
@ -1,5 +1,5 @@
|
|||||||
# 应用标题
|
# 应用标题
|
||||||
VITE_APP_TITLE=Plus Admin
|
VITE_APP_TITLE=特能博世人力资源管理系统
|
||||||
|
|
||||||
# 应用命名空间,用于缓存、store等功能的前缀,确保隔离
|
# 应用命名空间,用于缓存、store等功能的前缀,确保隔离
|
||||||
VITE_APP_NAMESPACE=vben-web-antd
|
VITE_APP_NAMESPACE=vben-web-antd-hr
|
||||||
|
@ -31,7 +31,7 @@ setupVbenVxeTable({
|
|||||||
showOverflow: true,
|
showOverflow: true,
|
||||||
pagerConfig: {
|
pagerConfig: {
|
||||||
// 默认条数
|
// 默认条数
|
||||||
pageSize: 10,
|
pageSize: 20,
|
||||||
// 分页可选条数
|
// 分页可选条数
|
||||||
pageSizes: [10, 20, 30, 40, 50],
|
pageSizes: [10, 20, 30, 40, 50],
|
||||||
},
|
},
|
||||||
@ -62,7 +62,7 @@ setupVbenVxeTable({
|
|||||||
// 圆角按钮
|
// 圆角按钮
|
||||||
round: true,
|
round: true,
|
||||||
// 表格尺寸
|
// 表格尺寸
|
||||||
size: 'medium',
|
size: 'mini',
|
||||||
customConfig: {
|
customConfig: {
|
||||||
// 表格右上角自定义列配置 是否保存到localStorage
|
// 表格右上角自定义列配置 是否保存到localStorage
|
||||||
// 必须存在id参数才能使用
|
// 必须存在id参数才能使用
|
||||||
|
@ -45,5 +45,9 @@ export const overridesPreferences = defineOverridesPreferences({
|
|||||||
* 浅色sidebar
|
* 浅色sidebar
|
||||||
*/
|
*/
|
||||||
semiDarkSidebar: false,
|
semiDarkSidebar: false,
|
||||||
|
radius: '0.25',
|
||||||
|
},
|
||||||
|
breadcrumb: {
|
||||||
|
styleType: 'background',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -207,7 +207,6 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) {
|
|||||||
const vbenMenuList = backMenuToVbenMenu(backMenuList);
|
const vbenMenuList = backMenuToVbenMenu(backMenuList);
|
||||||
// 特别注意 这里要深拷贝
|
// 特别注意 这里要深拷贝
|
||||||
const menuList = [...cloneDeep(localMenuList), ...vbenMenuList];
|
const menuList = [...cloneDeep(localMenuList), ...vbenMenuList];
|
||||||
console.log('menuList', menuList);
|
|
||||||
return menuList;
|
return menuList;
|
||||||
},
|
},
|
||||||
// 可以指定没有权限跳转403页面
|
// 可以指定没有权限跳转403页面
|
||||||
|
@ -12,8 +12,6 @@ import { tenantList, type TenantResp } from '#/api';
|
|||||||
import { captchaImage, type CaptchaResponse } from '#/api/core/captcha';
|
import { captchaImage, type CaptchaResponse } from '#/api/core/captcha';
|
||||||
import { useAuthStore } from '#/store';
|
import { useAuthStore } from '#/store';
|
||||||
|
|
||||||
import OAuthLogin from './oauth-login.vue';
|
|
||||||
|
|
||||||
defineOptions({ name: 'Login' });
|
defineOptions({ name: 'Login' });
|
||||||
|
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
@ -152,11 +150,10 @@ async function handleAccountLogin(values: LoginAndRegisterParams) {
|
|||||||
ref="loginFormRef"
|
ref="loginFormRef"
|
||||||
:form-schema="formSchema"
|
:form-schema="formSchema"
|
||||||
:loading="authStore.loginLoading"
|
:loading="authStore.loginLoading"
|
||||||
|
:show-code-login="false"
|
||||||
|
:show-qrcode-login="false"
|
||||||
:show-register="false"
|
:show-register="false"
|
||||||
|
:show-third-party-login="false"
|
||||||
@submit="handleAccountLogin"
|
@submit="handleAccountLogin"
|
||||||
>
|
/>
|
||||||
<template #third-party-login>
|
|
||||||
<OAuthLogin />
|
|
||||||
</template>
|
|
||||||
</AuthenticationLogin>
|
|
||||||
</template>
|
</template>
|
||||||
|
0
apps/web-antd/src/views/demo/demo/api/index.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/api/index.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/api/model.d.ts
vendored
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/api/model.d.ts
vendored
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/data.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/data.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/demo-modal.vue
Executable file → Normal file
0
apps/web-antd/src/views/demo/demo/demo-modal.vue
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/api/index.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/api/index.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/api/model.d.ts
vendored
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/api/model.d.ts
vendored
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/data.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/data.ts
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/tree-modal.vue
Executable file → Normal file
0
apps/web-antd/src/views/demo/tree/tree-modal.vue
Executable file → Normal file
@ -33,6 +33,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -27,6 +27,7 @@ const [BasicForm, formApi] = useVbenForm({
|
|||||||
|
|
||||||
const [BasicModal, modalApi] = useVbenModal({
|
const [BasicModal, modalApi] = useVbenModal({
|
||||||
fullscreenButton: false,
|
fullscreenButton: false,
|
||||||
|
draggable: true,
|
||||||
onCancel: handleCancel,
|
onCancel: handleCancel,
|
||||||
onConfirm: handleConfirm,
|
onConfirm: handleConfirm,
|
||||||
onOpenChange: async (isOpen) => {
|
onOpenChange: async (isOpen) => {
|
||||||
|
@ -26,6 +26,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
|
||||||
};
|
};
|
||||||
|
@ -8,7 +8,7 @@ import DictTypePanel from './type/index.vue';
|
|||||||
<template>
|
<template>
|
||||||
<Page
|
<Page
|
||||||
:auto-content-height="true"
|
:auto-content-height="true"
|
||||||
content-class="flex flex-col lg:flex-row gap-4"
|
content-class="flex flex-col lg:flex-row gap-2"
|
||||||
>
|
>
|
||||||
<DictTypePanel class="flex-1 overflow-hidden" />
|
<DictTypePanel class="flex-1 overflow-hidden" />
|
||||||
<DictDataPanel class="flex-1 overflow-hidden" />
|
<DictDataPanel class="flex-1 overflow-hidden" />
|
||||||
|
@ -44,6 +44,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
|
||||||
};
|
};
|
||||||
|
@ -32,6 +32,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -26,6 +26,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -40,6 +40,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
collapsed: true,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -30,6 +30,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showCollapseButton: false,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
handleReset: async () => {
|
handleReset: async () => {
|
||||||
|
@ -48,6 +48,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
collapsed: true,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -26,7 +26,6 @@ const [BasicForm, formApi] = useVbenForm({
|
|||||||
},
|
},
|
||||||
formItemClass: 'col-span-2',
|
formItemClass: 'col-span-2',
|
||||||
},
|
},
|
||||||
layout: 'vertical',
|
|
||||||
schema: drawerSchema(),
|
schema: drawerSchema(),
|
||||||
showDefaultActions: false,
|
showDefaultActions: false,
|
||||||
wrapperClass: 'grid-cols-2',
|
wrapperClass: 'grid-cols-2',
|
||||||
|
@ -37,6 +37,7 @@ const formOptions: VbenFormProps = {
|
|||||||
allowClear: true,
|
allowClear: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
collapsed: true,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
|
||||||
};
|
};
|
||||||
|
@ -61,6 +61,7 @@ function handleImport() {
|
|||||||
const selectDeptId = ref<string[]>([]);
|
const selectDeptId = ref<string[]>([]);
|
||||||
|
|
||||||
const formOptions: VbenFormProps = {
|
const formOptions: VbenFormProps = {
|
||||||
|
collapsed: true,
|
||||||
schema: querySchema(),
|
schema: querySchema(),
|
||||||
commonConfig: {
|
commonConfig: {
|
||||||
labelWidth: 80,
|
labelWidth: 80,
|
||||||
|
@ -213,12 +213,6 @@ function handleImport() {
|
|||||||
<Page :auto-content-height="true">
|
<Page :auto-content-height="true">
|
||||||
<BasicTable table-title="代码生成列表">
|
<BasicTable table-title="代码生成列表">
|
||||||
<template #toolbar-tools>
|
<template #toolbar-tools>
|
||||||
<a
|
|
||||||
class="text-primary mr-2"
|
|
||||||
href="https://dapdap.top/other/template.html"
|
|
||||||
target="_blank"
|
|
||||||
>👉关于代码生成模板
|
|
||||||
</a>
|
|
||||||
<Space>
|
<Space>
|
||||||
<a-button
|
<a-button
|
||||||
:disabled="!checked"
|
:disabled="!checked"
|
||||||
|
@ -243,7 +243,7 @@ const defaultPreferences: Preferences = {
|
|||||||
colorSuccess: 'hsl(144 57% 58%)',
|
colorSuccess: 'hsl(144 57% 58%)',
|
||||||
colorWarning: 'hsl(42 84% 61%)',
|
colorWarning: 'hsl(42 84% 61%)',
|
||||||
mode: 'dark',
|
mode: 'dark',
|
||||||
radius: '0.5',
|
radius: '0.25',
|
||||||
semiDarkHeader: false,
|
semiDarkHeader: false,
|
||||||
semiDarkSidebar: true,
|
semiDarkSidebar: true,
|
||||||
},
|
},
|
||||||
|
@ -37,5 +37,8 @@
|
|||||||
"default": "./dist/index.mjs"
|
"default": "./dist/index.mjs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@vben-core/design": "file:"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ onMounted(() => {
|
|||||||
$slots.extra
|
$slots.extra
|
||||||
"
|
"
|
||||||
ref="headerRef"
|
ref="headerRef"
|
||||||
class="bg-card relative px-6 py-4"
|
class="bg-card relative px-4 py-2"
|
||||||
>
|
>
|
||||||
<slot name="title">
|
<slot name="title">
|
||||||
<div v-if="title" class="mb-2 flex text-lg font-semibold">
|
<div v-if="title" class="mb-2 flex text-lg font-semibold">
|
||||||
@ -83,19 +83,19 @@ onMounted(() => {
|
|||||||
</p>
|
</p>
|
||||||
</slot>
|
</slot>
|
||||||
|
|
||||||
<div v-if="$slots.extra" class="absolute bottom-4 right-4">
|
<div v-if="$slots.extra" class="absolute bottom-2 right-2">
|
||||||
<slot name="extra"></slot>
|
<slot name="extra"></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div :class="contentClass" :style="contentStyle" class="h-full p-4">
|
<div :class="contentClass" :style="contentStyle" class="h-full p-2">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="$slots.footer"
|
v-if="$slots.footer"
|
||||||
ref="footerRef"
|
ref="footerRef"
|
||||||
class="bg-card align-center absolute bottom-0 left-0 right-0 flex px-6 py-4"
|
class="bg-card align-center absolute bottom-0 left-0 right-0 flex px-4 py-2"
|
||||||
>
|
>
|
||||||
<slot name="footer"></slot>
|
<slot name="footer"></slot>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user