我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue实现表单数据的增删改功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue实现表单数据的增删改功能

本文实例为大家分享了vue实现表单数据增删改功能的具体代码,供大家参考,具体内容如下

图示如下:

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>会员等级优惠</title>
    <script class="lazy" data-src="https://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
    <script class="lazy" data-src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 
    <script>
        //rem适配的js    750的设计图 真实用7.5rem表示
        (function () {
            let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
                doc = document.documentElement;
 
            function changeFontSize() {
                let clientWidth = doc.offsetWidth,
                    scale = clientWidth / 750;
                doc.style.fontSize = scale * 100 + 'px';
            }
            //监听窗口变化或横屏时
            window.addEventListener(resizeEvt, changeFontSize);
            //加载页面触发
            document.addEventListener('DOMContentLoaded', changeFontSize);
        })();
    </script>
 
    <style>
        * {
            margin: 0;
            padding: 0;
        }
 
        li {
            list-style: none;
        }
 
        body {
            font-size: 0.32rem;
            background: #f0eff5;
 
        }
 
        input {
            border: none;
            outline: none;
        }
 
        .del {
            width: 1rem;
            line-height: 0.55rem;
            background: rgba(0, 153, 255, 1);
            color: #fff;
            text-align: center;
            border: none;
            border-radius: 0.1rem;
            margin-left: 0.2rem;
 
        }
 
        
 
        .top {
            
            
            background: rgba(224, 242, 255, 1);
            padding: 0.2rem;
            font-size: 0.3rem;
            color: #0099FF;
        }
 
        .top p {
            margin-bottom: 0.14rem;
        }
 
        
        .nav_box {
            line-height: 0.86rem;
            display: flex;
            flex-wrap: nowrap;
            background: #fff;
            margin-bottom: 0.02rem;
        }
 
        .nav_box li {
            flex: 1;
            text-align: center;
        }
 
        .nav_box li.active {
            background: rgba(0, 153, 255, 1);
            color: #fff;
        }
 
        
        .nav1 {}
 
        .nav1 .bottom_btn {
            line-height: 0.77rem;
            background: rgba(0, 153, 255, 1);
            color: #fff;
            text-align: center;
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
        }
 
        
        .nav1 .concent .box1 {
            display: flex;
            flex-wrap: wrap;
            background: #fff;
            padding: 0.2rem 0 0 0.2rem;
            margin-bottom: 0.2rem;
        }
 
        .nav1 .concent .box1 .list {
            width: 1.68rem;
            line-height: 0.74rem;
            text-align: center;
            background: rgba(243, 243, 243, 1);
            border-radius: 0.1rem;
            margin-right: 0.12rem;
            margin-bottom: 0.2rem;
        }
 
        .nav1 .concent .box1 .list.active {
            background: rgba(0, 153, 255, 1);
            color: #fff;
        }
 
        .nav1 .concent .box1 .list:nth-of-type(4n) {
            margin-right: 0;
        }
 
        .nav1 .concent .box1 .addmembers {
            font-size: 0.26rem;
            color: rgba(160, 214, 255, 1);
        }
 
        .nav1 .concent .box1 .addmembers .add_ico {
            
        }
 
        .nav1 .concent .box2 {}
 
        .nav1 .concent .box2 .titele {
            padding-left: 0.2rem;
            line-height: 0.7rem;
            background: #fff;
            border-bottom: 1px solid rgba(205, 205, 205, 1);
        }
 
        .nav1 .concent .box2 .info .chi_info {
            background: #fff;
            padding: 0.14rem 0.2rem;
            margin-bottom: 0.1rem;
        }
 
        .nav1 .concent .box2 .info .chi_info .bold_text {
            font-weight: bold;
            color: rgba(51, 51, 51, 1);
            margin-bottom: 0.22rem;
        }
 
        .nav1 .concent .box2 .info .chi_info1 {
            padding-bottom: 0.3rem;
        }
 
        .nav1 .concent .box2 .info .chi_info1 .li_box {
            font-size: 0.28rem;
        }
 
        .nav1 .concent .box2 .info .chi_info1 .li_box .li {
            display: flex;
            flex-wrap: nowrap;
            margin-bottom: 0.2rem;
        }
 
        .nav1 .concent .box2 .info .chi_info1 .li_box .li .count1 {
            box-sizing: border-box;
            width: 1.2rem;
            height: 0.56rem;
            border: 1px solid rgba(0, 153, 255, 1);
            margin: 0 0.2rem;
            padding-left: 0.1rem;
        }
 
        .nav1 .concent .box2 .info .chi_info1 .addconditions {
            text-align: center;
            color: rgba(0, 153, 255, 1);
            font-size: 0.28rem;
            margin-top: 0.28rem;
        }
 
        .nav1 .concent .box2 .info .chi_info1 .addconditions .add_ico {
            
        }
 
        .nav1 .concent .box2 .info .chi_info1 .firm_btn {
            display: flex;
            justify-content: flex-end;
        }
 
        .nav1 .concent .box2 .info .chi_info1 .firm_btn .btn {
            width: 1.2rem;
            line-height: 0.66rem;
            text-align: center;
            background: rgba(0, 153, 255, 1);
            color: #fff;
            border-radius: 0.33rem;
        }
 
 
        .nav1 .concent .box2 .info .chi_info2 {}
 
        .nav1 .concent .box2 .info .chi_info2 .iscount {}
 
        .nav1 .concent .box2 .info .chi_info2 .iscount .count1 {
            box-sizing: border-box;
            width: 1.2rem;
            height: 0.56rem;
            border: 1px solid rgba(0, 153, 255, 1);
            margin: 0 0.2rem;
            padding-left: 0.1rem;
        }
 
        .nav2 .info {
            padding: 0.2rem;
            background: #fff;
        }
 
        .nav2 .info .topbox .li {
            display: flex;
            flex-wrap: nowrap;
            margin-bottom: 0.38rem;
            font-size: 0.28rem;
 
        }
 
        .nav2 .info .topbox .lastlist {
            font-size: 0.3rem;
            font-weight: bold;
        }
 
        .nav2 .info .topbox .lastlist .left {
            flex: 1;
        }
 
 
        .nav2 .info .topbox .lastlist .right {
            flex: 1;
        }
 
        .nav2 .info .topbox .li .left {}
 
        .nav2 .info .topbox .li .right {
            width: auto;
        }
 
        .nav2 .info .topbox .li .input1 {
            box-sizing: border-box;
            padding-left: 0.1rem;
            width: 1.6rem;
            height: 0.56rem;
            border: 1px solid rgba(0, 153, 255, 1);
            margin: 0 0.2rem;
        }
 
        .nav2 .info .topbox .li .input2 {
            box-sizing: border-box;
            padding-left: 0.1rem;
            width: 1.27rem;
            height: 0.56rem;
            border: 1px solid rgba(0, 153, 255, 1);
            margin: 0 0.2rem;
        }
 
        .nav2 .info .addconditions {
            text-align: center;
            color: rgba(0, 153, 255, 1);
            font-size: 0.28rem;
            margin-top: 0.28rem;
        }
 
        .nav2 .info .addconditions .add_ico {
            
        }
 
        .nav2 .info .firm_btn {
            display: flex;
            justify-content: flex-end;
        }
 
        .nav2 .info .firm_btn .btn {
            width: 1.2rem;
            line-height: 0.66rem;
            text-align: center;
            background: rgba(0, 153, 255, 1);
            color: #fff;
            border-radius: 0.33rem;
        }
 
        
        .mask {
            position: fixed;
            width: 100%;
            left: 0;
            bottom: 0;
            top: 0;
            background: rgba(0, 0, 0, 0.5);
        }
 
        .model {
            position: fixed;
            width: 5.06rem;
            height: 3rem;
            top: 50%;
            left: 50%;
            border-radius: 20px;
            transform: translate(-50%, -50%);
            background: #fff;
        }
    </style>
