Skip to content
html
<template>
    <div>
        <a href="https://element.eleme.cn/#/zh-CN/component/form" target="_blank">Element表单官网</a>
        <p>查询触发表单校验,触发按钮自身loading,触发表格loading</p>
        <p>重置按钮触发reset(),并清空表单校验</p>
        <p>校验时间起止先后</p>
        <el-form ref="formRef_1" :model="formParam" :rules="formRules" label-width="80px" :inline="true">
            <el-form-item label="日期(起)" prop="rqStart">
                <el-date-picker clearable v-model="formParam.rqStart" type="date" placeholder="请选择" value-format="yyyyMMdd">
                </el-date-picker>
            </el-form-item>
            <el-form-item label="日期(止)" prop="rqEnd">
                <el-date-picker clearable v-model="formParam.rqEnd" type="date" placeholder="请选择" value-format="yyyyMMdd">
                </el-date-picker>
            </el-form-item>
            <el-form-item>
                <el-button @click="onSubmit()" icon="el-icon-search" type="primary" :loading="btnLoading">查询</el-button>
                <el-button @click="Reset()" icon="el-icon-refresh-right">重置</el-button>
            </el-form-item>
        </el-form>
    </div>
</template>

<script>
// import xxxx from './xxxx/xxxx.vue'
export default {
    name: '',
    components: {
        // xxxx
    },
    props: {
        // params: Object
    },
    data() {
        var checkformTime = (rule, value, callback) => {
            if (value === '') {
                callback(new Error('日期不能为空'));
            } else if (value) {
                if (
                    new Date(this.formParam.rqStart).getTime() >
                    new Date(this.formParam.rqEnd).getTime()
                ) {
                    callback(new Error('截止日期不能早于开始日期'));
                } else {
                    callback()
                }

            } else {
                callback();
            }
        };
        return {
            formRules: {
                rqStart: [{
                    required: true,
                    validator: checkformTime,
                    trigger: ['blur']
                }],
                rqEnd: [{
                    validator: checkformTime,
                    trigger: 'blur'
                }]
            },
            formParam: {
                rqStart: '',
                rqEnd: ''
            },
            btnLoading: false
        }
    },
    mounted() {

    },
    created() {

    },
    watch: {

    },
    methods: {
        onSubmit() {
            this.$refs["formRef_1"].validate((valid) => {
                if (valid) {
                    this.btnLoading = true
                    // this.getTableData() // 从后台获取数据
                    setTimeout(() => {
                        this.btnLoading = false
                    }, 1000);
                } else {
                    console.log('error submit!!');
                    return false;
                }
            });
        },
        Reset() {
            this.formParam = {
                rqStart: '',
                rqEnd: ''
            }
            this.$refs["formRef_1"].resetFields();
        }
    }
}
</script>

<style scoped>
/* @import '~@/styles/tabsStyle.scss'; */

/* ::v-deep .el-dialog__header {
    background-color: #fff !important;
} */
</style>
<template>
    <div>
        <a href="https://element.eleme.cn/#/zh-CN/component/form" target="_blank">Element表单官网</a>
        <p>查询触发表单校验,触发按钮自身loading,触发表格loading</p>
        <p>重置按钮触发reset(),并清空表单校验</p>
        <p>校验时间起止先后</p>
        <el-form ref="formRef_1" :model="formParam" :rules="formRules" label-width="80px" :inline="true">
            <el-form-item label="日期(起)" prop="rqStart">
                <el-date-picker clearable v-model="formParam.rqStart" type="date" placeholder="请选择" value-format="yyyyMMdd">
                </el-date-picker>
            </el-form-item>
            <el-form-item label="日期(止)" prop="rqEnd">
                <el-date-picker clearable v-model="formParam.rqEnd" type="date" placeholder="请选择" value-format="yyyyMMdd">
                </el-date-picker>
            </el-form-item>
            <el-form-item>
                <el-button @click="onSubmit()" icon="el-icon-search" type="primary" :loading="btnLoading">查询</el-button>
                <el-button @click="Reset()" icon="el-icon-refresh-right">重置</el-button>
            </el-form-item>
        </el-form>
    </div>
</template>

<script>
// import xxxx from './xxxx/xxxx.vue'
export default {
    name: '',
    components: {
        // xxxx
    },
    props: {
        // params: Object
    },
    data() {
        var checkformTime = (rule, value, callback) => {
            if (value === '') {
                callback(new Error('日期不能为空'));
            } else if (value) {
                if (
                    new Date(this.formParam.rqStart).getTime() >
                    new Date(this.formParam.rqEnd).getTime()
                ) {
                    callback(new Error('截止日期不能早于开始日期'));
                } else {
                    callback()
                }

            } else {
                callback();
            }
        };
        return {
            formRules: {
                rqStart: [{
                    required: true,
                    validator: checkformTime,
                    trigger: ['blur']
                }],
                rqEnd: [{
                    validator: checkformTime,
                    trigger: 'blur'
                }]
            },
            formParam: {
                rqStart: '',
                rqEnd: ''
            },
            btnLoading: false
        }
    },
    mounted() {

    },
    created() {

    },
    watch: {

    },
    methods: {
        onSubmit() {
            this.$refs["formRef_1"].validate((valid) => {
                if (valid) {
                    this.btnLoading = true
                    // this.getTableData() // 从后台获取数据
                    setTimeout(() => {
                        this.btnLoading = false
                    }, 1000);
                } else {
                    console.log('error submit!!');
                    return false;
                }
            });
        },
        Reset() {
            this.formParam = {
                rqStart: '',
                rqEnd: ''
            }
            this.$refs["formRef_1"].resetFields();
        }
    }
}
</script>

<style scoped>
/* @import '~@/styles/tabsStyle.scss'; */

/* ::v-deep .el-dialog__header {
    background-color: #fff !important;
} */
</style>