首页 > 其他分享 >UniApp Vue3 动态表单

UniApp Vue3 动态表单

时间:2024-01-24 10:57:20浏览次数:32  
标签:UniApp const res formData value 表单 tableDataList Vue3

左侧手机部分为动态表单内容,右侧为提交后获取到表单的值。

页面代码:

<view style="margin:15px; padding: 10rpx;">
        <tn-form label-position="top" ref="formRef" :model="formData" :rules="formRules">
            <tn-form-item label="" prop="reportDate">
                <label>定位:</label>
            </tn-form-item>
            <tn-form-item label="" prop="inspection_date">
                <label>巡检周期: <tn-button :text="true" @click="Datetimeclick"><text class="tn-black_text">
                            {{ formData.inspection_date }}
                        </text>
                    </tn-button>
                    <TnDateTimePicker v-model="formData.inspection_date" v-model:open="openDateTimePicker"
                        mode="yearmonth" />
                </label>
            </tn-form-item>
            <view v-for="(item, index) in WhMxListData" :key="index">
                <label>{{index+1}}、{{item.content_name}}</label>
                <br /><label>巡检部件情况说明</label>
                <tn-form-item prop="formData.addForms[index].factsheet">
                    <TnInput v-model="formData.addForms[index].factsheet" clearable />
                </tn-form-item>
                <br /><label>处理情况</label>
                <tn-form-item prop="formData.addForms[index].handlsitu">
                    <TnInput v-model="formData.addForms[index].handlsitu" clearable />
                </tn-form-item>
                <br /><label>处理后结果说明</label>
                <tn-form-item prop="formData.addForms[index].processresult">
                    <TnInput v-model="formData.addForms[index].processresult" clearable />
                </tn-form-item>
            </view>
            <tn-form-item label="附件" prop="imageList">
                <tn-image-upload v-model="imageList" :action="upload.url" :header="upload.headers"
                    :custom-upload-callback="uploadCallbackHandle" @remove="uploadRemoveHandle"></tn-image-upload>
            </tn-form-item>
            <tn-form-item label="维护人" prop="inspector">
                <TnInput v-model="formData.inspector" clearable />
            </tn-form-item>
            <tn-form-item label="联系电话" prop="phone">
                <TnInput v-model="formData.phone" clearable />
            </tn-form-item>
        </tn-form>
        <view class="tn-mt tn-flex-center">
            <tn-button size="lg" bg-color="tn-gradient-bg__blue" text-color="#fff" @click="submitForm"> 保存
            </tn-button>

        </view>
    </view>

script代码:

const WhMxListData = ref([]);
const tableDataList = reactive({ list: [] });
// 表单初始化
    const formData = ref({
        inspection_date: '',
        inspector: '',
        phone: '',
        fileName: '',
        filePath: '',
        addForms: [
            {
                factsheet: '',
                handlsitu: '',
                processresult: '',
            }
        ],
    });
//循环后台内容
    const getList = () => {
        MonthOperationMXList(queryData).then(res => {
            WhMxListData.value = res.rows;
            tableDataList.list = res.rows;
            //循环动态表单
            tableDataList.list.forEach(item => {
                const addFormItem = {
                    factsheet: '',
                    handlsitu: '',
                    processresult: '',
                }
                formData.value.addForms.push(addFormItem);
            })
            console.log(formData.value);
        });
    }
    /* 提交表单 */
    const submitForm = () => {
        console.log(formData.value);
    };
    onl oad((e) => {
        getList();

    });

 地址:https://www.cnblogs.com/blue123/p/17984090

标签:UniApp,const,res,formData,value,表单,tableDataList,Vue3
From: https://www.cnblogs.com/blue123/p/17984090

相关文章

  • uniapp打包Android程序的踩坑
    因为在uniapp中无法使用dom,导致部分三方库无法使用,需要在webview中使用,所以需要把使用了dom的三方库的页面渲染到webview中去因为上面再webview中渲染了界面,所以当要再webview中和原生页面互动就又是问题了,网上找了一圈webview和uniapp原生互动的操作都没能实现,有实现了的评论下......
  • uniapp+unicloud开发一个网页端,小程序端,APP端,桌面端的博客CMS系统——万能的三三
    前言做为一个开发者,怎么能没有一个自己的博客呢?都说现在是小程序,APP时代了,显然只有网页端已经跟不上时代了,于是乎就想找一个免费的能同时支持网页端,小程序,APP的博客系统...于是花了一点点时间,没找到合适的...好吧,那既然自己是开发者,那为什么不能自己写一个博客呢?于是又花亿点点时间......
  • 如何测试表单的必填字段?多角度详解!
    前言大家好,我是chowley,今天来聊一下我最近在工作中遇到的一个实际问题。在Web应用程序中,表单是用户与系统进行交互的重要方式之一。为了确保用户提供的数据完整和有效,测试表单的必填字段成为开发过程中不可或缺的一环。本文将从多个角度详细探讨如何有效地测试表单的必填字段,以保......
  • JavaScript DOM表单相关操作之表单相关事件
    1、焦点事件焦点事件就是鼠标的光标事件,点到输入框中,叫做获得焦点事件,当鼠标离开这个输入框时叫做失去焦点事件。<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>知数SEO_专注搜索引擎优化和品牌推广</title></head><body><form><h3>输......
  • JavaScript DOM表单相关操作之表单验证
    在大部分的情况下我们希望用户输入的数据是我们理想中的格式,尤其是在用户注册上,一些重要的信息我们是不允许用户乱写的,如手机号,邮箱等。接下来一起看几种表单验证的方式:1、验证长度验证长度是比较简单的,input标签元素的maxlength属性可以设置可输入的最大长度//用maxlength属......
  • uniapp打包h5在Android的webview中打开出现localStorage.setitem为null的记录
    使用android直接打开h5的链接,报错localStorage.setItem为null原因是要打开Android的webview的存储设置valwebView=findViewById<WebView>(R.id.webview)valsettings=webView.settingssettings.domStorageEnabled=truesettings.datab......
  • uniapp微信小程序接入高德地图SDK
    小程序地图SDK原理(注意:这一段要仔细看哦,很多人问我为什么你写的是高德地图SDK,却用的是腾讯地图,答案就在这里)微信小程序开发,可以使用地图组件map,来进行地图显示、定位、显示大头针等基本功能,具体可以看官方文档:微信小程序map组件。map组件只提供一些基本的“硬件”,还需要“大脑......
  • Element Ui使用技巧——Form表单的校验规则rules详细说明
    ElementUi使用技巧——Form表单的校验规则rules详细说明:https://blog.csdn.net/weixin_46711427/article/details/117672462?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-117672462-blog-124431947.235^v40^pc_relevant_rights_sort......
  • JavaScript DOM表单相关操作之表单相关事件
    1、焦点事件焦点事件就是鼠标的光标事件,点到输入框中,叫做获得焦点事件,当鼠标离开这个输入框时叫做失去焦点事件。​<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>知数SEO_专注搜索引擎优化和品牌推广</title></head><body><form><h3>......
  • JavaScript DOM表单相关操作之获取表单数据的方式
    在与表单相关的操作中,我们用的最多的就是获取表单中的数据。想要获取指定输入框的数据,首先就需要获取到这个输入框对象。1、通过id属性获取表单数据​<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>知数SEO_专注搜索引擎优化和品牌推广</title></head......