Commit 711de023 authored by TZW's avatar TZW

寿命件标准和台账

parent 059d7fee
export default [ export default [
{ {
path: '/welcome', "path": "/welcome",
name: '首页', "name": "首页",
icon: 'smile', "icon": "smile",
component: './Welcome', "component": "./Welcome"
}, },
{ {
name: '基础设置', "name": "基础设置",
icon: 'setting', "icon": "setting",
path: '/setting', "path": "/setting",
routes: [ "routes": [
{ {
name: '用户管理', "name": "用户管理",
path: '/setting/users', "path": "/setting/users",
component: './setting/users', "component": "./setting/users"
}, },
{ {
name: '角色管理', "name": "角色管理",
path: '/setting/role', "path": "/setting/role",
component: './setting/role', "component": "./setting/role"
}, },
{ {
name: '组织管理', "name": "组织管理",
path: '/setting/organization', "path": "/setting/organization",
component: './setting/organization', "component": "./setting/organization"
}, },
{ {
name: '工厂管理', "name": "工厂管理",
path: '/setting/factory', "path": "/setting/factory",
component: './setting/factory', "component": "./setting/factory"
}, },
{ {
name: '车间管理', "name": "车间管理",
path: '/setting/workshop', "path": "/setting/workshop",
component: './setting/workshop', "component": "./setting/workshop"
}, },
{ {
name: '工段管理', "name": "工段管理",
path: '/setting/section', "path": "/setting/section",
component: './setting/section', "component": "./setting/section"
}, },
{ {
name: '产线管理', "name": "产线管理",
path: '/setting/production', "path": "/setting/production",
component: './setting/production', "component": "./setting/production"
}, }
], ]
}, },
{ {
name: '设备管理', "name": "设备管理",
icon: 'bulb', "icon": "bulb",
path: '/device', "path": "/device",
routes: [ "routes": [
{ {
name: '设备台账', "name": "设备台账",
path: '/device/account', "path": "/device/account",
component: './device/account', "component": "./device/account"
}, },
{ {
name: '设备类型', "name": "设备类型",
path: '/device/type', "path": "/device/type",
component: './device/type', "component": "./device/type"
}, },
{ {
name: '设备型号', "name": "设备型号",
path: '/device/model', "path": "/device/model",
component: './device/model', "component": "./device/model"
}, },
{ {
name: '设备供应商', "name": "设备供应商",
path: '/device/supplier', "path": "/device/supplier",
component: './device/supplier', "component": "./device/supplier"
}, }
], ]
}, },
{ {
name: '维修管理', "name": "维修管理",
path: '/repair', "path": "/repair",
icon: 'tool', "icon": "tool",
routes: [ "routes": [
{ {
name: '接单平台', "name": "接单平台",
path: '/repair/platform', "path": "/repair/platform",
icon: '', "icon": "",
component: './repair/platform', "component": "./repair/platform"
}, },
{ {
name: '故障报修', "name": "故障报修",
path: '/repair/failure', "path": "/repair/failure",
icon: '', "icon": "",
component: './repair/failure', "component": "./repair/failure"
}, },
{ {
name: '维修工单', "name": "维修工单",
path: '/repair/order', "path": "/repair/order",
icon: '', "icon": "",
component: './repair/order', "component": "./repair/order"
}, },
{ {
name: '追踪工单', "name": "追踪工单",
path: '/repair/track', "path": "/repair/track",
icon: '', "icon": "",
component: './repair/track', "component": "./repair/track"
}, },
{ {
name: '外协工单', "name": "外协工单",
path: '/repair/outsourcing', "path": "/repair/outsourcing",
icon: '', "icon": "",
component: './repair/outsourcing', "component": "./repair/outsourcing"
}, },
{ {
name: '故障设置', "name": "故障设置",
path: '/repair/fault', "path": "/repair/fault",
icon: '', "icon": "",
component: './repair/fault', "component": "./repair/fault"
}, }
], ]
}, },
{ {
name: '系统管理', "name": "系统管理",
path: '/system', "path": "/system",
icon: 'desktop', "icon": "desktop",
routes: [ "routes": [
{ {
name: '数据字典', "name": "数据字典",
path: '/system/dictionary', "path": "/system/dictionary",
icon: '', "icon": "",
component: './system/dictionary', "component": "./system/dictionary"
}, },
{ {
name: '扩展字段', "name": "扩展字段",
path: '/system/field', "path": "/system/field",
icon: '', "icon": "",
component: './system/field', "component": "./system/field"
}, },
{ {
name: '编号规则', "name": "编号规则",
path: '/system/rules', "path": "/system/rules",
icon: '', "icon": "",
component: './system/rules', "component": "./system/rules"
}, },
{ {
name: '推送配置', "name": "推送配置",
path: '/system/pushsetting', "path": "/system/pushsetting",
icon: '', "icon": "",
component: './system/pushsetting', "component": "./system/pushsetting"
}, }
], ]
}, },
{ {
name: '备件管理', "name": "备件管理",
path: '/spare', "path": "/spare",
icon: 'sliders', "icon": "sliders",
routes: [ "routes": [
{ {
name: ' 备件库存', "name": " 备件库存",
path: '/spare/stock', "path": "/spare/stock",
icon: '', "icon": "",
component: './spare/stock', "component": "./spare/stock"
}, },
{ {
name: '入库管理', "name": "入库管理",
path: '/spare/instore', "path": "/spare/instore",
icon: '', "icon": "",
component: './spare/instore', "component": "./spare/instore"
}, },
{ {
name: '出库管理', "name": "出库管理",
path: '/spare/outstore', "path": "/spare/outstore",
icon: '', "icon": "",
component: './spare/outstore', "component": "./spare/outstore"
}, },
{ {
name: '出入库记录', "name": "出入库记录",
path: '/spare/record', "path": "/spare/record",
icon: '', "icon": "",
component: './spare/record', "component": "./spare/record"
}, },
{ {
name: '备件领用', "name": "备件领用",
path: '/spare/requisition', "path": "/spare/requisition",
icon: '', "icon": "",
component: './spare/requisition', "component": "./spare/requisition"
}, },
{ {
name: '备件回冲', "name": "备件回冲",
path: '/spare/spareback', "path": "/spare/spareback",
icon: '', "icon": "",
component: './spare/spareback', "component": "./spare/spareback"
}, },
{ {
name: ' 线边库存', "name": " 线边库存",
path: '/spare/edgestore', "path": "/spare/edgestore",
icon: '', "icon": "",
component: './spare/edgestore', "component": "./spare/edgestore"
}, },
{ {
name: '备件供应商', "name": "备件供应商",
path: '/spare/supplier', "path": "/spare/supplier",
icon: '', "icon": "",
component: './spare/supplier', "component": "./spare/supplier"
}, },
{ {
name: ' 备件设置', "name": " 备件设置",
path: '/spare/setting', "path": "/spare/setting",
icon: '', "icon": "",
component: './spare/setting', "component": "./spare/setting"
}, }
], ]
}, },
{ {
name: '点检管理', "name": "点检管理",
path: '/check', "path": "/check",
icon: 'check-circle', "icon": "check-circle",
routes: [ "routes": [
{ {
name: ' 点检标准', "name": " 点检标准",
path: '/check/standard', "path": "/check/standard",
icon: '', "icon": "",
component: './check/standard', "component": "./check/standard"
}, },
{ {
name: '点检计划', "name": "点检计划",
path: '/check/plan', "path": "/check/plan",
icon: '', "icon": "",
component: './check/plan', "component": "./check/plan"
}, },
{ {
name: '点检接单', "name": "点检接单",
path: '/check/order', "path": "/check/order",
icon: '', "icon": "",
component: './check/order', "component": "./check/order"
}, },
{ {
name: '点检工单', "name": "点检工单",
path: '/check/task', "path": "/check/task",
icon: '', "icon": "",
component: './check/task', "component": "./check/task"
}, }
], ]
}, },
{ {
name: '保养管理', "name": "保养管理",
path: '/maintain', "path": "/maintain",
icon: 'dashboard', "icon": "dashboard",
routes: [ "routes": [
{ {
name: '保养接单', "name": "保养接单",
path: '/maintain/orders', "path": "/maintain/orders",
icon: '', "icon": "",
component: './maintain/orders', "component": "./maintain/orders"
}, },
{ {
name: '保养工单', "name": "保养工单",
path: '/maintain/workOrder', "path": "/maintain/workOrder",
icon: '', "icon": "",
component: './maintain/workOrder', "component": "./maintain/workOrder"
}, },
{ {
name: ' 保养标准', "name": " 保养标准",
path: '/maintain/criterion', "path": "/maintain/criterion",
icon: '', "icon": "",
component: './maintain/criterion', "component": "./maintain/criterion"
}, },
{ {
name: '保养计划', "name": "保养计划",
path: '/maintain/plan', "path": "/maintain/plan",
icon: '', "icon": "",
component: './maintain/plan', "component": "./maintain/plan"
}
]
}, },
], {
"name": "寿命件管理",
"path": "/lifeparts",
"icon": "control",
"routes": [
{
"name": "寿命件台账",
"path": "/lifeparts/count",
"icon": "",
"component": "./lifeparts/count"
}, },
{
"name": "寿命件预警",
"path": "/lifeparts/warning",
"icon": "",
"component": "./lifeparts/warning"
},
{
"name": "寿命件标准",
"path": "/lifeparts/criterion",
"icon": "",
"component": "./lifeparts/criterion"
}
]
}
]; ];
\ No newline at end of file
...@@ -14,7 +14,6 @@ function treeForeach(tree, func) { ...@@ -14,7 +14,6 @@ function treeForeach(tree, func) {
} }
const TagView = ({ children, home }) => { const TagView = ({ children, home }) => {
console.log(children, home);
const [tagList, setTagList] = useState([]); const [tagList, setTagList] = useState([]);
const [currentPath, setCurrentPath] = useState(); const [currentPath, setCurrentPath] = useState();
...@@ -64,7 +63,6 @@ const TagView = ({ children, home }) => { ...@@ -64,7 +63,6 @@ const TagView = ({ children, home }) => {
} }
// 判断是否已打开过该页面 // 判断是否已打开过该页面
let hasOpen = false; let hasOpen = false;
console.log('routeContext', routeContext, 'tagList', tagList);
if (currentMenu.path) { if (currentMenu.path) {
const tagsCopy = tagList.map((item) => { const tagsCopy = tagList.map((item) => {
if (currentMenu?.path === item.path) { if (currentMenu?.path === item.path) {
...@@ -140,7 +138,6 @@ const TagView = ({ children, home }) => { ...@@ -140,7 +138,6 @@ const TagView = ({ children, home }) => {
setrefresh(true); setrefresh(true);
}; };
console.log(tagList);
return ( return (
<> <>
<RouteContext.Consumer> <RouteContext.Consumer>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: Li Hanlin * @Author: Li Hanlin
* @Date: 2022-11-10 09:39:56 * @Date: 2022-11-10 09:39:56
* @Last Modified by: Li Hanlin * @Last Modified by: Li Hanlin
* @Last Modified time: 2023-02-15 10:50:14 * @Last Modified time: 2023-02-16 17:23:15
*/ */
import * as React from 'react'; import * as React from 'react';
......
import dayjs from 'dayjs';
function getcolumns(setdrawer) {
const disabledDateOfDay = (current) => {
// Can not select days before today and today
return current && current < dayjs().endOf('day');
};
return {
columns: [
{
dataIndex: 'equipmentNo',
valueType: 'input',
title: '设备编号',
key: 'equipmentNo',
hideInForm: true,
},
{
dataIndex: 'equipmentName',
valueType: 'input',
title: '设备名称',
key: 'equipmentName',
hideInForm: true,
},
{
dataIndex: 'installPosition',
valueType: 'input',
title: '安装部位',
key: 'installPosition',
hideInForm: true,
},
{
dataIndex: 'sparePartNo',
valueType: 'input',
title: '备件料号',
key: 'sparePartNo',
hideInForm: true,
},
{
dataIndex: 'sparePartName',
valueType: 'input',
title: '备件名称',
key: 'sparePartName',
hideInForm: true,
},
{
dataIndex: 'supplierNo',
valueType: 'input',
title: '供应商编号',
key: 'supplierNo',
hideInForm: true,
},
{
dataIndex: 'supplierName',
valueType: 'input',
title: '供应商名称',
key: 'supplierName',
hideInForm: true,
},
{
dataIndex: 'equipmentId',
valueType: 'select',
title: '选择设备',
key: 'equipmentId',
hideInDescriptions: true,
hideInSearch: true,
hideInTable: true,
mode: 'radio',
options: {
path: '/asset/equipment/selection/user/shop',
params: {},
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
{
dataIndex: 'lifePieceStandardId',
valueType: 'select',
title: '选择部位-寿命件',
key: 'lifePieceStandardId',
hideInDescriptions: true,
hideInSearch: true,
hideInTable: true,
mode: 'radio',
options: {
path: '/sparepart/lifePieceStandard/querySelectByEquipmentId',
linkParams: { equipmentId: '' },
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
{
dataIndex: 'supplierId',
valueType: 'select',
title: '选择供应商',
key: 'supplierId',
hideInDescriptions: true,
hideInSearch: true,
hideInTable: true,
mode: 'radio',
options: {
path: '/sparepart/sparePartSupplier/queryOnSelect',
params: {},
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
{
dataIndex: 'installNum',
valueType: 'digit',
searchValueType: 'input',
title: '安装数量',
key: 'installNum',
hideInDescriptions: true,
hideInSearch: false,
hideInTable: false,
fieldProps: {
precision: 0,
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
{
dataIndex: 'nextReplaceDate',
title: '下次更换日期',
valueType: 'date',
key: 'nextReplaceDateList',
fieldProps: {
disabledDate: disabledDateOfDay,
},
searchValueType: 'dateRange',
hideInSearch: false,
hideInTable: false,
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
],
pathconfig: {
enableadd: true,
enableedit: true,
enabledelete: true,
enabledetail: false,
add: '/sparepart/lifePieceAccount/initialization',
edit: '/sparepart/lifePieceAccount/initialization',
list: '/sparepart/lifePieceAccount/queryWarning',
delete: '/sparepart/lifePieceAccount/deleteById',
detail: '',
},
};
}
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 InitForm from '@/components/InitForm';
function Warning(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setdrawer] = useState({
open: false,
});
const pathconfig = useMemo(() => {
let pathconf = getcolumns(setdrawer)?.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: 'detailaddon',
}));
},
}}
>
更换
</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),
],
});
}, []);
return (
<div style={{ position: 'relative' }}>
<AutoTable
pagetitle={<h3 className="page-title">寿命件台账</h3>}
columns={columns}
actionRef={actionRef}
path={pathconfig?.list || '/ngic-auth/sysUser/query/page'}
pageextra={pathconfig?.enableadd ? 'add' : null}
resizeable={false}
addconfig={{
// access: 'sysDepartment_save',
name: '初始化寿命件',
btn: {
disabled: false,
type: 'primary',
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') {
const params = { ...vals };
params.nextReplaceDate = params.nextReplaceDateList;
delete params.nextReplaceDateList;
run({ url: pathconfig?.add || '/add', params });
} else if (drawer?.val == 'edit') {
run({ url: pathconfig?.edit || '/edit', params: { ...vals, id: drawer?.item?.id } });
}
}}
>
<InitForm />
</DrawerPro>
</div>
);
}
export default Warning;
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: 'replaceCycle',
key: 'replaceCycle',
hideInSearch: true,
valueType: 'digit',
fieldProps: {
precision: 0,
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
];
return {
columns: [
{
title: '设备型号',
dataIndex: 'equipmentModelName',
key: 'equipmentModelId',
colProps: {
span: 8,
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
valueType: 'select',
mode: 'radio',
fieldProps: {
showSearch: true,
dropdownMatchSelectWidth: 100,
},
options: {
path: '/asset/equipmentModel/query/selection',
params: {},
},
},
{
title: '安装部位',
dataIndex: 'installPosition',
colProps: {
span: 8,
},
key: 'installPosition',
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
{
dataIndex: 'sparePartId',
valueType: 'select',
title: '选择寿命件',
colProps: {
span: 8,
},
key: 'sparePartId',
hideInDescriptions: true,
hideInSearch: true,
hideInTable: true,
options: {
path: '/sparepart/sparePart/queryLifeSelect',
params: {},
},
formItemProps: {
rules: [
{
required: true,
message: '此项为必填项',
},
],
},
},
{
title: '备件料号',
dataIndex: 'sparePartNo',
key: 'sparePartNo',
hideInForm: true,
},
{
title: '备件名称',
dataIndex: 'sparePartName',
key: 'sparePartName',
span: 3,
hideInForm: true,
},
{
title: '备件更换周期',
dataIndex: 'supplierList',
key: 'supplierList',
valueType: 'formSelectList',
colProps: {
span: 24,
},
span: 3,
columns,
hideInSearch: true,
hideInTable: true,
path: '/sparepart/sparePartSupplier/queryList',
params: { status: 1 },
rowName: 'supplierList',
render: (text, row) => {
console.log(row);
return <AutoTable columns={columns} dataSource={row?.supplierList} />;
},
},
],
pathconfig: {
enableadd: true,
enableedit: true,
enabledelete: true,
enabledetail: true,
add: '/sparepart/lifePieceStandard/save',
edit: '/sparepart/lifePieceStandard/save',
list: '/sparepart/lifePieceStandard/queryList',
delete: '/sparepart/lifePieceStandard/deleteById',
detail: '/sparepart/lifePieceStandard/queryDetails',
},
};
}
export default getcolumns;
/* 寿命件标准
* @Author: Li Hanlin
* @Date: 2023-02-16 10:36:53
* @Last Modified by: Li Hanlin
* @Last Modified time: 2023-02-16 13:57:46
*/
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 { message } from 'antd';
function Criterion(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setdrawer] = useState({
open: false,
});
const pathconfig = useMemo(() => {
let pathconf = getcolumns(setdrawer)?.pathconfig ?? {};
return pathconf;
}, []);
const { run, loading } = useRequest(doFetch, {
manual: true,
onSuccess: (res, params) => {
if (res?.code == '0000') {
message.success('操作成功!', 1);
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),
],
});
}, []);
return (
<div style={{ position: 'relative' }}>
<AutoTable
pagetitle={<h3 className="page-title">寿命件标准</h3>}
columns={columns}
actionRef={actionRef}
path={pathconfig?.list || '/ngic-auth/sysUser/query/page'}
pageextra={pathconfig?.enableadd ? 'add' : null}
resizeable={false}
addconfig={{
name: '新增标准',
// access: 'sysDepartment_save',
btn: {
disabled: false,
type: 'primary',
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') {
const params = { ...vals };
params.supplierList = params?.supplierList?.map((it) => {
return {
supplierId: it?.id,
replaceCycle: it?.replaceCycle,
};
});
run({ url: pathconfig?.add || '/add', params });
} else if (drawer?.val == 'edit') {
const params = { ...vals };
params.supplierList = params?.supplierList?.map((it) => {
return {
supplierId: it?.id,
replaceCycle: it?.replaceCycle,
};
});
run({ url: pathconfig?.edit || '/edit', params: { ...params, id: drawer?.item?.id } });
}
}}
/>
</div>
);
}
export default Criterion;
function getcolumns(setdrawer) {
return {
"columns": [
{
"dataIndex": "equipmentNo",
"valueType": "input",
"title": "设备编号",
"key": "equipmentNo",
"hideInForm": true
},
{
"dataIndex": "equipmentName",
"valueType": "input",
"title": "设备名称",
"key": "equipmentName",
"hideInForm": true
},
{
"dataIndex": "installPosition",
"valueType": "input",
"title": "安装部位",
"key": "installPosition",
"hideInForm": true
},
{
"dataIndex": "sparePartNo",
"valueType": "input",
"title": "备件料号",
"key": "sparePartNo",
"hideInForm": true
},
{
"dataIndex": "sparePartName",
"valueType": "input",
"title": "备件名称",
"key": "sparePartName",
"hideInForm": true
},
{
"dataIndex": "supplierNo",
"valueType": "input",
"title": "供应商编号",
"key": "supplierNo",
"hideInForm": true
},
{
"dataIndex": "supplierName",
"valueType": "input",
"title": "供应商名称",
"key": "supplierName",
"hideInForm": true
},
{
"dataIndex": "equipmentId",
"valueType": "select",
"title": "选择设备",
"key": "equipmentId",
"hideInDescriptions": true,
"hideInSearch": true,
"hideInTable": true,
"mode": "radio",
"options": {
"path": "/asset/equipment/selection/user/shop",
"params": {}
},
"formItemProps": {
"rules": [
{
"required": true,
"message": "此项为必填项"
}
]
}
},
{
"dataIndex": "lifePieceStandardId",
"valueType": "select",
"title": "选择部位-寿命件",
"key": "lifePieceStandardId",
"hideInDescriptions": true,
"hideInSearch": true,
"hideInTable": true,
"mode": "radio",
"options": {
"path": "/sparepart/lifePieceStandard/querySelectByEquipmentId",
"linkParams": {}
},
"formItemProps": {
"rules": [
{
"required": true,
"message": "此项为必填项"
}
]
}
},
{
"dataIndex": "supplierId",
"valueType": "select",
"title": "选择供应商",
"key": "supplierId",
"hideInDescriptions": true,
"hideInSearch": true,
"hideInTable": true,
"mode": "radio",
"options": {
"path": "/sparepart/sparePartSupplier/queryOnSelect",
"params": {}
},
"formItemProps": {
"rules": [
{
"required": true,
"message": "此项为必填项"
}
]
}
},
{
"dataIndex": "installNum",
"valueType": "digit",
"title": "安装数量",
"key": "installNum",
"hideInDescriptions": true,
"hideInSearch": false,
"hideInTable": false,
"formItemProps": {
"rules": [
{
"required": true,
"message": "此项为必填项"
}
]
}
},
{
"dataIndex": "nextReplaceDate",
"valueType": "date",
"title": "下次更换日期",
"key": "nextReplaceDateList",
"hideInDescriptions": true,
"hideInSearch": false,
"hideInTable": false,
"formItemProps": {
"rules": [
{
"required": true,
"message": "此项为必填项"
}
]
}
}
],
"pathconfig": {
"enableadd": true,
"enableedit": false,
"enabledelete": false,
"enabledetail": false,
"add": "/sparepart/lifePieceAccount/initialization",
"edit": "",
"list": "/sparepart/lifePieceAccount/queryWarning",
"delete": "",
"detail": ""
}
};
}
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';
function Warning(props) {
const actionRef = useRef(),
formRef = useRef();
const [drawer, setdrawer] = useState({
open: false,
});
const pathconfig = useMemo(() => {
let pathconf = getcolumns(setdrawer)?.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),
],
});
}, []);
return (
<div style={{ position: 'relative' }}>
<AutoTable
pagetitle={<h3 className="page-title">寿命件预警</h3>}
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 } });
}
}}
/>
</div>
);
}
export default Warning;
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: Li Hanlin * @Author: Li Hanlin
* @Date: 2023-01-16 15:35:00 * @Date: 2023-01-16 15:35:00
* @Last Modified by: Li Hanlin * @Last Modified by: Li Hanlin
* @Last Modified time: 2023-02-09 19:53:33 * @Last Modified time: 2023-02-16 17:45:48
*/ */
import * as React from 'react'; import * as React from 'react';
......
...@@ -27,7 +27,6 @@ const codeMessage = { ...@@ -27,7 +27,6 @@ const codeMessage = {
/* 异常处理程序*/ /* 异常处理程序*/
const errorHandler = (error) => { const errorHandler = (error) => {
console.log(error);
const { response } = error; const { response } = error;
if (response && response.status) { if (response && response.status) {
const errorText = codeMessage[response.status] || response.statusText; const errorText = codeMessage[response.status] || response.statusText;
......
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