import React, { Component } from "react"; import { message, Input, Select, Button, Spin, Table, Tabs, DatePicker, AutoComplete, Modal, } from "antd"; import $ from "jquery/src/ajax"; import { ShowModal, } from '@/tools' import { projectState, publishStatus } from '@/dataDic.js' import moment from 'moment'; import ShowModalDiv from '@/showModal.jsx'; import './membershipTable.less' import Progress from './progress' const { TabPane } = Tabs const { RangePicker, } = DatePicker; class MembershipTable extends Component { constructor(props) { super(props); this.state = { visible: false, tid: '', searchValues: { roleStatus: adminData.isSuperAdmin ? '0' : '1' }, loading: false, newData: [], columns: [ { title:
序号
, dataIndex: 'xh', key: 'xh', width: 44, fixed: 'left', render: (text, record, index) => { return ( {index + 1} ) } }, { title:
会员客户基本信息
, children: [ { title:
派单信息
, children: [ { title:
客户名称
, dataIndex: 'userName', key: 'userName', width: 140, }, { title:
合同编号
, dataIndex: 'contractNo', key: 'contractNo', width: 110, }, { title:
服务内容
, dataIndex: 'taskList', key: 'taskList', width: 140, render: (text, record) => { return (
{ !!text && text.map(item =>
{item.taskName}
) }
) } }, { title:
服务年份
, dataIndex: 'serviceYear', key: 'serviceYear', width: 80, }, { title:
会员级别
, dataIndex: 'memberLvl', key: 'memberLvl', width: 44, render: (text, record) => { return (
{['', 'A', 'AA', 'AAA'][text]}
) } }, ], }, { title:
服务团队
, children: [ { title:
业务负责人
, dataIndex: 'taskName', key: 'taskName', width: 80, }, { title:
项目负责人
, dataIndex: 'projectName', key: 'projectName', width: 80, }, { title:
技术咨询师
, dataIndex: 'technologyName', key: 'technologyName', width: 80, }, { title:
财税咨询师
, dataIndex: 'financeTaxationName', key: 'financeTaxationName', width: 80, }, ], }, { title:
基础数据
, children: [ { title:
上上年度
, children: [ { title:
年份
, dataIndex: 'beforeLastYear', key: 'beforeLastYear', width: 44, }, { title:
销售收入
, dataIndex: 'beforeLastRdSalesAmount', key: 'beforeLastRdSalesAmount', width: 44, }, { title:
高新研发费用
, dataIndex: 'beforeLastRdBudget', key: 'beforeLastRdBudget', width: 44, } ], }, { title:
上年度
, children: [ { title:
年份
, dataIndex: 'lastYear', key: 'lastYear', width: 44, }, { title:
销售收入
, dataIndex: 'lastRdSalesAmount', key: 'lastRdSalesAmount', width: 44, }, { title:
高新研发费用
, dataIndex: 'lastRdBudget', key: 'lastRdBudget', width: 44, } ], }, { title:
本年度企业人员情况
, children: [ { title:
职工总数
, dataIndex: 'workersNumber', key: 'workersNumber', width: 44, }, { title:
科技人员
, dataIndex: 'technologyNumber', key: 'technologyNumber', width: 44, }, { title:
占比
, dataIndex: 'workersRate', key: 'workersRate', width: 60, render: (text, record) => { return ( {text || 0}% ) } } ], }, ], } ], }, { title:
 
, children: [ { title:
 
, children: [ { title:
科研立项与研发投入
, children: [ { title:
研发立项数量
, dataIndex: 'projectApprovalNumber', key: 'projectApprovalNumber', width: 44, }, { title:
年度研发预算总额
, dataIndex: 'rdBudget', key: 'rdBudget', width: 44, }, { title:
年度销售收入预计
, dataIndex: 'rdSalesAmount', key: 'rdSalesAmount', width: 44, }, { title:
本年度研发费用预算占比
, dataIndex: 'rdBudgetRate', key: 'rdBudgetRate', width: 60, render: (text, record) => { return ( {text || 0}% ) } }, { title:
三年研发费用占比预估
, dataIndex: 'threeYearsRdBudgetRate', key: 'threeYearsRdBudgetRate', width: 60, render: (text, record) => { return ( {text || 0}% ) } }, ] }, { title:
实时实际情况
, children: [ { title:
数据周期
, dataIndex: 'dataCycle', key: 'dataCycle', width: 70, render: (text, record) => { return ( {['第1季度', '上半年', '前3季度', '全年'][text]} ) } }, { title:
已立项RD数量
, dataIndex: 'actualRdNumber', key: 'actualRdNumber', width: 44, }, { title:
委外项目数量
, dataIndex: 'actualOutsourcingNumber', key: 'actualOutsourcingNumber', width: 44, }, { title:
合作项目数量
, dataIndex: 'actualCooperateNumber', key: 'actualCooperateNumber', width: 44, }, { title:
已归集研发费用总额
, dataIndex: 'actualRdAmount', key: 'actualRdAmount', width: 44, }, { title:
研发预算完成度
, dataIndex: 'rdCompletionProgress', key: 'rdCompletionProgress', width: 44, }, { title:
年度实际销售收入
, dataIndex: 'actualSalesAmount', key: 'actualSalesAmount', width: 44, }, { title:
本年度研发费用占比
, dataIndex: 'actualRdRate', key: 'actualRdRate', width: 60, render: (text, record) => { return ( {text || 0}% ) } }, { title:
三年研发费用占比
, dataIndex: 'threeYearsActualRdRate', key: 'threeYearsActualRdRate', width: 60, render: (text, record) => { return ( {text || 0}% ) } }, ] }, ] }, { title:
报表报送
, children: [ { title:
火炬统计
, dataIndex: 'torchStatus', key: 'torchStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.torchOther)} ) } }, { title:
统计年报
, dataIndex: 'statisticsStatus', key: 'statisticsStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.statisticsOther)} ) } }, { title:
高企年报
, dataIndex: 'chStatus', key: 'chStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.chOther)} ) } }, { title:
汇算清缴
, children: [ { title:
是否完成
, dataIndex: 'finalSettlementStatus', key: 'finalSettlementStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.finalSettlementOther)} ) } }, { title:
加扣RD数量
, dataIndex: 'reportFormsRdNumber', key: 'reportFormsRdNumber', width: 44, }, { title:
知识产权加扣费用
, dataIndex: 'intellectualPropertyAmount', key: 'intellectualPropertyAmount', width: 44, }, { title:
加扣研发费用金额
, dataIndex: 'reportRdAmount', key: 'reportRdAmount', width: 44, }, ] }, ] }, { title:
研发奖补
, children: [ { title:
研发准备金备案
, dataIndex: 'rdReservesStatus', key: 'rdReservesStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.rdReservesOther)} ) } }, { title:
研发奖补申请
, children: [ { title:
是否完成
, dataIndex: 'rdAwardCompensationStatus', key: 'rdAwardCompensationStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.rdAwardCompensationOther)} ) } }, { title:
申请金额
, dataIndex: 'rdApplicationFee', key: 'rdApplicationFee', width: 44, }, { title:
公示金额
, dataIndex: 'rdAnnouncementAmount', key: 'rdAnnouncementAmount', width: 44, }, { title:
其他
, dataIndex: 'rdAnnouncementOther', key: 'rdAnnouncementOther', width: 44, }, ] }, ] }, { title:
备查交付与归档
, children: [ { title:
加扣备查交付
, dataIndex: 'adDeliverStatus', key: 'adDeliverStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.adDeliverOther)} ) } }, { title:
加扣是否归档
, dataIndex: 'adDeliverFinish', key: 'adDeliverFinish', width: 60, render: (text, record) => { return ( {['未归档', '已归档'][text]} ) } }, { title:
高新备查交付
, dataIndex: 'htDeliverStatus', key: 'htDeliverStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.htDeliverOther)} ) } }, { title:
高新是否归档
, dataIndex: 'htDeliverFinish', key: 'htDeliverFinish', width: 60, render: (text, record) => { return ( {['未归档', '已归档'][text]} ) } }, ] }, { title:
日常工作
, children: [ { title:
召开上年度总结及本年工作计划会议
, dataIndex: 'closeMeetingStatus', key: 'closeMeetingStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.closeMeetingOther)} ) } }, { title:
阶段性汇报
, dataIndex: 'phasedType', key: 'phasedType', width: 44, render: (text, record) => { return ( {['', '月度', '季度'][text]} ) } }, { title:
立项资料编制
, children: [ { title:
完成数量
, dataIndex: 'projectApprovalWriteNumber', key: 'projectApprovalWriteNumber', width: 44, }, { title:
完成率
, dataIndex: 'projectApprovalWriteRate', key: 'projectApprovalWriteRate', width: 60, render: (text, record) => { return ( {text || 0}% ) } }, ] }, { title:
加扣预申报
, children: [ { title:
7月
, dataIndex: 'adPrepareJulyStatus', key: 'adPrepareJulyStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.adPrepareJulyOther)} ) } }, { title:
10月
, dataIndex: 'adPrepareOctoberStatus', key: 'adPrepareOctoberStatus', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.adPrepareOctoberOther)} ) } }, ] }, { title:
知识产权情况
, children: [ { title:
发明专利
, children: [ { title:
当年申报数量
, dataIndex: 'ipInventionPatentDeclare', key: 'ipInventionPatentDeclare', width: 80, }, { title:
当年授权数量
, dataIndex: 'ipInventionPatentAuthorize', key: 'ipInventionPatentAuthorize', width: 80, }, { title:
企业累计授权数量
, dataIndex: 'ipInventionPatentAuthorizeCount', key: 'ipInventionPatentAuthorizeCount', width: 80, }, ] }, { title:
实用新型专利
, children: [ { title:
当年申报数量
, dataIndex: 'ipUtilityModelDeclare', key: 'ipUtilityModelDeclare', width: 80, }, { title:
当年授权数量
, dataIndex: 'ipUtilityModelAuthorize', key: 'ipUtilityModelAuthorize', width: 80, }, { title:
企业累计授权数量
, dataIndex: 'ipUtilityModelAuthorizeCount', key: 'ipUtilityModelAuthorizeCount', width: 80, }, ] }, { title:
软著
, children: [ { title:
当年申报数量
, dataIndex: 'ipSoftwareWorksDeclare', key: 'ipSoftwareWorksDeclare', width: 80, }, { title:
当年授权数量
, dataIndex: 'ipSoftwareWorksAuthorize', key: 'ipSoftwareWorksAuthorize', width: 80, }, { title:
企业累计授权数量
, dataIndex: 'ipSoftwareWorksAuthorizeCount', key: 'ipSoftwareWorksAuthorizeCount', width: 80, }, { title:
本年可用高新数
, dataIndex: 'ipHt', key: 'ipHt', width: 80, }, { title:
I类数量
, dataIndex: 'ipHtI', key: 'ipHtI', width: 44, }, { title:
II类数量
, dataIndex: 'ipHtIi', key: 'ipHtIi', width: 44, }, ] }, ] }, { title:
公出指标(本年度)
, children: [ { title:
合同约定次数
, dataIndex: 'publicReleaseStipulation', key: 'publicReleaseStipulation', width: 44, }, { title:
实际次数
, dataIndex: 'publicReleaseActual', key: 'publicReleaseActual', width: 44, }, ] }, { title:
培训指标(本年度)
, children: [ { title:
合同约定次数
, dataIndex: 'trainingStipulation', key: 'trainingStipulation', width: 44, }, { title:
实际次数
, dataIndex: 'trainingActual', key: 'trainingActual', width: 44, }, { title:
其他
, dataIndex: 'trainingOther', key: 'trainingOther', width: 44, }, ] }, ] }, { title:
特色工作
, children: [ { title:
检查
, children: [ { title:
高新技术税收优惠政策检查
, dataIndex: 'featureHt', key: 'featureHt', width: 80, }, { title:
加计扣除税收优惠政策检查
, dataIndex: 'featureAd', key: 'featureAd', width: 80, }, { title:
税务常规检查
, dataIndex: 'featureTr', key: 'featureTr', width: 80, }, { title:
税务对研发费用检查
, dataIndex: 'featureTe', key: 'featureTe', width: 80, }, { title:
税务稽查
, dataIndex: 'featureTi', key: 'featureTi', width: 80, } ] }, { title:
其他
, children: [ { title:
其他
, dataIndex: 'featureOther', key: 'featureOther', width: 44, } ] }, ] }, { title:
其他事项说明
, dataIndex: 'other', key: 'other', width: 90, }, ] }, { title:
高新认定
, dataIndex: 'gxrd', key: 'gxrd', children: [ { title:
基础情况
, children: [ { title:
创新能力评价评分
, dataIndex: 'htScore', key: 'htScore', width: 44, }, { title:
实际申报批次
, dataIndex: 'htBatch', key: 'htBatch', width: 60, render: (text, record) => { return ( {['第1批', '第2批', '第3批'][text]} ) } }, { title:
是否重点关注
, dataIndex: 'htFocus', key: 'htFocus', width: 44, render: (text, record) => { return ( {['否', '是'][text]} ) } }, ], }, { title:
申报提交
, children: [ { title:
网上系统提交
, dataIndex: 'webSubmit', key: 'webSubmit', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.webSubmitOther)} ) } }, { title:
纸质材料提交
, dataIndex: 'paperSubmit', key: 'paperSubmit', width: 60, render: (text, record) => { return ( {this.getTypeData(text, record.paperSubmitOther)} ) } }, ], }, { title:
评审情况
, children: [ { title:
审计评审
, // reviewProvince children: [{ title:
拟公示序号
, dataIndex: 'reviewProvinceNumber', key: 'reviewProvinceNumber', width: 44, }], }, { title:
国家备案
, // reviewCountry children: [{ title:
高企编号
, dataIndex: 'reviewCountryNumber', key: 'reviewCountryNumber', width: 44, }], }, ], }, ] }, { title:
最近一次更新时间
, dataIndex: 'updateTime', key: 'updateTime', width: 80, }, ], pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.getDetailsList(page); }.bind(this), showTotal: function (total) { return "共" + total + "条数据"; }, }, customerArr: [], } this.exportExec = this.exportExec.bind(this); this.search = this.search.bind(this); this.reset = this.reset.bind(this); this.supervisor = this.supervisor.bind(this); this.httpChange = this.httpChange.bind(this); this.blurChange = this.blurChange.bind(this); this.selectAuto = this.selectAuto.bind(this); } componentDidMount() { this.getDetailsList() } getDetailsList(pageNo) { const { searchValues, pagination } = this.state; this.setState({ loading: true, }) let datas = Object.assign(searchValues, { pageNo: pageNo || 1, pageSize: pagination.pageSize, }); $.ajax({ method: 'get', dataType: 'json', crossDomain: false, url: globalConfig.context + '/api/admin/taskDetails/detailsList', data: datas, success: function (data) { ShowModal(this) if (data.data.list) { pagination.current = data.data.pageNo; pagination.total = data.data.totalCount; if (data.data && data.data.list && !data.data.list.length) { pagination.current = 0; pagination.total = 0; } this.setState({ newData: data.data.list, pagination: this.state.pagination, pageNo: data.data.pageNo, }); } else { this.setState({ newData: data.data, pagination: false, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }) }.bind(this) ) } exportExec() { message.config({ duration: 20, }); let loading = message.loading("下载中..."); this.setState({ exportPendingLoading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/taskDetails/export', data: this.state.searchValues, success: function (data) { if (data.error.length === 0) { this.download(data.data); } else { message.warning(data.error[0].message); } }.bind(this), }).always( function () { loading(); this.setState({ exportPendingLoading: false, }); }.bind(this) ); } download(fileName) { window.location.href = globalConfig.context + "/open/download?fileName=" + fileName; } getTypeData(type, other) { let text = '' let list = ['其他', '待完成', '已完成', '合同无此项'] if (!type && type != 0) { text = '' } else if (type == 0) { text = `其他(${other})` } else { text = list[type] } return text } supervisor(e) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/listAdminByName", data: { adminName: e, }, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } this.setState({ customerArr: thedata, }); }.bind(this), }).always( function () { }.bind(this) ); } // 输入触发 httpChange(e) { if (e.length >= 1) { this.supervisor(e); } this.setState({ auto: e, }); } // 选中 selectAuto(value, options) { const { searchValues } = this.state let contactLists = this.state.customerArr || []; if (value) { contactLists.map(function (item) { if (item.name == value.toString()) { searchValues["projectDebtorId"] = item.id; } }); } this.setState({ auto: value, searchValues: searchValues, }); } // 失去焦点 blurChange(e) { const { searchValues } = this.state let contactLists = this.state.customerArr || []; if (e) { contactLists.map(function (item) { if (item.name == e.toString()) { searchValues["projectDebtorId"] = item.id; } }); } this.setState({ searchValues: searchValues, }); } search() { this.getDetailsList(); } reset() { this.setState({ auto: undefined, searchValues: { roleStatus: adminData.isSuperAdmin ? '0' : '1' } }, () => { this.getDetailsList(1) }) } render() { const { columns, searchValues, newData } = this.state const dataSources = this.state.customerArr || []; const options = dataSources.map((group) => ( {group.name} )); const roleList = adminData.isSuperAdmin ? [ { value: '0', lable: '查询所有' }, { value: '1', lable: '查询自己' }, { value: '2', lable: '查看下级' }, { value: '3', lable: '负责人查询' }, ] : [ { value: '1', lable: '查询自己' }, { value: '2', lable: '查看下级' }, { value: '3', lable: '负责人查询' }, ] return (
{ this.setState({ showModal: false }) }} />
会员可视化进度表
{ searchValues["consultantName"] = e.target.value; this.setState({ searchValues: searchValues, }); }} /> { searchValues["contractNo"] = e.target.value; this.setState({ searchValues: searchValues, }); }} /> { searchValues["userName"] = e.target.value; this.setState({ searchValues: searchValues, }); }} /> { searchValues["serviceYear"] = e.target.value; this.setState({ searchValues: searchValues, }); }} /> {/* */} 更新时间: { searchValues["updateStartTime"] = String( dataString[0] ); searchValues["updateEndTime"] = String( dataString[1] ); this.setState({ searchValues: searchValues, }); }} />
{ this.setState({ visible: true, tid: e.tid }) }} /> { this.state.visible && { this.setState({ visible: false, tid: '', }) this.getDetailsList(this.state.pageNo) }} width={1200} footer={null} > } ); } } export default MembershipTable;