Forráskód Böngészése

fix: 剔除消息提示中的感叹号

lanjianrong 4 éve
szülő
commit
d09ab076ee
30 módosított fájl, 118 hozzáadás és 111 törlés
  1. 4 4
      src/components/Authorization/index.tsx
  2. 4 4
      src/components/FileModal/index.tsx
  3. 5 1
      src/components/LeftSide/index.tsx
  4. 10 3
      src/components/Navigation/index.tsx
  5. 3 3
      src/components/OssUpload/index.tsx
  6. 5 10
      src/pages/Account/Information/index.tsx
  7. 1 1
      src/pages/Account/Safe/index.tsx
  8. 1 1
      src/pages/Contract/Content/Income/components/Modal/index.tsx
  9. 3 3
      src/pages/Contract/Content/Income/components/TableContent/index.tsx
  10. 4 2
      src/pages/Contract/Content/Income/index.tsx
  11. 1 1
      src/pages/Contract/Content/Spending/components/TableContent/index.tsx
  12. 1 1
      src/pages/Contract/Content/Spending/index.tsx
  13. 1 1
      src/pages/Contract/List/index.tsx
  14. 1 1
      src/pages/Management/Info/index.tsx
  15. 3 4
      src/pages/Management/Setting/components/Modal.tsx
  16. 2 1
      src/pages/Management/Setting/index.tsx
  17. 16 14
      src/pages/Management/Tender/List/components/ModalForm.tsx
  18. 19 17
      src/pages/Management/Tender/Member/index.tsx
  19. 2 0
      src/pages/Management/Tender/Member/modal.tsx
  20. 1 1
      src/pages/Quality/Content/Info/Detail/components/Modal/index.tsx
  21. 4 4
      src/pages/Quality/Content/Info/Detail/index.tsx
  22. 2 2
      src/pages/Quality/Content/List/index.tsx
  23. 1 1
      src/pages/Quality/List/index.tsx
  24. 4 4
      src/pages/Safe/Content/Info/Detail/index.tsx
  25. 2 6
      src/pages/Safe/Content/List/index.tsx
  26. 6 5
      src/pages/Safe/Content/List/modal.tsx
  27. 3 3
      src/pages/Safe/Content/index.tsx
  28. 1 1
      src/pages/Safe/List/index.tsx
  29. 3 7
      src/store/mobx/tender/index.ts
  30. 5 5
      src/utils/util.ts

+ 4 - 4
src/components/Authorization/index.tsx

