import React from 'react'; import { Button, Input, Spin, Table, message, DatePicker, Upload, Form, Modal, Select, Tabs, Tag, Tooltip } from "antd"; import $ from 'jquery/src/ajax'; import moment from 'moment'; import ResolutionDetail from "@/resolutionDetail"; import { getLiquidationStatus, getProcessStatus, splitUrl, getboutique, getTaskStatus, getApproval, getprovince, getProjectName, } from "@/tools.js"; import { ChooseList } from "../../order/orderNew/chooseList"; import PatentSchedule from './patentSchedule'; import DeclarationProgress from "../../../common/declarationProgress"; import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly"; import NewEditProject from "../../../common/projectOperation/newEditProject"; import OrderItemStatus from "../../../common/orderItemStatus"; import EnterpriseNameChange from "../../../common/enterpriseNameChange"; const { TabPane } = Tabs const MyTaskCount = Form.create()( React.createClass({ departmentList() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/organization/selectSuperId", data: {}, success: function (data) { let thedata = data.data; let theArr = []; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { thedata.map(function (item, index) { theArr.push({ key: index, name: item.name, id: item.id }); }); } this.setState({ departmentArr: theArr }); }.bind(this) }).always( function () { }.bind(this) ); }, loadData(pageNo) { this.setState({ visitModul: false, loading: true, ispage: pageNo, modalVisible: false }); let nameText = this.state.SuperArr; let superText = this.state.cid && typeof this.state.cid != "object" ? nameText[parseInt(this.state.cid)].id : ""; if (superText) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderProject/taskHoursList", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, name: this.state.customerName, //名称 taskId: this.state.idSearch, //订单编号 orderNo: this.state.orderNoSearch, starTime: this.state.releaseDate[0], //开始时间 endTime: this.state.releaseDate[1], //结束时间 contractNo: this.state.contractNoSearch, cid: superText, //业务分类 depId: this.state.departmenttList, //部门ID outsource: this.state.outsourceSearch }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; theArr.push({ key: i, id: thisdata.id, //ID orderNo: thisdata.orderNo, //订单编号 taskName: thisdata.taskName, //任务名称 userName: thisdata.userName, //客户名称 cname: thisdata.cname, //项目品类 taskStatus: thisdata.taskStatus, //任务状态 receiverName: thisdata.receiverName, //负责人 hours: thisdata.hours, //任务工时 depName: thisdata.depName, //派单公司 contractNo: thisdata.contractNo, signTime: thisdata.signTime, creteTime: thisdata.creteTime, projectStatus: thisdata.projectStatus, commodityPrice: thisdata.commodityPrice, //价格 commodityQuantity: thisdata.commodityQuantity, //数量 salesmanName: thisdata.salesmanName, //订单负责人 taskDistributionTime: thisdata.taskDistributionTime, taskEndTime: thisdata.taskEndTime, outsource: thisdata.outsource, splitStatus: thisdata.splitStatus, splitSuper: thisdata.splitSuper, splitId: thisdata.splitId }); } this.state.pagination.total = data.data.totalCount; } if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.total = 0; } this.setState({ dataSource: theArr, pageNo: pageNo, pagination: this.state.pagination, selectedRowKeys: [] }); }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); } else { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderProject/taskHoursList", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, name: this.state.customerName, //名称 taskId: this.state.idSearch, //订单编号 orderNo: this.state.orderNoSearch, starTime: this.state.releaseDate[0], //开始时间 endTime: this.state.releaseDate[1], //结束时间 contractNo: this.state.contractNoSearch, depId: this.state.departmenttList, //部门ID outsource: this.state.outsourceSearch }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; thisdata.key = i; theArr.push(thisdata); } this.state.pagination.total = data.data.totalCount; } if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.total = 0; } this.setState({ dataSource: theArr, pageNo: pageNo, pagination: this.state.pagination, selectedRowKeys: [] }); }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); } }, getInitialState() { return { loading: false, page: 1, releaseDate: [], declarationBatch: 1, dataInfor: {}, selectedRowKeys: [], timeRecordparse: {}, orgCodeUrl: [], paginations: false, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return "共" + total + "条数据"; } }, columns: [ { title: "合同编号", dataIndex: "contractNo", key: "contractNo" }, { title: "订单编号", dataIndex: "orderNo", key: "orderNo" }, { title: "项目编号", dataIndex: "id", key: "id", render: (text, record) => { if (record.splitStatus == 2) { return <span>{record.splitSuper + "-" + record.splitId}</span>; } else { return text; } } }, { title: "客户名称", dataIndex: "userName", key: "userName", render: text => { return ( <Tooltip title={text}> <div // style={{ // maxWidth: '150px', // overflow: 'hidden', // textOverflow: "ellipsis", // whiteSpace: 'nowrap', // }} >{text}</div> </Tooltip> ) } }, { title: "订单部门", dataIndex: "depName", key: "depName" }, { title: "订单负责人", dataIndex: "salesmanName", key: "salesmanName" }, { title: "项目类别", dataIndex: "cname", key: "cname" }, { title: "项目名称", dataIndex: "taskName", key: "taskName" }, { title: "项目负责人", dataIndex: "receiverName", key: "receiverName" }, { title: "项目价格(万元)", dataIndex: "commodityPrice", key: "commodityPrice" }, { title: "实际成本(万元)", dataIndex: "costAmount", key: "costAmount" }, { title: "已付成本(万元)", dataIndex: "partyAmount", key: "partyAmount" }, { title: "数量(个)", dataIndex: "commodityQuantity", key: "commodityQuantity" }, { title: "任务状态", dataIndex: "taskStatus", key: "taskStatus", render: text => { return getTaskStatus(text); } }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: text => { return getProjectName(text); } }, { title: "工时", dataIndex: "hours", key: "hours" }, { title: "是否外包", dataIndex: "outsource", key: "outsource", render: text => { if (text == 0) { return "否"; } else if (text == 1) { return "是"; } } }, { title: "签单日期", dataIndex: "signTime", key: "signTime" }, { title: "派单日期", dataIndex: "creteTime", key: "creteTime" }, { title: "分配时间", dataIndex: "taskDistributionTime", key: "taskDistributionTime" }, { title: "完成时间", dataIndex: "taskEndTime", key: "taskEndTime" } ], data: [], dataSource: [], columnsX: [ { title: "业务项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record) => { return <span> {text}<span style={{ color: "red" }}>{record.patentTypeName}</span>{"-" + record.id} <div> {record.cSort == 6 && record.projectType == 1 && <span>(含{record.htMember == 1 ? '高新会员&' : ''}{record.additionalDeduction == 1 ? '加计扣除&' : ''}{record.rdAwardsubsidy == 1 ? '研发奖补' : ''})</span>} {record.cSort == 6 && ([0, 3].indexOf(record.projectType) > -1) && <span>(仅提供单边会员服务)</span>} {record.cSort == 6 && record.projectType == 2 && <span>(仅填报表,仅咨询,不出备查资料)</span>} {record.cSort == 3 && <span>{record.technologyProjectType==0?'(简易项目)':record.technologyProjectType==1?'(市区级)':record.technologyProjectType==2?'(省级)':record.technologyProjectType==3?'(国家级)':''}</span>} {record.cSort == 8 ? (record.type != 2 && record.patentType == 1) ? <span>(变更)</span> : <span>{record.ordinaryRisk == 0 ? '(普通申请)' : record.ordinaryRisk == 1 ? '(风险代理)' : ''}</span> : ""} {record.type == 2 && <span>({record.days == 0 ? '普通' : record.days == 1 ? '加急' : ''}{record.scheme == 0 ? '&无方案' : record.scheme == 1 ? '&有方案' : ''})</span>} </div> </span> } }, { title: "项目类别", dataIndex: "cname", key: "cname" }, { title: "项目数量", dataIndex: "commodityQuantity", key: "commodityQuantity", render: (text, record) => { if (record.splitStatus == 1) { return ( <span> {text}{" "} <Tag color="#108ee9" onClick={e => { e.stopPropagation(); this.showRes(record); }} > 已拆 </Tag> </span> ); } else { return text; } } }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice" }, { title: "负责人", dataIndex: "contacts", key: "contacts" }, { title: "负责人电话", dataIndex: "contactsMobile", key: "contactsMobile" }, { title: "主要项目", dataIndex: "main", key: "main", render: text => { return text ? "是" : "否"; } }, { title: "总年限", dataIndex: "yearSum", key: "yearSum", render: (text, record) => { return ( <div>{["", "一年", "二年", "三年", "四年", "五年"][text]}</div> ); } }, { title: "年限", dataIndex: "serviceLife", key: "serviceLife", render: (text, record) => { return ( <div>{!!text && JSON.parse(text).toString()}</div> ); } }, { title: "本次派单", dataIndex: "serviceYear", key: "serviceYear", render: (text, record) => { return ( <div>{!text ? "" : text}</div> ); } }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: text => { return ( <Tooltip title={text}> <div style={{ width: 100, overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", }} >{text}</div> </Tooltip> ) } } ], columnsA: [ { title: "流程", dataIndex: "content", key: "content", align: "center" }, { title: "操作人", dataIndex: "aName", key: "aName", align: "center" }, { title: "时间", dataIndex: "createTimes", key: "createTimes", align: "center" } ], dataSourceX: [], dataSourceA: [], ContactsLists: [ { title: "批次", dataIndex: "num", key: "num" }, { title: "下证时间", dataIndex: "licenceTimes", key: "licenceTimes" }, { title: "下证数量", dataIndex: "alreadyNumber", key: "alreadyNumber" }, { title: "未下证数量", dataIndex: "notCount", key: "notCount" } ] }; }, //页面加载函数 componentWillMount() { this.loadData(); this.selectSuperId(); this.departmentList(); }, // //整行点击 tableRowClick(record) { this.state.RowData = record; if (record.taskName.substring(0, 5) === "软件著作权") { this.setState({ speVisible: true, id: record.id, splitStatus: record.splitStatus, splitSuper: record.splitSuper, splitId: record.splitId, dataArr: record, commodityQuantity: record.commodityQuantity }); } else { this.setState({ visible: true, splitStatus: record.splitStatus, splitSuper: record.splitSuper, splitId: record.splitId }); } this.setState({ isIso: record.taskName.indexOf("贯标") !== -1, }) this.xiangqing(record.id, record.taskName); this.xiangqings(record.orderNo); this.xiangmu(record.orderNo); this.loaduserss(record); }, //订单详情 xiangqing(id) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderProject/orderTaskDetail", data: { id: id }, success: function (data) { if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { let thisdata = data.data; this.setState({ certificationCorporate: thisdata.certificationCorporate,//认证费公司 certificationFee: thisdata.certificationFee,//认证费 ifCertificationFee: thisdata.ifCertificationFee,//是否包含认证费 id: thisdata.id, //ID orderNo: thisdata.orderNo, //订单编号 userName: thisdata.userName, //客户名称 taskName: thisdata.taskName, //任务名称 cname: thisdata.cname, //项目品类 contractNo: thisdata.contractNo, //合同编号 projectStatus: thisdata.projectStatus, //项目状态 taskStatus: thisdata.taskStatus, //任务状态 taskDate: thisdata.taskDate, //分配时间 taskComment: thisdata.taskComment, //说明 attachmentUrl: thisdata.attachmentUrl ? splitUrl( thisdata.attachmentUrl, ",", globalConfig.avatarHost + "/upload" ) : [], //图片地址 salesmanName: thisdata.salesmanName, //订单负责人 startDate: thisdata.startDate, //启动日期 endDate: thisdata.endDate, //结束日期 acceptDate: thisdata.acceptDate, //受理日期 reviewDate: thisdata.reviewDate, //评审日期 publicityDate: thisdata.publicityDate, //公示日期 licenceDate: thisdata.licenceDate, //发证日期 contacts: thisdata.contacts, //联系人 contactMobile: thisdata.contactMobile, //联系人电话 legalPerson: thisdata.legalPerson, //法人 legalPersonTel: thisdata.legalPersonTel, //法人电话 certificateNumber: thisdata.certificateNumber, //证书编号 status: thisdata.status, //状态 formRetrieve: thisdata.formRetrieve, //满意度表格 taskRefund: thisdata.taskRefund, //退单 refundContent: thisdata.refundContent, //退单信息 retrieveContent: thisdata.retrieveContent, //回收信息 arrivalMoney: thisdata.arrivalMoney, //是否到款 setUpAmount: thisdata.setUpAmount, //立项金额 declareUser: thisdata.declareUser, //账号 declarePwd: thisdata.declarePwd, //密码 depName: thisdata.depName, //订单部门 outsourceName: thisdata.outsourceName, //外包公司名称 outsourcePrice: thisdata.outsourcePrice, //外包价格 declarationBatch: thisdata.declarationBatch, bpType: thisdata.bpType,//0 正常 1专利 2软著 3审计 4双软 5高新 6商标 cSort: thisdata.sort, specialComment: thisdata.specialComment, urgentDay: thisdata.urgentDay, //有无材料 ifMaterial: thisdata.ifMaterial, //加急情况 spotCheckStatus: thisdata.spotCheckStatus, setUpStatus: thisdata.setUpStatus, setUpTime: thisdata.setUpTime, highTechStatus: thisdata.highTechStatus, acceptCount: thisdata.acceptCount, //受理数 certificatesCount: thisdata.certificatesCount, //授权数 rejectCount: thisdata.rejectCount, //驳回数 commodityQuantity: thisdata.commodityQuantity, //派单项目数 timeRecordparse: thisdata.timeRecord ? JSON.parse(thisdata.timeRecord) : {}, }); } }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); }, // 拆分详细 showRes(record) { this.setState({ resVisible: true, resRecord: record }); }, resCancel() { this.setState({ resVisible: false }); }, //订单详情 xiangqings(orderNos) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail", data: { orderNo: orderNos }, success: function (data) { let thisdata = data.data; let ProvinceCityArr = []; let ProvinceS = thisdata.locationProvince; //省 let citys = thisdata.locationCity; //市 let Areas = thisdata.locationArea; //区 ProvinceCityArr.push(ProvinceS, citys, Areas); if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { this.setState({ orderUid: thisdata.uid, examineName: thisdata.examineName, processStatus: thisdata.processStatus, //流程状态 liquidationStatus: thisdata.liquidationStatus, //结算状态 approval: thisdata.approval, //特批状态 orderRemarks: thisdata.orderRemarks, //订单留言 salesmanName: thisdata.salesmanName, //营销员名称 salesmanMobile: thisdata.salesmanMobile, //营销员电话 financeName: thisdata.financeName, //财务名称 financeMobile: thisdata.financeMobile, //财务电话 depName: thisdata.depName, //订单部门 locationProvince: thisdata.locationProvince, locationCity: thisdata.locationCity, locationArea: thisdata.locationArea, ProvinceCity: ProvinceCityArr, postalAddress: thisdata.postalAddress, //详细地址 outsource: thisdata.outsource, deleteSign: thisdata.deleteSign, }); } }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); }, //查看下证信息 loaduserss(record) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderProject/selectTaskProgress", data: { tid: record.id }, success: function (data) { let theArr = []; let thisData = []; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thisData = {}; } else { for (let i = 0; i < data.data.length; i++) { thisData = data.data[i]; theArr.push({ num: i + 1, key: i, id: thisData.id, //编号 alreadyNumber: thisData.alreadyNumber, //下证数 licenceTimes: thisData.licenceTimes, //下证时间 notCount: thisData.notCount, //未下证数 flag: true }); } this.setState({ contactList: theArr }); } }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); }, caozuorizhi() { this.setState({ visibleA: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderProject/TaskLogList", data: { id: this.state.id }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; theArr.push({ key: i, id: thisdata.id, //日志ID content: thisdata.content, //流程 taskId: thisdata.taskId, //任务ID aName: thisdata.aName, //负责人 createTimes: thisdata.createTimes //时间 }); } } this.setState({ dataSourceA: theArr }); }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); }, //关闭操作工时 visitCancelA() { this.setState({ visibleA: false }); }, //项目列表 xiangmu(orderNos) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/getOrderTask", data: { orderNo: orderNos }, success: function (data) { let theArr = []; if (data.error.length || data.data.list == "") { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; thisdata.key = i; theArr.push(thisdata); } } this.setState({ dataSourceX: theArr }); }.bind(this) }).always( function () { this.setState({ loading: false }); }.bind(this) ); }, //关闭输入理由框 noCancel() { this.setState({ noVisible: false }); }, //搜索 search() { this.setState({ //signBillVisible:false }); this.loadData(); }, //重置 reset() { this.setState({ signBillVisible: false }); this.state.idSearch = ""; this.state.customerName = ""; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.state.orderNoSearch = ""; this.state.departmenttList = []; this.state.cid = []; this.state.contractNoSearch = ""; this.state.outsourceSearch = []; this.setState({ urgentDay: '', //有无方案 ifMaterial: '', //加急情况 specialComment: '', //特别说明 spotCheckStatus: '', setUpStatus: '', setUpTime: '', highTechStatus: '', }) this.loadData(this.state.page); }, resets() { this.state.orderNo = ""; this.state.customerName = ""; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; }, getOrgCodeUrl(e) { this.setState({ orgCodeUrl: e }); }, setColor() { $(".userName span").after( "(<span class='ruanzhu'>软著数</span>/<span class='xiazheng'>下证数</span>)" ); }, closeDesc(e, s) { this.state.showDesc = e; if (s) { this.loadData(this.state.page); } }, closeAssign(e, s) { this.state.roleName = ""; this.state.assignVisible = e; if (s) { this.loadData(this.state.page); } }, nextCancel() { this.setState({ addnextVisible: false }); }, //点击打卡项目详情 tableRowClickX(record) { this.setState({ jid: record.id, //项目ID kid: record.commodityId, //商品ID commodityName: record.commodityName, //金额 commodityPrice: record.commodityPrice, //金额 commodityQuantity: record.commodityQuantity, //数量 taskComment: record.taskComment, //备注 main: record.main.toString(), //是否为主要 addnextVisible: true, dataInfor: record, addState: 0 }); }, //关闭详情 visitCancel() { this.setState({ visible: false, speVisible: false }); this.resets(); }, visitOk() { this.setState({ visible: false }); this.resets(); }, //关闭详情 visitCancels() { this.setState({ visibles: false }); this.resets(); }, //导出 exportExec() { let nameText = this.state.SuperArr; let superText = this.state.cid && typeof this.state.cid != "object" ? nameText[parseInt(this.state.cid)].id : ""; if (superText) { var data = { orderNo: this.state.orderNoSearch ? this.state.orderNoSearch : undefined, name: this.state.customerName ? this.state.customerName : undefined, //订单负责人 taskId: this.state.idSearch ? this.state.idSearch : undefined, //订单编号 starTime: this.state.releaseDate[0] ? this.state.releaseDate[0] : undefined, endTime: this.state.releaseDate[1] ? this.state.releaseDate[1] : undefined, depId: this.state.departmenttList ? this.state.departmenttList : undefined, cid: superText }; } else { var data = { orderNo: this.state.orderNoSearch ? this.state.orderNoSearch : undefined, name: this.state.customerName ? this.state.customerName : undefined, //订单负责人 taskId: this.state.idSearch ? this.state.idSearch : undefined, //订单编号 starTime: this.state.releaseDate[0] ? this.state.releaseDate[0] : undefined, endTime: this.state.releaseDate[1] ? this.state.releaseDate[1] : undefined, depId: this.state.departmenttList ? this.state.departmenttList : undefined }; } window.location.href = globalConfig.context + "/api/admin/orderProject/exportMyTaskList?" + $.param(data); }, visitOks() { this.setState({ visibles: false }); this.resets(); }, selectSuperId() { this.state.data = []; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/ProjectSize/getAllCname", data: { flag: 0 }, success: function (data) { let theArr = []; let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } var contactIds = []; for (var i = 0; i < data.data.length; i++) { let theData = data.data[i]; theArr.push( <Select.Option value={i.toString()} key={theData.cname}> {theData.cname} </Select.Option> ); } this.setState({ SuperArr: thedata, contactsOption: theArr, orderStatusOptions: data.data }); }.bind(this) }).always( function () { this.loadData(this.state.ispage); }.bind(this) ); }, changeList(arr) { const newArr = []; this.state.columns.forEach(item => { arr.forEach(val => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr }); }, render() { const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 } }; const utils = { getSatisfaction: function (num) { switch (num) { case 0: return "未收回"; case 1: return "已收回"; default: return "其它"; } }, getChargeback: function (num) { switch (num) { case 0: return "已完成"; case 1: return "未完成"; default: return "其它"; } } }; const isWai = [ { id: 0, name: "非外包" }, { id: 1, name: "外包" } ]; const FormItem = Form.Item; const { RangePicker } = DatePicker; const departmentArr = this.state.departmentArr || []; return ( <div className="user-content"> {this.state.resVisible ? ( <ResolutionDetail cancel={this.resCancel} detail={this.state.resRecord} visible={this.state.resVisible} id={this.state.resRecord.orderNo} /> ) : ( "" )} <div className="content-title" style={{ marginBottom: 10 }}> <span style={{ fontWeight: 900, fontSize: 16 }}>工时数据统计</span> </div> <div className="user-search"> <Tabs defaultActiveKey="1" onChange={this.callback} className="test" > <TabPane tab="搜索" key="1"> <Input placeholder="订单编号" style={{ width: "150px", marginRight: 10 }} value={this.state.orderNoSearch} onChange={(e) => { this.setState({ orderNoSearch: e.target.value, }); }} /> <Input placeholder="合同编号" style={{ width: "150px", marginRight: 10 }} value={this.state.contractNoSearch} onChange={(e) => { this.setState({ contractNoSearch: e.target.value, }); }} /> <Input placeholder="客户名称" style={{ width: "150px", marginBottom: "10px", marginLeft: 10, marginRight: 10, }} value={this.state.customerName} onChange={(e) => { this.setState({ customerName: e.target.value }); }} /> <Input placeholder="任务编号" style={{ width: "150px", marginRight: 10 }} value={this.state.idSearch} onChange={(e) => { this.setState({ idSearch: e.target.value }); }} /> <Select placeholder="订单部门" style={{ width: 200, marginRight: 10 }} value={this.state.departmenttList} onChange={(e) => { this.setState({ departmenttList: e }); }} > {departmentArr.map(function (item) { return ( <Select.Option key={item.id}>{item.name}</Select.Option> ); })} </Select> <Select placeholder="项目类别" style={{ width: 120, marginRight: "10px" }} value={this.state.cid} onChange={(e) => { this.setState({ cid: e }); }} notFoundContent="未获取到上级品类列表" > {this.state.contactsOption} </Select> <Select placeholder="是否外包" style={{ width: 100, marginRight: "10px" }} value={this.state.outsourceSearch} onChange={(e) => { this.setState({ outsourceSearch: e }); }} > {isWai.map(function (item) { return ( <Select.Option key={item.id}>{item.name}</Select.Option> ); })} </Select> <span style={{ marginRight: "10px" }}>合同签订时间 :</span> <RangePicker value={[ this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null, this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null, ]} onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} /> <Button type="primary" onClick={this.search} style={{ marginLeft: "10px", marginRight: 10, marginBottom: 10, }} > 搜索 </Button> <Button onClick={this.reset}>重置</Button> </TabPane> <TabPane tab="导出" key="2"> <Button type="primary" onClick={this.exportExec} style={{ margin: 10 }} > 导出工时数据 </Button> </TabPane> <TabPane tab="更改表格显示数据" key="3"> <div style={{ marginLeft: 10 }}> <ChooseList columns={this.state.columns} changeFn={this.changeList} changeList={this.state.changeList} top={55} margin={11} /> </div> </TabPane> </Tabs> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={ this.state.changeList ? this.state.changeList : this.state.columns } dataSource={this.state.dataSource} pagination={this.state.pagination} onRowClick={this.tableRowClick.bind(this)} scroll={{ x: "max-content", y: 0 }} bordered size="small" /> </Spin> </div> </div> <Modal className="customeDetails" footer="" title="项目概况" width="1200px" visible={this.state.visible} onOk={this.visitOk} onCancel={this.visitCancel} > <Form layout="horizontal" onSubmit={this.handleSubmit} id="demand-form" style={{ paddingBottom: "00px" }} > <Spin spinning={this.state.loading}> <div className="clearfix"> <div style={{ position: "absolute", top: '-52px', left: '81px', zIndex: 10000 }}> <OrderItemStatus deleteSign={this.state.deleteSign} /> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="项目状态" > <span>{getProjectName(parseInt(this.state.projectStatus))}</span> <Button type="primary" size="small" style={{ marginTop: '5px', position: 'absolute' }} onClick={this.caozuorizhi} > 操作日志 </Button> </FormItem> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="是否特批" > <span>{getApproval(this.state.approval)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="结算状态" > <span> {getLiquidationStatus(this.state.liquidationStatus)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="流程状态" > <span>{getProcessStatus(this.state.processStatus, this.state.examineName, this.state.approval)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="订单编号" > <span>{this.state.orderNo}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="满意度表格" > <span> {utils.getSatisfaction(this.state.formRetrieve)} </span> </FormItem> { <FormItem className="half-item" {...formItemLayout} label="(满意度)备注" > <span>{this.state.retrieveContent}</span> </FormItem> } {/*<FormItem*/} {/* className="half-item"*/} {/* {...formItemLayout}*/} {/* label="退单"*/} {/*>*/} {/* <span>{utils.getChargeback(this.state.taskRefund)}</span>*/} {/*</FormItem>*/} </div> <div className="clearfix"> <div style={{ paddingLeft: '8%', }}> <div style={{ color: '#000', fontWeight: 500 }}> 特别说明 <span style={{ color: '#58a3ff', }}>(针对项目的特殊情况说明)</span> </div> <div style={{ display: 'flex', }}> <span style={{ paddingRight: '10px', whiteSpace: "nowrap" }}>备注:</span> <span style={{ flex: 1, wordBreak: 'break-all', }}>{this.state.specialComment}</span> </div> </div> {/*<FormItem*/} {/* className="half-item"*/} {/* {...formItemLayout}*/} {/* label="(退单)备注"*/} {/*>*/} {/* <span>{this.state.refundContent}</span>*/} {/*</FormItem>*/} </div> <div className="clearfix"> <h3 className="sub-title">任务信息</h3> {/*0通用 1专利 2软著 3审计 4双软 5高新 6商标*/} {/*贯标需要显示*/} { this.state.isIso ? <div> <FormItem className="half-item" {...formItemLayout} label="认证费" > <span> {this.state.ifCertificationFee === 1 ? '包含' : '不包含'} </span> </FormItem> {this.state.ifCertificationFee === 1 ? <FormItem className="half-item" {...formItemLayout} label="认证费(万元)" > <span> {this.state.certificationFee} </span> </FormItem> : null} {this.state.ifCertificationFee === 1 ? <FormItem className="half-item" {...formItemLayout} label="" /> : null} {this.state.ifCertificationFee === 1 ? <FormItem className="half-item" {...formItemLayout} label="付款公司名称" > <span> {this.state.certificationCorporate} </span> </FormItem> : null} </div> : null } <FormItem className="half-item" {...formItemLayout} label="任务编号" > <span> {this.state.splitStatus == 2 ? this.state.splitSuper + "-" + this.state.splitId : this.state.id} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="任务名称" > <span>{this.state.taskName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="任务状态" > <span>{getTaskStatus(this.state.taskStatus)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="任务类别" > <span>{this.state.cname}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="证书编号" > <span>{this.state.certificateNumber}</span> </FormItem> </div> {/*{this.state.outsource === 1 ? (*/} {/* <div className="clearfix">*/} {/* <h3 className="sub-title">外包信息</h3>*/} {/* <FormItem*/} {/* className="half-item"*/} {/* {...formItemLayout}*/} {/* label="外包公司"*/} {/* >*/} {/* <span>{this.state.outsourceName}</span>*/} {/* </FormItem>*/} {/* <FormItem*/} {/* className="half-item"*/} {/* {...formItemLayout}*/} {/* label="外包成本(万元)"*/} {/* >*/} {/* <span>{this.state.outsourcePrice}</span>*/} {/* </FormItem>*/} {/* </div>*/} {/*) : (*/} {/* ""*/} {/*)}*/} {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/} <div className="clearfix"> <h3 className="sub-title">联系信息</h3> <FormItem className="half-item" {...formItemLayout} label="客户名称" > <span>{this.state.userName}</span> <EnterpriseNameChange type='journal' style={{ marginLeft: 10 }} enterpriseId={this.state.orderUid} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业法人" > <span>{this.state.legalPerson}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人电话" > <span>{this.state.legalPersonTel}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="客户联系人" > <span>{this.state.contacts}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系人电话" > <span>{this.state.contactMobile}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业地址" > <span> {getprovince(this.state.locationProvince)}/ {getprovince(this.state.locationCity)}/ {getprovince(this.state.locationArea)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="" ></FormItem> <FormItem className="half-item" {...formItemLayout}> <span style={{ paddingLeft: "12em" }}> {this.state.postalAddress} </span> </FormItem> </div> {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/} <div className="clearfix"> <h3 className="sub-title">订单负责人信息</h3> <FormItem className="half-item" {...formItemLayout} label="负责人" > <span> {this.state.salesmanName + "(" + this.state.depName + ")"} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="负责人电话" > <span>{this.state.salesmanMobile}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="财务负责人" > <span>{this.state.financeName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="财务负责人电话" > <span>{this.state.financeMobile}</span> </FormItem> </div> <div className="clearfix"> <h3 className="sub-title">申报系统账户信息</h3> {/*<span style={{color:'red'}}>注:仅技术部可见</span>*/} <FormItem className="half-item" {...formItemLayout} label="用户名" > <span>{this.state.declareUser ? "*" : ""}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="密码" > <span>{this.state.declarePwd ? "*" : ""}</span> </FormItem> </div> <div className="clearfix"> <h3 className="sub-title">项目申报进度</h3> <DeclarationProgress timeRecordparse={this.state.timeRecordparse} startDate={this.state.startDate} taskDate={this.state.taskDate} list={[ { id: 4, name: '完成时间', value: this.state.endDate }, { id: 6, name: '受理时间', value: this.state.acceptDate }, { id: 8, name: '公示时间', value: this.state.publicityDate }, { id: 10, name: '发证时间', value: this.state.licenceDate }, { id: 15, name: '立项金额', value: this.state.setUpAmount } ]} /> {/*专利显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/} { this.state.bpType === 1 || this.state.bpType === 6 ? <div> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 16 }} label="是否高新企业" > <span> { this.state.highTechStatus === 1 ? '是' : this.state.highTechStatus === 0 ? '否' : '' } </span> </FormItem> <FormItem /> <PatentSchedule readOnly bpType={this.state.bpType} taskId={this.state.id} acceptCount={this.state.acceptCount} certificatesCount={this.state.certificatesCount} rejectCount={this.state.rejectCount} commodityQuantity={this.state.commodityQuantity} refresh={() => { this.xiangqing(this.state.id) }} /> </div> : <div> {/*高新和科技项目显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/} {/*cSort: 3 科技项目 6: 会员*/} {(this.state.bpType === 5 || this.state.cSort === 3) && <FormItem className="half-item" {...formItemLayout} label="申报批次" > <span>{this.state.declarationBatch}</span> </FormItem>} {/*只有科技项目才有是否到款*/} {/*cSort: 3 科技项目 6: 会员*/} {this.state.cSort === 3 && <FormItem className="half-item" {...formItemLayout} label="是否到款" > <span> {this.state.arrivalMoney ? "已到企业" : "未到企业"} </span> </FormItem>} </div>} </div> {this.state.bpType !== 1 && this.state.bpType !== 6 ? <div className="clearfix"> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="附件" > <Upload className="demandDetailShow-upload" listType="picture-card" fileList={this.state.attachmentUrl} onPreview={(file) => { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} /> <Modal maskClosable={false} footer={null} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false }); }} > <img alt="" style={{ width: "100%" }} src={this.state.previewImage || ""} /> </Modal> </FormItem> </div> : null} {this.state.bpType !== 1 && this.state.bpType !== 6 ? <div className="clearfix"> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 16 }} label="项目说明" > <span>{this.state.taskComment}</span> </FormItem> </div> : null} <div> <h3 className="sub-title">项目业务</h3> {this.state.processStatus == 0 ? ( <Button type="primary" onClick={this.addDetailed} style={{ float: "right", marginRight: "50px", marginBottom: "15px", }} > 添加项目明细 </Button> ) : ( "" )} </div> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsX} dataSource={this.state.dataSourceX} pagination={this.state.paginations} onRowClick={this.tableRowClickX} bordered size={"small"} /> </Spin> </div> </div> </Spin> </Form> </Modal> <Modal width="800px" title="操作日志" footer="" className="admin-desc-content" > <div className="patent-table patent-table-center"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsY} bordered size={"small"} /> </Spin> </div> </Modal> <Modal maskClosable={false} visible={this.state.speVisible} onOk={this.visitOk} onCancel={this.visitCancel} width="1200px" title="项目概况" footer="" className="admin-desc-content" > <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="项目状态" > <span>{getProjectName(parseInt(this.state.projectStatus))}</span> <Button type="primary" size="small" style={{ marginTop: '5px', position: 'absolute' }} onClick={this.caozuorizhi} > 操作日志 </Button> </FormItem> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="是否特批" > <span>{getApproval(this.state.approval)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="结算状态" > <span> {getLiquidationStatus(this.state.liquidationStatus)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="流程状态" > <span>{getProcessStatus(this.state.processStatus, this.state.examineName, this.state.approval)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="订单编号" > <span>{this.state.orderNo}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="满意度表格" > <span>{utils.getSatisfaction(this.state.formRetrieve)}</span> </FormItem> { <FormItem className="half-item" {...formItemLayout} label="(满意度)备注" > <span>{this.state.retrieveContent}</span> </FormItem> } {/*<FormItem className="half-item" {...formItemLayout} label="退单">*/} {/* <span>{utils.getChargeback(this.state.taskRefund)}</span>*/} {/*</FormItem>*/} </div> {/*软著显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/} {this.state.bpType === 2 ? <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="加急天数" > { this.state.urgentDay === 1 ? '是' : this.state.urgentDay === 0 ? '否' : '' } </FormItem> <FormItem className="half-item" {...formItemLayout} label="有无方案" > { this.state.ifMaterial === 1 ? '是' : this.state.ifMaterial === 0 ? '否' : '' } </FormItem> </div> : null} <div className="clearfix"> <div style={{ paddingLeft: '8%', }}> <div style={{ color: '#000', fontWeight: 500 }}> 特别说明 <span style={{ color: '#58a3ff', }}>(针对项目的特殊情况说明)</span> </div> <div style={{ display: 'flex', }}> <span style={{ paddingRight: '10px', whiteSpace: "nowrap" }}>备注:</span> <span style={{ flex: 1, wordBreak: 'break-all', }}>{this.state.specialComment}</span> </div> </div> { // <FormItem // className="half-item" // {...formItemLayout} // label="(退单)备注" // > // <span>{this.state.refundContent}</span> // </FormItem> } </div> <div className="clearfix"> <h3 className="sub-title">任务信息</h3> <FormItem className="half-item" {...formItemLayout} label="任务编号" > <span> {this.state.splitStatus == 2 ? this.state.splitSuper + "-" + this.state.splitId : this.state.id} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="任务名称" > <span>{this.state.taskName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="任务状态" > <span>{getTaskStatus(this.state.taskStatus)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="任务类别" > <span>{this.state.cname}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="证书编号" > <span>{this.state.certificateNumber}</span> </FormItem> </div> {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/} <div className="clearfix"> <h3 className="sub-title">联系信息</h3> <FormItem className="half-item" {...formItemLayout} label="客户名称" > <span>{this.state.userName}</span> <EnterpriseNameChange type='journal' style={{ marginLeft: 10 }} enterpriseId={this.state.orderUid} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业法人" > <span>{this.state.legalPerson}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人电话" > <span>{this.state.legalPersonTel}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="客户联系人" > <span>{this.state.contacts}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系人电话" > <span>{this.state.contactMobile}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业地址" > <span> {getprovince(this.state.locationProvince)}/ {getprovince(this.state.locationCity)}/ {getprovince(this.state.locationArea)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="" ></FormItem> <FormItem className="half-item" {...formItemLayout} label=""> <span style={{ paddingLeft: "12em" }}> {this.state.postalAddress} </span> </FormItem> </div> {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/} <div className="clearfix"> <h3 className="sub-title">订单负责人信息</h3> <FormItem className="half-item" {...formItemLayout} label="负责人" > <span> {this.state.salesmanName + "(" + this.state.depName + ")"} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="负责人电话" > <span>{this.state.salesmanMobile}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="财务负责人" > <span>{this.state.financeName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="财务负责人电话" > <span>{this.state.financeMobile}</span> </FormItem> </div> <div className="clearfix" style={{ marginTop: "10px" }}> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="附件" > <Upload className="demandDetailShow-upload" listType="picture-card" fileList={this.state.attachmentUrl} onPreview={(file) => { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} ></Upload> <Modal maskClosable={false} footer={null} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false }); }} > <img alt="" style={{ width: "100%" }} src={this.state.previewImage || ""} /> </Modal> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 16 }} label="备注" > <span>{this.state.taskComment}</span> </FormItem> </div> <div className="clearfix"> <h3 className="sub-title">项目申报进度</h3> <DeclarationProgress timeRecordparse={this.state.timeRecordparse} startDate={this.state.startDate} taskDate={this.state.taskDate} list={[ { id: 4, name: '完成时间', value: this.state.endDate }, { id: 6, name: '受理时间', value: this.state.acceptDate }, { id: 8, name: '公示时间', value: this.state.publicityDate }, { id: 10, name: '发证时间', value: this.state.licenceDate }, { id: 15, name: '立项金额', value: this.state.setUpAmount } ]} /> {/*高新和科技项目显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/} {/*cSort: 3 科技项目 6: 会员*/} {(this.state.bpType === 5 || this.state.cSort === 3) && <FormItem className="half-item" {...formItemLayout} label="申报批次" > <span>{this.state.declarationBatch}</span> </FormItem>} <FormItem className="half-item" {...formItemLayout} label="软著派单数量" > <span>{this.state.commodityQuantity}</span> </FormItem> <div className="patent-table patent-table-center"> <Spin spinning={this.state.loading}> <Table columns={this.state.ContactsLists} dataSource={this.state.contactList} bordered size="small" pagination={false} /> </Spin> </div> </div> <div className="clearfix"> <h3 className="sub-title">项目业务</h3> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsX} dataSource={this.state.dataSourceX} pagination={this.state.paginations} onRowClick={this.tableRowClickX} bordered size="small" /> </Spin> </div> </div> </Modal> <Modal width="800px" visible={this.state.visibleA} onCancel={this.visitCancelA} title="操作日志" footer="" className="admin-desc-content" > <div className="patent-table patent-table-center"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsA} dataSource={this.state.dataSourceA} bordered size="small" pagination={false} /> </Spin> </div> </Modal> {/* {this.state.addnextVisible && <ProjectDetailsReadOnly infor={this.state.dataInfor} visible={this.state.addnextVisible} onCancel={this.nextCancel} />} */} { // 项目业务详情 this.state.addnextVisible && <NewEditProject readOnly={true} visible={this.state.addnextVisible} dataInfor={this.state.dataInfor} onCancel={this.nextCancel} /> } </div> ); } }) ); export default MyTaskCount;