瀏覽代碼

feat: 支出合同更改目录treetype传参错误

lanjianrong 4 年之前
父節點
當前提交
0078fe92c5

+ 0 - 0
src/components/MoneyInput/index.module.scss


+ 11 - 18
src/components/MoneyInput/index.tsx

@@ -3,12 +3,7 @@ import Input, { InputProps } from 'antd/lib/input'
 import React, { ChangeEvent, useState, useEffect } from 'react'
 import './index.scss'
 
-// interface iState {
-//   digit: string
-//   inputVal: string
-// }
-
-interface MoneyInputProps  {
+interface MoneyInputProps {
   maxPrice?: number
   minPrice?: number
   value?: string
@@ -88,22 +83,20 @@ const MoneyInput: React.FC<MoneyInputProps> = (props) => {
   }
 
   return (
-    <div className="ant-input ant-input-sm">
+    <div className='ant-input ant-input-sm'>
       <div className="pi-flex-row">
-      <span className="pi-fz-14 pi-mg-right-5">¥</span>
-      {/* <Form.Item name="price" rules={[ { required: true, message } ]} noStyle> */}
-        <Input bordered={false} value={inputVal || value} size="small" onChange={handleChange} autoComplete="off"/>
-      {/* </Form.Item> */}
+        <span className="pi-fz-14 pi-mg-right-5">¥</span>
+        <Input bordered={false} value={inputVal || value} size="small" onChange={handleChange} autoComplete="off" />
       </div>
       {
         digit ?
-        <div className='line-separator'>
-          <div className="side-line"> </div>
-          <div className="triangle-triangle" />
-          <div className="triangle-num">{digit}</div>
-          <div className="side-line"> </div>
-        </div>
-        : null
+          <div className='line-separator'>
+            <div className="side-line"> </div>
+            <div className="triangle-triangle" />
+            <div className="triangle-num">{digit}</div>
+            <div className="side-line"> </div>
+          </div>
+          : null
       }
     </div>
   )

+ 2 - 2
src/pages/Contract/Content/Income/api.ts

@@ -49,8 +49,8 @@ export async function apiGetContractWithDetail(id: string, bidsectionId: string,
  * @param bidsectionId 标段id
  * @param serial 序号
  */
-export async function apiUpdateSerial(id: string, bidsectionId: string, serial: string) {
-  const { data } = await request.post('/api/contract/section/serial/update', { id, bidsectionId, serial: parseInt(serial), treeType: consts.CONTRACT_TREE.RETURN })
+export async function apiUpdateSerial(id: string, bidsectionId: string, serial: string, treeType: number) {
+  const { data } = await request.post('/api/contract/section/serial/update', { id, bidsectionId, serial: parseInt(serial), treeType })
   return data
 }
 

+ 9 - 0
src/pages/Contract/Content/Income/components/Modal/index.module.scss

@@ -11,3 +11,12 @@
     }
   }
 }
+
+.MoneyFormItem {
+  :global(.ant-input) {
+    border-color: none;
+  }
+  :global(.ant-input:hover) {
+    border-color: none;
+  }
+}

+ 1 - 1
src/pages/Contract/Content/Income/components/Modal/index.tsx

@@ -212,7 +212,7 @@ const ContractModal: React.FC<iModalCommonProps> = ({ modalObj: { type, visible,
                 <Option value={2}>收入合同</Option>
               </Select>
             </Form.Item> */}
-            <Form.Item label="合同金额" name="price" rules={[ { required: true, message: '请输入合同金额' } ]}>
+            <Form.Item label="合同金额" name="price" rules={[ { required: true, message: '请输入合同金额' } ]} className={styles.MoneyFormItem}>
               {/* <Input type="number" placeholder="输入合同金额" addonAfter={<span>元</span>} /> */}
               <MoneyInput />
             </Form.Item>

+ 1 - 1
src/pages/Contract/Content/Income/components/TableContent/index.tsx

@@ -109,7 +109,7 @@ const GCsheet: React.FC<iTableContentPorps> = ({ changeModalType, row, setRow, h
   }
 
   const codeChange = async (value: string, row: ContractTree) => {
-    const { code = -1 } = await apiUpdateSerial(row.id, row.bidsectionId, value)
+    const { code = -1 } = await apiUpdateSerial(row.id, row.bidsectionId, value, type === ContractType.INCOME ? 0 : 1)
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
     }

+ 2 - 2
src/pages/Contract/Content/Income/components/Tabs/Detail/index.tsx

@@ -28,10 +28,10 @@ const Detail:React.FC<DetailProps> = (props) => {
         <tr><th>{type_name}金额</th><td>{formatMoney(type === ContractType.INCOME ? contract.returned : contract.paid)}</td><th>未{type_name}金额</th><td>{formatMoney(progress.unReturnedMoney)}</td></tr>
           <tr><th>{type_name}进度</th><td className={styles.progressContainer} colSpan={3}><div className={styles.progressContent}>
             <Tooltip title={`已支付:¥ ${formatMoney(type === ContractType.INCOME ? contract.returned : contract.paid)}`}>
-              <div className={[ styles.progressBar, 'pi-bg-success' ].join(' ')} style={{ width: progress.returned }}>{formatMoney(type === ContractType.INCOME ? contract.returned : contract.paid)}</div>
+              <div className={[ styles.progressBar, 'pi-bg-success' ].join(' ')} style={{ width: progress.returned }}>{progress.returned}</div>
             </Tooltip>
             <Tooltip title={`未支付:¥ ${formatMoney(progress.unReturnedMoney)}`}>
-              <div className={[ styles.progressBar, 'pi-bg-gray' ].join(' ')} style={{ width: progress.unReturned }}>{formatMoney(progress.unReturned)}</div>
+              <div className={[ styles.progressBar, 'pi-bg-gray' ].join(' ')} style={{ width: progress.unReturned }}>{progress.unReturned}</div>
             </Tooltip>
           </div></td></tr>
         <tr><th>甲方</th><td>{contract.partyA}</td><th>甲方签约人</th><td>{contract.partyASigner}</td></tr>

+ 1 - 1
src/pages/Contract/Content/Income/components/Tabs/Receivable/index.tsx

@@ -167,7 +167,7 @@ const Receivable: React.FC<ReceivableProps> = ({ updateTreeAndContract, type })
       title: '附件',
       dataIndex: 'fileCounts',
       // eslint-disable-next-line react/display-name
-      render: (text: number, record: iReceivableState) => <span className="pi-pointer" onClick={() => setFileModal({ ...fileModal, dataId: record.id, visible: true })}><DisconnectOutlined /> {text}</span>
+      render: (text: number, record: iReceivableState) => <span className="pi-pointer" onClick={() => setFileModal({ ...fileModal, dataId: record.id, visible: true })}><DisconnectOutlined style={{ color: '#007bff' }}/> {text}</span>
     },
     {
       title: '操作',

+ 10 - 2
src/pages/Contract/Content/Income/index.tsx

@@ -7,7 +7,7 @@ import { contractStore, tenderStore } from '@/store/mobx'
 import { ContractTree, iModalProps } from '@/types/contract'
 import { contractTreeBaseId } from '@/utils/common/constStatus'
 import consts from '@/utils/consts'
-import { Button, message, Tooltip } from 'antd'
+import { Button, message, Popconfirm, Tooltip } from 'antd'
 import React, { useState, useEffect } from 'react'
 import { apiResfulContract, apiResfulContractTree } from './api'
 import ContractModal from './components/Modal'
@@ -135,7 +135,15 @@ const Income: React.FC<RouteComponentProps> = (props) => {
                   {
                     !row.children?.length && row.depth !== 1 ?
                       <Tooltip title="删除">
-                        <Button type="text" icon={<SvgIcon type="xxh-times" style={{ color: '#007bff', fontSize: 12 }} />} onClick={() => treeResfulApiHandler('del', { id: row.id, bidsectionId: row.bidsectionId })} />
+                        <Popconfirm
+                          title="确定删除"
+                          onConfirm={() => treeResfulApiHandler('del', { id: row.id, bidsectionId: row.bidsectionId })}
+                          okText="确认"
+                          cancelText="取消"
+                          okButtonProps={{ danger: true }}
+                          >
+                          <Button type="text" icon={<SvgIcon type="xxh-times" style={{ color: '#007bff', fontSize: 12 }} />} />
+                        </Popconfirm>
                       </Tooltip>
                       : <span className="pi-width-32 pi-height-32 pi-pd-tb-4 pi-flex-row-center"><SvgIcon type="xxh-times" style={{ color: '#9a9a9a', fontSize: 12 }} /></span>
                   }

+ 10 - 2
src/pages/Contract/Content/Spending/index.tsx

@@ -8,7 +8,7 @@ import { contractStore, tenderStore } from '@/store/mobx'
 import { ContractTree, iModalProps } from '@/types/contract'
 import { contractTreeBaseId } from '@/utils/common/constStatus'
 import consts from '@/utils/consts'
-import { Button, message, Tooltip } from 'antd'
+import { Button, message, Popconfirm, Tooltip } from 'antd'
 import React, { useState, useEffect } from 'react'
 import { apiResfulContract } from './api'
 import ContractModal from '@/pages/Contract/Content/Income/components/Modal'
@@ -132,7 +132,15 @@ const Expenditure: React.FC<RouteComponentProps> = ({ history }) => {
                   {
                     !row.children?.length && row.depth !== 1 ?
                       <Tooltip title="删除">
-                        <Button type="text" icon={<SvgIcon type="xxh-times" style={{ color: '#007bff', fontSize: 12 }} />} onClick={() => treeResfulApiHandler('del', { id: row.id, bidsectionId: row.bidsectionId })} />
+                        <Popconfirm
+                          title="确定删除"
+                          onConfirm={() => treeResfulApiHandler('del', { id: row.id, bidsectionId: row.bidsectionId })}
+                          okText="确认"
+                          cancelText="取消"
+                          okButtonProps={{ danger: true }}
+                          >
+                          <Button type="text" icon={<SvgIcon type="xxh-times" style={{ color: '#007bff', fontSize: 12 }} />} />
+                        </Popconfirm>
                       </Tooltip>
                       : <span className="pi-width-32 pi-height-32 pi-pd-tb-4 pi-flex-row-center"><SvgIcon type="xxh-times" style={{ color: '#9a9a9a', fontSize: 12 }} /></span>
                   }