ElementUI相关内容

ElementUI相关内容

一、ElementUI入门

elementUI官方中文文档:https://element.eleme.cn/#/zh-CN/component/button

二、使用@vue/cli3.0快速搭建elementui

在搭建好全局@vue/cli3.2的基础上,创建一个项目并添加elementui插件。

vue create my-app
cd my-app
vue add element

参考链接:https://github.com/ElementUI/vue-cli-plugin-element

三、ElementUI调用接口

转载:https://blog.csdn.net/qq_40236722/article/details/88175015

四、分页

<el-row>
	<el-col :span="24">
		<div class="pagination">
			<el-pagination
				@size-change="handleSizeChange"
				@current-change="handleCurrentChange"
				:current-page="currentPage"  //当前页数
				:page-sizes="[10, 20, 50, 100]"  //可选择的每页显示的条数[10页、20页、50页、100页]
				:page-size="limit"  //当前限制的每页所显示的条数,可pagesize数组进行选择
				layout="total, sizes, prev, pager, next, jumper"
				:total="count">   //记录数据的总条数,通过调用接口获取所有的记录条数
			</el-pagination>
		</div>
	</el-col>
</el-row>

<script>
name:"goods_index",
data(){
	return{
		limit:10,
		currentPage:1,
		count:0,   //暂时给定的值,表明是int类型,后面会通过在methods中调用接口获取数据中所有记录的总条数
	},
}
// 分页
	handleSizeChange(val) {
		console.log(`每页 ${val} 条`);
		this.limit = val   //每页的条数限制
		this.Lists(); //嗲用axios接口
	},
			
	handleCurrentChange(val) {
		console.log(`当前页: ${val}`);
		this.currentPage = val   //当前页
		this.Lists(); //嗲用axios接口
	},
</script>

效果示例:
在这里插入图片描述

elememtui文档连接:https://element.eleme.cn/#/zh-CN/component/pagination#pagination-fen-ye

五、Message

5.1、Message提示消息

参考文档:https://element.eleme.cn/#/zh-CN/component/message#fang-fa

5.2、Message-box弹框($ confirm、$ msgbox等,具体应用例如删除等弹框)

参考文档:官方文档
1、$ msgbox

<el-button
	type="danger" 
	icon="el-icon-delete"
	@click="delDio(scope.row)"  //将行数据传到delDio函数中
	size="medium">
		删除
</el-button>
<script>
....
 delDio(row) {
      let _this = this;
      const h = this.$createElement;
      this.$msgbox({
        title: "提示",
        message: h("p", null, [
          h("span", null, "是否确认 "),
          h("span", { style: "color: #F45A38"}, "删除"),
          h("span", null, "该商品? ")
        ]),
        type: "warning",
        showCancelButton: true,
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        customClass: "message_box",
        cancelButtonClass: "message_box_cancle",
        confirmButtonClass: "message_box_confirm",
        beforeClose: (action, instance, done) => {
          if (action === "confirm") {
            instance.confirmButtonLoading = true;
            instance.confirmButtonText = "删除中...";
            _this.$api .Delete('/index/index' + "/" + row.id, {})
              .then(res => {
                if (res.code == 0) {
                  instance.confirmButtonLoading = false;
                  done();
                  this.Lists(); //再次调用接口,进行Lists刷新
                }
              })
              .catch(err => {
                instance.confirmButtonLoading = false;
                _this.$message.error(err.msg);
                done();
              });
          } else {
            done();
          }
        }
      })
        .then(action => {
          console.log("======");
          this.$message({
            type: "success",
            message: "删除成功!"
          });
        })
        .catch(action => {
          this.$message({
            type: "info",
            message: "已取消删除"
          });
        });
    }
  }
</script>

在这里插入图片描述
效果:
在这里插入图片描述
2、$confirm

<el-button
	type="danger" 
	icon="el-icon-delete"
	@click="delDio(scope.row)"  //将行数据传到delDio函数中
	size="medium">
		删除