</head>
 
<body>
    <div id="app">
        <div class="page">
            <div class="top">
                <p>会员等级优惠</p>
                <p>1.商户可根据不同等级会员设置相应的充值、购买优惠;</p>
                <p> 2.会员等级优惠生效设备:娃娃机、兑币机、售货机。</p>
            </div>
            <div class="nav_box">
                <li :class="nav_index==0?'active':''" @click="tab(0)">选择会员等级</li>
                <li :class="nav_index==1?'active':''" @click="tab(1)">添加会员等级</li>
            </div>
 
            <div class="nav1" v-show='nav_index==0'>
                <div class="concent">
                    <div class="box1">
                        <li class="list" :class="default_levelIndex==index?'active':''"
                            v-for="(item,index) in level_members" :key='index' @click="choose(index,item.userLevelId)">
                            {{item.userLevelName}}</li>
 
                        <li class="list addmembers" @click="tab(1)">
                            <span class="add_ico">+</span>
                            <span>会员等级</span>
                        </li>
                    </div>
 
                    <div class="box2">
                        <p class="titele">优惠设置</p>
                        <div class="info">
                            <div class="chi_info chi_info1">
                                <p class="bold_text">兑币机/娃娃机</p>
                                <div class="li_box">
                                    <li class="li" v-for="(item,index) in preferential" :key='index'>
                                        单笔充值满
                                        <input class="count1" type="text" name="" id=""
                                            oninput="value=value.replace(/[^\d{1,}\.\d{1,}|\d{1,}]/g,'')"
                                            v-model="item.userLevelPayMoney">
                                        元再送
                                        <input class="count1" type="text" name="" id=""
                                            oninput="value=value.replace(/[^\d{1,}\.\d{1,}|\d{1,}]/g,'')"
                                            v-model="item.userLevelGivingMoney">
                                        币
 
                                        <button class="del"
                                            @click="delConditions(index,item.userLevelDiscountId)">删除</button>
                                    </li>
                                </div>
                                <div class="addconditions" @click="addconditions()">
                                    <span class="add_ico">+</span>
                                    <span>添加优惠条件</span>
                                </div>
                                <!-- <div class="firm_btn">
                                    <div class="btn">确定</div>
                                </div> -->
                            </div>
 
                            <div class="chi_info chi_info2">
                                <p class="bold_text">售货机</p>
                                <div class="iscount">
                                    购买优惠折扣
                                    <input class="count1" type="number" name="" id="" v-model="discount" min='1'
                                        max='9.9' step="0.01">
                                    折
                                </div>
                            </div>
                        </div>
                    </div>
 
                </div>
                <div class="kong" style="height: 0.77rem;width:100%"></div>
 
                <div class="bottom_btn" @click="save()">保存设置</div>
            </div>
            <div class="nav2" v-show='nav_index==1'>
                <div class="info">
                    <div class="topbox">
 
                        <li class="li lastlist">
                            <div class="left">会员等级名称 </div>
                            <div class="right">达到条件</div>
                        </li>
                        <li class="li" v-for="(item,index) in add_level_members" :key='index'>
                            <div class="left">
                                <input class="input1" type="text" v-model="item.userLevelName"></div>
                            <div class="right">
                                累计消费
                                <input class="input2" type="text" name="" id="" v-model="item.userLevelMoney"
                                    value=value.replace(/[^\d{1,}\.\d{1,}|\d{1,}]/g,'')>
                                元达到
                                <button class="del" @click="delLevelMembers(nav_index)"
                                    v-show="!item.userLevelId">删除</button>
                            </div>
                        </li>
                    </div>
 
                    <div class="addconditions" @click="addLevelMembers()">
                        <span class="add_ico">+</span>
                        <span>添加会员等级</span>
                    </div>
                    <div class="firm_btn">
                        <div class="btn" @click="addLevel()">确定</div>
                    </div>
 
                </div>
 
            </div>
        </div>
 
    </div>
 
