diff --git a/.env.development b/.env.development
index e4c78e48..0676c220 100644
--- a/.env.development
+++ b/.env.development
@@ -4,13 +4,11 @@ ENV = 'development'
-VITE_APP_BASE_API_Url = 'https://aits.jlbank.com.cn:7001'
+#VITE_APP_BASE_API_Url = 'https://aits.jlbank.com.cn:7001'
-# VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7002'
-
-
+VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7001'
# VITE_APP_BASE_API_Url = 'https://aitstest.jlbank.com.cn:7002'
@@ -46,7 +44,7 @@ VITE_APP_BASE_API_Url = 'https://aits.jlbank.com.cn:7001'
# VITE_APP_BASE_H5_API_Url = 'http://25.18.122.78:9786'
-# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.16.130:9601'
+# VITE_APP_BASE_H5_API_Url_TRAAPP = 'http://25.64.32.150:9601'
# VITE_APP_BASE_H5_API_Url_TRASTUDY = 'http://25.64.16.130:9602'
# VITE_APP_BASE_H5_API_Url_TRAASK = 'http://25.64.16.144:9605'
diff --git a/devops/自动化构建/安卓打包/2-编译vue/nodejs构建.txt b/devops/自动化构建/安卓打包/2-编译vue/nodejs构建.txt
index 96ac9b34..d2f6f65d 100644
--- a/devops/自动化构建/安卓打包/2-编译vue/nodejs构建.txt
+++ b/devops/自动化构建/安卓打包/2-编译vue/nodejs构建.txt
@@ -6,9 +6,11 @@ rm -rf dist
rm -rf node_modules
echo "-----删除成功-----"
ls -a
-
+export TLS_MAX_MEM=8388608
+npm install @dcloudio/uts-linux-x64-gnu --registry=http://25.12.10.69:8081/repository/aliyun-npm/ --force
#下载依赖
-npm install --unsafe-perm=true --allow-root --registry=http://25.12.10.69:8081/repository/aliyun-npm/
+# npm install --unsafe-perm=true --allow-root --registry=http://25.12.10.69:8081/repository/aliyun-npm/
+npm install --registry=http://25.12.10.69:8081/repository/aliyun-npm/
#打包成静态资源
npm run build:app-plus:${ENV_NAME}
echo "打包成功"
diff --git a/src/api/pointsAndRank.js b/src/api/pointsAndRank.js
index aa6a614b..1390743f 100644
--- a/src/api/pointsAndRank.js
+++ b/src/api/pointsAndRank.js
@@ -127,3 +127,26 @@ export const queryRankWall = (data) => {
data
});
};
+
+
+/**
+ * 查询当前时间是否存在假日积分奖励
+ */
+export const queryHolidayReward = (data) => {
+ return request({
+ url: base_url + '/traPointsInfo/queryHolidayReward',
+ method: 'post',
+ data
+ });
+};
+
+/**
+ * 随机假日积分获得
+ */
+export const obtainRewardRandom = (data) => {
+ return request({
+ url: base_url + '/traPointsInfo/obtainRewardRandom',
+ method: 'post',
+ data
+ });
+};
diff --git a/src/components/examination/es-analysis.vue b/src/components/examination/es-analysis.vue
index a2de879c..996216ae 100644
--- a/src/components/examination/es-analysis.vue
+++ b/src/components/examination/es-analysis.vue
@@ -3,16 +3,23 @@
维度评分:
{{ dimension_all_score }}
-
-
+
{{ item.gradeDimens }}:
{{ item.anlyGrade }}
+
+ 未命中:
+
+
+ {{ keyword }}
+ 、
+
+
@@ -39,7 +46,7 @@
required: true
}
});
-
+
const evalSettingVos = computed(() => props.value.evalSettingVos);
const status = computed(() => (props.judgeResult ? 'success' : 'error'));
const select_status_icon = computed(() => {
@@ -49,15 +56,15 @@
return optionErrorIcon();
}
});
-
+
const keywords = computed(() => {
if (!props.value.relKeyword) return [];
return props.value.relKeyword.split(/[,、/]/).map((key) => key.trim());
});
-
+
const highlightedText = computed(() => {
// 如果没有关键词,直接返回原文本
- if (!keywords.value.length) return '你的答案:' + props.anserResult;
+ if (!keywords.value.length) return '命中:' + props.anserResult;
// 构建正则表达式,匹配所有关键词(不区分大小写)
// 对关键词进行转义,避免特殊字符影响正则
const escapedKeywords = keywords.value.map((keyword) => keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
@@ -66,7 +73,7 @@
const regex = new RegExp(`(${escapedKeywords.join('|')})`, 'gi');
// 替换匹配到的关键词,用span包裹并添加高亮样式
- return '你的答案:' + props.anserResult.replace(regex, (match) => `${match}`);
+ return '命中:' + props.anserResult.replace(regex, (match) => `${match}`);
});
const dimension_all_score = computed(() => {
return (
@@ -77,13 +84,51 @@
.reduce((total, current) => total + current, 0)
);
});
+ // 找出答案中不存在的关键词
+ const missingKeywords = computed(() => {
+ const relKeyword = props.value.relKeyword;
+ // 容错:答案为空时返回所有关键词
+ if (!props.anserResult) {
+ return relKeyword.split('、');
+ }
+
+ // 步骤1:按顿号拆分关键词组
+ const keywordGroups = relKeyword.split('、');
+ const missing = [];
+
+ // 步骤2:遍历每个关键词组,检查是否存在任意一种说法
+ keywordGroups.forEach((group) => {
+ // 拆分同关键词的不同说法(/ 分隔)
+ const keywordVariants = group.split('/');
+ let isFound = false;
+
+ // 检查答案中是否包含任意一种说法
+ for (const variant of keywordVariants) {
+ // 可选:增加 trim() 忽略首尾空格,提升匹配容错
+ if (props.anserResult.trim().includes(variant.trim())) {
+ isFound = true;
+ break;
+ }
+ }
+
+ // 未找到则加入缺失列表
+ if (!isFound) {
+ missing.push(group);
+ }
+ });
+
+ return missing;
+ });
const click_option = () => {
emit('click_option', props.analysisVo);
};
diff --git a/src/components/examination/subject.vue b/src/components/examination/subject.vue
index 392a171c..220ed4f5 100644
--- a/src/components/examination/subject.vue
+++ b/src/components/examination/subject.vue
@@ -2,7 +2,9 @@
{{ subject_type_text }}
- {{ item.tgtGrade }}分
+
+ {{ item.tgtGrade }}分
+
@@ -66,7 +68,12 @@
-
- 参考答案:
- {{ subject_data.itemVos[0]?.itemAnswer ?? '' }}
+
+
+ 试题解析:{{ subject_data?.analyContent }}
- 试题解析:{{ subject_data?.analyContent }}
@@ -120,6 +130,7 @@
import { ref, reactive, onMounted, nextTick, computed, getCurrentInstance, watch } from 'vue';
import radioSubjectItem from './radio-subject-item.vue';
import esAnalysis from './es-analysis.vue';
+ import referenceAnswer from './reference-answer.vue';
import questionVue from './question.vue';
import { markIcon, feedbackIcon } from '@/common/imgSvg';
import { SUBJECT_TYPE } from '@/enum.js';
@@ -153,7 +164,9 @@
// 学习: study
// 考试结算页 settlement
// 练习记录页 practice_record, 'practice_record'
- return ['examination', 'practice', 'mistake', 'study', 'settlement', 'practice_record', 'pk_in'].includes(value);
+ return ['examination', 'practice', 'mistake', 'study', 'settlement', 'practice_record', 'pk_in'].includes(
+ value
+ );
}
},
// 是否预览模式
diff --git a/src/components/points-and-badge/holiday - 副本.vue b/src/components/points-and-badge/holiday - 副本.vue
new file mode 100644
index 00000000..9ba5e746
--- /dev/null
+++ b/src/components/points-and-badge/holiday - 副本.vue
@@ -0,0 +1,412 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/points-and-badge/holiday.vue b/src/components/points-and-badge/holiday.vue
new file mode 100644
index 00000000..6036e8b5
--- /dev/null
+++ b/src/components/points-and-badge/holiday.vue
@@ -0,0 +1,412 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/points-and-badge/points.vue b/src/components/points-and-badge/points.vue
index e468a510..4bbdbc4f 100644
--- a/src/components/points-and-badge/points.vue
+++ b/src/components/points-and-badge/points.vue
@@ -188,6 +188,6 @@
overflow: hidden;
margin-top: var(--status-bar-height);
margin-bottom: 100rpx;
- overflow: auto;
+ overflow-y: auto;
}
diff --git a/src/components/points-and-badge/types/holiday.ts b/src/components/points-and-badge/types/holiday.ts
new file mode 100644
index 00000000..4f69bbcc
--- /dev/null
+++ b/src/components/points-and-badge/types/holiday.ts
@@ -0,0 +1,68 @@
+// 奖励类型枚举(和接口相关的枚举也放一起)
+export enum RewardType {
+ FIXED_POINT = '1', // 固定积分
+ RANDOM_POINT = '2' // 随机积分
+}
+
+// 定义抽奖动画状态枚举(码值)
+export enum AnimationStatus {
+ // 未开始(初始状态)
+ UNSTARTED = 'unstarted',
+ // 动画进行中
+ LOADING = 'loading',
+ // 动画已完成
+ COMPLETED = 'completed'
+}
+
+// 节日奖励信息接口
+export interface HolidayInfo {
+ holidayCode : string;
+ rewardFlag : boolean;
+ rewardType : RewardType;
+ rewardPoints : number;
+ holidayDesc : string;
+ rangeEnd : number;
+ rangeStart : number;
+ obtainFlag : boolean;
+ ossKey : string;
+ ossAddr : string;
+ backgroundOssKey : string;
+ backgroundOssAddr : string;
+}
+
+/**
+ * 节日弹窗关闭后的回调函数接口
+ * @param params - 回调参数
+ * @param params.status - 签到状态(false 表示关闭/未完成)
+ */
+export interface CompleteCallback {
+ (params : {
+ status : boolean;
+ }) : void;
+}
+
+
+/** 抽取积分成功的回调类型 */
+export interface LotterySuccessCb {
+ // val 为抽取到的积分,start积分的最小数,end为积分的最大值
+ (data : { val : number; start : number; end : number }) : void;
+}
+
+/** 抽取积分失败的回调类型 */
+export interface LotteryFailCb {
+ // 失败回调接收错误信息
+ (error : any) : void;
+}
+
+
+/**
+ * 需要随机抽取积分的节日,随机抽取积分的回调函数
+ * @param params - 回调参数
+ */
+export interface StartLotteryCallback {
+ (params : {
+ holidayCode : string;
+ successCb : LotterySuccessCb;
+ failCb : LotteryFailCb;
+ }) : void;
+}
\ No newline at end of file
diff --git a/src/composables/useCheckIn.js b/src/composables/useCheckIn.js
index 67a8d5bd..d7a55548 100644
--- a/src/composables/useCheckIn.js
+++ b/src/composables/useCheckIn.js
@@ -1,6 +1,8 @@
import {
queryCheckIn,
- addPointsByCheckIn
+ addPointsByCheckIn,
+ queryHolidayReward,
+ obtainRewardRandom
} from '@/api/pointsAndRank.js';
import common from '@/common/common';
import {
@@ -11,6 +13,7 @@ import {
} from 'vue';
export default function useCheckIn() {
const checkInRef = ref(null)
+ const holidayRef = ref(null)
// ========== 核心工具方法 ==========
/**
* 获取当前用户的签到存储key(区分不同用户)
@@ -45,81 +48,99 @@ export default function useCheckIn() {
PopupDay: ''
};
try {
- // 读取本地存储的签到信息(兼容JSON格式)
+ // 读取本地存储的签到信息
const rawData = common.getValue(key);
if (!rawData) return {
signDate: '',
checkInDays: 0,
- popupDay: ''
+ popupDay: '',
+ rewardFlag: null,
+ obtainFlag: null,
};
-
// 兼容存储的是字符串或JSON对象的情况
const signStatus = rawData;
return {
signDate: signStatus.signDate || '',
checkInDays: signStatus.checkInDays || 0,
popupDay: signStatus.popupDay || '',
-
+ rewardFlag: signStatus.rewardFlag || null,
+ obtainFlag: signStatus.obtainFlag || null,
};
} catch (e) {
console.error('读取本地签到状态失败', e);
return {
signDate: '',
checkInDays: 0,
- popupDay: ''
+ popupDay: '',
+ rewardFlag: null,
+ obtainFlag: null,
};
}
};
-
+
/**
* 更新本地签到状态(支持按需更新字段)
- * @param {boolean|undefined} isSigned - 是否签到(可选,传入则更新)
- * @param {number|undefined} checkInDays - 签到天数(可选,传入则更新)
- * @param {string|undefined} popupDay - 弹窗关闭日期(可选,传入则更新)
*/
- const setLocalSignStatus = (isSigned, checkInDays, popupDay) => {
- const key = getKey();
- if (!key) return;
-
- // 1. 读取本地原有数据(若无则初始化空对象)
- let oldSignStatus = {};
- try {
- oldSignStatus = common.getValue(key) || {}; // 兼容common.getValue返回null/undefined的情况
- } catch (e) {
- console.warn('读取原有签到状态失败,使用空对象初始化', e);
- oldSignStatus = {};
- }
-
- // 2. 初始化新状态:先继承原有数据
- const newSignStatus = { ...oldSignStatus };
-
- // 3. 按需更新字段(仅当参数传入时覆盖)
- // 处理isSigned:传入则更新,且为true时自动设置signDate
- if (isSigned !== undefined) {
- // 保持原有逻辑:isSigned为true时,signDate设为今日
- newSignStatus.signDate = isSigned ? getTodayDate() : oldSignStatus.signDate;
- }
-
- // 处理checkInDays:传入则更新,未传入保留原有值
- if (checkInDays !== undefined) {
- newSignStatus.checkInDays = checkInDays;
- }
-
- // 处理popupDay:传入非空则更新,未传入/空值保留原有值
- if (popupDay !== undefined) {
- newSignStatus.popupDay = popupDay? getTodayDate() : oldSignStatus.popupDay;
- }
-
- // 4. 重新存入本地(覆盖原有数据)
- try {
- console.log('存入的数据(原有+更新)', newSignStatus);
- common.setValue(key, newSignStatus);
- } catch (e) {
- console.error('更新本地签到状态失败', e);
- }
+ const setLocalSignStatus = (params) => {
+ const {
+ isSigned,
+ checkInDays,
+ popupDay,
+ rewardFlag,
+ obtainFlag
+ } = params;
+ const key = getKey();
+ if (!key) return;
+
+ // 1. 读取本地原有数据(若无则初始化空对象)
+ let oldSignStatus = {};
+ try {
+ oldSignStatus = common.getValue(key) || {}; // 兼容common.getValue返回null/undefined的情况
+ } catch (e) {
+ console.warn('读取原有签到状态失败,使用空对象初始化', e);
+ oldSignStatus = {};
+ }
+
+ // 2. 初始化新状态:先继承原有数据
+ const newSignStatus = {
+ ...oldSignStatus
+ };
+
+ // 3. 按需更新字段(仅当参数传入时覆盖)
+ // 处理isSigned:传入则更新,且为true时自动设置signDate
+ if (isSigned !== undefined) {
+ // 保持原有逻辑:isSigned为true时,signDate设为今日
+ newSignStatus.signDate = isSigned ? getTodayDate() : oldSignStatus.signDate;
+ }
+
+ // 处理checkInDays:传入则更新,未传入保留原有值
+ if (checkInDays !== undefined) {
+ newSignStatus.checkInDays = checkInDays;
+ }
+
+ // 处理popupDay:传入非空则更新,未传入/空值保留原有值
+ if (popupDay !== undefined) {
+ newSignStatus.popupDay = popupDay ? getTodayDate() : oldSignStatus.popupDay;
+ }
+
+ if (rewardFlag !== undefined) {
+ newSignStatus.rewardFlag = rewardFlag;
+ }
+ if (obtainFlag !== undefined) {
+ newSignStatus.obtainFlag = obtainFlag;
+ }
+
+
+ // 4. 重新存入本地
+ try {
+ console.log('存入的数据(原有+更新)', newSignStatus);
+ common.setValue(key, newSignStatus);
+ } catch (e) {
+ console.error('更新本地签到状态失败', e);
+ }
};
-
-
+
+
// ========== 对外暴露的核心方法 ==========
/**
@@ -129,37 +150,51 @@ export default function useCheckIn() {
const initCheckInStatus = async (complete = () => {}) => {
const today = getTodayDate();
const localStatus = getLocalSignStatus();
- console.log('localStatus', localStatus);
// 1. 本地已有今日签到记录 → 直接返回本地状态
if (localStatus.signDate === today) {
-
- complete(true, localStatus.checkInDays, localStatus.popupDay === today)
+ const checkInInfo = {
+ isSigned: true,
+ checkInDays: localStatus.checkInDays,
+ popUpStatus: localStatus.popupDay === today
+ }
+ const holidayBody = {
+ rewardFlag: localStatus.rewardFlag,
+ obtainFlag: localStatus.obtainFlag
+ }
+ complete(checkInInfo, holidayBody)
return true;
}
// 2. 本地记录过期/无记录 → 请求接口获取最新状态
try {
- const res = await queryCheckIn(); // 调用查询签到状态接口
- const {
- body
- } = res || {};
- console.log('bodbodyy', body);
- // // 接口返回格式适配(根据实际后端返回调整)
+
+ const [{
+ body = {}
+ }, {
+ body: holidayBody = {}
+ }] = await Promise.all([
+ queryCheckIn(), // 第一个接口:查询签到状态
+ queryHolidayReward() // 第二个接口:查询节日奖励
+ ]);
+
const isSigned = body?.checkInToday === 'Y';
const checkInDays = body?.days || 0;
- setLocalSignStatus(isSigned, checkInDays);
- // if (!isSigned) { // 没签到执行签到弹窗
- // console.log('没签到执行签到弹窗');
- // //如果今日点击过x那么久不弹了
- // // if(localStatus.popupDay === today) return;
- // complete(isSigned, checkInDays, localStatus.popupDay === today)
- // }
- complete(isSigned, checkInDays, localStatus.popupDay === today)
-
+ setLocalSignStatus({
+ isSigned,
+ checkInDays,
+ rewardFlag: holidayBody?.rewardFlag,
+ obtainFlag: holidayBody?.obtainFlag,
+ });
+ const checkInInfo = {
+ isSigned,
+ checkInDays,
+ popUpStatus: localStatus.popupDay === today
+ }
+ complete(checkInInfo, holidayBody)
} catch (e) {
console.error('请求签到状态接口失败', e);
}
};
-
+
/**
* 判断今日是否已签到(简化版,供快速判断)
* @returns {boolean}
@@ -181,14 +216,15 @@ export default function useCheckIn() {
*/
const checkInFun = async ({
status,
- days=0,
- successCb=() =>{},
- failCb=() =>{}
+ days = 0,
+ successCb = () => {},
+ failCb = () => {}
}) => {
- if(!status) { // 点击了关闭
+ if (!status) { // 点击了关闭
console.log('点击了关闭');
-
- setLocalSignStatus(undefined, undefined, true);
+ setLocalSignStatus({
+ popupDay: true,
+ });
return;
}
console.log('请求接口', days);
@@ -197,7 +233,10 @@ export default function useCheckIn() {
})
.then((res) => {
console.log('接口成功回调', res);
- setLocalSignStatus(true, days + 1);
+ setLocalSignStatus({
+ isSigned: true,
+ checkInDays: days + 1,
+ });
successCb?.({
days: days + 1,
res
@@ -207,6 +246,30 @@ export default function useCheckIn() {
})
};
+ /**
+ * 执行抽取节日积分操作
+ * @param {string} holidayCode - 节日积分
+ * @param {Function} successCb - 抽取积分成功回调
+ * @param {Function} failCb - 抽取积分失败回调
+ * @returns {Promise} 签到是否成功
+ */
+ const startLotteryFun = async ({
+ holidayCode,
+ successCb = () => {},
+ failCb = () => {}
+ }) => {
+ obtainRewardRandom({
+ holidayCode
+ }).then(({body}) => {
+ console.log('抽取成功回调', body);
+ // 把缓存中的记录设置为已经抽取积分
+ setLocalSignStatus({ obtainFlag: true});
+ successCb?.(body);
+ }).catch((error) => {
+ failCb?.(error)
+ })
+ };
+
/**
* 重置签到状态(可选,用于特殊场景)
*/
@@ -217,9 +280,11 @@ export default function useCheckIn() {
// ========== 返回对外暴露的方法 ==========
return {
+ holidayRef,
checkInRef,
initCheckInStatus, // 初始化签到状态(页面加载时调用)
checkInFun, // 执行签到
+ startLotteryFun, // 抽取随机积分
getLocalSignStatus, // 获取签到缓存信息
getTodayCheckInStatus // 获取今天签到状态
};
diff --git a/src/pages/courseDetail/components/knowledge.vue b/src/pages/courseDetail/components/knowledge.vue
index 4fc35754..42ecfc8f 100644
--- a/src/pages/courseDetail/components/knowledge.vue
+++ b/src/pages/courseDetail/components/knowledge.vue
@@ -1,74 +1,99 @@
-
-
+
+ 前序知识点学完后方可解锁下一知识点学习
+
-
+
- 知识点{{ item.pgrphNm }}
-
-
+
+ 知识点{{ item.pgrphNm }}
+
-
- {{ item.pgrphStdyStateName }}
+
+ {{ item.pgrphTitle || item.pgrphContent }}
-
- {{ item.pgrphTitle || item.pgrphContent }}
-
\ No newline at end of file
+
diff --git a/src/pages/courseDetail/index.vue b/src/pages/courseDetail/index.vue
index cba7fbcd..bb64774d 100644
--- a/src/pages/courseDetail/index.vue
+++ b/src/pages/courseDetail/index.vue
@@ -24,33 +24,36 @@
- 知识点
- {{ form.pgrphNum || 0 }}
+ 知识点
-
-
- 已学
- {{ form.styParaGraphNum || 0 }}
+
+
+ {{ form.styParaGraphNum || 0 }}
+
+ {{ form.pgrphNum || 0 }}
+
考试排行榜
-
+
@@ -110,6 +114,7 @@
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 95a3dc9a..a8ea8164 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -156,43 +156,13 @@
-
-
-
+
@@ -210,10 +180,11 @@
import classScroll from './components/class_scroll.vue';
import useCheckIn from '@/composables/useCheckIn';
import checkIn from '@/components/points-and-badge/check-in';
+ import holiday from '@/components/points-and-badge/holiday';
import badge from '@/components/points-and-badge/badge';
import points from '@/components/points-and-badge/points';
import usePointsAndBadge from '@/components/points-and-badge/usePointsAndBadge';
- const { initCheckInStatus, checkInRef, checkInFun } = useCheckIn();
+ const { initCheckInStatus, checkInRef, checkInFun, startLotteryFun, holidayRef } = useCheckIn();
const { handlePointsBadgePopup, badgeRef, pointsRef } = usePointsAndBadge();
const scrollTop = ref(0);
const no_read_message_num = ref(0);
@@ -339,12 +310,19 @@
return;
}
- initCheckInStatus((isSigned, checkInDays, popUpStatus) => {
- if(!isSigned && !popUpStatus) {
- checkInRef.value.open(isSigned, checkInDays, checkInFun, (status, days, pointsList = [], badgesList = []) => {
- handlePointsBadgePopup(pointsList, badgesList);
- });
- }
+ initCheckInStatus((checkInInfo, holidayBody) => {
+ // 先判断是否有节日活动
+ const handleCheckInComplete = (params) => {
+ const {isSigned, checkInDays, popUpStatus} = checkInInfo
+ setTimeout(() => {
+ if(!isSigned && !popUpStatus) {
+ checkInRef.value.open(isSigned, checkInDays, checkInFun, (status, days, pointsList = [], badgesList = []) => {
+ handlePointsBadgePopup(pointsList, badgesList);
+ });
+ }
+ }, 140)
+ };
+ holidayRef.value?.open(holidayBody, startLotteryFun, handleCheckInComplete)
});
const userInfo = getUserInfo();
if (userInfo) {
diff --git a/src/pages/me/index.vue b/src/pages/me/index.vue
index 0b467e43..db535971 100644
--- a/src/pages/me/index.vue
+++ b/src/pages/me/index.vue
@@ -314,10 +314,13 @@
Object.assign(user_info, getUserInfo());
statistics_data['get_statistics_data'](); // 获取统计数据
// 获取今日是否签到消息
- initCheckInStatus((isSigned, checkInDays, popUpStatus) => {
+ initCheckInStatus(({isSigned, checkInDays, popUpStatus}) => {
user_info.checkInToday = isSigned ? 1 : 2;
user_info.checkInDays = checkInDays;
});
+
+
+
});
onHide(() => {
checkInRef.value && checkInRef.value.close();
diff --git a/src/static/images/courseDetail/charts.png b/src/static/images/courseDetail/charts.png
index 719c3d13..b853d712 100644
Binary files a/src/static/images/courseDetail/charts.png and b/src/static/images/courseDetail/charts.png differ
diff --git a/src/static/images/courseDetail/knowledgeComplete.png b/src/static/images/courseDetail/knowledgeComplete.png
new file mode 100644
index 00000000..39e95a60
Binary files /dev/null and b/src/static/images/courseDetail/knowledgeComplete.png differ
diff --git a/src/static/images/courseDetail/knowledgeUnfinished.png b/src/static/images/courseDetail/knowledgeUnfinished.png
new file mode 100644
index 00000000..5b74d03f
Binary files /dev/null and b/src/static/images/courseDetail/knowledgeUnfinished.png differ
diff --git a/src/static/images/courseDetail/zhishidian.png b/src/static/images/courseDetail/zhishidian.png
index b85c6734..f98c94a4 100644
Binary files a/src/static/images/courseDetail/zhishidian.png and b/src/static/images/courseDetail/zhishidian.png differ
diff --git a/src/static/images/pointsAndRank/badge-bg1.png b/src/static/images/pointsAndRank/badge-bg1.png
deleted file mode 100644
index 0c800a1a..00000000
Binary files a/src/static/images/pointsAndRank/badge-bg1.png and /dev/null differ
diff --git a/src/static/images/pointsAndRank/festival-bg-up.png b/src/static/images/pointsAndRank/festival-bg-up.png
new file mode 100644
index 00000000..ae7fd110
Binary files /dev/null and b/src/static/images/pointsAndRank/festival-bg-up.png differ
diff --git a/src/static/images/pointsAndRank/festival-bg.png b/src/static/images/pointsAndRank/festival-bg.png
new file mode 100644
index 00000000..1662a024
Binary files /dev/null and b/src/static/images/pointsAndRank/festival-bg.png differ
diff --git a/src/static/images/pointsAndRank/festival-button.png b/src/static/images/pointsAndRank/festival-button.png
new file mode 100644
index 00000000..5fca3f80
Binary files /dev/null and b/src/static/images/pointsAndRank/festival-button.png differ
diff --git a/src/static/images/pointsAndRank/festival-main.png b/src/static/images/pointsAndRank/festival-main.png
new file mode 100644
index 00000000..e8d59529
Binary files /dev/null and b/src/static/images/pointsAndRank/festival-main.png differ
diff --git a/src/static/images/pointsAndRank/festival-text.png b/src/static/images/pointsAndRank/festival-text.png
new file mode 100644
index 00000000..65fd82b3
Binary files /dev/null and b/src/static/images/pointsAndRank/festival-text.png differ
diff --git a/src/static/images/test/1.png b/src/static/images/test/1.png
deleted file mode 100644
index e9c44581..00000000
Binary files a/src/static/images/test/1.png and /dev/null differ
diff --git a/src/static/images/test/2.png b/src/static/images/test/2.png
deleted file mode 100644
index c2628b2f..00000000
Binary files a/src/static/images/test/2.png and /dev/null differ
diff --git a/src/static/images/test/3.png b/src/static/images/test/3.png
deleted file mode 100644
index 9473e130..00000000
Binary files a/src/static/images/test/3.png and /dev/null differ
diff --git a/src/static/images/test/4.png b/src/static/images/test/4.png
deleted file mode 100644
index 522212fd..00000000
Binary files a/src/static/images/test/4.png and /dev/null differ
diff --git a/src/static/images/test/BG@2x.png b/src/static/images/test/BG@2x.png
new file mode 100644
index 00000000..dc994c5e
Binary files /dev/null and b/src/static/images/test/BG@2x.png differ
diff --git a/src/static/images/test/bg-1.png b/src/static/images/test/bg-1.png
new file mode 100644
index 00000000..394c6657
Binary files /dev/null and b/src/static/images/test/bg-1.png differ
diff --git a/src/static/images/test/bg-2.png b/src/static/images/test/bg-2.png
new file mode 100644
index 00000000..ec3aea02
Binary files /dev/null and b/src/static/images/test/bg-2.png differ
diff --git a/src/static/images/test/bg-3.png b/src/static/images/test/bg-3.png
new file mode 100644
index 00000000..8a3bddce
Binary files /dev/null and b/src/static/images/test/bg-3.png differ
diff --git a/src/static/images/test/festival-01.png b/src/static/images/test/festival-01.png
new file mode 100644
index 00000000..489ca22f
Binary files /dev/null and b/src/static/images/test/festival-01.png differ
diff --git a/src/static/images/test/festival-02.png b/src/static/images/test/festival-02.png
new file mode 100644
index 00000000..638789e9
Binary files /dev/null and b/src/static/images/test/festival-02.png differ
diff --git a/src/static/images/test/festival-03.png b/src/static/images/test/festival-03.png
new file mode 100644
index 00000000..36162fdb
Binary files /dev/null and b/src/static/images/test/festival-03.png differ
diff --git a/src/static/images/test/festival-04.png b/src/static/images/test/festival-04.png
new file mode 100644
index 00000000..529a039f
Binary files /dev/null and b/src/static/images/test/festival-04.png differ
diff --git a/src/static/images/test/festival-05.png b/src/static/images/test/festival-05.png
new file mode 100644
index 00000000..3f3728db
Binary files /dev/null and b/src/static/images/test/festival-05.png differ
diff --git a/src/static/images/test/festival-06.png b/src/static/images/test/festival-06.png
new file mode 100644
index 00000000..5cfeba4f
Binary files /dev/null and b/src/static/images/test/festival-06.png differ
diff --git a/src/static/images/test/festival-07.png b/src/static/images/test/festival-07.png
new file mode 100644
index 00000000..08c313ab
Binary files /dev/null and b/src/static/images/test/festival-07.png differ
diff --git a/src/static/images/test/festival-08.png b/src/static/images/test/festival-08.png
new file mode 100644
index 00000000..4762d373
Binary files /dev/null and b/src/static/images/test/festival-08.png differ
diff --git a/src/static/images/test/festival-09.png b/src/static/images/test/festival-09.png
new file mode 100644
index 00000000..86d967a0
Binary files /dev/null and b/src/static/images/test/festival-09.png differ
diff --git a/src/static/images/test/festival-10.png b/src/static/images/test/festival-10.png
new file mode 100644
index 00000000..d918fdc6
Binary files /dev/null and b/src/static/images/test/festival-10.png differ
diff --git a/src/static/images/test/search_img.png b/src/static/images/test/search_img.png
deleted file mode 100644
index ba1127d6..00000000
Binary files a/src/static/images/test/search_img.png and /dev/null differ
diff --git a/src/static/images/test/touxiang.png b/src/static/images/test/touxiang.png
deleted file mode 100644
index 02a5d4e9..00000000
Binary files a/src/static/images/test/touxiang.png and /dev/null differ
diff --git a/src/static/images/test/xz.png b/src/static/images/test/xz.png
deleted file mode 100644
index 13cfd3c6..00000000
Binary files a/src/static/images/test/xz.png and /dev/null differ
diff --git a/src/static/images/test/xz1.png b/src/static/images/test/xz1.png
deleted file mode 100644
index a77a124a..00000000
Binary files a/src/static/images/test/xz1.png and /dev/null differ
diff --git a/src/static/images/test/xz2.png b/src/static/images/test/xz2.png
deleted file mode 100644
index 82ed1ae9..00000000
Binary files a/src/static/images/test/xz2.png and /dev/null differ
diff --git a/src/static/images/test/xz3.png b/src/static/images/test/xz3.png
deleted file mode 100644
index 7bf9600f..00000000
Binary files a/src/static/images/test/xz3.png and /dev/null differ
diff --git a/src/static/images/test/xz4.png b/src/static/images/test/xz4.png
deleted file mode 100644
index 0012f157..00000000
Binary files a/src/static/images/test/xz4.png and /dev/null differ
diff --git a/src/static/images/test/xz5.png b/src/static/images/test/xz5.png
deleted file mode 100644
index b86ad563..00000000
Binary files a/src/static/images/test/xz5.png and /dev/null differ
diff --git a/上架信息/应用上架信息.xlsx b/上架信息/应用上架信息.xlsx
index 134d12be..26bb354b 100644
Binary files a/上架信息/应用上架信息.xlsx and b/上架信息/应用上架信息.xlsx differ