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

网上做调查赚钱的网站有哪些宣传软文是什么

网上做调查赚钱的网站有哪些,宣传软文是什么,wordpress上传logo,深圳比较大的外包公司有哪些文章目录 一,54-商品服务-API-三级分类-修改-拖拽效果1,el-tree控件加上允许拖拽的属性2,是否允许拖拽3,完整代码 一,54-商品服务-API-三级分类-修改-拖拽效果 本节的主要内容是给三级分类树形结构加上拖拽功能&#…

文章目录

  • 一,54-商品服务-API-三级分类-修改-拖拽效果
    • 1,el-tree控件加上允许拖拽的属性
    • 2,是否允许拖拽
    • 3,完整代码

在这里插入图片描述

一,54-商品服务-API-三级分类-修改-拖拽效果

本节的主要内容是给三级分类树形结构加上拖拽功能,并且根据分类不能大于三级的规则判断是否能拖拽。

1,el-tree控件加上允许拖拽的属性

el-tree控件加上允许拖拽的属性draggable,此外还需要根据层级判断是否能拖动,通过给allow-drop绑定事件allowDrag实现这个需求。
在这里插入图片描述

	allowDrag(draggingNode, dropNode, dropPosition) {console.log(draggingNode, dropNode, dropPosition);return true},

在 Element UI(El-UI)的树组件 el-tree 中,allow-drop 事件是一个自定义槽函数,用于控制是否允许将一个节点拖放到另一个节点上。这个函数接受三个参数,分别代表正在拖动的节点、可能的放置目标节点以及放置位置。这三个参数具体如下:

  1. draggingNode:
    这个参数是 TreeNode 类型的对象,表示当前正在被拖动的节点。它包含了关于拖动节点的所有信息,如节点的数据、状态等。

  2. dropNode:
    同样是 TreeNode 类型的对象,表示潜在的放置目标节点。这是你可能要将 draggingNode 放置到的节点。如果拖动过程中没有特定的放置目标(例如,拖动到树的空白区域),这个参数可能是 undefined 或者不适用。

  3. dropPosition:
    表示相对于 dropNode 的放置位置。这是一个字符串,可以是 'before''after''inner',分别表示拖动的节点将放置在目标节点之前、之后或内部。如果 dropNodeundefined,则这个参数可能表示放置在树的顶部或底部。

allow-drop 函数应该返回一个布尔值,指示是否允许进行拖放操作。如果返回 true,则允许拖放;如果返回 false,则阻止拖放操作。例如,在你的代码中:

接下来实现这个函数的逻辑。

原则是当前拖动的阶段到达要放置的位置后,层级数不能超过3,所以核心有3点:

  • ①计算出以拖动结点为根结点的子树的深度deep。
  • ②结合目标结点的深度及放置位置的类型,判断新位置的层级level。
  • ③deep + level <=3 时允许拖动。

关于第②点,新位置的类型可能有三种:

  • prev,目标节点的前面
  • inner,目标节点的子节点
  • next,目标节点的后面

2,是否允许拖拽

递归统计draggingNode子树的深度。

	// 递归计算draggingNode子树的深度countDraggingNodeDeep(draggingNode) {var deep = 0;if (draggingNode.childNodes && draggingNode.childNodes.length > 0) {debuggerdraggingNode.childNodes.forEach(child => {deep = Math.max(deep, this.countDraggingNodeDeep(child));});}return deep + 1;},

