论前端开发的红颜知己-------饿了么UI

对于PC端开发的码农来看,这个组件库一定是耳熟能详了,以下总结了一下开发中常用的技巧,未来还会持续添加,期待-----

1.element.ui中的el-upload传递索引

index是外部v-for循环时的索引;
:on-success的回调函数原本有三个形参数(response,file, fileList),使用箭头函数传递索引

<el-upload
    v-show='!item.flag'
    :action="action"
    accept="image/png,image/jpg,image/jpeg"
    :on-success='(response,file, fileList) => {imgChange_post(response,file, fileList, index)}'>
    <el-button type="primary">点击上传封面图</el-button>
</el-upload>

2.element.ui中的loading组件加载圈位置

//比如要始终将文字固定在屏幕正中间
//重新设置一个div即可 给个id方便获取下面的子类元素

<div id="createId" v-loading='loading_create' element-loading-text="创建中,请稍等"></div>

```css
#createId .el-loading-mask{
    position: fixed;
    width: 100%;
    height: 100%;
}

3.element.ui上传图片视频大小尺寸校验

图片尺寸
beforeUpload:返回false则终止上传

beforeUpload(file) {
    const isJpg = /image\/(png|jpe?g|gif)$/.test(file.type);
    const isLt1M = file.size / 1024 / 1024 < 1;
    if (!isJpg) {
        this.$message.error('上传图片只能是 JPG/PNG 格式!');
    }
    if (!isLt1M) {
        this.$message.error('上传图片大小不能超过 1MB!');
    }
    const isSize = new Promise(function(resolve, reject){
        let width = 108;
        let height = 108;
        let _URL = window.URL || window.webkitURL;
        let img = new Image();
        img.onload = function(){
            let valid = img.width == width && img.height == height;
            valid ? resolve() : reject();
        }
        img.src = _URL.createObjectURL(file);
    }).then(()=>{
        return file;
    }, ()=>{
    this.$message.error('上传图片的尺寸建议为108*108!');
        return Promise.reject()
    });
    return isJpg && isLt1M && isSize;
},

视频尺寸

const self = this
const isLt100MB  = file.size / 1024 / 1024 < 100;
const isSize = new Promise(function(resolve, reject) {
    let _URL = window.URL || window.webkitURL;
    let videoElement = document.createElement('video')
    videoElement.addEventListener("loadedmetadata", function (_event) {
        let width = videoElement.videoWidth;
        let height = videoElement.videoHeight;
        let duration = videoElement.duration; // 视频时长
        if(!isLt100MB) self.$message.error('上传视频大小不能超过100MB!');
        if(Math.ceil(duration) <= 4) self.$message.error('上传视频时长不能少于4S!');
        let valid = width/height === 9/16 && width >= 720 && height >= 1280;
        valid ? resolve() : reject();
    });
    videoElement.src = _URL.createObjectURL(file)
}).then(() => {
    return file;
},() => {
    self.$message.error('上传视频尺寸宽高比为9:16,分辨率大于720*1280');
    return Promise.reject()
});
return isSize;

4.el-table列表循环

 <el-table 
    :data="tableData"
    @sort-change='sortChange'
    height="100%"
    border>
    <el-table-column 
        v-for="col in cols"
        :sortable='col.isSortable'
        :label="col.label" :fixed='col.isFixed' :width='col.width'>
        <template slot-scope="scope">
            <span>{{ scope.row[col.prop] | fileterEmpty}}</span>
        </template>
    </el-table-column>
</el-table>
cols:[
  {prop: 'createTime', label: '日期',width:100,isFixed:true}
]

5.el-date-picker时间选择器

设置某个日期后面的时间不给选

 <el-date-picker
    style="width:240px;margin-right: 20px;"
    v-model="dayVal"
    type="daterange"
    range-separator="-"        
    start-placeholder="开始日期"
    end-placeholder="结束日期"
    format="yyyy-MM-dd" value-format="yyyy-MM-dd"
    :picker-options='pickerOptions'
    >
</el-date-picker>
//定义在data中
pickerOptions: {
    disabledDate:function(time){
        // 选当前时间之前的时间
        return time.getTime() > (Date.now()-24*60*60*1000) 
    }
},

在这里插入图片描述

6.el-table插槽

当一行的一列数据收受另外一列数据的联动时

<el-table-column label="期望完成时间" width="130" :sortable='isDesigner'>
    <template slot-scope="scope">
        <span v-if='scope.row.processStatus === "已完成" || scope.row.processStatus === "已取消"' style="color: #b1b1b1;">{{ scope.row.expectTime}}</span>
        <span v-else>{{ scope.row.expectTime}}</span>
    </template> 
</el-table-column>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这段代码是一个使用 Java 编写的 JSP 页面,用于进行复数运算。逐行解释如下: 第一行:<%@ page language="java" contentType="text/html; charset=UTF-8" import=" servlet.*" pageEncoding="UTF-8"%> - 这是一个指令,用于定义 JSP 页面的一些属性。language="java" 表示使用 Java 语言编写,contentType="text/html; charset=UTF-8" 表示输出的内容类型为 HTML,并且编码为 UTF-8,import=" servlet.*" 表示导入 servlet 包的所有类,pageEncoding="UTF-8" 表示页面的编码为 UTF-8。 第二行:<!DOCTYPE html> - 这是 HTML5 的文档类型声明,表示这个页面是使用 HTML5 标准编写的。 第三行:<html> - 这是 HTML 页面的开始标签。 第四行:<head> - 这是 HTML 页面的头部标签,用于定义页面的一些元信息。 第五行:<meta charset="UTF-8"> - 这是一个 meta 标签,用于定义页面的字符集编码为 UTF-8。 第六行:<title>复数运算</title> - 这是 HTML 页面的标题标签,用于定义页面的标题为“复数运算”。 第七行:</head> - 这是头部标签的结束标签。 第八行:<body> - 这是 HTML 页面的主体标签,用于定义页面的主体部分。 第九行:<h1>复数运算</h1> - 这是 HTML 页面的一级标题标签,用于定义页面主体部分的标题为“复数运算”。 第十行:<form method="post" action="ComplexCalculator"> - 这是一个 HTML 表单标签,用于定义一个表单。method="post" 表示使用 POST 方法提交表单数据,action="ComplexCalculator" 表示提交表单数据的 URL。 第十一行:<label>复数 1:</label> - 这是一个 HTML 标签,用于定义表单的标签。这里定义了一个名为“复数 1”的标签。 第十二行:<input type="text" name="real1" placeholder="实部"> - 这是一个 HTML 输入框标签,用于定义表单的输入框。type="text" 表示输入框类型为文本框,name="real1" 表示输入框的名称为“real1”,placeholder="实部" 表示输入框的占位符为“实部”。 第十三行:<input type="text" name="imag1" placeholder="虚部"> - 这是一个 HTML 输入框标签,用于定义表单的输入框。type="text" 表示输入框类型为文本框,name="imag1" 表示输入框的名称为“imag1”,placeholder="虚部" 表示输入框的占位符为“虚部”。 第十四行:<br> - 这是一个 HTML 换行标签,用于在表单换行。 第十五行:<label>复数 2:</label> - 这是一个 HTML 标签,用于定义表单的标签。这里定义了一个名为“复数 2”的标签。 第十六行:<input type="text" name="real2" placeholder="实部"> - 这是一个 HTML 输入框标签,用于定义表单的输入框。type="text" 表示输入框类型为文本框,name="real2" 表示输入框的名称为“real2”,placeholder="实部" 表示输入框的占位符为“实部”。 第十七行:<input type="text" name="imag2" placeholder="虚部"> - 这是一个 HTML 输入框标签,用于定义表单的输入框。type="text" 表示输入框类型为文本框,name="imag2" 表示输入框的名称为“imag2”,placeholder="虚部" 表示输入框的占位符为“虚部”。 第十八行:<br> - 这是一个 HTML 换行标签,用于在表单换行。 第十九行:<label>操作:</label> - 这是一个 HTML 标签,用于定义表单的标签。这里定义了一个名为“操作”的标签。 第二十行:<select name="operation"> - 这是一个 HTML 下拉列表标签,用于定义表单的下拉列表框。name="operation" 表示下拉列表框的名称为“operation”。 第二十一行:<option value="add">加</option> - 这是一个 HTML 选项标签,用于定义下拉列表框的选项。value="add" 表示选项的值为“add”,加号表示“加”。 第二十二行:<option value="subtract">减</option> - 这是一个 HTML 选项标签,用于定义下拉列表框的选项。value="subtract" 表示选项的值为“subtract”,减号表示“减”。 第二十三行:<option value="multiply">乘</option> - 这是一个 HTML 选项标签,用于定义下拉列表框的选项。value="multiply" 表示选项的值为“multiply”,乘号表示“乘”。 第二十四行:<option value="divide">除</option> - 这是一个 HTML 选项标签,用于定义下拉列表框的选项。value="divide" 表示选项的值为“divide”,除号表示“除”。 第二十五行:</select> - 这是 HTML 下拉列表标签的结束标签。 第二十六行:<br> - 这是一个 HTML 换行标签,用于在表单换行。 第二十七行:<input type="submit" value="运算"> - 这是一个 HTML 提交按钮标签,用于提交表单数据。type="submit" 表示按钮类型为提交按钮,value="运算" 表示按钮上的文本为“运算”。 第二十八行:<% Complex result = (Complex) request.getAttribute("result"); if (result != null) { %> - 这是一个 Java 代码块,用于获取请求属性的“result”属性,并将其强制转换为 Complex 类型,并将其赋值给 result 变量。如果 result 不为 null,则执行下面的代码。 第二十九行:<p>Result: <%= result %></p> - 这是一个 HTML 段落标签,用于显示计算结果。其的 <%= result %> 会被替换为 result 变量的值。 第三十行:<% } %> - 这是一个 Java 代码块的结束标记。 第三十一行:</body> - 这是 HTML 页面的主体标签的结束标记。 第三十二行:</html> - 这是 HTML 页面的结束标记。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值