57 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <!--本地 icon 资源, uniapp 打包到 app 仅支持标签 image, 打包小程序和 H5 均可支持标签 img -->
 | |
|   <div class="common-icon-container">
 | |
|     <image
 | |
|       v-if="isApp"
 | |
|       class="common-icon"
 | |
|       :src="props.src"
 | |
|       :style="{ width: props.width, height: props.height }"
 | |
|     />
 | |
|     <img
 | |
|       v-else
 | |
|       class="common-icon"
 | |
|       :src="props.src"
 | |
|       :style="{ width: props.width, height: props.height }"
 | |
|     >
 | |
|   </div>
 | |
| </template>
 | |
| <script lang="ts">
 | |
| import { isApp } from '../utils/env';
 | |
| 
 | |
| interface Props {
 | |
|   src: string;
 | |
|   width?: string;
 | |
|   height?: string;
 | |
| }
 | |
| 
 | |
| export default {
 | |
|   props: {
 | |
|     src: {
 | |
|       type: String,
 | |
|       default: '',
 | |
|     },
 | |
|     width: {
 | |
|       type: String,
 | |
|       default: '16px',
 | |
|     },
 | |
|     height: {
 | |
|       type: String,
 | |
|       default: '16px',
 | |
|     },
 | |
|   },
 | |
|   setup(props: Props) {
 | |
|     return {
 | |
|       props,
 | |
|       isApp,
 | |
|     };
 | |
|   },
 | |
| };
 | |
| </script>
 | |
| <style lang="scss" scoped>
 | |
| .common-icon-container {
 | |
|   display: flex;
 | |
|   justify-content: center;
 | |
|   align-items: center;
 | |
| }
 | |
| </style>
 |