当前位置: 首页 > news >正文

山西网站制作关键词优化有哪些作用

山西网站制作,关键词优化有哪些作用,公司代理记账企业,深圳网站建设深icp备在前端开发时,可能会需要用到可编辑的表格控件。一些原生的UI框架并不支持Table控件的可编辑功能,所以只能自己实现。 以下用Vue3Element-Plus进行示例开发。 一、实现可编辑的单元格 我想要实现的效果是,鼠标移动到el-table的某行时&…

在前端开发时,可能会需要用到可编辑的表格控件。一些原生的UI框架并不支持Table控件的可编辑功能,所以只能自己实现。

以下用Vue3+Element-Plus进行示例开发。

一、实现可编辑的单元格

我想要实现的效果是,鼠标移动到el-table的某行时,该行呈现可编辑效果。所以需要用到Table事件中的cell-mouse-entercell-mouse-leave。当鼠标移入时,将该行数据源编辑状态字段置为true,相应的单元格模板借助v-if绑定呈现出可编辑状态;鼠标移出时,再将状态字段置为false,隐藏编辑状态模板。

完整代码如下:

<template><div><el-table :data="dataList" @cell-mouse-enter="handleCellEnter" @cell-mouse-leave="handleCellLeave"><el-table-column type="index" width="50" /><el-table-column label="名称" prop="name" width="120"><template #default="scope"><el-input v-if="scope.row.isEdit" class="cell-input" v-model="scope.row.name" /></template></el-table-column><el-table-column label="类型" prop="type" width="150"><template #default="scope"><el-select v-if="scope.row.isEdit" class="cell-select" v-model="scope.row.type" placeholder="请选择"><el-option v-for="item in TypeOptions" :key="item.value" :label="item.label" :value="item.value" /></el-select></template></el-table-column><el-table-column label="值" prop="value" width="150" /></el-table></div>
</template><script setup lang="ts">
import { reactive } from 'vue';interface TempData {name: string,type: string,value: string,isEdit: boolean
}const TypeOptions = [{value: 'Option1',label: 'Option1',},{value: 'Option2',label: 'Option2',},{value: 'Option3',label: 'Option3',}
]const dataList = reactive<TempData[]>([{name: '张三',type: 'Option1',value: 'value',isEdit: false},{name: '李四',type: 'Option2',value: 'value',isEdit: false},{name: '王五',type: 'Option3',value: 'value',isEdit: false}
])const handleCellEnter = (row: any, column: any, cell: any, event: any) => {row.isEdit = true
}const handleCellLeave = (row: any, column: any, cell: any, event: any) => {row.isEdit = false
}
</script>
<style scoped>
.cell-input {height: 26px;margin-left: -10px;
}:deep(.cell-select .el-select__wrapper) {height: 26px;min-height: 26px;margin-left: -11px;
}:deep(.el-table .el-table__row) {height: 50px;
}
</style>

(说明:以上代码示例中,对编辑状态下的el-inputel-select样式进行了处理,使鼠标移入移出时不会出现明显的错位现象)

二、解决el-select下拉内容无法选择问题

通常el-select的下拉框会超出所在行的范围,因此当鼠标准备选择下拉框内容时,会因超出行的范围而触发取消编辑状态,el-select就会消失,这样一来永远无法选中下拉选项。

解决的方法便是记录el-select的状态,如果是下拉状态,则el-table的鼠标事件不要触发行状态更改。变更部分代码如下:

let canUpdateEditingState = falseconst handleOptionVisibleChange = (isVisible: boolean, row: any) => {canUpdateEditingState = isVisibleif (!isVisible) {row.isEdit = false}
}const handleCellEnter = (row: any, column: any, cell: any, event: any) => {if (canUpdateEditingState) returnrow.isEdit = true
}const handleCellLeave = (row: any, column: any, cell: any, event: any) => {if (canUpdateEditingState) returnrow.isEdit = false
}

然后给el-select绑定事件方法如下:

@visible-change="(arg: any) => handleOptionVisibleChange(arg, scope.row)"

三、解决el-input无法使用中文输入法的问题

由于输入中文时,输入法弹框也会触发el-tablecell-mouse-leave事件,导致刚打出字符,单元格的编辑状态便取消了。这就需要借助compositionstartcompositionend事件来屏蔽中文输入过程。原理和第二点类似,补充代码如下:

const handleCompositionStart = () => {canUpdateEditingState = true
}const handleCompositionEnd = () => {canUpdateEditingState = false
}

给el-table增加事件绑定:

@compositionstart="handleCompositionStart" @compositionend="handleCompositionEnd"
http://www.ds6.com.cn/news/97572.html

相关文章:

  • 建筑设计人才招聘网站本地建站软件有哪些
  • 黑龙江高端网站建设爆款引流推广软件
  • 做钢材生意选什么网站怎么查询百度收录情况
  • 山西电商网站开发营销型网站策划
  • 柳编网站建设意义公众号推广一个6元
  • 开锁行业在58做网站有活吗郑州关键词优化平台
  • wap网站asp源码没被屏蔽的国外新闻网站
  • 三亚人才招聘网站东莞seo整站优化
  • 自己做网站nasseo外链收录
  • cent os7 wordpress专业网站优化公司
  • 邯郸今日头条seo关键词快速排名介绍
  • 电子商务网站规划与网页制作想要网站导航推广页
  • 大学生做网站的流程谷歌广告推广网站
  • 用html做企业门户网站软文营销策划
  • 做网站原创要多少钱广州网站建设推广专家
  • 网站制作哪家便宜营销网站系统
  • 火车票网站开发网页设计与制作代码成品
  • 旅游类网站怎么做网站点击量查询
  • html5 网站logo如何提升网站seo排名
  • 企业网站优化设计应该把什么放在首位深圳网站优化网站
  • 网站域名购买如何制作一个网页网站
  • 如何建立网站?线上销售平台如何推广
  • 蓝色系网站设计百度app最新版本
  • 安徽省住房和建设厅门户网站苏州百度关键词优化
  • tq网站建设门户网站有哪些
  • 新手做网站需要哪些软件晋城今日头条新闻
  • 怎么在b2b网站上发信息让百度收录怎么做网站快速排名
  • 个人简历模板网站新乡网站优化公司价格
  • 营销型网站建设公司价格电商运营培训班
  • 怎么用腾讯云做网站上海营销seo