From 74448f9a9f1f8cb779023db3ea9eda762fc6ad0a Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期五, 28 二月 2025 14:29:42 +0800 Subject: [PATCH] 维修工接单、维修 --- eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 42 insertions(+), 9 deletions(-) diff --git a/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue b/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue index fae59d3..b686dd0 100644 --- a/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue +++ b/eims-ui/apps/web-antd/src/views/eims/repair-req/index.vue @@ -1,30 +1,31 @@ <script setup lang="ts"> import type { Recordable } from '@vben/types'; -import { onMounted } from 'vue'; +import { onMounted, ref } from 'vue'; import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui'; import { $t } from '@vben/locales'; import { useUserStore } from '@vben/stores'; import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils'; -import { Modal, Popconfirm, Space } from 'ant-design-vue'; +import { message, Modal, Popconfirm, Space } from 'ant-design-vue'; import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table'; import { delRepairReq, listRepairReq, repairReqExport } from '#/api/eims/repair-req'; import { getDeptTree, userList } from '#/api/system/user'; +import { REPAIR_REQ_STATUS } from '#/constants/dict'; import { commonDownloadExcel } from '#/utils/file/download'; import { columns, querySchema } from './data'; import repairReqDrawer from './repair-req-drawer.vue'; - +import sendWorkDrawer from './send-work-drawer.vue'; +import RepairRecord from '#/views/eims/repair-record/index.vue'; interface Props { filterFlag?: boolean; status?: string; } const props = withDefaults(defineProps<Props>(), { filterFlag: false, status: undefined }); - const userStore = useUserStore(); const userId = userStore.userInfo?.userId; @@ -33,7 +34,6 @@ defineExpose({ tableSelect }); - const formOptions: VbenFormProps = { commonConfig: { @@ -94,18 +94,43 @@ }, id: 'eims-repair-req-index' }; - +const reqId = ref<string>(); const [BasicTable, tableApi] = useVbenVxeGrid({ formOptions, gridOptions, gridEvents: { - sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams) + sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams), + cellClick: (e: any) => { + const { row } = e; + reqId.value = row.id; + } } }); const [RepairReqDrawer, repairReqDrawerApi] = useVbenDrawer({ connectedComponent: repairReqDrawer }); + +const [SendWorkDrawer, drawerApi] = useVbenDrawer({ + connectedComponent: sendWorkDrawer, + title: '娲惧伐' +}); + +function openSendWork() { + const rows = tableApi.grid.getCheckboxRecords(); + const ids = rows.map((row: any) => row.id).join(','); + // 涓嶅厑璁搁�夋嫨寰呮帴鍗曚互澶栫姸鎬佺殑鏁版嵁 + const filterData = rows.filter((item) => item.status !== REPAIR_REQ_STATUS.DAIJIEDAN); + if (rows.length === 0) { + message.warn('璇烽�夋嫨鎶ヤ慨鍗曞悗娲惧伐锛�'); + return; + } else if (filterData.length > 0) { + message.warn('璇烽�夋嫨鏈帴鍗曟姤淇崟鍚庢淳宸ワ紒'); + return; + } + drawerApi.setData({ batchReqIds: ids }); + drawerApi.open(); +} function handleAdd() { repairReqDrawerApi.setData({ reqUser: userId, reqDept: deptId }); @@ -141,6 +166,11 @@ fieldMappingTime: formOptions.fieldMappingTime }); } + +/** + * 娲惧伐 + */ +function handleSendWork() {} onMounted(async () => { await setupDeptSelect(); @@ -220,10 +250,11 @@ <template> <Page :auto-content-height="true"> - <div class="flex h-full gap-[8px]"> - <BasicTable class="flex-1 overflow-hidden" table-title="鏁呴殰鎶ヤ慨鍒楄〃"> + <div class="flex h-full gap-[8px] flex-col"> + <BasicTable class="h-2/3" table-title="鏁呴殰鎶ヤ慨鍒楄〃"> <template #toolbar-tools> <Space> + <a-button v-access:code="['eims:repairReq:send']" @click="openSendWork"> 娲惧伐 </a-button> <a-button v-access:code="['eims:repairReq:export']" @click="handleDownloadExcel"> {{ $t('pages.common.export') }} </a-button> @@ -255,7 +286,9 @@ </Space> </template> </BasicTable> + <RepairRecord :req-id="reqId" class="h-1/3" table-title="缁翠慨璁板綍" /> </div> <RepairReqDrawer @reload="tableApi.query()" /> + <SendWorkDrawer @reload="tableApi.query()" /> </Page> </template> -- Gitblit v1.9.3