Files
fe_service_ebtp_frontend/src/utils/CommonUtils.ts

304 lines
7.4 KiB
TypeScript
Raw Normal View History

2020-12-23 11:14:35 +08:00
/*
* @Author: liqiang
* @Date: 2020-11-24 15:26:54
2022-03-10 14:24:13 +08:00
* @LastEditTime: 2021-03-05 13:49:12
2020-12-23 11:14:35 +08:00
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \ebtp-cloud-frontend\src\utils\CommonUtils.ts
*/
2022-03-10 14:24:13 +08:00
2020-12-23 11:14:35 +08:00
/**
*
2022-03-10 14:24:13 +08:00
* @param value
2020-12-23 11:14:35 +08:00
*/
2022-03-10 14:24:13 +08:00
export function isEmpty(value: any) {
return value === null || value === void 0 || value === '';
2020-12-23 11:14:35 +08:00
}
/**
*
2022-03-10 14:24:13 +08:00
* @param value
2020-12-23 11:14:35 +08:00
*/
export function isNotEmpty(value: any) {
2022-03-10 14:24:13 +08:00
return value !== null && value !== void 0 && value !== '';
2020-12-23 11:14:35 +08:00
}
/**
* proTable下拉选格式转换
* @param data
*/
export function proTableValueEnum(data: any) {
2022-03-10 14:24:13 +08:00
let json = {};
if (isEmpty(data)) {
2020-12-23 11:14:35 +08:00
return json;
2022-03-10 14:24:13 +08:00
}
for (const item of data) {
json[item.code] = { text: item.dicName };
}
return json;
2020-12-23 11:14:35 +08:00
}
2021-01-16 11:29:42 +08:00
/**
*
* @param data
*/
2022-03-10 14:24:13 +08:00
export function returnDictVal(data: any, value: any) {
let val = '';
if (isEmpty(data)) {
2021-01-16 11:29:42 +08:00
return val;
2022-03-10 14:24:13 +08:00
}
for (const item of data) {
item.code === value ? val = item.dicName : null;
}
return val;
2021-01-16 11:29:42 +08:00
}
2020-12-23 11:14:35 +08:00
/**
* url路径信息
2022-03-10 14:24:13 +08:00
* @param name
2020-12-23 11:14:35 +08:00
*/
export function getURLInformation(name: string) {
2022-03-10 14:24:13 +08:00
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = window.location.search.substr(1).match(reg);
return r !== null ? unescape(r[2]) : null;
}
/**
* url路径参数信息
* @param name
* @returns
*/
export function getUrlParam(name: string) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return decodeURI(r[2]); //decodeURI参数内容。
return null; //返回参数值
}
/**
* url路径信息
* @param name
* @returns
*/
export function getTotalURLInformation() {
let query: any = location.search.substring(1)
let params = {}
query = query.split('&')
query?.forEach((ele: any, index: any) => {
let q = query[index].split('=')
if (q.length == 2) {
params[q[0]] = q[1]
}
});
return params
}
/**
*
* @param url url多个参数 & => %26
*/
export function JumpToOutside(url: string) {
const uri = encodeURIComponent(url)
window.location.href = (`http://10.242.31.158:8100/auth/oauth/authorize?response_type=code&client_id=KgPEkttG&redirect_uri=${uri}&mall3_token=${sessionStorage.getItem('Authorization')}`)
}
/**
* proTable下拉选格式转换 inspect中数据
* @param data
*/
export function proTableValueEnumOther(data: any, inspect?: any) {
let json = {};
if (isEmpty(data)) {
return json;
}
for (const item of data) {
if (inspect.toString().indexOf(item.code) >= 0) {
json[item.code] = { text: item.dicName };
}
}
return json;
}
/**
*
* @param dictData
* @param value
*/
export function getDictName(dictData: any, value: any) {
if (isEmpty(dictData)) {
return '';
}
for (const item of dictData) {
if (value === item.code) {
return item.dicName;
}
}
return '';
}
/**
* proTypeCode
* @param bidMethodDict
*/
export function getProTypeCodeByBidMethodDict(bidMethodDict: any) {
if (isEmpty(bidMethodDict)) {
return '';
}
let proTypeCode;
switch (bidMethodDict) {
case 'procurement_mode_1':
case 'procurement_mode_2':
proTypeCode = 'procurement_mode_1,procurement_mode_2';
break;
case 'procurement_mode_3':
proTypeCode = 'procurement_mode_3';
break;
case 'procurement_mode_4':
proTypeCode = 'procurement_mode_4';
break;
case 'procurement_mode_5':
case 'procurement_mode_6':
proTypeCode = 'procurement_mode_5,procurement_mode_6';
break;
case 'procurement_mode_7':
proTypeCode = 'procurement_mode_7';
break;
case 'procurement_mode_8':
proTypeCode = 'procurement_mode_8';
break;
case 'procurement_mode_9':
proTypeCode = 'procurement_mode_8';
break;
default:
proTypeCode = '';
}
return proTypeCode;
}
/**
*
* @param data
* @param value
*/
export function getDictNameByVal(data: any[], value: any) {
if (isEmpty(data) || isEmpty(value)) {
return "";
}
for (const item of data) {
if (item.code === String(value)) {
return item.dicName;
}
}
return "";
}
/**
*
* @returns
*/
export function getUrlRelativePath() {
let url = document.location.toString();
let arrUrl = url.split("//");
let start = arrUrl[1].indexOf("/");
let relUrl = arrUrl[1].substring(start);
if (relUrl.indexOf("?") != -1) {
relUrl = relUrl.split("?")[0];
}
return relUrl;
}
/**
*
* @param str
* @param cha
* @param num
* @returns
*/
function findString(str: string, cha: string, num: number) {
let x = str.indexOf(cha);
for (var i = 0; i < num; i++) {
x = str.indexOf(cha, x + 1);
}
return x;
}
const projectTypeCodeMaps = new Map();
//招标
projectTypeCodeMaps.set("/Bid", ["procurement_mode_1", "procurement_mode_2"]);
//比选
projectTypeCodeMaps.set("/Comparison", ["procurement_mode_3"]);
//招募
projectTypeCodeMaps.set("/Recruit", ["procurement_mode_4"]);
//谈判
projectTypeCodeMaps.set("/Negotiation", ["procurement_mode_5", "procurement_mode_6", ]);
//询价
projectTypeCodeMaps.set("/Inquiry", ["procurement_mode_7"]);
/**
* ProTypeCode
* @returns
*/
export function getProjectTypeCode() {
let url = getUrlRelativePath();
for (const item of projectTypeCodeMaps.keys()) {
if (url.indexOf(item) !== -1) {
return projectTypeCodeMaps.get(item);
}
}
return [];
}
/**
*
* @param bidMethodDict
* @returns
*/
export function getBidMethodDictTypeCode(bidMethodDict: string) {
for (const [key, value] of projectTypeCodeMaps.entries()) {
if (value.indexOf(bidMethodDict) !== -1) {
return key;
}
}
let url = getUrlRelativePath(),
index = findString(url, "/", 1);
url = url.substring(0, index);
return url;
}
/**
*
* @param num
* @returns
*/
export const numberToChinese = (num: any) => {
var AA = new Array("零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十");
var BB = new Array("", "十", "百", "仟", "萬", "億", "点", "");
var a = ("" + num).replace(/(^0*)/g, "").split("."),
k = 0,
re = "";
for (var i = a[0].length - 1; i >= 0; i--) {
switch (k) {
case 0:
re = BB[7] + re;
break;
case 4:
if (!new RegExp("0{4}//d{" + (a[0].length - i - 1) + "}$")
.test(a[0]))
re = BB[4] + re;
break;
case 8:
re = BB[5] + re;
BB[7] = BB[5];
k = 0;
break;
}
if (k % 4 == 2 && a[0].charAt(i + 2) != '0' && a[0].charAt(i + 1) == '0')
re = AA[0] + re;
if (a[0].charAt(i) != '0')
re = AA[a[0].charAt(i)] + BB[k % 4] + re;
k++;
}
if (a.length > 1) // 加上小数部分(如果有小数部分)
{
re += BB[6];
for (var i = 0; i < a[1].length; i++)
re += AA[a[1].charAt(i)];
}
if (re == '一十')
re = "十";
if (re.match(/^一/) && re.length == 3)
re = re.replace("一", "");
return re;
2021-01-16 11:29:42 +08:00
}