</el-button>
<script>
......
delDio(row){
	let _this = this;
	this.$confirm('是否删除?', '提示', {
		confirmButtonText: '确定',
		cancelButtonText: '取消',
		type: 'warning',	
	}).then(async () => {
		_this.$api.post(_this.$apiUrl.maintain + '/'+ row.id,{
		status:row.status,  //调用post接口需要传进去的data参数
	}).then(res =>{
		_this.goodsLists()
		this.$message({
			type: 'success',
			message: '删除成功!',
		});
	})
}).catch(() => {
	this.$message({
		type: 'info',
		message: '取消删除'
	});          
});
}
</script>

效果图:
在这里插入图片描述

六、ElementUI下拉框(v-for、key、value)

6.1基本用法

1、elementui的几个关键点
(1)v-mode:双向绑定数据,当前下拉框选中的值
(2)v-for:通过遍历循环options,获取下拉框的值,:key为唯一值,表示下拉框通过那一个值进行遍历
(3):lable的值为显示在下拉框中的值,:lable是每个数据的唯一标识,也是v-model所绑定值
(4)在el-option中,设定disabled值为 true,即可禁用该选项(该选项显示为灰色,禁止选中)

 <el-option v-for="item in Lists" :key="item.id" :label="item.name" :value="item.id"       :disabled="item.disabled">

v-model对应当前选中的 :value 的值

2、elementui举例说明

<div class="row_center">
	<span style="width: 120px;">角色权限:</span>
	<el-select v-model="country" clearable placeholder="请选择"> 
		<el-option
			 v-for="item in Lists"  //循环遍历Lists数组
			:key="item.id"   //数组的id进行遍历
			:label="item.name"   //下拉框显示的是对象数组中name字段的值
			:value="item.id">   //唯一标识,与v-model的绑定值相对应
		</el-option>
	</el-select>
</div>
<script>
export default{
	name:'admin_list',
	data(){
		return{
			Lists:[
				{id:1,name:'中国'}{id:2,name:'美国'}{id:3,name:'英国'}
			],
			country:''
		}
	},
}
</script>

6.2 解决报错:从后台返回的数据在让elementui的select显示对应的lable值而不是value值

错误截图(图片转自):
图片转自:https://www.cnblogs.com/lyt0207/p/12872139.html
解决方法:出现这种情况可能是从后台返回的数据类型和value的数据类型不一致,可以通过强制性转换成一致的

七、Dialog 对话框(弹框,有visible属性)

Diolog弹框通过visible属性来控制是否显示

<el-dialog
  	:modal-append-to-body='false'
  	:title="title"   //动态设置弹框的头部标题
  	width="48%" 
  	custom-class="dialog_bar" 
  	:visible.sync="isShow"  //通过变量isShow来决定弹框是否显示
  	:before-close="handleClose">   //在关闭痰喘之前的操作
    <div class="dialog_info">
  		<div class="row_center" style="margin-bottom: 20px;">
  			<span style="width: 120px;">账户:</span>
  			<el-input v-model="account" placeholder="请输入账户" ></el-input>
  		</div>
  		<div class="row_center" style="margin-bottom: 20px;">
  			<span style="width: 120px;">密码:</span>
  			<el-input v-model="password" placeholder="请输入登录密码" ></el-input>
  		</div>
  		<el-button type="success" icon="el-icon-plus" @click="showDiolog">弹框</el-button>
  	</div>
