vue click Copy to add multiple lines

Copyright: shall not be reproduced without the consent of all the liabilities of the consequences https://blog.csdn.net/xy19950125/article/details/87856070

Description: The code will be added when the same style as shown below click Add remove the code on that line while clicking on Delete

The effect is as follows:

 

 Source:

<template>
    <div>
        <div class="navigation">
            <p>
                <span>管理首页&nbsp;>&nbsp;应用&nbsp;>&nbsp;百信钱袋>&nbsp;信贷员管理</span>
            </p>
        </div>
		<div class="contentcss">
        <Form label-position="left" ref="formValidate" :model="formValidate" :rules="ruleValidate">
            <FormItem label="活动标题:" prop="marketName"  :label-width="120">
                    <Input v-model="formValidate.marketName" :disabled="auditing" placeholder="请输入活动标题" style="width:400px;"></Input>
            </FormItem>
            <FormItem label="时间范围:" :label-width="120">
                <div class="contentRightmain">
                    <div>
                        <Select v-model="timeType" :disabled="auditing" class='mr10' placeholder="请选择状态" style='width:150px;' @on-change="timeChange">
                                <Option v-for="item in timeList" :value="item.value" :key="item.typeCode">{{ item.label }}</Option>
                        </Select>
                    </div>
                    <div v-if="timeType==2">
                        <Row>
                            <Col span="11">
                                <FormItem prop="beginTime">
                                        <DatePicker type="datetime" :disabled="auditing" placeholder="开始时间" @on-change='begintimeChange' :options="options3" :value="beginTime"></DatePicker>
                                </FormItem>
                            </Col>
                            <Col span="2" style="text-align: center">-</Col>
                            <Col span="11">
                                <FormItem prop="endTime">
                                        <DatePicker type="datetime" :disabled="auditing" placeholder="结束时间" @on-change='endtimeChange' :options="options3" :value="endTime"></DatePicker>
                                </FormItem>
                            </Col>
                        </Row>
                    </div>
                </div>
            </FormItem>
            <FormItem :label-width="120" label="普通用户返利:">
                <div v-for="(item,index) in normalMarketingList" :key='index' class="clearfix mb15">
                    <Input type="text" :disabled="auditing" v-model="normalMarketingList[index].rechargeNumber" class="left inputnum mr20" style="width:180px">
                        <span slot="prepend">单笔充值</span>
                        <span slot="append" class="left">赞豆</span>
                    </Input>
                    <Input type="text" :disabled="auditing" v-model="normalMarketingList[index].giveNumber" class="left inputnum mr20" style="width:140px">
                        <span slot="prepend">返</span>
                        <span slot="append" class="left">赞豆</span>
                    </Input>
                    <Input type="text" :disabled="auditing" v-model="normalMarketingList[index].giveVipDays" class="left inputnum mr20" style="width:140px">
                        <span slot="prepend">送</span>
                        <span slot="append" class="left">天会员</span>
                    </Input>
                    <Input type="text" :disabled="auditing" v-model="normalMarketingList[index].giveCouponNumber" class="left inputnum" style="width:140px">
                        <span slot="prepend">返</span>
                        <span slot="append" class="left">抢单券</span>
                    </Input>
                    <Button type="primary" class="left ml10" :disabled="auditing" v-if="index==0" @click="addnormal1">+</Button>
                    <Button type="primary" class="left ml10" :disabled="auditing" v-if="index!=0" @click="addnormal2(index)">-</Button>
                </div>
            </FormItem>
            <FormItem :label-width="120" label="会员返利:" class="clearfix mt50">
                <div v-for="(item,index) in vipMarketingList" :key='index' class="clearfix mb15">
                    <Input type="text" :disabled="auditing" v-model="vipMarketingList[index].rechargeNumber" class="left inputnum mr20" style="width:180px">
                        <span slot="prepend">单笔充值</span>
                        <span slot="append" class="left">赞豆</span>
                    </Input>
                    <Input type="text" :disabled="auditing" v-model="vipMarketingList[index].giveNumber"  class="left inputnum mr20" style="width:140px">
                        <span slot="prepend">返</span>
                        <span slot="append" class="left">赞豆</span>
                    </Input>
                    <Input type="text" :disabled="auditing" v-model="vipMarketingList[index].giveVipDays" class="left inputnum mr20" style="width:140px">
                        <span slot="prepend">送</span>
                        <span slot="append" class="left">天会员</span>
                    </Input>
                    <Input type="text" :disabled="auditing" v-model="vipMarketingList[index].giveCouponNumber" class="left inputnum" style="width:140px">
                        <span slot="prepend">返</span>
                        <span slot="append" class="left">抢单券</span>
                    </Input>
                    <Button type="primary" class="left ml10" :disabled="auditing" v-if="index==0" @click="addmerber1">+</Button>
                    <Button type="primary" class="left ml10" :disabled="auditing" v-if="index!=0" @click="addmerber2(index)">-</Button>
                </div>
            </FormItem>
            <FormItem :label-width="240" style="margin-top:100px;">
                <Button type="primary" :disabled="auditing" @click="handleSubmit('formValidate')">保存提交审核</Button>
                <Button @click="handleReset('formValidate')" style="margin-left: 8px">取消</Button>
            </FormItem>
        </Form>
    </div>    
  </div>
