ElementUI小技巧

前言:
开发项目的时候,经常会用到elementUI的框架,里面有很多组件,会多次使用,在此记录一下,以备下次使用。

一、实时远程搜索

       elementUI提供了下拉框远程搜索,请求后台获取数据并展示下拉内容。通过remote-method来实现实时发起搜索请求,需要在el-select中绑定几个属性即可。

<div class="searchTitle">请输入社区名称</div>
     <el-select  v-model="searchByName" 
       filterable 
       placeholder="请输入社区名称" 
       remote
       clearable
       @change="currentSel"
       @clear="clearCommunity"
       reserve-keyword
       :remote-method="Tolikesearch">
       <el-option
           v-for="item in community"
           :key="item.indexCode"
           :label="item.name"
           :value="item.indexCode">
        </el-option>
      </el-select>
//获取select option选中的值
currentSel(selVal) {
     this.communityCode = selVal;
        for (var i = 0; i < this.community.length; i++) {
            if(selVal == this.community[i].indexCode){
                this.selectCommunity = this.community[i].name;
                break;
             }
        }
},
clearCommunity(){
    this.selectCommunity = '';
},
//搜索发起请求 传入值为当前select输入的值
Tolikesearch(query){//根据区域名称获取海康企业信息
     this.loading = true;
          const params = {
            regionName: query,
            pageNo: '1',
            pageSize: '100'
     		};
          this.$http.get("/crm/bi/elevatorMonitor/getNodesByParams", {params}).then(res=>{
              this.loading = false;
              this.community = res.data.list;
          })
},

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

二、table表格相关

<el-table
			:data="tableData"
			border
			:header-cell-style="{'text-align':'center'}"
    		:cell-style="{'text-align':'center'}"
			style="width: 100%;">
				<el-table-column prop="num" label="序号" width="80" type="index"></el-table-column>
				<el-table-column prop="regionPathDivision1" label="社区名称" width="180"></el-table-column>
				<el-table-column prop="regionPathDivision2" label="管理分区" width="150"></el-table-column>
				<el-table-column prop="regionPathDivision3" label="楼号" width="230"></el-table-column>
				<el-table-column prop="deviceCode" label="设备型号" width="150"></el-table-column>
				<el-table-column prop="name" label="设备名称" width="200"></el-table-column>
				<el-table-column prop="status" label="在线状态" width="100">
					<template slot-scope="scope">
						<p v-if="scope.row.status == 1">在线</p>
						<p v-if="scope.row.status == 0">不在线</p>
						<p v-if="scope.row.status == undefined">--</p>
					</template>
				</el-table-column>
				<el-table-column label="操作" width="100">
					<template slot-scope="scope">
        				<el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
      				</template>
				</el-table-column>
</el-table>
<el-pagination
                class="paginations"
                background
                @current-change="handleCurrentChange"
                :current-page.sync="pageNum"
                :page-size="10"
                layout="prev, pager, next"
                :total="total">
</el-pagination>
//设备列表翻页
handleCurrentChange(val) {
	this.pageNumDevice = val;
    this.getDeviceList();
},
async getDeviceList(val) {
	const params = {
				v: "v1.0",
				type: 8008,
				startTime: startTime,
				endTime: endTime,
				pageNum: pageNum,
				pageSize: '10',
                enterpriseId: JSON.parse(window.localStorage.getItem('userInfo')).enterpriseId,
	};
	let data = await this.$http.get('/bi/elevatorMonitor/getEncodeDeviceList', { params });
	if (data && Object.keys(data).length) {
		this.tableData = data.list;
		this.total = data.total;
	}else if(Object.keys(data).length == 0){//无数据返回
		this.tableData = [];
		this.total = 0;
	}
}

效果图如下:
在这里插入图片描述
备注:计算时间日期的方法

function getNowFormatDate(val) {
	var date = new Date();
	var seperator1 = "-";
	var year = date.getFullYear();
	var month = date.getMonth() + 1;
	var strDate = date.getDate();
	if (month >= 1 && month <= 9) {
		month = "0" + month;
	}
	if (strDate >= 0 && strDate <= 9) {
		strDate = "0" + strDate;
	}
	var currentdate = year + seperator1 + month + seperator1 + strDate;
	return currentdate;
}
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值