123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 |
- import React, { Component } from "react";
- import { Button, DatePicker, Input, message, Modal, Radio } from "antd";
- import {
- highTechColumns, //高新
- highTechColumnsVIP, //高新会员
- science, //科技
- patent, //专利
- currency, //软著和通用
- } from "./type";
- import moment from "moment";
- import $ from "jquery";
- import { splitUrl } from "@/tools";
- import ImgList from "../imgList";
- class NowProjectStatus extends Component {
- constructor(props) {
- super(props);
- this.state = {
- projectStatus: parseInt(props.projectStatus),
- list:
- props.cSort === 3
- ? science
- : props.cSort === 6
- ? highTechColumnsVIP
- : props.projectType === 0 ||
- props.projectType === 2 ||
- props.projectType === 3 ||
- props.projectType === 4 ||
- props.projectType === 6
- ? currency
- : props.projectType === 1
- ? patent
- : props.projectType === 5
- ? highTechColumns
- : [], //projectType 0 正常 1专利 2软著 3审计 4双软 5高新 6商标 cSort: 3 科技项目 6: 会员
- dataInfor: Object.assign({}, props.projectTypeJSON),
- loading: false,
- fileList: [],
- value8: 0,
- };
- }
- updateProjectStatus() {
- let arr = this.state.list.filter((v) => v.id === this.state.projectStatus);
- let dataInforLength = this.state.dataInfor[this.state.projectStatus]
- ? Object.keys(this.state.dataInfor[this.state.projectStatus]).length
- : 0;
- if (
- this.state.dataInfor[this.state.projectStatus] &&
- this.state.dataInfor[this.state.projectStatus]["title"]
- ) {
- dataInforLength -= 1;
- }
- if (
- this.state.dataInfor[this.state.projectStatus] &&
- this.state.dataInfor[this.state.projectStatus]["suspendImg"]
- ) {
- dataInforLength -= 1;
- }
- if (
- arr.length !== 0 &&
- arr[0]["valueType"] &&
- dataInforLength !== arr[0]["valueType"].length
- ) {
- arr[0]["valueType"].map((v) => {
- if (!this.state.dataInfor[this.state.projectStatus][v]) {
- if (v === "date") {
- message.warning("请将" + arr[0]["name"] + "时间补充完整");
- }
- if (v === "certificateNumber") {
- message.warning("请将" + arr[0]["name"] + "的证书编号补充完整");
- }
- if (v === "setUpAmount") {
- message.warning("请将" + arr[0]["name"] + "的立项金额补充完整");
- }
- if (v === "appropriation") {
- message.warning("请将" + arr[0]["name"] + "的拨款金额补充完整");
- }
- return false;
- }
- });
- return false;
- }
- if (
- (this.state.projectStatus === 2 || this.state.projectStatus === 3) &&
- this.state.fileList.length === 0
- ) {
- message.warning("暂停附件未上传,请上传后保存!");
- return false;
- }
- this.setState({
- loading: true,
- });
- if (this.state.projectStatus === 2 || this.state.projectStatus === 3) {
- if (this.state.fileList.length) {
- let picArr = [];
- this.state.fileList.map(function (item) {
- if (
- item.response &&
- item.response.data &&
- item.response.data.length
- ) {
- picArr.push(item.response.data);
- }
- });
- if (!this.state.dataInfor[2]) {
- this.state.dataInfor[2] = {};
- }
- if (!this.state.dataInfor[3]) {
- this.state.dataInfor[3] = {};
- }
- this.state.dataInfor[2]["suspendImg"] = picArr.join(",");
- this.state.dataInfor[3]["suspendImg"] = picArr.join(",");
- }
- }
- let data = Object.assign({}, this.state.dataInfor);
- Object.keys(data).map((v) => {
- if (Object.keys(data[v]).length === 0) {
- delete data[v];
- }
- });
- if (data[this.state.projectStatus]) {
- data[this.state.projectStatus]["title"] =
- arr[0]["label"] || arr[0]["name"];
- }
- let obj = {
- tid: this.props.tid,
- projectStatus: this.state.projectStatus,
- timeRecord: JSON.stringify(data),
- };
- if (arr[0]["valueType"]) {
- //证书编号
- let type = arr[0]["valueType"].filter((v) => v === "certificateNumber");
- if (type.length > 0) {
- obj.certificateNumber =
- this.state.dataInfor[this.state.projectStatus]["certificateNumber"];
- }
- //立项金额
- let type1 = arr[0]["valueType"].filter((v) => v === "setUpAmount");
- if (type1.length > 0) {
- obj.setUpAmount =
- this.state.dataInfor[this.state.projectStatus]["setUpAmount"];
- }
- }
- $.ajax({
- url: globalConfig.context + "/api/admin/orderProject/updateProjectStatus",
- method: "post",
- data: obj,
- }).done(
- function (data) {
- this.setState({
- loading: false,
- });
- if (!data.error.length) {
- message.success("保存成功!");
- this.props.onPreservation(this.state.projectStatus);
- } else {
- message.warning(data.error[0].message);
- }
- }.bind(this)
- );
- }
- componentDidMount() {
- /*旧数据处理
- * endDate 完成时间 对应已提交时间 4
- * acceptDate 受理时间 对应已推荐时间 6
- * publicityDate 公示时间 对应已拟公示时间 8
- * licenceDate 发证时间 对应已下证时间 10
- * setUpAmount 立项金额 15
- * */
- const { endDate, acceptDate, publicityDate, licenceDate, setUpAmount } =
- this.props.oldData;
- if (!this.props.projectTypeJSON[4] && endDate) {
- this.state.dataInfor[4] = { title: "完成时间" };
- this.state.dataInfor[4]["date"] = endDate;
- }
- if (!this.props.projectTypeJSON[6] && acceptDate) {
- this.state.dataInfor[6] = { title: "受理时间" };
- this.state.dataInfor[6]["date"] = acceptDate;
- }
- if (!this.props.projectTypeJSON[8] && publicityDate) {
- this.state.dataInfor[8] = { title: "公示时间" };
- this.state.dataInfor[8]["date"] = publicityDate;
- }
- if (!this.props.projectTypeJSON[10] && licenceDate) {
- this.state.dataInfor[10] = { title: "发证时间" };
- this.state.dataInfor[10]["date"] = licenceDate;
- }
- // if((!this.props.projectTypeJSON[15]) && setUpAmount){
- // this.state.dataInfor[15]={title:'立项金额'};
- // this.state.dataInfor[15]['setUpAmount'] = setUpAmount;
- // }
- //图片
- if (
- this.props.projectTypeJSON[2] &&
- this.props.projectTypeJSON[2]["suspendImg"]
- ) {
- this.setState({
- fileList: splitUrl(
- this.props.projectTypeJSON[2]["suspendImg"],
- ",",
- globalConfig.avatarHost + "/upload"
- ),
- });
- } else {
- this.setState({
- fileList: [],
- });
- }
- this.setState({
- dataInfor: this.state.dataInfor,
- });
- }
- render() {
- return (
- <Modal
- className="customeDetails"
- footer=""
- title=""
- width="700px"
- visible={this.props.visible}
- onOk={() => {
- this.props.onCancel();
- }}
- onCancel={() => {
- this.props.onCancel();
- }}
- >
- <div>
- <div
- style={{
- paddingBottom: "15px",
- fontSize: "18px",
- fontWeight: "bolder",
- }}
- >
- 项目状态:
- </div>
- <div>
- <Radio.Group
- style={{
- dispaly: "flex",
- flexRow: "column",
- }}
- value={parseInt(this.state.projectStatus)}
- onChange={(e) => {
- if (e.target.value == 8) {
- this.setState({
- value8: 1,
- });
- }
- // console.log(this.state.list);
- if (!this.state.dataInfor[e.target.value]) {
- this.state.dataInfor[e.target.value] = {};
- }
- this.state.dataInfor[this.state.projectStatus] =
- this.props.projectTypeJSON[this.state.projectStatus] || {};
- this.setState({
- projectStatus: e.target.value,
- dataInfor: this.state.dataInfor,
- });
- }}
- >
- {this.state.list.map((v, k) => (
- <div key={k} style={{ paddingBottom: "15px" }}>
- <Radio value={v.id}>{v.name}</Radio>
- {(v.valueType || []).map((d) =>
- parseInt(this.state.projectStatus) !== parseInt(v.id) ? (
- <span style={{ marginRight: "15px" }}>
- {d === "appropriation"
- ? "拨款金额(万元):"
- : d === "certificateNumber"
- ? "已出高新证书编号,编号:"
- : d === "setUpAmount"
- ? "立项金额(万元):"
- : d === "exampleNumber"
- ? "公式网络链接:"
- : ""}
- {this.state.dataInfor[v.id] &&
- this.state.dataInfor[v.id][d]}
- </span>
- ) : d === "date" ? (
- <div style={{ display: "inline-block" }}>
- <DatePicker
- style={{ marginRight: "5px", width: "120px" }}
- showTime
- format="YYYY-MM-DD"
- onOk={() => {}}
- value={
- this.state.dataInfor[v.id] &&
- this.state.dataInfor[v.id][d]
- ? moment(this.state.dataInfor[v.id][d])
- : null
- }
- onChange={(data, dataString) => {
- // console.log(dataString);
- if (!this.state.dataInfor[v.id]) {
- this.state.dataInfor[v.id] = {};
- }
- if (!dataString && this.state.dataInfor[v.id][d]) {
- delete this.state.dataInfor[v.id][d];
- } else {
- this.state.dataInfor[v.id][d] = dataString;
- }
- this.setState({
- dataInfor: this.state.dataInfor,
- });
- }}
- />
- </div>
- ) : d === "setUpAmount" ||
- d === "certificateNumber" ||
- d === "appropriation" ||
- d === "exampleNumber" ? (
- <span>
- <span>
- {d === "appropriation"
- ? "拨款金额(万元)"
- : d === "certificateNumber"
- ? "已出高新证书编号,编号"
- : d === "setUpAmount"
- ? "立项金额(万元)"
- : d === "exampleNumber"
- ? "公式网络链接:"
- : ""}
- </span>
- <Input
- placeholder={v.placeholder}
- value={
- this.state.dataInfor[v.id]
- ? this.state.dataInfor[v.id][d]
- : ""
- }
- style={{ width: "120px", marginRight: "5px" }}
- onChange={(e) => {
- if (!this.state.dataInfor[v.id]) {
- this.state.dataInfor[v.id] = {};
- }
- if (
- !e.target.value &&
- this.state.dataInfor[v.id][d]
- ) {
- delete this.state.dataInfor[v.id][d];
- } else {
- this.state.dataInfor[v.id][d] = e.target.value;
- }
- this.setState({
- dataInfor: this.state.dataInfor,
- });
- }}
- />
- </span>
- ) : null
- )}
- <span style={{ color: "#f00", marginLeft: "15px" }}>
- {v.explain}
- </span>
- </div>
- ))}
- </Radio.Group>
- {(this.state.projectStatus === 2 ||
- this.state.projectStatus === 3 ||
- this.state.fileList.length > 0) && (
- <div>
- <div
- style={{
- paddingTop: "20px",
- paddingBottom: "10px",
- }}
- >
- <div>暂停附件:</div>
- <div style={{ color: "#f00" }}>(请上传截图证明)</div>
- </div>
- <div
- style={{
- display:
- this.state.projectStatus === 2 ||
- this.state.projectStatus === 3
- ? "block"
- : "none",
- }}
- >
- <ImgList
- domId="nowProjectStatus"
- uploadConfig={{
- action:
- globalConfig.context +
- "/api/admin/orderProject/uploadOrderTaskFile",
- data: { sign: "order_task_file" },
- multiple: true,
- listType: "picture-card",
- }}
- onChange={(info) => {
- let fileList = info.fileList;
- this.setState({ fileList });
- }}
- fileList={this.state.fileList}
- />
- </div>
- <div
- style={{
- display:
- this.state.projectStatus === 2 ||
- this.state.projectStatus === 3
- ? "none"
- : "block",
- }}
- >
- <ImgList
- domId="nowProjectStatus1"
- fileList={this.state.fileList}
- />
- </div>
- </div>
- )}
- <div
- style={{
- display: "flex",
- justifyContent: "center",
- paddingTop: "20px",
- paddingBottom: "20px",
- }}
- >
- <Button
- loading={this.state.loading}
- className="cancel"
- type="ghost"
- onClick={() => {
- this.updateProjectStatus();
- }}
- >
- 保存
- </Button>
- </div>
- <div style={{ textAlign: "center", color: "#f00" }}>
- 注:请根据实际项目情况填写
- </div>
- </div>
- </div>
- </Modal>
- );
- }
- }
- export default NowProjectStatus;
|