新增联系人 原因分析:提示:这里填写问题的分析:例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage_elementui图标乱码">
当前位置:   article > 正文

ElementUI常见问题_elementui图标乱码

elementui图标乱码

系列文章目录


前言

天地


一、Select 选择器

el-select新增自定义选项el-option

在项目中,你可能会遇到下拉选择框需要选择自定义选项的情况

解决方案

<el-option class="addContact" disabled @click.native="onDrawer">新增联系人</el-option>
  • 1

二、Icon 图标

图标偶发性乱码问题

使用若依管理系统作为开发框架。开发过程中,图标一直正常。直到打包发布到线上,页面偶发性出现图标乱码问题,再次刷新页面后,又可正常显示。
检查文件dist/css/app.xxx.css,发现所有的图标样式content的文本均异常。如:.el-icon-ice-cream-square:before{content:“”}。所以我们打包后的样式文件是有问题的。百度资料大多数人说是sass-dart问题。

解决方案
(1)sass版本升级到1.39.0

npm install sass@1.39.0 -S
  • 1

(2)vue.config.js 增加css配置,否则会报错

css: {
    loaderOptions: {
      sass: {
        sassOptions: {
          outputStyle: 'expanded'
        }
      }
    }
  },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

三、Input 输入框

1、el-input输入限制

开发过程中,肯定会遇到输入框限制。

解决方案

1.限制input输入框只能输入大小写字母、数字、下划线的正则表达式:

<el-input type="text" onkeyup="this.value=this.value.replace(/[^\w_]/g,'');"> 
  • 1

2.限制input输入框只能输入小写字母、数字、下划线的正则表达式:

<el-input type="text" onkeyup="this.value=this.value.replace(/[^a-z0-9_]/g,'');"> 
  • 1

3.限制input输入框只能输入数字和点的正则表达式:

<el-input type="text" onkeyup="value=value.replace(/[^\d.]/g,'')">
  • 1

4.限制input输入框只能输入中文的正则表达式:

<el-input type="text" onkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5]/g,'')">
  • 1

5.限制input输入框只能输入数字的正则表达式:

<el-input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')">  
  • 1

6.限制input输入框只能输入英文的正则表达式:

<el-input type="text" onkeyup="this.value=this.value.replace(/[^a-zA-Z]/g,'')">
  • 1

7.限制input输入框只能输入中文、数字、英文的正则表达式:

<el-input onkeyup="value=value.replace(/[^\w\u4E00-\u9FA5]/g, '')">
  • 1

8.限制input输入框只能输入数字和字母的正则表达式:

<el-inputt onKeyUp="value=value.replace(/[\W]/g,'')">  
  • 1

9.限制input输入框除了英文的标点符号以外,其他的都可以中文,英文字母,数字,中文标点的正则表达式:

<el-input type="text" onkeyup="this.value=this.value.replace(/^[^!@#$%^&*()-=+]/g,'')">
  • 1

10.限制input输入框只能输入数字代码(小数点也不能输入)的正则表达式:

<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
  • 1

11.限制input输入框只能输入数字,能输小数点.的正则表达式:

<el-input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<el-input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
  • 1
  • 2

或者

<el-input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">
  • 1

12限制input输入框只能输入字母和汉字的正则表达式:

<el-input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
  • 1

13.限制input输入框只能输入英文字母和数字,不能输入中文的正则表达式:

<el-input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
  • 1

14限制input输入框只能输入数字和英文的正则表达式:

<el-input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
  • 1

15限制input输入框小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号的正则表达式:

<el-input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
  • 1

16.限制input输入框小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:的正则表达式:

<el-input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
  • 1

17,不可输入中文

<el-input  onkeyup="this.value=this.value.replace(/[\u4E00-\u9FA5]/g,'')">
  • 1

18,不可输入空格

<el-input onkeyup="onkeyup="value = value.replace(/\s+/g, '')">
  • 1

19.限制input输入框只能输入正整数的正则表达式:

<el-input type="text" onkeyup="value=value.replace(^[0-9]*[1-9][0-9]*$,'')">
  • 1

2、el-input防止浏览器自动填充账号密码

<!-- autocomplete="off"不能单独使用,要和autocomplete="new-password"结合起来使用才有效果 -->
<el-input v-model="input" placeholder="Please input" autocomplete="off" />
<!-- 密码框要设置autocomplete="new-password"-->
<el-input
    v-model="input"
    type="password"
    placeholder="Please input password"
    show-password
    autocomplete="new-password"
  />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3、el-autocomplete输入后匹配输入建议


<!-- 当select事件中需要传多个值时,可以通过箭头函数的方式保留select事件的回调参数,同时增加其他参数传递 -->
<el-autocomplete
	class="inline-input"
	v-model="scope.row.value"
	:fetch-suggestions="querySearch"
	placeholder="请输入内容"
	:trigger-on-focus="false"
	@select="
    ($event, index) =>
      handleSelect($event, scope.$index, scope.row)
  "
></el-autocomplete>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

四、Layout 布局

1、el-row高度自适应

el-row和el-col 处理动态多列数据时, 出现了高度不适应且排列混乱

解决方案

1、el-row加上样式属性

.el-row {
    display: flex;
    flex-wrap: wrap;
}
  • 1
  • 2
  • 3
  • 4

2、内部元素设置高度100%

.el-card {
    min-width: 100%;
    height: 100%;
}
  • 1
  • 2
  • 3
  • 4

2、el-col一行放5个

