From b1600f67210ccdbb8aa960a5cda49dc85fb4b86c Mon Sep 17 00:00:00 2001 From: luoer Date: Wed, 16 Aug 2023 20:17:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/form/form-modal.tsx | 2 +- src/components/form/form-node.tsx | 11 +++ src/components/table/table.config.tsx | 10 ++- src/components/table/table.tsx | 8 +- src/components/table/use-table.tsx | 4 +- src/pages/_app/components/menu.vue | 7 +- src/pages/_app/index.vue | 12 +-- src/pages/_login/index.vue | 2 +- src/pages/demo/index.vue | 40 ++++------ src/pages/demo/test.vue | 37 ++++----- src/pages/home/index.dev.vue | 2 +- src/pages/home/index.vue | 7 +- src/pages/my/banner.png | Bin 0 -> 390428 bytes src/pages/my/index.vue | 104 ++++++++++++++++++++------ src/pages/post/edit.vue | 78 +++++++++++++++++++ src/pages/post/index.vue | 103 ++++++++++++++++++++++++- src/pages/system/permission/index.vue | 11 +-- src/pages/system/role/index.vue | 5 +- src/pages/system/user/index.vue | 8 +- src/styles/css-arco.less | 3 + src/styles/css-unocss.less | 5 ++ src/types/auto-component.d.ts | 8 +- vite.config.ts | 16 ++++ 23 files changed, 373 insertions(+), 110 deletions(-) create mode 100644 src/pages/my/banner.png create mode 100644 src/pages/post/edit.vue diff --git a/src/components/form/form-modal.tsx b/src/components/form/form-modal.tsx index f594861..c5d0bfe 100644 --- a/src/components/form/form-modal.tsx +++ b/src/components/form/form-modal.tsx @@ -133,7 +133,7 @@ export const FormModal = defineComponent({ ); diff --git a/src/components/form/form-node.tsx b/src/components/form/form-node.tsx index 32eef02..24e6413 100644 --- a/src/components/form/form-node.tsx +++ b/src/components/form/form-node.tsx @@ -6,6 +6,7 @@ import { Input, InputNumber, InputPassword, + InputSearch, RadioGroup, RangePicker, Select, @@ -49,6 +50,16 @@ export const nodeMap = { allowClear: true, } as InstanceType["$props"], }, + /** + * 搜索框 + */ + search: { + component: InputSearch, + nodeProps: { + placeholder: "请输入", + allowClear: true, + } as InstanceType["$props"], + }, /** * 文本域 */ diff --git a/src/components/table/table.config.tsx b/src/components/table/table.config.tsx index 0fe5ea8..71dee4c 100644 --- a/src/components/table/table.config.tsx +++ b/src/components/table/table.config.tsx @@ -1,4 +1,4 @@ -import { Button } from "@arco-design/web-vue"; +import { Button, Link } from "@arco-design/web-vue"; import { IconRefresh, IconSearch } from "@arco-design/web-vue/es/icon"; export const config = { @@ -11,20 +11,22 @@ export const config = { searchItemSubmit: { field: "id", type: "custom", + label: ' ', itemProps: { class: "table-search-item col-start-4 !mr-0 grid grid-cols-[0_1fr]", - hideLabel: true, + // hideLabel: true, }, component: () => { const tableRef = inject("ref:table"); return (
+ {/* 收起 */} {(tableRef.search?.items?.length || 0) > config.searchInlineCount && ( )} -
@@ -72,6 +74,6 @@ export const config = { }, getApiErrorMessage(error: any): string { const message = error?.response?.data?.message || error?.message || "请求失败"; - return message; + return ''; }, }; diff --git a/src/components/table/table.tsx b/src/components/table/table.tsx index 8901910..2c0d781 100644 --- a/src/components/table/table.tsx +++ b/src/components/table/table.tsx @@ -158,14 +158,14 @@ export const Table = defineComponent({ render() { (this.columns as any).instance = this; return ( -
+
{!this.inlined && ( -
-
+
+
)} -
+
{this.create && ( diff --git a/src/components/table/use-table.tsx b/src/components/table/use-table.tsx index 4ec338d..88de913 100644 --- a/src/components/table/use-table.tsx +++ b/src/components/table/use-table.tsx @@ -167,11 +167,11 @@ export const useTable = (optionsOrFn: UseTableOptions | (() => UseTableOptions)) if (item.extend) { const createItem = createItems.find((i) => i.field === item.extend); if (createItem) { - searchItems.push(merge({}, createItem, item)); + searchItems.push(merge({ itemProps: { hideLabel: true } }, createItem, item)); continue; } } - searchItems.push(item); + searchItems.push(merge({ itemProps: { hideLabel: true } }, item)); } searchItems.push(config.searchItemSubmit); options.search.items = searchItems; diff --git a/src/pages/_app/components/menu.vue b/src/pages/_app/components/menu.vue index a1920b4..7c0c1b7 100644 --- a/src/pages/_app/components/menu.vue +++ b/src/pages/_app/components/menu.vue @@ -28,11 +28,11 @@ export default defineComponent({ renderItem(routes: MenuItem[], isTop = false) { return routes.map((route) => { - const icon = route.icon && isTop ? () => : null; + const icon = route.icon ? () => : null; const node = route.children?.length ? ( - route.title }}> + route.title }}> {this.renderItem(route?.children)} - + ) : ( this.goto(route)}> {route.title} @@ -51,6 +51,7 @@ export default defineComponent({ breakpoint="xl" selectedKeys={this.selectedKeys} autoOpenSelected={true} + levelIndent={0} > {this.renderItem(menus, true)} diff --git a/src/pages/_app/index.vue b/src/pages/_app/index.vue index 766c0e7..ba46ca0 100644 --- a/src/pages/_app/index.vue +++ b/src/pages/_app/index.vue @@ -5,9 +5,10 @@ >
- -

+ +

{{ appStore.title }} + 开发版

@@ -22,7 +23,7 @@ - + {{ userStore.nickname }} @@ -45,7 +46,7 @@ { isCollapsed.value = val; }; +const isDev = import.meta.env.DEV const buttons = [ { @@ -109,7 +111,7 @@ const userButtons = [ icon: "icon-park-outline-config", text: "个人设置", onClick: () => { - console.log("个人设置"); + router.push('/my') }, }, { diff --git a/src/pages/_login/index.vue b/src/pages/_login/index.vue index 61ba106..5be44d6 100644 --- a/src/pages/_login/index.vue +++ b/src/pages/_login/index.vue @@ -13,7 +13,7 @@