【自己写的npm_vue_UI插件】

目的:做项目的时候,特别是 大数据这种界面需要好看的框框去美化,如果没有UI美工的帮助,前端自己是很不容易, 又因为如果直接以图片的方式引用svg 不能改变内层svg的属性 ,但是以下引用方式都不能满足我的需求(svg的大小,内部背景颜色或者线条的颜色根据外部传入的值更改),最后我写了一个npm插件 ✌

自己研发的UI美化插件目前还在继续做 ✌

使用方式

npm install wxb_ui

在这里插入图片描述
在这里插入图片描述

可传入变量

  • 高度:height (必须)
  • 宽度:width (不设置的话默认是100%)
  • 颜色 :color=“[‘#00c0ff’, ‘#00fff0’]” 分为主色和配色 数组中一个是主色 第二个是配色
  • 背景色:backgroundColor (部分有背景色)
  • 有插槽(重点提醒)
<div id="app">
        <Xbline11 style="height:80px;">line11</Xbline11>
     
        <Xbline10 style="height:80px;">line10</Xbline10>
     
        <Xbline9 style="height:80px;">line9</Xbline9>
       
        <Xbline8 style="height: 80px;">line8</Xbline8>
      
        <Xbline7 style="height: 60px;">line7</Xbline7>
      
        <Xbline6 style="height: 560px;">line6</Xbline6>
      
        <Xbline5 style="height: 60px;">line5</Xbline5>
      
        <Xbline4 style="height: 30px;">line4</Xbline4>
       
        <Xbline3 style="height: 50px;">line3</Xbline3>
      
        <Xbline2 style="height: 20px;">line2</Xbline2>
        
        <Xbline1 style="height: 20px;">line1</Xbline1>
      
        <Box14 style="height: 120px;">box14</Box14>
       
        <Box13 style="height: 120px;">box13</Box13>
       
        <Box11 style="height: 120px;">box11</Box11>
      
        <Box12 style="height: 100px;">box12</Box12>
      
        <Box10 style="height: 100px;">box10</Box10>
       
        <Box9 style="height: 100px;">box9</Box9>
       
        <Box8 style="height: 100px;">box8</Box8>
       
        <Box7 style="height: 100px;">box7</Box7>
        
        <Box6 style="height: 100px;">box6</Box6>
       
        <Box5 style="height: 180px;">box5</Box5>
      
        <Box1 style="height: 150px;width: 480px;" :color="['#00c0ff', '#00fff0']">1</Box1>
       
        <Box2 style="height: 150px;width: 480px;" :backgroundColor="`#99dfdf`">2</Box2>
       
        <Box3 style="height: 150px;width: 480px;">box3</Box3>
        
        <Box4 style="height: 150px;width: 480px;">box4</Box4>

    </div>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

    <threeLine style="height:380px"></threeLine>
props: {
        color: {
            type: Array,
            default: () => { [] },

        },
        backgroundColor: {
            type: String,
            default: '#dddddd'
        },
        fontSize: {
            type: String,
            default: '16px'
        },
        textName: {
            type: Array,
            default: function () {
                return ['name1', 'name2']
            }
        },
        control3d: {
            type: Boolean,
            default: true

        }

    },

在这里插入图片描述


     <TextStroke3d style="height:580px"></TextStroke3d>
 props: {
        color: {
            default: 0x00ffc0, //字体颜色
        },
        backgroundColor: {
            default: 0xF0f0f0  // 背景颜色
        },
        txt: {
            type: String,  // 显示内容
            default: '#wxb\n hello'
        },
        control3d: {
            type: Boolean,
            default: true  // 是否有鼠标控制3d旋转

        }

    },

在这里插入图片描述

     <GeometryText style="height:300px"></GeometryText>
     参数
      color: {
            default: 0x00ffc0, //字体颜色
        },
        backgroundColor: {
            default: 0xF0f0f0 // 背景颜色
        },
        txt: {
            type: String,
            default: '#wxbhello'  //显示的字体
        },
        fontSize: {
            type: String,
            default: '120'  //字体大小 0最小
        },
        control3d: {
            type: Boolean,
            default: false  // 是否有鼠标控制3d旋转

        }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对您的问题,以下是实现 Vue+Element-UI上传图片并压缩的基本步骤: 1. 安装依赖 在项目中安装 Element-UI插件 vue-image-crop-upload 以及图片压缩库,可使用以下命令: ``` npm install element-ui vue-image-crop-upload compressjs --save ``` 2. 引入 Element-UI 在 main.js 中引入 Element-UI: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 使用 vue-image-crop-upload 在需要上传图片的组件中使用 vue-image-crop-upload,可使用以下代码: ```vue <template> <div> <vue-image-crop-upload ref="upload" :url="uploadUrl" :headers="uploadHeaders" :size="size" :accept="accept" :beforeUpload="beforeUpload" :cropConfig="cropConfig" :compressConfig="compressConfig" @input="handleInput" @crop-success="handleCropSuccess" > <el-button size="small" type="primary">上传图片</el-button> </vue-image-crop-upload> </div> </template> <script> import VueImageCropUpload from 'vue-image-crop-upload' export default { components: { VueImageCropUpload }, data() { return { uploadUrl: 'xxx', // 上传地址 uploadHeaders: { // 上传请求头 Authorization: 'Bearer ' + getToken() }, size: 1024 * 1024 * 2, // 上传图片大小限制 accept: '.jpg,.jpeg,.png', // 上传图片格式限制 cropConfig: { // 图片裁剪配置 aspectRatio: 1 / 1, autoCropArea: 1, viewMode: 1, zoomable: false, guides: false, dragMode: 'move', cropBoxResizable: false, crop: () => {} }, compressConfig: { // 图片压缩配置 targetSize: 1024 * 1024, // 目标大小 quality: 0.7, // 压缩质量 mimeType: 'image/jpeg' // 输出格式 } } }, methods: { beforeUpload(file) { // 文件上传前的回调函数 this.$refs.upload.startUpload() }, handleInput(file) { // 文件选择后的回调函数 this.$refs.upload.showCrop() }, handleCropSuccess(blob, file) { // 图片裁剪成功后的回调函数 this.compressImage(blob, file) // 压缩图片 }, compressImage(blob, file) { // 图片压缩 const reader = new FileReader() reader.readAsDataURL(blob) reader.onload = (e) => { const base64 = e.target.result const compressedBlob = Compress.compress(base64, this.compressConfig) const compressedFile = new File([compressedBlob], file.name, { type: compressedBlob.type }) this.$emit('upload', compressedFile) // 触发上传事件 } } } } </script> ``` 4. 完成上传 在父组件中监听上传事件,使用 axios 或其他方法上传文件至服务器: ```vue <template> <div> <upload :action="uploadUrl" @upload="handleUpload"></upload> </div> </template> <script> import axios from 'axios' import Upload from './Upload.vue' export default { components: { Upload }, data() { return { uploadUrl: 'xxx' // 上传地址 } }, methods: { handleUpload(file) { const formData = new FormData() formData.append('file', file) axios.post(this.uploadUrl, formData).then(response => { console.log(response.data) }) } } } </script> ``` 以上就是实现 Vue+Element-UI上传图片并压缩的基本步骤,您可以根据您的具体需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值