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

Vue封装组件

1.创建组件文件

import { withInstall } from '@/utils/tool'
import FastTableProjectColumn from './src/fast-table-project-column.vue'

export default withInstall(FastTableProjectColumn)

 

// 全局组件安装
export const withInstall = <T>(component: T, alias?: string) => {
	const comp = component as any
	comp.install = (app: App) => {
		app.component(comp.name || comp.displayName, component)
		if (alias) {
			app.config.globalProperties[alias] = component
		}
	}
	return component as T & Plugin
}
<template>
	<el-table-column
		:prop="prop"
		:label="label"
		:header-align="headerAlign"
		:align="align"
		:width="width"
		:min-width="minWidth"
		:class-name="className"
	>
		<template #default="scope">
			{{ getValByProjectId(store.appStore.projectList, scope.row[props.prop]) }}
		</template>
	</el-table-column>
</template>

<script setup lang="ts" name="FastTableProjectColumn">
	
import store from '@/store'
import { getValByProjectId } from '@/utils/tool'

const props = defineProps({
	prop: {
		type: String,
		required: true
	},
	label: {
		type: String,
		required: true
	},
	headerAlign: {
		type: String,
		required: false,
		default: () => 'center'
	},
	align: {
		type: String,
		required: false,
		default: () => 'center'
	},
	width: {
		type: String,
		required: false,
		default: () => ''
	},
	minWidth: {
		type: String,
		required: false,
		default: () => ''
	},
	className: {
		type: String,
		required: false,
		default: () => ''
	}
})
</script>
// 获取字典Label
export const getDictLabel = (dictList: any[], dictType: string, dictValue: string) => {
	const type = dictList.find((element: any) => element.dictType === dictType)
	if (type) {
		const val = type.dataList.find((element: any) => element.dictValue === dictValue + '')
		if (val) {
			return val.dictLabel
		} else {
			return dictValue
		}
	} else {
		return dictValue
	}
}

2.注册全局组件

import FastTableColumn from '@/components/fast-table-column'
app.use(FastTableColumn)


http://www.kler.cn/a/416525.html

相关文章:

  • 电路基础——相量法
  • 在鸿蒙应用中 Debug 对开发者的帮助
  • HarmonyOS4+NEXT星河版入门与项目实战(23)------组件转场动画
  • 滑动窗口篇——如行云流水般的高效解法与智能之道(3)
  • vue页面跟数据不同步this.$set
  • 文本搜索程序(Qt)
  • 详解collections库常用的数据结构
  • hive和spark读写分区表NULL列
  • 哈希表算法题
  • Oracle系列---【关闭归档日志】
  • RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程
  • 【数据湖仓】-- 阿里云 EMR 和 AWS EMR 工具对比
  • 【Redis】Redis介绍
  • word2vec
  • 娱乐API:快速生成藏头诗、藏尾诗和藏中诗
  • 详解Ethereum交易当中的Input Data
  • 论文笔记:RAR: Retrieving And Ranking Augmented MLLMs for Visual Recognition
  • 算法思维初学者指南
  • XRD精修教程:CMPR软件介绍-测试狗
  • Spring Boot 开发环境搭建及示例应用
  • 数据分析-52-时间序列分解之变分模态分解VMD
  • 【论文笔记】Tool Learning with Foundation Models 论文笔记
  • 泷羽sec-蓝队基础之网络七层杀伤链(上) 学习笔记
  • 【Datawhale组队学习】模型减肥秘籍:模型压缩技术6——项目实践
  • 工业一体机在自动化产线的作用及核心优势有哪些
  • Docker for Everyone Plus——Unbreakable!