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
|
|
|
}
|