脚本喵-刷课脚本分享 脚本喵-刷课脚本分享
首页
刷课脚本
通用教程
网课代学
首页
刷课脚本
通用教程
网课代学
  • 山东省教师教育网刷课脚本分享
  • 北京市继续医学教育全员必修课培训刷课脚本分享
  • 好医生刷课脚本分享
  • 融学国培网chinahrt.com刷课脚本分享
  • 华医网刷课脚本分享
  • 59iedu华博教育系列刷课脚本分享
  • 安溪县中小学、幼儿园教师远程继续教育培训刷课脚本分享
  • 福建省交通运输行业专业技术人员继续教育刷课脚本分享
  • 漳州开放大学非学历培训平台刷课脚本分享
  • 莆田市专业技术人员继续教育公需课培训平台刷课脚本分享
  • 永泰县专业技术人员继续教育网络培训平台刷课脚本分享
  • 四川信息通信人才在线教育平台刷课脚本分享
  • 巴中建设行业从业人员继续教育网络培训平台刷课脚本分享
  • 扬州市网络培训远程教育平台刷课脚本分享
  • 江苏省勘察设计行业继续教育网络培训平台刷课脚本分享
  • 华博教育-甘肃省天水市刷课脚本分享
  • 永安市教师进修校继续教育网络平台刷课脚本分享
  • 平潭综合实验区专业技术人员继续教育网络平台刷课脚本分享
  • 淮安市专业技术人员继续教育网刷课脚本分享
  • 宿迁市专业技术人才继续教育基地刷课脚本分享
  • 莆田市专业技术人员继续教育培训平台刷课脚本分享
  • 甘肃省专技(武威市)刷课脚本分享
  • 闽清县专业技术人员继续教育网络平台刷课脚本分享
  • 华博教育-甘肃省庆阳市刷课脚本分享
  • 福州市教师网络培训平台刷课脚本分享
  • 河南专技学习网刷课脚本分享
  • 广安市建筑技术培训中心刷课脚本分享
  • 甘肃省白银市(卫生行业)专技刷课脚本分享
  • 华博教育-甘肃省定西市刷课脚本分享
  • 福建省专业技术人员继续教育网络平台刷课脚本分享
  • 福建省专业技术人员继续教育基地刷课脚本分享
  • 福建省专业技术与管理人员继续教育刷课脚本分享
  • 甘肃省直专技刷课脚本分享
  • 华博教育-甘肃省陇南市刷课脚本分享
  • 华博教育-甘肃省临夏回族自治州刷课脚本分享
  • 甘肃省嘉峪关专技刷课脚本分享
  • 华博教育-甘肃省白银市刷课脚本分享
  • 八冶建设集团有限公司专业技术人员继续教育刷课脚本分享
  • 德化县专业技术人员继续教育学习网刷课脚本分享
  • 华博教育-金昌市刷课脚本分享
  • 华博教育-甘肃省甘南藏族自治州刷课脚本分享
  • 华博教育-酒泉市刷课脚本分享
  • 漳州职业技术学院专业技术人员继续教育刷课脚本分享
  • 福建省工艺美术专业技术人员继续教育刷课脚本分享
  • 福清市医院专业人员继续教育刷课脚本分享
  • 芯华集成电路人才培训中心专业技术人员继续教育刷课脚本分享
  • 华博教育-河南省会计人员继续教育刷课脚本分享
  • 南平市网络培训远程教育平台刷课脚本分享
  • 大众云学yxlearning系列刷课脚本分享
  • 济南职业学院职业技能提升网络培训平台刷课脚本分享
  • 山东理工职业学院继续教育平台刷课脚本分享
  • 兰州现代职业学院专业技术人员继续教育刷课脚本分享
  • 淄博市专业技术人员继续教育刷课脚本分享
  • 枣庄市专业技术人员继续教育刷课脚本分享
  • 滨州市专业技术人员继续教育刷课脚本分享
  • 新疆生产建设兵团专业技术人员继续教育刷课脚本分享
  • 山东省威海市专业技术人员继续教育刷课脚本分享
  • 山东药品食品职业学院继续教育刷课脚本分享
  • 山东科技职业学院专业技术人员网络学习平台刷课脚本分享
  • 新泰市职业技能提升网络培训平台刷课脚本分享
  • 山东烟台市专业技术人员继续教育刷课脚本分享
  • 济宁市专业技术人员继续教育刷课脚本分享
  • 山东水利行业专业技术人员继续教育刷课脚本分享
  • 山东省大数据工程专业技术人员培训平台刷课脚本分享
  • 临沂市交通运输行业专业技术人员继续教育刷课脚本分享
  • 鲁东大学专业技术人员继续教育刷课脚本分享
  • 临沂市职业技能培训线上平台刷课脚本分享
  • 东营市专业技术人员继续教育刷课脚本分享
  • 大众云学职业技能提升公共服务平台刷课脚本分享
  • 山东交通职业学院专业技术人员继续教育刷课脚本分享
  • 吉林省专业技术人员继续教育培训平台刷课脚本分享
  • 山东大众云学省级继续教育基地刷课脚本分享
  • 威海市职业技能提升网络培训平台刷课脚本分享
  • 山东化工职业学院专业技术人员继续教育刷课脚本分享
  • 山东省快递工程专业技术人员继续教育刷课脚本分享
  • 兵团思想政治工作人员继续教育刷课脚本分享
  • 武威职业学院专业技术人员继续教育刷课脚本分享
  • 日照市专业技术人员继续教育刷课脚本分享
  • 济宁职业技术学院专业技术人员继续教育刷课脚本分享
  • 龙岩市专业技术人员继续教育培训平台刷课脚本分享
  • 潍城区委党校专业技术人员继续教育刷课脚本分享
  • 新疆生产建设兵团残疾人技能提升与创业就业服务平台刷课脚本分享
  • 德州市专业技术人员继续教育刷课脚本分享
  • 泰安市专业技术人员继续教育刷课脚本分享
  • 聊城职业技术学院专业技术人员继续教育刷课脚本分享
  • 内蒙古网络学院刷课脚本分享
  • 凉山州专业技术人员继续教育刷课脚本分享
  • 医世界-医视在线刷课脚本分享
  • 安徽继续教育在线刷课脚本分享
  • 新版陕西省专业技术人员继续教育刷课脚本分享
  • 安徽省卫生从业人员培训平台刷课脚本分享
  • 国家药品安全专业技术人员培训网刷课脚本分享
  • 学习公社刷课脚本
  • 中山教师教育网刷课脚本
  • 浙江省安全生产网络学院刷课脚本
  • 智慧教育培训管理平台刷课脚本
  • 中国医师协会远程教育平台刷课脚本
  • 学达云刷课脚本
  • 数字党校培训平台刷课脚本
  • 广州市中小学教师继续教育网刷课脚本
  • 甘肃省公务员网络培训刷课脚本
  • 聊城市专业技术人员继续教育刷课脚本
  • 医博士刷课脚本
  • 甘肃法宣在线刷课脚本
  • 东奥会计刷课脚本
  • 丽水市建设行业人才继续教育平台刷课脚本
  • 山财培训网刷课脚本
  • 东营市继续教育刷课脚本
  • 河南教师培训网刷课脚本
  • 南京市专业技术人员继续教育刷课脚本
  • 广州东方职业技术培训中心执业药师继续教育刷课脚本
  • 包头市专业技术人员继续教育刷课脚本
  • 内蒙古自治区专业技术人员继续教育刷课脚本
  • 丽水人力社保专业技术人员继续教育培训刷课脚本
  • 北京市专业技术人员公需科目刷课脚本
  • 教师专业发展培训网刷课脚本分享
  • 东财在线大连会计刷课脚本分享
  • 临沂市专业技术人员继续教育刷课脚本分享
  • 浙江水利刷课脚本分享
  • 聊城市会计人员继续教育平台刷课脚本
  • 三亚市专业技术人员继续教育网刷课脚本
  • 中华会计继续教育刷课脚本
  • 西北师范大学中小学教师远程培训网刷课脚本
  • 春宇远程培训平台刷课脚本
  • 浙江省二级建造师继续教育学习网刷课脚本分享
  • 深圳市教师教育网刷课脚本分享
  • 山西省专业技术人员继续教育网络平台刷课脚本分享
  • 督学网络学院-广东分院刷课脚本分享
  • 湖北省专业技术人员继续教育网络平台刷课脚本分享
  • 东北师范大学中小学教师网络培训平台刷课脚本
  • 甘肃智博继续教育专修学院刷课脚本
  • 云继教刷课脚本
  • 济南市会计人员继续教育刷课脚本
  • 南宁市西乡塘中小学幼教师培训网刷课脚本
  • 东财在线-四川省刷课脚本分享
  • 辽宁省干部在线学习网刷课脚本分享
  • 朝阳区教师学习服务平台刷课脚本分享
  • 地大培训在线刷课脚本分享
  • 吉林专技培训平台刷课脚本分享
  • 新疆有色集团培训中心刷课脚本分享
  • 河南省新闻传播专业技术人员继续教育培训服务平台刷课脚本分享
  • 聊城市乡村实用人才培训学院刷课脚本
  • 天津市政工人员继续教育培训网刷课脚本
  • 广东省教育双融双创智慧共享社区刷课脚本
  • 河北药师网刷课脚本分享
  • 汉中职业技术学院-教师在线学习中心刷课脚本分享
  • 河南省教育人才学会网络学院刷课脚本分享
  • 郑东新区实验幼儿园教师研修平台刷课脚本分享
  • 巴中开放大学-专业技术人员继续教育基地刷课脚本分享
  • 校本研修管理平台刷课脚本分享
  • 河南会计人员继续教育刷课脚本分享
  • 天津市执业药师协会刷课脚本分享
  • 张掖市干部在线学习平台刷课脚本分享
  • 高等教育教师专业发展平台刷课脚本分享
  • 甘肃省专业技术人员继续教育网络平台刷课脚本分享
  • 泰安市专业技术人员继续培训平台刷课脚本分享
  • 微山县人民医院(微山县)公需课刷课脚本分享
  • 焦作专技网刷课脚本分享
  • 新疆国家级医学继续教育能力提升平台刷课脚本分享
  • 建设行业人才网络教育平台刷课脚本分享
  • 安徽开放大学教师全员远程培训刷课脚本分享
  • 西安教师培训网刷课脚本分享
  • 迪尔集团有限公司(高新区)公需课刷课脚本分享
  • 广东二师在线刷课脚本分享
  • 新疆兵团卫生专业技术人员法律法规知识培训服务平台刷课脚本分享
  • 贵州执业药师继续教育在线培训刷课脚本分享
  • 青海大学继续教育学院刷课脚本分享
  • 河北干部网络学院刷课脚本分享
  • 曲阜市技工学校(曲阜市)继续教育公需课刷课脚本分享
  • 全国体育传统特色学校体育师资培训平台刷课脚本分享
  • 宁阳县继续医学教育培训网刷课脚本分享
  • 陕西干部网络学院刷课脚本分享
  • 职业成长自动轮播学习脚本分享
  • 和田地区专业技术人员继续教育刷课脚本分享
  • 合肥市中小学、幼儿园教师远程培训刷课脚本分享
  • 内蒙古自治区中医药(蒙医药)继续教育刷课脚本分享
  • 自贡市专业技术人员继续教育学习平台刷课脚本分享
  • 专业技术人才人工智能通识继续教育网络公益课堂刷课脚本分享
  • 周口市专业技术人员继续教育刷课脚本分享
    • 吉林省中盛佳源专技培训网刷课脚本分享
    • 菏泽市继续教育刷课脚本分享
    • 国家中小学智慧教育平台刷课脚本分享
    • 刷课脚本
    脚本喵
    目录

    周口市专业技术人员继续教育刷课脚本分享

    代学业务

    如需代学,请点击联系客服

    周口市继续教育 zkzj.jxjyedu.org.cn

    # 平台情况

    嗯...周口这边的朋友应该都知道这个平台,周口市专业技术人员继续教育公共服务平台,网址 http://zkzj.jxjyedu.org.cn/2019/index.jsp 。是周口市继续教育协会搞的,地址就在八一路南段那边,人事考试中心院里。

    上个月周口淮阳的老李给我打电话,说他们单位要求在这个平台上刷公需课。老李在淮阳一个事业单位干了好多年了,平时工作就是写材料、跑审批、开会,忙得不行。他说这个平台的课吧,内容倒也还行,什么职称制度改革、专业技术人员继续教育规定之类的,但就是视频太长了,一门课好几个小时,而且必须完整看完才能算学时。

    老李跟我抱怨说,他上周连着三天晚上坐在电脑前刷课,眼睛酸得不行。白天上班已经盯了一天屏幕了,回家还得继续盯,关键视频播完不会自动跳下一节,得手动点,有时候忘了点就停在那儿白等。还有那个长时间不操作就掉线的问题,特别烦人。

    我打开这个平台看了一下,界面比较朴素,典型的政务网站风格。课程列表在左侧,点进去有章节目录。视频播放器就是普通的那种,进度条能看但不太灵敏。说实话这个平台真的挺麻烦的,各种小问题不少。

    # 脚本功能

    提示

    如需代学,请联系客服,支持闲鱼交易。

    微信联系:yizhituziang

    QQ联系:2422270452

    - img: /img/weixin.jpg
      name: 微信联系:yizhituziang
    - img: /img/qq.jpg
      name: QQ联系:2422270452
    

    针对周口市专业技术人员继续教育平台的特点,脚本做了这些功能:

    视频自动播放,进到课程页面不用手动点播放。自动切换下一章节,视频快播完的时候自动跳转。防掉线模拟,隔一段时间模拟鼠标移动,避免系统判定长时间无操作。倍速调节,1倍到2倍速都可以选。进度统计,面板上能看到已完成多少节课。

    脚本安装地址: 暂时下架

    # 使用感受

    老李用了差不多两周了,他说比之前纯手动刷省心多了。现在他上班前把浏览器打开挂着,中午休息的时候看一眼进度,下班的时候基本一天的任务就跑完了。控制面板在右边,状态、已完成数量、倍速都显示得挺清楚的。

    有个事得说一下,这个平台偶尔会弹验证框,脚本遇到这种情况会暂停等你处理。还有个别课程有课后作业或者测试,这个得自己做,脚本帮不了。另外如果你们单位要求人脸识别验证,那还是得自己来。

    对了,老李还跟我说了个事,他同事小周也用这个脚本,但是小周用的360浏览器,有时候会卡。建议用Chrome或者Edge,兼容性最好。

    # 使用场景

    工作忙没时间盯屏幕的,像老李那样白天一堆事晚上还要加班的。课程内容之前就学过的,走个流程拿学时就行。想早点刷完早点省心的,开个1.5倍速挂着自动跑。

    # 技术细节

    周口这个平台用的是比较传统的在线教育框架,播放器兼容性一般。脚本通过定时检测video元素状态来判断播放进度,然后配合课程列表的DOM结构找到下一节。

    防掉线这块比较关键,因为周口这个平台对长时间不操作检测比较敏感。脚本会随机生成鼠标移动轨迹,间隔时间也做了随机化处理,不会太规律被系统发现。

    整体方案针对周口平台做了专门适配,老李用了两周没出过什么大问题。

    # 常见问题

    脚本安装地址暂时下架,有需要代学的朋友看页面底部联系方式。

    倍速开多少合适?建议1.5倍,周口这边服务器有时候响应慢,太快了怕加载跟不上。

    用什么浏览器?Chrome或Edge最稳,360要开极速模式。

    进度没同步怎么办?刷新一下页面,平台会自动保存进度的。

    课后测验能自动做吗?不行,得自己看题目。

    # 结束语

    周口市专业技术人员继续教育平台是周口地区专技人员每年都要用的,老李之前为这个课愁了好几天,用了脚本之后终于不用熬夜刷课了。河南这边的继续教育平台说实话体验都差不多,视频长、不自动跳、容易掉线,脚本能帮你解决大部分问题。

    # 核心代码

    (function() {
        'use strict';
    
        const CONFIG = {
            siteDomain: 'zkzj.jxjyedu.org.cn',
            checkInterval: 2900,
            switchDelay: 3600,
            activityGap: 11000,
            doneThreshold: 91,
            storageKey: 'zkzj_auto_state'
        };
    
        let state = {
            running: false,
            doneCount: 0,
            speed: 1.0,
            lastAction: Date.now(),
            retryCount: 0
        };
    
        function log(msg) {
            console.log(`[周口继续教育] ${msg}`);
        }
    
        function loadState() {
            const saved = localStorage.getItem(CONFIG.storageKey);
            if (saved) {
                try {
                    const data = JSON.parse(saved);
                    state.running = data.on !== false;
                } catch (e) {
                    state.running = true;
                }
            } else {
                state.running = true;
            }
        }
    
        function saveState() {
            localStorage.setItem(CONFIG.storageKey, JSON.stringify({
                on: state.running,
                speed: state.speed
            }));
        }
    
        function startup() {
            loadState();
            if (state.running) {
                log('周口市专业技术人员继续教育自动学习已启动');
                beginCheck();
            }
            buildUI();
        }
    
        function getVideo() {
            const sels = [
                'video',
                '#myVideo video',
                '.video-box video',
                '.course-video video',
                '.video-js video',
                '.vjs-tech',
                'video.player-video'
            ];
            for (const sel of sels) {
                const el = document.querySelector(sel);
                if (el && el.duration > 0 && el.offsetParent !== null) {
                    return el;
                }
            }
            return null;
        }
    
        function getVideoWrap() {
            const wraps = [
                '#myVideo',
                '.video-box',
                '.course-player',
                '.video-container',
                '.player-wrap',
                '.vjs-container'
            ];
            for (const sel of wraps) {
                const el = document.querySelector(sel);
                if (el) return el;
            }
            return document.body;
        }
    
        function calcProgress(vid) {
            if (!vid || !vid.duration) return 0;
            return (vid.currentTime / vid.duration) * 100;
        }
    
        function tryPlay(vid) {
            if (!vid) return false;
            try {
                if (vid.paused) {
                    const p = vid.play();
                    if (p && p.catch) {
                        p.catch(() => {
                            vid.muted = true;
                            vid.play().catch(() => {});
                        });
                    }
                }
                return true;
            } catch (e) {
                return false;
            }
        }
    
        function applySpeed(vid, spd) {
            if (!vid) return;
            try {
                vid.playbackRate = spd;
                state.speed = spd;
                log(`倍速已设为 ${spd}x`);
            } catch (e) {
                log(`倍速设置失败`);
            }
        }
    
        function antiIdle() {
            const now = Date.now();
            if (now - state.lastAction > CONFIG.activityGap) {
                const wrap = getVideoWrap();
                const rect = wrap.getBoundingClientRect();
                const rx = rect.left + Math.random() * rect.width;
                const ry = rect.top + Math.random() * rect.height;
    
                const mv = new MouseEvent('mousemove', {
                    clientX: rx, clientY: ry, bubbles: true
                });
                document.dispatchEvent(mv);
    
                setTimeout(() => {
                    const ck = new MouseEvent('click', {
                        clientX: rx, clientY: ry, bubbles: true
                    });
                    document.dispatchEvent(ck);
                }, 600);
    
                state.lastAction = now;
                log('已模拟操作,防止掉线');
            }
        }
    
        function findNext() {
            const sels = ['.next-btn', '.btn-next', '.next-chapter', '[class*="next"]'];
            for (const sel of sels) {
                const btns = document.querySelectorAll(sel);
                for (const btn of btns) {
                    if (btn.offsetParent !== null && !btn.disabled) {
                        return btn;
                    }
                }
            }
            return null;
        }
    
        function getCourseList() {
            return document.querySelectorAll(
                '.course-item, .chapter-item, .lesson-item, .section-item, .catalog-item'
            );
        }
    
        function isComplete(item) {
            return item.querySelector('.status-done, .finished, .completed, .done-icon') !== null;
        }
    
        function isActive(item) {
            return item.classList.contains('active') || item.classList.contains('current');
        }
    
        function goNext() {
            const btn = findNext();
            if (btn) {
                btn.click();
                state.doneCount++;
                log(`点击下一节,已完成 ${state.doneCount} 节`);
                setTimeout(beginCheck, CONFIG.switchDelay);
                return;
            }
    
            const items = getCourseList();
            let found = false;
            for (const item of items) {
                const done = isComplete(item);
                const active = isActive(item);
    
                if (active) { found = true; continue; }
                if (found && !done) {
                    item.click();
                    state.doneCount++;
                    log('已跳到下一未完成章节');
                    setTimeout(beginCheck, CONFIG.switchDelay);
                    return;
                }
            }
            log('全部完成或未找到更多课程');
        }
    
        function checkLoop() {
            const vid = getVideo();
            if (!vid) {
                state.retryCount++;
                if (state.retryCount > 20) {
                    log('多次未找到视频,请检查页面');
                    return;
                }
                setTimeout(checkLoop, CONFIG.checkInterval);
                return;
            }
            state.retryCount = 0;
    
            if (vid.paused && state.running) {
                tryPlay(vid);
            }
    
            const prog = calcProgress(vid);
            if (prog >= CONFIG.doneThreshold || vid.ended) {
                log(`进度 ${prog.toFixed(1)}%,准备切换`);
                goNext();
                return;
            }
    
            antiIdle();
            setTimeout(checkLoop, CONFIG.checkInterval);
        }
    
        function beginCheck() {
            if (!state.running) return;
            setTimeout(checkLoop, 2200);
        }
    
        function pauseAll() {
            state.running = false;
            saveState();
            log('已暂停');
            refreshUI();
        }
    
        function resumeAll() {
            state.running = true;
            saveState();
            log('已恢复');
            beginCheck();
            refreshUI();
        }
    
        function toggleAll() {
            state.running ? pauseAll() : resumeAll();
        }
    
        function setSpd(spd) {
            const vid = getVideo();
            if (vid) applySpeed(vid, spd);
            state.speed = spd;
            refreshUI();
        }
    
        function refreshUI() {
            const s = document.getElementById('zkzj_st');
            const c = document.getElementById('zkzj_ct');
            const r = document.getElementById('zkzj_sp');
            if (s) s.textContent = state.running ? '运行中' : '已暂停';
            if (c) c.textContent = state.doneCount;
            if (r) r.textContent = state.speed;
        }
    
        function buildUI() {
            const old = document.getElementById('zkzj_panel');
            if (old) return;
    
            const panel = document.createElement('div');
            panel.id = 'zkzj_panel';
            panel.style.cssText = `
                position:fixed;top:180px;right:20px;
                background:linear-gradient(135deg,#e65100 0%,#ff8f00 100%);
                color:#fff;padding:14px 16px;border-radius:10px;
                box-shadow:0 3px 12px rgba(0,0,0,0.25);
                z-index:999999;font-size:13px;min-width:170px;
            `;
    
            panel.innerHTML = `
                <div style="font-weight:bold;margin-bottom:10px;font-size:14px;">
                    周口继续教育自动学习
                </div>
                <div style="margin-bottom:6px;">状态: <span id="zkzj_st">${state.running ? '运行中' : '已暂停'}</span></div>
                <div style="margin-bottom:6px;">已完成: <span id="zkzj_ct">${state.doneCount}</span> 节</div>
                <div style="margin-bottom:10px;">倍速: <span id="zkzj_sp">${state.speed}</span>x</div>
                <div style="display:flex;gap:6px;flex-wrap:wrap;">
                    <button onclick="window.togZkzj()" style="
                        padding:5px 10px;border:none;border-radius:5px;
                        cursor:pointer;background:rgba(255,255,255,0.25);
                        color:#fff;font-size:12px;
                    ">${state.running ? '暂停' : '开始'}</button>
                    <button onclick="window.spdZkzj(1.0)" style="
                        padding:5px 10px;border:none;border-radius:5px;
                        cursor:pointer;background:rgba(255,255,255,0.25);
                        color:#fff;font-size:12px;
                    ">1x</button>
                    <button onclick="window.spdZkzj(1.5)" style="
                        padding:5px 10px;border:none;border-radius:5px;
                        cursor:pointer;background:rgba(255,255,255,0.25);
                        color:#fff;font-size:12px;
                    ">1.5x</button>
                    <button onclick="window.spdZkzj(2.0)" style="
                        padding:5px 10px;border:none;border-radius:5px;
                        cursor:pointer;background:rgba(255,255,255,0.25);
                        color:#fff;font-size:12px;
                    ">2x</button>
                </div>
            `;
    
            document.body.appendChild(panel);
            window.togZkzj = toggleAll;
            window.spdZkzj = setSpd;
            setInterval(refreshUI, 1000);
        }
    
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', startup);
        } else {
            startup();
        }
    })();
    
    #周口市#zkzj.jxjyedu.org.cn#继续教育
    专业技术人才人工智能通识继续教育网络公益课堂刷课脚本分享
    吉林省中盛佳源专技培训网刷课脚本分享

    ← 专业技术人才人工智能通识继续教育网络公益课堂刷课脚本分享 吉林省中盛佳源专技培训网刷课脚本分享→

    最近更新
    01
    吉林省中盛佳源专技培训网刷课脚本分享
    02
    菏泽市继续教育刷课脚本分享
    03
    国家中小学智慧教育平台刷课脚本分享
    更多文章>
    Copyright © 2025-2026
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式