import React, { Component } from "react"; import { Button, DatePicker, Input, message, Select, Spin, Table, Tabs, Cascader, AutoComplete, Modal, } from "antd"; import { ShowModal, getApprovedType } from "@/tools"; import { ChooseList } from "../../order/orderNew/chooseList"; import $ from "jquery/src/ajax"; import moment from "moment"; import { member, highTechColumns, doubleSoft, softWriting, patent, audit, currency, } from "./highTechConfig"; import { projectStatusList, approvalOptions } from "@/dataDic"; import ProjectDetails from "./projectDetails"; import Cascaders from "../../../common/cascaders"; const { TabPane } = Tabs; const { RangePicker } = DatePicker; const { Option } = Select; class HighTech extends Component { constructor(props) { super(props); this.state = { dataScore: {}, score: "", approvaType: [], tbaindex: 1, loading: false, changeList: undefined, columns: currency(this.showD.bind(this)), status: 0, page: 1, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return "共" + total + "条数据"; }, }, dataSource: [], releaseDate: [], searchOrderNo: "", searchContractNo: "", searchEnterpriseName: "", declarationBatch: "", projectSituation: "", projectAmount: "", deps: "", thchDeps: "", projectType: "", projectStatus: "", departmentArr: [], contactsOption: [], contactsOptionData: [], visible: false, }; this.resetAll = this.resetAll.bind(this); this.changeList = this.changeList.bind(this); this.loadData = this.loadData.bind(this); this.selectSuperId = this.selectSuperId.bind(this); this.supervisor = this.supervisor.bind(this); this.httpChange = this.httpChange.bind(this); this.selectAuto = this.selectAuto.bind(this); this.blurChange = this.blurChange.bind(this); this.hidD = this.hidD.bind(this); } showD(record) { this.setState({ loading: true, }) $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/taskScore/queryByTid", data: { tid: record.id, }, success: function (data) { if (data.error.length) { this.setState({ loading: false, }); message.warning(data.error[0].message); } else { if (!data.data) { this.setState({ score: "", }) } else { this.setState({ score: "selcet", cSort: record.cSort, cname: record.pname, tname: record.techName, dataScore: data.data, }); } } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); } hidD() { this.setState({ score: "" }); } changeList(arr) { const newArr = []; this.state.columns.forEach((item) => { arr.forEach((val) => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr, }); } loadData(pageNo = "") { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/statistis/selectTaskList", data: this.props.searchData ? Object.assign( { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize || 10, }, this.props.searchData ) : { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize || 10, startDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[0] : undefined, //开始时间 endDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[1] : undefined, //结束时间 deps: this.state.deps || undefined, //部门ID thchDeps: this.state.thchDeps || undefined, //责任部门ID projectStatus: this.state.projectStatus || undefined, //项目类别 projectType: !this.state.projectType ? undefined : this.state.projectType, //项目分类 orderNo: this.state.searchOrderNo || undefined, //订单编号 contractNo: this.state.searchContractNo || undefined, //合同编号 userName: this.state.searchEnterpriseName || undefined, //企业名称 declarationBatch: this.state.declarationBatch || undefined, //申报批次 projectSituation: typeof this.state.projectSituation === "number" ? this.state.projectSituation : undefined, //项目分类 projectAmount: this.state.projectAmount || undefined, //项目金额 status: this.state.status, thchId: this.state.thchId || undefined, //咨询师/咨询经理id taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态 sdStatus: this.state.sdStatus,//满意度 type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型 }, success: function (data) { ShowModal(this); let theArr = []; if (!data.data || !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 = (data.data.pageNo - 1) * data.data.pageSize + i + 1; theArr.push(thisdata); } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.current = 0; this.state.pagination.total = 0; } this.setState({ pagination: this.state.pagination, page: pageNo, dataSource: theArr, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); } resetAll() { this.setState( { newArray: [], releaseDate: [], searchOrderNo: "", searchContractNo: "", searchEnterpriseName: "", declarationBatch: "", projectSituation: "", projectAmount: "", projectType: "", deps: "", thchDeps: "", projectStatus: "", columns: currency(this.showD.bind(this)), status: 0, thchId: "", auto: "", taskProjectStatus: "", sdStatus: undefined, approvaType: [], }, () => { this.Cascaders1.empty(); this.Cascaders2.empty(); this.defaultcolumns(); // this.loadData(); } ); } //项目类别 selectSuperId() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/ProjectSize/getAllCname", data: { flag: 0, }, success: function (data) { let theArr = []; let newTheArr = [] let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } for (let i = 0; i < data.data.length; i++) { let theData = data.data[i]; theArr.push( {theData.cname} ); let newChildren = [] for (let j = 0; j < theData.typeList.length; j++) { newChildren.push({ label: theData.typeList[j].name, value: theData.typeList[j].id, }) } newTheArr.push({ label: theData.cname, value: theData.id, children: newChildren }) } this.setState({ contactsOption: theArr, contactsOptionData: newTheArr, // contactsOptionData: data.data, }); }.bind(this), }).always(); } // 设置默认table(用来默认不显示某列数据 isNoD:true) defaultcolumns() { const newArr = []; this.state.columns.forEach((item) => { if (item.isNoD) { return } else { newArr.push(item); } }); this.setState({ changeList: newArr, }, () => { this.loadData(); }); } // 导出excel exportExec() { message.config({ duration: 20, }); let loading = message.loading("下载中..."); this.setState({ exportPendingLoading: true, }); let data = { startDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[0] : undefined, //开始时间 endDate: this.state.releaseDate.length > 0 ? this.state.releaseDate[1] : undefined, //结束时间 deps: this.state.deps || undefined, //部门ID thchDeps: this.state.thchDeps || undefined, //责任部门ID projectStatus: this.state.projectStatus || undefined, //项目类别 projectType: !this.state.projectType ? undefined : this.state.projectType, //项目分类 status: this.state.status, orderNo: this.state.searchOrderNo || undefined, //订单编号 contractNo: this.state.searchContractNo || undefined, //合同编号 userName: this.state.searchEnterpriseName || undefined, //企业名称 declarationBatch: this.state.declarationBatch || undefined, //申报批次 projectAmount: this.state.projectAmount || undefined, //项目金额 thchId: this.state.thchId || undefined, //咨询师/咨询经理id taskProjectStatus: this.state.taskProjectStatus || undefined,//项目状态 sdStatus: this.state.sdStatus,//满意度 type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型 }; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: "/api/admin/statistis/exporTaskList", data, 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; } // 查询用户 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) { let thchId = "" let contactLists = this.state.customerArr || []; if (value) { contactLists.map(function (item) { if (item.name == value.toString()) { thchId = item.id; } }); } this.setState({ auto: value, thchId: thchId, }); } // 失去焦点 blurChange(e) { let thchId = "" let contactLists = this.state.customerArr || []; if (e) { contactLists.map(function (item) { if (item.name == e.toString()) { thchId = item.id; } }); } this.setState({ thchId: thchId, }); } componentWillMount() { // if (!this.props.introduce) { this.defaultcolumns(); this.selectSuperId(); } if (this.props.searchData) { let e = this.props.searchData.projectType; this.setState({ columns: e == "0" ? currency(this.showD.bind(this)) : e == "1" ? patent(this.showD.bind(this)) : e == "2" ? softWriting(this.showD.bind(this)) : e == "3" ? audit(this.showD.bind(this)) : e == "4" ? doubleSoft(this.showD.bind(this)) : e == "5" ? highTechColumns(this.showD.bind(this)) : e == "6" ? currency(this.showD.bind(this)) : e == "7" ? member(this.showD.bind(this)) : currency(this.showD.bind(this)), }, () => { this.defaultcolumns(); }); } } // 暂停项目 颜色 suspendColor(record) { if (record.projectStatus == 29) { return 'light' } else { return 'dark' } } getScore(name, cSort, val) { let data = "" let list = [] if (cSort == 6) { if (name == "zyd" || name == "gtl" || name == "ydhb") { list = [ { title: name == "zyd" ? "很专业" : "很满意", list: [20, 19, 18, 17, 16, 15, 14, 13] }, { title: name == "zyd" ? "专业" : "满意", list: [12, 11, 10, 9, 8, 7] }, { title: "一般", list: [6, 5, 4, 3, 2, 1] }, { title: name == "zyd" ? "不专业" : "不满意", list: [0] }, ] } else if (name == "xyd" || name == "gcxx" || name == "fwtd" || name == "ndhb") { list = [ { title: name == "xyd" ? "很速度" : "很满意", list: [10, 9, 8, 7] }, { title: name == "xyd" ? "速度" : "满意", list: [6, 5, 4] }, { title: "一般", list: [3, 2, 1] }, { title: name == "xyd" ? "很慢" : "不满意", list: [0] }, ] } } else { if (name == "zyd" || name == "gtl") { list = [ { title: name == "zyd" ? "很专业" : "很满意", list: [30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20] }, { title: name == "zyd" ? "专业" : "满意", list: [19, 18, 17, 16, 15, 14, 13, 12, 11, 10] }, { title: "一般", list: [9, 8, 7, 6, 5, 4, 3, 2, 1] }, { title: name == "zyd" ? "不专业" : "不满意", list: [0] }, ] } else if (name == "gcxx" || name == "fwtd") { list = [ { title: "很满意", list: [15, 14, 13, 12, 11] }, { title: "满意", list: [10, 9, 8, 7, 6] }, { title: "一般", list: [5, 4, 3, 2, 1] }, { title: "不满意", list: [0] }, ] } else if (name == "xyd") { list = [ { title: "很速度", list: [10, 9, 8, 7] }, { title: "速度", list: [6, 5, 4] }, { title: "一般", list: [3, 2, 1] }, { title: "很慢", list: [0] }, ] } } list.map(function (item) { if (item.list.includes(val)) { data = item.title + "(" + val + "分)" } }) return data } render() { const dataSources = this.state.customerArr || []; const options = dataSources.map((group) => ( {group.name} )); const approvaChildren = approvalOptions.map(i => ( )); return (
{this.props.introduce ? ( this.props.introduce() ) : (
项目汇总表 ( {this.state.status === 1 ? "高新" : this.state.status === 2 ? "双软" : this.state.status === 3 ? "软著" : this.state.status === 4 ? "专利" : this.state.status === 5 ? "会员" : this.state.status === 6 ? "审计" : "通用"} )
{ this.setState({ tbaindex: e }) }} >
{ this.setState({ searchOrderNo: e.target.value }); }} /> { this.setState({ searchContractNo: e.target.value }); }} /> { this.setState({ searchEnterpriseName: e.target.value }); }} /> 项目分类: { let first = e[0]; let two = e[1]; this.setState({ newArray: e, projectStatus: first, projectType: two, changeList: undefined, dataSource: [], status: two == "4" ? 2 : two == "3" ? 6 : two == "2" ? 3 : two == "1" ? 4 : two == "5" ? 1 : two == "7" ? 5 : 0, columns: two == "0" ? currency(this.showD.bind(this)) : two == "1" ? patent(this.showD.bind(this)) : two == "2" ? softWriting(this.showD.bind(this)) : two == "3" ? audit(this.showD.bind(this)) : two == "4" ? doubleSoft(this.showD.bind(this)) : two == "5" ? highTechColumns(this.showD.bind(this)) : two == "6" ? currency(this.showD.bind(this)) : two == "7" ? member(this.showD.bind(this)) : currency(this.showD.bind(this)), }, () => { this.defaultcolumns() }) }} /> {/* 项目类别 : 项目分类 : */} 订单部门: this.Cascaders1 = ref} placeholder="请选择订单部门" height={28} width={150} onSel={(e) => { this.setState({ deps: JSON.stringify(e) }) }} /> 负责部门: this.Cascaders2 = ref} placeholder="请选择负责部门" height={28} width={150} onSel={(e) => { this.setState({ thchDeps: JSON.stringify(e) }) }} /> 咨询师/经理: 申报批次: 项目金额: 项目状态: {/* */} {/* 项目情况 :*/} {/* {*/} {/* this.setState({*/} {/* projectSituation: e,*/} {/* });*/} {/* }}*/} {/* >*/} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/* */} {/**/} 满  意  度: 派单时间: { this.setState({ releaseDate: dataString }); }} />
{ this.state.tbaindex == 2 &&
}
{adminData.isSuperAdmin ? : ""}
)}
{ this.setState({ projectdetailsId: record.id, projectdetailsOrderNo: record.orderNo, pname: record.pname, visible: true, }); }} /> {this.state.visible ? ( { this.setState({ visible: false, }); }} visitCancel={() => { this.loadData(this.state.page); this.setState({ visible: false, }); }} /> ) : null} { this.setState({ score: "", cSort: "", cname: "", tname: "", }) }} >
{this.state.dataScore.professionalism + this.state.dataScore.communicationSkills + this.state.dataScore.responsiveness + this.state.dataScore.publicImage + this.state.dataScore.serviceAttitude + this.state.dataScore.monthlyReport + this.state.dataScore.yearReport}分
项目名称:{this.state.cname}
项目咨询:{this.state.tname}
专 业 度:{this.getScore("zyd", this.state.cSort, this.state.dataScore.professionalism)}
沟 通 力:{this.getScore("gtl", this.state.cSort, this.state.dataScore.communicationSkills)}
响 应 度:{this.getScore("xyd", this.state.cSort, this.state.dataScore.responsiveness)}
公出形象:{this.getScore("gcxx", this.state.cSort, this.state.dataScore.publicImage)}
服务态度:{this.getScore("fwtd", this.state.cSort, this.state.dataScore.serviceAttitude)}
{this.state.cSort == 6 &&
月度汇报:{this.getScore("ydhb", this.state.cSort, this.state.dataScore.monthlyReport)}
} {this.state.cSort == 6 &&
年度汇报:{this.getScore("ndhb", this.state.cSort, this.state.dataScore.yearReport)}
}
评分理由:{this.state.dataScore.remarks}
评分时间:{moment(this.state.dataScore.createTime).format('YYYY-MM-DD HH:mm:ss')}
); } } export default HighTech;