</template>
<script>
export default {
    data(){
        return{
            auditing:false,
            timeType:1,
            beginTime:'',
            endTime:'',
            timeList:[
                {label:'不限时间范围',value:1},
                {label:'固定时间范围',value:2}
            ],
            options3: {
                disabledDate (date) {
                        return date && date.valueOf() < Date.now() - 86400000;
                }
            },
            normalMarketingList:[
                {
                    rechargeNumber:'',
                    giveNumber:'',
                    giveVipDays:'',
                    giveCouponNumber:''
                }
            ],
            vipMarketingList:[
                {
                    rechargeNumber:'',
                    giveNumber:'',
                    giveVipDays:'',
                    giveCouponNumber:''
                }
            ],
            formValidate:{
                marketName:''
            },
            ruleValidate:{
                marketName: [
                        { required: true, message: '请输入活动标题', trigger: 'blur' },
                        { type: 'string', max: 50, message: '活动标题不能超过50个字', trigger: 'blur' }
                ]
            },
        }
    },
    methods:{
        timeChange(timeType){
            this.timeType = timeType
        },
        begintimeChange(beginTime){
            this.beginTime = beginTime
        },
        endtimeChange(endTime){
            this.endTime = endTime
        },
        handleSubmit (name) {
            this.$refs[name].validate((valid) => {
                if (valid) {
                    let date1 = Date.parse(new Date(this.beginTime))/1000
                    let date2 = Date.parse(new Date(this.endTime))/1000
                    let res = /^(0|\+?[1-9][0-9]{0,4})$/
                    if(this.timeType=='2'){
                    if(this.beginTime==''){
                        this.$Modal.warning({
                        title: '温馨提示',
                        content: '<p>请选择开始时间</p>'
                        })
                        return false
                    }
                    if(this.endTime==''){
                        this.$Modal.warning({
                        title: '温馨提示',
                        content: '<p>请选择结束时间</p>'
                        })
                        return false
                    }
                    if(date1>date2){
                        this.$Modal.warning({
                        title: '温馨提示',
                        content: '<p>开始时间不得大于结束时间</p>'
                        })
                        return false
                    }
                }
                for(var i=0;i<this.normalMarketingList.length;i++){
                    if(!res.test(this.normalMarketingList[i].rechargeNumber)||!res.test(this.normalMarketingList[i].giveNumber)||!res.test(this.normalMarketingList[i].giveVipDays)||!res.test(this.normalMarketingList[i].giveCouponNumber)){
                            this.$Message.error("请输入0-99999的正整数")
                        return false
                    }
                }
                for(var i=0;i<this.vipMarketingList.length;i++){
                    if(!res.test(this.vipMarketingList[i].rechargeNumber)||!res.test(this.vipMarketingList[i].giveNumber)||!res.test(this.vipMarketingList[i].giveVipDays)||!res.test(this.vipMarketingList[i].giveCouponNumber)){
                            this.$Message.error('请输入0-99999的正整数')
                        return false
                    }
                }
                this.preserve()
                }
            })
        },
        handleReset (name) {
            window.history.go(-1);
        },
        addnormal1(){
            this.normalMarketingList.push( 
                {
                    rechargeNumber:"0",
                    giveNumber:"0",
                    giveVipDays:"0",
                    giveCouponNumber:"0"
                }
            )
        },
        addnormal2(index){
            this.normalMarketingList.splice(index, 1)
        },
        addmerber1(){
            this.vipMarketingList.push(
                {
                    rechargeNumber:"0",
                    giveNumber:"0",
                    giveVipDays:"0",
                    giveCouponNumber:"0"
                }
            )
        },
        addmerber2(index){
            this.vipMarketingList.splice(index, 1)
        },
        // 保存提交审核
        preserve(){
            this.$Modal.confirm({
                title: '温馨提示',
                content: '<p>确认保存提交审核?</p>',
                onOk: () => {
                    let data = {
                        marketName :this.formValidate.marketName,
                        timeType:this.timeType,
                        inviteRecharge:{
                              normalMarketingList:this.normalMarketingList,
                              vipMarketingList:this.vipMarketingList
                        },
                        marketType:3
                    }
                    if(data.timeType=='2'){
                        data.marketBeginTime = this.beginTime,
                        data.marketEndTime  = this.endTime
                    }
                    this.http.post(BASE_URL+"后台接口",data).then(data=>{
                        if(data.code == 'success'){
                        this.$Message.info('保存提交审核成功!');
                        this.$router.push('/marketingActivities')
                        } else {
                        this.$Message.info(data.message);
                        }
                    }).catch(err=>{
                        console.log(err)
                    })
                    
                },
                onCancel: () => {
                }
            })
        }
    },
    //这里是赋值页面 不必理会
    mounted(){
        if(this.$route.query.marketCode){
            this.http.post(BASE_URL+'后台接口?marketCode='+this.$route.query.marketCode)
            .then(data=>{
                if(data.code =='success'){
                this.auditing = true
                this.formValidate.marketName=data.data.marketName
                this.timeType = data.data.timeType
                this.beginTime = data.data.marketBeginTime
                this.endTime = data.data.marketEndTime
                this.normalMarketingList = data.data.inviteRecharge.normalMarketingList
                this.vipMarketingList = data.data.inviteRecharge.vipMarketingList
                }
            })
        }
    }
}
</script>
<style lang="less" scoped>
.contentRightmain{
    display: flex;
  }
</style>

If in doubt leave a message below

Guess you like

Origin blog.csdn.net/xy19950125/article/details/87856070