uni-app uni-admin 用户禁用后无法改回启用状态 已找到问题 请官方速改

发布于 1周前 作者 itying888 来自 Uni-App

uni-app uni-admin 用户禁用后无法改回启用状态 已找到问题 请官方速改

操作步骤:

uni admin 用户列表中,点击用户,修改用户状态为禁用,然后修改该用户的状态为有效;
bug:只要禁用后,就永远修改不回来了

预期结果:

uni admin 用户列表中,点击用户,修改用户状态为禁用,然后修改该用户的状态为有效;
bug:只要禁用后,就永远修改不回来了

实际结果:

uni admin 用户列表中,点击用户,修改用户状态为禁用,然后修改该用户的状态为有效;
bug:只要禁用后,就永远修改不回来了

bug描述:

uni admin 用户列表中,点击用户,修改用户状态为禁用,然后修改该用户的状态为有效;
bug:只要禁用后,就永远修改不回来了


6 回复

我找到问题了,switch组件设置状态设置有问题…服了,赶紧更新吧
当从禁用状态切换到正常状态的时候,需要切换三次!!!
低级错误!!!

官方赶紧改改吧

已确认bug,已加分,报bug尽量把运行环境也写上,经测试,vue2没有问题,是vue3有问题,问题原因是vue3下 uni-ui组件库的 uni-forms 组件问题,等待uni-forms组件修复后,uni-admin会跟随 uni-forms 升级

uni-admin更新到2.4.18 或 只更新uni-forms插件到最新版可修复此问题

针对您提到的 uni-appuni-admin 中用户禁用后无法改回启用状态的问题,虽然无法直接修改官方代码或发布更新,但我可以提供一个可能的解决方案代码示例,供您参考并根据您的实际环境进行调整。假设问题出在前端或后端对用户状态的更新逻辑上,以下是一个基于Vue.js和Node.js的示例,展示如何允许管理员重新启用被禁用的用户。

前端(uni-app)

在前端,确保有一个表单或按钮允许管理员提交更改用户状态的请求。

<template>
  <view>
    <button @click="enableUser(userId)">启用用户</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      userId: 'USER_ID_HERE' // 替换为实际用户ID
    };
  },
  methods: {
    async enableUser(id) {
      try {
        const response = await uni.request({
          url: 'https://your-backend-api.com/enableUser',
          method: 'POST',
          data: {
            userId: id
          }
        });
        if (response.statusCode === 200 && response.data.success) {
          uni.showToast({
            title: '用户已启用',
            icon: 'success'
          });
        } else {
          uni.showToast({
            title: '启用用户失败',
            icon: 'none'
          });
        }
      } catch (error) {
        console.error('请求失败', error);
        uni.showToast({
          title: '网络错误',
          icon: 'none'
        });
      }
    }
  }
};
</script>

后端(uni-admin,假设使用Node.js和Express)

在后端,确保有一个API端点来处理启用用户的请求。

const express = require('express');
const app = express();
const User = require('./models/User'); // 假设您有一个User模型

app.use(express.json());

app.post('/enableUser', async (req, res) => {
  const { userId } = req.body;
  try {
    const user = await User.findByIdAndUpdate(
      userId,
      { isActive: true },
      { new: true }
    );
    if (user) {
      res.status(200).json({ success: true });
    } else {
      res.status(404).json({ success: false, message: '用户未找到' });
    }
  } catch (error) {
    res.status(500).json({ success: false, message: '服务器错误' });
  }
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

请注意,上述代码示例是基于通用假设编写的,并未考虑具体的安全措施(如身份验证、授权、输入验证等),这些都是在生产环境中必须实现的。此外,您可能需要根据您的数据库模型和业务逻辑调整代码。希望这个示例能帮助您解决问题。如果问题仍然存在,建议详细检查前后端的日志,以便进一步调试。

回到顶部