|
@@ -12,7 +12,9 @@ import {
|
|
|
delBusinessGroupById,
|
|
|
getBusinessgroupList,
|
|
|
updateBusinessGroup,
|
|
|
- getClientSourceList
|
|
|
+ getClientSourceList,
|
|
|
+ addClientSource,
|
|
|
+ updateClientSource
|
|
|
} from '@/services/user/api'
|
|
|
import type { ColumnsType } from 'antd/lib/table'
|
|
|
import { Delete } from '@icon-park/react'
|
|
@@ -23,6 +25,11 @@ enum modalType {
|
|
|
UPDATE = 1
|
|
|
}
|
|
|
|
|
|
+const modalTitleType = {
|
|
|
+ 1: '商机角色',
|
|
|
+ 2: '来源'
|
|
|
+}
|
|
|
+
|
|
|
interface StageSettingsType {
|
|
|
id: React.Key
|
|
|
name?: string
|
|
@@ -178,6 +185,27 @@ const Contact: React.FC = () => {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ const { run: tryAddClientSource } = useRequest(addClientSource, {
|
|
|
+ manual: true,
|
|
|
+ onSuccess: async () => {
|
|
|
+ tryGetClientSourceList()
|
|
|
+ message.success('添加成功')
|
|
|
+ },
|
|
|
+ onError: e => {
|
|
|
+ message.error(e.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ const { run: tryUpdateClientSource } = useRequest(updateClientSource, {
|
|
|
+ manual: true,
|
|
|
+ onSuccess: async () => {
|
|
|
+ tryGetClientSourceList()
|
|
|
+ message.success('编辑成功')
|
|
|
+ },
|
|
|
+ onError: e => {
|
|
|
+ message.error(e.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
if (!department.length) {
|
|
|
fetchDepartment()
|
|
@@ -262,7 +290,19 @@ const Contact: React.FC = () => {
|
|
|
},
|
|
|
{
|
|
|
dataIndex: 'opreate',
|
|
|
- title: '操作'
|
|
|
+ title: '操作',
|
|
|
+ render: (_, record) => (
|
|
|
+ <div className="divide-x divide-bg-gray-400 flex flex-row">
|
|
|
+ <div
|
|
|
+ className="pr-2 text-primary cursor-pointer hover:text-hex-967bbd"
|
|
|
+ onClick={() => {
|
|
|
+ formRef.current?.setFieldsValue({ ...record })
|
|
|
+ setState({ ...state, visible: true, type: modalType.UPDATE })
|
|
|
+ }}>
|
|
|
+ 编辑
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
}
|
|
|
]
|
|
|
return (
|
|
@@ -319,57 +359,80 @@ const Contact: React.FC = () => {
|
|
|
visible={state.visible}
|
|
|
formRef={formRef}
|
|
|
onVisibleChange={show => setState({ ...state, visible: show })}
|
|
|
- title={state.type === modalType.CREATE ? '创建商机角色' : '更新商机角色'}
|
|
|
+ title={`${state.type === modalType.CREATE ? '创建' : '更新'}${
|
|
|
+ modalTitleType[state.menuId]
|
|
|
+ }`}
|
|
|
onFinish={async value => {
|
|
|
try {
|
|
|
- if (state.type === modalType.CREATE) {
|
|
|
+ if (state.type === modalType.CREATE && state.menuId === 1) {
|
|
|
await tryAddBusinessgroup({
|
|
|
...value,
|
|
|
stageSettings: JSON.stringify(value.stageSettings.filter(item => !item.isDefault))
|
|
|
})
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ if (state.type === modalType.UPDATE && state.menuId === 1) {
|
|
|
await tryUpdateBusinessGroup({
|
|
|
...value,
|
|
|
stageSettings: JSON.stringify(value.stageSettings.filter(item => !item.isDefault))
|
|
|
})
|
|
|
}
|
|
|
+ if (state.type === modalType.CREATE && state.menuId === 2) {
|
|
|
+ await tryAddClientSource({
|
|
|
+ ...value
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (state.type === modalType.UPDATE && state.menuId === 2) {
|
|
|
+ await tryUpdateClientSource({
|
|
|
+ ...value
|
|
|
+ })
|
|
|
+ }
|
|
|
return true
|
|
|
} catch (error) {
|
|
|
message.error(`${state.type === modalType.CREATE ? '创建' : '更新'}失败,请重试`)
|
|
|
return false
|
|
|
}
|
|
|
}}>
|
|
|
- <ProFormText name="name" label="组名称" required />
|
|
|
- <ProFormText name="id" hidden />
|
|
|
- <ProForm.Item name="departmentIds" label="应用部门" required>
|
|
|
- <TreeSelect treeData={department} multiple={true} />
|
|
|
- </ProForm.Item>
|
|
|
- <ProForm.Item
|
|
|
- label="状态设置"
|
|
|
- name="stageSettings"
|
|
|
- initialValue={defaultData}
|
|
|
- trigger="onValuesChange">
|
|
|
- <EditableProTable<StageSettingsType>
|
|
|
- rowKey="id"
|
|
|
- toolBarRender={false}
|
|
|
- columns={columns}
|
|
|
- recordCreatorProps={{
|
|
|
- newRecordType: 'dataSource',
|
|
|
- position: 'bottom',
|
|
|
- record: () => ({
|
|
|
- id: Date.now()
|
|
|
- })
|
|
|
- }}
|
|
|
- editable={{
|
|
|
- type: 'multiple',
|
|
|
- editableKeys,
|
|
|
- onChange: setEditableRowKeys,
|
|
|
- actionRender: (row, _, dom) => {
|
|
|
- return [dom.delete]
|
|
|
- }
|
|
|
- }}
|
|
|
- />
|
|
|
- </ProForm.Item>
|
|
|
+ {state.menuId === 1 ? (
|
|
|
+ <>
|
|
|
+ <ProFormText name="name" label="组名称" required />
|
|
|
+ <ProFormText name="id" hidden />
|
|
|
+ <ProForm.Item name="departmentIds" label="应用部门" required>
|
|
|
+ <TreeSelect treeData={department} multiple={true} />
|
|
|
+ </ProForm.Item>
|
|
|
+ <ProForm.Item
|
|
|
+ label="状态设置"
|
|
|
+ name="stageSettings"
|
|
|
+ initialValue={defaultData}
|
|
|
+ trigger="onValuesChange">
|
|
|
+ <EditableProTable<StageSettingsType>
|
|
|
+ rowKey="id"
|
|
|
+ toolBarRender={false}
|
|
|
+ columns={columns}
|
|
|
+ recordCreatorProps={{
|
|
|
+ newRecordType: 'dataSource',
|
|
|
+ position: 'bottom',
|
|
|
+ record: () => ({
|
|
|
+ id: Date.now()
|
|
|
+ })
|
|
|
+ }}
|
|
|
+ editable={{
|
|
|
+ type: 'multiple',
|
|
|
+ editableKeys,
|
|
|
+ onChange: setEditableRowKeys,
|
|
|
+ actionRender: (row, _, dom) => {
|
|
|
+ return [dom.delete]
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </ProForm.Item>
|
|
|
+ </>
|
|
|
+ ) : null}
|
|
|
+ {state.menuId === 2 ? (
|
|
|
+ <>
|
|
|
+ <ProFormText name="id" hidden />
|
|
|
+ <ProFormText name="name" label="来源名称" required />
|
|
|
+ </>
|
|
|
+ ) : null}
|
|
|
</ModalForm>
|
|
|
</div>
|
|
|
)
|