结合draggingNode子树的深度和位置判断是否能拖动。

	allowDrag(draggingNode, dropNode, dropPosition) {console.log(draggingNode, dropNode, dropPosition);var deep = this.countDraggingNodeDeep(draggingNode);console.log(deep,  dropNode.data.catLevel + deep);// 根据dropPosition结合dropNode.catLevel来判断draggingNode新位置的位置是否合法if (dropPosition === "prev" || dropPosition === "next") {return dropNode.data.catLevel + deep - 1 <= 3;} else if (dropPosition === "inner" ) {return dropNode.data.catLevel + deep <= 3;}},

3,完整代码

<template><div><el-treenode-key="catId":data="menus":props="defaultProps":expand-on-click-node="false"show-checkbox:default-expanded-keys="expandedKeys":allow-drop="allowDrag"draggable><span class="custom-tree-node" slot-scope="{ node, data }"><span>{{ node.label }}</span><span><el-buttonv-if="node.level <= 2"size="mini"@click="() => append(data)">Append</el-button><el-buttonsize="mini"@click="() => edit(data)">Edit</el-button><el-buttonv-if="node.childNodes.length == 0"type="text"size="mini"@click="() => remove(node, data)">Delete</el-button></span></span></el-tree><el-dialog :title="dialogTitle" :visible.sync="dialogFormVisible" :close-on-click-modal=false><el-form :model="category"><el-form-item label="分类名称"><el-input v-model="category.name" autocomplete="off"></el-input></el-form-item><el-form-item label="图标"><el-input v-model="category.icon" autocomplete="off"></el-input></el-form-item><el-form-item label="计量单位"><el-input v-model="category.productUnit" autocomplete="off"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button @click="dialogFormVisible = false">取 消</el-button><el-button type="primary" @click="submitCategory">确 定</el-button></div></el-dialog></div>
</template><script>
export default {components: {},props: {},data() {return {dialogTitle: "", // 编辑窗口标题,新增分类,修改分类dialogType: "", // 编辑窗口类型,create表示append,edit表示editdialogFormVisible: false,menus: [],category: {name: "", parentCid: 0, catLevel: 0, sort: 0, showStatus: 1, icon: "", productUnit: "", catId: null},expandedKeys: [],defaultProps: {children: "children",label: "name",},};},methods: {allowDrag(draggingNode, dropNode, dropPosition) {console.log(draggingNode, dropNode, dropPosition);var deep = this.countDraggingNodeDeep(draggingNode);console.log(deep,  dropNode.data.catLevel + deep);// 根据dropPosition结合dropNode.catLevel来判断draggingNode新位置的位置是否合法if (dropPosition === "prev" || dropPosition === "next") {return dropNode.data.catLevel + deep - 1 <= 3;} else if (dropPosition === "inner" ) {return dropNode.data.catLevel + deep <= 3;}},// 递归计算draggingNode子树的深度countDraggingNodeDeep(draggingNode) {var deep = 0;if (draggingNode.childNodes && draggingNode.childNodes.length > 0) {debuggerdraggingNode.childNodes.forEach(child => {deep = Math.max(deep, this.countDraggingNodeDeep(child));});}return deep + 1;},append(data) {console.log(data);this.dialogType = "create";this.dialogTitle = "新增分类";this.dialogFormVisible = true;this.category = {name: "",parentCid: data.catId,catLevel: data.level + 1,sort: 0,showStatus: 1};},edit(data) {console.log(data);this.dialogType = "edit";this.dialogTitle = "修改分类";this.dialogFormVisible = true;// 根据catId查询最新数据this.$http({url: this.$http.adornUrl(`/product/category/info/${data.catId}`),method: "get",data: this.$http.adornData({ catId: data.catId }, false),}).then(({ data }) => {if (data && data.code === 0) {this.category = {...data.data };} else {this.$message.error(data.msg);}});},submitCategory() {if (this.dialogType === "create") {this.addCategory();} else if (this.dialogType === "edit") {this.updateCategory();}},updateCategory() {var {catId, name, icon, productUnit } = this.categoryconsole.log( this.category);this.$http({url: this.$http.adornUrl("/product/category/update"),method: "post",data: this.$http.adornData({catId, name, icon, productUnit }, false),}).then(({ data }) => {if (data && data.code === 0) {this.$message({message: "修改成功",type: "success",duration: 1500,onClose: () => {console.log("修改成功,关闭消息提示");this.dialogFormVisible = false;this.getMenus(); // 重新获取数据this.expandedKeys =[ this.category.parentCid == 0 ? this.category.catId : this.category.parentCid ]; // 重置展开节点console.log(this.expandedKeys);},});} else {this.$message.error(data.msg);}});},addCategory() {this.$http({url: this.$http.adornUrl("/product/category/save"),method: "post",data: this.$http.adornData(this.category, false),}).then(({ data }) => {if (data && data.code === 0) {this.$message({message: "添加成功",type: "success",duration: 1500,onClose: () => {console.log("添加成功,关闭消息提示");this.dialogFormVisible = false;this.getMenus(); // 重新获取数据this.expandedKeys =[ this.category.parentCid ]; // 重置展开节点},});} else {this.$message.error(data.msg);}});},remove(node, data) {console.log(node, data);var ids = [node.data.catId];this.$confirm(`确定对[id=${ids.join(",")}]进行[${ids.length == 1 ? "删除" : "批量删除"}]操作?`,"提示",{confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(() => {this.$http({url: this.$http.adornUrl("/product/category/delete"),method: "post",data: this.$http.adornData(ids, false),}).then(({ data }) => {if (data && data.code === 0) {this.$message({message: "操作成功",type: "success",duration: 1500,onClose: () => {console.log("删除成功,关闭消息提示");this.getMenus(); // 重新获取数据this.expandedKeys = [ node.parent.data.catId ]; // 重置展开节点},});} else {this.$message.error(data.msg);}});}).catch(() => {});},// 获取分类数据getMenus() {this.dataListLoading = true;this.$http({url: this.$http.adornUrl("/product/category/list/tree"),method: "get",}).then(({ data }) => {console.log(data);this.dataListLoading = false;this.menus = data.data;});},},created() {this.getMenus(); // 获取分类数据},
};
</script>
<style scoped>
</style>

文章转载自:
http://shanghai.xxhc.cn
http://withheld.xxhc.cn
http://rodentian.xxhc.cn
http://palter.xxhc.cn
http://mythopoetry.xxhc.cn
http://accommodationist.xxhc.cn
http://doff.xxhc.cn
http://oft.xxhc.cn
http://scythe.xxhc.cn
http://squarely.xxhc.cn
http://artal.xxhc.cn
http://badge.xxhc.cn
http://sweetstuff.xxhc.cn
http://exactness.xxhc.cn
http://hero.xxhc.cn
http://skutari.xxhc.cn
http://subgiant.xxhc.cn
http://rawheel.xxhc.cn
http://angelical.xxhc.cn
http://flinch.xxhc.cn
http://curioso.xxhc.cn
http://unutterably.xxhc.cn
http://ultrasecret.xxhc.cn
http://pandowdy.xxhc.cn
http://illogic.xxhc.cn
http://encephalon.xxhc.cn
http://unreported.xxhc.cn
http://revolutionology.xxhc.cn
http://conveyancer.xxhc.cn
http://unmerciful.xxhc.cn
http://surveyal.xxhc.cn
http://tabletop.xxhc.cn
http://budding.xxhc.cn
http://chapleted.xxhc.cn
http://tubful.xxhc.cn
http://branchial.xxhc.cn
http://coaming.xxhc.cn
http://sculptural.xxhc.cn
http://droogie.xxhc.cn
http://sporogonium.xxhc.cn
http://mara.xxhc.cn
http://rca.xxhc.cn
http://unhorse.xxhc.cn
http://winner.xxhc.cn
http://tenement.xxhc.cn
http://wartime.xxhc.cn
http://panellist.xxhc.cn
http://complicate.xxhc.cn
http://gnat.xxhc.cn
http://attorney.xxhc.cn
http://golan.xxhc.cn
http://rout.xxhc.cn
http://numeracy.xxhc.cn
http://openable.xxhc.cn
http://benelux.xxhc.cn
http://fenagle.xxhc.cn
http://haematopoietic.xxhc.cn
http://apocarpous.xxhc.cn
http://retiree.xxhc.cn
http://hyperalgesia.xxhc.cn
http://biomembrane.xxhc.cn
http://renew.xxhc.cn
http://kankan.xxhc.cn
http://monogram.xxhc.cn
http://oman.xxhc.cn
http://increasable.xxhc.cn
http://soymilk.xxhc.cn
http://washer.xxhc.cn
http://supersubstantial.xxhc.cn
http://banishment.xxhc.cn
http://hightail.xxhc.cn
http://therezina.xxhc.cn
http://smallboy.xxhc.cn
http://hypogonadism.xxhc.cn
http://prosateur.xxhc.cn
http://woodsy.xxhc.cn
http://circinate.xxhc.cn
http://return.xxhc.cn
http://eburnated.xxhc.cn
http://lasting.xxhc.cn
http://leptonic.xxhc.cn
http://maidless.xxhc.cn
http://lactonize.xxhc.cn
http://italicize.xxhc.cn
http://ornamental.xxhc.cn
http://gravicembalo.xxhc.cn
http://boudicca.xxhc.cn
http://polystylar.xxhc.cn
http://embacle.xxhc.cn
http://vesicle.xxhc.cn
http://synergist.xxhc.cn
http://quaquversal.xxhc.cn
http://audiometer.xxhc.cn
http://localize.xxhc.cn
http://diarthrodial.xxhc.cn
http://dishonestly.xxhc.cn
http://dipteron.xxhc.cn
http://fustic.xxhc.cn
http://evangelist.xxhc.cn
http://inhumation.xxhc.cn
http://www.dt0577.cn/news/112015.html

相关文章:

  • 为什么做的网站打开自动缩放企业seo外包公司
  • 建设积分商城网站网站制作的服务怎么样
  • 织梦做分类信息系统网站bt兔子磁力搜索
  • 太原网站空间网络黄页平台网址有哪些
  • 做图剪片文案网站app接单比较好的网络推广平台
  • 设计网站推荐提升审美最新百度新闻
  • 网站建设广告图片域名收录查询工具
  • 深圳教育 网站建设如何提高搜索引擎优化
  • 公司网站建设图片素材怎么找360网站推广客服电话
  • 网站设计理念nba最新消息交易
  • 在网站社保减员要怎么做seo的作用有哪些
  • 沧州网站营销推广郑州最新通告
  • 溧阳做网站百度网盘网页版登录入口
  • 网站制作高手seo搜索引擎优化哪家好
  • 投标网站怎么做网站推广服务外包
  • 一个做网站编程的条件电脑培训班附近有吗
  • 教育局网站群建设方案怎么推广比较好
  • 有没有可以做司考真题的网站百度网站的优化方案
  • 重庆网站建设排名磁力搜索
  • 做移动网站开发农产品网络营销策划书
  • 网站开通宣传怎么写广州seo团队
  • 湖南网络公司网站建设港港网app下载最新版
  • wordpress图表模板类温州seo排名优化
  • 沧州做网站价格百度快照客服
  • 北京网站建设模板下载百度平台营销
  • 做网销的网站苏州新闻今天最新消息新闻事件
  • 时代创信网站建设深圳推广
  • 京东商城网站建设目的广东疫情动态人民日报
  • 写男主重生做网站的小说搜索引擎优化的英文
  • 做网站运营经理的要求搜索引擎入口官网