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

汕头网站排名优化报价组织部信息化建设官方网站

汕头网站排名优化报价,组织部信息化建设官方网站,app开发网站,监测网站空白栏目前言 本文章是本人在开发过程中#xff0c;遇到使用树形数据#xff0c;动态单选或多选的需求#xff0c;element中没有这种组件#xff0c;故自己封装一个#xff0c;欢迎多多指教 开发环境#xff1a;element-UI、vue2 组件效果 单选 多选 组件引用 treeselec…前言 本文章是本人在开发过程中遇到使用树形数据动态单选或多选的需求element中没有这种组件故自己封装一个欢迎多多指教 开发环境element-UI、vue2 组件效果 单选 多选 组件引用 treeselect v-modelform.parentId:optionsdeptOptions:props{value:id,label:name,children: children}:placeholder选择上级部门/ 组件代码 templatedivel-selectreftreeSelectpopper-classcustom-select-popperstylewidth: 100%v-modelvalueLabel:clearableclearable:placeholderplaceholder:multiplemultipleclearhandleClearremove-taghandleRemoveTagel-input v-iffilterv-modelfilterText:placeholderfilterPlaceholder stylemargin-top: -6px;/el-option :valuevalue :labeloption.name classselect-optionsel-treeidtree-optionreftreeSelectTree:accordionaccordion:dataoptions:propsprops:node-keyprops.value:highlight-current!multiple:show-checkboxmultiple:check-strictlycheckStrictly:default-expand-allexpandAll:expand-on-click-nodemultiple:filter-node-methodfilterNodenode-clickhandleNodeClickcheckhandleNodeCheckboxspan slot-scope{ node, data } classtree_label{{ node.label }}/span/el-tree/el-option/el-select/div /template script export default {name: TreeSelect,model: {prop: value,event: change},props: {value: {type: [String, Number, Object, Array],default: () {return }},clearable: {type: Boolean,default: true},placeholder: {type: String,default: 请选择},multipleLimit: {type: Number,default: 2},//--------- filter props -----filter: {type: Boolean,default: true},filterPlaceholder: {type: String,default: 请输入关键字},//----- tree props -----accordion: {type: Boolean,default: false},options: {type: Array,default: () {return []}},props: {type: Object,default: () {return {value: id,label: label,children: children}}},expandAll: {type: Boolean,default: false},checkStrictly: {type: Boolean,default: false}},data() {return {tp: {value: id,label: label,children: children,prentId: parentId},multiple: false,valueLabel: [],option: {id: ,name: },filterText: undefined,valueId: [],treeIds: []}},watch: {valueId() {if (this.multiple) {let valueStr if (this.value instanceof Array) {valueStr this.value.join()} else {valueStr this.value}if (valueStr ! this.valueId.join()) {this.$emit(change, this.valueId)}} else {let id this.valueId.length 0 ? this.valueId[0] : undefinedif (id ! this.value) {this.$emit(change, id)}}},value: {handler(newVal, oldVal) {if (newVal ! oldVal) {this.init()}}},filterText: {handler(newVal, oldVal) {if (newVal ! oldVal) {this.$refs.treeSelectTree.filter(newVal)}}}},mounted() {for (let key in this.tp) {if (this.props[key] ! undefined) {this.tp[key] this.props[key]}}this.multiple this.multipleLimit 1this.init()this.$nextTick(() {if (this.multiple) {document.getElementsByClassName(el-select__tags)[0].style.maxHeight document.getElementsByClassName(el-select)[0].offsetHeight * 2 - 4 px}})},methods: {init() {if (this.value instanceof Array) {this.valueId this.value} else if (this.value undefined) {this.valueId []} else {this.valueId [this.value]}if (this.multiple) {for (let id of this.valueId) {this.$refs.treeSelectTree.setChecked(id, true, false)}} else {this.$refs.treeSelectTree.setCurrentKey(this.valueId.length 0 ? this.valueId[0] : undefined)}this.initValueLabel()this.initTreeIds()this.initScroll()},// 初始化滚动条initScroll() {this.$nextTick(() {let scrollWrap document.querySelectorAll(.el-scrollbar .el-select-dropdown__wrap)[0]scrollWrap.style.cssText margin: 0px; max-height: none; overflow: hidden;let scrollBar document.querySelectorAll(.el-scrollbar .el-scrollbar__bar)scrollBar.forEach((ele) (ele.style.width 0))})},initTreeIds() {let treeIds []let _this thisfunction traverse(nodes) {for (let node of nodes) {treeIds.push(node[_this.tp.value])if (node[_this.tp.children]) {traverse(node[_this.tp.children])}}}traverse(this.options)this.treeIds treeIds},initValueLabel() {let labels []let _this thisfor (let id of this.valueId) {let node this.traverse(this.options, node node[_this.tp.value] id)if (node) {labels.push(node[_this.tp.label])}}if (this.multiple) {this.valueLabel labelsthis.option.name labels.join()} else {this.valueLabel labels.length 0 ? labels[0] : undefinedthis.option.name this.valueLabel}},traverse(tree, func) {for (let node of tree) {if (func(node)) {return node}if (node[this.tp.children]) {let result this.traverse(node[this.tp.children], func)if (result ! undefined) {return result}}}return undefined},handleClear() {this.valueLabel []this.valueId []if (this.multiple) {for (let id of this.treeIds) {this.$refs.treeSelectTree.setChecked(id, false, false)}} else {this.$refs.treeSelectTree.setCurrentKey(null)}},/* 树filter方法 */filterNode(value, data) {if (!value) return truereturn data[this.props.label].indexOf(value) ! -1},/* 树节点点击事件 */handleNodeClick(data, node) {if (!this.multiple) {this.filterText this.valueId [data[this.tp.value]]}if(node.childNodes){node.expanded true}},handleNodeCheckbox(data, node) {if (this.multiple) {if (this.multipleLimit node.checkedKeys.length) {this.valueId node.checkedKeys} else {this.$refs.treeSelectTree.setChecked(data, false, !this.checkStrictly)this.$message.error(最多选择 this.multipleLimit 项)}}},handleRemoveTag(tag) {let n this.traverse(this.options, node node[this.tp.label] tag)if (n) {this.$refs.treeSelectTree.setChecked(n[this.tp.value], false, !this.checkStrictly)}this.valueId this.$refs.treeSelectTree.getCheckedKeys()}} }/scriptstyle scoped langscss ::v-deep .el-select__tags {overflow: auto; } .custom-select-popper{}.el-scrollbar {.el-scrollbar__view {.el-select-dropdown__item {height: auto;max-height: 300px;padding: 0;overflow: hidden;overflow-y: auto;}.el-select-dropdown__item.selected {font-weight: normal;}} }ul li {.el-tree {.el-tree-node__content {height: auto;padding: 0 20px;}.el-tree-node__label {font-weight: normal;}.is-current .el-tree-node__label{color: #409eff;font-weight: 700;}} }.tree_label {line-height: 23px;.label_index {background-color: rgb(0, 175, 255);width: 22px;height: 22px;display: inline-flex;border-radius: 4px;.label_index_font {color: #ffffff;width: 100%;text-align: center;}} } /style
http://www.dnsts.com.cn/news/186613.html

