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,
Tag, Row, Tooltip,
} 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,
splitUrl,
getboutique,
ShowModal,
getRefundStatus,
getProjectName,
getFormRetrieve,
getApprovedType,
} from '@/tools'
import { cuiJieDian, projectStatusCascader, approvalOptions } from '@/dataDic.js'
import ShowModalDiv from '@/showModal.jsx';
import NowProjectStatus from '../../../common/nowProjectStatus';
import DeclarationProgress from '../../../../component/common/declarationProgress';
import CheckProject from '../../components/checkProject';
import NewSupplier from './newSupplier';
import ImgList from "../../../common/imgList";
import OperationPayNode from "./operationPayNode";
import PatentSchedule from './patentSchedule';
import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly";
import NewEditProject from "../../../common/projectOperation/newEditProject";
import ProjectLog from './projectLog';
import OrderItemStatus from "../../../common/orderItemStatus";
import EnterpriseNameChange from "../../../common/enterpriseNameChange";
import PatentCheck from '../../../common/patentCheck';
import PaymentRecord from "../../../common/initiateOrder/paymentRecord";
import Cascaders from "../../../common/cascaders";
import Property from '../../../common/orderDetail/property' // 知识产权情况
const confirm = Modal.confirm
const FormItem = Form.Item
const { TabPane } = Tabs
const { TextArea } = Input
const { Option } = Select
const PicturesWall = React.createClass({
getInitialState() {
return {
fileList: [],
}
},
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 { fileList } = this.state
return (
{
this.handleChange(infor)
}}
fileList={fileList}
/>
)
},
})
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, //客户名称
deps: this.state.departmenttSearch, //订单部门
cid: this.state.category,//项目分类
orderNo: this.state.orderNoSearch, //订单编号
contractNo: this.state.contractNoSearch, //合同编号
taskId: this.state.taskNoSearch, //项目编号
taskStatus: this.state.taskStatuSearch, //项目状态
projectStatus: this.state.projectStatusSearch && this.state.projectStatusSearch.length > 0 ?
(typeof this.state.projectStatusSearch[0] === 'string' ? this.state.projectStatusSearch[1] : this.state.projectStatusSearch[0]) : undefined, //项目状态
adminName: this.state.adminName, //项目受理人
approval: this.state.approvalSearch, //特批状态搜索
outsourceStatus:
this.state.outsourceStatusSearch >= 999
? undefined
: this.state.outsourceStatusSearch, //外包状态搜索
projectName: this.state.projectName, // 项目名称
type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
},
success: function (data) {
ShowModal(this)
let theArr = []
if (!data.data || !data.data.list) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
for (let i = 0; i < data.data.list.length; i++) {
let thisdata = data.data.list[i];
thisdata.key = i;
thisdata.userName = thisdata.taskName.substring(0, 5) === '软件著作权'
? thisdata.userName +
'(' +
thisdata.commodityQuantity.toString() +
'/' +
thisdata.alreadyNumber +
')'
: thisdata.userName;
theArr.push(thisdata)
}
}
this.state.pagination.current = data.data.pageNo
this.state.pagination.total = data.data.totalCount
if (data.data && data.data.list && !data.data.list.length) {
this.state.pagination.current = 0
this.state.pagination.total = 0
}
this.setState({
dataSource: theArr,
totalAmount: data.data.totalAmount || 0,
totalNumber: data.data.totalNumber || 0,
pagination: this.state.pagination,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
getInitialState() {
return {
approvaType: [],
satisfactionDegreeUrl: [], // 满意度调查表
satisfactionDegree: "", // 满意度
formRetrieve: "",// 满意调查表上传状态
containOfficialFees: 0,//官费缴费情况
audit: 1,
declarationBatch: 1,
dataInfor: {},
projectType: '', //项目分类
paySubject: [],
paySubjectName: '', //付款科目名称
PayNodeCompany: [],
thirdMaterial: 0, //第三方信息材料 0-无 1-有
thirdUrgent: 0, //第三方信息加急状态
thirdCompanyName: '',
thirdUnitPrice: '',
currentCompanyName: '', //当前选中供应商名称
thirdQuantity: 1,
payNodeQuantity: 1,
thirdRemarks: '',
customerArr: [],
timeRecordparse: {},
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: [],
categoryArr: [],
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',
fixed: 'left',
width: 50,
render: (text, record) => {
if (record.splitStatus == 2) {
return {record.splitSuper + '-' + record.splitId}
} else {
return text
}
},
},
{
title: '项目名称',
dataIndex: 'taskName',
key: 'taskName',
fixed: 'left',
width: 150,
render: (text, record) => {
return {text}{record.patentTypeName}
}
},
{
title: '项目数量',
dataIndex: 'commodityQuantity',
key: 'commodityQuantity',
fixed: 'left',
width: 50,
},
{
title: "特批类型",
dataIndex: "type",
key: "type",
fixed: 'left',
width: 110,
render: (text, record) => {
return (
{getApprovedType(text ? text.split(",").map(Number) : [], record.typeExplain)}
);
},
},
{
title: '订单编号',
dataIndex: 'orderNo',
key: 'orderNo',
fixed: 'left',
width: 150,
},
{
title: '合同编号',
dataIndex: 'contractNo',
key: 'contractNo',
fixed: 'left',
width: 120,
},
{
title: '客户名称',
dataIndex: 'userName',
key: 'userName',
className: 'userName',
fixed: 'left',
width: 150,
render: text => {
return (
{text}
)
}
},
{
title: '业务类别',
dataIndex: 'cname',
key: 'cname',
},
{
title: '分配状态',
dataIndex: 'taskStatus',
key: 'taskStatus',
render: (text) => {
return getTaskStatus(text)
},
},
{
title: '项目状态',
dataIndex: 'projectStatus',
key: 'projectStatus',
render: (text) => {
return getProjectName(parseInt(text))
},
},
{
title: '审核状态',
dataIndex: 'outsourceStatus',
key: 'outsourceStatus',
render: (text, record) => {
if (record.outsourceType === 1) {
return '供应商'
} else if ((record.outsourceType === 0)) {
if (text === 0) {
return 外包待审核
} else if (text === 1) {
return 外包已通过
} else if (text === 2) {
return 外包被驳回
} else {
return /
}
} else if ((record.outsourceType === 2)) {
return '高质量申请'
} else {
return /
}
},
},
{
title: '分配时间',
dataIndex: 'taskDate',
key: 'taskDate',
},
{
title: '订单部门',
dataIndex: 'depName',
key: 'depName',
},
{
title: '服务年限',
dataIndex: 'serviceYear',
key: 'serviceYear',
},
{
title: '累计工时(小时)',
dataIndex: 'hours',
key: 'hours',
},
{
title: "项目金额(万元)",
dataIndex: "commodityPrice",
key: "commodityPrice",
},
{
title: "成本(万元)",
dataIndex: "costAmount",
key: "costAmount",
render: (text, record) => {
return (
{
isNaN(parseFloat(text)) ? text : parseFloat(text)
}
)
}
},
{
title: "已付(万元)",
dataIndex: "partyAmount",
key: "partyAmount",
render: (text, record) => {
return (
{
isNaN(parseFloat(text)) ? text : parseFloat(text)
}
)
}
},
{
title: '操作',
dataIndex: 'caozuo',
key: 'caozuo',
render: (text, record) => {
return (
)
},
},
],
dataSource: [],
searchTime: [],
columnsX: [
{
title: '业务项目名称',
dataIndex: 'commodityName',
key: 'commodityName',
render: (text, record) => {
return (
{text}{record.patentTypeName}
)
}
},
{
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',
render: (text, record) => {
return (
{this.props.isZxs || text === -1 ? '***' : text}
)
}
},
{
title: '负责人',
dataIndex: 'contacts',
key: 'contacts',
},
{
title: '负责人电话',
dataIndex: 'contactsMobile',
key: 'contactsMobile',
},
{
title: '主要项目',
dataIndex: 'main',
key: 'main',
render: (text) => {
return text ? '是' : '否'
},
},
{
title: "总年限",
dataIndex: "yearSum",
key: "yearSum",
render: (text, record) => {
return (
{["", "一年", "二年", "三年", "四年", "五年"][text]}
);
}
},
{
title: "年限",
dataIndex: "serviceLife",
key: "serviceLife",
render: (text, record) => {
return (
{!!text && JSON.parse(text).toString()}
);
}
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
render: (text, record) => {
return (
{!text ? "" : text}
);
}
},
{
title: '项目说明',
dataIndex: 'taskComment',
key: 'taskComment',
render: (text) => {
return (
{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() {
const data = localStorage.getItem('typeZxs') || "";
/**
* 统计页点击跳转,将参数存在缓存中(缓存中有数据就给筛选项添加默认值)
*/
if (!data) {
this.categoryList()
this.loadData()
} else {
this.setState({
projectStatusSearch: [Number(data)]
}, () => {
this.categoryList()
this.loadData()
})
}
},
componentDidMount() {
this.setColor()
localStorage.removeItem('typeZxs') // 组件挂载完清除缓存
},
componentWillUnmount() {
localStorage.removeItem('typeZxs') // 组件销毁时清除缓存
},
//用于判断 第三方信息表格显示
projectTypeTabContent(projectType) {
//0正常 1专利 2软著 3审计 this.state.startType 0外包 1供应商 外包时当普通单处理 projectType大于3的都用通用表格
if (projectType === 0 || !projectType || this.state.startType === 0 || projectType > 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
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
return
{
isNaN(text) ? text : parseFloat(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
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
return
{
isNaN(text) ? text : parseFloat(text)
}
},
},
{
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
{
isNaN(text) ? text : parseFloat(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) => {
return
{
isNaN(text) ? text : parseFloat(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
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
return
{
isNaN(text) ? text : parseFloat(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
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
return
{
isNaN(text) ? text : parseFloat(text)
}
},
},
{
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) => {
return
{
isNaN(text) ? text : parseFloat(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
{
isNaN(text) ? text : parseFloat(text)
}
},
},
{
title: '已付',
dataIndex: 'partyAmount',
key: 'partyAmount',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '操作',
dataIndex: 'dels',
key: 'dels',
render: (text, record, index) => {
return (
{
this.checkNode(record)
}}
okText="删除"
cancelText="不删除"
>
)
},
},
],
})
},
setColor() {
$('.userName span').after(
"(软著数/下证数)"
)
},
// 获取csort下的数据
getCsortData(cSort) {
return cuiJieDian.map((item) => {
if (item.value == cSort) {
this.setState({
paySubject: item.children,
})
}
})
},
async 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,
isIso: record.taskName.indexOf("贯标") !== -1,
orderNo: record.orderNo,
id: record.id,
tid: record.id,
})
await this.xiangqing(record.id);
// 获取Csort
await this.getCsortData(localStorage.getItem('cSort'))
this.xiangqings(record.orderNo)
this.xiangmu(record.orderNo)
this.loaduserss(record)
// 获取第三方信息表格
// this.thirdTable(record.id);
//获取支付节点信息表格
// this.payNodeTable(record.id);
//查看外包状态日志
this.getSelectOutsourceLog(record.id);
this.projectTypeTabContent(record.projectType);
},
//点击修改项目详情
tijiaoOk(status = '', fn) {
let attachmentUrls = []
if (/.*[\u4e00-\u9fa5]+.*$/.test(this.state.contacts)) {
} else {
message.error("请填写正确的联系人,且至少包含一个汉字");
return;
};
var mobileRegex = /^1\d{10}$/; // 手机
var landlineRegex = /^0\d{2,3}-?\d{7,8}$/; // 座机
if (!mobileRegex.test(this.state.contactMobile) && !landlineRegex.test(this.state.contactMobile)) {
message.error("请填写正确的联系电话");
return;
}
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: status || 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,
specialComment: this.state.specialComment || undefined,//特别说明
setUpStatus: typeof this.state.setUpStatus === 'number' ? this.state.setUpStatus : undefined,//是否立项
setUpTime: this.state.setUpTime || undefined,//立项时间
highTechStatus: typeof this.state.highTechStatus === 'number' ? this.state.highTechStatus : undefined,//是否高新
spotCheckStatus: typeof this.state.spotCheckStatus === 'number' ? this.state.spotCheckStatus : undefined,//是否抽查 0否 1未通过 2通过
urgentDay: typeof this.state.urgentDay === 'number' ? this.state.urgentDay : undefined,//加急天数
ifMaterial: typeof this.state.ifMaterial === 'number' ? this.state.ifMaterial : undefined,//有无材料
acceptCount: this.state.acceptCount || undefined,
certificatesCount: this.state.certificatesCount || undefined,
rejectCount: this.state.rejectCount || undefined,
certificationCorporate: this.state.certificationCorporate || undefined,//认证费公司
certificationFee: this.state.certificationFee,//认证费
ifCertificationFee: this.state.ifCertificationFee,//是否包含认证费
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length) {
message.success('保存成功!')
fn ? fn() : 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)
}
})
}
this.setState({
loading: true,
})
$.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) {
return $.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 {
localStorage.setItem('cSort', thisdata.sort)
this.setState({
certificationCorporate: thisdata.certificationCorporate,//认证费公司
certificationFee: thisdata.certificationFee,//认证费
ifCertificationFee: thisdata.ifCertificationFee,//是否包含认证费
sort: thisdata.sort,
cSort: thisdata.sort,
id: thisdata.id, //ID
splitId: thisdata.splitId,//拆分序号
splitStatus: thisdata.splitStatus,//0未拆分 1已拆分
splitSuper: thisdata.splitSuper,//拆分前项目编号
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, //说明
taskCommentData: 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, //状态 0未开始 1已开始 2已暂停 3已完成 4已驳回 5已退单
formRetrieve: thisdata.formRetrieve, //满意调查表状态
satisfactionDegree: thisdata.satisfactionDegree, //满意度
satisfactionDegreeUrl: thisdata.satisfactionDegreeUrl
? splitUrl(thisdata.satisfactionDegreeUrl, ',', globalConfig.avatarHost + '/upload')
: [], //满意度调查表
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,
orderTaskOfficialCost: thisdata.officialCost, //官费 0无 1有
orderTaskCostReduction: thisdata.costReduction,//费减
bpType: thisdata.bpType,//0 正常 1专利 2软著 3审计 4双软 5高新 6商标
specialComment: thisdata.specialComment,
urgentDay: thisdata.urgentDay, //有无材料
ifMaterial: thisdata.ifMaterial, //加急情况
spotCheckStatus: thisdata.spotCheckStatus,
setUpStatus: thisdata.setUpStatus,
setUpTime: thisdata.setUpTime,
highTechStatus: thisdata.highTechStatus,
acceptCount: thisdata.acceptCount, //受理数
certificatesCount: thisdata.certificatesCount, //授权数
rejectCount: thisdata.rejectCount, //驳回数
commodityQuantity: thisdata.commodityQuantity, //派单项目数
timeRecord: thisdata.timeRecord || '{}',//项目状态JSON
timeRecordparse: thisdata.timeRecord ? JSON.parse(thisdata.timeRecord) : {},//项目状态JSON
checkStatus: thisdata.checkStatus,//核对状态
patentTypeName: thisdata.patentTypeName,
patentTypeId: thisdata.patentType,//官费专利类型
})
if (thisdata.patentTransfer) {
this.setState({
patentType: 1
})
} else {
this.setState({
patentType: 0
})
}
}
}.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({
orderUid: thisdata.uid,
examineName: thisdata.examineName,
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, //详细地址
deleteSign: thisdata.deleteSign,
patentStatus: thisdata.patentStatus, // 知识产权情况
})
}
}.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]
thisdata.key = i;
thisdata.sort = thisdata.cSort;
theArr.push(thisdata);
}
}
this.setState({
dataSourceX: theArr,
type: theArr[0].type,
})
}.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 categoryName = '',
// category = this.state.categoryArr || []
// category.map((item) => {
// if (this.state.categoryId == item.id) {
// categoryName = item.name
// return
// }
// })
let data = {
orderNo: this.state.orderNoSearch, //订单编号
contractNo: this.state.contractNoSearch, //合同编号
name: this.state.nameSearch, //客户名称
taskId: this.state.taskNoSearch, //项目编号
cid: this.state.category,//项目分类
deps: this.state.departmenttSearch, //订单部门
taskStatus: this.state.taskStatuSearch, //项目状态
approval: this.state.approvalSearch, //特批状态搜索
outsourceStatus:
this.state.outsourceStatusSearch >= 999
? undefined
: this.state.outsourceStatusSearch, //外包状态搜索
projectName: this.state.projectName, // 项目名称
type: this.state.approvaType.length > 0 ? this.state.approvaType.toString() : undefined, //特批类型
}
for (let key in data) {
if (!data[key]) {
delete data[key]
}
}
window.location.href =
globalConfig.context +
'/api/admin/orderProject/exporProjectList?' +
$.param(data)
},
//关闭详情
visitCancel() {
this.setState({
visible: false,
speVisible: false,
activeKey: '1',
updataSwicth: false,
projectSituationVisible: false,
})
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, //备注
taskCommentData: record.taskComment,
main: record.main.toString(), //是否为主要
addnextVisible: true,
dataInfor: record,
addState: 0,
})
},
//关闭添加工时
noCancel() {
this.setState({
lookVisible: false,
})
this.reset()
},
search() {
this.loadData()
},
reset(flag) {
if (flag) {
this.setState({
nameSearch: '',
orderNoSearch: '',
contractNoSearch: undefined,
taskNoSearch: '',
departmenttSearch: undefined,
projectStatusSearch: [], //项目状态
approvalSearch: undefined,
category: undefined,
outsourceStatusSearch: [],
projectName: undefined,
approvaType: [],
})
}
this.setState({
oldInfor: {},
outsourceRemarks: undefined,
thirdInfoList: [],
payNodeList: [],
orderNo: '',//订单编号
tid: '',
id: '', //项目编号
projectStatus: undefined, //项目状态
deleteSign: undefined,
taskStatuSearch: undefined, //项目状态
startDate: '', //启动日期
endDate: '', //结束日期
acceptDate: '', //受理日期
reviewDate: '', //评审日期
publicityDate: '', //公示日期
licenceDate: '', //发证日期
partyTimes: '', //付款时间
attachmentUrl: [], //附件
contacts: '', //联系人
contactMobile: '', //联系人电话
legalPerson: '', //法人
legalPersonTel: '', //法人电话
taskId: '', //项目编号
hours: '', //工时
remarks: '', //说明
taskDate: '', //日期
taskComment: '', //说明
taskCommentData: '',
releaseDate: [],
outsourceName: '',
outsourcePrice: undefined,
distribution: undefined,
companyName: undefined,
unitPrice: undefined,
unitNumber: undefined,
amount: undefined,
pictureUrl: [],
allTotalAmount: 0,
urgentDay: '', //有无材料
ifMaterial: '', //加急情况
specialComment: '', //特别说明
spotCheckStatus: '',
setUpStatus: '',
setUpTime: '',
highTechStatus: '',
}, () => {
this.Cascaders.empty();
this.loadData(flag ? '' : this.state.page)
})
},
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)
)
},
// 业务类别
categoryList() {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/ProjectSize/getAllCname',
data: {
flag: 0
},
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.cname,
id: item.id,
})
})
}
this.setState({
categoryArr: 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) {
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,
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
showDeleteConfirm(num, fn) {
let text = getProjectName(num)
confirm({
title: 注意
,
content: (
当前的项目状态为{text},保存后将触发对应的催款节点!!!您确定保存?
),
okText: '确定',
okType: 'danger',
cancelText: '取消',
onOk() {
fn()
},
onCancel() {
},
})
},
// 项目发起外包
sureOut(startType) {
if (this.state.startType !== 0 && this.state.startType !== 1 && this.state.startType !== 2) {
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
}
//refundStatus 0-待审核 ,1-审核通过,2-审核拒绝
//类型为供应商时不需要发起原因
//this.state.startType 0外包 1供应商
if (!this.state.reason && (this.state.refundStatus === 2 || typeof this.state.refundStatus === 'undefined') && this.state.startType == 0) {
message.warning('发起原因不能为空')
return
}
// if (!this.state.pictureUrl && !Array.isArray(this.state.pictureUrl)) {
// message.warning('合同扫描件不能为空')
// return
// }
// if(this.state.pictureUrl.length === 0){
// message.warning('合同扫描件不能为空')
// return
// }
let _this = this;
let ajaxObj = null;
confirm({
title: startType === 0 ? '确定要发起外包吗?' : '确定要提交供应商信息吗?',
content: startType === 0 ? '高于总部价格,费用个人承担' : '确定提交供应商信息后,不可修改',
onOk() {
return new Promise((resolve, reject) => {
_this.setState({
sureOutLoading: 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,
outsourceRemarks: _this.state.outsourceRemarks,
unitNumber: _this.state.unitNumber,
unitPrice: _this.state.unitPrice,
id: _this.state.refundStatus === 2 ? _this.state.mid : undefined,//被拒绝外包申请时,需要传id
}
for (let i of Object.keys(data)) {
if (data[i] === null) {
delete data[i];
}
}
if (_this.state.startType !== 0 && _this.state.patentType === 1) {
data.actualOfficial = _this.state.containOfficialFees;//0实际已缴费 1实际未缴费
}
//refundStatus 0-待审核 ,1-审核通过,2-审核拒绝 审核被驳回时和第一次发起外包时,要填写发起原因
//this.state.startType 0外包 1供应商
//类型为外包时不需要传 发起原因
if ((_this.state.refundStatus === 2 || typeof _this.state.refundStatus === 'undefined') && _this.state.startType !== 1) {
data.reason = _this.state.reason
}
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;
}
}
if (_this.state.pictureUrl && Array.isArray(_this.state.pictureUrl) && _this.state.pictureUrl.length !== 0) {
data.pictureUrl = _this.getUrl(_this.state.pictureUrl).length
? _this.getUrl(_this.state.pictureUrl)
: ''
}
ajaxObj = $.ajax({
method: 'POST',
dataType: 'json',
crossDomain: false,
url:
globalConfig.context + '/api/admin/outsourceOrg/outsourceProjectAudit',
data: data,
}).done(
function (data) {
_this.setState({
sureOutLoading: false,
})
if (!data.error.length) {
resolve();
message.success('提交成功!')
_this.waiDetail();
_this.thirdTable(_this.state.tid);
_this.getSelectOutsourceLog(_this.state.tid);
if (_this.state.paySubject.length === 0) {
_this.xiangqing(_this.state.tid);
// 获取Csort
_this.getCsortData(localStorage.getItem('cSort'))
_this.payNodeTable(_this.state.tid);
} else {
_this.payNodeTable(_this.state.tid)
}
} else {
message.warning(data.error[0].message);
_this.waiDetail();
_this.thirdTable(_this.state.tid);
_this.getSelectOutsourceLog(_this.state.tid);
reject();
}
}.bind(_this)
)
}).catch((err) => console.log(err));
},
onCancel() {
ajaxObj ? ajaxObj.abort() : '';
_this.setState({
sureOutLoading: false,
})
},
});
},
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({
waiDetailLoading: true,
})
let ajaxObj = $.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) {
if (!data.error.length && data.data) {
if (!isNaN(parseFloat(data.data.unitNumber))) {
this.setState({
oldInfor: {
companyName: data.data.companyName,
unitPrice: data.data.unitPrice,
unitNumber: data.data.unitNumber,
amount: data.data.amount,
outsourceRemarks: data.data.outsourceRemarks,
refundStatus: data.data.refundStatus,
pictureUrl: data.data.pictureUrl
? splitUrl(
data.data.pictureUrl,
',',
globalConfig.avatarHost + '/upload',
url
)
: [], //图片地址
},
})
} else {
this.setState({
oldInfor: {},
})
}
this.setState({
containOfficialFees: data.data.actualOfficial,//官费类型 0实际已缴费 1实际未缴费
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,
}, () => {
this.setState({
waiDetailLoading: false,
})
})
} else if (data.error && data.error.length) {
message.warning(data.error[0].message);
this.setState({
waiDetailLoading: false,
})
} else if (!data.data) {
this.setState({
refundStatus: undefined,
waiDetailLoading: false,
})
}
}.bind(this)
)
this.setState({
orderOutsourceDtailsAjaxObj: ajaxObj
})
},
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()
},
async 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)
} else if (key === '2') {
this.waiDetail();
this.thirdTable(this.state.tid);
if (this.state.paySubject.length === 0) {
await this.xiangqing(this.state.tid);
// 获取Csort
await this.getCsortData(localStorage.getItem('cSort'))
await this.payNodeTable(this.state.tid);
} else {
await this.payNodeTable(this.state.tid)
}
this.getSelectOutsourceLog(this.state.tid);
} else if (key === "1") {
this.xiangqing(this.state.tid);
}
},
//节点列表
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 * 1000000) / 1000000).toFixed(6)
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({
orderUid: thisdata.uid,
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, lv = true) {
this.setState({
thirdInfoLoading: true,
})
let ajaxObj = $.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 startType = 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);
thisData.key = i;
type = thisData.patentType;
thisData.patentType = thisData.type;
theArr.push(thisData);
startType = thisData.startType;
patentNameType = thisData.patentNameType
}
if (!allTotalAmount) {
allTotalAmount = 0
}
for (let d = 0; d < theArr.length; d++) {
theArr[d].companyName = theArr[d].companyName + '-' + theArr[d].id;
companyNameArr[d] = {
companyName: theArr[d].companyName,
id: theArr[d].id,
}
}
if ((type === 0 || type === 1) && lv && arr.length > 0) {
this.setState({
patentType: type === 0 ? 0 : 1, //0专利申请 1专利转让
patentNameType: patentNameType, //0实用新型 1发明专利 2外观专利 3 其他
})
}
//设置项目类型
if (arr.length > 0) {
this.setState({
startType: startType
})
}
this.setState({
tid: id,
PayNodeCompany: companyNameArr,
thirdInfoList: theArr,
allTotalAmount: allTotalAmount,
}, () => {
this.projectTypeTabContent(this.state.projectType);
})
}
}.bind(this),
}).always(
function () {
this.setState({
thirdInfoLoading: false,
})
}.bind(this)
)
this.setState({
selectCompanyAjaxObj: ajaxObj
})
},
//外包日志列表
getSelectOutsourceLog(tid) {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/outsourceOrg/selectOutsourceLog',
data: {
tid: tid,
},
success: function (data) {
if (data.error.length) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
this.setState({
outsourceLogs: data.data
})
}
this.setState({
loading: false,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
payNodeTable(id) {
this.setState({
payNodeLoading: true,
})
let ajaxObj = $.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 || []
//对#5283自定义的补充展示
let infor = [...this.state.paySubject];
infor.push({ key: '自定义', value: '0' });
this.setState({
paySubject: infor
});
for (let i = 0; i < arr.length; i++) {
thisData = arr[i]
//遍历paySubject,获取当前dunType对应的key
infor.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 < payNodeArr.length; d++) {
payNodeArr[d].companyName = payNodeArr[d].companyName + '-' + payNodeArr[d].cid;
}
this.setState({
tid: id,
payNodeList: payNodeArr,
})
}
}.bind(this),
}).always(
function () {
this.setState({
payNodeLoading: false,
})
}.bind(this)
)
this.setState({
selectPaymentNodeAjaxObj: ajaxObj
})
return ajaxObj;
},
// 新增第三方供应商信息
addThirdList() {
this.setState({
ThirdListVisible: true,
})
},
updateProjectStatus(projectStatus, fn) {
$.ajax({
url: globalConfig.context + '/api/admin/orderProject/updateProjectStatus',
method: 'post',
data: {
tid: this.state.tid,
projectStatus: projectStatus,
timeRecord: '{}'
},
}).done(
function (data) {
if (!data.error.length) {
this.setState({
timeRecordparse: {},
})
message.success('保存成功!');
fn();
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
// 新增支付节点
addPayNode() {
this.setState({
PayNodeVisible: true,
})
},
// 第三方信息自动计算总金额
calculatedAmount() {
let currentTotalPrice
currentTotalPrice = this.state.thirdUnitPrice * this.state.thirdQuantity
currentTotalPrice = currentTotalPrice.toFixed(6)
this.setState({
currentTotalPrice: currentTotalPrice,
})
},
// 付款节点自动计算总金额
payNodeCalculatedAmount(num) {
let currentTotalPrice, quantity, unitPrice
//获取当前供应商名称对应的单价并更新
this.state.thirdInfoList.forEach((item) => {
if (item.companyName === this.state.thirdCompanyName) {
currentTotalPrice = num ? item.unitPrice * num : item.quantity * item.unitPrice;
currentTotalPrice = currentTotalPrice.toFixed(6);
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,
payNodeInfor: {},
ThirdId: '',
ThirdListVisible: false,
thirdCompanyName: '', //第三方名称
paySubjectName: '', //付款科目名称
thirdUnitPrice: '', //单价
partyTimes: '',
thirdQuantity: 1, //数量
payNodeQuantity: 1,
currentTotalPrice: '', //总价
thirdRemarks: '',
thirdUrgent: 0, //加急状态
})
},
// 删除供应商信息
confirmDeletNew(value, resolve = () => { }, reject = () => { }) {
let hide = message.loading('检测中...');
let _this = this;
if (value === -1) {
_this.handleConfirmDelet(value, resolve, reject);
return;
}
$.ajax({
url: globalConfig.context + '/api/admin/company/checkThirdParty',
method: 'get',
data: {
id: value.id,
},
}).done(
function (data) {
hide();
if (data.error.length === 0) {
if (data.data.code === 0) {
_this.handleConfirmDelet(value, resolve, reject)
} else {
let content = data.data.desc;
confirm({
title: '确定要删除此供应商信息吗?',
content: content,
onOk() {
return new Promise((resolve, reject) => {
_this.handleConfirmDelet(value, resolve, reject)
}).catch(() => console.log('Oops errors!'));
},
onCancel() {
},
});
}
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
handleConfirmDelet(value, resolve = () => { }, reject = () => { }) {
this.setState({
loading: true,
ThirdListVisible: false,
})
const hide = message.loading('删除中...', 0);
let id = '';
if (value === -1) {
if (this.state.thirdInfoList.length === 1) {
id = this.state.thirdInfoList[0].id
} else {
this.state.thirdInfoList.map((value, index) => {
id += value.id + ',';
})
}
} else {
id = value.id
}
$.ajax({
url: globalConfig.context + '/api/admin/company/deleteCompany',
method: 'post',
data: {
id: id,
},
}).done(
function (data) {
this.setState({
loading: false,
});
hide();
if (!data.error.length) {
message.success('删除成功!');
let arr = this.state.payNodeList.filter((v) => {
return v.companyName === value.companyName
});
let str = '';
arr.map((value) => {
str += value.id + ',';
})
if (arr.length > 0) {
this.payNodeConfirmDeletNew({
id: str
});
}
this.thirdTable(this.state.tid)
// this.payNodeTable(this.state.tid)
this.paymentRecordRef && this.paymentRecordRef.refresh();;
resolve();
} else {
message.warning(data.error[0].message)
reject();
}
}.bind(this)
)
},
// 付款催款检测
checkNode(value) {
let hide = message.loading('检测中...');
let _this = this;
$.ajax({
url: globalConfig.context + '/api/admin/company/checkNode',
method: 'get',
data: {
id: value.id,
},
}).done(
function (data) {
hide();
if (data.error.length === 0) {
if (data.data.code === 0) {
_this.payNodeConfirmDeletNew(value)
} else {
let content = data.data.desc;
confirm({
title: '确定要删除此付款节点吗?',
content: content,
onOk() {
return new Promise((resolve, reject) => {
_this.payNodeConfirmDeletNew(value, resolve, reject)
}).catch(() => console.log('Oops errors!'));
},
onCancel() {
},
});
}
} else {
message.warning(data.error[0].message)
}
}.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('删除成功!')
this.payNodeTable(this.state.tid)
this.paymentRecordRef && this.paymentRecordRef && this.paymentRecordRef.refresh();;
resolve();
} 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,
audit: record.audit,//审计
assets: record.assets,//公司资产
income: record.income,//收入
})
},
//点击付款节点详情
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,
});
let obj = JSON.parse(JSON.stringify(record));
this.state.paySubject.some((value) => {
if (value.key === obj.dunType) {
obj.dunType = value.value;
return true;
}
});
this.setState({
payNodeInfor: obj, //付款节点详情
});
},
// 项目类型,专利类型,专利名称切换时 先检测再删除
detectDeletion(type = 0, fn = () => { }) {
let hide = message.loading(type === 1 ? '切换中...' : '检测中...');
let _this = this;
$.ajax({
url: globalConfig.context + '/api/admin/company/updateCheck',
method: 'get',
data: {
id: this.state.id,
type
},
}).done(
function (data) {
hide();
if (data.error.length === 0) {
if (type === 1) {
message.success('切换成功!');
fn();
_this.thirdTable(this.state.tid, false);
_this.payNodeTable(this.state.tid);
_this.paymentRecordRef.refresh();
} else {
if (data.data.code === 0) {
message.success('切换成功!');
fn();
} else {
confirm({
title: '确定要删除此供应商信息吗?',
content: data.data.desc,
onOk() {
_this.detectDeletion(1, fn)
},
onCancel() {
},
});
}
}
} else {
message.warning(data.error[0].message)
}
}.bind(this)
)
},
// 修改项目满意度
updateSatisfactionDegree(status) {
let satisfactionDegreeUrls = []
if (this.state.satisfactionDegreeUrl.length) {
let picArr = []
this.state.satisfactionDegreeUrl.map(function (item) {
if (item.response && item.response.data && item.response.data.length) {
picArr.push(item.response.data)
}
})
satisfactionDegreeUrls = picArr.join(',')
}
if (status == 2) {
if (satisfactionDegreeUrls.length == 0) {
message.warning("请先上传满意度调查表!");
return
}
if (!this.state.formRetrieve) {
message.warning("请先选择满意度!");
return
}
}
let obj1 = {
id: this.state.tid,
formRetrieve: 1,
}
let obj2 = {
id: this.state.tid,
formRetrieve: status,
satisfactionDegree: this.state.satisfactionDegree,
satisfactionDegreeUrl: satisfactionDegreeUrls.length ? satisfactionDegreeUrls : '',
}
this.setState({
loading: true,
});
$.ajax({
url: globalConfig.context + "/api/admin/orderProject/updateSatisfactionDegree",
method: "post",
data: status == 1 ? obj1 : obj2,
}).done(
function (data) {
this.setState({
loading: false,
});
if (data.error.length === 0) {
if (status == 1) {
this.setState({
formRetrieve: 1
})
} else if (status == 2) {
this.setState({
formRetrieve: 2
})
message.success("保存成功!");
}
} else {
message.warning(data.error[0].message);
}
}.bind(this)
);
},
//会员 可展开颜色不同
addRowColor(record) {
if (!!record.splitList && record.splitList.length > 0) {
return 'light'
} else {
return 'dark'
}
},
// 暂停项目 颜色
suspendColor(record) {
if (record.projectStatus == 29) {
return 'light'
} else {
return 'dark'
}
},
render() {
const expandedRowRenderVip = (e) => {
const data = e.splitList;
let columns = [];
if (data instanceof Array && data.length) {
if (e.cSort == 6) {
columns = [
{
title: "负责人",
dataIndex: "receiverName",
key: "receiverName",
},
{
title: "负责人电话",
dataIndex: "receiverMobile",
key: "receiverMobile",
},
{
title: "项目状态",
dataIndex: "projectStatus",
key: "projectStatus",
render: (text) => {
return getProjectName(text);
},
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: (text) => {
return (
{text}
)
},
},
];
} else {
columns = [
{
title: "子项目名称",
dataIndex: "taskName",
key: "taskName"
},
{
title: "子项目数量",
dataIndex: "commodityQuantity",
key: "commodityQuantity"
},
{
title: "拆分操作人",
dataIndex: "splitAname",
key: "splitAname"
},
{
title: "项目负责人",
dataIndex: "receiverName",
key: "receiverName"
},
{
title: "拆分时间",
dataIndex: "splitTimes",
key: "splitTimes"
}
]
}
return (
);
} else {
columns = [];
return (
{e.cSort == 6 ? "暂无派单" : "此项目暂未拆分"}
);
}
};
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
}
let departmentArr = this.state.departmentArr || []
let categoryArr = this.state.categoryArr || []
const approvaChildren = approvalOptions.map(i => (
));
return (
{this.state.resVisible ? (
) : (
''
)}
{ this.setState({ showModal: false }) }} />
我的项目任务
{/*
*/}
{
{`累计:${this.state.totalNumber}个,共${this.state.totalAmount}万元`}
}
{this.state.visible ? {
this.visitOk();
this.state.selectCompanyAjaxObj ? this.state.selectCompanyAjaxObj.abort() : null;
this.state.selectPaymentNodeAjaxObj ? this.state.selectPaymentNodeAjaxObj.abort() : null;
this.state.orderOutsourceDtailsAjaxObj ? this.state.orderOutsourceDtailsAjaxObj.abort() : null;
}}
onCancel={() => {
this.visitCancel();
this.state.selectCompanyAjaxObj ? this.state.selectCompanyAjaxObj.abort() : null;
this.state.selectPaymentNodeAjaxObj ? this.state.selectPaymentNodeAjaxObj.abort() : null;
this.state.orderOutsourceDtailsAjaxObj ? this.state.orderOutsourceDtailsAjaxObj.abort() : null;
}}
>
项目名称:
{this.state.taskName}
项目编号:
{this.state.id}
{
this.state.splitStatus === 2 ? '(' + this.state.splitSuper + '-' + this.state.splitId + ')' : ''
}
}
activeKey={this.state.activeKey}
onChange={(e) => {
this.callback(e)
if (e === "2") {
this.waiDetail();
this.thirdTable(this.state.tid);
this.payNodeTable(this.state.tid);
this.getSelectOutsourceLog(this.state.tid);
} else if (e === "1") {
this.xiangqing(this.state.tid);
}
}}
>
{this.state.activeKey === "1" ? : }
{this.state.refundStatus != 0 && this.state.refundStatus != 1 ? (
*类型
}
>
{
this.detectDeletion(0, () => {
this.setState({ startType: e.target.value }, () => {
this.projectTypeTabContent(this.state.projectType);
})
});
}}
>
外包(不走总部)
供应商信息
{adminData.isTechTransfer && 高质量申请}
{/* 专利类型 */}
专利类型
}
>
{
this.state.patentType === 0 ? '专利申请/变更' :
this.state.patentType === 1 ? '专利转让' : ''
}
{/*外包类型无此选项*/}
{this.state.startType === 1 && this.state.projectType === 1 ?
官费}>
{
this.state.patentType === 1 ?
{
this.setState({ containOfficialFees: e.target.value })
}}
>
实际已缴费
实际未缴费
:
{
this.xiangqing(this.state.tid);
this.paymentRecordRef && this.paymentRecordRef.refresh();;
}}
status={this.state.refundStatus}
/>
}
:
}
{/* 第三方信息专利 */}
第三方信息
金额总计(万元): {this.state.allTotalAmount}
{/*如果是软著类或者专利类的专利申请,隐藏付款节点 但当为外包类型时,无需隐藏*/}
{/*this.state.startType 0外包 1供应商*/}
付款节点
{/*如果是软著类或者专利类的专利申请,隐藏付款节点 但当为外包类型时,无需隐藏*/}
*备注
}
>
首次派单项目,需上传协议,第2次起,同项目,只需写外包公司
{/*只有审核拒绝和第一次发起外包的时候才要填写发起原因 如果是类型为供应商则不需要发起原因*/}
{/*this.state.startType 0外包 1供应商*/}
{(typeof this.state.refundStatus === 'undefined' || this.state.refundStatus === 2) && this.state.startType == 0 ?
*发起原因
}
>
:
}
this.paymentRecordRef = res}
tid={this.state.tid}
isAuditPayment={false}
isAuditPaymentGLY={false}
projectType={this.state.projectType}
patentType={this.state.patentType}
/>
{
this.state.startType === 0 ? "提示:高于总部价格,费用个人承担" : "确定提交供应商信息,提交后,不可修改"
}
) : (
{
this.state.visible && this.state.activeKey === '2' ?
{
this.waiDetail();
this.xiangqing(this.state.tid);
this.thirdTable(this.state.tid);
this.getSelectOutsourceLog(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
? (
{parseInt(this.state.startType) !== 1 ?
审核结果: {getRefundStatus(this.state.refundStatus)}
:
}
{
this.state.outsourceLogs && this.state.outsourceLogs.map((value, index) => (
{value.aname}
{
value.status === 0 ?
发起外包审核 :
value.status === 1 ?
通过 :
驳回
}
{value.remarks}
{value.createTimes}
))
}
) : (
''
)}
{!this.props.isZxs || (this.state.isHuiyuan && this.props.isZxs) ? (
{this.state.activeKey === "3" ?
: }
) : (
''
)}
: }
{this.state.speVisible ? {
this.visitOk();
this.state.selectCompanyAjaxObj ? this.state.selectCompanyAjaxObj.abort() : null;
this.state.selectPaymentNodeAjaxObj ? this.state.selectPaymentNodeAjaxObj.abort() : null;
this.state.orderOutsourceDtailsAjaxObj ? this.state.orderOutsourceDtailsAjaxObj.abort() : null;
}}
onCancel={() => {
this.visitCancel();
this.state.selectCompanyAjaxObj ? this.state.selectCompanyAjaxObj.abort() : null;
this.state.selectPaymentNodeAjaxObj ? this.state.selectPaymentNodeAjaxObj.abort() : null;
this.state.orderOutsourceDtailsAjaxObj ? this.state.orderOutsourceDtailsAjaxObj.abort() : null;
}}
width="1200px"
title=""
footer=""
className="admin-desc-content"
>
项目名称:
{this.state.taskName}
项目编号:
{this.state.id}
{
this.state.splitStatus === 2 ? '(' + this.state.splitSuper + '-' + this.state.splitId + ')' : ''
}
}
activeKey={this.state.activeKey}
onChange={this.orderChange}
>
{
getProjectName(parseInt(this.state.projectStatus))
}
{
this.state.projectStatus !== 0 ? : null
}
{this.state.contractNo}
{getApproval(this.state.approval)}
{getLiquidationStatus(this.state.liquidationStatus)}
{getProcessStatus(this.state.processStatus, this.state.examineName, this.state.approval)}
{this.state.orderNo}
{
this.setState({ formRetrieve: e.target.value })
}}
>
未收回
已收回
其他
{
{
this.setState({ retrieveContent: e.target.value })
}}
/>
}
{/**/}
{/* {*/}
{/* this.setState({ taskRefund: e.target.value })*/}
{/* }}*/}
{/* >*/}
{/* 已完成*/}
{/* 未完成*/}
{/* 其他*/}
{/* */}
{/**/}
{/*软著显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/}
{this.state.bpType === 2 ?
{
this.setState({ urgentDay: e.target.value })
}}
>
是
否
{
this.setState({ ifMaterial: e.target.value })
}}
>
是
否
: null}
订单负责人信息
{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.state.certificateNumber}
{
if (this.state.taskCommentData) {
let len = this.state.taskCommentData.length;
if (e.target.value.slice(0, len) !== this.state.taskCommentData) {
message.warning('项目说明不允许删除与修改已存在的内容');
return;
}
}
this.setState({ taskComment: e.target.value })
}}
/>
项目申报进度
{/*高新和科技项目显示 bpType: 0 正常 1专利 2软著 3审计 4双软 5高新 6商标*/}
{/*cSort: 3 科技项目 6: 会员*/}
{(this.state.bpType === 5 || this.state.cSort === 3) &&
}
{this.state.commodityQuantity}
{this.state.refundStatus != 0 && this.state.refundStatus != 1 ? (
*
类型
}
>
{
this.detectDeletion(0, () => {
this.setState({ startType: e.target.value }, () => {
this.projectTypeTabContent(this.state.projectType);
})
});
}}
>
外包(不走总部)
供应商信息
{adminData.isTechTransfer && 高质量申请}
{/* 专利类型 */}
专利类型
}
>
{
this.state.patentType === 0 ? '专利申请/变更' :
this.state.patentType === 1 ? '专利转让' : ''
}
*专利名称
}
>
{
this.detectDeletion(0, () => {
this.setState({ patentNameType: e.target.value }, () => {
this.projectTypeTabContent(this.state.projectType);
})
});
}}
>
实用新型专利
发明专利
外观专利
{/**/}
{/* 其他*/}
{/* {*/}
{/* this.setState({*/}
{/* patentName: e.target.value,*/}
{/* })*/}
{/* }}*/}
{/* placeholder="请填写专利名称"*/}
{/* />*/}
{/**/}
{this.state.startType === 1 && this.state.projectType === 1 ?
官费}>
{
this.state.patentType === 1 ?
{
this.setState({ containOfficialFees: e.target.value })
}}
>
实际已缴费
实际未缴费
:
{
this.xiangqing(this.state.tid);
this.paymentRecordRef && this.paymentRecordRef.refresh();;
}}
status={this.state.refundStatus}//0-待审核 ,1-审核通过,2-审核拒绝
/>
}
:
}
{/* 第三方信息专利 */}
第三方信息
金额总计(万元): {this.state.allTotalAmount}
{/*如果是软著类或者专利类的专利申请,隐藏付款节点*/}
付款节点
{/*如果是软著类或者专利类的专利申请,隐藏付款节点但当为外包类型时,无需隐藏*/}
*备注
}
>
首次派单项目,需上传协议,第2次起,同项目,只需写外包公司
{/*只有审核拒绝和第一次发起外包的时候才要填写发起原因 如果是类型为供应商则不需要发起原因*/}
{/*this.state.startType 0外包 1供应商*/}
{(typeof this.state.refundStatus === 'undefined' || this.state.refundStatus === 2) && this.state.startType == 0 ?
*发起原因
}
>
:
}
this.paymentRecordRef = res}
tid={this.state.tid}
isAuditPayment={false}
isAuditPaymentGLY={false}
projectType={this.state.projectType}
patentType={this.state.patentType}
/>
{
this.state.startType === 0 ? "提示:高于总部价格,费用个人承担" : "确定提交供应商信息,提交后,不可修改"
}
) : (
{
this.state.speVisible && this.state.activeKey === '2' ?
{
this.waiDetail();
this.thirdTable(this.state.tid);
this.xiangqing(this.state.tid);
this.getSelectOutsourceLog(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
? (
{parseInt(this.state.startType) !== 1 ?
审核结果: {getRefundStatus(this.state.refundStatus)}
:
}
{
this.state.outsourceLogs && this.state.outsourceLogs.map((value, index) => (
{value.aname}
{
value.status === 0 ?
发起外包审核 :
value.status === 1 ?
通过 :
驳回
}
{value.remarks}
{value.createTimes}
))
}
) : (
''
)}
{!this.props.isZxs || (this.state.isHuiyuan && this.props.isZxs) ? (
) : (
''
)}
: }
{this.state.visibleA ?
: null}
{this.state.timeVisible ?
累计工时(小时):{this.state.recordHour}
: null}
{this.state.ThirdListVisible ?
{ this.payNodeTable(this.state.tid) }}
onCancel={() => {
this.thirdTable(this.state.tid);
this.setState({
ThirdListVisible: false,
ThirdId: '', //供应商id
thirdCompanyName: '', //第三方名称
thirdUnitPrice: '', //单价
thirdQuantity: '', //数量
currentTotalPrice: '', //总价
thirdMaterial: 0, //有无材料
thirdUrgent: 0, //加急情况
thirdRemarks: '',
audit: 1,
assets: '',
income: '',
})
}}
otherOperations={(data) => {
this.setState({
thirdMaterial: data.thirdMaterial,
thirdUrgent: data.thirdUrgent,
customerArr: data.customerArr,
thirdCompanyName: data.thirdCompanyName
})
}} /> : }
{this.state.PayNodeVisible ? {
this.setState({
PayNodeVisible: false,
payNodeInfor: {},
ThirdId: '',
thirdUnitPrice: '',
})
if (this.state.paySubject.length === 0) {
await this.xiangqing(this.state.tid);
// 获取Csort
await this.getCsortData(localStorage.getItem('cSort'))
await this.payNodeTable(this.state.tid);
} else {
await this.payNodeTable(this.state.tid)
}
}}
/> : }
{this.state.projectSituationVisible ?
{
this.setState({
projectSituationVisible: false
})
}}
onPreservation={(value) => {
this.xiangqing(this.state.id)
this.setState({
projectSituationVisible: false
})
}}
/> : null
}
{/* {this.state.addnextVisible && } */}
{
// 项目业务详情
this.state.addnextVisible &&
}
{this.state.projectLogVisible && {
this.setState({
projectLogId: '',
projectLogVisible: false,
})
}}
/>}
)
},
})
export default Task