mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 02:08:43 +08:00 
			
		
		
		
	perf: add xtextbutton
This commit is contained in:
		| @@ -0,0 +1,46 @@ | |||||||
|  | <script setup lang="ts"> | ||||||
|  | import { propTypes } from '@/utils/propTypes' | ||||||
|  | import { computed, useAttrs, PropType } from 'vue' | ||||||
|  |  | ||||||
|  | const props = defineProps({ | ||||||
|  |   modelValue: propTypes.bool.def(false), | ||||||
|  |   loading: propTypes.bool.def(false), | ||||||
|  |   preIcon: propTypes.string.def(''), | ||||||
|  |   postIcon: propTypes.string.def(''), | ||||||
|  |   title: propTypes.string.def(''), | ||||||
|  |   type: propTypes.oneOf(['', 'primary', 'success', 'warning', 'danger', 'info']).def('primary'), | ||||||
|  |   circle: propTypes.bool.def(false), | ||||||
|  |   round: propTypes.bool.def(false), | ||||||
|  |   plain: propTypes.bool.def(false), | ||||||
|  |   onClick: { type: Function as PropType<(...args) => any>, default: null } | ||||||
|  | }) | ||||||
|  | const getBindValue = computed(() => { | ||||||
|  |   const delArr: string[] = ['title', 'preIcon', 'postIcon', 'onClick'] | ||||||
|  |   const attrs = useAttrs() | ||||||
|  |   const obj = { ...attrs, ...props } | ||||||
|  |   for (const key in obj) { | ||||||
|  |     if (delArr.indexOf(key) !== -1) { | ||||||
|  |       delete obj[key] | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   return obj | ||||||
|  | }) | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <template> | ||||||
|  |   <el-button link v-bind="getBindValue" @click="onClick"> | ||||||
|  |     <Icon :icon="preIcon" v-if="preIcon" class="mr-1px" /> | ||||||
|  |     {{ title ? title : '' }} | ||||||
|  |     <Icon :icon="postIcon" v-if="postIcon" class="mr-1px" /> | ||||||
|  |   </el-button> | ||||||
|  | </template> | ||||||
|  | <style lang="less" scoped> | ||||||
|  | :deep(.el-button.is-text) { | ||||||
|  |   margin-left: 0; | ||||||
|  |   padding: 8px 4px; | ||||||
|  | } | ||||||
|  | :deep(.el-button.is-link) { | ||||||
|  |   margin-left: 0; | ||||||
|  |   padding: 8px 4px; | ||||||
|  | } | ||||||
|  | </style> | ||||||
		Reference in New Issue
	
	Block a user
	 xingyu4j
					xingyu4j