282 lines
9.4 KiB
JavaScript
282 lines
9.4 KiB
JavaScript
$(function () {
|
|
$(window).resize(refHeight);
|
|
refHeight();
|
|
|
|
//关闭标绘
|
|
//$('.mp_icon_close').click(function () {
|
|
// $(this).parent().parent('.mp_box').hide();
|
|
//});
|
|
|
|
// 切换选项卡
|
|
$(".mp_tab_tit li").click(function () {
|
|
if ($(this).hasClass("cur") || $(this).hasClass("disabled")) {
|
|
return false;
|
|
} else {
|
|
var that = $(this),
|
|
index = that.index();
|
|
that.addClass("cur").siblings("li").removeClass("cur");
|
|
that.parent().siblings(".mp_tab_con").children().eq(index).addClass("cur").siblings().removeClass("cur");
|
|
|
|
//记录历史值
|
|
var _id = $(this).attr("id");
|
|
haoutil.storage.add(storageName, _id);
|
|
}
|
|
});
|
|
// mp_tree
|
|
$(".open").click(changeOpenShowHide);
|
|
|
|
//切换到上次最后一次面板
|
|
var last_attr_tab = haoutil.storage.get(storageName); //读取localStorage值
|
|
if (last_attr_tab != null) {
|
|
$("#" + last_attr_tab).click();
|
|
}
|
|
});
|
|
|
|
function tab2plot() {
|
|
$("#tab_plot").click();
|
|
}
|
|
|
|
var storageName = "mars3d_plotTab";
|
|
|
|
function changeOpenShowHide() {
|
|
var openlis = $(this).siblings();
|
|
var opent = $(this).children(".tree_icon");
|
|
openlis.toggle();
|
|
if (openlis.is(":hidden")) {
|
|
opent.html("+");
|
|
} else {
|
|
opent.html("-");
|
|
}
|
|
}
|
|
|
|
function refHeight() {
|
|
$(".mp_tab_card").height($(".mp_box").height() - $(".mp_head").height() - 1);
|
|
$(".mp_tree").height($(".mp_tab_card").height() - 35);
|
|
$(".mp_mark").height($(".mp_tab_card").height() - 80);
|
|
}
|
|
|
|
(function ($) {
|
|
//下拉菜单默认参数
|
|
var defaluts = {
|
|
select: "mp_select",
|
|
select_text: "mp_select_text",
|
|
select_ul: "mp_select_ul",
|
|
};
|
|
|
|
$.fn.extend({
|
|
// 下拉菜单
|
|
select: function (options) {
|
|
var opts = $.extend({}, defaluts, options);
|
|
return this.each(function () {
|
|
var that = $(this);
|
|
//模拟下拉列表
|
|
if (that.data("value") !== undefined && that.data("value") !== "") {
|
|
that.val(that.data("value"));
|
|
}
|
|
var _html = [];
|
|
_html.push('<div class="' + that.attr("class") + '">');
|
|
_html.push('<div class="' + opts.select_text + '">' + that.find(":selected").text() + "</div>");
|
|
_html.push('<ul class="' + opts.select_ul + '">');
|
|
that.children("option").each(function () {
|
|
var option = $(this);
|
|
if (that.data("value") == option.val()) {
|
|
_html.push('<li data-value="' + option.val() + '">' + option.text() + "</li>");
|
|
} else {
|
|
_html.push('<li data-value="' + option.val() + '">' + option.text() + "</li>");
|
|
}
|
|
});
|
|
_html.push("</ul>");
|
|
_html.push("</div>");
|
|
var select = $(_html.join(""));
|
|
var select_text = select.find("." + opts.select_text);
|
|
var select_ul = select.find("." + opts.select_ul);
|
|
that.after(select);
|
|
that.hide();
|
|
//下拉列表操作
|
|
select.click(function (event) {
|
|
$(this).toggleClass("mp_selected");
|
|
$(this)
|
|
.find("." + opts.select_ul)
|
|
.slideToggle()
|
|
.end()
|
|
.siblings("div." + opts.select)
|
|
.find("." + opts.select_ul)
|
|
.slideUp();
|
|
event.stopPropagation();
|
|
});
|
|
$("body").click(function () {
|
|
select_ul.slideUp();
|
|
});
|
|
select_ul.on("click", "li", function () {
|
|
var li = $(this);
|
|
var val = li.addClass("selecton").siblings("li").removeClass("selecton").end().data("value").toString();
|
|
if (val !== that.attr("data-value")) {
|
|
select_text.text(li.text());
|
|
that.attr("data-value", val);
|
|
that.change();
|
|
}
|
|
});
|
|
});
|
|
},
|
|
// 复选框
|
|
checkbox: function () {
|
|
return this.each(function () {
|
|
var that = $(this);
|
|
var $input = that.siblings("input");
|
|
if ($input.prop("disabled") == true) {
|
|
that.addClass("pnui-check-disbaled");
|
|
} else if ($input.prop("checked") == true) {
|
|
that.addClass("pnui-checked");
|
|
} else {
|
|
that.removeClass("pnui-checked");
|
|
}
|
|
that.on("click", function () {
|
|
if ($input.prop("disabled") == true) {
|
|
return false;
|
|
} else if (that.hasClass("pnui-checked")) {
|
|
$input.removeAttr("checked");
|
|
that.removeClass("pnui-checked");
|
|
} else {
|
|
$input.attr("checked", "checked");
|
|
that.addClass("pnui-checked");
|
|
}
|
|
});
|
|
$(".checkall").click(function () {
|
|
var that = $(this);
|
|
var $checkallbox = that.parents(".checkallbox");
|
|
var $checkchild = $checkallbox.find(".pnui-chkbox");
|
|
that.toggleClass("pnui-checked");
|
|
$checkchild.each(function () {
|
|
$(this).toggleClass("pnui-checked");
|
|
});
|
|
if (that.hasClass("pnui-checked")) {
|
|
$checkchild.siblings("input").attr("checked", "checked");
|
|
$checkchild.addClass("pnui-checked");
|
|
} else {
|
|
$checkchild.siblings("input").removeAttr("checked");
|
|
$checkchild.removeClass("pnui-checked");
|
|
}
|
|
});
|
|
});
|
|
},
|
|
// 单选框
|
|
radio: function () {
|
|
return this.each(function () {
|
|
var that = $(this);
|
|
if (that.children("input").prop("disabled") == true) {
|
|
that.children(".pnui-rdobox").removeClass().addClass("pnui-rdobox pnui-radio-disbaled");
|
|
} else if (that.children("input").prop("checked") == true) {
|
|
that.siblings().children("input").removeAttr("checked");
|
|
that.siblings().children(".pnui-rdobox").removeClass("pnui-checked");
|
|
that.children(".pnui-rdobox").addClass("pnui-checked");
|
|
} else {
|
|
that.siblings().children("input").prop("checked", "checked");
|
|
that.siblings().children(".pnui-rdobox").addClass("pnui-checked");
|
|
that.children(".pnui-rdobox").removeClass("pnui-checked");
|
|
}
|
|
that.on("click", function () {
|
|
var that = $(this);
|
|
if (that.children("input").prop("disabled") == true) {
|
|
return false;
|
|
} else if (that.children("input").prop("checked") == true) {
|
|
that.siblings().children("input").prop("checked", "checked");
|
|
that.siblings().children(".pnui-rdobox").addClass("pnui-checked");
|
|
that.children("input").removeAttr("checked");
|
|
that.children(".pnui-rdobox").removeClass("pnui-checked");
|
|
} else {
|
|
that.siblings().children("input").removeAttr("checked");
|
|
that.siblings().children(".pnui-rdobox").removeClass("pnui-checked");
|
|
that.children("input").prop("checked", "checked");
|
|
that.children(".pnui-rdobox").addClass("pnui-checked");
|
|
}
|
|
});
|
|
});
|
|
},
|
|
//滑动条
|
|
progress: function (max) {
|
|
var opts = {
|
|
progress: "puiprogress",
|
|
progress_bg: "puiprogress_bg",
|
|
progress_btn: "puiprogress_btn",
|
|
progress_bar: "puiprogress_bar",
|
|
progress_text: "puiprogress_text",
|
|
};
|
|
return this.each(function () {
|
|
var that = $(this);
|
|
//模拟进度条
|
|
var _html = [];
|
|
_html.push('<div class="' + opts.progress + '">');
|
|
_html.push('<div class="' + opts.progress_bg + '">');
|
|
_html.push('<div class="' + opts.progress_bar + '">' + "</div>");
|
|
_html.push("</div>");
|
|
_html.push('<div class="' + opts.progress_btn + '">' + "</div>");
|
|
_html.push('<div class="' + opts.progress_text + '">' + that.val() + "%</div>");
|
|
_html.push("</div>");
|
|
var pro = $(_html.join(""));
|
|
var progress_bg = pro.find("." + opts.progress_bg);
|
|
var progress_btn = pro.find("." + opts.progress_btn);
|
|
var progress_bar = pro.find("." + opts.progress_bar);
|
|
var progress_text = pro.find("." + opts.progress_text);
|
|
that.after(pro);
|
|
that.hide();
|
|
//进度条操作
|
|
var tag = false,
|
|
ox = 0,
|
|
left = 0,
|
|
bgleft = 0;
|
|
pro.css("width", max);
|
|
|
|
var _val = Number(that.val());
|
|
left = (max * _val) / 100;
|
|
progress_btn.css("left", left);
|
|
progress_bar.width(left);
|
|
progress_text.html(parseInt(_val) + "%");
|
|
|
|
progress_btn.mousedown(function (e) {
|
|
ox = e.pageX - left;
|
|
tag = true;
|
|
});
|
|
$(document).mouseup(function () {
|
|
tag = false;
|
|
});
|
|
pro.mousemove(function (e) {
|
|
//鼠标移动
|
|
if (tag) {
|
|
left = e.pageX - ox;
|
|
if (left <= 0) {
|
|
left = 0;
|
|
} else if (left > max) {
|
|
left = max;
|
|
}
|
|
progress_btn.css("left", left);
|
|
progress_bar.width(left);
|
|
var _val = parseInt((left / max) * 100);
|
|
progress_text.html(_val + "%");
|
|
|
|
that.val(_val);
|
|
that.change();
|
|
}
|
|
});
|
|
progress_bg.click(function (e) {
|
|
//鼠标点击
|
|
if (!tag) {
|
|
bgleft = progress_bg.offset().left;
|
|
left = e.pageX - bgleft;
|
|
if (left <= 0) {
|
|
left = 0;
|
|
} else if (left > max) {
|
|
left = max;
|
|
}
|
|
progress_btn.css("left", left);
|
|
progress_bar.animate({ width: left }, max);
|
|
var _val = parseInt((left / max) * 100);
|
|
progress_text.html(_val + "%");
|
|
that.val(_val);
|
|
that.change();
|
|
}
|
|
});
|
|
});
|
|
},
|
|
});
|
|
})(window.jQuery);
|