Help
RSS
API
Feed
Maltego
Contact
Domain > eleafmacau.com
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2014-07-01
98.126.63.173
(
ClassC
)
2024-11-12
43.155.110.142
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: openrestyDate: Tue, 12 Nov 2024 21:13:06 GMTContent-Type: text/htmlContent-Length: 166Connection: keep-aliveLocation: https://eleafmacau.com/ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>openresty/center>/body>/html>
Port 443
HTTP/1.1 200 OKServer: openrestyDate: Tue, 12 Nov 2024 21:13:07 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveHost: eleafmacau.comX-Powered-By: PHP/7.2.15Set-Cookie: RedisGUID4326CE96-BB4E-D149-83E8-AB3A697E6F1D; expiresThu, 12-Dec-2024 21:13:07 GMT; Max-Age2592000; path/Strict-Transport-Security: max-age63072000;includeSubDomains; preload !DOCTYPE html>html langzh-TW>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0, user-scalableno> meta namedescription content意念設計有限公司 POS 零售系統 網上商店 響應式網頁設計> meta namekeywords content意念設計有限公司 POS 零售系統 網上商店 響應式網頁設計> title>eLeafPOS 意念設計有限公司/title> link relshortcut icon hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/favicon.ico /> link hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/bootstrap.css relstylesheet> link hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/site.css relstylesheet> link hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/vendors.css relstylesheet> link hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/style-green2.css relstylesheet titledefault> link hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/width-full.css relstylesheet titledefault> link relstylesheet hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/jquery-ui.css typetext/css mediaall/> link relstylesheet hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/lightbox2-master/dist/css/lightbox.css typetext/css mediaall/> link relstylesheet hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/css/table-1-1A.css relstylesheet> link relstylesheet hrefhttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/jquery-confirm-master/dist/jquery-confirm.min.css relstylesheet> script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/jquery-1.10.2.min.js>/script> script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/jquery-ui-1.11.4.js>/script> script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/jquery.validate.js>/script> script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/jquery-confirm-master/dist/jquery-confirm.min.js>/script> script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/bootstrap.min.js>/script> script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/lightbox2-master/dist/js/lightbox.js>/script>/head>body>script>var LoginName;var LoginMobileNumber;var ServerBaseWSnull;class MyWebSocketIntervalClass{ constructor(MiniSec,CallBackFunction) { this.intval0; this.flag_startfalse; this.MiniSecMiniSec; this.CallBackFunction CallBackFunction; } ClearInterval() { clearInterval(this.intval); this.intval0; } Start() { if (this.intval0) { let selfthis; this.intval setInterval(function(){ if (self.flag_start) { if (self.CallBackFunction) { self.CallBackFunction(); } } },this.MiniSec); } this.flag_start true; } Stop() { this.flag_start false; }}class MyWebSocketTimeoutClass{ constructor(MiniSec,CallBackFunction) { this.intval0; this.flag_startfalse; this.MiniSecMiniSec; this.CallBackFunction CallBackFunction; } ClearTimeout() { clearTimeout(this.intval); this.intval0; } Start() { if (this.intval0) { let selfthis; this.intval setTimeout(function(){ if (self.flag_start) { if (self.CallBackFunction) { self.CallBackFunction(); } } },this.MiniSec); } this.flag_start true; } Stop() { this.flag_start false; }} class MyWebSocket { constructor(LoginSystem,LoginSystemUser,LoginMobileNumber,OnOpenFunction,OnCloseFunction,OnMessageFunction) { this.LoginSystemLoginSystem; this.LoginSystemUserLoginSystemUser; this.LoginMobileNumberLoginMobileNumber; this.OnOpenFunction OnOpenFunction; this.OnCloseFunction OnCloseFunction; this.OnMessageFunction OnMessageFunction; this.wsnull; this.Connectedfalse; this.AutoReconnecttrue; this.ErrorReconnectIntevalCount0; this.ErrorReconnectIntevalCountTimes0; this.MyWebSocketIntervalnull; this.CreateClientID(); } setLocalStorage(key,value) { var PrefixMyWebSocket_; if (this.LoginSystem!null && this.LoginSystem!) { Prefixthis.LoginSystem+_; } localStorage.setItem(Prefix+key, value); } getLocalStorage(key) { var PrefixMyWebSocket_; if (this.LoginSystem!null && this.LoginSystem!) { Prefixthis.LoginSystem+_; } return localStorage.getItem(Prefix+key); } setLoginSystem(LoginSystem) { this.LoginSystemLoginSystem; } setLoginSystemUser(LoginSystemUser) { this.LoginSystemUserLoginSystemUser; } setLoginMobileNumber(LoginMobileNumber) { this.LoginMobileNumberLoginMobileNumber; } setOpenFunction(OnOpenFunction) { this.OnOpenFunctionOnOpenFunction; } setCloseFunction(OnCloseFunction) { this.OnCloseFunctionOnCloseFunction; } setMessageFunction(OnMessageFunction) { this.OnMessageFunctionOnMessageFunction; } CreateClientID() { var LocalStorageClientID this.getLocalStorage(WebSocketClientID); if (LocalStorageClientID!null && LocalStorageClientID!undefined && LocalStorageClientID!) { this.ClientID LocalStorageClientID; } else { this.ClientID this.generateUUID(); this.setLocalStorage(WebSocketClientID,this.ClientID); } } setAutoReconnectInteval(intval) { let selfthis; self.ClearAutoReconnectInteval(); if (self.MyWebSocketIntervalnull) { self.MyWebSocketInterval new MyWebSocketTimeoutClass(intval,function(){ console.log(Auto Reconnect Websocket (connected:+self.Connected+)+intval); if (self.Connected) { self.MyWebSocketInterval.ClearTimeout(); return; } if (!self.Connected && !self.Connecting) { self.connectToServer(self.ip,self.port,self.isssl); } }); } self.MyWebSocketInterval.Start(); } ClearAutoReconnectInteval() { let selfthis; if (self.MyWebSocketInterval!null) { self.MyWebSocketInterval.Stop(); self.MyWebSocketInterval.ClearTimeout(); self.MyWebSocketIntervalnull; self.ErrorReconnectIntevalCount0; } } connectToServer(ip,port,isssl) { let selfthis; this.ipip; this.portport; this.issslisssl; if (this.Connecting) return; try { if (isssl) { this.ws new WebSocket(wss:+ip+:+port); this.Connectingtrue; } else { try { this.ws new WebSocket(ws:+ip+:+port); this.Connectingtrue; } catch(e) { console.log(e.message); } } this.ws.addEventListener(open, function (event) { self.Connectedtrue; self.Connectingfalse; self.ErrorReconnectIntevalCountTimes0; if (self.OnOpenFunction) self.OnOpenFunction(); //console.log(event); self.ClearAutoReconnectInteval(); }); this.ws.onmessage function (event) { if (self.OnMessageFunction) self.OnMessageFunction(event.data); }; this.ws.onclose function () { self.Connectedfalse; self.Connectingfalse; self.ErrorReconnectIntevalCount0; if (self.OnCloseFunction) self.OnCloseFunction(); self.ErrorReconnectIntevalCountTimes++; if (self.ErrorReconnectIntevalCountTimes>10) self.ErrorReconnectIntevalCountTimes1; self.setAutoReconnectInteval(3000*self.ErrorReconnectIntevalCountTimes); }; this.ws.onerror function(error) { console.log(error.message); }; } catch(e) { console.log(e.message); } } generateUUID() { var d new Date().getTime();//Timestamp var d2 ((typeof performance ! undefined) && performance.now && (performance.now()*1000)) || 0;//Time in microseconds since page-load or 0 if unsupported return xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function(c) { var r Math.random() * 16;//random number between 0 and 16 if(d > 0){//Use timestamp until depleted r (d + r)%16 | 0; d Math.floor(d/16); } else {//Use microseconds since page-load if supported r (d2 + r)%16 | 0; d2 Math.floor(d2/16); } return (c x ? r : (r & 0x3 | 0x8)).toString(16); }); } sendCommand(CommandClass,Command,Parameters_Array) { try { if (Parameters_Arraynull) Parameters_Array ; if (Parameters_Array!null) { Parameters_Array.push({WebSocketClientID:this.ClientID}); Parameters_Array.push({LoginSystem:this.LoginSystem}); Parameters_Array.push({LoginSystemUser:this.LoginSystemUser}); Parameters_Array.push({LoginMobileNumber:this.LoginMobileNumber}); } var Data{CommandClass:,Command:,CommandParameters:,JsonCommandParameters:,Data:}; Data.CommandClassCommandClass; Data.CommandCommand; Data.CommandParameters Parameters_Array; Data.JsonCommandParametersJSON.stringify(Parameters_Array); Data.Data ; var JsonCommand JSON.stringify(Data); this.ws.send(JsonCommand); } catch (e) { console.log(e.message); } } sendRawText(Message) { try { this.ws.send(Message); } catch (e) { console.log(e.message); } } sendClientLoginMessage() { try { var CommandClass; var CommandWebSocketClientLogin; var Parameters_Array ; this.sendCommand(CommandClass,Command,Parameters_Array); } catch (e) { console.log(e.message); } } sendTextMessage(Message) { try { var Parameters_Array ; if (Parameters_Array!null) { Parameters_Array.push({WebSocketClientID:this.ClientID}); Parameters_Array.push({LoginSystem:this.LoginSystem}); Parameters_Array.push({LoginSystemUser:this.LoginSystemUser}); Parameters_Array.push({LoginMobileNumber:this.LoginMobileNumber}); Parameters_Array.push({MessageUUID:this.generateUUID()}); Parameters_Array.push({MessageType:TextMessage}); Parameters_Array.push({Message:Message}); } var Data{CommandClass:,Command:,CommandParameters:,JsonCommandParameters:,Data:}; Data.CommandClass; Data.CommandSEND_MESSAGE; Data.CommandParameters Parameters_Array; Data.JsonCommandParametersJSON.stringify(Parameters_Array); Data.Data ; var JsonCommand JSON.stringify(Data); this.ws.send(JsonCommand); } catch (e) { console.log(e.message); } } sendImageMessage(Base64Image,FileName) { try { var Parameters_Array ; if (Parameters_Array!null) { Parameters_Array.push({WebSocketClientID:this.ClientID}); Parameters_Array.push({LoginSystem:this.LoginSystem}); Parameters_Array.push({LoginSystemUser:this.LoginSystemUser}); Parameters_Array.push({LoginMobileNumber:this.LoginMobileNumber}); Parameters_Array.push({MessageUUID:this.generateUUID()}); Parameters_Array.push({MessageType:ImageMessage}); Parameters_Array.push({Message:Base64Image}); Parameters_Array.push({FileName:FileName}); } var Data{CommandClass:,Command:,CommandParameters:,JsonCommandParameters:,Data:}; Data.CommandClass; Data.CommandSEND_IMAGE_MESSAGE; Data.CommandParameters Parameters_Array; Data.JsonCommandParametersJSON.stringify(Parameters_Array); Data.Data ; var JsonCommand JSON.stringify(Data); this.ws.send(JsonCommand); } catch (e) { console.log(e.message); } } disconnectToServer() { if (this.Connected) { this.ws.close(); } }}function InitialMyWebSocket(WebSocketServer,WebSocketServerPort,WebSocketServerIsSSL,SystemName,LoginName,LoginMobileNumber){ ServerBaseWS new MyWebSocket(SystemName,LoginName,LoginMobileNumber,WSOpenFunction,WSCloseFunction,WSMessageFunction); ServerBaseWS.connectToServer(WebSocketServer,WebSocketServerPort,WebSocketServerIsSSL); function WSOpenFunction() { ServerBaseWS.sendClientLoginMessage(); console.log(Connect WS Server successfully); } function WSCloseFunction() { console.log(Disconnect WS Server successfully); } function WSMessageFunction(data) { console.log(data); }}/script>script>class MyDateClass{ constructor() {} Now() { var todaynew Date(); todaytoday.yyyymmdd_hhiiss(); return today; } ToDay() { var todaynew Date(); todaytoday.yyyymmdd(); return today; } Yesterday() { var yesterdaynew Date(); yesterday.setDate(yesterday.getDate()-1); yesterdayyesterday.yyyymmdd(); return yesterday; } Tomorrow() { var tomorrownew Date(); tomorrow.setDate(tomorrow.getDate()+1); tomorrowtomorrow.yyyymmdd(); return tomorrow; } LastYear() { var last_year new Date(); last_year new Date(last_year.getFullYear(), last_year.getMonth() - 12, 1); last_yearlast_year.yyyymmdd(); return last_year; } LastMonth() { var last_month new Date(); last_month new Date(last_month.getFullYear(), last_month.getMonth() - 1, 1); last_monthlast_month.yyyymmdd(); return last_month; } NextMonth() { var next_month new Date(); next_month new Date(next_month.getFullYear(), next_month.getMonth() + 1, 1); next_monthnext_month.yyyymmdd(); return next_month; } ThisMonthFirstDate() { var this_month_first_date new Date(); this_month_first_date new Date(this_month_first_date.getFullYear(), this_month_first_date.getMonth(), 1); this_month_first_datethis_month_first_date.yyyymmdd(); return this_month_first_date; } ThisMonthLastDate() { var this_month_last_date new Date(); this_month_last_date new Date(this_month_last_date.getFullYear(), this_month_last_date.getMonth() + 1, 1); this_month_last_date.setDate(this_month_last_date.getDate()-1); this_month_last_datethis_month_last_date.yyyymmdd(); return this_month_last_date; }}const MyDate new MyDateClass();class MyGlobalParametersClass{ constructor() { this.Parameters{}; } setParameters(Parameters) { this.ParametersParameters; } getParameters() { return this.Parameters; } setParametersValueByKey(Key,Value) { this.ParametersKey Value; } getParametersValueByKey(Key) { try { return this.ParametersKey; } catch( e) { return null; } }}class MyAjaxConfirm{ constructor(Title,Message,ConfirmText,CancelText,ConfirmFunction,CancelFunction) { this.TitleTitle; this.MessageMessage; this.ConfirmTextConfirmText; this.CancelTextCancelText; this.ConfirmFunctionConfirmFunction; this.CancelFunctionCancelFunction; } Show() { let selfthis; $.confirm({ title: self.Title, content: self.Message, buttons: { confirm: { text:self.ConfirmText, action:function () { if (self.ConfirmFunction!null) self.ConfirmFunction(); } }, cancel: { text:self.CancelText, action:function(){ if (self.CancelFunction!null) self.CancelFunction(); } } } }); }}class MyAjaxCallBackClass{ constructor(AjaxURL,SuccessCallBackFunction,ErrorCallBackFunction,BeginAjaxCallFunctionCallBack,EndAjaxCallFunctionCallBack) { this.AjaxURLAjaxURL; this.SuccessCallBackFunctionSuccessCallBackFunction; this.ErrorCallBackFunctionErrorCallBackFunction; this.BeginAjaxCallFunctionCallBackBeginAjaxCallFunctionCallBack; this.EndAjaxCallFunctionCallBackEndAjaxCallFunctionCallBack; } postData(Parameters) { let self this; let formData new FormData(); if (Parameters!null) { for(var Key in Parameters) { formData.append(Key,ParametersKey); } } if (self.BeginAjaxCallFunctionCallBack) { self.BeginAjaxCallFunctionCallBack(); } $.ajax({ url : self.AjaxURL, type: POST, data : formData, dataType: json, processData : false, contentType : false, success: function(data, textStatus, jqXHR) { if (self.EndAjaxCallFunctionCallBack) { self.EndAjaxCallFunctionCallBack(); } if (self.SuccessCallBackFunction) { self.SuccessCallBackFunction(data); } }, error: function (request, error) { if (self.EndAjaxCallFunctionCallBack) { self.EndAjaxCallFunctionCallBack(); } if (self.ErrorCallBackFunction) { self.ErrorCallBackFunction(error); } } }); } postFormData(formData) { let self this; if (self.BeginAjaxCallFunctionCallBack) { self.BeginAjaxCallFunctionCallBack(); } $.ajax({ url : self.AjaxURL, type: POST, data : formData, dataType: json, processData : false, contentType : false, success: function(data, textStatus, jqXHR) { if (self.EndAjaxCallFunctionCallBack) { self.EndAjaxCallFunctionCallBack(); } if (self.SuccessCallBackFunction) { self.SuccessCallBackFunction(data); } }, error: function (request, error) { if (self.EndAjaxCallFunctionCallBack) { self.EndAjaxCallFunctionCallBack(); } if (self.ErrorCallBackFunction) { self.ErrorCallBackFunction(error); } } }); }}class MyTableDataClass{ constructor(Prefix,TableName){ this.PrefixPrefix; this.TableNameTableName; this.PrimaryKeyMappingData{}; this.KeyMappingData{}; } setLocalStorage(key,value) { var PrefixMyTableDataClass_+this.TableName+_; if (this.Prefix!null && this.Prefix!) { Prefixthis.Prefix+_+this.TableName+_; } localStorage.setItem(Prefix+key, value); } getLocalStorage(key) { var PrefixMyTableDataClass_+this.TableName+_; if (this.Prefix!null && this.Prefix!) { Prefixthis.Prefix+_+this.TableName+_; } return localStorage.getItem(Prefix+key); } SaveToLocalStorage() { this.setLocalStorage(PrimaryKeyMappingData,JSON.stringify(this.PrimaryKeyMappingData)); this.setLocalStorage(KeyMappingData,JSON.stringify(this.KeyMappingData)); } LoadFromLocalStorage() { this.PrimaryKeyMappingData JSON.parse(this.getLocalStorage(PrimaryKeyMappingData)); this.KeyMappingData JSON.parse(this.getLocalStorage(KeyMappingData)); } setData(Data) { this.DataData; } createPrimaryKeyData(PrimaryKeyFieldName) { this.PrimaryKeyFieldNamePrimaryKeyFieldName; this.PrimaryKeyMappingData{}; if (this.Data!null) { let PrimaryKey; for(var RowIndex in this.Data) { PrimaryKey this.DataRowIndexPrimaryKeyFieldName; if (PrimaryKey) { this.PrimaryKeyMappingDataPrimaryKey this.DataRowIndex; } } } } createKeyMappingData(KeyFieldName) { this.KeyMappingDataKeyFieldName{}; if (this.Data!null) { let Key; for(var RowIndex in this.Data) { Key this.DataRowIndexKeyFieldName; if (Key) { if (this.KeyMappingDataKeyFieldNameKeyundefined || this.KeyMappingDataKeyFieldNameKeynull) { this.KeyMappingDataKeyFieldNameKey ; } this.KeyMappingDataKeyFieldNameKey.push(this.DataRowIndex); } } } } getDataByPrimaryKey(PrimaryKey) { try { if (this.PrimaryKeyMappingDataPrimaryKey!undefined && this.PrimaryKeyMappingDataPrimaryKey!null) { return this.PrimaryKeyMappingDataPrimaryKey; } else { return null; } } catch(e) { return null; } } getDatasByKey(KeyFieldName,Key) { try { if (this.KeyMappingDataKeyFieldNameKey!undefined && this.KeyMappingDataKeyFieldNameKey!null) { return this.KeyMappingDataKeyFieldNameKey; } else { return null; } } catch(e) { return null; } } PrimaryKeyExist(PrimaryKey) { let existfalse; if (this.PrimaryKeyMappingData) { try { if (this.PrimaryKeyMappingDataPrimaryKey!undefined && this.PrimaryKeyMappingDataPrimaryKey!null) { existtrue; } } catch(e) { } } return exist; }}class MyTimeOutClass{ constructor() { this.TimeoutMiniSec 0; this.StartTime new Date(); } SetTimeOut(MiniSec) { this.TimeoutMiniSec MiniSec; } Start() { this.StartTime new Date(); } IsTimeOut() { const millis Date.now() - this.StartTime; if (millis>this.TimeoutMiniSec) { return true; } else { return false; } }}class MyTimeoutFunctionClass{ constructor(MiniSec,CallBackFunction) { this.intval0; this.MiniSecMiniSec; this.CallBackFunction CallBackFunction; } ClearTimeout() { clearTimeout(this.intval); this.intval0; } Start() { if (this.intval0) { let selfthis; this.intval setTimeout(function(){ self.ClearTimeout(); if (self.CallBackFunction) { self.CallBackFunction(); } },this.MiniSec); } }}class MyIntervalClass{ constructor(MiniSec,CallBackFunction) { this.intval0; this.flag_startfalse; this.MiniSecMiniSec; this.CallBackFunction CallBackFunction; } ClearInterval() { clearInterval(this.intval); this.intval0; } Start() { if (this.intval0) { let selfthis; this.intval setInterval(function(){ if (self.flag_start) { if (self.CallBackFunction) { self.CallBackFunction(); } } },this.MiniSec); } this.flag_start true; } Stop() { this.flag_start false; }}class MyNextProcessClass{ constructor(TimeoutMiniSec) { this.TimeoutMiniSecTimeoutMiniSec; this.flag_start false; this.Parameters {}; } NextWithParameters(FinishedCallBackFunction,Parameters) { this.StartTime new Date(); this.flag_start true; this.Parameters Parameters; if (FinishedCallBackFunction!null) { this.FinishedCallBackFunctionFinishedCallBackFunction; } if (this.FinishedCallBackFunction) { this.FinishedCallBackFunction(this,this.Parameters); } } Next(FinishedCallBackFunction) { this.StartTime new Date(); this.flag_start true; if (FinishedCallBackFunction!null) { this.FinishedCallBackFunctionFinishedCallBackFunction; } if (this.FinishedCallBackFunction) { this.FinishedCallBackFunction(this,this.Parameters); } } setParameters(Parameters) { this.ParametersParameters; } getParameters() { return this.Parameters; } setParametersValueByKey(Key,Value) { this.ParametersKey Value; } getParametersValueByKey(Key) { try { return this.ParametersKey; } catch( e) { return null; } } IsTimeOut() { const millis Date.now() - this.StartTime; if (millis>this.TimeoutMiniSec) { return true; } else { return false; } }}class MyCallBackFunctionClass{ constructor(TimeoutMiniSec) { this.TimeoutMiniSecTimeoutMiniSec; this.flag_start false; } Start() { this.StartTime new Date(); this.flag_start true; let selfthis; this.intval setInterval(function(){ if (!self.flag_start || self.IsTimeOut()) { if (self.intval!0) { clearInterval(self.intval); self.intval0; if (self.FinishedCallBackFunction) { self.FinishedCallBackFunction(self.FinishedCallBackFunctionParameters); } } } },100); } StartWithParameters(Parameters) { this.setCallBackFunctionParameters(Parameters); this.Start(); } Finished() { this.flag_start false; let selfthis; if (self.intval!0) { clearInterval(self.intval); self.intval0; if (self.FinishedCallBackFunction) { self.FinishedCallBackFunction(self.FinishedCallBackFunctionParameters); } } } IsTimeOut() { const millis Date.now() - this.StartTime; if (millis>this.TimeoutMiniSec) { return true; } else { return false; } } setCallBackFunctionParameters(Parameters) { this.FinishedCallBackFunctionParametersParameters; } getCallBackFunctionParameters() { return this.FinishedCallBackFunctionParameters; } setCallBackFunctionParametersValueByKey(Key,Value) { this.FinishedCallBackFunctionParametersKey Value; } getCallBackFunctionParametersValueByKey(Key) { try { return this.FinishedCallBackFunctionParametersKey; } catch( e) { return null; } } WaitToFinishedCallBack(CallBackFunction,CallBackFunctionParameters) { this.FinishedCallBackFunctionCallBackFunction; this.FinishedCallBackFunctionParametersCallBackFunctionParameters; }}class MyMultiCallBackFunctionClass{ constructor(TimeoutMiniSec) { this.TimeoutMiniSecTimeoutMiniSec; this.flag_start false; this.FinishedCallBackFunction{}; this.FinishedCallBackFunctionParameters{}; } SetTimeOut(TimeoutMiniSec) { this.TimeoutMiniSecTimeoutMiniSec; } Start(CallBackName) { this.CurrentCallBackName CallBackName; this.StartTime new Date(); this.flag_start true; let selfthis; this.intval setInterval(function(){ if (!self.flag_start || self.IsTimeOut()) { if (self.intval!0) { clearInterval(self.intval); self.intval0; if (self.FinishedCallBackFunctionself.CurrentCallBackName) { self.FinishedCallBackFunctionself.CurrentCallBackName(self.FinishedCallBackFunctionParametersself.CurrentCallBackName); } } } },100); } StartWithParameters(CallBackName,Parameters) { this.setCallBackFunctionParameters(CallBackName,Parameters); this.Start(CallBackName); } Finished(CallBackName) { this.flag_start false; this.CurrentCallBackName CallBackName; let selfthis; if (self.intval!0) { clearInterval(self.intval); self.intval0; if (self.FinishedCallBackFunctionself.CurrentCallBackName) { self.FinishedCallBackFunctionself.CurrentCallBackName(self.FinishedCallBackFunctionParametersself.CurrentCallBackName); } } } IsTimeOut() { const millis Date.now() - this.StartTime; if (millis>this.TimeoutMiniSec) { return true; } else { return false; } } setCallBackFunctionParameters(CallBackName,Parameters) { this.FinishedCallBackFunctionParametersCallBackNameParameters; } getCallBackFunctionParameters(CallBackName) { try { return this.FinishedCallBackFunctionParametersCallBackName; } catch( e) { return null; } } setCallBackFunctionParametersValueByKey(CallBackName,Key,Value) { this.FinishedCallBackFunctionParametersCallBackNameKey Value; } getCallBackFunctionParametersValueByKey(CallBackName,Key) { try { return this.FinishedCallBackFunctionParametersCallBackNameKey; } catch( e) { return null; } } SetWaitToFinishedCallBack(CallBackName,CallBackFunction) { this.FinishedCallBackFunctionCallBackNameCallBackFunction; }}class MyLocalParameters{ constructor(Prefix){ this.PrefixPrefix; this.Parametersnew Object; } setParameter(key,value) { let Prefix; if (this.Prefix!null && this.Prefix!) { Prefixthis.Prefix; } this.ParametersPrefix+keyvalue; } getParameter(key) { var Prefix; if (this.Prefix!null && this.Prefix!) { Prefixthis.Prefix; } if (this.ParametersPrefix+key!undefined) { return this.ParametersPrefix+key; } else { return null; } }}/script>script> if (jQuery.validator) { if (jQuery.validator.messages) { jQuery.extend(jQuery.validator.messages, { required: 必選字段, remote: 請修正該字段, email: 請輸入正確格式的電子郵件, url: 請輸入合法的網址, date: 請輸入合法的日期, dateISO: 請輸入合法的日期 (ISO)., number: 請輸入合法的數字, digits: 只能輸入整數, creditcard: 請輸入合法的信用卡號, equalTo: 請再次輸入相同的值, accept: 請輸入擁有合法後綴名的字符串, maxlength: jQuery.validator.format(請輸入一個 長度最多是 {0} 的字符串), minlength: jQuery.validator.format(請輸入一個 長度最少是 {0} 的字符串), rangelength: jQuery.validator.format(請輸入 一個長度介於 {0} 和 {1} 之間的字符串), range: jQuery.validator.format(請輸入一個介於 {0} 和 {1} 之間的值), max: jQuery.validator.format(請輸入一個最大為{0} 的值), min: jQuery.validator.format(請輸入一個最小為{0} 的值) }); } } function isEmpty(str) { return (!str || 0 str.length); } function setCookie(cname, cvalue, exdays) { const d new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); let expires expires+d.toUTCString(); document.cookie cname + + cvalue + ; + expires + ;path/; } function getCookie(cname) { let name cname + ; let ca document.cookie.split(;); for(let i 0; i ca.length; i++) { let c cai; while (c.charAt(0) ) { c c.substring(1); } if (c.indexOf(name) 0) { return c.substring(name.length, c.length); } } return ; } function ReorderTable(TableTR,ReorderAttribute,TableSortInfo) { $(TableTR).each(function(){ var tr $(this); for(var row in TableSortInfo) { var row_values TableSortInforow; var PropertyName row_valuesPropertyName; var Selected row_valuesSelected; var OrderSeq row_valuesOrderSeq; tr.find(td).each(function(){ var ColumnName $(this).attr(data-column); if (ColumnName && ColumnName!) { if (ColumnNamePropertyName) { if (Selected) { $(this).attr(data-display,true); } else { $(this).attr(data-display,false); } $(this).attr(ReorderAttribute,OrderSeq); } } else { $(this).attr(data-display,true); $(this).attr(ReorderAttribute,-1); } }); } }); $(TableTR).each(function(){ var tr $(this); tr.find(td).each(function(){ var display $(this).attr(data-display); if (display!true) { $(this).css(display,none); } }); }); var current_column_index10; var current_column_index20; $(TableTR).each(function(){ var tr $(this); var current_column_index10; tr.find(td).each(function(){ var OrderSeq1 parseInt($(this).attr(ReorderAttribute)); var td1 $(this); current_column_index20; tr.find(td).each(function(){ var OrderSeq2 parseInt($(this).attr(ReorderAttribute)); var td2 $(this); if (current_column_index2>current_column_index1) { if (OrderSeq2OrderSeq1) { td1.detach().insertAfter(td2); } } current_column_index2++; }); current_column_index1++; }); }); } !function() { function _dynamicSortMultiple() { var props arguments; return function (obj1, obj2) { var i 0, result 0, numberOfProperties props.length; /* try getting a different result from 0 (equal) * as long as we have extra properties to compare */ while(result 0 && i numberOfProperties) { result _dynamicSort(propsi)(obj1, obj2); i++; } return result; } } function _dynamicSort(property) { var sortOrder 1; if(property0 -) { sortOrder -1; property property.substr(1); } return function (a,b) { var result (aproperty bproperty) ? -1 : (aproperty > bproperty) ? 1 : 0; return result * sortOrder; } } Object.defineProperty(Array.prototype, sortBy, { enumerable: false, writable: true, value: function() { return this.sort(_dynamicSortMultiple.apply(null, arguments)); } }); }(); Date.prototype.yyyymmdd function() { var mm this.getMonth() + 1; // getMonth() is zero-based var dd this.getDate(); return this.getFullYear(), (mm>9 ? : 0) + mm, (dd>9 ? : 0) + dd .join(-); }; Date.prototype.yyyymmdd_hhiiss function() { var mm this.getMonth() + 1; // getMonth() is zero-based var dd this.getDate(); var hh this.getHours(); var ii this.getMinutes(); var ss this.getSeconds(); return this.getFullYear(), (mm>9 ? : 0) + mm, (dd>9 ? : 0) + dd .join(-)+ +(hh>9 ? : 0)+hh, (ii>9 ? : 0) + ii, (ss>9 ? : 0) + ss .join(:); }; String.prototype.trimToLength function(trimLenght) { return this.length > trimLenght ? this.substring(0, trimLenght - 3) + ... : this; }; String.prototype.replaceAll function(search, replacement) { var target this; return target.split(search).join(replacement); }; Number.prototype.formatMoney function(c){ var n this; return accounting.toFixed(n,c); }; function addslashes(string) { return string.replace(/\\/g, \\\\). replace(/\u0008/g, \\b). replace(/\t/g, \\t). replace(/\n/g, \\n). replace(/\f/g, \\f). replace(/\r/g, \\r). replace(//g, \\\). replace(//g, \\); } Array.Remove function(array, from, to) { var rest array.slice((to || from) + 1 || array.length); array.length from 0 ? array.length + from : from; return array.push.apply(array, rest); }; Array.RemoveByObject function(array, b) { var a array.indexOf(b); if (a > 0) { array.splice(a, 1); return true; } return false; }; function GetGUID() { var d new Date().getTime();//Timestamp var d2 ((typeof performance ! undefined) && performance.now && (performance.now()*1000)) || 0;//Time in microseconds since page-load or 0 if unsupported return xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function(c) { var r Math.random() * 16;//random number between 0 and 16 if(d > 0){//Use timestamp until depleted r (d + r)%16 | 0; d Math.floor(d/16); } else {//Use microseconds since page-load if supported r (d2 + r)%16 | 0; d2 Math.floor(d2/16); } return (c x ? r : (r & 0x3 | 0x8)).toString(16); }); } function ShowToast(Title,Message,MiniSecond) { $.Toast(Title, Message, custom, { stack: true, has_icon:true, has_close_btn:true, fullscreen:false, timeout:MiniSecond, sticky:false, has_progress:true, rtl:false, }); } function AjaxErrorRedo(AlertTitle,AlertMessage,CallBackFunctionName,CallBackFunction,TryTimes,CurrentTimes) { if (CurrentTimesTryTimes) { //console.log(AjaxErrorRedo-> +CallBackFunctionName+ CurrentTimes:+CurrentTimes); if (CallBackFunction!null) CallBackFunction(CurrentTimes+1); return; } if (!(AlertTitle!null && AlertTitle!)) { AlertTitle系統錯誤; if (AlertTitle) AlertTitle系統錯誤; } if (AlertMessage!null && AlertMessage!) { $.alert({ title: AlertTitle, content: font color\#FF0000\>+AlertMessage+font>, }); } } function AjaxErrorAlert(AlertTitle,AlertMessage) { if (!(AlertTitle!null && AlertTitle!)) { AlertTitle系統錯誤; if (AlertTitle) AlertTitle系統錯誤; } if (AlertMessage!null && AlertMessage!) { $.alert({ title: AlertTitle, content: font color\#FF0000\>+AlertMessage+font>, }); } } function Alert(AlertTitle,AlertMessage) { if (!(AlertTitle!null && AlertTitle!)) { AlertTitle系統提示; if (AlertTitle) AlertTitle系統提示; } if (AlertMessage!null && AlertMessage!) { $.alert({ title: AlertTitle, content: AlertMessage, }); } } function ErrorAlert(AlertTitle,AlertMessage) { if (!(AlertTitle!null && AlertTitle!)) { AlertTitle系統錯誤; if (AlertTitle) AlertTitle系統錯誤; } if (AlertMessage!null && AlertMessage!) { $.alert({ title: AlertTitle, content: font color\#FF0000\>+AlertMessage+font>, }); } } function Toast(Title,Message,MiniSecond) { $.Toast(Title, Message, custom, { stack: true, has_icon:true, has_close_btn:true, fullscreen:false, timeout:MiniSecond, sticky:false, has_progress:true, rtl:false, }); } function GenerateQRCode(JqueryElement,Width,Height,Content) { JqueryElement.qrcode({ render: canvas, //也可以替换为table width: Width, height: Height, text: Content }); } function change_password() { ShowModal_ChangePassword(); }/script> div idsb-site>div classboxed>nav classnavbar navbar-default navbar-header-full navbar-dark yamm navbar-static-top rolenavigation idheader> div classcontainer> !-- Brand and toggle get grouped for better mobile display --> div classnavbar-header> button typebutton classnavbar-toggle data-togglecollapse data-target#bs-example-navbar-collapse-1> span classsr-only>Toggle navigation/span> i classfa fa-bars>/i> /button> a idar-brand classnavbar-brand hrefhttps://eleafmacau.com/>img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/eleaf_company_logo.png height70px stylemargin-top:-10px; classlogo>/span>/a> /div> !-- navbar-header --> !-- Collect the nav links, forms, and other content for toggling --> div classcollapse navbar-collapse idbs-example-navbar-collapse-1> ul classnav navbar-nav> li> a hrefhttps://eleafmacau.com/>主頁/a> /li> li classdropdown> a hrefjavascript:void(0); classdropdown-toggle data-toggledropdown>POS 零售系統/a> ul classdropdown-menu dropdown-menu-left> li>a hrefhttps://eleafmacau.com/Web/cloudpos_introduction>eLeaf Cloud POS 意念雲店鋪零售及管理系統/a>/li> li>a hrefhttps://eleafmacau.com/Web/eleafpos_introduction>eLeaf POS 零售系統(單機版)/a>/li> /ul> /li> li> a hrefhttps://eleafmacau.com/Web/system_development>系統開發設計/a> /li> li> a hrefhttps://eleafmacau.com/Web/webdesign>網頁設計/a> /li> li> a hrefhttps://eleafmacau.com/Web/partner>合作伙伴/a> /li> li> a hrefhttps://eleafmacau.com/Web/about_us>關於我們/a> /li> li> a hrefhttps://eleafmacau.com/Web/contact_us>聯絡我們/a> /li> /ul> /div>!-- navbar-collapse --> /div>!-- container -->/nav>section classcarousel-section> div idcarousel-example-generic classcarousel carousel-razon slide data-ridecarousel data-interval10000> !-- Indicators --> ol classcarousel-indicators> li data-target#carousel-example-generic data-slide-to0 classactive>/li> li data-target#carousel-example-generic data-slide-to1>/li> li data-target#carousel-example-generic data-slide-to2>/li> /ol> !-- Wrapper for slides --> div classcarousel-inner> div classitem active> div classcontainer> div classrow> div classcol-md-6 col-sm-7> div classcarousel-caption> div classcarousel-text> h1 classanimated fadeInDownBig animation-delay-7 carousel-title>意念零售系統/h1> h2 classanimated fadeInDownBig animation-delay-5 crousel-subtitle>/h2> ul classlist-unstyled carousel-list> li classanimated bounceInLeft animation-delay-11>i classfa fa-check>/i>零售、會員、庫存、推廣活動/li> li classanimated bounceInLeft animation-delay-13>i classfa fa-check>/i>簡單易用的界面設計/li> li classanimated bounceInLeft animation-delay-15>i classfa fa-check>/i>權限管理/li> /ul> p classanimated fadeInUpBig animation-delay-17>如需了解更多,可致電+853 6205 6827 聯絡我們安排上門免費示範。/p> /div> /div> /div> div classcol-md-6 col-sm-5 hidden-xs carousel-img-wrap> div classcarousel-img> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/eLeafPOS_01.png classimg-responsive animated bounceInUp animation-delay-3 altImage> /div> /div> /div> /div> /div> div classitem> div classcontainer> div classrow> div classcol-md-6 col-sm-8> div classcarousel-caption> div classcarousel-text> h1 classanimated fadeInDownBig animation-delay-7 carousel-title>手機應用程式/h1> h2 classanimated fadeInDownBig animation-delay-5 crousel-subtitle>/h2> ul classlist-unstyled carousel-list> li classanimated bounceInLeft animation-delay-11>i classfa fa-check>/i>Andriod/li> li classanimated bounceInLeft animation-delay-13>i classfa fa-check>/i>iOS/li> li classanimated bounceInLeft animation-delay-15>i classfa fa-check>/i>Html5/li> /ul> p classanimated fadeInUpBig animation-delay-17>如需了解更多,可致電+853 6205 6827 聯絡我們安排上門免費示範。/p> /div> /div> /div> div classcol-md-6 col-sm-4 hidden-xs carousel-img-wrap> div classcarousel-img> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/mobile_01.png classimg-responsive animated bounceInUp animation-delay-3 altImage> /div> /div> /div> /div> /div> div classitem> div classcontainer> div classrow> div classcol-lg-6 col-md-7 col-sm-9> div classcarousel-caption> div classcarousel-text> h1 classanimated fadeInDownBig animation-delay-7 carousel-title>網頁程式設計/h1> h2 classanimated fadeInDownBig animation-delay-5 crousel-subtitle>/h2> ul classlist-unstyled carousel-list> li classanimated bounceInLeft animation-delay-11>i classfa fa-check>/i>Html5、JQuery、CSS3/li> li classanimated bounceInLeft animation-delay-13>i classfa fa-check>/i>Responsive Template/li> li classanimated bounceInLeft animation-delay-15>i classfa fa-check>/i>PHP, JAVA, ASP.NET/li> /ul> p classanimated fadeInUpBig animation-delay-17>如需了解更多,可致電+853 6205 6827 聯絡我們安排上門免費示範。/p> /div> /div> /div> div classcol-lg-6 col-md-5 col-sm-3 hidden-xs carousel-img-wrap> div classcarousel-img> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/Web_01.png classimg-responsive animated bounceInUp animation-delay-3 altImage> /div> /div> /div> /div> /div> /div> !-- Controls --> a classleft carousel-control href#carousel-example-generic data-slideprev> span classglyphicon glyphicon-chevron-left>/span> /a> a classright carousel-control href#carousel-example-generic data-slidenext> span classglyphicon glyphicon-chevron-right>/span> /a> /div>/section> !-- carousel -->section classmargin-bottom> div classcontainer> div classrow> div classcol-md-3 col-sm-6> div classcontent-box box-default animated fadeInUp animation-delay-10> div classview01> p classwebdesign_title orange_color>度身訂造網頁設計/p> p classwebdesign_title_en>Tailor Made Web Design/p> div classmaks> a hrefhttps://eleafmacau.com/Web/webdesign>img stylewidth:100% srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/Web_01.png alt度身訂造網頁設計>/a> /div> p classdesc>提供一站式度身訂造網頁設計,協助公司提升企業形象。/p> /div> /div> /div> div classcol-md-3 col-sm-6> div classcontent-box box-default animated fadeInUp animation-delay-14> div classview01> p classwebdesign_title red_color>手機 Mobile App/p> p classwebdesign_title_en>Mobile App Development/p> div classmaks> a href#>img stylewidth:100% srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/mobile_01.png alt手機 Mobile App>/a> /div> p classdesc>手機App製作, br> 包括:iOS 及 Android應用程式 /p> /div> /div> /div> div classcol-md-3 col-sm-6> div classcontent-box box-default animated fadeInUp animation-delay-16> div classview01> p classwebdesign_title red_color>意念零售系統/p> p classwebdesign_title_en>eLeaf POS System/p> div classmaks> a hrefhttps://eleafmacau.com/Web/eleafpos_introduction>img stylewidth:100% srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/eLeafPOS_01.png alt意念零售系統>/a> /div> p classdesc>零售、會員、庫存、推廣活動br>簡單易用的界面設計/p> /div> /div> /div> div classcol-md-3 col-sm-6> div classcontent-box box-default animated fadeInUp animation-delay-12> div classview01> p classwebdesign_title red_color>網上商店/p> p classwebdesign_title_en>Online Shop/p> div classmaks> a href#>img stylewidth:100% srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/onlineshop.png alt網上商店>/a> /div> p classdesc>響應式網頁設計br> 支持Visa/Master/Union/支付寶/微信支付/p> /div> /div> /div> /div> /div>/section>section classsection-lines> div classcontainer> div classrow> div classcol-md-4> div classhome-devices> h3>RWD 全名為 Responsive Web Design(響應式網頁設計)又稱作適應性網頁、自適應網頁設計、回應式網頁設計、多螢網頁設計/h3> p>響應式網頁設計(英語:Responsive web design,通常縮寫為RWD),或稱自適應網頁設計、回應式網頁設計、對應式網頁設計。 是一種網頁設計的技術做法,該設計可使網站在不同的裝置(從桌面電腦顯示器到行動電話或其他行動產品裝置)上瀏覽時對應不同解析度皆有適合的呈現,減少使用者進行縮放、平移和捲動等操作行為。/p> p>對於網站設計師和前端工程師來說,有別於過去需要針對各種裝置進行不同的設計,使用此種設計方式將更易於維護網頁。/p> p>此概念於2010年5月由國外著名網頁設計師Ethan Marcotte所提出。/p> p>採用 RWD 設計的網站使用CSS3 Media queries,即一種對 @media 規則的擴充,以及串流的基於比例的網格和自適應大小的圖像以適應不同大小的裝置:/p> p> 串流網格概念要求頁面元素使用相對單位如百分比或字型排印學調整大小,而不是絕對的單位如像素或點。br> 靈活的圖像也以相對單位調整大小(最大到 100%),以防止它們顯示在包含它們的元素外面。br> Media queries允許網頁根據存取站點裝置的特點而使用不同 CSS 樣式規則,最常用的是瀏覽器的寬度。br> 回應式網頁設計變得更加重要,因為移動流量現在占網際網路流量的一半以上。br> /p> ul classicon-devices> li classactive>a href#desktop data-toggletab>i classfa fa-desktop>/i>/a>/li> li>a href#laptop data-toggletab>i classfa fa-laptop>/i>/a>/li> li>a href#tablet data-toggletab>i classfa fa-tablet>/i>/a>/li> li>a href#mobile data-toggletab>i classfa fa-mobile>/i>/a>/li> /ul> /div> /div> div classcol-md-8> div classtab-content> div classtab-pane active iddesktop> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/demo/mac.png alt classimg-responsive> /div> div classtab-pane idlaptop> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/demo/macpro.png alt classimg-responsive> /div> div classtab-pane idtablet> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/demo/ipad.png alt classimg-responsive> /div> div classtab-pane idmobile> img srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/img/demo/iphone.png alt classimg-responsive> /div> /div> /div> /div> /div>/section>div classcontainer> section classmargin-bottom> p classlead lead-lg text-center primary-color>網站主機與維護年約/p> p classtext-center>租越久越划算/p> div classrow> div classhostplan> div classhostplan__body> div classhostplan__card> div classhostplan__card__top>1年/div> div classhostplan__card__body> div classpriceset> span classpriceset__pre>MOP$/span> span classpriceset__main>3,000/span> /div> /div> /div> div classhostplan__card> div classhostplan__card__top>2年/div> div classhostplan__card__body> div classpriceset> span classpriceset__pre>MOP$/span> span classpriceset__main>5,200/span> /div> div>平均 $2,600/年/div> /div> /div> div classhostplan__card> div classhostplan__card__top>3年/div> div classhostplan__card__body> div classpriceset> span classpriceset__pre>MOP$/span> span classpriceset__main>7,500/span> /div> div>平均 $2,500/年/div> /div> /div> div classhostplan__card> div classhostplan__card__top hostplan__card__top--hot>5年/div> div classhostplan__card__body> div classpriceset> span classpriceset__pre>MOP$/span> span classpriceset__main>10,000/span> /div> div>平均 $2,000/年/div> /div> /div> /div> /div> /div> div classdesignplan> div classdesignplan__head post1> h2 classprimary-color>網頁設計費/h2> /div> div classdesignplan__body post1> div>標準客製化方案/div> div classpriceset> span classpriceset__pre>MOP$/span> span classpriceset__main>29,800/span> span>39,800/span> /div> !--div>不滿意保證退費/div--> div classdesignplan__subtotal>( 29,800元 + 7,500元 ) ÷ 3年 ÷ 365天 span> 34.1元/span> br>strong>一天不到 35元~/strong>/div> /div> /div> /section>/div>footer idfooter> p>© 2020 a href#>eLeaf/a>, inc. All rights reserved./p>/footer>/div> !-- boxed -->/div> !-- sb-site -->div idback-top> a href#header>i classfa fa-chevron-up>/i>/a>/div>!-- Syntaxhighlighter -->script srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/app.js>/script>script typetext/javascript srchttps://mybasicresource-1254119382.cos.ap-hongkong.myqcloud.com/eLeafWeb/js/pricing-custom-scripts.js>/script>script> InitialMyWebSocket(ws.kcmacau.com,8001,1,eLeaf Web,LoginName,LoginMobileNumber);/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]