Procházet zdrojové kódy

feat: 大司空弹窗抽屉创建企业弹窗

outaozhen před 4 roky
rodič
revize
34b18d2a40

+ 5 - 9
src/pages/Customer/Client/components/AddClient/index.jsx

@@ -68,8 +68,8 @@ const AddClient = props => {
             formRef?.resetFields()
             setTimeout(() => {
               setValidStatusFtl('')
+              onCancel()
             }, 80)
-            onCancel()
           }
         } catch (error) {}
       })
@@ -107,14 +107,12 @@ const AddClient = props => {
                 }
                 formRef?.setFieldsValue(values)
                 handleOnOk()
-              }}
-            >
+              }}>
               添加并关联
             </Button>
           ) : null}
         </div>
-      }
-    >
+      }>
       <Form {...layout} form={formRef} onValuesChange={handleChange} initialValues={defaultValues}>
         {showDataItem ? <ProFormText name={`${dataType}Id`} hidden /> : null}
         <ProFormText
@@ -126,8 +124,7 @@ const AddClient = props => {
         <Form.Item
           label="客户地区"
           name="districtIds"
-          rules={[{ required: true, message: '请选择地区' }]}
-        >
+          rules={[{ required: true, message: '请选择地区' }]}>
           <LazyCascader showFooter={true} />
         </Form.Item>
         <Row>
@@ -149,8 +146,7 @@ const AddClient = props => {
               name="telephone"
               validateStatus={validStatusFtl}
               hasFeedback
-              rules={[{ required: true, message: '请输入手机号码' }]}
-            >
+              rules={[{ required: true, message: '请输入手机号码' }]}>
               <TelephoneFormItem validateFn={status => setValidStatusFtl(status)} />
             </Form.Item>
             <ProFormText

+ 2 - 1
src/pages/Product/Road/Enterprise/components/AddEnterprise/EnterpriseFormItem.jsx

@@ -6,7 +6,7 @@ import consts from '@/consts'
 import { useDebounceFn } from 'ahooks'
 import { useModal } from '@/components/ModalStore'
 
-const EnterpriseFormItem = ({ value, onChange, validateFn }) => {
+const EnterpriseFormItem = ({ value, onChange, disabled, validateFn }) => {
   const [state, setState] = useState({
     inputVal: value,
     visible: false,
@@ -76,6 +76,7 @@ const EnterpriseFormItem = ({ value, onChange, validateFn }) => {
         autoComplete="false"
         value={inputVal}
         placeholder="请输入管理员名称"
+        disabled={disabled}
         onChange={handleOnInputChange}
       />
     </Popover>

+ 2 - 2
src/pages/Product/Road/Enterprise/components/AddEnterprise/EnterpriseSelect.jsx

@@ -2,7 +2,7 @@ import { Select, Space } from 'antd'
 import React, { useState, useEffect } from 'react'
 import { useDispatch, connect } from 'umi'
 
-const EnterpriseSelect = ({ compilationv2 }) => {
+const EnterpriseSelect = ({ compilationv2, disabled }) => {
   const [state, setState] = useState({
     newValue: ''
   })
@@ -30,7 +30,7 @@ const EnterpriseSelect = ({ compilationv2 }) => {
   }
   return (
     <Space direction="vertical" style={{ width: '100%' }}>
-      <Select {...selectProps} />
+      <Select {...selectProps} disabled={disabled} />
     </Space>
   )
 }

+ 2 - 1
src/pages/Product/Road/Enterprise/components/AddEnterprise/SearchCompanyInput.jsx

@@ -5,7 +5,7 @@ import consts from '@/consts'
 import { queryRoadcompanyList } from '@/services/product'
 import { validateEnum } from '@/pages/Customer/Company/components/AddCompany/CompanyFormItem'
 
-const SearchCompanyInput = ({ value, onChange, validateFn }) => {
+const SearchCompanyInput = ({ value, onChange, disabled, validateFn }) => {
   const [state, setState] = useState({
     inputVal: value
   })
@@ -51,6 +51,7 @@ const SearchCompanyInput = ({ value, onChange, validateFn }) => {
       autoComplete="false"
       placeholder="请输入企业名称"
       value={inputVal}
+      disabled={disabled}
       onChange={handleOnInputChange}
     />
   )

+ 14 - 3
src/pages/Product/Road/Enterprise/components/AddEnterprise/index.jsx

@@ -7,7 +7,15 @@ import EnterpriseFormItem from './EnterpriseFormItem'
 import { validateEnum } from '@/pages/Customer/Company/components/AddCompany/CompanyFormItem'
 import SearchCompanyInput from './SearchCompanyInput'
 
-const AddEnterprise = ({ visible, onCancel, onConfirm, ...resetModalProps }) => {
+const AddEnterprise = ({
+  visible,
+  onCancel,
+  onConfirm,
+  disabled,
+  defaultValues,
+  ...resetModalProps
+}) => {
+  console.log(defaultValues)
   const layout = {
     layout: 'horizontal',
     labelCol: { flex: '100px' }
@@ -66,7 +74,8 @@ const AddEnterprise = ({ visible, onCancel, onConfirm, ...resetModalProps }) =>
           </Button>
         </div>
       }>
-      <Form {...layout} form={formRef} initialValues={{ licenceNum: 1 }}>
+      {/* initialValues={{ licenceNum: 1 }} */}
+      <Form {...layout} form={formRef} initialValues={defaultValues}>
         <Form.Item
           name="companyName"
           label="创建企业"
@@ -77,6 +86,7 @@ const AddEnterprise = ({ visible, onCancel, onConfirm, ...resetModalProps }) =>
           }>
           <SearchCompanyInput
             validateFn={status => setValidStatus({ ...validStatus, companyName: status })}
+            disabled={disabled}
           />
         </Form.Item>
         <Form.Item
@@ -87,7 +97,7 @@ const AddEnterprise = ({ visible, onCancel, onConfirm, ...resetModalProps }) =>
           <InputNumber min={1} max={99} />
         </Form.Item>
         <Form.Item name="licenceNum" label="授权定额" rules={[{ required: true }]}>
-          <EnterpriseSelect />
+          <EnterpriseSelect disabled={disabled} />
         </Form.Item>
         <Form.Item
           name="adminID"
@@ -99,6 +109,7 @@ const AddEnterprise = ({ visible, onCancel, onConfirm, ...resetModalProps }) =>
           }>
           <EnterpriseFormItem
             validateFn={status => setValidStatus({ ...validStatus, adminID: status })}
+            disabled={disabled}
           />
         </Form.Item>
       </Form>

+ 31 - 3
src/pages/Product/Road/Enterprise/components/Detail/TabList.jsx

@@ -1,17 +1,29 @@
-import { Button, Tabs, Tag } from 'antd'
+import { Button, Tabs, Tag, message } from 'antd'
 import React, { useRef } from 'react'
 import ProTable from '@ant-design/pro-table'
 import { renderBadge } from '@/pages/Workbench/Dashboard/components/RatioPanels'
+import { useModal } from '@/components/ModalStore'
+import { apiRoadUpdateCompany } from '@/services/product'
 
 const EnterpriseTabList = props => {
-  const { authUsers, compilationList } = props
+  const { authUsers, compilationList, company } = props
   const { TabPane } = Tabs
   const tRef = useRef(null)
+  const dispatchModal = useModal()
   const isUpgradeEnum = {
     true: '开通',
     false: '未开通',
     undefined: ''
   }
+  const handleUpdateEnterprise = async values => {
+    const params = formatValues(values)
+    const { code = -1 } = await apiRoadUpdateCompany(params)
+    if (code === consts.RET_CODE.SUCCESS) {
+      message.success('编辑成功')
+      initData()
+    }
+    return code === consts.RET_CODE.SUCCESS
+  }
   const columns = [
     {
       title: '产品',
@@ -88,7 +100,23 @@ const EnterpriseTabList = props => {
         </Tabs>
       </div>
       <div className="sheet-btns pl-15px pt-15px flex items-center">
-        <Button type="primary" className="mr-1" size="small" ghost>
+        <Button
+          type="primary"
+          className="mr-1"
+          size="small"
+          ghost
+          onClick={() =>
+            dispatchModal('M_ENTERPRISE_ADD', {
+              onConfirm: handleUpdateEnterprise,
+              disabled: true,
+              defaultValues: {
+                companyName: company.name,
+                adminID: company.managerName,
+                licenceNum: company.latestUsed
+              },
+              reload: () => tRef.current?.reload()
+            })
+          }>
           企业版管理
         </Button>
       </div>

+ 1 - 0
src/pages/Product/Road/Enterprise/components/Detail/index.jsx

@@ -146,6 +146,7 @@ const EnterpriseDetail = props => {
               <EnterpriseTabList
                 compilationList={state.compilationList}
                 authUsers={state.authUsers}
+                company={state.company}
               />
               <EnterpriseLowerList log={state.log} />
             </Col>

+ 5 - 1
src/pages/Product/Road/Enterprise/index.jsx

@@ -1,6 +1,6 @@
 import BasicTable from '@/components/Table'
 import { apiRoadAddCompany, queryRoadcompanyList } from '@/services/product'
-import { Button, Input } from 'antd'
+import { Button, Input, message } from 'antd'
 import React, { useState, useRef } from 'react'
 import { generateSortField } from '@/utils/utils'
 import consts from '@/consts'
@@ -118,6 +118,10 @@ const Enterprise = () => {
               onClick={() =>
                 dispatchModal('M_ENTERPRISE_ADD', {
                   onConfirm: handleAddEnterprise,
+                  disabled: false,
+                  defaultValues: {
+                    licenceNum: 1
+                  },
                   reload: () => tRef.current?.reload()
                 })
               }>