diff --git a/src/views/modules/order/buyorder.vue b/src/views/modules/order/buyorder.vue index 6963481..64da14d 100644 --- a/src/views/modules/order/buyorder.vue +++ b/src/views/modules/order/buyorder.vue @@ -769,31 +769,42 @@ 8: '心理学VIP' }; - const vipTypes = userVips.map(vip => vip.type); - const isMedicalVip = [4, 5, 6].every(type => vipTypes.includes(type)); - const isPsychologyVip = [7,8].every(type => vipTypes.includes(type)); - - // 特殊情况:医学 + 心理学 - if (isMedicalVip && isPsychologyVip) { - return `医学SVIP
- 国学与心理学SVIP`; - } - - // 只有医学VIP - if (isMedicalVip) { - return `医学超级VIP`; + // 将 userVips 转为数组形式,以便处理(如果是数字则转为数字数组) + let vipTypes = []; + if (typeof userVips === 'number') { + vipTypes = String(userVips).split('').map(Number); // 数字转为数组 + } else { + vipTypes = userVips.map(vip => vip.type); // 如果是对象数组,获取每个对象的 type } - // 只有心理学VIP - if (isPsychologyVip) { - return `国学与心理学超级VIP`; + // 判断是否同时包含 4、5、6(医学SVIP) + const hasMedicalSVip = [4, 5, 6].every(type => vipTypes.includes(type)); + // 判断是否同时包含 7、8(心理学SVIP) + const hasPsychologySVip = [7, 8].every(type => vipTypes.includes(type)); + + const tags = []; + + // 1. 医学SVIP(只显示一次) + if (hasMedicalSVip) { + tags.push(`医学SVIP`); } - // **普通情况**:单独展示所有 `type` 对应的内容 - return vipTypes - .filter(type => vipMap[type]) // 过滤出有对应名称的类型 - .map(type => `${vipMap[type]}`) - .join(' '); + // 2. 心理学SVIP(只显示一次) + if (hasPsychologySVip) { + tags.push(`心理学SVIP`); + } + + // 3. 普通VIP标签(确保不重复显示SVIP相关的类型) + vipTypes + .filter(type => vipMap[type] && !( + (hasMedicalSVip && [4, 5, 6].includes(type)) || // 医学SVIP已显示,排除 4、5、6 + (hasPsychologySVip && [7, 8].includes(type)) // 心理学SVIP已显示,排除 7、8 + )) + .forEach(type => { + tags.push(`${vipMap[type]}`); + }); + + return tags.join(' '); }, diff --git a/src/views/modules/user/user.vue b/src/views/modules/user/user.vue index 27ee534..61365c6 100644 --- a/src/views/modules/user/user.vue +++ b/src/views/modules/user/user.vue @@ -456,32 +456,47 @@ export default { 8: '心理学VIP' }; - const vipTypes = userVips.map(vip => vip.type); - const isMedicalVip = [4, 5, 6].every(type => vipTypes.includes(type)); - const isPsychologyVip = [7,8].every(type => vipTypes.includes(type)); - - // 特殊情况:医学 + 心理学 - if (isMedicalVip && isPsychologyVip) { - return `医学SVIP
- 国学与心理学SVIP`; - } - - // 只有医学VIP - if (isMedicalVip) { - return `医学超级VIP`; + // 将 userVips 转为数组形式,以便处理(如果是数字则转为数字数组) + let vipTypes = []; + if (typeof userVips === 'number') { + vipTypes = String(userVips).split('').map(Number); // 数字转为数组 + } else { + vipTypes = userVips.map(vip => vip.type); // 如果是对象数组,获取每个对象的 type } - // 只有心理学VIP - if (isPsychologyVip) { - return `国学与心理学超级VIP`; + // 判断是否同时包含 4、5、6(医学SVIP) + const hasMedicalSVip = [4, 5, 6].every(type => vipTypes.includes(type)); + // 判断是否同时包含 7、8(心理学SVIP) + const hasPsychologySVip = [7, 8].every(type => vipTypes.includes(type)); + + const tags = []; + + // 1. 医学SVIP(只显示一次) + if (hasMedicalSVip) { + tags.push(`医学SVIP`); } - // **普通情况**:单独展示所有 `type` 对应的内容 - return vipTypes - .filter(type => vipMap[type]) // 过滤出有对应名称的类型 - .map(type => `${vipMap[type]}`) - .join(' '); -}, + // 2. 心理学SVIP(只显示一次) + if (hasPsychologySVip) { + tags.push(`心理学SVIP`); + } + + // 3. 普通VIP标签(确保不重复显示SVIP相关的类型) + vipTypes + .filter(type => vipMap[type] && !( + (hasMedicalSVip && [4, 5, 6].includes(type)) || // 医学SVIP已显示,排除 4、5、6 + (hasPsychologySVip && [7, 8].includes(type)) // 心理学SVIP已显示,排除 7、8 + )) + .forEach(type => { + tags.push(`${vipMap[type]}`); + }); + + return tags.join(' '); +} + + +, + getVipMoney(data) { console.log("data at line 420:", data.id); diff --git a/src/views/modules/vip/personnel-management.vue b/src/views/modules/vip/personnel-management.vue index 140af4a..4633f1e 100644 --- a/src/views/modules/vip/personnel-management.vue +++ b/src/views/modules/vip/personnel-management.vue @@ -200,31 +200,42 @@ export default { 8: '心理学VIP' }; - const vipTypes = userVips.map(vip => vip.type); - const isMedicalVip = [4, 5, 6].every(type => vipTypes.includes(type)); - const isPsychologyVip = [7,8].every(type => vipTypes.includes(type)); - - // 特殊情况:医学 + 心理学 - if (isMedicalVip && isPsychologyVip) { - return `医学SVIP
- 国学与心理学SVIP`; - } - - // 只有医学VIP - if (isMedicalVip) { - return `医学超级VIP`; + // 将 userVips 转为数组形式,以便处理(如果是数字则转为数字数组) + let vipTypes = []; + if (typeof userVips === 'number') { + vipTypes = String(userVips).split('').map(Number); // 数字转为数组 + } else { + vipTypes = userVips.map(vip => vip.type); // 如果是对象数组,获取每个对象的 type } - // 只有心理学VIP - if (isPsychologyVip) { - return `国学与心理学超级VIP`; + // 判断是否同时包含 4、5、6(医学SVIP) + const hasMedicalSVip = [4, 5, 6].every(type => vipTypes.includes(type)); + // 判断是否同时包含 7、8(心理学SVIP) + const hasPsychologySVip = [7, 8].every(type => vipTypes.includes(type)); + + const tags = []; + + // 1. 医学SVIP(只显示一次) + if (hasMedicalSVip) { + tags.push(`医学SVIP`); } - // **普通情况**:单独展示所有 `type` 对应的内容 - return vipTypes - .filter(type => vipMap[type]) // 过滤出有对应名称的类型 - .map(type => `${vipMap[type]}`) - .join(' '); + // 2. 心理学SVIP(只显示一次) + if (hasPsychologySVip) { + tags.push(`心理学SVIP`); + } + + // 3. 普通VIP标签(确保不重复显示SVIP相关的类型) + vipTypes + .filter(type => vipMap[type] && !( + (hasMedicalSVip && [4, 5, 6].includes(type)) || // 医学SVIP已显示,排除 4、5、6 + (hasPsychologySVip && [7, 8].includes(type)) // 心理学SVIP已显示,排除 7、8 + )) + .forEach(type => { + tags.push(`${vipMap[type]}`); + }); + + return tags.join(' '); }, // 获取列表数据 getDataList () {