当前位置:首页 > 前端教程

elementui投票

2026-03-06 07:37:23前端教程

ElementUI 投票组件实现

ElementUI 本身没有直接提供投票组件,但可以通过组合现有组件实现投票功能。以下是几种常见的实现方式:

单选投票实现

elementui投票

<template>
  <el-radio-group v-model="selectedOption">
    <el-radio 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value">
      {{ option.label }}
    </el-radio>
  </el-radio-group>
  <el-button type="primary" @click="submitVote">提交投票</el-button>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'A', label: '选项A' },
        { value: 'B', label: '选项B' }
      ]
    }
  },
  methods: {
    submitVote() {
      console.log('已选择:', this.selectedOption)
    }
  }
}
</script>

多选投票实现

elementui投票

<template>
  <el-checkbox-group v-model="selectedOptions">
    <el-checkbox 
      v-for="option in options" 
      :key="option.value" 
      :label="option.value">
      {{ option.label }}
    </el-checkbox>
  </el-checkbox-group>
  <el-button type="primary" @click="submitVote">提交投票</el-button>
</template>

<script>
export default {
  data() {
    return {
      selectedOptions: [],
      options: [
        { value: 'A', label: '选项A' },
        { value: 'B', label: '选项B' }
      ]
    }
  },
  methods: {
    submitVote() {
      console.log('已选择:', this.selectedOptions)
    }
  }
}
</script>

投票结果显示 可以使用进度条组件显示投票结果:

<template>
  <div v-for="result in results" :key="result.label">
    <span>{{ result.label }}</span>
    <el-progress 
      :percentage="result.percentage" 
      :status="result.status">
    </el-progress>
  </div>
</template>

<script>
export default {
  data() {
    return {
      results: [
        { label: '选项A', percentage: 60, status: 'success' },
        { label: '选项B', percentage: 40, status: '' }
      ]
    }
  }
}
</script>

高级投票功能 对于更复杂的投票需求,可以结合使用表单验证:

<template>
  <el-form :model="voteForm" :rules="rules" ref="voteForm">
    <el-form-item prop="selectedOption">
      <el-radio-group v-model="voteForm.selectedOption">
        <el-radio label="A">选项A</el-radio>
        <el-radio label="B">选项B</el-radio>
      </el-radio-group>
    </el-form-item>
    <el-button @click="submitForm('voteForm')">提交</el-button>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      voteForm: {
        selectedOption: ''
      },
      rules: {
        selectedOption: [
          { required: true, message: '请选择投票选项', trigger: 'change' }
        ]
      }
    }
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert('提交成功')
        }
      })
    }
  }
}
</script>

这些实现方式可以根据具体需求进行调整和组合,ElementUI 的灵活组件系统能够满足大多数投票场景的需求。

标签: elementui
分享给朋友:

相关文章

elementui使用

elementui使用

安装 Element UI 通过 npm 或 yarn 安装 Element UI: npm install element-ui --save # 或 yarn add element-ui 在项…

elementui iview

elementui iview

Element UI 和 iView 对比 Element UI 和 iView 都是基于 Vue.js 的 UI 组件库,广泛应用于企业级中后台系统的开发。以下是两者的主要特点和差异: Elem…

elementui表头

elementui表头

ElementUI 表头自定义方法 修改表头样式 通过 header-cell-class-name 属性为表头单元格添加自定义类名,配合 CSS 实现样式修改。例如更改背景色和字体: .el-t…

面试elementui

面试elementui

面试准备:ElementUI 核心知识点 基础组件与用法 熟悉常用组件如 el-button、el-form、el-table、el-dialog 的使用场景和配置项。例如表单验证需结合 rules…

elementui hover

elementui hover

ElementUI Hover 效果实现方法 ElementUI 提供了多种组件支持 hover 交互效果,主要通过 CSS 伪类和组件内置事件实现。 按钮 hover 效果 <el-but…

elementui ref

elementui ref

ElementUI 中使用 ref 的方法 在 ElementUI 中,ref 主要用于获取组件实例或 DOM 元素的引用,方便直接调用组件方法或操作 DOM。以下是几种常见的使用场景和示例: 获…