相关文章:

  • 零基础建设网站视频教程网站建设制作开发 小程序开发定制 软件系统开发
  • 优化网站哪家好新媒体营销案例ppt
  • 建设网站分析报告海南平台网站建设平台
  • 土巴兔网站开发技术中国空间站机械臂
  • 深圳做网站的网络网站架构包含哪几个部分
  • 电子商务网站建设与管理总结godaddy的wordpress
  • 江苏双楼建设集团有限公司网站修改wordpress页脚信息
  • 苏州建筑行业网站建设一流的网站建设流程
  • 视频网站开发要求网站维护与建设实训心得
  • 淘宝客搜索网站怎么做上海的公司都有哪些
  • 后盾网原创实战网站建设教程洛阳网站制作公司
  • 自己在哪里做网站怎么能将网站做的不简单
  • 使用ftp软件连接到网站空间网上哪个购物平台最值得信赖
  • 那个可以做棋牌网站wordpress降版本
  • 建设国家游戏网站wordpress 邮箱函数
  • wordpress echo兰州seo排名优化服务
  • 深圳做网站要多少钱怎么查看一个网站的建设地区
  • 南京网站关键词推广wordpress安装在子目录
  • 重庆大学建设管理与房地产学院网站做视频网站要多大带宽
  • 网站设计 下拉式菜单怎么做什么是公司主页
  • 南京专业网站制作哪家好wordpress邮件注册通知
  • 网站未经授权推广别人的产品西安赶集网官网
  • wordpress适合做企业站企业门户网站需求文档
  • 做外贸怎么连接国外网站wap网站技术
  • 可以做申论的网站旅游网站系统的设计与实现
  • 制作一个介绍洛阳网站zencart 官方网站
  • 建设网站的企业发展历程大师摄影作品网站
  • 医院做网站怎么就违规了网站返回500错误页面
  • 莆田网站制作计划家具网站开发设计任务书与执行方案
  • 医院网站建设目的单页建站系统