| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197 |
- /**
- * 通用easyui类库 v2.22
- * xuwei 2021-08-14
- */
- //获取参数
- function request(paras) {
- var url = location.href;
- var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
- var paraObj = {};
- for (i = 0; i < paraString.length; i++) {
- paraObj[decodeURI(paraString[i].substring(0, paraString[i].indexOf("=")).toLowerCase())] = paraString[i].substring(paraString[i].indexOf("=") + 1, paraString[i].length);
- }
- var returnValue = paraObj[decodeURI(paras.toLowerCase())];
- if (typeof returnValue == "undefined") {
- return "";
- }
- else {
- return decodeURI(returnValue);
- }
- }
- //格式化日期
- Date.prototype.format = function (fmt) {
- var o = {
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "h+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.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;
- }
- //替换全部
- String.prototype.replaceAll = function (s1, s2) {
- if (s1 != null && s2 != null)
- return this.replace(new RegExp(s1, "gm"), s2);
- };
- //序列化表单为Json
- $.fn.serializeJson = function () {
- var o = {};
- var a = this.serializeArray();
- $.each(a, function () {
- if (o[this.name] !== undefined) {
- if (!o[this.name].push) {
- o[this.name] = [o[this.name]];
- }
- o[this.name].push(this.value || '');
- } else {
- o[this.name] = this.value || '';
- }
- });
- return o;
- };
- //加载tree
- $.fn.treeLoad = function (ops) {
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- if (url != '') {
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- $(this).tree({
- url: url,
- method: typeof ops.method == 'undefined' ? 'post' : ops.method,
- tabs: typeof ops.tabs == 'undefined' ? 'tabs' : ops.tabs,
- animate: typeof ops.animate == 'undefined' ? true : ops.animate,
- lines: typeof ops.lines == 'undefined' ? false : ops.lines,
- onClick: function (node) {
- if ($(this).tree('isLeaf', node.target)) {
- var trueUrl = node.attributes['url'];
- //===============================
- switch (node.attributes.target) {
- case '_blank': {
- window.open(trueUrl);
- break;
- }
- case '_self': {
- window.location = trueUrl;
- break;
- }
- case '_tabs': {
- $('#tabs').tabsOpen({ id: node.text, title: node.text, url: trueUrl, closable: true });
- break;
- }
- default: {
- $('#tabs').tabsOpen({ id: node.text, title: node.text, url: trueUrl, closable: true });
- }
- }
- //===============================
- }
- },
- onBeforeLoad: function (node, param) {
- $.messager.progress();
- },
- onLoadSuccess: function (node, data) {
- $.messager.progress('close');
- }
- });
- }
- };
- //加载tab框架
- $.fn.tabsOpen = function (ops) {
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- if (url != '') {
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- var id = typeof ops.id == 'undefined' ? '' : ops.id;
- var title = typeof ops.title == 'undefined' ? '' : ops.title;
- var closable = typeof ops.closable == 'undefined' ? true : ops.closable;
- if ($(this).tabs('exists', title)) {
- $(this).tabs('select', title);
- }
- else {
- $(this).tabs('add', {
- id: id,
- title: title,
- closable: closable,
- content: '<div style="overflow:hidden;width:100%;height:100%;-webkit-overflow-scrolling: touch;"><iframe id="Frame' + title + '" scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe></div>'
- });
- }
- }
- };
- //加载数据
- $.fn.datagridLoad = function (ops) {
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- var iconCls = typeof ops.iconCls == 'undefined' ? '' : ops.iconCls;
- var title = typeof ops.title == 'undefined' ? '' : ops.title;
- var idField = typeof ops.idField == 'undefined' ? '标识' : ops.idField;
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- var fixWidth = typeof ops.fixWidth == 'undefined' ? 100 : ops.fixWidth;
- var mergeWidth = typeof ops.mergeWidth == 'undefined' ? 80 : ops.mergeWidth;
- var splitChar = typeof ops.splitChar == 'undefined' ? '_' : ops.splitChar;
- var onBeforeLoad = typeof ops.onBeforeLoad == 'undefined' ? function (para) { } : ops.onBeforeLoad;
- var onLoadSuccess = typeof ops.onLoadSuccess == 'undefined' ? function (para) { } : ops.onLoadSuccess;
- var onSelect = typeof ops.onSelect == 'undefined' ? function (index, row) { } : ops.onSelect;
- if (url != '') {
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- var ssParams = typeof ops.queryParams == 'undefined' ? "" : ops.queryParams;
- if (request('ss') != "") ssParams = eval('(' + request('ss') + ')');
- var queryParams = ssParams == "" ? "" : ssParams;
- //数据表格
- $(this).datagrid({
- iconCls: iconCls,
- title: title,
- idField: idField,
- fit: true,
- columns: ops.columns == 'undefined' ? '' : ops.columns,
- onHeaderContextMenu: function (e, field) {
- e.preventDefault();
- $(this).datagrid('columnMenu').menu('show', {
- left: e.pageX,
- top: e.pageY
- });
- },
- onRowContextMenu: function (e, index, row) {
- e.preventDefault();
- var field = $(e.target).closest('td').attr('field');
- //保存过滤字段和值
- $(this).filter.field = field;
- $(this).filter.value = row[field];
- $(this).datagrid('rowMenu').menu('show', {
- left: e.pageX,
- top: e.pageY
- });
- },
- fitColumns: false,
- rownumbers: true,
- pagination: typeof ops.pagination == 'undefined' ? true : ops.pagination,
- remoteSort: true,
- multiSort: false,
- singleSelect: false,
- checkOnSelect: true,
- selectOnCheck: true,
- ctrlSelect: true,
- url: url,
- queryParams: queryParams,
- method: 'post',
- border: false,
- collapsible: true,
- pageNumber: typeof ops.pageNumber == 'undefined' ? 1 : ops.pageNumber,
- pageSize: typeof ops.pageSize == 'undefined' ? 10 : ops.pageSize,
- pageList: typeof ops.pageList == 'undefined' ? [10, 15, 20, 30, 40, 50, 100, 500,1000,5000,10000] : ops.pageList,
- onBeforeLoad: onBeforeLoad,
- onLoadSuccess: function (json) {
- if (json['success'] == true) {
- if (json['rows'].length > 0) {
- //如果未定义列动态加载列=================================
- if ($(this).datagrid('getColumnFields') == '') {
- //获取自动列
- var jsonColumns = $.getMergeColumns($(this), json["rows"], fixWidth, mergeWidth, splitChar);
- //绑定列名 此处可能多加载了一次api需要想办法处理
- $(this).datagrid({
- fitColumns: false,
- columns: jsonColumns
- });
- }
- //如果定义了列拖动加载列拖动事件=============================
- //var columnMoving = typeof ops.columnMoving == 'undefined' ? false : ops.columnMoving;
- //if (columnMoving) $(this).datagrid("columnMoving");
- }
- } else {
- //$.messager.alert(title, json['message'], 'error');
- $.messager.confirm(title, json['message'] + '\n 点击确定,查看错误日志!', function (r) {
- if (r) {
- //window.parent.location.href = "/mes";
- $.loaded();
- window.parent.open("/Logs/_error_" + (new Date()).format("yyyyMMdd") + "_.log");
- }
- });
- }
- //修正行号
- $(this).datagrid("fixRownumber");
- //加载自定义方法
- onLoadSuccess(json);
- },
- onLoadError: function () {
- $.messager.alert(title, '数据加载失败!', 'error');
- },
- onSelect: onSelect
- //autoRowHeight: false,
- //rowStyler: function (index, row) {
- // return 'height:32px'
- //},
- //treeField: '名称',
- //onLoadSuccess: function (row) {
- // $('#' + datagridTag).treegrid('enableDnd', row ? row.id : null);
- //}
- });
- }
- };
- //手动加载报表数据支持表头合并,不支持分页,应用于统计报表
- $.fn.datagridLoadRpt = function (ops) {
- var dg = $(this);
- var title = typeof ops.title == 'undefined' ? '' : ops.title;
- var onLoadSuccess = typeof ops.onLoadSuccess == 'undefined' ? function (para) { } : ops.onLoadSuccess;
- var onSelect = typeof ops.onSelect == 'undefined' ? function (index, row) { } : ops.onSelect;
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- if (url != '') url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- var ssParams = typeof ops.queryParams == 'undefined' ? "" : ops.queryParams;
- if (request('ss') != "") ssParams = eval('(' + request('ss') + ')');
- var queryParams = ssParams == "" ? "" : ssParams;
- var fixWidth = typeof ops.fixWidth == 'undefined' ? 100 : ops.fixWidth;
- var mergeWidth = typeof ops.mergeWidth == 'undefined' ? 80 : ops.mergeWidth;
- var splitChar = typeof ops.splitChar == 'undefined' ? '_' : ops.splitChar;
- $.loading();
- $.post(url, queryParams, function (data) {
- var json = JSON.parse(data);
- if (json['success'] == true) {
- var jsonColumns = $.getMergeColumns(dg, json["rows"], fixWidth, mergeWidth, splitChar);
- dg.datagrid({
- title: title,
- rownumbers: true,
- fitColumns: false,
- columns: jsonColumns,
- onHeaderContextMenu: function (e, field) {
- e.preventDefault();
- $(this).datagrid('columnMenu').menu('show', {
- left: e.pageX,
- top: e.pageY
- });
- },
- onRowContextMenu: function (e, index, row) {
- e.preventDefault();
- var field = $(e.target).closest('td').attr('field');
- //保存过滤字段和值
- $(this).filter.field = field;
- $(this).filter.value = row[field];
- $(this).datagrid('rowMenu').menu('show', {
- left: e.pageX,
- top: e.pageY
- });
- },
- data: json,
- onLoadSuccess: function (data) {
- //如果定义了列拖动加载列拖动事件=============================
- //var columnMoving = typeof ops.columnMoving == 'undefined' ? false : ops.columnMoving;
- //if (columnMoving) $(dg).datagrid("columnMoving");
- //xuwei add 2020-11-09 end ===============================
- $.loaded();
- onLoadSuccess(data);
- $(this).datagrid("fixRownumber");
- },
- onSelect: function (index, row) {
- onSelect(index, row);
- }
- });
- }
- else {
- $.messager.confirm(title, json['message'] + '\n 点击确定查看错误日志!', function (r) {
- if (r) {
- //window.parent.location.href = "/mes";
- window.parent.open("/Logs/_error_" + (new Date()).format("yyyyMMdd") + "_.log");
- }
- $.loaded();
- });
- }
- });
- }
- //显示checkbox
- $.fn.datagridCheckbox = function (ops) {
- var valuefield = typeof ops.valuefield == 'undefined' ? 'SID' : ops.valuefield;
- var buttonid = typeof ops.buttonid == 'undefined' ? 'btnCheckbox' : ops.buttonid;
- var showhide = $('#' + buttonid).linkbutton('options').selected ? 'hideColumn' : 'showColumn';
- $(this).datagrid(showhide, valuefield);
- };
- //处理方法
- $.fn.datagridPost = function (ops) {
- var dg = $(this);
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- var title = typeof ops.title == 'undefined' ? '数据操作' : ops.title;
- var onValidate = typeof ops.onValidate == 'undefined' ? function (s) { return true; } : ops.onValidate;
- if (url != '') {
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- var rowCount = dg.datagrid('getSelections').length;
- if (rowCount > 0) {
- if (onValidate($(this).datagrid('getSelections')) == true) {
- $.messager.confirm(title, '您选定了 ' + rowCount + ' 条记录!', function (r) {
- if (r) {
- var idstr = '';
- var idname = dg.datagrid('options')['idField'];
- for (i = 0; i < dg.datagrid('getSelections').length; i++) {
- if (i > 0) idstr += ",";
- idstr += dg.datagrid('getSelections')[i][idname];
- }
- var jsonstr = '{id:"' + idstr + '"}';
- $.post(url, eval('(' + jsonstr + ')'), function (data) {
- var json = eval("(" + data + ")");
- if (json['success'] == true) {
- dg.datagrid('reload');
- }
- else {
- $.messager.alert(title, json['message'], 'error');
- }
- });
- }
- });
- }
- else {
- $.messager.alert(title, '您选择的数据不允许操作!', 'warning');
- }
- }
- else {
- $.messager.alert(title, '您还没有选择任何记录!', 'warning');
- }
- }
- };
- //窗体方法
- $.fn.datagridDialog = function (ops) {
- var title = typeof ops.title == 'undefined' ? '数据操作' : ops.title;
- var width = typeof ops.width == 'undefined' ? 800 : ops.width;
- var height = typeof ops.height == 'undefined' ? 600 : ops.height;
- var requireSelect = typeof ops.requireSelect == 'undefined' ? false : ops.requireSelect;
- var onValidate = typeof ops.onValidate == 'undefined' ? function (s) { return true; } : ops.onValidate;
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- if (url != '') {
- if ($(this).datagrid('getSelected') != null || requireSelect == false) {
- if (onValidate($(this).datagrid('getSelected')) == true) {
- if (requireSelect == true) {
- url = url.indexOf('?') > -1 ?
- url + '&id=' + $(this).datagrid('getSelected')[$(this).datagrid('options')['idField']] :
- url + '?id=' + $(this).datagrid('getSelected')[$(this).datagrid('options')['idField']];
- }
- $.dialog.show({
- title: title,
- width: width,
- height: height,
- url: url
- });
- }
- else {
- $.messager.alert(title, '您选择的数据不允许操作!', 'warning');
- }
- }
- else {
- if (requireSelect) $.messager.alert(title, '您还没有选择任何记录!', 'warning');
- }
- }
- };
- //导出方法
- $.fn.datagridExport = function (ops) {
- var fileName = typeof ops.fileName == 'undefined' ? '数据导出.xls' : ops.fileName;
- var workSheet = typeof ops.workSheet == 'undefined' ? '数据导出' : ops.workSheet;
- var jsonData = $(this).datagrid('getData')['rows'];
- var fields1 = $(this).datagrid('getColumnFields');
- var fields2 = $(this).datagrid('getColumnFields', true);
- var fields = fields2.concat(fields1);
- var headers = typeof ops.headers == 'undefined' ? [] : ops.headers;
- var dataType = typeof ops.dataType == 'undefined' ? '' : ops.dataType;//为text时按文本导出
- //没定义表头从datagrid读取
- if (headers.length == 0) {
- for (var i = 0; i < fields.length; i++) {
- if (!$(this).datagrid('getColumnOption', fields[i]).hidden)
- headers.push($(this).datagrid('getColumnOption', fields[i])['title']);
- }
- }
- //转化json为object
- var excel = "<table>";
- //设置表头
- var row = "<tr>";
- if (headers) { //使用标题项
- for (var i in headers) {
- if (!$(this).datagrid('getColumnOption', fields[i]).hidden)
- row += "<th align='center'>" + headers[i] + "</th>";
- }
- } else {//不使用标题项
- for (var i in jsonData[0]) {
- if (!$(this).datagrid('getColumnOption', fields[i]).hidden)
- row += "<th align='center'>" + i + "</th>";
- }
- }
- excel += row + "</tr>";
- //设置数据
- for (var i = 0; i < jsonData.length; i++) {
- var row = "<tr>";
- for (var j = 0; j < fields.length; j++) {
- var value = jsonData[i][fields[j]] == null ? "" : jsonData[i][fields[j]];
- if (!$(this).datagrid('getColumnOption', fields[j]).hidden) {
- if (dataType == '') row += "<td align='center'>" + value + "</td>";
- //if (dataType == 'text')row += "<td align='center'>" + value + "</td>";
- if (dataType == 'text')row += "<td align='center'>" + value + " </td>";
- }
- }
- excel += row + "</tr>";
- }
- excel += "</table>";
- var excelFile =
- "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
- excelFile +=
- '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
- excelFile +=
- '<meta http-equiv="content-type" content="application/vnd.ms-excel';
- excelFile += '; charset=UTF-8">';
- excelFile += "<head>";
- excelFile += "<!--[if gte mso 9]>";
- excelFile += "<xml>";
- excelFile += "<x:ExcelWorkbook>";
- excelFile += "<x:ExcelWorksheets>";
- excelFile += "<x:ExcelWorksheet>";
- excelFile += "<x:Name>";
- excelFile += workSheet;
- excelFile += "</x:Name>";
- excelFile += "<x:WorksheetOptions>";
- excelFile += "<x:DisplayGridlines/>";
- excelFile += "</x:WorksheetOptions>";
- excelFile += "</x:ExcelWorksheet>";
- excelFile += "</x:ExcelWorksheets>";
- excelFile += "</x:ExcelWorkbook>";
- excelFile += "</xml>";
- excelFile += "<![endif]-->";
- excelFile += "</head>";
- excelFile += "<body>";
- excelFile += excel;
- excelFile += "</body>";
- excelFile += "</html>";
- var uri = "data:application/vnd.ms-excel;charset=utf-8," + encodeURIComponent(excelFile);
- var link = document.createElement("a");
- link.href = uri;
- link.style = "visibility:hidden";
- link.download = fileName;
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- };
- //支持列拖动
- $.extend($.fn.datagrid.methods, {
- columnMoving: function (jq) {
- return jq.each(function () {
- var target = this;
- var cells = $(this).datagrid('getPanel').find('div.datagrid-header td[field]');
- cells.draggable({
- revert: true,
- cursor: 'pointer',
- edge: 5,
- proxy: function (source) {
- var p = $('<div class="tree-node-proxy tree-dnd-no" style="position:absolute;border:1px solid #ff0000"/>').appendTo('body');
- p.html($(source).text());
- p.hide();
- return p;
- },
- onBeforeDrag: function (e) {
- e.data.startLeft = $(this).offset().left;
- e.data.startTop = $(this).offset().top;
- },
- onStartDrag: function () {
- $(this).draggable('proxy').css({
- left: -10000,
- top: -10000
- });
- },
- onDrag: function (e) {
- $(this).draggable('proxy').show().css({
- left: e.pageX + 15,
- top: e.pageY + 15
- });
- return false;
- }
- }).droppable({
- accept: 'td[field]',
- onDragOver: function (e, source) {
- $(source).draggable('proxy').removeClass('tree-dnd-no').addClass('tree-dnd-yes');
- $(this).css('border-left', '1px solid #ff0000');
- },
- onDragLeave: function (e, source) {
- $(source).draggable('proxy').removeClass('tree-dnd-yes').addClass('tree-dnd-no');
- $(this).css('border-left', 0);
- },
- onDrop: function (e, source) {
- $(this).css('border-left', 0);
- var fromField = $(source).attr('field');
- var toField = $(this).attr('field');
- setTimeout(function () {
- swapField(fromField, toField);
- $(target).datagrid();
- $(target).datagrid('columnMoving');
- }, 0);
- }
- });
- // swap Field to another location
- function swapField(from, to) {
- var columns = $(target).datagrid('options').columns;
- var cc = columns[0];
- _swap(from, to);
- function _swap(fromfiled, tofiled) {
- var fromtemp;
- var totemp;
- var fromindex = 0;
- var toindex = 0;
- for (var i = 0; i < cc.length; i++) {
- if (cc[i].field == fromfiled) {
- fromindex = i;
- fromtemp = cc[i];
- }
- if (cc[i].field == tofiled) {
- toindex = i;
- totemp = cc[i];
- }
- }
- cc.splice(fromindex, 1, totemp);
- cc.splice(toindex, 1, fromtemp);
- }
- }
- });
- }
- });
- //datagrid标题菜单选择列显示功能
- $.buildMenuColumn = function (target) {
- var state = $(target).data('datagrid');
- if (!state.columnMenu) {
- state.columnMenu = $('<div></div>').appendTo('body');
- state.columnMenu.menu({
- onClick: function (item) {
- if (item.iconCls == 'tree-checkbox1') {
- $(target).datagrid('hideColumn', item.name);
- $(this).menu('setIcon', {
- target: item.target,
- iconCls: 'tree-checkbox0'
- });
- } else {
- $(target).datagrid('showColumn', item.name);
- $(this).menu('setIcon', {
- target: item.target,
- iconCls: 'tree-checkbox1'
- });
- }
- }
- })
- var fields = $(target).datagrid('getColumnFields', true).concat($(target).datagrid('getColumnFields', false));
- for (var i = 0; i < fields.length; i++) {
- var field = fields[i];
- var col = $(target).datagrid('getColumnOption', field);
- state.columnMenu.menu('appendItem', {
- text: col.title,
- name: field,
- iconCls: 'tree-checkbox1'
- });
- }
- }
- return state.columnMenu;
- }
- $.extend($.fn.datagrid.methods, {
- columnMenu: function (jq) {
- return $.buildMenuColumn(jq[0]);
- }
- });
- //datagrid菜单过滤功能
- $.buildMenuRow = function (target) {
- var state = $(target).data('datagrid');
- if (!state.rowMenu) {
- state.rowMenu = $('<div></div>').appendTo('body');
- state.rowMenu.menu({
- onClick: function (item) {
- /*右键菜单处理 开始*/
- if (item.text == '过滤') {
- var json = $(target).datagrid('getData');
- var newRows = [];
- for (var i = 0; i < json.rows.length; i++) {
- if (json['rows'][i][$(target).filter.field] == $(target).filter.value) newRows.push(json['rows'][i]);
- }
- json["rows"] = newRows;
- $(target).datagrid('loadData', json);
- }
- if (item.text == '除外过滤') {
- var json = $(target).datagrid('getData');
- var newRows = [];
- for (var i = 0; i < json.rows.length; i++) {
- if (json['rows'][i][$(target).filter.field] != $(target).filter.value) newRows.push(json['rows'][i]);
- }
- json["rows"] = newRows;
- $(target).datagrid('loadData', json);
- }
- if (item.text == '取消过滤') {
- $(target).datagrid('reload');
- }
- if (item.text == '冻结列') {
- var fColumns = $(target).datagrid('getColumnFields', true);
- var cColumns = $(target).datagrid('getColumnFields');
- if (fColumns.indexOf($(target).filter.field) < 0) fColumns.push($(target).filter.field);
- cColumns.splice(cColumns.indexOf($(target).filter.field), 1);
- var jsonFrozenColumns = [[]];
- var jsonColumns = [[]];
- for (var i = 0; i < fColumns.length; i++) {
- jsonFrozenColumns[0].push($(target).datagrid('getColumnOption', fColumns[i]));
- }
- for (var j = 0; j < cColumns.length; j++) {
- jsonColumns[0].push($(target).datagrid('getColumnOption', cColumns[j]));
- }
- $(target).datagrid({
- frozenColumns: jsonFrozenColumns,
- columns: jsonColumns
- });
- }
- if (item.text == '取消冻结列') {
- var fColumns = $(target).datagrid('getColumnFields', true);
- var cColumns = $(target).datagrid('getColumnFields');
- if (cColumns.indexOf($(target).filter.field) < 0) cColumns.push($(target).filter.field);
- fColumns.splice(fColumns.indexOf($(target).filter.field), 1);
- var jsonFrozenColumns = [[]];
- var jsonColumns = [[]];
- for (var i = 0; i < fColumns.length; i++) {
- jsonFrozenColumns[0].push($(target).datagrid('getColumnOption', fColumns[i]));
- }
- for (var j = 0; j < cColumns.length; j++) {
- jsonColumns[0].push($(target).datagrid('getColumnOption', cColumns[j]));
- }
- $(target).datagrid({
- frozenColumns: jsonFrozenColumns,
- columns: jsonColumns
- });
- }
- /*右键菜单处理 结束*/
- }
- })
- state.rowMenu.menu('appendItem', {
- text: '过滤',
- name: '过滤'
- });
- state.rowMenu.menu('appendItem', {
- text: '除外过滤',
- name: '除外过滤'
- });
- state.rowMenu.menu('appendItem', {
- text: '取消过滤',
- name: '取消过滤'
- });
- state.rowMenu.menu('appendItem', {
- separator: true
- });
- state.rowMenu.menu('appendItem', {
- text: '冻结列',
- name: '冻结列'
- });
- state.rowMenu.menu('appendItem', {
- text: '取消冻结列',
- name: '取消冻结列'
- });
- }
- return state.rowMenu;
- }
- $.extend($.fn.datagrid.methods, {
- rowMenu: function (jq) {
- return $.buildMenuRow(jq[0]);
- }
- });
- //获取合并列头
- $.getMergeColumns = function (dg, rows, fixwidth, mergewidth, splitchar) {
- var frozenColumns = dg.datagrid('getColumnFields', true);
- var jsonColumns = [[]];
- var jsonRows = 1;
- var fixWidth = typeof fixwidth == 'undefined' ? 100 : fixwidth;
- var mergeWidth = typeof mergewidth == 'undefined' ? 80 : mergewidth;
- var splitChar = typeof splitchar == 'undefined' ? '_' : splitchar;
- //查找列头行数
- for (key in rows[0]) {
- var keys = key.split(splitChar);
- if (keys.length > jsonRows) jsonRows = keys.length;
- }
- //拆分列名
- for (key in rows[0]) {
- if (key.indexOf(splitChar) >= 0) {
- //拆分标题行
- var keys = key.split(splitChar);
- for (var i = 0; i < keys.length; i++) {
- if (typeof jsonColumns[i] == 'undefined') jsonColumns.push([]);
- if (i < keys.length - 1) {
- if (frozenColumns.indexOf(keys[i]) < 0)
- jsonColumns[i].push(JSON.parse('{ "title": "' + keys[i] + '","width":"' + mergeWidth + '","rowspan":1,"colspan":1,"align":"center" }'));
- }
- else {
- if (frozenColumns.indexOf(keys) < 0)
- jsonColumns[i].push(JSON.parse('{ "field": "' + key + '", "title": "' + keys[i] + '","width":"' + mergeWidth + '","align":"center" }'));
- }
- }
- }
- else {
- //合并标题行
- if (frozenColumns.indexOf(key) < 0 && key !='ROWNO')
- jsonColumns[0].push(JSON.parse('{ "field": "' + key + '","title": "' + key + '","width":"' + fixWidth + '","rowspan":' + jsonRows + ',"colspan":1,"align":"center" }'));
- }
- }
- //合并相同列
- for (var j = 0; j < jsonColumns.length - 1; j++) {
- for (var i = 0; i < jsonColumns[j].length - 1; i++) {
- while (jsonColumns[j][i]["title"] == jsonColumns[j][i + 1]["title"]) {
- jsonColumns[j].splice(i + 1, 1);
- jsonColumns[j][i]["colspan"] = jsonColumns[j][i]["colspan"] + 1;
- if (typeof jsonColumns[j][i + 1] == 'undefined') break;
- }
- }
- }
- return jsonColumns;
- }
- //自动合并单元格
- $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return jq.each(function () { var target = $(this); if (!fields) { fields = target.datagrid("getColumnFields"); } var rows = target.datagrid("getRows"); var i = 0, j = 0, temp = {}; for (i; i < rows.length; i++) { var row = rows[i]; j = 0; for (j; j < fields.length; j++) { var field = fields[j]; var tf = temp[field]; if (!tf) { tf = temp[field] = {}; tf[row[field]] = [i]; } else { var tfv = tf[row[field]]; if (tfv) { tfv.push(i); } else { tfv = tf[row[field]] = [i]; } } } } $.each(temp, function (field, colunm) { $.each(colunm, function () { var group = this; if (group.length > 1) { var before, after, megerIndex = group[0]; for (var i = 0; i < group.length; i++) { before = group[i]; after = group[i + 1]; if (after && (after - before) == 1) { continue; } var rowspan = before - megerIndex + 1; if (rowspan > 1) { target.datagrid('mergeCells', { index: megerIndex, field: field, rowspan: rowspan }); } if (after && (after - before) != 1) { megerIndex = after; } } } }); }); }); } });
- //自动修复行号宽度
- $.extend($.fn.datagrid.methods, {
- fixRownumber: function (jq) {
- return jq.each(function () {
- var panel = $(this).datagrid("getPanel");
- var width = $(".datagrid-cell-rownumber", panel).last().width("auto").width();
- //默认宽度是25,所以只有大于25的时候才进行fix
- if (width > 25) {
- //多加5个像素,保持一点边距
- $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).width(width + 5);
- //修改了宽度之后,需要对容器进行重新计算,所以调用resize
- $(this).datagrid("resize");
- } else {
- //还原成默认状态
- $(".datagrid-header-rownumber,.datagrid-cell-rownumber", panel).removeAttr("style");
- }
- });
- }
- });
- //按钮加载
- $.fn.buttonLoad = function (ops) {
- var toolbar = $(this);
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- url = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + url;
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- $.get(url, function (data) {
- var json = JSON.parse(data);
- if (json['success'] == true) {
- for (var button in json['rows']) {
- if (json['rows'][button] == true)
- {
- if (toolbar.find('#' + button).length > 0) toolbar.find('#' + button).show();
- }
- else
- {
- if (toolbar.find('#' + button).length > 0) toolbar.find('#' + button).hide();
- }
- }
- }
- });
- }
- //加载form
- $.fn.formLoad = function (ops) {
- var ff = $(this);
- var url = typeof ops.url == 'undefined' ? '' : ops.url;
- if (url != '') {
- //附加参数
- var urlPara = location.href;
- var paraString = urlPara.substring(urlPara.indexOf("?") + 1, urlPara.length);
- url = url.indexOf('?') > -1 ?
- url + '&' + paraString :
- url + '?' + paraString ;
- $.get(url, function (data) {
- var json = JSON.parse(data);
- if (json["success"] == true) {
- ff.form('load', json["rows"][0]);
- var dataField = $('div[data-field="true"],span[data-field="true"]');
- $.each(dataField, function (i, item) {
- $('#' + item.id).html(json["rows"][0][item.id]);
- });
- }
- });
- }
- };
- //窗体操作
- $.dialog = {
- 'target': window.parent,
- 'show': function (ops) {
- var dialogid = typeof (ops.dialogid) == 'undefined' ? 'dlg' : ops.dialogid;
- var modal = typeof (ops.modal) == 'undefined' ? true : ops.modal;
- var height = typeof (ops.height) == 'undefined' ? 600 : ops.height;
- var width = typeof (ops.width) == 'undefined' ? 800 : ops.width;
- var modal = typeof (ops.modal) == 'undefined' ? true : ops.modal;
- var target = typeof (ops.target) == 'undefined' ? $.dialog.target : ops.target;
- if (target.$('#' + dialogid).length == 0) target.$('body').append('<div id="' + dialogid + '"></div>');
- var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
- if (url != '') {
- url = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + url;
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- target.$('#' + dialogid).dialog({
- iconCls: typeof (ops.iconCls) == 'undefined' ? 'icon-detail' : ops.iconCls,
- title: typeof (ops.title) == 'undefined' ? '数据操作' : ops.title,
- top: typeof (ops.top) == 'undefined' ? ($(target).height() - height) * 0.5 : ops.top,
- left: typeof (ops.left) == 'undefined' ? ($(target).width() - width) * 0.5 : ops.left,
- width: typeof (ops.width) == 'undefined' ? width : ops.width,
- height: typeof (ops.height) == 'undefined' ? height : ops.height,
- closed: false,
- cache: false,
- maximizable: true,
- maximized: false,
- minimizable: false,
- minimized: true,
- collapsible: false,
- resizable: true,
- content: '<div style="overflow:hidden;width:100%;height:100%;"><iframe id="' + dialogid + 'Frame" scrolling="yes" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe></div>',
- modal: modal
- });
- //parent.$('#' + dialogid).find('#dlgFrame')[0].src = url;
- }
- },
- 'close': function (ops) {
- var dialogid;
- if (typeof (ops) != 'undefined') {
- dialogid = typeof (ops.dialogid) == 'undefined' ? 'dlg' : ops.dialogid;
- }
- else {
- dialogid = 'dlg';
- }
- parent.$('#' + dialogid).dialog('close');
- },
- 'save': function (ops) {
- var target = $.dialog.target;
- var dialogid = typeof (ops.dialogid) == 'undefined' ? 'dlg' : ops.dialogid;
- var tabsid = typeof (ops.tabsid) == 'undefined' ? 'tabs' : ops.tabsid;
- var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
- if (url != '') {
- url = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + url;
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- var formid = typeof (ops.formid) == 'undefined' ? 'ff' : ops.formid;
- var datagridid = typeof (ops.datagridid) == 'undefined' ? 'dg' : ops.datagridid;
- var afterurl = typeof (ops.afterurl) == 'undefined' ? '' : ops.afterurl;
- $('#' + formid).form('submit', {
- url: url,
- onSubmit: function () {
- //获取编辑器数据
- //if (typeof (xeditor) != 'undefined') {
- // for (var i = 0; i < xeditor.length; i++) {
- // $('#' + xeditor[i].key.substring(0, xeditor[i].key.length - 6)).val(xeditor[i].getContent());
- // }
- //}
- var check = $('#' + formid).form("validate");
- if (check) $.messager.progress();
- return check;
- },
- success: function (data) {
- $.messager.progress('close');
- var json = eval("(" + data + ")");
- if (json['success'] == true) {
- if (target == window.parent && target.$('#' + tabsid).length > 0) {
- var tab = target.$('#' + tabsid).tabs('getSelected');
- var ff = target.$('#' + tabsid).find('#Frame' + tab.attr('id'))[0];
- ff.contentWindow.$('#' + datagridid).datagrid('reload');
- } else {
- target.parent.$('#' + datagridid).datagrid('reload');
- }
- if (afterurl == "") {
- target.parent.$('#' + dialogid).dialog('close');
- }
- else {
- target.parent.$('#' + dialogid).find('#dlgFrame')[0].src = afterurl;
- }
- }
- else {
- $.messager.alert('提交数据', json['message'], 'warning');
- }
- }
- });
- }
- },
- 'delete': function (ops) {
- var target = $.dialog.target;
- var dialogid = typeof (ops.dialogid) == 'undefined' ? 'dlg' : ops.dialogid;
- var datagridid = typeof (ops.datagridid) == 'undefined' ? 'dg' : ops.datagridid;
- var tabsid = typeof (ops.tabsid) == 'undefined' ? 'tabs' : ops.tabsid;
- var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
- if (url != '') {
- url = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + url;
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- $.messager.confirm('删除操作', '您确定要删除当前记录吗?', function (r) {
- if (r) {
- $.get(url, function (data) {
- var json = eval("(" + data + ")");
- if (json['success'] == true) {
- if (target == window.parent && target.$('#' + tabsid).length > 0) {
- var tab = target.$('#' + tabsid).tabs('getSelected');
- var ff = target.$('#' + tabsid).find('#Frame' + tab.attr('id'))[0];
- ff.contentWindow.$('#' + datagridid).datagrid('reload');
- }
- else {
- target.parent.$('#' + datagridid).datagrid('reload');
- }
- target.parent.$('#' + dialogid).dialog('close');
- }
- else {
- $.messager.alert('删除数据', json['message'], 'warning');
- }
- });
- }
- });
- }
- },
- 'go': function (ops) {
- var dialogid = typeof (ops.dialogid) == 'undefined' ? 'dlg' : ops.dialogid;
- var url = typeof (ops.url) == 'undefined' ? '' : ops.url;
- url = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1) + url;
- url = url.indexOf('?') > -1 ? url + '&r=' + Math.random() : url + '?r=' + Math.random();
- parent.$('#' + dialogid).find('#' + dialogid + 'Frame')[0].src = url;
- }
- };
- //加载框
- $.extend({
- loading: function () {
- $("<div class=\"datagrid-mask\"></div>").css({ display: "block", width: "100%", height: $(document.body).height() }).appendTo("body");
- $("<div class=\"datagrid-mask-msg\" style='height:60px;width:260px;padding-top:18px;'></div>").html("正在处理,请稍等。。。").appendTo("body").css({ display: "block", left: ($(window).outerWidth(true) - 190) / 2, top: ($(window).scrollTop() + 350) });
- },
- loaded: function (isParentWindow) {
- var t = $;
- if (typeof isParentWindow != "undefined") t = top.$;
- t(".datagrid-mask,.datagrid-mask-msg").remove();
- }
- });
- //多个table导出多个sheet到一个excel
- $.tablesToExcel = function tablesToExcel(tables, wsnames, wbname, appname) {
- var uri = 'data:application/vnd.ms-excel;base64,'
- , tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'
- + '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Author>xuwei</Author><Created>{created}</Created></DocumentProperties>'
- + '<Styles>'
- + '<Style ss:ID="Currency"><NumberFormat ss:Format="Currency"></NumberFormat></Style>'
- + '<Style ss:ID="Date"><NumberFormat ss:Format="Medium Date"></NumberFormat></Style>'
- + '</Styles>'
- + '{worksheets}</Workbook>'
- , tmplWorksheetXML = '<Worksheet ss:Name="{nameWS}"><Table>{rows}</Table></Worksheet>'
- , tmplCellXML = '<Cell{attributeStyleID}{attributeFormula}><Data ss:Type="{nameType}">{data}</Data></Cell>'
- , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
- , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
- var ctx = "";
- var workbookXML = "";
- var worksheetsXML = "";
- var rowsXML = "";
- for (var i = 0; i < tables.length; i++) {
- if (!tables[i].nodeType) tables[i] = document.getElementById(tables[i]);
- //控制要导出的行数
- for (var j = 0; j < tables[i].rows.length; j++) {
- rowsXML += '<Row>';
- for (var k = 0; k < tables[i].rows[j].cells.length; k++) {
- var dataType = tables[i].rows[j].cells[k].getAttribute("data-type");
- var dataStyle = tables[i].rows[j].cells[k].getAttribute("data-style");
- var dataValue = tables[i].rows[j].cells[k].getAttribute("data-value");
- dataValue = (dataValue) ? dataValue : tables[i].rows[j].cells[k].innerHTML;
- var dataFormula = tables[i].rows[j].cells[k].getAttribute("data-formula");
- dataFormula = (dataFormula) ? dataFormula : (appname == 'Calc' && dataType == 'DateTime') ? dataValue : null;
- ctx = {
- attributeStyleID: (dataStyle == 'Currency' || dataStyle == 'Date') ? ' ss:StyleID="' + dataStyle + '"' : ''
- , nameType: (dataType == 'Number' || dataType == 'DateTime' || dataType == 'Boolean' || dataType == 'Error') ? dataType : 'String'
- , data: (dataFormula) ? '' : dataValue
- , attributeFormula: (dataFormula) ? ' ss:Formula="' + dataFormula + '"' : ''
- };
- rowsXML += format(tmplCellXML, ctx);
- }
- rowsXML += '</Row>'
- }
- ctx = { rows: rowsXML, nameWS: wsnames[i] || 'Sheet' + i };
- worksheetsXML += format(tmplWorksheetXML, ctx);
- rowsXML = "";
- }
- ctx = { created: (new Date()).getTime(), worksheets: worksheetsXML };
- workbookXML = format(tmplWorkbookXML, ctx);
- //查看后台的打印输出
- //console.log(workbookXML);
- var link = document.createElement("A");
- link.href = uri + base64(workbookXML);
- link.download = wbname || 'Workbook.xls';
- link.target = '_blank';
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- };
- $.dataGridToExcel = function dataGridToExcel(datagrids, wsnames, wbname) {
- var uri = 'data:application/vnd.ms-excel;base64,'
- , tmplWorkbookXML = '<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">'
- + '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Author>xuwei</Author><Created>{created}</Created></DocumentProperties>'
- + '<Styles>'
- + '<Style ss:ID="Currency"><NumberFormat ss:Format="Currency"></NumberFormat></Style>'
- + '<Style ss:ID="Date"><NumberFormat ss:Format="Medium Date"></NumberFormat></Style>'
- + '</Styles>'
- + '{worksheets}</Workbook>'
- , tmplWorksheetXML = '<Worksheet ss:Name="{nameWS}"><Table>{rows}</Table></Worksheet>'
- , tmplCellXML = '<Cell{attributeStyleID}{attributeFormula}><Data ss:Type="{nameType}">{data}</Data></Cell>'
- , base64 = function (s) { return window.btoa(unescape(encodeURIComponent(s))) }
- , format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) }
- var ctx = "";
- var workbookXML = "";
- var worksheetsXML = "";
- var rowsXML = "";
- for (var i = 0; i < datagrids.length; i++) {
- //读取数据
- var jsonData = $('#' + datagrids[i]).datagrid('getData')['rows'];
- //读取字段
- var fields = $('#' + datagrids[i]).datagrid('getColumnFields');
- //读取列头
- var headers = [];
- if (headers.length == 0) {
- for (var j = 0; j < fields.length; j++) {
- headers.push($('#' + datagrids[i]).datagrid('getColumnOption', fields[j])['title']);
- }
- }
- //写入标题列
- rowsXML += '<Row>';
- for (var h in headers) {
- rowsXML += '<Cell><Data ss:Type="String">' + headers[h] + '</Data></Cell>';
- }
- rowsXML += '</Row>';
- //写入数据
- for (var d = 0; d < jsonData.length; d++) {
- rowsXML += '<Row>';
- for (var r = 0; r < fields.length; r++) {
- var value = jsonData[d][fields[r]] == null ? "" : jsonData[d][fields[r]];
- var valueType = typeof value == 'number' ? 'Number' : 'String';
- if (typeof value == 'number') {
- rowsXML += '<Cell><Data ss:Type="' + valueType + '">' + value + '</Data></Cell>';
- }
- else {
- //数字要转成文本,前面加单引号未处理成功,excel中单击会变为数字
- rowsXML += '<Cell ss:Forluma=""><Data ss:Type="String">' + value + '</Data></Cell>';
- }
- //rowsXML += '<Cell><Data ss:Type="' + valueType + '">' + value + '</Data></Cell>';
- }
- rowsXML += '</Row>';
- }
- //拼合数据
- ctx = { rows: rowsXML, nameWS: wsnames[i] || 'Sheet' + i };
- worksheetsXML += format(tmplWorksheetXML, ctx);
- rowsXML = "";
- }
- ctx = { created: (new Date()).getTime(), worksheets: worksheetsXML };
- workbookXML = format(tmplWorkbookXML, ctx);
- var link = document.createElement("A");
- link.href = uri + base64(workbookXML);
- link.download = wbname || 'Workbook.xls';
- link.target = '_blank';
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- }
- //把日期框置为只读
- $.fn.setDateboxDisable = function (checked) {
- $(this).datebox('readonly', !checked);
- $(this).datebox('textbox').css("color", checked ? "white" : "gray");
- }
- //日期时间框转换为年月输入框
- $.fn.DateTimeBox2YearMonthBox = function (isChange) {
- if (isChange) {
- var db = $(this);
- var dbValue = $(this).datetimebox('getValue');
- db.datebox({
- onShowPanel: function () {
- span.trigger('click');
- if (!tds) setTimeout(function () {
- tds = p.find('div.calendar-menu-month-inner td');
- tds.click(function (e) {
- e.stopPropagation();
- var year = /\d{4}/.exec(span.html())[0], month = parseInt($(this).attr('abbr'), 10);
- db.datebox('hidePanel').datebox('setValue', year + '-' + month);
- });
- }, 0);
- yearIpt.unbind();
- },
- parser: function (s) {
- if (!s) return new Date();
- var arr = s.split('-');
- return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, 1);
- },
- formatter: function (d) {
- return d.getFullYear() + '-' + (d.getMonth() + 1);
- }
- });
- var p = db.datebox('panel'),
- tds = false,
- aToday = p.find('a.datebox-current'),
- yearIpt = p.find('input.calendar-menu-year'),
- span = aToday.length ? p.find('div.calendar-title span') : p.find('span.calendar-text');
- p.find('div.calendar-header').hide();
- if (aToday.length) {
- aToday.unbind('click').click(function () {
- var now = new Date();
- db.datebox('hidePanel').datebox('setValue', now.getFullYear() + '-' + (now.getMonth() + 1));
- });
- }
- db.datebox('setValue', dbValue);
- }
- else {
- var dbValue = $(this).datebox('getValue') + '-01 00:00:00';
- $(this).datetimebox();
- $(this).datetimebox('setValue', dbValue);
- $(this).datebox('panel').find('div.calendar-header').show();
- }
- }
-
- //tabs操作
- $.tabs = {
- 'target': window.parent,
- 'open': function (ops) {
- var title = typeof (ops.title) == 'undefined' ? '未命名' : ops.title;
- var url = typeof (ops.url) == 'undefined' ? '/mes/blank.html' : ops.url;
- if (this.target.$('#tabs').tabs('exists', title)) this.target.$('#tabs').tabs('close', title);
- this.target.$('#tabs').tabsOpen({
- title: title,
- url: url,
- closable: true
- });
- }
- }
|