最全的免费PDF处理软件 WEB-IM 中文艺术字体 WEBRTC视频会议 ESP32智能小车 多功能PDF,流水码,二维码,条码 Springboot中@ResponseBody返回对象JSON和返回String,json对象嵌套引用解决 Vue自定义组件的样式不生效 VUE自定义控件值改变,父控件跟着变 Vue3 自定义组件,setup 详细写法,组件名称怎么指定,组件属性怎么设置 从 JDK 5 开始到目前最新的 JDK 版本,Java 平台经历了多个重要的升级和功能改进 java http请求multipart/form-data数据,文本和附件 Jpa 使用Example模糊查询,多字段模糊查询 使用Spring Data JPA的查询方法命名规则,查询多条记录的一条记录可以通过以下方式实现 Spring Data JPA中,如果你想根据某个特定值查询单条记录 JSP JpaRepository 模糊查询的几种方式 pdf.js Nginx的 MIME TYPE问题导致的mjs文件加载出错的问题解决 The server responded with a non-JavaScript MIME type of "application/octet-stream". Vue.js中实现拖拽功 在使用JPA的JpaRepository进行模糊查询时,可以使用Like关键字,也可以使用Containing关键字。 three.js 设计一个类似红警的摄像机代码 three.js第三人称控制类代码 要使用FFmpeg将两个视频合成为一个视频 ffmpeg一个文件拆分成多个文件 ffmpeg调用方法,ffmpeg基础命令 java 语音播报 js监听页面所有网络请求 Three.js中文手册 Springboot多数据源配置 国外服务器网站会被百度收录吗?影响百度收录的情况有哪些 Spring Boot中内置Tomcat最大连接数、线程数与等待数 实践调优 jquery附件上传 java开发工具 联系我们 小张介绍 视频会议 文档操作
扫码关注公众号了解更多内容 扫码了解更多

VUE自定义控件值改变,父控件跟着变

发布时间: 2024-04-16 预览次数:

自定义控件

export default {
  name: 'CustomIcon',
  props: {
    // 定义组件属性
    value: {
      type: String,
      required: false
    },
    style: {
      type: String,
      required: false
    },
    canSelect: {
      type: Boolean,
      required: false
    },
    size: {
      type: Number,
      required: false
    },
    color: {
      type: String,
      required: false
    },
    changeValue:{//通知父控件值变
      type: Function ,
      required: false
    }

  },
  setup(props) {
    const value = ref(props.value);
    const size = ref(props.size);
    const color = ref(props.color);
    const style = ref(props.style);
    const canSelect = ref(props.canSelect);
    const buttonRef = ref();
    const popoverRef = ref();
    const iconList = reactive ([
      "Plus","WindPower"
    ])
    if(style.value==null){
      style.value = {};
    }
    style.value.cursor = 'pointer';   
    style.value.verticalAlign = 'middle';
    if(size.value>0){
      style.value.fontSize = size.value+'px';
    }
    //打开选择
    function openSelect() {
      console.log("openselect");
    }
    //选择确定
    const onSelect = function(icon){
      console.log(icon);
      value.value = icon;
      if(props.changeValue){
        props.changeValue(icon);//掉用方法更改父控件值
      }
    }
    
    return {
      value,
      canSelect,
      openSelect,
      onSelect,
      buttonRef,
      popoverRef,
      style,
      iconList,
      size,
      color,
    };
  }
};

父控件调用

<el-form-item label="图标">
       <CustomIcon :value="form.icon" :changeValue="function(d){form.icon=d}" canSelect="true" size="20" />
 </el-form-item>

思路就是父控件准备一个方法来改变自己的值,子控件负责调用,自定义子控件只需参考,25行和第59行代码