</body>
 
<script>
    var app = new Vue({
        el: '#app',
        data: {
            nav_index: 0, //默认的nav切换
            level_members: [], //可选择的数组   {userLevelId: 1, userLevelName: "普通", userLevelMoney: 20}
            default_levelIndex: 0, //默认的会员等级第一个
            userLevelId: 0, //默认的会员id
            preferential: [], //优惠数组
            discount: '', //设置的折扣  0-9.9
 
            add_level_members: [], //添加会员等级数组
            model_userLevelDiscountId: '',
            model_userLevelIndex: 0,
            model_IsShow: false,
        },
        mounted() {
            this.getinfo();
            // this.getinfo1();
        },
 
        methods: {
            //切换tab
            tab(index) {
                let that = this;
                that.nav_index = index;
                that.getinfo()   //重置会员数组
 
            },
            //选择会员等级显示不同的套餐
            choose(index, userLevelId) {
                let that = this;
                that.default_levelIndex = index;
                that.userLevelId = userLevelId;
                console.log(userLevelId);
                that.getinfo1(userLevelId);
            },
 
            //添加套餐
            addconditions() {
                let that = this;
                //根据后台需要的值往数组里添加空数据
                that.preferential.push({
                    userId: 80,
                    userLevelId: that.userLevelId, //会员等级id
                    userLevelPayMoney: '',
                    userLevelGivingMoney: '',
                    userLevelBuyDiscount: ''
                });
            },
            //删除套餐
            delConditions(index, userLevelDiscountId) {
                let that = this;
                that.model_userLevelDiscountId = userLevelDiscountId;
                that.model_userLevelIndex = index;
                $.ajax({
                    type: 'POST',
                    url: '/delectDiscount',
                    data: {
                        userLevelDiscountId: that.model_userLevelDiscountId
                    },
                    success: function (data) {
                        if (data.code == "100") {
                            console.log('删除成功')
                            that.preferential.splice(that.model_userLevelIndex, 1)
                        }
                    }
                });
            },
            //添加会员
            addLevelMembers() {
                let that = this;
                that.add_level_members.push({
                    userLevelName: '',
                    userLevelMoney: '',
                    userLevelBuyDiscount: ''
                });
            },
            //删除会员
            delLevelMembers(index) {
                let that = this;
                that.add_level_members.splice(index, 1)
            },
            //获取信息
            getinfo() {
                let that = this;
                $.ajax({
                    type: 'GET',
                    url: '/getUserLevelList',
                    success: function (data) {
                        if (data.code == "100") {
                            that.level_members = data.extend.list;
                            that.add_level_members = data.extend.list;
                            that.userLevelId = data.extend.list[0].userLevelId;
                            that.getinfo1(data.extend.list[0].userLevelId)
                        }
                    }
                });
            },
 
            getinfo1(userLevelId) {
                let that = this;
                $.ajax({
                    type: 'POST',
                    headers: {
                        "Content-Type": "application/json"
                    },
                    url: '/getUserLevelByLevelId',
                    data: JSON.stringify({
                        userId: "80",
                        userLevelId: userLevelId
                    }),
                    success: function (data) {
                        if (data.code == "100") {
                            that.preferential = data.extend.data; //优惠数组
                            that.discount = data.extend.data[0].userLevelBuyDiscount //折扣价格
                        }
                    }
                });
            },
 
 
            //新增一个会员
            addLevel() {
                let that = this;
                console.log(that.add_level_members);
 
                for (let i = 0; i < that.add_level_members.length; i++) {
                    if (that.add_level_members[i].userLevelMoney === '' || that.add_level_members[i]
                        .userLevelName === '') {
                        console.log('不能输入空值')
                        return false;
                    }
                }
                $.ajax({
                    type: 'POST',
                    headers: {
                        "Content-Type": "application/json"
                    },
                    url: '/insertUserLevelList',
 
                    data: JSON.stringify(that.add_level_members),
                    success: function (data) {
                        if (data.code == "100") {
                            console.log(data);
                        }
                    }
                });
 
            },
 
            //保存设置按钮
            save() {
                let that = this;
                console.log(that.preferential)
                for (let i = 0; i < that.preferential.length; i++) {
                    that.preferential[i].userLevelBuyDiscount = that.discount; //添加折扣字段
                    if (that.preferential[i].userLevelGivingMoney === '' || that.preferential[i]
                        .userLevelPayMoney === '' || that.preferential[i].userLevelBuyDiscount === '') {
                        console.log('不能输入空值')
                        return false;
                    }
                }
 
                $.ajax({
                    type: 'POST',
                    headers: {
                        "Content-Type": "application/json"
                    },
                    url: '/updateDiscounts', //updateDiscountList
                    data: JSON.stringify(that.preferential),
                    success: function (data) {
                        if (data.code == "100") {
                            console.log(data);
                        }
                    }
                });
            }
 
        }
 
 
    })
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue实现表单数据的增删改功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PyQt5如何实现数据的增删改查功能

