Vue+ElementUI實現輸入框日期框下拉框動態展示

1.首先根據后端返回的數據格式獲取類型從而展示對應的框

// fieIdName label名字  
// fieIdType 類型  1和4是輸入框  2日期框  3日期時間框  5下拉框
// isRequired  1必填 0不必填
// fieIdTypeRange 存放一部分的下拉框的值 需要拿到數據后轉成下拉框所需要的格式這種數據格式
jsonExample: [{fieIdName: '賬戶',fieIdType: 1,isRequired: 1,fieIdValue: '',fieIdTypeRange: "是;否"}
]

2.對不符合的數據在進行一次處理? 比如剛才上述提到的fieIdTypeRange

2-1  定義一個空集合 放處理后的下拉框的數據let selectList=[]2-2  對后端返回的數據進行處理for (var n = 0; n < res.data.length; n++) {if (res.data[n].fieldType == 5) {const options = res.data[n].fieldTypeRange.split(";").map((val) => ({                     label: val, value: val }));selectList = options;this.$set(res.data[n], "selectoptions", selectList);}}2-3  下拉框綁定的數據源是 selectoptions

3.具體代碼如下

   <div class="form_item_content"><div  v-for="formItem in jsonExample" :key="formItem.id"><!--單行文本--><cbf-form-item v-if="formItem.fieldType == 1 || formItem.fieldType == 4":label="formItem.fieldName" :rules="requiredRules(formItem)"><cbf-inputstyle="width: 205px"placeholder="請輸入內容"v-model="formItem.fieldValue"@blur="inputBlurHandler(formItem)"></cbf-input></cbf-form-item><!--日期--><cbf-form-item  v-if="formItem.fieldType == 2"  :label="formItem.fieldName":rules="requiredRules(formItem)"><cbf-date-pickerstyle="width: 205px"type="date"placeholder="請選擇"v-model="formItem.fieldValue":picker-options="getPickerOptions(formItem)"format="yyyy-MM-dd"value-format="yyyy-MM-dd"></cbf-date-picker></cbf-form-item><!-- 時間 --><cbf-form-itemv-if="formItem.fieldType == 3" :label="formItem.fieldName":rules="requiredRules(formItem)"><cbf-date-pickerstyle="width: 205px"type="datetime"placeholder="請選擇"v-model="formItem.fieldValue":picker-options="getPickerOptions(formItem)"format="yyyy-MM-dd HH:mm:ss"value-format="yyyy-MM-dd HH:mm:ss"></cbf-date-picker></cbf-form-item><!-- 單選下拉框 --><cbf-form-itemv-if="formItem.fieldType == 5" :label="formItem.fieldName"                 :rules="requiredRules(formItem)" ><cbf-selectclass="row-select"v-model="formItem.fieldValue"@change="selectChange(formItem)"  filterable clearable><cbf-option:key="option.label"v-for="option in formItem.selectoptions":value="option.value":label="option.label"></cbf-option></cbf-select></cbf-form-item></div></div>

4.必填項驗證 及別的驗證(金額)

1.驗證動態的框是不是必填項 在computed寫computed: {requiredRules() {return (formItem) => {if (formItem.isRequired) {return [{ required: true, message: "", trigger: "blur" }];} else {return null;}};},}2.因為有個需求是 如果類型為4代表是輸入框也是金額 所以不能輸入漢字const numTwoDecimals = /^([0-9]|[1-9]\d+)(\.\d{1,2})?$/;  數字保留2位小數inputBlurHandler(item){if (item.fieldType == 4 &&item.fieldValue != null &&item.fieldValue != "") {if (!numTwoDecimals.test(item.fieldValue)) {this.$msgTip(`${item.fieldName}金額格式不正確`);}}}3.還有個需求是 類型為2和3 如果并且fieIdName為XX日期  需要有以下判斷比如 新增,限制日期為當天之后,如果是修改,限制日期為回顯XX日期之后getPickerOptions(item) {let picker = {};if ((item.fieldType == 2 || item.fieldType == 3) &&item.fieldName == "承諾還款日期") {picker = {disabledDate(time) {return time.getTime() < Date.now() - 8.64e7;},};} else {picker = {};}return picker;},

5.還有一個要處理的邏輯是? 不是后端返的下拉框數據 而是通過接口拿得 如何放到對應的動態向下拉框數據源

