车间能级提升-智能设备管理系统
zhuguifei
2025-02-25 c3c585edd4d3cf269a307ba48ac2abb11bf0b640
故障报修添加工具类型选择,初步完成故障报修模块
已修改8个文件
109 ■■■■ 文件已修改
eims-ui/apps/web-antd/src/constants/dict/index.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/store/auth.ts 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/packages/@core/base/typings/src/basic.d.ts 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eims-ui/apps/web-antd/src/constants/dict/index.ts
@@ -2,16 +2,23 @@
 * 操作类型
 */
export enum SYS_OPER_TYPE {
  ADD = '1',
  EDIT = '2'
  ADD = '1', // 新增
  EDIT = '2' // 编辑
}
/**
 * 工具借用记录表中借用记录状态
 */
export enum FIXTURE_BORROW_RECORD_STATUS{
  BORROW = '0',
  RERURN = '1'
export enum FIXTURE_BORROW_RECORD_STATUS {
  BORROW = '0', // 借出
  RERURN = '1' // 归还
}
/**
 * 报修类型
 */
export enum REPAIR_REQ_TYPE {
  EQU = '1', // 设备故障
  FIXTURE = '2', // 工具故障
  OTHER = '3' // 其他故障
}
eims-ui/apps/web-antd/src/store/auth.ts
@@ -114,7 +114,8 @@
      realName: user.nickName,
      roles,
      userId: user.userId,
      username: user.userName,
      deptId: user.deptId,
      username: user.userName
    };
    userStore.setUserInfo(userInfo);
    /**
eims-ui/apps/web-antd/src/views/eims/equ-statu/data.tsx
@@ -116,7 +116,7 @@
  {
    component: 'DatePicker',
    componentProps: {
      format: 'YYYY-MM-DD',
      format: 'YYYY-MM-DD HH:mm:ss',
      showTime: false,
      valueFormat: 'YYYY-MM-DD HH:mm:ss',
      getPopupContainer
eims-ui/apps/web-antd/src/views/eims/repair-req/data.tsx
@@ -3,9 +3,14 @@
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 = () => [
  {
@@ -27,7 +32,7 @@
    // 在drawer里更新 这里不需要默认的componentProps
    defaultValue: undefined,
    fieldName: 'reqDept',
    label: '报修部门',
    label: '报修部门'
    // rules: 'selectRequired',
  },
  {
@@ -108,10 +113,20 @@
    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: '故障类别',
@@ -159,7 +174,7 @@
  {
    component: 'Select',
    componentProps: {
      getPopupContainer,
      getPopupContainer
    },
    fieldName: 'reqType',
    label: '报修类型',
@@ -213,6 +228,7 @@
      options: getDictOptions(DictEnum.REPAIR_REQ_STATUS)
    },
    fieldName: 'status',
    defaultValue: '0',
    label: '处理状态'
  },
  {
@@ -223,6 +239,7 @@
      valueFormat: 'YYYY-MM-DD HH:mm:ss',
      getPopupContainer
    },
    defaultValue: curDateTime,
    fieldName: 'reqTime',
    label: '报修时间'
  },
eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue
@@ -16,6 +16,11 @@
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: {
@@ -82,7 +87,7 @@
});
function handleAdd() {
  repairReqDrawerApi.setData({});
  repairReqDrawerApi.setData({ reqUser: userId, reqDept: deptId });
  repairReqDrawerApi.open();
}
eims-ui/apps/web-antd/src/views/eims/repair-req/repair-req-drawer.vue
@@ -15,6 +15,7 @@
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';
@@ -90,10 +91,17 @@
    ]);
    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);
@@ -121,7 +129,6 @@
      ]);
    }
    drawerApi.drawerLoading(false);
  }
});
@@ -132,9 +139,20 @@
  title: '选择设备'
});
function handleOpenModal() {
const [FixtureModal, fixtureModalApi] = useVbenModal({
  connectedComponent: fixtureModal,
  draggable: true,
  title: '选择工具'
});
function handleEquModal() {
  equModalApi.setData({});
  equModalApi.open();
}
function handleFixtureModal() {
  fixtureModalApi.setData({});
  fixtureModalApi.open();
}
/**
@@ -256,7 +274,14 @@
 * 打开查询设备
 */
function onSearchEqu() {
  handleOpenModal();
  handleEquModal();
}
/**
 * 打开查询工具
 */
function onSearchFixture() {
  handleFixtureModal();
}
/**
@@ -265,6 +290,13 @@
 */
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>
@@ -275,10 +307,13 @@
        <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>
eims-ui/packages/@core/base/typings/src/basic.d.ts
@@ -13,6 +13,10 @@
   */
  avatar: string;
  /**
   * 部门id
   */
  deptId: number;
  /**
   * 用户权限
   */
  permissions: string[];
@@ -28,6 +32,7 @@
   * 用户id
   */
  userId: number | string;
  /**
   * 用户名
   */
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
@@ -94,6 +94,7 @@
        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");
        /**
         * 查询部门下所有子部门