mirror of
http://git.mhez-qa.uplus.co.kr/hubez/hubez-admin.git
synced 2025-12-07 01:04:20 +09:00
118 lines
3.2 KiB
JavaScript
118 lines
3.2 KiB
JavaScript
/**
|
|
* @description This method is responsile for creating the object with mirror key and values
|
|
* and also add prefix to values if available
|
|
* @param {Array<string>} arr Array of strings
|
|
* @param {string} prefix prefix
|
|
* @returns {Object} object with mirror keys generated from the array of strings
|
|
*/
|
|
export const reflectKeys = (arr = [], prefix) =>
|
|
arr.reduce((obj, key) => {
|
|
const value = prefix ? prefix + ' ' + key : key;
|
|
obj[key] = value;
|
|
|
|
return obj;
|
|
}, {});
|
|
|
|
export const form2obj = function(form) {
|
|
var queryStr = serializeForm(form);
|
|
return qstr2obj(queryStr);
|
|
};
|
|
|
|
/*!
|
|
* Serialize all form data into a query string
|
|
* (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com
|
|
* @param {Node} form The form to serialize
|
|
* @return {String} The serialized form data
|
|
*/
|
|
export const serializeForm = function(form) {
|
|
// Setup our serialized data
|
|
var serialized = [];
|
|
|
|
// Loop through each field in the form
|
|
for (var i = 0; i < form.elements.length; i++) {
|
|
var field = form.elements[i];
|
|
|
|
// Don't serialize fields without a name, submits, buttons, file and reset inputs, and disabled fields
|
|
if (
|
|
!field.name ||
|
|
field.disabled ||
|
|
field.type === 'file' ||
|
|
field.type === 'reset' ||
|
|
field.type === 'submit' ||
|
|
field.type === 'button'
|
|
)
|
|
continue;
|
|
|
|
// If a multi-select, get all selections
|
|
if (field.type === 'select-multiple') {
|
|
for (var n = 0; n < field.options.length; n++) {
|
|
if (!field.options[n].selected) continue;
|
|
serialized.push(encodeURIComponent(field.name) + '=' + encodeURIComponent(field.options[n].value));
|
|
}
|
|
}
|
|
|
|
// Convert field data to a query string
|
|
else if ((field.type !== 'checkbox' && field.type !== 'radio') || field.checked) {
|
|
serialized.push(encodeURIComponent(field.name) + '=' + encodeURIComponent(field.value));
|
|
}
|
|
}
|
|
|
|
return serialized.join('&');
|
|
};
|
|
|
|
export const qstr2obj = function(qstr) {
|
|
let obj = {};
|
|
if (qstr) {
|
|
qstr.split('&').map(item => {
|
|
const [k, v] = item.split('=');
|
|
v ? (obj[k] = v) : null;
|
|
});
|
|
}
|
|
return obj;
|
|
};
|
|
|
|
export const getCookie = function(name) {
|
|
var value = '; ' + document.cookie;
|
|
var parts = value.split('; ' + name + '=');
|
|
if (parts.length == 2)
|
|
return parts
|
|
.pop()
|
|
.split(';')
|
|
.shift();
|
|
};
|
|
|
|
import { Base64 } from 'js-base64';
|
|
|
|
export const base64encode = function(str) {
|
|
return Base64.encode(str);
|
|
};
|
|
|
|
export const base64decode = function(b64) {
|
|
return Base64.decode(b64);
|
|
};
|
|
|
|
export const getGwSuccessCode = function() {
|
|
return '10000';
|
|
};
|
|
|
|
export const isGwSuccess = function(code) {
|
|
return getGwSuccessCode() == code;
|
|
};
|
|
|
|
let loadOverlap = [];
|
|
export const loadingLayer = (type) => {
|
|
if (type) {
|
|
loadOverlap.push('add');
|
|
} else {
|
|
loadOverlap.pop();
|
|
}
|
|
|
|
if (loadOverlap.length > 0) {
|
|
document.querySelector('html > body').style.overflow = 'hidden'; // 스크롤 block
|
|
document.getElementsByClassName('loading_layer')[0].style.display = 'block';
|
|
} else {
|
|
document.querySelector('html > body').style.removeProperty('overflow'); // 스크롤 allow
|
|
document.getElementsByClassName('loading_layer')[0].style.display = 'none';
|
|
}
|
|
};
|