170 lines
4.9 KiB
Lua
170 lines
4.9 KiB
Lua
MyUtl = {}
|
||
MyUtl.dampenStrength = 3 -- 惯性阻力
|
||
|
||
MyUtl.init = function(panel)
|
||
MyUtl.getUIContent(panel)
|
||
end
|
||
|
||
MyUtl.defaultTopHeight = 132
|
||
MyUtl.defaultBottomHeight = 147
|
||
local _ContentRect
|
||
local _sizeAdjust
|
||
|
||
---@return UnityEngine.Vector4
|
||
MyUtl.getUIContent = function(panel, top, bottom, forceCal)
|
||
-- if _ContentRect and (not forceCal) then
|
||
-- return _ContentRect
|
||
-- end
|
||
local sizeAdjust = UIRoot.GetPixelSizeAdjustment(panel.gameObject)
|
||
local height = Screen.height * sizeAdjust
|
||
top = top or MyUtl.defaultTopHeight
|
||
bottom = bottom or MyUtl.defaultBottomHeight
|
||
local offsetRect = NGUITools.offsetRect
|
||
top = top + offsetRect.y * height
|
||
bottom = bottom + offsetRect.w * height
|
||
|
||
_sizeAdjust = sizeAdjust
|
||
_ContentRect = Vector4(0, (bottom - top) / 2, Screen.width * sizeAdjust, height - (bottom + top))
|
||
return _ContentRect
|
||
end
|
||
|
||
MyUtl.setContentView = function(go, top, bottom)
|
||
local panel = go:GetComponent("UIPanel")
|
||
if panel then
|
||
panel.transform.localPosition = Vector3.zero
|
||
panel.clipOffset = Vector2.zero
|
||
panel.baseClipRegion = MyUtl.getUIContent(panel, top, bottom)
|
||
end
|
||
end
|
||
|
||
MyUtl.getSizeAdjust = function()
|
||
return _sizeAdjust
|
||
end
|
||
|
||
---public 拨号
|
||
MyUtl.callCust = function(cust)
|
||
if type(cust.jsonStr) == "string" then
|
||
cust.jsonStr = json.decode(cust.jsonStr)
|
||
end
|
||
cust.jsonStr = cust.jsonStr or {}
|
||
local phones = ArrayList()
|
||
local phonesVal = ArrayList()
|
||
|
||
local taskId = tostring(cust.taskId)
|
||
local fields = DBCust.getFieldsByTask(taskId)
|
||
for i, attr in ipairs(fields) do
|
||
if attr.attrType == DBCust.FieldType.phone then
|
||
local phNo = cust.jsonStr[joinStr(attr.id, "_", attr.attrName)]
|
||
if not isNilOrEmpty(phNo) then
|
||
phones:Add(joinStr(attr.attrName, ": ", MyUtl.hidePhone(phNo)))
|
||
phonesVal:Add(phNo)
|
||
end
|
||
end
|
||
end
|
||
if phones.Count > 0 then
|
||
phones:Insert(0, joinStr("默认: ", MyUtl.hidePhone(cust.phoneNo)))
|
||
phonesVal:Insert(0, cust.phoneNo)
|
||
CLUIPopListPanel.show(
|
||
phones,
|
||
phonesVal,
|
||
function(val, selectedItem)
|
||
if val then
|
||
MyUtl.doCall(cust.custId, val, cust)
|
||
end
|
||
end
|
||
)
|
||
else
|
||
MyUtl.doCall(cust.custId, cust.phoneNo, cust)
|
||
end
|
||
end
|
||
|
||
MyUtl.doCall = function(custId, phoneNo, cust)
|
||
showHotWheel("拨号中...")
|
||
NetProto.send.bi_call(
|
||
custId,
|
||
phoneNo,
|
||
nil,
|
||
function(content)
|
||
hideHotWheel()
|
||
if content.success then
|
||
MyUtl.toastS("拨号成功!")
|
||
getPanelAsy("PanelNewFollowSimple", onLoadedPanelTT, cust)
|
||
end
|
||
end
|
||
)
|
||
end
|
||
|
||
MyUtl.toast = function(msg, staySec)
|
||
CLToastRoot.toast(msg, CLToastRoot.Type.normal, staySec)
|
||
end
|
||
MyUtl.toastS = function(msg, staySec)
|
||
CLToastRoot.toast(msg, CLToastRoot.Type.success, staySec)
|
||
end
|
||
MyUtl.toastW = function(msg, staySec)
|
||
CLToastRoot.toast(msg, CLToastRoot.Type.warning, staySec)
|
||
end
|
||
|
||
MyUtl.toastE = function(msg, staySec)
|
||
CLToastRoot.toast(msg, CLToastRoot.Type.error, staySec)
|
||
end
|
||
|
||
MyUtl.confirm = function(msg, callback, buttonName)
|
||
getPanelAsy("PanelConfirm2", onLoadedPanelTT, {msg = msg, callback = callback, buttonName = buttonName})
|
||
end
|
||
|
||
MyUtl.isHidePhone = true
|
||
function MyUtl.setIsHidePhone(val)
|
||
MyUtl.isHidePhone = (val == 1 and true or false)
|
||
end
|
||
|
||
MyUtl.hidePhone = function(phone)
|
||
if not phone then
|
||
return
|
||
end
|
||
if not MyUtl.isHidePhone then
|
||
return phone
|
||
end
|
||
if #phone > 8 then
|
||
return joinStr(string.sub(phone, 1, 3), "****", string.sub(phone, 8))
|
||
else
|
||
return joinStr(string.sub(phone, 1, 3), "****")
|
||
end
|
||
end
|
||
|
||
MyUtl.Images = {
|
||
[".JPG"] = true,
|
||
[".JPEG"] = true,
|
||
[".PNG"] = true,
|
||
[".PDF"] = true,
|
||
[".BMP"] = true,
|
||
[".TGA"] = true,
|
||
[".GIF"] = true
|
||
}
|
||
|
||
---public 是图片
|
||
MyUtl.isImage = function(path)
|
||
local extension = Path.GetExtension(path)
|
||
return MyUtl.Images[string.upper(extension)] or false
|
||
end
|
||
|
||
---@param oldTexture UnityEngine.Texture2D
|
||
MyUtl.CompressImage = function(imgPath, maxSize, quality)
|
||
if not File.Exists(imgPath) then
|
||
printe("文件不存在==".. imgPath)
|
||
return
|
||
end
|
||
-- int quality = 80;//图片压缩质量(1-100)
|
||
quality = quality or 75
|
||
|
||
local bytes = File.ReadAllBytes(imgPath)
|
||
---@type UnityEngine.Texture2D
|
||
local texture = Texture2D(2, 2)
|
||
ImageConversion.LoadImage(texture, bytes)
|
||
texture = MyFileOpen.ResizeTexture(texture, maxSize, MyFileOpen.ImageFilterMode.Average)
|
||
|
||
local newBytes = ImageConversion.EncodeToJPG(texture, quality)
|
||
return newBytes
|
||
end
|
||
|
||
return MyUtl
|