此模块的文档可以在模块: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