import React from 'react'
import $ from 'jquery'
import moment from 'moment'
import Picture from '@/manageCenter/publicComponent/picture'
import '@/manageCenter/financialManage/distribute/public.less'
import '@/manageCenter/financialManage/distribute/shouKuan.less'
import OrderDetail from '../../order/orderNew/changeComponent/orderDetail'
import ResolutionDetail from '@/resolutionDetail'
import {
Button,
Form,
Input,
Select,
Spin,
Table,
message,
DatePicker,
Modal,
Radio,
Cascader,
Popconfirm,
Switch,
Tabs,
Col,
Icon,
Upload,
AutoComplete,
Tag,
} from 'antd'
import Assign from '@/manageCenter/publicComponent/assign'
import { areaSelect } from '@/NewDicProvinceList'
import { ChooseList } from '../../order/orderNew/chooseList'
import OrderRiZi from '@/orderRiZi.jsx'
import './table.less'
import {
getMaterialStatus,
getUrgentStatus,
getProcessStatus,
getApproval,
getTaskStatus,
getLiquidationStatus,
getProjectStatus,
splitUrl,
getboutique,
ShowModal,
getRefundStatus,
} from '@/tools'
import { taskStatus, projectStatus, cuiJieDian } from '@/dataDic.js'
import ShowModalDiv from '@/showModal.jsx'
import CheckProject from '../../components/checkProject'
import NewSupplier from './newSupplier';
const confirm = Modal.confirm
const FormItem = Form.Item
const { TabPane } = Tabs
const { TextArea } = Input
const { Option } = Select
const { MonthPicker, RangePicker } = DatePicker
const PicturesWall = React.createClass({
getInitialState() {
return {
previewVisible: false,
previewImage: '',
fileList: [],
}
},
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
this.state.pojectApplicationUrl = undefined
},
render() {
const { previewVisible, previewImage, fileList } = this.state
const uploadButton = (
)
return (
{uploadButton}
)
},
})
const Task = React.createClass({
loadData(pageNo) {
this.state.data = []
this.setState({
page: pageNo,
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/orderTaskList',
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
specially: 0, //个人
name: this.state.nameSearch, //客户名称
depId: this.state.departmenttSearch, //订单部门
orderNo: this.state.orderNoSearch, //订单编号
contractNo: this.state.contractNoSearch, //合同编号
taskId: this.state.taskNoSearch, //项目编号
taskStatus: this.state.taskStatuSearch, //项目状态
projectStatus: this.state.projectStatusSearch, //项目状态
adminName: this.state.adminName, //项目受理人
approval: this.state.approvalSearch, //特批状态搜索
outsourceStatus:
this.state.outsourceStatusSearch >= 999
? undefined
: this.state.outsourceStatusSearch, //外包状态搜索
},
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]
theArr.push({
key: i,
orderNo: thisdata.orderNo, //订单编号
id: thisdata.id, //项目ID
taskName: thisdata.taskName, //名称
cname: thisdata.cname, //项目品类
receiverName: thisdata.receiverName, //受理人
projectStatus: thisdata.projectStatus, //项目状态
taskStatus: thisdata.taskStatus, //项目状态
taskDate: thisdata.taskDate, //分配时间
userName:
thisdata.taskName.substring(0, 5) === '软件著作权'
? thisdata.userName +
'(' +
thisdata.commodityQuantity.toString() +
'/' +
thisdata.alreadyNumber +
')'
: thisdata.userName, //用户名
depName: thisdata.depName, //部门名称
projectType: thisdata.projectType, //0正常 1专利 2软著 3审计
commodityQuantity: thisdata.commodityQuantity, //项目数量
hours: thisdata.hours,
contractNo: thisdata.contractNo,
approval: thisdata.approval, //特批状态
outsourceStatus: thisdata.outsourceStatus, //外包审核状态
outsourceType: thisdata.outsourceType, //外包审核状态
splitStatus: thisdata.splitStatus, //是否为子项目 2是 1主项目
splitSuper: thisdata.splitSuper,
splitId: thisdata.splitId,
})
}
}
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({
dataSource: theArr,
pagination: this.state.pagination,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
getInitialState() {
return {
projectType: '', //项目分类
paySubject: [],
paySubjectName: '', //付款科目名称
PayNodeCompany: [],
thirdMaterial: 0, //第三方信息材料 0-无 1-有
thirdUrgent: 0, //第三方信息加急状态
thirdCompanyName: '',
thirdUnitPrice: '',
currentCompanyName: '', //当前选中供应商名称
thirdQuantity: 1,
payNodeQuantity: 1,
thirdRemarks: '',
customerArr: [],
currentTotalPrice: 0, //当前修改页面的总价
saveThirdList: [],
orderData: [],
orderNo: '',
jiedian: [],
jiedianNew: [],
timeVisible: false,
ThirdListVisible: false,
PayNodeVisible: false, //新增付款节点
searchMore: true,
assignVisible: false,
releaseDate: [],
patentType: -1,
patentNameType: -1,
startType: 0, //外包供应商类型
// 判断是否是退回给咨询师经理
flag: false,
roleName: '',
activeKey: '1',
//特批状态搜索
approvalSearch: undefined,
testFlag: true,
boHuivisible: false,
selectedRowKeys: [],
avisible: false,
departmentArr: [],
selectedRows: [],
attachmentUrl: [],
contactList: [],
paginations: false,
loading: false,
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function (page) {
this.loadData(page)
}.bind(this),
showTotal: function (total) {
return '共' + total + '条数据'
},
},
// 子组件改变的表格title数组
changeList: undefined,
columnsTime: [
{
title: '工作时长(小时)',
dataIndex: 'hours',
key: 'hours',
},
{
title: '工作时间',
dataIndex: 'taskDays',
key: 'taskDays',
},
// {
// title: "项目负责人",
// dataIndex: "remarks",
// key: "remarks"
// },
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
},
],
columns: [
{
title: '项目编号',
dataIndex: 'id',
key: 'id',
render: (text, record) => {
if (record.splitStatus == 2) {
return {record.splitSuper + '-' + record.splitId}
} else {
return text
}
},
},
{
title: '项目名称',
dataIndex: 'taskName',
key: 'taskName',
render: (text) => {
return text && text.length > 8 ? text.substr(0, 8) + '…' : text
},
},
{
title: '项目数量',
dataIndex: 'commodityQuantity',
key: 'commodityQuantity',
},
{
title: '订单编号',
dataIndex: 'orderNo',
key: 'orderNo',
},
{
title: '合同编号',
dataIndex: 'contractNo',
key: 'contractNo',
},
{
title: '业务类别',
dataIndex: 'cname',
key: 'cname',
},
{
title: '客户名称',
dataIndex: 'userName',
key: 'userName',
className: 'userName',
},
{
title: '分配状态',
dataIndex: 'taskStatus',
key: 'taskStatus',
render: (text) => {
return getTaskStatus(text)
},
},
{
title: '项目状态',
dataIndex: 'projectStatus',
key: 'projectStatus',
render: (text) => {
return getProjectStatus(text)
},
},
{
title: '审核状态',
dataIndex: 'outsourceStatus',
key: 'outsourceStatus',
render: (text,record) => {
if(record.outsourceType === 1){
return '供应商'
}else{
if (text === 0) {
return 外包待审核
} else if (text === 1) {
return 外包已通过
} else if (text === 2) {
return 外包被驳回
} else {
return /
}
return text
}
},
},
{
title: '分配时间',
dataIndex: 'taskDate',
key: 'taskDate',
},
{
title: '订单部门',
dataIndex: 'depName',
key: 'depName',
},
{
title: '累计工时(小时)',
dataIndex: 'hours',
key: 'hours',
},
{
title: '操作',
dataIndex: 'caozuo',
key: 'caozuo',
render: (text, record) => {
return (
)
},
},
],
dataSource: [],
searchTime: [],
columnsX: [
{
title: '业务项目名称',
dataIndex: 'commodityName',
key: 'commodityName',
},
{
title: '项目类别',
dataIndex: 'cname',
key: 'cname',
},
{
title: '项目数量',
dataIndex: 'commodityQuantity',
key: 'commodityQuantity',
render: (text, record) => {
if (record.splitStatus == 1) {
return (
{text}{' '}
{
e.stopPropagation()
this.showRes(record)
}}
>
已拆
)
} 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: 'taskComment',
key: 'taskComment',
render: (text) => {
return text && text.length > 8 ? text.substr(0, 8) + '…' : text
},
},
],
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',
render: (text, record) => {
return (
{}}
value={
record.licenceTimes ? moment(record.licenceTimes) : null
}
onChange={(data, dataString) => {
record.licenceTimes = dataString
this.setState({ contactList: this.state.contactList })
}}
/>
)
},
},
{
title: '下证数量',
dataIndex: 'alreadyNumber',
key: 'alreadyNumber',
render: (text, record) => {
return (
{
{
record.alreadyNumber = e.target.value
this.setState({ contactList: this.state.contactList })
}}
style={{ width: '120px' }}
/>
}
)
},
},
{
title: '未下证数量',
dataIndex: 'notCount',
key: 'notCount',
},
{
title: '操作',
dataIndex: 'dels',
key: 'dels',
render: (text, record, index) => {
return (
{
{
this.confirmDelet(record)
}}
okText="删除"
cancelText="不删除"
>
}
{record.flag ? (
''
) : (
)}
)
},
},
],
// 专利
ContactsListsNew: [],
//付款节点表头
PayNodeTableColunms: [],
}
},
/* 分派 */
evaluate(record, nub, flag) {
this.setState(
{
nub: nub,
assignData: record,
flag,
},
() => {
this.setState({
assignVisible: true,
})
}
)
},
componentWillMount() {
this.departmentList()
this.loadData()
},
componentDidMount() {
this.setColor()
},
//用于判断 第三方信息表格显示
projectTypeTabContent(projectType) {
if(projectType === 0 || !projectType){ //0正常 1专利 2软著 3审计
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
],
})
}else if(projectType === 2){ //2软著
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return ***
}
},
},
{
title: '材料',
dataIndex: 'material',
key: 'material',
render: (text, record) => {
return getMaterialStatus(text)
},
},
{
title: '加急',
dataIndex: 'urgent',
key: 'urgent',
render: (text, record) => {
return getUrgentStatus(text)
},
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
],
})
}else if(projectType === 1){ //1专利
if(this.state.patentType === 0){ //专利申请
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: "官费",
dataIndex: "officialCost",
key: "officialCost",
render: (text) => {
return text === 1 ? '有官费' : '无官费'
},
},
{
title: "费减",
dataIndex: "costReduction",
key: "costReduction",
render: (text) => {
return text === 1 ? '有费减' : '无费减'
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{
}
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
]
})
}else{
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
]
})
}
}else if(projectType === 3){ //3审计
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return ***
}
},
},
{
title: '审计',
dataIndex: 'audit',
key: 'audit',
render: (text, record) => {
if (text) {
return {text===0?'无审计':text===1?'年审':'专审'}
}
},
},
{
title: '公司资产(万元)',
dataIndex: 'assets',
key: 'assets',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '收入(万元)',
dataIndex: 'income',
key: 'income',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
]
})
}
this.setState({
//付款节点表头
PayNodeTableColunms: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '付款科目',
dataIndex: 'dunType',
key: 'dunType',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '付款时间',
dataIndex: 'partyTimes',
key: 'partyTimes',
render: (text, record) => {
return {text ? text : '/'}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
return {text}
},
},
{
title: '已付',
dataIndex: 'partyAmount',
key: 'partyAmount',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '操作',
dataIndex: 'dels',
key: 'dels',
render: (text, record, index) => {
return (
{
this.payNodeConfirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
],
})
},
setColor() {
$('.userName span').after(
"(软著数/下证数)"
)
},
// 获取csort下的数据
getCsortData(cSort) {
cuiJieDian.map((item) => {
if (item.value == cSort) {
console.log(item.children)
this.setState({
paySubject: item.children,
})
}
})
},
tableRowClick(record) {
this.state.RowData = record
let str = record.taskName
let test = str.indexOf('会员')
if (test == -1) {
this.setState({
isHuiyuan: false,
})
} else {
this.setState({
isHuiyuan: true,
})
}
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({
projectType: record.projectType
})
this.xiangqing(record.id, record.taskName)
this.xiangqings(record.orderNo)
this.xiangmu(record.orderNo)
this.loaduserss(record)
// 获取第三方信息表格
this.thirdTable(record.id)
//获取支付节点信息表格
this.payNodeTable(record.id)
// 获取Csort
this.getCsortData(localStorage.getItem('cSort'))
this.projectTypeTabContent(record.projectType)
console.log('项目类型',record.projectType)
},
//点击修改项目详情
tijiaoOk() {
let attachmentUrls = []
if (this.state.attachmentUrl.length) {
let picArr = []
this.state.attachmentUrl.map(function (item) {
if (item.response && item.response.data && item.response.data.length) {
picArr.push(item.response.data)
}
})
attachmentUrls = picArr.join(',')
}
this.setState({
loading: true,
})
$.ajax({
method: 'POST',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/updateOrderTask',
data: {
id: this.state.id, //项目编号
orderNo: this.state.orderNo, //订单编号
projectStatus: this.state.projectStatus, //项目状态
taskStatus: this.state.taskStatus, //项目状态
taskComment: this.state.taskComment, //说明
startDate: this.state.startDate, //启动日期
endDate: this.state.endDate, //结束日期
acceptDate: this.state.acceptDate, //受理日期
reviewDate: this.state.reviewDate, //评审日期
publicityDate: this.state.publicityDate, //公示日期
licenceDate: this.state.licenceDate, //发证日期
attachmentUrl: attachmentUrls.length ? attachmentUrls : '', //附件
contacts: this.state.contacts, //联系人
contactMobile: this.state.contactMobile, //联系人电话
legalPerson: this.state.legalPerson, //法人
legalPersonTel: this.state.legalPersonTel, //法人电话
certificateNumber: this.state.certificateNumber, //证书编号
status: this.state.status, //状态
formRetrieve: this.state.formRetrieve, //满意度表格
taskRefund: this.state.taskRefund, //退单
refundContent: this.state.refundContent, //退单信息
retrieveContent: this.state.retrieveContent, //回收信息
locationProvince: this.state.ProvinceCity[0],
locationCity: this.state.ProvinceCity[1],
locationArea: this.state.ProvinceCity[2],
postalAddress: this.state.postalAddress, //详细地址
arrivalMoney: this.state.arrivalMoney, //是否到款
setUpAmount: this.state.setUpAmount, //立项金额
declareUser: this.state.declareUser, //账号
declarePwd: this.state.declarePwd, //密码
outsourceName: this.state.outsourceName, //外包公司
outsourcePrice: this.state.outsourcePrice, //外包价格
declarationBatch: this.state.declarationBatch,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('保存成功!')
this.visitCancel()
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
//点击修改项目详情
tianjiaOk() {
if (this.state.attachmentUrl.length) {
let picArr = []
this.state.attachmentUrl.map(function (item) {
if (item.response && item.response.data && item.response.data.length) {
picArr.push(item.response.data)
}
})
}
$.ajax({
method: 'POST',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/addTaskHours',
data: {
taskId: this.state.taskId, //项目编号
hours: this.state.hours, //工时
remarks: this.state.remarks, //说明
taskDate: this.state.taskDate, //日期
taskComment: this.state.taskComment, //说明
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('保存成功!')
this.noCancel()
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
//订单详情
xiangqing(id) {
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/orderTaskDetail',
data: {
id: id,
},
success: function (data) {
let thisdata = data.data
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
this.setState({
id: thisdata.id, //ID
orderNo: thisdata.orderNo, //订单编号
userName: thisdata.userName, //客户名称
taskName: thisdata.taskName, //项目名称
cname: thisdata.cname, //项目品类
contractNo: thisdata.contractNo, //合同编号
projectStatus: thisdata.projectStatus.toString(), //项目状态
taskStatus: thisdata.taskStatus.toString(), //项目状态
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, //密码
outsourceName: thisdata.outsourceName, //外包公司
outsourcePrice: thisdata.outsourcePrice, //外包价格
declarationBatch: thisdata.declarationBatch,
})
}
}.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 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, //结算状态
approval: thisdata.approval, //特批状态
orderRemarks: thisdata.orderRemarks, //订单留言
salesmanName: thisdata.salesmanName, //营销员名称
salesmanMobile: thisdata.salesmanMobile, //营销员电话
financeName: thisdata.financeName, //财务名称
financeMobile: thisdata.financeMobile, //财务电话
oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
nowFinance: thisdata.nowFinance, //财务名称
nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
depName: thisdata.depName, //订单部门
ProvinceCity: ProvinceCityArr[0] === null ? [] : ProvinceCityArr,
postalAddress: thisdata.postalAddress, //详细地址
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
//项目列表
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]
localStorage.setItem('cSort', thisdata.cSort)
theArr.push({
key: i,
id: thisdata.id,
orderNo: thisdata.orderNo, //订单编号
commodityId: thisdata.commodityId, //项目ID
commodityName: thisdata.commodityName, //项目名称
cname: thisdata.cname, //项目类别
commodityPrice: thisdata.commodityPrice, //项目价格
commodityQuantity: thisdata.commodityQuantity, //项目数量
main: thisdata.main, //是否为主要项目
taskComment: thisdata.taskComment, //项目说明
contacts: thisdata.contacts, //联系人
contactsMobile: thisdata.contactsMobile, //联系人电话
taskStatus: thisdata.taskStatus, //是否分配
contractNo: thisdata.contractNo, //合同编号
certificateNumber: thisdata.certificateNumber,
splitStatus: thisdata.splitStatus,
officialCost: thisdata.officialCost,
costReduction: thisdata.costReduction,
type: thisdata.type,
cSort: thisdata.cSort,
})
}
}
this.setState({
dataSourceX: theArr,
type: theArr[0].type,
cSort: theArr[0].cSort,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
//导出
exportExec() {
let departmentName = '',
depart = this.state.departmentArr || []
depart.map((item) => {
if (this.state.departmentId == item.id) {
departmentName = item.name
return
}
})
let data = {
departmentId: this.state.departmentId,
departmentName: departmentName,
salesName: this.state.orderRefundSearch, //订单负责人
startTime: this.state.releaseDate[0],
endTime: this.state.releaseDate[1],
grantStatus: this.state.grantStatus,
}
window.location.href =
globalConfig.context +
'/api/admin/orderProject/exporProjectList?' +
$.param(data)
},
//关闭详情
visitCancel() {
this.setState({
visible: false,
speVisible: false,
activeKey: '1',
})
this.reset()
},
visitOk() {
this.setState({
visible: false,
speVisible: false,
})
this.reset()
},
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)
}
},
//添加工时
okCancel(record) {
this.setState({
lookVisible: true,
taskId: record.id,
})
},
//测试
getOrgCodeUrl(e) {
this.setState({ orgCodeUrl: e })
},
//查看下证信息
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,
tid: record.id,
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
// 拆分详细
showRes(record) {
this.setState({
resVisible: true,
resRecord: record,
})
},
resCancel() {
this.setState({
resVisible: false,
})
},
//下证信息保存
contactSave(record) {
if (!record.licenceTimes) {
message.warning('下证日期不能为空')
return
}
if (!record.alreadyNumber) {
message.warning('下证数量不能为空')
return
}
this.setState({
loading: true,
})
$.ajax({
url: globalConfig.context + '/api/admin/orderProject/createTaskProgress',
method: 'post',
data: {
taskId: this.state.id,
licenceTimes: record.licenceTimes,
alreadyNumber: record.alreadyNumber,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('保存成功!')
record.flag = true
this.loaduserss(this.state.dataArr)
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
//下证信息删除
contactDele(record) {
this.setState({
loading: true,
})
$.ajax({
url: globalConfig.context + '/api/admin/orderProject/delectTaskProgress',
method: 'post',
data: {
id: record.id,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
this.loaduserss(this.state.dataArr)
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
//点击新增下证信息
addcontact() {
this.state.contactList.push({
num: this.state.contactList.length + 1,
key: this.state.contactList.length,
licenceTimes: '',
alreadyNumber: '',
notCount: '',
dels: '',
flag: false,
aflag: false,
})
this.setState({
contactList: this.state.contactList,
})
},
//删除下证信息
confirmDelet(record) {
this.state.contactList.splice(record.key, 1)
this.setState({
contactList: this.state.contactList,
})
if (record.id) {
this.contactDele(record)
}
},
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,
})
},
nextCancel() {
this.setState({
addnextVisible: false,
displayFees: 'none',
officialCost: '', //是否有官费
costReduction: '', //是否有费减
})
},
//点击打卡项目详情
tableRowClickX(record) {
if (record.type == '1') {
this.setState({
displayFees: 'block',
costReduction: record.costReduction,
officialCost: record.officialCost,
})
}
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,
addState: 0,
})
},
//关闭添加工时
noCancel() {
this.setState({
lookVisible: false,
})
this.reset()
},
search() {
this.loadData()
},
reset(flag) {
if (flag) {
this.state.nameSearch = ''
this.state.orderNoSearch = ''
this.state.contractNoSearch = undefined
this.state.taskNoSearch = ''
this.state.departmenttSearch = undefined
this.state.projectStatusSearch = undefined //项目状态
this.state.approvalSearch = undefined
this.state.outsourceStatusSearch = []
}
this.state.id = '' //项目编号
this.state.orderNo = '' //订单编号
this.state.projectStatus = undefined //项目状态
this.state.taskStatuSearch = undefined //项目状态
this.state.taskComment = '' //说明
this.state.startDate = '' //启动日期
this.state.endDate = '' //结束日期
this.state.acceptDate = '' //受理日期
this.state.reviewDate = '' //评审日期
this.state.publicityDate = '' //公示日期
this.state.licenceDate = '' //发证日期
this.state.partyTimes = '' //付款时间
attachmentUrl: [] //附件
this.state.contacts = '' //联系人
this.state.contactMobile = '' //联系人电话
this.state.legalPerson = '' //法人
this.state.legalPersonTel = '' //法人电话
this.state.taskId = '' //项目编号
this.state.hours = '' //工时
this.state.remarks = '' //说明
this.state.taskDate = '' //日期
this.state.taskComment = '' //说明
this.state.releaseDate = []
this.state.outsourceName = ''
this.state.outsourcePrice = undefined
this.state.distribution = undefined
this.loadData(this.state.page)
this.state.companyName = undefined
this.state.unitPrice = undefined
this.state.unitNumber = undefined
this.state.amount = undefined
this.state.outsourceRemarks = undefined
this.state.pictureUrl = []
},
searchSwitch() {
this.setState({
searchMore: !this.state.searchMore,
})
},
//部门
departmentList() {
this.setState({
loading: true,
})
$.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)
}
thedata = {}
} else {
thedata.map(function (item, index) {
theArr.push({
key: index,
name: item.name,
id: item.id,
})
})
}
this.setState({
departmentArr: theArr,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.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,
})
},
timeClose() {
this.setState({
timeVisible: false,
})
},
timeDetail(record) {
console.log(record)
this.setState({
loading: true,
recordHour: record.hours,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url:
globalConfig.context + '/api/admin/orderProject/taskHoursDetailsList',
data: {
taskId: record.id,
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
this.setState({
dataSourceTime: data.data,
})
console.log(this.state.dataSourceTime)
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
showDeleteConfirm(num, fn) {
let text = getProjectStatus(num)
confirm({
title: 注意
,
content: (
当前的项目状态为{text},保存后将触发对应的催款节点!!!您确定保存?
),
okText: '确定',
okType: 'danger',
cancelText: '取消',
onOk() {
fn()
},
onCancel() {},
})
},
// 项目发起外包
sureOut() {
if (this.state.startType !== 0 && this.state.startType !== 1) {
message.warning('请选择类型')
return
}
//0正常 1专利 2软著 3审计
if (this.state.projectType === 1) {
//专利
if (this.state.patentType === -1) {
message.warning('请选择专利类型')
return
}
if (this.state.patentNameType === -1) {
message.warning('请选择专利类型名称')
return
}
if (this.state.patentNameType == 3) {
if (!this.state.patentName) {
message.warning('请填写专利名称')
return
}
}
}
if (!this.state.outsourceRemarks) {
message.warning('备注不能为空')
return
}
console.log(this.state.pictureUrl)
if (!this.state.pictureUrl && !Array.isArray(this.state.pictureUrl)) {
message.warning('合同扫描件不能为空')
return
}
if(this.state.pictureUrl.length === 0){
message.warning('合同扫描件不能为空')
return
}
this.setState({
loading: true,
})
let data = {
tid: this.state.id,
orderNo: this.state.orderNo,
type: 1, //分类 0订单 1项目
startType: this.state.startType, //支付类型 0外包 1供应商 false 0
companyName: this.state.companyName,
amount: this.state.amount,
pictureUrl: this.getUrl(this.state.pictureUrl).length
? this.getUrl(this.state.pictureUrl)
: '',
outsourceRemarks: this.state.outsourceRemarks,
unitNumber: this.state.unitNumber,
unitPrice: this.state.unitPrice,
id: this.state.refundStatus == 2 ? this.state.mid : undefined,
}
if (this.state.projectType === 1) {
data.patentType = this.state.patentType;
data.patentNameType = this.state.patentNameType;
if (this.state.patentNameType == 3) {
data.patentName = this.state.patentName;
}
}
$.ajax({
method: 'POST',
dataType: 'json',
crossDomain: false,
url:
globalConfig.context + '/api/admin/outsourceOrg/outsourceProjectAudit',
data: data,
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('提交成功!')
this.visitCancel()
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
callback(e) {
this.setState({
activeKey: e,
})
if (e == 3) {
this.orderDetailData(this.state.orderNo)
this.xiangmu(this.state.orderNo)
this.jiedian(this.state.orderNo)
this.jiedianNew(this.state.orderNo)
}
},
getOrgCodeUrlWai(e) {
this.setState({ pictureUrl: e })
},
getUrl(url) {
let theorgCodeUrl = []
if (url.length) {
let picArr = []
url.map(function (item) {
if (item.response && item.response.data && item.response.data.length) {
picArr.push(item.response.data)
}
})
theorgCodeUrl = picArr.join(',')
}
return theorgCodeUrl
},
waiDetail() {
let url = window.location.href.substring(7)
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url:
globalConfig.context + '/api/admin/outsourceOrg/orderOutsourceDtails',
data: {
tid: this.state.id,
orderNo: this.state.orderNo,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length && data.data) {
this.setState({
startType: data.data.startType, //类型
patentType: data.data.patentType, //专利类型
patentNameType: data.data.patentNameType, //专利名称类型
patentName: data.data.patentName, //专利名称
outsourceRemarks: data.data.outsourceRemarks,
remarks: data.data.remarks,
companyName: data.data.companyName,
amount: data.data.amount,
mid: data.data.id,
unitPrice: data.data.unitPrice,
refundStatus: data.data.refundStatus,
unitNumber: data.data.unitNumber,
pictureUrl: data.data.pictureUrl
? splitUrl(
data.data.pictureUrl,
',',
globalConfig.avatarHost + '/upload',
url
)
: [], //图片地址
createTimes: data.data.createTimes,
auditTimes: data.data.auditTimes,
})
} else if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else if (!data.data) {
this.setState({
refundStatus: undefined,
})
}
}.bind(this)
)
},
rizhi() {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: '/api/admin/newOrder/selectOrderLog',
data: {
orderNo: this.state.orderNo,
},
success: function (data) {
let theArr = []
let thisData = data.data
if (!thisData.length) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
thisData = {}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i]
theArr.push({
processName: thisdata.processName,
adminName: thisdata.adminName,
createDate: thisdata.createDate,
remarks: thisdata.remarks,
})
}
}
this.setState({
dataSourceY: theArr,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
closeOrderLog() {
this.setState({
avisible: false,
})
},
getOrderLog() {
this.setState({
avisible: true,
})
this.rizhi()
},
orderChange(key) {
this.setState({
activeKey: key,
})
if (key == 3) {
this.orderDetailData(this.state.orderNo)
this.xiangmu(this.state.orderNo)
this.jiedian(this.state.orderNo)
this.jiedianNew(this.state.orderNo)
}
if (key == 2) {
this.waiDetail()
}
},
//节点列表
jiedian(orderNos) {
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/newOrder/selectOrderDun',
data: {
orderNo: orderNos,
},
success: function (data) {
let theArr = []
let thisData = []
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++) {
thisData = data.data[i]
theArr.push({
key: i,
dunSubject: thisData.dunSubject
? thisData.dunSubject.toString()
: '', //催款科目
id: thisData.id, //节点Id
money: thisData.money, //催款金额
dunStatus: thisData.dunStatus, //催款状态
})
}
this.setState({
jiedian: theArr,
})
}
}.bind(this),
})
},
jiedianNew(orderNos) {
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url:
globalConfig.context + '/api/admin/newOrderDun/selectListNewOrderDun',
data: {
orderNo: orderNos,
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
let theArr = []
let thisData = []
let arr = data.data || []
let totalCui = 0
for (let i = 0; i < arr.length; i++) {
thisData = arr[i]
totalCui += +thisData.money
theArr.push({
key: i,
dunSubject: thisData.dunSubject
? thisData.dunSubject.toString()
: '', //催款科目
id: thisData.id, //节点Id
tid: thisData.tid, //节点指定的第三方id
money: thisData.money, //催款金额
// orderNo: record ? record.orderNo : this.props.datauser.orderNo,
commodityName: thisData.commodityName,
projectType: thisData.projectType,
dunTypeName: thisData.dunTypeName,
status: thisData.status,
waitDay: thisData.waitDay,
effectiveCount: thisData.effectiveCount,
startDate: thisData.startDate,
dunType: thisData.dunType,
appropriationRatio: thisData.appropriationRatio,
customizeName: thisData.customizeName,
customizeTimes: thisData.customizeTimes,
})
}
if (!totalCui) {
totalCui = 0
}
totalCui = (Math.round(totalCui * 10000) / 10000).toFixed(4)
this.setState({
jiedianNew: theArr,
totalCui,
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
orderDetailData(orderNos) {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/newOrder/getOrderNewDetail',
data: {
orderNo: orderNos,
},
success: function (data) {
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
this.setState({
loading: false,
})
}
} else {
let thisdata = data.data
this.setState({
loading: false,
userName: thisdata.userName,
primaryOrderNo: thisdata.primaryOrder,
additionalOrder: thisdata.additionalOrder,
contractNo: thisdata.contractNo,
orderData: thisdata,
isAddition: thisdata.additionalOrder ? true : false,
contractPictureUrl: thisdata.contractPictureUrl
? splitUrl(
thisdata.contractPictureUrl,
',',
globalConfig.avatarHost + '/upload'
)
: [],
})
}
}.bind(this),
})
},
//点击新增供应商
addcontactNew() {
this.state.contactListNew.push({
key: this.state.contactListNew.length,
money: '',
dunSubject: undefined,
orderNo: this.state.orderNo,
dunTarget: this.state.kehuId,
})
this.setState({
contactListNew: this.state.contactListNew,
cuiFlag: true,
})
},
//查看第三方信息表格
thirdTable(id) {
this.setState({
loadData: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/company/selectCompany',
data: {
tid: id,
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
let companyNameArr = []
let theArr = []
let thisData = []
let arr = data.data || []
let allTotalAmount = 0
let type = 0;
let patentNameType = 0;
for (let i = 0; i < arr.length; i++) {
thisData = arr[i]
allTotalAmount =
(allTotalAmount * 10000 + thisData.totalAmount * 10000) / 10000
companyNameArr.push(thisData.companyName)
theArr.push({
key: i,
id: thisData.id, //节点Id
tid: thisData.tid,
companyName: thisData.companyName, //供应商名称
unitPrice: thisData.unitPrice, //单价
quantity: thisData.quantity, //数量
totalAmount: thisData.totalAmount, //总价
material: thisData.material, //材料 0无 1有
urgent: thisData.urgent, // 0无加急(系统默认)1加急3天 2加急4天 3加急5-10天 4加急11-15天 5加急16-20天 6加急21-25天 7加急26-30天
audit: thisData.audit, //0无审计 1年审 2专审
assets: thisData.assets, //资产
income: thisData.income, //收入
remarks: thisData.remarks, //备注
cid: thisData.cid, //机构id
costReduction: thisData.costReduction,//费减
officialCost: thisData.officialCost,//官费
type: thisData.type, //0其他 1专利申请 2专利买卖
patentType: thisData.type, //专利名称类型 0实用新型 1发明专利 2外观专利 3 其他
})
type=thisData.type
patentNameType= thisData.patentNameType
}
if (!allTotalAmount) {
allTotalAmount = 0
}
for(let d=0;d{
this.projectTypeTabContent(this.state.projectType);
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
payNodeTable(id) {
this.setState({
loadData: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/company/selectPaymentNode',
data: {
tid: id,
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
let payNodeArr = []
let thisData = []
let arr = data.data || []
// console.log('this.state.paySubject', this.state.paySubject)
//对#5283自定义的补充展示
this.state.paySubject.push({ key: '自定义', value: '0' })
for (let i = 0; i < arr.length; i++) {
thisData = arr[i]
//遍历paySubject,获取当前dunType对应的key
this.state.paySubject.map((item) => {
if (item.value == thisData.dunType) {
thisData.dunType = item.key
}
})
payNodeArr.push({
key: i,
id: thisData.id, //付款节点Id
nodeId: thisData.id, //付款节点Id
tid: thisData.tid,
companyName: thisData.companyName, //供应商名称
projectType: thisData.projectType, //项目分类
dunType: thisData.dunType, //催款分类
unitPrice: thisData.unitPrice, //单价
quantity: thisData.quantity, //数量
totalAmount: thisData.totalAmount, //总价
partyAmount: thisData.partyAmount, //付款
partyTimes: thisData.partyTimes, //付款时间
cid: thisData.cid, //机构id
status: thisData.status, //催款状态 0-未支付 1-待全款 ,2已全款 status=2的时候已经全款,申请付款按钮可以去掉了
})
}
for(let d=0;d {
if (item.companyName === this.state.thirdCompanyName) {
currentTotalPrice = num ? item.unitPrice * num : item.quantity * item.unitPrice;
currentTotalPrice = currentTotalPrice.toFixed(4);
quantity = num ? num : item.quantity;
unitPrice = item.unitPrice;
}
})
this.setState({
payNodeQuantity: num ? num : quantity,
})
if(this.state.projectType !== 2){
this.setState({
currentTotalPrice: currentTotalPrice,
thirdUnitPrice: unitPrice
})
}
},
// 保存供应商信息
handleCancelq() {
let api
if (this.state.ThirdId) {
//修改
api = '/api/admin/company/updateCompany'
} else {
//新增
api = '/api/admin/company/addCompany'
}
let customerId = 0;
let isHave =this.state.customerArr.some((value)=>{
if(value.companyName === this.state.thirdCompanyName){
customerId = value.id
return true;
}
});
if(!isHave && this.state.projectType !== 0){
message.warning('请输入正确的供应商名称')
return;
}
this.setState({
loading: true,
})
// material: this.state.thirdMaterial, //材料
// urgent: this.state.thirdUrgent, //加急
// unitPrice: this.state.thirdUnitPrice, //单价
let data = {
id: this.state.ThirdId, //id
tid: this.state.tid, //订单编号
companyName: this.state.thirdCompanyName, //第三方名称
quantity: this.state.thirdQuantity, //数量
// totalAmount: this.state.currentTotalPrice, //总价
remarks: this.state.thirdRemarks, //备注
}
if(this.state.projectType === 0){
data.unitPrice = this.state.thirdUnitPrice;
}
if(isHave){
data.cid = customerId ////公司id
}
$.ajax({
url: globalConfig.context + api,
method: 'post',
dataType: 'json',
crossDomain: false,
data: data,
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('保存成功!')
this.setState({
ThirdId: '',
ThirdListVisible: false,
thirdCompanyName: '', //第三方名称
thirdUnitPrice: '', //单价
thirdQuantity: '', //数量
currentTotalPrice: '', //总价
thirdRemarks: '',
thirdUrgent: 0,
})
// this.visitCancel();
this.thirdTable(this.state.tid)
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
//保存付款节点
savePayNode() {
let api
if (this.state.ThirdId) {
//修改
api = '/api/admin/company/updatePaymentNode'
} else {
//新增
api = '/api/admin/company/addPaymentNode'
}
// totalAmount: this.state.currentTotalPrice, //总价
// partyAmount: this.state.partyAmount, //付款金额
//
let customerId=0;
this.state.PayNodeCompany.some((value)=>{
if(value.companyName === this.state.thirdCompanyName){
customerId = value.id
return true;
}
});
if(!this.state.thirdCompanyName){
message.error('请选择供应商名称');
return;
}
if(!this.state.paySubjectName){
message.error('请选择付款科目');
return;
}
if(!this.state.payNodeQuantity){
message.error('请输入数量');
return;
}
let data = {
id: this.state.ThirdId, //id
tid: this.state.tid, //订单编号
cid: customerId,//对应的第三方信息
companyName: this.state.thirdCompanyName.split('-')[0], //第三方名称
quantity: this.state.payNodeQuantity, //数量
dunType: this.state.dunType, //催款节点
projectType: this.state.cSort, //项目分类
}
if(this.state.paySubjectName === '0'){
if(!this.state.partyTimes){
message.error('请选择付款时间');
return;
}
data.partyTimes = this.state.partyTimes //付款时间
}
if(this.state.projectType !== 2){ //其他类型 0正常 1专利 2软著 3审计
data.totalAmount = this.state.currentTotalPrice //总价
data.unitPrice = this.state.thirdUnitPrice //单价
}
this.setState({
loading: true,
})
$.ajax({
url: globalConfig.context + api,
method: 'post',
dataType: 'json',
crossDomain: false,
data: data,
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('保存成功!')
this.setState({
ThirdId: '',
PayNodeVisible: false,
thirdCompanyName: '', //第三方名称
paySubjectName: '', //付款科目名称
thirdUnitPrice: '', //单价
thirdQuantity: '', //数量
payNodeQuantity: 1, //付款节点数量
currentTotalPrice: '', //总价
partyAmount: '', //付款金额
partyTimes: '', //付款时间
dunType: '', //催款节点
})
// this.visitCancel();
this.payNodeTable(this.state.tid)
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
// 取消
handleCancelclose() {
this.setState({
PayNodeVisible: false,
ThirdListVisible: false,
thirdCompanyName: '', //第三方名称
paySubjectName: '', //付款科目名称
thirdUnitPrice: '', //单价
partyTimes: '',
thirdQuantity: 1, //数量
payNodeQuantity: 1,
currentTotalPrice: '', //总价
thirdRemarks: '',
ThirdId: '',
thirdUrgent: 0, //加急状态
})
},
// 删除供应商信息
confirmDeletNew(index,resolve=()=>{},reject=()=>{}) {
this.setState({
loading: true,
ThirdListVisible: false,
})
let id = '';
if(index === -1){
this.state.thirdInfoList.map((value,index)=>{
id+=value.id+',';
})
}else{
id = index.id
}
$.ajax({
url: globalConfig.context + '/api/admin/company/deleteCompany',
method: 'post',
data: {
id: id,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('删除成功!')
this.thirdTable(this.state.tid)
resolve();
} else {
message.warning(data.error[0].message)
reject();
}
}.bind(this)
)
},
// 删除付款节点
payNodeConfirmDeletNew(index,resolve=()=>{},reject=()=>{}) {
this.setState({
loading: true,
PayNodeVisible: false,
})
let id = '';
if(index === -1){
this.state.payNodeList.map((value,index)=>{
id+=value.id+',';
})
}else{
id = index.id
}
$.ajax({
url: globalConfig.context + '/api/admin/company/deletePaymentNode',
method: 'post',
data: {
id: id,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('删除成功!')
resolve();
this.payNodeTable(this.state.tid)
} else {
message.warning(data.error[0].message)
reject();
}
}.bind(this)
)
},
//点击供应商详情
tableRowClickOne(record) {
this.setState({
ThirdListVisible: true,
ThirdId: record.id, //供应商id
thirdCompanyName: record.companyName, //第三方名称
thirdUnitPrice: record.unitPrice, //单价
thirdQuantity: record.quantity, //数量
currentTotalPrice: record.totalAmount, //总价
thirdMaterial: record.material, //有无材料
thirdUrgent: record.urgent, //加急情况
thirdRemarks: record.remarks,
})
},
//点击付款节点详情
payNodeTableRowClickOne(record) {
this.setState({
PayNodeVisible: true,
ThirdId: record.id, //供应商id
thirdCompanyName: record.companyName, //第三方名称
thirdUnitPrice: record.unitPrice, //单价
thirdQuantity: record.quantity, //供应商数量
payNodeQuantity: record.quantity, //付款节点数量
currentTotalPrice: record.totalAmount, //总价
partyTimes: record.partyTimes,
paySubjectName: record.dunType,
})
},
render() {
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
}
let departmentArr = this.state.departmentArr || []
return (
{this.state.resVisible ? (
) : (
''
)}
项目任务
{/*
*/}
{/*
*/}
{this.state.visible ?
{
this.callback(e)
if (e == 2) {
this.waiDetail();
this.thirdTable(this.state.tid);
this.payNodeTable(this.state.tid)
}
}}
>
{this.state.refundStatus != 0 && this.state.refundStatus != 1 ? (
*
类型
}
>
{
this.setState({ startType: e.target.value })
}}
>
外包(不走总部)
供应商信息
{/* 专利类型 */}
*
专利类型
}
>
{
let _this = this;
if(this.state.thirdInfoList.length >0){
confirm({
title: '确定要切换吗?',
content: '切换将删除所有第三信息和付款节点',
onOk() {
return new Promise((resolve, reject) => {
_this.setState({ patentType: e.target.value },()=>{
_this.projectTypeTabContent(_this.state.projectType);
})
_this.confirmDeletNew(-1,resolve,reject)
if(_this.state.payNodeList.length > 0){
_this.payNodeConfirmDeletNew(-1,resolve,reject);
}
}).catch(() => console.log('Oops errors!'));
},
onCancel() {},
});
}else{
this.setState({ patentType: e.target.value },()=>{
this.projectTypeTabContent(this.state.projectType);
})
}
}}
>
专利申请/变更/转让
专利买卖
*
专利名称
}
>
{
let _this = this;
if(this.state.thirdInfoList.length >0){
confirm({
title: '确定要切换吗?',
content: '切换将删除所有第三信息和付款节点',
onOk() {
return new Promise((resolve, reject) => {
_this.setState({ patentNameType: e.target.value },()=>{
_this.projectTypeTabContent(_this.state.projectType);
})
_this.confirmDeletNew(-1,resolve,reject)
if(_this.state.payNodeList.length > 0){
_this.payNodeConfirmDeletNew(-1,resolve,reject);
}
}).catch(() => console.log('Oops errors!'));
},
onCancel() {},
});
}else{
this.setState({ patentNameType: e.target.value },()=>{
this.projectTypeTabContent(this.state.projectType);
})
}
}}
>
实用新型专利
发明专利
外观专利
{/**/}
{/* 其他*/}
{/* {*/}
{/* this.setState({*/}
{/* patentName: e.target.value,*/}
{/* })*/}
{/* }}*/}
{/* placeholder="请填写专利名称"*/}
{/* />*/}
{/**/}
{/* 第三方信息专利 */}
第三方信息
金额总计(万元): {this.state.allTotalAmount}
付款节点
*备注
}
>
{/*
{
return {
'sign': e.name.substring(0,e.name.lastIndexOf("."))
}
}}
fileList={this.state.fileUrl}
onChange={(e)=>{
this.setState({
attachmentUrl:e.fileList,
fileUrl:e.fileList
})
}}>
{fileUrl.length>1?null:}
支持文件格式: doc,excel,ppt
*/}
首次派单项目,需上传协议,第2次起,同项目,只需写外包公司
提示:高于总部价格,费用个人承担
) : (
{
this.state.visible && this.state.activeKey === '2' ?
{
this.waiDetail();
this.thirdTable(this.state.tid);
this.payNodeTable(this.state.tid)
this.loadData(this.state.page)
}}
/> :
}
)}
{(this.state.refundStatus == 1 ||
this.state.refundStatus == 0 ||
this.state.refundStatus == 2) && this.state.startType !== 1 ? (
{this.state.remarks}
{parseInt(this.state.startType) !== 1 ?
{getRefundStatus(this.state.refundStatus)}
:
}
{this.state.auditTimes}
) : (
''
)}
{!this.props.isZxs || (this.state.isHuiyuan && this.props.isZxs) ? (
) : (
''
)}
:
}
{this.state.addnextVisible ?
:
}
{
this.setState({ status: e.target.value })
}}
>
开启
暂停
{this.state.contractNo}
{getApproval(this.state.approval)}
{getLiquidationStatus(this.state.liquidationStatus)}
{getProcessStatus(this.state.processStatus)}
{this.state.orderNo}
{
this.setState({ formRetrieve: e.target.value })
}}
>
未收回
已收回
其他
{
this.setState({ taskRefund: e.target.value })
}}
>
已完成
未完成
其他
{
{
this.setState({ retrieveContent: e.target.value })
}}
/>
}
{
{
this.setState({ refundContent: e.target.value })
}}
/>
}
订单负责人信息
{this.state.salesmanName + '(' + this.state.depName + ')'}
{this.state.salesmanMobile}
{this.state.nowFinance}
{this.state.nowFinanceMobile}
{this.state.oldSalesmanName}
{this.state.oldSalesmanMobile}
{this.state.financeName}
{this.state.financeMobile}
{this.state.orderRemarks}
{/*
*/}
联系信息
{this.state.userName}
{
this.setState({ legalPerson: e.target.value })
}}
ref="commodityQuantity"
/>
{
this.setState({ legalPersonTel: e.target.value })
}}
ref="commodityQuantity"
/>
{
this.setState({ contacts: e.target.value })
}}
ref="commodityQuantity"
/>
{
this.setState({ contactMobile: e.target.value })
}}
ref="commodityQuantity"
/>
{
this.setState({ ProvinceCity: e })
}}
/>
{
this.setState({ postalAddress: e.target.value })
}}
ref="commodityQuantity"
/>
{/*
*/}
项目信息
{this.state.splitStatus == 2
? this.state.splitSuper + '-' + this.state.splitId
: this.state.id}
{this.state.taskName}
{this.state.cname}
{
this.setState({ certificateNumber: e.target.value })
}}
ref="commodityQuantity"
/>
{
this.setState({ attachmentUrl: e })
}}
pictureUrl={this.state.attachmentUrl}
visible={this.props.visible}
data={{
sign: 'order_task_file',
url: '/api/admin/orderProject/uploadOrderTaskFile',
number: 8,
}}
/>
{
this.setState({ taskComment: e.target.value })
}}
/>
项目申报进度
{this.state.commodityQuantity}
{this.state.refundStatus != 0 && this.state.refundStatus != 1 ? (
*
外包公司
}
>
{
this.setState({
companyName: e.target.value,
})
}}
placeholder="请填写外包公司名称"
/>
如多个公司,请用间隔
*
单价(万元)
}
>
{
this.setState({
unitPrice: e.target.value,
})
}}
placeholder="请填写本次外包公司的价格"
/>
*
数量(个)
}
>
{
this.setState({
unitNumber: e.target.value,
})
}}
placeholder="请填写本次外包公司的价格"
/>
*
总金额(万元)
}
>
{
this.setState({
amount: e.target.value,
})
}}
placeholder="请填写本次外包公司的价格"
/>
*备注
}
>
首次派单项目,需上传协议,第2次起,同项目,只需写外包公司
提示:高于总部价格,费用个人承担
) : (
{this.state.companyName}
{this.state.unitPrice}
{this.state.unitNumber}
{this.state.amount}
{this.state.outsourceRemarks}
{
this.setState({
previewImage: file.url || file.thumbUrl,
previewVisible: true,
})
}}
>
{
this.setState({ previewVisible: false })
}}
>
)}
{this.state.refundStatus == 1 ||
this.state.refundStatus == 0 ||
this.state.refundStatus == 2 ? (
{this.state.remarks}
{getRefundStatus(this.state.refundStatus)}
{this.state.auditTimes}
) : (
''
)}
{!this.props.isZxs || (this.state.isHuiyuan && this.props.isZxs) ? (
) : (
''
)}
累计工时(小时):{this.state.recordHour}
{this.state.ThirdListVisible ?
{
this.thirdTable(this.state.tid);
this.setState({
ThirdListVisible: false,
ThirdId: '', //供应商id
thirdCompanyName: '', //第三方名称
thirdUnitPrice: '', //单价
thirdQuantity: '', //数量
currentTotalPrice: '', //总价
thirdMaterial: '', //有无材料
thirdUrgent: 0, //加急情况
thirdRemarks: '',
})
}}
otherOperations={(data)=>{
this.setState({
thirdMaterial: data.thirdMaterial,
thirdUrgent: data.thirdUrgent,
customerArr: data.customerArr,
thirdCompanyName: data.thirdCompanyName
})
}}/> : }
{this.state.PayNodeVisible ?
: }
)
},
})
export default Task