您的位置:首页 > 新闻 > 资讯 > 网页设计的标准尺寸一般有哪些_南通企业自助建站系统_如何让百度收录网站_外链下载

网页设计的标准尺寸一般有哪些_南通企业自助建站系统_如何让百度收录网站_外链下载

2024/12/28 15:14:52 来源:https://blog.csdn.net/misstianyun/article/details/143179780  浏览:    关键词:网页设计的标准尺寸一般有哪些_南通企业自助建站系统_如何让百度收录网站_外链下载
网页设计的标准尺寸一般有哪些_南通企业自助建站系统_如何让百度收录网站_外链下载

问题描述

因为分类数据太多,首次加载时间太长,和业务沟通改成异步加载子节点,解决了加载缓慢的问题,但编辑的时候回显就不能显示了,因为赋值的时候,下拉框数据中还没有加载已选中的项。该怎么办呢…
在这里插入图片描述

解决方案

结合业务考虑,因为分类的ID是输入框手动输入的,没有特定的格式,只根据多个分类的ID用分号分隔了,无法找到其父节点的分类ID,所以不能用递归调用数据的方法。想了一个让分类显示的方法,将需要回显的数据插入到categoryData中,实现编辑分类的回显。
在这里插入图片描述

示例代码

<template><TreeSelectv-if="item.key === 'broader'"v-model="form[item.key]":data="categoryData":load-data="loadTreeList"multiple/>
</template>
<script>export default {props: {categoryData: {type: Array,default: () => []}},data () {return {value: [],nextValue: 1,data: [{title: 'parent1',value: 'parent1',loading: false,selected: false,checked: false,children: []}]}},methods: {findById (node, targetId) {// 如果当前节点的value等于targetId,直接返回当前节点if (node.value === targetId) {return node}// 如果当前节点有子节点,则遍历子节点if (node.children && node.children.length) {for (let child of node.children) {const foundNode = this.findById(child, targetId)if (foundNode) {// 如果找到了匹配的节点则返回return foundNode}}}// 如果遍历完所有的子节点都没有找到匹配的节点,则返回nullreturn null},initTreeData (categoryIds, labels) {const data = _.cloneDeep(this.categoryData)const existData = []const categoryNodes = []for (let i = 0, len = categoryIds.length; i < len; i++) {data.forEach(item => {const target = this.findById(item, categoryIds[i]) if (target) {existData.push(target)}})categoryNodes.push({title: labels[i],value: categoryIds[i],selected: false})}categoryNodes.forEach(node => {const target = existData.find(existNode => existNode.value === node.value)if (!target) {this.categoryData.push(node)}})},async loadTreeList (broader, callback) {return new Promise((resolve, reject) => {const params = {broader: broader.categoryId,entryName: this.entryName}getTreeList(params).then(res => {const data = res.map(item => {item.title = item.prefLabelitem.value = item.categoryIditem.selected = falseitem.checked = falseitem.loading = falsereturn item})callback(data)resolve(data)}).catch(err => {reject(err)})})        },init (row) {this.visible = truethis.entryId = row.entryIdthis.entryName = row.entryNamethis.title = '新增'if (row && row.id) {this.id = row.idthis.title = '编辑'this.form = { ...row }if (this.form.broader) {this.form.broader = row.broader.split(';')this.initTreeData(row.broader.split(';'), row.category_pref_label.split(';'))}if (row.alt_label) {this.altLabelList = row.alt_label.split(';')}}},}}
</script>

参考文档:

https://www.iviewui.com/view-ui-plus/component/form/tree-select#load

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com