فهرست منبع

feat: 增加业务参数-客户模块

lanjianrong 4 سال پیش
والد
کامیت
8a65a196aa

+ 5 - 0
config/routes.ts

@@ -62,6 +62,11 @@
         name: 'attendance',
         component: './Business/Attendance',
         access: 'authRouteFilter'
+      },
+      {
+        path: '/business/contact',
+        name: 'contact',
+        component: './business/Contact'
       }
     ]
   }

+ 1 - 0
src/locales/zh-CN/menu.ts

@@ -9,6 +9,7 @@ export default {
   'menu.role.customer': '客户',
   'menu.business': '业务参数',
   'menu.business.attendance': '考勤',
+  'menu.business.contact': '客户',
   'menu.login': '登录',
   'menu.register': '注册',
   'menu.register.result': '注册结果',

+ 6 - 3
src/pages/Business/Attendance/components/AttendanceMenu/attendanceMenu.tsx

@@ -1,7 +1,10 @@
 import React from 'react'
 import '@/pages/Role/System/components/RoleMenu/index.less'
 
-const attendanceMenu = () => {
+interface AttendanceMenuProps {
+  itemTitle: string
+}
+const AttendanceMenu: React.FC<AttendanceMenuProps> = ({ itemTitle }) => {
   return (
     <div className="h-full w-max-234px rounded-4px roleMenu">
       <div className="p-4 border-b-1 border-solid border-black border-opacity-10 bg-[#f7f9fa] justify-around text-left">
@@ -13,7 +16,7 @@ const attendanceMenu = () => {
             className={
               'flex justify-between items-center py-2 px-5 cursor-pointer scale-up-center'
             }>
-            加班申请人
+            {itemTitle}
           </li>
         </ul>
       </div>
@@ -21,4 +24,4 @@ const attendanceMenu = () => {
   )
 }
 
-export default attendanceMenu
+export default AttendanceMenu

+ 2 - 2
src/pages/Business/Attendance/index.tsx

@@ -1,5 +1,5 @@
 import React, { useState, useEffect } from 'react'
-import AttendanceMenu from './components/AttendanceMenu/attendanceMenu'
+import AttendanceMenu from './components/AttendanceMenu'
 import { useRequest } from 'umi'
 import { Plus, Delete } from '@icon-park/react'
 import ConnectModal from './components/ConnectModal'
@@ -120,7 +120,7 @@ const Attendance = () => {
 
   return (
     <div className="h-full w-full flex flex-row">
-      <AttendanceMenu />
+      <AttendanceMenu itemTitle="加班申请人" />
       <div className="w-max-3/4">
         <div className="ml-8 bg-white p-4 shadow-md shadow-hex-3e2c5a relative">
           <div className="absolute right-7 top-7 z-100">

+ 97 - 0
src/pages/Business/Contact/index.tsx

@@ -0,0 +1,97 @@
+import React, { useState } from 'react'
+import { Button } from 'antd'
+import ProForm, { ModalForm, ProFormText } from '@ant-design/pro-form'
+import type { ProFormColumnsType } from '@ant-design/pro-form'
+import { EditableProTable } from '@ant-design/pro-table'
+import AttendanceMenu from '../Attendance/components/AttendanceMenu'
+
+enum modalType {
+  CREATE = 0,
+  UPDATE = 1
+}
+
+interface StageSettingsType {
+  id: React.Key
+  name?: string
+  stage?: string
+  percentage?: string
+}
+const Contact = () => {
+  const [state, setState] = useState({
+    id: '',
+    contactList: [],
+    visible: false,
+    type: modalType.CREATE
+  })
+
+  const columns: ProFormColumnsType<StageSettingsType>[] = [
+    {
+      title: '阶段',
+      dataIndex: 'stage',
+      width: '15%'
+    },
+    {
+      title: '阶段名称',
+      dataIndex: 'name',
+      width: '50%'
+    },
+    {
+      title: '赢单率',
+      dataIndex: 'percentage',
+      width: '35%',
+      valueType: 'text',
+      fieldProps: {
+        addonAfter: '%'
+      }
+    }
+  ]
+
+  return (
+    <div className="h-full w-full flex flex-row">
+      <AttendanceMenu itemTitle="商机状态组" />
+      <div className="w-max-3/4">
+        <div className="ml-8 bg-white p-4 shadow-md shadow-hex-3e2c5a relative">
+          <div className="absolute right-7 top-7 z-100">
+            <ModalForm
+              visible={state.visible}
+              onVisibleChange={() => setState({ ...state, visible: false })}
+              title={state.type === modalType.CREATE ? '创建商机角色' : '更新商机角色'}
+              trigger={
+                <Button
+                  type="primary"
+                  onClick={() => setState({ ...state, visible: true, type: modalType.CREATE })}>
+                  添加新组
+                </Button>
+              }>
+              <ProFormText name="name" label="组名称" required />
+              <ProFormText name="department" label="应用部门" required />
+              <ProForm.Item label="阶段设置" name="stageSettings">
+                <EditableProTable<StageSettingsType>
+                  rowKey="id"
+                  toolBarRender={false}
+                  columns={columns}
+                  recordCreatorProps={{
+                    newRecordType: 'dataSource',
+                    position: 'top',
+                    record: () => ({
+                      id: Date.now()
+                    })
+                  }}
+                  editable={{
+                    type: 'multiple',
+                    actionRender: (row, _, dom) => {
+                      return [dom.delete]
+                    }
+                  }}
+                />
+              </ProForm.Item>
+            </ModalForm>
+          </div>
+          {/* <Table columns={}></Table> */}
+        </div>
+      </div>
+    </div>
+  )
+}
+
+export default Contact

+ 0 - 11
src/pages/Business/index.tsx

@@ -1,11 +0,0 @@
-import React from 'react'
-
-const Business = () => {
-  return (
-    <div>
-      <span>参数设置</span>
-    </div>
-  )
-}
-
-export default Business

+ 1 - 1
src/pages/Role/Customer/index.tsx

@@ -12,7 +12,7 @@ import {
 } from '@/services/user/api'
 import type { ColumnsType } from 'antd/lib/table'
 import { formatPermission } from '@/utils/utils'
-import RoleMenu from '../System/components/RoleMenu/roleMenu'
+import RoleMenu from '../System/components/RoleMenu'
 import ConnectModal from '../System/components/ConnectModal'
 
 const Customer = () => {

src/pages/Role/System/components/RoleMenu/roleMenu.tsx → src/pages/Role/System/components/RoleMenu/index.tsx


+ 1 - 1
src/pages/Role/System/index.tsx

@@ -4,7 +4,7 @@ import ProForm, { ProFormCheckbox, ProFormDependency, ProFormSwitch } from '@ant
 import type { FormInstance } from 'antd'
 import { message, Table, Tabs, Popconfirm, Popover } from 'antd'
 import React, { useRef, useMemo, useState, useEffect } from 'react'
-import RoleMenu from './components/RoleMenu/roleMenu'
+import RoleMenu from './components/RoleMenu'
 import {
   fetchRoleStaffListByRoleId,
   updateRolePermission,

+ 3 - 0
src/services/user/api.ts

@@ -119,3 +119,6 @@ export async function deleteStaff(params: API.DeleteStaff) {
     data: params
   })
 }
+
+/** 获得商机组列表 */
+export async function getBusinessgroupList() {}