| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- /**
- * 员工激活状态快速修复脚本
- *
- * 使用方法:
- * 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()');
|