📅多选月份
1  | <template>  | 
多选年份
1  | <!--  | 
element-ui 实现表格多行显示超出省略
1  | <!--  | 
基于element ui 封装下拉树
参考文章, vue3 element-plus 有treeSelect 组件
使用
1  | <!-- 下拉树 -->  | 
封装
1  | <template>  | 
基于element-plus的弹窗封装
1  | <template>  | 
使用,
1  | <Dialog  | 
基于element 的图片预览封装
preview/preview.vue
1  | <template>  | 
preview/index.js
1  | import PreviewItem from "./Preview.vue";  | 
使用,在main.js 注册组件
1  | // 图片弹窗  | 
全局调用
1  | this.$openPreview(['url'])  | 
基于element-plus 封装图片预览组件
命令式组件
Preview/index.vue
1  | <template>  | 
Preview/index.js
1  | import PreviewImg from './index.vue'  | 
使用
1  | import previewImg from "@/components/PreviewImg"  | 
vite 注册成全局 svg-icon 组件
vite 通过 使用 vite-plugin-svg-icons 插件使用 svg 图片
1  | yarn add vite-plugin-svg-icons -D  | 
在main.js 中
1  | import 'virtual:svg-icons-register'  | 
配置 vite.config.js
1  | //import path,{ resolve } from 'path'  | 
新增组件 icon-svg
1  | <template>  | 
全局注册 组件, 使用
1  | import { defineAsyncComponent } from 'vue'  | 
1  | <m-svg-icon class="w-1.5 h-1.5" name="hamburger"></m-svg-icon>  | 
vue-cli 注册全局 svg-icon 组件
components/SvgIcon/index.vue
1  | <template>  | 
assets/icons/svg 文件夹下放置 svg icon
assets/icons/index.js
1  | import Vue from 'vue'  | 
vue.config.js 配置 chainWebpack 加载 svg
1  | // set svg-sprite-loader  | 
在main.js 中注册
1  | import './assets/icons' // icon  | 
使用
1  | <svg-icon :icon-class="iconName" class-name="icon" style="height: 25px;width: 16px;"/>  | 
图标选择器组件
IconSelect/index.vue
1  | <template>  | 
IconSelect/requireIcons.js
1  | const req = require.context('../../assets/icons/svg', false, /\.svg$/)  | 
使用
1  | <el-col >  | 
对话输入框
通用的大模型对话框,支持 换行输入就两行展示,文本域超出4行出现滚动条,ctrl+ener换行,enter键触发发送
1  | 
  | 
- 本文作者: 王不留行
 - 本文链接: https://wyf195075595.github.io/2022/06/17/programming/vue/手写组件/
 - 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
 
		
                
                LiYongci
              
                
                衔蝉
              
                
                哈希米