Commit c03fdab0 authored by wuhao's avatar wuhao 🎯

asder

parent f548e09d
......@@ -13,7 +13,7 @@ export default {
dev: {
[defaultSetting.proxypath]: {
// 要代理的地址
target: 'http://192.168.40.64:28001', //jf哥
target: 'http://192.168.40.64:28000', //jf哥
// target: 'http://192.168.40.203:8000', //dj哥
changeOrigin: true,
},
......
......@@ -12,6 +12,8 @@ function isString(obj) {
}
export default (props) => {
let { childposition } = props;
childposition = childposition ?? 'left';
const actionbtn = {
add: <PremButton {...props?.addconfig}>新增</PremButton>,
export: (
......@@ -58,14 +60,20 @@ export default (props) => {
children: (
<>
<div style={{ display: 'flex', width: '100%' }}>
{(props.childposition == 'left' || !props.childposition) && props.children}
<div style={{ flex: 1, overflow: 'hidden', paddingLeft: `${props.childposition == 'left' ? '15px' : '0'}` }}>
{props.childposition == 'top' && props.children}
{(childposition == 'left' || !childposition) && props.children}
<div
style={{
flex: 1,
overflow: 'hidden',
paddingLeft: `${childposition == 'left' && props.children ? '15px' : '0'}`,
}}
>
{childposition == 'top' && props.children}
<Mtable {...props} activeTabKey={null} />
</div>
{(props.childposition == 'right' || !props.childposition) && props.children}
{(childposition == 'right' || !childposition) && props.children}
</div>
{props.childposition == 'bottom' && props.children}
{childposition == 'bottom' && props.children}
</>
),
};
......@@ -77,14 +85,14 @@ export default (props) => {
{props.withCard === false ? (
<>
<div style={{ display: 'flex', width: '100%' }}>
{(props.childposition == 'left' || !props.childposition) && props.children}
{(childposition == 'left' || !childposition) && props.children}
<div style={{ flex: 1, width: '100%' }}>
{props.childposition == 'top' && props.children}
{childposition == 'top' && props.children}
<Mtable {...props} />
</div>
{(props.childposition == 'right' || !props.childposition) && props.children}
{(childposition == 'right' || !childposition) && props.children}
</div>
{props.childposition == 'bottom' && props.children}
{childposition == 'bottom' && props.children}
</>
) : !props.nocardtab ? (
<Card
......@@ -97,14 +105,20 @@ export default (props) => {
onTabChange={props.onTabChange}
>
<div style={{ display: 'flex', width: '100%' }}>
{(props.childposition == 'left' || !props.childposition) && props.children}
<div style={{ flex: 1, overflow: 'hidden', paddingLeft: `${props.childposition == 'left' ? '15px' : '0'}` }}>
{props.childposition == 'top' && props.children}
{(childposition == 'left' || !childposition) && props.children}
<div
style={{
flex: 1,
overflow: 'hidden',
paddingLeft: `${childposition == 'left' && props.children ? '15px' : '0'}`,
}}
>
{childposition == 'top' && props.children}
<Mtable {...props} />
</div>
{(props.childposition == 'right' || !props.childposition) && props.children}
{(childposition == 'right' || !childposition) && props.children}
</div>
{props.childposition == 'bottom' && props.children}
{childposition == 'bottom' && props.children}
</Card>
) : (
<div className="tabsTable">
......
......@@ -40,6 +40,7 @@ const Mtable = (props) => {
refreshDep, //依赖刷新 (已废弃)
getDefaultSelected, //存在默认选中向上返回选中值
resizeable = true,
dataSource,
} = props;
const actionRefs = actionRef ?? useRef(),
......@@ -345,10 +346,14 @@ const Mtable = (props) => {
},
}
: {};
const datas = dataSource ? { dataSource, toolBarRender: false } : { request };
return (
<ProTable
{...props}
{...components}
{...datas}
size={size}
onSubmit={(params) => {
////console.log(params, 'onSubmit');
......@@ -379,7 +384,6 @@ const Mtable = (props) => {
formRef={formRefs}
rowKey={rowKey ?? 'id'} //表格每行数据的key
dateFormatter="string"
request={request}
scroll={
x
? {
......@@ -387,17 +391,13 @@ const Mtable = (props) => {
}
: {}
}
pagination={
ifspagination
? false
: {
pagination={{
showTotal: (total, range) => <span>{total}</span>,
showQuickJumper: true,
showSizeChanger: true,
pageSizeOptions: [5, 10, 15, 30, 50, 100, 200],
defaultPageSize: pageSize || 15,
}
}
}}
search={{
filterType: 'light', //轻量模式
}}
......
......@@ -44,6 +44,13 @@ function DetailPro(props) {
} ?? {},
};
}
setcuritem({
...(res?.data?.data ?? {}),
});
return {
success: res?.code == '0000',
data: { ...(res?.data?.data ?? {}) },
};
},
};
}
......
......@@ -19,6 +19,7 @@ const EditTable = (props) => {
x, //横向滚动
refreshDep, //依赖刷新 (已废弃)
getDefaultSelected, //存在默认选中向上返回选中值
dataSource,
} = props;
const actionRefs = actionRef ?? useRef(),
......@@ -28,7 +29,12 @@ const EditTable = (props) => {
//调用接口
const request = async (params, sort, filter) => {
if (!path) return;
if (!path)
return {
data: dataSource ?? [],
success: true,
total: dataSource?.length ?? 0,
};
let newparams = {
...params,
...extraparams, //父组件传参
......
......@@ -1510,7 +1510,7 @@ function TableSelect({ item, value, onChange, params = {} }) {
}
/>
);
console.log(value);
const Todo = (
<EditTable
actionRef={actionRef}
......
......@@ -126,20 +126,36 @@ function InitForm(props) {
res?.data?.data[extendField]?.forEach?.((it) => {
obj[it?.fieldId] = it?.fieldRealValue;
});
console.log('dddddd', {
console.log({
...obj,
...defaultFormValue,
...(res?.data?.data ?? {}),
});
return {
...obj,
...defaultFormValue,
...(res?.data?.data ?? {}),
...relationSupplierList,
};
}
//反填参数 格式化
const relationSupplierList = res?.data?.data?.relationSupplierList
? {
relationSupplierList: res?.data?.data?.relationSupplierList?.map?.((it, i) => {
return {
...it,
id: it?.supplierId,
};
}),
}
: {};
return {
...(res?.data?.data ?? {}),
...defaultFormValue,
...(res?.data?.data ?? {}),
...relationSupplierList,
};
} else {
console.log({
......
......@@ -41,7 +41,17 @@ const getParentKey = (key, tree) => {
/> */
}
function TreeRender({ url, deleteurl, saveurl, onselected, params, noaction, maxWidth, style }) {
function TreeRender({
url,
deleteurl,
saveurl,
onselected,
params,
noaction,
maxWidth,
style,
submitKey,
}) {
const [search, setsearch] = useState('');
const [savetitle, setsavetitle] = useState(null);
const [modal, setModal] = useState({
......@@ -80,8 +90,8 @@ function TreeRender({ url, deleteurl, saveurl, onselected, params, noaction, max
let res = data?.data?.dataList ?? [];
return [
{
title: '设备树',
key: '00000000',
title: '全部类型',
key: '',
children: res,
},
];
......@@ -275,20 +285,6 @@ function TreeRender({ url, deleteurl, saveurl, onselected, params, noaction, max
);
}
// if (item.children) {
// return (
// <TreeNode key={item.key} title={actiontitle}>
// {loop(item.children)}
// </TreeNode>
// );
// }
// return <TreeNode key={item.key} title={title} />;
// return (
// <TreeNode key={item.key} title={noaction ? title : actiontitle}>
// {item.children && loop(item.children)}
// </TreeNode>
// );
if (item.children) {
return {
title: noaction ? title : actiontitle,
......@@ -341,7 +337,7 @@ function TreeRender({ url, deleteurl, saveurl, onselected, params, noaction, max
doFetch({
url: saveurl,
params: {
materieTypeName: savetitle,
[submitKey]: savetitle,
id: modal.key,
},
}).then((res) => {
......@@ -366,7 +362,7 @@ function TreeRender({ url, deleteurl, saveurl, onselected, params, noaction, max
doFetch({
url: saveurl,
params: {
materieTypeName: savetitle,
[submitKey]: savetitle,
parentId: modal.key,
},
}).then((res) => {
......
......@@ -58,14 +58,13 @@ ol {
width: 100%;
overflow-x: auto;
&-thead>tr,
&-tbody>tr {
>th,
>td {
&-thead > tr,
&-tbody > tr {
> th,
> td {
white-space: pre;
>span {
> span {
display: block;
}
}
......@@ -314,7 +313,7 @@ ol {
}
.lightblue {
>td:first-child {
> td:first-child {
position: relative;
&::before {
......@@ -336,14 +335,14 @@ ol {
width: 100%;
padding-left: 0 !important;
>span:first-child {
> span:first-child {
flex: 1;
>span:first-child {
> span:first-child {
display: none !important;
}
>.ant-spin-nested-loading {
> .ant-spin-nested-loading {
width: 100%;
}
}
......@@ -387,9 +386,12 @@ ol {
.container,
.diycard {
width: 100%;
height: 100%;
}
.ant-pro-table {
width: 100%;
}
.ant-drawer-wrapper-body {
.diycard {
height: unset;
......@@ -397,7 +399,7 @@ ol {
}
.runtime-keep-alive-layout {
>div {
> div {
height: 100% !important;
}
}
......@@ -445,7 +447,7 @@ ol {
min-height: 100% !important;
overflow: hidden !important;
>div {
> div {
height: 100%;
min-height: calc(100vh - 96px);
}
......@@ -457,12 +459,12 @@ ol {
// 横向滚动条
.scrollHoriz {
>div {
> div {
display: flex !important;
flex-wrap: nowrap !important;
align-items: center !important;
>div {
> div {
flex-shrink: 0 !important;
}
}
......
This diff is collapsed.
import * as React from 'react';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
function Instore(props) {
function Instore(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setdrawer] = useState({
open: false,
});
const pathconfig = useMemo(() => {
let pathconf = getcolumns(setdrawer)?.pathconfig ?? {};
return pathconf;
}, []);
}),
[activeTabKey, setactiveTabKey] = useState('1');
const { run, loading } = useRequest(doFetch, {
manual: true,
onSuccess: (res, params) => {
......@@ -56,20 +54,19 @@ import * as React from 'react';
const edit = (text, row, _, action) => {
return (
<PremButton
pop={{
title: '是否入库?',
okText: '确认',
cancelText: '取消',
onConfirm: () => {
run({ url: '/sparepart/inWarehouseTask/inWarehouse', params: { id: row?.id } });
},
}}
btn={{
size: 'small',
onClick: () => {
setdrawer((s) => ({
...s,
open: true,
item: row,
title: '编辑',
val: 'edit',
}));
},
}}
>
编辑
入库
</PremButton>
);
};
......@@ -78,11 +75,11 @@ import * as React from 'react';
return (
<PremButton
pop={{
title: '是否删除?',
title: '是否关单?',
okText: '确认',
cancelText: '取消',
onConfirm: () => {
run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } });
run({ url: '/sparepart/inWarehouseTask/shut', params: { id: row?.id } });
},
}}
btn={{
......@@ -90,34 +87,47 @@ import * as React from 'react';
type: 'danger',
}}
>
删除
关单
</PremButton>
);
};
const columns = useMemo(() => {
let defcolumn = getcolumns(setdrawer)?.columns;
let defcolumn = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.columns;
let defpath = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.pathconfig ?? {};
return defcolumn.concat({
title: '操作',
valueType: 'option',
width: 150,
render: (text, row, _, action) => [
pathconfig?.enabledetail && detail(text, row, _, action),
pathconfig?.enableedit && edit(text, row, _, action),
pathconfig?.enabledelete && remove(text, row, _, action),
defpath?.enabledetail && detail(text, row, _, action),
defpath?.enableedit && edit(text, row, _, action),
defpath?.enabledelete && remove(text, row, _, action),
],
});
}, []);
}, [activeTabKey]);
const pathconfig = useMemo(() => {
let defpath = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.pathconfig ?? {};
return defpath;
}, [activeTabKey]);
const { data } = useRequest(async () => {
let res = await doFetch({ url: '/sparepart/sparePart/queryAllSelect', params: {} });
return res?.data?.dataList;
});
console.log(data);
return (
<div style={{ position: 'relative' }}>
<AutoTable
pagetitle="入库管理"
columns={columns}
actionRef={actionRef}
path={pathconfig?.list || '/ngic-auth/sysUser/query/page'}
actionRef={actionRef}
pageextra={pathconfig?.enableadd ? 'add' : null}
resizeable={true}
resizeable={false}
addconfig={{
// access: 'sysDepartment_save',
btn: {
......@@ -133,16 +143,20 @@ import * as React from 'react';
},
},
}}
tabList={getcolumns()}
activeTabKey={activeTabKey}
onTabChange={(key) => {
setactiveTabKey(key);
}}
/>
<DrawerPro
fields={columns}
detailpath={pathconfig?.detail || null}
defaultFormValue={drawer?.item}
params={{ id: drawer?.item?.id }}
formRef={formRef}
placement="right"
detailpath={pathconfig?.detail || null}
detailData={drawer?.item}
defaultFormValue={drawer?.item}
onClose={() => {
setdrawer((s) => ({
...s,
......@@ -157,10 +171,23 @@ import * as React from 'react';
run({ url: pathconfig?.edit || '/edit', params: { ...vals, id: drawer?.item?.id } });
}
}}
onValuesChange={(curval, allval) => {
if (Object.keys(curval)[0] == 'detailsList') {
formRef.current.setFieldsValue({
detailsList: allval.detailsList?.map((it) => {
if (it.sparePartId) {
it.unit = data?.filter?.((item) => {
return item.value == it.sparePartId;
})?.[0]?.unit;
}
return it;
}),
});
}
}}
/>
</div>
);
}
export default Instore;
}
export default Instore;
This diff is collapsed.
This diff is collapsed.
function getcolumns(setdrawer) {
return {
"pathconfig": {
"enableadd": false,
"enableedit": false,
"enabledelete": false,
"enabledetail": false,
"add": "",
"edit": "",
"list": "/repair/umRepairOrder/queryRepairOrderList",
"delete": "",
"detail": ""
},
"columns": [
{
"title": "维修单号",
"dataIndex": "repairOrderNo",
"key": "repairOrderNo"
"title": "操作时间",
"dataIndex": "operateTime",
"key": "operateTimeList",
"valueType": "dateRange"
},
{
"title": "操作人",
"dataIndex": "operateUserName",
"key": "operateUserId",
"valueType": "select",
"options": {
"path": "/auth/sysUser/selection",
"params": {}
},
"hideInSearch": false,
"hideInTable": false
},
{
"title": "备件料号",
"dataIndex": "sparePartNo",
"key": "sparePartNo",
"hideInSearch": false,
"hideInTable": false
},
{
"title": "备件名",
"dataIndex": "sparePartName",
"key": "sparePartName"
},
{
"title": "供应商编号",
"dataIndex": "supplierNo",
"key": "supplierNo"
},
{
"title": "供应商名称",
"dataIndex": "supplierName",
"key": "supplierName"
},
{
"title": "设备编号",
"dataIndex": "equipmentNo",
"key": "equipmentNo"
"title": "库存单位",
"dataIndex": "unit",
"key": "unit"
},
{
"title": "设备名称",
"dataIndex": "equipmentName",
"key": "equipmentName"
"title": "入库仓库",
"dataIndex": "inWarehouseName",
"key": "inWarehouseName"
},
{
"title": "故障描述",
"dataIndex": "faultDescription",
"key": "faultDescription"
"title": "出库仓库",
"dataIndex": "outWarehouseName",
"key": "outWarehouseName"
},
{
"title": "报修人员",
"dataIndex": "repairUserName",
"key": "repairUserName"
"title": "出入库类型",
"dataIndex": "operateTypeName",
"key": "operateTypeName"
},
{
"title": "报修时间",
"dataIndex": "repairTime",
"key": "repairTimeList",
"valueType": "dateTimeRange"
"title": "操作后的备件库存",
"dataIndex": "actualStock",
"key": "actualStock"
},
{
"title": "报修单号",
"dataIndex": "repairNo",
"key": "repairNo"
"title": "操作数量",
"dataIndex": "operateNum",
"key": "operateNum"
},
{
"title": "工单状态",
"dataIndex": "statusName",
"key": "statusName"
"title": "相关单号",
"dataIndex": "relationNo",
"key": "relationNo"
}
],
"pathconfig": {
"enableadd": false,
"enableedit": false,
"enabledelete": false,
"enabledetail": false,
"add": "",
"edit": "",
"list": "/sparepart/spareStockAccess/queryList",
"delete": "",
"detail": ""
}
]
};
}
export default getcolumns;
\ No newline at end of file
}
export default getcolumns;
\ No newline at end of file
import * as React from 'react';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
function Record(props) {
function Record(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setdrawer] = useState({
......@@ -97,16 +97,7 @@ import * as React from 'react';
const columns = useMemo(() => {
let defcolumn = getcolumns(setdrawer)?.columns;
return defcolumn.concat({
title: '操作',
valueType: 'option',
width: 150,
render: (text, row, _, action) => [
pathconfig?.enabledetail && detail(text, row, _, action),
pathconfig?.enableedit && edit(text, row, _, action),
pathconfig?.enabledelete && remove(text, row, _, action),
],
});
return defcolumn;
}, []);
return (
......@@ -160,7 +151,6 @@ import * as React from 'react';
/>
</div>
);
}
export default Record;
}
export default Record;
import AutoTable from '@/components/AutoTable/mtable';
function getcolumns(setdrawer) {
const columns = [
{
title: '供应商编号',
dataIndex: 'supplierNo',
key: 'supplierNo',
editable: false,
},
{
title: '供应商名称',
dataIndex: 'supplierName',
key: 'supplierName',
editable: false,
},
{
title: '保质期(天)',
dataIndex: 'qualityGuarantee',
valueType: 'digit',
precision: 2,
fieldProps: {
precision: 2,
},
hideInSearch: true,
},
{
title: '价值',
dataIndex: 'value',
valueType: 'money',
hideInSearch: true,
},
];
return {
columns: [
{
......@@ -44,18 +77,21 @@ function getcolumns(setdrawer) {
path: '/sparepart/sparePartType/queryTreeList',
params: {},
},
hideInSearch: true,
},
{
title: '库存上限',
dataIndex: 'stockUpper',
key: 'stockUpper',
valueType: 'digit',
hideInSearch: true,
},
{
title: '库存下限',
dataIndex: 'stockLower',
key: 'stockLower',
valueType: 'digit',
hideInSearch: true,
},
{
title: '库存单位',
......@@ -69,6 +105,7 @@ function getcolumns(setdrawer) {
},
],
},
hideInSearch: true,
},
{
title: '是否寿命件',
......@@ -85,6 +122,8 @@ function getcolumns(setdrawer) {
value: 2,
},
],
hideInSearch: true,
hideInTable: true,
},
{
title: '供应商信息',
......@@ -93,43 +132,30 @@ function getcolumns(setdrawer) {
valueType: 'split',
},
{
title: '选择供应商',
title: '供应商',
dataIndex: 'relationSupplierList',
key: 'relationSupplierList',
valueType: 'formSelectList',
colProps: {
span: 24,
},
columns: [
{
title: '供应商编号',
dataIndex: 'supplierNo',
key: 'supplierNo',
editable: false,
},
{
title: '供应商名称',
dataIndex: 'supplierName',
key: 'supplierName',
editable: false,
},
{
title: '保质期(天)',
dataIndex: 'qualityGuarantee',
valueType: 'digit',
precision: 2,
fieldProps: {
precision: 2,
},
},
{
title: '价值',
dataIndex: 'value',
valueType: 'money',
},
],
columns,
span: 12,
path: '/sparepart/sparePartSupplier/queryList',
params: { status: 1 },
hideInSearch: true,
hideInTable: true,
render: (text, row) => {
return (
<AutoTable
columns={columns?.map((it) => ({
...it,
hideInSearch: true,
}))}
dataSource={row?.relationSupplierList}
/>
);
},
},
],
pathconfig: {
......
......@@ -7,6 +7,7 @@ import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
import { message } from 'antd';
import TreeRender from '@/components/TreeRender';
function Setting(props) {
const actionRef = useRef(),
......@@ -18,6 +19,7 @@ function Setting(props) {
let pathconf = getcolumns(setdrawer)?.pathconfig ?? {};
return pathconf;
}, []);
const [sparePartTypeId, setsparePartTypeId] = useState();
const { run, loading } = useRequest(doFetch, {
manual: true,
onSuccess: (res, params) => {
......@@ -135,7 +137,18 @@ function Setting(props) {
},
},
}}
extraparams={{ sparePartTypeId }}
>
<TreeRender
url="/sparepart/sparePartType/queryTreeList"
deleteurl="/sparepart/sparePartType/deleteById"
saveurl="/sparepart/sparePartType/save"
submitKey="sparePartTypeName"
onselected={(vals) => {
setsparePartTypeId(vals[0] ?? '');
}}
/>
</AutoTable>
<DrawerPro
fields={columns}
......@@ -143,8 +156,7 @@ function Setting(props) {
formRef={formRef}
placement="right"
detailpath={pathconfig?.detail || null}
detailData={drawer?.item}
defaultFormValue={drawer?.item}
defaultFormValue={{ sparePartTypeId }}
onClose={() => {
setdrawer((s) => ({
...s,
......
function getcolumns(setdrawer) {
return {
"pathconfig": {
"enableadd": false,
"enableedit": false,
"enabledelete": false,
"enabledetail": false,
"add": "",
"edit": "",
"list": "/repair/umRepairOrder/queryRepairOrderList",
"delete": "",
"detail": ""
},
"columns": [
columns: [
{
"title": "维修单号",
"dataIndex": "repairOrderNo",
"key": "repairOrderNo"
title: '备件料号',
dataIndex: 'sparePartNo',
key: 'sparePartNo',
},
{
"title": "设备编号",
"dataIndex": "equipmentNo",
"key": "equipmentNo"
title: '备件名称',
dataIndex: 'sparePartName',
key: 'sparePartName',
},
{
"title": "设备名称",
"dataIndex": "equipmentName",
"key": "equipmentName"
title: '备件类型',
dataIndex: 'sparePartTypeName',
key: 'sparePartTypeName',
},
{
"title": "故障描述",
"dataIndex": "faultDescription",
"key": "faultDescription"
title: '库存单位',
dataIndex: 'unit',
key: 'unit',
hideInSearch: true,
},
{
"title": "报修人员",
"dataIndex": "repairUserName",
"key": "repairUserName"
title: '库存数量',
dataIndex: 'actualStock',
key: 'actualStock',
hideInSearch: true,
},
{
"title": "报修时间",
"dataIndex": "repairTime",
"key": "repairTimeList",
"valueType": "dateTimeRange"
title: '可用库存',
dataIndex: 'usedStock',
key: 'usedStock',
hideInSearch: true,
},
{
"title": "报修单号",
"dataIndex": "repairNo",
"key": "repairNo"
],
pathconfig: {
enableadd: false,
enableedit: false,
enabledelete: false,
enabledetail: false,
add: '',
edit: '',
list: '/sparepart/spareStock/queryList',
delete: '',
detail: '',
},
{
"title": "工单状态",
"dataIndex": "statusName",
"key": "statusName"
}
]
};
};
}
export default getcolumns;
import * as React from 'react';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
import { useState, useMemo, useRef } from 'react';
import DrawerPro from '@/components/DrawerPro';
import AutoTable from '@/components/AutoTable';
import PremButton from '@/components/PremButton';
import getcolumns from './columns';
import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
import AutoTables from '@/components/AutoTable/mtable';
function ExtraTable({ spareStockId }) {
return (
<div style={{ padding: '4px 4px 4px 36px', backgroundColor: '#cccccc' }}>
<AutoTables
path={'/sparepart/spareSupplierStock/queryBySpareStockId'}
extraparams={{ spareStockId: spareStockId }}
pagination={false}
resizeable={false}
columns={[
{ title: '供应商编号', dataIndex: 'supplierNo', key: 'supplierNo' },
{ title: '供应商名称', dataIndex: 'supplierName', key: 'supplierName' },
{ title: '库存数量', dataIndex: 'actualStock', key: 'actualStock', hideInSearch: true },
]}
/>
</div>
);
}
function Stock(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setdrawer] = useState({
open: false,
});
function Stock(props) {
const actionRef = useRef();
const pathconfig = useMemo(() => {
let pathconf = getcolumns(setdrawer)?.pathconfig ?? {};
let pathconf = getcolumns()?.pathconfig ?? {};
return pathconf;
}, []);
const { run, loading } = useRequest(doFetch, {
manual: true,
onSuccess: (res, params) => {
if (res?.code == '0000') {
actionRef?.current?.reload();
setdrawer((s) => ({
...s,
open: false,
}));
}
},
});
const detail = (text, row, _, action) => {
return (
<PremButton
btn={{
size: 'small',
type: 'link',
onClick: () => {
setdrawer((s) => ({
...s,
open: true,
item: row,
title: '详情',
val: 'detail',
title: '详细信息',
}));
},
}}
>
详情
</PremButton>
);
};
const edit = (text, row, _, action) => {
return (
<PremButton
btn={{
size: 'small',
onClick: () => {
setdrawer((s) => ({
...s,
open: true,
item: row,
title: '编辑',
val: 'edit',
}));
},
}}
>
编辑
</PremButton>
);
};
const remove = (text, row, _, action) => {
return (
<PremButton
pop={{
title: '是否删除?',
okText: '确认',
cancelText: '取消',
onConfirm: () => {
run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } });
},
}}
btn={{
size: 'small',
type: 'danger',
}}
>
删除
</PremButton>
);
};
const columns = useMemo(() => {
let defcolumn = getcolumns(setdrawer)?.columns;
return defcolumn.concat({
title: '操作',
valueType: 'option',
width: 150,
render: (text, row, _, action) => [
pathconfig?.enabledetail && detail(text, row, _, action),
pathconfig?.enableedit && edit(text, row, _, action),
pathconfig?.enabledelete && remove(text, row, _, action),
],
});
let defcolumn = getcolumns()?.columns;
return defcolumn;
}, []);
return (
<div style={{ position: 'relative' }}>
<AutoTable
pagetitle=" 备件库存"
pagetitle="备件库存"
columns={columns}
actionRef={actionRef}
path={pathconfig?.list || '/ngic-auth/sysUser/query/page'}
pageextra={pathconfig?.enableadd ? 'add' : null}
resizeable={true}
addconfig={{
// access: 'sysDepartment_save',
btn: {
disabled: false,
onClick: () => {
setdrawer((s) => ({
...s,
open: true,
item: null,
title: '新增',
val: 'add',
}));
},
},
}}
/>
<DrawerPro
fields={columns}
params={{ id: drawer?.item?.id }}
formRef={formRef}
placement="right"
detailpath={pathconfig?.detail || null}
detailData={drawer?.item}
defaultFormValue={drawer?.item}
onClose={() => {
setdrawer((s) => ({
...s,
open: false,
}));
}}
{...drawer}
onFinish={(vals) => {
if (drawer?.val == 'add') {
run({ url: pathconfig?.add || '/add', params: { ...vals } });
} else if (drawer?.val == 'edit') {
run({ url: pathconfig?.edit || '/edit', params: { ...vals, id: drawer?.item?.id } });
}
resizeable={false}
expandable={{
expandedRowRender: (record) => <ExtraTable spareStockId={record?.id} />,
}}
/>
</div>
);
}
export default Stock;
}
export default Stock;
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