首页 > 其他分享 >【uniapp 篇 】动态添加 表单,所添加元素展示在同一行

【uniapp 篇 】动态添加 表单,所添加元素展示在同一行

时间:2024-05-19 12:18:42浏览次数:19  
标签:paramTimes 21 uniapp text 23 表单 添加

动态添加 表单,所添加元素展示在同一行

 1                             <uni-forms labelWidth="68px">
 2 
 3                                 <uni-forms-item v-for="(item,index) in baseFormData.dynamicTable.timeField.array"
 4                                     :key="item.id" :label="item.label"
 5                                     :name="['timeFields',index,'value']">
 6                                     <view class="form-item">
 7                                         <uni-easyinput v-model="baseFormData.dynamicTable.timeField.array[index].field"
 8                                             placeholder="请输入时间字段" />
 9                                         <uni-data-picker v-model="baseFormData.dynamicTable.timeField.array[index].opt"
10                                             :localdata="opts" popup-title="选取连接方式"
11                                             :ellipsis="false" style="width: 80px; flex: none;"></uni-data-picker>
12                                         <uni-data-picker v-model="baseFormData.dynamicTable.timeField.array[index].time"
13                                             :localdata="paramTimeList" @change="paramTimeListChange($event, index)"
14                                             popup-title="选取时间点" :ellipsis="false"></uni-data-picker>
15                                         <uni-number-box :min="1" :max="1000"
16                                             v-model="baseFormData.dynamicTable.timeField.array[index].second"
17                                             style="float: left;" :color="numberBoxProps.paramTimes[index].color"
18                                             :disabled="numberBoxProps.paramTimes[index].disabled" width="60" />
19                                         <button class="button" size="mini" type="default"
20                                             @click="delDynamicTableTimeFields(item.id)">删除</button>
21                                     </view>
22                                 </uni-forms-item>
23                             </uni-forms>
24                             <view class="button-group">
25                                 <button type="primary" size="default" @click="addDynamicTableTimeField">新增时间</button>
27                             </view>

 

 1 <script>
 2 
 3     export default {
 4 
 5         data() {
 6             return {
 7                 // 基础表单数据
 8                 baseFormData: {
 9                     dynamicTable: {
10                         timeField: {
11                             array: []
12                         }
13                     },
14                     paramTimes:[]
15                 },
16                 numberBoxProps: {
17                     paramTimes: []
18                 },
19                 opts:{[
20                     {text: '>',        value: 10},
21                     {text: '<',        value: 20},
22                     {text: '>=',    value: 30},
23                     {text: '<=',    value: 40},
24                     {text: '!=',    value: 50}
25                 ]},
26                 paramTimeList:{[
27                     {text: '执行当下 now',     value: 10},
28                     {text: '今日 凌晨',     value: 20},
29                     {text: 'n日前 凌晨',     value: 30},
30                     {text: '本周初 凌晨',     value: 40},
31                     {text: 'n周初 凌晨',     value: 50},
32                     {text: '本季度初 凌晨', value: 60},
33                     {text: 'n季度初 凌晨',     value: 70},
34                     {text: '本月初 凌晨',     value: 80},
35                     {text: 'n月初 凌晨',     value: 90},
36                     {text: '本年初 凌晨',     value: 100},
37                     {text: 'n年初 凌晨',     value: 110}
38                 ]}
39             }
40         },
41         methods: {
42             addDynamicTableTimeField() {
43                 // 添加字段输入框
44                 this.baseFormData.dynamicTable.timeField.array.push({
45                     label: '时间字段',
46                     value: '',
47                     opt: 0,
48                     time: 0,
49                     field: '',
50                     second: 0,
51                     rules: [{
52                         'required': true,
53                         errorMessage: '域名项必填'
54                     }],
55                     id: Date.now()
56                 });
57                 // 添加数字输入框
58                 this.numberBoxProps.paramTimes.push({
59                     color: "#fff",
60                     disabled: true
61                 })
62             },
63             // 取值的时间限制范围
64             paramTimeListChange(e, index) {
65                 const selectVal = e.detail.value[0].value
66                 this.paramTimeStyleChange(selectVal, index)
67             },
68             paramTimeStyleChange(selectVal, index){
69                 console.log("selectVal:", selectVal)
70                 console.log("index:", index)
71                 // 动态增加的 "时间字段"
72                 if (selectVal == 30 || selectVal == 50 || selectVal == 70 || selectVal == 90 || selectVal == 110) {
73                     // 选中了 “取指定数量” ,需要指定数量
74                     this.numberBoxProps.paramTimes[index].color = "#000"
75                     this.numberBoxProps.paramTimes[index].disabled = false
76                     this.baseFormData.paramTimes[index].time = selectVal
77                 } else {
78                     this.numberBoxProps.paramTimes[index].color = "#fff"
79                     this.numberBoxProps.paramTimes[index].disabled = true
80                 }
81             },
82         }
83     }
84 
85 </script>

 

