如何根据后端返回的树形结构数据,动态生成授权平台和期限选择列表并显示对应价格?

动态生成授权平台和期限选择列表及价格显示

本文介绍如何根据后端返回的树形结构数据,动态生成授权平台和期限选择列表,并实时显示对应价格。我们将使用原生javascript实现,并提供vue.js实现的思路。

如何根据后端返回的树形结构数据,动态生成授权平台和期限选择列表并显示对应价格?

数据结构:

后端返回的数据结构如下,这是一个树形结构,包含授权平台和对应的期限选项以及价格信息:

[  {    "title": "哔哩哔哩",    "children": [      {        "id": 1,        "platform": 1,        "platform_title": "哔哩哔哩",        "years": 0,        "price": 0.01,        "address": 1,        "address_title": "一年",        "show_title": "¥0.4元"      },      {        "id": 19,        "platform": 1,        "platform_title": "哔哩哔哩",        "years": 1,        "price": 0.01,        "address": 0,        "address_title": "不限",        "show_title": "¥1元"      }    ]  },  // ...其他平台数据]

原生JavaScript实现:

const priceList = [  // ... 后端返回的JSON数据 ...];const platSelect = document.querySelector(".au_plat select"); // 假设已存在元素const perSelect = document.querySelector(".au_per select");   // 假设已存在元素const priceEle = document.querySelector(".price");let activePlatform;let activeItem = priceList[0].children[0]; // 默认选中第一个选项const renderPlatforms = (data) => {  data.forEach(item => {    const option = document.createElement('option');    option.value = item.title;    option.text = item.title;    platSelect.appendChild(option);  });  platSelect.addEventListener('change', (e) => {    const selectedPlatform = priceList.find(item => item.title === e.target.value);    activePlatform = selectedPlatform;    renderPeriods(selectedPlatform.children);  });};const renderPeriods = (data) => {  perSelect.innerHTML = ''; // 清空之前的选项  data.forEach(item => {    const option = document.createElement('option');    option.value = item.id;    option.text = item.address_title;    perSelect.appendChild(option);  });  perSelect.addEventListener('change', (e) => {    activeItem = data.find(item => item.id === parseInt(e.target.value, 10));    updatePrice();  });};const updatePrice = () => {  priceEle.textContent = activeItem.show_title;};renderPlatforms(priceList);updatePrice(); // 初始化价格

HTML结构: 确保你的HTML中包含以下结构,以便JavaScript代码能够正确地操作DOM元素。

¥0.01

授权平台:

授权期限:

Vue.js实现思路:

使用Vue.js可以更简洁地实现,可以使用v-for指令遍历数据,v-model指令绑定选择的值,计算属性计算价格。

这个原生JS实现提供了一个基本的框架,你可以根据你的具体需求进行修改和扩展,例如添加错误处理、加载动画等。 记住将priceList替换成你的实际后端数据。 Vue.js实现则更适合大型项目,因为它提供了更强大的数据管理和组件化能力。

以上就是如何根据后端返回的树形结构数据,动态生成授权平台和期限选择列表并显示对应价格?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1561197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 06:16:54
下一篇 2025年12月13日 19:54:40

相关推荐

  • 如何实现根据选择不同的授权平台动态显示其对应的授权期限和价格?

    动态显示授权平台期限和价格 本文介绍如何根据选择的授权平台动态显示其对应的授权期限和价格。我们将使用javascript实现这一功能,并提供vue.js的示例代码。 数据结构: 我们假设后端返回的数据结构如下: price_list: [ { “title”: “哔哩哔哩”, “children”:…

    2025年12月22日 好文分享
    000
  • Vue.js如何根据后端数据动态生成不同类型的表单?

    基于vue.js的动态表单构建 本文介绍如何利用Vue.js框架根据后端返回的数组数据,动态生成不同类型的表单元素,并实现单选框互斥选择的功能。 核心技术: 我们主要运用Vue的组件化和动态渲染特性来实现这一目标。具体方法如下: 动态组件渲染: 通过is属性,我们可以根据后端数据中定义的类型,动态加…

    2025年12月22日
    000
  • Vue动态组件如何实现灵活的动态表单创建?

    vue动态组件:构建灵活的动态表单 利用Vue的组件和is属性,可以轻松创建动态表单。通过v-if指令判断后台数据类型,动态渲染不同的输入组件,例如input、select或自定义的checkbox组件。 例如,你可以这样定义组件: 其中,inputType是一个动态变量,根据后台数据决定渲染哪个组…

    2025年12月22日
    000
  • 如何根据选择的授权平台和期限动态计算并显示价格?

    遍历树形数据,动态展示授权平台和期限 需求 根据后端返回的树形数据,展示授权平台和授权期限用户选择不同的授权平台时,展示对应平台下的授权期限最终显示所选授权平台和期限对应的价格 后台返回的数据 price_list: [ { title: “哔哩哔哩”, children: [ { id: 1, p…

    好文分享 2025年12月22日
    000
  • Vue动态创建表单:如何根据数据类型灵活渲染input、select或自定义checkbox?

    vue.js动态表单:根据数据类型渲染不同组件 在Vue.js开发中,动态创建表单并根据数据类型灵活渲染input、select或自定义checkbox等元素是常见需求。本文介绍几种实现方法,助您高效构建动态表单。 方法一:利用组件的is属性和v-if指令 组件的is属性允许动态指定渲染的组件,结合…

    2025年12月22日
    000
  • 如何优雅地用Vue构建根据后端数据动态变化的表单?

    基于vue.js构建动态表单的最佳实践 后端返回的数组数据驱动表单的动态构建,需要一套灵活高效的方案。本文提供一种优雅的解决方案,利用Vue.js的is属性和v-if指令实现动态组件渲染。 核心思路: 通过组合is属性和v-if指令,根据后端数据动态选择并渲染不同的组件。 具体实现: 立即学习“前端…

    2025年12月22日
    000
  • 如何优雅地动态创建包含不同输入类型的表单?

    高效灵活的动态表单构建策略 构建动态表单,特别是包含多种输入类型的表单,需要巧妙的策略来保证代码的可维护性和可扩展性。 本文介绍一种基于组件和条件渲染的优雅方案。 核心思路:组件化与条件判断 组件化: 为每种输入类型 (例如文本输入框、下拉菜单、复选框) 创建独立的组件。 这使得代码更模块化,更容易…

    2025年12月22日
    000
  • 父组件渲染子组件不一致,是什么原因导致的?

    父组件和子组件渲染不一致的常见问题排查 当父组件渲染的子组件内容与预期不符时,通常需要检查以下几个方面: 1. 子组件名称错误: 请仔细核对父组件中引用的子组件名称与实际子组件文件名是否完全一致,包括大小写。例如, 与 就可能导致渲染错误。 2. 子组件未注册: 确保已正确注册子组件。在Vue.js…

    2025年12月22日
    000
  • 父组件引用A子组件,却显示B子组件内容是什么原因?

    父组件调用a子组件却显示b子组件内容的原因分析及解决方法 上图所示问题,父组件明明引用了A子组件,页面却显示了B子组件的内容。这通常是由于组件注册或引用路径错误导致的。 一、排查组件注册问题 请确认A子组件是否已正确注册在父组件所属的Vue实例中。 组件注册通常在Vue实例的components选项…

    2025年12月22日
    000
  • Vue.js中父组件引用子组件不一致,网页显示错误子组件是什么原因?

    vue.js 项目中,父组件引用子组件错误,页面显示非预期子组件 在 Vue.js 开发过程中,经常会遇到这种情况:父组件明明 import 了 A 子组件,页面却显示了 B 子组件的内容。然而,父组件代码中并没有任何对 B 子组件的引用。 问题根源: 这种问题通常发生在 A 和 B 两个子组件的名…

    2025年12月22日
    000
  • Vue应用中意外显示子组件的根源是什么?

    vue 应用中意外渲染子组件的排查指南 在开发 Vue 应用时,有时会遇到父组件明明引用了某个子组件,页面却显示了另一个子组件的情况。本文将分析导致此问题出现的一些常见原因。 1. 组件引用路径错误: 请仔细检查父组件中引用的子组件路径是否准确无误。即使路径看起来正确,也可能存在拼写错误或路径相对性…

    2025年12月22日
    000
  • Vuex如何优雅地按需加载后端全局数据?

    优化vuex后端全局数据加载 后端提供全局共享数据接口时,为提升应用性能,最佳实践是在实际需要数据时再发起请求获取。 避免使用简单的判断和dispatch方式,因为它会产生冗余代码。 高效解决方案 推荐如下简洁方案: // store:export default { namespaced: tru…

    2025年12月22日
    000
  • 如何高效地在Vuex中按需加载后端全局数据?

    优化vuex全局数据加载:按需获取 在Vue应用中,高效管理后端全局数据至关重要。本文介绍一种优化的Vuex数据加载方案——按需加载,避免不必要的重复数据请求,提升应用性能。 传统方法通常在每个需要数据的组件内单独发起数据请求,导致代码冗余。而本文推荐的方案,则在Vuex store中集中处理数据获…

    2025年12月22日
    000
  • Vue子组件向父组件传递数组报错:如何正确处理axios异步请求数据?

    vue子组件向父组件传递数组的异步处理方案 在Vue子组件中,使用axios进行异步请求后,向父组件传递数组数据时,可能会遇到传递失败或数据不完整的问题。这是因为axios请求是异步操作,在this.$emit()执行时,请求可能尚未完成,导致传递的数据为空或不正确。 为了解决这个问题,需要确保在a…

    2025年12月22日
    000
  • Vuex中如何按需加载并管理后端全局数据?

    优化vuex:按需加载后端全局数据 高效的应用需要高效的数据管理。本文介绍如何在Vuex中实现后端全局数据的按需加载,从而提升应用性能。 核心策略:仅在需要时才获取数据。 方法一:Action驱动数据获取 Vuex的Action非常适合处理异步操作,例如从服务器获取数据。 每个需要数据的组件都可以通…

    2025年12月22日
    000
  • Vuex中如何按需加载后端全局数据?

    优化vuex:高效加载后端全局数据 为了提升应用性能,建议采用按需加载策略,避免在Vuex中预先加载所有后端全局数据。本文提供一种高效的解决方案。 首先,在Vuex中创建一个模块来管理全局数据: export default { namespaced: true, state: { globalDa…

    2025年12月22日
    000
  • Vuex中如何按需加载后端全局数据以提高性能?

    优化vuex:按需加载后端全局数据 为了提升应用性能,建议采用按需加载的方式获取并存储后端全局数据到Vuex中。 以下步骤将指导您如何实现: 高效加载策略 初始空状态:在Vuex状态中,预先定义一个空数组或对象用于存储全局数据。触发加载动作:当需要使用全局数据时,在组件中调用相应的Vuex acti…

    2025年12月22日
    000
  • 如何使用ElementUI实现el-image大图左右切换并添加当前图片图标?

    使用elementui的el-image组件实现大图左右切换及当前图片指示 ElementUI本身并不直接支持图片轮播功能,需要结合el-carousel组件来实现el-image大图的左右切换。 以下代码示例展示如何使用el-carousel组件实现图片轮播,并通过CSS样式为当前显示的图片添加指…

    2025年12月22日
    000
  • Avue-Crud Tree类型组件如何监听选择事件并获取节点值?

    在avue-crud中监听tree类型组件的选择事件 使用Avue框架的Avue-Crud组件,并将其type属性设置为”tree”时,您可以按照以下步骤监听选择事件并获取节点值: 创建ref引用: 在您的组件模板中,使用ref属性引用Avue-Crud组件实例,例如: 监听…

    2025年12月22日
    000
  • Vuex异步数据初始化:如何高效利用持久化存储避免重复请求?

    优化vuex异步数据初始化:避免重复后台请求 Vuex应用中,异步数据通常由Action获取。但如果多个页面共用同一数据集,每次页面加载都需判断并触发Action,效率低下。 高效的解决方案是利用持久化存储(例如sessionStorage或localStorage)缓存首次请求的数据。在初始化Vu…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信