vue elementui 動態(tài)追加下拉框、輸入框功能
更新時間:2024年04月27日 10:09:51 作者:鹽多碧咸。。
這篇文章主要介紹了vue elementui 動態(tài)追加下拉框、輸入框功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
vue elementui 動態(tài)追加下拉框、輸入框
上代碼:
<template> <div> <el-dialog append-to-body :close-on-click-modal="false" :close-on-press-escape="false" width="65%" @close="onClose" :modal-append-to-body="true" title="新建" custom-class="dialogBox" :visible.sync="dialogVisible" :lock-scroll="true" :destroy-on-close="true"> <el-form :model="combinationInfo" label-width="90px" ref="combinationForm" :rules="rules" :inline="true" size="small"> <el-row> <el-col :span="12"> <el-form-item prop="benchMarks" label="名稱"> <div style="color: #fb6b3f;width: 230px;">比例之和需為100%(當前 <span>{{benchmarkTotal}}</span> <span></span>%) </div> <div v-for="(item,index) in combinationInfo.benchMarks" :key="index"> <el-select style="margin-bottom: 10px;" clearable filterable collapse-tags placeholder="請選擇" class="benchmarkSelectWidth" @change="changeBenchmark" v-model="item.code" > <el-option v-for="(item1, idx) in list" :key="idx" :label="item1.name" :value="item1.code" > </el-option> </el-select> <el-input v-model="item.percentage" @input="changePercentage" placeholder="請輸入" class="benchmarkInputWidth"></el-input> <span style="padding-left: 2px;">%</span> <i v-if="index !== 0" style="font-size: 18px;cursor: pointer;padding: 0 0 0 10px;color: #F56C6C;" @click="deleteIndex(index)" class="el-icon-remove-outline"></i> </div> <div v-if="benchmarkRule" style="color: #F56C6C;font-size: 12px;margin-top: -17px">請選擇名稱</div> <el-button @click="addIndex" size="mini" type="primary" icon="el-icon-plus">添加</el-button> </el-form-item> </el-col> <el-col :span="12"> </el-col> </el-row> </el-form> <div style="text-align: right;margin-top: 20px;"> <el-button size="mini" @click="onClose()">取 消</el-button> <el-button size="mini" type="primary" @click="onConfirm()" >提 交</el-button > </div> </el-dialog> </div> </template>
data() { return { dialogVisible: false, combinationInfo: { benchMarks: [ { code: '', name: '', percentage: '', } ] }, rules: { benchMarks: [{ required: true }], }, benchmarkRule: false, benchmarkTotal: 0, list: [ { name: 'aaa', code: '111', }, { name: 'bbb', code: '222', }, { name: 'ccc', code: '333', }, ], } }, methods: { // 添加 addIndex () { this.combinationInfo.benchMarks.push({ code: '', percentage: '', }) }, // 刪除 deleteIndex (index) { this.combinationInfo.benchMarks.splice(index,1) this.changePercentage() }, changeBenchmark (val) { if (this.combinationInfo.benchMarks.length && this.combinationInfo.benchMarks.length > 1) { if (!this.isRepeat(this.combinationInfo.benchMarks,'code')) { this.$message.warning('所選名稱不能重復!') return } } }, // 判斷數(shù)組中是否有重復數(shù)據(jù)(true 不存在;false 存在重復) isRepeat(arr, key) { var obj = {}; for (let i = 0; i < arr.length; i ++) { if (obj[arr[i][key]]) { return false; // 存在 } else { obj[arr[i][key]] = arr[i]; } } return true; }, // 名稱值變化時 changePercentage (val) { this.benchmarkTotal = 0 if (this.combinationInfo.benchMarks.length && this.combinationInfo.benchMarks.length > 0) { for(let i = 0; i < this.combinationInfo.benchMarks.length; i++) { if (this.combinationInfo.benchMarks[i].percentage === '') { break } this.benchmarkTotal+=parseFloat(this.combinationInfo.benchMarks[i].percentage) } } }, // 提交 onConfirm() { if (this.combinationInfo.benchMarks) { for(let i = 0; i< this.combinationInfo.benchMarks.length; i++) { if (this.combinationInfo.benchMarks[i].code) { this.benchmarkRule = false } else { this.benchmarkRule = true return } } } if (this.benchmarkTotal !== 100) { this.$message.warning('名稱比例之和需為100%!') return } }, // 取消 onClose() { this.benchmarkRule = false this.dialogVisible = false }, },
展示效果圖:
到此這篇關于vue elementui 動態(tài)追加下拉框、輸入框的文章就介紹到這了,更多相關vue elementui 追加下拉框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
VUE3+TS遞歸組件實現(xiàn)TreeList設計實例詳解
這篇文章主要為大家介紹了VUE3+TS遞歸組件實現(xiàn)TreeList設計實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09el-form-item中表單項label和表單項內(nèi)容換行實現(xiàn)方法
這篇文章主要給大家介紹了el-form-item中表單項label和表單項內(nèi)容換行實現(xiàn)的相關資料,每個表單el-form由多個表單域el-form-item組成,需要的朋友可以參考下2023-09-09vue2利用html2canvas+jspdf動態(tài)生成多頁PDF方式
利用vue2結合html2canvas和jspdf,可以實現(xiàn)前端頁面內(nèi)容導出為PDF的功能,首先需要安裝相關依賴,使用html2canvas將指定div內(nèi)容捕捉為圖像,再通過jspdf將圖像轉換為PDF2024-09-09