|
@@ -1,14 +1,71 @@
|
|
|
import React,{Component} from 'react';
|
|
|
import ajax from 'jquery/src/ajax/xhr.js';
|
|
|
-import $ from 'jquery/src/ajax';
|
|
|
+import $ from 'jquery';
|
|
|
import moment from 'moment';
|
|
|
import '@/manageCenter/financialManage/distribute/public.less';
|
|
|
-import { Icon, Button, Form, Radio, Input, InputNumber, Select, Upload,Col,Spin, Table, Switch, message, DatePicker, Modal } from 'antd';
|
|
|
+import Picture from '@/manageCenter/publicComponent/picture';
|
|
|
+import { Icon, Button, Form, Radio, Input, InputNumber, Select, Upload,Col,Spin, Table, Switch, message, DatePicker, Modal} from 'antd';
|
|
|
import OrderDesc from '@/manageCenter/financialManage/orderDetail/orderDesc'
|
|
|
import Assign from '@/manageCenter/publicComponent/assign';
|
|
|
import './table.less';
|
|
|
-import {getProcessStatus,getApproval,getTaskStatus,getLiquidationStatus,getApprovedState,getProjectState,splitUrl,getProjectStatus,getboutique} from '@/tools';
|
|
|
+import {getProcessStatus,getApproval,getTaskStatus,getLiquidationStatus,getApprovedState,getProjectState,splitUrl,getProjectStatus,getboutique,getprovince} from '@/tools';
|
|
|
const FormItem =Form.Item;
|
|
|
+const PicturesWall = React.createClass({
|
|
|
+ getInitialState() {
|
|
|
+ return {
|
|
|
+ previewVisible: false,
|
|
|
+ previewImage: '',
|
|
|
+ fileList: this.props.pictureUrl,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getDefaultProps(){
|
|
|
+ return{
|
|
|
+ changeClick:this.modifyChange
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleCancel() {
|
|
|
+ this.setState({ previewVisible: false })
|
|
|
+ },
|
|
|
+ handlePreview(file) {
|
|
|
+ this.setState({
|
|
|
+ previewImage: file.url || file.thumbUrl,
|
|
|
+ previewVisible: true,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleChange(info) {
|
|
|
+ let fileList = info.fileList;
|
|
|
+ this.setState({ fileList });
|
|
|
+ this.props.fileList(fileList);
|
|
|
+ },
|
|
|
+ componentWillReceiveProps(nextProps) {
|
|
|
+ this.state.fileList = nextProps.pictureUrl;
|
|
|
+ },
|
|
|
+ render() {
|
|
|
+ const { previewVisible, previewImage, fileList } = this.state;
|
|
|
+ const uploadButton = (
|
|
|
+ <div>
|
|
|
+ <Icon type="plus" />
|
|
|
+ <div className="ant-upload-text">点击上传</div>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ return (
|
|
|
+ <div style={{display:"inline-block"}}>
|
|
|
+ <Upload
|
|
|
+ action={globalConfig.context + "/api/admin/patentNew/uploadFile"}
|
|
|
+ data={{ 'sign': '' }}
|
|
|
+ listType="picture-card"
|
|
|
+ fileList={fileList}
|
|
|
+ onPreview={this.handlePreview}
|
|
|
+ onChange={this.handleChange} >
|
|
|
+ {uploadButton}
|
|
|
+ </Upload>
|
|
|
+ <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
|
|
|
+ <img alt="example" style={{ width: '100%' }} src={previewImage} />
|
|
|
+ </Modal>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+ }
|
|
|
+});
|
|
|
|
|
|
const Task = React.createClass({
|
|
|
loadData(pageNo) {
|
|
@@ -30,7 +87,6 @@ const Task = React.createClass({
|
|
|
orderNo:this.state.orderNoSearch,//订单编号
|
|
|
depId: this.state.departmenttSearch,//订单部门
|
|
|
taskId:this.state.taskId, //任务编号
|
|
|
- taskStatus:this.state.taskStatus,//任务状态
|
|
|
adminName:this.state.adminName,//任务受理人
|
|
|
},
|
|
|
success: function (data) {
|
|
@@ -52,8 +108,9 @@ const Task = React.createClass({
|
|
|
projectStatus:thisdata.projectStatus,//项目状态
|
|
|
taskStatus:thisdata.taskStatus,//任务状态
|
|
|
taskDate:thisdata.taskDate,//分配时间
|
|
|
- commodityQuantity:thisdata.commodityQuantity,//数量
|
|
|
- userName:thisdata.userName,//用户名
|
|
|
+ commodityQuantity:thisdata.commodityQuantity,//软著数量
|
|
|
+ alreadyNumber:thisdata.alreadyNumber,//下证数量
|
|
|
+ userName:thisdata.taskName === '软著认证'?thisdata.userName+'('+thisdata.commodityQuantity.toString()+'/'+thisdata.alreadyNumber+')':thisdata.userName,//用户名
|
|
|
depName:thisdata.depName,//部门名称
|
|
|
receiverName:thisdata.receiverName,//任务责任人
|
|
|
});
|
|
@@ -69,6 +126,7 @@ const Task = React.createClass({
|
|
|
dataSource: theArr,
|
|
|
pagination: this.state.pagination
|
|
|
});
|
|
|
+
|
|
|
}.bind(this),
|
|
|
}).always(function () {
|
|
|
this.setState({
|
|
@@ -110,6 +168,7 @@ const Task = React.createClass({
|
|
|
title: '任务名称',
|
|
|
dataIndex: 'taskName',
|
|
|
key: 'taskName',
|
|
|
+ className: 'taskName'
|
|
|
}, {
|
|
|
title: '订单编号',
|
|
|
dataIndex: 'orderNo',
|
|
@@ -121,9 +180,10 @@ const Task = React.createClass({
|
|
|
key: 'cname',
|
|
|
},
|
|
|
{
|
|
|
- title: '客户名称(软著数/下证数)',
|
|
|
+ title: '客户名称',
|
|
|
dataIndex: 'userName',
|
|
|
key: 'userName',
|
|
|
+ className: 'userName'
|
|
|
},
|
|
|
{
|
|
|
title: '任务状态',
|
|
@@ -201,30 +261,45 @@ const Task = React.createClass({
|
|
|
}
|
|
|
}
|
|
|
],
|
|
|
- dataSourceX: [],
|
|
|
- columnsY: [
|
|
|
+ columnsA: [
|
|
|
{
|
|
|
- title: '批次',
|
|
|
- dataIndex: 'a',
|
|
|
- key: 'a',
|
|
|
- align:'center'
|
|
|
- }, {
|
|
|
- title: '下注时间',
|
|
|
- dataIndex: 'a',
|
|
|
- key: 'a',
|
|
|
+ title: '流程',
|
|
|
+ dataIndex: 'content',
|
|
|
+ key: 'content',
|
|
|
align:'center'
|
|
|
}, {
|
|
|
- title: '下证数量',
|
|
|
- dataIndex: 'a',
|
|
|
- key: 'a',
|
|
|
+ title: '操作人',
|
|
|
+ dataIndex: 'aName',
|
|
|
+ key: 'aName',
|
|
|
align:'center'
|
|
|
}, {
|
|
|
- title: '未下证数量',
|
|
|
- dataIndex: 'a',
|
|
|
- key: 'a',
|
|
|
+ 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',
|
|
|
+ }
|
|
|
+ ],
|
|
|
}
|
|
|
},
|
|
|
/* 分派 */
|
|
@@ -235,28 +310,41 @@ const Task = React.createClass({
|
|
|
assignVisible:true
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+ componentDidMount(){
|
|
|
+ this.setColor()
|
|
|
+ },
|
|
|
componentWillMount() {
|
|
|
this.departmentList();
|
|
|
this.loadData();
|
|
|
},
|
|
|
tableRowClick(record, index) {
|
|
|
this.state.RowData = record;
|
|
|
- this.setState({
|
|
|
- visible: true,
|
|
|
- });
|
|
|
- this.xiangqing(record.orderNo);
|
|
|
+ if(record.taskName === '软著认证'){
|
|
|
+ this.setState({
|
|
|
+ speVisible: true,
|
|
|
+ id: record.id,
|
|
|
+ dataArr:record,
|
|
|
+ commodityQuantity:record.commodityQuantity
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.setState({
|
|
|
+ visible: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.xiangqing(record.id,record.taskName);
|
|
|
+ this.xiangqings(record.orderNo);
|
|
|
this.xiangmu(record.orderNo);
|
|
|
+ this.loaduserss(record);
|
|
|
},
|
|
|
//订单详情
|
|
|
- xiangqing(orderNos) {
|
|
|
+ xiangqing(id,taskName) {
|
|
|
$.ajax({
|
|
|
method: "get",
|
|
|
dataType: "json",
|
|
|
crossDomain: false,
|
|
|
- url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",
|
|
|
+ url: globalConfig.context +"/api/admin/orderProject/orderTaskDetail",
|
|
|
data: {
|
|
|
- orderNo:orderNos
|
|
|
+ id:id
|
|
|
},
|
|
|
success: function(data) {
|
|
|
let theArr = [];
|
|
@@ -268,30 +356,91 @@ const Task = React.createClass({
|
|
|
} else {
|
|
|
let thisdata=data.data;
|
|
|
this.setState({
|
|
|
+ id: thisdata.id,//ID
|
|
|
orderNo: thisdata.orderNo,//订单编号
|
|
|
- contractNo: thisdata.contractNo,//合同编号
|
|
|
userName:thisdata.userName,//客户名称
|
|
|
- signDate:thisdata.signDate,//签单时间
|
|
|
+ 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//订单部门
|
|
|
+ })
|
|
|
+ };
|
|
|
+
|
|
|
+ }.bind(this),
|
|
|
+ }).always(function() {
|
|
|
+ this.setState({
|
|
|
+ loading: false
|
|
|
+ });
|
|
|
+ }.bind(this));
|
|
|
+ },
|
|
|
+ //订单详情
|
|
|
+ xiangqings(orderNos) {
|
|
|
+ $.ajax({
|
|
|
+ method: "get",
|
|
|
+ dataType: "json",
|
|
|
+ crossDomain: false,
|
|
|
+ url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",
|
|
|
+ data: {
|
|
|
+ orderNo:orderNos
|
|
|
+ },
|
|
|
+ success: function(data) {
|
|
|
+ let theArr = [];
|
|
|
+ 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({
|
|
|
processStatus:thisdata.processStatus,//流程状态
|
|
|
liquidationStatus:thisdata.liquidationStatus,//结算状态
|
|
|
- contacts:thisdata.contacts,//企业联系人
|
|
|
- contactMobile:thisdata.contactMobile,//联系人电话
|
|
|
- legalPerson:thisdata.legalPerson,//法人
|
|
|
- legalPersonTel:thisdata.legalPersonTel,//法人电话
|
|
|
- firstAmount:thisdata.firstAmount,//签单金额
|
|
|
- totalAmount:thisdata.totalAmount,//首付金额
|
|
|
approval:thisdata.approval,//特批状态
|
|
|
- settlementAmount:thisdata.settlementAmount,//已收款项
|
|
|
orderRemarks:thisdata.orderRemarks,//订单留言
|
|
|
- orgCodeUrl: thisdata.contractPictureUrl ? splitUrl(thisdata.contractPictureUrl, ',', globalConfig.avatarHost + '/upload') : [],//图片地址
|
|
|
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,//详细地址
|
|
|
+ setUpAmount:thisdata.setUpAmount,//立项金额
|
|
|
})
|
|
|
};
|
|
|
-
|
|
|
+ console.log(ProvinceCityArr,this.state.ProvinceCity)
|
|
|
}.bind(this),
|
|
|
}).always(function() {
|
|
|
this.setState({
|
|
@@ -299,6 +448,48 @@ const Task = React.createClass({
|
|
|
});
|
|
|
}.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));
|
|
|
+ },
|
|
|
//项目列表
|
|
|
xiangmu(orderNos) {
|
|
|
$.ajax({
|
|
@@ -346,10 +537,59 @@ const Task = React.createClass({
|
|
|
});
|
|
|
}.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
|
|
|
+ })
|
|
|
+ },
|
|
|
//关闭详情
|
|
|
visitCancel(e){
|
|
|
this.setState({
|
|
|
- visible:false
|
|
|
+ visible:false,
|
|
|
+ speVisible:false,
|
|
|
})
|
|
|
this.reset();
|
|
|
},
|
|
@@ -359,6 +599,23 @@ const Task = React.createClass({
|
|
|
})
|
|
|
this.reset();
|
|
|
},
|
|
|
+ setColor(){
|
|
|
+ var arr = []
|
|
|
+ console.log($(".userName span"))
|
|
|
+ $(".userName span").after("(<span class='ruanzhu'>软著数</span>/<span class='xiazheng'>下证数</span>)")
|
|
|
+ },
|
|
|
+ //测试
|
|
|
+ foo2(){
|
|
|
+ this.setState({
|
|
|
+ testFlag1:false,
|
|
|
+ speVisible:false,
|
|
|
+ })
|
|
|
+ },
|
|
|
+ foo1(){
|
|
|
+ this.setState({
|
|
|
+ testFlag1:true
|
|
|
+ })
|
|
|
+ },
|
|
|
foo(){
|
|
|
this.setState({
|
|
|
testFlag:false
|
|
@@ -462,10 +719,36 @@ const Task = React.createClass({
|
|
|
});
|
|
|
}
|
|
|
};
|
|
|
+ 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 formItemLayout = {
|
|
|
labelCol: { span: 8 },
|
|
|
wrapperCol: { span: 14 },
|
|
|
};
|
|
|
+ const formItemLayout1 = {
|
|
|
+ labelCol: { span: 6 },
|
|
|
+ wrapperCol: { span: 8 },
|
|
|
+ };
|
|
|
const hasSelected = this.state.selectedRowKeys.length > 0;
|
|
|
const { RangePicker } = DatePicker;
|
|
|
let departmentArr = this.state.departmentArr || [];
|
|
@@ -495,7 +778,6 @@ const Task = React.createClass({
|
|
|
</Select>
|
|
|
<Button type="primary" onClick={this.search}>搜索</Button>
|
|
|
<Button onClick={this.reset}>重置</Button>
|
|
|
- <Button type='primary' style={{marginLeft:'10px'}}>导出Excel</Button>
|
|
|
{/* <span>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch.bind(this)} /></span>
|
|
|
<div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>
|
|
|
<span>订单时间 :</span>
|
|
@@ -525,7 +807,7 @@ const Task = React.createClass({
|
|
|
specially={0}
|
|
|
roleName={this.state.nub}
|
|
|
/>
|
|
|
- <Modal
|
|
|
+ {/*<Modal
|
|
|
className="customeDetails"
|
|
|
footer=''
|
|
|
title="任务详情"
|
|
@@ -660,7 +942,7 @@ const Task = React.createClass({
|
|
|
</div>
|
|
|
</Spin>
|
|
|
</Form>
|
|
|
- </Modal>
|
|
|
+ </Modal>*/}
|
|
|
<Modal maskClosable={false} visible={this.state.addnextVisible}
|
|
|
onOk={this.nextCancel} onCancel={this.nextCancel}
|
|
|
width='900px'
|
|
@@ -702,217 +984,258 @@ const Task = React.createClass({
|
|
|
</Spin>
|
|
|
</Form >
|
|
|
</Modal>
|
|
|
- <Modal maskClosable={false} visible={this.state.testFlag}
|
|
|
- onOk={this.nextCancel} onCancel={this.foo}
|
|
|
- width='800px'
|
|
|
+ <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}/>
|
|
|
+ </Spin>
|
|
|
+ </div>
|
|
|
+ </Modal>
|
|
|
+ <Modal maskClosable={false} visible={this.state.speVisible}
|
|
|
+ onOk={this.visitOk} onCancel={this.visitCancel}
|
|
|
+ width='900px'
|
|
|
title='项目概况'
|
|
|
footer=''
|
|
|
className="admin-desc-content">
|
|
|
<div className="clearfix">
|
|
|
- <FormItem className="large-item"
|
|
|
- labelCol={{ span: 5 }}
|
|
|
- wrapperCol={{ span: 14 }}
|
|
|
+ <FormItem className="half-item"
|
|
|
+ {...formItemLayout}
|
|
|
label="当前项目情况">
|
|
|
- <Radio.Group value={this.state.aaa}>
|
|
|
- <Radio value={1}>开启</Radio>
|
|
|
- <Radio value={2}>暂停</Radio>
|
|
|
- </Radio.Group>
|
|
|
- <Button type='primary' size='small' style={{marginTop:'5px',position:'absolute'}}>操作日志</Button>
|
|
|
- </FormItem>
|
|
|
- </div>
|
|
|
- <div className="clearfix">
|
|
|
- <FormItem className="large-item"
|
|
|
- labelCol={{ span: 5 }}
|
|
|
- wrapperCol={{ span: 14 }}
|
|
|
- label="退单">
|
|
|
- <Radio.Group value={this.state.aaa}>
|
|
|
- <Radio value={1}>项目已完成退单</Radio>
|
|
|
- <Radio value={2}>项目未完成退单</Radio>
|
|
|
- <Radio value={3}>其他</Radio>
|
|
|
- </Radio.Group>
|
|
|
+ <span>{this.state.status?'暂停':'开启'}</span>
|
|
|
+ <Button type='primary' size='small' style={{marginTop:'5px',position:'absolute'}} onClick={this.caozuorizhi}>操作日志</Button>
|
|
|
</FormItem>
|
|
|
- </div>
|
|
|
- <div className="clearfix">
|
|
|
- <FormItem className="large-item"
|
|
|
- labelCol={{ span: 5 }}
|
|
|
- wrapperCol={{ span: 14 }}
|
|
|
- label="请备注退单原因">
|
|
|
- <Input.TextArea />
|
|
|
- </FormItem>
|
|
|
- </div>
|
|
|
- <div className="clearfix">
|
|
|
- <FormItem className="large-item"
|
|
|
- labelCol={{ span: 5 }}
|
|
|
- wrapperCol={{ span: 14 }}
|
|
|
- label="满意度表格">
|
|
|
- <Radio.Group value={this.state.aaa}>
|
|
|
- <Radio value={1}>已收回</Radio>
|
|
|
- <Radio value={2}>未收回</Radio>
|
|
|
- <Radio value={3}>其他</Radio>
|
|
|
- </Radio.Group>
|
|
|
- </FormItem>
|
|
|
- </div>
|
|
|
- <hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>
|
|
|
- <div className="clearfix">
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
- label="是否特批">
|
|
|
- <span></span>
|
|
|
+ label="合同编号">
|
|
|
+ <span>{this.state.contractNo}</span>
|
|
|
</FormItem>
|
|
|
+ </div>
|
|
|
+ <div className="clearfix">
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
- label="项目进度">
|
|
|
- <span></span>
|
|
|
+ label="项目状态">
|
|
|
+ <span>{getProcessStatus(this.state.projectStatus)}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
- label="合同编号">
|
|
|
- <span></span>
|
|
|
+ label="是否特批">
|
|
|
+ <span>{getApproval(this.state.approval)}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="结算状态">
|
|
|
- <span></span>
|
|
|
+ <span>{getLiquidationStatus(this.state.liquidationStatus)}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="流程状态">
|
|
|
- <span></span>
|
|
|
+ <span>{getProcessStatus(this.state.processStatus)}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="订单编号">
|
|
|
- <span></span>
|
|
|
+ <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></span>
|
|
|
+ label="退单">
|
|
|
+ <span>{utils.getChargeback(this.state.taskRefund)}</span>
|
|
|
</FormItem>
|
|
|
</div>
|
|
|
- <hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>
|
|
|
<div className="clearfix">
|
|
|
- <h3 style={{marginTop:'10px',marginLeft:'10px'}}>任务信息</h3>
|
|
|
+ {<FormItem className='half-item'
|
|
|
+ {...formItemLayout}
|
|
|
+ label="(满意度)备注">
|
|
|
+ <span>{this.state.retrieveContent}</span>
|
|
|
+ </FormItem>}
|
|
|
+ {<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></span>
|
|
|
+ <span>{this.state.id}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="任务名称">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.taskName}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="任务状态">
|
|
|
- <span></span>
|
|
|
+ <span>{getTaskStatus(this.state.taskStatus)}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="任务类别">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.cname}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
- label="证书编号">
|
|
|
- <span></span>
|
|
|
+ label="证书编号" >
|
|
|
+ <span>{this.state.certificateNumber}</span>
|
|
|
</FormItem>
|
|
|
</div>
|
|
|
- <hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>
|
|
|
+ {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
|
|
|
<div className="clearfix">
|
|
|
- <h3 style={{marginTop:'10px',marginLeft:'10px'}}>联系信息</h3>
|
|
|
+ <h3 className='sub-title'>联系信息</h3>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="客户名称">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.userName}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="企业法人">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.legalPerson}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="法人电话">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.legalPersonTel}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="客户联系人">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.contacts}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="联系人电话">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.contactMobile}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="企业地址">
|
|
|
- <span></span>
|
|
|
+ <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>{this.state.postalAddress}</span>
|
|
|
</FormItem>
|
|
|
</div>
|
|
|
- <hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>
|
|
|
+ {/*<hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>*/}
|
|
|
<div className="clearfix">
|
|
|
- <h3 style={{marginTop:'10px',marginLeft:'10px'}}>订单负责人</h3>
|
|
|
+ <h3 className='sub-title'>订单负责人信息</h3>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="负责人">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.salesmanName+'(湖南科德)'}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="负责人电话">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.salesmanMobile}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="财务负责人">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.financeName}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="财务负责人电话">
|
|
|
- <span></span>
|
|
|
+ <span>{this.state.financeMobile}</span>
|
|
|
</FormItem>
|
|
|
- <FormItem className="half-item"
|
|
|
- {...formItemLayout}
|
|
|
- label="附件">
|
|
|
- <span></span>
|
|
|
+ </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>
|
|
|
- <FormItem className="half-item"
|
|
|
- {...formItemLayout}
|
|
|
+ </div>
|
|
|
+ <div className="clearfix">
|
|
|
+ <FormItem
|
|
|
+ labelCol={{ span: 3 }}
|
|
|
+ wrapperCol={{ span: 16 }}
|
|
|
label="备注">
|
|
|
- <Input.TextArea />
|
|
|
+ <span>{this.state.taskComment}</span>
|
|
|
</FormItem>
|
|
|
</div>
|
|
|
- <hr style={{border:'1px dashed #aaa', width:"90%",margin:'auto'}}/>
|
|
|
<div className="clearfix">
|
|
|
- <h3 style={{marginTop:'10px',marginLeft:'10px'}}>项目申报进度</h3>
|
|
|
+ <h3 className='sub-title'>项目申报进度</h3>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="启动时间">
|
|
|
- <DatePicker style={{marginTop:'5px'}}/>
|
|
|
+ <span>{this.state.startDate}</span>
|
|
|
</FormItem>
|
|
|
<FormItem className="half-item"
|
|
|
{...formItemLayout}
|
|
|
label="软著派单数量">
|
|
|
- <InputNumber />
|
|
|
+ <span>{this.state.commodityQuantity}</span>
|
|
|
</FormItem>
|
|
|
- <div className='half-item'>
|
|
|
-
|
|
|
- </div>
|
|
|
- <div className='half-item'>
|
|
|
- <Button type='primary' style={{marginLeft:'45px'}}>+增加下证信息</Button>
|
|
|
+ <div className="patent-table patent-table-center">
|
|
|
+ <Spin spinning={this.state.loading}>
|
|
|
+ <Table columns={this.state.ContactsLists}
|
|
|
+ dataSource={this.state.contactList}
|
|
|
+ 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.columnsY} width={400}/>
|
|
|
+ <Table columns={this.state.columnsX}
|
|
|
+ dataSource={this.state.dataSourceX}
|
|
|
+ pagination={this.state.paginations}
|
|
|
+ onRowClick={this.tableRowClickX}
|
|
|
+ />
|
|
|
</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}
|
|
|
+ pagination={false}/>
|
|
|
+ </Spin>
|
|
|
+ </div>
|
|
|
+ </Modal>
|
|
|
</div> )
|
|
|
}
|
|
|
})
|