Parcourir la source

```
feat: 添加登录检查和复制链接成功提示

- 在LearnNote页面添加登录验证功能,未登录时弹出提示并跳转登录
- 添加复制链接成功提示语,在复制当前页面地址时显示成功消息
- 增加签到分享功能,复制链接时自动执行签到操作
- 更新中英文国际化配置,添加复制链接成功和未登录提示文案
- 修改.env.development环境配置文件注释
```

zhangningning il y a 1 mois
Parent
commit
6166d7d0da

+ 1 - 1
.env.development

@@ -1,6 +1,6 @@
 # 乔功
 VITE_API_BASE_URL=http://192.168.100.134:8080/api
 # 高运甲
-VITE_API_BASE_URL=http://192.168.100.89:8080/api
+# VITE_API_BASE_URL=http://192.168.100.89:8080/api
 
 

+ 2 - 0
src/locales/en.js

@@ -52,6 +52,7 @@ export default {
     notes: ' Notes',
     copyError: 'Copy Failed',
     copySuccess: 'Copy Success',
+    copyLineSuccess: 'Copy Link Success',
     signUpDeadline: 'Sign Up Deadline',
     publish: 'Publish',
     actualAmount: 'Actual Amount',
@@ -99,6 +100,7 @@ export default {
     coverImage:"Cover Image",
     pleaseInputRightPhoneNumber:"Please input right phone number",
     pleaseInputRightEmail:"Please input right email",
+    notLoginTip:"You are not logged in, whether to go to login?",
   },
   login: {
     smsLogin: 'SMS Login',

+ 2 - 0
src/locales/zh-CN.js

@@ -56,6 +56,7 @@ export default {
     notes: '篇笔记',
     copyError: '复制失败',
     copySuccess: '复制成功',
+    copyLineSuccess: '复制链接成功',
     signUpDeadline: '报名截止时间',
     publish: '发布',
     actualAmount: '实际金额',
@@ -103,6 +104,7 @@ export default {
     coverImage:"封面图",
     pleaseInputRightPhoneNumber:"请输入正确的手机号",
     pleaseInputRightEmail:"请输入正确的邮箱",
+    notLoginTip:"您未登录,是否前往登录?",
   },
   login: {
     smsLogin: '短信登录',

+ 10 - 1
src/pages/LearnNote/LearnNote.vue

@@ -32,17 +32,26 @@
 <script setup>
 import Xuxibiji from '@/pages/LearningSystem/components/xuxibiji.vue'
 import { getCourseWithNotesList } from '@/api/course.js'
+import { isLogin } from '@/utils/util.js'
 
+import { useI18n } from 'vue-i18n' 
+const { t } = useI18n() 
 
-import { ref, onMounted } from 'vue'
+
+import { ref, onMounted, inject } from 'vue'
 import { useRoute } from 'vue-router'
 import { useAppStore } from '@/pinia/appStore'
 const appStore = useAppStore()
 const route = useRoute()
 const list = ref({})
 const selectedItem = ref({})
+const openLoginDialog = inject('openLoginDialog')
 
 onMounted(() => {
+  //判断是否登录
+  if(!isLogin({callback: openLoginDialog,t})){
+    return;
+  }
   getList();
 });
 const getList = async () => {

+ 10 - 2
src/pages/LearningSystem/CourseDetail.vue

@@ -98,6 +98,7 @@ import { purchase } from '@/api/common.js'
 
 // 引入api
 import { getCourseDetail,collect } from '@/api/course.js'
+import { checkIn } from '@/api/my.js'
 
 import { useRouter, useRoute } from 'vue-router'
 const router = useRouter()
@@ -249,9 +250,16 @@ const collectFn = () => {
 //负责当前页面地址
 // 复制当前页面地址
 const copyCurrentUrl = () => {
-  copyText(window.location.href, t)
+  copyText(window.location.href, t, t('common.copyLineSuccess'));
+  signIn();
+};
+// 分享
+const signIn = async () => {
+  let res = await checkIn({ actionType: 2 });
+  if (res.code === 200) {
+    appStore.USERINFO();
+  }
 };
-
 
 
 </script>

+ 3 - 3
src/utils/util.js

@@ -109,7 +109,7 @@ export function isLogin({callback,t}){
   let token = localStorage.getItem('token');
   if(!token){
     //确认弹框
-    ElMessageBox.confirm('您未登录,是否前往登录?', t('common.tip'), {
+    ElMessageBox.confirm(t('common.notLoginTip'), t('common.tip'), {
       confirmButtonText: t('common.confirm'),
       cancelButtonText: t('common.cancel'),
       type: 'warning'
@@ -126,7 +126,7 @@ export function isLogin({callback,t}){
   return true;
 }
 //复制功能
-export function copyText(text, t) {
+export function copyText(text, t, msg=t('common.copySuccess')) {
   if (!text) {
     DGTMessage.error(t('common.copyError'));
     return;
@@ -137,5 +137,5 @@ export function copyText(text, t) {
   input.select();
   document.execCommand('copy');
   document.body.removeChild(input);
-  DGTMessage.success(t('common.copySuccess'));
+  DGTMessage.success(msg);
 }