shizhongming 3 years ago
parent
commit
487bc7fcf1
  1. 4
      README.zh-CN.md
  2. 1
      src/components/EllipsisText/src/Tooltip.vue
  3. 10
      src/components/Form/src/BasicForm.vue
  4. 4
      src/components/Modal/src/components/Modal.tsx
  5. 3
      src/components/VxeTable/index.ts
  6. 1
      src/components/VxeTable/src/methods.ts
  7. 4
      src/locales/lang/en/component.json
  8. 2
      src/locales/lang/en/layout.json
  9. 1
      src/router/guard/permissionGuard.ts
  10. 4
      src/router/helper/menuHelper.ts
  11. 2
      src/router/menus/index.ts
  12. 5
      src/router/types.ts
  13. 1
      vite.config.ts

4
README.zh-CN.md

@ -9,11 +9,11 @@
## 简介 ## 简介
Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite4`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。 Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite5`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。
## 特性 ## 特性
- **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发 - **最新技术栈**:使用 Vue3/vite5 等前端前沿技术开发
- **TypeScript**: 应用程序级 JavaScript 的语言 - **TypeScript**: 应用程序级 JavaScript 的语言
- **主题**:可配置的主题 - **主题**:可配置的主题
- **国际化**:内置完善的国际化方案 - **国际化**:内置完善的国际化方案

1
src/components/EllipsisText/src/Tooltip.vue

