• Vue Element Form表单时间验证控件使用


    如果直接使用Element做时间选择器,其规则(rules)不添加type:'date',会提示类型错误,处理这个需要规范值的类型为date.

    时间格式化过滤器

    import Vue from 'vue'
    import service from './service.js'
    import onlineIcon from '@/assets/img/map/tsp_green.png'
    import unlineIcon from '@/assets/img/map/tsp_gray.png'
    import alramIcon from '@/assets/img/map/tsp_red.png'
    import extremIcon from '@/assets/img/map/tsp_yellow.png'
    import stopIcon from '@/assets/img/map/tsp_blue.png'
    import unknow from '@/assets/img/map/tsp_black.png'
    import grayAlarm from '@/assets/img/map/vehicle_direction_0.gif'
    import unlineAlarm from '@/assets/img/map/1.gif'
    import lineAlarm from '@/assets/img/map/2.gif'
    import stopAlarm from '@/assets/img/map/3.gif'
    import extremAlarm from '@/assets/img/map/4.gif'
    
    let vm = new Vue()
    let filters = {};
    
    //是否注册成功 0--已注册 1--注册
    filters.isRegisterFilter = function (item) {
        let filter = parseInt(item);
        if (filter == 0) {
            return vm.$t('filter.register');
        } else if (filter == 1) {
            return vm.$t('filter.noregister');
        } else {
            return "";
        }
    }
    // 车辆使用状态
    filters.isStuas = item => {
        if (item == '0') {
            return vm.$t('filter.onStatus');
        } else {
            return vm.$t('filter.noStatus');
        }
    }
    
    // 车辆是否定位
    filters.isLocatiion = item => {
        if(item == '1'){
            return '定位';
        }else{
            return '未定位';
        }
    }
    
    // 车辆树是否在线和离线,返回图片还是文字
    filters.isOnline = (item = {}, flag = false) => {
        // 车牌号不存在-----图片为未知
        if (item.plateCode == undefined) {
            return flag ? '--' : unknow;
        }
        if(Number(item.locateStatus) === 0){
            return flag ? '定位异常' : extremIcon;
        }
        if ((Number(item.vehicleStatus) == 0) && (item.alarmCount > 0)) {
            return flag ? '车辆离线报警' : grayAlarm;
        } else if (Number(item.vehicleStatus) === 0) {
            return flag ? '车辆离线' : unlineIcon;
        }
    
        if (!item.locationDesc && Number(item.alarmCount) > 0) {
            return flag ? '定位异常报警' : extremAlarm;
        } else if (!item.locationDesc) {
            return flag ? '定位异常' : extremIcon;
        }
    
        if ((Number(item.gpsSpeed) == 0) && Number(item.alarmCount) > 0) {
            return flag ? '车辆停驶报警' : stopAlarm;
        } else if (Number(item.gpsSpeed) == 0) {
            return flag ? '车辆停驶' : stopIcon;
        }
    
        if ((Number(item.vehicleStatus) === 1) && (Number(item.alarmCount) > 0)) {
            return flag ? '车辆在线报警' : lineAlarm;
        } else if (Number(item.vehicleStatus) === 1) {
            return flag ? '车辆在线' : onlineIcon;
        }
    }
    // 车辆树是否在线和离线
    filters.isOnlineState = (item) => {
        if (item == '1') {
            return vm.$t('filter.online')
        } else {
            return vm.$t('filter.offline')
        }
    }
    
    filters.accStatus = (item) => {
        return item == "1" ? "ACC(开)" : "ACC(关)";
    }
    filters.locationStatus = (item,flag) => {
        return item == "1" ?flag?"定位":'#a0d468':flag? "未定位":'red';
    }
    filters.oilWayStatus = (item) => {
        if (item == "1") {
            return "油路正常";
        } else if (item == "0") {
            return "油路断开";
        } else {
            return "--";
        }
    }
    filters.circuitStatus = (item) => {
        if (item == "1") {
            return "电路正常";
        } else if (item == "0") {
            return "电路断开";
        } else {
            return "--";
        }
    }
    filters.doorLockStatus = (item) => {
        if (item == "1") {
            return "车门加锁";
        } else if (item == "0") {
            return "车门解锁";
        } else {
            return "--";
        }
    }
    filters.locateStatus = (item) => {
        if (item == "1") {
            return "定位";
        } else if (item == "0") {
            return "未定位";
        } else {
            return "--";
        }
    }
    
    filters.operateStatus = (item) => {
        if (item == "1") {
            return "运营";
        } else if (item == "0") {
            return "停运";
        } else {
            return "--";
        }
    }
    
    filters.artificialLiftStatus = (item) => {
        return item == "0" ? "否" : "是";
    }
    
    filters.topCapStatus = (item) => {
        if (item == "0") {
            return "关";
        } else if (item == "1") {
            return "开";
        } else {
            return "--";
        }
    }
    // 车牌颜色
    filters.plateCodeColor = (item) => {
        switch (item) {
            case "1":
                return vm.$t('filter.colorBlue');
            case "2":
                return vm.$t('filter.colorYellow');
            case "3":
                return vm.$t('filter.colorBlack');
            case "4":
                return vm.$t('filter.colorWhite');
            case "5":
                return vm.$t('filter.colorGreen');
            case "9":
                return vm.$t('filter.color');
            default:
                break
        }
    }
    // 车牌颜色
    filters.plateCodeColor1 = (item) => {
        switch (item) {
            case "1":
                return '#2b62d0';
            case "2":
                return '#eba239';
            case "3":
                return '#000';
            case "4":
                return '#fff';
            case "5":
                return '#a0d468';
            case "9":
                return '#2b62d0';
            default:
                break
        }
    }
    filters.icType=(item)=>{
        switch (item) {
            case 1:
                return "上班";
            case 2:
                return "下班";
            default:
                break
        }
    
    
    }
    filters.icResult=(item)=>{
        switch (item) {
            case 0:
                return "读卡成功";
            case 1:
                return "密钥错误";
            case 2:
                return "卡被锁";
            case 3:
                return "卡被拔出";
            case 4:
                return "数据校验失败";
            default:
                break
        }
    
    
    }
    filters.isSendTo=(item)=>{
        switch (item) {
            case 0:
                return "否";
            case 1:
                return "是";
            default:
                break
        }
    
    
    }
    
    // 上级平台车辆类型
    filters.superPlatformCarType = (item) => {
        switch (item) {
            case 0:
                return '普通车辆';
            case 1:
                return '跨域货车';
            case 2:
                return '跨域客车';
            default:
                break
        }
    }
    
    // 多媒体管理(类型)
    filters.mediaType = (item) => {
        switch (item) {
            case 0:
                return vm.$t('filter.picture');
            case 1:
                return vm.$t('filter.music');
            case 2:
                return vm.$t('filter.video');
            default:
                break
        }
    }
    
    // 多媒体管理(格式)
    filters.formatter = (item) => {
        switch (item) {
            case 0:
                return vm.$t('filter.jpg');
            case 1:
                return vm.$t('filter.tif');
            case 2:
                return vm.$t('filter.mp3');
            case 3:
                return vm.$t('filter.wav');
            case 4:
                return vm.$t('filter.wmv');
            default:
                break
        }
    }
    // 报警处理状态(类型)
    filters.alarmTp = (item) => {
        switch (item) {
            case 0:
                return '未处理';
            case 1:
                return '处理完毕';
            case 2:
                return '不做处理';
            case 3:
                return '将来处理';   
            default:
                break
        }
    }
    // 多媒体管理(触发事件类型)
    filters.eventType = (item) => {
        switch (item) {
            case 0:
                return vm.$t('filter.incident0');
            case 1:
                return vm.$t('filter.incident1');
            case 2:
                return vm.$t('filter.incident2');
            case 3:
                return vm.$t('filter.incident3');
            default:
                break
        }
    }
    
    // 文字是否有值 --- unit文本的单位,当item有值的情况下,存在单位
    filters.isValue = (item, unit) => {
        if (item) {
            return unit ? (item + unit) : item;
        } else {
            return '/'
        }
    }
    
    //地图类型过滤
    filters.mapType = (item) => {
        switch (item) {
            case 1:
                return '百度';
            case 2:
                return '谷歌';
            case 3:
                return '高德';
            default:
                break
        }
    }
    //运营车辆类型过滤
    filters.enterpriseType = (item) => {
        let items = item.split(','),
            reArr = [];
        items.forEach(ele => {
            switch (ele) {
                case '1':
                    reArr.push('货运')
                    break;
                case '2':
                    reArr.push('渣土')
                    break;
                case '3':
                    reArr.push('环卫')
                    break;
                case '4':
                    reArr.push('客运')
                    break;
            }
        });
        return reArr.length == 0?'':reArr.join(',')
    }
    // 方向过滤
    filters.direction = (item) => {
        let direction = [
            "正北", "东偏北", "东北", "北偏东",
            "正东", "南偏东", "东南", "东偏南",
            "正南", "西偏南", "西南", "南偏西",
            "正西", "北偏西", "西北", "西偏北"
        ];
        let index = Math.floor((parseInt(item) + 11) % 360 / 22.5);
        return direction[index];
    }
    // liftingState--举升状态 
    filters.liftingState = (item) => {
        if (item == '0') {
            return 1
        } else if (item == '1') {
            return 2
        } else {
            return ''
        }
    }
    // 开盒盖状态
    filters.openCapState = (item) => {
        if (item == '0') {
            return 3
        } else if (item == '1') {
            return 4
        } else {
            return ''
        }
    }
    filters.loadCondition = (item) => {
        if (item == '00' || item == '10') {
            return 5
        } else if (item == '01') {
            return 6
        } else if (item == '11') {
            return 7
        } else {
            return ''
        }
    }
    // 不同状态显示不同的信息
    filters.switchState = (item) => {
        let html = "";
        switch (item) {
            case 1:
                return html = '未举升';
            case 2:
                return html = '举升';
            case 3:
                return html = '顶盖闭合';
            case 4:
                return html = '顶盖开启';
            case 5:
                return html = '空载';
            case 6:
                return html = '半载';
            case 7:
                return html = '满载';
            default:
                return html = '未知';
        }
    }
    //can状态
    filters.canDataReturn = (item) =>{
        let html = ''
        switch(item.seriesName){
            case '行驶速度':
            return html = item.data + ' (km/h)';
            case 'GPS速度':
            return html = item.data + ' (km/h)';
            case '油耗':
            return html = item.data + ' (L)';
            case 'ACC开关':
            return html = (item.data==1||item.data == true)?' 开':' 关';
            default:
            return html = '未知';
        }
    }
    
    // 报警级别过滤
    filters.alarmLevel = (item) => {
        switch (item) {
            case 0:
                return '紧急报警';
            case 1:
                return '中级报警';
            case 2:
                return '一般报警';
            case 3:
                return '信息提示';
            default:
                return '未知'
        }
    }
    filters.orderTypeS = (item)=>{
        switch (item) {
            case 0:
                return '初始';
            case 1:
                return '成功';
            case 2:
                return '设备不在线';
            case 3:
                return '失败';
            case 4:
                return '等待回应超时';
            case 5:
                return '等待回应中';
            case 6:
                return '作废';
            default:
                return '未知'
        }
    },
    filters.stateType = (item)=>{
        switch (item) {
            case 10:
                return '所有';
            case 0:
                return '下级平台所属单一平台';
            case 1:
                return '当前连接的下级平台';
            case 2:
                return '下级平台所属单一业户';
            case 3:
                return '下级平台所属所有业户';
            case 4:
                return '下级平台所属所有平台';
            case 5:
                return '下级平台所属所有平台和业户';
            case 6:
                return '下级平台所属所有政府监管平台(含监控端)';
            case 7:
                return '下级平台所属所有企业监控平台';
            case 8:
                return '下级平台所属所有经营性企业监控平台';
            case 9:
                return '下级平台所属所有非经营性企业监控平台';
         
                
            default:
                return '未知'
        }
    }
    //能力id值过滤 1---温度;2---承重;3---速度;4---顶盖开启;5---车斗举升
    filters.abillityIds = (item, id) => {
        if (item) {
            let itemIds = item.split(',')
            let itemid = itemIds.find(val => {
                return val == id;
            })
            return itemid ? true : false;
        } else {
            return false
        }
    }
    
    // 承重的过滤
    filters.bearing = item => {
        if (+item >= 0 && +item <= 30) {
            return '空载'
        } else if (+item > 30 && +item <= 70) {
            return '半载'
        } else if (+item > 70 && +item <= 100) {
            return '满载'
        } else if (item == "-1") {
            return '保留'
        }
    }
    // 小数点截取相应位数
    filters.toFixed = (item, num) => {
        let args = Array.prototype.slice.call(arguments, 1);
        return isNaN(Number(item)) ? "" : Number(item).toFixed(num);
    }
    //时间范围过滤
    //时间格式(2017-8-29 00:00:00) -----> 转换成天数(3.0)
    filters.timeRange = (startTime, endTime) => {
        let days = (new Date(filters.timeStamp(endTime)) - new Date(filters.timeStamp(startTime))) / 86400000
        // let days = (new Date(Date.parse(endTime.replace(/-/g, "/"))).getTime()-new Date(Date.parse(startTime.replace(/-/g, "/"))).getTime())/86400000
        // let days = (new Date(endTime) - new Date(startTime)) / 86400000
        // console.log(days1,days)
        let num = days.toFixed(1)
        return num
    }
    
    /* 时间过滤*/
    // new Date(时间戳) ----> 时间格式化(2017-07-10)
    filters.format = (timeNumber, format) => {
        if (!timeNumber) {
            return
        }
        let html,
            timetemp = typeof timeNumber == 'object' ? timeNumber : new Date(Number(timeNumber)),
            year = timetemp.getFullYear(),
            month = timetemp.getMonth() + 1,
            day = timetemp.getDate(),
            hours = timetemp.getHours(),
            mins = timetemp.getMinutes(),
            seconds = timetemp.getSeconds();
        switch (format) {
            case 'yyyy-MM':
                html = year + '-' + (month < 10 ? "0" + month : month);
                break;
            case 'yyyy-MM-dd':
                html = year + '-' + (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day);
                break;
            case 'yyyy-MM-dd start':
                html = year + '-' + (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day) +
                    " 00:00:00";
                break;
            case 'yyyy-MM-dd end':
                html = year + '-' + (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day) +
                    " 23:59:59";
                break;
            case 'yyyy-MM-dd HH:mm:ss':
                html = year + '-' + (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day) +
                    " " + (hours < 10 ? "0" + hours : hours) + ":" + (mins < 10 ? "0" + mins : mins) + ":" + (seconds < 10 ? "0" + seconds : seconds);
                break;
            case 'yyyy/MM/dd HH:mm:ss':
                html = year + '/' + (month < 10 ? "0" + month : month) + '/' + (day < 10 ? "0" + day : day) +
                    " " + (hours < 10 ? "0" + hours : hours) + ":" + (mins < 10 ? "0" + mins : mins) + ":" + (seconds < 10 ? "0" + seconds : seconds);
                break;
            case 'yyyy/MM/dd HH:mm':
                html = year + '/' + (month < 10 ? "0" + month : month) + '/' + (day < 10 ? "0" + day : day) +
                    " " + (hours < 10 ? "0" + hours : hours) + ":" + (mins < 10 ? "0" + mins : mins);
                break;
            case 'HH:mm:ss':
                html = (hours < 10 ? "0" + hours : hours) + ":" + (mins < 10 ? "0" + mins : mins) + ":" + (seconds < 10 ? "0" + seconds : seconds);
                break;
            default:
                html = year + '-' + (month < 10 ? "0" + month : month) + '-' + (day < 10 ? "0" + day : day) +
                    " " + (hours < 10 ? "0" + hours : hours) + ":" + (mins < 10 ? "0" + mins : mins) + ":" + (seconds < 10 ? "0" + seconds : seconds);
                break;
        }
        return html;
    }
    
    /*
    * 显示当前日期的周---月 ---季度
    */
    filters.dateWeekMonth = function(timer, format='yyyy-MM-dd'){
        // 对传入的事件进行处理 转换正确的格式
        const init = timer => {
            if(typeof timer === 'string'){
                return new Date(timer.replace(/(d{4})[.|/](d{2})[.|/](d{2})/g, '$1-$2-$3'));
            }else{
                throw new Error('timer arguments is not string!');
            }
        };
        const options = {
            num: init(timer).getDay(),
            year: init(timer).getFullYear(),
            month: init(timer).getMonth(),
            day: init(timer).getDate()
        };
        const getWeekStart = new Date(options.year, options.month, options.day - options.num);
        const getWeekEnd = new Date(options.year, options.month, options.day + (6 - options.num));
        const getMonthStart = new Date(options.year, options.month, 1);
        const getMonthEnd = new Date(options.year, options.month, filters.getMonthDays(options.year, options.month + 1));
        const getQuarterStart = new Date(options.year, filters.getQuarterStartMonth(options.month), 1);
        const getQuaterEnd = filters.AddDays(filters.AddMonths(getQuarterStart, 3), -1);
        return {
            week: {
                WeekStart: filters.format(getWeekStart, format),
                WeekEnd: filters.format(getWeekEnd, format)
            },
            month: {
                MonthStart: filters.format(getMonthStart, format),
                MonthEnd: filters.format(getMonthEnd, format)
            },
            quarter: {
                QuarterStart: filters.format(getQuarterStart, format),
                QuarterEnd: filters.format(getQuaterEnd, format)
            }
        };
    }
    
    /*
     * 时间转换
     * --时间格式化(字符串)(2017-10-13 03:10:40)--> 时间戳
     */
    filters.timeStamp = function (str) {
        var timeStamp = new Date(Date.parse(str.replace(/-/g, "/")));
        return timeStamp.getTime();
    }
    
    /*
    * 得到每个月的天数
    */
    filters.getMonthDays = function(myYear, myMonth){
       var days;    
       if (myMonth == 2) {
           days = myYear % 4 == 0 ? 29 : 28;     
       }else if (myMonth == 1 || myMonth == 3 || myMonth == 5 || myMonth == 7 || myMonth == 8 || myMonth == 10 || myMonth == 12) {
           days = 31;
       }else {
           days = 30;    
       }
       return days;
    }
    /*
    * 获取季度的开始月份
    */
    filters.getQuarterStartMonth = function(myMonth) {
         if (myMonth <= 2) return 0;
         else if (myMonth <= 5) { return 3; }
         else if (myMonth <= 8) { return 6; }
         else { return 9; }
    }
    filters.AddDays = function(d, n){
         var t = new Date(d);
         t.setDate(t.getDate() + n);
         return t;
    }
    filters.AddMonths = function(d, n){
         var t = new Date(d);
         t.setMonth(t.getMonth() + n);
         if (t.getDate() != d.getDate()) { t.setDate(0); }
         return t;
    }
    
    // 开始时间与结束时间比较
    filters.CompareDate=function(start,end)
    {
      return ((new Date(start.replace(/-/g,"/"))) < (new Date(end.replace(/-/g,"/"))));
    }
    // 开始时间是否大于当前系统时间
    filters.CompareStartDatetime=function(start,nowtime)
    {
      return ((new Date(start.replace(/-/g,"/"))) > (new Date(nowtime.replace(/-/g,"/"))));
    }
    /* 
     * 描述:动态取得本地资源文件内容 
     *  
     * 参数: 
     *   key 对应的资源的key 
     *   params 对应资源中的参数对象(Hash) 
     *    
     * 返回:对应的资源内容 
     *  
     * 用法: 
     *      getLocale("helloParam",{first:value1,second:value2}); 
     */
    filters.lanReplace = function (str, params) {
        var result = ""; // 对应的资源的内容  
        if (str && params) {
            result = str;
            var regExp = new RegExp(); //替换资源中参数的正则  
            for (var k in params) {
                regExp = eval("/{{:" + k + "}}/g");
                result = result.replace(regExp, params[k]);
            }
            if (/{{:[a-zA-Z]+}}/.test(result)) {
                result = result.replace(/{{:[a-zA-Z]+}}/g, "No Value");
            }
        }
        return result;
    }
    
    /**
     * 
     * @param {*透传下发方式} type 
     */
    filters.sendTypes= (type)=>{
        switch(type){
            case 0:
                return vm.$t("transparentInfoSend.gnssModelDetailData");
                break;
            case 11:
                return vm.$t("transparentInfoSend.roadTransICCardInfo");
                break;
            case 65:
                return vm.$t("transparentInfoSend.serialCom1");
                break;
            case 66:
                return vm.$t("transparentInfoSend.serialCom2");
                break;
            case 245:
                return vm.$t("transparentInfoSend.selfDefined245");
                break;
            case -1:
                return vm.$t("transparentInfoSend.userSelfDefined");
                break;
            default:
                break;
        }
    }
    
    export default filters
    

     表单验证日期处理:

    <template>
    	<el-row class="container" :gutter="20">	
    		<el-col :span="24">
    			<el-form :model="formData" label-position="top" :inline="false" :rules="rules" ref="addForm">
    				<el-form-item :label="$t('information.infoTypeContent')" prop="infoType">
    					<el-select v-model.trim="formData.infoType" size="small"  style="360px;" >
    					      <el-option
    							v-for="item in SELECT_DATA"
    							:key="item.infotype"
    							:label="item.infoname"
    							:value="item.infotype">
    							</el-option>
    					</el-select>
    				</el-form-item>
    				<el-form-item :label="$t('information.startSendTimeStr')" prop="startSendTimeStr">
    					 <el-date-picker
    					   style="360px;"
    						v-model="formData.startSendTimeStr"
    						type="datetime"
    						placeholder="选择日期和时间"
    						align="right"
    						size="small" 
    						value-format="String"
    						@change="dateStartTimeChange">
    						</el-date-picker>
    				    </el-form-item>
    				<el-form-item :label="$t('information.endSendTimeStr')" prop="endSendTimeStr">
    					 <el-date-picker
    					   style="360px;"
    						v-model="formData.endSendTimeStr"
    						type="datetime"
    						placeholder="选择日期和时间"
    						align="right"
    						size="small"
    						@change="dateEndTimeChange">
    						</el-date-picker>
    				    </el-form-item>
    				</el-form-item>
    				<el-form-item :label="$t('information.information')" prop="information">
    					<el-input type="textarea" rows="3" v-model.trim="formData.information " size="small" ></el-input>
    				</el-form-item>
    			</el-form>
    			</el-col>
    		<el-col :span="24" class="dialog-footer">
    			<el-button :loading="loading" type="primary" @click="confirm">{{$t('action.save')}}</el-button>
    			<el-button @click="options.flag=false">{{$t('action.cancel')}}</el-button>
    		</el-col>
    	</el-row>
    </template>
    
    <script>
    import {COMMON} from '@/utils'
    	export default{
    		props: {
    			options: {}
    		},
    		data(){
    			return{
    				SELECT_DATA:[],
    				formData:{
    					infoType : '',
    					startSendTimeStr : '',
    					endSendTimeStr:'',
    					startSendTime: '',
    					endSendTime:'',
    					information:''
    				},
    				loading:false,
    				rules: {
    					infoType : [
    						{ required: true, message: this.$t('filter.noempty'), trigger: 'blur,change' }
    					],
    					information : [
    						{ required: true, message: this.$t('filter.noempty'), trigger: 'blur,change' },
    						{ min:1, max: 500, message: this.$filter.lanReplace(this.$t('filter.Length'),{min:1,max:500}) }
    					],
    					startSendTimeStr : [
    						{ type: 'date', required: true, message: this.$t('filter.noempty'), trigger: 'change' }
    					],
    					endSendTimeStr : [
    						{ type: 'date',required: true, message: this.$t('filter.noempty'), trigger: 'change' }
    					],
    				}
    			}
    		},
    		methods: {
    		    dateStartTimeChange(){
    				this.formData.startSendTime=this.formData.startSendTimeStr==null?"":this.$filter.format(this.formData.startSendTimeStr,"yyyy-MM-dd HH:mm:ss");
    			},
    			dateEndTimeChange(){
    				this.formData.endSendTime=this.formData.endSendTimeStr==null?"":this.$filter.format(this.formData.endSendTimeStr,"yyyy-MM-dd HH:mm:ss");
    			},
    		   confirm(){
    				this.$refs['addForm'].validate(valid => {
    					if(valid){
    						let params = {
    							infoType :this.formData.infoType ,
    							startSendTimeStr :this.formData.startSendTime, 
    							endSendTimeStr :this.formData.endSendTime, 
    							information :this.formData.information
    						};
    						console.log(params);
    
    						if(!this.$filter.CompareDate(params.startSendTimeStr,params.endSendTimeStr)){
    							this.$message.error({ message: this.$t("information.timeInvalidAlert") });
    							return ;
    						}
    						this.loading = true;
    						this.$store.dispatch('insertInformation', params).then(data => {
    							this.loading = false
    							if (!data.flag && !!data.errorCode){
    								// this.$notify.error({message: this.$t("error."+data.errorCode)});
    								this.$message.error({ message: this.$t("error."+data.errorCode) });
    							}else{
    								this.$emit('confirm')
    								// this.$notify.success(this.$t('action.addSuccess'));
    								this.$message.success(this.$t('action.addSuccess'));
    								this.options.flag = false;
    							}
    						}).catch(error=>{
    							this.loading = false;
    						})	
    					}else{
    							return false
    					}
    				})
    			},
    			loadSelectData(){
    				this.$store.dispatch('getAllInformationTypeList').then(data =>{
    					if(data.flag && data.data.length!=0){
    						this.SELECT_DATA=data.data;
    						for(var i=0;i<this.SELECT_DATA.length;i++){
                                this.SELECT_DATA[i].infotype+="";
                            }
    					}else{
    						this.SELECT_DATA =[];
    					}
    				});
    			}
    		},
    		watch: {
    			'options.flag'(newVal){
    				if(!newVal){
    					this.$refs['addForm'].resetFields()
    				}
    			}
    		},
    		mounted(){
    			this.loadSelectData();
    		}
    	}
    </script>
    <style lang="scss" scoped>
    
    </style>
    

     修改mounted函数时间格式化:

    <template>
        <div>
            <el-row class="container" :gutter="20">
                <el-col :span="24">
                    <el-form :model="formData" label-position="top" :inline="false" :rules="rules" ref="modify">
                    <el-form-item :label="$t('information.infoTypeContent')" prop="infoType">
    					<el-select v-model="formData.infoType" size="small"  style="360px;"  >
    					      <el-option
    							v-for="item in SELECT_DATA"
    							:key="item.infotype"
    							:label="item.infoname"
    							:value="item.infotype">
    							</el-option>
    					</el-select>
    				</el-form-item>
    			<el-form-item :label="$t('information.startSendTimeStr')" prop="startSendTimeStr">
    					 <el-date-picker
                            style="360px;"
    						v-model="formData.startSendTimeStr"
    						type="datetime"
    						placeholder="选择日期和时间"
    						align="right"
    						size="small"
                            @change="dateStartTimeChange">
    						</el-date-picker>
    				    </el-form-item>
    				<el-form-item :label="$t('information.endSendTimeStr')" prop="endSendTimeStr">
    					 <el-date-picker
                            style="360px;"
    						v-model="formData.endSendTimeStr"
    						type="datetime"
    						placeholder="选择日期和时间"
    						align="right"
    						size="small"
                            @change="dateEndTimeChange">
    						</el-date-picker>
    				    </el-form-item>
    				</el-form-item>
    				<el-form-item :label="$t('information.information')" prop="information">
    					<el-input type="textarea" rows="3" v-model.trim="formData.information " size="small" ></el-input>
    				</el-form-item>
                    </el-form>
                </el-col>
                <el-col :span="24" class="dialog-footer">
                    <el-button :loading="loading" type="primary" @click="confirm">{{$t('action.confirm')}}</el-button>
                    <el-button @click="options.flag=false">{{$t('action.cancel')}}</el-button>
                </el-col>
            </el-row>
        </div>
    </template>
    <script>
    import {COMMON} from '@/utils'
    export default {
        props: {
            options: {}
        },
        data() {
            return {
                SELECT_DATA:[],
                formData:{
                    infoType : '',
    				startSendTimeStr : '',
    				endSendTimeStr:'',
    				startSendTime: '',
    				endSendTime:'',
    				information:''
                },
                disable:true,
                rules: {
    					infoType : [
    						{ required: true, message: this.$t('filter.noempty'), trigger: 'blur,change' }
    					],
    					information : [
                            { required: true, message: this.$t('filter.noempty'), trigger: 'blur,change' },
                            { min:1, max: 500, message: this.$filter.lanReplace(this.$t('filter.Length'),{min:1,max:500}) }
                        ],
                        startSendTimeStr : [
    						{ type: 'date',required: true, message: this.$t('filter.noempty'), trigger: 'blur,change' }
    					],
    					endSendTimeStr : [
    						{ type: 'date',required: true, message: this.$t('filter.noempty'), trigger: 'blur,change' }
    					],
    			},
                loading:false
            }
        },
        methods: {
             dateStartTimeChange(){
    			this.formData.startSendTime=this.formData.startSendTimeStr==null?"":this.$filter.format(this.formData.startSendTimeStr,"yyyy-MM-dd HH:mm:ss");
    		},
    		dateEndTimeChange(){
    			this.formData.endSendTime=this.formData.endSendTimeStr==null?"":this.$filter.format(this.formData.endSendTimeStr,"yyyy-MM-dd HH:mm:ss");
    		},
            confirm() {
                this.$refs['modify'].validate(valid => {
                    if (valid) {
                        let params = {
                            infoType: this.formData.infoType,
                            startSendTimeStr :this.formData.startSendTime, 
    						endSendTimeStr :this.formData.endSendTime, 
                            information: this.formData.information,
                            id: this.options.modify.id
                        }
    					console.log(params);
    
    					if(!this.$filter.CompareDate(params.startSendTimeStr,params.endSendTimeStr)){
    						this.$message.error({ message: this.$t("information.timeInvalidAlert") });
    						return ;
    					}
                        this.loading = true
                        this.$store.dispatch('updateInformation', params).then(data => {
                             this.loading = false
                         	if (!data.flag && !!data.errorCode){
    						// this.$notify.error({message: this.$t("error."+data.errorCode)});
                            this.$message.error({ message: this.$t("error."+data.errorCode) });
    						}else{
                                this.options.flag=false;
    							this.$emit('confirm');
    							// this.$notify.success(this.$t('action.modifySuccess'));
                                this.$message.success(this.$t('action.modifySuccess'));
                                       
    						}
                        }).catch(error=>{
                        this.loading = false;
                       })
                    }
                })
            },
            loadSelectData(){
    				this.$store.dispatch('getAllInformationTypeList').then(data =>{
    					if(data.flag && data.data.length!=0){
    						this.SELECT_DATA=data.data;
                            for(var i=0;i<this.SELECT_DATA.length;i++){
                                this.SELECT_DATA[i].infotype+="";
                            }
    					}else{
    						this.SELECT_DATA =[];
    					}
    				});
    		}
    
        },
        watch:{
          'options.flag'(newVal){
              if(!newVal){
                  this.options.name = '';
              }
          }
         },
        mounted(){
            this.loadSelectData();
            this.formData.infoType = this.options.modify.infoType.toString();
            this.formData.startSendTimeStr = new Date(Date.parse(this.options.modify.startSendTimeStr.replace(/-/g, "/")));
            this.formData.endSendTimeStr = new Date(Date.parse(this.options.modify.endSendTimeStr.replace(/-/g, "/")));
            this.formData.information = this.options.modify.information.toString();
        },
       
    }
    </script>
    
    
    <style lang="scss" scoped>
    
    
    </style>
    
  • 相关阅读:
    Jquery $().each()与$.each(data,function(i,obj))区别
    「人生最好的境界」​​写出我心(九十)
    「金融市场里的推销」​写出我心(八十九)
    「错误」写出我心(八十八)
    「马丁路德·金的名言」写出我心(八十七)
    「眼界」​​​​​​​​​​​写出我心(八十六)
    「一个人真正成年的三大标志」写出我心(八十五)
    「如何降低事件对你的伤害」​​​​​​​​​​写出我心(八十四)
    「眼界的重要性」​​​​​​​​​写出我心(八十三)
    「平视所有优秀的人」​​​​​​​​写出我心(八十二)
  • 原文地址:https://www.cnblogs.com/boonya/p/7903634.html
Copyright © 2020-2023  润新知