From 02dad133a8cb8cdff51f91c6782a5b62b9db0261 Mon Sep 17 00:00:00 2001
From: icssoa <615206459@qq.com>
Date: Tue, 13 Jun 2023 02:13:19 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0cl-form-card?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/crud/src/components/form-card.tsx | 43 +++++++++++++++++++
packages/crud/src/static/index.scss | 48 +++++++++++++++++++++-
2 files changed, 90 insertions(+), 1 deletion(-)
create mode 100644 packages/crud/src/components/form-card.tsx
diff --git a/packages/crud/src/components/form-card.tsx b/packages/crud/src/components/form-card.tsx
new file mode 100644
index 0000000..dacd2dc
--- /dev/null
+++ b/packages/crud/src/components/form-card.tsx
@@ -0,0 +1,43 @@
+import { defineComponent, ref } from "vue";
+import { ArrowDown, ArrowUp } from "@element-plus/icons-vue";
+
+export default defineComponent({
+ name: "cl-form-card",
+
+ components: {
+ ArrowDown,
+ ArrowUp
+ },
+
+ props: {
+ label: String,
+ isExpand: {
+ type: Boolean,
+ default: true
+ }
+ },
+
+ setup(props, { slots }) {
+ const isExpand = ref(props.isExpand);
+
+ async function toExpand() {
+ isExpand.value = !isExpand.value;
+ }
+
+ return () => {
+ return (
+
+ );
+ };
+ }
+});
diff --git a/packages/crud/src/static/index.scss b/packages/crud/src/static/index.scss
index a5479b3..9a708e9 100644
--- a/packages/crud/src/static/index.scss
+++ b/packages/crud/src/static/index.scss
@@ -165,7 +165,7 @@
}
.el-select {
- min-width: 120px;
+ min-width: 100px;
}
}
@@ -293,6 +293,13 @@
width: 100%;
}
}
+
+ &.no-label {
+ & > .el-form-item__label {
+ padding: 0;
+ width: 0 !important;
+ }
+ }
}
&-item {
@@ -337,6 +344,12 @@
}
}
+ &__children {
+ .el-form-item {
+ margin-bottom: 18px !important;
+ }
+ }
+
.el-table__header tr {
line-height: normal;
}
@@ -425,6 +438,39 @@
}
}
+.cl-form-card {
+ &__header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ font-size: 15px;
+ padding: 0 5px;
+ }
+
+ &__container {
+ border: 1px solid transparent;
+ border-top: 1px solid var(--el-border-color);
+ border-radius: 0;
+ transition: all 0.3s;
+ display: grid;
+ grid-template-rows: 0fr;
+
+ .cl-form-item__children {
+ margin: 10px 10px 10px 0px;
+ min-height: 0;
+ overflow: hidden;
+ }
+ }
+
+ &.is-expand {
+ .cl-form-card__container {
+ border: 1px solid var(--el-border-color);
+ border-radius: var(--el-border-radius-base);
+ grid-template-rows: 1fr;
+ }
+ }
+}
+
.cl-dialog {
border-radius: 5px;