Browse Source

feat: 合同回款、支出中创建人应不可编辑

lanjianrong 4 years ago
parent
commit
5b338de9d5

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

@@ -4,7 +4,7 @@ import { contractReturnStore } from '@/store/mobx'
 import { iReceivableState, iEditableCellProps } from '@/types/contract'
 import { iFileModal } from '@/types/file'
 import consts from '@/utils/consts'
-import { dayjsFormat } from '@/utils/util'
+import { dayjsFormat, formatMoney } from '@/utils/util'
 import { DisconnectOutlined } from '@ant-design/icons'
 import { Form, Input, Popconfirm, Table } from 'antd'
 import locale from 'antd/es/date-picker/locale/zh_CN'
@@ -26,7 +26,7 @@ const EditableCell: React.FC<iEditableCellProps> = ({
 }) => {
   // console.log(dataIndex, record)
 
-  const cellNode = cellType === 'text' ? <Input size="small" allowClear/> : <DatePicker size="small" allowClear locale={locale} />
+  const cellNode = cellType === 'text' ? <Input size="small" allowClear /> : <DatePicker size="small" allowClear locale={locale} />
 
   const isDate = useMemo(() => {
     return dataIndex === 'createTime' || dataIndex === 'time'
@@ -38,14 +38,14 @@ const EditableCell: React.FC<iEditableCellProps> = ({
           {cellNode}
         </Form.Item>
       ) : (
-        children
-      )}
+          children
+        )}
     </td>
   )
 }
 
 
-const Receivable:React.FC<{}> = () => {
+const Receivable: React.FC<{}> = () => {
   const [ form ] = Form.useForm()
   const [ data, setData ] = useState<Array<iReceivableState>>([])
   const [ id, setId ] = useState<string>('')
@@ -75,11 +75,12 @@ const Receivable:React.FC<{}> = () => {
       contractReturnStore.shouldUpdate && (contractReturnStore.changeUpdate(''))
     }
   }, [ contractReturnStore.contract.id, contractReturnStore.shouldUpdate ])
-  const initData = async() => {
+
+  const initData = async () => {
     const { code = -1, data = [] } = await apiGetReturns(contractReturnStore.contract.id, contractReturnStore.contract.bidsectionId)
-      if (code === consts.RET_CODE.SUCCESS) {
-        setData(data)
-      }
+    if (code === consts.RET_CODE.SUCCESS) {
+      setData(data)
+    }
   }
   const save = async (key: React.Key) => {
     try {
@@ -134,7 +135,7 @@ const Receivable:React.FC<{}> = () => {
       editable: true,
       width: '12%',
       // eslint-disable-next-line react/display-name
-      render: (text: string) => <span className="pi-text-right pi-width-100P">{text}</span>
+      render: (text: string) => <span className="pi-text-right pi-width-100P">{formatMoney(parseFloat(text))}</span>
     },
     {
       title: '回款方式',
@@ -145,7 +146,7 @@ const Receivable:React.FC<{}> = () => {
     {
       title: '创建人',
       dataIndex: 'createUser',
-      editable: true,
+      editable: false,
       width: '12%'
     },
     {
@@ -176,17 +177,17 @@ const Receivable:React.FC<{}> = () => {
       render: (text: any, record: iReceivableState) => {
         const editable = isEditing(record)
         return (
-        <div>
-          {
-            editable ?
-            (<><span className="pi-link-blue pi-mg-right-5" onClick={() => save(record.id)}>保存</span><span className="pi-link-blue" onClick={() => setEditingKey('')}>取消</span></>)
-            :
-            <span className="pi-link-blue" onClick={() => setEditingKey(record.id)}>编辑</span>
-          }
-          <Popconfirm title="确认删除?" cancelText="取消" okText="确认" onConfirm={() => delConfirm(record.id, record.contractsId, record.bidsectionId)}>
-            <span className="pi-link-red pi-mg-left-5">删除</span>
-          </Popconfirm>
-        </div>
+          <div>
+            {
+              editable ?
+                (<><span className="pi-link-blue pi-mg-right-5" onClick={() => save(record.id)}>保存</span><span className="pi-link-blue" onClick={() => setEditingKey('')}>取消</span></>)
+                :
+                <span className="pi-link-blue" onClick={() => setEditingKey(record.id)}>编辑</span>
+            }
+            <Popconfirm title="确认删除?" cancelText="取消" okText="确认" okButtonProps={{ danger: true }} onConfirm={() => delConfirm(record.id, record.contractsId, record.bidsectionId)}>
+              <span className="pi-link-red pi-mg-left-5">删除</span>
+            </Popconfirm>
+          </div>
         )
       }
     }
@@ -222,9 +223,9 @@ const Receivable:React.FC<{}> = () => {
           columns={mergedColumns}
           bordered
           rowClassName="editable-row"
-          pagination={{ onChange: cancel, size:"small", pageSize: 7 }}
+          pagination={{ onChange: cancel, size: "small", pageSize: 7 }}
           rowKey={record => record.id}
-           />
+        />
       </Form>
       <FileModal
         visible={fileModal.visible}
@@ -232,7 +233,7 @@ const Receivable:React.FC<{}> = () => {
         dataId={fileModal.dataId}
         onCancel={() => setFileModal({ ...fileModal, visible: false })}
         showUpload={true}
-       />
+      />
     </>
   )
 }

+ 3 - 3
src/pages/Contract/Content/Spending/components/Tabs/Receivable/index.tsx

@@ -4,7 +4,7 @@ import { contractPaidStore } from '@/store/mobx'
 import { iReceivableState, iEditableCellProps } from '@/types/contract'
 import { iFileModal } from '@/types/file'
 import consts from '@/utils/consts'
-import { dayjsFormat } from '@/utils/util'
+import { dayjsFormat, formatMoney } from '@/utils/util'
 import { DisconnectOutlined } from '@ant-design/icons'
 import { Form, Input, Popconfirm, Table } from 'antd'
 import locale from 'antd/es/date-picker/locale/zh_CN'
@@ -128,7 +128,7 @@ const Receivable:React.FC<{}> = () => {
       editable: true,
       width: '12%',
       // eslint-disable-next-line react/display-name
-      render: (text: string) => <span className="pi-text-right pi-width-100P">{text}</span>
+      render: (text: string) => <span className="pi-text-right pi-width-100P">{formatMoney(parseFloat(text))}</span>
     },
     {
       title: '支付方式',
@@ -139,7 +139,7 @@ const Receivable:React.FC<{}> = () => {
     {
       title: '创建人',
       dataIndex: 'createUser',
-      editable: true,
+      editable: false,
       width: '12%'
     },
     {