/** * 员工激活状态快速修复脚本 * * 使用方法: * 1. 打开浏览器控制台(F12) * 2. 复制整个脚本并粘贴到控制台 * 3. 按回车执行 * 4. 等待修复完成 * 5. 让员工重新登录 */ (async function fixEmployeeActivation() { console.log('🔧 开始修复员工激活状态...'); // 目标员工ID const targetUserid = 'woAs2qCQAAGQckyg7AQBxhMEoSwnlTvg'; try { // 获取Parse实例 const Parse = window.Parse || (await import('https://unpkg.com/parse@latest/dist/parse.min.js')).default; // 检查Parse是否已初始化 if (!Parse.applicationId) { console.error('❌ Parse未初始化,请在应用页面中运行此脚本'); return; } console.log('✅ Parse已初始化'); console.log('🔍 查询员工:', targetUserid); // 查询Profile const query = new Parse.Query('Profile'); query.equalTo('userid', targetUserid); const profile = await query.first(); if (!profile) { console.error('❌ 未找到员工记录'); console.log('💡 提示:请确认userid是否正确'); return; } console.log('✅ 找到员工记录:', { objectId: profile.id, name: profile.get('name'), realname: profile.get('realname'), userid: profile.get('userid'), isActivated: profile.get('isActivated'), activatedAt: profile.get('activatedAt'), isDeleted: profile.get('isDeleted'), isDisabled: profile.get('isDisabled') }); // 检查当前状态 const currentActivated = profile.get('isActivated'); console.log('📊 当前激活状态:', currentActivated); console.log('📊 激活状态类型:', typeof currentActivated); if (currentActivated === true) { console.log('✅ 员工已激活,无需修复'); console.log('💡 如果仍然无法访问,请检查:'); console.log(' 1. 清除浏览器缓存'); console.log(' 2. 退出并重新进入企业微信应用'); console.log(' 3. 检查isDeleted和isDisabled字段'); return; } // 修复激活状态 console.log('🔧 开始修复...'); profile.set('isActivated', true); if (!profile.get('activatedAt')) { profile.set('activatedAt', new Date()); } // 清除可能的禁用标记 if (profile.get('isDeleted')) { profile.unset('isDeleted'); console.log('✅ 已清除isDeleted标记'); } if (profile.get('isDisabled')) { profile.unset('isDisabled'); console.log('✅ 已清除isDisabled标记'); } // 保存 await profile.save(); console.log('✅ 修复完成!'); // 验证修复结果 await profile.fetch(); console.log('✅ 验证修复结果:', { objectId: profile.id, name: profile.get('name'), isActivated: profile.get('isActivated'), activatedAt: profile.get('activatedAt'), isDeleted: profile.get('isDeleted'), isDisabled: profile.get('isDisabled') }); if (profile.get('isActivated') === true) { console.log('🎉 修复成功!'); console.log('📝 下一步操作:'); console.log(' 1. 让员工清除浏览器缓存'); console.log(' 2. 退出企业微信应用'); console.log(' 3. 重新进入应用'); console.log(' 4. 尝试访问项目管理页面'); } else { console.error('❌ 修复失败,请联系技术支持'); } } catch (error) { console.error('❌ 修复过程出错:', error); console.log('💡 可能的原因:'); console.log(' 1. 没有足够的权限修改Profile'); console.log(' 2. 网络连接问题'); console.log(' 3. Parse服务异常'); console.log('📝 请尝试以下方法:'); console.log(' 1. 使用管理员账号登录'); console.log(' 2. 在Parse Dashboard中手动修改'); console.log(' 3. 联系技术支持'); } })(); // 批量修复所有未激活员工的脚本 async function batchFixAllEmployees() { console.log('🔧 开始批量修复所有未激活员工...'); try { const Parse = window.Parse; if (!Parse || !Parse.applicationId) { console.error('❌ Parse未初始化'); return; } // 查询所有未激活的员工 const query = new Parse.Query('Profile'); // 条件1: isActivated不为true query.notEqualTo('isActivated', true); // 条件2: 未删除 query.notEqualTo('isDeleted', true); // 条件3: 未禁用 query.notEqualTo('isDisabled', true); query.limit(1000); const profiles = await query.find(); console.log(`📊 找到 ${profiles.length} 个未激活的员工`); if (profiles.length === 0) { console.log('✅ 所有员工都已激活'); return; } let successCount = 0; let failCount = 0; for (const profile of profiles) { try { const userid = profile.get('userid'); const name = profile.get('name') || profile.get('realname'); console.log(`🔧 修复员工: ${name} (${userid})`); profile.set('isActivated', true); if (!profile.get('activatedAt')) { profile.set('activatedAt', new Date()); } await profile.save(); successCount++; console.log(`✅ 修复成功: ${name}`); } catch (error) { failCount++; console.error(`❌ 修复失败: ${profile.get('name')}`, error); } } console.log('📊 批量修复完成:'); console.log(` ✅ 成功: ${successCount}`); console.log(` ❌ 失败: ${failCount}`); console.log(` 📊 总计: ${profiles.length}`); } catch (error) { console.error('❌ 批量修复出错:', error); } } // 导出批量修复函数(可选) console.log('💡 提示:如需批量修复所有员工,请运行: batchFixAllEmployees()');