<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://newwiki.suanlemon.cc/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3A%E5%94%AE%E7%A5%A8%E4%BA%AD.js</id>
	<title>MediaWiki:售票亭.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://newwiki.suanlemon.cc/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3A%E5%94%AE%E7%A5%A8%E4%BA%AD.js"/>
	<link rel="alternate" type="text/html" href="https://newwiki.suanlemon.cc/index.php?title=MediaWiki:%E5%94%AE%E7%A5%A8%E4%BA%AD.js&amp;action=history"/>
	<updated>2026-05-16T22:57:43Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://newwiki.suanlemon.cc/index.php?title=MediaWiki:%E5%94%AE%E7%A5%A8%E4%BA%AD.js&amp;diff=152&amp;oldid=prev</id>
		<title>泡泡：​售票亭专用JS：车票统计自动计算</title>
		<link rel="alternate" type="text/html" href="https://newwiki.suanlemon.cc/index.php?title=MediaWiki:%E5%94%AE%E7%A5%A8%E4%BA%AD.js&amp;diff=152&amp;oldid=prev"/>
		<updated>2026-05-14T13:13:45Z</updated>

		<summary type="html">&lt;p&gt;售票亭专用JS：车票统计自动计算&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* 售票亭 - 车票统计 */&lt;br /&gt;
$(function() {&lt;br /&gt;
  var $stats = $(&amp;#039;#ticket-stats&amp;#039;);&lt;br /&gt;
  if (!$stats.length) return;&lt;br /&gt;
  &lt;br /&gt;
  var totalPassed = 0, totalFailed = 0;&lt;br /&gt;
  var latestDate = &amp;#039;&amp;#039;;&lt;br /&gt;
  &lt;br /&gt;
  $(&amp;#039;.mw-parser-output&amp;#039;).find(&amp;#039;h3, h4&amp;#039;).each(function() {&lt;br /&gt;
    var text = $(this).text().trim();&lt;br /&gt;
    var dateMatch = text.match(/(\d+月\d+日)\s*发车/);&lt;br /&gt;
    if (!dateMatch) return;&lt;br /&gt;
    &lt;br /&gt;
    if (!latestDate) latestDate = dateMatch[1];&lt;br /&gt;
    &lt;br /&gt;
    var $table = $(this).nextAll(&amp;#039;table&amp;#039;).first();&lt;br /&gt;
    if (!$table.length) return;&lt;br /&gt;
    &lt;br /&gt;
    var $passedCell = $table.find(&amp;#039;td:contains(&amp;quot;已售出车票&amp;quot;)&amp;#039;).closest(&amp;#039;tr&amp;#039;).nextAll(&amp;#039;tr&amp;#039;).first().find(&amp;#039;td&amp;#039;);&lt;br /&gt;
    var $failedCell = $table.find(&amp;#039;td:contains(&amp;quot;未能登车&amp;quot;)&amp;#039;).closest(&amp;#039;tr&amp;#039;).nextAll(&amp;#039;tr&amp;#039;).first().find(&amp;#039;td&amp;#039;);&lt;br /&gt;
    &lt;br /&gt;
    // Count passed&lt;br /&gt;
    var passedText = $passedCell.text().trim();&lt;br /&gt;
    if (passedText) {&lt;br /&gt;
      var lines = passedText.split(/\n/).filter(function(l) { return l.trim(); });&lt;br /&gt;
      // Each non-empty line starting without &amp;quot;已售出&amp;quot; is an entry&lt;br /&gt;
      // Actually count by splitting on newlines and filtering real entries&lt;br /&gt;
      totalPassed += lines.length;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    // Count failed&lt;br /&gt;
    var failedText = $failedCell.text().trim();&lt;br /&gt;
    if (failedText) {&lt;br /&gt;
      var failLines = failedText.split(/\n/).filter(function(l) { return l.trim(); });&lt;br /&gt;
      totalFailed += failLines.length;&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  $stats.html(&lt;br /&gt;
    &amp;#039;🎫 已发放车票 &amp;lt;strong&amp;gt;&amp;#039; + totalPassed + &amp;#039;&amp;lt;/strong&amp;gt; 张 &amp;amp;nbsp;|&amp;amp;nbsp; &amp;#039; +&lt;br /&gt;
    &amp;#039;✗ 未能登车 &amp;lt;strong&amp;gt;&amp;#039; + totalFailed + &amp;#039;&amp;lt;/strong&amp;gt; 人 &amp;amp;nbsp;|&amp;amp;nbsp; &amp;#039; +&lt;br /&gt;
    &amp;#039;📅 最近更新 &amp;lt;strong&amp;gt;&amp;#039; + latestDate + &amp;#039;&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
  );&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>泡泡</name></author>
	</entry>
</feed>