Commit 673a72b7 authored by TZW's avatar TZW

故障报修

parent f4b7ee19
function getcolumns(setdrawer) { function getcolumns(setdrawer) {
return [ return [
{ title: '报修单号', dataIndex: 'repairNo', key: 'repairNo' }, {
{ title: '设备编号', dataIndex: 'equipmentNo', key: 'equipmentNo' }, "tab": "已完成",
{ title: '设备名称', dataIndex: 'equipmentName', key: 'equipmentName' }, "key": "1",
{ title: '故障描述', dataIndex: 'faultDescription', key: 'faultDescription' }, "columns": [
{ title: '报修人', dataIndex: 'repairUserName', key: 'repairUserName' }, {
{ title: '报修时间', dataIndex: 'repairTime', key: 'repairTimeList', valueType: 'dateRange' }, "title": "报修单号",
{ "dataIndex": "repairNo",
title: '工单状态', "key": "repairNo"
dataIndex: 'statusName', },
key: 'status', {
valueType: 'radio', "title": "设备编号",
options: [ "dataIndex": "equipmentNo",
{ label: '待维修', value: '1' }, "key": "equipmentNo"
{ label: '维修中', value: '2' }, },
], {
}, "title": "设备名称",
]; "dataIndex": "equipmentName",
} "key": "equipmentName"
},
export default getcolumns; {
"title": "故障描述",
"dataIndex": "faultDescription",
"key": "faultDescription",
"valueType": "textarea"
},
{
"title": "报修人员",
"dataIndex": "repairUserName",
"key": "repairUserName"
},
{
"title": "报修时间",
"dataIndex": "repairTimeList",
"key": "repairTimeList",
"valueType": "dateTimeRange"
},
{
"title": "维修单号",
"dataIndex": "repairOrderNo",
"key": "repairOrderNo"
},
{
"title": "工单状态",
"dataIndex": "statusName",
"key": "status",
"valueType": "radio",
"options": [
{
"label": "待维修",
"value": "1"
},
{
"label": "维修中",
"value": "2"
}
]
}
],
"pathconfig": {
"enableadd": true,
"enableedit": false,
"enabledelete": true,
"enabledetail": false,
"add": "",
"edit": "",
"list": "",
"delete": "",
"detail": ""
}
},
{
"tab": "已完成",
"key": "2",
"columns": [
{
"title": "报修单号",
"dataIndex": "repairNo",
"key": "repairNo"
},
{
"title": "设备编号",
"dataIndex": "equipmentNo",
"key": "equipmentNo"
},
{
"title": "设备名称",
"dataIndex": "equipmentName",
"key": "equipmentName"
},
{
"title": "故障描述",
"dataIndex": "faultDescription",
"key": "faultDescription"
},
{
"title": "报修人员",
"dataIndex": "repairUserName",
"key": "repairUserName"
},
{
"title": "报修时间",
"dataIndex": "repairTime",
"key": "repairTime"
},
{
"title": "关单时间",
"dataIndex": "repairCloseTime",
"key": "repairCloseTime"
},
{
"title": "维修单号",
"dataIndex": "repairOrderNo",
"key": "repairOrderNo"
},
{
"title": "工单状态",
"dataIndex": "statusName",
"key": "status",
"valueType": "radio",
"options": [
{
"label": "待维修",
"value": "1"
},
{
"label": "维修中",
"value": "2"
}
]
}
],
"pathconfig": {
"enableadd": true,
"enableedit": true,
"enabledelete": true,
"enabledetail": true,
"add": "",
"edit": "",
"list": "",
"delete": "",
"detail": ""
}
}
];
}
export default getcolumns;
\ No newline at end of file
/* 故障报修
* @Author: Li Hanlin
* @Date: 2022-11-25 09:18:03
* @Last Modified by: Li Hanlin
* @Last Modified time: 2022-12-01 19:49:37
*/
import * as React from 'react'; 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 PremButton from '@/components/PremButton'; import PremButton from '@/components/PremButton';
import getcolumns from './columns'; import getcolumns from './columns';
import { doFetch } from '@/utils/doFetch'; import { useRequest } from 'ahooks';
import { doFetch } from '@/utils/doFetch';
function Failure(props) { function Failure(props) {
const actionRef = useRef(), const actionRef = useRef(),
formRef = useRef(), formRef = useRef();
[drawer, setdrawer] = useState({ const [drawer, setdrawer] = useState({
visible: false, open: false,
}), }),
[activeTabKey, onTabChange] = useState('1'); [activeTabKey, setactiveTabKey] = useState('1');
const urlParams = { const { run, loading } = useRequest(doFetch, {
detail: '/repair/umFailureRepair/queryById', manual: true,
save: '/repair/umFailureRepair/save', onSuccess: (res, params) => {
remove: '/repair/umFailureRepair/deleteById', if (res?.code == '0000') {
list_unfinished: '/repair/umFailureRepair/queryNoFinishList', actionRef?.current?.reload();
list_finished: '/repair/umFailureRepair/queryFinishList',
};
const detail = (text, row, _, action) => {
return (
<PremButton
btn={{
size: 'small',
type: 'link',
onClick: () => {
setdrawer((s) => ({ setdrawer((s) => ({
...s, ...s,
visible: true, open: false,
item: row,
title: '详情',
val: 'detail',
title: row.userName + '的详细信息',
})); }));
}, }
}} },
> });
详情
</PremButton>
);
};
const remove = (text, row, _, action) => { const detail = (text, row, _, action) => {
return ( return (
<PremButton <PremButton
pop={{ btn={{
title: '是否删除该用户?', size: 'small',
okText: '确认', type: 'link',
cancelText: '取消', onClick: () => {
onConfirm: () => {}, setdrawer((s) => ({
}} ...s,
btn={{ open: true,
size: 'small', item: row,
type: 'danger', title: '详情',
}} val: 'detail',
> title: '详细信息',
删除 }));
</PremButton> },
); }}
}; >
详情
</PremButton>
);
};
const columns_add = [ const edit = (text, row, _, action) => {
{ return (
title: '选择设备', <PremButton
dataIndex: 'equipmentId', btn={{
key: 'equipmentId', size: 'small',
valueType: 'select', onClick: () => {
options: { path: '/asset/equipment/selection/user/shop', params: {} }, setdrawer((s) => ({
}, ...s,
{ open: true,
title: '是否停机', item: row,
dataIndex: 'isShutdown', title: '编辑',
key: 'isShutdown', val: 'edit',
valueType: 'radio', }));
options: [ },
{ }}
label: '是', >
value: 1, 编辑
}, </PremButton>
{ );
label: '否', };
value: 2,
}, const remove = (text, row, _, action) => {
], return (
}, <PremButton
{ pop={{
title: '故障类型', title: '是否删除?',
dataIndex: 'faultSettingId', okText: '确认',
valueType: 'select', cancelText: '取消',
key: 'faultSettingId', onConfirm: () => {
options: { run({ url: pathconfig?.delete || '/delete', params: { id: row?.id } });
path: '/repair/umFaultSetting/selected/queryList', },
linkParams: { }}
equipmentId: '', btn={{
}, size: 'small',
}, type: 'danger',
}, }}
{ >
title: '故障名称', 删除
dataIndex: 'faultDetailId', </PremButton>
valueType: 'select', );
key: 'faultDetailId', };
options: {
path: '/repair/umFaultSettingDetail/selected/queryList',
linkParams: {
faultSettingId: '',
},
},
},
{
title: '故障描述',
valueType: 'textarea',
dataIndex: 'faultDescription',
key: 'faultDescription',
},
{
title: '故障图片',
dataIndex: 'pictureId',
key: 'pictureId',
valueType: 'uploadImage',
fieldProps: {
limit: 2,
},
},
];
const columns = useMemo(() => {
let defcolumn = getcolumns(setdrawer);
return defcolumn.concat({
title: '操作',
valueType: 'option',
width: 150,
render: (text, row, _, action) => [
detail(text, row, _, action),
remove(text, row, _, action),
],
});
}, []);
return ( const columns = useMemo(() => {
<div style={{ position: 'relative' }}> let defcolumn = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.columns;
<AutoTable let defpath = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.pathconfig ?? {};
pagetitle={<h3 className="page-title">设备供应商</h3>} return defcolumn.concat({
columns={columns} title: '操作',
actionRef={actionRef} valueType: 'option',
pageextra={'add'} width: 150,
resizeable={true} render: (text, row, _, action) => [
path={activeTabKey == '1' ? urlParams.list_unfinished : urlParams.list_finished} defpath?.enabledetail && detail(text, row, _, action),
tabList={[ defpath?.enableedit && edit(text, row, _, action),
{ defpath?.enabledelete && remove(text, row, _, action),
tab: '未完成', ],
key: '1', });
}, }, [activeTabKey]);
{
tab: '已完成', const pathconfig = useMemo(() => {
key: '2', let defpath = getcolumns(setdrawer).filter((it) => it.key == activeTabKey)[0]?.pathconfig ?? {};
}, return defpath;
]} }, [activeTabKey]);
addconfig={{
// access: 'sysDepartment_save', return (
btn: { <div style={{ position: 'relative' }}>
disabled: false, <AutoTable
type: 'primary', pagetitle="故障报修"
onClick: () => { columns={columns}
path={pathconfig?.list || '/ngic-auth/sysUser/query/page'}
actionRef={actionRef}
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',
}));
},
},
}}
tabList={getcolumns()}
activeTabKey={activeTabKey}
onTabChange={(key) => {
setactiveTabKey(key);
}}
/>
<DrawerPro
fields={columns}
detailpath={pathconfig?.detail || null}
detailData={drawer?.item}
defaultFormValue={drawer?.item}
params={{ id: drawer?.item?.id }}
formRef={formRef}
placement="right"
onClose={() => {
setdrawer((s) => ({ setdrawer((s) => ({
...s, ...s,
visible: true, open: false,
item: {
isShutdown: 1,
},
title: '新增',
val: 'add',
onFinish: async (vals) => {
console.log(vals);
let params = {
...vals,
};
let res = await doFetch({
url: urlParams.save,
params,
});
if (res.code === '0000') {
message.success('新增保修单成功!');
setdrawer((s) => ({
...s,
visible: false,
}));
actionRef.current.reload();
}
},
})); }));
}, }}
}, {...drawer}
}} onFinish={(vals) => {
activeTabKey={activeTabKey} if (drawer?.val == 'add') {
onTabChange={onTabChange} run({ url: pathconfig?.add || '/add', params: { ...vals } });
/> } else if (drawer?.val == 'edit') {
run({ url: pathconfig?.edit || '/edit', params: { ...vals, id: drawer?.item?.id } });
<DrawerPro }
fields={drawer?.val == 'add' ? columns_add : columns} }}
// detailpath="/ngic-auth/sysUser/query/detail" />
params={{ id: drawer?.item?.id }} </div>
formRef={formRef} );
placement="right" }
onClose={() => {
setdrawer((s) => ({
...s,
visible: false,
}));
}}
{...drawer}
/>
</div>
);
}
export default Failure; export default Failure;
\ No newline at end of file
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