weaver_trunk_cli/pc4mobx/prj/util/index.js

329 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 += '<img class="formImgPlay" src="' + item.filelink + '" data-imgsrc="' + (item.loadlink || item.filelink) + '" />'
}
if (name === 'Upload' && type === 'file') {
str += (`<a href='javascript:void(0)' style='cursor:pointer;text-decoration:underline !important;margin-right:8px'>${item.filename}</a><br>`)
}
if (name === 'Browser') {
str += (`<a href='javascript:void(0)' style='cursor:pointer;text-decoration:underline !important;margin-right:8px'>${item.name || item.showname}</a><br>`)
}
})
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, '收起')
});
});
};