first commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
|
||||
var Design = window.Design = {};
|
||||
|
||||
Z.onload(function()
|
||||
{
|
||||
|
||||
})
|
||||
|
||||
Design.doWorksShow = function (value,urlParam)
|
||||
{//展示弹窗页,全铺满
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("WorksPresenter");
|
||||
ajax.setMethodName("doWorksBrowse");
|
||||
ajax.addParam(value)
|
||||
ajax.execute();
|
||||
|
||||
var dialog = new Z.Dialog();
|
||||
dialog.shadow = true;
|
||||
dialog.title = "作品详情";
|
||||
dialog.fixed = true;
|
||||
|
||||
dialog.url = "worksShow.htm?worksId="+value;
|
||||
dialog.width = Z.D.clientWidth();
|
||||
dialog.height =Z.D.clientHeight()-40;
|
||||
dialog.execute();
|
||||
}
|
||||
|
||||
Design.doTemplateShow = function (value,urlParam)
|
||||
{//展示弹窗页,全铺满
|
||||
|
||||
var keywordName = Z("#searchinput").val();
|
||||
if (keywordName == null)
|
||||
keywordName = "";
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("TemplatePresenter");
|
||||
ajax.setMethodName("doTemplateBrowse");
|
||||
ajax.addParam("mediaId", value)
|
||||
ajax.execute();
|
||||
|
||||
var dialog = new Z.Dialog();
|
||||
dialog.shadow = true;
|
||||
dialog.title = "模板详情";
|
||||
dialog.fixed = true;
|
||||
|
||||
dialog.url = "templateShow.htm?mediaId=" + value + "&keywordName=" + keywordName + "&urlParam=" + urlParam;
|
||||
dialog.width = Z.D.clientWidth() -30;
|
||||
dialog.height =Z.D.clientHeight() - 65;
|
||||
dialog.execute();
|
||||
}
|
||||
|
||||
Design.openWangWang = function(buyerNick)
|
||||
{//打开旺旺
|
||||
Z("#openFrm").attr("src","http://amos.alicdn.com/msg.aw?v=2&uid="+buyerNick+"&site=cntaobao&s=2&charset=utf-8");
|
||||
};
|
||||
|
||||
Design.openQQ = function(userQq)
|
||||
{//打开QQ
|
||||
if (!Z.V.isInteger(userQq))
|
||||
{
|
||||
Z.alert("客户未提供QQ号,请旺旺联系");
|
||||
return;
|
||||
}
|
||||
|
||||
Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
|
||||
};
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,88 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
|
||||
/*****************************************************************************/
|
||||
//定义设计师工作初始化
|
||||
/*****************************************************************************/
|
||||
//启动websocket
|
||||
Z.onload(function()
|
||||
{
|
||||
//1.检查上下班状态
|
||||
if (Z("#startWork").text() == "正在接单")
|
||||
{
|
||||
Z("#stopWork").click(Designer.stopWork);
|
||||
}
|
||||
else
|
||||
{
|
||||
Z("#startWork").click(Designer.startWork);
|
||||
}
|
||||
});
|
||||
|
||||
/*****************************************************************************/
|
||||
//定义设计师工作对象
|
||||
/*****************************************************************************/
|
||||
var Designer = window.Designer = {};
|
||||
|
||||
Designer.startWork = function()
|
||||
{//设计师开始接单
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("DesignerWorkPresenter");
|
||||
ajax.setMethodName("startWork");
|
||||
ajax.setFailureAlert();
|
||||
ajax.setFailure(function(){
|
||||
if(this.responseText == "1"){
|
||||
Z.alert("接单前请前往个人中心完善个人简介~", function(){
|
||||
Z("a[onclick*='profile.htm']").click();
|
||||
});
|
||||
return;
|
||||
}
|
||||
Z.alert(this.responseText);
|
||||
})
|
||||
ajax.setSuccess(function()
|
||||
{
|
||||
Z("#startWork").addClass("z-forbidden").addClass("z-bg-gray-deep").removeClass("z-pointer").text("正在接单");
|
||||
Z("#startWork").offclick(Designer.startWork);
|
||||
Z("#stopWork").addClass("z-pointer").addClass("z-bg-red-deep").removeClass("z-forbidden").removeClass("z-bg-gray-deep");
|
||||
Z("#stopWork").click(Designer.stopWork);
|
||||
});
|
||||
ajax.execute();
|
||||
};
|
||||
|
||||
Designer.stopWork = function()
|
||||
{//设计师停止接单
|
||||
|
||||
//1.查询未完成订单数
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setSync();
|
||||
ajax.setClassName("DesignerWorkPresenter");
|
||||
ajax.setMethodName("getOrderNumber");
|
||||
ajax.execute();
|
||||
|
||||
if (ajax.responseStatus != 0)
|
||||
{
|
||||
Z.alert("抱歉请求处理失败,请重试!");
|
||||
return;
|
||||
}
|
||||
|
||||
//2.提醒下班
|
||||
var confirm = "确认现在停止接单吗?" + ((ajax.responseText != "0")?"您还有" + ajax.responseText + "个订单未完成!":"");
|
||||
Z.confirm(confirm, function()
|
||||
{
|
||||
var _ajax = new Z.Ajax();
|
||||
_ajax.setClassName("DesignerWorkPresenter");
|
||||
_ajax.setMethodName("stopWork");
|
||||
_ajax.setFailureAlert();
|
||||
_ajax.setSuccess(function()
|
||||
{
|
||||
Z("#startWork").addClass("z-pointer").removeClass("z-forbidden").removeClass("z-bg-gray-deep").text("开始接单");
|
||||
Z("#startWork").click(Designer.startWork);
|
||||
Z("#stopWork").addClass("z-forbidden").addClass("z-bg-gray-deep").removeClass("z-pointer").removeClass("z-bg-red-deep");
|
||||
Z("#stopWork").offclick(Designer.stopWork);
|
||||
});
|
||||
_ajax.execute();
|
||||
});
|
||||
};
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,80 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
|
||||
var Global = window.Global = {};
|
||||
|
||||
/**************************************************************************************/
|
||||
//打开旺旺&打开QQ
|
||||
/**************************************************************************************/
|
||||
|
||||
Global.contectWangWang = function()
|
||||
{//打开旺旺
|
||||
var designId = Z.FM.getChecked("designId");
|
||||
var buyerNick = Z("#buyerNick_" + designId).val();
|
||||
Z("#openFrm").attr("src","http://amos.alicdn.com/msg.aw?v=2&uid="+buyerNick+"&site=cntaobao&s=2&charset=utf-8");
|
||||
};
|
||||
|
||||
Global.contectQQ = function()
|
||||
{//打开QQ
|
||||
var designId = Z.FM.getChecked("designId")
|
||||
var userQq = Z("#userQq_" + designId).val();
|
||||
if (!Z.V.isInteger(userQq))
|
||||
{
|
||||
Z.alert("客户未提供QQ号,请旺旺联系");
|
||||
return;
|
||||
}
|
||||
|
||||
Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
|
||||
};
|
||||
|
||||
Global.openWangWang = function(elemId, attrName)
|
||||
{//打开旺旺
|
||||
if (!elemId && !attrName)
|
||||
{
|
||||
Global.contectWangWang();
|
||||
}
|
||||
else
|
||||
{
|
||||
var nick = Z("#"+elemId).attr(Z.V.isEmptyBlank(attrName) ? "data-ww" : attrName);
|
||||
Global.openWangWangParam(nick);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Global.openQQ = function(elemId, attrName)
|
||||
{//打开QQ
|
||||
if (!elemId && !attrName)
|
||||
{
|
||||
Global.contectQQ();
|
||||
}
|
||||
else
|
||||
{
|
||||
var nick = Z("#"+elemId).attr(Z.V.isEmptyBlank(attrName) ? "data-qq" : attrName);
|
||||
Global.openQQParam(nick);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Global.openWangWangParam = function(buyerNick)
|
||||
{//打开旺旺
|
||||
if (Z.V.isEmptyBlank(buyerNick))
|
||||
{
|
||||
Z.failure("客户未提供该联系方式");
|
||||
return;
|
||||
}
|
||||
Z("#openFrm").attr("src","http://amos.alicdn.com/msg.aw?v=2&uid="+buyerNick+"&site=cntaobao&s=2&charset=utf-8");
|
||||
}
|
||||
|
||||
Global.openQQParam = function(userQq)
|
||||
{//打开QQ
|
||||
if (!Z.V.isInteger(userQq))
|
||||
{
|
||||
Z.failure("客户未提供该联系方式");
|
||||
return;
|
||||
}
|
||||
Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
|
||||
}
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,80 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
|
||||
var Global = window.Global = {};
|
||||
|
||||
/**************************************************************************************/
|
||||
//打开旺旺&打开QQ
|
||||
/**************************************************************************************/
|
||||
|
||||
Global.contectWangWang = function()
|
||||
{//打开旺旺complainId
|
||||
var complainId = Z.FM.getChecked("complainId");
|
||||
var buyerNick = Z("#buyerNick_" + complainId).val();
|
||||
Z("#openFrm").attr("src","http://amos.alicdn.com/msg.aw?v=2&uid="+buyerNick+"&site=cntaobao&s=2&charset=utf-8");
|
||||
};
|
||||
|
||||
Global.contectQQ = function()
|
||||
{//打开QQ
|
||||
var complainId = Z.FM.getChecked("complainId")
|
||||
var userQq = Z("#userQq_" + complainId).val();
|
||||
if (!Z.V.isInteger(userQq))
|
||||
{
|
||||
Z.alert("客户未提供QQ号,请旺旺联系");
|
||||
return;
|
||||
}
|
||||
|
||||
Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
|
||||
};
|
||||
|
||||
Global.openWangWang = function(elemId, attrName)
|
||||
{//打开旺旺
|
||||
if (!elemId && !attrName)
|
||||
{
|
||||
Global.contectWangWang();
|
||||
}
|
||||
else
|
||||
{
|
||||
var nick = Z("#"+elemId).attr(Z.V.isEmptyBlank(attrName) ? "data-ww" : attrName);
|
||||
Global.openWangWangParam(nick);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Global.openQQ = function(elemId, attrName)
|
||||
{//打开QQ
|
||||
if (!elemId && !attrName)
|
||||
{
|
||||
Global.contectQQ();
|
||||
}
|
||||
else
|
||||
{
|
||||
var nick = Z("#"+elemId).attr(Z.V.isEmptyBlank(attrName) ? "data-qq" : attrName);
|
||||
Global.openQQParam(nick);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Global.openWangWangParam = function(buyerNick)
|
||||
{//打开旺旺
|
||||
if (Z.V.isEmptyBlank(buyerNick))
|
||||
{
|
||||
Z.failure("客户未提供该联系方式");
|
||||
return;
|
||||
}
|
||||
Z("#openFrm").attr("src","http://amos.alicdn.com/msg.aw?v=2&uid="+buyerNick+"&site=cntaobao&s=2&charset=utf-8");
|
||||
}
|
||||
|
||||
Global.openQQParam = function(userQq)
|
||||
{//打开QQ
|
||||
if (!Z.V.isInteger(userQq))
|
||||
{
|
||||
Z.failure("客户未提供该联系方式");
|
||||
return;
|
||||
}
|
||||
Z("#openFrm").attr("src","tencent://message/?uin="+userQq);
|
||||
}
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,213 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
var Mercolumn = window.Mercolumn = {};
|
||||
Mercolumn.initPageColumn = function (layoutCode, layoutName)
|
||||
{
|
||||
if (!layoutName || !layoutCode)
|
||||
return false;
|
||||
|
||||
var _tr_ = Z('tr[data-layoutCode=\''+layoutCode+'\']');
|
||||
if (!_tr_)
|
||||
{
|
||||
console.error("["+layoutCode+"]" + "元素查询异常")
|
||||
return false;
|
||||
}
|
||||
|
||||
var _tr = _tr_[0];
|
||||
if (!_tr)
|
||||
{
|
||||
console.log("["+layoutCode+"]" + "未找到元素")
|
||||
return false;
|
||||
}
|
||||
|
||||
var cells = _tr.cells;
|
||||
var nameArr = [];
|
||||
var columns = [];
|
||||
Z.each(cells, function(td, i){
|
||||
var columnName = td.innerText;
|
||||
columnName = Z.S.trim(columnName);
|
||||
if (Z.V.isNotEmptyBlank(columnName))//有效列名信息
|
||||
{
|
||||
nameArr[i] = columnName;
|
||||
columns[i] = columnName;
|
||||
}
|
||||
});
|
||||
|
||||
if (nameArr.length == 0)
|
||||
{
|
||||
console.log("["+layoutCode+"]" + "找不到列信息")
|
||||
return false;
|
||||
}
|
||||
|
||||
var init_success = false;
|
||||
try
|
||||
{
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setSync();
|
||||
ajax.setClassName("MercolumnPresenter");
|
||||
ajax.setMethodName("initPageLayoutColumn");
|
||||
ajax.addParam("layoutCode", layoutCode);
|
||||
ajax.addParam("layoutName", layoutName);
|
||||
ajax.addParam("sysColumns", Z.AR.toString(nameArr, ","));
|
||||
ajax.setFailure(function(){
|
||||
console.error("初始化页面信息列异常:"+this.responseText)
|
||||
});
|
||||
ajax.setSuccess(function()
|
||||
{
|
||||
init_success = true;
|
||||
});
|
||||
ajax.execute();
|
||||
}catch(e)
|
||||
{
|
||||
console.log(e)
|
||||
}
|
||||
return init_success;
|
||||
}
|
||||
|
||||
Mercolumn.doQueryColumns = function(layoutCode)
|
||||
{
|
||||
if (!layoutCode)
|
||||
return [];
|
||||
|
||||
var _tr_ = Z('tr[data-layoutCode=\''+layoutCode+'\']');
|
||||
if (!_tr_)
|
||||
{
|
||||
console.error("["+layoutCode+"]" + "元素查询异常")
|
||||
return [];
|
||||
}
|
||||
|
||||
var _tr = _tr_[0];
|
||||
if (!_tr)
|
||||
{
|
||||
console.log("["+layoutCode+"]" + "未找到元素")
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
var cells = _tr.cells;
|
||||
var nameArr = [];
|
||||
var columns = {};
|
||||
Z.each(cells, function(td, i){
|
||||
var columnName = td.innerText;
|
||||
columnName = Z.S.trim(columnName);
|
||||
if (Z.V.isNotEmptyBlank(columnName))//有效列名信息
|
||||
{
|
||||
nameArr[i] = columnName;
|
||||
columns[columnName] = i;
|
||||
}
|
||||
});
|
||||
|
||||
return columns;
|
||||
}
|
||||
|
||||
Mercolumn.doShowMerPageColumn = function (layoutCode, layoutName, orgId)
|
||||
{
|
||||
var init_success = Mercolumn.initPageColumn(layoutCode, layoutName);//初始化
|
||||
if (!init_success)
|
||||
return;//初始化失败了不设置
|
||||
|
||||
var pageColumns = Mercolumn.doQueryColumns(layoutCode);
|
||||
if (!orgId || orgId == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("MercolumnPresenter");
|
||||
ajax.setMethodName("doQueryMerPageLayoutColumns");
|
||||
ajax.addParam("orgId", orgId);
|
||||
ajax.addParam("layoutCode", layoutCode);
|
||||
ajax.setFailure(function(){
|
||||
console.error("设置隐藏商户信息列异常:"+this.responseText);
|
||||
});
|
||||
ajax.setSuccess(function(){
|
||||
var obj = Z.J.toObject(this.responseText);
|
||||
var dataList = obj.dataList;
|
||||
console.log(obj);
|
||||
if (!dataList || dataList.length == 0 || !dataList[0])
|
||||
return;
|
||||
|
||||
var merColsNames = Z.AR.toArray(dataList[0].merColumns, ",")
|
||||
var mercolumsIndex=[];
|
||||
|
||||
//查询影藏列下标
|
||||
var hideIndexs = [];
|
||||
for (var colsName in pageColumns)
|
||||
{
|
||||
if (Z.AR.contains(merColsNames, colsName))
|
||||
{
|
||||
var ind = pageColumns[colsName];
|
||||
mercolumsIndex[colsName] = ind;
|
||||
hideIndexs.push(ind);
|
||||
}
|
||||
}
|
||||
|
||||
console.log("mercolumsIndex:");
|
||||
console.log(mercolumsIndex);
|
||||
console.log(hideIndexs);
|
||||
|
||||
//查询标记隐藏表标头
|
||||
var _tr_ = Z('tr[data-layoutCode=\''+layoutCode+'\']');
|
||||
if (!_tr_ || _tr_ .length == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var parentWidth = 0;
|
||||
var scrollWidth = 0;
|
||||
var table = _tr_.parent()[0]
|
||||
if (Z.S.equalsIgnoreCase(table.tagName, "tbody"))
|
||||
{
|
||||
table = Z(table).parent();
|
||||
scrollWidth = table[0].scrollWidth;
|
||||
var elem = table.parent()[0];
|
||||
parentWidth = elem.clientWidth-table[0].offsetLeft*2;
|
||||
}
|
||||
|
||||
//计算隐藏宽度
|
||||
var cutWidth = 0;
|
||||
var thead = _tr_[0];
|
||||
var _cells_ = thead.cells;
|
||||
for(var ci = 0; ci < _cells_.length; ci++)
|
||||
{
|
||||
if (!Z.AR.contains(hideIndexs, ci*1))
|
||||
{
|
||||
var td = _cells_[ci];
|
||||
cutWidth += td.scrollWidth;
|
||||
}
|
||||
}
|
||||
|
||||
//隐藏列
|
||||
var trs = table.find("tr");
|
||||
for (var i=0; i<trs.length; i++)
|
||||
{
|
||||
var cols = trs[i].cells;
|
||||
for(var ci = 0; ci < cols.length; ci++)
|
||||
{
|
||||
if (!Z.AR.contains(hideIndexs, ci*1))
|
||||
{
|
||||
Z(cols[ci]).hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//重新设置table宽度
|
||||
var table_width = scrollWidth - cutWidth;
|
||||
if (table_width < parentWidth)
|
||||
table_width = parentWidth
|
||||
|
||||
table[0].style.width = table_width + "px";
|
||||
|
||||
});
|
||||
ajax.execute();
|
||||
}catch (e)
|
||||
{
|
||||
console.log(e)
|
||||
}
|
||||
}
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,279 @@
|
||||
;!function (e) {
|
||||
"use strict";
|
||||
var _ws, n = function () {
|
||||
this.v = "1.0.0";
|
||||
this.busiMessageUrl = "http://192.168.3.115:9201/api-busi/messageBusi/readMessage/";
|
||||
}, _url, _status, _lock = false, _id, _message = new Array(), _nowMessage;
|
||||
var _onopen = function (event) {
|
||||
_status = "open";
|
||||
console.log("连接成功");
|
||||
}, _onerror = function (event) {
|
||||
_status = "error";
|
||||
console.log("连接出错");
|
||||
}, _onmessage = function (event) {
|
||||
var obj = eval("(" + event.data + ")");
|
||||
if(obj !=undefined && obj !=null){
|
||||
if(obj[0].code == 1){
|
||||
// 第一次历史消息查询失败的情况
|
||||
return;
|
||||
}if(obj[0].code == 0){
|
||||
// 第一次历史消息查询成功的情况
|
||||
if(obj[0].data.size == 1){
|
||||
_message.push(obj[0].data.messageBusi);
|
||||
_showMessage();
|
||||
}else if(obj[0].data.size > 1){
|
||||
// 提醒未读消息条数
|
||||
_showHistoryMessage(obj[0].data.size);
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
// 实时消息
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
_message.push(obj[i]);
|
||||
}
|
||||
if (_message.length > 0) {
|
||||
_showMessage();
|
||||
}
|
||||
}
|
||||
console.log("收到消息:" + event.data);
|
||||
}, _onclose = function (event) {
|
||||
_status = "close";
|
||||
console.log("关闭连接");
|
||||
}, _reconnection = function () {
|
||||
if (!'WebSocket' in window) {
|
||||
console.error("浏览器不支持推送消息");
|
||||
return;
|
||||
}
|
||||
_ws = new WebSocket(_url,"message_box");
|
||||
_ws.onopen = _onopen;
|
||||
_ws.onerror = _onerror;
|
||||
_ws.onmessage = _onmessage;
|
||||
_ws.onclose = _onclose;
|
||||
}, _closeHear = function () {
|
||||
if (_id) {
|
||||
clearInterval(_id);
|
||||
}
|
||||
}, _heartCheck = function () {
|
||||
if (_lock) {
|
||||
return;
|
||||
}
|
||||
_lock = true;
|
||||
_closeHear();
|
||||
_id = setInterval(function () {
|
||||
if (_url && _status && _status == "close") {
|
||||
console.log("尝试重连")
|
||||
_reconnection();
|
||||
} else if (_url && _status && _status == "open") {
|
||||
console.log("心跳检测");
|
||||
// _ws.send(new ArrayBuffer(4));
|
||||
_ws.send("ping");
|
||||
}
|
||||
_lock = false;
|
||||
}, 1000 * 60);
|
||||
|
||||
}, _readMsg = function () {
|
||||
try {
|
||||
var xmlHttp = new XMLHttpRequest();
|
||||
xmlHttp.onreadystatechange = function () {
|
||||
//当状态变化时处理的事情
|
||||
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
|
||||
//5.接收响应信息
|
||||
var data = eval("(" + xmlHttp.responseText + ")");
|
||||
if (data.code == 0) {
|
||||
document.getElementById("messageDiv").remove();
|
||||
_showMessage();
|
||||
} else {
|
||||
// 失败后添加至头部
|
||||
_message.unshift(_nowMessage);
|
||||
document.getElementById("messageDiv").remove();
|
||||
_showMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
xmlHttp.open("POST", myWebSocket.busiMessageUrl + _nowMessage.id, false);
|
||||
//4.发送请求
|
||||
xmlHttp.send();
|
||||
} catch (e) {
|
||||
// 失败后添加至头部
|
||||
_message.unshift(_nowMessage);
|
||||
document.getElementById("messageDiv").remove();
|
||||
_showMessage();
|
||||
}
|
||||
}, _readHistoryMsg = function () {
|
||||
document.getElementById("messageDiv").remove();
|
||||
}, _showHistoryMsg = function () {
|
||||
document.getElementById("messageDiv").remove();
|
||||
document.getElementsByClassName("myMessageBox")[0].click();
|
||||
},_doCopyOrderIdInfo = function (orderId){
|
||||
//复制订单号id
|
||||
var inputEle = document.createElement("input");
|
||||
document.designMode = "on";
|
||||
inputEle.value = orderId;
|
||||
document.body.appendChild(inputEle);
|
||||
inputEle.select();
|
||||
document.execCommand('copy');
|
||||
inputEle.blur();
|
||||
inputEle.style.display = 'none';
|
||||
document.body.removeChild(inputEle);
|
||||
document.designMode = "off";
|
||||
_readMsg();
|
||||
}, _showMessage = function () {
|
||||
setTimeout(function () {
|
||||
if (document.getElementById("messageDiv") != null || _message.length == 0) {
|
||||
return;
|
||||
}
|
||||
_nowMessage = _message.shift();
|
||||
var property = null;
|
||||
if(_nowMessage.property !=undefined){
|
||||
property = JSON.parse(_nowMessage.property);
|
||||
}
|
||||
var messageBody = _nowMessage.messageBody;
|
||||
var orderId = _nowMessage.orderId;
|
||||
var dateStr = _formatDate(new Date(parseInt(_nowMessage.sendTime)));
|
||||
|
||||
var htmls = `
|
||||
<div id="messageDiv" style="width: 500px;border: 1px solid #cecdcd;background-color: #f2f2f2;color: #fff;position: fixed;right: 15px;bottom: 0px;border-radius: 10px;z-index: 999999;">
|
||||
<div style="width: 500px;height: 55px;text-align: center;font-size: 24px;line-height: 50px;border-radius: 5px 5px 0 0;background-color:red;margin-left: -1px;">
|
||||
消息提醒
|
||||
</div>
|
||||
<div style="border: 1px solid #000;border-radius: 11px;margin: 10px;text-align: center;background-color: #fff;color: #000;font-size: 20px;padding:20px;">
|
||||
${messageBody}
|
||||
</div>
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="color: black;font-size: 16px;margin: 15px;float: left;">提醒发送人:<span>${_nowMessage.producerOperateName ? _nowMessage.producerOperateName : "系统"}</span></span>
|
||||
<span style="color: black;font-size: 16px;margin: 15px;float: right;margin-left: 40px;">消息时间:${dateStr}</span>
|
||||
</div>
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<div onclick="myWebSocket.readHistoryMsg()" style="width: 120px;height: 40px;border-radius: 5px;background-color:#009966;text-align: center;line-height: 40px;color: #fff;float: left;margin: 10px;cursor:pointer;">知道了</div>
|
||||
<div onclick="myWebSocket.doCopyOrderIdInfo(${orderId});" style="width: 120px;height: 40px;border-radius: 5px;background-color:#199ed8;text-align: center;line-height: 40px;color: #fff;float: right;margin: 10px;cursor:pointer;margin-left:50px;">点击复制单号</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
document.body.insertAdjacentHTML("beforeend", htmls);
|
||||
}, 2000)
|
||||
}, _showHistoryMessage = function (size) {
|
||||
var dateStr = _formatDate(new Date());
|
||||
var htmls = `
|
||||
<div id="messageDiv" style="width: 500px;border: 1px solid #cecdcd;background-color: #f2f2f2;color: #fff;position: fixed;right: 15px;bottom: 0px;border-radius: 10px;z-index: 999999;">
|
||||
<div style="width: 500px;height: 55px;text-align: center;font-size: 24px;line-height: 50px;border-radius: 5px 5px 0 0;background-color:red;margin-left: -1px;">
|
||||
消息提醒
|
||||
</div>
|
||||
<div style="border: 1px solid #000;border-radius: 11px;margin: 10px;text-align: center;background-color: #fff;color: #000;font-size: 20px;padding:20px;">
|
||||
您有${size}条消息未读
|
||||
</div>
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<span style="color: black;font-size: 16px;margin: 15px;float: left;">提醒发送人:<span>系统</span></span>
|
||||
<span style="color: black;font-size: 16px;margin: 15px;float: right;margin-left: 40px;">消息时间:${dateStr}</span>
|
||||
</div>
|
||||
<div style="display: flex;justify-content: center;">
|
||||
<div onclick="myWebSocket.readHistoryMsg()" style="width: 120px;height: 40px;border-radius: 5px;background-color:#009966;text-align: center;line-height: 40px;color: #fff;float: left;margin: 10px;cursor:pointer;">知道了</div>
|
||||
<div onclick="myWebSocket.showHistoryMsg();" style="width: 120px;height: 40px;border-radius: 5px;background-color:#169BD5;text-align: center;line-height: 40px;color: #fff;float: right;margin: 10px;cursor:pointer;margin-left:50px;">查看消息</div>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
document.body.insertAdjacentHTML("beforeend", htmls);
|
||||
}, _utf8ByteToUnicodeStr = function (utf8Bytes) {
|
||||
var unicodeStr = "";
|
||||
for (var pos = 0; pos < utf8Bytes.length;) {
|
||||
var flag = utf8Bytes[pos];
|
||||
var unicode = 0;
|
||||
if ((flag >>> 7) === 0) {
|
||||
unicodeStr += String.fromCharCode(utf8Bytes[pos]);
|
||||
pos += 1;
|
||||
|
||||
} else if ((flag & 0xFC) === 0xFC) {
|
||||
unicode = (utf8Bytes[pos] & 0x3) << 30;
|
||||
unicode |= (utf8Bytes[pos + 1] & 0x3F) << 24;
|
||||
unicode |= (utf8Bytes[pos + 2] & 0x3F) << 18;
|
||||
unicode |= (utf8Bytes[pos + 3] & 0x3F) << 12;
|
||||
unicode |= (utf8Bytes[pos + 4] & 0x3F) << 6;
|
||||
unicode |= (utf8Bytes[pos + 5] & 0x3F);
|
||||
unicodeStr += String.fromCharCode(unicode);
|
||||
pos += 6;
|
||||
|
||||
} else if ((flag & 0xF8) === 0xF8) {
|
||||
unicode = (utf8Bytes[pos] & 0x7) << 24;
|
||||
unicode |= (utf8Bytes[pos + 1] & 0x3F) << 18;
|
||||
unicode |= (utf8Bytes[pos + 2] & 0x3F) << 12;
|
||||
unicode |= (utf8Bytes[pos + 3] & 0x3F) << 6;
|
||||
unicode |= (utf8Bytes[pos + 4] & 0x3F);
|
||||
unicodeStr += String.fromCharCode(unicode);
|
||||
pos += 5;
|
||||
|
||||
} else if ((flag & 0xF0) === 0xF0) {
|
||||
unicode = (utf8Bytes[pos] & 0xF) << 18;
|
||||
unicode |= (utf8Bytes[pos + 1] & 0x3F) << 12;
|
||||
unicode |= (utf8Bytes[pos + 2] & 0x3F) << 6;
|
||||
unicode |= (utf8Bytes[pos + 3] & 0x3F);
|
||||
unicodeStr += String.fromCharCode(unicode);
|
||||
pos += 4;
|
||||
|
||||
} else if ((flag & 0xE0) === 0xE0) {
|
||||
unicode = (utf8Bytes[pos] & 0x1F) << 12;
|
||||
;
|
||||
unicode |= (utf8Bytes[pos + 1] & 0x3F) << 6;
|
||||
unicode |= (utf8Bytes[pos + 2] & 0x3F);
|
||||
unicodeStr += String.fromCharCode(unicode);
|
||||
pos += 3;
|
||||
|
||||
} else if ((flag & 0xC0) === 0xC0) { //110
|
||||
unicode = (utf8Bytes[pos] & 0x3F) << 6;
|
||||
unicode |= (utf8Bytes[pos + 1] & 0x3F);
|
||||
unicodeStr += String.fromCharCode(unicode);
|
||||
pos += 2;
|
||||
|
||||
} else {
|
||||
unicodeStr += String.fromCharCode(utf8Bytes[pos]);
|
||||
pos += 1;
|
||||
}
|
||||
}
|
||||
return unicodeStr;
|
||||
}, _formatDate = function (now) {
|
||||
var year = now.getFullYear(); //取得4位数的年份
|
||||
var month = now.getMonth() + 1; //取得日期中的月份,其中0表示1月,11表示12月
|
||||
var date = now.getDate(); //返回日期月份中的天数(1到31)
|
||||
var hour = now.getHours(); //返回日期中的小时数(0到23)
|
||||
var minute = now.getMinutes(); //返回日期中的分钟数(0到59)
|
||||
var second = now.getSeconds(); //返回日期中的秒数(0到59)
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (date < 10) {
|
||||
date = "0" + date;
|
||||
}
|
||||
if (hour < 10) {
|
||||
hour = "0" + hour;
|
||||
}
|
||||
if (minute < 10) {
|
||||
minute = "0" + minute;
|
||||
}
|
||||
if (second < 10) {
|
||||
second = "0" + second;
|
||||
}
|
||||
return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
|
||||
};
|
||||
n.prototype.init = function (url) {
|
||||
if (!'WebSocket' in window) {
|
||||
console.error("浏览器不支持推送消息");
|
||||
return;
|
||||
}
|
||||
_url = url;
|
||||
_ws = new WebSocket(_url,"message_box");
|
||||
_ws.onopen = _onopen;
|
||||
_ws.onerror = _onerror;
|
||||
_ws.onmessage = _onmessage;
|
||||
_ws.onclose = _onclose;
|
||||
window.onbeforeunload = function (event) {
|
||||
_ws.close();
|
||||
};
|
||||
_heartCheck();
|
||||
}, n.prototype.close = function () {
|
||||
_closeHear();
|
||||
if(_ws){
|
||||
_ws.close();
|
||||
}
|
||||
}, n.prototype.reconnection = _reconnection, n.prototype.readMsg = _readMsg, n.prototype.doCopyOrderIdInfo = _doCopyOrderIdInfo, n.prototype.readHistoryMsg = _readHistoryMsg,n.prototype.showHistoryMsg = _showHistoryMsg;
|
||||
e.myWebSocket = new n;
|
||||
}(window);
|
||||
+1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,225 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
|
||||
var Works = window.Works = {};
|
||||
|
||||
//外部执行搜索
|
||||
Works.doSearchAjaxForPC = function(page ,value, urlParam)
|
||||
{
|
||||
var prdTypeId = Z("#prdTypeId").val();
|
||||
var industryId = Z("#industryId").val();
|
||||
var sort = Z("#sort").val();
|
||||
var keyword;
|
||||
var param;
|
||||
|
||||
var tr = document.getElementById("pcWorksTrId");
|
||||
if(prdTypeId == 3){
|
||||
tr.style.display = "table-row";
|
||||
}else {
|
||||
tr.style.display = "none";
|
||||
}
|
||||
|
||||
if (value == "" || value == null)
|
||||
{
|
||||
keyword = Z("#searchinput").val();
|
||||
}
|
||||
else
|
||||
{
|
||||
var prdStr = value.indexOf("nav_");
|
||||
var indStr = value.indexOf("ind_");
|
||||
if (prdStr >= 0)
|
||||
{
|
||||
prdTypeId = value.substring(4);
|
||||
keyword = Z("#searchinput").val();
|
||||
}
|
||||
else if (indStr >= 0)
|
||||
{
|
||||
industryId = value.substring(4);
|
||||
keyword = Z("#searchinput").val();
|
||||
}
|
||||
else
|
||||
{
|
||||
keyword = value;
|
||||
}
|
||||
}
|
||||
|
||||
if (urlParam == null || urlParam == "" || urlParam == "undefined")
|
||||
{
|
||||
param = Z("#urlParam").val();
|
||||
}
|
||||
else
|
||||
{
|
||||
param = urlParam;
|
||||
}
|
||||
|
||||
var oddEven = Z("#oddEven").val();
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("WorksPresenterForPC");
|
||||
ajax.setMethodName("doWorksKeywordSearchForPC");
|
||||
ajax.addParam("page", page);
|
||||
ajax.addParam("keyword", keyword);
|
||||
ajax.addParam("prdTypeId", prdTypeId);
|
||||
ajax.addParam("industryId", industryId);
|
||||
ajax.addParam("sort", sort);
|
||||
ajax.addParam("oddEven", oddEven);
|
||||
ajax.addParam("urlParam", param);
|
||||
ajax.setCallback("resultWrap");
|
||||
ajax.setLoading("resultWrap");
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
//执行搜索
|
||||
Works.doSearchAjax = function(page ,value, urlParam)
|
||||
{
|
||||
var prdTypeId = Z("#prdTypeId").val();
|
||||
var industryId = Z("#industryId").val();
|
||||
var keyword;
|
||||
var param;
|
||||
|
||||
if (value == "" || value == null)
|
||||
{
|
||||
keyword = Z("#searchinput").val();
|
||||
}
|
||||
else
|
||||
{
|
||||
var prdStr = value.indexOf("nav_");
|
||||
var indStr = value.indexOf("ind_");
|
||||
if (prdStr >= 0)
|
||||
{
|
||||
prdTypeId = value.substring(4);
|
||||
keyword = Z("#searchinput").val();
|
||||
}
|
||||
else if (indStr >= 0)
|
||||
{
|
||||
industryId = value.substring(4);
|
||||
keyword = Z("#searchinput").val();
|
||||
}
|
||||
else
|
||||
keyword = value;
|
||||
}
|
||||
|
||||
if (urlParam == null || urlParam == "" || urlParam == "undefined")
|
||||
param = Z("#urlParam").val();
|
||||
else
|
||||
param = urlParam;
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("WorksPresenter");
|
||||
ajax.setMethodName("doWorksKeywordSearch");
|
||||
ajax.addParam("page", page);
|
||||
ajax.addParam("keyword", keyword);
|
||||
ajax.addParam("prdTypeId", prdTypeId);
|
||||
ajax.addParam("industryId", industryId);
|
||||
ajax.addParam("urlParam", param);
|
||||
ajax.setCallback("resultWrap");
|
||||
ajax.setLoading("resultWrap");
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
Works.doSearchSelect = function(type,idaId)
|
||||
{
|
||||
if (type == "prdType")
|
||||
{
|
||||
if (Z.AR.contains(prdIdarr, idaId))
|
||||
Z.AR.remove(prdIdarr, idaId);
|
||||
else
|
||||
prdIdarr.push(idaId);
|
||||
}
|
||||
else if(type == "industry")
|
||||
{
|
||||
if (Z.AR.contains(indIdarr, idaId))
|
||||
Z.AR.remove(indIdarr, idaId)
|
||||
else
|
||||
indIdarr.push(idaId);
|
||||
}
|
||||
}
|
||||
|
||||
Works.doWorksShow = function (value)
|
||||
{//展示弹窗页,全铺满
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("WorksPresenter");
|
||||
ajax.setMethodName("doWorksBrowse");
|
||||
ajax.addParam(value)
|
||||
ajax.execute();
|
||||
|
||||
var dialog = new Z.Dialog();
|
||||
dialog.shadow = true;
|
||||
dialog.title = "作品详情";
|
||||
dialog.fixed = true;
|
||||
|
||||
dialog.url = "worksShow.htm?worksId="+value;
|
||||
dialog.width = Z.D.clientWidth();
|
||||
dialog.height =Z.D.clientHeight()-40;
|
||||
dialog.execute();
|
||||
}
|
||||
|
||||
Works.doWorksShowPc = function (value)
|
||||
{//展示弹窗页,全铺满
|
||||
debugger;
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("WorksPresenter");
|
||||
ajax.setMethodName("doWorksBrowse");
|
||||
ajax.addParam(value)
|
||||
ajax.execute();
|
||||
|
||||
var dialog = new Z.Dialog();
|
||||
dialog.shadow = true;
|
||||
dialog.title = "作品详情";
|
||||
dialog.fixed = true;
|
||||
dialog.scroll = true;
|
||||
|
||||
dialog.url = "worksShowPC.htm?templateId="+value;
|
||||
dialog.width = Z.D.clientWidth() - 30;
|
||||
dialog.height =Z.D.clientHeight() - 65;
|
||||
dialog.execute();
|
||||
}
|
||||
|
||||
//浮动选择框
|
||||
Works.addWorksKey = function (ele)
|
||||
{//开始和隐藏
|
||||
var $wrap = Z(ele).parent();
|
||||
if (!$wrap.hasClass("startActive"))
|
||||
{//执行多选操作
|
||||
Z(ele).removeClass("z-bg-blue-deep").addClass("z-bg-red-deep").html("取消编辑");
|
||||
$wrap.addClass("startActive").addClass("z-active");
|
||||
$wrap.children(".fixedDialog-hiddenBtn").html("收起");
|
||||
//插入多选框
|
||||
var items = Z("#srcFileList>.item");
|
||||
for (var i = 0;i < items.length;i++)
|
||||
{
|
||||
var $item = Z(items[i]);
|
||||
if ($item.children(".checkBox")[0])
|
||||
{
|
||||
$item.children(".checkBox").show();
|
||||
//$item.find("input[type=checkBox]")[0].checked = false;
|
||||
continue;
|
||||
}
|
||||
var id = $item.attr("id").substring(5);
|
||||
var $checkBox = Z('<label for="input_' + id + '" class="checkBox z-absolute z-w100p z-h100p"><input onchange="Works.addItemTo(this);" id="input_' + id + '" value="' + id + '" type="checkBox" name="applyEssence"></label>');
|
||||
$checkBox.appendToPos($item);
|
||||
}
|
||||
}
|
||||
else
|
||||
{//隐藏
|
||||
Z(ele).removeClass("z-bg-red-deep").addClass("z-bg-blue-deep").html("模板编辑");
|
||||
$wrap.children(".fixedDialog-hiddenBtn").html("展开");
|
||||
$wrap.removeClass("startActive").removeClass("z-active");
|
||||
Z("#srcFileList>.item>.checkBox").hide();
|
||||
//数据取消
|
||||
var $liList = Z(ele).parent().find("li.z-active");
|
||||
for (var i = 0;i < $liList.length;i++)
|
||||
{
|
||||
var $theLi = Z($liList[i]);
|
||||
var $theImg = $theLi.children("img");
|
||||
var id = $theImg.attr("data-id");
|
||||
$theLi.removeClass("z-active");
|
||||
$theImg.attr("src","").attr("data-id","");
|
||||
Z("#input_" + id)[0].checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//END
|
||||
})(zhiqim);
|
||||
@@ -0,0 +1,286 @@
|
||||
+(function(Z)
|
||||
{
|
||||
//BEGIN
|
||||
|
||||
Z.SearchAutoList = Z.Class.newInstance();
|
||||
Z.SearchAutoList.prototype =
|
||||
{
|
||||
defaults:
|
||||
{
|
||||
elem: null, //输入框/输入框盒子ID
|
||||
className: null, //Ajax调用的类名
|
||||
methodName: null, //Ajax调用的类方法
|
||||
history: true, //历史记录显示
|
||||
callback: null //选中后的回调函数
|
||||
},
|
||||
|
||||
execute: function()
|
||||
{
|
||||
this.$elem = Z.$elem(this.elem, "Z.SearchAutoList");
|
||||
this.id = this.$elem.attr("id") || "ZSearchAutoList";
|
||||
|
||||
this.width = this.$elem.offsetWidth();
|
||||
var height = this.$elem.offsetHeight();
|
||||
var fontSize = this.$elem.css("fontSize");
|
||||
this.pdLeft = this.$elem.css("paddingLeft");
|
||||
this.pdRight = this.$elem.css("paddingRight");
|
||||
this.lHeight = this.$elem.css("lineHeight");
|
||||
|
||||
this.$cover = Z.$cover(this.$elem);
|
||||
this.$list = Z('<div class="z-absolute z-bg-white z-text-left z-bd z-hide"></div>')
|
||||
.css({width: this.width, left: 0, top: height-1, fontSize: fontSize, zIndex: 99})
|
||||
.appendTo(this.$cover);
|
||||
|
||||
//事件绑定
|
||||
this.$elem.on("focus", this.onFocus, this);
|
||||
this.$elem.on("input", this.onInput, this);
|
||||
this.$elem.keydown(this.onKeyDown, this);
|
||||
Z(document).click(this.onDocClick, this);
|
||||
},
|
||||
|
||||
onFocus: function(e)
|
||||
{//获取焦点事件
|
||||
this.value = Z.S.trim(this.$elem.val());
|
||||
if (Z.V.isEmptyBlank(this.value))
|
||||
{
|
||||
this.doHistoryList();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.beforeValue == this.value)
|
||||
{//内容不改变
|
||||
if (this.$list.html() != "")
|
||||
this.$list.show();
|
||||
}
|
||||
else
|
||||
{//内容已改变
|
||||
this.beforeValue = this.value;
|
||||
this.$list.show();
|
||||
this.doAjax();
|
||||
}
|
||||
},
|
||||
|
||||
onInput: function(e)
|
||||
{//input事件
|
||||
this.value = Z.S.trim(this.$elem.val());
|
||||
if (Z.V.isEmptyBlank(this.value))
|
||||
{
|
||||
this.doHistoryList();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.beforeValue != this.value)
|
||||
{//调用查询
|
||||
this.beforeValue = this.value;
|
||||
this.$list.show();
|
||||
this.doAjax();
|
||||
}
|
||||
},
|
||||
|
||||
//ajax调用,生成列表
|
||||
doAjax: function()
|
||||
{
|
||||
this.ajax = new Z.Ajax();
|
||||
this.ajax._this = this;
|
||||
this.ajax.setClassName(this.className);
|
||||
this.ajax.setMethodName(this.methodName);
|
||||
this.ajax.addParam(this.value);
|
||||
this.ajax.setCallback(function()
|
||||
{
|
||||
var _this = this._this;
|
||||
var titleList = Z.J.toObject(this.responseText);
|
||||
if (titleList.length == 0)
|
||||
{
|
||||
_this.$list.html("").hide();
|
||||
return;
|
||||
}
|
||||
|
||||
var html = '<ul>';
|
||||
Z.eachof(_this, titleList, function(item){
|
||||
html += '<li class="z-text-ellipsis" style="width: ' + _this.width + 'px; padding: 2px ' + _this.pdRight + ' 2px ' + _this.pdLeft +'; line-height:'+ _this.lHeight +'; cursor: pointer;">' + item + "</li>";
|
||||
});
|
||||
html += "</ul>";
|
||||
|
||||
_this.$list.html(html);
|
||||
_this.lis = _this.$list.find("li");
|
||||
_this.lis.click(_this.doSelect, _this);
|
||||
_this.lis.mouseenter(_this.onMouseEnter, _this);
|
||||
_this.lis.mouseleave(_this.onMouseLeave, _this);
|
||||
});
|
||||
this.ajax.execute();
|
||||
},
|
||||
|
||||
doSelect: function(e)
|
||||
{//鼠标选中
|
||||
Z.E.forbidden(e);
|
||||
|
||||
this.beforeValue = this.value;
|
||||
this.value = Z(Z.E.target(e)).text();
|
||||
this.$elem.val(this.value);
|
||||
|
||||
this.$list.hide();
|
||||
this.doAjax();
|
||||
|
||||
this.saveHistory(e);
|
||||
this.doCallback(e);
|
||||
},
|
||||
|
||||
onDocClick: function(e)
|
||||
{//空白处点击,隐藏列表
|
||||
var target = Z.E.target(e);
|
||||
if (target == this.$elem[0])
|
||||
return;
|
||||
|
||||
this.$list.hide();
|
||||
if (this.beforeValue != this.value)
|
||||
{//静默调用
|
||||
this.beforeValue = this.value;
|
||||
this.doAjax();
|
||||
}
|
||||
},
|
||||
|
||||
onKeyDown: function(e)
|
||||
{//键盘 “上” “下” “回车”按键监听
|
||||
var keyVal = Z.E.key(e);
|
||||
if (keyVal != Z.E.KEY.UP && keyVal != Z.E.KEY.DOWN && keyVal != Z.E.KEY.ENTER)
|
||||
return;
|
||||
|
||||
Z.E.forbidden(e);
|
||||
if (this.lis)
|
||||
{//有选择列表的搜索框
|
||||
var liSetLength = this.lis.length;
|
||||
var liActive = this.$list.find(".z-bg-gray");
|
||||
var liActiveIndex = -1;
|
||||
var toIndex = null;
|
||||
if (liActive.length != 0)
|
||||
liActiveIndex = Z.EL.parentIndex(liActive[0]);
|
||||
|
||||
switch (keyVal)
|
||||
{
|
||||
case Z.E.KEY.UP://上
|
||||
toIndex = liActiveIndex - 1;
|
||||
if (toIndex <= -1)
|
||||
toIndex = liSetLength - 1;
|
||||
break;
|
||||
case Z.E.KEY.DOWN://下
|
||||
toIndex = liActiveIndex + 1;
|
||||
if (toIndex == liSetLength)
|
||||
toIndex = 0;
|
||||
break;
|
||||
case Z.E.KEY.ENTER://回车选中
|
||||
this.$elem[0].blur();
|
||||
this.$list.hide();
|
||||
this.value = Z.S.trim(this.$elem.val());
|
||||
this.beforeValue = this.value;
|
||||
this.doAjax();
|
||||
this.saveHistory(e);
|
||||
this.doCallback(e);
|
||||
return;
|
||||
}
|
||||
toIndex++;
|
||||
this.lis.removeClass("z-bg-gray");
|
||||
var toLi = this.$list.find("li:nth-child(" + toIndex +")").addClass("z-bg-gray");
|
||||
this.value = toLi.html();
|
||||
this.$elem.val(toLi.html());
|
||||
}
|
||||
else if (keyVal == Z.E.KEY.ENTER)
|
||||
{//直接在输入框回车搜索
|
||||
this.value = Z.S.trim(this.$elem.val());
|
||||
this.beforeValue = this.value;
|
||||
this.doAjax();
|
||||
this.saveHistory(e);
|
||||
this.doCallback(e);
|
||||
}
|
||||
},
|
||||
|
||||
//选中后的回掉函数
|
||||
doCallback: function(e)
|
||||
{
|
||||
if (!this.callback)
|
||||
return;
|
||||
this.callback(e);
|
||||
},
|
||||
|
||||
//历史记录列表展示
|
||||
doHistoryList: function(e)
|
||||
{
|
||||
if (!this.history)
|
||||
return;
|
||||
|
||||
this.$list.html("").hide();
|
||||
if (!localStorage.getItem(this.id))
|
||||
return;
|
||||
|
||||
var htmlStr = '<ul class="z-text-gray">';
|
||||
var hisArr = localStorage.getItem(this.id).split(";");
|
||||
for (var i = 0;i < hisArr.length;i++)
|
||||
{
|
||||
htmlStr += '<li class="z-text-ellipsis" style="width: ' + this.width + 'px; padding: 2px ' + this.pdRight + ' 2px ' + this.pdLeft +'; line-height:'+ this.lHeight +'; cursor: pointer;">'
|
||||
+ hisArr[i] + "</li>";
|
||||
}
|
||||
htmlStr += "</ul>";
|
||||
Z(htmlStr).appendTo(this.$list.show());
|
||||
var hisBar = '<div class="z-bg-blue z-clearfix" style="padding:0 ' + this.pdRight + ' 0 ' + this.pdLeft +';line-height:'+ this.lHeight +';cursor:default;">'
|
||||
+ '<span class="z-float-right z-pointer z-deleteBtn">清空历史</span>'
|
||||
+ '</div>';
|
||||
Z(hisBar).appendTo(this.$list.show());
|
||||
//绑定事件
|
||||
this.lis = this.$list.find("li");
|
||||
this.lis.click(this.doSelect,this);
|
||||
this.lis.mouseenter(this.onMouseEnter,this);
|
||||
this.lis.mouseleave(this.onMouseLeave,this);
|
||||
//绑定删除事件
|
||||
var $delBtn = this.$list.find(".z-deleteBtn");
|
||||
$delBtn.click(this.emptyHistory,this);
|
||||
},
|
||||
|
||||
emptyHistory: function(e)
|
||||
{
|
||||
localStorage.removeItem(this.id);
|
||||
},
|
||||
|
||||
//输入完成,存储历史记录
|
||||
saveHistory: function(e)
|
||||
{
|
||||
if (!this.history)
|
||||
return;
|
||||
|
||||
var hisStr = localStorage.getItem(this.id);
|
||||
if (!hisStr)
|
||||
return localStorage.setItem(this.id, this.value);
|
||||
|
||||
var hisArr = hisStr.split(";");
|
||||
hisArr.unshift(this.value);
|
||||
|
||||
//去重
|
||||
var resultArr = [];
|
||||
for(var i = 0; i < hisArr.length; i++)
|
||||
{
|
||||
if (!Z.AR.contains(resultArr, hisArr[i]))
|
||||
resultArr.push(hisArr[i]);
|
||||
}
|
||||
|
||||
//限制个数
|
||||
if (resultArr.length > 10)
|
||||
resultArr.length = 10;
|
||||
|
||||
hisStr = resultArr.join(";");
|
||||
localStorage.setItem(this.id, hisStr);
|
||||
},
|
||||
|
||||
//鼠标悬浮,背景颜色变化
|
||||
onMouseEnter: function(e)
|
||||
{
|
||||
var $thisLi = Z(Z.E.target(e));
|
||||
$thisLi.addClass("z-bg-gray");
|
||||
},
|
||||
|
||||
onMouseLeave: function(e)
|
||||
{
|
||||
var $thisLi = Z(Z.E.target(e));
|
||||
$thisLi.removeClass("z-bg-gray");
|
||||
}
|
||||
}
|
||||
|
||||
//END
|
||||
})(zhiqim)
|
||||
Reference in New Issue
Block a user