无编辑摘要 |
无编辑摘要 标签:已被回退 |
||
| 第2行: | 第2行: | ||
local p = {} | local p = {} | ||
function p.display(frame) | |||
-- 初始化 | |||
local route = frame.args.route or '22' | |||
local html = mw.html.create('table'):addClass('wikitable') | |||
function p. | |||
local | |||
-- | -- 添加表头 | ||
html:node(frame:expandTemplate{ title = '线路配车表格头' }) | |||
-- 假设dt2-showtable提供数据库接口(需确认扩展API) | |||
local db = mw.ext.data.getDB() | |||
local rows = db:query{ | |||
table = 'bustable', | |||
where = { | |||
['route1'] = route, | |||
['route2'] = route, | |||
status = '营运' | |||
}, | |||
where_operator = 'OR', -- route1 OR route2 | |||
order_by = 'depot' | |||
} | |||
-- 计数逻辑 | |||
local depot_counts = {} | |||
local current_depot = '' | |||
local depot1 = 0 | |||
local num = 0 | |||
for _, row in ipairs(rows) do | |||
local depot = row.depot or '' | |||
-- 计数 | |||
if current_depot == '' then | |||
depot1 = 1 | |||
num = 0 | |||
elseif current_depot == depot then | |||
depot1 = depot1 + 1 | |||
else | |||
num = num + 1 | |||
depot1 = 1 | |||
end | |||
current_depot = depot | |||
depot_counts[depot] = depot1 | |||
-- 渲染行 | |||
html:node(frame:expandTemplate{ | |||
title = '线路配车', | |||
args = { | |||
number = row.number, | |||
depot = depot, | |||
model = row.model, | |||
batch = row.batch, | |||
faci = row.faci, | |||
color = row.color, | |||
shift = row.shift, | |||
attr = row.attr, | |||
depotlen = depot_counts[depot] | |||
} | |||
}) | |||
end | end | ||
return tostring(html) | |||
return | |||
end | end | ||
return p | return p | ||
2025年4月15日 (二) 11:02的版本
此模块的文档可以在模块:BusDepot/doc创建
-- Module:BusDepot
local p = {}
function p.display(frame)
-- 初始化
local route = frame.args.route or '22'
local html = mw.html.create('table'):addClass('wikitable')
-- 添加表头
html:node(frame:expandTemplate{ title = '线路配车表格头' })
-- 假设dt2-showtable提供数据库接口(需确认扩展API)
local db = mw.ext.data.getDB()
local rows = db:query{
table = 'bustable',
where = {
['route1'] = route,
['route2'] = route,
status = '营运'
},
where_operator = 'OR', -- route1 OR route2
order_by = 'depot'
}
-- 计数逻辑
local depot_counts = {}
local current_depot = ''
local depot1 = 0
local num = 0
for _, row in ipairs(rows) do
local depot = row.depot or ''
-- 计数
if current_depot == '' then
depot1 = 1
num = 0
elseif current_depot == depot then
depot1 = depot1 + 1
else
num = num + 1
depot1 = 1
end
current_depot = depot
depot_counts[depot] = depot1
-- 渲染行
html:node(frame:expandTemplate{
title = '线路配车',
args = {
number = row.number,
depot = depot,
model = row.model,
batch = row.batch,
faci = row.faci,
color = row.color,
shift = row.shift,
attr = row.attr,
depotlen = depot_counts[depot]
}
})
end
return tostring(html)
end
return p