出了个新需求,UI图上一行有五块内容;如果使用flex布局解决会发现小屏幕时会挤压卡片内容,所以要参照响应式布局,但是el-cal本身有限制,一行被分成24份,不能被5平分;最后发现在el-col标签中的:span="'24-5'"会被编译成el-col-24-5,这样就可以通过媒体查询实现响应式布局。

解决方案

1、el-col加上样式属性 :span="'24-5'"

<el-row :gutter="20">
  <el-col :span="'24-5'">
    <info-card :url="require('@/assets/images/1.png')" :num="'524685'" :state="'待发货'" />
  </el-col>
  <el-col :span="'24-5'">
    <info-card :url="require('@/assets/images/2.png')" :num="'¥524685'" :state="'待支付'" />
  </el-col>
  <el-col :span="'24-5'">
    <info-card :url="require('@/assets/images/3.png')" :num="'¥524685'" :state="'待售后'" />
  </el-col>
  <el-col :span="'24-5'">
    <info-card :url="require('@/assets/images/4.png')" :num="'524685'" :state="'违规预警'" />
  </el-col>
  <el-col :span="'24-5'">
    <info-card :url="require('@/assets/images/5.png')" :num="'524685'" :state="'服务'" />
  </el-col>
</el-row>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2、利用媒体查询结合响应尺寸大小重定义宽度比例

@media screen and (max-width: 768px) {
  .el-col-24-5 {
    width: 100%;
  }
}
@media screen and (min-width: 768px) and (max-width: 992px) {
  .el-col-24-5 {
    width: 50%;
  }
}
@media screen and (min-width: 992px) and (max-width: 1280px) {
  .el-col-24-5 {
    width: 33.33%;
  }
}
@media screen and (min-width: 1280px) and (max-width: 1920px) {
  .el-col-24-5 {
    width: 20%;
  }
}
@media screen and (min-width: 1920px) {
  .el-col-24-5 {
    width: 20%;
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

五、DatePicker 日期选择器

1、el-date-picker年份范围选择

el-date-picker只有日期范围选择和月份范围选择,没有年份范围选择,只能自己封装一个,利用两个年份选择封装年份范围选择功能

解决方案

<template>    
	<el-date-picker
	 v-model="yeartsStart"
	 :picker-options="startDatePicker"
	 value-format="yyyy"
	 type="year"
	 @change="startTime"
	 placeholder="开始时间"
	>
	</el-date-picker>
	~
	<el-date-picker
	 v-model="yeartsEnd"
	 :picker-options="endDatePicker"
	 value-format="yyyy"
	 type="year"
	 @change="startTime"
	 placeholder="结束时间"
	>
	</el-date-picker>
</template>

<script>
	export default {
		data() {
			return {
				startDatePicker: this.beginDate(),
			    endDatePicker: this.processDate(),   
			    yeartsStart:'',
			    yeartsEnd:''
			}
		},
		methods: {
		    // 选择年份范围选择时开始时间不能大于结束时间,结束时间不能小于开始时间
		    // 提出开始时间必须小于提出结束时间
		    beginDate() {
		      let self = this
		      return {
		        disabledDate(time) {
		          if (self.yeartsEnd !== '') {
		            let fixedTime = new Date(time)
		            return fixedTime.getFullYear() > self.yeartsEnd
		          }
		        }
		      }
		    },
		    // 提出结束时间必须大于提出开始时间
		    processDate() {
		      let self = this
		      return {
		        disabledDate(time) {
		          // let fixedTime = new Date(self.oldTime).getTime()
		          // return time.getTime() < fixedTime
		          let fixedTime = new Date(time)
		          return fixedTime.getFullYear() < self.yeartsStart
		        }
		      }
		    },
		}
	}
</script>

<style  lang="scss">
</style>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64

六、Table 表格

1、el-table表格内容居中

<el-table
  :data="tableData"
  :header-cell-style="{ 'text-align': 'center' }" //设置表头样式
  :cell-style="{ 'text-align': 'center' }" //设置表格样式
  border
  style="width: 100%"
>
  <el-table-column prop="date" label="日期" width="180"></el-table-column>
  <el-table-column prop="name" label="姓名" width="180"></el-table-column>
  <el-table-column prop="address" label="地址"></el-table-column>
</el-table>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

七、Form 表单

1、el-form非固定表单验证

示例:当表单内容非固定,有一个或多个数组内容的表单验证

<el-form
  ref="Form"
  :model="Form"
  :rules="Rules"
  label-width="120px"
  label-position="left"
>
	<div
	 v-for="(item, index) in Form.persons"
	 :key="index"
	>
		<el-form-item
		  label="姓名:"
		  :prop="'persons.' + index + '.name'"
		  :rules="Rules.name"
		>
		  <el-input
		    v-model.trim="item.name"
		    placeholder="请输入姓名"
		  ></el-input>
		</el-form-item>
		<el-form-item
		  label="年龄:"
		  :prop="'persons.' + index + '.age'"
		  :rules="Rules.age"
		>
		  <el-input
		    v-model.trim="item.age"
		    placeholder="请输入年龄"
		  ></el-input>
		</el-form-item>
	</div>
</el-form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
Form: {
  persons: [
    {
      name: '',
      age: '',
    },
  ],
},
Rules: {
 name: [
    { required: true, message: '请输入姓名', trigger: 'blur' },
  ],
  age: [
    { required: true, message: '请输入年龄', trigger: 'blur' },
  ],
},
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

一、pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号