初始化代码
This commit is contained in:
2608
public/version/selectPage/js/jquery-1.10.2.min.js
vendored
Normal file
2608
public/version/selectPage/js/jquery-1.10.2.min.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
398
public/version/selectPage/js/selectPageTool.js
Normal file
398
public/version/selectPage/js/selectPageTool.js
Normal file
@@ -0,0 +1,398 @@
|
||||
/**
|
||||
* Created by 陈熠 on 2017/6/21
|
||||
* email : 228112142@qq.com
|
||||
*/
|
||||
(function ($) {
|
||||
var selectPages = [];
|
||||
/*分页默认参数*/
|
||||
var defaultParam = {
|
||||
search: false,
|
||||
nd: new Date().getTime(),
|
||||
limit: 5,
|
||||
page: 1,
|
||||
sidx: '',
|
||||
order: 'desc',
|
||||
init: true,
|
||||
_: new Date().getTime()
|
||||
};
|
||||
/* 入口函数 */
|
||||
$.fn.selectPage = function () {
|
||||
//参数数据
|
||||
var cyProps = $(this).attr("cyProps");
|
||||
if (!cyProps) {
|
||||
return
|
||||
}
|
||||
cyProps = cyProps ? cyProps : "";
|
||||
//将表格参数转为json
|
||||
cyProps = eval("({" + cyProps + "})");
|
||||
//创建节点
|
||||
createDom($(this), cyProps);
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**创建相关dom元素 **/
|
||||
function createDom(_this, cyProps) {
|
||||
var _name = $(_this).attr("name") || "";
|
||||
var _value = $(_this).attr("value") || "";
|
||||
var showTips = _value === "" ? "cy-show" : "cy-none";
|
||||
var _tips = cyProps.tips || "请根据用户id搜索";
|
||||
var _checkbox = cyProps.checkbox || "true";
|
||||
var ITEM_CLASS = _checkbox==="true"?"":"select-single";
|
||||
var _search = cyProps.search === "false" ? "none" : "block";
|
||||
var nowTime = (new Date()).getTime();
|
||||
var selectId = "multi-select-" + nowTime + $(".multi-select").length;
|
||||
var pageId = "page-" + nowTime + $(".dd-page").length;
|
||||
/** 渲染结果**/
|
||||
var outHtml =
|
||||
_this.html([
|
||||
'<div class="layui-form-select select-page" select-id="' + selectId + '">',
|
||||
'<input type="text" name="' + _name + '" value="' + _value + '" class="form-input cy-none">',
|
||||
'<div class="layui-input multi-select">',
|
||||
'<input type="text" readonly="true" placeholder="' + _tips + '" class="select-tips ' + showTips + '">',
|
||||
'</div>',
|
||||
'<i class="layui-edge"></i>',
|
||||
'<dl class="layui-anim layui-anim-upbit" style="">',
|
||||
'<dd lay-value="dd-search" class="dd-bar dd-search" style="display: ' + _search + '">',
|
||||
'<i class="layui-icon select-page-search-btn" ></i>',
|
||||
'<input class="layui-input search_condition" placeholder="关键字搜索">',
|
||||
'<i class="layui-icon select-page-search-clear">ဆ</i>',
|
||||
'</dd>',
|
||||
'<div class="dd-content '+ITEM_CLASS+'"></div>',
|
||||
'<dd lay-value="dd-page" class="dd-bar dd-page">',
|
||||
'<div class="lay-page" id="' + pageId + '"></div>',
|
||||
'</dd>',
|
||||
'</dl>',
|
||||
'</div>'
|
||||
].join(""));
|
||||
_this.append(outHtml);
|
||||
|
||||
selectPages.push($(_this));
|
||||
//下拉json数据
|
||||
var R = getSelectData(cyProps.url);
|
||||
var selectData = dataPage(1, 1000000, R.data || []);
|
||||
$t.setSessionStorage(selectId, selectData);
|
||||
$t.setSessionStorage("curr-"+selectId,selectData);
|
||||
//数据回填
|
||||
for (var i = 0; i < selectData.length; i++) {
|
||||
//默认值回选
|
||||
var _values = _value.split(",") || "";
|
||||
if (_values.indexOf(selectData[i].code) > -1) {
|
||||
var _selected = '<a href="javascript:;"><span class="selected-title" lay-value="' + selectData[i].code + '">' + selectData[i].value + '</span><i>×</i></a>';
|
||||
$(_this).find(".multi-select").append(_selected);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
renderPage(_this,pageId,selectId,R.count,_checkbox);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function renderPage(_this,pageId,selectId,count,_checkbox){
|
||||
layui.use(['form', 'laypage'], function () {
|
||||
var form = layui.form;
|
||||
var laypage = layui.laypage;
|
||||
laypage.render({
|
||||
elem: pageId
|
||||
, count: count || 0
|
||||
, first: false
|
||||
, last: false
|
||||
, limit: defaultParam.limit
|
||||
, prev: '<i class="fa fa-angle-double-left"></i>'
|
||||
, next: '<i class="fa fa-angle-double-right"></i>'
|
||||
, layout: ['prev', 'next', 'skip', 'count']
|
||||
, jump: function (obj, first) {
|
||||
|
||||
var _v=$("#"+obj.elem).parents(".select-page").find(".form-input").val();
|
||||
$(_this).find(".dd-content").html("");
|
||||
var selectData = dataPage(obj.curr, defaultParam.limit, $t.getSessionStorage("curr-"+selectId) || []);
|
||||
//数据渲染
|
||||
for (var i = 0; i < selectData.length; i++) {
|
||||
var _dd = _checkbox === "true"
|
||||
? '<dd class="select-item" lay-value="' + selectData[i].code + '" lay-title="' + selectData[i].value + '"><input type="checkbox" title="' + 'id:' + selectData[i].code + ';用户名:' + selectData[i].value + '" lay-filter="selectPageItem" lay-skin="primary"></dd>'
|
||||
: '<dd class="select-item" lay-value="' + selectData[i].code + '" lay-title="' + selectData[i].value + '">' + selectData[i].value + '</dd>';
|
||||
//默认值回选
|
||||
var _values = _v.split(",") || "";
|
||||
if (_values.indexOf(selectData[i].code) > -1) {
|
||||
|
||||
if (_checkbox === "true") {
|
||||
_dd = _dd.replace('<input type="checkbox"', '<input type="checkbox" checked');
|
||||
}
|
||||
|
||||
if (_checkbox === "false") {
|
||||
_dd = _dd.replace('<dd class="select-item"', '<dd class="select-item layui-this"');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
$(_this).find(".dd-content").append(_dd);
|
||||
}
|
||||
form.render();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
/**数组分页
|
||||
* pageNo 当前第几页
|
||||
* pageSize 每页几条
|
||||
* array 数据列表
|
||||
* **/
|
||||
function dataPage(pageNo, pageSize, array) {
|
||||
var offset = (pageNo - 1) * pageSize;
|
||||
return (offset + pageSize >= array.length) ? array.slice(offset, array.length) : array.slice(offset, offset + pageSize);
|
||||
}
|
||||
|
||||
/**隐藏其他下拉框 **/
|
||||
function hideOtherSelect(obj) {
|
||||
$.each(selectPages, function () {
|
||||
var selectId = $(this).find(".select-page").attr("select-id");
|
||||
var oldId = $(obj).parent().attr("select-id");
|
||||
if (selectId === oldId)return;
|
||||
$("[select-id='" + selectId + "']").removeClass("layui-form-selected");
|
||||
});
|
||||
}
|
||||
|
||||
/**获取下拉树数据 **/
|
||||
function getSelectData(url) {
|
||||
var data = "";
|
||||
$.ajax({
|
||||
url: url,
|
||||
async: false,
|
||||
data: defaultParam,
|
||||
dataType: "json",
|
||||
success: function (R) {
|
||||
if (R.code == 0) {
|
||||
data = R
|
||||
} else {
|
||||
alert(R.msg);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
alert("系统错误");
|
||||
}
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
/**获取搜索后的数据 **/
|
||||
function searchData(selectId, value) {
|
||||
var selectData = $t.getSessionStorage(selectId);
|
||||
//显示搜索结果菜单
|
||||
var k = value;
|
||||
// if (k == "") return;
|
||||
var arr = [];
|
||||
var patt = new RegExp(k);
|
||||
for (var i = 0; i < selectData.length; i++) {
|
||||
if (patt.test(selectData[i].code)) {
|
||||
arr.push({code: selectData[i].code, value: selectData[i].value});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return arr;
|
||||
}
|
||||
|
||||
/**获取插件配置 **/
|
||||
function getProps(elem) {
|
||||
//参数数据
|
||||
var cyProps = $(elem).parents("[cytype='selectPageTool']").attr("cyProps");
|
||||
cyProps = cyProps ? cyProps : "";
|
||||
//将表格参数转为json
|
||||
cyProps = eval("({" + cyProps + "})");
|
||||
|
||||
return cyProps;
|
||||
}
|
||||
|
||||
/**是否显示tips*/
|
||||
function showTips(selectId) {
|
||||
var _select = $('[select-id="' + selectId + '"]');
|
||||
//不显示
|
||||
if (_select.find(".form-input").val()) {
|
||||
_select.find(".select-tips").hide();
|
||||
}
|
||||
//显示
|
||||
else {
|
||||
_select.find(".select-tips").show();
|
||||
}
|
||||
}
|
||||
/**重置面板位置*/
|
||||
function resetPosition(elem) {
|
||||
var _height=$(elem).parents(".select-page").height();
|
||||
$(elem).parents(".select-page").find(".layui-anim").css("top",_height+2+"px");
|
||||
|
||||
}
|
||||
|
||||
function searchSelect(_this){
|
||||
var cyProps = getProps($(_this));
|
||||
var _selectId = $(_this).parents(".select-page").attr("select-id");
|
||||
var data = searchData(_selectId, $(_this).val());
|
||||
|
||||
var pageId= $(_this).parents(".select-page").find(".lay-page").attr("id");
|
||||
$t.setSessionStorage("curr-"+_selectId, data);
|
||||
renderPage($(_this).parents(".select-page"),pageId,_selectId,data.length,cyProps.checkbox||"true");
|
||||
|
||||
if (data.length === 0) {
|
||||
$(_this).parents(".select-page").find(".dd-content").html('<dd style="text-align: center">暂无数据</dd>');
|
||||
}
|
||||
var selectData = dataPage(1, defaultParam.limit, data);
|
||||
|
||||
$(this).parents(".select-page").find(".select-item").remove();
|
||||
var _checkbox = cyProps.checkbox || "true";
|
||||
var _value = $(_this).parents(".select-page").find(".form-input").val() || "";
|
||||
|
||||
//数据渲染
|
||||
for (var i = 0; i < selectData.length; i++) {
|
||||
var _dd = _checkbox === "true"
|
||||
? '<dd class="select-item" lay-value="' + selectData[i].code + '" lay-title="' + selectData[i].value + '"><input type="checkbox" title="' + selectData[i].value + '" lay-filter="selectPageItem" lay-skin="primary"></dd>'
|
||||
: '<dd class="select-item" lay-value="' + selectData[i].code + '" lay-title="' + selectData[i].value + '">' + selectData[i].value + '</dd>';
|
||||
//默认值回选
|
||||
var _values = _value.split(",") || "";
|
||||
if (_values.indexOf(selectData[i].code) > -1) {
|
||||
if (_checkbox === "true") {
|
||||
_dd = _dd.replace('<input type="checkbox"', '<input type="checkbox" checked');
|
||||
}
|
||||
|
||||
if (_checkbox === "false") {
|
||||
_dd = _dd.replace('<dd class="select-item"', '<dd class="select-item layui-this"');
|
||||
}
|
||||
|
||||
}
|
||||
$(this).parents(".select-page").find(".dd-content").append(_dd);
|
||||
}
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form;
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
|
||||
/**搜索监听 **/
|
||||
$(document).on("keypress", ".search_condition", function (e) {
|
||||
e.stopPropagation();
|
||||
//是否为Enter键
|
||||
if (/^13$/.test(e.keyCode)) {
|
||||
searchSelect(this);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
/**监听值删除*/
|
||||
$(document).on("click", ".multi-select i", function (e) {
|
||||
var mutiElem=$(this).parents(".multi-select");
|
||||
var _value = $(this).prev().attr("lay-value");
|
||||
var cyProps = getProps(this);
|
||||
var _checkbox = cyProps.checkbox || "true";
|
||||
//如果是多选
|
||||
if (_checkbox === "true") {
|
||||
//隐藏域值修改
|
||||
var formValue = $(this).parents(".select-page").find(".form-input").val();
|
||||
var _values = formValue.split(",");
|
||||
var _index = _values.indexOf(_value);
|
||||
//从该数组中删除该元素
|
||||
_values.splice(_index, 1);
|
||||
$(this).parents(".select-page").find(".form-input").val(_values.join(","));
|
||||
$(".select-item[lay-value='" + _value + "']").find("input").attr("checked", false);
|
||||
}
|
||||
//如果是单选
|
||||
if (_checkbox === "false") {
|
||||
$(this).parents(".select-page").find(".form-input").val("");
|
||||
$(".select-item[lay-value='" + _value + "']").removeClass("layui-this");
|
||||
}
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form;
|
||||
form.render();
|
||||
});
|
||||
//是否显示提示语
|
||||
var selectId = $(this).parents(".select-page").attr("select-id");
|
||||
showTips(selectId);
|
||||
$(this).parents("a").remove();
|
||||
//重置面板
|
||||
resetPosition(mutiElem);
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
/**清空搜索条件**/
|
||||
$(document).on("click", ".select-page-search-clear", function (event) {
|
||||
$(this).prev().val("");
|
||||
searchSelect(this);
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
/**打开或隐藏面板**/
|
||||
$(document).on("click", "[cyType='selectPageTool'] .multi-select", function (e) {
|
||||
var _this = $(this).parent();
|
||||
_this.hasClass("layui-form-selected") === true ? _this.removeClass("layui-form-selected") : _this.addClass("layui-form-selected");
|
||||
var _height = _this.height();
|
||||
_this.find(".layui-anim").css("top", _height + 2 + "px");
|
||||
hideOtherSelect(this);
|
||||
e.stopPropagation();
|
||||
});
|
||||
$(document).on("click", "[cyType='selectPageTool'] .layui-anim", function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
$(document).on("click", "body:not('.select-page')", function () {
|
||||
$(".layui-form-selected").removeClass("layui-form-selected");
|
||||
});
|
||||
/**单选点击监听事件**/
|
||||
$(document).on("click", ".select-single .select-item", function () {
|
||||
var _value = $(this).attr("lay-value");
|
||||
var _title = $(this).attr("lay-title");
|
||||
var _selected = '<a href="javascript:;"><span class="selected-title" lay-value="' + _value+ '">' + 'id:' + _value + ';用户名:' +_title + '</span><i>×</i></a>';
|
||||
$(this).parents(".select-page").find(".multi-select a").remove();
|
||||
$(this).parents(".select-page").find(".multi-select ").append(_selected);
|
||||
$(this).parents(".select-page").find(".form-input").val(_value);
|
||||
$(this).parent().find(".layui-this").removeClass("layui-this");
|
||||
$(this).parent().find("[lay-value='" + _value + "']").addClass("layui-this");
|
||||
|
||||
//是否显示提示语
|
||||
var selectId = $(this).parents(".select-page").attr("select-id");
|
||||
showTips(selectId);
|
||||
|
||||
});
|
||||
|
||||
/**复选点击监听事件**/
|
||||
layui.use(['form'], function () {
|
||||
var form = layui.form;
|
||||
form.on('checkbox(selectPageItem)', function (data) {
|
||||
var formValue = $(data.elem).parents(".select-page").find(".form-input").val();
|
||||
var _value=$(data.elem).parents(".select-item").attr("lay-value");
|
||||
var _values = formValue.split(",");
|
||||
//如果是勾选
|
||||
if(data.elem.checked===true){
|
||||
|
||||
var _title = $(data.elem).parents(".select-item").attr("lay-title");
|
||||
// var _selected = '<a href="javascript:;"><span class="selected-title" lay-value="' + _value+ '">' + 'id:' + _value + ';用户名:' +_title +'</span><i>×</i></a>';
|
||||
var _selected = '<a href="javascript:;"><span class="selected-title" lay-value="' + _value+ '">' + _title +'</span><i>×</i></a>';
|
||||
$(data.elem).parents(".select-page").find(".multi-select").append(_selected);
|
||||
//修改隐藏域的值
|
||||
formValue+=","+_value;
|
||||
$(data.elem).parents(".select-page").find(".form-input").val(formValue);
|
||||
}
|
||||
else{
|
||||
var _index = _values.indexOf(_value);
|
||||
//从该数组中删除该元素
|
||||
_values.splice(_index, 1);
|
||||
//修改隐藏域的值
|
||||
$(data.elem).parents(".select-page").find(".form-input").val(_values.join(","));
|
||||
$(data.elem).parents(".select-page").find(".selected-title[lay-value='"+_value+"']").parents("a").remove();
|
||||
}
|
||||
//是否显示提示语
|
||||
var selectId =$(data.elem).parents(".select-page").attr("select-id");
|
||||
showTips(selectId);
|
||||
//重置面板位置
|
||||
resetPosition(data.elem);
|
||||
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function () {
|
||||
var selectPageTools = $("[cyType='selectPageTool']");
|
||||
for (var i = 0; i < selectPageTools.length; i++) {
|
||||
$(selectPageTools[i]).selectPage();
|
||||
}
|
||||
|
||||
});
|
||||
544
public/version/selectPage/js/utils.js
Normal file
544
public/version/selectPage/js/utils.js
Normal file
@@ -0,0 +1,544 @@
|
||||
/**
|
||||
* Created by Administrator on 2017/11/9.
|
||||
*/
|
||||
/**
|
||||
* 前台js常用函数工具类
|
||||
* @author:chenyi
|
||||
* @version 1.0
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
(function ($, window) {
|
||||
//前台工具类对象
|
||||
window.$t = window.$t || {};
|
||||
|
||||
|
||||
|
||||
/**通过枚举获取数据*/
|
||||
window.$t.getDataByEnum=function (enumName) {
|
||||
/**localStorage是否已存在该数据*/
|
||||
var data = $t.getStorageItem(enumName);
|
||||
if (!data) {
|
||||
$.ajax({
|
||||
url: $s.getDataByEnum,
|
||||
async: false,
|
||||
type: 'post',
|
||||
data: {enumName: enumName},
|
||||
dataType: "json",
|
||||
success: function (R) {
|
||||
if (R.code == 0) {
|
||||
data = R;
|
||||
/**设置localStorage缓存*/
|
||||
$t.setStorageItem(enumName, data);
|
||||
} else {
|
||||
data = {};
|
||||
alert(R.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return data;
|
||||
};
|
||||
|
||||
/**通过字典获取数据*/
|
||||
window.$t.getDataByCode=function (codeName) {
|
||||
/**localStorage是否已存在该数据*/
|
||||
var data = $t.getStorageItem(codeName);
|
||||
if (!data) {
|
||||
$.ajax({
|
||||
url: $s.getDataByCode,
|
||||
async: false,
|
||||
data: {codeName: codeName},
|
||||
type: 'post',
|
||||
dataType: "json",
|
||||
success: function (R) {
|
||||
if (R.code == 0) {
|
||||
data = R;
|
||||
/**设置localStorage缓存*/
|
||||
$t.setStorageItem(codeName, data);
|
||||
} else {
|
||||
data = {};
|
||||
alert(R.msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
return data;
|
||||
};
|
||||
|
||||
/**
|
||||
* 添加tabs页
|
||||
* @Date: 2018/04/16
|
||||
*/
|
||||
window.$t.addTab=function (url,name) {
|
||||
//判断该页面是否已存在
|
||||
if ( $(parent.document).find("#navTab").find("li[data-url='" + url + "']").length === 0) {
|
||||
var index = Loading.open(1,false);
|
||||
//如果不存在
|
||||
$(parent.document).find("#navTab").find("li").removeClass("selected");
|
||||
//新增tab页
|
||||
var _li = ['<li tabid="tools-utils" class="selected" data-url="' + url + '">',
|
||||
'<a href="javascript:" title="' + name + '" class="tools-utils">',
|
||||
'<span>' + name + '</span>',
|
||||
'</a>',
|
||||
'<a href="javascript:;" class="close">close</a>',
|
||||
'</li>'].join("");
|
||||
$(parent.document).find("#navTab").find("ul").append(_li);
|
||||
//新增右侧更多list
|
||||
$(parent.document).find(".tabsMoreList").find("li").removeClass("selected");
|
||||
var moreli = '<li class="selected" data-url="'+url+'"><a href="javascript:" title="' + name + '">' + name + '</a></li>';
|
||||
$(parent.document).find(".tabsMoreList").append(moreli);
|
||||
|
||||
$(parent.document).find(".content").find("iframe").removeClass("cy-show");
|
||||
//打开iframe
|
||||
var iframe = $('<iframe class="cy-show" scrolling="yes" frameborder="0" style="width: 100%; height: 100%; overflow: visible; "></iframe>');
|
||||
$(iframe).attr("src", url);
|
||||
$(parent.document).find(".content").append(iframe);
|
||||
$(iframe).load(function() {
|
||||
Loading.close(index);
|
||||
});
|
||||
|
||||
//tab过多时
|
||||
var _lis = $(parent.document).find(".tabsPageHeaderContent").find("li");
|
||||
var n = 0;
|
||||
for (var i = 0; i < _lis.length; i++) {
|
||||
n += $(_lis[i]).width();
|
||||
}
|
||||
|
||||
//获取右侧区域宽度
|
||||
var _width = $(parent.document).find("#navTab").width();
|
||||
if (n > parseInt(_width)-150 ) {
|
||||
$(parent.document).find(".tabsRight,.tabsLeft").show();
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
$(parent.document).find("#navTab").find("li").removeClass("selected");
|
||||
$(parent.document).find("#navTab").find("li[data-url='" + url + "']").addClass("selected");
|
||||
$(parent.document).find(".content").find("iframe").removeClass("cy-show");
|
||||
$(parent.document).find(".content").find("iframe[src='"+url+"']").addClass("cy-show");
|
||||
//更多列表
|
||||
$(parent.document).find(".tabsMoreList").find("li").removeClass("selected");
|
||||
$(parent.document).find(".tabsMoreList").find("li[data-url='"+url+"']").addClass("selected");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* 关闭窗口
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.closeWindow=function () {
|
||||
var frameindex= parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(frameindex);
|
||||
};
|
||||
/**
|
||||
* 关闭窗口并刷新
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.Refresh=function (PageId) {
|
||||
var frameindex= parent.layer.getFrameIndex(window.name);
|
||||
parent.layer.close(frameindex);
|
||||
if(PageId){
|
||||
var iframe=$(parent.document).find("#"+PageId).find("iframe")[0];
|
||||
$(iframe).contents().find(".search-btn").click();
|
||||
}else{
|
||||
var parent_iframe=$(parent.document).find(".layadmin-tabsbody-item.layui-show iframe")[0]||$(parent.document).find("iframe")[0];
|
||||
$(parent_iframe).contents().find(".search-btn").click();
|
||||
}
|
||||
|
||||
};
|
||||
/**
|
||||
* 获取前端缓存
|
||||
* @param key 字典或枚举 code|enum
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.getStorageItem = function (key) {
|
||||
return JSON.parse(localStorage.getItem(key));
|
||||
};
|
||||
|
||||
/**
|
||||
* 设置前端缓存
|
||||
* @param key 字典或枚举 code|enum
|
||||
* @param data 存储的值(数组)
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.setStorageItem = function (key, data) {
|
||||
localStorage.setItem(key, JSON.stringify(data));
|
||||
};
|
||||
/**
|
||||
* 获取前端缓存
|
||||
* @param key 字典或枚举 code|enum
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.getSessionStorage = function (key) {
|
||||
return JSON.parse(sessionStorage.getItem(key));
|
||||
};
|
||||
|
||||
/**
|
||||
* 设置前端缓存
|
||||
* @param key 字典或枚举 code|enum
|
||||
* @param data 存储的值(数组)
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.setSessionStorage = function (key, data) {
|
||||
sessionStorage.setItem(key, JSON.stringify(data));
|
||||
};
|
||||
/**
|
||||
* 日期格式化
|
||||
* @param fmt 转化格式
|
||||
* @param date 时间
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.dateFormat=function(dateStr,fmt) {
|
||||
|
||||
var date=new Date(dateStr);
|
||||
var o = {
|
||||
"M+" : date.getMonth()+1, //月份
|
||||
"d+" : date.getDate(), //日
|
||||
"h+" : date.getHours(), //小时
|
||||
"m+" : date.getMinutes(), //分
|
||||
"s+" : date.getSeconds(), //秒
|
||||
"q+" : Math.floor((date.getMonth()+3)/3), //季度
|
||||
"S" : date.getMilliseconds() //毫秒
|
||||
};
|
||||
if(/(y+)/.test(fmt)) {
|
||||
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
|
||||
}
|
||||
for(var k in o) {
|
||||
if(new RegExp("("+ k +")").test(fmt)){
|
||||
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
|
||||
}
|
||||
}
|
||||
return fmt;
|
||||
};
|
||||
|
||||
/**
|
||||
* 时间格式化
|
||||
* @param fmt 转化格式
|
||||
* @param timeStamp 时间戳
|
||||
* @Date: 2017/12/8
|
||||
*/
|
||||
window.$t.timeFormat=function (timeStamp,fmt) {
|
||||
var date = new Date();
|
||||
if(timeStamp.length===10){
|
||||
date.setTime(timeStamp * 1000);
|
||||
}
|
||||
var y = date.getFullYear();
|
||||
var m = date.getMonth() + 1;
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
var d = date.getDate();
|
||||
d = d < 10 ? ('0' + d) : d;
|
||||
var h = date.getHours();
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
var minute = date.getMinutes();
|
||||
var second = date.getSeconds();
|
||||
minute = minute < 10 ? ('0' + minute) : minute;
|
||||
second = second < 10 ? ('0' + second) : second;
|
||||
return $t.dateFormat(y + '-' + m + '-' + d+' '+h+':'+minute+':'+second,fmt);
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取oss临时账号,返回oss客户端
|
||||
*/
|
||||
window.$t.getOssClient = function () {
|
||||
var accessKeyId;
|
||||
var accessKeySecret;
|
||||
var securityToken;
|
||||
var bucket;
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: $s.getOssUrl,
|
||||
dataType: "json",
|
||||
async: false,
|
||||
cache: false,
|
||||
success: function (result) {
|
||||
if(result.code==0){
|
||||
accessKeyId = result.data.accessKeyId;
|
||||
accessKeySecret = result.data.accessKeySecret;
|
||||
securityToken = result.data.securityToken;
|
||||
bucket = result.data.bucket;
|
||||
}else{
|
||||
Msg.error("oss账号获取失败");
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
error: function (error) {
|
||||
Msg.error("oss账号获取失败");
|
||||
}
|
||||
});
|
||||
|
||||
var client = new OSS.Wrapper({
|
||||
region: 'img-cn-shanghai',
|
||||
accessKeyId: accessKeyId,
|
||||
accessKeySecret: accessKeySecret,
|
||||
stsToken: securityToken,
|
||||
bucket: bucket
|
||||
});
|
||||
|
||||
return client;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取文件名
|
||||
*/
|
||||
window.$t.getFileName = function (fileName) {
|
||||
var timestamp=new Date().getTime();
|
||||
|
||||
var suffix=fileName.substr(fileName.indexOf("."));
|
||||
var result = timestamp+$t.getUUID(6,8)+suffix;
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取oss图片访问路径
|
||||
*/
|
||||
window.$t.getImgBaseUrl = function () {
|
||||
var ossBaseUrl= localStorage.getItem("ossBaseUrl");
|
||||
if(ossBaseUrl!='undefined'&&ossBaseUrl!=''&&ossBaseUrl!=null){
|
||||
return ossBaseUrl;
|
||||
}
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: $s.getOssBaseUrl,
|
||||
dataType: "json",
|
||||
async: false,
|
||||
cache: false,
|
||||
success: function (result) {
|
||||
if(result.code==0){
|
||||
ossBaseUrl=result.ossBaseUrl;
|
||||
localStorage.setItem("ossBaseUrl",result.ossBaseUrl);
|
||||
}else{
|
||||
Msg.error("oss图片根路径获取失败");
|
||||
}
|
||||
|
||||
},
|
||||
error: function (error) {
|
||||
Msg.error("oss图片根路径获取失败");
|
||||
}
|
||||
});
|
||||
return ossBaseUrl;
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取oss图片访问路径
|
||||
*/
|
||||
window.$t.getOssFileUrl = function (fileName) {
|
||||
var ossBaseUrl= localStorage.getItem("ossBaseUrl");
|
||||
if(ossBaseUrl!='undefined'&&ossBaseUrl!=''&&ossBaseUrl!=null){
|
||||
return ossBaseUrl+fileName;
|
||||
}
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: $s.getOssBaseUrl,
|
||||
dataType: "json",
|
||||
async: false,
|
||||
cache: false,
|
||||
success: function (result) {
|
||||
if(result.code==0){
|
||||
fileName=result.ossBaseUrl+fileName;
|
||||
localStorage.setItem("ossBaseUrl",result.ossBaseUrl);
|
||||
}else{
|
||||
Msg.error("oss图片根路径获取失败");
|
||||
}
|
||||
|
||||
},
|
||||
error: function (error) {
|
||||
Msg.error("oss图片根路径获取失败");
|
||||
}
|
||||
});
|
||||
return fileName;
|
||||
};
|
||||
|
||||
/**
|
||||
* Ajax请求数据
|
||||
* @param url 请求地址
|
||||
* @param params 请求参数
|
||||
* @param success 成功回调函数
|
||||
* @param async 是否异步请求
|
||||
* @param type 请求类型("post"或"get")
|
||||
* @param dataType 数据类型,默认"json"
|
||||
*/
|
||||
window.$t.doAjax = function (url, params, success, async, type, dataType) {
|
||||
jQuery.support.cors = true;
|
||||
$.ajax({
|
||||
url: url,
|
||||
cache: false,
|
||||
dataType: dataType ? dataType : "json",
|
||||
type: type && type === 'get' ? 'get' : "post",
|
||||
data: params,
|
||||
async: async != undefined && async != null && async === false ? async : true,
|
||||
success: success,
|
||||
timeout: 10000, //超时时间设置
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
$.error("Ajax请求错误\n" + " textStatus=" + textStatus + "\n" + " errorThrown=" + errorThrown);
|
||||
$.error("\n url=" + url + "\n data=" + window.$t.jsonToStr(params));
|
||||
},
|
||||
beforeSend: function (XMLHttpRequest) {
|
||||
}
|
||||
});
|
||||
};
|
||||
/**
|
||||
** 加法函数,用来得到精确的加法结果
|
||||
** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
|
||||
** 调用:accAdd(arg1,arg2)
|
||||
** 返回值:arg1加上arg2的精确结果
|
||||
**/
|
||||
window.$t.accAdd = function (arg1, arg2) {
|
||||
var r1, r2, m, c;
|
||||
try {
|
||||
r1 = arg1.toString().split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
r1 = 0;
|
||||
}
|
||||
try {
|
||||
r2 = arg2.toString().split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
r2 = 0;
|
||||
}
|
||||
c = Math.abs(r1 - r2);
|
||||
m = Math.pow(10, Math.max(r1, r2));
|
||||
if (c > 0) {
|
||||
var cm = Math.pow(10, c);
|
||||
if (r1 > r2) {
|
||||
arg1 = Number(arg1.toString().replace(".", ""));
|
||||
arg2 = Number(arg2.toString().replace(".", "")) * cm;
|
||||
} else {
|
||||
arg1 = Number(arg1.toString().replace(".", "")) * cm;
|
||||
arg2 = Number(arg2.toString().replace(".", ""));
|
||||
}
|
||||
} else {
|
||||
arg1 = Number(arg1.toString().replace(".", ""));
|
||||
arg2 = Number(arg2.toString().replace(".", ""));
|
||||
}
|
||||
return (arg1 + arg2) / m;
|
||||
}
|
||||
|
||||
/**
|
||||
** 减法函数,用来得到精确的减法结果
|
||||
** 说明:javascript的减法结果会有误差,在两个浮点数相减的时候会比较明显。这个函数返回较为精确的减法结果。
|
||||
** 调用:accSub(arg1,arg2)
|
||||
** 返回值:arg1减去arg2的精确结果
|
||||
**/
|
||||
window.$t.accSub = function (arg1, arg2) {
|
||||
var r1, r2, m, n;
|
||||
try {
|
||||
r1 = arg1.toString().split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
r1 = 0;
|
||||
}
|
||||
try {
|
||||
r2 = arg2.toString().split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
r2 = 0;
|
||||
}
|
||||
m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
|
||||
n = (r1 >= r2) ? r1 : r2;
|
||||
return ((arg1 * m - arg2 * m) / m).toFixed(n);
|
||||
},
|
||||
|
||||
/**
|
||||
** 乘法函数,用来得到精确的乘法结果
|
||||
** 说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
|
||||
** 调用:accMul(arg1,arg2)
|
||||
** 返回值:arg1乘以 arg2的精确结果
|
||||
**/
|
||||
window.$t.accMul = function (arg1, arg2) {
|
||||
var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
|
||||
try {
|
||||
m += s1.split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
try {
|
||||
m += s2.split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
|
||||
},
|
||||
|
||||
/**
|
||||
** 除法函数,用来得到精确的除法结果
|
||||
** 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
|
||||
** 调用:accDiv(arg1,arg2)
|
||||
** 返回值:arg1除以arg2的精确结果
|
||||
**/
|
||||
window.$t.accDiv = function (arg1, arg2) {
|
||||
var t1 = 0, t2 = 0, r1, r2;
|
||||
try {
|
||||
t1 = arg1.toString().split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
try {
|
||||
t2 = arg2.toString().split(".")[1].length;
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
with (Math) {
|
||||
r1 = Number(arg1.toString().replace(".", ""));
|
||||
r2 = Number(arg2.toString().replace(".", ""));
|
||||
return (r1 / r2) * pow(10, t2 - t1);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取项目根目录
|
||||
*/
|
||||
window.$t.getContextPath = function () {
|
||||
// 获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
|
||||
var curWwwPath = window.document.location.href;
|
||||
// 获取主机地址之后的目录,如: uimcardprj/share/meun.jsp
|
||||
var pathName = window.document.location.pathname;
|
||||
var pos = curWwwPath.indexOf(pathName);
|
||||
// 获取主机地址,如: http://localhost:8083
|
||||
var localhostPaht = curWwwPath.substring(0, pos);
|
||||
// 获取带"/"的项目名,如:/uimcardprj
|
||||
var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
|
||||
return (localhostPaht + projectName) + "/";
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 产生一个唯一的uuid
|
||||
* @param len 产生的字符串长度
|
||||
* @param radix 进制数
|
||||
*/
|
||||
window.$t.getUUID = function (len, radix) {
|
||||
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
|
||||
var uuid = [], i;
|
||||
radix = radix || chars.length;
|
||||
if (len) {
|
||||
for (i = 0; i < len; i++) {
|
||||
uuid[i] = chars[0 | Math.random() * radix];
|
||||
}
|
||||
} else {
|
||||
var r;
|
||||
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
|
||||
uuid[14] = '4';
|
||||
for (i = 0; i < 36; i++) {
|
||||
if (!uuid[i]) {
|
||||
r = 0 | Math.random() * 16;
|
||||
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
|
||||
}
|
||||
}
|
||||
}
|
||||
return uuid.join('');
|
||||
};
|
||||
|
||||
/**时候是手机端*/
|
||||
window.$t.isMobile=function () {
|
||||
return /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent);
|
||||
};
|
||||
|
||||
|
||||
})(jQuery, window);
|
||||
Reference in New Issue
Block a user