diff --git a/src/api/types.ts b/src/api/types.ts index 617286c69d820cc7a1d3918ed7b5a3fca30c2b91..489167e2b5cdac525ae76ee6cb8ea9da1a246eb1 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -57,3 +57,43 @@ export interface TenantInfo { tenantEnabled: boolean; voList: TenantVO[]; } + +/** + * 表格列 + */ +export interface Column { + label: string; + prop: string; + align?: 'left' | 'center' | 'right'; + slot?: string; +} + +/** + * 表格上方的按钮 + */ +export interface Button { + text: string; + type: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'; + icon: string; + handler: () => void; + permission: string[]; + disabledCondition?: (ids: (string | number)[]) => boolean; +} + +/** + * 表格的操作栏 + */ +export interface Operation { + text: string; + type: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'; + icon: string; + handler: (row: any) => void; + permission: string[]; + needConfirm?: boolean; +} + +export interface QueryParams { + pageNum: number; + pageSize: number; + [key: string]: any; +} \ No newline at end of file diff --git a/src/components/RexCheckbox/index.vue b/src/components/RexCheckbox/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..31d560941902b0bb1ad0ec9dc60b7bb310f41402 --- /dev/null +++ b/src/components/RexCheckbox/index.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/components/RexDatePicker/index.vue b/src/components/RexDatePicker/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..7f5bfc19952991ec4c662babb4e429c1b84a47e4 --- /dev/null +++ b/src/components/RexDatePicker/index.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/components/RexDrawer/index.vue b/src/components/RexDrawer/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e632f76fed46484a9162916d4cfab11598179578 --- /dev/null +++ b/src/components/RexDrawer/index.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/components/RexDrawer/useDrawerSize.ts b/src/components/RexDrawer/useDrawerSize.ts new file mode 100644 index 0000000000000000000000000000000000000000..f0f20a481dffccdd7edd79b06ac0bcf03dcf3f18 --- /dev/null +++ b/src/components/RexDrawer/useDrawerSize.ts @@ -0,0 +1,18 @@ +import { ref, computed } from 'vue'; + +export function useDrawerSize(initialSize = 800) { + const drawerSize = ref(initialSize); + const maxDrawerSize = document.body.clientWidth; + + const isFullSize = computed(() => drawerSize.value === maxDrawerSize); + + const toggleDrawerSize = () => { + drawerSize.value = isFullSize.value ? initialSize : maxDrawerSize; + }; + + return { + drawerSize: computed(() => `${drawerSize.value}px`), + isFullSize, + toggleDrawerSize + }; +} diff --git a/src/components/RexEditor/index.vue b/src/components/RexEditor/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..c2407386ad4bcb4804f055cfed3114659b743ac5 --- /dev/null +++ b/src/components/RexEditor/index.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/components/RexFileUpload/index.vue b/src/components/RexFileUpload/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..f4708839e11920861018f0b1548606264b429685 --- /dev/null +++ b/src/components/RexFileUpload/index.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/src/components/RexImageUpload/index.vue b/src/components/RexImageUpload/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e5edf237aa89eea315fbe1dedb374dd4a9acfd6a --- /dev/null +++ b/src/components/RexImageUpload/index.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/src/components/RexInput/index.vue b/src/components/RexInput/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..43f1fc9aaffb94c0c560259d4177e0d6eef74461 --- /dev/null +++ b/src/components/RexInput/index.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/components/RexRadio/index.vue b/src/components/RexRadio/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..933ca8e8ca7e4a3d08d883bde93de9c0b393d549 --- /dev/null +++ b/src/components/RexRadio/index.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/components/RexSelect/index.vue b/src/components/RexSelect/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e92d52d373d10d2c288fafe53dfae0647913d952 --- /dev/null +++ b/src/components/RexSelect/index.vue @@ -0,0 +1,69 @@ + + + diff --git a/src/components/RexTable/index.vue b/src/components/RexTable/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..077af501db50eeb4c5ed120a85283520ed3fbb5d --- /dev/null +++ b/src/components/RexTable/index.vue @@ -0,0 +1,132 @@ + + + diff --git a/src/components/RexTreeSelect/index.vue b/src/components/RexTreeSelect/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..aa2ce1887dcc436a44ec61a102286be548917e8d --- /dev/null +++ b/src/components/RexTreeSelect/index.vue @@ -0,0 +1,21 @@ + + +