这篇文章主要介绍“PyQt5如何实现数据的增删改查功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PyQt5如何实现数据的增删改查功能”文章能帮助大家解决问题。话不多说,还是先来梳理一下需要的第三
2023-06-29

Vue数据增删改查与表单验证的实现流程介绍

这篇文章主要介绍了Vue数据增删改查与表单验证的实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
2022-11-13

Android数据库(SQLite)的简单使用——增、删、查改功能的简单实现

记录一下Android数据库的增删查改的简单使用 话不多说,先献上你们最爱的效果图~ 这边我用的是一个ListView来展示数据库里的数据准备工作: 先写一个类继承SQLiteOpenHelper,因为SQLiteOpenHelper.ja
2022-06-06

PHP数据库函数实现数据的增删改查功能

PHP数据库函数实现数据的增删改查功能摘要:数据库是存储和管理数据的重要组成部分。在开发Web应用程序时,经常需要对数据库进行增删改查的操作。PHP作为一种流行的服务器端编程语言,提供了丰富的数据库函数,用于实现数据的增删改查功能。本文将介
PHP数据库函数实现数据的增删改查功能
2023-11-20

Vue中搭配Bootstrap实现Vue的列表增删功能

日常开发中,我们可以用 “拿来主义” 借助Bootstarp现成的一些样式,快速生成我们想要的页面布局,避免书写大量的HTML和CSS代码,省下了许多不必要的时间,可以直接搭配vue使用
2022-11-13

JDBC怎么实现数据库增删改查功能

这篇文章主要介绍JDBC怎么实现数据库增删改查功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:1、添加数据package cn.itcast.jdbc;import java.sql.*;public c
2023-06-20

Java如何实现顺序表的增删查改功能

这篇文章主要介绍Java如何实现顺序表的增删查改功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建顺序表在java语言中要实现顺序表,首先创建一个类,因为顺序表本身就像数组,所以我们这里定义一个int类型的数组和
2023-06-14

编程热搜

目录