标签:paramTimes,21,uniapp,text,23,表单,添加
From: https://www.cnblogs.com/bridgestone29-08/p/18200212

相关文章

  • uniapp 文件管理器(文件选择)
    仅app//#ifdefAPP-PLUSexportfunctionopenFileManager(){returnnewPromise(async(resolve,reject)=>{try{awaitrequestPermission();//获取应用主Activity实例对象constmain=plus.android.runtimeMainActivity();//c......
  • 『手撕Vue-CLI』添加帮助和版本号
    前言经过上一篇『手撕Vue-CLI』编码规范检查之后,手撕Vue-CLI已经进阶到了代码规范检查这一步,已经将基本的工程搭建好了,然后代码规范约束也已经加入了,并且将nue-cli指令绑定到了全局当中,可以在任何地方使用了。正文接下来这篇文章呢,就要来实现一下大多数的命令行工具都会有......
  • 基于uniapp+vue3自定义增强版table表格组件「兼容H5+小程序+App端」
    vue3+uniapp多端自定义table组件|uniapp加强版综合表格组件uv3-table:一款基于uniapp+vue3跨端自定义手机端增强版表格组件。支持固定表头/列、边框、斑马纹、单选/多选,自定义表头/表体插槽、左右固定列阴影高亮显示。支持编译兼容H5+小程序端+App端。如下图:H5+小程序+App端,多端......
  • java中的http请求的封装(GET、POST、form表单形式)
    前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,HttpClient3.1是org.apache.commons.httpclient下操作远程url的工具包,虽然已不再更新,但实现工作中使用httpC......
  • kingbase数据json操作:表转json、json转表、节点查询、节点添加
    1、json_array_elements(json)这个函数将JSON数组转换为行集合。例如:SELECTjson_array_elements('[1,2,3]')ASelement;将返回一个包含每个数组元素的行。2、json_each(json)这个函数将JSON对象展开为(key,value)对。例如:SELECT*FROMjson_each('{"a":1,"b":2}');......
  • NotePad在每行前面或后面添加一些内容
    文本文件的每行前面或后面添加一些内容,如给下面文件每一行后面添加;方法1.下载文本编辑器NotePad++下载地址:https://notepad-plus.en.softonic.com/download2.在每行后面添加内容使用快捷键Ctrl+H打开“替换对话框”,在每行的开头添加内容。勾选左下角的“正则表达式”选......
  • SpringBoot给所有的 Model添加属性
    添加全局数据@ControllerAdvice是一个全局数据处理组件,因此也可以在@ControllerAdvice中配置全局数据,使用@ModelAttribute注解进行配置,代码如下: 运行测试结果:  ......
  • 一行命令为微软拼音添加小鹤双拼
    cmdregaddHKCU\Software\Microsoft\InputMethod\Settings\CHS/vUserDefinedDoublePinyinScheme0/tREG_SZ/d"小鹤双拼*2*^*iuvdjhcwfg^xmlnpbksqszxkrltvyovt"PowerShellSet-ItemProperty-LiteralPath'HKCU:\Software\Microsoft\InputMethod......
  • form 表单查询本身存在转义字符的处理
    碰到的问题是 查询的时候填写这样的字符串:packageCenter/xxxx?scene=t%3Dp_c67bd3exxxxxxxxx用php的自带的超全局变量 $_GET获取到的是解码后的的字符串:packageCenter/xxxx?scene=t=p_c67bd3exxxxxxxxx。解决方案:使用$_SERVER['QUERY_STRING']来获取未解码前的查询字......
  • VueJS-表单构建指南-全-
    VueJS表单构建指南(全)原文:zh.annas-archive.org/md5/89D4502ECBF31F487E1AF228404A6AC0译者:飞龙协议:CCBY-NC-SA4.0前言Vue.js是世界领先和增长最快的前端开发框架之一。其平缓的学习曲线和充满活力和乐于助人的社区使其成为许多新开发人员寻求利用前端框架的力量的不二......