1.請求(a,b,c為接口名字)const requests=[a([this.addCaseForm.customerId]),b([this.addCaseForm.customerId]),c([this.addCaseForm.customerId]),];this.customerHandList = this.transitionData(result[0].data);this.productTypeList = this.transitionData(result[1].data);this.customerAreaList = this.transitionData(result[2].data);2.transitionData 對數據進行處理  2-1  因為接口返回的是這種結構[1,2,3] 所以又對此封裝了一下transitionData(data) {var arr = [];arr = data.map((item) => {return {...item,label: item.val,value: item.val,};});return arr;},2-2  如果接口返回的是正常下拉框數據格式[{label:'',value:''}]就不需要再次封裝了直接進行賦值即可

6.因為我這個是新增和修改都涉及到了? 所以后端返回的格式非常重要?
??????

? 在此新增的時候? 返回的數據里的fieIdValue為v-model綁定的值為空?在編輯的時候? 返回的數據里的fieIdValue為回顯的值點擊保存的時候 直接把這個數組傳給后臺 這樣省了前端組裝數據格式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206782.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【AI】Pytorch神經網絡分類初探

Pytorch神經網絡分類初探 1.數據準備 環境采用之前創建的Anaconda虛擬環境pytorch&#xff0c;為了方便查看每一步的返回值&#xff0c;可以使用Jupyter Notebook來進行開發。首先把需要的包導入進來 import torch from torch import nn from torch.utils.data import DataL…

【RHCE】openlab搭建web網站

網站需求&#xff1a; 1、基于域名 www.openlab.com 可以訪問網站內容為 welcome to openlab!!! 增加映射 [rootlocalhost ~]# vim /etc/hosts 創建網頁 [rootlocalhost ~]# mkdir -p /www/openlab [rootlocalhost ~]# echo welcome to openlab > /www/openlab/index.h…

利用法線貼圖渲染逼真的3D老虎模型

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xf…

傅里葉變換在圖像中的應用

1.圖像增強與圖像去噪 絕大部分噪音都是圖像的高頻分量&#xff0c;通過低通濾波器來濾除高頻——噪聲; 邊緣也是圖像的高頻分量&#xff0c;可以通過添加高頻分量來增強原始圖像的邊緣&#xff1b; 2.圖像分割之邊緣檢測 提取圖像高頻分量 3.圖像特征提取&#xff1a; 形狀特…

3-Mybatis

文章目錄 Mybatis概述什么是Mybatis&#xff1f;Mybatis導入知識補充數據持久化持久層 第一個Mybatis程序&#xff1a;數據的增刪改查查創建環境編寫代碼1、目錄結構2、核心配置文件&#xff1a;resources/mybatis-config.xml3、mybatis工具類&#xff1a;Utils/MybatisUtils4、…

ALNS的MDP模型| 還沒整理完12-08

有好幾篇論文已經這樣做了&#xff0c;先擺出一篇&#xff0c;然后再慢慢更新 第一篇 該篇論文提出了一種稱為深增強ALNS&#xff08;DR-ALNS&#xff09;的方法&#xff0c;它利用DRL選擇最有效的破壞和修復運營商&#xff0c;配置破壞嚴重性參數施加在破壞算子上&#xff0c…

請簡要介紹一下HTML的發展史?

問題&#xff1a;什么是池化思想&#xff1f; 回答&#xff1a; 池化思想是一種資源管理的策略&#xff0c;通過事先創建并維護一組已經初始化好的資源對象池&#xff0c;以便在需要時快速獲取資源并在用完后歸還給池&#xff0c;以減少資源的創建和銷毀開銷&#xff0c;提高資…

第二十一章網絡通信總結

21.1 網絡程序設計基礎 Java網絡程序設計基礎涉及使用Java編程語言創建網絡應用程序。這通常涉及到使用Java的網絡API&#xff0c;如java.net包&#xff0c;以建立客戶端和服務器之間的通信。 基本步驟包括&#xff1a; 1.創建服務器&#xff1a; 使用ServerSocket類創建服務…

常見的中間件--消息隊列中間件測試點

最近刷題&#xff0c;看到了有問中間件的題目&#xff0c;于是整理了一些中間件的知識&#xff0c;大多是在小破站上的筆記&#xff0c;僅供大家參考~ 主要分為七個部分來分享&#xff1a; 一、常見的中間件 二、什么是隊列&#xff1f; 三、常見消息隊列MQ的比較 四、隊列…

用戶管理 --匯總

