282 lines
9.3 KiB
JavaScript
282 lines
9.3 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)
|