@@ -10,8 +10,8 @@ interface Authorization {
 /** auth的格式化为:delete | add | access */
 const Authorization: React.FC<Authorization> = ({ type, auth, children }) => {
   useEffect(() => {
-    if (tenderStore.bid) {
-      tenderStore.saveTenderPermission(tenderStore.bid)
+    if (tenderStore.bid && !tenderStore.permission) {
+      tenderStore.saveTenderPermission()
     }
     if (!tenderStore.tender.bidsectionId) {
       tenderStore.cloneTenderFromStorage()
@@ -21,9 +21,9 @@ const Authorization: React.FC<Authorization> = ({ type, auth, children }) => {
 
 
   // 获取mobx存储的权限
-  const permission = tenderStore.permission[type]
+  const permission = tenderStore.permission && tenderStore.permission[type]
 
-  if (permission[auth] === authPass || !!userStore.userInfo.isAdmin) {
+  if (permission && permission[auth] === authPass || !!userStore.userInfo.isAdmin) {
     return <>{children}</>
   }
   return null

+ 4 - 4
src/components/FileModal/index.tsx

@@ -59,7 +59,7 @@ export default function FileModal(props: iFileModalProps) {
       // console.log(info.file, info.fileList)
     }
     if (status === 'done') {
-      // message.success(`${info.file.name} 上传成功!`)
+      // message.success(`${info.file.name} 上传成功`)
       const newFileList: iFile[] = [
         {
           createTime: new Date(),
@@ -73,7 +73,7 @@ export default function FileModal(props: iFileModalProps) {
         uploadCallBack && uploadCallBack()
       }
     } else if (status === 'error') {
-      message.error(`${info.file.name} 上传失败!`)
+      message.error(`${info.file.name} 上传失败`)
     }
   }
   // 初始化、获取签名
@@ -83,7 +83,7 @@ export default function FileModal(props: iFileModalProps) {
       if (code === consts.RET_CODE.SUCCESS) {
         setOssData({ ...OSSData, ...data })
       } else {
-        message.error("获取签名失败,请联系管理员!")
+        message.error("获取签名失败,请联系管理员")
 
       }
     } catch (error) {
@@ -110,7 +110,7 @@ export default function FileModal(props: iFileModalProps) {
     const { UPLOAD_LIMIT } = consts
     const isLt30M = file.size / 1024 / 1024 < UPLOAD_LIMIT
     if (!isLt30M) {
-      message.error("上传附件大小限制在30MB!")
+      message.error("上传附件大小限制在30MB")
       return false
     }
     const expire = parseInt(OSSData.expire) * 1000

+ 5 - 1
src/components/LeftSide/index.tsx

@@ -7,10 +7,14 @@ import React, { useEffect } from 'react'
 import { Link } from 'react-router-dom'
 import "./index.scss"
 const LeftSide:React.FC<iNavSide> = ({ childRoutes, location, showBidsection = false }) => {
+  const state = location.state && location.state
   useEffect(() => {
     if (!showBidsection && !userStore.projectInfo.id) {
       userStore.getProjectInfo()
     }
+    if (!tenderStore.bid) {
+      tenderStore.saveTenderInfo(state)
+    }
   }, [])
   const pathname = location.pathname
   const route = childRoutes.find(item => pathname.indexOf(item.path) !== -1)
@@ -29,7 +33,7 @@ const LeftSide:React.FC<iNavSide> = ({ childRoutes, location, showBidsection = f
         </Tooltip>
         <div className="pi-flex-column pi-justify-start">
           { childRoutes.map((item, idx) =>
-            item.meta && <Link key={idx} to={{ pathname: basePathname + item.path }} className={pathname.indexOf(item.path) !== -1 ? 'nav-link active' : 'nav-link'}>{item.meta.icon ? <SvgIcon type={item.meta.icon} /> : ''} {item.meta.title}</Link>
+            item.meta && <Link key={idx} to={{ pathname: `${basePathname + item.path}`, state }} className={pathname.indexOf(item.path) !== -1 ? 'nav-link active' : 'nav-link'}>{item.meta.icon ? <SvgIcon type={item.meta.icon} /> : ''} {item.meta.title}</Link>
           )}
         </div>
       </div>

+ 10 - 3
src/components/Navigation/index.tsx

@@ -5,7 +5,7 @@ import consts from '@/utils/consts'
 import { combinationPath } from '@/utils/util'
 import React, { Component } from 'react'
 import { Redirect, Route } from "react-router-dom"
-
+import * as H from 'history'
 class NavigationGuards extends Component<NavigationGuardsProps, any> {
   constructor(props: NavigationGuardsProps) {
     super(props)
@@ -85,10 +85,17 @@ class NavigationGuards extends Component<NavigationGuardsProps, any> {
     //用户当前希望访问的路径
     const targetPath: string | undefined = location?.pathname
 
-    //如果访问子菜单,则跳转到子菜单的默认路由
+    //如果访问子菜单,则跳转到子菜单的默认路由, 并把参数带上
     if (targetPath && frameStore.defaultRouteMapping.has(targetPath)) {
       const targetDefaultRoute: string = frameStore.defaultRouteMapping.get(targetPath) as string
-      return <Redirect to={targetDefaultRoute} />
+      const toParams:H.LocationDescriptor = { pathname: targetDefaultRoute }
+      if (location?.state) {
+        toParams.state = location?.state
+      }
+      if (location?.search) {
+        toParams.search = location?.search
+      }
+      return <Redirect to={{ ...toParams }} />
     }
 
     const findRes = targetPath && NavigationGuards.findTargetRoute(parentPath, targetPath, routeConfig)

+ 3 - 3
src/components/OssUpload/index.tsx

@@ -47,7 +47,7 @@ const UploadModal:React.FC<iUploadModalProps> = (props) => {
       const newFiles = [ ...files, { createTime: new Date(), filepath: info.file.url,filename: info.file.name } ]
       setFiles(newFiles)
     } else if (status === 'error') {
-      message.error(`${info.file.name} 上传失败!`)
+      message.error(`${info.file.name} 上传失败`)
     }
   }
   // 初始化、获取签名
@@ -57,7 +57,7 @@ const UploadModal:React.FC<iUploadModalProps> = (props) => {
       if (code === consts.RET_CODE.SUCCESS) {
         setOssData({ ...OSSData, ...data })
       } else {
-        message.error("获取签名失败,请联系管理员!")
+        message.error("获取签名失败,请联系管理员")
 
       }
     } catch (error) {
@@ -84,7 +84,7 @@ const UploadModal:React.FC<iUploadModalProps> = (props) => {
     const { UPLOAD_LIMIT } = consts
     const isLt30M = file.size / 1024 / 1024 < UPLOAD_LIMIT
     if (!isLt30M) {
-      message.error("上传附件大小限制在30MB!")
+      message.error("上传附件大小限制在30MB")
       return false
     }
     const expire = parseInt(OSSData.expire) * 1000

+ 5 - 10
src/pages/Account/Information/index.tsx

@@ -15,7 +15,7 @@ interface iUserInfo {
   telephone: string
 }
 export default function Info() {
-  const [ form ] = Form.useForm() 
+  const [ form ] = Form.useForm()
   const [ loading, setLoading ] = useState<boolean>(false)
   const [ accountInfo, setAccountInfo ] = useState<iUserInfo>({
     account: '',
@@ -37,19 +37,14 @@ export default function Info() {
   // 保存表单信息
   const saveAccountInfo = async (values:any) => {
     setLoading(true)
-    
+
     values.id=user.userInfo.id
     const { code = -1 } = await apiAccountEdit(values)
     if (code === consts.RET_CODE.SUCCESS) {
-      message.success("更新成功!")
+      message.success("更新成功")
       initData()
     }
-   
     setLoading(false)
-     // const newName = form.getFieldValue("projectName")
-    //  if (newName !== projectInfo.projectName) {
-    //   const { code = -1 } = await apiSaveProjectInfo(newName)
-    // }
   }
 
   const initData = async () => {
@@ -68,7 +63,7 @@ export default function Info() {
             <Input disabled />
           </Form.Item>
           <Form.Item name="name" label="姓名" rules={[ { required: true, message: '请输入姓名' } ]}>
-            <Input />
+            <Input/>
           </Form.Item>
           <Form.Item name="company" label="单位" rules={[ { required: true, message: '请输入单位' } ]}>
             <Input />
@@ -87,7 +82,7 @@ export default function Info() {
         </Form>
       </div>
     </div>
-    
+
   )
 }
 

+ 1 - 1
src/pages/Account/Safe/index.tsx

@@ -15,7 +15,7 @@ export default function Index() {
     setLoading(true)
     const { code = -1 } = await apiChangePassword(values)
     if (code === consts.RET_CODE.SUCCESS) {
-      message.success("更新成功!")
+      message.success("更新成功")
     }
     setLoading(false)
   }

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

@@ -204,7 +204,7 @@ const ContractModal: React.FC<iModalCommonProps> = ({ modalObj: { type, visible,
                 } />
             </Form.Item>
             <Form.Item name="name" label="合同名称" rules={[ { required: true, message: '请输入合同名称' } ]}>
-              <Input placeholder="输入合同名称" />
+              <Input placeholder="输入合同名称" autoComplete='off'/>
             </Form.Item>
             {/* <Form.Item name="contractsType" label="合同类型" rules={[ { required: true, message: '请选择合同类型' } ]}>
               <Select showSearch>

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

@@ -143,7 +143,7 @@ const GCsheet: React.FC<iTableContentPorps> = ({ changeModalType, row, setRow, h
     {
       title: '编号',
       dataIndex: 'code',
-      width: '15%',
+      width: '20%',
       // eslint-disable-next-line react/display-name
       render: (text: string, row: iIncomeTree) => {
         if (row.isEdit) {
@@ -165,7 +165,7 @@ const GCsheet: React.FC<iTableContentPorps> = ({ changeModalType, row, setRow, h
     {
       title: '项目名称',
       dataIndex: 'name',
-      width: '25%',
+      width: '20%',
       render: (text: any, record: iIncomeTree) => {
         if (record.isEdit || record.isNew) {
           const type = record.isEdit ? 'edit' : 'create'
@@ -230,7 +230,7 @@ const GCsheet: React.FC<iTableContentPorps> = ({ changeModalType, row, setRow, h
         ...sectionTemplate,
         loading: false
       })
-      return message.error('请选择项目节模板!')
+      return message.error('请选择项目节模板')
     }
     const { code = -1 } = await apiSetTemplate(sectionTemplate.template, tenderStore.tender.bidsectionId, 0)
     if (code === consts.RET_CODE.SUCCESS) {

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

@@ -21,8 +21,10 @@ interface iModal {
 }
 
 
-const Income: React.FC<RouteComponentProps> = ({ history }) => {
+const Income: React.FC<RouteComponentProps> = (props) => {
+  console.log(props)
 
+  const { history } = props
   const [ modalObj, setModalObj ] = useState<iModalProps>({
     type: '',
     visible: false,
@@ -103,7 +105,7 @@ const Income: React.FC<RouteComponentProps> = ({ history }) => {
     setRuleModal({ ...ruleModal, loading: true })
     const { code = -1 } = await apiSaveRule({ bidsectionId: tenderStore.bid, type: 'contract_return_rule', rule: ruleValue })
     if (code === consts.RET_CODE.SUCCESS) {
-      message.success("规则更改成功!")
+      message.success("规则更改成功")
     }
     setRuleModal({ ...ruleModal, loading: false, visible: false })
   }

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

@@ -227,7 +227,7 @@ const GCsheet: React.FC<iTableContentPorps> = ({ changeModalType, row, setRow, h
         ...sectionTemplate,
         loading: false
       })
-      return message.error('请选择项目节模板!')
+      return message.error('请选择项目节模板')
     }
     const { code = -1 } = await apiSetTemplate(sectionTemplate.template, tenderStore.tender.bidsectionId, 1)
     if (code === consts.RET_CODE.SUCCESS) {

+ 1 - 1
src/pages/Contract/Content/Spending/index.tsx

@@ -100,7 +100,7 @@ const Expenditure:React.FC<RouteComponentProps> = ({ history }) => {
     setRuleModal({ ...ruleModal, loading: true })
     const { code = -1 } = await apiSaveRule({ bidsectionId: tenderStore.bid, type: 'contract_paid_rule', rule: ruleValue })
     if (code === consts.RET_CODE.SUCCESS) {
-      message.success("规则更改成功!")
+      message.success("规则更改成功")
     }
     setRuleModal({ ...ruleModal, loading: false, visible: false })
   }

+ 1 - 1
src/pages/Contract/List/index.tsx

@@ -35,7 +35,7 @@ const List: React.FC<{}> = () => {
 
   const handleLinkClick = (id: string, name: string) => {
     tenderStore.saveTenderInfo({ bidsectionId: id, name })
-    handleIntoBidsection("contract", id)
+    handleIntoBidsection("contract", id, name)
   }
 
   const columns: ColumnsType<ContractTree> = [

+ 1 - 1
src/pages/Management/Info/index.tsx

@@ -45,7 +45,7 @@ const [ loading, setLoading ] = useState<boolean>(false)
     if (newName !== projectInfo.projectName) {
       const { code = -1 } = await apiSaveProjectInfo(newName)
       if (code === consts.RET_CODE.SUCCESS) {
-        message.success("更新成功!")
+        message.success("更新成功")
         initData()
       }
     }

+ 3 - 4
src/pages/Management/Setting/components/Modal.tsx

@@ -2,8 +2,6 @@ import StrengthMeter from '@/components/StrengthMeter'
 import { userStore } from '@/store/mobx'
 import { iUserInfo } from '@/types/setting'
 import consts from '@/utils/consts'
-import { generatePsw } from '@/utils/util'
-import { EyeInvisibleOutlined, EyeTwoTone } from '@ant-design/icons'
 import { Button, Form, Input, Modal, Select } from 'antd'
 import { observer } from 'mobx-react'
 import React, { useEffect, useState } from 'react'
@@ -25,6 +23,8 @@ const UserModal: React.FC<iUserModal> = ({ visible, loading, onCreate, onCancel,
   const [ showPswModal, setShowPswModal ] = useState<boolean>(false)
   useEffect(() => {
     if (visible) {
+                form.resetFields()
+
       userInfo.id ? form.setFieldsValue(userInfo) : form.resetFields()
       if (!userStore.groupList.length) {
         userStore.getGroupList()
@@ -63,7 +63,6 @@ const UserModal: React.FC<iUserModal> = ({ visible, loading, onCreate, onCancel,
             <Button size="small" className={styles.grayBtn} onClick={() => onCancel()}>关闭</Button>
             <Button size="small" type="primary" loading={loading} onClick={() => {
               form.validateFields().then(values => {
-                form.resetFields()
                 onCreate(values)
               })
             }}>{userInfo.id ? '提交修改' : '确认添加'}</Button>
@@ -126,7 +125,7 @@ const UserModal: React.FC<iUserModal> = ({ visible, loading, onCreate, onCancel,
           <Form.Item name="mobile" label="手机" rules={[ { required: true, message: '请输入手机号码' }, () => ({
             validator(_, value) {
               if (value) {
-                if(/^(?:(?:\+|00)86)?1\d{10}$/.test(value)) {
+                if(/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(value)) {
                   return Promise.resolve()
                 }
                 return Promise.reject('请输入正确的手机号码')

+ 2 - 1
src/pages/Management/Setting/index.tsx

@@ -3,7 +3,7 @@ import Slot from '@/components/Header/slot'
 import SvgIcon from '@/components/SvgIcon'
 import { iUserInfo } from '@/types/setting'
 import consts from '@/utils/consts'
-import { Button, Input, Table, Tooltip } from 'antd'
+import { Button, Input, message, Table, Tooltip } from 'antd'
 import { ColumnsType } from 'antd/lib/table'
 import React, { useEffect, useState } from 'react'
 import { apiAccountEdit, apiAccountEnable, apiAccountList } from './api'
@@ -53,6 +53,7 @@ export default function Info() {
     const { code = -1 } = await apiAccountEdit(modalStatus.type, values)
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
+      message.success(modalStatus.type === 'edit' ? '修改成功' : '新增成功')
       setModalStatus({
         ...modalStatus,
         visible: false,

+ 16 - 14
src/pages/Management/Tender/List/components/ModalForm.tsx

@@ -72,20 +72,22 @@ const ModalForm: React.FC<iModalFormProps> = ({
   const [ showNameInput, setShowNameInput ] = useState(true)
 
   useEffect(() => {
-    form.setFieldsValue({ [type === 'tender' ? 'folderId' : 'id']: id })
-    if (type === 'rename') {
-      form.setFieldsValue({ name })
-    }
-    if (type === 'move') {
-      setCascader(mapTree(treeObj.children, id, isFolder) as Option[])
-    }
-    if (type === 'move' || type.indexOf('del') !== -1) {
-      setShowNameInput(false)
-    } else {
-      setShowNameInput(true)
-      form.setFieldsValue({ depth: type === 'root' ? -1 : 0 })
+    if (visible) {
+      form.setFieldsValue({ [type === 'tender' ? 'folderId' : 'id']: id })
+      if (type === 'rename') {
+        form.setFieldsValue({ name })
+      }
+      if (type === 'move') {
+        setCascader(mapTree(treeObj.children, id, isFolder) as Option[])
+      }
+      if (type === 'move' || type.indexOf('del') !== -1) {
+        setShowNameInput(false)
+      } else {
+        setShowNameInput(true)
+        form.setFieldsValue({ depth: type === 'root' ? -1 : 0 })
+      }
     }
-  }, [ type, id ])
+  }, [ type, id, visible ])
   return (
     <Modal
       getContainer={false}
@@ -103,7 +105,7 @@ const ModalForm: React.FC<iModalFormProps> = ({
           form.resetFields()
           onCreate(values, type)
         }).catch(info => {
-          message.error(`Validate Failed:${info}`)
+          console.error(`Validate Failed:${info}`)
         })
       }}>
       <Form form={form} layout="vertical">

+ 19 - 17
src/pages/Management/Tender/Member/index.tsx

@@ -38,8 +38,8 @@ interface iPermissionModalState {
   loading: boolean
   permissionObj: {
     contract: string
-    quality: string
     safe: string
+    quality: string
   }
   id: string
 }
@@ -88,7 +88,7 @@ const Member: React.FC<RouteComponentProps> = props => {
     }
   }
 
-  const openPermissionModal = (id: string, permissionObj: { contract: string; quality: string; safe: string }) => {
+  const openPermissionModal = (id: string, permissionObj: { contract: string; safe: string; quality: string;  }) => {
     setState({ ...state, permissionModal: { ...state.permissionModal, visible: true, permissionObj, id } })
   }
 
@@ -141,16 +141,6 @@ const Member: React.FC<RouteComponentProps> = props => {
       }
     },
     {
-      title: '质量管理权限',
-      key: 'qualityPermission',
-      dataIndex: 'qualityPermission',
-      width: '22%',
-      render: (text: string) => {
-        const qualityJson: PermissionType | undefined = text && JSON.parse(text)
-        return renderPermissionText(qualityJson)
-      }
-    },
-    {
       title: '安全管理权限',
       key: 'safePermission',
       dataIndex: 'safePermission',
@@ -161,6 +151,16 @@ const Member: React.FC<RouteComponentProps> = props => {
       }
     },
     {
+      title: '质量管理权限',
+      key: 'qualityPermission',
+      dataIndex: 'qualityPermission',
+      width: '22%',
+      render: (text: string) => {
+        const qualityJson: PermissionType | undefined = text && JSON.parse(text)
+        return renderPermissionText(qualityJson)
+      }
+    },
+    {
       title: '操作',
       dataIndex: 'opreate',
       key: 'opreate',
@@ -170,7 +170,7 @@ const Member: React.FC<RouteComponentProps> = props => {
         const { contractPermission: contract = '', qualityPermission: quality = '', safePermission: safe = '' } = record
         return (
           <div className="pi-flex">
-            <ZhButton size="small" className="pi-mg-right-5" onClick={() => openPermissionModal(record.id, { contract, quality, safe })}>
+            <ZhButton size="small" className="pi-mg-right-5" onClick={() => openPermissionModal(record.id, { contract,safe, quality })}>
               权限
             </ZhButton>
             <ZhDangerButton size="small" danger onClick={() => deleteSettingMenmber(id, record.id)}>
@@ -211,12 +211,14 @@ const Member: React.FC<RouteComponentProps> = props => {
             case 'contract':
               modalData.label = '合同管理'
               break
-            case 'quality':
+            case 'safe':
               modalData.label = '安全巡检'
               break
-            default:
+            case 'quality':
               modalData.label = '质量巡检'
               break
+            default:
+              break
           }
           const permission: PermissionType | undefined = state.permissionModal.permissionObj[key] && JSON.parse(state.permissionModal.permissionObj[key])
           if (permission) {
@@ -256,10 +258,10 @@ const Member: React.FC<RouteComponentProps> = props => {
     const { code = -1 } = await apiUpdateBidAccountAuth(values, state.permissionModal.id, id)
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
-      return message.success('成员权限更新成功!')
+      return message.success('成员权限更新成功')
     }
     setState({ ...state, permissionModal: { ...state.permissionModal, loading: false } })
-    return message.error('更新失败,请重试!')
+    return message.error('更新失败,请重试')
   }
 
   const onModalCancel = () => {

+ 2 - 0
src/pages/Management/Tender/Member/modal.tsx

@@ -20,6 +20,8 @@ const PermissionSettingModal: React.FC<iPermissionSettingProps> = ({ onCreate, o
   const [ form ] = Form.useForm()
   useEffect(() => {
     if (visible) {
+      console.log(permissionArr)
+
       permissionArr.forEach(item => {
         form.setFieldsValue({ [item.type]: item.permissions })
       })

+ 1 - 1
src/pages/Quality/Content/Info/Detail/components/Modal/index.tsx

@@ -69,7 +69,7 @@ const AuditModal: React.FC<iAuditModalProps> = props => {
       }
 
       if (type === 'pass' && isLastAuditor && curAuditor.progress === '0' && !user.id) {
-        return message.error('请指定整改人!')
+        return message.error('请指定整改人')
       }
       onCreate(values)
     })

+ 4 - 4
src/pages/Quality/Content/Info/Detail/index.tsx

@@ -122,7 +122,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
 
   const addAuditor = (type: string, user: iUserInfo) => {
     if (detail.auditors.find(item => item.progress === (type === 'check' ? '0' : '2') && item.audit_id === user.id)) {
-      return message.error('该审批组下已存在该审批人,请勿重复添加!')
+      return message.error('该审批组下已存在该审批人,请勿重复添加')
     }
     if (type === 'check') {
       const newAuditors = detail.auditors
@@ -177,7 +177,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
     }
     if (type === 'pass' && detail.latestAuditor.progress === '1' && !detail.checkOrder.opinion) {
 
-      return message.error('请填写整改单!')
+      return message.error('请填写整改单')
     }
     setModalObj({ ...modalObj, auditType: type, auditModal: true })
   }
@@ -192,7 +192,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
       payload.reAuditors = detail.auditors.filter(item => item.progress === '2').map(item => item.audit_id)
       payload.times = detail.times
       if (!payload.auditors.length || !payload.reAuditors.length) {
-        return message.error('审批人或复查人不能为空!')
+        return message.error('审批人或复查人不能为空')
       }
     }
 
@@ -204,7 +204,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
       payload.id = detail.latestAuditor.id
       if (detail.latestAuditor.progress === '1') {
         // if (!detail.checkOrder.opinion) {
-        //   return message.error('请填写整改单!')
+        //   return message.error('请填写整改单')
         // } else {
         // }
         payload.rectifiedInfo = detail.checkOrder.opinion

+ 2 - 2
src/pages/Quality/Content/List/index.tsx

@@ -115,7 +115,7 @@ const QualityList: React.FC<{}> = () => {
     const { code = -1 } = await apiSaveRule({ bidsectionId: tenderStore.bid, type: 'quality_rule', rule: ruleValue })
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
-      return message.success('规则更改成功!')
+      return message.success('规则更改成功')
     } else {
       setState({ ...state, ruleModal: { ...state.ruleModal, loading: false } })
     }
@@ -126,7 +126,7 @@ const QualityList: React.FC<{}> = () => {
     const { code = -1 } = await apiCreateQuality({ ...payload, createTime })
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
-      return message.success('添加新的巡检记录成功!')
+      return message.success('添加新的巡检记录成功')
     }else {
       setState({ ...state, addModal: { ...state.addModal, loading: false } })
     }

+ 1 - 1
src/pages/Quality/List/index.tsx

@@ -34,7 +34,7 @@ const List: React.FC<RouteComponentProps> = () => {
 
   const handleLinkClick = (id: string, name: string) => {
     tenderStore.saveTenderInfo({ bidsectionId: id, name })
-    handleIntoBidsection("quality", id)
+    handleIntoBidsection("quality", id, name)
 
   }
   const columns: ColumnsType<ContractTree> = [

+ 4 - 4
src/pages/Safe/Content/Info/Detail/index.tsx

@@ -124,7 +124,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
   const addAuditor = (type: string, user: iUserInfo) => {
 
     if (detail.auditors.find(item => item.progress === (type === 'check' ? '0' : '2') && item.auditId === user.id)) {
-      return message.error('该审批组下已存在该审批人,请勿重复添加!')
+      return message.error('该审批组下已存在该审批人,请勿重复添加')
     }
     if (type === 'check') {
       const newAuditors = detail.auditors
@@ -180,7 +180,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
 
     if (type === 'pass' && detail.latestAuditor.progress === '1' && !detail.checkOrder.opinion) {
 
-      return message.error('请填写整改单!')
+      return message.error('请填写整改单')
     }
 
     setModalObj({ ...modalObj, auditType: type, auditModal: true })
@@ -196,7 +196,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
       payload.reAuditors = detail.auditors.filter(item => item.progress === '2').map(item => item.audit_id)
       payload.times = detail.times
       if (!payload.auditors.length || !payload.reAuditors.length) {
-        return message.error('审批人或复查人不能为空!')
+        return message.error('审批人或复查人不能为空')
       }
     }
 
@@ -208,7 +208,7 @@ const Detail: React.FC<RouteComponentProps> = props => {
       payload.id = detail.latestAuditor.id
       if (detail.latestAuditor.progress === '1') {
         // if (!detail.checkOrder.opinion) {
-        //   return message.error("请填写整改单!")
+        //   return message.error("请填写整改单")
         // } else {
         // }
         payload.rectifiedInfo = detail.checkOrder.opinion

+ 2 - 6
src/pages/Safe/Content/List/index.tsx

@@ -17,10 +17,6 @@ import { Link } from 'react-router-dom'
 import { apiCreateSafe, apiSafeList, apiSaveRule } from './api'
 import AddModel from './modal'
 
-interface iModal {
-  visible: boolean
-  loading: boolean
-}
 
 const SafeList: React.FC<{}> = () => {
   const [ state, setState ] = useListModal(consts.DATA_TYPE.SAFE)
@@ -110,7 +106,7 @@ const SafeList: React.FC<{}> = () => {
     const { code = -1 } = await apiSaveRule({ bidsectionId: tenderStore.bid, type: 'safe_rule', rule: ruleValue })
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
-      return message.success('规则更改成功!')
+      return message.success('规则更改成功')
     } else {
       setState({ ...state, ruleModal: { ...state.ruleModal, loading: false } })
     }
@@ -121,7 +117,7 @@ const SafeList: React.FC<{}> = () => {
     const { code = -1 } = await apiCreateSafe({ ...payload, createTime })
     if (code === consts.RET_CODE.SUCCESS) {
       initData()
-      return message.success('添加新的巡检记录成功!')
+      return message.success('添加新的巡检记录成功')
     }else {
       setState({ ...state, addModal: { ...state.addModal, loading: false } })
     }

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

@@ -20,6 +20,7 @@ const SafeCreateForm: React.FC<iSafeCreateFormProps> = ({
 }) => {
   const [ form ] = Form.useForm()
   const autoCode = async () => {
+    form.validateFields([ 'code' ])
     const ruleArr = await handleAutoCode(tenderStore.tender.bidsectionId, 'safeRule')
     form.setFieldsValue({ code: ruleArr.join('-') })
   }
@@ -59,14 +60,14 @@ const SafeCreateForm: React.FC<iSafeCreateFormProps> = ({
         </Form.Item>
         {/* <span className={[ styles.position, "pi-link-blue" ].join(" ")}>部位设置</span> */}
         {/* <Form.Item name="position" label="部位" rules={[ { required: true, message: '请选择' } ]}> */}
-          {/* <span className={[ styles.position, "pi-link-blue" ].join(" ")}>部位设置</span> */}
-          {/* <Input /> */}
+        {/* <span className={[ styles.position, "pi-link-blue" ].join(" ")}>部位设置</span> */}
+        {/* <Input /> */}
         {/* </Form.Item> */}
-        <Form.Item name="code" label="安全编号" rules={[ { required: true, message: '请输入/生成安全编号' } ]}>
-          <Input addonAfter={<span className="pi-pd-lr-11"onClick={() => autoCode()}>自动编号</span>}/>
+        <Form.Item name="code" label="安全编号" rules={[ { required: true, message: '请输入安全编号' } ]}>
+          <Input addonAfter={<span className="pi-pd-lr-11" onClick={() => autoCode()}>自动编号</span>} />
         </Form.Item>
         <Form.Item name="inspection" label="检查项" rules={[ { required: true, message: '请填写检查项' } ]}>
-          <Input placeholder="请填写巡检项"/>
+          <Input placeholder="请填写巡检项" />
         </Form.Item>
         <Form.Item name="createTime" label="日期" rules={[ { required: true, message: '请选择日期' } ]}>
           <DatePicker locale={locale} allowClear className="pi-width-100P" />

+ 3 - 3
src/pages/Safe/Content/index.tsx

@@ -3,14 +3,14 @@ import Guards from '@/components/Navigation'
 import { NavigationGuardsProps } from '@/types/router'
 import React from 'react'
 import { Switch } from 'react-router-dom'
-const Content:React.FC<NavigationGuardsProps> = props => {
+const Content: React.FC<NavigationGuardsProps> = props => {
   const { routeConfig, match, location } = props
   return (
     <>
-      <LeftSide childRoutes={routeConfig} location={location} showBidsection={true}/>
+      <LeftSide childRoutes={routeConfig} location={location} showBidsection={true} />
       <div className="panel-content">
         <Switch>
-              <Guards routeConfig={routeConfig} match={match} location={location} />
+          <Guards routeConfig={routeConfig} match={match} location={location} />
         </Switch>
       </div>
     </>

+ 1 - 1
src/pages/Safe/List/index.tsx

@@ -34,7 +34,7 @@ const List: React.FC<RouteComponentProps> = () => {
 
   const handleLinkClick = (id: string, name: string) => {
     tenderStore.saveTenderInfo({ bidsectionId: id, name })
-    handleIntoBidsection("safe", id)
+    handleIntoBidsection("safe", id, name)
   }
   const columns: ColumnsType<ContractTree> = [
     {

+ 3 - 7
src/store/mobx/tender/index.ts

@@ -20,11 +20,7 @@ class Tender {
     bidsectionId: '',
     name: ''
   }
-  @observable permission: AuthState = {
-    contract: { access: 0, add: 0, delete: 0 },
-    quality: { access: 0, add: 0, delete: 0 },
-    safe: { access: 0, add: 0, delete: 0 }
-  }
+  @observable permission?: AuthState
 
   // 保存标段id、名称
   @action saveTenderInfo ({ bidsectionId, name }: {bidsectionId: string, name: string}) {
@@ -39,8 +35,8 @@ class Tender {
   }
 
   // 保存标段权限
-  @action async saveTenderPermission(bidsectionId: string) {
-    const { code = -1, data } = await apiGetPermission(bidsectionId)
+  @action async saveTenderPermission() {
+    const { code = -1, data } = await apiGetPermission(this.bid)
     const permissionObj = {} as AuthState
     if (code === consts.RET_CODE.SUCCESS) {
       for (const key in data) {

+ 5 - 5
src/utils/util.ts

@@ -223,13 +223,13 @@ const formatMoney = (num: string | number | undefined) => {
 }
 
 // 控制是否有权限进入标段
-const handleIntoBidsection = async (permission_type: 'contract' | 'safe' | 'quality', bid: string) => {
-  await tenderStore.saveTenderPermission(bid)
-  const permission = !!tenderStore.permission[permission_type].access
+const handleIntoBidsection = async (permission_type: 'contract' | 'safe' | 'quality', bid: string, name: string) => {
+  await tenderStore.saveTenderPermission()
+  const permission = tenderStore.permission && !!tenderStore.permission[permission_type].access
   if (permission) {
-    history.push(`/console/${permission_type}/content/summary`)
+    history.push(`/console/${permission_type}/content/summary`, { id: bid, name })
   } else {
-    message.error('暂无权限进入此标段,请联系管理员')
+    message.error('暂无权限进入此标段,请联系管理员')
   }
 }