From ebbd788fbb2c0b45d4473798efc57eec8ba74a25 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 18 六月 2024 14:51:16 +0800
Subject: [PATCH] 版本更新至2.11.5

---
 src/views/sys/login/LoginForm.vue |  137 +++++++++++++++++++++------------------------
 1 files changed, 65 insertions(+), 72 deletions(-)

diff --git a/src/views/sys/login/LoginForm.vue b/src/views/sys/login/LoginForm.vue
index 698843f..854335b 100644
--- a/src/views/sys/login/LoginForm.vue
+++ b/src/views/sys/login/LoginForm.vue
@@ -24,14 +24,20 @@
         :placeholder="t('sys.login.password')"
       />
     </FormItem>
-    <FormItem name="dept" class="enter-x dept">
+    <FormItem name="factory" class="enter-x dept">
       <ARow class="enter-x">
         <ACol :md="24" :xs="24" :span="24">
-          <BasicForm @register="registerForm" />
+          <ApiTreeSelect
+            :api="getProdTreeList"
+            showSearch
+            v-model:value="formData.factory"
+            optionFilterProp="label"
+            labelField="deptName"
+            valueField="deptCode"
+          />
         </ACol>
       </ARow>
     </FormItem>
-
     <ARow class="enter-x">
       <ACol :span="12">
         <FormItem>
@@ -53,31 +59,64 @@
 
     <FormItem class="enter-x">
       <Button type="primary" size="large" block @click="handleLogin" :loading="loading">
-        {{ t({ Key: 'sys.login.welcomeLoginButton', Args: ['test'] }) }}
+        {{ t('sys.login.loginButton') }}
       </Button>
+      <!-- <Button size="large" class="mt-4 enter-x" block @click="handleRegister">
+        {{ t('sys.login.registerButton') }}
+      </Button> -->
     </FormItem>
