Prechádzať zdrojové kódy

fix: 调整接口数据、修复自动编号组件顺序错乱的问题

lanjianrong 4 rokov pred
rodič
commit
5cb268a712

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

@@ -1,10 +1,9 @@
 import Authorization from '@/components/Authorization'
 import DatePicker from '@/components/DatePicker'
-import { apiAutoCode } from '@/pages/Safe/Content/List/api'
 import { contractReturnStore, tenderStore } from '@/store/mobx'
 import { iModalCommonProps } from '@/types/contract'
 import consts from '@/utils/consts'
-import { dayjsFormat } from '@/utils/util'
+import { dayjsFormat, handleAutoCode } from '@/utils/util'
 import { Button, Form, Input, Modal, Select } from 'antd'
 import locale from 'antd/es/date-picker/locale/zh_CN'
 import dayjs from 'dayjs'
@@ -71,23 +70,9 @@ const ContractModal: React.FC<iModalCommonProps> = ({ modalObj: { type, visible,
       }
     }
   }, [ visible ])
-  const autoCodeHandler = async () => {
-    const { code = -1, data = '' } = await apiAutoCode(tenderStore.tender.bidsectionId, 'contractReturnRule')
-    if (code === consts.RET_CODE.SUCCESS) {
-      if (data) {
-        const ruleArr: string[] = []
-        const code = JSON.parse(data)
-        for (const key in code) {
-          if (Object.prototype.hasOwnProperty.call(code, key)) {
-            const element = code[key]
-            if (element) {
-              ruleArr.push(element)
-            }
-          }
-        }
-        form.setFieldsValue({ code: ruleArr.join('-') })
-      }
-    }
+  const autoCode = async () => {
+    const ruleArr = await handleAutoCode(tenderStore.tender.bidsectionId, 'contractReturnRule')
+    form.setFieldsValue({ code: ruleArr.join('-') })
   }
   return (
     <Modal
@@ -149,7 +134,7 @@ const ContractModal: React.FC<iModalCommonProps> = ({ modalObj: { type, visible,
             <Form.Item name="code" label="合同编号" rules={[ { required: true, message: '请输入合同编号' } ]} className={styles.contractFormItem}>
               <Input
                 addonAfter={
-                  <span className="pi-pd-lr-11" onClick={() => autoCodeHandler()}>
+                  <span className="pi-pd-lr-11" onClick={() => autoCode()}>
                     自动编号
                   </span>
                 } />

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

@@ -1,3 +1,4 @@
+import Authorization from '@/components/Authorization'
 import { ZhSubmitButton } from '@/components/Button'
 import OssUploadModal from '@/components/OssUpload'
 import { contractReturnStore, tenderStore } from '@/store/mobx'
@@ -362,7 +363,9 @@ const GCsheet: React.FC<iTableContentPorps> = ({ changeModalType, row, setRow })
             {
               contractReturnStore.contract.id && contractReturnStore.contract.status === contractConsts.status.checking ?
               <>
-                <Button type="primary" size="small" onClick={() => changeModalType('update')} className="pi-mg-right-5">编辑合同</Button>
+                <Authorization type="contract" auth="add">
+                  <Button type="primary" size="small" onClick={() => changeModalType('update')} className="pi-mg-right-5">编辑合同</Button>
+                </Authorization>
                 <Button type="primary" size="small" onClick={() => changeModalType('return')} className="pi-mg-right-5">添加回款</Button>
                 <Button type="primary" size="small" onClick={() => setVisible(true)}>上传文件</Button>
               </>

+ 4 - 2
src/pages/Contract/List/index.tsx

@@ -12,7 +12,7 @@ import React, { useState, useEffect } from 'react'
 import { useAliveController } from 'react-activation'
 import styles from './index.module.scss'
 import { apiContractList } from '@/utils/common/api'
-import { handleIntoBidsection } from '@/utils/util'
+import { formatMoney, handleIntoBidsection } from '@/utils/util'
 const List: React.FC<{}> = () => {
   const { clear } = useAliveController()
   const [ loading, setLoading ] = useState<boolean>(false)
@@ -77,7 +77,9 @@ const List: React.FC<{}> = () => {
       dataIndex: 'contractsIncome',
       key: 'contractsIncome',
       width: '18%',
-      align: 'right'
+      align: 'right',
+      // eslint-disable-next-line react/display-name
+      render: (text: number) => <span>{formatMoney(text)}</span>
     },
     {
       title: '回款进度',

+ 0 - 1
src/pages/Management/Tender/List/components/ModalForm.tsx

@@ -73,7 +73,6 @@ const ModalForm: React.FC<iModalFormProps> = ({
   useEffect(() => {
     form.setFieldsValue({ [type === 'tender' ? 'folderId' : 'id']: id })
     if (type === 'move') {
-
       setCascader(mapTree(treeObj.children, id, isFolder) as Option[])
     }
     if (type === 'move' || type.indexOf('del') !== -1) {

+ 1 - 1
src/pages/Management/Tender/Member/modal.tsx

@@ -26,7 +26,7 @@ const PermissionSettingModal: React.FC<iPermissionSettingProps> = ({ onCreate, o
     }
   }, [ visible ])
   const checkboxOptions: CheckboxOptionType[] = [
-    { label: '查看', value: 'access' },
+    { label: '查看所有', value: 'access' },
     { label: '创建', value: 'add' },
     { label: '删除', value: 'delete' }
   ]

+ 0 - 10
src/pages/Quality/Content/List/api.ts

@@ -41,13 +41,3 @@ export async function apiSaveRule(payload: iRulePayload) {
   const { data } = await request.post('/api/rule', { ...payload, rule: JSON.stringify(newValue) })
   return data
 }
-
-/**
- *
- * @param bidsectionId 标段id
- * @param type 规则类型
- */
-export async function apiAutoCode(bidsectionId: string, type: string) {
-  const { data } = await request.post("/api/rule/auto", { bidsectionId, type })
-  return data
-}

+ 5 - 20
src/pages/Quality/Content/List/modal.tsx

@@ -1,10 +1,9 @@
 import DatePicker from '@/components/DatePicker'
 import { tenderStore } from '@/store/mobx'
-import consts from '@/utils/consts'
+import { handleAutoCode } from '@/utils/util'
 import { Form, Input, Modal } from 'antd'
 import locale from 'antd/es/date-picker/locale/zh_CN'
 import React, { useEffect } from 'react'
-import { apiAutoCode } from './api'
 import styles from './index.module.scss'
 interface iQualityCreateFormProps {
   visible: boolean;
@@ -20,23 +19,9 @@ const QualityCreateForm: React.FC<iQualityCreateFormProps> = ({
   onCancel
 }) => {
   const [ form ] = Form.useForm()
-  const autoCodeHandler = async () => {
-    const { code = -1, data = "" } = await apiAutoCode(tenderStore.tender.bidsectionId, 'qualityRule')
-    if (code === consts.RET_CODE.SUCCESS) {
-      if (data) {
-        const ruleArr: string[] = []
-        const code = JSON.parse(data)
-        for (const key in code) {
-          if (Object.prototype.hasOwnProperty.call(code, key)) {
-            const element = code[key]
-            if (element) {
-              ruleArr.push(element)
-            }
-          }
-        }
-        form.setFieldsValue({ code: ruleArr.join("-") })
-      }
-    }
+  const autoCode = async () => {
+    const ruleArr = await handleAutoCode(tenderStore.tender.bidsectionId, 'qualityRule')
+    form.setFieldsValue({ code: ruleArr.join('-') })
   }
   useEffect(() => {
     if (visible) {
@@ -77,7 +62,7 @@ const QualityCreateForm: React.FC<iQualityCreateFormProps> = ({
           <Input />
         </Form.Item>
         <Form.Item name="code" label="安全编号" rules={[ { required: true, message: '请输入/生成安全编号' } ]}>
-          <Input addonAfter={<span className="pi-pd-lr-11"onClick={() => autoCodeHandler()}>自动编号</span>}/>
+          <Input addonAfter={<span className="pi-pd-lr-11"onClick={() => autoCode()}>自动编号</span>}/>
         </Form.Item>
         <Form.Item name="inspection" label="检查项" rules={[ { required: true, message: '请填写检查项' } ]}>
           <Input placeholder="请填写巡检项"/>

+ 0 - 9
src/pages/Safe/Content/List/api.ts

@@ -42,12 +42,3 @@ export async function apiSaveRule(payload: iRulePayload) {
   return data
 }
 
-/**
- *
- * @param bidsectionId 标段id
- * @param type 规则类型
- */
-export async function apiAutoCode(bidsectionId: string, type: string) {
-  const { data } = await request.post("/api/rule/auto", { bidsectionId, type })
-  return data
-}

+ 6 - 20
src/pages/Safe/Content/List/modal.tsx

@@ -1,10 +1,9 @@
 import DatePicker from '@/components/DatePicker'
 import { tenderStore } from '@/store/mobx'
-import consts from '@/utils/consts'
+import { handleAutoCode } from '@/utils/util'
 import { Form, Input, Modal } from 'antd'
 import locale from 'antd/es/date-picker/locale/zh_CN'
 import React, { useEffect } from 'react'
-import { apiAutoCode } from './api'
 import styles from './index.module.scss'
 interface iSafeCreateFormProps {
   visible: boolean;
@@ -20,24 +19,11 @@ const SafeCreateForm: React.FC<iSafeCreateFormProps> = ({
   onCancel
 }) => {
   const [ form ] = Form.useForm()
-  const autoCodeHandler = async () => {
-    const { code = -1, data = "" } = await apiAutoCode(tenderStore.tender.bidsectionId, 'safeRule')
-    if (code === consts.RET_CODE.SUCCESS) {
-      if (data) {
-        const ruleArr: string[] = []
-        const code = JSON.parse(data)
-        for (const key in code) {
-          if (Object.prototype.hasOwnProperty.call(code, key)) {
-            const element = code[key]
-            if (element) {
-              ruleArr.push(element)
-            }
-          }
-        }
-        form.setFieldsValue({ code: ruleArr.join("-") })
-      }
-    }
+  const autoCode = async () => {
+    const ruleArr = await handleAutoCode(tenderStore.tender.bidsectionId, 'safeRule')
+    form.setFieldsValue({ code: ruleArr.join('-') })
   }
+
   useEffect(() => {
     if (visible) {
       form.setFieldsValue({ bidsectionId: tenderStore.tender.bidsectionId })
@@ -77,7 +63,7 @@ const SafeCreateForm: React.FC<iSafeCreateFormProps> = ({
           <Input />
         </Form.Item>
         <Form.Item name="code" label="安全编号" rules={[ { required: true, message: '请输入/生成安全编号' } ]}>
-          <Input addonAfter={<span className="pi-pd-lr-11"onClick={() => autoCodeHandler()}>自动编号</span>}/>
+          <Input addonAfter={<span className="pi-pd-lr-11"onClick={() => autoCode()}>自动编号</span>}/>
         </Form.Item>
         <Form.Item name="inspection" label="检查项" rules={[ { required: true, message: '请填写检查项' } ]}>
           <Input placeholder="请填写巡检项"/>

+ 11 - 0
src/utils/common/api.ts

@@ -72,3 +72,14 @@ export async function apiContractList(type: number) {
   const { data } = await request.get('/api/contract/folder', { bidsectionType: type })
   return data
 }
+
+/**
+ * 自动编号
+ * @param bidsectionId 标段id
+ * @param type 规则类型
+ */
+export async function apiAutoCode(bidsectionId: string, type: string) {
+  const { data } = await request.post("/api/rule/auto", { bidsectionId, type })
+  return data
+}
+

+ 27 - 1
src/utils/util.ts

@@ -1,6 +1,8 @@
 import { tenderStore } from '@/store/mobx'
+import { apiAutoCode } from './common/api'
 import { message } from 'antd'
 import dayjs from 'dayjs'
+import consts from './consts'
 import history from './history'
 
 function getCookie(name: string) {
@@ -218,4 +220,28 @@ const handleIntoBidsection = async (permission_type: 'contract' | 'safe' | 'qual
   }
 }
 
-export { getCookie, storage, throttle, debounce, combinationPath, dayjsFormat, generatePsw, formatDate, formatMoney, handleIntoBidsection }
+/**
+ * 处理自动编号序号问题
+ * @param bidsectionId 标段id
+ * @param type 规则类型
+ */
+const handleAutoCode = async (bidsectionId: string, type: string) => {
+  const { code = -1, data: { rule = '', newCode = '' } } = await apiAutoCode(bidsectionId, type)
+  const ruleArr: string[] = []
+  if (code === consts.RET_CODE.SUCCESS) {
+      const code = JSON.parse(rule)
+      for (const key in code) {
+        if (Object.prototype.hasOwnProperty.call(code, key)) {
+          const element = code[key]
+          if (key === 'code') {
+            ruleArr.push(newCode)
+          }
+          if (element && key !== 'code') {
+            ruleArr.push(element)
+          }
+        }
+    }
+  }
+  return ruleArr
+}
+export { getCookie, storage, throttle, debounce, combinationPath, dayjsFormat, generatePsw, formatDate, formatMoney, handleIntoBidsection, handleAutoCode }