From 48cd47dd72f8daed9cf92e3717e2a272b3fe9916 Mon Sep 17 00:00:00 2001 From: c Date: Fri, 13 Mar 2026 17:34:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=EF=BC=8C=E4=BC=98=E5=8C=96=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseFormWithTable.vue | 80 +++++++++++-- src/components/base/base-form/BaseForm.vue | 39 ++++++- .../base/base-item-dialog/BaseItemDialog.vue | 50 +++++++- .../base-pageable-table/BasePageableTable.vue | 19 +++ .../base/base-pageable-table/TableHeader.vue | 15 +++ .../base/base-pageable-table/TableMain.vue | 35 +++++- .../base/base-table-form/BaseTableForm.vue | 62 +++++++++- src/components/base/base-tree/BaseTree.vue | 38 ++++++ .../ExpandablePageableTable.vue | 108 ++++++++++++++++-- .../TreeSidePageableTable.vue | 52 +++++++-- src/views/systemset/sysrole/SysRoleView.vue | 2 +- .../stock-by-brand/StockByBrandView.vue | 2 +- .../stock-by-type/StockByTypeView.vue | 2 +- .../StockByWarehouseView.vue | 2 +- 14 files changed, 463 insertions(+), 43 deletions(-) diff --git a/src/components/base/base-form-with-table/BaseFormWithTable.vue b/src/components/base/base-form-with-table/BaseFormWithTable.vue index c243adb..e18b2c6 100644 --- a/src/components/base/base-form-with-table/BaseFormWithTable.vue +++ b/src/components/base/base-form-with-table/BaseFormWithTable.vue @@ -300,32 +300,62 @@ defineExpose({ .form-dialog { --el-dialog-width: fit-content !important; } + +.form-dialog :deep(.el-dialog) { + overflow: hidden; + border-radius: 8px; +} + +.form-dialog :deep(.el-dialog__header) { + padding: 16px 20px; + margin-right: 0; + background-color: var(--el-fill-color-light); + border-bottom: 1px solid var(--el-border-color-lighter); +} + +.form-dialog :deep(.el-dialog__title) { + font-size: 16px; + font-weight: 600; + color: var(--el-text-color-primary); +} + +.form-dialog :deep(.el-dialog__headerbtn) { + top: 16px; +} + .form-dialog :deep(.el-dialog__body) { - padding: 10px 20px; max-height: 70vh; + padding: 10px 20px; overflow-y: auto; } + .form-item-table { height: 40vh; } + .upload-row { display: flex; - align-items: center; /* 垂直居中对齐 */ - gap: 12px; /* 按钮和文字的间距 */ + gap: 12px; + align-items: center; width: 100%; } .upload-tip-side { margin-left: 4px; - opacity: 0.8; - font-size: 12px; /* 字体调小 */ - color: var(--el-text-color-secondary); /* 使用次要文字颜色 */ + font-size: 12px; line-height: 1.4; - white-space: nowrap; /* 防止意外换行,如果空间不够可去掉 */ + color: var(--el-text-color-secondary); + white-space: nowrap; + opacity: 0.8; +} + +.tip-desc { + font-weight: 500; + color: var(--el-color-primary); } .form-dialog .el-dialog__header { - padding-bottom: 0px; + padding-bottom: 0; } .form-dialog .el-dialog__body { @@ -335,15 +365,47 @@ defineExpose({ .el-dialog { --el-dialog-margin-top: 5vh !important; } + .table-actions { + display: flex; + align-items: center; + justify-content: space-between; + padding: 5px 0; margin-top: 10px; text-align: right; - padding: 5px 0; } + .ml-2 { margin-left: 8px; } + .el-icon { vertical-align: middle; } + +:deep(.el-divider__text) { + font-weight: 600; + color: var(--el-text-color-primary); +} + +:deep(.el-divider__text .el-icon) { + margin-right: 6px; +} + +:deep(.el-table) { + font-size: 13px; +} + +:deep(.el-table th.el-table__cell) { + font-weight: 600; + background-color: var(--el-fill-color-light); +} + +:deep(.el-upload) { + display: inline-flex; +} + +:deep(.el-upload__input) { + display: none; +} diff --git a/src/components/base/base-form/BaseForm.vue b/src/components/base/base-form/BaseForm.vue index 1f61f22..770c624 100644 --- a/src/components/base/base-form/BaseForm.vue +++ b/src/components/base/base-form/BaseForm.vue @@ -60,9 +60,42 @@ const handleReset = () => { diff --git a/src/components/base/base-item-dialog/BaseItemDialog.vue b/src/components/base/base-item-dialog/BaseItemDialog.vue index b00d04c..f00c80f 100644 --- a/src/components/base/base-item-dialog/BaseItemDialog.vue +++ b/src/components/base/base-item-dialog/BaseItemDialog.vue @@ -60,19 +60,65 @@ watch(() => parentParamValue.value, loadData); diff --git a/src/components/base/base-pageable-table/TableHeader.vue b/src/components/base/base-pageable-table/TableHeader.vue index d4d7058..a37c8e8 100644 --- a/src/components/base/base-pageable-table/TableHeader.vue +++ b/src/components/base/base-pageable-table/TableHeader.vue @@ -30,9 +30,24 @@ const searcherParams = defineModel>("searcherParams"); diff --git a/src/components/base/base-pageable-table/TableMain.vue b/src/components/base/base-pageable-table/TableMain.vue index 270f750..5924759 100644 --- a/src/components/base/base-pageable-table/TableMain.vue +++ b/src/components/base/base-pageable-table/TableMain.vue @@ -49,7 +49,7 @@ defineExpose({ }); + + diff --git a/src/components/base/base-table-form/BaseTableForm.vue b/src/components/base/base-table-form/BaseTableForm.vue index 39d62ac..5d65198 100644 --- a/src/components/base/base-table-form/BaseTableForm.vue +++ b/src/components/base/base-table-form/BaseTableForm.vue @@ -199,20 +199,41 @@ defineExpose({ diff --git a/src/components/base/base-tree/BaseTree.vue b/src/components/base/base-tree/BaseTree.vue index 184145b..e93e4ef 100644 --- a/src/components/base/base-tree/BaseTree.vue +++ b/src/components/base/base-tree/BaseTree.vue @@ -74,3 +74,41 @@ defineExpose({ /> + + diff --git a/src/components/base/expandable-pageable-table/ExpandablePageableTable.vue b/src/components/base/expandable-pageable-table/ExpandablePageableTable.vue index fb0af3a..07cc8c8 100644 --- a/src/components/base/expandable-pageable-table/ExpandablePageableTable.vue +++ b/src/components/base/expandable-pageable-table/ExpandablePageableTable.vue @@ -5,7 +5,7 @@ import BasePageableTable from "../base-pageable-table/BasePageableTable.vue"; import type { SearcherProp } from "../search-bar/SearchBarType"; import type { ToolButtonProp } from "../table-tool-bar/TableToolBarType"; import { get } from "@/common/http/request"; -import { Loading } from "@element-plus/icons-vue"; +import { Loading, ArrowRight } from "@element-plus/icons-vue"; const props = defineProps({ searchers: Array as PropType, @@ -210,21 +210,28 @@ defineExpose({