一、第一節課 1.1 本人寫的 前端&#xff1a; 魚皮 --&#xff1e; 用戶中心 第1節課-CSDN博客 中期&#xff1a; 一、用戶管理 第1節課中間-CSDN博客 后端&#xff1a; 一、用戶管理-CSDN博客 其他的鏈接 億圖腦圖MindMaster 1.2 優秀球友&#xff0c;推薦 Docs 另…

12_企業架構之Tomcat部署使用

Tomcat 學習目標和內容 1、能夠描述Tomcat的使用場景 2、能夠簡單描述Tomcat的工作原理 3、能夠實現部署安裝Tomcat 4、能夠實現配置Tomcat的service服務和自啟動 5、能夠實現Tomcat的Host的配置 6、能夠實現Nginx反向代理Tomcat 7、能夠實現Nginx負載均衡到Tomcat 一、Tomcat介…

Abaqus許可證配置文件問題

在使用Abaqus工程設計和仿真軟件時&#xff0c;您可能會遇到許可證配置文件問題。這些問題可能會影響軟件的正常運行和工作效率。為了幫助您解決這些問題&#xff0c;我們特別撰寫了這篇文章&#xff0c;以提供全面、有效的解決方案。 一、Abaqus許可證配置文件問題及原因 許…

力扣labuladong一刷day32天二叉樹

力扣labuladong一刷day32天二叉樹 一、297. 二叉樹的序列化與反序列化 題目鏈接&#xff1a;https://leetcode.cn/problems/serialize-and-deserialize-binary-tree/ 思路&#xff1a;關于序列化與反序列化&#xff0c;題目不要求序列化的方式&#xff0c;只要求樹經過序列化…

linux的定時任務Corntab

安裝crontab # yum安裝crontab yum install -y crontab# 開機自啟crond服務并現在啟動 systemctl enable --now crondcron系統任務調度 系統任務調度&#xff1a; 系統周期性所要執行的工作&#xff0c;比如寫緩存數據到硬盤、日志清理等。 在/etc/crontab文件&#xff0c;這…

機器學習之全面了解回歸學習器

我們將和大家一起探討機器學習與數據科學的主題。 本文主要討論大家針對回歸學習器提出的問題。我將概要介紹&#xff0c;然后探討以下五個問題&#xff1a; 1. 能否將回歸學習器用于時序數據&#xff1f; 2. 該如何縮短訓練時間&#xff1f; 3. 該如何解釋不同模型的結果和…

No suitable driver found for jdbc:mysql://localhost:3306(2023/12/7更新)

有兩種情況&#xff1a; 壓根沒安裝下載了但沒設為庫或方法不對 大多數為第一種情況&#xff1a; 一. 下載jdbc 打開網址選擇一個版本進行下載 https://nowjava.com/jar/version/mysql/mysql-connector-java.html 二.安裝jdbc 在項目里建一個lib文件夾 在把之前下載的jar文…

優化 SQL 日志記錄的方法

為什么 SQL 日志記錄是必不可少的 SQL 日志記錄在數據庫安全和審計中起著至關重要的作用&#xff0c;它涉及跟蹤在數據庫上執行的所有 SQL 語句&#xff0c;從而實現審計、故障排除和取證分析。SQL 日志記錄可以提供有關數據庫如何訪問和使用的寶貴見解&#xff0c;使其成為確…

JNPF低代碼平臺詳解 -- 系統架構

目錄 一、技術介紹 技術架構 二、設計原理 三、界面展示 1.代碼生成器 2.工作流程 3.門戶設計 4.大屏設計 5.報表設計 6.第三方登錄 7.多租戶實現 8.分布式調度 9.消息中心 四、功能框架 JNPF低代碼是一款新奇、實用、高效的企業級軟件開發工具&#xff0c;支持企…

Qt/C++音視頻開發58-逐幀播放/上一幀下一幀/切換播放進度/實時解碼

一、前言 逐幀播放是近期增加的功能&#xff0c;之前也一直思考過這個功能該如何實現&#xff0c;對于mdk/qtav等內核組件&#xff0c;可以直接用該組件提供的接口實現即可&#xff0c;而對于ffmpeg&#xff0c;需要自己處理&#xff0c;如果有緩存的數據的話&#xff0c;可以…

Rust的eBFP框架Aya(一) - Linux內核網絡基礎

前言 在我的Rust入門及實戰系列文章中已經說明&#xff0c; Rust是一門內存安全的高性能編程語言&#xff0c;從它的這些優秀特性來看&#xff0c;就是一門專為系統開發而誕生的語言。至于很多使用Rust來進行web開發的行為&#xff0c;不能說它們不好&#xff0c;只能說是殺雞…