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

网站从香港转到内地如何备案seo推广收费标准

网站从香港转到内地如何备案,seo推广收费标准,网站建设三剑客,网站排名突然下降需求 实现一个如图带搜索框的下拉树形组件。 解决方案 利用el-inputel-tree实现自定义带搜索的下拉树形组件。 具体实现步骤 1、创建TreeSelect组件 <template><div class"tree-select-wrapper" v-clickoutside"handleClose"><el-inpu…

需求

在这里插入图片描述
实现一个如图带搜索框的下拉树形组件。

解决方案

利用el-input+el-tree实现自定义带搜索的下拉树形组件。

具体实现步骤

1、创建TreeSelect组件

<template><div class="tree-select-wrapper" v-clickoutside="handleClose"><el-inputclass="common-simple-input tree-select-input"v-model="selectedText":placeholder="placeholder":clearable="clearable":disabled="disabled":style="styleAttr"readonly@click.native="handleClick"@clear="handleClear"><iclass="el-input__icon":class="['el-icon-arrow-down', visible ? 'is-reverse' : '']"slot="suffix"></i></el-input><div v-show="visible" class="tree-select-dropdown" :style="styleAttr"><el-inputv-if="filterable"v-model="filterText"class="tree-select-filter common-simple-input"placeholder="请输入关键字进行过滤"clearable@click.native.stop></el-input><el-treeref="tree":data="options":props="defaultProps":node-key="nodeKey":default-expand-all="defaultExpandAll":expand-on-click-node="expandOnClickNode":filter-node-method="handleFilterNode"@node-click="handleNodeClick"></el-tree></div></div>
</template><script>
export default {name: 'TreeSelect',props: {value: {type: [String, Number],default: ''},textValue: {type: String,default: ''},placeholder: {type: String,default: '请选择'},options: {type: Array,default: () => []},defaultProps: {type: Object,default: () => ({children: 'children',label: 'label',value: 'value'})},nodeKey: {type: String,default: 'value'},defaultExpandAll: {type: Boolean,default: false},expandOnClickNode: {type: Boolean,default: true},filterable: {type: Boolean,default: true},clearable: {type: Boolean,default: true},disabled: {type: Boolean,default: false},styleAttr: {type: Object,default: () => ({})}},data() {return {visible: false,filterText: '',selectedText: this.textValue}},watch: {filterText(val) {this.$refs.tree.filter(val)},textValue(val) {this.selectedText = val},visible: {immediate: true,deep: true,handler(val) {if (val && this.$refs.tree) {this.$refs.tree.setCurrentKey(this.value)}}}},mounted() {if (this.value && this.$refs.tree) {this.$refs.tree.setCurrentKey(this.value)}},methods: {handleClick() {if (this.disabled) returnthis.visible = !this.visible},handleClose() {this.visible = false},handleClear() {this.$emit('input', '')this.$emit('update:textValue', '')this.$emit('change', '')this.selectedText = ''},handleNodeClick(node) {if (!node[this.nodeKey]) returnthis.$emit('input', node[this.nodeKey])this.$emit('update:textValue', node[this.defaultProps.label])this.$emit('change', node[this.nodeKey])this.selectedText = node[this.defaultProps.label]this.visible = false},handleFilterNode(value, data) {if (!value) return trueconst label = data[this.defaultProps.label] || ''return label.indexOf(value) !== -1}},directives: {clickoutside: {bind(el, binding) {function documentHandler(e) {if (el.contains(e.target)) {return false}if (binding.value) {binding.value()}}el.__vueClickOutside__ = documentHandlerdocument.addEventListener('click', documentHandler)},unbind(el) {document.removeEventListener('click', el.__vueClickOutside__)delete el.__vueClickOutside__}}}
}
</script><style lang="scss" scoped>
.tree-select-wrapper {position: relative;width: 100%;.tree-select-input {cursor: pointer;:deep(.el-input__suffix) {margin-right: vw(5);margin-top: vh(2);font-size: vw(14);}:deep(.el-input__icon) {transition: transform 0.3s;&.is-reverse {transform: rotateZ(180deg);}}}.tree-select-dropdown {width: 100%;position: absolute;top: 100%;left: 0;z-index: 1000;margin-top: 5px;padding: 5px 0;background-color: #152e58;border: 1px solid #0d59b4;border-radius: 4px;box-shadow: 0 2px 12px 0 rgba(112, 177, 218, 0.5);max-height: 400px;overflow-y: auto;cursor: pointer;.tree-select-filter {margin: 0 5px 5px;width: 90%;}:deep(.el-tree) {border: none;background: none !important;.el-tree__empty-text {color: #fff;font-size: vw(14);}.el-tree-node__label {cursor: pointer;color: #fff;font-size: vw(14) !important;}.el-tree-node__content {background: none !important;&:hover {color: #6cd9ff;background-color: rgba(27, 40, 61, 0.3) !important;}}.el-icon-caret-right:before {content: "\E791" !important;}.el-tree-node__expand-icon.expanded {transform: rotate(90deg) !important;-webkit-transform: rotate(90deg) !important;}.el-tree-node.is-current.is-focusable {background-color: rgba(27, 40, 61, 0.5) !important;.el-tree-node__label {color: #6cd9ff !important;}}}}
}
</style> 

2、使用TreeSelect组件

// 引入TreeSelect组件
import TreeSelect from "@/components/TreeSelect/index.vue";// 使用示例<TreeSelectv-model="searchForm.orgCode":text-value.sync="searchForm.orgName":options="orgTreeData"placeholder="请选择":default-props="{children: 'children',label: 'orgName',value: 'orgCode',}"node-key="orgCode":filterable="true":clearable="true":styleAttr="{ width: '200px' }"/>data() {orgTreeData: [],
},
mounted() {// 获取树形数据this.getOrgTreeData();},
methods: {// 获取树形数据方法async getOrgTreeData() {try {const res = await this.getOrgTreeListApi();this.orgTreeData = res.data || [];} catch (error) {console.error("获取事业部树形数据失败:", error);}},getOrgTreeListApi async(data) {return axios.post(`/api/org/tree`, data).then((resp) => resp.data)}
}              

写在最后

TreeSelect组件可以直接Copy进行使用,其中common-simple-input为图中el-input输入框的蓝底亮框样式,可根据自身需求进行样式自定义开发。

http://www.dtcms.com/wzjs/461578.html

相关文章:

  • 佛山市南海区交通建设网站怎么查询百度收录情况
  • 自适应网站手机端做一个公司网站需要多少钱
  • 网站功能需求列表网页在线代理翻墙
  • 恩阳建设局网站新软件推广
  • 鸡西网站制作公司地址海阳seo排名
  • 网站建设的部署热点新闻事件及观点
  • 中国华能集团电子商务平台招标网网上seo研究
  • 深圳自适应网站建设报价接app推广
  • 怎么在百度创建网站兔子bt樱桃搜索磁力天堂
  • 四川做网站的1000个关键词
  • 怎么做这个购物网站爱站网关键词挖掘
  • 安顺住房和城乡建设部网站推推蛙品牌策划
  • 昆明网站制作在线排名优化方案
  • 做菠菜网站好赚吗凡科建站app
  • 深圳网站建设jm3q湖南百度推广公司
  • 中式建筑网站google play 安卓下载
  • 卢松松网站的百度广告怎么做的电商网站对比
  • 网站模板放哪推广普通话手抄报内容大全资料
  • 网站备案完成后该如何做商城网站开发公司
  • 韶关企业网站建设公司sem推广竞价托管
  • php做网站特效世界网站排名查询
  • 微网站开发北京上海优化seo排名
  • 网站建设的行业资讯、郑州做网站推广电话
  • 视频网站开发网站指数查询
  • vps能同时做网站同时做其它事吗引流推广平台软件
  • 做b2b网站的人百度seo费用
  • .net做网站用什么的多企业网站有什么
  • 中国工商网济南做seo的公司排名
  • 无锡网站建设 百家号项目推广平台排行榜
  • 网站后台 语言企业网络推广方法