</el-dialog>
<script>
export default{
	dataa(){
		isShow:false     //isShow最开将值设为false,则弹框受visible属性的控制会进行影藏
		account:'',
		password:''
	}
	methods:{
	handleClose(done) {   //在点击dialog关闭之前会执行handClose这个事件
		 this.$confirm('确认关闭?')  //点击关闭后弹出“确认关闭”的弹框
		.then(_ => {
			  done();
		})
		.catch(_ => {});
		},	
	}
	showDiolog(){  //点击showDiolog时间将,isShow的值会被赋值为true,此时弹框显示
	let _this = this
	_this.isShow = false
}
</script>

补充:Dialog的visible属性需要添加 .sync 才有效

八、解决 “element el-tree在给default-checked-keys设置时会把节点下的所有子节点都选中” 的问题

default-checked-keys 表示默认勾选的节点的 key 的数组
给default-checked-keys给定一个数组时,会把数组中所含父子节点的所有子节点选上

解决方法:
在< el-tree>中添加check-strictly属性

<el-tree
      :data="treeData"
      node-key="id"
      ref="tree"
      lazy
      show-checkbox
      :load="loadNode"
      check-strictly   /
      :props="defaultProps"
      :default-checked-keys="dataId"
      @check-change="handleCheckChange"
    >

在这里插入图片描述

九、时间选择器 < el-time-picker >

参考文档https://element.eleme.cn/#/zh-CN/component/time-picker#methods

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载食用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【项目介绍】 基于Vue+JavaScript+elementUI的电商管理系统源码+项目说明.zip 电商管理系统,使用vue+elementUI,实现的功能有 * 用户管理 * 权限管理 * 分类管理 * 参数管理 * 商品管理 * 数据统计 项目内容 | 文件夹 | 内容 | 备注 | | ------------------- | ------------------------- | ------------------ | | Vue电商-笔记和文档 | Vue实战项目:电商管理系统 | 项目笔记 | | | api接口文档.md | 项目使用的接口文档 | | Vue电商-参考讲义PPT | | 项目讲义(PPT) | 20-Vue实战项目:电商管理系统(Element-UI) 如何使用该项目 安装依赖 ``` npm install ``` 开发时用到的编译和热加载(启动项目) ``` npm run serve ``` 生成生产版本(这里生成的dist文件可以部署到服务器上来直接访问) ``` npm run build ```
后端技术 - 基础框架:Java8 & Spring Boot & Maven - 数据库:Mysql 等 - 鉴权框架:Spring Security OAuth2 - 缓存框架:Redis & Redisson - 持久层框架:Mybatis Plus - 日志记录:Logback - 工作流框架:Flowable - 其他依赖:Lombok、Kaptcha、EasyExcel 等 ### 前端技术 - vue , vuex , vue-router - elementui - vue-element-admin - vue-form-making - mock ## 主要实现内容 1. 前后分离开发,前后端可以独立部署,也可以合并部署 2. `我的流程`、`系统管理`、`示例管理`、`流程管理`、`监控管理` 3. `功能权限`,`菜单权限`、`按钮权限`细粒度配置 4. `数据权限`,注解实现或数据库配置实现 5. `我的流程` 包含 `我的汇总`、`发起流程`、`我的待办`、`我的待阅`、`我的已办`,`流程管理` 包含 `表单设计`、`流程设计`、`流程定义`、`流程管理`、`任务管理`,`任务执行` 包含 `提交`、`抄送`、`转办`、`委派`、`终止`、`退回`(已实现退回并行网关节点、子流程退回)、`(批量)已阅` 等 流程设计约定: - 发起者启动流程后若要自动完成第一个用户任务,则第一个 `userTask` 的 `id` 要定义为`__initiator__`,若涉及流程表单,则可设置`__initiator__`的任务表单 `formKey` 与流程表单相同 - 如果涉及并行网关,并行网关需成对出现,且发散节点要以 `_begin` 结尾,汇聚节点要以 `_end` 结尾,可以嵌套但不能交叉嵌套,这样就能确保可以退回到并行网关的单个节点上(不会退回到并行网关的其他分支) - 如果流程涉及业务主键 `businessKey`,流程设计时加入 `流程扩展属性` 即可 ```xml <extensionElements> <flowable:properties> <flowable:property name="showBusinessKey" value="true" /> </flowable:properties> </extensionElements> ``` - 流程设计可参考 `zjmzxfzhl/zjmzxfzhl-admin/src/main/resources/processes_test` 下的流程 - 自定义表单使用 `MIT` 开源的 [FormGenerator](https://gitee.com/mrhj/form-generator),后续我也会进行更深层次的封装,目前已优化可以支持响应式布局 6. `Redis` 分布式锁,可实现交易防重发等业务场景 7. `App` 开发示例,包含:注册、登录、获取用户信息等 8. 代码生成器,包含前端和后端 9. 定时任务、异步任务线程池管理 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值