当前位置: 首页 > news >正文

【JEECG 组件扩展】JSwitch开关组件扩展单个多选框样式 - 详解

【JEECG 组件扩展】JSwitch开关组件扩展单个多选框样式 - 详解

功能说明

基于JeecgBoot开源框架,JSwitch开关组件扩展,支持单个多选样式。

效果展示:

使用示例:

  {field: 'JSwitch',component: 'JSwitch',label: 'JSwitch',},{field: 'JSwitchCheckBox',component: 'JSwitch',label: 'JSwitchCheckBox',componentProps: { checkBox: true },},{field: 'JSwitchSelect',component: 'JSwitch',label: 'JSwitchSelect',componentProps: { query: true },},

JSwitch开关组件扩展源码:


<script lang="ts" setup>import { computed, ref, watch } from 'vue';import { propTypes } from '/@/utils/propTypes';import { useAttrs } from '/@/hooks/core/useAttrs';import { useDesign } from '/@/hooks/web/useDesign';import { useRuleFormItem } from '/@/hooks/component/useFormItem';const { prefixCls } = useDesign('j-switch');const props = defineProps({// v-model:valuevalue: propTypes.oneOfType([propTypes.string, propTypes.number]),// 取值 optionsoptions: propTypes.array.def(() => ['Y', 'N']),// 文本 optionslabelOptions: propTypes.array.def(() => ['是', '否']),// 是否使用下拉query: propTypes.bool.def(false),// 是否使用单个多选框 author:wyhcheckBox: propTypes.bool.def(false),// 是否禁用disabled: propTypes.bool.def(false),});const attrs = useAttrs();const emit = defineEmits(['change', 'update:value']);const checked = ref(false);const [state] = useRuleFormItem(props, 'value', 'change');watch(() => props.value,(val) => {if (!props.query) {if (!val && !props.options.includes(val)) {checked.value = false;emitValue(props.options[1]);} else {checked.value = props.options[0] == val;}}},{ immediate: true });const selectOptions = computed(() => {let options: any[] = [];options.push({ value: props.options[0], label: props.labelOptions[0] });options.push({ value: props.options[1], label: props.labelOptions[1] });return options;});// Switch事件function onSwitchChange(checked) {let flag = checked === false ? props.options[1] : props.options[0];emitValue(flag);}// CheckBox事件 author:wyhfunction onCheckBoxChange(e) {let flag = e.target.checked == false ? props.options[1] : props.options[0];emitValue(flag);}// Select选择器事件function onSelectChange(value) {emitValue(value);}function emitValue(value) {emit('change', value);emit('update:value', value);}
</script>

http://www.rkmt.cn/news/44665.html

相关文章:

  • 阿道夫
  • 使用jmeter做压力测试 - 实践
  • CSP2025游记总结
  • 连续出现的字符
  • 11.8 NOIP模拟4 改题记录
  • TCP和
  • 翻译[9]-让sshfs再次伟大于浏览器中
  • python 多个excel合并
  • U629961 焦头烂额的日奈委员长 の markdown
  • 使用Milvus和DeepSeek构建RAG demo - 实践
  • 如何写毕业论文?10个高效写作技巧+AI论文工具推荐(2025最新)
  • 二 C#工程化部署Yolo - 详解
  • MATLAB 实现 SRCNN 图像超分辨率重建
  • Java-148 深入浅出 MongoDB 聚合操控:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化
  • 深入解析:vscode-cpptools调试器扩展:监视表达式高级功能
  • 人工势场法(APF)路径规划 MATLAB
  • MySQL--多表查询
  • 哈佛放屁都是香的?
  • 深入解析:李宏毅2025春季机器学习作业ML2025_Spring_HW4在kaggle上的实操笔记
  • 完整教程:PostgreSQL + Redis + Elasticsearch 实时同步方案实践:从触发器到高性能搜索
  • 基于最小二乘法的五颗可见卫星伪距定位
  • new day
  • 2025 年 11 月冰水机厂家推荐排行榜,工业冰水机,冷却冰水机,制冷冰水机,低温冰水机公司精选
  • 完整教程:用 Java 指挥 3500 只机器人跳舞——Ocado 高密度仓储集群的架构实践
  • new day
  • How to do PhD work
  • 关于计算机语言的学习
  • VisionPro学习笔记-CogColorExtractorTool和CogColorSegmenterTool
  • CSP挂分记
  • 深入解析:51单片机基础-动态数码管显示