当前位置: 首页 > news >正文

m-card卡片组件

实现

自定义卡片标题、兼容其他组件进行二次嵌套、默认标题前展示小红条、自定义卡片其他样式

一、组件源码

1、typescript 部分

<script lang="ts">
export default {name: 'm-card'
};
</script><script setup lang="ts">
import { reactive } from "vue";const props = defineProps({// 标题title: {type: String,default: ''},// 嵌套组件是否开启卡片模式isCard: {type: Boolean,default: true},// 标题前是否展示小红条showPrefix: {type: Boolean,default: true},// 自定义样式style: {type: Object,default: () => {return {// 卡片框样式,例如圆角、背景色、边框...cardStyle: {},// 标题前小红条的颜色、大小...prefixStyle: {},// 标题字体颜色、大小...titleStyle: {}}}}
});const state = reactive({cardStyle: {borderRadius: '0',...props.style.cardStyle},prefixStyle: {backgroundColor: '#FF6650',...props.style.prefixStyle},titleStyle: {fontSize: '16px',fontWeight: 'bolder',...props.style.titleStyle,}
})
</script>

2、html 部分

<template><div class="m-card"><el-card class="mcard-container" v-if="isCard" :style="state.cardStyle"><template #header v-if="props.title !== ''"><div class="mcard-header"><span class="title-prefix" :style="state.prefixStyle" v-if="props.showPrefix"></span><span class="title-text" :style="state.titleStyle">{{ props.title }}</span></div></template><slot></slot></el-card><div v-if="!isCard"><slot /></div></div>
</template>

3、scss 部分

<style lang="scss" scoped>
::v-deep .mcard-container{.el-card__header{padding: 24px 0px 16px 0px;}.el-card__body{padding: 16px 0;}
}
.mcard-container{padding: 0 24px;border: none;box-shadow: none;background-color: var(--bgColor);
}
.mcard-header {display: flex;line-height: 1;.title-prefix {width: 4px;height: inherit;margin-right: 12px;border-radius: 92px;}.title-text{color:var(--card-title-color)}
}
</style>

二、组件的使用

# 卡片属性

属性值说明类型默认值
title标题string''
isCard卡片是否显示booleantrue
showPrefix标题前是否展示小红条booleantrue
style自定义卡片样式Object

{

  cardStyle: {}, // 卡片样式,eg: 圆角、背景色、边框...

  prefixStyle: {}, // 小红条颜色、大小...

  titleStyle: {}, // 标题字体颜色、大小...

}

1、自定义标题

<template><div class="app-container"><m-card title="卡片标题">这是卡片内容</m-card></div>
</template>

2、自定义卡片样式

(1)卡片框样式

<script lang="ts" setup>
const cardStyle:object = {cardStyle: {borderLeft:'7px solid #165DFF',borderRadius: '6px',marginBottom: '20px',}
}
</script><template><div class="app-container"><m-card title="卡片标题":showPrefix="false":style="cardStyle">这是卡片内容</m-card></div>
</template>

(2)标题前小红条

<script lang="ts" setup>
const prefixStyle:object = {prefixStyle: {width: '16px',height: '16px',backgroundColor: "#165DFF",borderRadius: "50%",}
}
</script><template><div class="app-container"><m-card title="卡片标题":style="prefixStyle">这是卡片内容</m-card></div>
</template>

(3)标题字体

<script lang="ts" setup>
const titleStyle:object = {titleStyle: {color: "#FF6650",fontSize: "28px",}
}
</script><template><div class="app-container"><m-card title="卡片标题":style="titleStyle">这是卡片内容</m-card></div>
</template>

http://www.dtcms.com/a/499620.html

相关文章:

  • 企业内部网站建设方案怎样营销
  • 推荐一款开源的轻量级知识管理工具
  • GNU/Linux - GCC编译的静态库
  • 西安建网站哪家好企业网站蓝色模板下载
  • 成都模板建站代理网站优化要做哪些工作
  • Java MyBatis(一)--- 注解和XML的使用
  • 东莞官方网站 优帮云网站怎么做推广和优化
  • win64_11gR2_client.zip 怎么安装?Oracle 11g 客户端详细安装步骤
  • 建设向58同城的网站给客户做网站需要提供
  • flink sql 所有函数详细用例
  • Flink 1.20 flink-config.yml 配置详解
  • 湖州网站集约化平台南京做网站哪家公司好
  • 【深度学习新浪潮】2025全球机器学习技术大会:Agent技术突破与产业落地全景解析
  • 长沙整站优化梅河口信息网
  • Linux入门:动静态库的理解与加载
  • 云上救火指南:AWS常见服务告警的快速恢复与最小影响方案
  • 九号线香网站建设淘客网站后台怎么做
  • FPGA 入门 3 个月学习计划表
  • 专业的做网站网站做外链好嘛
  • ios android 小程序 蓝牙 CRC16_MODBUS
  • 沧州网站建设优化案例怎么创建一个网站
  • 【小沐杂货铺】基于Three.js渲染三维风力发电机(WebGL、vue、react、WindTurbine)
  • Socket 网络编程
  • 哪里可以做网站网站兼容性怎么解决
  • 网站备案流程实名认证哪个平台做网站好
  • 最版网站建设案例中国建设银行开户行查询
  • 衡水网站制作多少钱世界著名产品设计作品
  • 我们如何更好地相处和协作?
  • Vlanif的作用
  • 62.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--自训练ML模型