乜臾订单报备系统2026年7月18日 13:01[font size="19" color=""]-修复已知问题-修复样式显示问题-添加字体[/font][...]
[note type="info flat"]本文为转载自钰R陪玩团 如有冒犯联系删[/note]接下来讲如何结单首要提醒，派单结账也会在这个群里，每个派单的结账时间不同，不要催，大多为一周左右。1.发结束语给板板，结束语在结单群和派单群公告里都有，xxx那填你自己的陪名2.录制删老板好友的视频3.将接这个单子期间的所有战绩截图4.复制单子，原封不动的复制，不要有改动5.复制到结单群，在单子左下角加上陪 xx，派 xx，例：[font size="20" color=""]结单群一定要@我 不@不结[/font]6.然后将之前自己私发给自己的战绩图，删好友的录屏，结束语截图全部合并发送到结单群，就像这样（如果板板续单了，请将两个单子分开结，格式一样，续单单号如果派单没给，请主动要，结单时，如果续单的只有单号，要备注续单xx分钟）：
[note type="info flat"]本文为转载自钰R陪玩团 如有冒犯联系删[/note]我们先来讲讲关于如何接单派单群派单会把单子派在这个群里这个群除了派单，所有人不可以闲聊接下来就是接单步骤首先，你要知道，好打的单子很抢手，如果间隔时间久了就不要去问了，派单也很忙最好就是有空蹲守在派单群或者注意派单群动向，一个派单是有很多个团的如果有看到你心怡的单子请引用扣1+@派单派单艾特你后，立马告诉派单你的游戏昵称，随后你主动加老板如果派单没有艾特你你就不要去了，这说明单子已经出出去了，也有可能派单没注意，但是还是要等派单艾特你你才能去如果出现你引用错单子请立马撤回，不然派单艾特你了，你确不去，按炸单处理，需缴纳到手价的10%赔偿给派单，再缴2r给团长如果出现意外，比如老板不在线，老板在游戏，老板不接受邀请啥的，请及时艾特派单报告相应情况接到老板后，也就是和老板拉上队伍后，给派单发接到，需要代单号后四位这个就是单号用后四位例：1580接到接到后就正常和老板玩，从第一局开始的时间开始记记住一定要包装备装备格式：俩包，仨摸金符，一传送，一桃木剑，一除颤如果遇到老板无故骂人的情况请截图找派单和团长如果老板想要加陪玩微信或者进团，这是不允许的，不允许留老板任何联系方式不要和板板透露任何关于价钱的事，不要卖惨装可怜喊板板打赏，发现直接清退且单子不予正常结单炸单了话，需按派单给出的店铺所需赔偿交罚款，然后转罚款的5%给派单当辛苦费像技术陪玩xx分钟，牵手开馆xx分钟，这种类型，不备注就默认古城，不要再去问派单如果板板要续单改怎么办，喊板板找客服，然后自己告诉派单叫派单留意，板板在店铺下单后，派派自会给你派单如果玩到一半板子不想玩了，想存单请带单号并附上什么单子，剩多少例如按时间算的：xxxxxxxxxxx（假装这个是单号）古城剩20分钟例如玩法类：xxxxxxxxxx走格子存（附上已走过的图片）满分单和连珠同样代肝：xxxxxxxxxxxxx代肝200w剩80w存胃袋和一些赌金类：xxxxxxxxxx100w昆仑胃袋存这一类单子如果取单时派单或者陪陪不在，给其他人时，你是没有钱的以上存单发完后请艾特派单100w胃袋一般不备注也是默认昆仑像昆仑秦陵这样没有标注模式的（例如噩梦，炼狱），玩什么模式都可以昆仑困难除外抓怪是不包赢的，但是抓不到要送个四只左右，不要光送差的以上就是关于接单的所有问题
在 Typecho 中引入 KaTeX 来渲染数学公式，主要是在当前使用的主题模板文件中添加 KaTeX 的 CDN 链接和初始化配置。⚙️ 方法一：通过修改主题文件手动添加（推荐）这个方法不依赖插件，兼容性较好，适用于大多数 Typecho 主题。操作步骤：找到并编辑文件：在 Typecho 后台的 /usr/themes/ 目录下，找到你当前正在使用的主题文件夹，然后编辑其中的 header.php 文件。粘贴代码：将以下代码粘贴到 header.php 文件的 标签内即可。 🔌 方法二：使用插件如果你觉得手动修改模板不方便，也可以尝试使用插件。一个相关的插件是 MarkdownKatex-typecho。不过需要提醒你的是，这个插件比较旧（上次更新大约是2018年），在一些较新的 Typecho 版本（如 v1.2.1）上可能会出现兼容性问题，例如导致文章页面无法加载。如果使用插件后遇到问题，建议还是用回手动添加的方法。✅ 验证与测试完成上述任一操作后，你可以写一篇文章来测试，内容如下：质能方程可以用行内公式 $E = mc^2$ 表示。 行间公式（欧拉公式）如下： $$ e^{i\pi} + 1 = 0 $$发布或预览文章，如果能正常显示为数学公式，就说明设置成功了。
一、核心原理自建字体CDN的核心是通过跨域资源共享(CORS) + CDN缓存加速 + 自定义域名来提供字体服务。二、设置niginx伪静态由于浏览器对字体文件有严格的跨域限制，必须配置正确的CORS头：# 宝塔面板 → 网站 → 设置 → 伪静态 # 粘贴以下完整配置： location ~* \.(woff2|woff|ttf|eot|otf)$ { # 1. CORS头（必须） add_header Access-Control-Allow-Origin "*" always; add_header Access-Control-Allow-Methods "GET, OPTIONS" always; # 2. 处理OPTIONS预检请求 if ($request_method = 'OPTIONS') { add_header Access-Control-Allow-Origin "*"; add_header Access-Control-Allow-Methods "GET, OPTIONS"; add_header Access-Control-Allow-Headers "Origin, Accept, Content-Type"; add_header Access-Control-Max-Age 86400; add_header Content-Length 0; add_header Content-Type "text/plain; charset=UTF-8"; return 204; } # 3. 缓存配置（重要） expires max; add_header Cache-Control "public, immutable, max-age=31536000" always; # 4. 防止被覆盖的安全头 add_header Vary Origin always; # 5. 确保字体正确识别 types { font/woff2 woff2; font/woff woff; application/x-font-ttf ttf; application/vnd.ms-fontobject eot; } }伪静态设置完成后即可通过url引入字体
[ai]iziToast.js v1.5.0 是轻量级通知插件，支持 CDN/NPM 引入，提供成功/错误/警告等预设提示及高度自定义功能，适用于 AJAX、表单验证、移动端等场景，含队列管理、主题定制、游戏化提示及性能优化方案。 [/ai]iziToast.js v1.5.0 使用教程📦 基础引入CDN引入 NPM安装npm install izitoast@1.5.0// ES6导入 import iziToast from 'izitoast'; import 'izitoast/dist/css/iziToast.min.css'; // 或CommonJS const iziToast = require('izitoast'); require('izitoast/dist/css/iziToast.min.css');🚀 基础使用1. 简单提示// 成功提示 iziToast.success({ title: '成功', message: '操作已成功完成', position: 'topRight' }); // 错误提示 iziToast.error({ title: '错误', message: '发生了一个错误', position: 'topRight' }); // 警告提示 iziToast.warning({ title: '警告', message: '请注意以下事项', position: 'topRight' }); // 信息提示 iziToast.info({ title: '信息', message: '这是一条普通信息', position: 'topRight' });2. 自定义ToastiziToast.show({ title: '自定义标题', message: '自定义消息内容', backgroundColor: '#ff4081', theme: 'dark', color: '#fff', icon: 'icon-star', image: 'https://via.placeholder.com/50', imageWidth: 50, layout: 2, balloon: true, close: false, progressBar: false, timeout: false, rtl: false, animateInside: true });🎯 实际应用场景场景1：按钮点击显示弹窗 成功操作 错误操作 自定义弹窗 确认对话框 场景2：页面加载完成后显示// DOM加载完成后显示 document.addEventListener('DOMContentLoaded', function() { iziToast.info({ title: '欢迎', message: '页面加载完成', position: 'topRight', timeout: 2000 }); }); // 或使用jQuery $(document).ready(function() { iziToast.show({ title: '系统通知', message: '欢迎访问我们的网站', backgroundColor: '#4caf50', position: 'topCenter', timeout: 3000 }); }); // 页面完全加载后（包括图片等资源） window.onload = function() { iziToast.success({ title: '加载完成', message: '所有资源已加载完毕', position: 'bottomRight', timeout: 1500 }); };场景3：AJAX请求相关// AJAX请求开始 function startAjaxRequest() { const toastId = iziToast.show({ title: '处理中', message: '正在发送请求...', icon: 'fas fa-spinner fa-spin', backgroundColor: '#007bff', timeout: false, close: false, progressBar: false, position: 'topRight', id: 'ajax-toast' }); return toastId; } // AJAX请求成功 function ajaxSuccess(response) { // 关闭加载提示 const instance = iziToast; instance.hide({}, document.querySelector('.iziToast#ajax-toast')); iziToast.success({ title: '请求成功', message: response.message || '操作成功', position: 'topRight', timeout: 3000 }); } // AJAX请求失败 function ajaxError(error) { // 关闭加载提示 const instance = iziToast; instance.hide({}, document.querySelector('.iziToast#ajax-toast')); iziToast.error({ title: '请求失败', message: error.message || '网络错误，请重试', position: 'topRight', timeout: 5000 }); } // 完整AJAX示例 function sendData(data) { // 显示加载中 iziToast.show({ id: 'loading-toast', title: '处理中', message: '正在提交数据...', backgroundColor: '#17a2b8', icon: 'fas fa-circle-notch fa-spin', timeout: false, close: false, position: 'topRight' }); // 模拟AJAX请求 fetch('/api/submit', { method: 'POST', body: JSON.stringify(data), headers: { 'Content-Type': 'application/json' } }) .then(response => { // 关闭加载提示 iziToast.hide({}, document.querySelector('.iziToast#loading-toast')); if (!response.ok) { throw new Error('网络响应错误'); } return response.json(); }) .then(data => { iziToast.success({ title: '提交成功', message: '数据已成功保存', position: 'topRight', timeout: 3000 }); }) .catch(error => { // 关闭加载提示 iziToast.hide({}, document.querySelector('.iziToast#loading-toast')); iziToast.error({ title: '提交失败', message: error.message, position: 'topRight', timeout: 5000, buttons: [ [' 重试 ', function(instance, toast) { instance.hide({}, toast); sendData(data); // 重新发送 }] ] }); }); }场景4：表单验证// 表单提交验证 function validateForm(form) { const errors = []; // 检查用户名 if (!form.username.value.trim()) { errors.push('用户名不能为空'); } // 检查邮箱 const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(form.email.value)) { errors.push('邮箱格式不正确'); } // 检查密码 if (form.password.value.length < 6) { errors.push('密码至少6位'); } // 如果有错误，显示错误提示 if (errors.length > 0) { errors.forEach((error, index) => { setTimeout(() => { iziToast.warning({ title: '验证失败', message: error, position: 'topRight', timeout: 4000 + (index * 1000), progressBarColor: '#ff9800', transitionIn: 'fadeInDown' }); }, index * 500); }); return false; } // 验证通过 iziToast.success({ title: '验证通过', message: '表单验证成功，正在提交...', position: 'topRight', timeout: 2000 }); return true; } // 实时验证 document.querySelectorAll('input[data-validate]').forEach(input => { input.addEventListener('blur', function() { const value = this.value.trim(); const validation = this.dataset.validate; if (!value && this.hasAttribute('required')) { iziToast.error({ title: '必填项', message: `${this.placeholder || '此项'}不能为空`, position: 'topRight', timeout: 3000 }); this.classList.add('invalid'); } }); input.addEventListener('input', function() { this.classList.remove('invalid'); }); });场景5：事件监听相关// 键盘事件 document.addEventListener('keydown', function(event) { // Ctrl + S 保存 if (event.ctrlKey && event.key === 's') { event.preventDefault(); iziToast.info({ title: '保存中', message: '正在保存您的更改...', position: 'bottomLeft', timeout: 1500 }); } // Esc 关闭所有提示 if (event.key === 'Escape') { const toasts = document.querySelectorAll('.iziToast'); toasts.forEach(toast => { toast.style.transform = 'translateY(-100px)'; toast.style.opacity = '0'; setTimeout(() => toast.remove(), 300); }); } }); // 网络状态变化 window.addEventListener('online', function() { iziToast.success({ title: '网络恢复', message: '网络连接已恢复', position: 'topCenter', timeout: 3000, backgroundColor: '#4caf50' }); }); window.addEventListener('offline', function() { iziToast.error({ title: '网络断开', message: '网络连接已断开，部分功能可能受限', position: 'topCenter', timeout: false, // 不自动关闭 close: false, progressBar: false, backgroundColor: '#f44336', buttons: [ [' 知道了 ', function(instance, toast) { instance.hide({}, toast); }] ] }); }); // 复制事件 document.addEventListener('copy', function() { iziToast.show({ title: '已复制', message: '内容已复制到剪贴板', backgroundColor: '#9c27b0', position: 'bottomRight', timeout: 2000 }); });场景6：通知队列管理class ToastManager { constructor() { this.queue = []; this.isShowing = false; } // 添加通知到队列 addToast(options) { this.queue.push(options); if (!this.isShowing) { this.showNext(); } } // 显示下一个通知 showNext() { if (this.queue.length === 0) { this.isShowing = false; return; } this.isShowing = true; const options = this.queue.shift(); // 添加关闭回调，显示下一个 const originalOnClosed = options.onClosed; options.onClosed = (instance, toast, closedBy) => { if (originalOnClosed) { originalOnClosed(instance, toast, closedBy); } // 延迟显示下一个 setTimeout(() => this.showNext(), 500); }; iziToast.show(options); } // 清空队列 clearQueue() { this.queue = []; this.isShowing = false; // 关闭所有当前显示的Toast document.querySelectorAll('.iziToast').forEach(toast => { toast.style.opacity = '0'; setTimeout(() => toast.remove(), 300); }); } } // 使用示例 const toastManager = new ToastManager(); // 批量添加通知 toastManager.addToast({ title: '通知1', message: '第一条消息', position: 'topRight', timeout: 3000 }); toastManager.addToast({ title: '通知2', message: '第二条消息', position: 'topRight', timeout: 3000 }); toastManager.addToast({ title: '通知3', message: '第三条消息', position: 'topRight', timeout: 3000 });🎨 高级定制1. 全局配置// 设置全局默认配置 iziToast.settings({ timeout: 5000, resetOnHover: true, icon: 'material-icons', transitionIn: 'flipInX', transitionOut: 'flipOutX', position: 'topCenter', displayMode: 'replace', // 替换上一个相同位置的Toast onOpening: function() { console.log('toast is opening'); }, onClosing: function() { console.log('toast is closing'); } }); // 不同位置设置不同配置 const positionSettings = { topRight: { timeout: 3000, close: true, progressBar: true }, bottomLeft: { timeout: 5000, close: false, progressBar: false }, center: { timeout: false, overlay: true, closeOnEscape: true } };2. 主题定制/* 自定义主题 */ .iziToast-custom-theme { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 15px; box-shadow: 0 10px 40px rgba(0,0,0,0.3); } .iziToast-custom-theme .iziToast-title { font-family: 'Arial', sans-serif; font-weight: bold; font-size: 18px; } .iziToast-custom-theme .iziToast-message { font-size: 14px; line-height: 1.5; } /* 使用自定义主题 */ iziToast.show({ class: 'iziToast-custom-theme', title: '自定义主题', message: '使用自定义CSS主题', position: 'topRight' });3. 响应式配置// 根据屏幕大小调整配置 function responsiveToast(config) { const isMobile = window.innerWidth <= 768; const mobileConfig = { position: 'bottomCenter', maxWidth: '90%', timeout: 2000, transitionInMobile: 'fadeInUp', transitionOutMobile: 'fadeOutDown', closeOnClick: true, displayMode: 1 }; const desktopConfig = { position: 'topRight', maxWidth: 350, timeout: 5000, transitionIn: 'fadeInRight', transitionOut: 'fadeOutRight', closeOnClick: false, displayMode: 2 }; return { ...config, ...(isMobile ? mobileConfig : desktopConfig) }; } // 使用响应式配置 iziToast.success(responsiveToast({ title: '操作成功', message: '数据已保存' }));🔧 实用工具函数1. 显示加载指示器function showLoader(message = '加载中...') { return iziToast.show({ id: 'loader', title: '', message: ` ${message} `, backgroundColor: 'rgba(0,0,0,0.8)', theme: 'dark', icon: 'fas fa-spinner fa-spin', timeout: false, close: false, progressBar: false, position: 'center', maxWidth: 200, animateInside: false, onClosing: function() { // 清理操作 } }); } function hideLoader() { iziToast.hide({}, document.querySelector('.iziToast#loader')); }2. 倒计时提示function countdownToast(title, message, seconds = 5) { let count = seconds; const toast = iziToast.show({ id: 'countdown', title: title, message: `${message} (${count}s)`, backgroundColor: '#ff9800', timeout: false, close: false, position: 'topRight', progressBar: true, progressBarColor: '#ff5722' }); const interval = setInterval(() => { count--; if (count <= 0) { clearInterval(interval); iziToast.hide({}, document.querySelector('.iziToast#countdown')); } else { const toastElement = document.querySelector('.iziToast#countdown .iziToast-message'); if (toastElement) { toastElement.textContent = `${message} (${count}s)`; } } }, 1000); return interval; }3. 确认删除对话框function confirmDelete(itemName, callback) { return iziToast.question({ timeout: false, overlay: true, toastOnce: true, id: 'delete-confirm', title: '确认删除', message: `确定要删除"${itemName}"吗？此操作不可撤销。`, position: 'center', zindex: 99999, buttons: [ [' 删除 ', function(instance, toast) { instance.hide({}, toast); if (typeof callback === 'function') { callback(); } }, true], [' 取消 ', function(instance, toast) { instance.hide({}, toast); }] ], onOpening: function() { console.log('确认对话框打开'); }, onClosing: function(instance, toast, closedBy) { console.log('对话框关闭，操作：', closedBy); } }); } // 使用示例 document.getElementById('delete-btn').addEventListener('click', function() { confirmDelete('重要文件', function() { iziToast.success({ title: '已删除', message: '文件已成功删除', position: 'topRight' }); }); });📱 移动端优化// 移动端专用Toast配置 function mobileToast(options) { const defaultOptions = { position: 'bottomCenter', maxWidth: '90vw', closeOnClick: true, timeout: 2000, animateInside: false, transitionInMobile: 'fadeInUp', transitionOutMobile: 'fadeOutDown', displayMode: 1 }; return iziToast.show({...defaultOptions, ...options}); } // 触摸事件处理 let touchStartY = 0; let touchEndY = 0; document.addEventListener('touchstart', function(e) { touchStartY = e.changedTouches[0].screenY; }); document.addEventListener('touchend', function(e) { touchEndY = e.changedTouches[0].screenY; const diff = touchStartY - touchEndY; // 向下滑动关闭Toast if (diff > 50) { // 滑动距离超过50px const toasts = document.querySelectorAll('.iziToast'); if (toasts.length > 0) { iziToast.hide({}, toasts[toasts.length - 1]); } } });🎮 游戏化提示// 成就系统提示 function showAchievement(title, description, icon = '🏆') { iziToast.show({ class: 'achievement-toast', title: `${icon} ${title}`, message: description, backgroundColor: 'linear-gradient(135deg, #f6d365 0%, #fda085 100%)', theme: 'dark', color: '#fff', image: 'data:image/svg+xml;base64,...', // 徽章图标 imageWidth: 60, position: 'topLeft', timeout: 5000, progressBarColor: '#ff9800', transitionIn: 'bounceInLeft', transitionOut: 'fadeOutLeft', onOpened: function() { // 播放音效 const audio = new Audio('achievement.mp3'); audio.play().catch(e => console.log('音效播放失败')); } }); } // 等级提升提示 function levelUpToast(oldLevel, newLevel) { iziToast.success({ title: '🎉 等级提升!', message: `从 ${oldLevel} 级升级到 ${newLevel} 级`, backgroundColor: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)', position: 'topCenter', timeout: 4000, close: false, balloon: true, progressBar: false, transitionIn: 'flipInX', onClosed: function() { // 显示等级奖励 showAchievement('等级达成', `恭喜达到 ${newLevel} 级！`); } }); }🔍 调试技巧// Toast调试工具 const toastDebugger = { // 显示所有活动Toast信息 showActiveToasts() { const toasts = document.querySelectorAll('.iziToast'); console.log(`当前活动Toast数量: ${toasts.length}`); toasts.forEach((toast, index) => { const title = toast.querySelector('.iziToast-title')?.textContent || '无标题'; const message = toast.querySelector('.iziToast-message')?.textContent || '无内容'; console.log(`Toast ${index + 1}: ${title} - ${message}`); }); }, // 清除所有Toast clearAll() { document.querySelectorAll('.iziToast').forEach(toast => { toast.style.opacity = '0'; setTimeout(() => toast.remove(), 300); }); console.log('已清除所有Toast'); }, // 测试各种类型的Toast testAllTypes() { const types = ['success', 'error', 'warning', 'info', 'question']; types.forEach((type, index) => { setTimeout(() => { iziToast[type]({ title: `${type.toUpperCase()} 测试`, message: `这是${type}类型的测试消息`, position: 'topRight', timeout: 2000 }); }, index * 500); }); } }; // 添加到全局作用域便于调试 window.toastDebug = toastDebugger;📊 性能优化建议合理使用timeout：避免长时间显示Toast使用displayMode：避免同时显示过多Toast批量操作时使用队列：如文件上传进度移动端减少动画：关闭animateInside提升性能及时清理：使用hide()方法手动关闭不再需要的Toast// 性能优化示例 function optimizedToast(config) { return { animateInside: window.innerWidth > 768, // 桌面端开启动画 displayMode: 'replace', // 替换而不是堆积 timeout: config.important ? 5000 : 2000, // 重要消息显示更久 ...config }; }相关参数说明参数名默认值说明class''应用于Toast的CSS类，可用作参考title''Toast的标题文本titleColor''标题文字颜色titleSize''标题字体大小titleLineHeight''标题行高message''通知的消息内容messageColor''消息文字颜色messageSize''消息字体大小messageLineHeight''消息行高backgroundColor''Toast的背景颜色theme''可以是light、dark或自定义CSS类，格式如：".iziToast-theme-name"color''可以是十六进制颜色值、预定义主题颜色（blue、red、green、yellow）或自定义CSS类，格式如：".iziToast-color-name"icon''图标CSS类（可使用Icomoon、Fontawesome等字体图标库）iconText''图标文字（适用于Material Icons等字体图标）iconColor''图标颜色iconUrlnull要加载的图标文件地址image''封面图片imageWidth50封面图片宽度，如100pxmaxWidthnullToast的最大宽度，如500pxzindex99999Toast的CSS z-index属性值layout1可以是1或2，或自定义布局类，格式如：".iziToast-layout3"balloonFALSE应用气球样式ToastcloseTRUE显示"x"关闭按钮closeOnEscapeFALSE允许使用Esc键关闭ToastcloseOnClickFALSE允许通过点击Toast关闭rtlFALSE从右到左文本方向选项position'bottomRight'Toast显示位置，可选值：bottomRight、bottomLeft、topRight、topLeft、topCenter、bottomCenter、centertarget''显示Toast的固定位置targetFirstTRUE将Toast添加到第一个位置显示toastOnceFALSE在'onClosed'函数中等待另一个Toast关闭（需要设置ID）displayMode0等待模式：1或'once'等待Toast关闭后打开新Toast，2或'replace'替换已打开的Toasttimeout5000自动关闭的毫秒数，设为false禁用自动关闭dragTRUE启用拖拽关闭功能pauseOnHoverTRUE鼠标悬停时暂停超时计时resetOnHoverFALSE鼠标悬停时重置超时计时progressBarTRUE启用超时进度条progressBarColor''进度条颜色progressBarEasing'linear'进度条动画缓动效果overlayFALSE启用遮罩层overlayCloseFALSE允许点击遮罩层关闭ToastoverlayColor'rgba(0, 0, 0, 0.6)'遮罩层背景颜色animateInsideTRUE启用Toast内元素的动画效果buttons{}按钮数组配置inputs{}输入框数组配置transitionIn'fadeInUp'默认打开动画，可选值：bounceInLeft、bounceInRight、bounceInUp、bounceInDown、fadeIn、fadeInDown、fadeInUp、fadeInLeft、fadeInRight、flipInXtransitionOut'fadeOut'默认关闭动画，可选值：fadeOut、fadeOutUp、fadeOutDown、fadeOutLeft、fadeOutRight、flipOutXtransitionInMobile'fadeInUp'移动端默认打开动画transitionOutMobile'fadeOutDown'移动端默认关闭动画onOpeningfunction() {}Toast打开时触发的回调函数onOpenedfunction() {}Toast完全打开后触发的回调函数onClosingfunction() {}Toast关闭时触发的回调函数onClosedfunction() {}Toast完全关闭后触发的回调函数
修改服务器硬件时间并确保重启后时间不变
[ai_summary]修改服务器硬件时间并确保重启后时间不变要修改服务器硬件时间（RTC时间）并确保重启后时间保持不变，您需要执行以下步骤：1. 查看当前系统时间和硬件时间# 查看系统时间 date # 查看硬件时间 hwclock --show2. 修改硬件时间方法一：通过系统时间同步硬件时间# 将当前系统时间写入硬件时钟 hwclock --systohc方法二：直接设置硬件时间# 设置硬件时间为特定时间（格式：YYYY-MM-DD HH:MM:SS） hwclock --set --date "2023-11-15 14:30:00"3. 确保时间同步服务正确配置对于使用NTP服务的系统：# 检查NTP服务状态 systemctl status ntpd # 对于使用ntpd的系统 systemctl status chronyd # 对于使用chrony的系统 # 确保硬件时间与系统时间同步 # 对于ntpd，编辑/etc/sysconfig/ntpd（RHEL/CentOS）或/etc/default/ntp（Debian/Ubuntu） # 添加或取消注释以下行： OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"4. 配置系统启动时从硬件时钟读取时间# 对于systemd系统（大多数现代Linux发行版） timedatectl set-local-rtc 0 # 使用UTC硬件时钟（推荐） # 或 timedatectl set-local-rtc 1 # 使用本地时间硬件时钟（Windows双启动时可能需要） # 验证设置 timedatectl status5. 检查相关配置文件确保以下文件中没有强制覆盖时间的设置：/etc/adjtime - 硬件时钟调整信息/etc/default/rcS (Debian/Ubuntu) 或 /etc/sysconfig/clock (RHEL/CentOS)6. 测试修改# 重启服务器后检查时间是否正确 reboot # 重启后检查 date hwclock --show注意事项对于虚拟机，通常不建议直接修改硬件时钟，而是应该保持与宿主机的时间同步在生产环境中，建议使用NTP服务保持时间同步修改时间可能会影响依赖时间的应用程序和服务某些系统（如某些云实例）可能有额外的时间同步机制需要配置通过以上步骤，您可以确保服务器硬件时间的修改在重启后保持不变。
简单来说，赋分制不是看你卷面考了多少分，而是根据你的卷面分数在所有考生中的排名，给你赋予一个对应的分数。一、为什么要有赋分制？新高考下，学生可以自由选择考试科目（比如有的选物理、化学，有的选历史、政治）。这就带来了一个问题：不同科目的试题难度不同：今年物理卷子特别难，历史卷子比较简单。如果直接看卷面分，选物理的同学就会普遍吃亏，选历史的同学则占便宜。不同科目的得分分布不同：这会导致大家在选科时，不是根据自己的兴趣和特长，而是去“投机”，选择那些被认为容易得高分的“水课”。为了解决这个问题，保证公平，教育部门引入了等级赋分制。它的核心思想是：你的最终成绩不取决于你考得多“好”，而取决于你比同科目的其他人考得有多“好”。二、赋分制是如何操作的？虽然不同省份的具体细则可能有细微差别，但核心原理是一样的。我们以常见的“5等21级”为例来说明：第一步：按卷面分排名将全省（或直辖市）所有选择同一门科目的考生，按照他们的原始卷面成绩从高到低进行排序。第二步：划分等级根据排名比例，将考生划分为5个大的等级，再细分为21个（或更少）具体的等级。常见的比例如下：等级占比赋分区间A前15%100-86B35%85-71C35%70-56D13%55-41E后2%40-30注意：上表中的占比和赋分区间是示例，具体以本省考试院公布为准。例如，有些省份是A等级占15%，赋分区间为100-86；有些是A等级占17%，赋分区间为100-83。第三步：根据公式计算，赋予最终分数将你的原始分所在的等级区间，对应到最终的赋分区间，通过一个数学公式计算得出你的最终成绩。计算公式通常为：（该公式是理解用，实际由系统自动完成）赋分成绩 = (对应赋分区间的最高分 - 对应赋分区间的最低分) / (原始分区间的最高分 - 原始分区间的最低分) × (考生原始分数 - 原始分区间的最低分) + 对应赋分区间的最低分看不懂公式没关系，我们来看一个具体的例子：三、举例说明假设小明同学选了化学，他的卷面原始分是 88分。排名定位：全省所有选化学的考生成绩出来后，小明的88分排在了全省前15%，属于 A等级。假设A等级的原始分区间是【90分 - 82分】，赋分区间是【100分 - 86分】。代入公式计算：对应赋分区间的最高分 = 100对应赋分区间的最低分 = 86原始分区间的最高分 = 90原始分区间的最低分 = 82考生原始分数 = 88[label color="default"]赋分成绩 = (100 - 86) / (90 - 82) × (88 - 82) + 86[/label] [label color="default"]= (14 / 8) × 6 + 86[/label] [label color="default"]= 1.75 × 6 + 86[/label] [label color="default"]= 10.5 + 86[/label] [label color="default"]= 96.5分[/label] (四舍五入后可能是97分)结果：小明化学卷面分虽然是88分，但因为他排名靠前，最终计入高考总成绩的化学分数是97分！反过来看：假设另一位小张同学也选了化学，卷面考了90分（原始分最高分），但题目非常简单，全省最高分有100分。那么小张的90分可能只排到了B等级，他的最终赋分成绩可能就只有80多分。四、哪些科目需要赋分？这取决于你所在的省份和选择的模式：“3+3”模式： “3”（语数外）用原始分，后一个“3”（从物化生政史地中任选3门）用等级赋分。“3+1+2”模式： “3”（语数外）和“1”（物理或历史，二选一）用原始分，后一个“2”（从剩下的4门中再选2门）用等级赋分。五、赋分制的核心影响与策略淡化分数，强调排名：你的竞争对手不是试卷，而是所有和你选同一科目的人。“卷面分高”不等于“赋分高”：如果题目简单，大家分数都高，你的排名可能反而会下降，导致赋分变低。“卷面分低”不等于“赋分低”：如果题目很难，大家分数都低，你虽然分数不高，但只要排名靠前，赋分后依然可能是高分。选科策略：不仅要看自己的绝对实力（能考多少分），更要看自己的相对优势（在该科目上能超过多少人）。选择自己真正擅长和感兴趣的科目，往往更容易在竞争中取得好的排名。盲目跟风选择所谓“容易”的科目，如果该科目学霸云集，你可能会成为“炮灰”，赋分反而很低。总结赋分制的本质是一种按排名给分的平衡机制，目的是消除不同科目因难度差异带来的不公平，使不同科目的成绩具有可比性，从而保证新高考下人才选拔的公平公正。“原始分区间”不是提前划定的一条固定分数线（比如每年都规定90分以上是A等级）。它是在每次考试后，根据当次所有考生的实际成绩分布，动态计算出来的。简单来说：原始分区间 = 当次考试中，处于某个等级的所有考生，其原始卷面分的最高分和最低分。如何理解和查看“原始分区间”？我们通过一个具体的例子来理解它的产生过程：假设今年全省有10000名考生选择了生物科目。第一步：排序考试院将这10000名考生的生物卷面原始分（比如有小张98分、小李95分、小王63分...）从高到低进行排序。第二步：按固定比例划分等级根据预设的等级比例（假设是前15%为A等级），把这10000名考生分成5个等级。A等级：排名在第1名 ~ 第1500名（10000 * 15%）的考生。B等级：排名在第1501名 ~ 第5000名（10000 * 35%）的考生。...以此类推。第三步：确定每个等级的“原始分区间”现在，考试院会去看这些等级里考生的具体分数：A等级：这1500名考生中，卷面最高分是98分（第1名的分数），卷面最低分是89分（第1500名的分数）。那么，本次生物科目的 A等级原始分区间就是【98， 89】。B等级：第1501名的分数是88分，第5000名的分数是76分。那么，B等级原始分区间就是【88， 76】。...以此类推，确定C、D、E等级的原始分区间。这个过程可以直观地表示为下图：flowchart TD A[全体考生按原始分排序] --> B[按固定比例 划分等级] B --> C{确定各等级对应的 原始分区间} C --> D[A等级 排名前15% 原始分区间: 98-89分] C --> E[B等级 排名16%-50% 原始分区间: 88-76分] C --> F[... ...]这对考生意味着什么？原始分区间是“浮动”的：如果今年题目难，全省最高分才92分，那么A等级的原始分区间可能就是【92, 85】。如果今年题目简单，全省最高分是100，第15%名的分数是95，那么A等级的原始分区间就是【100, 95】。所以，你永远无法在考试前知道各个等级的原始分区间是多少。你的目标是“排名”而非“分数”：你不用纠结于“我必须考到90分”，因为即使你考了88分，如果题目很难，你排进了前15%，你依然是A等级，最终赋分可能在90分以上。反之，如果你考了95分，但题目很简单，大家分数都高，你可能只排到了全省的30%（B等级），那么你的最终赋分可能只有80多分。考后如何获知？在查询高考成绩时，你通常只能查到自己的最终赋分成绩（即计入高考总分的那个数）。完整的、包含所有考生详细排名的“原始分区间表”通常不会对社会公布，以免引起不必要的比较和争议。这个区间主要是考试院内部用于进行赋分计算的依据。总结：原始分区间可以理解为：在一次特定考试中，能够进入某个排名等级所需要的“原始分数门槛”。这个门槛因每次考试的考生整体水平和试题难度而异。因此，对于考生来说，赋分制下的策略非常明确：尽力考出更高的原始分，但更要确保自己在所有同科考生中的相对排名靠前。 你的竞争对象不是那张试卷，而是全省所有和你选了同一科目的同学。
【“百千万工程”突击队】小雨点志愿服务青年突击队：为 “星星的孩子” 点亮科技之光
[note type="info flat"]本文转自微信公众号莞工化能CE[/note]为助力“双百行动”，2025年7月7日至7月11日，小雨点志愿服务队青年突击队携手大岭山小雨点儿童潜能开发中心，共同开展了“七彩假期”科学实践系列活动。队员们以专业为笔、爱心为墨，为“星星的孩子”量身打造了一场融合科学、文化与艺术的成长盛宴，累计服务超 50 人次，用五天的温暖陪伴，为孩子们的夏天注入了知识的力量与心灵的慰藉。互动体验助协作 开启科学之门7 月 7 日，“七彩假期” 科学实践系列活动的首日，队员们以两场精心设计的活动 ——“泡泡树下，团队绽彩” 手工课与 “纸杯传音，启智之旅” 实验，为整个系列活动拉开了温暖与奇妙的序幕。 在 “泡泡树下，团队绽彩” 手工课的现场，队员们早已备好泡泡液、各式泡泡棒与五彩斑斓的彩纸。孩子们围坐在铺着彩色桌布的桌旁，眼中闪烁着对未知的好奇。志愿者们先示范着吹出大小不一、形态灵动的泡泡，晶莹的泡泡在阳光下折射出虹彩，瞬间吸引了孩子们的注意力。随后，大家引导孩子们用彩纸剪出树叶的形状，再将吹起的泡泡轻轻粘在彩纸上，共同 “搭建” 一棵属于他们的绚丽泡泡树。过程中，志愿者们轻声鼓励孩子们相互传递泡泡棒、分享彩纸，原本有些腼腆的孩子渐渐放松下来，开始主动与身边的同伴交流，在课堂上的互动中从生疏走向自然。 “纸杯传音，启智之旅” 实验，则让孩子们近距离感受到声音的 “魔力”。当清晰的声音通过棉线传到耳边时，孩子们纷纷露出惊讶的表情，小脸上写满了 “不可思议”。或许他们暂时无法完全理解声音传播的原理，但这生动的体验像一颗种子，悄然在他们心中种下了对科学的好奇与向往，让他们对科学产生了浓厚的兴趣。 活动中，一名儿童突然伸出小手，轻轻牵住了身边志愿者的手，让现场的队员们心头一暖。这无声的举动，如一道暖流淌过每个人的心田，也让大家更加坚定 —— 这些 “星星的孩子” 需要更多的耐心、更温柔的方式，来搭建起沟通的桥梁。优化策略适需求 彰显专业关怀7 月 8 日，针对孩子们的认知特点，队员们对课程教学策略进行了深度优化，从细节处着手适配孩子们的需求，力求让每个孩子都能轻松参与、感受学习的乐趣，用专业与用心传递着专属关怀。 彩虹糖色素扩散实验是当天课程的 “重头戏”。队员们提前备好白色盘子、色彩鲜亮的彩虹糖与清水，当五颜六色的糖果在盘中排列成圈，再被注入清水时，孩子们的目光瞬间被吸引。考虑到孩子们容易因信息密集而产生焦虑，队员们创新采用 “分步口令” 教学法：先引导孩子们将彩虹糖按颜色摆放在托盘边缘，待所有人完成后，再发出 “倒入少量清水” 的指令，随后静待色素在水中慢慢扩散成绚烂的 “彩虹圈”。清晰的步骤拆分，让孩子们能一步步跟上节奏，焦虑感大大降低。 光影剪纸环节，队员们考虑到部分孩子存在感官抗拒，尤其对坚硬冰冷的剪刀手柄容易产生抵触。为此，他们提前准备了 “特制剪刀”—— 在手柄处贴上柔软的海绵，既增加了握持的舒适度，又通过触觉缓冲减轻了孩子的抗拒心理。在队员们的鼓励下，原本对工具接触较为敏感的小朋友，顺利拿起 “改造” 后的剪刀，顺利完成了自己的创作。当他们拿着自己的作品展示时，脸上洋溢的自豪笑容，成为对这份用心最好的回应。 全程观察的机构老师深受触动，不由赞叹：“队员们对儿童情绪的敏感度已经达到了专业特教水准，他们的用心和专业让我们非常感动。” 深度实验建自信 收获成长喜悦7 月 9 日至 10 日，“弹簧杯” 机械制作与 “水果电池” 能量转换实验两大主题活动，让孩子们在动手探索中突破自我、积累成就感，悄然播下自信的种子，收获成长的满满喜悦。 “弹簧杯” 机械制作是对孩子们动手能力与耐心的双重考验。活动中，队员们分发了杯体、弹簧、按钮、小玩偶等零散零件，对于特殊儿童而言，零件的匹配、卡扣的对接并非易事，有的孩子因多次组装失败而皱起眉头，甚至想放下手中的工具。这时，队员们总会俯下身，轻声鼓励：“没关系，我们再试一次，你看这个零件应该这样卡进去……” 在一遍遍的引导与陪伴下，孩子们渐渐找到技巧，当一个个完整的“弹簧杯”制作完成，按下按钮，杯子里的小玩偶能够弹出来时，孩子们的脸上洋溢着满满的成就感。 “水果电池” 实验则是对 “奇迹” 的见证。队员们带来的柠檬、锌片、铜片、导线和小灯泡，在孩子们眼中只是普通的物品 ——“用水果能让灯亮起来？” 他们半信半疑。随着队员示范连接电路，将锌片和铜片插入柠檬，用导线分别连接电极与灯泡底座，当最后一根导线接好的瞬间，原本黯淡的小灯泡竟缓缓亮起微弱却清晰的光。当看到小灯泡在柠檬电池的驱动下缓缓亮起时，“亮了！亮了！” 教室里瞬间爆发出欢呼，有的孩子甚至激动地拍起了手。这小小的成功，不仅让孩子们感受到了科学的魔力，更重要的是建立了他们的自信心。拓印活动传文化 架起沟通桥梁7 月 11 日，一场充满自然意趣与文化韵味的拓印活动，为 “七彩假期” 科学实践系列活动画上了圆满句号。活动将认知与体验升华为文化传承的实践，让孩子们在触摸自然纹理、感受传统技艺魅力的同时，悄然找到表达自我的新途径，为心灵架起了一座温暖的沟通桥梁。 队员们特意到户外收集了形态各异的树叶 ，每一片都带着夏日的生机与独特的纹路。活动中，大家为孩子们耐心示范拓印的技巧，孩子们很快投入其中，在队员们的协助下，有的小心翼翼地按住树叶，专注地勾勒每一寸脉络，力求将叶片的细节完整呈现；有的则大胆尝试组合拓印，将不同形状的树叶错落排列，拓印出一幅充满想象力的 “森林图景”；还有的孩子反复尝试不同颜色的蜡笔，让叶片的纹理在色彩叠加中呈现出奇妙的层次感。 “我的孩子以前很少主动和我们分享。今天他第一次主动把自己的拓印作品拿给我们看，还兴奋地给我们讲解制作过程，真的太意外了，拓印就像他的新语言，让他愿意开口、愿意分享了。”一位家长激动地对队员说。复盘迭代成模板 延续爱心火种每日活动结束后，队员们都会召开复盘会议。大家围坐在一起，从教具的安全性、课程的节奏把控，到每个孩子的参与度和反应，逐一进行讨论和分析。机构的教师也全程参与其中，为队员们提供特殊教育方面的专业指导。经过五天的迭代升级，一套 “科学 + 特教” 融合实践模板逐渐成型。这套模板不仅包括了详细的课程设计、教学方法和教具准备，还涵盖了针对不同类型特殊儿童的个性化教学策略。 此次“七彩假期”系列活动不仅为孩子们推开了一扇窥见科学奥秘的窗口，更彰显了队员们践行“百千万工程”的责任与担当。未来，队员们将继续携手小雨点潜能开发中心，把科学趣味课堂化作春雨般的 “小雨点”，洗去隔阂与距离，让孩子们在探索中释放天性、在陪伴中建立自信。责任编辑：谭彩盈一审：张博二审：袁志军三审：杨方