212 lines
5.6 KiB
JavaScript
212 lines
5.6 KiB
JavaScript
class CusUtils {
|
|
/**
|
|
* @author youhong.ai
|
|
* @desc 发起请求
|
|
*/
|
|
request(url, type = "GET", data, isAsync = true, success = () => {
|
|
}, error = () => {
|
|
}, complete = () => {
|
|
}, contentType = 'application/json', beforeSend = () => {
|
|
}) {
|
|
let options = {
|
|
url,
|
|
type,
|
|
dataType: "json",
|
|
contentType,
|
|
async: isAsync,
|
|
data,
|
|
beforeSend,
|
|
success,
|
|
error,
|
|
complete,
|
|
}
|
|
if (contentType == 'application/json') {
|
|
options.data = JSON.stringify(data)
|
|
}
|
|
return $.ajax(options)
|
|
}
|
|
|
|
/**
|
|
* @author youhong.ai
|
|
* @desc 发起请求
|
|
*/
|
|
api(requestOptions = {
|
|
url: "",
|
|
type: "GET",
|
|
data: "",
|
|
isAsync: true,
|
|
success: () => {
|
|
},
|
|
error: () => {
|
|
},
|
|
complete: () => {
|
|
},
|
|
contentType: 'application/json',
|
|
beforeSend: () => {
|
|
}
|
|
}) {
|
|
let options = Object.assign({
|
|
url: "",
|
|
type: "GET",
|
|
data: "",
|
|
isAsync: true,
|
|
success: () => {
|
|
},
|
|
error: () => {
|
|
},
|
|
complete: () => {
|
|
},
|
|
contentType: 'application/json',
|
|
beforeSend: () => {
|
|
}
|
|
}, requestOptions)
|
|
return $.ajax(options)
|
|
}
|
|
|
|
/**
|
|
* @author youhong.ai
|
|
* @desc 获取react组件实例
|
|
*/
|
|
findReact(dom, traverseUp = 0) {
|
|
const key = Object.keys(dom).find(key => {
|
|
return key.startsWith("__reactFiber$") // react 17+
|
|
|| key.startsWith("__reactInternalInstance$")
|
|
|| key.startsWith("__reactEventHandlers$"); // react <17
|
|
});
|
|
const domFiber = dom[key];
|
|
if (domFiber == null) return null;
|
|
// react <16
|
|
if (domFiber._currentElement) {
|
|
let compFiber = domFiber._currentElement._owner;
|
|
for (let i = 0; i < traverseUp; i++) {
|
|
compFiber = compFiber._currentElement._owner;
|
|
}
|
|
return compFiber._instance;
|
|
}
|
|
// react 16+
|
|
const GetCompFiber = fiber => {
|
|
let parentFiber = fiber.return;
|
|
while (typeof parentFiber.type == "string") {
|
|
parentFiber = parentFiber.return;
|
|
}
|
|
return parentFiber;
|
|
};
|
|
let compFiber = GetCompFiber(domFiber);
|
|
for (let i = 0; i < traverseUp; i++) {
|
|
compFiber = GetCompFiber(compFiber);
|
|
}
|
|
return compFiber.stateNode;
|
|
}
|
|
|
|
|
|
/**
|
|
* 转换字段名为字段ID
|
|
* @param fieldName 字段名称
|
|
* @returns {*|string}
|
|
*/
|
|
convertNameToIdUtil(fieldName) {
|
|
let fieldIds = [];
|
|
if (fieldName instanceof Array) {
|
|
fieldName.forEach(item => {
|
|
fieldIds.push(Utils.convertNameObjToId(item))
|
|
})
|
|
return fieldIds.join(',')
|
|
}
|
|
return Utils.convertNameObjToId(fieldName)
|
|
}
|
|
|
|
getQueryString(name) {
|
|
let reg = new RegExp("(^|&|\/?)" + name + "=([^&]*)(&|$)", "i");
|
|
let searchStr = window.location.href
|
|
if (searchStr.startsWith('&')) {
|
|
searchStr = searchStr.substr(1)
|
|
}
|
|
let search = searchStr.match(reg)
|
|
if (search != null) {
|
|
return unescape(search[2]);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 将字段名称转为字段id
|
|
* @param fieldObj 字段名称对象 {string|object}
|
|
* @returns {*}
|
|
*/
|
|
convertNameObjToId(fieldObj = {fieldName: '', table: 'main'}) {
|
|
if (typeof fieldObj === 'object') {
|
|
return WfForm.convertFieldNameToId(fieldObj.fieldName, fieldObj.table)
|
|
}
|
|
return WfForm.convertFieldNameToId(fieldObj)
|
|
}
|
|
|
|
/**
|
|
* 根据字段名称查询字段值
|
|
* @param fieldName 字段名称
|
|
* @param rowIndex 明细行下表(明细获取才传递)
|
|
* @returns {*} 字段值
|
|
*/
|
|
getFiledValueByName(fieldName, rowIndex) {
|
|
return WfForm.getFieldValue(Utils.convertNameObjToId(fieldName) + (rowIndex ? '_' + rowIndex : ''))
|
|
}
|
|
|
|
/**
|
|
* 通过字段名称修改字段值
|
|
* @param fieldName 字段名称
|
|
* @param value 值
|
|
*/
|
|
changeFieldValueByName(fieldName, value) {
|
|
WfForm.changeFieldValue(Utils.convertNameObjToId(fieldName), {value})
|
|
}
|
|
}
|
|
|
|
window.Utils = new CusUtils()
|
|
|
|
|
|
const getLeble = function (lable, defaultStr) {
|
|
if (!langue[lable + '']) {
|
|
return defaultStr;
|
|
}
|
|
let lableMap = langue[lable + '']
|
|
const userInfo = JSON.parse(localStorage.getItem("theme-account"))
|
|
if (!lableMap[userInfo.userLanguage + '']) {
|
|
return defaultStr
|
|
}
|
|
return lableMap[userInfo.userLanguage + '']
|
|
}
|
|
|
|
|
|
class LanguageUtil {
|
|
|
|
static language = {
|
|
'1': {
|
|
'8': '英文',
|
|
'7': '中文',
|
|
'15': '日语'
|
|
}
|
|
}
|
|
|
|
static getLabel(label, defaultStr) {
|
|
if (!LanguageUtil.language[label + '']) {
|
|
return defaultStr;
|
|
}
|
|
let languageMap = LanguageUtil.language[label + '']
|
|
let userInfo = JSON.parse(localStorage.getItem("theme-account"))
|
|
if (!userInfo) {
|
|
userInfo = {
|
|
userLanguage: '7'
|
|
}
|
|
}
|
|
|
|
if (!languageMap[userInfo.userLanguage + '']) {
|
|
return defaultStr
|
|
}
|
|
return languageMap[userInfo.userLanguage + '']
|
|
}
|
|
}
|
|
|
|
// export default CusUtils
|
|
ecodeSDK.exp(LanguageUtil)
|
|
window.LanguageUtil = LanguageUtil
|
|
|