From 3e8d83a41e70f6ef4d9e1a432d8578278bd2cbf9 Mon Sep 17 00:00:00 2001
From: xingyu <xingyu4j@vip.qq.com>
Date: Tue, 19 Jul 2022 18:31:41 +0800
Subject: [PATCH] =?UTF-8?q?refactor=EF=BC=9Alogin?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 yudao-ui-admin-vue3/src/config/axios/index.ts |   5 -
 yudao-ui-admin-vue3/src/store/modules/user.ts |   1 -
 .../views/Login/components/LoginFormOld.vue   | 279 ------------------
 .../src/views/Login/components/MobileForm.vue |  18 +-
 .../src/views/Login/components/index.ts       |   9 +-
 .../src/views/Login/components/useLogin.ts    |  25 --
 .../src/views/infra/codegen/EditTable.vue     |   1 -
 7 files changed, 12 insertions(+), 326 deletions(-)
 delete mode 100644 yudao-ui-admin-vue3/src/views/Login/components/LoginFormOld.vue

diff --git a/yudao-ui-admin-vue3/src/config/axios/index.ts b/yudao-ui-admin-vue3/src/config/axios/index.ts
index a8e710b38..c2496d437 100644
--- a/yudao-ui-admin-vue3/src/config/axios/index.ts
+++ b/yudao-ui-admin-vue3/src/config/axios/index.ts
@@ -56,11 +56,6 @@ const transform: AxiosTransform = {
     //  这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
     const { code, msg } = data
     const result = data.data
-    // TODO 输出res 方便调试,完成后删除
-    // console.info('data')
-    // console.info(data)
-    // console.info('result')
-    // console.info(result)
     // TODO 芋艿:文件下载,需要特殊处理
     if (code === undefined) {
       console.log(res)
diff --git a/yudao-ui-admin-vue3/src/store/modules/user.ts b/yudao-ui-admin-vue3/src/store/modules/user.ts
index aaa3a2017..9d5c0764e 100644
--- a/yudao-ui-admin-vue3/src/store/modules/user.ts
+++ b/yudao-ui-admin-vue3/src/store/modules/user.ts
@@ -27,7 +27,6 @@ export const useUserStore = defineStore({
     }
   }),
   actions: {
-    // TODO 设置store刷新页面就消失
     async getUserInfoAction() {
       if (!getAccessToken()) {
         this.resetState()
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/LoginFormOld.vue b/yudao-ui-admin-vue3/src/views/Login/components/LoginFormOld.vue
deleted file mode 100644
index 6bc1ab7cf..000000000
--- a/yudao-ui-admin-vue3/src/views/Login/components/LoginFormOld.vue
+++ /dev/null
@@ -1,279 +0,0 @@
-<script setup lang="ts">
-import { reactive, ref, unref, watch, onMounted } from 'vue'
-import { Form } from '@/components/Form'
-import { useI18n } from '@/hooks/web/useI18n'
-import { ElCheckbox, ElLink } from 'element-plus'
-import { required } from '@/utils/formRules'
-import { useForm } from '@/hooks/web/useForm'
-import { getTenantIdByNameApi, getCodeImgApi, loginApi, getAsyncRoutesApi } from '@/api/login'
-import { useCache } from '@/hooks/web/useCache'
-import { usePermissionStore } from '@/store/modules/permission'
-import { useRouter } from 'vue-router'
-import { setToken } from '@/utils/auth'
-import { useUserStoreWithOut } from '@/store/modules/user'
-import type { RouteLocationNormalizedLoaded, RouteRecordRaw } from 'vue-router'
-import { UserLoginVO } from '@/api/login/types'
-
-const { wsCache } = useCache()
-
-const userStore = useUserStoreWithOut()
-
-const permissionStore = usePermissionStore()
-
-const { currentRoute, addRoute, push } = useRouter()
-
-const { t } = useI18n()
-
-const rules = {
-  tenantName: [required],
-  username: [required],
-  password: [required],
-  code: [required]
-}
-const loginData = reactive({
-  codeImg: '',
-  isShowPassword: false,
-  captchaEnable: true,
-  tenantEnable: true,
-  token: '',
-  loading: {
-    signIn: false
-  },
-  loginForm: {
-    tenantName: '芋道源码',
-    username: 'admin',
-    password: 'admin123',
-    code: '',
-    uuid: ''
-  }
-})
-const schema = reactive<FormSchema[]>([
-  {
-    field: 'title',
-    colProps: {
-      span: 24
-    }
-  },
-  {
-    field: 'tenantName',
-    label: t('login.tenantname'),
-    value: loginData.loginForm.tenantName,
-    component: 'Input',
-    colProps: {
-      span: 24
-    },
-    componentProps: {
-      placeholder: t('login.tenantNamePlaceholder')
-    }
-  },
-  {
-    field: 'username',
-    label: t('login.username'),
-    value: loginData.loginForm.username,
-    component: 'Input',
-    colProps: {
-      span: 24
-    },
-    componentProps: {
-      placeholder: t('login.usernamePlaceholder')
-    }
-  },
-  {
-    field: 'password',
-    label: t('login.password'),
-    value: loginData.loginForm.password,
-    component: 'InputPassword',
-    colProps: {
-      span: 24
-    },
-    componentProps: {
-      style: {
-        width: '100%'
-      },
-      placeholder: t('login.passwordPlaceholder')
-    }
-  },
-  {
-    field: 'code',
-    label: t('login.code'),
-    value: loginData.loginForm.code,
-    component: 'Input',
-    colProps: {
-      span: 12
-    },
-    componentProps: {
-      style: {
-        width: '100%'
-      },
-      placeholder: t('login.codePlaceholder')
-    }
-  },
-  {
-    field: 'codeImg',
-    colProps: {
-      span: 12
-    }
-  },
-  {
-    field: 'tool',
-    colProps: {
-      span: 24
-    }
-  },
-  {
-    field: 'login',
-    colProps: {
-      span: 24
-    }
-  },
-  {
-    field: 'other',
-    component: 'Divider',
-    label: t('login.otherLogin'),
-    componentProps: {
-      contentPosition: 'center'
-    }
-  },
-  {
-    field: 'otherIcon',
-    colProps: {
-      span: 24
-    }
-  }
-])
-
-const iconSize = 30
-const remember = ref(false)
-const { register, elFormRef, methods } = useForm()
-const loading = ref(false)
-const iconColor = '#999'
-const redirect = ref<string>('')
-
-watch(
-  () => currentRoute.value,
-  (route: RouteLocationNormalizedLoaded) => {
-    redirect.value = route?.query?.redirect as string
-  },
-  {
-    immediate: true
-  }
-)
-// 获取验证码
-const getCode = async () => {
-  const res = await getCodeImgApi()
-  loginData.codeImg = 'data:image/gif;base64,' + res.img
-  loginData.loginForm.uuid = res.uuid
-}
-//获取租户ID
-const getTenantId = async () => {
-  const res = await getTenantIdByNameApi(loginData.loginForm.tenantName)
-  wsCache.set('tenantId', res)
-}
-// 登录
-const signIn = async () => {
-  await getTenantId()
-  const formRef = unref(elFormRef)
-  await formRef?.validate(async (isValid) => {
-    if (isValid) {
-      loading.value = true
-      const { getFormData } = methods
-      const formData = await getFormData<UserLoginVO>()
-      formData.uuid = loginData.loginForm.uuid
-      await loginApi(formData)
-        .then(async (res) => {
-          setToken(res)
-          getRoutes()
-          await userStore.getUserInfoAction()
-        })
-        .catch(() => {
-          getCode()
-        })
-        .finally(() => (loading.value = false))
-    }
-  })
-}
-// 获取路由
-const getRoutes = async () => {
-  // 后端过滤菜单
-  const routers = await getAsyncRoutesApi()
-  wsCache.set('roleRouters', routers)
-  await permissionStore.generateRoutes(routers).catch(() => {})
-  permissionStore.getAddRouters.forEach((route) => {
-    addRoute(route as RouteRecordRaw) // 动态添加可访问路由表
-  })
-  permissionStore.setIsAddRouters(true)
-  push({ path: redirect.value || permissionStore.addRouters[0].path })
-}
-onMounted(() => {
-  getCode()
-})
-</script>
-
-<template>
-  <Form
-    :schema="schema"
-    :rules="rules"
-    label-position="top"
-    hide-required-asterisk
-    size="large"
-    @register="register"
-    v-show="false"
-  >
-    <template #header>
-      <h2 class="text-2xl font-bold text-center w-[100%]">{{ t('login.login') }}</h2>
-    </template>
-    <template #codeImg>
-      <img :src="loginData.codeImg" @click="getCode" alt="" />
-    </template>
-
-    <template #tool>
-      <div class="flex justify-between items-center w-[100%]">
-        <ElCheckbox v-model="remember" :label="t('login.remember')" size="small" />
-        <ElLink type="primary" :underline="false">{{ t('login.forgetPassword') }}</ElLink>
-      </div>
-    </template>
-
-    <template #login>
-      <ElButton :loading="loading" type="primary" class="w-[100%]" @click="signIn">
-        {{ t('login.login') }}
-      </ElButton>
-    </template>
-
-    <template #otherIcon>
-      <div class="flex justify-between w-[100%]">
-        <Icon
-          icon="ant-design:github-filled"
-          :size="iconSize"
-          class="cursor-pointer anticon"
-          :color="iconColor"
-        />
-        <Icon
-          icon="ant-design:wechat-filled"
-          :size="iconSize"
-          class="cursor-pointer anticon"
-          :color="iconColor"
-        />
-        <Icon
-          icon="ant-design:alipay-circle-filled"
-          :size="iconSize"
-          :color="iconColor"
-          class="cursor-pointer anticon"
-        />
-        <Icon
-          icon="ant-design:weibo-circle-filled"
-          :size="iconSize"
-          :color="iconColor"
-          class="cursor-pointer anticon"
-        />
-      </div>
-    </template>
-  </Form>
-</template>
-
-<style lang="less" scoped>
-:deep(.anticon) {
-  &:hover {
-    color: var(--el-color-primary) !important;
-  }
-}
-</style>
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue b/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
index 7d29387ff..09ede7748 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
+++ b/yudao-ui-admin-vue3/src/views/Login/components/MobileForm.vue
@@ -40,9 +40,6 @@ const rules = {
 }
 const loginData = reactive({
   codeImg: '',
-  // TODO @jinz:多余的变量 isShowPassword、captchaEnable
-  isShowPassword: false,
-  captchaEnable: true,
   tenantEnable: true,
   token: '',
   loading: {
@@ -55,8 +52,7 @@ const loginData = reactive({
     code: ''
   }
 })
-// TODO @jinz:smsVO 小写哈
-const SmsVO = reactive({
+const smsVO = reactive({
   smsCode: {
     mobile: '',
     scene: 21
@@ -70,9 +66,9 @@ const mobileCodeTimer = ref(0)
 const redirect = ref<string>('')
 const getSmsCode = async () => {
   await getTenantId()
-  SmsVO.smsCode.mobile = loginData.loginForm.mobileNumber
-  console.log('getSmsCode begin:', SmsVO.smsCode)
-  await sendSmsCodeApi(SmsVO.smsCode)
+  smsVO.smsCode.mobile = loginData.loginForm.mobileNumber
+  console.log('getSmsCode begin:', smsVO.smsCode)
+  await sendSmsCodeApi(smsVO.smsCode)
     .then(async (res) => {
       // 提示验证码发送成功
       ElMessage({
@@ -119,9 +115,9 @@ const signIn = async () => {
   const data = await validForm()
   if (!data) return
   loginLoading.value = true
-  SmsVO.loginSms.mobile = loginData.loginForm.mobileNumber
-  SmsVO.loginSms.code = loginData.loginForm.code
-  await smsLoginApi(SmsVO.loginSms)
+  smsVO.loginSms.mobile = loginData.loginForm.mobileNumber
+  smsVO.loginSms.code = loginData.loginForm.code
+  await smsLoginApi(smsVO.loginSms)
     .then(async (res) => {
       setToken(res?.token)
       await userStore.getUserInfoAction()
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/index.ts b/yudao-ui-admin-vue3/src/views/Login/components/index.ts
index d97896dd8..cec812e11 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/index.ts
+++ b/yudao-ui-admin-vue3/src/views/Login/components/index.ts
@@ -1,4 +1,5 @@
-export { default as LoginForm } from './LoginForm.vue'
-export { default as MobileForm } from './MobileForm.vue'
-export { default as LoginFormOld } from './LoginFormOld.vue' // TODO jinz:old 是不是可以删除哈,git 可以管理的
-export { default as LoginFormTitle } from './LoginFormTitle.vue'
+import LoginForm from './LoginForm.vue'
+import MobileForm from './MobileForm.vue'
+import LoginFormTitle from './LoginFormTitle.vue'
+
+export {LoginForm, MobileForm, LoginFormTitle}
diff --git a/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts b/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
index d3c610db6..b57b6470a 100644
--- a/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
+++ b/yudao-ui-admin-vue3/src/views/Login/components/useLogin.ts
@@ -41,31 +41,6 @@ export function useFormValid<T extends Object = any>(formRef: Ref<any>) {
   }
 }
 
-// TODO @jinz:多余的,是不是可以删除哈
-export function useFormRules(formData?: Recordable) {
-  const { t } = useI18n()
-
-  const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder')))
-  const getPasswordFormRule = computed(() => createRule(t('sys.login.passwordPlaceholder')))
-  const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')))
-  const getMobileFormRule = computed(() => createRule(t('sys.login.mobilePlaceholder')))
-
-  const validatePolicy = async (_: RuleObject, value: boolean) => {
-    return !value ? Promise.reject(t('sys.login.policyPlaceholder')) : Promise.resolve()
-  }
-
-  const validateConfirmPassword = (password: string) => {
-    return async (_: RuleObject, value: string) => {
-      if (!value) {
-        return Promise.reject(t('sys.login.passwordPlaceholder'))
-      }
-      if (value !== password) {
-        return Promise.reject(t('sys.login.diffPwd'))
-      }
-      return Promise.resolve()
-    }
-  }
-
   const getFormRules = computed(
     (): {
       [k: string]: ValidationRule | ValidationRule[]
diff --git a/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue b/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
index 5fe852562..07dfa5221 100644
--- a/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
+++ b/yudao-ui-admin-vue3/src/views/infra/codegen/EditTable.vue
@@ -27,7 +27,6 @@ const loading = ref(false)
 const activeName = ref('cloum')
 const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>()
 const genInfoRef = ref<ComponentRef<typeof GenInfoFormVue>>()
-// TODO: 提交
 const submitForm = async () => {
   const basicInfo = unref(basicInfoRef)
   const genInfo = unref(genInfoRef)