吉安感知网项目-前端
张含笑
2026-02-27 b41d6ab12f9b4c169f269832dd6149d1db7fb30d
feat:添加loading
1 files modified
38 ■■■■■ changed files
uniapps/work-app/src/pages/login/index.vue 38 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/pages/login/index.vue
@@ -30,7 +30,13 @@
      <div class="forgotPassword" @click="goToForgotPassword">忘记密码?</div>
    </div>
    <button class="login-btn" :style="[inputStyle]" @tap="submit">登录</button>
    <button class="login-btn" :style="[inputStyle]" @tap="submit" :disabled="loading">
      <view v-if="loading" class="loading-container">
        <view class="loading-spinner"></view>
        <text>登录中...</text>
      </view>
      <view v-else>登录</view>
    </button>
  </view>
</template>
@@ -59,6 +65,7 @@
});
const rememberPassword = ref(false);
const showPassword = ref(false);
const loading = ref(false);
const inputStyle = computed(() => {
  const style = {};
  if (loginForm.value.username && loginForm.value.password) {
@@ -134,6 +141,8 @@
  }
  try {
    // 开始加载
    loading.value = true;
    const res = await loginByUsername(
      userInfo.tenantId,
      userInfo.deptId,
@@ -181,6 +190,9 @@
    });
    // 即使原始登录失败,也尝试调用工单登录接口
    await gdLogin();
  } finally {
    // 结束加载
    loading.value = false;
  }
}
// 工单登录
@@ -377,6 +389,30 @@
    &::after {
      @apply border-none;
    }
    &:disabled {
      opacity: 0.7;
    }
  }
  .loading-container {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .loading-spinner {
    width: 24rpx;
    height: 24rpx;
    border: 2rpx solid rgba(255, 255, 255, 0.3);
    border-top: 2rpx solid #ffffff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-right: 12rpx;
  }
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
  .wechat-login-btn {