elementUI相关总结

1.Vue+Element中的表格根据属性值来渲染不同的样式,状态设置不同颜色
在这里插入图片描述

正则判断写法:
<el-table-column prop="workOrderStatusName" label="状态" align="center">
					<template slot-scope="scope">
						<strong :style="{ color: scope.row.workOrderStatus === 1||scope.row.workOrderStatus === 2 ? '#409EFF':scope.row.workOrderStatus === 6 ? '#13ce66' : '#ED3F14' }">{{ scope.row.workOrderStatusName}}</strong>
					</template>
</el-table-column>
拓展:
//两种状态的判断
<el-table-column label="当前"
   prop="status">
    <template slot-scope="scope">
        <span :style="{ color: scope.row.status === 1 ? '#cccccc' : '#ED3F14' }">{{ scope.row.status === 1 ? '男' : '女' }}</span>
    </template>
</el-table-column>
//三种状态的判断
<el-table-column 
    label="当前" 
    prop="status"
    >
    <template slot-scope="scope">
        <span :style="{ color: scope.row.status === 0 ? '#ff':scope.row.status === 1 ? '#cccccc' : '#ED3F14' }">{{ scope.row.status == 0 ? '已过期':scope.row.status === 1 ? '授权' : '未授权' }}</span>
    </template>
</el-table-column>

2.el-table表格高度根据页面高度自适应
在这里插入图片描述

<el-table :max-height="tableHeight" :data="tableData" highlight-current-row border stripe>	</el-table>
data() {
			return {
				tableHeight: window.innerHeight - 200,
		}	
created() {
			window.addEventListener('resize', this.getTableHeight)
		},
destroyed() {
			window.removeEventListener('resize', this.getTableHeight)
		},
methods: {
			getTableHeight() {
				this.tableHeight = window.innerHeight - 200
			},
			}

3.点击table表格颜色加深当前行
在这里插入图片描述

<el-table highlight-current-row ></el-table>
css:
 /* 选中表格改变原始背景色注意得在table增加highlight-current-row才能生效 .BOX 是当前页面div*/
 .BOX tr.current-row>td {
 	background-color: #93bfab !important;
 	color: #fff;
 	font-weight: 700;
 }

4.禁用日期时间选择
在这里插入图片描述

elementUI版本::picker-options

<div>
						<span>查询日期:</span>
						<el-date-picker :clearable="false" :picker-options="pickerOptions" style="width: 18rem;"
							size="small" v-model="formSearch3.date" type="daterange" value-format='timestamp'
							ange-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
						</el-date-picker>
					</div>
data() {
			return {
				pickerOptions: {
					disabledDate(time) {
						// return time.getTime() > Date.now() - 24 * 60 * 60 * 1000
						return time.getTime() > Date.now() 
					}
				}
			}
		},

element-plus版本:disabled-date

<div>
				<span class="titleEvn">记录起止时间:</span>
				<el-config-provider :locale="locale">
					<el-date-picker v-model="formSearch.date" type="datetimerange" start-placeholder="开始日期"
						end-placeholder="结束日期" :disabled-date="disabledDate" value-format="YYYY-MM-DD HH:mm:ss">
					</el-date-picker>
				</el-config-provider>
			</div>
		data() {
			return {
				formSearch: {
					date: []
					// date: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
					// date: [new Date(new Date().toLocaleDateString()).getTime() - (24 * 60 * 60 * 1000 * 30), new Date(
					// 	new Date()
					// 	.toLocaleDateString()).getTime()]
				},
				disabledDate(date) {
					return date.getTime() > new Date()
				},
			}
		},

5.如何将elementUI动态渲染的表格里面某列数据进行标红处理
在这里插入图片描述

<el-table min-height="200px" :data="state.tableData.list_Row" :max-height="state.tableHeight" stripe style="width: 100%">
				<el-table-column
					align="center"
					v-for="(item, index) in state.tableData.list_Col"
					:key="index"
					:prop="item.prop"
					:width="item.width"
					:label="item.label"
					:cell-style="cellStyle"
				>
					<template #default="scope" v-if="item.label=='总结果'">
						<span v-if="scope.row.item0 == 'NG'||scope.row.item0 == ' NG'" style="background: #ff0000; color: white">{{ scope.row.item0 }}</span>
					</template>
				</el-table-column>
			</el-table>
### Element UI 使用指南 #### 安装与配置 Element-UI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发和维护[^1]。要使用 Element-UI,在项目中可以通过 npm 或 yarn 来安装: ```bash npm install element-ui --save ``` 或者 ```bash yarn add element-ui ``` 接着在 `src/main.js` 文件中引入并注册 Element-UI: ```javascript import Vue from 'vue'; import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); ``` 对于 Vue 3 用户,则需改用 Element Plus,并按照如下方式引入[^3]: ```javascript import { createApp } from 'vue'; import App from './App.vue'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; const app = createApp(App); app.use(ElementPlus); app.mount('#app'); ``` --- #### 常见问题及其解决方案 ##### **1. el-table 的 type="index" 不显示序号** 当使用 `<el-table>` 组件时,如果设置了 `type="index"` 却未正常显示序号,可能是由于数据源为空或其他渲染逻辑错误引起的[^4]。 **解决方案:** 确保表格的数据源是一个有效的数组对象。例如: ```html <template> <el-table :data="tableData"> <el-table-column type="index" label="#"></el-table-column> <el-table-column prop="name" label="名称"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { name: '商品A' }, { name: '商品B' } ] }; } }; </script> ``` --- ##### **2. Missing required prop: "value" 报错** 此问题是由于某些表单组件(如输入框、下拉菜单等)缺少必填属性 `v-model` 所致。 **解决方案:** 为相关组件绑定双向绑定的变量即可解决问题。例如: ```html <el-input v-model="inputValue"></el-input> <script> export default { data() { return { inputValue: '' }; } }; </script> ``` --- ##### **3. el-table 翻页后索引值重置** 默认情况下,分页后的表格索引会重新从 1 开始计数。若希望保持连续编号,可通过自定义计算实现。 **方法一:通过 `(index, row)` 参数调整索引** ```html <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"> <el-table-column type="index" :index="(index) => (currentPage - 1) * pageSize + index + 1"></el-table-column> </el-table> <script> export default { data() { return { tableData: Array.from({ length: 10 }, (_, i) => ({ id: i })), currentPage: 1, pageSize: 5 }; } }; </script> ``` **方法二:手动设置索引列** ```html <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"> <el-table-column label="#" width="80"> <template slot-scope="{ $index }"> {{ (currentPage - 1) * pageSize + $index + 1 }} </template> </el-table-column> </el-table> ``` --- ##### **4. vue3 中 Element Plus 配置中文语言包** 为了支持多语言环境,可以在应用初始化阶段加载对应的翻译文件。 **方案一:在 main.js 中修改** ```javascript import { createApp } from 'vue'; import App from './App.vue'; import ElementPlus from 'element-plus'; import zhCn from 'element-plus/es/locale/lang/zh-cn'; import 'element-plus/dist/index.css'; const app = createApp(App); app.use(ElementPlus, { locale: zhCn }); app.mount('#app'); ``` **方案二:在 App.vue 中动态切换语言** ```javascript this.$i18n.locale = 'zh-cn'; // 动态更改语言 ``` --- ### 总结 以上内容涵盖了 Element-UI 的基本安装、配置以及常见的使用场景中的问题处理方法。无论是初学者还是有经验的开发者都可以从中受益,从而更高效地完成项目开发工作[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值