rollcall-classroom-assets 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/zuoye-app.js +11 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rollcall-classroom-assets",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Static assets for the classroom workbench (roll-call): app JS, pinyin/xlsx/zxing engines and icons. Published only so they can be served from a China-friendly CDN.",
5
5
  "keywords": [
6
6
  "assets",
package/zuoye-app.js CHANGED
@@ -8173,7 +8173,7 @@ const BC_MODE_KEY = 'rollcall_bc_mode';
8173
8173
  const BC_TIP = {
8174
8174
  thermal: '编号 = 班级号 + 姓氏拼音 A→Z 序号(35 班第 1 个 = 3501),全班固定不变。<b>热敏 50×20</b>:一张标签占一页,把打印机纸张设成 50×20 后直接连打,撕下贴作业本封面即可。',
8175
8175
  '30x10': '编号 = 班级号 + 姓氏拼音 A→Z 序号(35 班第 1 个 = 3501),全班固定不变。<b>热敏 30×10</b>:便携标签机常用小纸,一张占一页;上行印「编号 + 姓名」、下行是条码,把打印机纸张设成 30×10 后直接连打,撕下贴作业本角即可。',
8176
- a4: '编号 = 班级号 + 姓氏拼音 A→Z 序号(35 班第 1 个 = 3501),全班固定不变。<b>A4 拼版</b>:一页排 4 列,打印后沿虚线剪开,贴在作业本封面即可用扫码枪扫。',
8176
+ a4: '编号 = 班级号 + 姓氏拼音 A→Z 序号(35 班第 1 个 = 3501),全班固定不变。<b>A4 拼版</b>:一页 <b>4 列 × 14 行 = 56 格</b>(一个班 50 出头也能一页印完,不必跨页),打印后沿虚线剪开,贴作业本封面即可用扫码枪扫。',
8177
8177
  a4one: '编号 = 班级号 + 姓氏拼音 A→Z 序号(35 班第 1 个 = 3501),全班固定不变。<b>A4 · 一生一版</b>:一个孩子一张纸,11 行 × 3 列 = 33 张 TA 自己的 50×20 标签;<b>条码带已加高到 12.8mm</b>(贴书脊竖着更好扫),格与格之间留 6mm 空当,落剪刀好裁。'
8178
8178
  };
8179
8179
  // 打印方式白名单:thermal = 50×20、30x10 = 便携小标签、a4 = 拼版、a4one = A4 一生一版(11×4 同名)。
@@ -8181,11 +8181,13 @@ const BC_TIP = {
8181
8181
  const BC_MODES = ['thermal', '30x10', 'a4', 'a4one'];
8182
8182
  function normBcMode(v) { return BC_MODES.indexOf(String(v)) >= 0 ? String(v) : 'thermal'; }
8183
8183
  // @page 是**整篇文档级**规则,只能由 JS 按当前模式注入一条;三模式各自一张纸,集中在这里。
8184
- // 热敏纸都不吃页边距(标签本身就是成品尺寸),A4 才要留 8mm 走打印机不可打印区。
8184
+ // 热敏纸都不吃页边距(标签本身就是成品尺寸),A4 才要留边距走打印机不可打印区。
8185
8185
  const BC_PAGE = {
8186
8186
  thermal: '@page{size:50mm 20mm;margin:0}',
8187
8187
  '30x10': '@page{size:30mm 10mm;margin:0}',
8188
- a4: '@page{size:A4 portrait;margin:8mm}',
8188
+ // 拼版:8mm → 5mm(第 177 轮,用户:一页要装下整个班,最多 53 人)。
8189
+ // 5mm 下可用 200×287mm → 4 列 × 14 行 = 56 格,一页放下整班;原来 8mm/12 行 = 48 格,53 人要跨页。
8190
+ a4: '@page{size:A4 portrait;margin:5mm}',
8189
8191
  // 一生一版:5mm 页边距 → 可用宽 200mm = 4×50mm,正好贴满预裁标签纸
8190
8192
  a4one: '@page{size:A4 portrait;margin:5mm}'
8191
8193
  };
@@ -8231,12 +8233,13 @@ function renderBcSheet() {
8231
8233
  // (Code128 下限 0.25mm 的 1.97 倍),左右几乎无白边(静止区只留 2 模块)。
8232
8234
  // 上行 3mm + 0.15mm 间距 + 条码 6.15mm ≈ 9.3mm,10mm 纸内不跨页。
8233
8235
  // A4 拼版 :姓名 / 条码 / 编号 三行,剪开即用。第 176 轮:**条码不再写死 35mm 宽**,
8234
- // 改由 CSS width:100% 撑满格子(见 .mode-a4 .bc-svg),于是出码比例必须同步压扁
8235
- // —— h 40 → 35(viewBox 20 → 17.5 模块高):格子内宽 ≈44.6mm 时条码高 ≈11.8mm,
8236
- // 与一生一版那张图的条码带比例(48:12.8)一致,整格 ≈48×21mm,12 行/页不溢出。
8237
- // 若沿用 h=40,条码会涨到 13.5mm 高,整格 ≈22.3mm → 12 行 291mm 超一页。
8236
+ // 改由 CSS width:100% 撑满格子(见 .mode-a4 .bc-svg),于是出码比例必须同步压扁。
8237
+ // 第 177 轮:一页要装下整班(4 列 × 14 行 = 56 格)→ 行高被压到 ≈18.4mm,
8238
+ // 出码再压一档 h 35 → 30(viewBox 17.5 → 15 模块高):格子内宽 ≈45.3mm 时
8239
+ // 条码高 ≈10.3mm、模块宽 0.69mm(下限 0.25mm 的 2.7 倍),扫得动。
8240
+ // 若沿用 h=35,条码 11.5mm 高 → 整格 ≈19.6mm,14 行 296mm 超一页。
8238
8241
  sheet.innerHTML = items.map(x => bcMode === 'a4'
8239
- ? `<div class="bc-label"><div class="bc-nm" title="${esc(x.name)}">${esc(x.name)}</div>${code128Svg(x.code, { mw: 2, h: 35 })}<div class="bc-no">${esc(x.code)}</div></div>`
8242
+ ? `<div class="bc-label"><div class="bc-nm" title="${esc(x.name)}">${esc(x.name)}</div>${code128Svg(x.code, { mw: 2, h: 30 })}<div class="bc-no">${esc(x.code)}</div></div>`
8240
8243
  : `<div class="bc-label"><div class="bc-hd"><span class="bc-no">${esc(x.code)}</span> <span class="bc-nm" title="${esc(x.name)}">${esc(x.name)}</span></div>${code128Svg(x.code, { mw: 2, h: bcMode === '30x10' ? 25 : 40, quiet: bcMode === '30x10' ? 2 : 10 })}</div>`
8241
8244
  ).join('');
8242
8245
  applyBcPage();