|
@@ -1,5 +1,5 @@
|
|
import { contractStore, tenderStore } from '@/store/mobx'
|
|
import { contractStore, tenderStore } from '@/store/mobx'
|
|
-import { iIncomeTree } from '@/types/contract'
|
|
|
|
|
|
+import { iContractState, iIncomeTree } from '@/types/contract'
|
|
import { contractConsts } from '@/utils/common/constStatus'
|
|
import { contractConsts } from '@/utils/common/constStatus'
|
|
import consts from '@/utils/consts'
|
|
import consts from '@/utils/consts'
|
|
import { Button, Input, message, Radio, Table, Tabs } from 'antd'
|
|
import { Button, Input, message, Radio, Table, Tabs } from 'antd'
|
|
@@ -8,7 +8,7 @@ import { RadioChangeEvent } from 'antd/lib/radio'
|
|
import { ColumnsType } from 'antd/lib/table'
|
|
import { ColumnsType } from 'antd/lib/table'
|
|
import { observer } from 'mobx-react'
|
|
import { observer } from 'mobx-react'
|
|
import React, { useEffect, useRef, useState } from 'react'
|
|
import React, { useEffect, useRef, useState } from 'react'
|
|
-import { apiResfulContractTree } from '../../api'
|
|
|
|
|
|
+import { apiGetIncome, apiResfulContractTree } from '../../api'
|
|
import { apiContractIncome, apiSetTemplate } from '../Modal/api'
|
|
import { apiContractIncome, apiSetTemplate } from '../Modal/api'
|
|
import Detail from '../Tabs/Detail'
|
|
import Detail from '../Tabs/Detail'
|
|
import File from '../Tabs/File'
|
|
import File from '../Tabs/File'
|
|
@@ -66,6 +66,28 @@ const GCsheet: React.FC<iTableContentPorps> = ({ modalHandler, row, setRow }) =>
|
|
serial: ''
|
|
serial: ''
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ const [ contract, setContract ] = useState<iContractState>({
|
|
|
|
+ bidsectionId: "",
|
|
|
|
+ code: "",
|
|
|
|
+ content: "",
|
|
|
|
+ contractsType: 0,
|
|
|
|
+ createTime: "",
|
|
|
|
+ id: "",
|
|
|
|
+ name: "",
|
|
|
|
+ paid: "",
|
|
|
|
+ partyA: "",
|
|
|
|
+ partyASigner: "",
|
|
|
|
+ partyB: "",
|
|
|
|
+ partyBSigner: "",
|
|
|
|
+ price: "",
|
|
|
|
+ projectId: "",
|
|
|
|
+ remarks: "",
|
|
|
|
+ returned: "",
|
|
|
|
+ signerTime: "",
|
|
|
|
+ status: 0,
|
|
|
|
+ treeId: "",
|
|
|
|
+ updateTime: ""
|
|
|
|
+ })
|
|
const { TabPane } = Tabs
|
|
const { TabPane } = Tabs
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
@@ -73,7 +95,7 @@ const GCsheet: React.FC<iTableContentPorps> = ({ modalHandler, row, setRow }) =>
|
|
}, [])
|
|
}, [])
|
|
|
|
|
|
const initHandler = async () => {
|
|
const initHandler = async () => {
|
|
- const data = await apiContractIncome(tenderStore.bidsectionId)
|
|
|
|
|
|
+ const data = await apiContractIncome(tenderStore.bid)
|
|
if (data.code === consts.RET_CODE.SUCCESS) {
|
|
if (data.code === consts.RET_CODE.SUCCESS) {
|
|
if (data.isTemplate && data.isTemplate === 1) {
|
|
if (data.isTemplate && data.isTemplate === 1) {
|
|
setSectionTemplate({
|
|
setSectionTemplate({
|
|
@@ -107,10 +129,6 @@ const GCsheet: React.FC<iTableContentPorps> = ({ modalHandler, row, setRow }) =>
|
|
contractStore.resetTree(tenderStore.bidsectionId)
|
|
contractStore.resetTree(tenderStore.bidsectionId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- // const codeEditHandler = (event: KeyboardEvent) => {
|
|
|
|
- // event.persist()
|
|
|
|
- // console.log(event.currentTarget.getAttribute('value'))
|
|
|
|
- // }
|
|
|
|
const inputEl = useRef<Input>(null)
|
|
const inputEl = useRef<Input>(null)
|
|
const modalColumns: ColumnsType<iTemplateState> = [
|
|
const modalColumns: ColumnsType<iTemplateState> = [
|
|
{
|
|
{
|
|
@@ -136,14 +154,21 @@ const GCsheet: React.FC<iTableContentPorps> = ({ modalHandler, row, setRow }) =>
|
|
dataIndex: 'code',
|
|
dataIndex: 'code',
|
|
width: '15%',
|
|
width: '15%',
|
|
// eslint-disable-next-line react/display-name
|
|
// eslint-disable-next-line react/display-name
|
|
- render: (text: string, row: iIncomeTree) => <span>{row.code}</span>
|
|
|
|
|
|
+ render: (text: string, row: iIncomeTree) => {
|
|
|
|
+ // if (row.isEdit) {
|
|
|
|
+ // return <Input value={row.serial} addonBefore={row.attribution} size="small"></Input>
|
|
|
|
+ // } else {
|
|
|
|
+ // return <span>{row.code}</span>
|
|
|
|
+ // }
|
|
|
|
+ return <span>{row.code}</span>
|
|
|
|
+ }
|
|
},
|
|
},
|
|
{
|
|
{
|
|
title: '项目名称',
|
|
title: '项目名称',
|
|
dataIndex: 'name',
|
|
dataIndex: 'name',
|
|
render: (text:any, record: iIncomeTree) => {
|
|
render: (text:any, record: iIncomeTree) => {
|
|
if (record.isEdit) {
|
|
if (record.isEdit) {
|
|
- return <Input size="small" type="text" ref={inputEl} onPressEnter={() => newLabelHandler('name', { id: record.parentId, bidsectionId: record.bidsectionId })} onBlur={() => newLabelHandler('name', { id: record.parentId, bidsectionId: record.bidsectionId })}></Input>
|
|
|
|
|
|
+ return <Input value={record.name} size="small" type="text" ref={inputEl} onPressEnter={() => newLabelHandler('name', { id: record.parentId, bidsectionId: record.bidsectionId })} onBlur={() => newLabelHandler('name', { id: record.parentId, bidsectionId: record.bidsectionId })}></Input>
|
|
} else {
|
|
} else {
|
|
return <span>{text}</span>
|
|
return <span>{text}</span>
|
|
}
|
|
}
|
|
@@ -210,7 +235,21 @@ const GCsheet: React.FC<iTableContentPorps> = ({ modalHandler, row, setRow }) =>
|
|
const onClickRow = (record: iIncomeTree) => {
|
|
const onClickRow = (record: iIncomeTree) => {
|
|
return {
|
|
return {
|
|
onClick() {
|
|
onClick() {
|
|
- setRow(record)
|
|
|
|
|
|
+ console.log(record.id)
|
|
|
|
+
|
|
|
|
+ rowClickHandler(record.id, record.bidsectionId, record.isEdit)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 行点击回调
|
|
|
|
+ const rowClickHandler = async (id: string, bid: string, isEdit?: boolean) => {
|
|
|
|
+ if (!isEdit) {
|
|
|
|
+ const { code = -1, section = {}, contract: newContract = {} } = await apiGetIncome(id, bid)
|
|
|
|
+ if (code === consts.RET_CODE.SUCCESS) {
|
|
|
|
+ setRow(section)
|
|
|
|
+ setContract({ ...contract, ...newContract })
|
|
|
|
+ contractStore.rowChange(id)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|