车间能级提升-智能设备管理系统
zhuguifei
2025-03-14 3e0f519c396ac8a72e7bbd426e4f38fa6cc403dc
eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
copy from eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue copy to eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
Îļþ´Ó eims-ui/apps/web-antd/src/views/eims/maint-order-st/index.vue ¸´ÖÆ
@@ -4,19 +4,18 @@
import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui';
import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils';
import { Popconfirm, Space } from 'ant-design-vue';
import { Modal, Popconfirm, Space } from 'ant-design-vue';
import { useVbenVxeGrid, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
import { listMaintOrderGroupDetail } from '#/api/eims/maint-order';
import { delMaintOrderSt, listMaintOrderSt } from '#/api/eims/maint-order-st';
import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
import { delMaintOrder, listMaintOrderGroupDetail } from '#/api/eims/maint-order';
import { delInspectSt, listInspectSt } from '#/api/eims/insp-st';
import { getDeptTree, userList } from '#/api/system/user';
import BasisSubTable from '#/views/eims/components/basis-sub-table.vue';
import { columns as orderCol } from '#/views/eims/maint-order/data';
import { columns as recordCol } from '#/views/eims/insp-record/data';
import { columns, querySchema } from './data';
import maintOrderStDrawer from './maint-order-st-drawer.vue';
import inspStDrawer from './insp-st-drawer.vue';
import type { Recordable } from '@vben/types';
import { MAINT_ORDER_STATUS } from '#/constants/dict';
import { $t } from '@vben/locales';
defineExpose({
@@ -53,7 +52,7 @@
  proxyConfig: {
    ajax: {
      query: async ({ page }, formValues = {}) => {
        return await listMaintOrderSt({
        return await listInspectSt({
          pageNum: page.currentPage,
          pageSize: page.pageSize,
          ...formValues
@@ -71,9 +70,9 @@
    // æ”¯æŒå¤šå­—段排序 é»˜è®¤å…³é—­
    multiple: true
  },
  id: 'maint-order-group-index'
  id: 'insp-st-index'
};
const orderId = ref<string>();
const recordId = ref<string>();
const [BasicTable, tableApi] = useVbenVxeGrid({
  formOptions,
  gridOptions,
@@ -81,7 +80,7 @@
    sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams),
    cellClick: (e: any) => {
      const { row } = e;
      orderId.value = `${row.equId}_${row.planTime}`;
      recordId.value = `${row.equId}_${row.planTime}`;
    }
  }
});
@@ -108,7 +107,7 @@
          /** æ ¹æ®éƒ¨é—¨ID加载用户 */
          await setupUserOptions(deptId);
          /** å˜åŒ–后需要重新选择用户 */
          formModel.maintUser = undefined;
          formModel.inspUser = undefined;
        },
        placeholder: '请选择',
        showSearch: true,
@@ -120,7 +119,7 @@
        // é€‰ä¸­åŽæ˜¾ç¤ºåœ¨è¾“入框的值
        treeNodeLabelProp: 'fullName'
      }),
      fieldName: 'maintDept'
      fieldName: 'inspDept'
    }
  ]);
}
@@ -148,28 +147,37 @@
  tableApi.formApi.updateSchema([
    {
      componentProps: { options, placeholder, filterOption },
      fieldName: 'maintUser'
      fieldName: 'inspUser'
    }
  ]);
}
const [MaintOrderStDrawer, maintOrderStDrawerApi] = useVbenDrawer({
  connectedComponent: maintOrderStDrawer
const [InspStDrawer, inspStDrawerApi] = useVbenDrawer({
  connectedComponent: inspStDrawer
});
function handleAdd() {
  maintOrderStDrawerApi.setData({});
  maintOrderStDrawerApi.open();
}
async function handleEdit(record: Recordable<any>) {
  maintOrderStDrawerApi.setData({ id: record.id });
  maintOrderStDrawerApi.open();
  inspStDrawerApi.setData({ id: record.id });
  inspStDrawerApi.open();
}
async function handleDelete(row: Recordable<any>) {
  await delMaintOrderSt(row.id);
  await delInspectSt(row.id);
  await tableApi.query();
}
function handleMultiDelete() {
  const rows = tableApi.grid.getCheckboxRecords();
  const ids = rows.map((row: any) => row.id);
  Modal.confirm({
    title: '提示',
    okType: 'danger',
    content: `确认删除选中的${ids.length}条记录吗?`,
    onOk: async () => {
      await delInspectSt(ids);
      await tableApi.query();
    }
  });
}
onMounted(async () => {
  await setupDeptSelect();
@@ -184,9 +192,19 @@
<template>
  <Page :auto-content-height="true">
    <div class="flex h-full gap-[8px] flex-col">
      <BasicTable class="h-3/5" table-title="保养工单列表">
      <BasicTable class="h-2/3" table-title="点检记录列表">
        <template #toolbar-tools>
          <Space />
          <Space >
            <a-button
              :disabled="!vxeCheckboxChecked(tableApi)"
              danger
              type="primary"
              v-access:code="['eims:inspectSt:remove']"
              @click="handleMultiDelete"
            >
              {{ $t('pages.common.delete') }}
            </a-button>
          </Space>
        </template>
        <template #equName="{ row }">
@@ -196,12 +214,12 @@
        </template>
        <template #action="{ row }">
          <Space>
            <ghost-button v-access:code="['eims:maintOrderSt:edit']" @click.stop="handleEdit(row)">
            <ghost-button v-access:code="['eims:inspectSt:edit']" @click.stop="handleEdit(row)">
              {{ $t('pages.common.edit') }}
            </ghost-button>
            <Popconfirm :get-popup-container="getVxePopupContainer" placement="left" title="确认删除?"
                        @confirm="handleDelete(row)">
              <ghost-button danger v-access:code="['eims:maintOrderSt:remove']" @click.stop="">
              <ghost-button danger v-access:code="['eims:inspectSt:remove']" @click.stop="">
                {{ $t('pages.common.delete') }}
              </ghost-button>
            </Popconfirm>
@@ -210,14 +228,14 @@
      </BasicTable>
      <BasisSubTable
        :columns="orderCol"
        :columns="recordCol"
        :list-api="listMaintOrderGroupDetail"
        :req-value="orderId"
        class="h-2/5"
        :req-value="recordId"
        class="h-1/3"
        req-key="maintCode"
        title="保养实施项目"
      />
    </div>
    <MaintOrderStDrawer @reload="tableApi.query()" />
    <InspStDrawer @reload="tableApi.query()" />
  </Page>
</template>