| | |
| | | * 操作类型 |
| | | */ |
| | | export enum SYS_OPER_TYPE { |
| | | ADD = '1', |
| | | EDIT = '2' |
| | | ADD = '1', // 新增 |
| | | EDIT = '2' // 编辑 |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 工具借用记录表中借用记录状态 |
| | | */ |
| | | export enum FIXTURE_BORROW_RECORD_STATUS{ |
| | | BORROW = '0', |
| | | RERURN = '1' |
| | | BORROW = '0', // 借出 |
| | | RERURN = '1' // 归还 |
| | | } |
| | | /** |
| | | * 报修类型 |
| | | */ |
| | | export enum REPAIR_REQ_TYPE { |
| | | EQU = '1', // 设备故障 |
| | | FIXTURE = '2', // 工具故障 |
| | | OTHER = '3' // 其他故障 |
| | | |
| | | } |
| | |
| | | realName: user.nickName, |
| | | roles, |
| | | userId: user.userId, |
| | | username: user.userName, |
| | | deptId: user.deptId, |
| | | username: user.userName |
| | | }; |
| | | userStore.setUserInfo(userInfo); |
| | | /** |
| | |
| | | { |
| | | component: 'DatePicker', |
| | | componentProps: { |
| | | format: 'YYYY-MM-DD', |
| | | format: 'YYYY-MM-DD HH:mm:ss', |
| | | showTime: false, |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | getPopupContainer |
| | |
| | | import { DictEnum } from '@vben/constants'; |
| | | import { getPopupContainer } from '@vben/utils'; |
| | | |
| | | import dayjs from 'dayjs'; |
| | | |
| | | import { type FormSchemaGetter } from '#/adapter/form'; |
| | | import { REPAIR_REQ_TYPE } from '#/constants/dict'; |
| | | import { getDictOptions } from '#/utils/dict'; |
| | | import { renderDict } from '#/utils/render'; |
| | | |
| | | const curDateTime = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | |
| | | export const querySchema: FormSchemaGetter = () => [ |
| | | { |
| | |
| | | // 在drawer里更新 这里不需要默认的componentProps |
| | | defaultValue: undefined, |
| | | fieldName: 'reqDept', |
| | | label: '报修部门', |
| | | label: '报修部门' |
| | | // rules: 'selectRequired', |
| | | }, |
| | | { |
| | |
| | | minWidth: 200 |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | field: 'equName', |
| | | title: '设备(工具)名称', |
| | | sortable: true, |
| | | minWidth: 120 |
| | | minWidth: 150, |
| | | slots: { |
| | | default: ({ row }) => { |
| | | if (row.reqType === REPAIR_REQ_TYPE.EQU) { |
| | | return row.equName; |
| | | } else if (row.reqType === REPAIR_REQ_TYPE.FIXTURE) { |
| | | return row.fixtureName; |
| | | } else { |
| | | return ''; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | title: '故障类别', |
| | |
| | | { |
| | | component: 'Select', |
| | | componentProps: { |
| | | getPopupContainer, |
| | | getPopupContainer |
| | | }, |
| | | fieldName: 'reqType', |
| | | label: '报修类型', |
| | |
| | | options: getDictOptions(DictEnum.REPAIR_REQ_STATUS) |
| | | }, |
| | | fieldName: 'status', |
| | | defaultValue: '0', |
| | | label: '处理状态' |
| | | }, |
| | | { |
| | |
| | | valueFormat: 'YYYY-MM-DD HH:mm:ss', |
| | | getPopupContainer |
| | | }, |
| | | defaultValue: curDateTime, |
| | | fieldName: 'reqTime', |
| | | label: '报修时间' |
| | | }, |
| | |
| | | |
| | | import { columns, querySchema } from './data'; |
| | | import repairReqDrawer from './repair-req-drawer.vue'; |
| | | import { useUserStore } from '@vben/stores'; |
| | | |
| | | const userStore = useUserStore(); |
| | | const userId = userStore.userInfo?.userId; |
| | | const deptId = userStore.userInfo?.deptId; |
| | | |
| | | const formOptions: VbenFormProps = { |
| | | commonConfig: { |
| | |
| | | }); |
| | | |
| | | function handleAdd() { |
| | | repairReqDrawerApi.setData({}); |
| | | repairReqDrawerApi.setData({ reqUser: userId, reqDept: deptId }); |
| | | repairReqDrawerApi.open(); |
| | | } |
| | | |
| | |
| | | import { getDictOptions } from '#/utils/dict'; |
| | | import CodeInput from '#/views/eims/components/code-input.vue'; |
| | | import equModal from '#/views/eims/components/equ-modal.vue'; |
| | | import fixtureModal from '#/views/eims/components/fixture-modal.vue'; |
| | | |
| | | import { drawerSchema } from './data'; |
| | | |
| | |
| | | ]); |
| | | drawerApi.drawerLoading(true); |
| | | const { id } = drawerApi.getData() as { id?: number | string }; |
| | | const { reqUser } = drawerApi.getData() as { reqUser?: number | string }; |
| | | const { reqDept } = drawerApi.getData() as { reqDept?: number | string }; |
| | | isUpdate.value = !!id; |
| | | // 初始化 |
| | | await setupDeptSelect(); |
| | | await setupEquTypeSelect(); |
| | | // 新增时默认填充登录人为报修人 |
| | | if (!isUpdate.value && reqUser !== null && reqDept !== null) { |
| | | await formApi.setValues({ 'reqUser': reqUser, 'reqDept': reqDept }); |
| | | await setupUserOptions(reqDept); |
| | | } |
| | | // 更新 && 赋值 |
| | | if (isUpdate.value && id) { |
| | | const record = await getRepairReq(id); |
| | |
| | | ]); |
| | | } |
| | | |
| | | |
| | | drawerApi.drawerLoading(false); |
| | | } |
| | | }); |
| | |
| | | title: '选择设备' |
| | | }); |
| | | |
| | | function handleOpenModal() { |
| | | const [FixtureModal, fixtureModalApi] = useVbenModal({ |
| | | connectedComponent: fixtureModal, |
| | | draggable: true, |
| | | title: '选择工具' |
| | | }); |
| | | |
| | | function handleEquModal() { |
| | | equModalApi.setData({}); |
| | | equModalApi.open(); |
| | | } |
| | | |
| | | function handleFixtureModal() { |
| | | fixtureModalApi.setData({}); |
| | | fixtureModalApi.open(); |
| | | } |
| | | |
| | | /** |
| | |
| | | * 打开查询设备 |
| | | */ |
| | | function onSearchEqu() { |
| | | handleOpenModal(); |
| | | handleEquModal(); |
| | | } |
| | | |
| | | /** |
| | | * 打开查询工具 |
| | | */ |
| | | function onSearchFixture() { |
| | | handleFixtureModal(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | async function updateEqu(equ: any) { |
| | | await formApi.setValues({ 'equId': equ.equId, 'equName': equ.equName }); |
| | | } |
| | | /** |
| | | * 更新选择的工具 |
| | | * @param fixture |
| | | */ |
| | | async function updateFixture(fixture: any) { |
| | | await formApi.setValues({ 'fixtureId': fixture.id, 'fixtureName': fixture.fixtureName }); |
| | | } |
| | | </script> |
| | | |
| | |
| | | <CodeInput v-bind="slotProps" :disabled="isUpdate" prefix="BXD" /> |
| | | </template> |
| | | <template #equName="slotProps"> |
| | | <InputSearch :enter-button="true" placeholder="请选择设备" @search="onSearchEqu" v-bind="slotProps" |
| | | :disabled="isUpdate" /> |
| | | <InputSearch :enter-button="true" placeholder="请选择设备" @search="onSearchEqu" v-bind="slotProps" :disabled="isUpdate" /> |
| | | </template> |
| | | <template #fixtureName="slotProps"> |
| | | <InputSearch :enter-button="true" placeholder="请选择工具" @search="onSearchFixture" v-bind="slotProps" :disabled="isUpdate" /> |
| | | </template> |
| | | </BasicForm> |
| | | <EquModal class="w-[1200px]" @update-equ="updateEqu" /> |
| | | <FixtureModal class="w-[1200px]" @update-select="updateFixture" /> |
| | | </BasicDrawer> |
| | | </template> |
| | |
| | | */ |
| | | avatar: string; |
| | | /** |
| | | * 部门id |
| | | */ |
| | | deptId: number; |
| | | /** |
| | | * 用户权限 |
| | | */ |
| | | permissions: string[]; |
| | |
| | | * 用户id |
| | | */ |
| | | userId: number | string; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | |
| | | |
| | | qw.eq(bo.getCreateBy()!=null, "a.create_by", bo.getCreateBy()); |
| | | qw.eq(StringUtils.isNotEmpty(bo.getStatus()), "a.status", bo.getStatus()); |
| | | qw.orderByDesc("a.create_time"); |
| | | |
| | | /** |
| | | * 查询部门下所有子部门 |