|
@@ -1,4 +1,4 @@
|
|
|
-import { Button, Tabs } from 'antd'
|
|
|
|
|
|
|
+import { Button, Popconfirm, Tabs } from 'antd'
|
|
|
import React, { useMemo } from 'react'
|
|
import React, { useMemo } from 'react'
|
|
|
import { dayjsFormat } from '@/utils/utils'
|
|
import { dayjsFormat } from '@/utils/utils'
|
|
|
import classNames from 'classnames'
|
|
import classNames from 'classnames'
|
|
@@ -7,9 +7,14 @@ import { VList } from 'virtuallist-antd'
|
|
|
import consts from '@/consts'
|
|
import consts from '@/consts'
|
|
|
import type { ProColumns } from '@ant-design/pro-table'
|
|
import type { ProColumns } from '@ant-design/pro-table'
|
|
|
import ProTable from '@ant-design/pro-table'
|
|
import ProTable from '@ant-design/pro-table'
|
|
|
-import { updateCustomerService, delCustomerService } from '@/services/customer'
|
|
|
|
|
|
|
+import {
|
|
|
|
|
+ updateCustomerService,
|
|
|
|
|
+ delCustomerService,
|
|
|
|
|
+ updateClientService,
|
|
|
|
|
+ delClientService
|
|
|
|
|
+} from '@/services/customer'
|
|
|
import { useModal } from '@/components/ModalStore'
|
|
import { useModal } from '@/components/ModalStore'
|
|
|
-import { useRequest } from 'umi'
|
|
|
|
|
|
|
+import { useDispatch, useRequest } from 'umi'
|
|
|
const { TabPane } = Tabs
|
|
const { TabPane } = Tabs
|
|
|
|
|
|
|
|
export enum Servicelog {
|
|
export enum Servicelog {
|
|
@@ -23,6 +28,11 @@ export enum Servicelog {
|
|
|
ONLINE = '4'
|
|
ONLINE = '4'
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+export enum ServiceLogType {
|
|
|
|
|
+ CLIENT,
|
|
|
|
|
+ COMPANY
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
export const servicelogEnum = {
|
|
export const servicelogEnum = {
|
|
|
[Servicelog.VISIT]: {
|
|
[Servicelog.VISIT]: {
|
|
|
title: '上门服务',
|
|
title: '上门服务',
|
|
@@ -55,28 +65,44 @@ type ClientLowerListProps = {
|
|
|
log: any[]
|
|
log: any[]
|
|
|
}
|
|
}
|
|
|
serviceList: API.ServiceLogItem[]
|
|
serviceList: API.ServiceLogItem[]
|
|
|
|
|
+ updatePayload: { main: string; target: string }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export const ServiceLogItem: React.FC<{ item: API.ServiceLogItem }> = ({ item }) => {
|
|
|
|
|
|
|
+type ServiceLogItemProps = {
|
|
|
|
|
+ item: API.ServiceLogItem
|
|
|
|
|
+ logType: ServiceLogType
|
|
|
|
|
+ updatePayload: { main: string; target: string }
|
|
|
|
|
+}
|
|
|
|
|
+export const ServiceLogItem: React.FC<ServiceLogItemProps> = ({ item, logType, updatePayload }) => {
|
|
|
const dispatchModal = useModal()
|
|
const dispatchModal = useModal()
|
|
|
|
|
+ const dispatch = useDispatch()
|
|
|
|
|
+ const { run: truUpdate, loading: comfirmLoading } = useRequest(
|
|
|
|
|
+ logType === ServiceLogType.COMPANY ? updateCustomerService : updateClientService,
|
|
|
|
|
+ {
|
|
|
|
|
+ manual: true,
|
|
|
|
|
+ onSuccess: () => {
|
|
|
|
|
+ dispatch({
|
|
|
|
|
+ type: 'refresh/commitAction',
|
|
|
|
|
+ payload: updatePayload
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ const { run: truDel } = useRequest(
|
|
|
|
|
+ logType === ServiceLogType.COMPANY ? delCustomerService : delClientService,
|
|
|
|
|
+ {
|
|
|
|
|
+ manual: true,
|
|
|
|
|
+ onSuccess: () => {
|
|
|
|
|
+ dispatch({
|
|
|
|
|
+ type: 'refresh/commitAction',
|
|
|
|
|
+ payload: updatePayload
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
- const { run: truUpdate, loading: comfirmLoading } = useRequest(updateCustomerService, {
|
|
|
|
|
- manual: true
|
|
|
|
|
- })
|
|
|
|
|
- const { run: truDel, loading: delLoading } = useRequest(delCustomerService, {
|
|
|
|
|
- manual: true
|
|
|
|
|
- })
|
|
|
|
|
- const handleOnUpdateComfirm = async (serviceLog: API.ServiceLogItem) => {
|
|
|
|
|
- const data = await truUpdate(serviceLog)
|
|
|
|
|
- console.log(data)
|
|
|
|
|
-
|
|
|
|
|
- return true
|
|
|
|
|
- }
|
|
|
|
|
- const handleOnDelComfirm = async (id: string) => {
|
|
|
|
|
- truDel({ id })
|
|
|
|
|
- }
|
|
|
|
|
const handleOnEdit = async (defaultValues: API.ServiceLogItem) => {
|
|
const handleOnEdit = async (defaultValues: API.ServiceLogItem) => {
|
|
|
- dispatchModal('M_RECORD_ADD', { defaultValues, onConfirm: handleOnUpdateComfirm })
|
|
|
|
|
|
|
+ dispatchModal('M_RECORD_ADD', { defaultValues, onConfirm: truUpdate })
|
|
|
}
|
|
}
|
|
|
return (
|
|
return (
|
|
|
<div
|
|
<div
|
|
@@ -127,14 +153,11 @@ export const ServiceLogItem: React.FC<{ item: API.ServiceLogItem }> = ({ item })
|
|
|
<Button size="small" onClick={() => handleOnEdit(item)} loading={comfirmLoading}>
|
|
<Button size="small" onClick={() => handleOnEdit(item)} loading={comfirmLoading}>
|
|
|
编辑
|
|
编辑
|
|
|
</Button>
|
|
</Button>
|
|
|
- <Button
|
|
|
|
|
- size="small"
|
|
|
|
|
- danger
|
|
|
|
|
- loading={delLoading}
|
|
|
|
|
- onClick={() => handleOnDelComfirm(item.id)}
|
|
|
|
|
- className="ml-1">
|
|
|
|
|
- 删除
|
|
|
|
|
- </Button>
|
|
|
|
|
|
|
+ <Popconfirm title="确认删除该服务记录吗?" onConfirm={() => truDel({ id: item.id })}>
|
|
|
|
|
+ <Button size="small" danger className="ml-1">
|
|
|
|
|
+ 删除
|
|
|
|
|
+ </Button>
|
|
|
|
|
+ </Popconfirm>
|
|
|
</div>
|
|
</div>
|
|
|
) : null}
|
|
) : null}
|
|
|
</div>
|
|
</div>
|
|
@@ -142,7 +165,11 @@ export const ServiceLogItem: React.FC<{ item: API.ServiceLogItem }> = ({ item })
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const ClientLowerList: React.FC<ClientLowerListProps> = ({ logList: { log: logs = [] }, serviceList }) => {
|
|
|
|
|
|
|
+const ClientLowerList: React.FC<ClientLowerListProps> = ({
|
|
|
|
|
+ logList: { log: logs = [] },
|
|
|
|
|
+ serviceList,
|
|
|
|
|
+ updatePayload
|
|
|
|
|
+}) => {
|
|
|
const tableHeight = (document.body.clientHeight - 124 - 54 - 40 - 40 - 4) / 2
|
|
const tableHeight = (document.body.clientHeight - 124 - 54 - 40 - 40 - 4) / 2
|
|
|
const columns: ProColumns<API.LogItem>[] = [
|
|
const columns: ProColumns<API.LogItem>[] = [
|
|
|
{
|
|
{
|
|
@@ -188,7 +215,7 @@ const ClientLowerList: React.FC<ClientLowerListProps> = ({ logList: { log: logs
|
|
|
<div className="sheet-panel-record">
|
|
<div className="sheet-panel-record">
|
|
|
{serviceList.map(item => (
|
|
{serviceList.map(item => (
|
|
|
<div className="mb-3" key={item.id}>
|
|
<div className="mb-3" key={item.id}>
|
|
|
- <ServiceLogItem item={item} />
|
|
|
|
|
|
|
+ <ServiceLogItem item={item} logType={ServiceLogType.CLIENT} updatePayload={updatePayload} />
|
|
|
</div>
|
|
</div>
|
|
|
))}
|
|
))}
|
|
|
</div>
|
|
</div>
|