489 lines
22 KiB
JavaScript
489 lines
22 KiB
JavaScript
|
var Lary = {
|
|||
|
create: function(id, option) {
|
|||
|
var lary = {};
|
|||
|
// 画布
|
|||
|
lary.canvas = document.getElementById(id);
|
|||
|
lary.option = null; //初始化配置
|
|||
|
lary.cabinetShapes = []; //所有柜子的全局变量,shape为3D模型和业务数据合体
|
|||
|
//lary.initialCarmeraPosition = new BABYLON.Vector3(800, 210, 920); //斜45度视图
|
|||
|
lary.initialCarmeraPosition = new BABYLON.Vector3(50, 300, 800);
|
|||
|
|
|||
|
if (!option) {
|
|||
|
lary.option = {
|
|||
|
mdcName: "mdc",
|
|||
|
racks: [
|
|||
|
{ index: 1, name: "TR01", face: "default", state: "capacity", percent: 28 },
|
|||
|
{ index: 2, name: "TR02", state: "alarm", level: 1, face: "default" },
|
|||
|
{ index: 3, name: "TR03", state: "default", face: "default" },
|
|||
|
{ index: 4, name: "TR04", state: "default", face: "default" },
|
|||
|
{ index: 5, name: "TR05", state: "default", face: "default" },
|
|||
|
{ index: 6, name: "TR06", state: "default", face: "default" },
|
|||
|
{ index: 7, name: "TR07", state: "default", face: "default" },
|
|||
|
{ index: 8, name: "TR08", state: "default", face: "default" },
|
|||
|
{ index: 9, name: "TR09", state: "default", face: "default" },
|
|||
|
{ index: 10, name: "TR10", state: "capacity", percent: 71, face: "default" },
|
|||
|
{ index: 11, name: "TR11", state: "default", face: "default" },
|
|||
|
{ index: 12, name: "TR12", state: "default", face: "default" },
|
|||
|
{ index: 13, name: "TR13", state: "default", face: "default" },
|
|||
|
{ index: 14, name: "TR14", state: "default", face: "default" },
|
|||
|
{ index: 15, name: "TR15", state: "default", face: "default" },
|
|||
|
{ index: 16, name: "TR16", state: "default", face: "default" },
|
|||
|
{ index: 17, name: "TR17", state: "default", face: "default" },
|
|||
|
{ index: 18, name: "TR18", state: "default", face: "default" },
|
|||
|
{ index: 19, name: "TR19", state: "default", face: "default" },
|
|||
|
{ index: 20, name: "TR20", state: "default", face: "default" },
|
|||
|
{ index: 21, name: "TR21", state: "default", face: "default" },
|
|||
|
{ index: 22, name: "TR22", state: "default", face: "default" },
|
|||
|
{ index: 23, name: "TR23", state: "default", face: "default" },
|
|||
|
{ index: 24, name: "TR24", state: "default", face: "default" },
|
|||
|
{ index: 25, name: "TR25", state: "default", face: "default" },
|
|||
|
{ index: 26, name: "TR26", state: "default", face: "default" },
|
|||
|
{ index: 27, name: "TR27", state: "default", face: "default" },
|
|||
|
{ index: 28, name: "TR28", state: "default", face: "default" },
|
|||
|
{ index: 29, name: "TR29", state: "default", face: "default" },
|
|||
|
{ index: 30, name: "TR30", state: "default", face: "default" }
|
|||
|
],
|
|||
|
behaviors: {
|
|||
|
clickCallback: null,
|
|||
|
dbclickCallback: null
|
|||
|
}
|
|||
|
};
|
|||
|
} else {
|
|||
|
lary.option = option;
|
|||
|
}
|
|||
|
|
|||
|
//初始化
|
|||
|
lary.init = function() {
|
|||
|
lary.engine = new BABYLON.Engine(lary.canvas, true, { stencil: true }); // Generate the BABYLON 3D engine
|
|||
|
lary.scene = new BABYLON.Scene(lary.engine);
|
|||
|
lary.scene.clearColor = new BABYLON.Color3(1, 1, 1);
|
|||
|
lary.manager = new BABYLON.GUI.GUI3DManager(lary.scene);
|
|||
|
lary.advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("myUI");
|
|||
|
//lary.anchor = new BABYLON.TransformNode("anchor",lary.scene);
|
|||
|
//lary.anchor.rotation.y = 3.1415926;
|
|||
|
lary.advancedTexture.isForeground = false;
|
|||
|
|
|||
|
lary.light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(2000, 2000, 1000), lary.scene);
|
|||
|
lary.light1 = new BABYLON.DirectionalLight("DirectionalLight", new BABYLON.Vector3(1, -1, 0), lary.scene);
|
|||
|
lary.light2 = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(1, 1, 0), lary.scene); //环境光
|
|||
|
lary.light.intensity = 0.3; //灯光强度
|
|||
|
|
|||
|
lary.camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 0, BABYLON.Vector3.Zero(), lary.scene);
|
|||
|
lary.camera.setPosition(lary.initialCarmeraPosition);
|
|||
|
lary.camera.attachControl(lary.canvas, false);
|
|||
|
|
|||
|
lary.highlightLayer = new BABYLON.HighlightLayer("hl1", lary.scene);
|
|||
|
|
|||
|
lary.materialDefaultCabinet = new BABYLON.StandardMaterial("cabinetBasicMaterial", lary.scene);
|
|||
|
//var cabinetTexture = new BABYLON.CubeTexture('/rackbox/side', lary.scene);
|
|||
|
var cabinetTexture = new BABYLON.Texture("../../../img/diagram/mdc_rack.jpg", lary.scene);
|
|||
|
cabinetTexture.backFaceCulling = false;
|
|||
|
lary.materialDefaultCabinet.diffuseTexture = cabinetTexture;
|
|||
|
|
|||
|
lary.materialSideCabinet = new BABYLON.StandardMaterial("cabinetSideMaterial", lary.scene);
|
|||
|
var cabinetSideTexture = new BABYLON.Texture("../../../img/diagram/side.jpg", lary.scene);
|
|||
|
cabinetSideTexture.backFaceCulling = false;
|
|||
|
lary.materialSideCabinet.diffuseTexture = cabinetSideTexture;
|
|||
|
|
|||
|
lary.loadModel();
|
|||
|
lary.refresh(lary.option);
|
|||
|
|
|||
|
// Move the light with the camera
|
|||
|
lary.scene.registerBeforeRender(function() {
|
|||
|
lary.light.position = lary.camera.position
|
|||
|
});
|
|||
|
|
|||
|
//init camera animation
|
|||
|
lary.animationSide = new BABYLON.Animation("Side", "position", 25, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);
|
|||
|
var keys = [];
|
|||
|
|
|||
|
keys.push({
|
|||
|
frame: 0,
|
|||
|
//value: BABYLON.Vector3.Zero(),
|
|||
|
value: lary.initialCarmeraPosition
|
|||
|
//outTangent: new BABYLON.Vector3(1000, 400, 1000)
|
|||
|
});
|
|||
|
|
|||
|
keys.push({
|
|||
|
frame: 20,
|
|||
|
//inTangent: new BABYLON.Vector3(1, 0, 0),
|
|||
|
value: new BABYLON.Vector3(0, 300, 400)
|
|||
|
//outTangent: new BABYLON.Vector3(-1, 0, 0)
|
|||
|
});
|
|||
|
|
|||
|
keys.push({
|
|||
|
frame: 50,
|
|||
|
//inTangent: new BABYLON.Vector3(-100, 400, 100),
|
|||
|
value: new BABYLON.Vector3(-40, 300, -1000)
|
|||
|
});
|
|||
|
|
|||
|
lary.animationSide.setKeys(keys);
|
|||
|
|
|||
|
lary.camera.animations = [];
|
|||
|
lary.camera.animations.push(lary.animationSide);
|
|||
|
|
|||
|
//lary.camera.position = lary.initialCarmeraPosition;
|
|||
|
//lary.camera.setPosition(lary.initialCarmeraPosition);
|
|||
|
// Register a render loop to repeatedly render the scene
|
|||
|
lary.engine.runRenderLoop(function() {
|
|||
|
lary.scene.render();
|
|||
|
});
|
|||
|
|
|||
|
// Watch for browser/canvas resize events
|
|||
|
window.addEventListener("resize", function() {
|
|||
|
lary.engine.resize();
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
lary.loadModel = function() {
|
|||
|
// The first parameter can be used to specify which mesh to import. Here we import all meshes
|
|||
|
BABYLON.SceneLoader.ImportMesh("", "/js/lib/lary/", "mdc.obj", lary.scene, function(newMeshes) {
|
|||
|
// Set the target of the camera to the first imported mesh
|
|||
|
lary.camera.target = newMeshes[0];
|
|||
|
});
|
|||
|
|
|||
|
/*lary.option.racks.forEach(element => {
|
|||
|
lary.createCabinet(element);
|
|||
|
});*/
|
|||
|
//低版本兼容
|
|||
|
lary.option.racks.forEach(function(element){
|
|||
|
lary.createCabinet(element);
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
lary.getRackPosition = function(index) {
|
|||
|
if (index === 1) {
|
|||
|
return BABYLON.Vector3(0, 0, 0);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
lary.createCabinet = function(rackInfo) {
|
|||
|
//如果cabinet已经创建则不删除,只更新或隐藏模型对象。cabinetShapes
|
|||
|
//根据index创建对象,可能多个复合来进行控制显示隐藏。
|
|||
|
var cabinetMaterial = new BABYLON.StandardMaterial("cabinetBasicMaterial", lary.scene);
|
|||
|
//var cabinetTexture = new BABYLON.CubeTexture('/rackbox/side', lary.scene);
|
|||
|
var cabinetTexture = new BABYLON.Texture("../../../img/diagram/mdc_rack.jpg", lary.scene);
|
|||
|
cabinetTexture.backFaceCulling = false;
|
|||
|
cabinetMaterial.diffuseTexture = cabinetTexture;
|
|||
|
//cabinetTexture.emissiveTexture = cabinetTexture;
|
|||
|
//cabinetTexture.specularTexture = cabinetTexture;
|
|||
|
//cabinetMaterial.specularColor = new BABYLON.Color3(1, 1, 1);
|
|||
|
//cabinetTexture.disableLighting = true;
|
|||
|
|
|||
|
function create2DLabel(mesh, txt, manager) {
|
|||
|
var label = new BABYLON.GUI.Rectangle("label for " + txt);
|
|||
|
label.background = "#363636";
|
|||
|
label.height = "30px";
|
|||
|
label.alpha = 0.8;
|
|||
|
label.width = "30px";
|
|||
|
label.cornerRadius = 5;
|
|||
|
label.thickness = 2;
|
|||
|
lary.advancedTexture.addControl(label);
|
|||
|
label.linkWithMesh(mesh);
|
|||
|
var text1 = new BABYLON.GUI.TextBlock();
|
|||
|
text1.text = txt;
|
|||
|
text1.color = "white";
|
|||
|
text1.fontSize = "12";
|
|||
|
label.addControl(text1);
|
|||
|
label.linkOffsetY = -100;
|
|||
|
label.position.z = 300;
|
|||
|
return label;
|
|||
|
}
|
|||
|
|
|||
|
function create3DTitle(position, txt, rotationY) {
|
|||
|
var button = new BABYLON.GUI.HolographicButton(txt);
|
|||
|
lary.manager.addControl(button);
|
|||
|
var text1 = new BABYLON.GUI.TextBlock();
|
|||
|
text1.text = txt;
|
|||
|
text1.color = "lightgreen";
|
|||
|
text1.fontSize = 88;
|
|||
|
button.content = text1;
|
|||
|
button.scaling = new BABYLON.Vector3(40, 20, 30);
|
|||
|
// button.text = "rotate";
|
|||
|
// button.imageUrl = "./textures/down.png";
|
|||
|
// button.onPointerUpObservable.add(function(){
|
|||
|
// donut.rotation.x -= 0.05;
|
|||
|
// });
|
|||
|
button.position.x = position.x;
|
|||
|
button.position.y = position.y;
|
|||
|
button.position.z = position.z;
|
|||
|
button.mesh.rotation.y = rotationY;
|
|||
|
return button;
|
|||
|
}
|
|||
|
|
|||
|
if (rackInfo.index <= 15) {
|
|||
|
//var box = BABYLON.MeshBuilder.CreateBox("cabinet" + rackInfo.index, { height: 200, width: 60, depth: 100 }, lary.scene);
|
|||
|
|
|||
|
var pos = new BABYLON.Vector3(-512 + 64 * rackInfo.index, 0, -10);
|
|||
|
var box = lary.createCabinetBox("cabinet" + rackInfo.index, rackInfo.face, pos);
|
|||
|
|
|||
|
//box.position.x = -512 + 64 * rackInfo.index;
|
|||
|
//box.position.z = -10;
|
|||
|
//box.material = cabinetMaterial;
|
|||
|
var pos = {};
|
|||
|
pos.x = -512 + 64 * rackInfo.index;
|
|||
|
pos.y = 130;
|
|||
|
pos.z = 40;
|
|||
|
|
|||
|
var title = create3DTitle(pos, rackInfo.name, 3.141592);
|
|||
|
var capBox = BABYLON.MeshBuilder.CreateBox("cabinetCap" + rackInfo.index, { height: 200, width: 60, depth: 100 }, lary.scene);
|
|||
|
capBox.position = box.position;
|
|||
|
capBox.material = new BABYLON.StandardMaterial("myMaterial" + rackInfo.index, lary.scene);
|
|||
|
capBox.material.diffuseColor = new BABYLON.Color3.Teal();
|
|||
|
capBox.isVisible = false;
|
|||
|
|
|||
|
var shape = { index: rackInfo.index, rackInfo: rackInfo, defaultMesh: box, title3D: title, capacityMesh: capBox };
|
|||
|
lary.cabinetShapes.push(shape);
|
|||
|
}
|
|||
|
|
|||
|
if (rackInfo.index > 15) {
|
|||
|
var pos = new BABYLON.Vector3(-512 + 64 * (rackInfo.index - 15), -0, -230);
|
|||
|
var box = lary.createCabinetBox("cabinet" + rackInfo.index, rackInfo.face, pos);
|
|||
|
|
|||
|
// var box = BABYLON.MeshBuilder.CreateBox("cabinet" + rackInfo.index, { height: 200, width: 60, depth: 100 }, lary.scene);
|
|||
|
// box.position.x = -512 + 64 * (rackInfo.index - 15);
|
|||
|
// box.position.z = -230
|
|||
|
// //box.position.y = -0.1
|
|||
|
// box.material = cabinetMaterial;
|
|||
|
|
|||
|
var pos = {};
|
|||
|
pos.x = -512 + 64 * (rackInfo.index - 15);
|
|||
|
pos.y = 130;
|
|||
|
pos.z = -280;
|
|||
|
|
|||
|
var title = create3DTitle(pos, rackInfo.name, 0);
|
|||
|
|
|||
|
var capBox = BABYLON.MeshBuilder.CreateBox("cabinetCap" + rackInfo.index, { height: 200, width: 60, depth: 100 }, lary.scene);
|
|||
|
capBox.position = box.position;
|
|||
|
capBox.material = new BABYLON.StandardMaterial("myMaterial" + rackInfo.index, lary.scene);
|
|||
|
capBox.material.diffuseColor = new BABYLON.Color3.Teal();
|
|||
|
capBox.isVisible = false;
|
|||
|
|
|||
|
var shape = { index: rackInfo.index, rackInfo: rackInfo, defaultMesh: box, title3D: title, capacityMesh: capBox };
|
|||
|
|
|||
|
lary.cabinetShapes.push(shape);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
lary.createCabinetBox = function(name, face, position) {
|
|||
|
var box = BABYLON.MeshBuilder.CreateBox(name, { height: 200, width: 60, depth: 100 }, lary.scene);
|
|||
|
box.showBoundingBox = false;
|
|||
|
|
|||
|
var f = null;
|
|||
|
var ba = null;
|
|||
|
if (face === "default") {
|
|||
|
f = lary.materialDefaultCabinet;
|
|||
|
ba = lary.materialDefaultCabinet;
|
|||
|
} else if (face === "side") {
|
|||
|
f = lary.materialSideCabinet;
|
|||
|
ba = lary.materialSideCabinet;
|
|||
|
}
|
|||
|
|
|||
|
//var ba = lary.materialSideCabinet;
|
|||
|
var l = lary.materialSideCabinet;
|
|||
|
var r = lary.materialSideCabinet;
|
|||
|
var t = lary.materialSideCabinet;
|
|||
|
var bo = lary.materialSideCabinet;
|
|||
|
// var f = new BABYLON.StandardMaterial("material0" + name, lary.scene);
|
|||
|
// f.diffuseColor = new BABYLON.Color3(0.75, 0, 0);
|
|||
|
// f.diffuseTexture=new BABYLON.Texture("nugget.png",scene);
|
|||
|
// var ba = new BABYLON.StandardMaterial("material1" + name, lary.scene);
|
|||
|
// ba.diffuseColor = new BABYLON.Color3(0, 0, 0.75);
|
|||
|
// var l = new BABYLON.StandardMaterial("material2" + name, lary.scene);
|
|||
|
// l.diffuseColor = new BABYLON.Color3(0, 0.75, 0.75);
|
|||
|
// var r = new BABYLON.StandardMaterial("material3" + name, lary.scene);
|
|||
|
// r.diffuseColor = new BABYLON.Color3(0, 0, 0.75);
|
|||
|
// var t = new BABYLON.StandardMaterial("material4" + name, lary.scene);
|
|||
|
// t.diffuseColor = new BABYLON.Color3(0, 0.75, 0);
|
|||
|
// var bo = new BABYLON.StandardMaterial("material5" + name, lary.scene);
|
|||
|
// bo.diffuseColor = new BABYLON.Color3(1, 1, 0);
|
|||
|
//put into one
|
|||
|
var multi = new BABYLON.MultiMaterial("nuggetman" + name, lary.scene);
|
|||
|
multi.subMaterials.push(f);
|
|||
|
multi.subMaterials.push(ba);
|
|||
|
multi.subMaterials.push(l);
|
|||
|
multi.subMaterials.push(r);
|
|||
|
multi.subMaterials.push(t);
|
|||
|
multi.subMaterials.push(bo);
|
|||
|
//apply material
|
|||
|
box.subMeshes = [];
|
|||
|
var verticesCount = box.getTotalVertices();
|
|||
|
box.subMeshes.push(new BABYLON.SubMesh(0, 0, verticesCount, 0, 6, box));
|
|||
|
box.subMeshes.push(new BABYLON.SubMesh(1, 1, verticesCount, 6, 6, box));
|
|||
|
box.subMeshes.push(new BABYLON.SubMesh(2, 2, verticesCount, 12, 6, box));
|
|||
|
box.subMeshes.push(new BABYLON.SubMesh(3, 3, verticesCount, 18, 6, box));
|
|||
|
box.subMeshes.push(new BABYLON.SubMesh(4, 4, verticesCount, 24, 6, box));
|
|||
|
box.subMeshes.push(new BABYLON.SubMesh(5, 5, verticesCount, 30, 6, box));
|
|||
|
box.material = multi;
|
|||
|
box.position = position;
|
|||
|
return box;
|
|||
|
};
|
|||
|
|
|||
|
//数据刷新
|
|||
|
lary.refresh = function(data) {
|
|||
|
/*data.racks.forEach((item) => {
|
|||
|
var foundCabinet = lary.cabinetShapes.find((shape, index) => {
|
|||
|
return shape.index === item.index;
|
|||
|
})
|
|||
|
|
|||
|
if (foundCabinet) {
|
|||
|
try {
|
|||
|
changeAlarmColor(item.state, foundCabinet);
|
|||
|
changeCapacity(item.state, foundCabinet);
|
|||
|
} catch (error) {
|
|||
|
console.error(error);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
});*/
|
|||
|
//低版本兼容,,,
|
|||
|
data.racks.forEach(function(item){
|
|||
|
var foundCabinet = undefined;
|
|||
|
lary.cabinetShapes.forEach(function(shape){
|
|||
|
if(shape.index === item.index)
|
|||
|
foundCabinet = shape;
|
|||
|
});
|
|||
|
|
|||
|
if (foundCabinet) {
|
|||
|
try {
|
|||
|
changeAlarmColor(item.state, foundCabinet);
|
|||
|
changeCapacity(item.state, foundCabinet);
|
|||
|
} catch (error) {
|
|||
|
console.error(error);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
function changeCapacity(state, shape) {
|
|||
|
//restore to default capcaity
|
|||
|
//refresh capacity
|
|||
|
shape.capacityMesh.isVisible = false;
|
|||
|
shape.defaultMesh.isVisible = true;
|
|||
|
shape.capacityMesh.scaling.y = 1;
|
|||
|
shape.capacityMesh.position.y = 0;
|
|||
|
|
|||
|
if (state == "capacity") {
|
|||
|
shape.defaultMesh.isVisible = false;
|
|||
|
shape.capacityMesh.isVisible = true;
|
|||
|
shape.capacityMesh.scaling.y = shape.rackInfo.percent / 100;
|
|||
|
shape.capacityMesh.position.y = -200 * (1 - shape.rackInfo.percent / 100) / 2 + 1;
|
|||
|
}
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
function changeAlarmColor(state, shape) {
|
|||
|
lary.highlightLayer.removeMesh(shape.defaultMesh);
|
|||
|
if (state == "alarm") {
|
|||
|
shape.defaultMesh.isVisible = true;
|
|||
|
switch (shape.rackInfo.level) {
|
|||
|
case 1:
|
|||
|
lary.highlightLayer.addMesh(shape.defaultMesh, BABYLON.Color3.Red());
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
lary.highlightLayer.addMesh(shape.defaultMesh, BABYLON.Color3.FromHexString("#FF7F50"));
|
|||
|
break;
|
|||
|
case 3:
|
|||
|
lary.highlightLayer.addMesh(shape.defaultMesh, BABYLON.Color3.Yellow());
|
|||
|
break;
|
|||
|
case 4:
|
|||
|
lary.highlightLayer.addMesh(shape.defaultMesh, BABYLON.Color3.Blue());
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
//显示MDC的A/B两外侧 sideX='A' or sideX='B'
|
|||
|
lary.showSide = function(sideX) {
|
|||
|
if (lary.currentSide == null) {
|
|||
|
lary.currentSide = true;
|
|||
|
} else {
|
|||
|
lary.currentSide = !lary.currentSide;
|
|||
|
}
|
|||
|
|
|||
|
if (lary.currentSide) {
|
|||
|
lary.scene.beginAnimation(lary.camera, 0, 50, true);
|
|||
|
} else {
|
|||
|
lary.scene.beginAnimation(lary.camera, 50, 0, true);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
//析构
|
|||
|
lary.dispose = function() {};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//init steps
|
|||
|
lary.init();
|
|||
|
|
|||
|
return lary;
|
|||
|
}
|
|||
|
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
// /**
|
|||
|
// * 显示Toast
|
|||
|
// * @param text 文本内容
|
|||
|
// * @param type 类型 success error
|
|||
|
// * @param duration 持续时间
|
|||
|
// */
|
|||
|
// show: function (text, type, duration) {
|
|||
|
// // 确保上一次的 TimeOut 已被清空
|
|||
|
// if (this.hideTimeOut) {
|
|||
|
// clearTimeout(this.hideTimeOut);
|
|||
|
// this.hideTimeOut = null;
|
|||
|
// // console.error('上一次的 TimeOut 还未走完!');
|
|||
|
// // return;
|
|||
|
// }
|
|||
|
// if (!text) {
|
|||
|
// console.error('text 不能为空!');
|
|||
|
// return;
|
|||
|
// }
|
|||
|
// var domToastWaka = document.getElementById('toastWaka');
|
|||
|
// console.log('domToastWaka', domToastWaka);
|
|||
|
// if (!domToastWaka) {
|
|||
|
// console.error('toastWaka DOM 不存在!');
|
|||
|
// return;
|
|||
|
// }
|
|||
|
// var domIconSuccess = domToastWaka.querySelector('.icon-success'); // 成功图标
|
|||
|
// var domIconError = domToastWaka.querySelector('.icon-error'); // 错误图标
|
|||
|
// var domToastText = domToastWaka.querySelector('.text'); // 文字
|
|||
|
// domToastText.innerHTML = text || '';
|
|||
|
// switch (type) {
|
|||
|
// case 'success':
|
|||
|
// domIconSuccess.style.display = 'inline';
|
|||
|
// domIconError.style.display = 'none';
|
|||
|
// break;
|
|||
|
// case 'error':
|
|||
|
// domIconSuccess.style.display = 'none';
|
|||
|
// domIconError.style.display = 'inline';
|
|||
|
// break;
|
|||
|
// default:
|
|||
|
// domIconSuccess.style.display = 'none';
|
|||
|
// domIconError.style.display = 'none';
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// domToastWaka.style.display = 'block';
|
|||
|
// // 不传的话默认2s
|
|||
|
// var that = this;
|
|||
|
// this.hideTimeOut = setTimeout(function () {
|
|||
|
// domToastWaka.style.display = 'none';
|
|||
|
// that.hideTimeOut = null; // 置 TimeOut 引用为空
|
|||
|
// }, duration || 2000);
|
|||
|
// },
|
|||
|
// /**
|
|||
|
// * 隐藏 Toast
|
|||
|
// */
|
|||
|
// hide: function () {
|
|||
|
// // 如果 TimeOut 存在
|
|||
|
// if (this.hideTimeOut) {
|
|||
|
// // 清空 TimeOut 引用
|
|||
|
// clearTimeout(this.hideTimeOut);
|
|||
|
// this.hideTimeOut = null;
|
|||
|
// }
|
|||
|
// var domToastWaka = document.getElementById('toastWaka');
|
|||
|
// if (domToastWaka) {
|
|||
|
// domToastWaka.style.display = 'none';
|
|||
|
// }
|
|||
|
// }/
|