Commit b0263236 authored by 左玲玲's avatar 左玲玲 😬

设备供应商,设备台账,租赁合同

parent a94fe98c
...@@ -54,6 +54,8 @@ ...@@ -54,6 +54,8 @@
"browserslist": "^4.21.4", "browserslist": "^4.21.4",
"classnames": "^2.3.0", "classnames": "^2.3.0",
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",
"jszip": "^3.10.1",
"konva": "^9.2.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.29.4", "moment": "^2.29.4",
"omit.js": "^2.0.2", "omit.js": "^2.0.2",
...@@ -66,8 +68,10 @@ ...@@ -66,8 +68,10 @@
"react-dev-inspector": "^1.7.0", "react-dev-inspector": "^1.7.0",
"react-dom": "^17.0.0", "react-dom": "^17.0.0",
"react-helmet-async": "^1.2.0", "react-helmet-async": "^1.2.0",
"react-konva": "^18.2.10",
"react-resizable": "^3.0.4", "react-resizable": "^3.0.4",
"umi-request": "^1.4.0" "umi-request": "^1.4.0",
"use-image": "^1.1.1"
}, },
"devDependencies": { "devDependencies": {
"@ant-design/pro-cli": "^2.1.0", "@ant-design/pro-cli": "^2.1.0",
......
...@@ -72,13 +72,11 @@ function DetailPro(props) { ...@@ -72,13 +72,11 @@ function DetailPro(props) {
: {}; : {};
if (it.valueType == 'split') { if (it.valueType == 'split') {
return ( return (
<> <Col span={24} key={i}>
<Col span={24}> <div className={styles.title} style={{ borderWidth: i == 0 ? 0 : 1, '--before': !(it.title || it?.render) ? 'none' : 'block', '--after': !(it.title || it?.render) ? '100%' : 'calc(100% - 160px)', '--padb': !(it.title || it?.render) ? '20px' : '0' }}>
<div className={styles.title} style={{ borderWidth: i == 0 ? 0 : 1, '--before': !(it.title || it?.render) ? 'none' : 'block', '--after': !(it.title || it?.render) ? '100%' : 'calc(100% - 160px)','--padb':!(it.title || it?.render) ? '20px' : '0' }}> {it?.render ? it?.render?.(curitem[it.dataIndex], curitem) : it.title}
{it?.render ? it?.render?.(curitem[it.dataIndex], curitem) : it.title} </div>
</div> </Col>
</Col>
</>
); );
} }
return ( return (
......
import React from 'react';
import { Group, Image, Layer, Rect, Stage, Text } from 'react-konva';
import useImage from 'use-image';
const Imagecanvas = (props) => {
const text = {
text: '左玲玲智能设备01',
x: 50,
y: 180,
width: 150,
align: 'center',
fontSize: 14,
fill: '#FFFFFF',
};
return <Stage width={200} height={200}>
<Layer>
<Image url={require('@/assets/logo.png')} width={150} height={150} />
<Text {...text} />
<Text {...text} />
</Layer>
</Stage>
}
export default Imagecanvas;
\ No newline at end of file
...@@ -154,7 +154,7 @@ function getcolumns(setdrawer, drawer) { ...@@ -154,7 +154,7 @@ function getcolumns(setdrawer, drawer) {
sm: 6, sm: 6,
}, },
options: { options: {
path: '/', path: '/lease/umLeaseLedger/queryLedgerSelectbox',
params: {}, params: {},
}, },
}, },
......
...@@ -9,6 +9,7 @@ import * as React from 'react'; ...@@ -9,6 +9,7 @@ import * as React from 'react';
import { useState, useMemo, useRef } from 'react'; import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro'; import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable'; import AutoTable from '@/components/AutoTable';
import FormTable from "@/components/AutoTable/mtable";
import PremButton from '@/components/PremButton'; import PremButton from '@/components/PremButton';
import getcolumns from './columns'; import getcolumns from './columns';
import { useRequest } from 'ahooks'; import { useRequest } from 'ahooks';
...@@ -37,10 +38,104 @@ function Contract(props) { ...@@ -37,10 +38,104 @@ function Contract(props) {
} }
}, },
}); });
const rightExtra = (text, row, _, action) => {
//1未开始 2进行中 3已到期 4待押金退还
let ifs = row.status == 1,
ifsa = row.status == 2,
ifsb = row.status == 3,
ifsc = row.status == 4;
const edit = (text, row, _, action) => { return [
return ( ifs && <PremButton
<PremButton key='start'
btn={{
size: 'small',
onClick: () => {
setdrawer((s) => ({
...s,
open: true,
item: row,
val: 'start',
title: '开始',
fields: [
{
title: '合同起租日',
dataIndex: 'startLeaseDate',
key: 'startLeaseDate',
valueType: 'date',
formItemProps: { rules: [{ required: true, message: '此项为必填项' }] },
colProps: { span: 8 },
},
{
title: '合同终止日',
dataIndex: 'endLeaseDate',
key: 'endLeaseDate',
valueType: 'date',
fieldProps: {
disabled: true
},
colProps: { span: 8 },
formItemProps: { rules: [{ required: true, message: '此项为必填项' }] },
},
{
title: '第一期回款形式',
dataIndex: 'tripBear',
key: 'tripBear',
valueType: 'select',
options: [
{ label: '现金', value: 1 },
{ label: '银行承兑', value: 2 },
],
colProps: { span: 8 },
formItemProps: { rules: [{ required: true, message: '此项为必填项' }] },
},
{
title: '租赁设备',
dataIndex: 'list',
key: 'list',
render: (_, row) => {
return <div>11</div>
}
},
{
title: '起租单上传',
dataIndex: 'startLeaseFileList',
key: 'startLeaseFileList',
valueType: 'uploadBtn',
fieldProps: {
limit: 1,
},
colProps: { span: 24 },
},
{
title: '发用单文件',
dataIndex: 'hairuseFileList',
key: 'hairuseFileList',
valueType: 'uploadBtn',
fieldProps: {
limit: 1,
},
colProps: { span: 24 },
},
{
title: '租赁物交付确认单文件',
dataIndex: 'leaseDeliverFileList',
key: 'leaseDeliverFileList',
valueType: 'uploadBtn',
fieldProps: {
limit: 1,
},
colProps: { span: 24 },
}
]
}));
},
}}
>
开始
</PremButton>,
ifs && <PremButton
key='edit'
btn={{ btn={{
size: 'small', size: 'small',
onClick: () => { onClick: () => {
...@@ -48,41 +143,66 @@ function Contract(props) { ...@@ -48,41 +143,66 @@ function Contract(props) {
...s, ...s,
open: true, open: true,
item: row, item: row,
title: '编辑',
val: 'edit', val: 'edit',
title: '编辑'
})); }));
}, },
}} }}
> >
编辑 修改
</PremButton> </PremButton>,
); ifs && <PremButton
}; key='remove'
pop={{
title: '是否删除该合同?',
okText: '确认',
cancelText: '取消',
onConfirm: async () => {
runAsync({ url: pathconfig.delete, params: { id: row.id, } });
},
}}
btn={{
size: 'small',
type: 'danger',
}}
>
删除
</PremButton>,
ifsa && <PremButton
key='out'
btn={{
size: 'small',
onClick: () => {
const remove = (text, row, _, action) => { },
if (row?.status == 1) { }}
return ( >
<PremButton 退租
pop={{ </PremButton>,
title: '是否删除?', ifsb && <PremButton
okText: '确认', key='break'
cancelText: '取消', btn={{
onConfirm: () => { size: 'small',
run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } }); onClick: () => {
},
}} },
btn={{ }}
size: 'small', >
type: 'danger', 结束
}} </PremButton>,
> ifsc && <PremButton
删除 key='handle'
</PremButton> btn={{
); size: 'small',
} else { onClick: () => {
return <></>;
} },
}; }}
>
处理
</PremButton>
]
}
const columns = useMemo(() => { const columns = useMemo(() => {
let defcolumn = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.columns; let defcolumn = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.columns;
...@@ -92,7 +212,7 @@ function Contract(props) { ...@@ -92,7 +212,7 @@ function Contract(props) {
title: '操作', title: '操作',
valueType: 'option', valueType: 'option',
width: 150, width: 150,
render: (text, row, _, action) => [], render: (text, row, _, action) => rightExtra(text, row, _, action),
}); });
} else { } else {
return defcolumn; return defcolumn;
...@@ -105,14 +225,16 @@ function Contract(props) { ...@@ -105,14 +225,16 @@ function Contract(props) {
}, [activeTabKey]); }, [activeTabKey]);
const calculateContractAmount = (list = [], month = 0) => { const calculateContractAmount = (list = [], month = 0) => {
const sum = list?.reduce((prev, next) => { const sum = list?.reduce((prev, next) => {
return (prev * 100 + next * 100) / 100; if (Number(prev + next)) {
return Number((prev + next).toFixed(2));
}
}, 0); }, 0);
camount(month == 0 || month ? (sum * 100) * month / 100 : 0); camount(month == 0 || month ? ((sum ?? 0) * 100) * month / 100 : 0);
}; };
const changeList = (list = []) => { const changeList = (list = []) => {
list.forEach(it => { list.forEach(it => {
if (it.unitPrice && it.zxPrice) { if (it.unitPrice && it.zxPrice) {
it.rebatePrice = ((it.unitPrice ?? 0) * 100 - (it.zxPrice ?? 0) * 100) / 100; it.rebatePrice = Number(((it.unitPrice ?? 0) - (it.zxPrice ?? 0)).toFixed(2))
} else { } else {
it.rebatePrice = '' it.rebatePrice = ''
} }
...@@ -164,7 +286,7 @@ function Contract(props) { ...@@ -164,7 +286,7 @@ function Contract(props) {
}} }}
/> />
<DrawerPro <DrawerPro
fields={columns} fields={(drawer.val != 'add' && drawer.val != 'edit') ? drawer.fields : columns}
detailpath={pathconfig?.detail || null} detailpath={pathconfig?.detail || null}
detailData={drawer?.item} detailData={drawer?.item}
defaultFormValue={drawer?.item} defaultFormValue={drawer?.item}
...@@ -180,11 +302,11 @@ function Contract(props) { ...@@ -180,11 +302,11 @@ function Contract(props) {
{...drawer} {...drawer}
onFinish={(vals) => { onFinish={(vals) => {
console.log(vals); console.log(vals);
// if (drawer?.val == 'add') { if (drawer?.val == 'add') {
// run({ url: pathconfig?.add || '/add', params: { ...vals } }); run({ url: pathconfig?.add, params: { ...vals, amount } });
// } else if (drawer?.val == 'edit') { } else if (drawer?.val == 'edit') {
// run({ url: pathconfig?.edit || '/edit', params: { ...vals, id: drawer?.item?.id } }); run({ url: pathconfig?.edit, params: { ...vals, id: drawer?.item?.id, amount } });
// } }
}} }}
onValuesChange={(changedValues, allValues) => { onValuesChange={(changedValues, allValues) => {
for (let i in changedValues) { for (let i in changedValues) {
......
...@@ -119,8 +119,23 @@ function getcolumns(setdrawer, activeKey) { ...@@ -119,8 +119,23 @@ function getcolumns(setdrawer, activeKey) {
{ label: '未绑定', value: '6' }, { label: '未绑定', value: '6' },
{ label: '绑定', value: '7' }, { label: '绑定', value: '7' },
], ],
fixed: 'right', hideInSearch: true,
span: 2 hideInForm: true,
hideInTable: true
},
{
title: '采集状态',
dataIndex: 'collectStatusName',
key: 'collectStatus',
hideInForm: true,
valueType: 'select',
options: [
{ label: '工作', value: '1' },
{ label: '待机', value: '2' },
{ label: '关机', value: '3' },
{ label: '报警', value: '4' }
],
fixed: 'right'
}, },
{ {
title: '所属信息', title: '所属信息',
......
...@@ -17,7 +17,8 @@ const Devicedata = () => { ...@@ -17,7 +17,8 @@ const Devicedata = () => {
}), }),
[extraparams, setextraparams] = useState({}), [extraparams, setextraparams] = useState({}),
[activeKey, catk] = useState('item-1'), [activeKey, catk] = useState('item-1'),
[item2extraparams, citp] = useState({}); [item2extraparams, citp] = useState({}),
[searchParams, csp] = useState({});
const { run, loading, runAsync } = useRequest(doFetch, { const { run, loading, runAsync } = useRequest(doFetch, {
manual: true, manual: true,
onSuccess: (res, params) => { onSuccess: (res, params) => {
...@@ -29,7 +30,13 @@ const Devicedata = () => { ...@@ -29,7 +30,13 @@ const Devicedata = () => {
})); }));
} }
}, },
}); }),
tableData = useRequest(async () => {
let res = await doFetch({ url: '/lease/umLeaseLedger/queryLeaseList', params: { ...searchParams, ...extraparams } });
return res?.data?.dataList ?? [];
}, {
refreshDeps: [extraparams, searchParams]
})
const columns = useMemo(() => { const columns = useMemo(() => {
let defcolumn = getcolumns(setdrawer, activeKey)?.columns ?? []; let defcolumn = getcolumns(setdrawer, activeKey)?.columns ?? [];
return defcolumn; return defcolumn;
...@@ -42,17 +49,18 @@ const Devicedata = () => { ...@@ -42,17 +49,18 @@ const Devicedata = () => {
key: 'item-1', key: 'item-1',
children: <AutoTable children: <AutoTable
columns={columns} columns={columns}
path='/lease/umLeaseLedger/queryLeaseList' dataSource={tableData?.data ?? []}
actionRef={actionRef} actionRef={actionRef}
resizeable={false} resizeable={false}
bordered={false} bordered={false}
x={1500} x={1500}
formRef={formRef} formRef={formRef}
dataSourceFieldsChange={(val) => { dataSourceFieldsChange={(val) => {
console.log(val); csp({ ...val })
}} }}
extraparams={extraparams} extraparams={extraparams}
pagination={false} pagination={false}
toolBarRender={true}
/> />
}, },
{ {
...@@ -61,7 +69,7 @@ const Devicedata = () => { ...@@ -61,7 +69,7 @@ const Devicedata = () => {
children: <Account boxRef={boxRef} extraparams={item2extraparams} /> children: <Account boxRef={boxRef} extraparams={item2extraparams} />
} }
] ]
}, [extraparams]); }, [extraparams, tableData?.data]);
const items = useMemo(() => { const items = useMemo(() => {
if (drawer.val == 'only') { if (drawer.val == 'only') {
if (activeKey == 'item-1') { if (activeKey == 'item-1') {
......
import React, { useMemo } from 'react'; import React, { useMemo } from 'react';
import AutoTable from '@/components/AutoTable/mtable'; import AutoTable from '@/components/AutoTable/mtable';
const Resume = ({ setdrawer, drawer }) => { const Resume = ({ setdrawer, drawer, url }) => {
const columns = [ const columns = [
{ {
title: '设备编号', title: '设备编号',
...@@ -28,7 +28,7 @@ const Resume = ({ setdrawer, drawer }) => { ...@@ -28,7 +28,7 @@ const Resume = ({ setdrawer, drawer }) => {
return ( return (
<AutoTable <AutoTable
columns={columns} columns={columns}
path={'/lease/umLeaseLedgerEquipment/queryList'} path={url}
resizeable={false} resizeable={false}
pageextra="none" pageextra="none"
bordered={false} bordered={false}
......
...@@ -101,7 +101,8 @@ function getcolumns(setdrawer) { ...@@ -101,7 +101,8 @@ function getcolumns(setdrawer) {
{ label: '未绑定', value: '6' }, { label: '未绑定', value: '6' },
{ label: '绑定', value: '7' }, { label: '绑定', value: '7' },
], ],
fixed: 'right' fixed: 'right',
width: 80
}, },
{ {
title: '所属信息', title: '所属信息',
......
...@@ -3,11 +3,11 @@ import DrawerPro from '@/components/DrawerPro'; ...@@ -3,11 +3,11 @@ import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable'; import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton'; import PremButton from '@/components/PremButton';
import getcolumns from './columns'; import getcolumns from './columns';
import { doFetch } from '@/utils/doFetch'; import { doFetch, exportFetch } from '@/utils/doFetch';
import { useRequest, useAsyncEffect } from "ahooks"; import { useRequest, useAsyncEffect } from "ahooks";
import styles from "./index.less"; import styles from "./index.less";
import TreeRender from '@/components/TreeRender'; import TreeRender from '@/components/TreeRender';
import { Divider, Tabs } from "antd"; import { Divider, Tabs, message } from "antd";
import Leaseresume from "./Leaseresume"; import Leaseresume from "./Leaseresume";
import Operatinghistory from "./Operatinghistory"; import Operatinghistory from "./Operatinghistory";
import Resume from "./Resume"; import Resume from "./Resume";
...@@ -21,7 +21,8 @@ const Ledger = () => { ...@@ -21,7 +21,8 @@ const Ledger = () => {
supplier: {}, supplier: {},
factory: {} factory: {}
}), }),
[extraparams, setextraparams] = useState({}); [extraparams, setextraparams] = useState({}),
[searchParams, csp] = useState({});
const { run, loading, runAsync } = useRequest(doFetch, { const { run, loading, runAsync } = useRequest(doFetch, {
manual: true, manual: true,
onSuccess: (res, params) => { onSuccess: (res, params) => {
...@@ -122,20 +123,42 @@ const Ledger = () => { ...@@ -122,20 +123,42 @@ const Ledger = () => {
btn={{ btn={{
size: 'small', size: 'small',
onClick: () => { onClick: () => {
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: '此项为必填项' }] },
}
]
}));
}, },
}} }}
> >
绑定 绑定
</PremButton>, </PremButton>,
devicetype2 && <PremButton devicetype2 && ifsf && <PremButton
key='unbind' key='unbind'
pop={{ pop={{
title: '是否解绑?', title: '是否解绑?',
okText: '确认', okText: '确认',
cancelText: '取消', cancelText: '取消',
onConfirm: async () => { onConfirm: async () => {
runAsync({ url: "/lease/umLeaseLedger/unBingDing", params: { id: row.id } });
}, },
}} }}
btn={{ btn={{
...@@ -151,7 +174,7 @@ const Ledger = () => { ...@@ -151,7 +174,7 @@ const Ledger = () => {
okText: '确认', okText: '确认',
cancelText: '取消', cancelText: '取消',
onConfirm: async () => { onConfirm: async () => {
runAsync({ url: "/lease/umLeaseLedger/scrap", params: { id: row.id } });
}, },
}} }}
btn={{ btn={{
...@@ -164,16 +187,16 @@ const Ledger = () => { ...@@ -164,16 +187,16 @@ const Ledger = () => {
ifs && devicetype1 && intelligentUnit && <PremButton ifs && devicetype1 && intelligentUnit && <PremButton
key='Scrapped2' key='Scrapped2'
pop={{ pop={{
title: <div>该设备有关联智能单元,请确认是一同报废或释放出关联智能单元?<br /> title: <div>该设备有关联智能单元<br />
一同报废-将关联智能单元也置为报废状态,<br /> 请确认是一同报废或<br />
释放-将关联智能单元的绑定解除且清空设备中关联智能单元的信息</div>, 释放出关联智能单元?</div>,
okText: '释放', okText: '释放',
cancelText: '一同报废', cancelText: '一同报废',
onConfirm: async () => { onConfirm: async () => {
runAsync({ url: "/lease/umLeaseLedger/scrapSubmit", params: { flag: 2, id: row.id } });
}, },
onCancel: async () => { onCancel: async () => {
runAsync({ url: "/lease/umLeaseLedger/scrapSubmit", params: { flag: 1, id: row.id } });
}, },
}} }}
btn={{ btn={{
...@@ -190,7 +213,7 @@ const Ledger = () => { ...@@ -190,7 +213,7 @@ const Ledger = () => {
okText: '确认', okText: '确认',
cancelText: '取消', cancelText: '取消',
onConfirm: async () => { onConfirm: async () => {
runAsync({ url: "/lease/umLeaseLedger/leaveUnused", params: { id: row.id, } });
}, },
}} }}
btn={{ btn={{
...@@ -206,7 +229,7 @@ const Ledger = () => { ...@@ -206,7 +229,7 @@ const Ledger = () => {
okText: '确认', okText: '确认',
cancelText: '取消', cancelText: '取消',
onConfirm: async () => { onConfirm: async () => {
runAsync({ url: pathconfig.delete, params: { id: row.id, } });
}, },
}} }}
btn={{ btn={{
...@@ -223,14 +246,14 @@ const Ledger = () => { ...@@ -223,14 +246,14 @@ const Ledger = () => {
if (drawer.item.equipmentType == 1) { if (drawer.item.equipmentType == 1) {
return [ return [
{ label: '基础信息', key: 'item-1', children: <Basemsg drawer={drawer} /> }, { label: '基础信息', key: 'item-1', children: <Basemsg drawer={drawer} /> },
{ label: '绑定履历', key: 'item-2', children: <Resume drawer={drawer} /> }, { label: '绑定履历', key: 'item-2', children: <Resume drawer={drawer} url='/lease/umLeaseLedgerEquipment/queryList' /> },
{ label: '租赁履历', key: 'item-3', children: <Leaseresume drawer={drawer} /> }, { label: '租赁履历', key: 'item-3', children: <Leaseresume drawer={drawer} /> },
{ label: '操作履历', key: 'item-4', children: <Operatinghistory drawer={drawer} /> } { label: '操作履历', key: 'item-4', children: <Operatinghistory drawer={drawer} /> }
] ]
} else { } else {
return [ return [
{ label: '基础信息', key: 'item-1', children: <Basemsg drawer={drawer} /> }, { label: '基础信息', key: 'item-1', children: <Basemsg drawer={drawer} /> },
{ label: '绑定履历', key: 'item-2', children: <Resume drawer={drawer} /> }, { label: '绑定履历', key: 'item-2', children: <Resume drawer={drawer} url='/lease/umLeaseLedgerEquipment/queryListByLeaseLedgerId' /> },
{ label: '操作履历', key: 'item-4', children: <Operatinghistory drawer={drawer} /> } { label: '操作履历', key: 'item-4', children: <Operatinghistory drawer={drawer} /> }
] ]
} }
...@@ -262,8 +285,9 @@ const Ledger = () => { ...@@ -262,8 +285,9 @@ const Ledger = () => {
key='export' key='export'
btn={{ btn={{
type: 'default', type: 'default',
onClick: () => { onClick: async () => {
message.warning('导出中,请稍后');
await exportFetch({ url: '/lease/umLeaseLedger/exportExcel', params: { ...searchParams } });
}, },
style: { margin: '0 12px' } style: { margin: '0 12px' }
}} }}
...@@ -320,8 +344,11 @@ const Ledger = () => { ...@@ -320,8 +344,11 @@ const Ledger = () => {
resizeable={false} resizeable={false}
pageextra={rightExtra} pageextra={rightExtra}
bordered={false} bordered={false}
x={1500} x={2200}
extraparams={extraparams} extraparams={extraparams}
dataSourceFieldsChange={(val) => {
csp(val)
}}
/> />
</div> </div>
</div> </div>
...@@ -329,7 +356,7 @@ const Ledger = () => { ...@@ -329,7 +356,7 @@ const Ledger = () => {
<DrawerPro <DrawerPro
{...drawer} {...drawer}
fields={columns} fields={drawer.val == 'bind' ? drawer.fields : columns}
detailpath={drawer.val == 'add' || !drawer?.item?.id ? '' : pathconfig?.detail} detailpath={drawer.val == 'add' || !drawer?.item?.id ? '' : pathconfig?.detail}
params={drawer.val == 'add' ? {} : { id: drawer?.item?.id }} params={drawer.val == 'add' ? {} : { id: drawer?.item?.id }}
defaultFormValue={drawer?.item ?? {}} defaultFormValue={drawer?.item ?? {}}
...@@ -349,6 +376,8 @@ const Ledger = () => { ...@@ -349,6 +376,8 @@ const Ledger = () => {
url: pathconfig?.edit, url: pathconfig?.edit,
params: { ...newParams, id: drawer?.item?.id }, params: { ...newParams, id: drawer?.item?.id },
}); });
} else if (drawer.val == 'bind') {
await runAsync({ url: "/lease/umLeaseLedger/bound", params: { ...newParams, id: drawer?.item?.id } });
} }
}} }}
> >
......
...@@ -84,15 +84,15 @@ function getcolumns(ifs, actionRef) { ...@@ -84,15 +84,15 @@ function getcolumns(ifs, actionRef) {
}, },
{ {
title: '设备总数(租赁)', title: '设备总数(租赁)',
dataIndex: 'address1', dataIndex: 'equipmentTotalNum',
key: 'address1', key: 'equipmentTotalNum',
search: false, search: false,
hideInForm: true hideInForm: true
}, },
{ {
title: '智能单元总数(租赁)', title: '智能单元总数(租赁)',
dataIndex: 'address2', dataIndex: 'agentTotalNum',
key: 'address2', key: 'agentTotalNum',
search: false, search: false,
hideInForm: true hideInForm: true
}, },
......
...@@ -19,9 +19,16 @@ export async function doFetch({ url, params }) { ...@@ -19,9 +19,16 @@ export async function doFetch({ url, params }) {
} }
export async function postFetch({ url, params }) { export async function postFetch({ url, params }) {
return request(url, { return request(defaultSetting.proxypath + url, {
method: 'post',
data: params,
});
}
export async function exportFetch({ url, params }) {
return request(defaultSetting.proxypath + url, {
method: 'post', method: 'post',
data: params, data: params,
responseType: 'blob'
}); });
} }
...@@ -33,7 +40,7 @@ export async function getFetch({ url, params }) { ...@@ -33,7 +40,7 @@ export async function getFetch({ url, params }) {
} }
export async function formFetch({ url, params }) { export async function formFetch({ url, params }) {
return request(url, { return request(defaultSetting.proxypath + url, {
method: 'post', method: 'post',
data: params, data: params,
type: 'form', type: 'form',
......
...@@ -3015,6 +3015,13 @@ ...@@ -3015,6 +3015,13 @@
dependencies: dependencies:
"@types/react" "*" "@types/react" "*"
"@types/react-reconciler@^0.28.0", "@types/react-reconciler@^0.28.2":
version "0.28.4"
resolved "https://registry.npmmirror.com/@types/react-reconciler/-/react-reconciler-0.28.4.tgz#c2c06f6d42f055972290eecebb87b10d0ac66e0e"
integrity sha512-Xd55E2aLI9Q/ikDQEmfRzIwYJs4oO0h9ZHA3FZDakzt1WR6JMZcpqtCZlF97I72KVjoY4rHXU5TfvkRDOyr/rg==
dependencies:
"@types/react" "*"
"@types/react-redux@^7.1.20": "@types/react-redux@^7.1.20":
version "7.1.25" version "7.1.25"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/react-redux/-/react-redux-7.1.25.tgz#de841631205b24f9dfb4967dd4a7901e048f9a88" resolved "https://mirrors.huaweicloud.com/repository/npm/@types/react-redux/-/react-redux-7.1.25.tgz#de841631205b24f9dfb4967dd4a7901e048f9a88"
...@@ -8538,6 +8545,11 @@ image-size@~0.5.0: ...@@ -8538,6 +8545,11 @@ image-size@~0.5.0:
resolved "https://mirrors.huaweicloud.com/repository/npm/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" resolved "https://mirrors.huaweicloud.com/repository/npm/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
immediate@~3.0.5:
version "3.0.6"
resolved "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
immer@^8.0.4: immer@^8.0.4:
version "8.0.4" version "8.0.4"
resolved "https://mirrors.huaweicloud.com/repository/npm/immer/-/immer-8.0.4.tgz#3a21605a4e2dded852fb2afd208ad50969737b7a" resolved "https://mirrors.huaweicloud.com/repository/npm/immer/-/immer-8.0.4.tgz#3a21605a4e2dded852fb2afd208ad50969737b7a"
...@@ -9235,6 +9247,13 @@ istanbul-lib-instrument@^5.0.4: ...@@ -9235,6 +9247,13 @@ istanbul-lib-instrument@^5.0.4:
istanbul-lib-coverage "^3.2.0" istanbul-lib-coverage "^3.2.0"
semver "^6.3.0" semver "^6.3.0"
its-fine@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/its-fine/-/its-fine-1.1.1.tgz#e74b93fddd487441f978a50f64f0f5af4d2fc38e"
integrity sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw==
dependencies:
"@types/react-reconciler" "^0.28.0"
jest-diff@^26.0.0: jest-diff@^26.0.0:
version "26.6.2" version "26.6.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" resolved "https://mirrors.huaweicloud.com/repository/npm/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"
...@@ -9508,6 +9527,16 @@ jsx-ast-utils@^2.2.1: ...@@ -9508,6 +9527,16 @@ jsx-ast-utils@^2.2.1:
array-includes "^3.1.5" array-includes "^3.1.5"
object.assign "^4.1.3" object.assign "^4.1.3"
jszip@^3.10.1:
version "3.10.1"
resolved "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2"
integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==
dependencies:
lie "~3.3.0"
pako "~1.0.2"
readable-stream "~2.3.6"
setimmediate "^1.0.5"
keyv@^3.0.0: keyv@^3.0.0:
version "3.1.0" version "3.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" resolved "https://mirrors.huaweicloud.com/repository/npm/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
...@@ -9559,6 +9588,11 @@ kolorist@^1.6.0: ...@@ -9559,6 +9588,11 @@ kolorist@^1.6.0:
resolved "https://mirrors.huaweicloud.com/repository/npm/kolorist/-/kolorist-1.6.0.tgz#f43ac794305b30032a5bedcae7799d0f91d2ff36" resolved "https://mirrors.huaweicloud.com/repository/npm/kolorist/-/kolorist-1.6.0.tgz#f43ac794305b30032a5bedcae7799d0f91d2ff36"
integrity sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ== integrity sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==
konva@^9.2.0:
version "9.2.0"
resolved "https://registry.npmmirror.com/konva/-/konva-9.2.0.tgz#3739e539724b0e6b76d697a322efdaa01baa1508"
integrity sha512-+woI76Sk+VFVl9z7zPkuTnN2zFpEYg27YWz8BCdQXpt5IS3pdnSPAPQVPPMidcbDi9/G5b/IOIp35/KqMGiYPA==
latest-version@^5.0.0: latest-version@^5.0.0:
version "5.1.0" version "5.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" resolved "https://mirrors.huaweicloud.com/repository/npm/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
...@@ -9598,6 +9632,13 @@ levn@^0.4.1: ...@@ -9598,6 +9632,13 @@ levn@^0.4.1:
prelude-ls "^1.2.1" prelude-ls "^1.2.1"
type-check "~0.4.0" type-check "~0.4.0"
lie@~3.3.0:
version "3.3.0"
resolved "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
dependencies:
immediate "~3.0.5"
lines-and-columns@^1.1.6: lines-and-columns@^1.1.6:
version "1.2.4" version "1.2.4"
resolved "https://mirrors.huaweicloud.com/repository/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" resolved "https://mirrors.huaweicloud.com/repository/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
...@@ -10830,7 +10871,7 @@ pako@^0.2.6: ...@@ -10830,7 +10871,7 @@ pako@^0.2.6:
resolved "https://mirrors.huaweicloud.com/repository/npm/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" resolved "https://mirrors.huaweicloud.com/repository/npm/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==
pako@~1.0.5: pako@~1.0.2, pako@~1.0.5:
version "1.0.11" version "1.0.11"
resolved "https://mirrors.huaweicloud.com/repository/npm/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" resolved "https://mirrors.huaweicloud.com/repository/npm/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
...@@ -12499,6 +12540,16 @@ react-is@^18.0.0: ...@@ -12499,6 +12540,16 @@ react-is@^18.0.0:
resolved "https://mirrors.huaweicloud.com/repository/npm/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" resolved "https://mirrors.huaweicloud.com/repository/npm/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
react-konva@^18.2.10:
version "18.2.10"
resolved "https://registry.npmmirror.com/react-konva/-/react-konva-18.2.10.tgz#5b5edc5e9ed452755d21babc353747828868decc"
integrity sha512-ohcX1BJINL43m4ynjZ24MxFI1syjBdrXhqVxYVDw2rKgr3yuS0x/6m1Y2Z4sl4T/gKhfreBx8KHisd0XC6OT1g==
dependencies:
"@types/react-reconciler" "^0.28.2"
its-fine "^1.1.1"
react-reconciler "~0.29.0"
scheduler "^0.23.0"
react-lifecycles-compat@^3.0.4: react-lifecycles-compat@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://mirrors.huaweicloud.com/repository/npm/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" resolved "https://mirrors.huaweicloud.com/repository/npm/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
...@@ -12526,6 +12577,14 @@ react-node-key@^0.4.0: ...@@ -12526,6 +12577,14 @@ react-node-key@^0.4.0:
jsx-ast-utils "^2.2.1" jsx-ast-utils "^2.2.1"
szfe-tools "^0.0.0-beta.7" szfe-tools "^0.0.0-beta.7"
react-reconciler@~0.29.0:
version "0.29.0"
resolved "https://registry.npmmirror.com/react-reconciler/-/react-reconciler-0.29.0.tgz#ee769bd362915076753f3845822f2d1046603de7"
integrity sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==
dependencies:
loose-envify "^1.1.0"
scheduler "^0.23.0"
react-redux@^7.2.6: react-redux@^7.2.6:
version "7.2.9" version "7.2.9"
resolved "https://mirrors.huaweicloud.com/repository/npm/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d" resolved "https://mirrors.huaweicloud.com/repository/npm/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d"
...@@ -12688,6 +12747,19 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable ...@@ -12688,6 +12747,19 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable
string_decoder "^1.1.1" string_decoder "^1.1.1"
util-deprecate "^1.0.1" util-deprecate "^1.0.1"
readable-stream@~2.3.6:
version "2.3.8"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readdirp@^3.1.1, readdirp@~3.6.0: readdirp@^3.1.1, readdirp@~3.6.0:
version "3.6.0" version "3.6.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" resolved "https://mirrors.huaweicloud.com/repository/npm/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
...@@ -13323,6 +13395,13 @@ scheduler@^0.22.0: ...@@ -13323,6 +13395,13 @@ scheduler@^0.22.0:
dependencies: dependencies:
loose-envify "^1.1.0" loose-envify "^1.1.0"
scheduler@^0.23.0:
version "0.23.0"
resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
dependencies:
loose-envify "^1.1.0"
schema-utils@2.7.0: schema-utils@2.7.0:
version "2.7.0" version "2.7.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" resolved "https://mirrors.huaweicloud.com/repository/npm/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
...@@ -14974,6 +15053,11 @@ url@^0.11.0: ...@@ -14974,6 +15053,11 @@ url@^0.11.0:
punycode "1.3.2" punycode "1.3.2"
querystring "0.2.0" querystring "0.2.0"
use-image@^1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/use-image/-/use-image-1.1.1.tgz#bdd3f2e1718393ffc0e56136f993467103d9d2df"
integrity sha512-n4YO2k8AJG/BcDtxmBx8Aa+47kxY5m335dJiCQA5tTeVU4XdhrhqR6wT0WISRXwdMEOv5CSjqekDZkEMiiWaYQ==
use-isomorphic-layout-effect@^1.1.1: use-isomorphic-layout-effect@^1.1.1:
version "1.1.2" version "1.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" resolved "https://mirrors.huaweicloud.com/repository/npm/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment