import { WeaSearchGroup, WeaFormItem, WeaDatePicker, WeaTimePicker, WeaTools, WeaAlertPage, WeaUpload, WeaProgress, WeaRichText, WeaLocaleProvider, WeaInputEncrypt } from 'ecCom'; import { Button, Row, Col, InputNumber, Modal, message } from 'antd'; import { toJS } from "mobx" import { WeaSwitch } from "comsMobx" import { inject, observer } from 'mobx-react'; import PrjDateTime from '../comp/prj-data-time' import { datediff } from '../../util/index' import { isUndefined } from 'util'; const getKey = WeaTools.getKey; const getLabel = WeaLocaleProvider.getLabel; const view_basicToolBar = { uploadUrl: (window.ecologyContentPath || '')+"/api/blog/fileupload/uploadimage", startupFocus: false, toolbar: [], }; const basicToolBar = { uploadUrl: (window.ecologyContentPath || '')+"/api/blog/fileupload/uploadimage", startupFocus: false, toolbar: [ { name: 'markdown', items: ['Markdown'] }, { name: 'document', items: ['Source', '-', 'Save', 'NewPage', 'Preview', '-', 'Templates'] }, { name: 'clipboard', items: ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'] }, { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'CopyFormatting', 'RemoveFormat'] }, { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] }, { name: 'colors', items: ['TextColor', 'BGColor'] }, { name: 'tools', items: ['Maximize', 'ShowBlocks'] }, { name: 'insert', items: ['Image', 'Table', 'Smiley'] } ], }; @observer export default class TaskInfo extends React.Component { constructor(props) { super(props); this.state = { stageVisiable : 3 } } render() { const { taskInfo, setFormFields, setValidate, fieldinfo, isTimeShow } = this.props.listStore; const { form } = this.props; const { isFormInit } = form; let group = []; const formParams = form.getFormParams(); isFormInit && fieldinfo.map((c,i) => { let items = []; c.items.map(fields => { let hide = false; let dom; let hasunderline = false; //只读样式控制 let stylecss = { 'margin-right': '5px', 'margin-top': '6px' }; if (fields.viewAttr == "1" || (fields.conditionType == "BROWSER" && fields.browserConditionParam.viewAttr == "1")) { hasunderline = true; stylecss = { 'margin-right': '5px', 'margin-top': '16px' }; } if (fields.domkey[0] == "begindate") { dom = { setFormFields({ begindate__begintime: { value: v } }); this.workdayComputed(v, "begin") }} /> } else if (fields.domkey[0] == "enddate") { dom = { if (taskInfo.maxSubTaskEndDate == "" || typeof (taskInfo.maxSubTaskEndDate) == "undefined") { setFormFields({ enddate__endtime: { value: v } }); this.workdayComputed(v, "end") } else { if (new Date(v[0]) < new Date(taskInfo.maxSubTaskEndDate)) { // Modal.warning({ // title: getLabel(83887, "任务完成的最后时间小于其子任务完成的最后时间!"), // content: "" // }); message.error(getLabel(83887, "任务完成的最后时间小于其子任务完成的最后时间!")); setFormFields({ enddate__endtime: { value: [taskInfo.maxSubTaskEndDate, formParams.endtime] } }); this.workdayComputed([taskInfo.maxSubTaskEndDate, formParams.endtime], "end") } else { setFormFields({ enddate__endtime: { value: v } }); this.workdayComputed(v, "end") } } }} /> } else if (fields.domkey[0] == "actualbegindate") { dom = { setFormFields({ actualbegindate__actualbegintime: { value: v } }); this.onActualComputed(v, "begin") }} /> } else if (fields.domkey[0] == "actualenddate") { dom = { setFormFields({ actualenddate__actualendtime: { value: v } }); this.onActualComputed(v, "end") }} /> } else if (fields.domkey[0] == "finish") { if (fields.viewAttr == "1") { dom = {fields.befSpan || ""} } else { dom = { this.checkProgress(v); }} /> % } } else if (fields.conditionType == "RICHTEXT") { //多行文本 if(fields.viewAttr == "1"){ dom = WeaTools.EncryBase.desensitization(fields.value)? :
; }else{ dom = } } else if (fields.domkey[0] == "accessory") { let domkey = fields.domkey[0]; dom = { this.endDateComputed(v) }} />; } else if (fields.domkey[0] == "realmandays") { dom = { this.endActualDateComputed(v) }} />; } else if (fields.domkey[0] == "parentid") { dom = { this.onParentChange(v) }} />; }else { dom = ; } if (hasunderline) { items.push({ com: ( {dom} ), colSpan: 1, hide: hide }); } else { items.push({ com: ( {dom} ), colSpan: 1, hide: hide }); } }); group.push() }); return group; } workdayComputed = (arg, type) => { const { setFormFields, taskInfo: { passnoworktime, userid }, isTimeShow } = this.props.listStore; const { form } = this.props; const formParams = form.getFormParams() || {}; let res = ""; if (type == "begin") { if (arg[0] && formParams.enddate) { res = datediff(arg[0], formParams.enddate, isTimeShow=='1'?arg[1] || "00:00":"00:00", isTimeShow=='1'?formParams.endtime || "23:59":"23:59", userid, passnoworktime); } } else { if (arg[0] && formParams.begindate) { res = datediff(formParams.begindate, arg[0], isTimeShow=='1'?formParams.begintime || "00:00":"00:00", isTimeShow=='1'?arg[1] || "23:59":"23:59", userid, passnoworktime); } } setFormFields({ workday: { value: res } }); } onActualComputed = (arg, type) => { //maxSubTaskEndDate const { setFormFields, taskInfo: { passnoworktime, userid }, isTimeShow } = this.props.listStore; const { form } = this.props; const formParams = form.getFormParams() || {}; let res = "0"; if (type == "begin") { if (arg[0] && formParams.actualenddate) { res = datediff(arg[0], formParams.actualenddate, isTimeShow=='1'?arg[1] || "00:00":"00:00", isTimeShow=='1'?formParams.actualendtime || "23:59":"23:59", userid, passnoworktime); } } else { if (arg[0] && formParams.actualbegindate) { res = datediff(formParams.actualbegindate, arg[0], isTimeShow=='1'?formParams.actualbegintime || "00:00":"00:00", isTimeShow=='1'?arg[1] || "23:59":"23:59", userid, passnoworktime); } } setFormFields({ realmandays: { value: res } }) } endDateComputed = (value) => { const { setFormFields, taskInfo: { passnoworktime, userid } } = this.props.listStore; const { form } = this.props; const formParams = form.getFormParams() || {}; let b = typeof (formParams.begindate) == "undefined" ? "" : formParams.begindate; let e = typeof (formParams.enddate) == "undefined" ? "" : formParams.enddate; let w = typeof (formParams.workday) == "undefined" ? "" : formParams.workday; let bt = typeof (formParams.begintime) == "undefined" ? "" : formParams.begintime; let et = typeof (formParams.endtime) == "undefined" ? "" : formParams.endtime; let res = ""; let alldate = ""; if (bt == "") { bt = "00:00"; } if (et == "") { et = "23:59"; } if (w == "" && b != "" && e != "") { setFormFields({ enddate: { value: "" } }) } else if (w != "" && ((b != "" && e != "") || (b != "" && e == ""))) { if (w > 0) { if (passnoworktime != "1") { alldate = this.addEndDate(b, w, bt); } else { $.ajax({ type: "post", url: "/proj/process/GetDateByWorkLong.jsp", data: "method=getEndDate&workLong=" + w + "&begindate=" + b + "&begintime=" + bt + "&manager=" + userid, dataType: "text", async: false, success: function (data) { alldate = data.trim(); } }); } if(alldate == 'error'){ message.error(getLabel(84409, "一般工作时间未设置,请告知管理员!")); setFormFields({ enddate__endtime: { value: [] } }) }else{ let tmpesp = alldate.split(" "); setFormFields({ enddate__endtime: { value: [tmpesp[0], tmpesp[1]] } }) } } else { setFormFields({ workday: { value: "" }, enddate__endtime: { value: [] } }) } } else if (w != "" && b == "" && e != "") { if (w > 0) { if (passnoworktime != "1") { alldate = this.addBeginDate(e, -(w), et); } else { $.ajax({ type: "post", url: "/proj/process/GetDateByWorkLong.jsp", data: "method=getBeginDate&workLong=" + w + "&enddate=" + e + "&endtime=" + et + "&manager=" + userid, dataType: "text", async: false, success: function (data) { alldate = data.trim(); } }); } if(alldate == 'error'){ message.error(getLabel(84409, "一般工作时间未设置,请告知管理员!")); setFormFields({ enddate__endtime: { value: [] } }) }else{ let tmpesp = alldate.split(" "); setFormFields({ enddate__endtime: { value: [tmpesp[0], tmpesp[1]] } }) } } else { setFormFields({ workday: { value: "" }, begindate__begintime: { value: [] } }) } } } endActualDateComputed = (value) => { const { setFormFields, taskInfo: { passnoworktime, userid } } = this.props.listStore; const { form } = this.props; const formParams = form.getFormParams() || {}; let b = typeof (formParams.actualbegindate) == "undefined" ? "" : formParams.actualbegindate; let e = typeof (formParams.actualenddate) == "undefined" ? "" : formParams.actualenddate; let w = typeof (formParams.realmandays) == "undefined" ? "" : formParams.realmandays; let bt = typeof (formParams.actualbegintime) == "undefined" ? "" : formParams.actualbegintime; let et = typeof (formParams.actualendtime) == "undefined" ? "" : formParams.actualendtime; let res = ""; let alldate = ""; if (bt == "") { bt = "00:00"; } if (et == "") { et = "23:59"; } if (w == "" && b != "" && e != "") { setFormFields({ actualenddate: { value: "" } }) } else if (w != "" && ((b != "" && e != "") || (b != "" && e == ""))) { if (w > 0) { if (passnoworktime != "1") { alldate = this.addEndDate(b, w, bt); } else { $.ajax({ type: "post", url: "/proj/process/GetDateByWorkLong.jsp", data: "method=getEndDate&workLong=" + w + "&begindate=" + b + "&begintime=" + bt + "&manager=" + userid, dataType: "text", async: false, success: function (data) { alldate = data.trim(); } }); } if(alldate == 'error'){ message.error(getLabel(84409, "一般工作时间未设置,请告知管理员!")); setFormFields({ actualenddate__actualendtime: { value: [] } }) }else{ let tmpesp = alldate.split(" "); setFormFields({ actualenddate__actualendtime: { value: [tmpesp[0], tmpesp[1]] } }) } } else { setFormFields({ realmandays: { value: "" }, actualenddate__actualendtime: { value: [] } }) } } else if (w != "" && b == "" && e != "") { if (w > 0) { if (passnoworktime != "1") { alldate = this.addBeginDate(e, -(w), et); } else { $.ajax({ type: "post", url: "/proj/process/GetDateByWorkLong.jsp", data: "method=getBeginDate&workLong=" + w + "&enddate=" + e + "&endtime=" + et + "&manager=" + userid, dataType: "text", async: false, success: function (data) { alldate = data.trim(); } }); } if(alldate == 'error'){ message.error(getLabel(84409, "一般工作时间未设置,请告知管理员!")); setFormFields({ actualenddate__actualendtime: { value: [] } }) }else{ let tmpesp = alldate.split(" "); setFormFields({ actualenddate__actualendtime: { value: [tmpesp[0], tmpesp[1]] } }) } } else { setFormFields({ realmandays: { value: "" }, actualenddate__actualendtime: { value: [] } }) } } } addBeginDate = (dd, dadd, bt) => { let arr = dd.split("-"); let btt = bt.split(":"); let a = new Date(arr[0], arr[1] - 1, arr[2], btt[0], btt[1]).valueOf(); a = (a + dadd * 24 * 60 * 60 * 1000) + 60 * 1000; a = new Date(a); return this.format(a); } addEndDate = (dd, dadd, bt) => { let arr = dd.split("-"); let btt = bt.split(":"); let a = new Date(arr[0], arr[1] - 1, arr[2], btt[0], btt[1]).valueOf(); a = (a + dadd * 24 * 60 * 60 * 1000) - 60 * 1000; a = new Date(a); return this.format(a); } format = (date) => { let o = { "M+": date.getMonth() + 1, //month "d+": date.getDate(), //day "h+": date.getHours(), //hour "m+": date.getMinutes(), //minute "s+": date.getSeconds(), //second "q+": Math.floor((date.getMonth() + 3) / 3), //quarter "S": date.getMilliseconds() //millisecond } let format = "yyyy-MM-dd hh:mm"; if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); return format; } checkProgress = (value) => { //进度编辑校验 const { taskInfo, setFormFields } = this.props.listStore; if (Number(taskInfo.finishmax) == 99) { if (value > 99) { // Modal.warning({ // title: getLabel(383829, "该任务所必须的相关文档或者相关流程不存在,任务不能完成100%。"), // content: '', // }); message.error(getLabel(383829, "该任务所必须的相关文档或者相关流程不存在,任务不能完成100%。")); setFormFields({ finish: { value: 99 } }); } else { setFormFields({ finish: { value: value } }); } } else { if (value > 100) { setFormFields({ finish: { value: 100 } }); } else { setFormFields({ finish: { value: value } }); } } } onParentChange = (obj) => { const { resetStage } = this.props.listStore; if(obj.parentid.value != ""){ resetStage({viewAttr : 1},obj.parentid.value); }else{ resetStage({viewAttr : 3}); } } }