json = require("json")
|
mobox = require("OILua_JavelinExt")
|
m3 = require("oi_base_mobox")
|
|
function GenerateViewHTML(strLuaDEID)
|
local nRet, strRetInfo
|
local autoplay = false
|
local strHtmlTitle = "";
|
local strHtmlRow = "";
|
--[[ 获取样式 ]]
|
local strHtmlStyle = GetHtmlStyle();
|
--[[ 列明 ]]
|
local tabTitleList = { "工位", "状态", "物料编码", "物料名称", "批次号", "装箱件数" }
|
|
--[[ 组织列名 ]]
|
--[[ class 处理样式 这里 组成(table-col' .. i .. ') table-col1,table-col2,table-col3 ]]
|
for i = 1, #tabTitleList do
|
strHtmlTitle = strHtmlTitle .. '<div class="table-col' .. i .. '">' .. tabTitleList[i] .. '</div>'
|
end
|
-- 获取执行中的作业数据
|
local tabDataList = {}
|
local packing_list, packing
|
local condition = "S_STATION = 'H' AND S_STATE IN('新建','启用')"
|
nRet, packing_list = m3.QueryDataObject(strLuaDEID, "GT_Packing_Order", condition)
|
if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "获取【装箱工单】失败!" .. packing_list) end
|
if (#packing_list > 0) then
|
-- 添加装箱工单信息
|
for i = 1, #packing_list do
|
nRet, packing = m3.ObjAttrStrToLuaObj("GT_Packing_Order", lua.table2str(packing_list[i].attrs))
|
if (nRet ~= 0) then lua.Error(strLuaDEID, debug.getinfo(1), "ObjAttrStrToLuaObj失败!" .. packing) end
|
|
tabDataList[i] = {
|
state = packing.state,
|
item_code = packing.item_code,
|
item_name = packing.item_name,
|
batch_no = packing.batch_no,
|
station_no = packing.station_no,
|
back = "#ffc107"
|
}
|
|
if(packing.state ~= '启用')then
|
tabDataList[i].back = "#2196F3"
|
end
|
end
|
end
|
|
if (#tabDataList > 4) then
|
autoplay = true
|
end
|
|
--[[ 组织行数据html ]]
|
for i = 1, #tabDataList do
|
strHtmlRow = strHtmlRow .. '<div class="swiper-slide"><div class="table-row-data">' ..
|
'<div class="table-col1">' .. '<div style=" background: ' .. tabDataList[i].back .. ';">' ..
|
tabDataList[i].state .. '</div>' .. '</div>' .. '<div class="table-col2">' ..
|
tabDataList[i].item_code .. '</div>' .. '<div class="table-col3">' .. tabDataList[i].item_name ..
|
'</div>' .. '<div class="table-col4">' .. tabDataList[i].batch_no .. '</div>' ..
|
'<div class="table-col5">' .. tabDataList[i].station_no .. '</div>' ..
|
'<div class="table-col6">' .. tabDataList[i].qty .. '</div>' .. '</div></div>'
|
end
|
|
--[[ 总html ]]
|
local strHtml = ' <div class="table91">' .. '<div class="table-head">' .. strHtmlTitle .. '</div>' ..
|
'<div class="table-body" style="overflow: hidden;"> <div class="swiper-container zxgw1"><div class="swiper-wrapper">' ..
|
strHtmlRow .. '</div></div></div>' .. '</div>'
|
|
local action = {}
|
action[1] = {
|
action_type = "chart",
|
value = {
|
graphicType = "html",
|
title = {
|
text = "当前入库任务",
|
align = "left",
|
color = "#fff",
|
font = "微软雅黑",
|
fontSize = 18
|
},
|
swiper = {
|
--[[ 容器名称不能重复 不能为空 swiper-container class 需要指定 ]]
|
containerName = "zxgw1",
|
--[[ 强制Swiper的宽度(px),"undefined" 或 整数, 当你的Swiper在隐藏状态下初始化时用得上。这个参数会使自适应失效。可设置为undefined使这个参数无效。 ]]
|
width = "undefined",
|
--[[ 强制Swiper的高度(px),当你的Swiper在隐藏状态下初始化时且切换方向为垂直才用得上。这个参数会使自适应失效。 ]]
|
height = 500,
|
--[[ 排列方向 vertical , horizontal ]]
|
direction = "vertical",
|
--[[ 切换速度,即slider自动滑动开始到结束的时间(单位ms) ]]
|
speed = 2000,
|
--[[ loop 模式如果与 slidesPerView: 'auto' 一起使用,需要设置 loopedSlides 指定要循环(重复)的幻灯片数量。 ]]
|
loop = true,
|
-- loopedSlides=10,
|
--[[ 设置slider容器能够同时显示的slides数量,整数或auto ]]
|
slidesPerView = 'auto',
|
--[[ 在slide之间设置距离(单位px)。 ]]
|
spaceBetween = 10,
|
--[[ 默认情况下Swiper 每次滑动时只滑动一个Slide,并且会自动贴合Wrapper。开启自由模式后,Swiper 会根据惯性滑动可能不止一格且不会贴合。 ]]
|
freeMode = false,
|
--[[ 设定slide与左边框的预设偏移量(单位px)。 垂直就行与上方距离 ]]
|
slidesOffsetBefore = 10,
|
--[[ 设定slide与右边框的预设偏移量(单位px)。 垂直就行与下方距离 ]]
|
slidesOffsetAfter = 10,
|
--[[是否自动播放,true 需要指定 autoplayDelay ]]
|
autoplay = autoplay,
|
--[[ 播放间隔时间,单位ms ]]
|
autoplayDelay = 100
|
},
|
html = strHtmlStyle .. strHtml
|
}
|
}
|
|
-- Debug( strLuaDEID, debug.getinfo(1), "action! ", action )
|
|
nRet, strRetInfo = mobox.setAction(strLuaDEID, json.encode(action))
|
if (nRet ~= 0) then
|
lua.Error(strLuaDEID, debug.getinfo(1), "setAction失败! " .. strRetInfo)
|
end
|
end
|
|
function GetHtmlStyle()
|
return
|
'<style>' .. '.table91 {' .. ' border: 2px solid #fff;' .. ' width: 100%;' .. ' height: 100%;' .. '}' ..
|
'.table91 .table-head {' ..
|
' border-bottom: 2px solid #fff; color: #fff;' .. '}' .. '.table91 .table-head>div {' ..
|
' text-align: center;' .. ' display: inline-block;' .. ' padding: 5px 0px;' ..
|
' font-size: 17px;' ..
|
' font-weight: 600;' .. '}' .. '.table91 .table-head .table-col1 {' .. ' width: 20%;' ..
|
' border-right: 2px solid;' ..
|
'}' .. '.table91 .table-head .table-col2 {' .. ' width: 16%;border-right: 2px solid;' ..
|
' border-right: 2px solid;' ..
|
'}' .. '.table91 .table-head .table-col3 {' .. ' width: 16%;border-right: 2px solid;' .. '}' ..
|
'.table91 .table-head .table-col4 {' .. ' width: 16%;border-right: 2px solid;' .. '}' ..
|
'.table91 .table-head .table-col5 {' .. ' width: 16%;border-right: 2px solid;' .. '}' ..
|
'.table91 .table-head .table-col6 {' .. ' width: 16%;' .. '}' ..
|
'.table91 .table-body .table-row-data{ margin-top: 10px; width: 100%;} .table91 .table-body .table-row-data>div {' ..
|
' text-align: center;' .. ' display: inline-block;' .. ' padding: 5px 0px;' .. ' color: #fff;' ..
|
'}' ..
|
'.table91 .table-row-data .table-col1 {' ..
|
' width: 20%;' .. '}' .. '.table91 .table-row-data .table-col1>div {' ..
|
' border-radius: 50px;' .. ' width: 92%;' .. ' display: inline-block;' .. ' padding: 5px 1px;' ..
|
' font-size: 12px;' .. '}' .. '.table91 .table-row-data .table-col2 {' .. ' width: 16%;' .. '}' ..
|
'.table91 .table-row-data .table-col3 {' .. ' width: 16%;' .. '}' ..
|
'.table91 .table-row-data .table-col4 {' .. ' width: 16%;' .. '}' ..
|
'.table91 .table-row-data .table-col5 {' .. ' width: 16%;' .. '}' ..
|
'.table91 .table-row-data .table-col6 {' .. ' width: 16%;' .. '}' ..
|
|
'</style>'
|
end
|