import { Modal } from 'antd';
import { WeaTools } from "ecCom";
const getKey = WeaTools.getKey;
import isEmpty from 'lodash/isEmpty';
import isArray from 'lodash/isArray';
import {WeaLocaleProvider} from 'ecCom';
const getLabel = WeaLocaleProvider.getLabel;
export const transfStr = (name = '', ids = '', list = [], type = '') => {
let str = '';
const mirror = {
37: "doc",
prjtsk: "task",
18: "crm",
152: "workflow",
135: "project",
}
list.map(item => {
if (name === 'Upload' && type === 'image') {
str += '
'
}
if (name === 'Upload' && type === 'file') {
str += (`${item.filename}
`)
}
if (name === 'Browser') {
str += (`${item.name || item.showname}
`)
}
})
return str
}
export const getFormInitDatas = (condition = []) => {
let initdatas = {};
condition.map(c => {
let items = [];
c.items.map((field, index) => {
const key = getKey(field);
if (field.conditionType == "BROWSER") {
if (!isEmpty(field.browserConditionParam)) {
const replacesDatas = field.browserConditionParam.replaceDatas || field.browserConditionParam.valueObj;
if (!isEmpty(replacesDatas)) {
let values = [], names = [];
replacesDatas.forEach((d) => {
values.push(d.id);
names.push(d.lastname || d.name); // 人力按钮特殊处理
});
initdatas[key] = {
value: values.join(','),
valueSpan: names.join(','),
valueObj: replacesDatas
}
}
}
} else if (field.conditionType == 'DATE') {
let selectValue = '0', startValue = null, endValue = null;
if (!isEmpty(field.options)) selectValue = WeaTools.getSelectDefaultValue(field.options) || selectValue;
if (!isEmpty(field.value)) {
selectValue = field.value[field.domkey[0]];
startValue = field.value[field.domkey[1]];
endValue = field.value[field.domkey[2]];
}
initdatas[key] = {
value: [selectValue, startValue, endValue]
}
} else if (field.conditionType == 'SELECT') {
let value = WeaTools.getSelectDefaultValue(field.options);
if (field.value !== undefined) value = field.value;
if (value !== undefined) {
initdatas[key] = {
value: value
}
}
} else if (field.conditionType == 'SELECT_LINKAGE') {
let selectValue = WeaTools.getSelectDefaultValue(field.options) || '0';
initdatas[key] = {
value: [selectValue]
}
} else if (field.conditionType == "SCOPE") {
let sValue = field.startValue || '', eValue = field.endValue || '';
initdatas[key] = {
value: [sValue, eValue]
}
} else if (field.conditionType == 'RANGEPICKER') {
let sValue = field.startDate || field[field.domkey[0]] || '', eValue = field.endDate || field[field.domkey[1]] || '';
initdatas[key] = {
value: [sValue, eValue]
}
} else {
initdatas[key] = { value: field.value || "" };
}
});
});
return initdatas;
}
export const endDateDiff = (date,value) => {
let endDate = "2023-07-10";
$.ajax({
type: "get",
url: "api/proj/count/getTaskEndDate",
data: "begindate=" + date + "&value=" + value,
dataType: "text",
async: false,
success: function (data) {
endDate = data.endDate;
}
});
return endDate;
}
export const datediff = (sDate1, sDate2, sDate3, sDate4, manager, passnoworktime) => {
var aDate, oDate1, oDate2, iDays, odate3, odate4, tdate, otime1, otime2, oDatetime1, oDatetime2;
if (passnoworktime != 1) {
oDate1 = new Date(sDate1);
oDate2 = new Date(sDate2);
odate3 = new Date(sDate3);
odate4 = new Date(sDate4);
if (true || "" + oDate1.getFullYear() == "NaN") {
aDate = sDate1.split("-")
tdate = sDate3.split(":")
oDate1 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0]) //转换为12-18-2002格式
oDatetime1 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0] + " " + tdate[0] + ":" + tdate[1])
aDate = sDate2.split("-")
tdate = sDate4.split(":")
oDate2 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0])
oDatetime2 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0] + " " + tdate[0] + ":" + tdate[1])
}
if (oDate2 - oDate1 < 0) {
iDays = -1 //日期
} else if (oDate2 - oDate1 == 0) {
if (sDate4 < sDate3) {
iDays = -2 //时间
} else {
iDays = (Math.abs(oDatetime1 - oDatetime2) / 1000 / 60 / 60 / 24).toFixed(2)
}
} else {
iDays = (Math.abs(oDatetime1 - oDatetime2) / 1000 / 60 / 60 / 24).toFixed(2)
}
} else { //计算去掉不包含非工作日
$.ajax({
type: "post",
url: "/proj/process/GetWorkDays.jsp",
data: "begindate=" + sDate1 + "&begintime=" + sDate3 + "&enddate=" + sDate2 + "&endtime=" + sDate4 + "&manager=" + manager,
dataType: "text",
async: false,
success: function (data) {
iDays = data.trim();
}
});
}
return iDays;
}
export const openWindow = url => {
const width = screen.availWidth - 10;
const height = screen.availHeight - 50;
let szFeatures = 'top=0,';
szFeatures += 'left=0,';
szFeatures += `width=${width},`;
szFeatures += `height=${height},`;
szFeatures += 'directories=no,';
szFeatures += 'status=yes,toolbar=no,location=no,';
szFeatures += 'menubar=no,';
szFeatures += 'scrollbars=yes,';
szFeatures += 'resizable=yes';
window.open(url, '', szFeatures);
};
window.openFullWindowHaveBar = openWindow;
window.openFullWindowForXtable = openWindow;
window.prjOpenPage = function (routeUrl) {
window.open((window.ecologyContentPath || '')+"/spa/prj/index.html#" + routeUrl, "_blank");
}
//打开附件
window.openProjectDiscussDoc = (t, showid, prjid,auth_url) => {
openFullWindowHaveBar(`${window.ecologyContentPath || ''}/spa/document/index2file.jsp?id=${showid}&isOpenFirstAss=1&prjid=${prjid}${auth_url}`)
}
//打开附件
window.openProjectDiscussDownload = (t, showid, prjid,auth_url) => {
window.open(`${window.ecologyContentPath || ''}/weaver/weaver.file.FileDownload?fileid=${showid}&download=1&prjid=${prjid}${auth_url}`)
}
window.openProjectAppLink = (linkType, linkid, prjid,auth_url) => {
if (linkType == 'doc')
window.open(`${window.ecologyContentPath || ''}/spa/document/index.jsp?id=${linkid}&prjid=${prjid}${auth_url}`)
else if (linkType == 'task')
window.open(`${window.ecologyContentPath || ''}/spa/prj/index.html#/main/prj/taskCard?taskid=${linkid}`)
else if (linkType == 'crm')
window.open(`${window.ecologyContentPath || ''}/spa/crm/static/index.html#/main/crm/customerView?customerId=${linkid}`)
else if (linkType == 'workflow')
window.open(`${window.ecologyContentPath || ''}/spa/workflow/static4form/index.html#/main/workflow/req?fromModul=meeting&modulResourceId=${prjid}&requestid=${linkid}${auth_url}`)
else if (linkType == 'project')
window.open(`${window.ecologyContentPath || ''}/spa/prj/index.html#/main/prj/projectCard?prjid=${linkid}`)
else
return false
}
// openFullWindowForXtable("/spa/proj/index.html#/main/proj/taskCard?taskid="+1) //标签页打开
// prjOpenPage("/main/proj/taskCard?taskid="+1) //新窗口打开
export const cptAddFormRules = (condition = []) => {
condition.map(c => {
let items = [];
c.items.map((field, index) => {
if (field.conditionType == "BROWSER") {
if (field.browserConditionParam.viewAttr == "3") {
field.rules = 'required|string'// 校验规则
}
} else {
if (field.viewAttr == "3") {
field.rules = 'required|string'// 校验规则
}
}
})
});
return condition;
}
export const changeToThousand = (s) => {//千分位显示
if (s && s.toString().indexOf('-') == 0) {
if (isNaN(s)) {//js自己的方法检验数字
return s;
} else {
s = parseFloat(s);//去除首位输入的0,如002,小数不影响parseFloat字符串转数字
s = s.toString().replace('-', "");
s = s.replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(s))
s = s.replace(re, "$1,$2");
s = s.replace(/,(\d\d)$/, ".$1");
return '-' + s.replace(/^\./, "0.");
}
} else {
if (isNaN(s)) {//js自己的方法检验数字
return s;
} else {
s = parseFloat(s);//去除首位输入的0,如002,小数不影响parseFloat字符串转数字
s = s.toString();
s = s.replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(s))
s = s.replace(re, "$1,$2");
s = s.replace(/,(\d\d)$/, ".$1");
return s.replace(/^\./, "0.");
}
}
}
export function judgeIsNumber(val) {
if (val === null || typeof val === "undefined")
return false;
const reg = /^(-?\d+)(\.\d+)?$/;
return reg.test(val.toString());
}
export const convertFloatValue = (realval, decimals, transQfw, transAbs) => { //值 位数 是否转换千分位 绝对值
if (!judgeIsNumber(realval)) //非数值直接返回原始值
return realval;
realval = realval.toString();
var formatval = "";
if (decimals === 0) { //需取整
formatval = Math.round(parseFloat(realval)).toString();
} else {
var n = Math.pow(10, decimals);
formatval = (Math.round(parseFloat(realval) * n) / n).toString();
var pindex = formatval.indexOf(".");
var pointLength = pindex > -1 ? formatval.substr(pindex + 1).length : 0; //当前小数位数
if (decimals > pointLength) { //需补零
if (pindex == -1)
formatval += ".";
for (var i = 0; i < decimals - pointLength; i++) {
formatval += "0";
}
}
}
var index = formatval.indexOf(".");
var intPar = index > -1 ? formatval.substring(0, index) : formatval;
var pointPar = index > -1 ? formatval.substring(index) : "";
//取绝对值
if (transAbs === true) { //取绝对值
intPar = Math.abs(intPar).toString();
}
if (transQfw === true) { //整数位format成千分位
var reg1 = /(-?\d+)(\d{3})/;
while (reg1.test(intPar)) {
intPar = intPar.replace(reg1, "$1,$2");
}
}
formatval = intPar + pointPar;
return formatval;
}
export const imgZoom = (dom, parentSelector) => {
let imgList = jQuery(parentSelector + " img",dom);
imgList.each((index,img) => {
let $img = $(img);
if ($img.attr("resize")) {
return;
}
if ($img.parents(".ui-coomixPic").length > 0) {
return;
}
$img.css({"max-width": "400px", "max-height" : "400px"}).attr("resize", 1).coomixPic({
path:'/blog/js/weaverImgZoom/images',
preload:true,
blur: true,
left: getLabel(26921, '向左转'),
right: getLabel(26922, '向右转'),
source: getLabel(26923, '查看原图'),
hide: getLabel(26985, '收起')
});
});
};