docimax
Version:
docimax common query client condition helper libary.
299 lines (298 loc) • 10.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var InputConvertor = /** @class */ (function () {
function InputConvertor() {
}
/**
* 推断操作符
* @param value 值
* @param type 输入类型
*/
InputConvertor.prototype.inferOperation = function (value, type) {
if (value.indexOf('-') > -1 && type !== 'str') {
if (value.indexOf('-') === value.lastIndexOf('-')) {
// - 仅仅一个
if (value.substring(0, 1) === '-') {
// - 打头
return '<=';
}
else if (value.substring(value.length - 1, value.length) === '-') {
// - 结尾
return '>=';
}
else {
// - 在中间
return '-';
}
}
else {
// - 有多个
return '=';
}
}
else if (value.indexOf('<>') > -1) {
return '<>';
}
else if (value.indexOf('<=') > -1) {
return '<=';
}
else if (value.indexOf('>=') > -1) {
return '>=';
}
else if (value.indexOf('>') > -1) {
return '>';
}
else if (value.indexOf('<') > -1) {
return '<';
}
else if (value.indexOf('%') > -1) {
return 'like';
}
else if (value.indexOf(',') > -1) {
return 'in';
}
else {
return '=';
}
};
/**
* 格式化用户输入
* @param operation 操作符
* @param content 显示
* @param values 值
*/
InputConvertor.prototype.formatValue = function (operation, content, values) {
var v = '';
var c = '';
switch (operation) {
case '<=':
v = values === undefined ? '' : values.replace('-', '');
c = content === undefined ? '' : content.replace('-', '');
v = values === undefined ? '' : v.replace('<=', '');
c = content === undefined ? '' : c.replace('<=', '');
break;
case '>=':
v = values === undefined ? '' : values.replace('-', '');
c = content === undefined ? '' : content.replace('-', '');
v = values === undefined ? '' : v.replace('>=', '');
c = content === undefined ? '' : c.replace('>=', '');
break;
case '<>':
v = values === undefined ? '' : values.replace('<>', '');
c = content === undefined ? '' : content.replace('<>', '');
break;
case '-':
v = values;
c = content;
break;
default:
v = values === undefined ? '' : values.replace(operation, '');
c = content === undefined ? '' : content.replace(operation, '');
break;
}
return { content: c, values: v };
};
/**
* 扩展日期输入
* @param operator 操作符
* @param content 内容
*/
InputConvertor.prototype.extensionDateInput = function (operator, content) {
var result = [{ operator: '>=', value: '' }, { operator: '<=', value: '' }];
switch (operator) {
case '-':
var array = content.split('-');
for (var i = 0; i < array.length; i++) {
var element = array[i];
switch (element.length) {
case 4:
// 年
if (i === 0)
result[i].value = element + '0101';
else
result[i].value = element + '1231';
break;
case 6:
// 月
if (i === 0)
result[i].value = element + '01';
else
result[i].value = element + '31';
break;
default:
// 日 / 其他
result[i].value = element;
break;
}
}
break;
case '=':
switch (content.length) {
case 4:
result[0].value = content + '0101';
result[1].value = content + '1231';
break;
case 6:
result[0].value = content + '01';
result[1].value = content + '31';
break;
default:
result.pop();
result[0].value = content;
result[0].operator = '=';
break;
}
break;
case '>=':
result.pop();
switch (content.length) {
case 4:
result[0].value = content + '0101';
break;
case 6:
result[0].value = content + '01';
break;
default:
result[0].value = content;
break;
}
break;
case '<=':
result.shift();
switch (content.length) {
case 4:
result[0].value = content + '1231';
break;
case 6:
result[0].value = content + '31';
break;
default:
result[0].value = content;
break;
}
break;
case '<>':
switch (content.length) {
case 4:
result[0].value = content + '1231';
result[1].value = content + '0101';
break;
case 6:
result[0].value = content + '31';
result[1].value = content + '01';
break;
default:
result.pop();
result[0].value = content;
result[0].operator = '<>';
break;
}
break;
case '>':
result.pop();
result[0].operator = '>';
switch (content.length) {
case 4:
result[0].value = content + '1231';
break;
case 6:
result[0].value = content + '31';
break;
default:
result[0].value = content;
break;
}
break;
case '<':
result.pop();
result[0].operator = '<';
switch (content.length) {
case 4:
result[0].value = content + '0101';
break;
case 6:
result[0].value = content + '01';
break;
default:
result[0].value = content;
break;
}
break;
default:
result.pop();
result[0].operator = operator;
result[0].value = content;
break;
}
return result;
};
return InputConvertor;
}());
/**
* 工具类
*/
var Utility = /** @class */ (function () {
function Utility() {
}
/**
* 深复制对象
* @param content 对象
*/
Utility.prototype.deepCopy = function (content) {
return JSON.parse(JSON.stringify(content));
};
/**
* 获取当前日期
*/
Utility.prototype.now = function () {
var date = new Date();
return this.getDateString(date);
};
/**
* 获取日期对象 string
* @param d 日期对象
*/
Utility.prototype.getDateString = function (d) {
if (d === undefined || d === null) {
return '';
}
var numMonth = d.getMonth() + 1;
var numDate = d.getDate();
var _a = [numMonth.toString(), numDate.toString()], strMonth = _a[0], strDate = _a[1];
if (numMonth >= 1 && numMonth <= 9) {
strMonth = '0' + numMonth.toString();
}
if (numDate >= 0 && numDate <= 9) {
strDate = '0' + numDate.toString();
}
var currentDate = d.getFullYear() + '-' + strMonth + '-' + strDate;
return currentDate;
};
/**
* 保存文件
* @param blob 文件二进制大对象
* @param filename 文件名
*/
Utility.prototype.saveBlobAs = function (blob, fileName) {
var type = blob.type;
var force_saveable_type = 'application/octet-stream';
if (type && type != force_saveable_type) {
// 强制下载,而非在浏览器中打开
var slice = blob.slice || blob.webkitSlice || blob.mozSlice;
blob = slice.call(blob, 0, blob.size, force_saveable_type);
}
var url = URL.createObjectURL(blob);
var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href = url;
save_link.download = fileName;
var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
save_link.dispatchEvent(event);
URL.revokeObjectURL(url);
};
return Utility;
}());
var utility = new Utility();
exports.utility = utility;
var inputConvertor = new InputConvertor();
exports.inputConvertor = inputConvertor;