JavaScript 代码逻辑分析 - 如何根据后端数据反向推导前端复选框状态
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));
}
根据给定的逻辑,可以推出以下的返显逻辑:
- 如果
params.extInfOptionAuths数组中存在authKey为'RealOrganization.resourceId'的对象,则勾选 "isCheckboxOrganization" 复选框。 - 如果
params.extInfOptionAuths数组中存在authKey为'RealTenant.resourceId'的对象,则勾选 "isCheckboxTenant" 复选框。 - 如果
params.extInfOptionAuths数组中存在authKey为'webTenants.resourceId'的对象,并且存在authKey为'RealBusiness.resourceId'的对象,则勾选 "isCheckboxBusiness" 复选框。 - 如果
params.extInfOptionAuths数组中存在authKey为'ResourcePool.type'的对象,则勾选 "isCheckboxArea" 复选框。 - 如果
params.extInfOptionAuths数组中存在authKey为'ResourcePool.resourceId'的对象,则勾选 "isCheckboxPool" 复选框。 - 如果
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
原文地址: https://www.cveoy.top/t/topic/pdQt 著作权归作者所有。请勿转载和采集!