Преглед изворни кода

feat: 大司空企业版2.0企业信息内容

outaozhen пре 4 година
родитељ
комит
2201b698ba

+ 3 - 1
src/components/ModalStore/index.tsx

@@ -21,6 +21,7 @@ import CustomPerm from '@/pages/Customer/Company/components/CustomPerm'
 import MessageDrawer from '@/pages/Hr/Notification/components/MessageDrawer'
 import MessageDrawer from '@/pages/Hr/Notification/components/MessageDrawer'
 import CloudDetail from '@/pages/Product/Cloud/components/Detail'
 import CloudDetail from '@/pages/Product/Cloud/components/Detail'
 import PersonalDetail from '@/pages/Product/Road/Personal/components/Detail'
 import PersonalDetail from '@/pages/Product/Road/Personal/components/Detail'
+import EnterpriseDetail from '@/pages/Product/Road/Enterprise/components/Detail'
 const modalMap = {
 const modalMap = {
   M_CLIENT_ADD: AddClient, // 添加客户弹窗
   M_CLIENT_ADD: AddClient, // 添加客户弹窗
   M_COMPANY_ADD: AddCompany, // 添加单位弹窗
   M_COMPANY_ADD: AddCompany, // 添加单位弹窗
@@ -42,7 +43,8 @@ const modalMap = {
   M_CUSTOM_PERM: CustomPerm, // 自定义数据权限弹窗
   M_CUSTOM_PERM: CustomPerm, // 自定义数据权限弹窗
   D_NOTICE_DETAIL: MessageDrawer, // 通知详情
   D_NOTICE_DETAIL: MessageDrawer, // 通知详情
   D_CLOUD_DETAIL: CloudDetail, // 云版详情
   D_CLOUD_DETAIL: CloudDetail, // 云版详情
-  D_PERSONAL_DETAIL: PersonalDetail // 大司空2.0个人版详情
+  D_PERSONAL_DETAIL: PersonalDetail, // 大司空2.0个人版详情
+  D_ENTERPRISE_DETAIL: EnterpriseDetail // 大司空2.0企业版详情
 }
 }
 
 
 export const useModal = createModalHook<typeof modalMap>()
 export const useModal = createModalHook<typeof modalMap>()

+ 28 - 54
src/pages/Product/Cloud/components/CardDetail/index.jsx

@@ -1,4 +1,4 @@
-import { Card, Col, Row } from 'antd'
+import { Card } from 'antd'
 import React, { useState } from 'react'
 import React, { useState } from 'react'
 import { useModal } from '@/components/ModalStore'
 import { useModal } from '@/components/ModalStore'
 import styles from './index.less'
 import styles from './index.less'
@@ -12,59 +12,33 @@ const CardClientDetail = props => {
   return (
   return (
     <div className="pt-3 border-t-1px border-hex-f3f3f3">
     <div className="pt-3 border-t-1px border-hex-f3f3f3">
       <Card title="CLD客户" size="small" type="inner" className={styles.cardBoxBg}>
       <Card title="CLD客户" size="small" type="inner" className={styles.cardBoxBg}>
-        <Row>
-          <Col span={8} className="text-right py-3">
-            客户姓名:
-          </Col>
-          <Col span={16} className="py-3">
-            <span
-              onClick={() =>
-                dispatchModal('D_CLIENT_DETAIL', { dataId: client.id, orderIds: state.orderIds })
-              }
-              className="text-primary cursor-pointer hover:text-[#967bbd]">
-              {client.clientName}
-            </span>
-          </Col>
-          <Col span={8} className="text-right py-3">
-            单位名称:
-          </Col>
-          <Col span={16} className="py-3">
-            <span
-              onClick={() =>
-                dispatchModal('D_COMPANY_DETAIL', {
-                  dataId: client.companyId,
-                  orderIds: state.orderIds
-                })
-              }
-              className="text-primary cursor-pointer hover:text-[#967bbd]">
-              {client.companyName}
-            </span>
-          </Col>
-          <Col span={8} className="text-right py-3">
-            手机:
-          </Col>
-          <Col span={16} className="py-3">
-            {client.telephone}
-          </Col>
-          <Col span={8} className="text-right py-3">
-            QQ:
-          </Col>
-          <Col span={16} className="py-3">
-            {client.qq}
-          </Col>
-          <Col span={8} className="text-right py-3">
-            部门:
-          </Col>
-          <Col span={16} className="py-3">
-            {client.department}
-          </Col>
-          <Col span={8} className="text-right py-3">
-            职务:
-          </Col>
-          <Col span={16} className="py-3">
-            {client.position}
-          </Col>
-        </Row>
+        <div className="py-3">
+          客户姓名:
+          <span
+            onClick={() =>
+              dispatchModal('D_CLIENT_DETAIL', { dataId: client.id, orderIds: state.orderIds })
+            }
+            className="text-primary cursor-pointer hover:text-[#967bbd]">
+            {client.clientName}
+          </span>
+        </div>
+        <div className="py-3">
+          单位名称:
+          <span
+            onClick={() =>
+              dispatchModal('D_COMPANY_DETAIL', {
+                dataId: client.companyId,
+                orderIds: state.orderIds
+              })
+            }
+            className="text-primary cursor-pointer hover:text-[#967bbd]">
+            {client.companyName}
+          </span>
+        </div>
+        <div className="py-3">手机:{client.telephone}</div>
+        <div className="py-3">QQ:{client.qq}</div>
+        <div className="py-3">部门:{client.department}</div>
+        <div className="py-3">职务:{client.position}</div>
       </Card>
       </Card>
     </div>
     </div>
   )
   )

+ 52 - 0
src/pages/Product/Road/Enterprise/components/Detail/Form.jsx

@@ -0,0 +1,52 @@
+import EditableForm from '@/components/EditableForm'
+import { Col, Row } from 'antd'
+import React from 'react'
+
+const EnterpriseForm = props => {
+  const { company, updateKey } = props
+  console.log(company)
+  const columns = [
+    {
+      dataIndex: 'name',
+      label: '企业名称',
+      editable: false,
+      span: 24
+    },
+    {
+      dataIndex: 'managerName',
+      label: '企业管理员',
+      editable: false,
+      span: 24
+    },
+    {
+      dataIndex: 'managerPhone',
+      label: '电话号码',
+      editable: false,
+      span: 24
+    }
+  ]
+  return (
+    <div>
+      <Row>
+        <Col span={8}>
+          <h2 className="text-gray-500">企业信息</h2>
+        </Col>
+        <Col span={16}>
+          {company.name}创建于 {company.registerTime}
+        </Col>
+        <Col span={22}>
+          <h2 className="text-2xl pb-4">{company.mobile}</h2>
+        </Col>
+        <Col span={2} />
+      </Row>
+      <EditableForm
+        dataSource={company}
+        columns={columns}
+        tartgetUrl="/cloud/update"
+        type={updateKey}
+      />
+    </div>
+  )
+}
+
+export default EnterpriseForm

+ 11 - 0
src/pages/Product/Road/Enterprise/components/Detail/LowerList.jsx

@@ -0,0 +1,11 @@
+import React from 'react'
+
+const EnterpriseLowerList = () => {
+  return (
+    <div>
+      <span>日志</span>
+    </div>
+  )
+}
+
+export default EnterpriseLowerList

+ 11 - 0
src/pages/Product/Road/Enterprise/components/Detail/TabList.jsx

@@ -0,0 +1,11 @@
+import React from 'react'
+
+const EnterpriseTabList = () => {
+  return (
+    <div>
+      <span>授权定额</span>
+    </div>
+  )
+}
+
+export default EnterpriseTabList

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

@@ -0,0 +1,79 @@
+import { apiRoadcompanyDetail } from '@/services/product'
+import { Col, Drawer, Row, Spin } from 'antd'
+import React, { useState, useEffect } from 'react'
+import { connect } from 'umi'
+import consts from '@/consts'
+import EnterpriseForm from './Form'
+import EnterpriseLowerList from './LowerList'
+import EnterpriseTabList from './TabList'
+
+const EnterpriseDetail = props => {
+  const {
+    dispatch,
+    updateKey = 'personal',
+    refresh,
+    visible,
+    dataId = '',
+    ...resetDrawerProps
+  } = props
+  const [state, setState] = useState({
+    loading: false,
+    company: {},
+    compilationList: [],
+    client: [],
+    serviceLog: [],
+    log: {}
+  })
+  const shouldUpdate = refresh?.[updateKey] || false
+  const refreshClient = () => {
+    dispatch({
+      type: 'refresh/commitAction',
+      payload: updateKey
+    })
+  }
+  const initData = async id => {
+    setState({ ...state, loading: true })
+    const {
+      data: { company = {}, compilationList = [], client = [], serviceLog = [], log = {} },
+      code = -1
+    } = await apiRoadcompanyDetail({ companyId: id })
+    if (code === consts.RET_CODE.SUCCESS) {
+      if (shouldUpdate) {
+        dispatch({
+          type: 'refresh/commitAction',
+          payload: updateKey
+        })
+      }
+      setState({ ...state, company, compilationList, client, serviceLog, log, loading: false })
+    }
+  }
+  useEffect(() => {
+    shouldUpdate && initData(dataId)
+  }, [shouldUpdate])
+  useEffect(() => {
+    visible && initData(dataId)
+  }, [visible])
+  return (
+    <Drawer {...resetDrawerProps} visible={visible} className="zh-drawer">
+      <Spin spinning={state.loading}>
+        <div className="sheet-box">
+          <Row>
+            <Col span={9} className="sheet-box-left">
+              <div className="sheet-left-panel pr-4">
+                <EnterpriseForm company={state.company} updateKey={updateKey} />
+              </div>
+            </Col>
+            <Col span={15} className="sheet-box-right">
+              <EnterpriseLowerList />
+              <EnterpriseTabList />
+            </Col>
+          </Row>
+        </div>
+      </Spin>
+    </Drawer>
+  )
+}
+
+export default connect(({ refresh }) => ({
+  refresh
+}))(EnterpriseDetail)

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

@@ -4,8 +4,10 @@ import { Button, Input } from 'antd'
 import React, { useState, useRef } from 'react'
 import React, { useState, useRef } from 'react'
 import { generateSortField } from '@/utils/utils'
 import { generateSortField } from '@/utils/utils'
 import consts from '@/consts'
 import consts from '@/consts'
+import { useModal } from '@/components/ModalStore'
 
 
 const Enterprise = props => {
 const Enterprise = props => {
+  const dispatchModal = useModal()
   const [state, setState] = useState({
   const [state, setState] = useState({
     params: {
     params: {
       search: null
       search: null
@@ -18,7 +20,18 @@ const Enterprise = props => {
       dataIndex: 'name',
       dataIndex: 'name',
       key: 'name',
       key: 'name',
       width: 110,
       width: 110,
-      fixed: 'left'
+      fixed: 'left',
+      render: (text, record) => (
+        <span
+          onClick={() =>
+            dispatchModal('D_ENTERPRISE_DETAIL', {
+              dataId: record.companyId
+            })
+          }
+          className="text-primary cursor-pointer hover:text-[#967bbd]">
+          {text}
+        </span>
+      )
     },
     },
     {
     {
       title: '企业管理员',
       title: '企业管理员',

+ 4 - 0
src/services/product.js

@@ -168,3 +168,7 @@ export async function queryRoadcompanyList(params) {
 export async function apiRoadcompanyDetail(params) {
 export async function apiRoadcompanyDetail(params) {
   return request('/RoadPricingv2/company/detail', { params })
   return request('/RoadPricingv2/company/detail', { params })
 }
 }
+/** 大司空2.0企业版新增企业 */
+export async function apiRoadAddCompany(payload) {
+  return request('/RoadPricingv2/company/add', { method: 'POST', data: { ...payload } })
+}