"<!DOCTYPE html>\r\n<html lang=\"zh-CN\">\r\n\r\n<head>\r\n    <meta charset=utf-8>\r\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\r\n    <title>第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐 幼儿园视频课件及ppt下载 - 幼师ok网<\/title>\r\n    <link rel=\"icon\" href=\"\/youshiok\/favicon.ico\">\r\n    <meta name=\"keywords\" content=\"语言优质课,中班课件,中班音乐,音乐课件,我也要搭车,中班语言综合,绘本课件,我也要搭车PPT,配套课件,应彩云,幼儿园课件,幼儿园ppt\">\r\n        <meta name=\"description\" content=\"《我也要搭车》是一套针对中班儿童的语言绘本教学资源，包括优质课视频、PPT课件和简案教案。视频时长34分钟，内容涵盖故事理解、公共汽车搭乘规则和数分配概念。课件设计与其他版本有所不同，提供免费视频观看和课件预览。教学过程通过谈话导入，鼓励幼儿表达动物特征，并了解乘车安全。\">\r\n    <meta name=\"og:description\" content=\"《我也要搭车》是一套针对中班儿童的语言绘本教学资源，包括优质课视频、PPT课件和简案教案。视频时长34分钟，内容涵盖故事理解、公共汽车搭乘规则和数分配概念。课件设计与其他版本有所不同，提供免费视频观看和课件预览。教学过程通过谈话导入，鼓励幼儿表达动物特征，并了解乘车安全。\">\r\n        <meta name=\"og:site_name\" content=\"幼师ok网\">\r\n    <meta name=\"og:title\" content=\"第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐 幼儿园视频课件及ppt下载 - 幼师ok网\">\r\n    <script>\r\n        if (!!window.ActiveXObject || \"ActiveXObject\" in window) {\r\n            alert('程序检测到你使用IE浏览器，请用最新版Chrome\/Firefox\/Edge等浏览器访问幼师ok网~')\r\n        }\r\n        function checkES6Support() {\r\n            try {\r\n                \/\/ 尝试使用ES6的一些特性，例如箭头函数\r\n                eval('let fn = () => {};');\r\n                return true;\r\n            } catch (e) {\r\n                return false;\r\n            }\r\n        }\r\n        if (!checkES6Support()) {\r\n            alert('你的浏览器版本太低，请用最新版Chrome\/Firefox\/Edge等浏览器访问幼师ok网~')\r\n        }\r\n        let apiUrl = \"https:\/\/api.youshikejian.com\"\r\n        var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))\r\n        document.write('<meta name=\"viewport\" content=\"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '\" \/>');\r\n    <\/script>\r\n    <link rel=\"stylesheet\" href=\"\/youshiok\/style.css?0.0.20\">\r\n    <script type=\"text\/javascript\" src=\"\/youshiok\/js\/jquery-3.7.1.min.js\"><\/script>\r\n    <script type=\"text\/javascript\" src=\"\/youshiok\/js\/moment.min.js\"><\/script>\r\n    <script src=\"\/youshiok\/js\/jquery.qrcode.min.js\"> <\/script>\r\n    <script src=\"\/youshiok\/layer\/layer.js\"> <\/script>\r\n    <script type=\"text\/javascript\" src=\"\/youshiok\/js\/common.js?0.0.20\"><\/script>\r\n<\/head>\r\n\r\n<body><noscript><strong>Please enable JavaScript to continue.<\/strong><\/noscript>\r\n\r\n    <div class=\"maxwidth top\">\r\n        <a href=\"\/\"><img style=\"max-width: 150px;\" src=\"\/youshiok\/img\/logo.png\" alt=\"幼师ok网\"><\/a>\r\n                <p><strong style=\"font-size: 18px;\">超30万+幼师在这下载课件<\/strong><\/p>\r\n            <\/div>\r\n    <header>\r\n        <nav>\r\n            <ul class=\"maxwidth\">\r\n                <div class=\"left-menu\">\r\n                    <li><a href=\"\/\" >首页<\/a>\r\n                    <\/li>\r\n                    <li><a href=\"\/video\"  class=\"selected\"\r\n                            >优质课<\/a><\/li>\r\n                    <li><a href=\"\/resource\" >资源库<\/a><\/li>\r\n                    <li><a href=\"\/blog\" >免费教案<\/a><\/li>\r\n                     \r\n                <\/div>\r\n                <div class=\"right-menu\">\r\n                    <li style=\"float: right;\" class=\"pc\" id=\"userbar\">\r\n                        <a href=\"#\"><\/a>\r\n                    <\/li>\r\n                <\/div>\r\n            <\/ul>\r\n        <\/nav>\r\n    <\/header>\r\n    <main class=\"maxwidth\">\r\n        <div class=\"searchbar\">\r\n            <input type=\"text\" class=\"key\" placeholder=\"输入2~10个字\" value=\"\">\r\n            <button>搜索<\/button>\r\n        <\/div>\r\n        <script>\r\n    let id = \"1111\"\r\n    let state = \"\/video\/1111\" \r\n<\/script>\r\n<ul class=\"categorys\">\r\n        <li  class=\"active\" ><a\r\n                        href=\"\/video\">全部优质课<\/a>\r\n        <\/li>\r\n                <li ><a\r\n                        href=\"\/video-yuyanke\">语言优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-shuxueke\">数学优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-kexuekejian\">科学优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-shehuike\">社会优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-yinyueke\">音乐优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-meishuke\">美术优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-tiyuke\">体育优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-jiangkankejian\">健康优质课<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-anquanweike\">安全PPT<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-jiangkanweike\">健康PPT<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-shuxueweike\">数学PPT<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-kexueweike\">科学PPT<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-yuyankejian\">语言PPT<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-shehuiweike\">社会PPT<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-baibankejian\">希沃课件<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-jiazhanghui\">家长会ppt<\/a><\/li>\r\n                <li ><a\r\n                        href=\"\/video-meishuPPT\">美术PPT<\/a><\/li>\r\n        \r\n        <li><a href=\"\/tag\/video\/大班\">大班课件<\/a><\/li>\r\n        <li><a href=\"\/tag\/video\/中班\">中班课件<\/a><\/li>\r\n        <li><a href=\"\/tag\/video\/小班\">小班课件<\/a><\/li>\r\n<\/ul>\r\n<ul class=\"breadcrumb\">\r\n    <li><a href=\"\/\">首页<\/a>&nbsp;>&nbsp;<\/li>\r\n    <li><a href=\"\/video\">优质课<\/a>&nbsp;>&nbsp;<\/li>\r\n        <li><a href=\"\/video-yuyanke\">语言优质课<\/a>&nbsp;>&nbsp;<\/li>\r\n        <li>第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐<\/li>\r\n<\/ul>\r\n<div class=\"course\">\r\n    <div class=\"left\">\r\n        <h1>第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐<\/h1>\r\n        <div class=\"price\">单价：<em>¥13.00元<\/em> &nbsp;<s\r\n                class=\"ccc\">原价：¥30.00元<\/s>\r\n        <\/div>\r\n        <div class=\"thumb\">\r\n            <img src=\"https:\/\/img.youshikejian.com\/uploads\/2022\/04\/28\/79702f1618884ba0f856c9c6bce95263.jpg!thumb\" alt=\"第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐\">\r\n        <\/div>\r\n        <p class=\"intro\">《我也要搭车》应彩云中班语言活动游戏教学公开课，完整视频34分钟，本课件PPT教学目标1、理解故事，说说动物的明显特征，发现自己的特长，感受和别人不一样的乐趣。2、了解搭乘公共汽车的规则，初步建立乘车安全的意识。3、了解简单的数分配的概念<\/p>\r\n        <div class=\"keywords\">\r\n                        <a href=\"\/tag\/video\/中班语言综合\">中班语言综合<\/a>\r\n                        <a href=\"\/tag\/video\/绘本课件\">绘本课件<\/a>\r\n                        <a href=\"\/tag\/video\/我也要搭车PPT\">我也要搭车PPT<\/a>\r\n                        <a href=\"\/tag\/video\/配套课件\">配套课件<\/a>\r\n                        <a href=\"\/tag\/video\/应彩云\">应彩云<\/a>\r\n                    <\/div>\r\n        <div class=\"mpqr\">\r\n            <img src=\"\/youshiok\/img\/youshiok-mp.png\" alt=\"幼师ok网\">\r\n        <\/div>\r\n        <h2 style=\"padding: 20px 0;\">热门课件<\/h2>\r\n        <ul>\r\n                        <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"一等奖大班美术《斑马的魔法衣》幼师优质课公开课+PPT+教案+说课稿\"><a href=\"\/video\/2886\">一等奖大班美术《斑马的魔法衣》幼师优质课公开课+PPT+教案+说课稿<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"中班语言《想长大的小熊》有声PPT课件教案\"><a href=\"\/video\/7258\">中班语言《想长大的小熊》有声PPT课件教案<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"大班数学《疯狂动物城》规律排序视频+教案+课件+希沃\"><a href=\"\/video\/7341\">大班数学《疯狂动物城》规律排序视频+教案+课件+希沃<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"大班科学《筷子搭桥》公开课视频+教案+课件+记录表\"><a href=\"\/video\/7347\">大班科学《筷子搭桥》公开课视频+教案+课件+记录表<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"幼儿园大班美术《手形创意画》公开课视频+PPT课件+教案+反思+音乐\"><a href=\"\/video\/1081\">幼儿园大班美术《手形创意画》公开课视频+PPT课件+教案+反思+音乐<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"一等奖大班韵律优质课《跑跑镇》音乐公开课视频含课件PPT教案音乐\"><a href=\"\/video\/2932\">一等奖大班韵律优质课《跑跑镇》音乐公开课视频含课件PPT教案音乐<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"中班数学《好玩的梯形》公开课视频+教案+希沃+打印图+音乐\"><a href=\"\/video\/7362\">中班数学《好玩的梯形》公开课视频+教案+希沃+打印图+音乐<\/a>\r\n            <\/li>\r\n                                    <li style=\"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:100%;padding: 10px 0;\"\r\n                title=\"小中班语言社会《有礼貌的小熊》课件PPT微课教案\"><a href=\"\/video\/6990\">小中班语言社会《有礼貌的小熊》课件PPT微课教案<\/a>\r\n            <\/li>\r\n                                <\/ul>\r\n    <\/div>\r\n    <div class=\"right\">\r\n                <div style=\"padding: 10px 0;font-size: 14px;\"><strong>附件包含文件列表：<\/strong><\/div>\r\n        <div style=\"max-height: 400px; overflow-y: auto;background-color: #eee;padding: 5px;\" id=\"reviewFile\">\r\n            <div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-word\" style=\"color: #2563eb;\"><\/i><span class=\"file-title\" title=\"PPT音乐无法播放怎么办？ - 幼师OK网.doc\">PPT音乐无法播放怎么办？ - 幼师OK网.doc<\/span><span class=\"file-size\">1.23 MB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-video\" style=\"color: #0ea5e9;\"><\/i><span class=\"file-title\" title=\"中班《我也要搭车》.mp4\">中班《我也要搭车》.mp4<\/span><span class=\"file-size\">224.66 MB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-audio\" style=\"color: #8b5cf6;\"><\/i><span class=\"file-title\" title=\"撞车.mp3\">撞车.mp3<\/span><span class=\"file-size\">38.4 KB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-word\" style=\"color: #2563eb;\"><\/i><span class=\"file-title\" title=\"教案.docx\">教案.docx<\/span><span class=\"file-size\">197.69 KB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-audio\" style=\"color: #8b5cf6;\"><\/i><span class=\"file-title\" title=\"纯音乐 - 是你想我吗.mp3\">纯音乐 - 是你想我吗.mp3<\/span><span class=\"file-size\">517.67 KB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-powerpoint\" style=\"color: #f97316;\"><\/i><span class=\"file-title\" title=\"课件.pptx\">课件.pptx<\/span><span class=\"file-size\">7.32 MB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-audio\" style=\"color: #8b5cf6;\"><\/i><span class=\"file-title\" title=\"锯子.mp3\">锯子.mp3<\/span><span class=\"file-size\">180.82 KB<\/span><\/div><div class=\"file-item\" style=\"margin-left: 0px;\"><i class=\"file-icon fa-solid fa-file-audio\" style=\"color: #8b5cf6;\"><\/i><span class=\"file-title\" title=\"音乐新.mp3\">音乐新.mp3<\/span><span class=\"file-size\">234.73 KB<\/span><\/div>        <\/div>\r\n                <p><b>本课完整视频34分钟，提供配套课件+教案+音乐。<\/b><\/p><p>教案是简案。<\/p><p>应老师这个课上过几个版本，这个版本的课件跟其他版本课件的有些不一样，如果您需要某个版本的，请一定要先确认好<\/p><p><b>本课视频免费，点击下方播放：<\/b><\/p><p><iframe webkitallowfullscreen=\"\" mozallowfullscreen=\"\" allowfullscreen=\"\" frameborder=\"0\" height=\"498\" width=\"510\" src=\"\/\/player.youku.com\/embed\/XNDM3MDYxMzEyOA\"><\/iframe><\/p><p>课件预览：<\/p><p><img src=\"https:\/\/img.youshikejian.com\/uploads\/2020\/10\/26\/3b39c900faf30af36ffb4eb07a6a34db.jpg!w600\"><\/p><p><img src=\"https:\/\/img.youshikejian.com\/uploads\/2020\/10\/26\/920bc48d7c0c6caa4ab9fcc8762cdf71.jpg!w600\"><\/p><p><b>一教学目标<\/b><\/p><p>1、理解故事，说说动物的明显特征，发现自己的特长，感受和别人不一样的乐趣。<\/p><p>2、了解搭乘公共汽车的规则，初步建立乘车安全的意识。<\/p><p>3、了解简单的数分配的概念<\/p><p><b>二、教学准备<\/b><\/p><p>PPT<\/p><p>三、教学过程<\/p><p>1、谈话导入，引发兴趣<\/p><p>（出示狮子爷爷图片）这是谁？狮子爷爷，他旁边一个工具箱，想做什么呢？<\/p><p>原来狮子爷爷做了一辆斑马车，带森林里的朋友去海边玩。<\/p><p>2、讲讲玩玩，能模仿动物间的对话，鼓励幼儿大胆清晰地表达动物的特征。<\/p><p>（1）小兔上车：（用一句话来告诉狮子爷爷：我要来搭车，我是XXX的小兔，我会....）<\/p><p>狮子爷爷定的规则：不可以车上乱跳。<\/p><p>小刺猬上车：<\/p><p>师：如果你是它，该怎样向狮子爷爷介绍呢？<\/p><p>狮子爷爷定的规则：不可以刺到别人。<\/p><p>松鼠们搭车：<\/p><p>师：如果你是小松鼠，该怎样向狮子爷爷介绍呢？<\/p><p>狮子爷爷定的规则：一个个上车。<\/p><p>长颈鹿搭车：<\/p><p>师：如果你是长颈鹿，该怎样向狮子爷爷介绍呢？<\/p><p>狮子爷爷定的规则：别把脖子探出窗口。<\/p><p>（2）出示动物们图片。请小动物搭车<\/p><p>幼儿选择一张小动物的图片，说出他的特别的地方，它就可以坐上狮子爷爷的车了。<\/p><p>......<\/p>         \r\n    <\/div>\r\n<\/div>\r\n<h2 style=\"padding: 20px 0;\">更多中班音乐课件<\/h2>\r\n<ul class=\"card\">\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2026\/0422\/8do7s_0ad6686ddeac6dba98deac3bd33b3621.jpg!thumb\" alt=\"中班语言《哼将军和哈将军》应彩云优质课+教案PPT音乐\" \/>\r\n        <a href=\"\/video\/7357\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥9.9元<\/span>中班语言《哼将军和哈将军》应彩云优质课+教案PPT音乐 <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2026\/0422\/nzke6_80e0e7f3ab951ec12fcc160170750053.jpg!thumb\" alt=\"名师中班韵律《美味餐厅》优质课视频+PPT+教案+音乐+说课稿\" \/>\r\n        <a href=\"\/video\/7356\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥9.9元<\/span>名师中班韵律《美味餐厅》优质课视频+PPT+教案+音乐+说课稿 <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2024\/1010\/pjdbv_5bbf92c4d90f6b50aa713c3d03381ca4.jpg!thumb\" alt=\"中班语言《咕咚来了》应彩云优质课PPT课件教案音乐\" \/>\r\n        <a href=\"\/video\/7109\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥15元<\/span>中班语言《咕咚来了》应彩云优质课PPT课件教案音乐 <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2025\/0419\/7b22l_c3e979dea58b7408c623b7354bbb2ae2.png!thumb\" alt=\"一等奖中班语言《嘘！我们有个计划》优质课视频+教案PPT课件+音乐+打印图\" \/>\r\n        <a href=\"\/video\/7291\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥16元<\/span>一等奖中班语言《嘘！我们有个计划》优质课视频+教案PPT课件+音乐+打印图 <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2026\/0429\/cmdnu_392aca518b62eb83b6748b3d6a137e79.jpg!thumb\" alt=\"中班数学《好玩的梯形》公开课视频+教案+希沃+打印图+音乐\" \/>\r\n        <a href=\"\/video\/7362\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥9.9元<\/span>中班数学《好玩的梯形》公开课视频+教案+希沃+打印图+音乐 <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2022\/01\/28\/21f96563b9ee8756ce5a217ce36e34a1.png!thumb\" alt=\"中班音乐游戏《快乐的青蛙》公开课视频教案音乐\" \/>\r\n        <a href=\"\/video\/1984\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥10元<\/span>中班音乐游戏《快乐的青蛙》公开课视频教案音乐 <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2024\/0615\/m22ft_7daee4da82313537647ef62836119ada.png!thumb\" alt=\"中班语言课件《有趣的影子》有声动态PPT+教案+音乐（无公开课视频）\" \/>\r\n        <a href=\"\/video\/6942\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥10元<\/span>中班语言课件《有趣的影子》有声动态PPT+教案+音乐（无公开课视频） <\/a>\r\n    <\/li>\r\n        <li class=\"item\">\r\n        <img src=\"https:\/\/img.youshikejian.com\/uploads\/2026\/0422\/c0qa9_1b12eeff38d677d5528a0f495334d9d8.jpg!thumb\" alt=\"中班音乐《猫和老鼠奶酪大冒险》公开课视频+教案+希沃+音乐\" \/>\r\n        <a href=\"\/video\/7355\" target=\"_blank\" class=\"title\"><span\r\n                class=\"price\">¥9.9元<\/span>中班音乐《猫和老鼠奶酪大冒险》公开课视频+教案+希沃+音乐 <\/a>\r\n    <\/li>\r\n    <\/ul>\r\n<link rel=\"stylesheet\" href=\"\/youshiok\/font-awesome\/css\/all.min.css\">\n<script src=\"\/youshiok\/js\/md5.js\"><\/script>\n<!-- 购买栏部分 -->\n<div class=\"buybar\">\n    <li class=\"fav\" id=\"courseFavorite\">收藏 <\/li>\n    <li class=\"download animated-button\" id=\"courseDownload\">\n        下载\n                <div class=\"file-list-card\">\n            <div class=\"card-header\">\n                <span>下载后你将获取下列文件<\/span>\n                <span class=\"close-btn\">×<\/span>\n            <\/div>\n            <div class=\"card-content\" id=\"fileListContent\">\n            <\/div>\n        <\/div>\n            <\/li>\n<\/div>\n\n<!-- 样式部分 -->\n<style>\n    \/* 下载按钮及卡片整体样式 *\/\n    .download {\n        position: relative;\n    }\n\n    .file-list-card {\n        position: absolute;\n        bottom: 100%;\n        left: 0;\n        max-width: 600px;\n        min-width: 400px;\n        max-height: 500px;\n        overflow: hidden;\n        \/* 隐藏溢出内容 *\/\n        background: #fff;\n        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);\n        border-radius: 8px;\n        padding: 15px;\n        transform: translateY(20px);\n        transition: all 0.3s ease;\n        z-index: 100;\n        display: none;\n        \/* 默认隐藏 *\/\n    }\n\n\n    \/* 卡片头部样式 *\/\n    .card-header {\n        font-weight: bold;\n        margin-bottom: 12px;\n        padding-bottom: 8px;\n        border-bottom: 1px solid #eee;\n        color: #333;\n        font-size: 16px;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        position: sticky;\n        \/* 设置为粘性定位 *\/\n        top: 0;\n        \/* 固定在顶部 *\/\n        background-color: white;\n        \/* 设置背景色，防止内容滚动时遮挡 *\/\n        z-index: 1;\n        \/* 确保在内容之上 *\/\n    }\n\n    .card-content {\n        max-height: calc(400px - 60px);\n        \/* 根据实际情况调整高度，减去 header 的高度 *\/\n        overflow-y: auto;\n        \/* 内容超出时显示垂直滚动条 *\/\n    }\n\n    \/* 文件项样式 *\/\n    .file-item {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        padding: 8px 0;\n    }\n\n    .file-item:hover>* {\n        color: red;\n    }\n\n    .file-title {\n        color: #000;\n        font-size: 14px;\n        flex-grow: 1;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n    }\n\n    .file-size {\n        color: #000;\n        width: 100px;\n        text-align: center;\n        font-size: 11px;\n    }\n\n    .file-icon {\n        width: 20px;\n        height: 20px;\n        margin-right: 3px;\n        font-size: 18px;\n        background: none;\n    }\n\n    \/* 文件夹分组样式 *\/\n    .folder-group {\n        margin-bottom: 15px;\n    }\n\n    .folder-title {\n        font-weight: bold;\n        color: #000;\n        font-size: 14px;\n        margin-bottom: 8px;\n        display: flex;\n        align-items: center;\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        max-width: 100%;\n        min-width: 0;\n        \/* 添加这一行解决flex布局下的溢出问题 *\/\n    }\n\n    .folder-title>span {\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n    }\n\n    .folder-content {\n        margin-left: 8px;\n    }\n\n    \/* 关闭按钮样式 *\/\n    .close-btn {\n        cursor: pointer;\n        font-size: 20px;\n        color: #999;\n    }\n\n    .close-btn:hover {\n        color: #333;\n    }\n\n    \/* 小屏幕适配 *\/\n    @media (max-width: 768px) {\n        .file-list-card {\n            left: -50vw;\n            right: 0;\n            max-width: none;\n            min-width: 300px;\n            width: 96vw;\n            transform: translateY(20px);\n        }\n    }\n<\/style>\n\n<!-- 脚本部分 -->\n<script>\n    $(document).ready(() => {\n\n        let lockKey = 'course:view_lock:' + id;\n        if (!cache(lockKey)) {\n            $.post(apiUrl + \"\/course\/\" + id + \"\/view\", { sign: hex_md5(id + '@' + moment().format('YYYY-MM-DD')) }, (rs) => {\n                if (rs.code) cache(lockKey, 1, 3600);\n            });\n        }\n\n        if (userInfo) {\n            $.get(apiUrl + \"\/user\/course\/\" + id + \"\/favorites\/check\", (rs) => {\n                if (rs.code) $('#courseFavorite').html('已收藏').addClass('active');\n                else $('#courseFavorite').html('收藏').removeClass('active');\n            });\n        }\n\n        $('#courseDownload').click(() => {\n            if (id == 2637) {\n                layer.alert('已购买资源包可加客服微信领取赠品');\n                return;\n            }\n            if (!userInfo) openLoginModal();\n            else {\n                $.post(apiUrl + \"\/course\/\" + id + \"\/download\", (rs) => {\n                    if (rs.code) {\n                        let info = rs.data;\n                        if (info.downloadType == 'vip') {\n                            layer.confirm(`首次下载会扣除下载次数，剩 ${info.availableNum} 次，是否下载？`, {\n                                title: '确定下载此课件吗？',\n                                btn: ['确认下载', '再想想']\n                            }, (index) => {\n                                info.availableNum = info.availableNum - 1;\n                                openDownloadModal(info);\n                                layer.close(index);\n                            });\n                        } else openDownloadModal(info);\n                    } else {\n                        openVipPaymentModal();\n                        if (rs.data.errorType == 'useup') {\n                            layer.confirm(`😵${rs.message}`, {\n                                title: '下载失败',\n                                btn: ['去购买套餐', '下载记录']\n                            }, (index) => layer.close(index), (index) => location.href = '\/user');\n                        } else layer.msg(rs.message);\n                    }\n                });\n            }\n        });\n\n        $('#courseFavorite').click(() => {\n            let obj = $('#courseFavorite');\n            if (!userInfo) openLoginModal();\n            else {\n                if (obj.html() == '已收藏') {\n                    layer.confirm('确定要取消收藏吗', {\n                        title: '取消收藏',\n                        btn: ['确定', '再想想']\n                    }, (index) => {\n                        layer.msg('取消收藏', { icon: 1 });\n                        $.ajax({\n                            url: apiUrl + \"\/user\/course\/\" + id + \"\/favorites\",\n                            type: 'delete',\n                            success: (rs) => {\n                                if (rs.code) obj.html('收藏').removeClass('active');\n                            }\n                        });\n                    });\n                } else {\n                    $.post(apiUrl + \"\/user\/course\/\" + id + \"\/favorites\", (rs) => {\n                        if (rs.code) {\n                            obj.html('已收藏').addClass('active');\n                            layer.msg('已收藏', { icon: 1 });\n                        } else obj.html('收藏');\n                    });\n                }\n            }\n        });\n    });\n<\/script>\r\n<!-- HTML 结构 -->\r\n<div class=\"modal\" id=\"downloadModal\">\r\n    <div class=\"overlay\" close=\"click\"><\/div>\r\n    <div class=\"main\" style=\"max-width: 500px;\">\r\n        <div class=\"header\">\r\n            <span class=\"title\">下载<\/span>\r\n            <span class=\"close\">关闭<\/span>\r\n        <\/div>\r\n        <div class=\"body\">\r\n            <div class=\"loading\">\r\n                <div><\/div>\r\n                <div><\/div>\r\n            <\/div>\r\n            <div id=\"download\">\r\n                <div class=\"title\">第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐<\/div>\r\n                <div class=\"intro\"><\/div>\r\n                <div class=\"items\">\r\n                    <div class=\"item\" id=\"pan\">\r\n                        <div class=\"item-title\">☁️ 下载方式<\/div>\r\n                        <div class=\"item-intro\">百度网盘下载<\/div>\r\n                        <div>\r\n                            <textarea title=\"右键可复制网盘链接~如果网盘链接失效请加客服补发\" rows=\"5\" onfocus=\"this.select();\"><\/textarea>\r\n                            <div class=\"copy-tips\">如果网盘链接失效请加客服补发，也可以用电脑浏览器下载<\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"item\" id=\"pc\">\r\n                        <div class=\"item-title\">🖥️ 下载方式<\/div>\r\n                        <div class=\"item-intro\">电脑浏览器下载<\/div>\r\n                        <div class=\"item-body\">\r\n                            <span id=\"zip\" class=\"download-link\"><img class=\"zip-icon\" src=\"\/youshiok\/img\/icon-zip.png\"\r\n                                    alt=\"ZIP 图标\" \/>点击下载压缩包<\/span>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"mp\">\r\n                <img src=\"\/youshiok\/img\/youshiok-mp.png\" alt=\"幼师ok网公众号\" \/>\r\n                <p>关注微信公众号，方便下次访问<\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- JavaScript 逻辑 -->\r\n<script>\r\n    $(document).ready(() => {\r\n        $('#downloadModal #zip').on('click', function () {\r\n            if (isMobile()) {\r\n                layer.alert('⚠️ 请用电脑浏览器下载压缩包~<br><span class=\"c666\">手机端只支持百度网盘方式下载<\/span><br><span class=\"c666\">如果网盘无法下载加客服微信反馈<\/span>');\r\n            } else {\r\n                const url = $(this).data('url');\r\n                if (url) {\r\n                    layer.msg('开始下载');\r\n                    window.location.href = url;\r\n                } else {\r\n                    layer.alert('下载链接无效，请联系客服');\r\n                }\r\n            }\r\n        });\r\n\r\n        $('#downloadModal .close, #downloadModal .overlay').on('click', function () {\r\n            $('#downloadModal .overlay').removeClass('active');\r\n            $('#downloadModal .main').removeClass('active');\r\n        });\r\n    });\r\n\r\n    function openDownloadModal(info) {\r\n        if ($('.overlay').hasClass('active')) {\r\n            return;\r\n        }\r\n\r\n        $('#downloadModal .loading').show();\r\n        $('#downloadModal #download').hide();\r\n\r\n        $.post(apiUrl + \"\/download\/\" + info.downloadToken, { f: 'ok网:' + os() + '_' + browser() + ':' + window.screen.width })\r\n            .done((rs) => {\r\n                const $intro = $('#download .intro');\r\n                $('textarea').html(rs.data.panUrl);\r\n\r\n                if (rs.data.downloadUrl) {\r\n                    $('#pc #zip').data('url', rs.data.downloadUrl);\r\n                    $('#pc').show();\r\n                } else {\r\n                    $('#pc').hide();\r\n                }\r\n\r\n                if (info.downloadType === 'course') {\r\n                    const expireDate = moment(info.paydate).add(1, 'y').format('YYYY-MM-DD HH:mm:ss');\r\n                    $intro.html(`<span>下载方式：<b>单课购买<\/b><\/span><span>下载有效期：<b>${expireDate}<\/b><\/span>`);\r\n                } else {\r\n                    const expireDate = moment(info.expire).format('YYYY-MM-DD HH:mm:ss');\r\n                    $intro.html(`<span>下载方式：<b>套餐下载<\/b><\/span><span>套餐剩余：<b style=\"color:red\">${info.availableNum}<\/b> 个<\/span><span>套餐到期：<b>${expireDate}<\/b><\/span>`);\r\n                }\r\n\r\n                setTimeout(() => {\r\n                    $('#downloadModal .loading').hide();\r\n                    $('#downloadModal #download').show();\r\n                }, 800);\r\n            })\r\n            .fail(() => {\r\n                layer.alert('获取下载信息失败，请稍后重试');\r\n                $('#downloadModal .loading').hide();\r\n            });\r\n\r\n        $('#downloadModal .overlay').addClass('active');\r\n        $('#downloadModal .main').addClass('active');\r\n    }\r\n<\/script>\r\n\r\n<!-- CSS 样式 -->\r\n<style>\r\n    #downloadModal .loading {\r\n        margin: 100px auto 0 auto;\r\n    }\r\n\r\n    #downloadModal #download {\r\n        display: none;\r\n    }\r\n\r\n    #downloadModal .title {\r\n        font-weight: bold;\r\n        margin-top: 10px;\r\n        text-align: center;\r\n    }\r\n\r\n    #downloadModal .intro {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        justify-content: center;\r\n        gap: 10px;\r\n        color: #666;\r\n        padding: 10px;\r\n        font-size: 13px;\r\n    }\r\n\r\n    #downloadModal .intro span {\r\n        white-space: nowrap;\r\n    }\r\n\r\n    #downloadModal .intro b {\r\n        color: #20aef0;\r\n    }\r\n\r\n\r\n    #downloadModal .items {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 30px;\r\n        justify-content: center;\r\n        margin: 10px;\r\n    }\r\n\r\n    #downloadModal .items .item {\r\n        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\r\n        width: 100%;\r\n        padding: 15px;\r\n        box-sizing: border-box;\r\n        border: 1px solid #eee;\r\n        border-radius: 8px;\r\n        transition: box-shadow 0.3s ease;\r\n    }\r\n\r\n    #downloadModal .items .item:hover {\r\n        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\r\n    }\r\n\r\n    #downloadModal .item-title {\r\n        font-weight: bold;\r\n        color: #333;\r\n    }\r\n\r\n    #downloadModal .item-intro {\r\n        color: #999;\r\n        padding: 10px 0;\r\n        font-size: 13px;\r\n    }\r\n\r\n    #downloadModal a {\r\n        text-decoration: underline;\r\n    }\r\n\r\n    #downloadModal textarea {\r\n        width: 100%;\r\n        border: 1px solid #ddd;\r\n        border-radius: 4px;\r\n        background-color: #f9f9f9;\r\n        padding: 10px;\r\n        resize: vertical;\r\n        transition: border-color 0.3s ease;\r\n        box-sizing: border-box;\r\n        max-height: 150px;\r\n    }\r\n\r\n    #downloadModal textarea:focus {\r\n        outline: none;\r\n        border-color: #20aef0;\r\n        box-shadow: 0 0 4px rgba(32, 174, 240, 0.3);\r\n    }\r\n\r\n    #downloadModal .download-link {\r\n        display: inline-block;\r\n        color: #20aef0;\r\n        cursor: pointer;\r\n        transition: color 0.3s ease;\r\n    }\r\n\r\n    #downloadModal .download-link:hover {\r\n        color: #0e73df;\r\n    }\r\n\r\n    #downloadModal .zip-icon {\r\n        height: 20px;\r\n        margin-right: 5px;\r\n        vertical-align: middle;\r\n    }\r\n\r\n    #downloadModal .copy-tips {\r\n        font-size: 12px;\r\n        color: #333;\r\n    }\r\n\r\n    #downloadModal .mp {\r\n        margin: 20px auto;\r\n        text-align: center;\r\n    }\r\n\r\n    #downloadModal .mp img {\r\n        max-width: 300px;\r\n    }\r\n\r\n    @media (max-width: 640px) {\r\n\r\n\r\n        #downloadModal .main {\r\n            max-width: 98%;\r\n            top: 2vh;\r\n        }\r\n\r\n        #downloadModal .body {\r\n            min-height: auto;\r\n            max-height: 90vh;\r\n        }\r\n\r\n        #downloadModal .items {\r\n            gap: 15px;\r\n        }\r\n\r\n        #downloadModal .items .item {\r\n            padding: 10px;\r\n        }\r\n\r\n    }\r\n<\/style>\r\n<script src=\"\/youshiok\/js\/jquery.jumptext.js\"><\/script>\n<!--会员支付弹窗-->\n<div class=\"modal\" id=\"paymentModal\">\n    <div class=\"overlay\"><\/div>\n    <div class=\"main\" style=\"max-width: 700px;\">\n        <div class=\"header\">\n            <span class=\"title\">支付<\/span>\n            <span class=\"close\">关闭<\/span>\n        <\/div>\n        <div class=\"body\">\n            <div class=\"loading\">\n                <div><\/div>\n                <div><\/div>\n            <\/div>\n            <div id=\"pay\">\n                <div class=\"menu\">\n                    <li class=\"active\">套餐<\/li>\n                                        <li class=\"course\" style=\"color:#eee\">单课购买<\/li>\n                                    <\/div>\n                <div class=\"items\">\n                    loading\n                <\/div>\n                <div class=\"desc\">请选择要购买的套餐👆<\/div>\n                <div class=\"mobilebar\">\n                    <a target=\"_blank\"><button>微信支付<\/button><\/a>\n                <\/div>\n                <div class=\"qrbar\">\n                    <div id=\"qrcode\"><\/div>\n                    <div class=\"tips\">微信扫码支付<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<script>\n    let datas = []\n    let vipTimer\n    $(document).ready(function () {\n        if (browser() == 'weixin') {\n            mobile = 2\n            $('#pay').html('<p style=\"text-align:center;\"><img style=\"width:250px;\" src=\"\/img\/ysjk_qr.jpg\" \/><br\/>加微信购买<\/p>');\n            return\n        }\n        let obj = $('#paymentModal')\n        obj.find('.close').click(function () {\n            clearInterval(vipTimer) \/\/关闭计时器\n        })\n        obj.find('.menu li.course').click(() => { \/\/单课购买\n            coursePayment()\n            if (browser() == 'weixin') {\n                alert('请用浏览器访问www.youshiok.com购买')\n            }\n        })\n        obj.find('.items').on('click', '.item', function () {\n            obj.find('.items .active').removeClass('active')\n            $(this).addClass('active')\n            let type = $(this).data('type')\n            obj.find('.desc').html(datas[type].desc)\n            \/\/下单\n            let mobile = 0\n            if (isMobile()) {\n                if (browser() == 'weixin') {\n                    mobile = 2\n                    $('#pay').html('<p style=\"text-align:center;\"><img src=\"\/img\/ysjk_qr.jpg\" \/>加微信购买<\/p>');\n                    return\n                } else {\n                    mobile = 1\n                }\n            }\n            $.post(apiUrl + \"\/order\", {\n                url: window.location.href,\n                orderType: 0,\/\/0=会员;1=课程\n                goodsType: type,\n                isMobile: mobile, \/\/pc=0;手机=1,公众号=2\n                openid: '',\n                f: 'ok网:' + os() + '_' + browser() + ':' + window.screen.width\n            }, function (rs) {\n                checkPayment(rs.data.oid) \/\/检查支付状态\n                if (isMobile()) {\n                    if (browser() == 'weixin') {\n                        obj.find('.mobilebar').show()\n                        obj.find('.mobilebar button').attr('onclick', 'goMpPay(\\'' + rs.data.oid + '\\')')\n                    } else {\n                        $.post(apiUrl + \"\/payment\/wechat\/h5\", { oid: rs.data.oid }, (rs2) => { \/\/调用微信h5支付\n                            if (rs2.code) {\n                                obj.find('.mobilebar').show()\n                                obj.find('.mobilebar a').prop('href', rs2.data.mweb_url)\n                            } else {\n                                layer.alert('支付时出错了,请稍后重试<br> 也可以加技术微信进行反馈(代码h5001):<br> youshiok_com')\n                            }\n                        })\n                    }\n                } else {\n                    obj.find('.qrbar').show()\n                    obj.find('#qrcode').html('<div class=\"loading\" style=\"width:100px;height:100px;\"> <div><\/div> <div><\/div> <\/div>')\n                    $.post(apiUrl + \"\/payment\/wechat\/pc\", { oid: rs.data.oid }, (rs1) => { \/\/调用微信pc支付\n                        if (rs1.code) {\n                            obj.find('#qrcode').html('').qrcode({\n                                width: 128,\n                                height: 128,\n                                text: rs1.data.code_url\n                            }).show();\n                        } else {\n                            layer.alert('支付时出错了,请稍后重试<br> 也可以加技术微信进行反馈(代码pc001):<br> youshiok_com')\n                        }\n                    })\n                }\n            })\n        })\n    })\n\n    \/\/打开支付窗口\n    function openVipPaymentModal() {\n        if ($('.overlay').hasClass('active')) { \/\/防止打开多个窗口\n            return\n        }\n        let obj = $('#paymentModal')\n        \/\/初始化\n        obj.find('.loading').show()\n        obj.find('#pay').hide()\n        if (browser() == 'weixin') {\n            obj.find('.desc').html('请用浏览器访问www.youshiok.com购买')\n        } else {\n            obj.find('.desc').html('请选择要购买的套餐👆')\n        }\n        obj.find('.qrbar').hide()\n        obj.find('.overlay').addClass('active')\n        obj.find('.main').addClass('active')\n        $.get(apiUrl + \"\/goods\", (rs) => {\n            let html = \"\"\n            if (rs.code) {\n                for (let key in rs.data) {\n                    let item = rs.data?.[key]\n                    datas[item.type] = item\n\n                    html += `\n                    <div class='item' data-type='${item.type}'>\n                        <div class='title'>${item.title}<\/div>\n                        ${key == 2 ? '<div class=\"hot-tag shine\">热销<\/div>' : ''}\n                        <div><b class='price'>¥${item.price}元<\/b><br><s class=\"ccc jump\">原价¥${item.price * 2}元<\/s><\/div>\n                        <div class='c333'>可以下载<span class='red'>${item.totalNum}个<\/span>优质课和资源<\/div>\n                        <div class='expire' title='有效期${item.day}天,过期没用完自动作废'>有效期：${item.day}天<\/div>\n                    <\/div>\n                    `\n                }\n                obj.find('.items').html(html)\n                $('#paymentModal .jump').last().jumpingText({\n                    delay: 300,\n                    height: 12,\n                    duration: 100,\n                    loop: true\n                });\n            }\n            setTimeout(() => {\n                obj.find('.loading').hide()\n                obj.find('#pay').show()\n            }, 800)\n        })\n    }\n\n    function checkPayment(oid) {\n        clearInterval(vipTimer)\n        vipTimer = setInterval(() => {\n            $.post(apiUrl + \"\/order\/paymentStatus\", { oid: oid }, (rs) => {\n                if (rs.data.status) {\n                    layer.msg('支付成功,可以下载了')\n                    setTimeout(() => {\n                        location.reload()\n                    }, 3000)\n                }\n            })\n        }, 3000)\n    }\n\n<\/script>\n<style>\n    #paymentModal #pay {\n        display: none;\n    }\n\n    #paymentModal .red {\n        color: rgb(255, 0, 127);\n    }\n\n    #paymentModal .loading {\n        margin: 10% auto;\n    }\n\n    #paymentModal .qrbar .tips {\n        text-align: center;\n        padding: 5px;\n        color: #07C160;\n    }\n\n\n    #paymentModal .mobilebar {\n        display: none;\n        text-align: center;\n        padding: 20px;\n    }\n\n    #paymentModal .mobilebar button {\n        margin: 10px auto;\n        padding: 10px 30px;\n        border-radius: 3px;\n        font-size: 16px;\n        border: none;\n        outline: none;\n        cursor: pointer;\n        color: white;\n        background-color: #07C160;\n    }\n\n    #paymentModal .qrbar {\n        display: none;\n    }\n\n    #paymentModal .desc {\n        text-align: center;\n        background-image: linear-gradient(45deg, #ff0000, #5500ff);\n        -webkit-background-clip: text;\n        background-clip: text;\n        color: transparent;\n    }\n\n    #paymentModal #qrcode {\n        margin: 20px auto;\n    }\n\n    #paymentModal .menu {\n        display: flex;\n        justify-content: center;\n        gap: 10%;\n        margin: 20px 0;\n    }\n\n    #paymentModal .menu li {\n        line-height: 2em;\n        cursor: pointer;\n    }\n\n    #paymentModal .menu li.active {\n        color: rgb(41, 121, 255);\n        border-bottom: 2px solid rgb(41, 121, 255);\n    }\n\n    #paymentModal .items {\n        font-size: 13px;\n        line-height: 2.2em;\n        display: flex;\n        justify-content: space-between;\n        flex-direction: row-reverse;\n        align-items: center;\n        gap: 2%;\n        margin: 5%;\n    }\n\n    @media (max-width: 768px) {\n        #paymentModal .items {\n            font-size: 12px;\n            line-height: 2em;\n            gap: 1%;\n            margin: 1%;\n        }\n    }\n\n    #paymentModal .items .item {\n        border-radius: 10px;\n        width: calc(100% \/ 3);\n        cursor: pointer;\n        text-align: center;\n        box-sizing: border-box;\n        padding: 1%;\n        border: solid #eee 1px;\n    }\n\n    #paymentModal .items .item.active {\n\n        border: dashed rgb(255, 0, 127) 1px;\n        box-shadow: 0px 0px 10px #969292;\n    }\n\n    #paymentModal .items .item:hover {\n        box-shadow: 0px 0px 10px #969292;\n    }\n\n    #paymentModal .items .item .title {\n        margin-top: 20px;\n        text-align: center;\n        font-weight: bold;\n        font-size: 18px;\n    }\n\n    #paymentModal .items .item .price {\n        font-weight: bold;\n        color: red;\n        padding: 10px 0;\n        text-align: center;\n        font-size: 20px;\n    }\n\n    #paymentModal .items .item .expire {\n        color: #666;\n    }\n\n    #paymentModal .items .item .hot-tag {\n        position: absolute;\n        top: -10px;\n        right: -10px;\n        background: #e408d1;\n        color: white;\n        padding: 2px 8px;\n        border-radius: 10px;\n        font-size: 12px;\n        transform: rotate(15deg);\n    }\n\n    #paymentModal .items .item {\n        position: relative;\n        \/* 保持原有样式 *\/\n    }\n<\/style>\r\n<!--单课购买-->\n<div id=\"buyCourse\">\n    <div class=\"title\">第2版！中班语言绘本《我也要搭车》应彩云优质课视频+PPT课件教案音乐<\/div>\n    <div class=\"price\">价格：<b class=\"red\">¥13.00<\/b>&nbsp;<s\n            class=\"c666\">原价¥30.00<\/s> <span class=\"red jump\">强烈推荐购买套餐<\/span>\n    <\/div>\n    <div id=\"coursepay\">\n        <div class=\"mobilebar\">\n            <a target=\"_blank\"><button>微信支付<\/button><\/a>\n        <\/div>\n        <div class=\"qrbar\">\n            <div id=\"qrcode\"><\/div>\n            <div class=\"tips\">微信扫码支付<\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<script>\n    let courseTimer\n    function coursePayment() {\n        let obj = $('#buyCourse')\n        \/\/初始化\n        obj.find('.mobilebar').hide()\n        obj.find('.qrbar').hide()\n\n        $('#buyCourse .jump').jumpingText({\n            delay: 300,\n            height: 12,\n            duration: 100,\n            loop: true\n        });\n        \/\/下单\n        let mobile = 0\n        if (isMobile()) {\n            if (browser() == 'weixin') {\n                mobile = 2\n            } else {\n                mobile = 1\n            }\n        }\n        $.post(apiUrl + \"\/order\", {\n            url: window.location.href,\n            orderType: 1,\/\/0=会员;1=课程\n            courseId: id,\n            isMobile: mobile,\/\/pc=0;手机=1,公众号=2\n            openid: '',\n            f: 'ok网:' + os() + '_' + browser() + ':' + window.screen.width\n        }, function (rs) {\n            clearInterval(courseTimer)\n            courseTimer = setInterval(() => {\n                $.post(apiUrl + \"\/order\/paymentStatus\", { oid: rs.data.oid }, (rs) => {\n                    if (rs.data.status) {\n                        layer.msg('支付成功,可以下载了')\n                        setTimeout(() => {\n                            location.reload()\n                        }, 3000)\n                    }\n                })\n            }, 3000)\n            if (isMobile()) {\n                if (browser() == 'weixin') {\n                    obj.find('.mobilebar').show()\n                    obj.find('.mobilebar button').attr('onclick', 'goMpPay(\\'' + rs.data.oid + '\\')')\n                } else {\n                    $.post(apiUrl + \"\/payment\/wechat\/h5\", { oid: rs.data.oid }, (rs2) => { \/\/调用微信h5支付\n                        if (rs2.code) {\n                            obj.find('.mobilebar').show()\n                            obj.find('.mobilebar a').prop('href', rs2.data.mweb_url)\n                        } else {\n                            layer.alert('支付时出错了,请稍后重试~<br> 也可以加技术微信进行反馈(代码h5001):<br> youshiok_com')\n                        }\n                    })\n                }\n            } else {\n                obj.find('.qrbar').show()\n                obj.find('#qrcode').html('<div class=\"loading\" style=\"width:100px;height:100px;\"> <div><\/div> <div><\/div> <\/div>')\n                $.post(apiUrl + \"\/payment\/wechat\/pc\", { oid: rs.data.oid }, (rs1) => { \/\/调用微信pc支付\n                    if (rs1.code) {\n                        obj.find('#qrcode').html('').qrcode({\n                            width: 128,\n                            height: 128,\n                            text: rs1.data.code_url\n                        }).show();\n                    } else {\n                        layer.alert('支付时出错了,请稍后重试~<br> 也可以加技术微信进行反馈(代码pc001):<br> youshiok_com')\n                    }\n                })\n            }\n        })\n        layer.open({\n            type: 1,\n            title: '单个课件购买',\n            area: 'auto',\n            end: function () {\n                clearInterval(courseTimer)\n            },\n            content: $('#buyCourse')\n        });\n    } \n<\/script>\n<style>\n    #buyCourse {\n        display: none;\n        padding: 20px;\n        line-height: 2em;\n    }\n\n    #buyCourse .title {\n        font-weight: bold;\n        line-height: 1.5em;\n    }\n\n    #buyCourse .loading {\n        margin: 10% auto;\n    }\n\n    #buyCourse #qrcode {\n        margin: 20px auto;\n    }\n\n    #buyCourse .qrbar {\n        display: block;\n    }\n\n    #buyCourse .qrbar .tips {\n        text-align: center;\n        padding: 5px;\n        color: #07C160;\n    }\n\n    #buyCourse .mobilebar {\n        display: none;\n        text-align: center;\n        padding: 20px;\n    }\n\n    #buyCourse .mobilebar button {\n        margin: 10px auto;\n        padding: 10px 30px;\n        border-radius: 3px;\n        font-size: 16px;\n        border: none;\n        outline: none;\n        cursor: pointer;\n        color: white;\n        background-color: #07C160;\n    }\n<\/style>\n\r\n        <!--登录弹窗-->\n<div class=\"modal\" id=\"loginModal\">\n    <div class=\"overlay\"><\/div>\n    <div class=\"main\" style=\"max-width: 500px;max-height: 510px;\">\n        <div class=\"header\">\n            <span class=\"title\">登录<\/span>\n            <span class=\"close\">关闭<\/span>\n        <\/div>\n        <div class=\"body\">\n            <div class=\"head\">\n                <div class=\"title\">微信扫码登录\/注册<\/div>\n                <img class=\"change\" title=\"切换登录方式\" src=\"\/youshiok\/img\/login-type2.png\" \/>\n            <\/div>\n            <div class=\"type1\">\n                <div class=\"item\" style=\"margin-top: 30px;\">\n                    <input type=\"tel\" maxlength=\"11\" placeholder=\"输入11位手机号码\" class=\"phone\" style=\"width: 250px;\">\n                <\/div>\n                <div class=\"item\">\n                    <input type=\"number\" maxlength=\"4\" disabled placeholder=\"获取验证码👉️\" class=\"code\"\n                        style=\"width: 120px;\">\n                    <button style=\"width: 125px;\" id=\"send\">发送验证码<\/button>\n                <\/div>\n                <div class=\"tips\">\n                    新手机号码会自动注册\n                <\/div>\n                <div style=\"width: 300px;\"><img src=\"\/youshiok\/img\/youshiok-mp.png\">\n                    <p class=\"mobile\" style=\"font-size:12px;color: #ccc;\">用手机截屏,微信扫一扫可识别二维码<\/p>\n                <\/div>\n            <\/div>\n            <div class=\"type2\">\n                <div class=\"qrbar\">\n                    <div class=\"loading\">\n                        <div><\/div>\n                        <div><\/div>\n                    <\/div>\n                    <div id=\"qrcode\"><\/div>\n                    <div class=\"tips\"><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n<style>\n    .head {\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        font-weight: bold;\n    }\n\n    .change {\n        cursor: pointer;\n        width: 30px;\n    }\n\n    .type1 {\n        display: none;\n        width: 400px;\n        max-width: 100%;\n        margin: 20px auto;\n    }\n\n    .type1 .item {\n        padding: 10px;\n        margin: 10px 0;\n    }\n\n    .type1 .item input {\n        padding: 10px 10px;\n        font-size: 16px;\n        border: 1px solid #20aef0;\n        border-radius: 3px;\n        outline: none;\n        \/* 移除聚焦时的默认边框 *\/\n        box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);\n        transition: all 0.3s ease;\n    }\n\n    .type1 .item input:focus {\n        border-color: #0056b3;\n        box-shadow: 0 0 8px rgba(0, 86, 179, 0.7);\n    }\n\n    .type1 .item button {\n        padding: 10px 20px;\n        border-radius: 3px;\n        font-size: 16px;\n        border: none;\n        outline: none;\n        cursor: pointer;\n        color: white;\n        background-color: #20aef0;\n    }\n\n    .type1 .item button:hover {\n        border-color: #0056b3;\n        box-shadow: 0 0 8px rgba(0, 86, 179, 0.7);\n    }\n\n    .type1 .tips {\n        padding: 10px;\n        color: #ccc;\n    }\n\n    .type2 {\n        display: block;\n        width: 400px;\n        max-width: 100%;\n        margin: 20px auto;\n    }\n\n\n    .type2 .qrbar {\n        padding-top: 10%;\n        gap: 30px;\n        display: flex;\n        align-items: center;\n        flex-direction: column;\n    }\n\n    .type2 .tips {\n        color: #07C160;\n    }\n<\/style>\n<script>\n    let st\n    let st1\n    $(document).ready(() => {\n        let obj = $('#loginModal')\n        obj.find('.change').click(() => {\n            \/\/判断$('.type1')是否可见\n            if (obj.find('.type1').is(':visible')) {\n                \/\/扫码登录\n                getLoginQr()\n                obj.find('.type2').show()\n                obj.find('.type1').hide()\n                obj.find('.head .title').html('微信扫码登录')\n                obj.find('.change').attr('src', '\/youshiok\/img\/login-type2.png')\n            } else {\n                \/\/短信登录\n                obj.find('.tips').html('')\n                clearInterval(st1)\n                obj.find('.type1').show()\n                obj.find('.type2').hide()\n                obj.find('.head .title').html('短信登录')\n                obj.find('.change').attr('src', '\/youshiok\/img\/login-type1.png')\n            }\n\n        })\n        obj.find('.close').click(() => {\n            clearInterval(st1) \/\/关闭计时器\n        })\n        \/\/点击发送验证码\n        obj.find('#send').click(() => {\n            let phone = obj.find('.phone').val()\n            if (\/^1[3-9]\\d{9}$\/.test(phone)) {\n                \/\/ 生成新的图片验证码链接\n                const captchaImgUrl = `\/user\/img-${phone}.png?${Math.random()}`;\n                layer.open({\n                    type: 1,\n                    title: '请输入图片验证码',\n                    area: ['300px', '260px'],\n                    content: `\n                    <div style=\"\n                        padding: 20px;\n                        max-width: 200px;\n                        margin: 3px auto;\n                        text-align: center;\n                        border: 1px solid #ddd;\n                        border-radius: 8px;\n                        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n                    \">\n                        <div style=\"margin-bottom: 5px;\">\n                            <img alt=\"点击刷新\" onclick=\"this.src='';this.src='${captchaImgUrl}' + Math.random()\" src=\"${captchaImgUrl}\" style=\"min-width:100px;min-height:50px; max-width: 100%; max-height: 100%; cursor: pointer; background-image:url(\/youshiok\/img\/loading.svg); background-repeat: no-repeat; background-position: center center; background-size: contain;\">  \n\n                        <\/div>\n                        <div>\n                            <input type=\"text\" maxlength=\"10\" id=\"captcha\" placeholder=\"输入图片验证码👆\" \n                                style=\"\n                                    width: 100%;\n                                    padding: 10px;\n                                    border: 1px solid #ccc;\n                                    border-radius: 4px;\n                                    font-size: 16px;\n                                    box-sizing: border-box;\n                                \">\n                        <\/div>\n                    <\/div>\n                    `,\n                    btn: ['确定'],\n                    yes: function (index, layero) {\n                        \/\/ 点击确定按钮时获取验证码\n                        captcha = $('#captcha').val();\n                        if (!captcha) {\n                            layer.alert('请输入图片验证码')\n                            return\n                        }\n\n                        let sec = parseInt(cache('sendSec'))\n                        if (sec <= 1 || !sec) {\n                            sendCode(phone, captcha)\n                            sec = 60\n                        }\n                        obj.find('#send').text(sec + '秒后重试').attr('disabled', true)\n                        st = setInterval(() => {\n                            sec--\n                            if (sec > 0) {\n                                obj.find('#send').text(sec + '秒后重试').attr('disabled', true)\n                                cache('sendSec', sec, 60)\n                            } else {\n                                obj.find('#send').text('发送验证码').attr('disabled', false)\n                                clearInterval(st)\n                            }\n                            layer.close(index);\n                        }, 1000)\n                        obj.find('.code').attr('placeholder', '输入短信验证码').attr('disabled', false).focus()\n                    }\n                });\n            } else {\n                layer.alert('请输入11位手机号')\n                obj.find('.phone').select()\n            }\n        })\n\n        \/\/监听验证码\n        obj.find('.code').on('input', () => {\n            let code = obj.find('.code').val()\n            let phone = obj.find('.phone').val()\n            if (code.length == 4) {\n                login(phone, code, 'ok网短信登录:' + os() + '_' + browser() + ':' + window.screen.width)\n            }\n        })\n    })\n\n    \/\/获取登录二维码\n    function getLoginQr() {\n        $('#loginModal .loading').show()\n        $('#loginModal #qrcode').html('').hide()\n        let code = guid()\n        clearInterval(st1)\n        setTimeout(() => {\n            $('#loginModal #qrcode').qrcode({\n                width: 128,\n                height: 128,\n                text: 'https:\/\/www.youshikejian.com\/login\/?code=' + code + '&f=' + 'ok_login:' + os() + '_' + browser() + ':' + window.screen.width\n            });\n            \/\/将canvas转换为img\n            const canvas = $('#loginModal #qrcode canvas')[0];\n            const img = new Image();\n            img.src = canvas.toDataURL('image\/png');\n            img.style.width = '128px';\n            img.style.height = '128px';\n            $('#loginModal #qrcode').append(img);\n            canvas.style.display = 'none';\n\n            $('#loginModal .loading').hide()\n            $('#loginModal #qrcode').show()\n            if (browser() == 'weixin') {\n                $('#loginModal .tips').html('<p class=\"center\">长按二维码打开小程序授权登录<\/p>')\n            } else if (isMobile()) {\n                $('#loginModal .tips').html('<p class=\"center\">长按二维码保存至相册，打开微信扫一扫选择相册<br>登录成功前请勿关闭此页面<\/p>')\n            } else {\n                $('#loginModal .tips').html('<p class=\"center\">使用微信扫一扫登录<\/p>')\n            }\n            st1 = setInterval(() => {\n                checkAuth(code)\n            }, 4000)\n        }, 800)\n    }\n\n    function sendCode(phone, captcha) {\n        $.post(apiUrl + '\/sendCode', { phone: phone, captcha: captcha }, (rs) => {\n            if (rs.code) {\n                layer.msg('发送成功')\n            } else {\n                layer.msg(rs.message)\n            }\n        })\n    }\n\n    function login(phone, code, f) {\n        $.post(apiUrl + '\/login', { phone: phone, code: code, mpOpenid: cache('mp_openid'), openidSign: cache('openid_sign'), f: f }, (rs) => {\n            if (rs.code) {\n                cache('userInfo', rs.data, rs.data.expireSecond)\n                layer.msg('登录成功')\n                setTimeout(() => {\n                    history.replaceState(null, '', location.pathname)\n                    location.reload()\n                }, 2000)\n            } else if (code.length == 4) {\n                layer.alert('登录失败:' + rs.message)\n            }\n        })\n    }\n\n    function checkAuth(code) {\n        $.post(apiUrl + '\/miniprogram\/auth\/check', { code: code, mpOpenid: cache('mp_openid'), openidSign: cache('openid_sign') }, (rs) => {\n            if (rs.code && rs.data) {\n                layer.msg('小程序授权成功')\n                clearInterval(st1)\n                login(rs.data, code, 'ok网扫码登录:' + os() + '_' + browser() + ':' + window.screen.width)\n            }\n        })\n    }\n\n    \/\/打开登录窗口\n    function openLoginModal() {\n        if ($('.overlay').hasClass('active')) { \/\/防止打开多个窗口\n            return\n        }\n        \/\/弹出登陆框10秒后提示切换登录方式\n        setTimeout(() => {\n            if ($('.overlay').is(':visible')) {\n                layer.tips('可切换登录方式', '#loginModal .change', {\n                    tips: [4, '#333'],\n                    time: 0\n                })\n                $('#loginModal').click(function () {\n                    layer.closeAll('tips')\n                })\n            }\n        }, 1000 * 12)\n\n        if (browser() == 'weixin' && $_GET('login') != 1 && !cache('mp_openid')) { \/\/跳到微信授权链接\n            location.href = 'https:\/\/open.weixin.qq.com\/connect\/oauth2\/authorize?appid=wxafd14b3163abe08f&redirect_uri=https%3A%2F%2Fwww.youshiok.com%23%2F&response_type=code&scope=snsapi_base&state=' + (typeof state !== 'undefined' ? state : '\/') + '#wechat_redirect'\n            return\n        }\n        if (browser() == 'weixin' && cache('mp_openid') && cache('openid_sign')) { \/\/尝试微信openid登录\n            $.get(apiUrl + '\/mp\/phone', { mpOpenid: cache('mp_openid'), openidSign: cache('openid_sign') }, (rs) => {\n                if (rs.code) {\n                    layer.msg('公众号登录中...')\n                    setTimeout(() => {\n                        login(rs.data.phone, cache('mp_openid'), 'ok网公众号openid登录:' + os() + '_' + browser() + ':' + window.screen.width)\n                    }, 2000)\n                    return\n                }\n            })\n        }\n        getLoginQr()\n        $('#loginModal .overlay').addClass('active')\n        $('#loginModal .main').addClass('active')\n        if (isMobile() && browser() != 'weixin') {\n            setTimeout(() => {\n                $('#loginModal .change').click()\n            }, 801)\n        }\n    }\n\n<\/script>\r\n    <\/main>\r\n    <div class=\"userbar\">\r\n        <img src=\"\/youshiok\/img\/icon-top.png\" alt=\"返回顶部\" class=\"backtop\">\r\n        <div>\r\n            <a href=\"\/user\"><img src=\"\/youshiok\/img\/icon-user.png\" alt=\"用户中心\"><\/a>\r\n        <\/div>\r\n    <\/div>\r\n    <footer>\r\n        <div class=\"maxwidth\">\r\n            <div class=\"fff\">Copyright © 赣州云搜网络科技有限公司 <\/div>\r\n            <div><img src=\"\/youshiok\/img\/beianicon.png\"><a\r\n                    href=\"http:\/\/beian.miit.gov.cn\/publish\/query\/indexFirst.action\"\r\n                    target=\"_blank\">赣ICP备2021001277号-5<\/a>\r\n                &nbsp;\r\n                <a target=\"_blank\"\r\n                    href=\"http:\/\/www.beian.gov.cn\/portal\/registerSystemInfo?recordcode=36072602000016\"><img\r\n                        src=\"\/youshiok\/img\/ghs.png\">赣公网安备\r\n                    36072602000016号<\/a>\r\n                <span>增值电信业务经营许可证：赣B2-20220414<\/span>\r\n            <\/div>\r\n            <div class=\"pc\">幼师ok网提供幼儿园大班、中班、小班ppt课件、教案、范文模板、说课稿、资料、公开课、比赛课等下载。<\/div>\r \n            <\/div>\r\n            <div class=\"center\">\r\n                <a href=\"\/youshiok\/img\/kefu.jpg\" target=\"_blank\"><img src=\"\/youshiok\/img\/kefu.jpg\"\r\n                        style=\"height: 120px;margin: 10px 0;border-radius: 3px;\" alt=\"客服信息\"><\/a>\r\n            <\/div>\r\n            <div class=\"links\">\r \n                <a href=\"https:\/\/www.yeyzl.com\/\" class=\"hide\">幼儿园资料网<\/a>\r\n                <a href=\"\/sitemap\" class=\"hide\">sitemap<\/a>\r \n            <\/div>\r\n        <\/div>\r\n    <\/footer>\r\n    <link media=\"screen and (max-width: 1023px)\" rel=\"stylesheet\" href=\"\/youshiok\/mobile.css?0.0.20\">\r\n    <script>\n    !function (p) { \"use strict\"; !function (t) { var s = window, e = document, i = p, c = \"\".concat(\"https:\" === e.location.protocol ? \"https:\/\/\" : \"http:\/\/\", \"sdk.51.la\/js-sdk-pro.min.js\"), n = e.createElement(\"script\"), r = e.getElementsByTagName(\"script\")[0]; n.type = \"text\/javascript\", n.setAttribute(\"charset\", \"UTF-8\"), n.async = !0, n.src = c, n.id = \"LA_COLLECT\", i.d = n; var o = function () { s.LA.ids.push(i) }; s.LA ? s.LA.ids && o() : (s.LA = p, s.LA.ids = [], o()), r.parentNode.insertBefore(n, r) }() }({ id: \"3IYh7Yv8VHwRsXDL\", ck: \"3IYh7Yv8VHwRsXDL\", autoTrack: true, hashMode: true });\n<\/script>    <script>\n    var _hmt = _hmt || [];\n    (function () {\n        var hm = document.createElement(\"script\");\n        hm.src = \"https:\/\/hm.baidu.com\/hm.js?3bd9fb40a2bae595cdcbd0d60b68247d\";\n        var s = document.getElementsByTagName(\"script\")[0];\n        s.parentNode.insertBefore(hm, s);\n    })();\n<\/script>    <script>\r\n        \/\/判断是否登录\r\n        if (userInfo) {\r\n            document.querySelector('#userbar').innerHTML = '<a href=\"\/user\">' + userInfo.phone + '<\/a>'\r\n        } else {\r\n            document.querySelector('#userbar').innerHTML = '<a href=\"#\" id=\"login\">登录\/注册<\/a>'\r\n        }\r\n    <\/script>\r\n<\/body>\r\n\r\n<\/html>"