import React, { useState, useMemo, useRef, useEffect } from 'react'; import DrawerPro from '@/components/DrawerPro'; import AutoTable from '@/components/AutoTable'; import PremButton from '@/components/PremButton'; import getcolumns from './columns'; import { doFetch, exportFetch } from '@/utils/doFetch'; import { useRequest, useAsyncEffect } from "ahooks"; import styles from "./index.less"; import TreeRender from '@/components/TreeRender'; import { Divider, Tabs, message } from "antd"; import Leaseresume from "./Leaseresume"; import Operatinghistory from "./Operatinghistory"; import Resume from "./Resume"; import Basemsg from "./Basemsg"; import setAllCanvas from "@/utils/drawimage"//导出二维码 const Ledger = () => { let actionRef = useRef(); const [drawer, setdrawer] = useState({ open: false, }), [defaultmsg, cds] = useState({ supplier: {}, factory: {} }), [extraparams, setextraparams] = useState({}), [searchParams, csp] = useState({}); const { run, loading, runAsync } = useRequest(doFetch, { manual: true, onSuccess: (res, params) => { if (res?.code == "0000") { actionRef?.current?.reload(); setdrawer((s) => ({ ...s, open: false, })); } }, }); const columns = useMemo(() => { let defcolumn = getcolumns(setdrawer)?.columns ?? []; return defcolumn.concat({ title: '操作', valueType: 'option', width: 190, render: (text, row, _, action) => getExtra(text, row, _, action), colProps: { fixed: 'right' } }); }, []); const pathconfig = useMemo(() => { let pathconf = getcolumns(setdrawer)?.pathconfig ?? {}; return pathconf; }, []); useAsyncEffect(async () => { let res = await doFetch({ url: "/lease/umEquipmentSupplier/queryByDefault", params: {} }), res2 = await doFetch({ url: "/auth/sysFactory/queryByDefault", params: {} }); cds({ supplier: res?.data?.data ?? {}, factory: res2?.data?.data ?? {} }); }, []) const onselecteTree = (selectedKeys, e, alldata) => { let params = {}; if (selectedKeys.length) { switch (e.node.type) { case 1: params = { factoryId: e.node.key } break; case 2: params = { shopId: e.node.key } break; case 3: params = { sectionId: e.node.key } break; case 4: params = { productionLineId: e.node.key } break; default: params = {}; } } else { params = {} } setextraparams(params); }; const getExtra = (text, row, _, action) => { //0: 报废 1: 预占 2: 租赁 3: 销售 4: 闲置 5:待复检 6: 未绑定 7: 绑定 let ifsd = row.status == 0, ifsa = row.status == 1, ifsb = row.status == 2, ifsg = row.status == 3, ifs = row.status == 4, ifsc = row.status == 5, ifse = row.status == 6, ifsf = row.status == 7, devicetype1 = row.equipmentType == 1, devicetype2 = row.equipmentType == 2, intelligentUnit = row.ledgerEquipment; return [ (ifsd || (devicetype1 && ifs) || (devicetype2 && ifse)) && { setdrawer((s) => ({ ...s, open: true, item: row, val: 'edit', title: '编辑' })); }, }} > 修改 , devicetype1 && { setdrawer((s) => ({ ...s, open: true, item: row, val: 'bind', title: '绑定', fields: [ { title: '关联智能单元', dataIndex: 'ledgerEquipmentId', key: 'ledgerEquipmentId', valueType: 'select', options: { path: '/lease/umLeaseLedger/intelligentUnitSelectbox', params: { id: row.id } }, colProps: { span: 8 }, span: 3, fieldProps: { placeholder: '请选择', showSearch: true, }, formItemProps: { rules: [{ required: true, message: '此项为必填项' }] }, } ] })); }, }} > 绑定 , devicetype2 && ifsf && { runAsync({ url: "/lease/umLeaseLedger/unBingDing", params: { id: row.id } }); }, }} btn={{ size: 'small', }} > 解绑 , (ifs && !intelligentUnit || ifse) && { runAsync({ url: "/lease/umLeaseLedger/scrap", params: { id: row.id } }); }, }} btn={{ size: 'small', type: 'danger', }} > 报废 , ifs && devicetype1 && intelligentUnit && 该设备有关联智能单元
请确认是一同报废或
释放出关联智能单元?, okText: '释放', cancelText: '一同报废', onConfirm: async () => { runAsync({ url: "/lease/umLeaseLedger/scrapSubmit", params: { flag: 2, id: row.id } }); }, onCancel: async () => { runAsync({ url: "/lease/umLeaseLedger/scrapSubmit", params: { flag: 1, id: row.id } }); }, }} btn={{ size: 'small', type: 'danger', }} > 报废
, ifsc && { runAsync({ url: "/lease/umLeaseLedger/leaveUnused", params: { id: row.id, } }); }, }} btn={{ size: 'small', }} > 转闲置 , ifsd && { runAsync({ url: pathconfig.delete, params: { id: row.id, } }); }, }} btn={{ size: 'small', type: 'danger', }} > 删除 , ]; } const items = useMemo(() => { if (drawer.val == 'only') { if (drawer.item.equipmentType == 1) { return [ { label: '基础信息', key: 'item-1', children: }, { label: '绑定履历', key: 'item-2', children: }, { label: '租赁履历', key: 'item-3', children: }, { label: '操作履历', key: 'item-4', children: } ] } else { return [ { label: '基础信息', key: 'item-1', children: }, { label: '绑定履历', key: 'item-2', children: }, { label: '操作履历', key: 'item-4', children: } ] } } }, [drawer.val, drawer.item]); const rightExtra = () => { return [ { setdrawer((s) => ({ ...s, open: true, val: 'add', title: '新增', item: { factoryId: defaultmsg?.factory?.id, supplierId: defaultmsg?.supplier?.id } })); } }} > 新增 , { message.warning('导出中,请稍后'); await exportFetch({ url: '/lease/umLeaseLedger/exportExcel', params: { ...searchParams, ...extraparams } }); }, style: { margin: '0 12px' } }} > 导出 , { let res = await doFetch({ url: '/lease/umLeaseLedger/queryQrCode', params: { ...searchParams, ...extraparams } }); setAllCanvas(res?.data?.dataList ?? [], 20, 20); }, }} > 导出二维码 , { }, style: { marginLeft: 12 } }} > 状态查看 , ]; } return

租赁台账

{ csp(val) }} />
{ setdrawer((s) => ({ ...s, open: false, })); }} onFinish={async (vals) => { let newParams = JSON.parse(JSON.stringify(vals)); if (drawer?.val == "add") { await runAsync({ url: pathconfig?.add, params: { ...newParams } }); } else if (drawer?.val == "edit") { await runAsync({ url: pathconfig?.edit, params: { ...newParams, id: drawer?.item?.id }, }); } else if (drawer.val == 'bind') { await runAsync({ url: "/lease/umLeaseLedger/bound", params: { ...newParams, id: drawer?.item?.id } }); } }} >
} export default Ledger;