lex 11 kuukautta sitten
vanhempi
commit
3589c13c4d

+ 220 - 216
src/views/login/components/pwdLogin.tsx

@@ -1,216 +1,220 @@
-import { defineComponent, reactive, ref } from 'vue';
-import styles from '../index.module.less';
-import lockIcon from '../images/lock-icon.png';
-import useIcon from '../images/user-icon.png';
-import openEye from '../images/openEye.png';
-import closeEye from '../images/closeEye.png';
-import {
-  useMessage,
-  NForm,
-  NFormItem,
-  NInput,
-  NButton,
-  NCheckbox
-} from 'naive-ui';
-import { useRoute, useRouter } from 'vue-router';
-import { PageEnum } from '/src/enums/pageEnum';
-import { storage } from '@/utils/storage';
-import { useUserStore } from '/src/store/modules/users';
-
-interface FormState {
-  username: string;
-  password: string;
-  grant_type?: string;
-  loginType?: string;
-  client_id?: string;
-  client_secret?: string;
-  clientId?: string;
-  clientSecret?: string;
-}
-
-export default defineComponent({
-  name: 'codeLogin',
-  props: {
-    phone: {
-      type: String,
-      default: ''
-    }
-  },
-  emits: ['changType', 'update:phone'],
-  setup(props, { emit }) {
-    const router = useRouter();
-    // const route = useRoute();
-    const formRef = ref();
-    const message = useMessage();
-    const loading = ref(false);
-    // const autoLogin = ref(true);
-    // const LOGIN_NAME = PageEnum.BASE_LOGIN_NAME;
-    const showPwd = ref(false);
-
-    const userStore = useUserStore();
-    let formInline = reactive({
-      username: '',
-      password: '',
-      isCaptcha: true
-    });
-    const formInlineHistory = storage.get('userInfo-teacher');
-    if (formInlineHistory) {
-      formInline = reactive({ ...JSON.parse(formInlineHistory) });
-    }
-
-    if (formInline.username) {
-      if (formInline.username !== props.phone && props.phone) {
-        formInline.username = props.phone;
-      } else {
-        emit('update:phone', formInline.username);
-      }
-    } else {
-      if (props.phone) {
-        formInline.username = props.phone;
-      }
-    }
-
-    const handleSubmit = async () => {
-      formRef.value.validate(async (errors: any) => {
-        if (!errors) {
-          const { username, password } = formInline;
-          loading.value = true;
-
-          const params: FormState = {
-            username,
-            password,
-            loginType: 'PASSWORD',
-            grant_type: 'password',
-            client_id: 'cooleshow-teacher',
-            client_secret: 'cooleshow-teacher'
-          };
-
-          try {
-            await userStore.login(params);
-            message.destroyAll();
-            //  判断是否勾选自动登录
-            if (formInline.isCaptcha) {
-              storage.set('userInfo-teacher', JSON.stringify(formInline));
-            } else {
-              storage.set(
-                'userInfo-teacher',
-                JSON.stringify({ ...formInline, password: '', isCaptcha: true })
-              );
-            }
-
-            // route.query?.redirect ||
-            const toPath = decodeURIComponent('/' as string);
-            console.log(toPath, 'toPath');
-            message.success('登录成功,即将进入系统');
-            router.replace(toPath);
-            // if (route.name === LOGIN_NAME) {
-            //   router.replace('/');
-            // } else router.replace(toPath);
-          } catch (e: any) {
-            console.log(e, 'e');
-          } finally {
-            loading.value = false;
-          }
-        }
-      });
-    };
-    return () => (
-      <div class={styles['view-account-form-wrap']}>
-        {/* <div class={styles.formTitle}>
-      <div class={styles.dot}></div>
-      酷乐秀课堂乐器
-    </div> */}
-        <NForm
-          ref={formRef}
-          label-placement="left"
-          size="large"
-          model={formInline}>
-          <NFormItem
-            path="username"
-            rule={[
-              { required: true, message: '请输入用户名', trigger: 'blur' }
-            ]}>
-            <NInput
-              maxlength={11}
-              v-model:value={formInline.username}
-              placeholder="请输入用户名"
-              onInput={(val: any) => {
-                emit('update:phone', val);
-              }}>
-              {{
-                prefix: () => (
-                  <img src={useIcon} class={styles.prefixIcon} alt="" />
-                )
-              }}
-            </NInput>
-          </NFormItem>
-          <NFormItem
-            path="password"
-            rule={[{ required: true, message: '请输入密码', trigger: 'blur' }]}>
-            <NInput
-              v-model:value={formInline.password}
-              type="text"
-              showPasswordOn="click"
-              placeholder="请输入密码"
-              inputProps={{ autocomplete: 'off' }}
-              class={[showPwd.value ? '' : styles['no-pwd']]}
-              onKeydown={(e: KeyboardEvent) => {
-                if (e.code === 'Enter' || e.code === 'NumpadEnter') {
-                  handleSubmit();
-                }
-              }}>
-              {{
-                prefix: () => (
-                  <img src={lockIcon} class={styles.prefixIcon} alt="" />
-                ),
-                suffix: () => (
-                  <img
-                    src={showPwd.value ? openEye : closeEye}
-                    class={styles.pwdIcon}
-                    alt=""
-                    onClick={() => {
-                      showPwd.value = !showPwd.value;
-                    }}
-                  />
-                )
-              }}
-            </NInput>
-          </NFormItem>
-          <NFormItem class={styles['default-color']}>
-            <div class={[styles['flex'], styles['justify-between']]}>
-              <div class={styles['flex-initial']}>
-                <NCheckbox v-model:checked={formInline.isCaptcha}>
-                  记住密码
-                </NCheckbox>
-              </div>
-            </div>
-          </NFormItem>
-          <NFormItem>
-            <NButton
-              class={styles.submitBtm}
-              type="primary"
-              onClick={handleSubmit}
-              size="large"
-              disabled={loading.value}
-              loading={loading.value}
-              block>
-              立即登录
-            </NButton>
-          </NFormItem>
-          <NFormItem>
-            <NButton
-              text
-              class={styles.forgetBtm}
-              onClick={() => {
-                emit('changType');
-              }}
-              size="large"
-              block>
-              忘记密码
-            </NButton>
-          </NFormItem>
-        </NForm>
-      </div>
-    );
-  }
-});
+import { defineComponent, reactive, ref } from 'vue';
+import styles from '../index.module.less';
+import lockIcon from '../images/lock-icon.png';
+import useIcon from '../images/user-icon.png';
+import openEye from '../images/openEye.png';
+import closeEye from '../images/closeEye.png';
+import {
+  useMessage,
+  NForm,
+  NFormItem,
+  NInput,
+  NButton,
+  NCheckbox
+} from 'naive-ui';
+import { useRoute, useRouter } from 'vue-router';
+import { PageEnum } from '/src/enums/pageEnum';
+import { storage } from '@/utils/storage';
+import { useUserStore } from '/src/store/modules/users';
+
+interface FormState {
+  username: string;
+  password: string;
+  grant_type?: string;
+  loginType?: string;
+  client_id?: string;
+  client_secret?: string;
+  clientId?: string;
+  clientSecret?: string;
+}
+
+export default defineComponent({
+  name: 'codeLogin',
+  props: {
+    phone: {
+      type: String,
+      default: ''
+    }
+  },
+  emits: ['changType', 'update:phone'],
+  setup(props, { emit }) {
+    const router = useRouter();
+    // const route = useRoute();
+    const formRef = ref();
+    const message = useMessage();
+    const loading = ref(false);
+    // const autoLogin = ref(true);
+    // const LOGIN_NAME = PageEnum.BASE_LOGIN_NAME;
+    const showPwd = ref(false);
+
+    const userStore = useUserStore();
+    let formInline = reactive({
+      username: '',
+      password: '',
+      isCaptcha: false
+    });
+    const formInlineHistory = storage.get('userInfo-teacher');
+    if (formInlineHistory) {
+      formInline = reactive({ ...JSON.parse(formInlineHistory) });
+    }
+
+    if (formInline.username) {
+      if (formInline.username !== props.phone && props.phone) {
+        formInline.username = props.phone;
+      } else {
+        emit('update:phone', formInline.username);
+      }
+    } else {
+      if (props.phone) {
+        formInline.username = props.phone;
+      }
+    }
+
+    const handleSubmit = async () => {
+      formRef.value.validate(async (errors: any) => {
+        if (!errors) {
+          const { username, password } = formInline;
+          loading.value = true;
+
+          const params: FormState = {
+            username,
+            password,
+            loginType: 'PASSWORD',
+            grant_type: 'password',
+            client_id: 'cooleshow-teacher',
+            client_secret: 'cooleshow-teacher'
+          };
+
+          try {
+            await userStore.login(params);
+            message.destroyAll();
+            //  判断是否勾选自动登录
+            if (formInline.isCaptcha) {
+              storage.set('userInfo-teacher', JSON.stringify(formInline));
+            } else {
+              storage.set(
+                'userInfo-teacher',
+                JSON.stringify({
+                  ...formInline,
+                  password: '',
+                  isCaptcha: false
+                })
+              );
+            }
+
+            // route.query?.redirect ||
+            const toPath = decodeURIComponent('/' as string);
+            console.log(toPath, 'toPath');
+            message.success('登录成功,即将进入系统');
+            router.replace(toPath);
+            // if (route.name === LOGIN_NAME) {
+            //   router.replace('/');
+            // } else router.replace(toPath);
+          } catch (e: any) {
+            console.log(e, 'e');
+          } finally {
+            loading.value = false;
+          }
+        }
+      });
+    };
+    return () => (
+      <div class={styles['view-account-form-wrap']}>
+        {/* <div class={styles.formTitle}>
+      <div class={styles.dot}></div>
+      酷乐秀课堂乐器
+    </div> */}
+        <NForm
+          ref={formRef}
+          label-placement="left"
+          size="large"
+          model={formInline}>
+          <NFormItem
+            path="username"
+            rule={[
+              { required: true, message: '请输入用户名', trigger: 'blur' }
+            ]}>
+            <NInput
+              maxlength={11}
+              v-model:value={formInline.username}
+              placeholder="请输入用户名"
+              onInput={(val: any) => {
+                emit('update:phone', val);
+              }}>
+              {{
+                prefix: () => (
+                  <img src={useIcon} class={styles.prefixIcon} alt="" />
+                )
+              }}
+            </NInput>
+          </NFormItem>
+          <NFormItem
+            path="password"
+            rule={[{ required: true, message: '请输入密码', trigger: 'blur' }]}>
+            <NInput
+              v-model:value={formInline.password}
+              type="text"
+              showPasswordOn="click"
+              placeholder="请输入密码"
+              inputProps={{ autocomplete: 'off' }}
+              class={[showPwd.value ? '' : styles['no-pwd']]}
+              onKeydown={(e: KeyboardEvent) => {
+                if (e.code === 'Enter' || e.code === 'NumpadEnter') {
+                  handleSubmit();
+                }
+              }}>
+              {{
+                prefix: () => (
+                  <img src={lockIcon} class={styles.prefixIcon} alt="" />
+                ),
+                suffix: () => (
+                  <img
+                    src={showPwd.value ? openEye : closeEye}
+                    class={styles.pwdIcon}
+                    alt=""
+                    onClick={() => {
+                      showPwd.value = !showPwd.value;
+                    }}
+                  />
+                )
+              }}
+            </NInput>
+          </NFormItem>
+          <NFormItem class={styles['default-color']}>
+            <div class={[styles['flex'], styles['justify-between']]}>
+              <div class={styles['flex-initial']}>
+                <NCheckbox v-model:checked={formInline.isCaptcha}>
+                  记住密码
+                </NCheckbox>
+              </div>
+            </div>
+          </NFormItem>
+          <NFormItem>
+            <NButton
+              class={styles.submitBtm}
+              type="primary"
+              onClick={handleSubmit}
+              size="large"
+              disabled={loading.value}
+              loading={loading.value}
+              block>
+              立即登录
+            </NButton>
+          </NFormItem>
+          <NFormItem>
+            <NButton
+              text
+              class={styles.forgetBtm}
+              onClick={() => {
+                emit('changType');
+              }}
+              size="large"
+              block>
+              忘记密码
+            </NButton>
+          </NFormItem>
+        </NForm>
+      </div>
+    );
+  }
+});

+ 1 - 1
src/views/prepare-lessons/components/lesson-main/courseware/addCourseware.tsx

@@ -799,7 +799,7 @@ export default defineComponent({
                     // @ts-ignore
                     group="description"
                     scroll={true}
-                    scrollSensitivity={100}
+                    scrollSensitivity={120}
                     animation={200}
                     forceAutoScrollFallback={true}
                     componentData={{