JavaScript 代码逻辑分析 - 如何根据后端数据反向推导前端复选框状态

这段代码定义了一个 createAuthObject 函数用于创建授权对象,并根据不同的条件将授权对象添加到 params.extInfOptionAuths 数组中。

代码示例:

function createAuthObject(authKey, authVals) {
  return {
    authScope: 1,
    authKey,
    authVals
  };
}

if (isCheckboxOrganization) {
  params.extInfOptionAuths.push(createAuthObject('RealOrganization.resourceId', selectOrganizationIds));
}
if (isCheckboxTenant) {
  params.extInfOptionAuths.push(createAuthObject('RealTenant.resourceId', selectFilterTenantIds));
}
if (isCheckboxBusiness) {
  params.extInfOptionAuths.push(createAuthObject('webTenants.resourceId', selectedTenantIds));
  params.extInfOptionAuths.push(createAuthObject('RealBusiness.resourceId', selectedBusinessIds));
}
if (isCheckboxArea) {
  params.extInfOptionAuths.push(createAuthObject('ResourcePool.type', selectAreaIdList));
}
if (isCheckboxPool) {
  params.extInfOptionAuths.push(createAuthObject('ResourcePool.resourceId', filtSelectedPoolIds));
}
if (isSelectPod) {
  params.extInfOptionAuths.push(createAuthObject('webPoolIds.resourceId', selectedPoolIds));
  params.extInfOptionAuths.push(createAuthObject('Pod.resourceId', selectedPodIds));
}

根据给定的逻辑,可以推出以下的返显逻辑:

  1. 如果 params.extInfOptionAuths 数组中存在 authKey'RealOrganization.resourceId' 的对象,则勾选 "isCheckboxOrganization" 复选框。
  2. 如果 params.extInfOptionAuths 数组中存在 authKey'RealTenant.resourceId' 的对象,则勾选 "isCheckboxTenant" 复选框。
  3. 如果 params.extInfOptionAuths 数组中存在 authKey'webTenants.resourceId' 的对象,并且存在 authKey'RealBusiness.resourceId' 的对象,则勾选 "isCheckboxBusiness" 复选框。
  4. 如果 params.extInfOptionAuths 数组中存在 authKey'ResourcePool.type' 的对象,则勾选 "isCheckboxArea" 复选框。
  5. 如果 params.extInfOptionAuths 数组中存在 authKey'ResourcePool.resourceId' 的对象,则勾选 "isCheckboxPool" 复选框。
  6. 如果 params.extInfOptionAuths 数组中存在 authKey'webPoolIds.resourceId' 的对象,并且存在 authKey'Pod.resourceId' 的对象,则勾选 "isSelectPod" 复选框。

根据以上逻辑,可以通过检查 params.extInfOptionAuths 数组中的对象来确定哪些复选框应该被选中。

示例

假设 params.extInfOptionAuths 数组包含以下对象:

params.extInfOptionAuths = [
  {
    authScope: 1,
    authKey: 'RealOrganization.resourceId',
    authVals: [1, 2, 3]
  },
  {
    authScope: 1,
    authKey: 'webTenants.resourceId',
    authVals: [4, 5, 6]
  },
  {
    authScope: 1,
    authKey: 'RealBusiness.resourceId',
    authVals: [7, 8, 9]
  }
];

根据上述逻辑,我们可以推断出以下复选框应该被选中:

  • isCheckboxOrganization
  • isCheckboxBusiness
JavaScript 代码逻辑分析 - 如何根据后端数据反向推导前端复选框状态

原文地址: https://www.cveoy.top/t/topic/pdQt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录