@ -121,6 +121,7 @@
pointer-events: none; pointer-events: none;
&::before { &::before {
content: ''; // 解决提示框箭头颜色未生效问题
position: absolute; position: absolute;
bottom: 0; bottom: 0;
inset-inline-start: 0; inset-inline-start: 0;

10
src/components/Form/src/BasicForm.vue

@ -123,7 +123,7 @@
const getBindValue = computed(() => ({ ...attrs, ...props, ...unref(getProps) }) as AntFormProps); const getBindValue = computed(() => ({ ...attrs, ...props, ...unref(getProps) }) as AntFormProps);
const getSchema = computed((): FormSchema[] => { const getSchema = computed((): FormSchema[] => {
const schemas: FormSchema[] = unref(schemaRef) || (unref(getProps).schemas as any); const schemas: FormSchema[] = cloneDeep(unref(schemaRef) || (unref(getProps).schemas as any));
for (const schema of schemas) { for (const schema of schemas) {
const { const {
defaultValue, defaultValue,
@ -163,11 +163,11 @@
} }
} }
if (unref(getProps).showAdvancedButton) { if (unref(getProps).showAdvancedButton) {
return cloneDeep( return schemas.filter(
schemas.filter((schema) => !isIncludeSimpleComponents(schema.component)) as FormSchema[], (schema) => !isIncludeSimpleComponents(schema.component),
); ) as FormSchema[];
} else { } else {
return cloneDeep(schemas as FormSchema[]); return schemas as FormSchema[];
} }
}); });

4
src/components/Modal/src/components/Modal.tsx

@ -2,7 +2,6 @@ import { Modal } from 'ant-design-vue';
import { defineComponent, toRefs, unref } from 'vue'; import { defineComponent, toRefs, unref } from 'vue';
import { basicProps } from '../props'; import { basicProps } from '../props';
import { useModalDragMove } from '../hooks/useModalDrag'; import { useModalDragMove } from '../hooks/useModalDrag';
import { useAttrs } from '@vben/hooks';
import { extendSlots } from '@/utils/helper/tsxHelper'; import { extendSlots } from '@/utils/helper/tsxHelper';
export default defineComponent({ export default defineComponent({
@ -10,9 +9,8 @@ export default defineComponent({
inheritAttrs: false, inheritAttrs: false,
props: basicProps as any, props: basicProps as any,
emits: ['cancel'], emits: ['cancel'],
setup(props, { slots, emit }) { setup(props, { slots, emit, attrs }) {
const { open, draggable, destroyOnClose } = toRefs(props); const { open, draggable, destroyOnClose } = toRefs(props);
const attrs = useAttrs();
useModalDragMove({ useModalDragMove({
open, open,
destroyOnClose, destroyOnClose,

3
src/components/VxeTable/index.ts

@ -3,10 +3,11 @@ import vxeBasicTable from './src/VxeBasicTable';
import { VXETable } from 'vxe-table'; import { VXETable } from 'vxe-table';
import VXETablePluginAntd from './src/components'; import VXETablePluginAntd from './src/components';
import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx'; import VXETablePluginExportXLSX from 'vxe-table-plugin-export-xlsx';
import ExcelJS from 'exceljs';
import './src/setting'; import './src/setting';
export const VxeBasicTable = withInstall(vxeBasicTable); export const VxeBasicTable = withInstall(vxeBasicTable);
export * from 'vxe-table'; export * from 'vxe-table';
export * from './src/types'; export * from './src/types';
VXETable.use(VXETablePluginAntd).use(VXETablePluginExportXLSX); VXETable.use(VXETablePluginAntd).use(VXETablePluginExportXLSX, { ExcelJS });

1
src/components/VxeTable/src/methods.ts

@ -143,6 +143,7 @@ export const gridComponentMethodKeys: (
// vxe-table-edit部分 // vxe-table-edit部分
'insert', 'insert',
'insertAt', 'insertAt',
'insertNextAt',
'remove', 'remove',
'removeCheckboxRow', 'removeCheckboxRow',
'removeRadioRow', 'removeRadioRow',

4
src/locales/lang/en/component.json

@ -21,7 +21,7 @@
"btn_scale_y": "Flip vertical", "btn_scale_y": "Flip vertical",
"btn_zoom_in": "Zoom in", "btn_zoom_in": "Zoom in",
"btn_zoom_out": "Zoom out", "btn_zoom_out": "Zoom out",
"preview": "Preivew" "preview": "Preview"
}, },
"drawer": { "drawer": {
"loadingText": "Loading...", "loadingText": "Loading...",
@ -110,7 +110,7 @@
"fileName": "File name", "fileName": "File name",
"fileSize": "File size", "fileSize": "File size",
"fileStatue": "File status", "fileStatue": "File status",
"pending": "Pendig", "pending": "Pending",
"startUpload": "Start upload", "startUpload": "Start upload",
"uploadSuccess": "Upload successfully", "uploadSuccess": "Upload successfully",
"uploadError": "Upload failed", "uploadError": "Upload failed",

2
src/locales/lang/en/layout.json

@ -73,7 +73,7 @@
"tabDetail": "Tab Detail", "tabDetail": "Tab Detail",
"tabsQuickBtn": "Tabs quick button", "tabsQuickBtn": "Tabs quick button",
"tabsRedoBtn": "Tabs redo button", "tabsRedoBtn": "Tabs redo button",
"tabsFoldBtn": "Tabs flod button", "tabsFoldBtn": "Tabs fold button",
"sidebar": "Sidebar", "sidebar": "Sidebar",
"header": "Header", "header": "Header",
"footer": "Footer", "footer": "Footer",

1
src/router/guard/permissionGuard.ts

@ -125,7 +125,6 @@ export function createPermissionGuard(router: Router) {
// 指向redirect // 指向redirect
next({ path: redirect, replace: true }); next({ path: redirect, replace: true });
} }
next();
} else { } else {
// 正常访问 // 正常访问
next(); next();

4
src/router/helper/menuHelper.ts

@ -33,9 +33,7 @@ function joinParentPath(menus: Menu[], parentPath = '') {
// Parsing the menu module // Parsing the menu module
export function transformMenuModule(menuModule: MenuModule): Menu { export function transformMenuModule(menuModule: MenuModule): Menu {
const { menu } = menuModule; const menuList = [menuModule];
const menuList = [menu];
joinParentPath(menuList); joinParentPath(menuList);
return menuList[0]; return menuList[0];

2
src/router/menus/index.ts

@ -10,7 +10,7 @@ import { router } from '@/router';
import { PermissionModeEnum } from '@/enums/appEnum'; import { PermissionModeEnum } from '@/enums/appEnum';
import { pathToRegexp } from 'path-to-regexp'; import { pathToRegexp } from 'path-to-regexp';
const modules = import.meta.glob('./modules/**/*.ts', { eager: true }); const modules = import.meta.glob('../routes/modules/**/*.ts', { eager: true });
const menuModules: MenuModule[] = []; const menuModules: MenuModule[] = [];

5
src/router/types.ts

@ -51,10 +51,7 @@ export interface Menu {
hideMenu?: boolean; hideMenu?: boolean;
} }
export interface MenuModule { export type MenuModule = Menu;
orderNo?: number;
menu: Menu;
}
// export type AppRouteModule = RouteModule | AppRouteRecordRaw; // export type AppRouteModule = RouteModule | AppRouteRecordRaw;
export type AppRouteModule = AppRouteRecordRaw; export type AppRouteModule = AppRouteRecordRaw;

1
vite.config.ts

@ -33,6 +33,7 @@ export default defineApplicationConfig({
rewrite: (path) => path.replace(new RegExp(`^/upload`), ''), rewrite: (path) => path.replace(new RegExp(`^/upload`), ''),
}, },
}, },
open: true, // 项目启动后,自动打开
warmup: { warmup: {
clientFiles: ['./index.html', './src/{views,components}/*'], clientFiles: ['./index.html', './src/{views,components}/*'],
}, },

Loading…
Cancel
Save