+    <!-- <ARow class="enter-x" :gutter="[16, 16]">
+      <ACol :md="8" :xs="24">
+        <Button block @click="setLoginState(LoginStateEnum.MOBILE)">
+          {{ t('sys.login.mobileSignInFormTitle') }}
+        </Button>
+      </ACol>
+      <ACol :md="8" :xs="24">
+        <Button block @click="setLoginState(LoginStateEnum.QR_CODE)">
+          {{ t('sys.login.qrSignInFormTitle') }}
+        </Button>
+      </ACol>
+      <ACol :md="8" :xs="24">
+        <Button block @click="setLoginState(LoginStateEnum.REGISTER)">
+          {{ t('sys.login.registerButton') }}
+        </Button>
+      </ACol>
+    </ARow>
+
+    <Divider class="enter-x">{{ t('sys.login.otherSignIn') }}</Divider>
+
+    <div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`">
+      <GithubFilled />
+      <WechatFilled />
+      <AlipayCircleFilled />
+      <GoogleCircleFilled />
+      <TwitterCircleFilled />
+    </div> -->
   </Form>
 </template>
 <script lang="ts" setup>
-  import { reactive, ref, unref, computed, onMounted, h } from 'vue';
-  import { BasicForm, useForm } from '/@/components/Form/index';
-  import { Checkbox, Form, Input, Row, Col, Button, Select, Divider } from 'ant-design-vue';
+  import { reactive, ref, unref, computed } from 'vue';
+
+  import { Checkbox, Form, Input, Row, Col, Button, Divider,  } from 'ant-design-vue';
+  // import {
+  //   GithubFilled,
+  //   WechatFilled,
+  //   AlipayCircleFilled,
+  //   GoogleCircleFilled,
+  //   TwitterCircleFilled,
+  // } from '@ant-design/icons-vue';
   import LoginFormTitle from './LoginFormTitle.vue';
 
-  import { useI18n } from '/@/hooks/web/useI18n';
-  import { useMessage } from '/@/hooks/web/useMessage';
-
-  import { useUserStore } from '/@/store/modules/user';
+  import { useI18n } from '@/hooks/web/useI18n';
+  import { useMessage } from '@/hooks/web/useMessage';
+  import { ApiTreeSelect } from '@/components/Form';
+  import { getProdTreeList } from '/@/api/tigerapi/dept';
+  import { useUserStore } from '@/store/modules/user';
   import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin';
-  import { useDesign } from '/@/hooks/web/useDesign';
-  import { getUserIpConfig } from '/@/utils/http/jsonp';
-  import { AccountInfo } from '/@/api/tigerapi/model/systemModel';
-  import { accountFormSchema } from './loginDept.data';
-  import { getProdTreeList, getTreeList, optionsListApi } from '/@/api/tigerapi/dept';
-  import { useGlobSetting } from '/@/hooks/setting';
-
+  import { useDesign } from '@/hooks/web/useDesign';
+import { AccountInfo } from '/@/api/tigerapi/model/systemModel';
   //import { onKeyStroke } from '@vueuse/core';
-  const globSetting = useGlobSetting();
+
   const ACol = Col;
   const ARow = Row;
   const FormItem = Form.Item;
@@ -97,79 +136,44 @@
   const formData = reactive({
     account: '',
     password: '',
-  });
-  onMounted(async () => {
-    // getOption();
-
-    const treeData = await getProdTreeList(); //globSetting.useOrg == 'Y' ? await getTreeList() : await getProdTreeList();
-    updateSchema([
-      {
-        field: 'dept',
-        componentProps: { treeData },
-      },
-    ]);
-
-    // setFieldsValue({
-    //   dept: useUserStore().getUserInfo.orgCode,
-    // });
+    factory: '',
   });
 
   const { validForm } = useFormValid(formRef);
-  const getShow = computed(() => unref(getLoginState) === LoginStateEnum.LOGIN);
 
-  const [registerForm, { updateSchema, validate }] = useForm({
-    // labelWidth: 200,
-    baseColProps: { span: 24 },
-    schemas: accountFormSchema,
-    showActionButtonGroup: false,
-    actionColOptions: {
-      span: 23,
-    },
-  });
+  //onKeyStroke('Enter', handleLogin);
+
+  const getShow = computed(() => unref(getLoginState) === LoginStateEnum.LOGIN);
 
   async function handleLogin() {
     const data = await validForm();
-    const orgData = await validate();
-    console.log('data', data);
     if (!data) return;
     try {
       loading.value = true;
-      //const positionInfo = await getUserIpConfig();
-      const Info = { ad_info: {}, ip: '' }; //positionInfo.status === 110 ? { ad_info: {}, ip: '' } : positionInfo.result;
+      const Info = { ad_info: {}, ip: '' };
       const accountInfo: AccountInfo = {
         useR_CODE: data.account,
         password: data.password,
         ORG_CODE: '', //globSetting.useOrg == 'Y' ? orgData.dept : '',
         ad_info: Info.ad_info,
         ip: Info.ip,
-        PROD_CODE: orgData.dept, //globSetting.useOrg == 'N' ? orgData.dept : '',
+        PROD_CODE: data.factory, //globSetting.useOrg == 'N' ? orgData.dept : '',
       };
-
       const userInfo = await userStore.login({
-        id: 'string',
-        dataType: 'string',
         data: accountInfo,
         mode: 'none', //涓嶈榛樿鐨勯敊璇彁绀�
       });
-
       if (userInfo) {
         notification.success({
           message: t('sys.login.loginSuccessTitle'),
           description: `${t('sys.login.loginSuccessDesc')}: ${userInfo.realName}`,
           duration: 3,
         });
-      } else {
-        createErrorModal({
-          title: t('sys.api.errorTip'),
-          content: t('sys.api.errMsg401'),
-          getContainer: () => document.body.querySelector(`.${prefixCls}`) || document.body,
-        });
       }
     } catch (error) {
       createErrorModal({
         title: t('sys.api.errorTip'),
-        content: (error as unknown as Error).message || t(error.Key),
-        // content: (error as unknown as Error).message || t('sys.api.networkExceptionMsg'),
+        content: (error as unknown as Error).message || t('sys.api.networkExceptionMsg'),
         getContainer: () => document.body.querySelector(`.${prefixCls}`) || document.body,
       });
     } finally {
@@ -177,14 +181,3 @@
     }
   }
 </script>
-<style lang="less" scoped>
-  .dept {
-    /deep/.ant-select-selector {
-      height: 37px !important;
-    }
-    /deep/.ant-select-single .ant-select-selector {
-      display: flex;
-      align-items: center;
-    }
-  }
-</style>

--
Gitblit v1.9.3